From f7d1cea531c923d0b980dfd6d8d781e60476992e Mon Sep 17 00:00:00 2001 From: Charles Li Date: Thu, 4 Jun 2026 12:21:59 -0500 Subject: [PATCH 01/30] refactor(reasm): remove overwrite invalid cmr (#10066) --- src/discof/reasm/fd_reasm.c | 180 ++++++++-------------------- src/discof/reasm/fd_reasm.h | 4 +- src/discof/reasm/fd_reasm_private.h | 2 +- src/discof/reasm/test_reasm.c | 73 +---------- src/discof/replay/fd_replay_tile.c | 2 +- 5 files changed, 58 insertions(+), 203 deletions(-) diff --git a/src/discof/reasm/fd_reasm.c b/src/discof/reasm/fd_reasm.c index f6c51fc4ce4..79807b7b07e 100644 --- a/src/discof/reasm/fd_reasm.c +++ b/src/discof/reasm/fd_reasm.c @@ -232,42 +232,6 @@ fd_reasm_confirm( fd_reasm_t * reasm, } } -/* This is a gross case reasm needs to handle because Agave currently - does not validate chained merkle roots across slots ie. if a leader - sends a bad chained merkle root on a slot boundary, the cluster - might converge on the leader's block anyways. So we overwrite the - chained merkle root based on the slot and parent_off metadata. - There are two cases: 1. we receive the parent before the child. In - this case we just overwrite the child's CMR. 2. we receive the - child before the parent. In this case every time we receive a new - FEC set we need to check the orphan roots for whether we can link - the orphan to the new FEC via slot metadata, since the chained - merkle root metadata on that orphan root might be wrong. */ - -static int -overwrite_invalid_cmr( fd_reasm_t * reasm, - ulong slot, - ushort parent_off, - uint fec_set_idx, - fd_hash_t const * cmr, - fd_hash_t * out_cmr ) { - fd_reasm_fec_t * pool = reasm_pool( reasm ); - if( FD_UNLIKELY( fec_set_idx==0 && !fd_reasm_query( reasm, cmr ) ) ) { - xid_t * parent_bid = xid_query( reasm->xid, (slot - parent_off) << 32 | UINT_MAX, NULL ); - if( FD_LIKELY( parent_bid ) ) { - fd_reasm_fec_t * parent = pool_ele( pool, parent_bid->idx ); - if( FD_LIKELY( parent ) ) { - FD_BASE58_ENCODE_32_BYTES( cmr->key, cmr_b58 ); - FD_BASE58_ENCODE_32_BYTES( parent->key.key, parent_key_b58 ); - FD_LOG_INFO(( "overwriting invalid cmr for FEC slot: %lu fec_set_idx: %u from %s (CMR) to %s (parent's block id)", slot, fec_set_idx, cmr_b58, parent_key_b58 )); - *out_cmr = parent->key; /* use the parent's merkle root */ - return 1; - } - } - } - return 0; -} - /* Mark the entire subtree beginning from root as equivocating. This is linear in the number of descendants in the subtree, but amortizes because we can short-circuit the BFS at nodes that are already marked @@ -292,38 +256,25 @@ eqvoc( fd_reasm_t * reasm, } static int -validate( fd_reasm_fec_t const * parent, - uint child_fec_set_idx, - uint child_fec_parent_off, - ulong child_slot ) { - - if( FD_UNLIKELY( parent->slot!=child_slot ) ) { - /* If the connecting FECs cross the slot boundary: - - the parent must be complete - - the child fec_set_idx must be 0 - - the child's parent slot must match parent's slot - - the parent off is a sane value */ - if( FD_UNLIKELY( !parent->slot_complete || - child_fec_set_idx!=0U || - child_fec_parent_off==0U || - child_fec_parent_off>child_slot || - child_slot-child_fec_parent_off!=parent->slot ) ) { - FD_LOG_DEBUG(( "fec validation failed: parent->slot!=child->slot (slot=%lu,parent_idx=%u,child_idx=%u)", child_slot, parent->fec_set_idx, child_fec_set_idx )); - return -1; - } - } else { - /* If the connecting FECs don't cross the slot boundary: - - the child fec_set_idx must be greater than the parent's by 32 - - child and parent FEC must have the same parent_off - - the parent must not be slot complete */ - if( FD_UNLIKELY( child_fec_set_idx!=parent->fec_set_idx+FD_FEC_SHRED_CNT || - child_fec_parent_off!=parent->parent_off || - parent->slot_complete ) ) { - FD_LOG_DEBUG(( "fec validation failed: parent->slot==child->slot (slot=%lu,parent_idx=%u,child_idx=%u)", child_slot, parent->fec_set_idx, child_fec_set_idx )); - return -1; - } - } - return 0; +validate_intra( fd_reasm_fec_t const * parent, + fd_reasm_fec_t const * child ) { + return child->fec_set_idx==parent->fec_set_idx+FD_FEC_SHRED_CNT && + child->parent_off ==parent->parent_off && + !parent->slot_complete; +} + +static int +validate_inter( fd_reasm_fec_t const * parent, + fd_reasm_fec_t const * child ) { + return child->slot - child->parent_off==parent->slot && + child->fec_set_idx==0 && + parent->slot_complete; +} + +static inline int +validate_chained_block_id( fd_reasm_fec_t const * parent, + fd_reasm_fec_t const * child ) { + return fd_int_if( parent->slot==child->slot, validate_intra( parent, child ), validate_inter( parent, child ) ); } static void @@ -349,8 +300,7 @@ xid_update( fd_reasm_t * reasm, ulong slot, uint fec_set_idx, ulong pool_idx ) { fd_reasm_fec_t * new_fec = pool_ele( reasm_pool( reasm ), pool_idx ); xid_t * xid = xid_query( reasm->xid, (slot << 32) | fec_set_idx, NULL ); if( FD_UNLIKELY( xid ) ) { - if( FD_UNLIKELY( fec_set_idx==UINT_MAX ) ) new_fec->bid_next = xid->idx; - else new_fec->xid_next = xid->idx; + new_fec->xid_next = xid->idx; xid->idx = pool_idx; /* updates head ptr */ xid->cnt++; } else { @@ -368,20 +318,6 @@ clear_xid_metadata( fd_reasm_t * reasm, fd_reasm_fec_t * pool = reasm_pool( reasm ); ulong fec_idx = pool_idx( pool, fec ); - if( FD_UNLIKELY( fec->slot_complete ) ) { - xid_t * bid = xid_query( reasm->xid, (fec->slot << 32)|UINT_MAX, NULL ); - bid->cnt--; - if( FD_LIKELY( !bid->cnt ) ) { - xid_remove( reasm->xid, bid ); - } else if( FD_LIKELY( bid->idx==fec_idx ) ) { - bid->idx = fec->bid_next; - } else { - fd_reasm_fec_t * prev = pool_ele( pool, bid->idx ); - while( prev->bid_next!=fec_idx ) prev = pool_ele( pool, prev->bid_next ); - prev->bid_next = fec->bid_next; - } - } - xid_t * xid = xid_query( reasm->xid, (fec->slot << 32)|fec->fec_set_idx, NULL ); xid->cnt--; if( FD_LIKELY( !xid->cnt ) ) { @@ -398,9 +334,9 @@ clear_xid_metadata( fd_reasm_t * reasm, } static void -remove_orphan_subtree( fd_reasm_t * reasm, - fd_reasm_fec_t * root, - fd_store_t * opt_store ) { +subtrees_remove( fd_reasm_t * reasm, + fd_reasm_fec_t * root, + fd_store_t * opt_store ) { fd_reasm_fec_t * pool = reasm_pool( reasm ); ulong * bfs = reasm->bfs; @@ -768,7 +704,6 @@ fd_reasm_init( fd_reasm_t * reasm, FD_TEST( reasm->root==pool_idx_null( pool ) ); fec->confirmed = 1; fec->popped = 1; - /* */ xid_update( reasm, slot, UINT_MAX, pool_idx( pool, fec ) ); /* */ xid_update( reasm, slot, 0U, pool_idx( pool, fec ) ); reasm->root = pool_idx( pool, fec ); reasm->slot0 = slot; @@ -852,19 +787,6 @@ fd_reasm_insert( fd_reasm_t * reasm, *evicted = evicted_fec; } - /* If the new FEC set is a child of a FEC that already exists, - validate the new FEC set against the parent. If it fails - validation, remove the FEC from store. */ - - fd_hash_t new_cmr[1]; - if( overwrite_invalid_cmr( reasm, slot, parent_off, fec_set_idx, chained_merkle_root, new_cmr ) ) chained_merkle_root = new_cmr; - - fd_reasm_fec_t * parent = fd_reasm_query( reasm, chained_merkle_root ); - if( FD_UNLIKELY( parent && validate( parent, fec_set_idx, parent_off, slot )!=0 ) ) { - if( FD_LIKELY( opt_store ) ) fd_store_remove( opt_store, merkle_root ); - return NULL; - } - FD_TEST( pool_free( pool ) ); fd_reasm_fec_t * fec = pool_ele_acquire( pool ); fec->key = *merkle_root; @@ -893,21 +815,18 @@ fd_reasm_insert( fd_reasm_t * reasm, fec->out.prev = null; fec->in_out = 0; fec->xid_next = null; - fec->bid_next = null; fec->subtreel.next = null; fec->subtreel.prev = null; fec->cmr = *chained_merkle_root; - if( FD_UNLIKELY( slot_complete ) ) { - xid_t * bid = xid_query( reasm->xid, (slot << 32) | UINT_MAX, NULL ); - if( FD_UNLIKELY( bid ) ) { - fd_reasm_fec_t * orig_fec = pool_ele( pool, bid->idx ); - FD_BASE58_ENCODE_32_BYTES( orig_fec->key.key, prev_block_id_b58 ); - FD_BASE58_ENCODE_32_BYTES( fec->key.key, curr_block_id_b58 ); - FD_LOG_WARNING(( "equivocating block_id for FEC slot: %lu fec_set_idx: %u prev: %s curr: %s", fec->slot, fec->fec_set_idx, prev_block_id_b58, curr_block_id_b58 )); /* it's possible there's equivocation... */ - } - xid_update( reasm, slot, UINT_MAX, pool_idx( pool, fec ) ); + fd_reasm_fec_t * parent = fd_reasm_query( reasm, chained_merkle_root ); + if( FD_UNLIKELY( parent && !validate_chained_block_id( parent, fec ) ) ) { + FD_BASE58_ENCODE_32_BYTES( fec->key.key, child_key_cstr ); + FD_BASE58_ENCODE_32_BYTES( parent->key.key, parent_key_cstr ); + FD_LOG_INFO(( "[%s] failed to validate chained block id FEC: (%lu %u %s). parent (%lu %u %s).", __func__, fec->slot, fec->fec_set_idx, child_key_cstr, parent->slot, parent->fec_set_idx, parent_key_cstr )); + pool_ele_release( pool, fec ); + return NULL; } /* If the FEC's parent already exists link it correctly: the new FEC @@ -939,30 +858,31 @@ fd_reasm_insert( fd_reasm_t * reasm, By definition any children must be orphaned (a child cannot be part of a connected tree before its parent). Therefore, we only search through the orphaned subtrees. As part of this operation, we also - coalesce connected orphans into the same tree. This way we only - need to search the orphan tree roots (vs. all orphaned nodes). */ + coalesce orphans into orphan subtrees. An orphan may be connected + to its parent, but part of an orphaned subtree. This way we only + need to search for children the orphan subtree roots (vs. all + orphaned nodes). */ ulong min_descendant = ULONG_MAX; /* needed for eqvoc checks below */ FD_TEST( bfs_empty( bfs ) ); - for( ulong orphan_root_idx = subtreel_is_empty( subtreel, pool ) ? null : subtreel_idx_peek_head( subtreel, pool ); - orphan_root_idx != null; ) { /* link orphan subtrees to the new FEC */ - fd_reasm_fec_t * orphan_root = pool_ele( pool, orphan_root_idx ); - orphan_root_idx = orphan_root->subtreel.next; /* current root may be removed below */ - fd_hash_t new_cmr[1]; - /* if received child before parent that crosses a slot boundary, - overwrite the child's CMR */ - if( overwrite_invalid_cmr( reasm, orphan_root->slot, orphan_root->parent_off, orphan_root->fec_set_idx, &orphan_root->cmr, new_cmr ) ) orphan_root->cmr = *new_cmr; - /* Skip orphan_root if CMR doesn't chain to the new FEC's MR */ - if( FD_UNLIKELY( !fd_hash_eq1( orphan_root->cmr, fec->key ) ) ) continue; - if( FD_UNLIKELY( validate( fec, orphan_root->fec_set_idx, orphan_root->parent_off, orphan_root->slot )!=0 ) ) { - remove_orphan_subtree( reasm, orphan_root, opt_store ); + for( subtreel_iter_t iter = subtreel_iter_fwd_init( subtreel, pool ); + !subtreel_iter_done ( iter, subtreel, pool ); + iter = subtreel_iter_fwd_next( iter, subtreel, pool ) ) { + fd_reasm_fec_t * parent = fec; + fd_reasm_fec_t * child = subtreel_iter_ele( iter, subtreel, pool ); + if( FD_UNLIKELY( !fd_hash_eq( &parent->key, &child->cmr ) ) ) continue; + if( FD_UNLIKELY( !validate_chained_block_id( parent, child ) ) ) { + FD_BASE58_ENCODE_32_BYTES( child->key.key, child_key_cstr ); + FD_BASE58_ENCODE_32_BYTES( parent->key.key, parent_key_cstr ); + FD_LOG_INFO(( "[%s] failed to validate chained block id FEC: (%lu %u %s). parent (%lu %u %s).", __func__, child->slot, child->fec_set_idx, child_key_cstr, parent->slot, parent->fec_set_idx, parent_key_cstr )); + subtrees_remove( reasm, child, opt_store ); continue; } - link( reasm, fec, orphan_root ); - subtrees_ele_remove( subtrees, &orphan_root->key, NULL, pool ); - subtreel_ele_remove( subtreel, orphan_root, pool ); - orphaned_ele_insert( orphaned, orphan_root, pool ); - min_descendant = fd_ulong_min( min_descendant, orphan_root->slot ); + link( reasm, parent, child ); + subtrees_ele_remove( subtrees, &child->key, NULL, pool ); + subtreel_ele_remove( subtreel, child, pool ); + orphaned_ele_insert( orphaned, child, pool ); + min_descendant = fd_ulong_min( min_descendant, child->slot ); } /* Third, we advance the frontier outward beginning from fec as we may diff --git a/src/discof/reasm/fd_reasm.h b/src/discof/reasm/fd_reasm.h index 0ec05d933d5..e6afa20b71a 100644 --- a/src/discof/reasm/fd_reasm.h +++ b/src/discof/reasm/fd_reasm.h @@ -129,8 +129,7 @@ derive its direct child's key and therefore query for it. For the special case of the first FEC set in a slot, the reasm can - derive the parent key by subtracting the parent_off from the slot and - querying for (slot, UINT_MAX). + derive the parent key by subtracting the parent_off from the slot. CHAINING @@ -189,7 +188,6 @@ struct __attribute__((aligned(128UL))) fd_reasm_fec { int in_out; /* whether this FEC is currently present in the out dlist */ ulong xid_next; /* pool idx of next FEC with same (slot, fec_set_idx). ULONG_MAX if no next. Maintain the order of most recent to least recent. */ - ulong bid_next; /* pool idx of next FEC with same (slot, UINT_MAX). ULONG_MAX if no next. Maintain the order of most recent to least recent. */ /* Data (set by caller) */ diff --git a/src/discof/reasm/fd_reasm_private.h b/src/discof/reasm/fd_reasm_private.h index 635f8d2da3a..94a2cf7d62d 100644 --- a/src/discof/reasm/fd_reasm_private.h +++ b/src/discof/reasm/fd_reasm_private.h @@ -52,7 +52,7 @@ #include "../../util/tmpl/fd_deque_dynamic.c" struct xid { - ulong key; /* 32 msb slot | 32 lsb fec_set_idx. if fec_set_idx is UINT_MAX, then this xid represents the block id for this slot. */ + ulong key; /* 32 msb slot | 32 lsb fec_set_idx */ ulong idx; /* pool idx of first FEC seen. Updated only on confirmation. */ uint cnt; /* count of FECs with this xid key. If > 1, equivocation occurred on this FEC set */ }; diff --git a/src/discof/reasm/test_reasm.c b/src/discof/reasm/test_reasm.c index b129fb1675a..f9fea94cdae 100644 --- a/src/discof/reasm/test_reasm.c +++ b/src/discof/reasm/test_reasm.c @@ -182,44 +182,6 @@ test_publish( fd_wksp_t * wksp ) { fd_wksp_free_laddr( fd_reasm_delete( fd_reasm_leave( reasm ) ) ); } -void -test_slot_mr( fd_wksp_t * wksp ) { - ulong fec_max = 32; - void * mem = fd_wksp_alloc_laddr( wksp, fd_reasm_align(), fd_reasm_footprint( fec_max ), 1UL ); - fd_reasm_t * reasm = fd_reasm_join( fd_reasm_new( mem, fec_max, 0UL ) ); - FD_TEST( reasm ); - - fd_reasm_fec_t * pool = reasm_pool( reasm ); - // ulong null = pool_idx_null( pool ); - - ancestry_t * ancestry = reasm->ancestry; - frontier_t * frontier = reasm->frontier; - subtrees_t * subtrees = reasm->subtrees; - - fd_hash_t mr0[1] = {{{ 0 }}}; - fd_hash_t mr1[1] = {{{ 1 }}}; - fd_hash_t mr2[1] = {{{ 2 }}}; - fd_hash_t mr3[1] = {{{ 3 }}}; - fd_hash_t mr4[1] = {{{ 4 }}}; - fd_reasm_fec_t * ev[1]; - - fd_reasm_init( reasm, mr1, 1 ); /* set root */ - fd_reasm_fec_t * fec1 = fd_reasm_query( reasm, mr1 ); - FD_TEST( fec1 ); - FD_TEST( frontier_ele_query( frontier, &fec1->key, NULL, pool ) == fec1 ); - - fd_reasm_fec_t * fec2 = fd_reasm_insert( reasm, mr2, mr0, 2, 0, 1, 32, 0, 1, 0, NULL, ev ); /* insert with bad mr0 should be mr1 */ - FD_TEST( ancestry_ele_query( ancestry, &fec1->key, NULL, pool ) ); /* successfully chains anyways */ - FD_TEST( frontier_ele_query( frontier, &fec2->key, NULL, pool ) ); - - fd_reasm_fec_t * fec4 = fd_reasm_insert( reasm, mr4, mr0, 4, 0, 1, 32, 0, 1, 0 , NULL, ev ); /* insert with bad mr0 should be mr3 */ - FD_TEST( subtrees_ele_query( subtrees, &fec4->key, NULL, pool ) ); /* orphaned */ - - fd_reasm_fec_t * fec3 = fd_reasm_insert( reasm, mr3, mr2, 3, 0, 1, 32, 0, 1, 0, NULL, ev ); - FD_TEST( ancestry_ele_query( ancestry, &fec3->key, NULL, pool ) ); /* mr3 should chain to 2 */ - FD_TEST( frontier_ele_query( frontier, &fec4->key, NULL, pool ) ); /* mr4 should have chained */ -} - void test_eqvoc( fd_wksp_t * wksp ) { ulong fec_max = 32; @@ -306,8 +268,7 @@ test_eqvoc( fd_wksp_t * wksp ) { } void -test_eqvoc_xidbid( fd_wksp_t * wksp ) { - // checks the properties of the xid and bid maps are maintained correctly +test_eqvoc_xid( fd_wksp_t * wksp ) { ulong fec_max = 32; void * mem = fd_wksp_alloc_laddr( wksp, fd_reasm_align(), fd_reasm_footprint( fec_max ), 1UL ); fd_reasm_t * reasm = fd_reasm_join( fd_reasm_new( mem, fec_max, 0UL ) ); @@ -327,39 +288,27 @@ test_eqvoc_xidbid( fd_wksp_t * wksp ) { fd_reasm_fec_t * fec3 = fd_reasm_insert( reasm, mr3, mr2, 1, 64, 1, 32, 0, 1, 0, NULL, ev ); ulong last_xid = (1UL << 32) | 64UL; - ulong bid = (1UL << 32) | UINT_MAX; - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 1 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec3 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 1 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec3 ) ); fd_reasm_fec_t * fec4 = fd_reasm_insert( reasm, mr4, mr2, 1, 64, 1, 32, 0, 1, 0, NULL, ev ); /* equivocate on last fec set idx, gets placed at head of list*/ - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 2 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 2 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); fd_reasm_confirm( reasm, mr4 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 2 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 2 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); - /* publishing forward to mr4 (doesn't actually happen ... ) but should update the xid and bid maps to cnt 1 */ + /* publishing forward to mr4 should update the xid map to cnt 1 */ fd_reasm_publish( reasm, mr4, NULL ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 1 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 1 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); fd_hash_t mr5[1] = {{{ 1, 5 }}}; fd_reasm_insert( reasm, mr5, mr4, 2, 0, 1, 32, 0, 1, 0, NULL, ev ); fd_reasm_publish( reasm, mr5, NULL ); - ulong bid2 = (2UL << 32) | UINT_MAX; - FD_TEST( !xid_query( reasm->xid, bid, NULL ) ); FD_TEST( !xid_query( reasm->xid, last_xid, NULL ) ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->cnt == 1 ); } void @@ -1248,23 +1197,18 @@ test_eqvoc_xid_evict( fd_wksp_t * wksp ) { fd_reasm_fec_t * fec4 = fd_reasm_insert( reasm, mr4, mr2, 1, 64, 1, 32, 0, 1, 0, NULL, ev ); ulong last_xid = (1UL << 32) | 64UL; - ulong bid = (1UL << 32) | UINT_MAX; - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 2 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 2 ); /* Confirm fec4 (the second equivocating FEC). This moves fec4 to - the head of the xid/bid linked lists. */ + the head of the xid linked list. */ fd_reasm_confirm( reasm, mr4 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); /* Publish to mr4. This prunes fec3 (the unconfirmed equivocating FEC) via clear_slot_metadata. After publish, cnt should be 1 and idx should still point to fec4 (the confirmed survivor). */ fd_reasm_publish( reasm, mr4, NULL ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->cnt == 1 ); - FD_TEST( xid_query( reasm->xid, bid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->cnt == 1 ); FD_TEST( xid_query( reasm->xid, last_xid, NULL )->idx == pool_idx( reasm_pool( reasm ), fec4 ) ); @@ -1291,32 +1235,26 @@ test_eqvoc_xid_evict( fd_wksp_t * wksp ) { fd_reasm_fec_t * fecf = fd_reasm_insert( reasm, mrf, mrc, 1, 64, 1, 32, 0, 1, 0, NULL, ev ); /* first in list */ ulong xid2 = (1UL << 32) | 64UL; - ulong bid2 = (1UL << 32) | UINT_MAX; FD_TEST( xid_query( reasm->xid, xid2, NULL )->cnt == 3 ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->cnt == 3 ); /* Confirm fecd (the first equivocating FEC this time). Should not move head of list. */ fd_reasm_confirm( reasm, mrd ); FD_TEST( xid_query( reasm->xid, xid2, NULL )->idx == pool_idx( reasm_pool( reasm ), fecf ) ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->idx == pool_idx( reasm_pool( reasm ), fecf ) ); /* simulate eviction of fecf */ fd_reasm_remove( reasm, fecf, NULL ); fd_reasm_pool_release( reasm, fecf ); FD_TEST( xid_query( reasm->xid, xid2, NULL )->cnt == 2 ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->cnt == 2 ); FD_TEST( xid_query( reasm->xid, xid2, NULL )->idx == pool_idx( reasm_pool( reasm ), fecd ) ); - FD_TEST( xid_query( reasm->xid, bid2, NULL )->idx == pool_idx( reasm_pool( reasm ), fecd ) ); - /* Build forward from fecd so publish prunes fece, fec f */ + /* Build forward from fecd so publish prunes fece */ fd_reasm_insert( reasm, mrg, mrd, 2, 0, 1, 32, 0, 1, 0, NULL, ev ); fd_reasm_publish( reasm, mrg, NULL ); /* fece should have been pruned. fecd survives at cnt 1. */ FD_TEST( !xid_query( reasm->xid, xid2, NULL ) ); - FD_TEST( !xid_query( reasm->xid, bid2, NULL ) ); fd_wksp_free_laddr( fd_reasm_delete( fd_reasm_leave( reasm ) ) ); FD_LOG_NOTICE(( "test_eqvoc_xid_evict passed" )); @@ -1337,12 +1275,11 @@ main( int argc, char ** argv ) { test_insert( wksp ); test_publish( wksp ); - test_slot_mr( wksp ); test_eqvoc( wksp ); test_xid_capacity( wksp ); test_fec_after_eos( wksp ); test_eqvoc_transitive( wksp ); - test_eqvoc_xidbid( wksp ); + test_eqvoc_xid( wksp ); test_eqvoc_xid_evict( wksp ); test_evict( wksp ); test_validate_cross_slot( wksp ); diff --git a/src/discof/replay/fd_replay_tile.c b/src/discof/replay/fd_replay_tile.c index 2d0f6cd4bcf..8b1268e00c2 100644 --- a/src/discof/replay/fd_replay_tile.c +++ b/src/discof/replay/fd_replay_tile.c @@ -2145,7 +2145,7 @@ process_fec_complete( fd_replay_tile_t * ctx, /* FEC set detected as invalid based on duplicate confirmations. Nothing to do except remove from store. If the FEC set is not in reasm, we can directly remove from store. If the FEC set is in - reasm, then we let the natural prune/publish process handle it. */ + reasm, then we let reasm_publish handle it. */ if( FD_LIKELY( !fd_reasm_query( ctx->reasm, merkle_root ) ) ) { fd_store_remove( ctx->store, merkle_root ); } From fa3ea823e2f0f3fda1d08ecc2606f626b7651d35 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Wed, 3 Jun 2026 23:29:26 +0000 Subject: [PATCH 02/30] disco: execle tile unit tests --- src/discof/execle/test_execle_tile.c | 1305 +++++++++++++++++++++++++- 1 file changed, 1270 insertions(+), 35 deletions(-) diff --git a/src/discof/execle/test_execle_tile.c b/src/discof/execle/test_execle_tile.c index b77470a0cf3..a43919c1f78 100644 --- a/src/discof/execle/test_execle_tile.c +++ b/src/discof/execle/test_execle_tile.c @@ -8,28 +8,34 @@ #include "../../ballet/txn/fd_txn_build.h" #include "../../disco/topo/fd_topob.h" #include "../../flamenco/accdb/fd_accdb_impl_v1.h" +#include "../../flamenco/accdb/fd_accdb_sync.h" #include "../../flamenco/runtime/tests/fd_svm_mini.h" #include "../../flamenco/runtime/fd_system_ids_pp.h" +#include "../../flamenco/runtime/program/fd_system_program.h" +#include "../../flamenco/runtime/program/fd_bpf_loader_program.h" +#include "../../flamenco/runtime/program/vote/fd_vote_codec.h" +#include "../../ballet/txn/fd_compact_u16.h" #include "../../util/tmpl/fd_unit_test.c" -#include +#include #define MAX_LIVE_SLOTS 32 #define MAX_TXN_PER_SLOT 32 +#define TOPO_TAG 2UL + int volatile const fd_startup_skip_checks = 1; /* fd_startup.c */ static fd_svm_mini_t * mini; static fd_topo_t topo[1]; static uchar metrics_scratch[ FD_METRICS_FOOTPRINT( 0UL ) ] __attribute__((aligned(FD_METRICS_ALIGN))); +FD_IMPORT_BINARY( test_bpf_program, "src/ballet/sbpf/fixtures/hello_solana_program.so" ); + struct test_env { void * tile_mem; fd_svm_mini_t * mini; fd_execle_tile_t * execle; ulong bank_idx; - - void * allocs[ 16 ]; - ulong alloc_cnt; }; typedef struct test_env test_env_t; @@ -47,52 +53,35 @@ test_mock_validator_keys( fd_pubkey_t * identity_key, fd_rng_delete( fd_rng_leave( rng ) ); } -static void * -test_env_alloc( test_env_t * env, - ulong align, - ulong footprint ) { - FD_TEST( env->alloc_cntallocs)/sizeof(env->allocs[0]) ); - void * mem = aligned_alloc( align, footprint ); - FD_TEST( mem ); - env->allocs[ env->alloc_cnt++ ] = mem; - return mem; -} - -static void -test_topo_obj_set_laddr( fd_topo_obj_t * obj, - void * laddr ) { - obj->offset = (ulong)laddr; -} - static fd_topo_obj_t * test_topo_obj_laddr( fd_topo_t * topo, char const * obj_type, char const * wksp_name, void * laddr ) { fd_topo_obj_t * obj = fd_topob_obj( topo, obj_type, wksp_name ); - test_topo_obj_set_laddr( obj, laddr ); + obj->offset = (ulong)fd_wksp_gaddr_fast( topo->workspaces[ obj->wksp_id ].wksp, laddr ); return obj; } static void -test_topo_link_init( test_env_t * env, - fd_topo_t * topo, +test_topo_link_init( test_env_t * env, + fd_topo_t * topo, fd_topo_link_t * link ) { ulong mcache_footprint = fd_mcache_footprint( link->depth, 0UL ); - void * mcache_mem = test_env_alloc( env, fd_mcache_align(), mcache_footprint ); + void * mcache_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_mcache_align(), mcache_footprint, TOPO_TAG ); FD_TEST( fd_mcache_new( mcache_mem, link->depth, 0UL, 0UL ) ); link->mcache = fd_mcache_join( mcache_mem ); FD_TEST( link->mcache ); - test_topo_obj_set_laddr( &topo->objs[ link->mcache_obj_id ], mcache_mem ); + topo->objs[ link->mcache_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, mcache_mem ); if( link->mtu ) { ulong data_sz = fd_dcache_req_data_sz( link->mtu, link->depth, link->burst, 1 ); ulong dcache_footprint = fd_dcache_footprint( data_sz, 0UL ); - void * dcache_mem = test_env_alloc( env, fd_dcache_align(), dcache_footprint ); + void * dcache_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_dcache_align(), dcache_footprint, TOPO_TAG ); FD_TEST( fd_dcache_new( dcache_mem, data_sz, 0UL ) ); link->dcache = fd_dcache_join( dcache_mem ); FD_TEST( link->dcache ); - test_topo_obj_set_laddr( &topo->objs[ link->dcache_obj_id ], dcache_mem ); + topo->objs[ link->dcache_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, dcache_mem ); } } @@ -106,7 +95,7 @@ test_topo_link( char const * name ) { static test_env_t * test_env_create( void ) { - test_env_t * env = aligned_alloc( alignof(test_env_t), sizeof(test_env_t) ); + test_env_t * env = fd_wksp_alloc_laddr( mini->wksp, alignof(test_env_t), sizeof(test_env_t), TOPO_TAG ); FD_TEST( env ); memset( env, 0, sizeof(test_env_t) ); @@ -118,14 +107,16 @@ test_env_create( void ) { env->bank_idx = fd_svm_mini_attach_child( env->mini, root_idx, 2UL ); fd_topob_new( topo, "execle" ); - fd_topob_wksp( topo, "execle" ); + fd_topo_wksp_t * topo_wksp = fd_topob_wksp( topo, "execle" ); + topo_wksp->wksp = env->mini->wksp; fd_topo_tile_t * topo_tile = fd_topob_tile( topo, "execle", "execle", "execle", 0UL, 0, 0, 0 ); topo_tile->execle.max_live_slots = MAX_LIVE_SLOTS; topo_tile->execle.accdb_max_depth = MAX_LIVE_SLOTS; - void * tile_mem = test_env_alloc( env, scratch_align(), scratch_footprint( topo_tile ) ); + void * tile_mem = fd_wksp_alloc_laddr( env->mini->wksp, scratch_align(), scratch_footprint( topo_tile ), TOPO_TAG ); + FD_TEST( tile_mem ); env->tile_mem = tile_mem; - test_topo_obj_set_laddr( &topo->objs[ topo_tile->tile_obj_id ], tile_mem ); + topo->objs[ topo_tile->tile_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, tile_mem ); fd_topo_link_t * pack_execle = fd_topob_link( topo, "pack_execle", "execle", 4UL, MAX_MICROBLOCK_SZ, 1UL ); fd_topo_link_t * execle_poh = fd_topob_link( topo, "execle_poh", "execle", 4UL, MAX_MICROBLOCK_SZ, 1UL ); @@ -149,7 +140,7 @@ test_env_create( void ) { FD_TEST( fd_pod_insertf_ulong( topo->props, progcache_obj->id, "progcache" ) ); FD_TEST( fd_pod_insertf_ulong( topo->props, banks_obj->id, "banks" ) ); - void * busy_fseq_mem = test_env_alloc( env, fd_fseq_align(), fd_fseq_footprint() ); + void * busy_fseq_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_fseq_align(), fd_fseq_footprint(), TOPO_TAG ); FD_TEST( fd_fseq_new( busy_fseq_mem, 0UL ) ); fd_topo_obj_t * busy_fseq_obj = test_topo_obj_laddr( topo, "fseq", "execle", busy_fseq_mem ); FD_TEST( fd_pod_insertf_ulong( topo->props, busy_fseq_obj->id, "execle_busy.%lu", topo_tile->kind_id ) ); @@ -178,8 +169,8 @@ test_env_create( void ) { static void test_env_destroy( test_env_t * env ) { - for( ulong i=env->alloc_cnt; i>0UL; i-- ) free( env->allocs[ i-1UL ] ); - free( env ); + ulong tag = TOPO_TAG; + fd_wksp_tag_free( env->mini->wksp, &tag, 1UL ); } static void @@ -215,6 +206,333 @@ test_build_vote_txn( fd_txn_p_t * out, fd_txn_builder_delete( builder ); } +static void +test_build_vote_authorize_txn( fd_txn_p_t * out, + fd_bank_t * bank ) { + fd_pubkey_t identity_key; + fd_pubkey_t vote_key; + test_mock_validator_keys( &identity_key, &vote_key ); + + fd_pubkey_t new_authority = { .ul = { 0xa17a0UL } }; + fd_acct_addr_t const vote_prog_id = { .b = { VOTE_PROG_ID } }; + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + uchar instr_data[ 40UL ]; + uint discriminant = fd_vote_instruction_enum_authorize; + uint authorization_type = fd_vote_authorize_enum_voter; + fd_memcpy( instr_data, &discriminant, sizeof(uint) ); + fd_memcpy( instr_data+4UL, &new_authority, sizeof(fd_pubkey_t) ); + fd_memcpy( instr_data+36UL, &authorization_type, sizeof(uint) ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 2UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &identity_key ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &vote_prog_id, instr_data, sizeof(instr_data) ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &vote_key, FD_TXN_ACCT_CAT_WRITABLE ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &fd_sysvar_clock_id, 0U ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &identity_key, FD_TXN_ACCT_CAT_SIGNER ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + FD_TEST( fd_txn_is_simple_vote_transaction( TXN(out), out->payload ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + out->flags = FD_TXN_P_FLAGS_IS_SIMPLE_VOTE; + fd_txn_builder_delete( builder ); +} + +#define TEST_CHECKED_ADD_TO_TXN_DATA( _begin, _cur_data, _to_add, _sz ) __extension__({ \ + if( FD_UNLIKELY( (*_cur_data)+(_sz)>(_begin)+FD_TXN_MTU ) ) return ULONG_MAX; \ + fd_memcpy( *_cur_data, _to_add, (_sz) ); \ + *_cur_data += (_sz); \ +}) + +#define TEST_CHECKED_ADD_CU16_TO_TXN_DATA( _begin, _cur_data, _to_add ) __extension__({ \ + do { \ + uchar _buf[3]; \ + ulong _sz = (ulong)fd_cu16_enc( (ushort)(_to_add), _buf ); \ + TEST_CHECKED_ADD_TO_TXN_DATA( _begin, _cur_data, _buf, _sz ); \ + } while(0); \ +}) + +static ulong +test_txn_serialize_empty( uchar * txn_raw_begin, + fd_signature_t * signature, + ulong readonly_signed_cnt, + ulong readonly_unsigned_cnt, + fd_pubkey_t * account_keys, + ulong account_key_cnt, + fd_hash_t const * recent_blockhash ) { + uchar * txn_raw_cur = txn_raw_begin; + + uchar signature_cnt = 1U; + FD_TEST( readonly_signed_cnt <=(ulong)UCHAR_MAX ); + FD_TEST( readonly_unsigned_cnt<=(ulong)UCHAR_MAX ); + uchar header_readonly_signed_cnt = (uchar)readonly_signed_cnt; + uchar header_readonly_unsigned_cnt = (uchar)readonly_unsigned_cnt; + + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &signature_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, signature, FD_TXN_SIGNATURE_SZ ); + + uchar header_b0 = (uchar)0x80UL; + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &header_b0, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &signature_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &header_readonly_signed_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &header_readonly_unsigned_cnt, sizeof(uchar) ); + + TEST_CHECKED_ADD_CU16_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, account_key_cnt ); + for( ulong i=0UL; if.block_hash_queue ); + FD_TEST( recent_blockhash ); + ulong sz = test_txn_serialize_empty( out->payload, &signature, 0UL, (ulong)!!extra_readonly, + account_keys, 2UL, recent_blockhash ); + FD_TEST( sz!=ULONG_MAX ); + FD_TEST( fd_txn_parse( out->payload, sz, TXN( out ), NULL ) ); + out->payload_sz = (ushort)sz; + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; +} + +static void +test_build_system_transfer_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t from, + fd_pubkey_t to, + ulong lamports ) { + fd_system_program_instruction_t instr = { + .discriminant = FD_SYSTEM_PROGRAM_INSTR_TRANSFER, + .inner.transfer = lamports + }; + uchar instr_data[ 16 ]; + ulong instr_data_sz = 0UL; + FD_TEST( !fd_system_program_instruction_encode( &instr, instr_data, sizeof(instr_data), &instr_data_sz ) ); + + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 2UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &from ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &fd_solana_system_program_id, instr_data, instr_data_sz ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &from, FD_TXN_ACCT_CAT_WRITABLE | FD_TXN_ACCT_CAT_SIGNER ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &to, FD_TXN_ACCT_CAT_WRITABLE ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_build_missing_program_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t fee_payer, + fd_pubkey_t missing_program ) { + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 5UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &fee_payer ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &missing_program, NULL, 0UL ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_durable_nonce_from_blockhash( fd_hash_t * out, + fd_hash_t const * blockhash ) { + uchar buf[ 13UL + sizeof(fd_hash_t) ]; + fd_memcpy( buf, "DURABLE_NONCE", 13UL ); + fd_memcpy( buf+13UL, blockhash, sizeof(fd_hash_t) ); + fd_sha256_hash( buf, sizeof(buf), out ); +} + +static void +test_build_durable_nonce_transfer_txn( fd_txn_p_t * out, + fd_pubkey_t fee_payer, + fd_pubkey_t nonce_key, + fd_pubkey_t recipient, + fd_hash_t const * durable_nonce, + ulong lamports, + ulong seed ) { + fd_system_program_instruction_t instr = { + .discriminant = FD_SYSTEM_PROGRAM_INSTR_TRANSFER, + .inner.transfer = lamports + }; + uchar instr_data[ 16 ]; + ulong instr_data_sz = 0UL; + FD_TEST( !fd_system_program_instruction_encode( &instr, instr_data, sizeof(instr_data), &instr_data_sz ) ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, seed ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &fee_payer ) ); + fd_txn_builder_blockhash_set( builder, durable_nonce ); + FD_TEST( fd_txn_builder_nonce_set( builder, &nonce_key, &fee_payer ) ); + FD_TEST( fd_txn_builder_instr_open( builder, &fd_solana_system_program_id, instr_data, instr_data_sz ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &fee_payer, FD_TXN_ACCT_CAT_WRITABLE | FD_TXN_ACCT_CAT_SIGNER ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &recipient, FD_TXN_ACCT_CAT_WRITABLE ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + out->flags = FD_TXN_P_FLAGS_DURABLE_NONCE; + fd_txn_builder_delete( builder ); +} + +static void +test_build_bpf_close_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t authority, + fd_pubkey_t recipient, + fd_pubkey_t program, + fd_pubkey_t programdata ) { + fd_bpf_instruction_t instr = { .discriminant = FD_BPF_INSTR_CLOSE }; + uchar instr_data[ 4 ]; + ulong instr_data_sz = 0UL; + FD_TEST( !fd_bpf_instruction_encode( &instr, instr_data, sizeof(instr_data), &instr_data_sz ) ); + + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 3UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &authority ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &fd_solana_bpf_loader_upgradeable_program_id, instr_data, instr_data_sz ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &programdata, FD_TXN_ACCT_CAT_WRITABLE ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &recipient, FD_TXN_ACCT_CAT_WRITABLE ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &authority, FD_TXN_ACCT_CAT_SIGNER ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &program, FD_TXN_ACCT_CAT_WRITABLE ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_build_program_invoke_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t fee_payer, + fd_pubkey_t program ) { + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 4UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &fee_payer ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &program, NULL, 0UL ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_fund_account( test_env_t * env, + fd_pubkey_t const * pubkey, + ulong lamports ) { + fd_xid_t xid = fd_svm_mini_xid( env->mini, env->bank_idx ); + fd_svm_mini_add_lamports( env->mini, &xid, pubkey, lamports ); +} + +static void +test_put_account_rooted( test_env_t * env, + fd_pubkey_t const * pubkey, + fd_pubkey_t const * owner, + ulong lamports, + ulong slot, + int executable, + uchar const * data, + ulong data_sz ) { + fd_account_meta_t meta = {0}; + meta.lamports = lamports; + meta.slot = slot; + meta.dlen = (uint)data_sz; + meta.executable = !!executable; + fd_memcpy( meta.owner, owner, sizeof(fd_pubkey_t) ); + + fd_accdb_ro_t ro[1]; + fd_accdb_ro_init_nodb_oob( ro, pubkey, &meta, data ); + fd_svm_mini_put_account_rooted( env->mini, ro ); +} + +static void +test_put_nonce_account_rooted( test_env_t * env, + fd_pubkey_t const * nonce_key, + fd_pubkey_t const * authority, + fd_hash_t const * durable_nonce, + ulong lamports ) { + fd_nonce_state_versions_t state = { + .version = FD_NONCE_VERSION_CURRENT, + .kind = FD_NONCE_STATE_INITIALIZED, + .authority = *authority, + .durable_nonce = *durable_nonce, + }; + uchar data[ FD_SYSTEM_PROGRAM_NONCE_DLEN ] = {0}; + ulong written = 0UL; + FD_TEST( !fd_nonce_state_versions_encode( &state, data, FD_SYSTEM_PROGRAM_NONCE_DLEN, &written ) ); + test_put_account_rooted( env, nonce_key, &fd_solana_system_program_id, lamports, 0UL, 0, + data, FD_SYSTEM_PROGRAM_NONCE_DLEN ); +} + +static ulong +test_read_lamports( test_env_t * env, + fd_pubkey_t const * pubkey ) { + fd_xid_t xid = fd_svm_mini_xid( env->mini, env->bank_idx ); + fd_accdb_ro_t ro[1]; + FD_TEST( fd_accdb_open_ro( env->mini->accdb, ro, &xid, pubkey ) ); + ulong lamports = fd_accdb_ref_lamports( ro ); + fd_accdb_close_ro( env->mini->accdb, ro ); + return lamports; +} + static fd_stem_context_t * test_stem( fd_execle_tile_t * ctx, fd_stem_context_t * stem ) { @@ -250,7 +568,127 @@ test_stem( fd_execle_tile_t * ctx, return stem; } +static void +test_execle_run( test_env_t * env, + fd_txn_p_t * txns, + ulong txn_cnt, + uint pack_idx, + ulong pack_txn_idx, + int is_bundle ) { + FD_TEST( txn_cnt<=MAX_TXN_PER_SLOT ); + + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + FD_TEST( bank ); + + ulong in_chunk = env->execle->pack_in_chunk0; + fd_txn_e_t * in_txn = fd_chunk_to_laddr( env->execle->pack_in_mem, in_chunk ); + for( ulong i=0UL; iflags |= FD_TXN_P_FLAGS_BUNDLE; + } + + fd_microblock_execle_trailer_t * in_trailer = (fd_microblock_execle_trailer_t *)( in_txn+txn_cnt ); + *in_trailer = (fd_microblock_execle_trailer_t) { + .bank_idx = env->bank_idx, + .microblock_idx = 0UL, + .pack_idx = pack_idx, + .pack_txn_idx = pack_txn_idx, + .is_bundle = is_bundle, + }; + + ulong sig = fd_disco_poh_sig( bank->f.slot, POH_PKT_TYPE_MICROBLOCK, env->execle->kind_id ); + ulong sz = txn_cnt*sizeof(fd_txn_e_t) + sizeof(fd_microblock_execle_trailer_t); + FD_TEST( !before_frag( env->execle, 0UL, 0UL, sig ) ); + during_frag( env->execle, 0UL, 0UL, sig, in_chunk, sz, 0UL ); + + fd_stem_context_t stem[1]; + after_frag( env->execle, 0UL, 0UL, sig, sz, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ), test_stem( env->execle, stem ) ); + FD_TEST( fd_fseq_query( env->execle->busy_fseq )==0UL ); +} + +static fd_frag_meta_t const * +test_out_poh_meta( ulong seq ) { + fd_topo_link_t const * execle_poh = test_topo_link( "execle_poh" ); + return execle_poh->mcache + fd_mcache_line_idx( seq, execle_poh->depth ); +} + +static fd_frag_meta_t const * +test_out_pack_meta( ulong seq ) { + fd_topo_link_t const * execle_pack = test_topo_link( "execle_pack" ); + return execle_pack->mcache + fd_mcache_line_idx( seq, execle_pack->depth ); +} + +static void +test_assert_nonbundle_out( test_env_t * env, + ulong txn_cnt, + uint pack_idx ) { + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + fd_frag_meta_t const * meta = test_out_poh_meta( 0UL ); + FD_TEST( fd_frag_meta_seq_query( meta )==0UL ); + FD_TEST( meta->sig==fd_disco_execle_sig( bank->f.slot, pack_idx ) ); + FD_TEST( meta->sz==txn_cnt*sizeof(fd_txn_p_t)+sizeof(fd_microblock_trailer_t) ); +} + +static void +test_assert_bundle_out( test_env_t * env, + ulong txn_cnt, + uint pack_idx ) { + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + for( ulong i=0UL; isig==fd_disco_execle_sig( bank->f.slot, pack_idx+(uint)i ) ); + FD_TEST( meta->sz==sizeof(fd_txn_p_t)+sizeof(fd_microblock_trailer_t) ); + } +} + +static fd_microblock_trailer_t const * +test_out_poh_trailer_nonbundle( test_env_t * env, + ulong txn_cnt ) { + fd_frag_meta_t const * meta = test_out_poh_meta( 0UL ); + fd_txn_p_t const * txns = fd_chunk_to_laddr( env->execle->out_poh->mem, meta->chunk ); + return (fd_microblock_trailer_t const *)( txns + txn_cnt ); +} + +static fd_microblock_trailer_t const * +test_out_poh_trailer_bundle( test_env_t * env, + ulong seq ) { + fd_frag_meta_t const * meta = test_out_poh_meta( seq ); + fd_txn_p_t const * txns = fd_chunk_to_laddr( env->execle->out_poh->mem, meta->chunk ); + return (fd_microblock_trailer_t const *)( txns + 1UL ); +} + +static void +test_compute_expected_hash( fd_txn_p_t * txns, + ulong txn_cnt, + uchar expected_hash[32] ) { + uchar bmtree_mem[ FD_BMTREE_COMMIT_FOOTPRINT(0) ] __attribute__((aligned(FD_BMTREE_COMMIT_ALIGN))); + hash_transactions( bmtree_mem, txns, txn_cnt, expected_hash ); +} + +static void +test_assert_txn_ns_dt_ordered( fd_txn_ns_dt_t const * dt ) { + FD_TEST( dt->load_start >= 0.f ); + FD_TEST( dt->check_start >= dt->load_start ); + FD_TEST( dt->exec_start >= dt->check_start ); + FD_TEST( dt->commit_start >= dt->exec_start ); + FD_TEST( dt->commit_end >= dt->commit_start ); +} + +FD_UNIT_TEST( execle_seccomp ) { + int out_fds[2]; + ulong nfds = populate_allowed_fds( NULL, NULL, 2UL, out_fds ); + FD_TEST( nfds>=1 && nfds<=2 ); + FD_TEST( out_fds[0]==STDERR_FILENO ); + if( nfds==2 ) FD_TEST( out_fds[1]==fd_log_private_logfile_fd() ); + + struct sock_filter filter[ 32 ]; + populate_allowed_seccomp( NULL, NULL, 32UL, filter ); +} + FD_UNIT_TEST( execle_vote ) { + /* Simple vote transaction */ test_env_t * env = test_env_create(); FD_TEST( env->execle->banks==env->mini->banks ); @@ -298,6 +736,802 @@ FD_UNIT_TEST( execle_vote ) { FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == in_txn->txnp->pack_cu.non_execution_cus + in_txn->txnp->pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==(uint)FD_PACK_FIXED_SIMPLE_VOTE_COST ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==0UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_FAILED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_vote_authorize ) { + /* Simple vote transaction in a bundle */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + FD_TEST( bank ); + + fd_txn_p_t txn[1]; + test_build_vote_authorize_txn( txn, bank ); + test_execle_run( env, txn, 1UL, 2U, 16UL, 1 ); + + test_assert_bundle_out( env, 1UL, 2U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( fd_txn_is_simple_vote_transaction( TXN(out_txn), out_txn->payload ) ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==(uint)FD_PACK_FIXED_SIMPLE_VOTE_COST ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus - (uint)FD_PACK_FIXED_SIMPLE_VOTE_COST ); + FD_TEST( !env->execle->txn_out[0].err.is_fees_only ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, 0UL ); + FD_TEST( trailer->pack_txn_idx==16UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_SUCCESS_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_simple_ok ) { + /* Simple system program transfer */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x1111UL } }; + fd_pubkey_t recipient = { .ul = { 0x2222UL } }; + ulong const payer_start = 1000000000UL; + ulong const recipient_start = 1UL; + ulong const transfer = 1234567UL; + ulong const fee = 5000UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient, recipient_start ); + + fd_txn_p_t txn[1]; + test_build_system_transfer_txn( txn, bank, fee_payer, recipient, transfer ); + test_execle_run( env, txn, 1UL, 3U, 17UL, 0 ); + + test_assert_nonbundle_out( env, 1UL, 3U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==0U ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee-transfer ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start+transfer ); + FD_TEST( !env->execle->txn_out[0].err.is_fees_only ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus >= txn->pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==17UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_SUCCESS_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_simple_fee_payer_fail ) { + /* Transaction failed */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t missing_fee_payer = { .ul = { 0x3333UL } }; + fd_pubkey_t data_acct = { .ul = { 0x4444UL } }; + ulong const data_acct_start = 777UL; + test_fund_account( env, &data_acct, data_acct_start ); + + fd_txn_p_t txn[1]; + test_build_empty_txn( txn, bank, missing_fee_payer, data_acct, 12UL, 0 ); + test_execle_run( env, txn, 1UL, 4U, 18UL, 0 ); + + test_assert_nonbundle_out( env, 1UL, 4U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( !env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND)<<24) ); + FD_TEST( test_read_lamports( env, &data_acct )==data_acct_start ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==18UL ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + FD_TEST( trailer->txn_ns_dt.load_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.check_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.exec_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.commit_start==0.f ); + FD_TEST( trailer->txn_ns_dt.commit_end ==0.f ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_ACCOUNT_NOT_FOUND_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_simple_error ) { + /* System transfer fails during execution */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x5151UL } }; + fd_pubkey_t recipient = { .ul = { 0x6262UL } }; + ulong const payer_start = 1000000UL; + ulong const recipient_start = 1234UL; + ulong const fee = 5000UL; + ulong const transfer = payer_start; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient, recipient_start ); + + fd_txn_p_t txn[1]; + test_build_system_transfer_txn( txn, bank, fee_payer, recipient, transfer ); + test_execle_run( env, txn, 1UL, 5U, 19UL, 0 ); + + test_assert_nonbundle_out( env, 1UL, 5U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( !env->execle->txn_out[0].err.is_fees_only ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR)<<24) ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus >= txn->pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==19UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_FAILED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_simple_fees_only ) { + /* Account loading fails after fees are validated */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x7171UL } }; + fd_pubkey_t missing_program = { .ul = { 0x7272UL } }; + ulong const payer_start = 1000000UL; + ulong const fee = 5000UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + + fd_txn_p_t txn[1]; + test_build_missing_program_txn( txn, bank, fee_payer, missing_program ); + test_execle_run( env, txn, 1UL, 6U, 20UL, 0 ); + + test_assert_nonbundle_out( env, 1UL, 6U ); + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.is_fees_only ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND)<<24) ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == + txn->pack_cu.non_execution_cus + txn->pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_FEES_ONLY_IDX ]==1UL ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus >= txn->pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_nonbundle( env, 1UL ); + FD_TEST( trailer->pack_txn_idx==20UL ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_PROGRAM_ACCOUNT_NOT_FOUND_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_ok ) { + /* Successful bundle */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x5555UL } }; + fd_pubkey_t recipient0 = { .ul = { 0x6666UL } }; + fd_pubkey_t recipient1 = { .ul = { 0x6667UL } }; + ulong const fee = 5000UL; + ulong const payer_start = 1000000000UL; + ulong const recipient0_start = 111UL; + ulong const recipient1_start = 222UL; + ulong const transfer0 = 1234567UL; + ulong const transfer1 = 7654321UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + + fd_txn_p_t txns[2]; + test_build_system_transfer_txn( &txns[0], bank, fee_payer, recipient0, transfer0 ); + test_build_system_transfer_txn( &txns[1], bank, fee_payer, recipient1, transfer1 ); + test_execle_run( env, txns, 2UL, 8U, 21UL, 1 ); + + test_assert_bundle_out( env, 2UL, 8U ); + FD_TEST( env->execle->txn_out[0].err.is_committable ); + FD_TEST( env->execle->txn_out[1].err.is_committable ); + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS ); + FD_TEST( out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS ); + FD_TEST( (out_txn->flags & FD_TXN_P_FLAGS_RESULT_MASK)==0U ); + FD_TEST( !env->execle->txn_out[i].err.is_fees_only ); + FD_TEST( env->execle->txn_out[i].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus + out_txn->execle_cu.rebated_cus == + txns[i].pack_cu.non_execution_cus + txns[i].pack_cu.requested_exec_plus_acct_data_cus ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus >= txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==21UL+i ); + FD_TEST( trailer->tips==0UL ); + fd_txn_p_t txn_copy = *out_txn; + uchar expected_hash[32]; + test_compute_expected_hash( &txn_copy, 1UL, expected_hash ); + FD_TEST( !memcmp( trailer->hash, expected_hash, 32UL ) ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start - 2UL*fee - transfer0 - transfer1 ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start + transfer0 ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start + transfer1 ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_LANDED_SUCCESS_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX ]==2UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_fail ) { + /* Instruction in a bundle reverts the whole bundle */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x7777UL } }; + fd_pubkey_t recipient0 = { .ul = { 0x8888UL } }; + fd_pubkey_t recipient1 = { .ul = { 0x9999UL } }; + ulong const fee = 5000UL; + ulong const payer_start = 1000000000UL; + ulong const recipient0_start = 111UL; + ulong const recipient1_start = 222UL; + ulong const first_transfer = 100000000UL; + ulong const second_transfer = payer_start; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + + fd_txn_p_t txns[2]; + test_build_system_transfer_txn( &txns[0], bank, fee_payer, recipient0, first_transfer ); + test_build_system_transfer_txn( &txns[1], bank, fee_payer, recipient1, second_transfer ); + test_execle_run( env, txns, 2UL, 12U, 31UL, 1 ); + + test_assert_bundle_out( env, 2UL, 12U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( !env->execle->txn_out[i].err.is_committable ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==31UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + } + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR)<<24) ); + + fd_frag_meta_t const * rebate_meta = test_out_pack_meta( 0UL ); + FD_TEST( fd_frag_meta_seq_query( rebate_meta )==0UL ); + FD_TEST( rebate_meta->sig==bank->f.slot ); + FD_TEST( rebate_meta->sz>=FD_PACK_REBATE_MIN_SZ ); + fd_pack_rebate_t const * rebate = fd_chunk_to_laddr( env->execle->out_pack->mem, rebate_meta->chunk ); + ulong expected_rebated_cus = 0UL; + ulong expected_data_bytes = 2UL*48UL; + for( ulong i=0UL; i<2UL; i++ ) { + expected_rebated_cus += txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus; + expected_data_bytes += txns[i].payload_sz; + } + FD_TEST( rebate->total_cost_rebate ==expected_rebated_cus ); + FD_TEST( rebate->data_bytes_rebate ==expected_data_bytes ); + FD_TEST( rebate->microblock_cnt_rebate==2UL ); + FD_TEST( rebate->alloc_rebate ==0UL ); + FD_TEST( rebate->ib_result ==0 ); + + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_peer_fail ) { + /* A middle transaction failure skips the rest of the bundle. */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x7979UL } }; + fd_pubkey_t recipient0 = { .ul = { 0x8989UL } }; + fd_pubkey_t recipient1 = { .ul = { 0x9998UL } }; + fd_pubkey_t recipient2 = { .ul = { 0xa9a9UL } }; + ulong const fee = 5000UL; + ulong const payer_start = 1000000000UL; + ulong const recipient0_start = 111UL; + ulong const recipient1_start = 222UL; + ulong const recipient2_start = 333UL; + ulong const first_transfer = 100000000UL; + ulong const second_transfer = payer_start; + ulong const third_transfer = 1UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + test_fund_account( env, &recipient2, recipient2_start ); + + fd_txn_p_t txns[3]; + test_build_system_transfer_txn( &txns[0], bank, fee_payer, recipient0, first_transfer ); + test_build_system_transfer_txn( &txns[1], bank, fee_payer, recipient1, second_transfer ); + test_build_system_transfer_txn( &txns[2], bank, fee_payer, recipient2, third_transfer ); + test_execle_run( env, txns, 3UL, 14U, 35UL, 1 ); + + test_assert_bundle_out( env, 3UL, 14U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + FD_TEST( env->execle->txn_out[2].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[2].details.load_start_ticks ==LONG_MAX ); + FD_TEST( env->execle->txn_out[2].details.check_start_ticks ==LONG_MAX ); + FD_TEST( env->execle->txn_out[2].details.exec_start_ticks ==LONG_MAX ); + FD_TEST( env->execle->txn_out[2].details.commit_start_ticks==LONG_MAX ); + + for( ulong i=0UL; i<3UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( !env->execle->txn_out[i].err.is_committable ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==35UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + } + + /* Txns 0 and 1 were executed, ordering invariant holds */ + for( ulong i=0UL; i<2UL; i++ ) { + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + /* Txn 2 was never executed, all zeros */ + { + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, 2UL ); + FD_TEST( trailer->txn_ns_dt.load_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.check_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.exec_start ==0.f ); + FD_TEST( trailer->txn_ns_dt.commit_start==0.f ); + FD_TEST( trailer->txn_ns_dt.commit_end ==0.f ); + } + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + fd_txn_p_t const * out_txn2 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 2UL )->chunk ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR)<<24) ); + FD_TEST( (out_txn2->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( out_txn0->flags & FD_TXN_P_FLAGS_BUNDLE ); + FD_TEST( out_txn1->flags & FD_TXN_P_FLAGS_BUNDLE ); + FD_TEST( out_txn2->flags & FD_TXN_P_FLAGS_BUNDLE ); + + fd_frag_meta_t const * rebate_meta = test_out_pack_meta( 0UL ); + FD_TEST( fd_frag_meta_seq_query( rebate_meta )==0UL ); + FD_TEST( rebate_meta->sig==bank->f.slot ); + FD_TEST( rebate_meta->sz>=FD_PACK_REBATE_MIN_SZ ); + fd_pack_rebate_t const * rebate = fd_chunk_to_laddr( env->execle->out_pack->mem, rebate_meta->chunk ); + ulong expected_rebated_cus = 0UL; + ulong expected_data_bytes = 3UL*48UL; + for( ulong i=0UL; i<3UL; i++ ) { + expected_rebated_cus += txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus; + expected_data_bytes += txns[i].payload_sz; + } + FD_TEST( rebate->total_cost_rebate ==expected_rebated_cus ); + FD_TEST( rebate->data_bytes_rebate ==expected_data_bytes ); + FD_TEST( rebate->microblock_cnt_rebate==3UL ); + FD_TEST( rebate->alloc_rebate ==0UL ); + FD_TEST( rebate->ib_result ==0 ); + + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start ); + FD_TEST( test_read_lamports( env, &recipient2 )==recipient2_start ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==3UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==2UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_progcache ) { + /* Close a deployed/rooted program in the first transaction, + then try to invoke it in the second transaction (should fail). */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t authority = { .ul = { 0xaaa0UL } }; + fd_pubkey_t recipient = { .ul = { 0xaaa1UL } }; + fd_pubkey_t program = { .ul = { 0xaaa3UL } }; + fd_pubkey_t programdata = { .ul = { 0xaaa4UL } }; + + ulong const authority_start = 1000000000UL; + ulong const recipient_start = 123UL; + ulong const program_lamports = 1000000UL; + ulong const programdata_lamports = 2000000UL; + + test_fund_account( env, &authority, authority_start ); + test_fund_account( env, &recipient, recipient_start ); + + uchar program_state_data[ SIZE_OF_PROGRAM ]; + fd_bpf_state_t program_state = { + .discriminant = FD_BPF_STATE_PROGRAM, + .inner.program.programdata_address = programdata + }; + ulong out_sz = 0UL; + FD_TEST( !fd_bpf_state_encode( &program_state, program_state_data, sizeof(program_state_data), &out_sz ) ); + + uchar programdata_state_data[ PROGRAMDATA_METADATA_SIZE + test_bpf_program_sz ]; + fd_bpf_state_t programdata_state = { + .discriminant = FD_BPF_STATE_PROGRAM_DATA, + .inner.program_data = { + .slot = bank->f.slot - 1UL, + .upgrade_authority_address = authority, + .has_upgrade_authority_address = 1 + } + }; + out_sz = 0UL; + FD_TEST( !fd_bpf_state_encode( &programdata_state, programdata_state_data, PROGRAMDATA_METADATA_SIZE, &out_sz ) ); + fd_memcpy( programdata_state_data + PROGRAMDATA_METADATA_SIZE, test_bpf_program, test_bpf_program_sz ); + + test_put_account_rooted( env, &program, &fd_solana_bpf_loader_upgradeable_program_id, + program_lamports, bank->f.slot-1UL, 1, program_state_data, sizeof(program_state_data) ); + test_put_account_rooted( env, &programdata, &fd_solana_bpf_loader_upgradeable_program_id, + programdata_lamports, bank->f.slot-1UL, 0, + programdata_state_data, sizeof(programdata_state_data) ); + + fd_txn_p_t txns[2]; + test_build_bpf_close_txn( &txns[0], bank, authority, recipient, program, programdata ); + test_build_program_invoke_txn( &txns[1], bank, authority, program ); + test_execle_run( env, txns, 2UL, 16U, 41UL, 1 ); + + test_assert_bundle_out( env, 2UL, 16U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( !env->execle->txn_out[i].err.is_committable ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==41UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + FD_TEST( test_read_lamports( env, &authority )==authority_start ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start ); + FD_TEST( test_read_lamports( env, &program )==program_lamports ); + FD_TEST( test_read_lamports( env, &programdata )==programdata_lamports ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_INSTRUCTION_ERROR_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_nonce_dup ) { + /* Advance the same durable nonce twice */ + test_env_t * env = test_env_create(); + + fd_pubkey_t fee_payer = { .ul = { 0xccc0UL } }; + fd_pubkey_t nonce_key = { .ul = { 0xccc1UL } }; + fd_pubkey_t recipient0 = { .ul = { 0xccc2UL } }; + fd_pubkey_t recipient1 = { .ul = { 0xccc3UL } }; + + ulong const fee_payer_start = 10000000000UL; + ulong const nonce_start = 10000000000UL; + ulong const recipient0_start = 1000000000UL; + ulong const recipient1_start = 1000000000UL; + ulong const transfer0 = 12345UL; + ulong const transfer1 = 67890UL; + ulong const fee = 5000UL; + + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + fd_hash_t stale_blockhash = {0}; + fd_memset( stale_blockhash.uc, 0x42, sizeof(fd_hash_t) ); + fd_hash_t durable_nonce; + test_durable_nonce_from_blockhash( &durable_nonce, &stale_blockhash ); + + test_fund_account( env, &fee_payer, fee_payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + test_put_nonce_account_rooted( env, &nonce_key, &fee_payer, &durable_nonce, nonce_start ); + + fd_txn_p_t txns[2]; + test_build_durable_nonce_transfer_txn( &txns[0], fee_payer, nonce_key, recipient0, &durable_nonce, transfer0, 51UL ); + test_build_durable_nonce_transfer_txn( &txns[1], fee_payer, nonce_key, recipient1, &durable_nonce, transfer1, 52UL ); + test_execle_run( env, txns, 2UL, 20U, 51UL, 1 ); + + test_assert_bundle_out( env, 2UL, 20U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_BLOCKHASH_FAIL_WRONG_NONCE ); + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + FD_TEST( !env->execle->txn_out[0].err.is_committable ); + FD_TEST( !env->execle->txn_out[1].err.is_committable ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( out_txn0->flags & FD_TXN_P_FLAGS_DURABLE_NONCE ); + FD_TEST( out_txn1->flags & FD_TXN_P_FLAGS_DURABLE_NONCE ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BLOCKHASH_FAIL_WRONG_NONCE)<<24) ); + + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==51UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + + FD_TEST( test_read_lamports( env, &fee_payer )==fee_payer_start ); + FD_TEST( test_read_lamports( env, &nonce_key )==nonce_start ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_NONCE_WRONG_BLOCKHASH_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_nonce_dup2 ) { + /* Advance the same nonce account twice with valid durable nonces */ + test_env_t * env = test_env_create(); + + fd_pubkey_t fee_payer = { .ul = { 0xcce0UL } }; + fd_pubkey_t nonce_key = { .ul = { 0xcce1UL } }; + fd_pubkey_t recipient0 = { .ul = { 0xcce2UL } }; + fd_pubkey_t recipient1 = { .ul = { 0xcce3UL } }; + + ulong const fee_payer_start = 10000000000UL; + ulong const nonce_start = 10000000000UL; + ulong const recipient0_start = 1000000000UL; + ulong const recipient1_start = 1000000000UL; + ulong const transfer0 = 12345UL; + ulong const transfer1 = 67890UL; + ulong const fee = 5000UL; + + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + fd_hash_t stale_blockhash = {0}; + fd_memset( stale_blockhash.uc, 0x43, sizeof(fd_hash_t) ); + fd_hash_t durable_nonce0; + test_durable_nonce_from_blockhash( &durable_nonce0, &stale_blockhash ); + + fd_hash_t const * last_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( last_blockhash ); + fd_hash_t durable_nonce1; + test_durable_nonce_from_blockhash( &durable_nonce1, last_blockhash ); + + test_fund_account( env, &fee_payer, fee_payer_start ); + test_fund_account( env, &recipient0, recipient0_start ); + test_fund_account( env, &recipient1, recipient1_start ); + test_put_nonce_account_rooted( env, &nonce_key, &fee_payer, &durable_nonce0, nonce_start ); + + fd_txn_p_t txns[2]; + test_build_durable_nonce_transfer_txn( &txns[0], fee_payer, nonce_key, recipient0, &durable_nonce0, transfer0, 53UL ); + test_build_durable_nonce_transfer_txn( &txns[1], fee_payer, nonce_key, recipient1, &durable_nonce1, transfer1, 54UL ); + test_execle_run( env, txns, 2UL, 22U, 53UL, 1 ); + + test_assert_bundle_out( env, 2UL, 22U ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_BLOCKHASH_NONCE_ALREADY_ADVANCED ); + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + FD_TEST( !env->execle->txn_out[0].err.is_committable ); + FD_TEST( !env->execle->txn_out[1].err.is_committable ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( out_txn0->flags & FD_TXN_P_FLAGS_DURABLE_NONCE ); + FD_TEST( out_txn1->flags & FD_TXN_P_FLAGS_DURABLE_NONCE ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BLOCKHASH_NONCE_ALREADY_ADVANCED)<<24) ); + + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==53UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + + FD_TEST( test_read_lamports( env, &fee_payer )==fee_payer_start ); + FD_TEST( test_read_lamports( env, &nonce_key )==nonce_start ); + FD_TEST( test_read_lamports( env, &recipient0 )==recipient0_start ); + FD_TEST( test_read_lamports( env, &recipient1 )==recipient1_start ); + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_NONCE_ALREADY_ADVANCED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execle_bundle_dup ) { + /* Duplicate transaction in a bundle causing a status cache collision */ + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0xeeeeUL } }; + fd_pubkey_t shared = { .ul = { 0xffffUL } }; + test_fund_account( env, &fee_payer, 1000000000UL ); + + fd_txn_p_t txns[2]; + test_build_empty_txn( &txns[0], bank, fee_payer, shared, 61UL, 0 ); + txns[1] = txns[0]; + test_execle_run( env, txns, 2UL, 24U, 61UL, 1 ); + + test_assert_bundle_out( env, 2UL, 24U ); + FD_TEST( !env->execle->txn_out[0].err.is_committable ); + FD_TEST( !env->execle->txn_out[1].err.is_committable ); + FD_TEST( env->execle->txn_out[0].err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( env->execle->txn_out[1].err.txn_err==FD_RUNTIME_TXN_ERR_ALREADY_PROCESSED ); + + fd_txn_p_t const * out_txn0 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 0UL )->chunk ); + fd_txn_p_t const * out_txn1 = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( 1UL )->chunk ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn0->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_SANITIZE_SUCCESS) ); + FD_TEST( !(out_txn1->flags & FD_TXN_P_FLAGS_EXECUTE_SUCCESS) ); + FD_TEST( (out_txn0->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_BUNDLE_PEER)<<24) ); + FD_TEST( (out_txn1->flags & FD_TXN_P_FLAGS_RESULT_MASK)==((uint)(-FD_RUNTIME_TXN_ERR_ALREADY_PROCESSED)<<24) ); + + for( ulong i=0UL; i<2UL; i++ ) { + fd_txn_p_t const * out_txn = fd_chunk_to_laddr( env->execle->out_poh->mem, test_out_poh_meta( i )->chunk ); + FD_TEST( out_txn->execle_cu.actual_consumed_cus==0U ); + FD_TEST( out_txn->execle_cu.rebated_cus== + txns[i].pack_cu.requested_exec_plus_acct_data_cus + txns[i].pack_cu.non_execution_cus ); + + fd_microblock_trailer_t const * trailer = test_out_poh_trailer_bundle( env, i ); + FD_TEST( trailer->pack_txn_idx==61UL+i ); + FD_TEST( trailer->tips==0UL ); + /* hash not checked: empty bmtree (no EXECUTE_SUCCESS txns) */ + test_assert_txn_ns_dt_ordered( &trailer->txn_ns_dt ); + } + + FD_TEST( env->execle->metrics.txn_landed[ FD_METRICS_ENUM_TRANSACTION_LANDED_V_UNLANDED_IDX ]==2UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_ALREADY_PROCESSED_IDX ]==1UL ); + FD_TEST( env->execle->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_BUNDLE_PEER_IDX ]==1UL ); test_env_destroy( env ); } @@ -310,6 +1544,7 @@ main( int argc, limits->max_live_slots = MAX_LIVE_SLOTS; limits->max_txn_per_slot = MAX_TXN_PER_SLOT; limits->max_txn_write_locks = MAX_TX_ACCOUNT_LOCKS; + limits->wksp_addl_sz = 5UL<<30; mini = fd_svm_test_boot( &argc, &argv, limits ); fd_metrics_register( (ulong *)fd_metrics_new( metrics_scratch, 0UL ) ); From 34f6db4df4548118fa0750ef8c13fb72ae0face6 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 00:57:49 +0000 Subject: [PATCH 03/30] disco: execrp tile unit tests --- src/discof/execrp/Local.mk | 4 + src/discof/execrp/test_execrp_tile.c | 609 +++++++++++++++++++++++ src/flamenco/runtime/tests/fd_svm_mini.c | 7 +- src/flamenco/runtime/tests/fd_svm_mini.h | 4 + 4 files changed, 622 insertions(+), 2 deletions(-) create mode 100644 src/discof/execrp/test_execrp_tile.c diff --git a/src/discof/execrp/Local.mk b/src/discof/execrp/Local.mk index 85925614e1f..03f5c3c1380 100644 --- a/src/discof/execrp/Local.mk +++ b/src/discof/execrp/Local.mk @@ -1,5 +1,9 @@ ifdef FD_HAS_HOSTED ifdef FD_HAS_ALLOCA $(call add-objs,fd_execrp_tile,fd_discof) +ifdef FD_HAS_INT128 +$(call make-unit-test,test_execrp_tile,test_execrp_tile,fd_discof fd_disco fd_choreo fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util) +$(call run-unit-test,test_execrp_tile) +endif endif endif diff --git a/src/discof/execrp/test_execrp_tile.c b/src/discof/execrp/test_execrp_tile.c new file mode 100644 index 00000000000..004b4ec3556 --- /dev/null +++ b/src/discof/execrp/test_execrp_tile.c @@ -0,0 +1,609 @@ +/* test_execrp_tile unit tests replay transaction execution by mocking an + execrp tile context and using fd_svm_mini for runtime state. */ + +#include "fd_execrp_tile.c" +#include "../../ballet/txn/fd_txn_build.h" +#include "../../ballet/txn/fd_compact_u16.h" +#include "../../disco/topo/fd_topob.h" +#include "../../flamenco/accdb/fd_accdb_impl_v1.h" +#include "../../flamenco/accdb/fd_accdb_sync.h" +#include "../../flamenco/runtime/tests/fd_svm_mini.h" +#include "../../flamenco/runtime/fd_system_ids_pp.h" +#include "../../flamenco/runtime/program/fd_system_program.h" +#include "../../util/tmpl/fd_unit_test.c" +#include + +#define MAX_LIVE_SLOTS 32 +#define MAX_TXN_PER_SLOT 32 + +#define TOPO_TAG 2UL + +int volatile const fd_startup_skip_checks = 1; /* fd_startup.c */ + +static fd_svm_mini_t * mini; +static fd_topo_t topo[1]; +static uchar metrics_scratch[ FD_METRICS_FOOTPRINT( 0UL ) ] __attribute__((aligned(FD_METRICS_ALIGN))); + +struct test_env { + void * tile_mem; + fd_svm_mini_t * mini; + fd_execrp_tile_t * execrp; + ulong bank_idx; + + void * allocs[ 16 ]; + ulong alloc_cnt; +}; + +typedef struct test_env test_env_t; + +static fd_topo_obj_t * +test_topo_obj_laddr( fd_topo_t * topo, + char const * obj_type, + char const * wksp_name, + void * laddr ) { + fd_topo_obj_t * obj = fd_topob_obj( topo, obj_type, wksp_name ); + obj->offset = (ulong)fd_wksp_gaddr_fast( topo->workspaces[ obj->wksp_id ].wksp, laddr ); + return obj; +} + +static void +test_topo_link_init( test_env_t * env, + fd_topo_t * topo, + fd_topo_link_t * link ) { + ulong mcache_footprint = fd_mcache_footprint( link->depth, 0UL ); + void * mcache_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_mcache_align(), mcache_footprint, TOPO_TAG ); + FD_TEST( fd_mcache_new( mcache_mem, link->depth, 0UL, 0UL ) ); + link->mcache = fd_mcache_join( mcache_mem ); + FD_TEST( link->mcache ); + topo->objs[ link->mcache_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, mcache_mem ); + + if( link->mtu ) { + ulong data_sz = fd_dcache_req_data_sz( link->mtu, link->depth, link->burst, 1 ); + ulong dcache_footprint = fd_dcache_footprint( data_sz, 0UL ); + void * dcache_mem = fd_wksp_alloc_laddr( env->mini->wksp, fd_dcache_align(), dcache_footprint, TOPO_TAG ); + FD_TEST( fd_dcache_new( dcache_mem, data_sz, 0UL ) ); + link->dcache = fd_dcache_join( dcache_mem ); + FD_TEST( link->dcache ); + topo->objs[ link->dcache_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, dcache_mem ); + } +} + +static fd_topo_link_t * +test_topo_link( char const * name ) { + for( ulong i=0UL; ilink_cnt; i++ ) { + if( !strcmp( topo->links[i].name, name ) ) return &topo->links[i]; + } + FD_LOG_ERR(( "missing test topo link %s", name )); +} + +static test_env_t * +test_env_create( void ) { + test_env_t * env = fd_wksp_alloc_laddr( mini->wksp, alignof(test_env_t), sizeof(test_env_t), TOPO_TAG ); + FD_TEST( env ); + memset( env, 0, sizeof(test_env_t) ); + + env->mini = mini; + + fd_svm_mini_params_t params[1]; + fd_svm_mini_params_default( params ); + ulong root_idx = fd_svm_mini_reset( env->mini, params ); + env->bank_idx = fd_svm_mini_attach_child( env->mini, root_idx, 2UL ); + + fd_topob_new( topo, "execrp" ); + fd_topo_wksp_t * topo_wksp = fd_topob_wksp( topo, "execrp" ); + topo_wksp->wksp = env->mini->wksp; + fd_topo_tile_t * topo_tile = fd_topob_tile( topo, "execrp", "execrp", "execrp", 0UL, 0, 0, 0 ); + topo_tile->execrp.max_live_slots = MAX_LIVE_SLOTS; + topo_tile->execrp.accdb_max_depth = MAX_LIVE_SLOTS; + + void * tile_mem = fd_wksp_alloc_laddr( env->mini->wksp, scratch_align(), scratch_footprint( topo_tile ), TOPO_TAG ); + FD_TEST( tile_mem ); + env->tile_mem = tile_mem; + topo->objs[ topo_tile->tile_obj_id ].offset = fd_wksp_gaddr_fast( env->mini->wksp, tile_mem ); + + fd_topo_link_t * replay_execrp = fd_topob_link( topo, "replay_execrp", "execrp", 4UL, sizeof(fd_execrp_task_msg_t), 1UL ); + fd_topo_link_t * execrp_replay = fd_topob_link( topo, "execrp_replay", "execrp", 4UL, sizeof(fd_execrp_task_done_msg_t), 1UL ); + test_topo_link_init( env, topo, replay_execrp ); + test_topo_link_init( env, topo, execrp_replay ); + fd_topob_tile_in ( topo, "execrp", 0UL, "execrp", "replay_execrp", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); + fd_topob_tile_out( topo, "execrp", 0UL, "execrp_replay", 0UL ); + + fd_funk_t * funk = fd_accdb_user_v1_funk( env->mini->accdb ); + fd_topo_obj_t * funk_obj = test_topo_obj_laddr( topo, "funk", "execrp", funk->shmem ); + fd_topo_obj_t * funk_locks_obj = test_topo_obj_laddr( topo, "funk_locks", "execrp", (void *)funk->txn_lock ); + fd_topo_obj_t * progcache_obj = test_topo_obj_laddr( topo, "progcache", "execrp", env->mini->progcache->join->shmem ); + fd_topo_obj_t * banks_obj = test_topo_obj_laddr( topo, "banks", "execrp", env->mini->banks ); + fd_topo_obj_t * txncache_obj = test_topo_obj_laddr( topo, "txncache", "execrp", env->mini->txncache_shmem ); + fd_topo_obj_t * acc_pool_obj = test_topo_obj_laddr( topo, "acc_pool", "execrp", env->mini->acc_pool ); + FD_TEST( fd_pod_insertf_ulong( topo->props, funk_obj->id, "funk" ) ); + FD_TEST( fd_pod_insertf_ulong( topo->props, funk_locks_obj->id, "funk_locks" ) ); + FD_TEST( fd_pod_insertf_ulong( topo->props, progcache_obj->id, "progcache" ) ); + FD_TEST( fd_pod_insertf_ulong( topo->props, banks_obj->id, "banks" ) ); + + topo_tile->execrp.txncache_obj_id = txncache_obj->id; + topo_tile->execrp.acc_pool_obj_id = acc_pool_obj->id; + + unprivileged_init( topo, topo_tile ); + + env->execrp = tile_mem; + env->execrp->funk_pkey = -1; + env->execrp->replay_in->mem = replay_execrp->dcache; + env->execrp->replay_in->chunk0 = fd_dcache_compact_chunk0( replay_execrp->dcache, replay_execrp->dcache ); + env->execrp->replay_in->wmark = fd_dcache_compact_wmark ( replay_execrp->dcache, replay_execrp->dcache, replay_execrp->mtu ); + env->execrp->replay_in->chunk = env->execrp->replay_in->chunk0; + + env->execrp->execrp_replay_out->mem = execrp_replay->dcache; + env->execrp->execrp_replay_out->chunk0 = fd_dcache_compact_chunk0( execrp_replay->dcache, execrp_replay->dcache ); + env->execrp->execrp_replay_out->wmark = fd_dcache_compact_wmark ( execrp_replay->dcache, execrp_replay->dcache, execrp_replay->mtu ); + env->execrp->execrp_replay_out->chunk = env->execrp->execrp_replay_out->chunk0; + return env; +} + +static void +test_env_destroy( test_env_t * env ) { + ulong tag = TOPO_TAG; + fd_wksp_tag_free( env->mini->wksp, &tag, 1UL ); +} + +#define TEST_CHECKED_ADD_TO_TXN_DATA( _begin, _cur_data, _to_add, _sz ) __extension__({ \ + if( FD_UNLIKELY( (*_cur_data)+(_sz)>(_begin)+FD_TXN_MTU ) ) return ULONG_MAX; \ + fd_memcpy( *_cur_data, _to_add, (_sz) ); \ + *_cur_data += (_sz); \ +}) + +#define TEST_CHECKED_ADD_CU16_TO_TXN_DATA( _begin, _cur_data, _to_add ) __extension__({ \ + do { \ + uchar _buf[3]; \ + ulong _sz = (ulong)fd_cu16_enc( (ushort)(_to_add), _buf ); \ + TEST_CHECKED_ADD_TO_TXN_DATA( _begin, _cur_data, _buf, _sz ); \ + } while(0); \ +}) + +static ulong +test_txn_serialize_empty( uchar * txn_raw_begin, + fd_signature_t * signature, + ulong readonly_signed_cnt, + ulong readonly_unsigned_cnt, + fd_pubkey_t * account_keys, + ulong account_key_cnt, + fd_hash_t const * recent_blockhash ) { + uchar * txn_raw_cur = txn_raw_begin; + + uchar signature_cnt = 1U; + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &signature_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, signature, FD_TXN_SIGNATURE_SZ ); + + uchar header_b0 = (uchar)0x80UL; + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &header_b0, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &signature_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &readonly_signed_cnt, sizeof(uchar) ); + TEST_CHECKED_ADD_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, &readonly_unsigned_cnt, sizeof(uchar) ); + + TEST_CHECKED_ADD_CU16_TO_TXN_DATA( txn_raw_begin, &txn_raw_cur, account_key_cnt ); + for( ulong i=0UL; if.block_hash_queue ); + FD_TEST( recent_blockhash ); + ulong sz = test_txn_serialize_empty( out->payload, &signature, 0UL, (ulong)!!extra_readonly, + account_keys, 2UL, recent_blockhash ); + FD_TEST( sz!=ULONG_MAX ); + FD_TEST( fd_txn_parse( out->payload, sz, TXN( out ), NULL ) ); + out->payload_sz = (ushort)sz; + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; +} + +static void +test_build_system_transfer_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t from, + fd_pubkey_t to, + ulong lamports ) { + fd_system_program_instruction_t instr = { + .discriminant = FD_SYSTEM_PROGRAM_INSTR_TRANSFER, + .inner.transfer = lamports + }; + uchar instr_data[ 16 ]; + ulong instr_data_sz = 0UL; + FD_TEST( !fd_system_program_instruction_encode( &instr, instr_data, sizeof(instr_data), &instr_data_sz ) ); + + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 2UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &from ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &fd_solana_system_program_id, instr_data, instr_data_sz ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &from, FD_TXN_ACCT_CAT_WRITABLE | FD_TXN_ACCT_CAT_SIGNER ) ); + FD_TEST( fd_txn_builder_instr_account_push( builder, &to, FD_TXN_ACCT_CAT_WRITABLE ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_build_missing_program_txn( fd_txn_p_t * out, + fd_bank_t * bank, + fd_pubkey_t fee_payer, + fd_pubkey_t missing_program ) { + fd_hash_t const * recent_blockhash = fd_blockhashes_peek_last_hash( &bank->f.block_hash_queue ); + FD_TEST( recent_blockhash ); + + fd_txn_builder_t builder[1]; + FD_TEST( fd_txn_builder_new( builder, 5UL ) ); + FD_TEST( fd_txn_builder_fee_payer_set( builder, &fee_payer ) ); + fd_txn_builder_blockhash_set( builder, recent_blockhash ); + FD_TEST( fd_txn_builder_instr_open( builder, &missing_program, NULL, 0UL ) ); + fd_txn_builder_instr_close( builder ); + + fd_memset( out, 0, sizeof(fd_txn_p_t) ); + FD_TEST( fd_txn_build_p( builder, out ) ); + out->pack_cu.non_execution_cus = 1000U; + out->pack_cu.requested_exec_plus_acct_data_cus = 300000U; + fd_txn_builder_delete( builder ); +} + +static void +test_fund_account( test_env_t * env, + fd_pubkey_t const * pubkey, + ulong lamports ) { + fd_xid_t xid = fd_svm_mini_xid( env->mini, env->bank_idx ); + fd_svm_mini_add_lamports( env->mini, &xid, pubkey, lamports ); +} + +static ulong +test_read_lamports( test_env_t * env, + fd_pubkey_t const * pubkey ) { + fd_xid_t xid = fd_svm_mini_xid( env->mini, env->bank_idx ); + fd_accdb_ro_t ro[1]; + FD_TEST( fd_accdb_open_ro( env->mini->accdb, ro, &xid, pubkey ) ); + ulong lamports = fd_accdb_ref_lamports( ro ); + fd_accdb_close_ro( env->mini->accdb, ro ); + return lamports; +} + +static fd_stem_context_t * +test_stem( fd_execrp_tile_t * ctx, + fd_stem_context_t * stem ) { + static fd_frag_meta_t * mcaches[FD_TOPO_MAX_LINKS]; + static ulong seqs[FD_TOPO_MAX_LINKS]; + static ulong depths[FD_TOPO_MAX_LINKS]; + static ulong cr_avail[FD_TOPO_MAX_LINKS]; + static ulong min_cr_avail; + static int out_reliable[FD_TOPO_MAX_LINKS]; + + fd_topo_link_t const * execrp_replay = test_topo_link( "execrp_replay" ); + + memset( mcaches, 0, sizeof(mcaches) ); + memset( seqs, 0, sizeof(seqs) ); + memset( depths, 0, sizeof(depths) ); + memset( out_reliable, 0, sizeof(out_reliable) ); + for( ulong i=0UL; iexecrp_replay_out->idx ] = execrp_replay->mcache; + depths [ ctx->execrp_replay_out->idx ] = execrp_replay->depth; + seqs [ ctx->execrp_replay_out->idx ] = fd_mcache_seq_query( fd_mcache_seq_laddr_const( mcaches[ ctx->execrp_replay_out->idx ] ) ); + min_cr_avail = ULONG_MAX; + + *stem = (fd_stem_context_t) { + .mcaches = mcaches, + .seqs = seqs, + .depths = depths, + .cr_avail = cr_avail, + .min_cr_avail = &min_cr_avail, + .cr_decrement_amount = 1UL, + .out_reliable = out_reliable, + }; + return stem; +} + +static fd_frag_meta_t const * +test_out_meta( ulong seq ) { + fd_topo_link_t const * execrp_replay = test_topo_link( "execrp_replay" ); + return execrp_replay->mcache + fd_mcache_line_idx( seq, execrp_replay->depth ); +} + +static fd_execrp_task_done_msg_t const * +test_out_msg( test_env_t * env, + fd_frag_meta_t const * meta ) { + return fd_chunk_to_laddr( env->execrp->execrp_replay_out->mem, meta->chunk ); +} + +static fd_execrp_task_done_msg_t const * +test_assert_out_msg( test_env_t * env, + ulong seq, + ulong task_type ) { + fd_frag_meta_t const * meta = test_out_meta( seq ); + FD_TEST( fd_frag_meta_seq_query( meta )==seq ); + FD_TEST( meta->sig==((task_type<<32) | env->execrp->tile_idx) ); + FD_TEST( meta->sz==sizeof(fd_execrp_task_done_msg_t) ); + FD_TEST( meta->chunk>=env->execrp->execrp_replay_out->chunk0 ); + FD_TEST( meta->chunk<=env->execrp->execrp_replay_out->wmark ); + + fd_execrp_task_done_msg_t const * out_msg = test_out_msg( env, meta ); + FD_TEST( out_msg->bank_idx==env->bank_idx ); + return out_msg; +} + +static fd_execrp_task_done_msg_t const * +test_execrp_run( test_env_t * env, + fd_txn_p_t * txn, + ulong txn_idx ) { + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + FD_TEST( bank ); + + ulong in_chunk = env->execrp->replay_in->chunk0; + fd_execrp_txn_exec_msg_t * in_msg = fd_chunk_to_laddr( env->execrp->replay_in->mem, in_chunk ); + fd_memset( in_msg, 0, sizeof(fd_execrp_txn_exec_msg_t) ); + in_msg->bank_idx = env->bank_idx; + in_msg->txn_idx = txn_idx; + in_msg->capture_txn_idx = txn_idx; + fd_memcpy( in_msg->txn, txn, sizeof(fd_txn_p_t) ); + + fd_stem_context_t stem[1]; + ulong const sig = (FD_EXECRP_TT_TXN_EXEC<<32) | env->execrp->tile_idx; + FD_TEST( !returnable_frag( env->execrp, env->execrp->replay_in->idx, 0UL, sig, in_chunk, + sizeof(fd_execrp_txn_exec_msg_t), 0UL, 0UL, + fd_frag_meta_ts_comp( fd_tickcount() ), test_stem( env->execrp, stem ) ) ); + + fd_execrp_task_done_msg_t const * out_msg = test_assert_out_msg( env, 0UL, FD_EXECRP_TT_TXN_EXEC ); + FD_TEST( out_msg->txn_exec->txn_idx==txn_idx ); + FD_TEST( out_msg->txn_exec->slot==bank->f.slot ); + return out_msg; +} + +FD_UNIT_TEST( execrp_seccomp ) { + int out_fds[2]; + ulong nfds = populate_allowed_fds( NULL, NULL, 2UL, out_fds ); + FD_TEST( nfds>=1 && nfds<=2 ); + FD_TEST( out_fds[0]==STDERR_FILENO ); + if( nfds==2 ) FD_TEST( out_fds[1]==fd_log_private_logfile_fd() ); + + struct sock_filter filter[ 32 ]; + populate_allowed_seccomp( NULL, NULL, 32UL, filter ); +} + +FD_UNIT_TEST( execrp_metrics_write ) { + test_env_t * env = test_env_create(); + + env->execrp->metrics.sigverify_cnt = 2UL; + env->execrp->metrics.poh_hash_cnt = 3UL; + env->execrp->metrics.txn_load_cum_ticks = 5UL; + env->execrp->metrics.txn_check_cum_ticks = 7UL; + env->execrp->metrics.txn_exec_cum_ticks = 11UL; + env->execrp->metrics.txn_commit_cum_ticks = 13UL; + env->execrp->metrics.txn_result[ FD_METRICS_ENUM_TRANSACTION_RESULT_V_SUCCESS_IDX ] = 1UL; + env->execrp->runtime->metrics.cu_cum = 17UL; + env->execrp->runtime->metrics.vm_exec_cum_ticks = 19UL; + + metrics_write( env->execrp ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_sigverify ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x9191UL } }; + fd_pubkey_t data_acct = { .ul = { 0x9292UL } }; + + fd_txn_p_t txn[1]; + test_build_empty_txn( txn, bank, fee_payer, data_acct, 91UL, 0 ); + + ulong in_chunk = env->execrp->replay_in->chunk0; + fd_execrp_txn_sigverify_msg_t * in_msg = fd_chunk_to_laddr( env->execrp->replay_in->mem, in_chunk ); + fd_memset( in_msg, 0, sizeof(fd_execrp_txn_sigverify_msg_t) ); + in_msg->bank_idx = env->bank_idx; + in_msg->txn_idx = 91UL; + fd_memcpy( in_msg->txn, txn, sizeof(fd_txn_p_t) ); + + fd_stem_context_t stem[1]; + ulong const sig = (FD_EXECRP_TT_TXN_SIGVERIFY<<32) | env->execrp->tile_idx; + FD_TEST( !returnable_frag( env->execrp, env->execrp->replay_in->idx, 0UL, sig, in_chunk, + sizeof(fd_execrp_txn_sigverify_msg_t), 0UL, 0UL, 0UL, + test_stem( env->execrp, stem ) ) ); + + fd_execrp_task_done_msg_t const * out_msg = test_assert_out_msg( env, 0UL, FD_EXECRP_TT_TXN_SIGVERIFY ); + FD_TEST( out_msg->txn_sigverify->txn_idx==91UL ); + FD_TEST( out_msg->txn_sigverify->err ); + FD_TEST( env->execrp->metrics.sigverify_cnt==TXN(txn)->signature_cnt ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_poh_hash ) { + test_env_t * env = test_env_create(); + + ulong in_chunk = env->execrp->replay_in->chunk0; + fd_execrp_poh_hash_msg_t * in_msg = fd_chunk_to_laddr( env->execrp->replay_in->mem, in_chunk ); + fd_memset( in_msg, 0, sizeof(fd_execrp_poh_hash_msg_t) ); + in_msg->bank_idx = env->bank_idx; + in_msg->mblk_idx = 92UL; + in_msg->hashcnt = 3UL; + for( ulong i=0UL; ihash->uc[i] = (uchar)i; + + fd_hash_t expected[1]; + fd_sha256_hash_32_repeated( in_msg->hash, expected, in_msg->hashcnt ); + + fd_stem_context_t stem[1]; + ulong const sig = (FD_EXECRP_TT_POH_HASH<<32) | env->execrp->tile_idx; + FD_TEST( !returnable_frag( env->execrp, env->execrp->replay_in->idx, 0UL, sig, in_chunk, + sizeof(fd_execrp_poh_hash_msg_t), 0UL, 0UL, 0UL, + test_stem( env->execrp, stem ) ) ); + + fd_execrp_task_done_msg_t const * out_msg = test_assert_out_msg( env, 0UL, FD_EXECRP_TT_POH_HASH ); + FD_TEST( out_msg->poh_hash->mblk_idx==in_msg->mblk_idx ); + FD_TEST( out_msg->poh_hash->hashcnt ==in_msg->hashcnt ); + FD_TEST( !memcmp( out_msg->poh_hash->hash, expected, sizeof(fd_hash_t) ) ); + FD_TEST( env->execrp->metrics.poh_hash_cnt==in_msg->hashcnt ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_simple_ok ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x1111UL } }; + fd_pubkey_t recipient = { .ul = { 0x2222UL } }; + ulong const payer_start = 1000000000UL; + ulong const recipient_start = 1UL; + ulong const transfer = 1234567UL; + ulong const fee = 5000UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient, recipient_start ); + + fd_txn_p_t txn[1]; + test_build_system_transfer_txn( txn, bank, fee_payer, recipient, transfer ); + fd_execrp_task_done_msg_t const * out_msg = test_execrp_run( env, txn, 18UL ); + + FD_TEST( env->execrp->txn_out.err.is_committable ); + FD_TEST( env->execrp->txn_out.err.txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( out_msg->txn_exec->is_committable ); + FD_TEST( out_msg->txn_exec->txn_err==FD_RUNTIME_EXECUTE_SUCCESS ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee-transfer ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start+transfer ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_simple_fee_payer_fail ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t missing_fee_payer = { .ul = { 0x3333UL } }; + fd_pubkey_t data_acct = { .ul = { 0x4444UL } }; + ulong const data_acct_start = 777UL; + test_fund_account( env, &data_acct, data_acct_start ); + + fd_txn_p_t txn[1]; + test_build_empty_txn( txn, bank, missing_fee_payer, data_acct, 12UL, 0 ); + fd_execrp_task_done_msg_t const * out_msg = test_execrp_run( env, txn, 19UL ); + + FD_TEST( !env->execrp->txn_out.err.is_committable ); + FD_TEST( env->execrp->txn_out.err.txn_err==FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND ); + FD_TEST( !out_msg->txn_exec->is_committable ); + FD_TEST( out_msg->txn_exec->txn_err==FD_RUNTIME_TXN_ERR_ACCOUNT_NOT_FOUND ); + FD_TEST( test_read_lamports( env, &data_acct )==data_acct_start ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_simple_error ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x5151UL } }; + fd_pubkey_t recipient = { .ul = { 0x6262UL } }; + ulong const payer_start = 1000000UL; + ulong const recipient_start = 1234UL; + ulong const fee = 5000UL; + ulong const transfer = payer_start; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + test_fund_account( env, &recipient, recipient_start ); + + fd_txn_p_t txn[1]; + test_build_system_transfer_txn( txn, bank, fee_payer, recipient, transfer ); + fd_execrp_task_done_msg_t const * out_msg = test_execrp_run( env, txn, 20UL ); + + FD_TEST( env->execrp->txn_out.err.is_committable ); + FD_TEST( !env->execrp->txn_out.err.is_fees_only ); + FD_TEST( env->execrp->txn_out.err.txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + FD_TEST( out_msg->txn_exec->is_committable ); + FD_TEST( !out_msg->txn_exec->is_fees_only ); + FD_TEST( out_msg->txn_exec->txn_err==FD_RUNTIME_TXN_ERR_INSTRUCTION_ERROR ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee ); + FD_TEST( test_read_lamports( env, &recipient )==recipient_start ); + + test_env_destroy( env ); +} + +FD_UNIT_TEST( execrp_simple_fees_only ) { + test_env_t * env = test_env_create(); + fd_bank_t * bank = fd_svm_mini_bank( env->mini, env->bank_idx ); + + fd_pubkey_t fee_payer = { .ul = { 0x7171UL } }; + fd_pubkey_t missing_program = { .ul = { 0x7272UL } }; + ulong const payer_start = 1000000UL; + ulong const fee = 5000UL; + + fd_blockhash_info_t * blockhash_info = (fd_blockhash_info_t *)fd_blockhashes_peek_last( &bank->f.block_hash_queue ); + FD_TEST( blockhash_info ); + blockhash_info->lamports_per_signature = fee; + + test_fund_account( env, &fee_payer, payer_start ); + + fd_txn_p_t txn[1]; + test_build_missing_program_txn( txn, bank, fee_payer, missing_program ); + fd_execrp_task_done_msg_t const * out_msg = test_execrp_run( env, txn, 21UL ); + + FD_TEST( env->execrp->txn_out.err.is_committable ); + FD_TEST( env->execrp->txn_out.err.is_fees_only ); + FD_TEST( env->execrp->txn_out.err.txn_err==FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND ); + FD_TEST( out_msg->txn_exec->is_committable ); + FD_TEST( out_msg->txn_exec->is_fees_only ); + FD_TEST( out_msg->txn_exec->txn_err==FD_RUNTIME_TXN_ERR_PROGRAM_ACCOUNT_NOT_FOUND ); + FD_TEST( test_read_lamports( env, &fee_payer )==payer_start-fee ); + + test_env_destroy( env ); +} + +int +main( int argc, + char ** argv ) { + fd_svm_mini_limits_t limits[1]; + fd_svm_mini_limits_default( limits ); + limits->max_live_slots = MAX_LIVE_SLOTS; + limits->max_txn_per_slot = MAX_TXN_PER_SLOT; + limits->max_txn_write_locks = MAX_TX_ACCOUNT_LOCKS; + limits->wksp_addl_sz = 5UL<<30; + + mini = fd_svm_test_boot( &argc, &argv, limits ); + fd_metrics_register( (ulong *)fd_metrics_new( metrics_scratch, 0UL ) ); + + fd_unit_tests( argc, argv ); + + FD_LOG_NOTICE(( "pass" )); + fd_svm_test_halt( mini ); + return 0; +} diff --git a/src/flamenco/runtime/tests/fd_svm_mini.c b/src/flamenco/runtime/tests/fd_svm_mini.c index 82d92ec0c46..7d7c8742adc 100644 --- a/src/flamenco/runtime/tests/fd_svm_mini.c +++ b/src/flamenco/runtime/tests/fd_svm_mini.c @@ -27,7 +27,8 @@ #include static fd_wksp_t * -fd_wksp_new_lazy( ulong footprint ) { +fd_wksp_new_lazy( ulong footprint, + ulong addl_part_cnt ) { footprint = fd_ulong_align_up( footprint, FD_SHMEM_NORMAL_PAGE_SZ ); void * mem = mmap( NULL, footprint, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0 ); if( FD_UNLIKELY( mem==MAP_FAILED ) ) { @@ -37,6 +38,7 @@ fd_wksp_new_lazy( ulong footprint ) { ulong part_max = fd_wksp_part_max_est( footprint, 64UL<<10 ); FD_TEST( part_max ); + part_max += addl_part_cnt; ulong data_max = fd_wksp_data_max_est( footprint, part_max ); FD_TEST( data_max ); fd_wksp_t * wksp = fd_wksp_join( fd_wksp_new( mem, "wksp", 1U, part_max, data_max ) ); @@ -79,7 +81,7 @@ fd_svm_test_boot( int * pargc, } else { fallback: FD_LOG_NOTICE(( "--page-sz not specified, using lazy paged memory" )); - wksp = fd_wksp_new_lazy( wksp_sz ); + wksp = fd_wksp_new_lazy( wksp_sz, limits->wksp_addl_part_cnt ); } if( FD_UNLIKELY( !wksp ) ) FD_LOG_ERR(( "Unable to attach to wksp" )); @@ -123,6 +125,7 @@ fd_svm_mini_wksp_data_max( fd_svm_mini_limits_t const * limits ) { sz += WKSP_ALLOC( fd_vm_align(), fd_vm_footprint() ); sz += WKSP_ALLOC( 16UL, limits->max_account_space_bytes ); sz += WKSP_ALLOC( 1UL, limits->max_progcache_heap_bytes ); + sz += WKSP_ALLOC( 16UL, limits->wksp_addl_sz ); # undef WKSP_ALLOC return sz; diff --git a/src/flamenco/runtime/tests/fd_svm_mini.h b/src/flamenco/runtime/tests/fd_svm_mini.h index 7e401337f5d..c139e080309 100644 --- a/src/flamenco/runtime/tests/fd_svm_mini.h +++ b/src/flamenco/runtime/tests/fd_svm_mini.h @@ -78,6 +78,10 @@ struct fd_svm_mini_limits { /* wksp alloc tag (0 uses default) */ ulong wksp_tag; + + /* additional wksp partitions / data size */ + ulong wksp_addl_part_cnt; + ulong wksp_addl_sz; }; typedef struct fd_svm_mini_limits fd_svm_mini_limits_t; From 3ab790697874c2dbc69d1db747130d2a41345e85 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 18:44:40 +0000 Subject: [PATCH 04/30] Update bug bounty URL --- SECURITY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SECURITY.md b/SECURITY.md index e4a9a87230d..c17dd099ecf 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -10,7 +10,7 @@ The following document describes various aspects of the Firedancer security prog # Bug Bounty Program -Security-relevant bugs in Firedancer v0.1 should be submitted to our [Immunefi bug bounty program](https://immunefi.com/bug-bounty/firedancer/). +Security-relevant bugs in Firedancer v0.1 should be submitted to our [Immunefi bug bounty program](https://immunefi.com/bug-bounty/Frankendancer/). Under the terms and conditions of the program, you may be eligible for a reward. Code outside the scope of the bug bounty program is still in development. From 94ceeac925a9c8582a16fc2e3e898e6d874d8e76 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 17:56:26 +0000 Subject: [PATCH 05/30] net: apply FD_NET_BOND_SLAVE_MAX limit --- src/disco/net/fd_net_tile_topo.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/disco/net/fd_net_tile_topo.c b/src/disco/net/fd_net_tile_topo.c index c00a4d247be..3d98204889e 100644 --- a/src/disco/net/fd_net_tile_topo.c +++ b/src/disco/net/fd_net_tile_topo.c @@ -112,6 +112,10 @@ fd_topos_net_tiles( fd_topo_t * topo, for( slave_cnt=0U; /* */ !fd_bonding_slave_iter_done( iter ); slave_cnt++, fd_bonding_slave_iter_next( iter ) ) { + if( FD_UNLIKELY( slave_cnt>=FD_NET_BOND_SLAVE_MAX ) ) { + FD_LOG_ERR(( "bond interface %s has too many slave devices; max is %u (see [net.xdp.native_bond])", + net_cfg->interface, FD_NET_BOND_SLAVE_MAX )); + } uint if_idx = if_nametoindex( fd_bonding_slave_iter_ele( iter ) ); if( FD_UNLIKELY( !if_idx ) ) FD_LOG_ERR(( "if_nametoindex(%s) failed", fd_bonding_slave_iter_ele( iter ) )); devices[ slave_cnt ] = if_idx; From aa1e199c889a70ab5154b0e02784d9cc06d2ea9b Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 18:12:02 +0000 Subject: [PATCH 06/30] tls: fix alert code when server cert is invalid --- src/waltz/tls/fd_tls.c | 7 +- src/waltz/tls/fd_tls_proto.c | 5 +- src/waltz/tls/test_tls.c | 138 +++++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+), 3 deletions(-) diff --git a/src/waltz/tls/fd_tls.c b/src/waltz/tls/fd_tls.c index 6a6f6770405..bcce2890822 100644 --- a/src/waltz/tls/fd_tls.c +++ b/src/waltz/tls/fd_tls.c @@ -829,8 +829,11 @@ fd_tls_handle_cert_chain( fd_tls_estate_base_t * const base, fd_tls_extract_cert_pubkey_res_t extract = fd_tls_extract_cert_pubkey( cert_chain, cert_chain_sz, fd_uint_if( is_rpk, FD_TLS_CERTTYPE_RAW_PUBKEY, FD_TLS_CERTTYPE_X509 ) ); - if( FD_UNLIKELY( !extract.pubkey ) ) - return fd_tls_alert( base, extract.alert, extract.reason ); + if( FD_UNLIKELY( !extract.pubkey ) ) { + uint alert = extract.alert ? extract.alert : FD_TLS_ALERT_DECODE_ERROR; + ushort reason = extract.reason ? extract.reason : FD_TLS_REASON_CERT_PARSE; + return fd_tls_alert( base, alert, reason ); + } if( expected_pubkey ) if( FD_UNLIKELY( 0!=memcmp( extract.pubkey, expected_pubkey, 32UL ) ) ) diff --git a/src/waltz/tls/fd_tls_proto.c b/src/waltz/tls/fd_tls_proto.c index 6cd9ad1b2c1..164f0945ef8 100644 --- a/src/waltz/tls/fd_tls_proto.c +++ b/src/waltz/tls/fd_tls_proto.c @@ -1061,6 +1061,9 @@ fd_tls_extract_cert_pubkey( uchar const * cert_chain, uint cert_type ) { fd_tls_extract_cert_pubkey_res_t res; long ret = fd_tls_extract_cert_pubkey_( &res, cert_chain, cert_chain_sz, cert_type ); - (void)ret; + if( FD_UNLIKELY( ret<0L && !res.alert ) ) { + res.alert = (uint)(-ret); + res.reason = FD_TLS_REASON_CERT_PARSE; + } return res; } diff --git a/src/waltz/tls/test_tls.c b/src/waltz/tls/test_tls.c index 072e6a9a492..5652a660495 100644 --- a/src/waltz/tls/test_tls.c +++ b/src/waltz/tls/test_tls.c @@ -327,6 +327,142 @@ test_tls_server_wrong_ciphersuite( fd_rng_t * rng ) { fd_tls_delete( fd_tls_leave( client ) ); } +static void +test_tls_truncated_cert_extract( void ) { + + { + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( NULL, 0UL, FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( (uchar const *)"", 0UL, FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { 0x00 }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { 0x00, 0x00, 0x00 }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { + 0x00, /* certificate_request_context length = 0 */ + 0x00, 0x00, 0x20, /* cert_list_sz = 32 (nonzero) */ + }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { + 0x00, /* certificate_request_context length = 0 */ + 0x00, 0x00, 0x20, /* cert_list_sz = 32 */ + 0x00, 0x00, 0x20, /* cert_sz = 32 (but only 0 bytes follow) */ + }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { + 0x00, /* certificate_request_context length = 0 */ + 0x00, 0x00, 0x00, /* cert_list_sz = 0 */ + }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_X509 ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_BAD_CERTIFICATE ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_CHAIN_EMPTY ); + } + + { + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( NULL, 0UL, FD_TLS_CERTTYPE_RAW_PUBKEY ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } + + { + uchar const cert_body[] = { 0x00 }; + fd_tls_extract_cert_pubkey_res_t res = + fd_tls_extract_cert_pubkey( cert_body, sizeof(cert_body), FD_TLS_CERTTYPE_RAW_PUBKEY ); + FD_TEST( !res.pubkey ); + FD_TEST( res.alert == FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( res.reason == FD_TLS_REASON_CERT_PARSE ); + } +} + +static void +test_tls_truncated_cert_handshake( fd_rng_t * rng ) { + + fd_tls_t _client[1]; fd_tls_t * client = fd_tls_join( fd_tls_new( _client ) ); + fd_tls_t _server[1]; fd_tls_t * server = fd_tls_join( fd_tls_new( _server ) ); + prepare_tls_pair( rng, client, server ); + + fd_tls_estate_cli_t cli_hs[1]; + FD_TEST( fd_tls_estate_cli_new( cli_hs ) ); + + cli_hs->base.state = FD_TLS_HS_WAIT_CERT_CR; + cli_hs->server_pubkey_pin = 0; + + uchar record[] = { + FD_TLS_MSG_CERT, /* type = Certificate */ + 0x00, 0x00, 0x01, /* msg body length = 1 byte */ + 0x00, /* certificate_request_context length = 0 */ + }; + + long res = fd_tls_client_handshake( client, cli_hs, record, sizeof(record), FD_TLS_LEVEL_HANDSHAKE ); + FD_TEST( res == -(long)FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( cli_hs->base.reason == FD_TLS_REASON_CERT_CR_PARSE ); + FD_TEST( cli_hs->base.state != FD_TLS_HS_WAIT_CV ); + + /* Zero-length body — FD_TLS_SKIP_FIELD fails at opaque_sz */ + FD_TEST( fd_tls_estate_cli_new( cli_hs ) ); + cli_hs->base.state = FD_TLS_HS_WAIT_CERT_CR; + cli_hs->server_pubkey_pin = 0; + + uchar record_empty[] = { + FD_TLS_MSG_CERT, + 0x00, 0x00, 0x00, /* msg body length = 0 */ + }; + + res = fd_tls_client_handshake( client, cli_hs, record_empty, sizeof(record_empty), FD_TLS_LEVEL_HANDSHAKE ); + FD_TEST( res == -(long)FD_TLS_ALERT_DECODE_ERROR ); + FD_TEST( cli_hs->base.reason == FD_TLS_REASON_CERT_CR_PARSE ); + FD_TEST( cli_hs->base.state != FD_TLS_HS_WAIT_CV ); + + fd_tls_estate_cli_delete( cli_hs ); + fd_tls_delete( fd_tls_leave( server ) ); + fd_tls_delete( fd_tls_leave( client ) ); +} + int main( int argc, char ** argv) { @@ -337,6 +473,8 @@ main( int argc, test_tls_pair( rng ); test_tls_client_wrong_ciphersuite( rng ); test_tls_server_wrong_ciphersuite( rng ); + test_tls_truncated_cert_extract(); + test_tls_truncated_cert_handshake( rng ); fd_rng_delete( fd_rng_leave( rng ) ); FD_LOG_NOTICE(( "pass" )); From 68494669d5cbf1d6f4224b013b8581b04ba3311c Mon Sep 17 00:00:00 2001 From: Philip Taffet Date: Tue, 26 May 2026 22:08:40 +0000 Subject: [PATCH 07/30] configure/ethtool: route GRE packets to queue 0 when configured --- src/app/fdctl/config/default.toml | 15 ++++ src/app/firedancer/config/default.toml | 18 ++++- .../commands/configure/ethtool-channels.c | 36 ++++++--- .../commands/configure/fd_ethtool_ioctl.c | 74 +++++++++++++++---- .../commands/configure/fd_ethtool_ioctl.h | 41 ++++++---- src/app/shared/fd_config.h | 1 + src/app/shared/fd_config_parse.c | 1 + 7 files changed, 149 insertions(+), 37 deletions(-) diff --git a/src/app/fdctl/config/default.toml b/src/app/fdctl/config/default.toml index 6cd52138fdb..b882a5bcc26 100644 --- a/src/app/fdctl/config/default.toml +++ b/src/app/fdctl/config/default.toml @@ -1019,6 +1019,21 @@ dynamic_port_range = "8900-9000" # back to "simple" mode if necessary. rss_queue_mode = "simple" + # Some specialized networking setups, including DoubleZero, + # deliver packets to the validator in a GRE tunnel. By default, + # when using rss_queue_mode="dedicated", Firedancer ignores all + # GRE-wrapped traffic. Setting listen_gre = true causes + # Firedancer to install an ethtool 'ntuple' rule routing GRE + # traffic to a Firedancer net tile, enabling Firedancer to see + # GRE-wrapped traffic. Unfortunately, few NICs are compatible + # with this class of rule, but ConnectX NICs (mlx5) are known to + # support listen_gre = true. If your NIC does not support the + # rule and you must use GRE tunnels, set rss_queue_mode = + # "simple". If rss_queue_mode is simple, this option is + # ignored, and Firedancer automatically listens to GRE-wrapped + # traffic when a GRE tunnel interface is configured. + listen_gre = false + # Enable native network bonding support. # # If native_bond is set to 'true' and [net.interface] is a 'bond' diff --git a/src/app/firedancer/config/default.toml b/src/app/firedancer/config/default.toml index e73a8f1e9a7..83316350217 100644 --- a/src/app/firedancer/config/default.toml +++ b/src/app/firedancer/config/default.toml @@ -1036,13 +1036,29 @@ telemetry = true # ethtool 'ntuple' rules to route incoming packets based on # UDP dst port. Packets are load balanced across the dedicated # queues based on lowest bits of source address. This mode - # may not work with some network device setups. + # may not work with some network device setups, particularly + # when using more than one net tile. # # "auto" (default) # Attempts to run in "dedicated" mode but automatically falls # back to "simple" mode if necessary. rss_queue_mode = "auto" + # Some specialized networking setups, including DoubleZero, + # deliver packets to the validator in a GRE tunnel. By default, + # when using rss_queue_mode="dedicated", Firedancer ignores all + # GRE-wrapped traffic. Setting listen_gre = true causes + # Firedancer to install an ethtool 'ntuple' rule routing GRE + # traffic to a Firedancer net tile, enabling Firedancer to see + # GRE-wrapped traffic. Unfortunately, few NICs are compatible + # with this class of rule, but ConnectX NICs (mlx5) are known to + # support listen_gre = true. If your NIC does not support the + # rule and you must use GRE tunnels, set rss_queue_mode = + # "simple". If rss_queue_mode is simple, this option is + # ignored, and Firedancer automatically listens to GRE-wrapped + # traffic when a GRE tunnel interface is configured. + listen_gre = false + # Enable native network bonding support. # # If native_bond is set to 'true' and [net.interface] is a 'bond' diff --git a/src/app/shared/commands/configure/ethtool-channels.c b/src/app/shared/commands/configure/ethtool-channels.c index 0c921e4232a..181f1d81b98 100644 --- a/src/app/shared/commands/configure/ethtool-channels.c +++ b/src/app/shared/commands/configure/ethtool-channels.c @@ -69,6 +69,7 @@ static int init_device( char const * device, fd_config_t const * config, int dedicated_mode, + int listen_gre, int strict, uint device_cnt ) { FD_TEST( dedicated_mode || strict ); @@ -159,6 +160,20 @@ init_device( char const * device, "Try `net.xdp.rss_queue_mode=\"simple\"` or `layout.net_tile_count=1`", device )); else return 1; } + + /* It's rather unfortunate, but given the APIs that ethtool exposes, + we can't do much better than sending all GRE packets to a single + queue. At least more recent Mellanox NICs certainly do support + RSS based on the inner header, but it's not possible to configure + this in a generic way. */ + int gre_ntuple_error = 0; + if( listen_gre ) gre_ntuple_error = fd_ethtool_ioctl_ntuple_set_gre( &ioc, rule_idx++, 0U ); + if( FD_UNLIKELY( gre_ntuple_error ) ) { + FD_LOG_ERR(( "error configuring network device (%s), failed to install ntuple rule " + "to route GRE packets to Firedancer. If you require GRE-wrapped " + "traffic (e.g. with DoubleZero), set `net.xdp.rss_queue_mode=\"simple\"`. " + "Otherwise, set `net.xdp.listen_gre=false`.", device )); + } } return 0; @@ -179,6 +194,8 @@ init( fd_config_t const * config ) { device_cnt = fd_bonding_slave_cnt( config->net.interface ); } + int listen_gre = config->net.xdp.listen_gre; + /* If the mode was auto, we will try to init in dedicated mode but will not fail the stage if this is not successful. If the mode was dedicated, we will require success. */ @@ -189,10 +206,10 @@ init( fd_config_t const * config ) { fd_bonding_slave_iter_t * iter = fd_bonding_slave_iter_init( iter_, config->net.interface ); for( ; !failed && !fd_bonding_slave_iter_done( iter ); fd_bonding_slave_iter_next( iter ) ) { - failed = init_device( fd_bonding_slave_iter_ele( iter ), config, 1, only_dedicated, device_cnt ); + failed = init_device( fd_bonding_slave_iter_ele( iter ), config, 1, listen_gre, only_dedicated, device_cnt ); } } else { - failed = init_device( config->net.interface, config, 1, only_dedicated, device_cnt ); + failed = init_device( config->net.interface, config, 1, listen_gre, only_dedicated, device_cnt ); } if( !failed ) return; FD_TEST( !only_dedicated ); @@ -218,10 +235,10 @@ init( fd_config_t const * config ) { fd_bonding_slave_iter_t * iter = fd_bonding_slave_iter_init( iter_, config->net.interface ); for( ; !fd_bonding_slave_iter_done( iter ); fd_bonding_slave_iter_next( iter ) ) { - init_device( fd_bonding_slave_iter_ele( iter ), config, 0, 1, device_cnt ); + init_device( fd_bonding_slave_iter_ele( iter ), config, 0, listen_gre, 1, device_cnt ); } } else { - init_device( config->net.interface, config, 0, 1, device_cnt ); + init_device( config->net.interface, config, 0, listen_gre, 1, device_cnt ); } } @@ -248,7 +265,7 @@ check_device_is_modified( char const * device ) { } int ntuple_rules_empty; - FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, NULL, 0, 0, &ntuple_rules_empty ) ); + FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate( &ioc, NULL, 0, 0, UINT_MAX, &ntuple_rules_empty ) ); if( !ntuple_rules_empty ) return 1; return 0; @@ -296,13 +313,14 @@ check_device_is_configured( char const * device, if( !dedicated_mode ) { int ntuple_rules_empty; - FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, NULL, 0, 0, &ntuple_rules_empty ) ); + FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate( &ioc, NULL, 0, 0, UINT_MAX, &ntuple_rules_empty ) ); if( !ntuple_rules_empty ) return 0; } else { int ports_valid; ushort ports[ 32 ]; uint port_cnt = get_ports( config, ports ); - FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, ports, port_cnt, queue_cnt, &ports_valid )); + int listen_gre = config->net.xdp.listen_gre; + FD_TEST( 0==fd_ethtool_ioctl_ntuple_validate( &ioc, ports, port_cnt, queue_cnt, listen_gre ? 0U : UINT_MAX, &ports_valid )); if( !ports_valid ) return 0; } @@ -390,7 +408,7 @@ fini_device( char const * device ) { uint rxfh_table_orig_ele_cnt; error |= (0!=fd_ethtool_ioctl_rxfh_get_table( &ioc, rxfh_table_orig, &rxfh_table_orig_ele_cnt )); int ntuple_rules_empty_orig; - error |= (0!=fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, NULL, 0, 0, &ntuple_rules_empty_orig )); + error |= (0!=fd_ethtool_ioctl_ntuple_validate( &ioc, NULL, 0, 0, UINT_MAX, &ntuple_rules_empty_orig )); if( FD_UNLIKELY( error ) ) FD_LOG_ERR(( "error configuring network device (%s), unable to determine initial state", device )); @@ -415,7 +433,7 @@ fini_device( char const * device ) { uint rxfh_table_new_ele_cnt; error |= (0!=fd_ethtool_ioctl_rxfh_get_table( &ioc, rxfh_table_new, &rxfh_table_new_ele_cnt )); int ntuple_rules_empty_new; - error |= (0!=fd_ethtool_ioctl_ntuple_validate_udp_dport( &ioc, NULL, 0, 0, &ntuple_rules_empty_new )); + error |= (0!=fd_ethtool_ioctl_ntuple_validate( &ioc, NULL, 0, 0, UINT_MAX, &ntuple_rules_empty_new )); if( FD_UNLIKELY( error ) ) FD_LOG_ERR(( "error configuring network device (%s), unable to determine final state", device )); diff --git a/src/app/shared/commands/configure/fd_ethtool_ioctl.c b/src/app/shared/commands/configure/fd_ethtool_ioctl.c index a53a6eb6350..083827470b9 100644 --- a/src/app/shared/commands/configure/fd_ethtool_ioctl.c +++ b/src/app/shared/commands/configure/fd_ethtool_ioctl.c @@ -5,6 +5,7 @@ #include #include #include +#include #include "fd_ethtool_ioctl.h" #include "../../../../util/fd_util.h" @@ -486,22 +487,54 @@ fd_ethtool_ioctl_ntuple_set_udp_dport( fd_ethtool_ioctl_t * ioc, } int -fd_ethtool_ioctl_ntuple_validate_udp_dport( fd_ethtool_ioctl_t * ioc, - ushort const * dports, - uint dports_cnt, - uint queue_cnt, - int * valid ) { +fd_ethtool_ioctl_ntuple_set_gre( fd_ethtool_ioctl_t * ioc, + uint rule_idx, + uint queue_idx ) { + /* See above for any_location */ + struct ethtool_rxnfc get = { .cmd = ETHTOOL_GRXCLSRLCNT }; + TRY_RUN_IOCTL( ioc, "ETHTOOL_GRXCLSRLCNT", &get ); + int const any_location = !!(get.data & RX_CLS_LOC_SPECIAL); + + FD_LOG_NOTICE(( "RUN: `ethtool --config-ntuple %s flow-type ip4 l4proto 47 queue %u`", + ioc->ifr.ifr_name, queue_idx )); + struct ethtool_rxnfc efc = { + .cmd = ETHTOOL_SRXCLSRLINS, + .fs = { + .flow_type = IPV4_USER_FLOW, + .h_u = { .usr_ip4_spec = { + .ip_ver = ETH_RX_NFC_IP4, + .proto = IPPROTO_GRE } }, + .m_u = { .usr_ip4_spec = { + .ip_ver = 0xFF, + .proto = 0xFF } }, + .ring_cookie = queue_idx, + .location = any_location ? RX_CLS_LOC_ANY : rule_idx, + } + }; + TRY_RUN_IOCTL( ioc, "ETHTOOL_SRXCLSRLINS", &efc ); + return 0; +} + +int +fd_ethtool_ioctl_ntuple_validate( fd_ethtool_ioctl_t * ioc, + ushort const * dports, + uint dports_cnt, + uint queue_cnt, + uint gre_queue, + int * valid ) { union { struct ethtool_rxnfc m; uchar _[ ETHTOOL_CMD_SIZE( struct ethtool_rxnfc, uint, MAX_NTUPLE_RULES ) ]; } efc = { 0 }; + int gre_rule = (gre_queue!=UINT_MAX); + /* Get count of currently defined rules */ efc.m.cmd = ETHTOOL_GRXCLSRLCNT; int ret = run_ioctl( ioc, "ETHTOOL_GRXCLSRLCNT", &efc, 1, 0 ); if( FD_UNLIKELY( ret!=0 ) ) { if( FD_LIKELY( ret==EOPNOTSUPP ) ) { - *valid = (dports_cnt==0U); + *valid = (dports_cnt==0U) & !gre_rule; return 0; } return ret; @@ -509,18 +542,19 @@ fd_ethtool_ioctl_ntuple_validate_udp_dport( fd_ethtool_ioctl_t * ioc, uint const rule_cnt = efc.m.rule_cnt; if( FD_UNLIKELY( rule_cnt>MAX_NTUPLE_RULES ) ) return EINVAL; - if( dports_cnt==0U ) { + if( (dports_cnt==0U) & !gre_rule ) { *valid = (rule_cnt==0U); return 0; } FD_TEST( queue_cnt>0U ); uint const rule_group_cnt = fd_uint_pow2_up( queue_cnt ); - if( rule_cnt!=(dports_cnt*rule_group_cnt) ) { + if( rule_cnt!=(dports_cnt*rule_group_cnt + (uint)gre_rule) ) { *valid = 0; return 0; } ushort expected[ MAX_NTUPLE_RULES ] = { 0 }; + int found_gre = 0; for( uint r=0U; r=rule_group_cnt) | (get.fs.ring_cookie!=(rule_group_idx%queue_cnt)) ) || - 0!=memcmp( &get.fs.m_u, &expected_mask, sizeof(expected_mask) ) || - 0!=memcmp( &get.fs.m_ext, &EXPECTED_EXT_MASK, sizeof(EXPECTED_EXT_MASK)) ) ) { + + /* Is this the GRE rule? */ + if( FD_UNLIKELY( ((!found_gre) & (flow_type==IPV4_USER_FLOW) & (get.fs.ring_cookie==gre_queue) & + (get.fs.h_u.usr_ip4_spec.proto==IPPROTO_GRE))&& + !memcmp( &get.fs.m_u, &expected_gre_mask, sizeof(expected_gre_mask) ) && + !memcmp( &get.fs.m_ext, &EXPECTED_EXT_MASK, sizeof(EXPECTED_EXT_MASK)) ) ) { + found_gre = 1; + continue; + } else if( FD_UNLIKELY( ((flow_type!=UDP_V4_FLOW) | (rule_group_idx>=rule_group_cnt) | + (get.fs.ring_cookie!=(rule_group_idx%queue_cnt)) | (dport==0)) || + 0!=memcmp( &get.fs.m_u, &expected_mask, sizeof(expected_mask) ) || + 0!=memcmp( &get.fs.m_ext, &EXPECTED_EXT_MASK, sizeof(EXPECTED_EXT_MASK)) ) ) { *valid = 0; return 0; } @@ -569,8 +616,9 @@ fd_ethtool_ioctl_ntuple_validate_udp_dport( fd_ethtool_ioctl_t * ioc, } } - /* All rules are valid and matched expected ports */ - *valid = 1; + /* All UDP rules are valid and matched expected ports. It's fully + valid if GRE matched. */ + *valid = found_gre==gre_rule; return 0; } diff --git a/src/app/shared/commands/configure/fd_ethtool_ioctl.h b/src/app/shared/commands/configure/fd_ethtool_ioctl.h index 319f7d6997d..0585d3af05f 100644 --- a/src/app/shared/commands/configure/fd_ethtool_ioctl.h +++ b/src/app/shared/commands/configure/fd_ethtool_ioctl.h @@ -172,7 +172,7 @@ fd_ethtool_ioctl_ntuple_clear( fd_ethtool_ioctl_t * ioc ); /* fd_ethtool_ioctl_ntuple_set_udp_dport installs a flow steering rule at the given rule_idx to route all UDP/IPv4 packets with the given destination port to the given queue_idx. Note that if a rule already - exists at rule_idx, it will be overwritten. + exists at rule_idx, it may be overwritten. In order to facilitate load balancing flows across multiple queues, a nonzero rule_group_idx can be given. rule_group_cnt must be a @@ -192,21 +192,34 @@ fd_ethtool_ioctl_ntuple_set_udp_dport( fd_ethtool_ioctl_t * ioc, uint rule_group_cnt, uint queue_idx ); -/* fd_ethtool_ioctl_ntuple_validate_udp_dport queries all ntuple - rules and then sets valid to 1 if they match the expected set of - rules for the given UDP destination ports and the given number of - queues (each queue should have a group of rules, one for each port - in dports). In other words, this makes sure the existing rules are - correct and that no other rules are active. If dports_cnt is zero, - then this effectively checks whether any rules exist. Returns - nonzero on failure (uncertain if valid or not). */ +/* fd_ethtool_ioctl_ntuple_set_gre installs a flow steering rule at the + given rule_idx to route all GRE traffic (IP proto 47) to the given + queue_idx. Note that if a rule already exists at rule_idx, it may + be overwritten. + + Returns nonzero on failure. */ +int +fd_ethtool_ioctl_ntuple_set_gre( fd_ethtool_ioctl_t * ioc, + uint rule_idx, + uint queue_idx ); + +/* fd_ethtool_ioctl_ntuple_validate queries all ntuple rules and then + sets valid to 1 if they match the expected set of rules for GRE to go + to gre_queue (unless it is UINT_MAX), and the given UDP destination + ports and the given number of queues (each queue should have a group + of rules, one for each port in dports). In other words, this makes + sure the existing rules are correct and that no other rules are + active. If dports_cnt is zero and gre_queue is UINT_MAX, then this + effectively checks whether any rules exist. Returns nonzero on + failure (uncertain if valid or not). */ int -fd_ethtool_ioctl_ntuple_validate_udp_dport( fd_ethtool_ioctl_t * ioc, - ushort const * dports, - uint dports_cnt, - uint queue_cnt, - int * valid ); +fd_ethtool_ioctl_ntuple_validate( fd_ethtool_ioctl_t * ioc, + ushort const * dports, + uint dports_cnt, + uint queue_cnt, + uint gre_queue, + int * valid ); /* fd_ethtool_ioctl_rxfh_set_flow_hash_udp4 configures the NIC to include source and destination ports in the RSS hash for UDP/IPv4 diff --git a/src/app/shared/fd_config.h b/src/app/shared/fd_config.h index da9d9e76e36..2c8c6dab05d 100644 --- a/src/app/shared/fd_config.h +++ b/src/app/shared/fd_config.h @@ -212,6 +212,7 @@ struct fd_config_net { uint xdp_tx_queue_size; uint flush_timeout_micros; char rss_queue_mode[ 16 ]; /* "simple", "dedicated", or "auto" */ + int listen_gre; int native_bond; } xdp; diff --git a/src/app/shared/fd_config_parse.c b/src/app/shared/fd_config_parse.c index 8c22914015b..82a38efe1d9 100644 --- a/src/app/shared/fd_config_parse.c +++ b/src/app/shared/fd_config_parse.c @@ -190,6 +190,7 @@ fd_config_extract_pod( uchar * pod, CFG_POP ( uint, net.xdp.xdp_tx_queue_size ); CFG_POP ( uint, net.xdp.flush_timeout_micros ); CFG_POP ( cstr, net.xdp.rss_queue_mode ); + CFG_POP ( bool, net.xdp.listen_gre ); CFG_POP ( bool, net.xdp.native_bond ); CFG_POP ( uint, net.socket.receive_buffer_size ); CFG_POP ( uint, net.socket.send_buffer_size ); From 08d925e88b976844d6b35ffeb3b060f9be01fc99 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 19:11:52 +0000 Subject: [PATCH 08/30] quic: remove test_quic_drops Test is broken and unused --- src/waltz/quic/tests/Local.mk | 1 - src/waltz/quic/tests/test_quic_drops.c | 449 ------------------------- 2 files changed, 450 deletions(-) delete mode 100644 src/waltz/quic/tests/test_quic_drops.c diff --git a/src/waltz/quic/tests/Local.mk b/src/waltz/quic/tests/Local.mk index dd9423cd47d..7fe7351b90e 100644 --- a/src/waltz/quic/tests/Local.mk +++ b/src/waltz/quic/tests/Local.mk @@ -9,7 +9,6 @@ $(call make-unit-test,test_quic_proto, test_quic_proto, fd_quic fd_uti $(call make-unit-test,test_quic_hs, test_quic_hs, $(QUIC_TEST_LIBS)) $(call make-unit-test,test_quic_streams, test_quic_streams, $(QUIC_TEST_LIBS)) $(call make-unit-test,test_quic_conn, test_quic_conn, $(QUIC_TEST_LIBS)) -$(call make-unit-test,test_quic_drops, test_quic_drops, $(QUIC_TEST_LIBS) fd_fibre) $(call make-unit-test,test_quic_bw, test_quic_bw, $(QUIC_TEST_LIBS)) $(call make-unit-test,test_quic_layout, test_quic_layout, fd_util) $(call make-unit-test,test_quic_conformance,test_quic_conformance,$(QUIC_TEST_LIBS) fd_util) diff --git a/src/waltz/quic/tests/test_quic_drops.c b/src/waltz/quic/tests/test_quic_drops.c deleted file mode 100644 index 22f919affb8..00000000000 --- a/src/waltz/quic/tests/test_quic_drops.c +++ /dev/null @@ -1,449 +0,0 @@ -#include "../fd_quic.h" -#include "fd_quic_test_helpers.h" -#include "../../../util/rng/fd_rng.h" - -#include "../../../util/fibre/fd_fibre.h" - -#include - -/* number of streams to send/receive */ -#define NUM_STREAMS 1000 - -/* done flags */ - -int client_done = 0; -int server_done = 0; - -/* received count */ -ulong rcvd = 0; -ulong tot_rcvd = 0; - -/* fibres for client and server */ - -fd_fibre_t * client_fibre = NULL; -fd_fibre_t * server_fibre = NULL; - -/* "net" fibre for dropping and pcapping */ - -fd_fibre_t * net_fibre = NULL; - -struct net_fibre_args { - fd_fibre_pipe_t * input; - fd_fibre_pipe_t * release; - float thresh; - int dir; /* 0=client->server 1=server->client */ -}; -typedef struct net_fibre_args net_fibre_args_t; - - -int state = 0; -int server_complete = 0; -int client_complete = 0; - -extern uchar pkt_full[]; -extern ulong pkt_full_sz; - -uchar fail = 0; - -void -my_stream_notify_cb( fd_quic_stream_t * stream, void * ctx, int type ) { - (void)stream; - (void)ctx; - (void)type; -} - -int -my_stream_rx_cb( fd_quic_conn_t * conn, - ulong stream_id, - ulong offset, - uchar const * data, - ulong data_sz, - int fin ) { - (void)conn; (void)stream_id; (void)fin; - - //FD_LOG_NOTICE(( "received data from peer. stream_id: %lu size: %lu offset: %lu\n", - // (ulong)stream->stream_id, data_sz, offset )); - (void)offset; - FD_LOG_HEXDUMP_DEBUG(( "received data", data, data_sz )); - - FD_LOG_DEBUG(( "recv ok" )); - - rcvd++; - tot_rcvd++; - - if( tot_rcvd == NUM_STREAMS ) client_done = 1; - return FD_QUIC_SUCCESS; -} - - -struct my_context { - int server; -}; -typedef struct my_context my_context_t; - -static ulong conn_final_cnt; - -void -my_cb_conn_final( fd_quic_conn_t * conn, - void * context ) { - (void)context; - - fd_quic_conn_t ** ppconn = (fd_quic_conn_t**)fd_quic_conn_get_context( conn ); - if( ppconn ) { - //FD_LOG_NOTICE(( "my_cb_conn_final %p SUCCESS", (void*)*ppconn )); - *ppconn = NULL; - } - - conn_final_cnt++; -} - -void -my_connection_new( fd_quic_conn_t * conn, - void * vp_context ) { - (void)vp_context; - - //FD_LOG_NOTICE(( "server handshake complete" )); - - server_complete = 1; - - (void)conn; -} - -void -my_handshake_complete( fd_quic_conn_t * conn, - void * vp_context ) { - (void)vp_context; - - //FD_LOG_NOTICE(( "client handshake complete" )); - - client_complete = 1; - - (void)conn; -} - -/* global "clock" */ -long now = 1e18L; - -long -test_fibre_clock(void) { - return now; -} - -static void -sync_clocks( fd_quic_t * x, fd_quic_t * y ) { - fd_quic_sync_clocks( x, y, now ); -} - -struct client_args { - fd_quic_t * quic; - fd_quic_t * server_quic; -}; -typedef struct client_args client_args_t; - -void -client_fibre_fn( void * vp_arg ) { - client_args_t * args = (client_args_t*)vp_arg; - - fd_quic_t * quic = args->quic; - fd_quic_t * server_quic = args->server_quic; - - fd_quic_conn_t * conn = NULL; - fd_quic_stream_t * stream = NULL; - - uchar buf[] = "Hello World!"; - - long period_ns = (ulong)1e6; - long next_send = now + period_ns; - ulong sent = 0; - - while( !client_done ) { - long next_wakeup = fd_quic_get_next_wakeup( quic ); - - /* wake up at either next service or next send, whichever is sooner */ - fd_fibre_wait_until( fd_long_min( next_wakeup, next_send ) ); - - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - if( !conn ) { - rcvd = sent = 0; - - conn = fd_quic_connect( quic, FD_QUIC_TEST_SERVER_IP4, 0, FD_QUIC_TEST_CLIENT_IP4, 0, now ); - if( !conn ) { - FD_LOG_WARNING(( "Client unable to obtain a connection. now: %ld", now )); - continue; - } - - fd_quic_conn_set_context( conn, &conn ); - - /* wait for connection handshake */ - while( conn && conn->state != FD_QUIC_CONN_STATE_ACTIVE ) { - /* service client */ - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - /* allow server to process */ - fd_fibre_wait_until( fd_quic_get_next_wakeup( quic ) ); - } - - continue; - } - - if( !stream ) { - if( rcvd != sent ) { - fd_quic_service( quic, now ); - fd_fibre_wait_until( fd_quic_get_next_wakeup( quic ) ); - - continue; - } - - stream = fd_quic_conn_new_stream( conn ); - - if( !stream ) { - if( conn->state == FD_QUIC_CONN_STATE_ACTIVE ) { - FD_LOG_WARNING(( "Client unable to obtain a stream. now: %lu", (ulong)now )); - long live = next_wakeup + (long)1e9L; - do { - next_wakeup = fd_quic_get_next_wakeup( quic ); - - if( next_wakeup > live ) { - live = next_wakeup<<1L; - FD_LOG_WARNING(( "Client waiting for a stream time: %lu", (ulong)now )); - } - - /* wake up at either next service or next send, whichever is sooner */ - fd_fibre_wait_until( next_wakeup ); - - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - if( !conn ) break; - - stream = fd_quic_conn_new_stream( conn ); - } while( !stream ); - FD_LOG_WARNING(( "Client obtained a stream" )); - } - next_send = now + period_ns; /* ensure we make progress */ - continue; - } - } - - /* set next send time */ - next_send = now + period_ns; - - /* have a stream, so send */ - int rc = fd_quic_stream_send( stream, buf, sizeof(buf), 1 /* fin */ ); - - if( rc == FD_QUIC_SUCCESS ) { - /* successful - stream will begin closing */ - - if( ++sent % 15 == 0 ) { - /* wait for last sends to complete */ - /* TODO add callback for this */ - long timeout = now + (long)3e6; - while( now < timeout ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - /* allow server to process */ - fd_fibre_wait_until( fd_quic_get_next_wakeup( quic ) ); - } - - fd_quic_conn_close( conn, 0 ); - sent = 0; - - /* wait for connection to be reaped - (it's set to NULL in final callback */ - while( conn ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - /* allow server to process */ - fd_fibre_wait_until( fd_quic_get_next_wakeup( quic ) ); - } - - stream = NULL; - - continue; - } - - /* ensure new stream used for next send */ - stream = fd_quic_conn_new_stream( conn ); - - /* TODO close logic */ - - } else { - FD_LOG_WARNING(( "send failed" )); - } - } - - if( conn ) { - fd_quic_conn_close( conn, 0 ); - - /* keep servicing until connection closed */ - while( conn ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - fd_fibre_yield(); - } - } - - /* tell the server to shutdown */ - server_done = 1; -} - - -struct server_args { - fd_quic_t * quic; - fd_quic_t * client_quic; -}; -typedef struct server_args server_args_t; - - -void -server_fibre_fn( void * vp_arg ) { - server_args_t * args = (server_args_t*)vp_arg; - - fd_quic_t * quic = args->quic; - fd_quic_t * client_quic = args->client_quic; - - /* wake up at least every 1ms */ - long period_ns = (long)1e6; - while( !server_done ) { - sync_clocks( quic, client_quic ); - fd_quic_service( quic, now ); - - long next_wakeup = fd_quic_get_next_wakeup( quic ); - long next_period = now + period_ns; - - fd_fibre_wait_until( fd_long_min( next_wakeup, next_period ) ); - } -} - - -int -main( int argc, char ** argv ) { - - fd_boot ( &argc, &argv ); - fd_quic_test_boot( &argc, &argv ); - - fd_rng_t _rng[1]; fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, 0U, 0UL ) ); - - ulong cpu_idx = fd_tile_cpu_id( fd_tile_idx() ); - if( cpu_idx>fd_shmem_cpu_cnt() ) cpu_idx = 0UL; - - char const * _page_sz = fd_env_strip_cmdline_cstr ( &argc, &argv, "--page-sz", NULL, "gigantic" ); - ulong page_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--page-cnt", NULL, 2UL ); - ulong numa_idx = fd_env_strip_cmdline_ulong( &argc, &argv, "--numa-idx", NULL, fd_shmem_numa_idx( cpu_idx ) ); - - ulong page_sz = fd_cstr_to_shmem_page_sz( _page_sz ); - if( FD_UNLIKELY( !page_sz ) ) FD_LOG_ERR(( "unsupported --page-sz" )); - - FD_LOG_NOTICE(( "Creating workspace (--page-cnt %lu, --page-sz %s, --numa-idx %lu)", page_cnt, _page_sz, numa_idx )); - fd_wksp_t * wksp = fd_wksp_new_anonymous( page_sz, page_cnt, fd_shmem_cpu_idx( numa_idx ), "wksp", 0UL ); - FD_TEST( wksp ); - - fd_quic_limits_t const quic_limits = { - .conn_cnt = 10, - .conn_id_cnt = 10, - .handshake_cnt = 10, - .stream_id_cnt = 10, - .stream_pool_cnt = 512, - .inflight_frame_cnt = 1024 * 10, - .tx_buf_sz = 1<<14 - }; - - ulong quic_footprint = fd_quic_footprint( &quic_limits ); - FD_TEST( quic_footprint ); - FD_LOG_NOTICE(( "QUIC footprint: %lu bytes", quic_footprint )); - - FD_LOG_NOTICE(( "Creating server QUIC" )); - fd_quic_t * server_quic = fd_quic_new_anonymous( wksp, &quic_limits, FD_QUIC_ROLE_SERVER, rng ); - FD_TEST( server_quic ); - - FD_LOG_NOTICE(( "Creating client QUIC" )); - fd_quic_t * client_quic = fd_quic_new_anonymous( wksp, &quic_limits, FD_QUIC_ROLE_CLIENT, rng ); - FD_TEST( client_quic ); - - client_quic->cb.conn_hs_complete = my_handshake_complete; - client_quic->cb.stream_rx = my_stream_rx_cb; - client_quic->cb.stream_notify = my_stream_notify_cb; - client_quic->cb.conn_final = my_cb_conn_final; - - client_quic->config.initial_rx_max_stream_data = 1<<15; - - server_quic->cb.conn_new = my_connection_new; - server_quic->cb.stream_rx = my_stream_rx_cb; - server_quic->cb.stream_notify = my_stream_notify_cb; - server_quic->cb.conn_final = my_cb_conn_final; - - server_quic->config.initial_rx_max_stream_data = 1<<15; - - FD_LOG_NOTICE(( "Creating virtual pair" )); - fd_quic_virtual_pair_t vp; - fd_quic_virtual_pair_init( &vp, /*a*/ client_quic, /*b*/ server_quic ); - - FD_LOG_NOTICE(( "Attaching AIOs" )); - fd_quic_netem_t mitm_client_to_server; - fd_quic_netem_t mitm_server_to_client; - - long _null[1]; - fd_quic_netem_init( &mitm_client_to_server, 0.01f, 0.01f, _null ); - fd_quic_netem_init( &mitm_server_to_client, 0.01f, 0.01f, _null ); - - fd_quic_set_aio_net_tx( client_quic, &mitm_client_to_server.local ); - mitm_client_to_server.dst = vp.aio_a2b; - fd_quic_set_aio_net_tx( server_quic, &mitm_server_to_client.local ); - mitm_server_to_client.dst = vp.aio_b2a; - - FD_LOG_NOTICE(( "Initializing QUICs" )); - FD_TEST( fd_quic_init( client_quic ) ); - FD_TEST( fd_quic_init( server_quic ) ); - - /* initialize fibres */ - void * this_fibre_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_init_align(), fd_fibre_init_footprint( ), 1UL ); - fd_fibre_t * this_fibre = fd_fibre_init( this_fibre_mem ); (void)this_fibre; - - /* set fibre scheduler clock */ - fd_fibre_set_clock( test_fibre_clock ); - - /* create fibres for client and server */ - ulong stack_sz = 1<<20; - void * client_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ), 1UL ); - client_args_t client_args[1] = {{ .quic = client_quic, .server_quic = server_quic }}; - client_fibre = fd_fibre_start( client_mem, stack_sz, client_fibre_fn, client_args ); - FD_TEST( client_fibre ); - - void * server_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ), 1UL ); - server_args_t server_args[1] = {{ .quic = server_quic, .client_quic = client_quic }}; - server_fibre = fd_fibre_start( server_mem, stack_sz, server_fibre_fn, server_args ); - FD_TEST( server_fibre ); - - /* schedule the fibres - they will execute during the call to fibre_schedule_run */ - fd_fibre_schedule( client_fibre ); - fd_fibre_schedule( server_fibre ); - - /* run the fibres until done */ - while(1) { - long timeout = fd_fibre_schedule_run(); - if( timeout < 0 ) break; - - now = timeout; - } - - FD_LOG_NOTICE(( "Received %lu stream frags", tot_rcvd )); - FD_LOG_NOTICE(( "Tested %lu connections", conn_final_cnt )); - - FD_LOG_NOTICE(( "Cleaning up" )); - fd_quic_virtual_pair_fini( &vp ); - fd_wksp_free_laddr( fd_quic_delete( fd_quic_leave( server_quic ) ) ); - fd_wksp_free_laddr( fd_quic_delete( fd_quic_leave( client_quic ) ) ); - fd_wksp_delete_anonymous( wksp ); - fd_rng_delete( fd_rng_leave( rng ) ); - - FD_LOG_NOTICE(( "pass" )); - fd_quic_test_halt(); - fd_halt(); - return 0; -} From f3c2f05d78b44c22e18f0cba659408531a1c7ab8 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 19:17:00 +0000 Subject: [PATCH 09/30] quic: rewrite test_quic_key_phase without fd_fibre --- src/waltz/quic/tests/test_quic_key_phase.c | 287 +++++++++------------ 1 file changed, 115 insertions(+), 172 deletions(-) diff --git a/src/waltz/quic/tests/test_quic_key_phase.c b/src/waltz/quic/tests/test_quic_key_phase.c index 48490d0d3ac..139cdefc26e 100644 --- a/src/waltz/quic/tests/test_quic_key_phase.c +++ b/src/waltz/quic/tests/test_quic_key_phase.c @@ -1,6 +1,5 @@ #include "../fd_quic.h" #include "fd_quic_test_helpers.h" -#include "../../../util/fibre/fd_fibre.h" #include @@ -20,13 +19,6 @@ static ulong rcvd = 0; static ulong tot_rcvd = 0; static ulong tot_key_phase_change = 0; -/* some randomness stuff */ - -/* fibres for client and server */ - -static fd_fibre_t * client_fibre = NULL; -static fd_fibre_t * server_fibre = NULL; - static int server_complete = 0; static int client_complete = 0; @@ -90,185 +82,140 @@ my_handshake_complete( fd_quic_conn_t * conn, /* global "clock" */ static long now = 1e18L; -static long -test_fibre_clock(void) { - return now; -} - static void sync_clocks( fd_quic_t * x, fd_quic_t * y ) { fd_quic_sync_clocks( x, y, now ); } -struct client_args { - fd_quic_t * quic; - fd_quic_t * server_quic; +struct client_state { + fd_quic_conn_t * conn; + fd_quic_stream_t * stream; + long next_send; + uint last_key_phase; + int active_logged; + int closing; }; -typedef struct client_args client_args_t; - -static void -client_fibre_fn( void * vp_arg ) { - client_args_t * args = (client_args_t*)vp_arg; +typedef struct client_state client_state_t; - fd_quic_t * quic = args->quic; - fd_quic_t * server_quic = args->server_quic; - - fd_quic_conn_t * conn = NULL; - fd_quic_stream_t * stream = NULL; - - static uchar const buf[] = "Hello World!"; - - long period_ns = (long)1e6; - long next_send = now; - ulong sent = 0; +struct server_state { + long next_period; + uint last_key_phase; +}; +typedef struct server_state server_state_t; - rcvd = sent = 0; +static uchar const buf[] = "Hello World!"; - conn = fd_quic_connect( quic, FD_QUIC_TEST_SERVER_IP4, 0, FD_QUIC_TEST_CLIENT_IP4, 0, now ); - if( !conn ) { +static void +client_state_init( client_state_t * client, + fd_quic_t * quic ) { + client->conn = NULL; + client->stream = NULL; + client->next_send = now; + client->last_key_phase = 0U; + client->active_logged = 0; + client->closing = 0; + + rcvd = 0; + + client->conn = fd_quic_connect( quic, FD_QUIC_TEST_SERVER_IP4, 0, FD_QUIC_TEST_CLIENT_IP4, 0, now ); + if( !client->conn ) { FD_LOG_ERR(( "Client unable to obtain a connection. now: %ld", now )); } - fd_quic_conn_set_context( conn, &conn ); - - /* service client until connection is established */ - while( conn && conn->state != FD_QUIC_CONN_STATE_ACTIVE ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); + fd_quic_conn_set_context( client->conn, &client->conn ); +} - long next_wakeup = fd_quic_get_next_wakeup( quic ); - FD_TEST( next_wakeup < LONG_MAX ); +static void +client_step( client_state_t * client ) { + fd_quic_conn_t * conn = client->conn; - /* wake up at either next service or next send, whichever is sooner */ - fd_fibre_wait_until( next_wakeup ); + if( !conn ) { + if( !client->closing ) FD_LOG_ERR(( "Connection aborted unexpectedly" )); + server_done = 1; + return; } - next_send = now; - - uint last_key_phase = conn->key_phase; - - FD_LOG_INFO(( "CLIENT - connection established - key_phase: %u", (uint)conn->key_phase )); - - while( !client_done ) { - long next_wakeup = fd_quic_get_next_wakeup( quic ); - FD_TEST( next_wakeup < LONG_MAX ); - - /* wake up at either next service or next send, whichever is sooner */ - fd_fibre_wait_until( fd_long_min( next_wakeup, next_send ) ); - - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - - /* in this controlled test, connections should not terminate */ - if( !conn ) { - FD_LOG_ERR(( "Connection aborted unexpectedly" )); + if( client_done ) { + if( !client->closing ) { + fd_quic_conn_close( conn, 0 ); + client->closing = 1; } + return; + } - /* report key phase changes, when complete */ - if( !conn->key_update && last_key_phase != conn->key_phase ) { - tot_key_phase_change++; - FD_LOG_INFO(( "CLIENT - key phase changed to %u, %lu changes done", (uint)conn->key_phase, tot_key_phase_change )); - last_key_phase = conn->key_phase; - - if( tot_key_phase_change == NUM_KEY_PHASE_CHANGES ) { - client_done = 1; - } - } + if( conn->state != FD_QUIC_CONN_STATE_ACTIVE ) return; - if( rcvd == NUM_STREAMS ) { - if( conn->key_update ) { - /* key phase update should have completed long ago */ - FD_LOG_ERR(( "Unexpectedly in a key phase change" )); - } + if( !client->active_logged ) { + FD_TEST( client_complete ); + client->next_send = now; + client->last_key_phase = conn->key_phase; + client->active_logged = 1; + FD_LOG_INFO(( "CLIENT - connection established - key_phase: %u", (uint)conn->key_phase )); + } - FD_LOG_INFO(( "CLIENT - received %u - starting key phase change", (uint)rcvd )); + /* report key phase changes, when complete */ + if( !conn->key_update && client->last_key_phase != conn->key_phase ) { + tot_key_phase_change++; + FD_LOG_INFO(( "CLIENT - key phase changed to %u, %lu changes done", (uint)conn->key_phase, tot_key_phase_change )); + client->last_key_phase = conn->key_phase; - /* reset count */ - rcvd = 0; + if( tot_key_phase_change == NUM_KEY_PHASE_CHANGES ) client_done = 1; + } - conn->key_update = 1; /* force a key update */ + if( rcvd == NUM_STREAMS ) { + if( conn->key_update ) { + /* key phase update should have completed long ago */ + FD_LOG_ERR(( "Unexpectedly in a key phase change" )); } - if( !stream ) { - stream = fd_quic_conn_new_stream( conn ); + FD_LOG_INFO(( "CLIENT - received %u - starting key phase change", (uint)rcvd )); - if( !stream ) { - continue; - } - } + /* reset count */ + rcvd = 0; - if( now < next_send ) continue; + conn->key_update = 1; /* force a key update */ + } - /* set next send time */ - next_send = now + period_ns; + if( !client->stream ) { + client->stream = fd_quic_conn_new_stream( conn ); + if( !client->stream ) return; + } - /* have a stream, so send */ - int rc = fd_quic_stream_send( stream, buf, sizeof(buf), 1 /* fin */ ); + if( now < client->next_send ) return; - if( rc == FD_QUIC_SUCCESS ) { - /* successful - stream will begin closing */ + /* set next send time */ + client->next_send = now + (long)1e6; - /* ensure new stream used for next send */ - stream = fd_quic_conn_new_stream( conn ); + /* have a stream, so send */ + int rc = fd_quic_stream_send( client->stream, buf, sizeof(buf), 1 /* fin */ ); - } else { - FD_LOG_WARNING(( "CLIENT - send failed" )); - } - } + if( rc == FD_QUIC_SUCCESS ) { + /* successful - stream will begin closing */ - if( conn ) { - fd_quic_conn_close( conn, 0 ); + /* ensure new stream used for next send */ + client->stream = fd_quic_conn_new_stream( conn ); - /* keep servicing until connection closed */ - while( conn ) { - sync_clocks( quic, server_quic ); - fd_quic_service( quic, now ); - fd_fibre_yield(); - } + } else { + FD_LOG_WARNING(( "CLIENT - send failed" )); } - - /* tell the server to shutdown */ - server_done = 1; } - -struct server_args { - fd_quic_t * quic; - fd_quic_t * client_quic; -}; -typedef struct server_args server_args_t; - - static void -server_fibre_fn( void * vp_arg ) { - server_args_t * args = fd_type_pun( vp_arg ); - - fd_quic_t * quic = args->quic; - fd_quic_t * client_quic = args->client_quic; - - /* track key phase changes */ - uint last_key_phase = -1u; +server_state_init( server_state_t * server ) { + server->next_period = now; + server->last_key_phase = -1u; +} - /* wake up at least every 1ms */ - long period_ns = (long)1e6; - while( !server_done ) { - sync_clocks( quic, client_quic ); - fd_quic_service( quic, now ); - - if( server_conn ) { - if( last_key_phase == -1u ) { - last_key_phase = server_conn->key_phase; - FD_LOG_INFO(( "SERVER - connection established - key_phase: %u", (uint)last_key_phase )); - } else if( last_key_phase != server_conn->key_phase ) { - FD_LOG_INFO(( "SERVER - key phase changed to %u", (uint)server_conn->key_phase )); - last_key_phase = server_conn->key_phase; - } +static void +server_step( server_state_t * server ) { + if( server_conn ) { + if( server->last_key_phase == -1u ) { + server->last_key_phase = server_conn->key_phase; + FD_LOG_INFO(( "SERVER - connection established - key_phase: %u", (uint)server->last_key_phase )); + } else if( server->last_key_phase != server_conn->key_phase ) { + FD_LOG_INFO(( "SERVER - key phase changed to %u", (uint)server_conn->key_phase )); + server->last_key_phase = server_conn->key_phase; } - - long next_wakeup = fd_quic_get_next_wakeup( quic ); - long next_period = now + period_ns; - - fd_fibre_wait_until( fd_long_min( next_wakeup, next_period ) ); } } @@ -337,36 +284,32 @@ main( int argc, char ** argv ) { FD_TEST( fd_quic_init( client_quic ) ); FD_TEST( fd_quic_init( server_quic ) ); - /* initialize fibres */ - void * this_fibre_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_init_align(), fd_fibre_init_footprint( ), 1UL ); - fd_fibre_t * this_fibre = fd_fibre_init( this_fibre_mem ); (void)this_fibre; + client_state_t client[1]; + server_state_t server[1]; + client_state_init( client, client_quic ); + server_state_init( server ); - /* set fibre scheduler clock */ - fd_fibre_set_clock( test_fibre_clock ); + while( !server_done ) { + sync_clocks( client_quic, server_quic ); + + fd_quic_service( client_quic, now ); + fd_quic_service( server_quic, now ); - /* create fibres for client and server */ - ulong stack_sz = 1<<20; - void * client_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ), 1UL ); - client_args_t client_args[1] = {{ .quic = client_quic, .server_quic = server_quic }}; - client_fibre = fd_fibre_start( client_mem, stack_sz, client_fibre_fn, client_args ); - FD_TEST( client_fibre ); + server_step( server ); + client_step( client ); - void * server_mem = fd_wksp_alloc_laddr( wksp, fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ), 1UL ); - server_args_t server_args[1] = {{ .quic = server_quic, .client_quic = client_quic }}; - server_fibre = fd_fibre_start( server_mem, stack_sz, server_fibre_fn, server_args ); - FD_TEST( server_fibre ); + long next_wakeup_client = fd_quic_get_next_wakeup( client_quic ); + long next_wakeup_server = fd_quic_get_next_wakeup( server_quic ); + long next_wakeup = fd_long_min( next_wakeup_client, next_wakeup_server ); - /* schedule the fibres - they will execute during the call to fibre_schedule_run */ - fd_fibre_schedule( client_fibre ); - fd_fibre_schedule( server_fibre ); + if( client->conn && !client_done ) next_wakeup = fd_long_min( next_wakeup, client->next_send ); - /* run the fibres until done */ - while(1) { - long timeout = fd_fibre_schedule_run(); - if( timeout < 0 ) break; + /* wake the server side at least every 1ms */ + server->next_period = fd_long_max( server->next_period, now ) + (long)1e6; + next_wakeup = fd_long_min( next_wakeup, server->next_period ); - now = timeout; + FD_TEST( next_wakeup < LONG_MAX ); + now = fd_long_max( now+1L, next_wakeup ); } FD_LOG_NOTICE(( "Passed %lu key updates", tot_key_phase_change )); From c1024562a42c2d75aa42c3c276c289908f446eb1 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 19:14:15 +0000 Subject: [PATCH 10/30] util: remove fd_fibre Remove unused test-only coroutine library --- config/extra/with-arm.mk | 1 - config/extra/with-ucontext.mk | 10 - config/extra/with-x86-64.mk | 1 - src/util/fibre/Local.mk | 8 - src/util/fibre/fd_fibre.c | 444 ------------------------- src/util/fibre/fd_fibre.h | 220 ------------- src/util/fibre/test_fibre.c | 503 ----------------------------- src/util/racesan/fd_racesan_base.h | 2 - src/waltz/quic/tests/Local.mk | 2 +- 9 files changed, 1 insertion(+), 1190 deletions(-) delete mode 100644 config/extra/with-ucontext.mk delete mode 100644 src/util/fibre/Local.mk delete mode 100644 src/util/fibre/fd_fibre.c delete mode 100644 src/util/fibre/fd_fibre.h delete mode 100644 src/util/fibre/test_fibre.c diff --git a/config/extra/with-arm.mk b/config/extra/with-arm.mk index 24ea0a12437..3abb2a7d156 100644 --- a/config/extra/with-arm.mk +++ b/config/extra/with-arm.mk @@ -30,7 +30,6 @@ endif else # CROSS=0 -include config/extra/with-ucontext.mk include config/extra/with-s2nbignum.mk include config/extra/with-blst.mk include config/extra/with-zstd.mk diff --git a/config/extra/with-ucontext.mk b/config/extra/with-ucontext.mk deleted file mode 100644 index ae413d011d1..00000000000 --- a/config/extra/with-ucontext.mk +++ /dev/null @@ -1,10 +0,0 @@ -# ucontext.h is no longer part of POSIX and thus considered an extra. -# It is still part of glibc, but not musl libc. - -# Hacky: If libucontext is installed, use that instead. -ifeq ($(shell test -f /lib/libucontext.a && echo 1),1) - LDFLAGS+=-lucontext -endif - -FD_HAS_UCONTEXT:=1 -CPPFLAGS+=-DFD_HAS_UCONTEXT=1 diff --git a/config/extra/with-x86-64.mk b/config/extra/with-x86-64.mk index db9802144a2..24bd3d8f8db 100644 --- a/config/extra/with-x86-64.mk +++ b/config/extra/with-x86-64.mk @@ -13,7 +13,6 @@ endif # -falign-loops since Clang/LLVM 13 ifndef FD_NODEPS -include config/extra/with-ucontext.mk include config/extra/with-s2nbignum.mk include config/extra/with-blst.mk include config/extra/with-zstd.mk diff --git a/src/util/fibre/Local.mk b/src/util/fibre/Local.mk deleted file mode 100644 index 80b6e47afe2..00000000000 --- a/src/util/fibre/Local.mk +++ /dev/null @@ -1,8 +0,0 @@ -ifdef FD_HAS_HOSTED -ifdef FD_HAS_LINUX -$(call make-lib,fd_fibre) -$(call add-objs,fd_fibre,fd_fibre) -$(call make-unit-test,test_fibre,test_fibre,fd_fibre fd_util) -$(call run-unit-test,test_fibre) -endif -endif diff --git a/src/util/fibre/fd_fibre.c b/src/util/fibre/fd_fibre.c deleted file mode 100644 index 41c0a34deea..00000000000 --- a/src/util/fibre/fd_fibre.c +++ /dev/null @@ -1,444 +0,0 @@ -#include "fd_fibre.h" - -#include -#include -#include -#include - -fd_fibre_t * fd_fibre_current = NULL; - -/* top level function - simply calls the user function then sets the done flag */ -void -fd_fibre_run_fn( void * vp ) { - fd_fibre_t * fibre = (fd_fibre_t*)vp; - - /* call user function */ - fibre->fn( fibre->arg ); - - /* set done flag */ - fibre->done = 1; -} - -/* footprint and alignment required for fd_fibre_init */ -ulong -fd_fibre_init_footprint( void ) { - /* size should be a multiple of the alignment */ - return fd_ulong_align_up( sizeof( fd_fibre_t ), FD_FIBRE_ALIGN ); -} - -ulong -fd_fibre_init_align( void ) { - return FD_FIBRE_ALIGN; -} - -/* initialize main fibre */ -fd_fibre_t * -fd_fibre_init( void * mem ) { - fd_fibre_t * fibre = (fd_fibre_t*)mem; - - memset( fibre, 0, sizeof( *fibre ) ); - - fibre->stack = NULL; - fibre->stack_sz = 0; - - ucontext_t * ctx = &fibre->ctx; - - if( getcontext( ctx ) == -1 ) { - fprintf( stderr, "getcontext failed with %d %s\n", errno, fd_io_strerror( errno ) ); - fflush( stderr ); - fd_fibre_abort(); - } - - fd_fibre_current = fibre; - - return fibre; -} - -/* footprint and alignment required for fd_fibre_start */ -ulong -fd_fibre_start_footprint( ulong stack_size ) { - return fd_ulong_align_up( sizeof( fd_fibre_t ), FD_FIBRE_ALIGN ) + - fd_ulong_align_up( stack_size, FD_FIBRE_ALIGN ); -} - -ulong fd_fibre_start_align( void ) { - return FD_FIBRE_ALIGN; -} - -/* start a fibre */ - -/* this uses get/setcontext to start a new fibre - the current fibre will continue running, and the new one will be - inactive, and ready to switch to - this is cooperative threading - this fibre may be started on another thread */ -fd_fibre_t * -fd_fibre_start( void * mem, ulong stack_sz, fd_fibre_fn_t fn, void * arg ) { - if( fd_fibre_current == NULL ) { - fprintf( stderr, "fd_fibre_init must be called before fd_fibre_start\n" ); - fflush( stderr ); - fd_fibre_abort(); - } - - ulong l_mem = (ulong)mem; - - void * stack = (void*)( l_mem + - fd_ulong_align_up( sizeof( fd_fibre_t ), FD_FIBRE_ALIGN ) ); - - fd_fibre_t * fibre = (fd_fibre_t*)mem; - - memset( fibre, 0, sizeof( *fibre ) ); - - /* set the current value of stack and stack_sz */ - fibre->stack_sz = stack_sz; - fibre->stack = stack; - - fibre->fn = fn; - fibre->arg = arg; - - /* start with the current fibre */ - memcpy( &fibre->ctx, &fd_fibre_current->ctx, sizeof( fibre->ctx ) ); - - /* set the successor context, for use in the event the fibre terminates */ - fibre->ctx.uc_link = &fd_fibre_current->ctx; - - /* set the stack for the new fibre */ - fibre->ctx.uc_stack.ss_sp = stack; - fibre->ctx.uc_stack.ss_size = stack_sz; - - /* make a new context */ - makecontext( &fibre->ctx, (void(*)(void))fd_fibre_run_fn, 1, fibre ); - - return fibre; -} - -/* free a fibre - - this frees up the resources of a fibre */ -void -fd_fibre_free( fd_fibre_t * fibre ) { - /* nothing to do, as caller owns memory */ - (void)fibre; -} - -/* switch execution to a fibre - - switches execution to "swap_to" - "swap_to" must have been created with either fd_fibre_init, or fd_fibre_start */ -void -fd_fibre_swap( fd_fibre_t * swap_to ) { - if( swap_to == fd_fibre_current ) { - return; - } - - if( swap_to->done ) return; - - /* set the context to return to as the current context */ - swap_to->ctx.uc_link = &fd_fibre_current->ctx; - - /* store current fibre for popping */ - fd_fibre_t * fibre_pop = fd_fibre_current; - - /* set fd_fibre_current for next execution context */ - fd_fibre_current = swap_to; - - /* switch to new fibre */ - if( swapcontext( &fibre_pop->ctx, &swap_to->ctx ) == -1 ) { - fprintf( stderr, "swapcontext failed with %d %s\n", errno, fd_io_strerror( errno ) ); - fflush( stdout ); - fd_fibre_abort(); - } - - /* return value of fibre to its previous value */ - fd_fibre_current = fibre_pop; -} - -/* set a clock for scheduler */ -long (*fd_fibre_clock)(void); - -/* fibre for scheduler */ -fd_fibre_t * fd_fibre_scheduler = NULL; - -void -fd_fibre_set_clock( long (*clock)(void) ) { - fd_fibre_clock = clock; -} - -/* yield current fibre - allows another fibre to run */ -void -fd_fibre_yield( void ) { - /* same as yield */ - fd_fibre_wait(0); -} - -/* stops running currently executing fibre for a period */ -void -fd_fibre_wait( long wait_ns ) { - /* cannot wait if no scheduler */ - if( fd_fibre_scheduler == NULL ) return; - - /* calc wake time */ - long wake = fd_fibre_clock() + ( wait_ns < 1 ? 1 : wait_ns ); - - fd_fibre_current->sched_time = wake; - - fd_fibre_schedule( fd_fibre_current ); - - /* switch to the fibre scheduler */ - fd_fibre_swap( fd_fibre_scheduler ); -} - -/* stops running currently executing fibre until a particular - time */ -void -fd_fibre_wait_until( long resume_time_ns ) { - long now = fd_fibre_clock(); - if( resume_time_ns <= now ) { - /* ensure that another fibre gets a chance at some point */ - resume_time_ns = now + 1; - } - - /* cannot wait if no scheduler */ - if( fd_fibre_scheduler == NULL ) return; - - fd_fibre_current->sched_time = resume_time_ns; - - fd_fibre_schedule( fd_fibre_current ); - - /* switch to the fibre scheduler */ - fd_fibre_swap( fd_fibre_scheduler ); -} - -/* wakes another fibre */ -void -fd_fibre_wake( fd_fibre_t * fibre ) { - if( fd_fibre_current == fibre ) return; - - fibre->sched_time = fd_fibre_clock(); - fd_fibre_schedule( fibre ); -} - -/* sentinel for run queue */ -fd_fibre_t fd_fibre_schedule_queue[1] = {{ .sentinel = 1, .next = fd_fibre_schedule_queue }}; - -/* add a fibre to the schedule */ -void -fd_fibre_schedule( fd_fibre_t * fibre ) { - if( fd_fibre_clock == NULL ) fd_fibre_abort(); - - fd_fibre_t * cur_fibre = fd_fibre_schedule_queue; - - /* remove from schedule */ - while(1) { - if( cur_fibre->next == fibre ) { - cur_fibre->next = fibre->next; - } - - cur_fibre = cur_fibre->next; - if( cur_fibre->sentinel ) break; - } - - /* add into schedule at appropriate place for wake time */ - fd_fibre_t * prior = fd_fibre_schedule_queue; - long wake = fibre->sched_time; - - cur_fibre = prior->next; - while( !cur_fibre->sentinel && wake > cur_fibre->sched_time ) { - prior = cur_fibre; - cur_fibre = cur_fibre->next; - } - - /* insert into schedule */ - fibre->next = cur_fibre; - prior->next = fibre; -} - -/* run the current schedule - - returns the time of the next ready fibre - returns -1 if there are no fibres in the schedule */ -long -fd_fibre_schedule_run( void ) { - /* set the currently running fibre as the scheduler */ - fd_fibre_scheduler = fd_fibre_current; - - while(1) { - fd_fibre_t * cur_fibre = fd_fibre_schedule_queue->next; - if( cur_fibre->sentinel ) return -1; - - long now = fd_fibre_clock(); - if( cur_fibre->sched_time > now ) { - /* nothing more to do yet */ - return cur_fibre->sched_time; - } - - /* remove from schedule */ - fd_fibre_schedule_queue->next = cur_fibre->next; - - /* if fibre done, skip execution */ - if( !cur_fibre->done ) { - fd_fibre_swap( cur_fibre ); - } - } - - return -1; -} - -ulong -fd_fibre_pipe_align( void ) { - return alignof( fd_fibre_pipe_t ); -} - -ulong -fd_fibre_pipe_footprint( ulong entries ) { - return sizeof( fd_fibre_pipe_t ) + entries * sizeof( ulong ); -} - -fd_fibre_pipe_t * -fd_fibre_pipe_new( void * mem, ulong entries ) { - fd_fibre_pipe_t * pipe = (fd_fibre_pipe_t*)mem; - - ulong * entries_array = (ulong*)&pipe[1]; - - pipe->cap = entries; - pipe->head = 0UL; - pipe->tail = 0UL; - pipe->reader = NULL; - pipe->writer = NULL; - pipe->entries = entries_array; - - return pipe; -} - -int -fd_fibre_pipe_write( fd_fibre_pipe_t * pipe, ulong value, long timeout ) { - fd_fibre_t * prev_writer = pipe->writer; - - ulong used = 0; - ulong free = 0; - - long timeout_ts = fd_fibre_clock() + timeout; - - /* loop until either there is space for a new value to be - written, or until we time out */ - while(1) { - used = pipe->head - pipe->tail; - free = pipe->cap - used; - - /* if we have free space, break out of loop */ - if( free ) break; - - /* we have no free space within which to write, so wait */ - - /* update the writer to ourself */ - pipe->writer = fd_fibre_current; - - /* did we time out? */ - if( fd_fibre_clock() >= timeout_ts ) { - /* restore writer before returning */ - pipe->writer = prev_writer; - - /* return timeout */ - return 1; - } - - /* wait */ - - /* set current fibre as the writer */ - pipe->writer = fd_fibre_current; - - /* set wakeup time */ - fd_fibre_current->sched_time = timeout_ts; - fd_fibre_schedule( fd_fibre_current ); - - /* switch to the scheduler */ - fd_fibre_swap( fd_fibre_scheduler ); - } - - /* we have free space, so store the value */ - pipe->entries[pipe->head % pipe->cap] = value; - - /* increment the head */ - pipe->head++; - - /* wake up one waiting reader, if any */ - if( pipe->reader ) { - /* ensure we are scheduled */ - fd_fibre_current->sched_time = fd_fibre_clock();; - fd_fibre_schedule( fd_fibre_current ); - - fd_fibre_swap( pipe->reader ); - } - - /* restore writer */ - pipe->writer = prev_writer; - - /* return successful write */ - return 0; -} - -int -fd_fibre_pipe_read( fd_fibre_pipe_t * pipe, ulong *value, long timeout ) { - fd_fibre_t * prev_reader = pipe->reader; - - ulong used = 0; - - long timeout_ts = fd_fibre_clock() + timeout; - - /* loop until we have a value to be read, or until we time out */ - while(1) { - used = pipe->head - pipe->tail; - - /* is data available? */ - if( used ) break; - - /* no data available, so wait */ - - /* update the reader */ - pipe->reader = fd_fibre_current; - - /* did we time out? */ - if( fd_fibre_clock() >= timeout_ts ) { - /* restore the reader before returning */ - pipe->reader = prev_reader; - - /* return timeout */ - return 1; - } - - /* wait */ - - /* set current fibre as the reader */ - pipe->reader = fd_fibre_current; - - /* set wakeup time */ - fd_fibre_current->sched_time = timeout_ts; - fd_fibre_schedule( fd_fibre_current ); - - /* switch to the scheduler */ - fd_fibre_swap( fd_fibre_scheduler ); - } - - /* we have data to provide, so retrieve it */ - *value = pipe->entries[pipe->tail % pipe->cap]; - - /* increment the tail */ - pipe->tail++; - - /* wake up one waiting writer, if any */ - if( pipe->writer ) { - /* ensure we are scheduled */ - fd_fibre_current->sched_time = fd_fibre_clock();; - fd_fibre_schedule( fd_fibre_current ); - - fd_fibre_swap( pipe->writer ); - } - - /* restore reader */ - pipe->reader = prev_reader; - - /* return success */ - return 0; -} diff --git a/src/util/fibre/fd_fibre.h b/src/util/fibre/fd_fibre.h deleted file mode 100644 index 26fbaf61456..00000000000 --- a/src/util/fibre/fd_fibre.h +++ /dev/null @@ -1,220 +0,0 @@ -#ifndef HEADER_fd_src_util_fibre_fd_fibre_h -#define HEADER_fd_src_util_fibre_fd_fibre_h - -#include - -#include "../fd_util.h" - -#define FD_FIBRE_ALIGN 128UL - -/* definition of the function to be called when starting a new fibre */ -typedef void (*fd_fibre_fn_t)( void * ); - -struct fd_fibre { - ucontext_t ctx; - void * stack; - size_t stack_sz; - fd_fibre_fn_t fn; - void * arg; - int done; - - /* schedule parameters */ - long sched_time; - struct fd_fibre * next; - int sentinel; -}; -typedef struct fd_fibre fd_fibre_t; - - -struct fd_fibre_pipe { - ulong cap; /* capacity */ - ulong head; /* head index */ - ulong tail; /* tail index */ - - fd_fibre_t * writer; /* fibre that's currently waiting for a write, if any */ - fd_fibre_t * reader; /* fibre that's currently waiting for a read, if any */ - - ulong * entries; -}; -typedef struct fd_fibre_pipe fd_fibre_pipe_t; - - -/* TODO make thread local */ -extern fd_fibre_t * fd_fibre_current; - - -FD_PROTOTYPES_BEGIN - - -/* footprint and alignment required for fd_fibre_init */ -ulong fd_fibre_init_footprint( void ); -ulong fd_fibre_init_align( void ); - - -/* initialize main fibre - - should be called before making any other fibre calls - - creates a new fibre from the current thread, and returns it - caller should keep the fibre for later freeing - - probably shouldn't run this twice on the same thread - - mem is the memory allocated for this object. Use fd_fibre_init{_align,_footprint} to - obtain the appropriate size and alignment requirements */ - -fd_fibre_t * -fd_fibre_init( void * ); - - -/* footprint and alignment required for fd_fibre_start */ -ulong fd_fibre_start_footprint( ulong stack_size ); -ulong fd_fibre_start_align( void ); - - -/* Start a fibre - - This uses get/setcontext to create a new fibre - - fd_fibre_init must be called once before calling this - - The current fibre will continue running, and the other will be - inactive, and ready to switch to - - This fibre may be started on this or another thread - - mem is the memory used for the fibre. Use fd_fibre_start{_align,_footprint} - to determine the size and alignment required for the memory - - stack_sz is the size of the stack required - - fn is the function entry point to call in the new fibre - arg is the value to pass to function fn */ -fd_fibre_t * -fd_fibre_start( void * mem, ulong stack_sz, fd_fibre_fn_t fn, void * arg ); - - -/* Free a fibre - - This frees up the resources of a fibre - - Only call on a fibre that is not currently running */ -void -fd_fibre_free( fd_fibre_t * fibre ); - - -/* switch execution to a fibre - - Switches execution to "swap_to" - The global variable `fd_fibre_current` is updated with the state - of the currently running fibre before switching */ -void -fd_fibre_swap( fd_fibre_t * swap_to ); - - -/* fd_fibre_abort is called when a fatal error occurs */ -#ifndef fd_fibre_abort -# define fd_fibre_abort(...) abort( __VA_ARGS__ ) -#endif - - -/* set a clock for scheduler */ -void -fd_fibre_set_clock( long (*clock)(void) ); - - -/* yield current fibre - allows other fibres to execute */ -void -fd_fibre_yield( void ); - - -/* stops running currently executing fibre for a period of time */ -void -fd_fibre_wait( long wait_ns ); - - -/* stops running currently executing fibre until a particular - time */ -void -fd_fibre_wait_until( long resume_time_ns ); - - -/* wakes another fibre */ -void -fd_fibre_wake( fd_fibre_t * fibre ); - - -/* add a fibre to the schedule */ -void -fd_fibre_schedule( fd_fibre_t * fibre ); - - -/* run the current schedule - - returns - the time of the next ready fibre - -1 if there are no fibres in the schedule */ -long -fd_fibre_schedule_run( void ); - - -/* fibre data structures */ - -/* pipe - - send data from one fibre to another - wakes receiving fibre on write */ - -/* pipe footprint and alignment */ - -ulong -fd_fibre_pipe_align( void ); - -ulong -fd_fibre_pipe_footprint( ulong entries ); - - -/* create a new pipe */ - -fd_fibre_pipe_t * -fd_fibre_pipe_new( void * mem, ulong entries ); - - -/* write a value into the pipe - - can block if there isn't any free space - timeout allows the blocking to terminate after a period of time - - pipe the pipe to write to - value the value to write - timeout the amount of time to wait for the write to complete - - returns 0 successful - 1 there was no space for the write operation */ - -int -fd_fibre_pipe_write( fd_fibre_pipe_t * pipe, ulong value, long timeout ); - - -/* read a value from the pipe - - read can block if there isn't any data in the pipe - - timeout allows the read to terminate without a result after - a period of time - - pipe the pipe to write to - value a pointer to the ulong to receive the value - timeout number of nanoseconds to wait for a value - - returns 0 successfully read a value from the pipe - 1 timed out without receiving data */ -int -fd_fibre_pipe_read( fd_fibre_pipe_t * pipe, ulong *value, long timeout ); - - -FD_PROTOTYPES_END - - -#endif /* HEADER_fd_src_util_fibre_fd_fibre_h */ diff --git a/src/util/fibre/test_fibre.c b/src/util/fibre/test_fibre.c deleted file mode 100644 index 0d6ba5c3e11..00000000000 --- a/src/util/fibre/test_fibre.c +++ /dev/null @@ -1,503 +0,0 @@ -#include -#include - -#include "fd_fibre.h" - - -void -fn1( void * vp ) { - (void)vp; - printf( "running fn1\n" ); fflush( stdout ); -} - - -void -fn2( void * vp ) { - (void)vp; - printf( "running fn2\n" ); fflush( stdout ); -} - - -void -fn3( void * vp ) { - (void)vp; - printf( "running fn3\n" ); fflush( stdout ); -} - - -/* tests of fd_fibre_wait and fd_fibre_wait_until */ - -/* need a synthetic clock */ -long now = 0; - -long -my_clock(void) { - return now; -} - - -// done flag for tests -int done = 0; - -void -test1( void * vp ) { - /* argument to test1 */ - long * arg = (long*)vp; - - /* fetch argument, which is period */ - long period = arg[0]; - - while( !done ) { - printf( "test1 arg(%ld) now: %ld\n", period, now ); fflush( stdout ); - - fd_fibre_wait( period ); - } -} - -void -test2( void * vp ) { - /* arguments */ - long * arg = (long*)vp; - - /* argument is "done" time */ - long done_time = arg[0]; - - /* this test simply waits until a particular time - and then sets a flag */ - - printf( "test2: waiting\n" ); fflush( stdout ); - fd_fibre_wait_until( done_time ); - - printf( "test2: finished waiting\n" ); fflush( stdout ); - done = 1; -} - -void -test_pipe_producer( void * vp ) { - /* arguments */ - fd_fibre_pipe_t * pipe = (fd_fibre_pipe_t*)vp; - - printf( "pipe test producer starting\n" ); fflush( stdout ); - - /* transmit at a rate of one message per millisecond - for one second */ - long run_period = (long)1e6; - long run_duration = (long)1e9; - long send_time = now + run_period; - long run_end = now + run_duration; - - ulong msg = 0; - while( now < run_end ) { - /* wait until sent time */ - fd_fibre_wait_until( send_time ); - - /* send msg to consumer */ - printf( "writing msg: %lu\n", msg ); fflush( stdout ); - int rtn = fd_fibre_pipe_write( pipe, msg, 0 ); - if( rtn ) { - printf( "write failed on msg: %lu\n", msg ); - exit(1); - } - - /* choose another send time */ - send_time += run_period; - - /* increment message */ - msg++; - } - - printf( "producer finished\n" ); -} - - -void test_pipe_consumer( void * vp ) { - /* arguments */ - fd_fibre_pipe_t * pipe = (fd_fibre_pipe_t*)vp; - - printf( "pipe test consumer starting\n" ); fflush( stdout ); - - long run_period = (long)1e6; - long run_duration = (long)1e9; - long run_end = now + run_duration; - - /* wait to receive from pipe, and report each message received */ - while( now < run_end ) { - /* receive message from producer - wait for up to the period */ - ulong msg = 0; - int rtn = fd_fibre_pipe_read( pipe, &msg, run_period ); - - if( rtn ) { - printf( "read failed\n" ); - exit(1); - } - - printf( "msg %lu received at %ld\n", msg, now ); - } - - printf( "consumer finished\n" ); -} - - -void -run_pipe_test( void ) { - printf( "pipe test starting\n" ); - - /* set now to zero for pretty output */ - now = 0; - - /* create a pipe for communicating between fibres */ - ulong stack_sz = 1<<20; - ulong pipe_entries = 16; - void * pipe_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - - fd_fibre_pipe_t * pipe = fd_fibre_pipe_new( pipe_mem, pipe_entries ); - - /* create a fibre each for producer and consumer */ - void * fibre_1_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - void * fibre_2_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - - fd_fibre_t * fibre_1 = fd_fibre_start( fibre_1_mem, stack_sz, test_pipe_producer, pipe ); - fd_fibre_t * fibre_2 = fd_fibre_start( fibre_2_mem, stack_sz, test_pipe_consumer, pipe ); - - /* schedule the fibres */ - fd_fibre_schedule( fibre_1 ); - fd_fibre_schedule( fibre_2 ); - - /* run schedule until done */ - while( 1 ) { - long timeout = fd_fibre_schedule_run(); - if( timeout == -1 ) { - /* -1 indicates no fibres scheduled */ - break; - } - - /* advance time to the next scheduled event */ - now = timeout; - } - - fd_fibre_free( fibre_2 ); - fd_fibre_free( fibre_1 ); - - free( fibre_1_mem ); - free( fibre_2_mem ); - free( pipe_mem ); - - printf( "pipe test complete\n" ); -} - - -struct pipe_producer_args { - fd_fibre_pipe_t * output; - long expire; - long period; -}; -typedef struct pipe_producer_args pipe_producer_args_t; - - -void -pipe_producer_main( void * vp_args ) { - /* obtain args */ - pipe_producer_args_t * args = (pipe_producer_args_t*)vp_args; - - /* send periodically - every 1ms (synthetic clock) */ - fd_fibre_pipe_t * output = args->output; - long expire = args->expire; - long period = args->period; - - /* first send time */ - long send_time = now + period; - - /* producer runs until time limit exceeded */ - long expire_time = now + expire; - - /* msg is just a counter */ - ulong msg = 1; - - /* for return values */ - int rtn; - - while( now < expire_time ) { - /* wait until next "send" */ - fd_fibre_wait_until( send_time ); - - /* set timeout to be the same as period */ - long timeout = period; - - /* log write call */ - printf( "pipe_producer_main: writing %lu\n", msg ); fflush( stdout ); - - /* try sending */ - rtn = fd_fibre_pipe_write( output, msg, timeout ); - - if( rtn ) { - printf( "fd_fibre_pipe_write failed\n" ); - exit(1); - } - - /* update send time for next iteration */ - send_time += period; - - /* increment message */ - msg++; - } - - printf( "pipe_producer_main: finished\n" ); - -} - - -struct pipe_filter_args { - fd_fibre_pipe_t * input; - fd_fibre_pipe_t * out1; - fd_fibre_pipe_t * out2; - long period; -}; -typedef struct pipe_filter_args pipe_filter_args_t; - - -void -pipe_filter_main( void * vp_args ) { - pipe_filter_args_t * args = (pipe_filter_args_t*)vp_args; - - /* receive messages on one pipe, distribute them to two pipes - alternately */ - - fd_fibre_pipe_t * input = args->input; - fd_fibre_pipe_t * out1 = args->out1; - fd_fibre_pipe_t * out2 = args->out2; - long period = args->period; - long timeout = period; - - /* loop until read fails */ - while(1) { - ulong msg = 0; - int rtn = fd_fibre_pipe_read( input, &msg, timeout ); - if( rtn ) break; - - /* we have a message - choose the out pipe(s) */ - if( msg % 2 == 0 ) { - rtn = fd_fibre_pipe_write( out1, msg, timeout ); - if( rtn ) { - printf( "pipe_filter_main: write failed\n" ); - exit(1); - } - } - - if( msg % 3 == 0 ) { - rtn = fd_fibre_pipe_write( out2, msg, timeout ); - if( rtn ) { - printf( "pipe_filter_main: write failed\n" ); - exit(1); - } - } - } - - printf( "pipe_filter_main complete\n" ); -} - - -struct pipe_consumer_args { - char const * name; - fd_fibre_pipe_t * input; - long expire; -}; -typedef struct pipe_consumer_args pipe_consumer_args_t; - - -void -pipe_consumer_main( void * vp_args ) { - /* obtain args */ - - pipe_consumer_args_t *args = (pipe_consumer_args_t*)vp_args; - - fd_fibre_pipe_t * input = args->input; - long expire = args->expire; - - long expire_time = now + expire; - - /* loop until read fails */ - while( expire_time > now ) { - ulong msg = 0; - int rtn = fd_fibre_pipe_read( input, &msg, expire_time - now ); - if( rtn ) break; - - /* we have a message - output it */ - printf( "pipe_consumer_main: %s received msg %lu\n", args->name, msg ); - } - - printf( "pipe_consumer_main: finished\n" ); -} - - -void -run_test_pipe_filter( void ) { - ulong pipe_entries = 16; - ulong stack_sz = 1<<20; - - /* create three pipes */ - void * pipe_1_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_pipe_t * pipe_1 = fd_fibre_pipe_new( pipe_1_mem, pipe_entries ); - - void * pipe_2_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_pipe_t * pipe_2 = fd_fibre_pipe_new( pipe_2_mem, pipe_entries ); - - void * pipe_3_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_pipe_t * pipe_3 = fd_fibre_pipe_new( pipe_3_mem, pipe_entries ); - - /* period set to 1 ms */ - long period = (long)1e6; - long expire = (long)2e7; - - /* start 1 producer, 1 filter and 2 consumer fibres */ - pipe_producer_args_t producer_args = { .output = pipe_1, .expire = expire, period }; - pipe_filter_args_t filter_args = { .input = pipe_1, .out1 = pipe_2, .out2 = pipe_3, .period = period }; - pipe_consumer_args_t consumer_main_1_args = { .name = "main_1", .input = pipe_2, .expire = expire }; - pipe_consumer_args_t consumer_main_2_args = { .name = "main_2", .input = pipe_3, .expire = expire }; - - /* create fibre for pipe_producer_main */ - void * producer_fibre_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * producer_fibre = fd_fibre_start( producer_fibre_mem, stack_sz, pipe_producer_main, &producer_args ); - - /* create fibre for pipe_filter_main */ - void * filter_fibre_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * filter_fibre = fd_fibre_start( filter_fibre_mem, stack_sz, pipe_filter_main, &filter_args ); - - /* create fibre for pipe_consumer_1_main */ - void * consumer_1_fibre_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * consumer_1_fibre = fd_fibre_start( consumer_1_fibre_mem, stack_sz, pipe_consumer_main, &consumer_main_1_args ); - - /* create fibre for pipe_consumer_2_main */ - void * consumer_2_fibre_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * consumer_2_fibre = fd_fibre_start( consumer_2_fibre_mem, stack_sz, pipe_consumer_main, &consumer_main_2_args ); - - /* add to schedule */ - fd_fibre_schedule( producer_fibre ); - fd_fibre_schedule( filter_fibre ); - fd_fibre_schedule( consumer_1_fibre ); - fd_fibre_schedule( consumer_2_fibre ); - - - /* run schedule until done */ - while( 1 ) { - long timeout = fd_fibre_schedule_run(); - if( timeout == -1 ) { - /* -1 indicates no fibres scheduled */ - break; - } - - /* advance time to next event */ - now = timeout; - } - - /* free fibres */ - fd_fibre_free( producer_fibre ); - fd_fibre_free( filter_fibre ); - fd_fibre_free( consumer_1_fibre ); - fd_fibre_free( consumer_2_fibre ); - - /* free fibre mem */ - free( producer_fibre_mem ); - free( filter_fibre_mem ); - free( consumer_1_fibre_mem ); - free( consumer_2_fibre_mem ); - - /* free pipe mem */ - free( pipe_1_mem ); - free( pipe_2_mem ); - free( pipe_3_mem ); -} - - -int -main( int argc, char ** argv ) { - (void)argc; - (void)argv; - - // initialize fibres - void * main_fibre_mem = aligned_alloc( fd_fibre_init_align(), fd_fibre_init_footprint() ); - fd_fibre_t * main_fibre = fd_fibre_init( main_fibre_mem ); - - // create 3 fibres for functions fn1, fn2 and fn3 - ulong stack_sz = 1<<20; - - void * fibre_1_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - void * fibre_2_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - void * fibre_3_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - - fd_fibre_t * fibre_1 = fd_fibre_start( fibre_1_mem, stack_sz, fn1, NULL ); - fd_fibre_t * fibre_2 = fd_fibre_start( fibre_2_mem, stack_sz, fn2, NULL ); - fd_fibre_t * fibre_3 = fd_fibre_start( fibre_3_mem, stack_sz, fn3, NULL ); - - // start each fibre, and allow to complete - fd_fibre_swap( fibre_1 ); - fd_fibre_swap( fibre_2 ); - fd_fibre_swap( fibre_3 ); - - fd_fibre_free( fibre_3 ); - fd_fibre_free( fibre_2 ); - fd_fibre_free( fibre_1 ); - - free( fibre_1_mem ); - free( fibre_2_mem ); - free( fibre_3_mem ); - - // now run test of wait and wait_until - - // needs a clock - fd_fibre_set_clock( my_clock ); - - // prepare some fibres - long t0_period = (long)1e9; - void * t0_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * t0 = fd_fibre_start( t0_mem, stack_sz, test1, &t0_period ); - - long t1_period = (long)3e9; - void * t1_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * t1 = fd_fibre_start( t1_mem, stack_sz, test1, &t1_period ); - - long t2_period = (long)5e9; - void * t2_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * t2 = fd_fibre_start( t2_mem, stack_sz, test1, &t2_period ); - - long t3_done_time = (long)60e9; - void * t3_mem = aligned_alloc( fd_fibre_start_align(), fd_fibre_start_footprint( stack_sz ) ); - fd_fibre_t * t3 = fd_fibre_start( t3_mem, stack_sz, test2, &t3_done_time ); - - // add to schedule - fd_fibre_schedule( t0 ); - fd_fibre_schedule( t1 ); - fd_fibre_schedule( t2 ); - fd_fibre_schedule( t3 ); - - // run schedule until done - while( 1 ) { - long timeout = fd_fibre_schedule_run(); - if( timeout == -1 ) { - /* -1 indicates no fibres scheduled */ - break; - } - - now = timeout; - } - - fd_fibre_free( t0 ); - fd_fibre_free( t1 ); - fd_fibre_free( t2 ); - fd_fibre_free( t3 ); - - free( t0_mem ); - free( t1_mem ); - free( t2_mem ); - free( t3_mem ); - - run_pipe_test(); - - run_test_pipe_filter(); - - fd_fibre_free( main_fibre ); - free( main_fibre_mem ); - - return 0; -} - diff --git a/src/util/racesan/fd_racesan_base.h b/src/util/racesan/fd_racesan_base.h index ec83cef56ff..54bf5ad6b3b 100644 --- a/src/util/racesan/fd_racesan_base.h +++ b/src/util/racesan/fd_racesan_base.h @@ -7,8 +7,6 @@ #define FD_HAS_RACESAN 0 #endif -/* FIXME Check for FD_HAS_UCONTEXT */ - struct fd_racesan; typedef struct fd_racesan fd_racesan_t; diff --git a/src/waltz/quic/tests/Local.mk b/src/waltz/quic/tests/Local.mk index 7fe7351b90e..2a7186f08c7 100644 --- a/src/waltz/quic/tests/Local.mk +++ b/src/waltz/quic/tests/Local.mk @@ -59,6 +59,6 @@ $(call make-fuzz-test,fuzz_quic_wire,fuzz_quic_wire,$(QUIC_TEST_LIBS)) $(call make-fuzz-test,fuzz_quic_actor,fuzz_quic_actor,$(QUIC_TEST_LIBS)) endif -$(call make-unit-test,test_quic_key_phase,test_quic_key_phase,$(QUIC_TEST_LIBS) fd_fibre) +$(call make-unit-test,test_quic_key_phase,test_quic_key_phase,$(QUIC_TEST_LIBS)) $(call run-unit-test,test_quic_key_phase) endif From dd75a9c0680aa7cdb3e52dc0ad0d0a7078bd2ab8 Mon Sep 17 00:00:00 2001 From: topointon-jump <156020469+topointon-jump@users.noreply.github.com> Date: Thu, 4 Jun 2026 14:27:31 -0500 Subject: [PATCH 11/30] flamenco, features: add validate_chained_block_id_2 (#10084) --- src/flamenco/features/fd_features_generated.c | 8 ++++++++ src/flamenco/features/fd_features_generated.h | 5 +++-- src/flamenco/features/feature_map.json | 3 ++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/flamenco/features/fd_features_generated.c b/src/flamenco/features/fd_features_generated.c index 5d402f313b6..9c377c8886a 100644 --- a/src/flamenco/features/fd_features_generated.c +++ b/src/flamenco/features/fd_features_generated.c @@ -1889,6 +1889,12 @@ fd_feature_id_t const ids[] = { .name = "define_ltds_fee_only_semantics", .cleaned_up = 0 }, + { .index = offsetof(fd_features_t, validate_chained_block_id_2)>>3, + .id = {"\x0d\xbc\x3b\x68\xa2\x90\x42\x94\x71\x68\x24\xf6\xad\x2a\x32\xe9\x49\x30\x42\xa3\x80\x46\x91\x94\x6c\x28\x18\x33\xcd\x6f\x71\x55"}, + /* vcmrw431aNM8ngQ46derkZXipoTGQdbHkEygBDh12dA */ + .name = "validate_chained_block_id_2", + .cleaned_up = 0 }, + { .index = ULONG_MAX } }; @@ -2181,6 +2187,7 @@ typedef struct fd_feature_id_lookup_entry fd_feature_id_lookup_entry_t; #define MAP_PERFECT_273 0xd388d8dbc65e2dcbUL, .val = &ids[273] #define MAP_PERFECT_274 0xbe56a012b91e1808UL, .val = &ids[274] #define MAP_PERFECT_275 0x902a0ec624adfb04UL, .val = &ids[275] +#define MAP_PERFECT_276 0x944290a2683bbc0dUL, .val = &ids[276] #include "../../util/tmpl/fd_map_perfect.c" @@ -2467,4 +2474,5 @@ FD_STATIC_ASSERT( offsetof( fd_features_t, disable_sbpf_v0_v1_v2_deployment FD_STATIC_ASSERT( offsetof( fd_features_t, commission_rate_in_basis_points )>>3==273UL, layout ); FD_STATIC_ASSERT( offsetof( fd_features_t, loader_v3_minimum_extend_program_size )>>3==274UL, layout ); FD_STATIC_ASSERT( offsetof( fd_features_t, define_ltds_fee_only_semantics )>>3==275UL, layout ); +FD_STATIC_ASSERT( offsetof( fd_features_t, validate_chained_block_id_2 )>>3==276UL, layout ); FD_STATIC_ASSERT( sizeof( fd_features_t )>>3==FD_FEATURE_ID_CNT, layout ); diff --git a/src/flamenco/features/fd_features_generated.h b/src/flamenco/features/fd_features_generated.h index f4d43b33339..9e6393964f3 100644 --- a/src/flamenco/features/fd_features_generated.h +++ b/src/flamenco/features/fd_features_generated.h @@ -8,10 +8,10 @@ #endif /* FEATURE_ID_CNT is the number of features in ids */ -#define FD_FEATURE_ID_CNT (276UL) +#define FD_FEATURE_ID_CNT (277UL) /* Feature set ID calculated from all feature names */ -#define FD_FEATURE_SET_ID (41254028U) +#define FD_FEATURE_SET_ID (1668064299U) union fd_features { ulong f[ FD_FEATURE_ID_CNT ]; @@ -292,5 +292,6 @@ union fd_features { /* 0xd388d8dbc65e2dcb */ ulong commission_rate_in_basis_points; /* 0xbe56a012b91e1808 */ ulong loader_v3_minimum_extend_program_size; /* 0x902a0ec624adfb04 */ ulong define_ltds_fee_only_semantics; + /* 0x944290a2683bbc0d */ ulong validate_chained_block_id_2; }; }; diff --git a/src/flamenco/features/feature_map.json b/src/flamenco/features/feature_map.json index 1cde9beff51..681739a78b0 100644 --- a/src/flamenco/features/feature_map.json +++ b/src/flamenco/features/feature_map.json @@ -274,5 +274,6 @@ {"name":"disable_sbpf_v0_v1_v2_deployment","pubkey":"B8JJXCy5amZyWG9r7EnUYLwzXSXTxG7GZ1qZ1qggo83g"}, {"name":"commission_rate_in_basis_points","pubkey":"Eg7tXEwMZzS98xaZ1YHUbdRHsaYZiCsSaR6sKgxreoaj"}, {"name":"loader_v3_minimum_extend_program_size","pubkey":"YbbRLkvenrocjGPGyoQE4wjnvYzTgfsk38NFmcYK7a5"}, - {"name":"define_ltds_fee_only_semantics","pubkey":"LTDSzjZKFJMKHYpNycG1FrWwGGTaFFwqEFjB5GGLNVD"} + {"name":"define_ltds_fee_only_semantics","pubkey":"LTDSzjZKFJMKHYpNycG1FrWwGGTaFFwqEFjB5GGLNVD"}, + {"name":"validate_chained_block_id_2","pubkey":"vcmrw431aNM8ngQ46derkZXipoTGQdbHkEygBDh12dA"} ] From 4760b8098de258c28563cd0c2cf844ba82e2502a Mon Sep 17 00:00:00 2001 From: jherrera-jump Date: Thu, 4 Jun 2026 15:22:41 -0500 Subject: [PATCH 12/30] frontend: development updates (#10087) --- .../gui/dist_dev/assets/index-C054xcgF.js | 214 ++++++++++++++++++ .../gui/dist_dev/assets/index-CKTbDeLd.js | 214 ------------------ ...{index-ColMY7Rf.css => index-qV0ZL8w9.css} | 2 +- ...orker-D3WzW2i7.js => wsWorker-CiLy8ipA.js} | 2 +- src/disco/gui/dist_dev/index.html | 4 +- src/disco/gui/dist_dev/version | 2 +- src/disco/gui/fd_gui_printf.c | 2 +- src/disco/gui/generated/http_import_dist.c | 24 +- 8 files changed, 232 insertions(+), 232 deletions(-) create mode 100644 src/disco/gui/dist_dev/assets/index-C054xcgF.js delete mode 100644 src/disco/gui/dist_dev/assets/index-CKTbDeLd.js rename src/disco/gui/dist_dev/assets/{index-ColMY7Rf.css => index-qV0ZL8w9.css} (99%) rename src/disco/gui/dist_dev/assets/{wsWorker-D3WzW2i7.js => wsWorker-CiLy8ipA.js} (97%) diff --git a/src/disco/gui/dist_dev/assets/index-C054xcgF.js b/src/disco/gui/dist_dev/assets/index-C054xcgF.js new file mode 100644 index 00000000000..cf1b956e777 --- /dev/null +++ b/src/disco/gui/dist_dev/assets/index-C054xcgF.js @@ -0,0 +1,214 @@ +var rxe=Object.defineProperty;var ixe=(e,t,n)=>t in e?rxe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $u=(e,t,n)=>ixe(e,typeof t!="symbol"?t+"":t,n);var hC,Yme,Kme,Xme;function oxe(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var Ac=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function to(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wD={exports:{}},v2={},kD={exports:{}},gn={};/** +* @license React +* react.production.min.js +* +* Copyright (c) Facebook, Inc. and its affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var hv=Symbol.for("react.element"),axe=Symbol.for("react.portal"),sxe=Symbol.for("react.fragment"),lxe=Symbol.for("react.strict_mode"),uxe=Symbol.for("react.profiler"),cxe=Symbol.for("react.provider"),dxe=Symbol.for("react.context"),fxe=Symbol.for("react.forward_ref"),hxe=Symbol.for("react.suspense"),pxe=Symbol.for("react.memo"),mxe=Symbol.for("react.lazy"),SD=Symbol.iterator;function gxe(e){return e===null||typeof e!="object"?null:(e=SD&&e[SD]||e["@@iterator"],typeof e=="function"?e:null)}var CD={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jD=Object.assign,TD={};function Jm(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}Jm.prototype.isReactComponent={},Jm.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},Jm.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ID(){}ID.prototype=Jm.prototype;function cj(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}var dj=cj.prototype=new ID;dj.constructor=cj,jD(dj,Jm.prototype),dj.isPureReactComponent=!0;var ED=Array.isArray,ND=Object.prototype.hasOwnProperty,fj={current:null},$D={key:!0,ref:!0,__self:!0,__source:!0};function MD(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)ND.call(t,r)&&!$D.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,B=F[ce];if(0>>1;cei(me,ee))kei(he,me)?(F[ce]=he,F[ke]=ee,ce=ke):(F[ce]=me,F[je]=ee,ce=je);else if(kei(he,ee))F[ce]=he,F[ke]=ee,ce=ke;else break e}}return H}function i(F,H){var ee=F.sortIndex-H.sortIndex;return ee!==0?ee:F.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],d=1,f=null,p=3,v=!1,x=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(F){for(var H=n(c);H!==null;){if(H.callback===null)r(c);else if(H.startTime<=F)r(c),H.sortIndex=H.expirationTime,t(l,H);else break;H=n(c)}}function C(F){if(y=!1,S(F),!x)if(n(l)!==null)x=!0,A(j);else{var H=n(c);H!==null&&Y(C,H.startTime-F)}}function j(F,H){x=!1,y&&(y=!1,w($),$=-1),v=!0;var ee=p;try{for(S(H),f=n(l);f!==null&&(!(f.expirationTime>H)||F&&!O());){var ce=f.callback;if(typeof ce=="function"){f.callback=null,p=f.priorityLevel;var B=ce(f.expirationTime<=H);H=e.unstable_now(),typeof B=="function"?f.callback=B:f===n(l)&&r(l),S(H)}else r(l);f=n(l)}if(f!==null)var ae=!0;else{var je=n(c);je!==null&&Y(C,je.startTime-H),ae=!1}return ae}finally{f=null,p=ee,v=!1}}var T=!1,E=null,$=-1,D=5,M=-1;function O(){return!(e.unstable_now()-MF||125ce?(F.sortIndex=ee,t(c,F),n(l)===null&&F===n(c)&&(y?(w($),$=-1):y=!0,Y(C,ee-ce))):(F.sortIndex=B,t(l,F),x||v||(x=!0,A(j))),F},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(F){var H=p;return function(){var ee=p;p=H;try{return F.apply(this,arguments)}finally{p=ee}}}})(DD),zD.exports=DD;var Txe=zD.exports;/** +* @license React +* react-dom.production.min.js +* +* Copyright (c) Facebook, Inc. and its affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var Ixe=m,is=Txe;function Ze(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vj=Object.prototype.hasOwnProperty,Exe=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,FD={},UD={};function Nxe(e){return vj.call(UD,e)?!0:vj.call(FD,e)?!1:Exe.test(e)?UD[e]=!0:(FD[e]=!0,!1)}function $xe(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Mxe(e,t,n,r){if(t===null||typeof t>"u"||$xe(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ia(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var yo={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yo[e]=new ia(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yo[t]=new ia(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){yo[e]=new ia(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yo[e]=new ia(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){yo[e]=new ia(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){yo[e]=new ia(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){yo[e]=new ia(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){yo[e]=new ia(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){yo[e]=new ia(e,5,!1,e.toLowerCase(),null,!1,!1)});var yj=/[\-:]([a-z])/g;function bj(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(yj,bj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!1,!1)}),yo.xlinkHref=new ia("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!0,!0)});function xj(e,t,n,r){var i=yo.hasOwnProperty(t)?yo[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var l=` +`+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Ij=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?gv(e):""}function Rxe(e){switch(e.tag){case 5:return gv(e.type);case 16:return gv("Lazy");case 13:return gv("Suspense");case 19:return gv("SuspenseList");case 0:case 2:case 15:return e=Ej(e.type,!1),e;case 11:return e=Ej(e.type.render,!1),e;case 1:return e=Ej(e.type,!0),e;default:return""}}function Nj(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case t0:return"Fragment";case e0:return"Portal";case wj:return"Profiler";case _j:return"StrictMode";case Sj:return"Suspense";case Cj:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case WD:return(e.displayName||"Context")+".Consumer";case BD:return(e._context.displayName||"Context")+".Provider";case kj:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case jj:return t=e.displayName||null,t!==null?t:Nj(e.type)||"Memo";case Qd:t=e._payload,e=e._init;try{return Nj(e(t))}catch{}}return null}function Lxe(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Nj(t);case 8:return t===_j?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ef(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ZD(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Pxe(e){var t=ZD(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function w2(e){e._valueTracker||(e._valueTracker=Pxe(e))}function qD(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ZD(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function k2(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function $j(e,t){var n=t.checked;return Qr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function GD(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ef(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function YD(e,t){t=t.checked,t!=null&&xj(e,"checked",t,!1)}function Mj(e,t){YD(e,t);var n=ef(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Rj(e,t.type,n):t.hasOwnProperty("defaultValue")&&Rj(e,t.type,ef(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function KD(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Rj(e,t,n){(t!=="number"||k2(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var vv=Array.isArray;function n0(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=S2.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function yv(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var bv={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Oxe=["Webkit","ms","Moz","O"];Object.keys(bv).forEach(function(e){Oxe.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),bv[t]=bv[e]})});function nA(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||bv.hasOwnProperty(e)&&bv[e]?(""+t).trim():t+"px"}function rA(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=nA(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var zxe=Qr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oj(e,t){if(t){if(zxe[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ze(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ze(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Ze(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Ze(62))}}function zj(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Dj=null;function Aj(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Fj=null,r0=null,i0=null;function iA(e){if(e=Uv(e)){if(typeof Fj!="function")throw Error(Ze(280));var t=e.stateNode;t&&(t=q2(t),Fj(e.stateNode,e.type,t))}}function oA(e){r0?i0?i0.push(e):i0=[e]:r0=e}function aA(){if(r0){var e=r0,t=i0;if(i0=r0=null,iA(e),t)for(e=0;e>>=0,e===0?32:31-(Gxe(e)/Yxe|0)|0}var E2=64,N2=4194304;function kv(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $2(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=kv(s):(o&=a,o!==0&&(r=kv(o)))}else a=n&~i,a!==0?r=kv(a):o!==0&&(r=kv(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sv(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Nl(t),e[t]=n}function Qxe(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Mv),LA=" ",PA=!1;function OA(e,t){switch(e){case"keyup":return T_e.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zA(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var s0=!1;function E_e(e,t){switch(e){case"compositionend":return zA(t);case"keypress":return t.which!==32?null:(PA=!0,LA);case"textInput":return e=t.data,e===LA&&PA?null:e;default:return null}}function N_e(e,t){if(s0)return e==="compositionend"||!i8&&OA(e,t)?(e=IA(),O2=Jj=af=null,s0=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=VA(n)}}function ZA(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ZA(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qA(){for(var e=window,t=k2();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=k2(e.document)}return t}function s8(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function A_e(e){var t=qA(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ZA(n.ownerDocument.documentElement,n)){if(r!==null&&s8(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=HA(n,o);var a=HA(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,l0=null,l8=null,Ov=null,u8=!1;function GA(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;u8||l0==null||l0!==k2(r)||(r=l0,"selectionStart"in r&&s8(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ov&&Pv(Ov,r)||(Ov=r,r=V2(l8,"onSelect"),0h0||(e.current=_8[h0],_8[h0]=null,h0--)}function Tr(e,t){h0++,_8[h0]=e.current,e.current=t}var cf={},Po=uf(cf),Na=uf(!1),Ph=cf;function p0(e,t){var n=e.type.contextTypes;if(!n)return cf;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function $a(e){return e=e.childContextTypes,e!=null}function G2(){Or(Na),Or(Po)}function uF(e,t,n){if(Po.current!==cf)throw Error(Ze(168));Tr(Po,t),Tr(Na,n)}function cF(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Ze(108,Lxe(e)||"Unknown",i));return Qr({},n,r)}function Y2(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cf,Ph=Po.current,Tr(Po,e),Tr(Na,Na.current),!0}function dF(e,t,n){var r=e.stateNode;if(!r)throw Error(Ze(169));n?(e=cF(e,t,Ph),r.__reactInternalMemoizedMergedChildContext=e,Or(Na),Or(Po),Tr(Po,e)):Or(Na),Tr(Na,n)}var Wc=null,K2=!1,w8=!1;function fF(e){Wc===null?Wc=[e]:Wc.push(e)}function X_e(e){K2=!0,fF(e)}function df(){if(!w8&&Wc!==null){w8=!0;var e=0,t=Qn;try{var n=Wc;for(Qn=1;e>=a,i-=a,Vc=1<<32-Nl(t)+i|n<$?(D=E,E=null):D=E.sibling;var M=p(w,E,S[$],C);if(M===null){E===null&&(E=D);break}e&&E&&M.alternate===null&&t(w,E),_=o(M,_,$),T===null?j=M:T.sibling=M,T=M,E=D}if($===S.length)return n(w,E),Zr&&zh(w,$),j;if(E===null){for(;$$?(D=E,E=null):D=E.sibling;var O=p(w,E,M.value,C);if(O===null){E===null&&(E=D);break}e&&E&&O.alternate===null&&t(w,E),_=o(O,_,$),T===null?j=O:T.sibling=O,T=O,E=D}if(M.done)return n(w,E),Zr&&zh(w,$),j;if(E===null){for(;!M.done;$++,M=S.next())M=f(w,M.value,C),M!==null&&(_=o(M,_,$),T===null?j=M:T.sibling=M,T=M);return Zr&&zh(w,$),j}for(E=r(w,E);!M.done;$++,M=S.next())M=v(E,w,$,M.value,C),M!==null&&(e&&M.alternate!==null&&E.delete(M.key===null?$:M.key),_=o(M,_,$),T===null?j=M:T.sibling=M,T=M);return e&&E.forEach(function(te){return t(w,te)}),Zr&&zh(w,$),j}function b(w,_,S,C){if(typeof S=="object"&&S!==null&&S.type===t0&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case _2:e:{for(var j=S.key,T=_;T!==null;){if(T.key===j){if(j=S.type,j===t0){if(T.tag===7){n(w,T.sibling),_=i(T,S.props.children),_.return=w,w=_;break e}}else if(T.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Qd&&yF(j)===T.type){n(w,T.sibling),_=i(T,S.props),_.ref=Bv(w,T,S),_.return=w,w=_;break e}n(w,T);break}else t(w,T);T=T.sibling}S.type===t0?(_=Hh(S.props.children,w.mode,C,S.key),_.return=w,w=_):(C=Sw(S.type,S.key,S.props,null,w.mode,C),C.ref=Bv(w,_,S),C.return=w,w=C)}return a(w);case e0:e:{for(T=S.key;_!==null;){if(_.key===T)if(_.tag===4&&_.stateNode.containerInfo===S.containerInfo&&_.stateNode.implementation===S.implementation){n(w,_.sibling),_=i(_,S.children||[]),_.return=w,w=_;break e}else{n(w,_);break}else t(w,_);_=_.sibling}_=y9(S,w.mode,C),_.return=w,w=_}return a(w);case Qd:return T=S._init,b(w,_,T(S._payload),C)}if(vv(S))return x(w,_,S,C);if(mv(S))return y(w,_,S,C);ew(w,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,_!==null&&_.tag===6?(n(w,_.sibling),_=i(_,S),_.return=w,w=_):(n(w,_),_=v9(S,w.mode,C),_.return=w,w=_),a(w)):n(w,_)}return b}var y0=bF(!0),xF=bF(!1),tw=uf(null),nw=null,b0=null,I8=null;function E8(){I8=b0=nw=null}function N8(e){var t=tw.current;Or(tw),e._currentValue=t}function $8(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function x0(e,t){nw=e,I8=b0=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ma=!0),e.firstContext=null)}function qs(e){var t=e._currentValue;if(I8!==e)if(e={context:e,memoizedValue:t,next:null},b0===null){if(nw===null)throw Error(Ze(308));b0=e,nw.dependencies={lanes:0,firstContext:e}}else b0=b0.next=e;return t}var Dh=null;function M8(e){Dh===null?Dh=[e]:Dh.push(e)}function _F(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,M8(t)):(n.next=i.next,i.next=n),t.interleaved=n,Zc(e,r)}function Zc(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var ff=!1;function R8(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wF(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qc(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function hf(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Nn&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Zc(e,n)}return i=r.interleaved,i===null?(t.next=t,M8(r)):(t.next=i.next,i.next=t),r.interleaved=t,Zc(e,n)}function rw(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qj(e,n)}}function kF(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=a:o=o.next=a,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function iw(e,t,n,r){var i=e.updateQueue;ff=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?o=c:a.next=c,a=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==a&&(s===null?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l))}if(o!==null){var f=i.baseState;a=0,d=c=l=null,s=o;do{var p=s.lane,v=s.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:v,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var x=e,y=s;switch(p=t,v=n,y.tag){case 1:if(x=y.payload,typeof x=="function"){f=x.call(v,f,p);break e}f=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=y.payload,p=typeof x=="function"?x.call(v,f,p):x,p==null)break e;f=Qr({},f,p);break e;case 2:ff=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[s]:p.push(s))}else v={eventTime:v,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(c=d=v,l=f):d=d.next=v,a|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(d===null&&(l=f),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do a|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);Uh|=a,e.lanes=a,e.memoizedState=f}}function SF(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=D8.transition;D8.transition={};try{e(!1),t()}finally{Qn=n,D8.transition=r}}function WF(){return Gs().memoizedState}function t2e(e,t,n){var r=vf(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},VF(e))HF(t,n);else if(n=_F(e,t,n,r),n!==null){var i=aa();Ol(n,e,r,i),ZF(n,t,r)}}function n2e(e,t,n){var r=vf(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(VF(e))HF(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,$l(s,a)){var l=t.interleaved;l===null?(i.next=i,M8(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=_F(e,t,i,r),n!==null&&(i=aa(),Ol(n,e,r,i),ZF(n,t,r))}}function VF(e){var t=e.alternate;return e===ti||t!==null&&t===ti}function HF(e,t){Zv=sw=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ZF(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qj(e,n)}}var cw={readContext:qs,useCallback:Oo,useContext:Oo,useEffect:Oo,useImperativeHandle:Oo,useInsertionEffect:Oo,useLayoutEffect:Oo,useMemo:Oo,useReducer:Oo,useRef:Oo,useState:Oo,useDebugValue:Oo,useDeferredValue:Oo,useTransition:Oo,useMutableSource:Oo,useSyncExternalStore:Oo,useId:Oo,unstable_isNewReconciler:!1},r2e={readContext:qs,useCallback:function(e,t){return Pu().memoizedState=[e,t===void 0?null:t],e},useContext:qs,useEffect:PF,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lw(4194308,4,DF.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lw(4194308,4,e,t)},useInsertionEffect:function(e,t){return lw(4,2,e,t)},useMemo:function(e,t){var n=Pu();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Pu();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=t2e.bind(null,ti,e),[r.memoizedState,e]},useRef:function(e){var t=Pu();return e={current:e},t.memoizedState=e},useState:RF,useDebugValue:H8,useDeferredValue:function(e){return Pu().memoizedState=e},useTransition:function(){var e=RF(!1),t=e[0];return e=e2e.bind(null,e[1]),Pu().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ti,i=Pu();if(Zr){if(n===void 0)throw Error(Ze(407));n=n()}else{if(n=t(),ro===null)throw Error(Ze(349));Fh&30||IF(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,PF(NF.bind(null,r,o,e),[e]),r.flags|=2048,Yv(9,EF.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Pu(),t=ro.identifierPrefix;if(Zr){var n=Hc,r=Vc;n=(r&~(1<<32-Nl(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=qv++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Ru]=t,e[Fv]=r,fU(e,t,!1,!1),t.stateNode=e;e:{switch(a=zj(n,r),n){case"dialog":Pr("cancel",e),Pr("close",e),i=r;break;case"iframe":case"object":case"embed":Pr("load",e),i=r;break;case"video":case"audio":for(i=0;iC0&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304)}else{if(!r)if(e=ow(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Kv(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Zr)return zo(t),null}else 2*bi()-o.renderingStartTime>C0&&n!==1073741824&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=bi(),t.sibling=null,n=ei.current,Tr(ei,r?n&1|2:n&1),t):(zo(t),null);case 22:case 23:return p9(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ls&1073741824&&(zo(t),t.subtreeFlags&6&&(t.flags|=8192)):zo(t),null;case 24:return null;case 25:return null}throw Error(Ze(156,t.tag))}function d2e(e,t){switch(S8(t),t.tag){case 1:return $a(t.type)&&G2(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return _0(),Or(Na),Or(Po),z8(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return P8(t),null;case 13:if(Or(ei),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ze(340));v0()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Or(ei),null;case 4:return _0(),null;case 10:return N8(t.type._context),null;case 22:case 23:return p9(),null;case 24:return null;default:return null}}var pw=!1,Do=!1,f2e=typeof WeakSet=="function"?WeakSet:Set,dt=null;function k0(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ui(e,t,r)}else n.current=null}function mU(e,t,n){try{n()}catch(r){ui(e,t,r)}}var gU=!1;function h2e(e,t){if(m8=L2,e=qA(),s8(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var v;f!==n||i!==0&&f.nodeType!==3||(s=a+i),f!==o||r!==0&&f.nodeType!==3||(l=a+r),f.nodeType===3&&(a+=f.nodeValue.length),(v=f.firstChild)!==null;)p=f,f=v;for(;;){if(f===e)break t;if(p===n&&++c===i&&(s=a),p===o&&++d===r&&(l=a),(v=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=v}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(g8={focusedElem:e,selectionRange:n},L2=!1,dt=t;dt!==null;)if(t=dt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dt=e;else for(;dt!==null;){t=dt;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var y=x.memoizedProps,b=x.memoizedState,w=t.stateNode,_=w.getSnapshotBeforeUpdate(t.elementType===t.type?y:Rl(t.type,y),b);w.__reactInternalSnapshotBeforeUpdate=_}break;case 3:var S=t.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ze(163))}}catch(C){ui(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,dt=e;break}dt=t.return}return x=gU,gU=!1,x}function Xv(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&mU(t,n,o)}i=i.next}while(i!==r)}}function mw(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function r9(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function vU(e){var t=e.alternate;t!==null&&(e.alternate=null,vU(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ru],delete t[Fv],delete t[x8],delete t[Y_e],delete t[K_e])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function yU(e){return e.tag===5||e.tag===3||e.tag===4}function bU(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yU(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function i9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Z2));else if(r!==4&&(e=e.child,e!==null))for(i9(e,t,n),e=e.sibling;e!==null;)i9(e,t,n),e=e.sibling}function o9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(o9(e,t,n),e=e.sibling;e!==null;)o9(e,t,n),e=e.sibling}var bo=null,Ll=!1;function pf(e,t,n){for(n=n.child;n!==null;)xU(e,t,n),n=n.sibling}function xU(e,t,n){if(Mu&&typeof Mu.onCommitFiberUnmount=="function")try{Mu.onCommitFiberUnmount(I2,n)}catch{}switch(n.tag){case 5:Do||k0(n,t);case 6:var r=bo,i=Ll;bo=null,pf(e,t,n),bo=r,Ll=i,bo!==null&&(Ll?(e=bo,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):bo.removeChild(n.stateNode));break;case 18:bo!==null&&(Ll?(e=bo,n=n.stateNode,e.nodeType===8?b8(e.parentNode,n):e.nodeType===1&&b8(e,n),Ev(e)):b8(bo,n.stateNode));break;case 4:r=bo,i=Ll,bo=n.stateNode.containerInfo,Ll=!0,pf(e,t,n),bo=r,Ll=i;break;case 0:case 11:case 14:case 15:if(!Do&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&mU(n,t,a),i=i.next}while(i!==r)}pf(e,t,n);break;case 1:if(!Do&&(k0(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){ui(n,t,s)}pf(e,t,n);break;case 21:pf(e,t,n);break;case 22:n.mode&1?(Do=(r=Do)||n.memoizedState!==null,pf(e,t,n),Do=r):pf(e,t,n);break;default:pf(e,t,n)}}function _U(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new f2e),t.forEach(function(r){var i=w2e.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Pl(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=bi()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*m2e(r/1960))-r,10e?16:e,gf===null)var r=!1;else{if(e=gf,gf=null,xw=0,Nn&6)throw Error(Ze(331));var i=Nn;for(Nn|=4,dt=e.current;dt!==null;){var o=dt,a=o.child;if(dt.flags&16){var s=o.deletions;if(s!==null){for(var l=0;lbi()-l9?Wh(e,0):s9|=n),La(e,t)}function LU(e,t){t===0&&(e.mode&1?(t=N2,N2<<=1,!(N2&130023424)&&(N2=4194304)):t=1);var n=aa();e=Zc(e,t),e!==null&&(Sv(e,t,n),La(e,n))}function _2e(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),LU(e,n)}function w2e(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Ze(314))}r!==null&&r.delete(t),LU(e,n)}var PU;PU=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Na.current)Ma=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ma=!1,u2e(e,t,n);Ma=!!(e.flags&131072)}else Ma=!1,Zr&&t.flags&1048576&&hF(t,J2,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;hw(e,t),e=t.pendingProps;var i=p0(t,Po.current);x0(t,n),i=F8(null,t,r,e,i,n);var o=U8();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$a(r)?(o=!0,Y2(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,R8(t),i.updater=dw,t.stateNode=i,i._reactInternals=t,q8(t,r,e,n),t=X8(null,t,r,!0,o,n)):(t.tag=0,Zr&&o&&k8(t),oa(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(hw(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=S2e(r),e=Rl(r,e),i){case 0:t=K8(null,t,r,e,n);break e;case 1:t=aU(null,t,r,e,n);break e;case 11:t=tU(null,t,r,e,n);break e;case 14:t=nU(null,t,r,Rl(r.type,e),n);break e}throw Error(Ze(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),K8(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),aU(e,t,r,i,n);case 3:e:{if(sU(t),e===null)throw Error(Ze(387));r=t.pendingProps,o=t.memoizedState,i=o.element,wF(e,t),iw(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=w0(Error(Ze(423)),t),t=lU(e,t,r,n,i);break e}else if(r!==i){i=w0(Error(Ze(424)),t),t=lU(e,t,r,n,i);break e}else for(ss=lf(t.stateNode.containerInfo.firstChild),as=t,Zr=!0,Ml=null,n=xF(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(v0(),r===i){t=Gc(e,t,n);break e}oa(e,t,r,n)}t=t.child}return t;case 5:return CF(t),e===null&&j8(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,v8(r,i)?a=null:o!==null&&v8(r,o)&&(t.flags|=32),oU(e,t),oa(e,t,a,n),t.child;case 6:return e===null&&j8(t),null;case 13:return uU(e,t,n);case 4:return L8(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=y0(t,null,r,n):oa(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),tU(e,t,r,i,n);case 7:return oa(e,t,t.pendingProps,n),t.child;case 8:return oa(e,t,t.pendingProps.children,n),t.child;case 12:return oa(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,Tr(tw,r._currentValue),r._currentValue=a,o!==null)if($l(o.value,a)){if(o.children===i.children&&!Na.current){t=Gc(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=qc(-1,n&-n),l.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),$8(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ze(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),$8(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}oa(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,x0(t,n),i=qs(i),r=r(i),t.flags|=1,oa(e,t,r,n),t.child;case 14:return r=t.type,i=Rl(r,t.pendingProps),i=Rl(r.type,i),nU(e,t,r,i,n);case 15:return rU(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Rl(r,i),hw(e,t),t.tag=1,$a(r)?(e=!0,Y2(t)):e=!1,x0(t,n),GF(t,r,i),q8(t,r,i,n),X8(null,t,r,!0,e,n);case 19:return dU(e,t,n);case 22:return iU(e,t,n)}throw Error(Ze(156,t.tag))};function OU(e,t){return pA(e,t)}function k2e(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ks(e,t,n,r){return new k2e(e,t,n,r)}function g9(e){return e=e.prototype,!(!e||!e.isReactComponent)}function S2e(e){if(typeof e=="function")return g9(e)?1:0;if(e!=null){if(e=e.$$typeof,e===kj)return 11;if(e===jj)return 14}return 2}function bf(e,t){var n=e.alternate;return n===null?(n=Ks(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Sw(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")g9(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case t0:return Hh(n.children,i,o,t);case _j:a=8,i|=8;break;case wj:return e=Ks(12,n,t,i|2),e.elementType=wj,e.lanes=o,e;case Sj:return e=Ks(13,n,t,i),e.elementType=Sj,e.lanes=o,e;case Cj:return e=Ks(19,n,t,i),e.elementType=Cj,e.lanes=o,e;case VD:return Cw(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case BD:a=10;break e;case WD:a=9;break e;case kj:a=11;break e;case jj:a=14;break e;case Qd:a=16,r=null;break e}throw Error(Ze(130,e==null?e:typeof e,""))}return t=Ks(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Hh(e,t,n,r){return e=Ks(7,e,r,t),e.lanes=n,e}function Cw(e,t,n,r){return e=Ks(22,e,r,t),e.elementType=VD,e.lanes=n,e.stateNode={isHidden:!1},e}function v9(e,t,n){return e=Ks(6,e,null,t),e.lanes=n,e}function y9(e,t,n){return t=Ks(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function C2e(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Zj(0),this.expirationTimes=Zj(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zj(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function b9(e,t,n,r,i,o,a,s,l){return e=new C2e(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ks(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},R8(o),e}function j2e(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(BU)}catch(e){console.error(e)}}BU(),OD.exports=rs;var Kc=OD.exports;const WU=to(Kc);var VU=Kc;gj.createRoot=VU.createRoot,gj.hydrateRoot=VU.hydrateRoot;function HU(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zl(...e){return t=>{let n=!1;const r=e.map(i=>{const o=HU(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{children:o,...a}=r,s=m.Children.toArray(o),l=s.find(R2e);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}var xf=vr("Slot");function $2e(e){const t=m.forwardRef((n,r)=>{const{children:i,...o}=n;if(m.isValidElement(i)){const a=P2e(i),s=L2e(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ZU=Symbol("radix.slottable");function qU(e){const t=({children:n})=>u.jsx(u.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=ZU,t}var M2e=qU("Slottable");function R2e(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ZU}function L2e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function P2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var O2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],z2e=O2e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),GU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),D2e="VisuallyHidden",YU=m.forwardRef((e,t)=>u.jsx(z2e.span,{...e,ref:t,style:{...GU,...e.style}}));YU.displayName=D2e;var KU=YU;function A2e(e,t){const n=m.createContext(t),r=o=>{const{children:a,...s}=o,l=m.useMemo(()=>s,Object.values(s));return u.jsx(n.Provider,{value:l,children:a})};r.displayName=e+"Provider";function i(o){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,i]}function Pa(e,t=[]){let n=[];function r(o,a){const s=m.createContext(a),l=n.length;n=[...n,a];const c=f=>{var w;const{scope:p,children:v,...x}=f,y=((w=p==null?void 0:p[e])==null?void 0:w[l])||s,b=m.useMemo(()=>x,Object.values(x));return u.jsx(y.Provider,{value:b,children:v})};c.displayName=o+"Provider";function d(f,p){var y;const v=((y=p==null?void 0:p[e])==null?void 0:y[l])||s,x=m.useContext(v);if(x)return x;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[c,d]}const i=()=>{const o=n.map(a=>m.createContext(a));return function(a){const s=(a==null?void 0:a[e])||o;return m.useMemo(()=>({[`__scope${e}`]:{...a,[e]:s}}),[a,s])}};return i.scopeName=e,[r,F2e(i,...t)]}function F2e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(i){const o=r.reduce((a,{useScope:s,scopeName:l})=>{const c=s(i)[`__scope${l}`];return{...a,...c}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function Mw(e){const t=e+"CollectionProvider",[n,r]=Pa(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,_=Pe.useRef(null),S=Pe.useRef(new Map).current;return u.jsx(i,{scope:b,itemMap:S,collectionRef:_,children:w})};a.displayName=t;const s=e+"CollectionSlot",l=vr(s),c=Pe.forwardRef((y,b)=>{const{scope:w,children:_}=y,S=o(s,w),C=At(b,S.collectionRef);return u.jsx(l,{ref:C,children:_})});c.displayName=s;const d=e+"CollectionItemSlot",f="data-radix-collection-item",p=vr(d),v=Pe.forwardRef((y,b)=>{const{scope:w,children:_,...S}=y,C=Pe.useRef(null),j=At(b,C),T=o(d,w);return Pe.useEffect(()=>(T.itemMap.set(C,{ref:C,...S}),()=>void T.itemMap.delete(C))),u.jsx(p,{[f]:"",ref:j,children:_})});v.displayName=d;function x(y){const b=o(e+"CollectionConsumer",y);return Pe.useCallback(()=>{const w=b.collectionRef.current;if(!w)return[];const _=Array.from(w.querySelectorAll(`[${f}]`));return Array.from(b.itemMap.values()).sort((S,C)=>_.indexOf(S.ref.current)-_.indexOf(C.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:v},x,r]}function Xe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}var _o=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},U2e=mj[" useInsertionEffect ".trim().toString()]||_o;function Xs({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,o,a]=B2e({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:i;{const d=m.useRef(e!==void 0);m.useEffect(()=>{const f=d.current;f!==s&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=m.useCallback(d=>{var f;if(s){const p=W2e(d)?d(e):d;p!==e&&((f=a.current)==null||f.call(a,p))}else o(d)},[s,e,o,a]);return[l,c]}function B2e({defaultProp:e,onChange:t}){const[n,r]=m.useState(e),i=m.useRef(n),o=m.useRef(t);return U2e(()=>{o.current=t},[t]),m.useEffect(()=>{var a;i.current!==n&&((a=o.current)==null||a.call(o,n),i.current=n)},[n,i]),[n,r,o]}function W2e(e){return typeof e=="function"}function V2e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var Ao=e=>{const{present:t,children:n}=e,r=H2e(t),i=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),o=At(r.ref,Z2e(i));return typeof n=="function"||r.isPresent?m.cloneElement(i,{ref:o}):null};Ao.displayName="Presence";function H2e(e){const[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),o=m.useRef("none"),a=e?"mounted":"unmounted",[s,l]=V2e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const c=Rw(r.current);o.current=s==="mounted"?c:"none"},[s]),_o(()=>{const c=r.current,d=i.current;if(d!==e){const f=o.current,p=Rw(c);e?l("MOUNT"):p==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&f!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),_o(()=>{if(t){let c;const d=t.ownerDocument.defaultView??window,f=v=>{const x=Rw(r.current).includes(CSS.escape(v.animationName));if(v.target===t&&x&&(l("ANIMATION_END"),!i.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",c=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},p=v=>{v.target===t&&(o.current=Rw(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(c),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:m.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function Rw(e){return(e==null?void 0:e.animationName)||"none"}function Z2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var q2e=mj[" useId ".trim().toString()]||(()=>{}),G2e=0;function wo(e){const[t,n]=m.useState(q2e());return _o(()=>{n(r=>r??String(G2e++))},[e]),t?`radix-${t}`:""}var XU=m.createContext(void 0),Y2e=e=>{const{dir:t,children:n}=e;return u.jsx(XU.Provider,{value:t,children:n})};function T0(e){const t=m.useContext(XU);return e||t||"ltr"}var K2e=Y2e,X2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],JU=X2e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function J2e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}function ko(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function Q2e(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e);m.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ewe="DismissableLayer",k9="dismissableLayer.update",twe="dismissableLayer.pointerDownOutside",nwe="dismissableLayer.focusOutside",QU,eB=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I0=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:a,onDismiss:s,...l}=e,c=m.useContext(eB),[d,f]=m.useState(null),p=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=m.useState({}),x=At(t,E=>f(E)),y=Array.from(c.layers),[b]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),w=y.indexOf(b),_=d?y.indexOf(d):-1,S=c.layersWithOutsidePointerEventsDisabled.size>0,C=_>=w,j=owe(E=>{const $=E.target,D=[...c.branches].some(M=>M.contains($));!C||D||(i==null||i(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p),T=awe(E=>{const $=E.target;[...c.branches].some(D=>D.contains($))||(o==null||o(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p);return Q2e(E=>{_===c.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&s&&(E.preventDefault(),s()))},p),m.useEffect(()=>{if(d)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(QU=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),tB(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=QU)}},[d,p,n,c]),m.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),tB())},[d,c]),m.useEffect(()=>{const E=()=>v({});return document.addEventListener(k9,E),()=>document.removeEventListener(k9,E)},[]),u.jsx(JU.div,{...l,ref:x,style:{pointerEvents:S?C?"auto":"none":void 0,...e.style},onFocusCapture:Xe(e.onFocusCapture,T.onFocusCapture),onBlurCapture:Xe(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Xe(e.onPointerDownCapture,j.onPointerDownCapture)})});I0.displayName=ewe;var rwe="DismissableLayerBranch",iwe=m.forwardRef((e,t)=>{const n=m.useContext(eB),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),u.jsx(JU.div,{...e,ref:i})});iwe.displayName=rwe;function owe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1),i=m.useRef(()=>{});return m.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let l=function(){nB(twe,n,c,{discrete:!0})};const c={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=l,t.addEventListener("click",i.current,{once:!0})):l()}else t.removeEventListener("click",i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function awe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1);return m.useEffect(()=>{const i=o=>{o.target&&!r.current&&nB(nwe,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function tB(){const e=new CustomEvent(k9);document.dispatchEvent(e)}function nB(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?J2e(i,o):i.dispatchEvent(o)}var swe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lwe=swe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S9="focusScope.autoFocusOnMount",C9="focusScope.autoFocusOnUnmount",rB={bubbles:!1,cancelable:!0},uwe="FocusScope",ny=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,l]=m.useState(null),c=ko(i),d=ko(o),f=m.useRef(null),p=At(t,y=>l(y)),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let y=function(S){if(v.paused||!s)return;const C=S.target;s.contains(C)?f.current=C:_f(f.current,{select:!0})},b=function(S){if(v.paused||!s)return;const C=S.relatedTarget;C!==null&&(s.contains(C)||_f(f.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&_f(s)};document.addEventListener("focusin",y),document.addEventListener("focusout",b);const _=new MutationObserver(w);return s&&_.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),_.disconnect()}}},[r,s,v.paused]),m.useEffect(()=>{if(s){aB.add(v);const y=document.activeElement;if(!s.contains(y)){const b=new CustomEvent(S9,rB);s.addEventListener(S9,c),s.dispatchEvent(b),b.defaultPrevented||(cwe(mwe(iB(s)),{select:!0}),document.activeElement===y&&_f(s))}return()=>{s.removeEventListener(S9,c),setTimeout(()=>{const b=new CustomEvent(C9,rB);s.addEventListener(C9,d),s.dispatchEvent(b),b.defaultPrevented||_f(y??document.body,{select:!0}),s.removeEventListener(C9,d),aB.remove(v)},0)}}},[s,c,d,v]);const x=m.useCallback(y=>{if(!n&&!r||v.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,w=document.activeElement;if(b&&w){const _=y.currentTarget,[S,C]=dwe(_);S&&C?!y.shiftKey&&w===C?(y.preventDefault(),n&&_f(S,{select:!0})):y.shiftKey&&w===S&&(y.preventDefault(),n&&_f(C,{select:!0})):w===_&&y.preventDefault()}},[n,r,v.paused]);return u.jsx(lwe.div,{tabIndex:-1,...a,ref:p,onKeyDown:x})});ny.displayName=uwe;function cwe(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(_f(r,{select:t}),document.activeElement!==n)return}function dwe(e){const t=iB(e),n=oB(t,e),r=oB(t.reverse(),e);return[n,r]}function iB(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function oB(e,t){for(const n of e)if(!fwe(n,{upTo:t}))return n}function fwe(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function hwe(e){return e instanceof HTMLInputElement&&"select"in e}function _f(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&hwe(e)&&t&&e.select()}}var aB=pwe();function pwe(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=sB(e,t),e.unshift(t)},remove(t){var n;e=sB(e,t),(n=e[0])==null||n.resume()}}}function sB(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function mwe(e){return e.filter(t=>t.tagName!=="A")}var gwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],vwe=gwe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ywe="Portal",Zh=m.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[i,o]=m.useState(!1);_o(()=>o(!0),[]);const a=n||i&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return a?WU.createPortal(u.jsx(vwe.div,{...r,ref:t}),a):null});Zh.displayName=ywe;var lB=Zh,bwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ry=bwe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),j9=0;function Lw(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??uB()),document.body.insertAdjacentElement("beforeend",e[1]??uB()),j9++,()=>{j9===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),j9--}},[])}function uB(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var zu=function(){return zu=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u")return Owe;var t=zwe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Awe=pB(),E0="data-scroll-locked",Fwe=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(_we,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(s,"px ").concat(r,`; + } + body[`).concat(E0,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(i,`px; + padding-top: `).concat(o,`px; + padding-right: `).concat(a,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(Pw,` { + right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(Ow,` { + margin-right: `).concat(s,"px ").concat(r,`; + } + + .`).concat(Pw," .").concat(Pw,` { + right: 0 `).concat(r,`; + } + + .`).concat(Ow," .").concat(Ow,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(E0,`] { + `).concat(wwe,": ").concat(s,`px; + } +`)},mB=function(){var e=parseInt(document.body.getAttribute(E0)||"0",10);return isFinite(e)?e:0},Uwe=function(){m.useEffect(function(){return document.body.setAttribute(E0,(mB()+1).toString()),function(){var e=mB()-1;e<=0?document.body.removeAttribute(E0):document.body.setAttribute(E0,e.toString())}},[])},Bwe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;Uwe();var o=m.useMemo(function(){return Dwe(i)},[i]);return m.createElement(Awe,{styles:Fwe(o,!t,i,n?"":"!important")})},N9=!1;if(typeof window<"u")try{var Dw=Object.defineProperty({},"passive",{get:function(){return N9=!0,!0}});window.addEventListener("test",Dw,Dw),window.removeEventListener("test",Dw,Dw)}catch{N9=!1}var N0=N9?{passive:!1}:!1,Wwe=function(e){return e.tagName==="TEXTAREA"},gB=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Wwe(e)&&n[t]==="visible")},Vwe=function(e){return gB(e,"overflowY")},Hwe=function(e){return gB(e,"overflowX")},vB=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=yB(e,r);if(i){var o=bB(e,r),a=o[1],s=o[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Zwe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},qwe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},yB=function(e,t){return e==="v"?Vwe(t):Hwe(t)},bB=function(e,t){return e==="v"?Zwe(t):qwe(t)},Gwe=function(e,t){return e==="h"&&t==="rtl"?-1:1},Ywe=function(e,t,n,r,i){var o=Gwe(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,l=t.contains(s),c=!1,d=a>0,f=0,p=0;do{if(!s)break;var v=bB(e,s),x=v[0],y=v[1],b=v[2],w=y-b-o*x;(x||w)&&yB(e,s)&&(f+=w,p+=x);var _=s.parentNode;s=_&&_.nodeType===Node.DOCUMENT_FRAGMENT_NODE?_.host:_}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&Math.abs(f)<1||!d&&Math.abs(p)<1)&&(c=!0),c},Aw=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},xB=function(e){return[e.deltaX,e.deltaY]},_B=function(e){return e&&"current"in e?e.current:e},Kwe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Xwe=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Jwe=0,$0=[];function Qwe(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(Jwe++)[0],o=m.useState(pB)[0],a=m.useRef(e);m.useEffect(function(){a.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=xwe([e.lockRef.current],(e.shards||[]).map(_B),!0).filter(Boolean);return y.forEach(function(b){return b.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),y.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(y,b){if("touches"in y&&y.touches.length===2||y.type==="wheel"&&y.ctrlKey)return!a.current.allowPinchZoom;var w=Aw(y),_=n.current,S="deltaX"in y?y.deltaX:_[0]-w[0],C="deltaY"in y?y.deltaY:_[1]-w[1],j,T=y.target,E=Math.abs(S)>Math.abs(C)?"h":"v";if("touches"in y&&E==="h"&&T.type==="range")return!1;var $=vB(E,T);if(!$)return!0;if($?j=E:(j=E==="v"?"h":"v",$=vB(E,T)),!$)return!1;if(!r.current&&"changedTouches"in y&&(S||C)&&(r.current=j),!j)return!0;var D=r.current||j;return Ywe(D,b,y,D==="h"?S:C)},[]),l=m.useCallback(function(y){var b=y;if(!(!$0.length||$0[$0.length-1]!==o)){var w="deltaY"in b?xB(b):Aw(b),_=t.current.filter(function(j){return j.name===b.type&&(j.target===b.target||b.target===j.shadowParent)&&Kwe(j.delta,w)})[0];if(_&&_.should){b.cancelable&&b.preventDefault();return}if(!_){var S=(a.current.shards||[]).map(_B).filter(Boolean).filter(function(j){return j.contains(b.target)}),C=S.length>0?s(b,S[0]):!a.current.noIsolation;C&&b.cancelable&&b.preventDefault()}}},[]),c=m.useCallback(function(y,b,w,_){var S={name:y,delta:b,target:w,should:_,shadowParent:e4e(w)};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(C){return C!==S})},1)},[]),d=m.useCallback(function(y){n.current=Aw(y),r.current=void 0},[]),f=m.useCallback(function(y){c(y.type,xB(y),y.target,s(y,e.lockRef.current))},[]),p=m.useCallback(function(y){c(y.type,Aw(y),y.target,s(y,e.lockRef.current))},[]);m.useEffect(function(){return $0.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",l,N0),document.addEventListener("touchmove",l,N0),document.addEventListener("touchstart",d,N0),function(){$0=$0.filter(function(y){return y!==o}),document.removeEventListener("wheel",l,N0),document.removeEventListener("touchmove",l,N0),document.removeEventListener("touchstart",d,N0)}},[]);var v=e.removeScrollBar,x=e.inert;return m.createElement(m.Fragment,null,x?m.createElement(o,{styles:Xwe(i)}):null,v?m.createElement(Bwe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function e4e(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const t4e=Ewe(hB,Qwe);var iy=m.forwardRef(function(e,t){return m.createElement(zw,zu({},e,{ref:t,sideCar:t4e}))});iy.classNames=zw.classNames;var n4e=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},M0=new WeakMap,Fw=new WeakMap,Uw={},$9=0,wB=function(e){return e&&(e.host||wB(e.parentNode))},r4e=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=wB(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},i4e=function(e,t,n,r){var i=r4e(t,Array.isArray(e)?e:[e]);Uw[n]||(Uw[n]=new WeakMap);var o=Uw[n],a=[],s=new Set,l=new Set(i),c=function(f){!f||s.has(f)||(s.add(f),c(f.parentNode))};i.forEach(c);var d=function(f){!f||l.has(f)||Array.prototype.forEach.call(f.children,function(p){if(s.has(p))d(p);else try{var v=p.getAttribute(r),x=v!==null&&v!=="false",y=(M0.get(p)||0)+1,b=(o.get(p)||0)+1;M0.set(p,y),o.set(p,b),a.push(p),y===1&&x&&Fw.set(p,!0),b===1&&p.setAttribute(n,"true"),x||p.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",p,w)}})};return d(t),s.clear(),$9++,function(){a.forEach(function(f){var p=M0.get(f)-1,v=o.get(f)-1;M0.set(f,p),o.set(f,v),p||(Fw.has(f)||f.removeAttribute(r),Fw.delete(f)),v||f.removeAttribute(n)}),$9--,$9||(M0=new WeakMap,M0=new WeakMap,Fw=new WeakMap,Uw={})}},Bw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=n4e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live], script"))),i4e(r,i,n,"aria-hidden")):function(){return null}},Ww="Dialog",[kB]=Pa(Ww),[o4e,Dl]=kB(Ww),SB=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!0}=e,s=m.useRef(null),l=m.useRef(null),[c,d]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Ww});return u.jsx(o4e,{scope:t,triggerRef:s,contentRef:l,contentId:wo(),titleId:wo(),descriptionId:wo(),open:c,onOpenChange:d,onOpenToggle:m.useCallback(()=>d(f=>!f),[d]),modal:a,children:n})};SB.displayName=Ww;var CB="DialogTrigger",jB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(CB,n),o=At(t,i.triggerRef);return u.jsx(ry.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":L9(i.open),...r,ref:o,onClick:Xe(e.onClick,i.onOpenToggle)})});jB.displayName=CB;var M9="DialogPortal",[a4e,TB]=kB(M9,{forceMount:void 0}),IB=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=Dl(M9,t);return u.jsx(a4e,{scope:t,forceMount:n,children:m.Children.map(r,a=>u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:a})}))})};IB.displayName=M9;var Vw="DialogOverlay",EB=m.forwardRef((e,t)=>{const n=TB(Vw,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Vw,e.__scopeDialog);return o.modal?u.jsx(Ao,{present:r||o.open,children:u.jsx(l4e,{...i,ref:t})}):null});EB.displayName=Vw;var s4e=vr("DialogOverlay.RemoveScroll"),l4e=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(Vw,n);return u.jsx(iy,{as:s4e,allowPinchZoom:!0,shards:[i.contentRef],children:u.jsx(ry.div,{"data-state":L9(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),qh="DialogContent",NB=m.forwardRef((e,t)=>{const n=TB(qh,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(qh,e.__scopeDialog);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx(u4e,{...i,ref:t}):u.jsx(c4e,{...i,ref:t})})});NB.displayName=qh;var u4e=m.forwardRef((e,t)=>{const n=Dl(qh,e.__scopeDialog),r=m.useRef(null),i=At(t,n.contentRef,r);return m.useEffect(()=>{const o=r.current;if(o)return Bw(o)},[]),u.jsx($B,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:Xe(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,s=a.button===0&&a.ctrlKey===!0;(a.button===2||s)&&o.preventDefault()}),onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault())})}),c4e=m.forwardRef((e,t)=>{const n=Dl(qh,e.__scopeDialog),r=m.useRef(!1),i=m.useRef(!1);return u.jsx($B,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),$B=m.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...a}=e,s=Dl(qh,n),l=m.useRef(null),c=At(t,l);return Lw(),u.jsxs(u.Fragment,{children:[u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":L9(s.open),...a,ref:c,onDismiss:()=>s.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(d4e,{titleId:s.titleId}),u.jsx(h4e,{contentRef:l,descriptionId:s.descriptionId})]})]})}),R9="DialogTitle",MB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(R9,n);return u.jsx(ry.h2,{id:i.titleId,...r,ref:t})});MB.displayName=R9;var RB="DialogDescription",LB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(RB,n);return u.jsx(ry.p,{id:i.descriptionId,...r,ref:t})});LB.displayName=RB;var PB="DialogClose",OB=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(PB,n);return u.jsx(ry.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});OB.displayName=PB;function L9(e){return e?"open":"closed"}var zB="DialogTitleWarning",[E5t,DB]=A2e(zB,{contentName:qh,titleName:R9,docsSlug:"dialog"}),d4e=({titleId:e})=>{const t=DB(zB),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return m.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},f4e="DialogDescriptionWarning",h4e=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${DB(f4e).contentName}}.`;return m.useEffect(()=>{var i;const r=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},AB=SB,p4e=jB,FB=IB,UB=EB,BB=NB,m4e=MB,g4e=LB,v4e=OB,WB={exports:{}},VB={};/** +* @license React +* use-sync-external-store-shim.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var R0=m;function y4e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var b4e=typeof Object.is=="function"?Object.is:y4e,x4e=R0.useState,_4e=R0.useEffect,w4e=R0.useLayoutEffect,k4e=R0.useDebugValue;function S4e(e,t){var n=t(),r=x4e({inst:{value:n,getSnapshot:t}}),i=r[0].inst,o=r[1];return w4e(function(){i.value=n,i.getSnapshot=t,P9(i)&&o({inst:i})},[e,n,t]),_4e(function(){return P9(i)&&o({inst:i}),e(function(){P9(i)&&o({inst:i})})},[e]),k4e(n),n}function P9(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!b4e(e,n)}catch{return!0}}function C4e(e,t){return t()}var j4e=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?C4e:S4e;VB.useSyncExternalStore=R0.useSyncExternalStore!==void 0?R0.useSyncExternalStore:j4e,WB.exports=VB;var T4e=WB.exports;function O9(e){const t=m.useRef({value:e,previous:e});return m.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function z9(e){const[t,n]=m.useState(void 0);return _o(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const l=o.borderBoxSize,c=Array.isArray(l)?l[0]:l;a=c.inlineSize,s=c.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const I4e=["top","right","bottom","left"],wf=Math.min,us=Math.max,Hw=Math.round,Zw=Math.floor,Du=e=>({x:e,y:e}),E4e={left:"right",right:"left",bottom:"top",top:"bottom"},N4e={start:"end",end:"start"};function D9(e,t,n){return us(e,wf(t,n))}function Xc(e,t){return typeof e=="function"?e(t):e}function Jc(e){return e.split("-")[0]}function L0(e){return e.split("-")[1]}function A9(e){return e==="x"?"y":"x"}function F9(e){return e==="y"?"height":"width"}const $4e=new Set(["top","bottom"]);function Au(e){return $4e.has(Jc(e))?"y":"x"}function U9(e){return A9(Au(e))}function M4e(e,t,n){n===void 0&&(n=!1);const r=L0(e),i=U9(e),o=F9(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=qw(a)),[a,qw(a)]}function R4e(e){const t=qw(e);return[B9(e),t,B9(t)]}function B9(e){return e.replace(/start|end/g,t=>N4e[t])}const HB=["left","right"],ZB=["right","left"],L4e=["top","bottom"],P4e=["bottom","top"];function O4e(e,t,n){switch(e){case"top":case"bottom":return n?t?ZB:HB:t?HB:ZB;case"left":case"right":return t?L4e:P4e;default:return[]}}function z4e(e,t,n,r){const i=L0(e);let o=O4e(Jc(e),n==="start",r);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(B9)))),o}function qw(e){return e.replace(/left|right|bottom|top/g,t=>E4e[t])}function D4e(e){return{top:0,right:0,bottom:0,left:0,...e}}function qB(e){return typeof e!="number"?D4e(e):{top:e,right:e,bottom:e,left:e}}function Gw(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function GB(e,t,n){let{reference:r,floating:i}=e;const o=Au(t),a=U9(t),s=F9(a),l=Jc(t),c=o==="y",d=r.x+r.width/2-i.width/2,f=r.y+r.height/2-i.height/2,p=r[s]/2-i[s]/2;let v;switch(l){case"top":v={x:d,y:r.y-i.height};break;case"bottom":v={x:d,y:r.y+r.height};break;case"right":v={x:r.x+r.width,y:f};break;case"left":v={x:r.x-i.width,y:f};break;default:v={x:r.x,y:r.y}}switch(L0(t)){case"start":v[a]-=p*(n&&c?-1:1);break;case"end":v[a]+=p*(n&&c?-1:1);break}return v}const A4e=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=o.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:f}=GB(c,r,l),p=r,v={},x=0;for(let y=0;y({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:o,platform:a,elements:s,middlewareData:l}=t,{element:c,padding:d=0}=Xc(e,t)||{};if(c==null)return{};const f=qB(d),p={x:n,y:r},v=U9(i),x=F9(v),y=await a.getDimensions(c),b=v==="y",w=b?"top":"left",_=b?"bottom":"right",S=b?"clientHeight":"clientWidth",C=o.reference[x]+o.reference[v]-p[v]-o.floating[x],j=p[v]-o.reference[v],T=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c));let E=T?T[S]:0;(!E||!await(a.isElement==null?void 0:a.isElement(T)))&&(E=s.floating[S]||o.floating[x]);const $=C/2-j/2,D=E/2-y[x]/2-1,M=wf(f[w],D),O=wf(f[_],D),te=M,q=E-y[x]-O,P=E/2-y[x]/2+$,X=D9(te,P,q),A=!l.arrow&&L0(i)!=null&&P!==X&&o.reference[x]/2-(PP<=0)){var O,te;const P=(((O=o.flip)==null?void 0:O.index)||0)+1,X=E[P];if(X&&(!(f==="alignment"&&_!==Au(X))||M.every(Y=>Au(Y.placement)===_?Y.overflows[0]>0:!0)))return{data:{index:P,overflows:M},reset:{placement:X}};let A=(te=M.filter(Y=>Y.overflows[0]<=0).sort((Y,F)=>Y.overflows[1]-F.overflows[1])[0])==null?void 0:te.placement;if(!A)switch(v){case"bestFit":{var q;const Y=(q=M.filter(F=>{if(T){const H=Au(F.placement);return H===_||H==="y"}return!0}).map(F=>[F.placement,F.overflows.filter(H=>H>0).reduce((H,ee)=>H+ee,0)]).sort((F,H)=>F[1]-H[1])[0])==null?void 0:q[0];Y&&(A=Y);break}case"initialPlacement":A=s;break}if(i!==A)return{reset:{placement:A}}}return{}}}};function YB(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function KB(e){return I4e.some(t=>e[t]>=0)}const B4e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=Xc(e,t);switch(r){case"referenceHidden":{const o=await oy(t,{...i,elementContext:"reference"}),a=YB(o,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:KB(a)}}}case"escaped":{const o=await oy(t,{...i,altBoundary:!0}),a=YB(o,n.floating);return{data:{escapedOffsets:a,escaped:KB(a)}}}default:return{}}}}},XB=new Set(["left","top"]);async function W4e(e,t){const{placement:n,platform:r,elements:i}=e,o=await(r.isRTL==null?void 0:r.isRTL(i.floating)),a=Jc(n),s=L0(n),l=Au(n)==="y",c=XB.has(a)?-1:1,d=o&&l?-1:1,f=Xc(t,e);let{mainAxis:p,crossAxis:v,alignmentAxis:x}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return s&&typeof x=="number"&&(v=s==="end"?x*-1:x),l?{x:v*d,y:p*c}:{x:p*c,y:v*d}}const V4e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:o,placement:a,middlewareData:s}=t,l=await W4e(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:i+l.x,y:o+l.y,data:{...l,placement:a}}}}},H4e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:b=>{let{x:w,y:_}=b;return{x:w,y:_}}},...l}=Xc(e,t),c={x:n,y:r},d=await oy(t,l),f=Au(Jc(i)),p=A9(f);let v=c[p],x=c[f];if(o){const b=p==="y"?"top":"left",w=p==="y"?"bottom":"right",_=v+d[b],S=v-d[w];v=D9(_,v,S)}if(a){const b=f==="y"?"top":"left",w=f==="y"?"bottom":"right",_=x+d[b],S=x-d[w];x=D9(_,x,S)}const y=s.fn({...t,[p]:v,[f]:x});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:o,[f]:a}}}}}},Z4e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=Xc(e,t),d={x:n,y:r},f=Au(i),p=A9(f);let v=d[p],x=d[f];const y=Xc(s,t),b=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(l){const S=p==="y"?"height":"width",C=o.reference[p]-o.floating[S]+b.mainAxis,j=o.reference[p]+o.reference[S]-b.mainAxis;vj&&(v=j)}if(c){var w,_;const S=p==="y"?"width":"height",C=XB.has(Jc(i)),j=o.reference[f]-o.floating[S]+(C&&((w=a.offset)==null?void 0:w[f])||0)+(C?0:b.crossAxis),T=o.reference[f]+o.reference[S]+(C?0:((_=a.offset)==null?void 0:_[f])||0)-(C?b.crossAxis:0);xT&&(x=T)}return{[p]:v,[f]:x}}}},q4e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:i,rects:o,platform:a,elements:s}=t,{apply:l=()=>{},...c}=Xc(e,t),d=await oy(t,c),f=Jc(i),p=L0(i),v=Au(i)==="y",{width:x,height:y}=o.floating;let b,w;f==="top"||f==="bottom"?(b=f,w=p===(await(a.isRTL==null?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(w=f,b=p==="end"?"top":"bottom");const _=y-d.top-d.bottom,S=x-d.left-d.right,C=wf(y-d[b],_),j=wf(x-d[w],S),T=!t.middlewareData.shift;let E=C,$=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=S),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(E=_),T&&!p){const M=us(d.left,0),O=us(d.right,0),te=us(d.top,0),q=us(d.bottom,0);v?$=x-2*(M!==0||O!==0?M+O:us(d.left,d.right)):E=y-2*(te!==0||q!==0?te+q:us(d.top,d.bottom))}await l({...t,availableWidth:$,availableHeight:E});const D=await a.getDimensions(s.floating);return x!==D.width||y!==D.height?{reset:{rects:!0}}:{}}}};function Yw(){return typeof window<"u"}function P0(e){return JB(e)?(e.nodeName||"").toLowerCase():"#document"}function cs(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fu(e){var t;return(t=(JB(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function JB(e){return Yw()?e instanceof Node||e instanceof cs(e).Node:!1}function Al(e){return Yw()?e instanceof Element||e instanceof cs(e).Element:!1}function Uu(e){return Yw()?e instanceof HTMLElement||e instanceof cs(e).HTMLElement:!1}function QB(e){return!Yw()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof cs(e).ShadowRoot}const G4e=new Set(["inline","contents"]);function ay(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=Fl(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!G4e.has(i)}const Y4e=new Set(["table","td","th"]);function K4e(e){return Y4e.has(P0(e))}const X4e=[":popover-open",":modal"];function Kw(e){return X4e.some(t=>{try{return e.matches(t)}catch{return!1}})}const J4e=["transform","translate","scale","rotate","perspective"],Q4e=["transform","translate","scale","rotate","perspective","filter"],e3e=["paint","layout","strict","content"];function W9(e){const t=V9(),n=Al(e)?Fl(e):e;return J4e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Q4e.some(r=>(n.willChange||"").includes(r))||e3e.some(r=>(n.contain||"").includes(r))}function t3e(e){let t=kf(e);for(;Uu(t)&&!O0(t);){if(W9(t))return t;if(Kw(t))return null;t=kf(t)}return null}function V9(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const n3e=new Set(["html","body","#document"]);function O0(e){return n3e.has(P0(e))}function Fl(e){return cs(e).getComputedStyle(e)}function Xw(e){return Al(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function kf(e){if(P0(e)==="html")return e;const t=e.assignedSlot||e.parentNode||QB(e)&&e.host||Fu(e);return QB(t)?t.host:t}function eW(e){const t=kf(e);return O0(t)?e.ownerDocument?e.ownerDocument.body:e.body:Uu(t)&&ay(t)?t:eW(t)}function sy(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=eW(e),o=i===((r=e.ownerDocument)==null?void 0:r.body),a=cs(i);if(o){const s=H9(a);return t.concat(a,a.visualViewport||[],ay(i)?i:[],s&&n?sy(s):[])}return t.concat(i,sy(i,[],n))}function H9(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function tW(e){const t=Fl(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=Uu(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:r,s=Hw(n)!==o||Hw(r)!==a;return s&&(n=o,r=a),{width:n,height:r,$:s}}function Z9(e){return Al(e)?e:e.contextElement}function z0(e){const t=Z9(e);if(!Uu(t))return Du(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:o}=tW(t);let a=(o?Hw(n.width):n.width)/r,s=(o?Hw(n.height):n.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const r3e=Du(0);function nW(e){const t=cs(e);return!V9()||!t.visualViewport?r3e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function i3e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==cs(e)?!1:t}function Gh(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),o=Z9(e);let a=Du(1);t&&(r?Al(r)&&(a=z0(r)):a=z0(e));const s=i3e(o,n,r)?nW(o):Du(0);let l=(i.left+s.x)/a.x,c=(i.top+s.y)/a.y,d=i.width/a.x,f=i.height/a.y;if(o){const p=cs(o),v=r&&Al(r)?cs(r):r;let x=p,y=H9(x);for(;y&&r&&v!==x;){const b=z0(y),w=y.getBoundingClientRect(),_=Fl(y),S=w.left+(y.clientLeft+parseFloat(_.paddingLeft))*b.x,C=w.top+(y.clientTop+parseFloat(_.paddingTop))*b.y;l*=b.x,c*=b.y,d*=b.x,f*=b.y,l+=S,c+=C,x=cs(y),y=H9(x)}}return Gw({width:d,height:f,x:l,y:c})}function Jw(e,t){const n=Xw(e).scrollLeft;return t?t.left+n:Gh(Fu(e)).left+n}function rW(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Jw(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function o3e(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const o=i==="fixed",a=Fu(r),s=t?Kw(t.floating):!1;if(r===a||s&&o)return n;let l={scrollLeft:0,scrollTop:0},c=Du(1);const d=Du(0),f=Uu(r);if((f||!f&&!o)&&((P0(r)!=="body"||ay(a))&&(l=Xw(r)),Uu(r))){const v=Gh(r);c=z0(r),d.x=v.x+r.clientLeft,d.y=v.y+r.clientTop}const p=a&&!f&&!o?rW(a,l):Du(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+p.x,y:n.y*c.y-l.scrollTop*c.y+d.y+p.y}}function a3e(e){return Array.from(e.getClientRects())}function s3e(e){const t=Fu(e),n=Xw(e),r=e.ownerDocument.body,i=us(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=us(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Jw(e);const s=-n.scrollTop;return Fl(r).direction==="rtl"&&(a+=us(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:s}}const iW=25;function l3e(e,t){const n=cs(e),r=Fu(e),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;const d=V9();(!d||d&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}const c=Jw(r);if(c<=0){const d=r.ownerDocument,f=d.body,p=getComputedStyle(f),v=d.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,x=Math.abs(r.clientWidth-f.clientWidth-v);x<=iW&&(o-=x)}else c<=iW&&(o+=c);return{width:o,height:a,x:s,y:l}}const u3e=new Set(["absolute","fixed"]);function c3e(e,t){const n=Gh(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=Uu(e)?z0(e):Du(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,l=i*o.x,c=r*o.y;return{width:a,height:s,x:l,y:c}}function oW(e,t,n){let r;if(t==="viewport")r=l3e(e,n);else if(t==="document")r=s3e(Fu(e));else if(Al(t))r=c3e(t,n);else{const i=nW(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return Gw(r)}function aW(e,t){const n=kf(e);return n===t||!Al(n)||O0(n)?!1:Fl(n).position==="fixed"||aW(n,t)}function d3e(e,t){const n=t.get(e);if(n)return n;let r=sy(e,[],!1).filter(s=>Al(s)&&P0(s)!=="body"),i=null;const o=Fl(e).position==="fixed";let a=o?kf(e):e;for(;Al(a)&&!O0(a);){const s=Fl(a),l=W9(a);!l&&s.position==="fixed"&&(i=null),(o?!l&&!i:!l&&s.position==="static"&&i&&u3e.has(i.position)||ay(a)&&!l&&aW(e,a))?r=r.filter(c=>c!==a):i=s,a=kf(a)}return t.set(e,r),r}function f3e(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?Kw(t)?[]:d3e(t,this._c):[].concat(n),r],a=o[0],s=o.reduce((l,c)=>{const d=oW(t,c,i);return l.top=us(d.top,l.top),l.right=wf(d.right,l.right),l.bottom=wf(d.bottom,l.bottom),l.left=us(d.left,l.left),l},oW(t,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function h3e(e){const{width:t,height:n}=tW(e);return{width:t,height:n}}function p3e(e,t,n){const r=Uu(t),i=Fu(t),o=n==="fixed",a=Gh(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const l=Du(0);function c(){l.x=Jw(i)}if(r||!r&&!o)if((P0(t)!=="body"||ay(i))&&(s=Xw(t)),r){const v=Gh(t,!0,o,t);l.x=v.x+t.clientLeft,l.y=v.y+t.clientTop}else i&&c();o&&!r&&i&&c();const d=i&&!r&&!o?rW(i,s):Du(0),f=a.left+s.scrollLeft-l.x-d.x,p=a.top+s.scrollTop-l.y-d.y;return{x:f,y:p,width:a.width,height:a.height}}function q9(e){return Fl(e).position==="static"}function sW(e,t){if(!Uu(e)||Fl(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Fu(e)===n&&(n=n.ownerDocument.body),n}function lW(e,t){const n=cs(e);if(Kw(e))return n;if(!Uu(e)){let i=kf(e);for(;i&&!O0(i);){if(Al(i)&&!q9(i))return i;i=kf(i)}return n}let r=sW(e,t);for(;r&&K4e(r)&&q9(r);)r=sW(r,t);return r&&O0(r)&&q9(r)&&!W9(r)?n:r||t3e(e)||n}const m3e=async function(e){const t=this.getOffsetParent||lW,n=this.getDimensions,r=await n(e.floating);return{reference:p3e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function g3e(e){return Fl(e).direction==="rtl"}const v3e={convertOffsetParentRelativeRectToViewportRelativeRect:o3e,getDocumentElement:Fu,getClippingRect:f3e,getOffsetParent:lW,getElementRects:m3e,getClientRects:a3e,getDimensions:h3e,getScale:z0,isElement:Al,isRTL:g3e};function uW(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function y3e(e,t){let n=null,r;const i=Fu(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();const c=e.getBoundingClientRect(),{left:d,top:f,width:p,height:v}=c;if(s||t(),!p||!v)return;const x=Zw(f),y=Zw(i.clientWidth-(d+p)),b=Zw(i.clientHeight-(f+v)),w=Zw(d),_={rootMargin:-x+"px "+-y+"px "+-b+"px "+-w+"px",threshold:us(0,wf(1,l))||1};let S=!0;function C(j){const T=j[0].intersectionRatio;if(T!==l){if(!S)return a();T?a(!1,T):r=setTimeout(()=>{a(!1,1e-7)},1e3)}T===1&&!uW(c,e.getBoundingClientRect())&&a(),S=!1}try{n=new IntersectionObserver(C,{..._,root:i.ownerDocument})}catch{n=new IntersectionObserver(C,_)}n.observe(e)}return a(!0),o}function b3e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=Z9(e),d=i||o?[...c?sy(c):[],...sy(t)]:[];d.forEach(w=>{i&&w.addEventListener("scroll",n,{passive:!0}),o&&w.addEventListener("resize",n)});const f=c&&s?y3e(c,n):null;let p=-1,v=null;a&&(v=new ResizeObserver(w=>{let[_]=w;_&&_.target===c&&v&&(v.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var S;(S=v)==null||S.observe(t)})),n()}),c&&!l&&v.observe(c),v.observe(t));let x,y=l?Gh(e):null;l&&b();function b(){const w=Gh(e);y&&!uW(y,w)&&n(),y=w,x=requestAnimationFrame(b)}return n(),()=>{var w;d.forEach(_=>{i&&_.removeEventListener("scroll",n),o&&_.removeEventListener("resize",n)}),f==null||f(),(w=v)==null||w.disconnect(),v=null,l&&cancelAnimationFrame(x)}}const x3e=V4e,_3e=H4e,w3e=U4e,k3e=q4e,S3e=B4e,cW=F4e,C3e=Z4e,j3e=(e,t,n)=>{const r=new Map,i={platform:v3e,...n},o={...i.platform,_c:r};return A4e(e,t,{...i,platform:o})};var T3e=typeof document<"u",I3e=function(){},Qw=T3e?m.useLayoutEffect:I3e;function e4(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!e4(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!e4(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function dW(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function fW(e,t){const n=dW(e);return Math.round(t*n)/n}function G9(e){const t=m.useRef(e);return Qw(()=>{t.current=e}),t}function E3e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:a}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[d,f]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,v]=m.useState(r);e4(p,r)||v(r);const[x,y]=m.useState(null),[b,w]=m.useState(null),_=m.useCallback(F=>{F!==T.current&&(T.current=F,y(F))},[]),S=m.useCallback(F=>{F!==E.current&&(E.current=F,w(F))},[]),C=o||x,j=a||b,T=m.useRef(null),E=m.useRef(null),$=m.useRef(d),D=l!=null,M=G9(l),O=G9(i),te=G9(c),q=m.useCallback(()=>{if(!T.current||!E.current)return;const F={placement:t,strategy:n,middleware:p};O.current&&(F.platform=O.current),j3e(T.current,E.current,F).then(H=>{const ee={...H,isPositioned:te.current!==!1};P.current&&!e4($.current,ee)&&($.current=ee,Kc.flushSync(()=>{f(ee)}))})},[p,t,n,O,te]);Qw(()=>{c===!1&&$.current.isPositioned&&($.current.isPositioned=!1,f(F=>({...F,isPositioned:!1})))},[c]);const P=m.useRef(!1);Qw(()=>(P.current=!0,()=>{P.current=!1}),[]),Qw(()=>{if(C&&(T.current=C),j&&(E.current=j),C&&j){if(M.current)return M.current(C,j,q);q()}},[C,j,q,M,D]);const X=m.useMemo(()=>({reference:T,floating:E,setReference:_,setFloating:S}),[_,S]),A=m.useMemo(()=>({reference:C,floating:j}),[C,j]),Y=m.useMemo(()=>{const F={position:n,left:0,top:0};if(!A.floating)return F;const H=fW(A.floating,d.x),ee=fW(A.floating,d.y);return s?{...F,transform:"translate("+H+"px, "+ee+"px)",...dW(A.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:H,top:ee}},[n,s,A.floating,d.x,d.y]);return m.useMemo(()=>({...d,update:q,refs:X,elements:A,floatingStyles:Y}),[d,q,X,A,Y])}const N3e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?cW({element:r.current,padding:i}).fn(n):{}:r?cW({element:r,padding:i}).fn(n):{}}}},$3e=(e,t)=>({...x3e(e),options:[e,t]}),M3e=(e,t)=>({..._3e(e),options:[e,t]}),R3e=(e,t)=>({...C3e(e),options:[e,t]}),L3e=(e,t)=>({...w3e(e),options:[e,t]}),P3e=(e,t)=>({...k3e(e),options:[e,t]}),O3e=(e,t)=>({...S3e(e),options:[e,t]}),z3e=(e,t)=>({...N3e(e),options:[e,t]});var D3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],A3e=D3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),F3e="Arrow",hW=m.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...o}=e;return u.jsx(A3e.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});hW.displayName=F3e;var U3e=hW,B3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pW=B3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Y9="Popper",[mW,Sf]=Pa(Y9),[W3e,gW]=mW(Y9),vW=e=>{const{__scopePopper:t,children:n}=e,[r,i]=m.useState(null);return u.jsx(W3e,{scope:t,anchor:r,onAnchorChange:i,children:n})};vW.displayName=Y9;var yW="PopperAnchor",bW=m.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=gW(yW,n),a=m.useRef(null),s=At(t,a),l=m.useRef(null);return m.useEffect(()=>{const c=l.current;l.current=(r==null?void 0:r.current)||a.current,c!==l.current&&o.onAnchorChange(l.current)}),r?null:u.jsx(pW.div,{...i,ref:s})});bW.displayName=yW;var K9="PopperContent",[V3e,H3e]=mW(K9),xW=m.forwardRef((e,t)=>{var he,ue,re,ge,$e,pe;const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:o="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:p=!1,updatePositionStrategy:v="optimized",onPlaced:x,...y}=e,b=gW(K9,n),[w,_]=m.useState(null),S=At(t,ye=>_(ye)),[C,j]=m.useState(null),T=z9(C),E=(T==null?void 0:T.width)??0,$=(T==null?void 0:T.height)??0,D=r+(o!=="center"?"-"+o:""),M=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},O=Array.isArray(c)?c:[c],te=O.length>0,q={padding:M,boundary:O.filter(q3e),altBoundary:te},{refs:P,floatingStyles:X,placement:A,isPositioned:Y,middlewareData:F}=E3e({strategy:"fixed",placement:D,whileElementsMounted:(...ye)=>b3e(...ye,{animationFrame:v==="always"}),elements:{reference:b.anchor},middleware:[$3e({mainAxis:i+$,alignmentAxis:a}),l&&M3e({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?R3e():void 0,...q}),l&&L3e({...q}),P3e({...q,apply:({elements:ye,rects:Se,availableWidth:Ce,availableHeight:Ue})=>{const{width:Ge,height:_t}=Se.reference,St=ye.floating.style;St.setProperty("--radix-popper-available-width",`${Ce}px`),St.setProperty("--radix-popper-available-height",`${Ue}px`),St.setProperty("--radix-popper-anchor-width",`${Ge}px`),St.setProperty("--radix-popper-anchor-height",`${_t}px`)}}),C&&z3e({element:C,padding:s}),G3e({arrowWidth:E,arrowHeight:$}),p&&O3e({strategy:"referenceHidden",...q})]}),[H,ee]=kW(A),ce=ko(x);_o(()=>{Y&&(ce==null||ce())},[Y,ce]);const B=(he=F.arrow)==null?void 0:he.x,ae=(ue=F.arrow)==null?void 0:ue.y,je=((re=F.arrow)==null?void 0:re.centerOffset)!==0,[me,ke]=m.useState();return _o(()=>{w&&ke(window.getComputedStyle(w).zIndex)},[w]),u.jsx("div",{ref:P.setFloating,"data-radix-popper-content-wrapper":"",style:{...X,transform:Y?X.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:me,"--radix-popper-transform-origin":[(ge=F.transformOrigin)==null?void 0:ge.x,($e=F.transformOrigin)==null?void 0:$e.y].join(" "),...((pe=F.hide)==null?void 0:pe.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(V3e,{scope:n,placedSide:H,onArrowChange:j,arrowX:B,arrowY:ae,shouldHideArrow:je,children:u.jsx(pW.div,{"data-side":H,"data-align":ee,...y,ref:S,style:{...y.style,animation:Y?void 0:"none"}})})})});xW.displayName=K9;var _W="PopperArrow",Z3e={top:"bottom",right:"left",bottom:"top",left:"right"},wW=m.forwardRef(function(e,t){const{__scopePopper:n,...r}=e,i=H3e(_W,n),o=Z3e[i.placedSide];return u.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:u.jsx(U3e,{...r,ref:t,style:{...r.style,display:"block"}})})});wW.displayName=_W;function q3e(e){return e!==null}var G3e=e=>({name:"transformOrigin",options:e,fn(t){var y,b,w;const{placement:n,rects:r,middlewareData:i}=t,o=((y=i.arrow)==null?void 0:y.centerOffset)!==0,a=o?0:e.arrowWidth,s=o?0:e.arrowHeight,[l,c]=kW(n),d={start:"0%",center:"50%",end:"100%"}[c],f=(((b=i.arrow)==null?void 0:b.x)??0)+a/2,p=(((w=i.arrow)==null?void 0:w.y)??0)+s/2;let v="",x="";return l==="bottom"?(v=o?d:`${f}px`,x=`${-s}px`):l==="top"?(v=o?d:`${f}px`,x=`${r.floating.height+s}px`):l==="right"?(v=`${-s}px`,x=o?d:`${p}px`):l==="left"&&(v=`${r.floating.width+s}px`,x=o?d:`${p}px`),{data:{x:v,y:x}}}});function kW(e){const[t,n="center"]=e.split("-");return[t,n]}var t4=vW,ly=bW,n4=xW,r4=wW,Y3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],uy=Y3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function K3e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}var X3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],SW=X3e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),X9="rovingFocusGroup.onEntryFocus",J3e={bubbles:!1,cancelable:!0},cy="RovingFocusGroup",[J9,CW,Q3e]=Mw(cy),[eke,i4]=Pa(cy,[Q3e]),[tke,nke]=eke(cy),jW=m.forwardRef((e,t)=>u.jsx(J9.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(J9.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(rke,{...e,ref:t})})}));jW.displayName=cy;var rke=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...f}=e,p=m.useRef(null),v=At(t,p),x=T0(o),[y,b]=Xs({prop:a,defaultProp:s??null,onChange:l,caller:cy}),[w,_]=m.useState(!1),S=ko(c),C=CW(n),j=m.useRef(!1),[T,E]=m.useState(0);return m.useEffect(()=>{const $=p.current;if($)return $.addEventListener(X9,S),()=>$.removeEventListener(X9,S)},[S]),u.jsx(tke,{scope:n,orientation:r,dir:x,loop:i,currentTabStopId:y,onItemFocus:m.useCallback($=>b($),[b]),onItemShiftTab:m.useCallback(()=>_(!0),[]),onFocusableItemAdd:m.useCallback(()=>E($=>$+1),[]),onFocusableItemRemove:m.useCallback(()=>E($=>$-1),[]),children:u.jsx(SW.div,{tabIndex:w||T===0?-1:0,"data-orientation":r,...f,ref:v,style:{outline:"none",...e.style},onMouseDown:Xe(e.onMouseDown,()=>{j.current=!0}),onFocus:Xe(e.onFocus,$=>{const D=!j.current;if($.target===$.currentTarget&&D&&!w){const M=new CustomEvent(X9,J3e);if($.currentTarget.dispatchEvent(M),!M.defaultPrevented){const O=C().filter(X=>X.focusable),te=O.find(X=>X.active),q=O.find(X=>X.id===y),P=[te,q,...O].filter(Boolean).map(X=>X.ref.current);EW(P,d)}}j.current=!1}),onBlur:Xe(e.onBlur,()=>_(!1))})})}),TW="RovingFocusGroupItem",IW=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,children:a,...s}=e,l=wo(),c=o||l,d=nke(TW,n),f=d.currentTabStopId===c,p=CW(n),{onFocusableItemAdd:v,onFocusableItemRemove:x,currentTabStopId:y}=d;return m.useEffect(()=>{if(r)return v(),()=>x()},[r,v,x]),u.jsx(J9.ItemSlot,{scope:n,id:c,focusable:r,active:i,children:u.jsx(SW.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:Xe(e.onMouseDown,b=>{r?d.onItemFocus(c):b.preventDefault()}),onFocus:Xe(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:Xe(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=ake(b,d.orientation,d.dir);if(w!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let _=p().filter(S=>S.focusable).map(S=>S.ref.current);if(w==="last")_.reverse();else if(w==="prev"||w==="next"){w==="prev"&&_.reverse();const S=_.indexOf(b.currentTarget);_=d.loop?ske(_,S+1):_.slice(S+1)}setTimeout(()=>EW(_))}}),children:typeof a=="function"?a({isCurrentTabStop:f,hasTabStop:y!=null}):a})})});IW.displayName=TW;var ike={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function oke(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function ake(e,t,n){const r=oke(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return ike[r]}function EW(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ske(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var NW=jW,$W=IW,Q9=["Enter"," "],lke=["ArrowDown","PageUp","Home"],MW=["ArrowUp","PageDown","End"],uke=[...lke,...MW],cke={ltr:[...Q9,"ArrowRight"],rtl:[...Q9,"ArrowLeft"]},dke={ltr:["ArrowLeft"],rtl:["ArrowRight"]},dy="Menu",[fy,fke,hke]=Mw(dy),[Yh,RW]=Pa(dy,[hke,Sf,i4]),o4=Sf(),LW=i4(),[pke,Kh]=Yh(dy),[mke,hy]=Yh(dy),PW=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=o4(t),[l,c]=m.useState(null),d=m.useRef(!1),f=ko(o),p=T0(i);return m.useEffect(()=>{const v=()=>{d.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>d.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),u.jsx(t4,{...s,children:u.jsx(pke,{scope:t,open:n,onOpenChange:f,content:l,onContentChange:c,children:u.jsx(mke,{scope:t,onClose:m.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:p,modal:a,children:r})})})};PW.displayName=dy;var gke="MenuAnchor",e7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(ly,{...i,...r,ref:t})});e7.displayName=gke;var t7="MenuPortal",[vke,OW]=Yh(t7,{forceMount:void 0}),zW=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=Kh(t7,t);return u.jsx(vke,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};zW.displayName=t7;var Js="MenuContent",[yke,n7]=Yh(Js),DW=m.forwardRef((e,t)=>{const n=OW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Kh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:a.modal?u.jsx(bke,{...i,ref:t}):u.jsx(xke,{...i,ref:t})})})})}),bke=m.forwardRef((e,t)=>{const n=Kh(Js,e.__scopeMenu),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return Bw(o)},[]),u.jsx(r7,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),xke=m.forwardRef((e,t)=>{const n=Kh(Js,e.__scopeMenu);return u.jsx(r7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),_ke=vr("MenuContent.ScrollLock"),r7=m.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,disableOutsideScroll:x,...y}=e,b=Kh(Js,n),w=hy(Js,n),_=o4(n),S=LW(n),C=fke(n),[j,T]=m.useState(null),E=m.useRef(null),$=At(t,E,b.onContentChange),D=m.useRef(0),M=m.useRef(""),O=m.useRef(0),te=m.useRef(null),q=m.useRef("right"),P=m.useRef(0),X=x?iy:m.Fragment,A=x?{as:_ke,allowPinchZoom:!0}:void 0,Y=H=>{var he,ue;const ee=M.current+H,ce=C().filter(re=>!re.disabled),B=document.activeElement,ae=(he=ce.find(re=>re.ref.current===B))==null?void 0:he.textValue,je=ce.map(re=>re.textValue),me=Rke(je,ee,ae),ke=(ue=ce.find(re=>re.textValue===me))==null?void 0:ue.ref.current;(function re(ge){M.current=ge,window.clearTimeout(D.current),ge!==""&&(D.current=window.setTimeout(()=>re(""),1e3))})(ee),ke&&setTimeout(()=>ke.focus())};m.useEffect(()=>()=>window.clearTimeout(D.current),[]),Lw();const F=m.useCallback(H=>{var ee,ce;return q.current===((ee=te.current)==null?void 0:ee.side)&&Pke(H,(ce=te.current)==null?void 0:ce.area)},[]);return u.jsx(yke,{scope:n,searchRef:M,onItemEnter:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),onItemLeave:m.useCallback(H=>{var ee;F(H)||((ee=E.current)==null||ee.focus(),T(null))},[F]),onTriggerLeave:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),pointerGraceTimerRef:O,onPointerGraceIntentChange:m.useCallback(H=>{te.current=H},[]),children:u.jsx(X,{...A,children:u.jsx(ny,{asChild:!0,trapped:i,onMountAutoFocus:Xe(o,H=>{var ee;H.preventDefault(),(ee=E.current)==null||ee.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,children:u.jsx(NW,{asChild:!0,...S,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:j,onCurrentTabStopIdChange:T,onEntryFocus:Xe(l,H=>{w.isUsingKeyboardRef.current||H.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(n4,{role:"menu","aria-orientation":"vertical","data-state":tV(b.open),"data-radix-menu-content":"",dir:w.dir,..._,...y,ref:$,style:{outline:"none",...y.style},onKeyDown:Xe(y.onKeyDown,H=>{const ee=H.target.closest("[data-radix-menu-content]")===H.currentTarget,ce=H.ctrlKey||H.altKey||H.metaKey,B=H.key.length===1;ee&&(H.key==="Tab"&&H.preventDefault(),!ce&&B&&Y(H.key));const ae=E.current;if(H.target!==ae||!uke.includes(H.key))return;H.preventDefault();const je=C().filter(me=>!me.disabled).map(me=>me.ref.current);MW.includes(H.key)&&je.reverse(),$ke(je)}),onBlur:Xe(e.onBlur,H=>{H.currentTarget.contains(H.target)||(window.clearTimeout(D.current),M.current="")}),onPointerMove:Xe(e.onPointerMove,my(H=>{const ee=H.target,ce=P.current!==H.clientX;if(H.currentTarget.contains(ee)&&ce){const B=H.clientX>P.current?"right":"left";q.current=B,P.current=H.clientX}}))})})})})})})});DW.displayName=Js;var wke="MenuGroup",i7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"group",...r,ref:t})});i7.displayName=wke;var kke="MenuLabel",AW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{...r,ref:t})});AW.displayName=kke;var a4="MenuItem",FW="menu.itemSelect",s4=m.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=m.useRef(null),a=hy(a4,e.__scopeMenu),s=n7(a4,e.__scopeMenu),l=At(t,o),c=m.useRef(!1),d=()=>{const f=o.current;if(!n&&f){const p=new CustomEvent(FW,{bubbles:!0,cancelable:!0});f.addEventListener(FW,v=>r==null?void 0:r(v),{once:!0}),K3e(f,p),p.defaultPrevented?c.current=!1:a.onClose()}};return u.jsx(UW,{...i,ref:l,disabled:n,onClick:Xe(e.onClick,d),onPointerDown:f=>{var p;(p=e.onPointerDown)==null||p.call(e,f),c.current=!0},onPointerUp:Xe(e.onPointerUp,f=>{var p;c.current||((p=f.currentTarget)==null||p.click())}),onKeyDown:Xe(e.onKeyDown,f=>{const p=s.searchRef.current!=="";n||p&&f.key===" "||Q9.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})});s4.displayName=a4;var UW=m.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=n7(a4,n),s=LW(n),l=m.useRef(null),c=At(t,l),[d,f]=m.useState(!1),[p,v]=m.useState("");return m.useEffect(()=>{const x=l.current;x&&v((x.textContent??"").trim())},[o.children]),u.jsx(fy.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:u.jsx($W,{asChild:!0,...s,focusable:!r,children:u.jsx(uy.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:c,onPointerMove:Xe(e.onPointerMove,my(x=>{r?a.onItemLeave(x):(a.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Xe(e.onPointerLeave,my(x=>a.onItemLeave(x))),onFocus:Xe(e.onFocus,()=>f(!0)),onBlur:Xe(e.onBlur,()=>f(!1))})})})}),Ske="MenuCheckboxItem",BW=m.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return u.jsx(qW,{scope:e.__scopeMenu,checked:n,children:u.jsx(s4,{role:"menuitemcheckbox","aria-checked":l4(n)?"mixed":n,...i,ref:t,"data-state":a7(n),onSelect:Xe(i.onSelect,()=>r==null?void 0:r(l4(n)?!0:!n),{checkForDefaultPrevented:!1})})})});BW.displayName=Ske;var WW="MenuRadioGroup",[Cke,jke]=Yh(WW,{value:void 0,onValueChange:()=>{}}),VW=m.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,o=ko(r);return u.jsx(Cke,{scope:e.__scopeMenu,value:n,onValueChange:o,children:u.jsx(i7,{...i,ref:t})})});VW.displayName=WW;var HW="MenuRadioItem",ZW=m.forwardRef((e,t)=>{const{value:n,...r}=e,i=jke(HW,e.__scopeMenu),o=n===i.value;return u.jsx(qW,{scope:e.__scopeMenu,checked:o,children:u.jsx(s4,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":a7(o),onSelect:Xe(r.onSelect,()=>{var a;return(a=i.onValueChange)==null?void 0:a.call(i,n)},{checkForDefaultPrevented:!1})})})});ZW.displayName=HW;var o7="MenuItemIndicator",[qW,Tke]=Yh(o7,{checked:!1}),GW=m.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,o=Tke(o7,n);return u.jsx(Ao,{present:r||l4(o.checked)||o.checked===!0,children:u.jsx(uy.span,{...i,ref:t,"data-state":a7(o.checked)})})});GW.displayName=o7;var Ike="MenuSeparator",YW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});YW.displayName=Ike;var Eke="MenuArrow",KW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(r4,{...i,...r,ref:t})});KW.displayName=Eke;var Nke="MenuSub",[N5t,XW]=Yh(Nke),py="MenuSubTrigger",JW=m.forwardRef((e,t)=>{const n=Kh(py,e.__scopeMenu),r=hy(py,e.__scopeMenu),i=XW(py,e.__scopeMenu),o=n7(py,e.__scopeMenu),a=m.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=o,c={__scopeMenu:e.__scopeMenu},d=m.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return m.useEffect(()=>d,[d]),m.useEffect(()=>{const f=s.current;return()=>{window.clearTimeout(f),l(null)}},[s,l]),u.jsx(e7,{asChild:!0,...c,children:u.jsx(UW,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":tV(n.open),...e,ref:zl(t,i.onTriggerChange),onClick:f=>{var p;(p=e.onClick)==null||p.call(e,f),!(e.disabled||f.defaultPrevented)&&(f.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Xe(e.onPointerMove,my(f=>{o.onItemEnter(f),!f.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(o.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:Xe(e.onPointerLeave,my(f=>{var v,x;d();const p=(v=n.content)==null?void 0:v.getBoundingClientRect();if(p){const y=(x=n.content)==null?void 0:x.dataset.side,b=y==="right",w=b?-5:5,_=p[b?"left":"right"],S=p[b?"right":"left"];o.onPointerGraceIntentChange({area:[{x:f.clientX+w,y:f.clientY},{x:_,y:p.top},{x:S,y:p.top},{x:S,y:p.bottom},{x:_,y:p.bottom}],side:y}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(f),f.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Xe(e.onKeyDown,f=>{var v;const p=o.searchRef.current!=="";e.disabled||p&&f.key===" "||cke[r.dir].includes(f.key)&&(n.onOpenChange(!0),(v=n.content)==null||v.focus(),f.preventDefault())})})})});JW.displayName=py;var QW="MenuSubContent",eV=m.forwardRef((e,t)=>{const n=OW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Kh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu),s=XW(QW,e.__scopeMenu),l=m.useRef(null),c=At(t,l);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:u.jsx(r7,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:c,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{var f;a.isUsingKeyboardRef.current&&((f=l.current)==null||f.focus()),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:Xe(e.onFocusOutside,d=>{d.target!==s.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Xe(e.onEscapeKeyDown,d=>{a.onClose(),d.preventDefault()}),onKeyDown:Xe(e.onKeyDown,d=>{var v;const f=d.currentTarget.contains(d.target),p=dke[a.dir].includes(d.key);f&&p&&(o.onOpenChange(!1),(v=s.trigger)==null||v.focus(),d.preventDefault())})})})})})});eV.displayName=QW;function tV(e){return e?"open":"closed"}function l4(e){return e==="indeterminate"}function a7(e){return l4(e)?"indeterminate":e?"checked":"unchecked"}function $ke(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Mke(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Rke(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=Mke(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function Lke(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function Pke(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Lke(n,t)}function my(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Oke=PW,zke=e7,Dke=zW,Ake=DW,Fke=i7,Uke=AW,Bke=s4,Wke=BW,Vke=VW,Hke=ZW,Zke=GW,qke=YW,Gke=KW,Yke=JW,Kke=eV,Xke=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jke=Xke.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),u4="DropdownMenu",[Qke]=Pa(u4,[RW]),sa=RW(),[e6e,nV]=Qke(u4),rV=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:a,modal:s=!0}=e,l=sa(t),c=m.useRef(null),[d,f]=Xs({prop:i,defaultProp:o??!1,onChange:a,caller:u4});return u.jsx(e6e,{scope:t,triggerId:wo(),triggerRef:c,contentId:wo(),open:d,onOpenChange:f,onOpenToggle:m.useCallback(()=>f(p=>!p),[f]),modal:s,children:u.jsx(Oke,{...l,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};rV.displayName=u4;var iV="DropdownMenuTrigger",oV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=nV(iV,n),a=sa(n);return u.jsx(zke,{asChild:!0,...a,children:u.jsx(Jke.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:zl(t,o.triggerRef),onPointerDown:Xe(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(o.onOpenToggle(),o.open||s.preventDefault())}),onKeyDown:Xe(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&o.onOpenToggle(),s.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});oV.displayName=iV;var t6e="DropdownMenuPortal",aV=e=>{const{__scopeDropdownMenu:t,...n}=e,r=sa(t);return u.jsx(Dke,{...r,...n})};aV.displayName=t6e;var sV="DropdownMenuContent",lV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=nV(sV,n),o=sa(n),a=m.useRef(!1);return u.jsx(Ake,{id:i.contentId,"aria-labelledby":i.triggerId,...o,...r,ref:t,onCloseAutoFocus:Xe(e.onCloseAutoFocus,s=>{var l;a.current||((l=i.triggerRef.current)==null||l.focus()),a.current=!1,s.preventDefault()}),onInteractOutside:Xe(e.onInteractOutside,s=>{const l=s.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,d=l.button===2||c;(!i.modal||d)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});lV.displayName=sV;var n6e="DropdownMenuGroup",uV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Fke,{...i,...r,ref:t})});uV.displayName=n6e;var r6e="DropdownMenuLabel",cV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Uke,{...i,...r,ref:t})});cV.displayName=r6e;var i6e="DropdownMenuItem",dV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Bke,{...i,...r,ref:t})});dV.displayName=i6e;var o6e="DropdownMenuCheckboxItem",fV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Wke,{...i,...r,ref:t})});fV.displayName=o6e;var a6e="DropdownMenuRadioGroup",hV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Vke,{...i,...r,ref:t})});hV.displayName=a6e;var s6e="DropdownMenuRadioItem",pV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Hke,{...i,...r,ref:t})});pV.displayName=s6e;var l6e="DropdownMenuItemIndicator",mV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Zke,{...i,...r,ref:t})});mV.displayName=l6e;var u6e="DropdownMenuSeparator",gV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(qke,{...i,...r,ref:t})});gV.displayName=u6e;var c6e="DropdownMenuArrow",d6e=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Gke,{...i,...r,ref:t})});d6e.displayName=c6e;var f6e="DropdownMenuSubTrigger",vV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Yke,{...i,...r,ref:t})});vV.displayName=f6e;var h6e="DropdownMenuSubContent",yV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Kke,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yV.displayName=h6e;var bV=rV,xV=oV,s7=aV,_V=lV,p6e=uV,m6e=cV,wV=dV,g6e=fV,v6e=hV,y6e=pV,kV=mV,b6e=gV,x6e=vV,_6e=yV,w6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],k6e=w6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S6e="Label",SV=m.forwardRef((e,t)=>u.jsx(k6e.label,{...e,ref:t,onMouseDown:n=>{var r;n.target.closest("button, input, select, textarea")||((r=e.onMouseDown)==null||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));SV.displayName=S6e;var C6e=SV;function gy(e,[t,n]){return Math.min(n,Math.max(t,e))}var j6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],CV=j6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),c4="Popover",[jV]=Pa(c4,[Sf]),vy=Sf(),[T6e,Cf]=jV(c4),TV=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!1}=e,s=vy(t),l=m.useRef(null),[c,d]=m.useState(!1),[f,p]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:c4});return u.jsx(t4,{...s,children:u.jsx(T6e,{scope:t,contentId:wo(),triggerRef:l,open:f,onOpenChange:p,onOpenToggle:m.useCallback(()=>p(v=>!v),[p]),hasCustomAnchor:c,onCustomAnchorAdd:m.useCallback(()=>d(!0),[]),onCustomAnchorRemove:m.useCallback(()=>d(!1),[]),modal:a,children:n})})};TV.displayName=c4;var IV="PopoverAnchor",EV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(IV,n),o=vy(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=i;return m.useEffect(()=>(a(),()=>s()),[a,s]),u.jsx(ly,{...o,...r,ref:t})});EV.displayName=IV;var NV="PopoverTrigger",$V=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(NV,n),o=vy(n),a=At(t,i.triggerRef),s=u.jsx(CV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":zV(i.open),...r,ref:a,onClick:Xe(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:u.jsx(ly,{asChild:!0,...o,children:s})});$V.displayName=NV;var l7="PopoverPortal",[I6e,E6e]=jV(l7,{forceMount:void 0}),MV=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=Cf(l7,t);return u.jsx(I6e,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};MV.displayName=l7;var D0="PopoverContent",RV=m.forwardRef((e,t)=>{const n=E6e(D0,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=Cf(D0,e.__scopePopover);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx($6e,{...i,ref:t}):u.jsx(M6e,{...i,ref:t})})});RV.displayName=D0;var N6e=vr("PopoverContent.RemoveScroll"),$6e=m.forwardRef((e,t)=>{const n=Cf(D0,e.__scopePopover),r=m.useRef(null),i=At(t,r),o=m.useRef(!1);return m.useEffect(()=>{const a=r.current;if(a)return Bw(a)},[]),u.jsx(iy,{as:N6e,allowPinchZoom:!0,children:u.jsx(LV,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,a=>{var s;a.preventDefault(),o.current||((s=n.triggerRef.current)==null||s.focus())}),onPointerDownOutside:Xe(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0,c=s.button===2||l;o.current=c},{checkForDefaultPrevented:!1}),onFocusOutside:Xe(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),M6e=m.forwardRef((e,t)=>{const n=Cf(D0,e.__scopePopover),r=m.useRef(!1),i=m.useRef(!1);return u.jsx(LV,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),LV=m.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...f}=e,p=Cf(D0,n),v=vy(n);return Lw(),u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>p.onOpenChange(!1),children:u.jsx(n4,{"data-state":zV(p.open),role:"dialog",id:p.contentId,...v,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),PV="PopoverClose",OV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=Cf(PV,n);return u.jsx(CV.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});OV.displayName=PV;var R6e="PopoverArrow",L6e=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=vy(n);return u.jsx(r4,{...i,...r,ref:t})});L6e.displayName=R6e;function zV(e){return e?"open":"closed"}var u7=TV,DV=EV,AV=$V,c7=MV,d7=RV,P6e=OV,O6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],FV=O6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),f7="Progress",h7=100,[z6e]=Pa(f7),[D6e,A6e]=z6e(f7),UV=m.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:i,getValueLabel:o=F6e,...a}=e;(i||i===0)&&!HV(i)&&console.error(U6e(`${i}`,"Progress"));const s=HV(i)?i:h7;r!==null&&!ZV(r,s)&&console.error(B6e(`${r}`,"Progress"));const l=ZV(r,s)?r:null,c=d4(l)?o(l,s):void 0;return u.jsx(D6e,{scope:n,value:l,max:s,children:u.jsx(FV.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":d4(l)?l:void 0,"aria-valuetext":c,role:"progressbar","data-state":VV(l,s),"data-value":l??void 0,"data-max":s,...a,ref:t})})});UV.displayName=f7;var BV="ProgressIndicator",WV=m.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,i=A6e(BV,n);return u.jsx(FV.div,{"data-state":VV(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});WV.displayName=BV;function F6e(e,t){return`${Math.round(e/t*100)}%`}function VV(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function d4(e){return typeof e=="number"}function HV(e){return d4(e)&&!isNaN(e)&&e>0}function ZV(e,t){return d4(e)&&!isNaN(e)&&e<=t&&e>=0}function U6e(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${h7}\`.`}function B6e(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${h7} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var W6e=UV,V6e=WV,H6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yy=H6e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Z6e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var p7="ScrollArea",[qV]=Pa(p7),[q6e,Qs]=qV(p7),GV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:i,scrollHideDelay:o=600,...a}=e,[s,l]=m.useState(null),[c,d]=m.useState(null),[f,p]=m.useState(null),[v,x]=m.useState(null),[y,b]=m.useState(null),[w,_]=m.useState(0),[S,C]=m.useState(0),[j,T]=m.useState(!1),[E,$]=m.useState(!1),D=At(t,O=>l(O)),M=T0(i);return u.jsx(q6e,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:s,viewport:c,onViewportChange:d,content:f,onContentChange:p,scrollbarX:v,onScrollbarXChange:x,scrollbarXEnabled:j,onScrollbarXEnabledChange:T,scrollbarY:y,onScrollbarYChange:b,scrollbarYEnabled:E,onScrollbarYEnabledChange:$,onCornerWidthChange:_,onCornerHeightChange:C,children:u.jsx(yy.div,{dir:M,...a,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":w+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});GV.displayName=p7;var YV="ScrollAreaViewport",KV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:i,...o}=e,a=Qs(YV,n),s=m.useRef(null),l=At(t,s,a.onViewportChange);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),u.jsx(yy.div,{"data-radix-scroll-area-viewport":"",...o,ref:l,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...e.style},children:u.jsx("div",{ref:a.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});KV.displayName=YV;var Bu="ScrollAreaScrollbar",XV=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:a}=i,s=e.orientation==="horizontal";return m.useEffect(()=>(s?o(!0):a(!0),()=>{s?o(!1):a(!1)}),[s,o,a]),i.type==="hover"?u.jsx(G6e,{...r,ref:t,forceMount:n}):i.type==="scroll"?u.jsx(Y6e,{...r,ref:t,forceMount:n}):i.type==="auto"?u.jsx(JV,{...r,ref:t,forceMount:n}):i.type==="always"?u.jsx(m7,{...r,ref:t}):null});XV.displayName=Bu;var G6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),[o,a]=m.useState(!1);return m.useEffect(()=>{const s=i.scrollArea;let l=0;if(s){const c=()=>{window.clearTimeout(l),a(!0)},d=()=>{l=window.setTimeout(()=>a(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",c),s.addEventListener("pointerleave",d),()=>{window.clearTimeout(l),s.removeEventListener("pointerenter",c),s.removeEventListener("pointerleave",d)}}},[i.scrollArea,i.scrollHideDelay]),u.jsx(Ao,{present:n||o,children:u.jsx(JV,{"data-state":o?"visible":"hidden",...r,ref:t})})}),Y6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Bu,e.__scopeScrollArea),o=e.orientation==="horizontal",a=m4(()=>l("SCROLL_END"),100),[s,l]=Z6e("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return m.useEffect(()=>{if(s==="idle"){const c=window.setTimeout(()=>l("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(c)}},[s,i.scrollHideDelay,l]),m.useEffect(()=>{const c=i.viewport,d=o?"scrollLeft":"scrollTop";if(c){let f=c[d];const p=()=>{const v=c[d];f!==v&&(l("SCROLL"),a()),f=v};return c.addEventListener("scroll",p),()=>c.removeEventListener("scroll",p)}},[i.viewport,o,l,a]),u.jsx(Ao,{present:n||s!=="hidden",children:u.jsx(m7,{"data-state":s==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Xe(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:Xe(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),JV=m.forwardRef((e,t)=>{const n=Qs(Bu,e.__scopeScrollArea),{forceMount:r,...i}=e,[o,a]=m.useState(!1),s=e.orientation==="horizontal",l=m4(()=>{if(n.viewport){const c=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,i=Qs(Bu,e.__scopeScrollArea),o=m.useRef(null),a=m.useRef(0),[s,l]=m.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=rH(s.viewport,s.content),d={...r,sizes:s,onSizesChange:l,hasThumb:c>0&&c<1,onThumbChange:p=>o.current=p,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:p=>a.current=p};function f(p,v){return t5e(p,a.current,s,v)}return n==="horizontal"?u.jsx(K6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollLeft,v=iH(p,s,i.dir);o.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollLeft=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollLeft=f(p,i.dir))}}):n==="vertical"?u.jsx(X6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollTop,v=iH(p,s);o.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollTop=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollTop=f(p))}}):null}),K6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Bu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarXChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"horizontal",...i,ref:c,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:h4(a.paddingLeft),paddingEnd:h4(a.paddingRight)}})}})}),X6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Bu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarYChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"vertical",...i,ref:c,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:h4(a.paddingTop),paddingEnd:h4(a.paddingBottom)}})}})}),[J6e,QV]=qV(Bu),eH=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:a,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:c,onWheelScroll:d,onResize:f,...p}=e,v=Qs(Bu,n),[x,y]=m.useState(null),b=At(t,D=>y(D)),w=m.useRef(null),_=m.useRef(""),S=v.viewport,C=r.content-r.viewport,j=ko(d),T=ko(l),E=m4(f,10);function $(D){if(w.current){const M=D.clientX-w.current.left,O=D.clientY-w.current.top;c({x:M,y:O})}}return m.useEffect(()=>{const D=M=>{const O=M.target;x!=null&&x.contains(O)&&j(M,C)};return document.addEventListener("wheel",D,{passive:!1}),()=>document.removeEventListener("wheel",D,{passive:!1})},[S,x,C,j]),m.useEffect(T,[r,T]),A0(x,E),A0(v.content,E),u.jsx(J6e,{scope:n,scrollbar:x,hasThumb:i,onThumbChange:ko(o),onThumbPointerUp:ko(a),onThumbPositionChange:T,onThumbPointerDown:ko(s),children:u.jsx(yy.div,{...p,ref:b,style:{position:"absolute",...p.style},onPointerDown:Xe(e.onPointerDown,D=>{D.button===0&&(D.target.setPointerCapture(D.pointerId),w.current=x.getBoundingClientRect(),_.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),$(D))}),onPointerMove:Xe(e.onPointerMove,$),onPointerUp:Xe(e.onPointerUp,D=>{const M=D.target;M.hasPointerCapture(D.pointerId)&&M.releasePointerCapture(D.pointerId),document.body.style.webkitUserSelect=_.current,v.viewport&&(v.viewport.style.scrollBehavior=""),w.current=null})})})}),f4="ScrollAreaThumb",tH=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=QV(f4,e.__scopeScrollArea);return u.jsx(Ao,{present:n||i.hasThumb,children:u.jsx(Q6e,{ref:t,...r})})}),Q6e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...i}=e,o=Qs(f4,n),a=QV(f4,n),{onThumbPositionChange:s}=a,l=At(t,f=>a.onThumbChange(f)),c=m.useRef(void 0),d=m4(()=>{c.current&&(c.current(),c.current=void 0)},100);return m.useEffect(()=>{const f=o.viewport;if(f){const p=()=>{if(d(),!c.current){const v=n5e(f,s);c.current=v,s()}};return s(),f.addEventListener("scroll",p),()=>f.removeEventListener("scroll",p)}},[o.viewport,d,s]),u.jsx(yy.div,{"data-state":a.hasThumb?"visible":"hidden",...i,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Xe(e.onPointerDownCapture,f=>{const p=f.target.getBoundingClientRect(),v=f.clientX-p.left,x=f.clientY-p.top;a.onThumbPointerDown({x:v,y:x})}),onPointerUp:Xe(e.onPointerUp,a.onThumbPointerUp)})});tH.displayName=f4;var g7="ScrollAreaCorner",nH=m.forwardRef((e,t)=>{const n=Qs(g7,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?u.jsx(e5e,{...e,ref:t}):null});nH.displayName=g7;var e5e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,i=Qs(g7,n),[o,a]=m.useState(0),[s,l]=m.useState(0),c=!!(o&&s);return A0(i.scrollbarX,()=>{var f;const d=((f=i.scrollbarX)==null?void 0:f.offsetHeight)||0;i.onCornerHeightChange(d),l(d)}),A0(i.scrollbarY,()=>{var f;const d=((f=i.scrollbarY)==null?void 0:f.offsetWidth)||0;i.onCornerWidthChange(d),a(d)}),c?u.jsx(yy.div,{...r,ref:t,style:{width:o,height:s,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function h4(e){return e?parseInt(e,10):0}function rH(e,t){const n=e/t;return isNaN(n)?0:n}function p4(e){const t=rH(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function t5e(e,t,n,r="ltr"){const i=p4(n),o=i/2,a=t||o,s=i-a,l=n.scrollbar.paddingStart+a,c=n.scrollbar.size-n.scrollbar.paddingEnd-s,d=n.content-n.viewport,f=r==="ltr"?[0,d]:[d*-1,0];return oH([l,c],f)(e)}function iH(e,t,n="ltr"){const r=p4(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,a=t.content-t.viewport,s=o-r,l=n==="ltr"?[0,a]:[a*-1,0],c=gy(e,l);return oH([0,a],[0,s])(c)}function oH(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function aH(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function i(){const o={left:e.scrollLeft,top:e.scrollTop},a=n.left!==o.left,s=n.top!==o.top;(a||s)&&t(),n=o,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function m4(e,t){const n=ko(e),r=m.useRef(0);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),m.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function A0(e,t){const n=ko(t);_o(()=>{let r=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(r),i.unobserve(e)}}},[e,n])}var sH=GV,lH=KV,v7=XV,y7=tH,r5e=nH,i5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ds=i5e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),o5e=[" ","Enter","ArrowUp","ArrowDown"],a5e=[" ","Enter"],Xh="Select",[g4,v4,s5e]=Mw(Xh),[F0]=Pa(Xh,[s5e,Sf]),y4=Sf(),[l5e,jf]=F0(Xh),[u5e,c5e]=F0(Xh),uH=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:o,value:a,defaultValue:s,onValueChange:l,dir:c,name:d,autoComplete:f,disabled:p,required:v,form:x}=e,y=y4(t),[b,w]=m.useState(null),[_,S]=m.useState(null),[C,j]=m.useState(!1),T=T0(c),[E,$]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Xh}),[D,M]=Xs({prop:a,defaultProp:s,onChange:l,caller:Xh}),O=m.useRef(null),te=b?x||!!b.closest("form"):!0,[q,P]=m.useState(new Set),X=Array.from(q).map(A=>A.props.value).join(";");return u.jsx(t4,{...y,children:u.jsxs(l5e,{required:v,scope:t,trigger:b,onTriggerChange:w,valueNode:_,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:j,contentId:wo(),value:D,onValueChange:M,open:E,onOpenChange:$,dir:T,triggerPointerDownPosRef:O,disabled:p,children:[u.jsx(g4.Provider,{scope:t,children:u.jsx(u5e,{scope:e.__scopeSelect,onNativeOptionAdd:m.useCallback(A=>{P(Y=>new Set(Y).add(A))},[]),onNativeOptionRemove:m.useCallback(A=>{P(Y=>{const F=new Set(Y);return F.delete(A),F})},[]),children:n})}),te?u.jsxs(MH,{"aria-hidden":!0,required:v,tabIndex:-1,name:d,autoComplete:f,value:D,onChange:A=>M(A.target.value),disabled:p,form:x,children:[D===void 0?u.jsx("option",{value:""}):null,Array.from(q)]},X):null]})})};uH.displayName=Xh;var cH="SelectTrigger",dH=m.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,o=y4(n),a=jf(cH,n),s=a.disabled||r,l=At(t,a.onTriggerChange),c=v4(n),d=m.useRef("touch"),[f,p,v]=LH(y=>{const b=c().filter(S=>!S.disabled),w=b.find(S=>S.value===a.value),_=PH(b,y,w);_!==void 0&&a.onValueChange(_.value)}),x=y=>{s||(a.onOpenChange(!0),v()),y&&(a.triggerPointerDownPosRef.current={x:Math.round(y.pageX),y:Math.round(y.pageY)})};return u.jsx(ly,{asChild:!0,...o,children:u.jsx(ds.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":RH(a.value)?"":void 0,...i,ref:l,onClick:Xe(i.onClick,y=>{y.currentTarget.focus(),d.current!=="mouse"&&x(y)}),onPointerDown:Xe(i.onPointerDown,y=>{d.current=y.pointerType;const b=y.target;b.hasPointerCapture(y.pointerId)&&b.releasePointerCapture(y.pointerId),y.button===0&&y.ctrlKey===!1&&y.pointerType==="mouse"&&(x(y),y.preventDefault())}),onKeyDown:Xe(i.onKeyDown,y=>{const b=f.current!=="";!(y.ctrlKey||y.altKey||y.metaKey)&&y.key.length===1&&p(y.key),!(b&&y.key===" ")&&o5e.includes(y.key)&&(x(),y.preventDefault())})})})});dH.displayName=cH;var fH="SelectValue",hH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:o,placeholder:a="",...s}=e,l=jf(fH,n),{onValueNodeHasChildrenChange:c}=l,d=o!==void 0,f=At(t,l.onValueNodeChange);return _o(()=>{c(d)},[c,d]),u.jsx(ds.span,{...s,ref:f,style:{pointerEvents:"none"},children:RH(l.value)?u.jsx(u.Fragment,{children:a}):o})});hH.displayName=fH;var d5e="SelectIcon",pH=m.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return u.jsx(ds.span,{"aria-hidden":!0,...i,ref:t,children:r||"\u25BC"})});pH.displayName=d5e;var f5e="SelectPortal",mH=e=>u.jsx(Zh,{asChild:!0,...e});mH.displayName=f5e;var Jh="SelectContent",gH=m.forwardRef((e,t)=>{const n=jf(Jh,e.__scopeSelect),[r,i]=m.useState();if(_o(()=>{i(new DocumentFragment)},[]),!n.open){const o=r;return o?Kc.createPortal(u.jsx(vH,{scope:e.__scopeSelect,children:u.jsx(g4.Slot,{scope:e.__scopeSelect,children:u.jsx("div",{children:e.children})})}),o):null}return u.jsx(yH,{...e,ref:t})});gH.displayName=Jh;var Ul=10,[vH,Tf]=F0(Jh),h5e="SelectContentImpl",p5e=vr("SelectContent.RemoveScroll"),yH=m.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:a,side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:x,hideWhenDetached:y,avoidCollisions:b,...w}=e,_=jf(Jh,n),[S,C]=m.useState(null),[j,T]=m.useState(null),E=At(t,he=>C(he)),[$,D]=m.useState(null),[M,O]=m.useState(null),te=v4(n),[q,P]=m.useState(!1),X=m.useRef(!1);m.useEffect(()=>{if(S)return Bw(S)},[S]),Lw();const A=m.useCallback(he=>{const[ue,...re]=te().map(pe=>pe.ref.current),[ge]=re.slice(-1),$e=document.activeElement;for(const pe of he)if(pe===$e||(pe==null||pe.scrollIntoView({block:"nearest"}),pe===ue&&j&&(j.scrollTop=0),pe===ge&&j&&(j.scrollTop=j.scrollHeight),pe==null||pe.focus(),document.activeElement!==$e))return},[te,j]),Y=m.useCallback(()=>A([$,S]),[A,$,S]);m.useEffect(()=>{q&&Y()},[q,Y]);const{onOpenChange:F,triggerPointerDownPosRef:H}=_;m.useEffect(()=>{if(S){let he={x:0,y:0};const ue=ge=>{var $e,pe;he={x:Math.abs(Math.round(ge.pageX)-((($e=H.current)==null?void 0:$e.x)??0)),y:Math.abs(Math.round(ge.pageY)-(((pe=H.current)==null?void 0:pe.y)??0))}},re=ge=>{he.x<=10&&he.y<=10?ge.preventDefault():S.contains(ge.target)||F(!1),document.removeEventListener("pointermove",ue),H.current=null};return H.current!==null&&(document.addEventListener("pointermove",ue),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ue),document.removeEventListener("pointerup",re,{capture:!0})}}},[S,F,H]),m.useEffect(()=>{const he=()=>F(!1);return window.addEventListener("blur",he),window.addEventListener("resize",he),()=>{window.removeEventListener("blur",he),window.removeEventListener("resize",he)}},[F]);const[ee,ce]=LH(he=>{const ue=te().filter($e=>!$e.disabled),re=ue.find($e=>$e.ref.current===document.activeElement),ge=PH(ue,he,re);ge&&setTimeout(()=>ge.ref.current.focus())}),B=m.useCallback((he,ue,re)=>{const ge=!X.current&&!re;(_.value!==void 0&&_.value===ue||ge)&&(D(he),ge&&(X.current=!0))},[_.value]),ae=m.useCallback(()=>S==null?void 0:S.focus(),[S]),je=m.useCallback((he,ue,re)=>{const ge=!X.current&&!re;(_.value!==void 0&&_.value===ue||ge)&&O(he)},[_.value]),me=r==="popper"?b7:bH,ke=me===b7?{side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:x,hideWhenDetached:y,avoidCollisions:b}:{};return u.jsx(vH,{scope:n,content:S,viewport:j,onViewportChange:T,itemRefCallback:B,selectedItem:$,onItemLeave:ae,itemTextRefCallback:je,focusSelectedItem:Y,selectedItemText:M,position:r,isPositioned:q,searchRef:ee,children:u.jsx(iy,{as:p5e,allowPinchZoom:!0,children:u.jsx(ny,{asChild:!0,trapped:_.open,onMountAutoFocus:he=>{he.preventDefault()},onUnmountAutoFocus:Xe(i,he=>{var ue;(ue=_.trigger)==null||ue.focus({preventScroll:!0}),he.preventDefault()}),children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:he=>he.preventDefault(),onDismiss:()=>_.onOpenChange(!1),children:u.jsx(me,{role:"listbox",id:_.contentId,"data-state":_.open?"open":"closed",dir:_.dir,onContextMenu:he=>he.preventDefault(),...w,...ke,onPlaced:()=>P(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:Xe(w.onKeyDown,he=>{const ue=he.ctrlKey||he.altKey||he.metaKey;if(he.key==="Tab"&&he.preventDefault(),!ue&&he.key.length===1&&ce(he.key),["ArrowUp","ArrowDown","Home","End"].includes(he.key)){let re=te().filter(ge=>!ge.disabled).map(ge=>ge.ref.current);if(["ArrowUp","End"].includes(he.key)&&(re=re.slice().reverse()),["ArrowUp","ArrowDown"].includes(he.key)){const ge=he.target,$e=re.indexOf(ge);re=re.slice($e+1)}setTimeout(()=>A(re)),he.preventDefault()}})})})})})})});yH.displayName=h5e;var m5e="SelectItemAlignedPosition",bH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,o=jf(Jh,n),a=Tf(Jh,n),[s,l]=m.useState(null),[c,d]=m.useState(null),f=At(t,E=>d(E)),p=v4(n),v=m.useRef(!1),x=m.useRef(!0),{viewport:y,selectedItem:b,selectedItemText:w,focusSelectedItem:_}=a,S=m.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&c&&y&&b&&w){const E=o.trigger.getBoundingClientRect(),$=c.getBoundingClientRect(),D=o.valueNode.getBoundingClientRect(),M=w.getBoundingClientRect();if(o.dir!=="rtl"){const ge=M.left-$.left,$e=D.left-ge,pe=E.left-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Ul,Ue=gy($e,[Ul,Math.max(Ul,Ce-Se)]);s.style.minWidth=ye+"px",s.style.left=Ue+"px"}else{const ge=$.right-M.right,$e=window.innerWidth-D.right-ge,pe=window.innerWidth-E.right-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Ul,Ue=gy($e,[Ul,Math.max(Ul,Ce-Se)]);s.style.minWidth=ye+"px",s.style.right=Ue+"px"}const O=p(),te=window.innerHeight-Ul*2,q=y.scrollHeight,P=window.getComputedStyle(c),X=parseInt(P.borderTopWidth,10),A=parseInt(P.paddingTop,10),Y=parseInt(P.borderBottomWidth,10),F=parseInt(P.paddingBottom,10),H=X+A+q+F+Y,ee=Math.min(b.offsetHeight*5,H),ce=window.getComputedStyle(y),B=parseInt(ce.paddingTop,10),ae=parseInt(ce.paddingBottom,10),je=E.top+E.height/2-Ul,me=te-je,ke=b.offsetHeight/2,he=b.offsetTop+ke,ue=X+A+he,re=H-ue;if(ue<=je){const ge=O.length>0&&b===O[O.length-1].ref.current;s.style.bottom="0px";const $e=c.clientHeight-y.offsetTop-y.offsetHeight,pe=Math.max(me,ke+(ge?ae:0)+$e+Y),ye=ue+pe;s.style.height=ye+"px"}else{const ge=O.length>0&&b===O[0].ref.current;s.style.top="0px";const $e=Math.max(je,X+y.offsetTop+(ge?B:0)+ke)+re;s.style.height=$e+"px",y.scrollTop=ue-je+y.offsetTop}s.style.margin=`${Ul}px 0`,s.style.minHeight=ee+"px",s.style.maxHeight=te+"px",r==null||r(),requestAnimationFrame(()=>v.current=!0)}},[p,o.trigger,o.valueNode,s,c,y,b,w,o.dir,r]);_o(()=>S(),[S]);const[C,j]=m.useState();_o(()=>{c&&j(window.getComputedStyle(c).zIndex)},[c]);const T=m.useCallback(E=>{E&&x.current===!0&&(S(),_==null||_(),x.current=!1)},[S,_]);return u.jsx(v5e,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:v,onScrollButtonChange:T,children:u.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:C},children:u.jsx(ds.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});bH.displayName=m5e;var g5e="SelectPopperPosition",b7=m.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=Ul,...o}=e,a=y4(n);return u.jsx(n4,{...a,...o,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});b7.displayName=g5e;var[v5e,x7]=F0(Jh,{}),_7="SelectViewport",xH=m.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,o=Tf(_7,n),a=x7(_7,n),s=At(t,o.onViewportChange),l=m.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),u.jsx(g4.Slot,{scope:n,children:u.jsx(ds.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Xe(i.onScroll,c=>{const d=c.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:p}=a;if(p!=null&&p.current&&f){const v=Math.abs(l.current-d.scrollTop);if(v>0){const x=window.innerHeight-Ul*2,y=parseFloat(f.style.minHeight),b=parseFloat(f.style.height),w=Math.max(y,b);if(w0?C:0,f.style.justifyContent="flex-end")}}}l.current=d.scrollTop})})})]})});xH.displayName=_7;var _H="SelectGroup",[y5e,b5e]=F0(_H),wH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=wo();return u.jsx(y5e,{scope:n,id:i,children:u.jsx(ds.div,{role:"group","aria-labelledby":i,...r,ref:t})})});wH.displayName=_H;var kH="SelectLabel",SH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=b5e(kH,n);return u.jsx(ds.div,{id:i.id,...r,ref:t})});SH.displayName=kH;var b4="SelectItem",[x5e,CH]=F0(b4),jH=m.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:o,...a}=e,s=jf(b4,n),l=Tf(b4,n),c=s.value===r,[d,f]=m.useState(o??""),[p,v]=m.useState(!1),x=At(t,_=>{var S;return(S=l.itemRefCallback)==null?void 0:S.call(l,_,r,i)}),y=wo(),b=m.useRef("touch"),w=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(x5e,{scope:n,value:r,disabled:i,textId:y,isSelected:c,onItemTextChange:m.useCallback(_=>{f(S=>S||((_==null?void 0:_.textContent)??"").trim())},[]),children:u.jsx(g4.ItemSlot,{scope:n,value:r,disabled:i,textValue:d,children:u.jsx(ds.div,{role:"option","aria-labelledby":y,"data-highlighted":p?"":void 0,"aria-selected":c&&p,"data-state":c?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...a,ref:x,onFocus:Xe(a.onFocus,()=>v(!0)),onBlur:Xe(a.onBlur,()=>v(!1)),onClick:Xe(a.onClick,()=>{b.current!=="mouse"&&w()}),onPointerUp:Xe(a.onPointerUp,()=>{b.current==="mouse"&&w()}),onPointerDown:Xe(a.onPointerDown,_=>{b.current=_.pointerType}),onPointerMove:Xe(a.onPointerMove,_=>{var S;b.current=_.pointerType,i?(S=l.onItemLeave)==null||S.call(l):b.current==="mouse"&&_.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Xe(a.onPointerLeave,_=>{var S;_.currentTarget===document.activeElement&&((S=l.onItemLeave)==null||S.call(l))}),onKeyDown:Xe(a.onKeyDown,_=>{var S;((S=l.searchRef)==null?void 0:S.current)!==""&&_.key===" "||(a5e.includes(_.key)&&w(),_.key===" "&&_.preventDefault())})})})})});jH.displayName=b4;var by="SelectItemText",TH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...o}=e,a=jf(by,n),s=Tf(by,n),l=CH(by,n),c=c5e(by,n),[d,f]=m.useState(null),p=At(t,w=>f(w),l.onItemTextChange,w=>{var _;return(_=s.itemTextRefCallback)==null?void 0:_.call(s,w,l.value,l.disabled)}),v=d==null?void 0:d.textContent,x=m.useMemo(()=>u.jsx("option",{value:l.value,disabled:l.disabled,children:v},l.value),[l.disabled,l.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:b}=c;return _o(()=>(y(x),()=>b(x)),[y,b,x]),u.jsxs(u.Fragment,{children:[u.jsx(ds.span,{id:l.textId,...o,ref:p}),l.isSelected&&a.valueNode&&!a.valueNodeHasChildren?Kc.createPortal(o.children,a.valueNode):null]})});TH.displayName=by;var IH="SelectItemIndicator",EH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return CH(IH,n).isSelected?u.jsx(ds.span,{"aria-hidden":!0,...r,ref:t}):null});EH.displayName=IH;var w7="SelectScrollUpButton",_5e=m.forwardRef((e,t)=>{const n=Tf(w7,e.__scopeSelect),r=x7(w7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return _o(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollTop>0;o(c)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});_5e.displayName=w7;var k7="SelectScrollDownButton",w5e=m.forwardRef((e,t)=>{const n=Tf(k7,e.__scopeSelect),r=x7(k7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return _o(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollHeight-l.clientHeight,d=Math.ceil(l.scrollTop)l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});w5e.displayName=k7;var NH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,o=Tf("SelectScrollButton",n),a=m.useRef(null),s=v4(n),l=m.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return m.useEffect(()=>()=>l(),[l]),_o(()=>{var c,d;(d=(c=s().find(f=>f.ref.current===document.activeElement))==null?void 0:c.ref.current)==null||d.scrollIntoView({block:"nearest"})},[s]),u.jsx(ds.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:Xe(i.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(r,50))}),onPointerMove:Xe(i.onPointerMove,()=>{var c;(c=o.onItemLeave)==null||c.call(o),a.current===null&&(a.current=window.setInterval(r,50))}),onPointerLeave:Xe(i.onPointerLeave,()=>{l()})})}),k5e="SelectSeparator",$H=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return u.jsx(ds.div,{"aria-hidden":!0,...r,ref:t})});$H.displayName=k5e;var S7="SelectArrow",S5e=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=y4(n),o=jf(S7,n),a=Tf(S7,n);return o.open&&a.position==="popper"?u.jsx(r4,{...i,...r,ref:t}):null});S5e.displayName=S7;var C5e="SelectBubbleInput",MH=m.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(r,i),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("change",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(ds.select,{...n,style:{...GU,...n.style},ref:o,defaultValue:t})});MH.displayName=C5e;function RH(e){return e===""||e===void 0}function LH(e){const t=ko(e),n=m.useRef(""),r=m.useRef(0),i=m.useCallback(a=>{const s=n.current+a;t(s),function l(c){n.current=c,window.clearTimeout(r.current),c!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[t]),o=m.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,o]}function PH(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=j5e(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.textValue.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function j5e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var T5e=uH,I5e=dH,E5e=hH,N5e=pH,$5e=mH,M5e=gH,R5e=xH,L5e=wH,P5e=SH,O5e=jH,z5e=TH,D5e=EH,A5e=$H,F5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xy=F5e.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),OH=["PageUp","PageDown"],zH=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],DH={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},U0="Slider",[C7,U5e,B5e]=Mw(U0),[AH]=Pa(U0,[B5e]),[W5e,x4]=AH(U0),FH=m.forwardRef((e,t)=>{const{name:n,min:r=0,max:i=100,step:o=1,orientation:a="horizontal",disabled:s=!1,minStepsBetweenThumbs:l=0,defaultValue:c=[r],value:d,onValueChange:f=()=>{},onValueCommit:p=()=>{},inverted:v=!1,form:x,...y}=e,b=m.useRef(new Set),w=m.useRef(0),_=a==="horizontal"?V5e:H5e,[S=[],C]=Xs({prop:d,defaultProp:c,onChange:M=>{var O;(O=[...b.current][w.current])==null||O.focus(),f(M)}}),j=m.useRef(S);function T(M){const O=K5e(S,M);D(M,O)}function E(M){D(M,w.current)}function $(){const M=j.current[w.current];S[w.current]!==M&&p(S)}function D(M,O,{commit:te}={commit:!1}){const q=eSe(o),P=tSe(Math.round((M-r)/o)*o+r,q),X=gy(P,[r,i]);C((A=[])=>{const Y=G5e(A,X,O);if(Q5e(Y,l*o)){w.current=Y.indexOf(X);const F=String(Y)!==String(A);return F&&te&&p(Y),F?Y:A}else return A})}return u.jsx(W5e,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:w,thumbs:b.current,values:S,orientation:a,form:x,children:u.jsx(C7.Provider,{scope:e.__scopeSlider,children:u.jsx(C7.Slot,{scope:e.__scopeSlider,children:u.jsx(_,{"aria-disabled":s,"data-disabled":s?"":void 0,...y,ref:t,onPointerDown:Xe(y.onPointerDown,()=>{s||(j.current=S)}),min:r,max:i,inverted:v,onSlideStart:s?void 0:T,onSlideMove:s?void 0:E,onSlideEnd:s?void 0:$,onHomeKeyDown:()=>!s&&D(r,0,{commit:!0}),onEndKeyDown:()=>!s&&D(i,S.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:O})=>{if(!s){const te=OH.includes(M.key)||M.shiftKey&&zH.includes(M.key)?10:1,q=w.current,P=S[q],X=o*te*O;D(P+X,q,{commit:!0})}}})})})})});FH.displayName=U0;var[UH,BH]=AH(U0,{startEdge:"left",endEdge:"right",size:"width",direction:1}),V5e=m.forwardRef((e,t)=>{const{min:n,max:r,dir:i,inverted:o,onSlideStart:a,onSlideMove:s,onSlideEnd:l,onStepKeyDown:c,...d}=e,[f,p]=m.useState(null),v=At(t,S=>p(S)),x=m.useRef(void 0),y=T0(i),b=y==="ltr",w=b&&!o||!b&&o;function _(S){const C=x.current||f.getBoundingClientRect(),j=[0,C.width],T=I7(j,w?[n,r]:[r,n]);return x.current=C,T(S-C.left)}return u.jsx(UH,{scope:e.__scopeSlider,startEdge:w?"left":"right",endEdge:w?"right":"left",direction:w?1:-1,size:"width",children:u.jsx(WH,{dir:y,"data-orientation":"horizontal",...d,ref:v,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:S=>{const C=_(S.clientX);a==null||a(C)},onSlideMove:S=>{const C=_(S.clientX);s==null||s(C)},onSlideEnd:()=>{x.current=void 0,l==null||l()},onStepKeyDown:S=>{const C=DH[w?"from-left":"from-right"].includes(S.key);c==null||c({event:S,direction:C?-1:1})}})})}),H5e=m.forwardRef((e,t)=>{const{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:a,onSlideEnd:s,onStepKeyDown:l,...c}=e,d=m.useRef(null),f=At(t,d),p=m.useRef(void 0),v=!i;function x(y){const b=p.current||d.current.getBoundingClientRect(),w=[0,b.height],_=I7(w,v?[r,n]:[n,r]);return p.current=b,_(y-b.top)}return u.jsx(UH,{scope:e.__scopeSlider,startEdge:v?"bottom":"top",endEdge:v?"top":"bottom",size:"height",direction:v?1:-1,children:u.jsx(WH,{"data-orientation":"vertical",...c,ref:f,style:{...c.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:y=>{const b=x(y.clientY);o==null||o(b)},onSlideMove:y=>{const b=x(y.clientY);a==null||a(b)},onSlideEnd:()=>{p.current=void 0,s==null||s()},onStepKeyDown:y=>{const b=DH[v?"from-bottom":"from-top"].includes(y.key);l==null||l({event:y,direction:b?-1:1})}})})}),WH=m.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:a,onEndKeyDown:s,onStepKeyDown:l,...c}=e,d=x4(U0,n);return u.jsx(xy.span,{...c,ref:t,onKeyDown:Xe(e.onKeyDown,f=>{f.key==="Home"?(a(f),f.preventDefault()):f.key==="End"?(s(f),f.preventDefault()):OH.concat(zH).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Xe(e.onPointerDown,f=>{const p=f.target;p.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(p)?p.focus():r(f)}),onPointerMove:Xe(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&i(f)}),onPointerUp:Xe(e.onPointerUp,f=>{const p=f.target;p.hasPointerCapture(f.pointerId)&&(p.releasePointerCapture(f.pointerId),o(f))})})}),VH="SliderTrack",HH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=x4(VH,n);return u.jsx(xy.span,{"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation,...r,ref:t})});HH.displayName=VH;var j7="SliderRange",ZH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=x4(j7,n),o=BH(j7,n),a=m.useRef(null),s=At(t,a),l=i.values.length,c=i.values.map(p=>YH(p,i.min,i.max)),d=l>1?Math.min(...c):0,f=100-Math.max(...c);return u.jsx(xy.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...r,ref:s,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});ZH.displayName=j7;var T7="SliderThumb",qH=m.forwardRef((e,t)=>{const n=U5e(e.__scopeSlider),[r,i]=m.useState(null),o=At(t,s=>i(s)),a=m.useMemo(()=>r?n().findIndex(s=>s.ref.current===r):-1,[n,r]);return u.jsx(Z5e,{...e,ref:o,index:a})}),Z5e=m.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:i,...o}=e,a=x4(T7,n),s=BH(T7,n),[l,c]=m.useState(null),d=At(t,_=>c(_)),f=l?a.form||!!l.closest("form"):!0,p=z9(l),v=a.values[r],x=v===void 0?0:YH(v,a.min,a.max),y=Y5e(r,a.values.length),b=p==null?void 0:p[s.size],w=b?X5e(b,x,s.direction):0;return m.useEffect(()=>{if(l)return a.thumbs.add(l),()=>{a.thumbs.delete(l)}},[l,a.thumbs]),u.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${x}% + ${w}px)`},children:[u.jsx(C7.ItemSlot,{scope:e.__scopeSlider,children:u.jsx(xy.span,{role:"slider","aria-label":e["aria-label"]||y,"aria-valuemin":a.min,"aria-valuenow":v,"aria-valuemax":a.max,"aria-orientation":a.orientation,"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,tabIndex:a.disabled?void 0:0,...o,ref:d,style:v===void 0?{display:"none"}:e.style,onFocus:Xe(e.onFocus,()=>{a.valueIndexToChangeRef.current=r})})}),f&&u.jsx(GH,{name:i??(a.name?a.name+(a.values.length>1?"[]":""):void 0),form:a.form,value:v},r)]})});qH.displayName=T7;var q5e="RadioBubbleInput",GH=m.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(i,r),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("input",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(xy.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});GH.displayName=q5e;function G5e(e=[],t,n){const r=[...e];return r[n]=t,r.sort((i,o)=>i-o)}function YH(e,t,n){const r=100/(n-t)*(e-t);return gy(r,[0,100])}function Y5e(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function K5e(e,t){if(e.length===1)return 0;const n=e.map(i=>Math.abs(i-t)),r=Math.min(...n);return n.indexOf(r)}function X5e(e,t,n){const r=e/2,i=I7([0,50],[0,r]);return(r-i(t)*n)*n}function J5e(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Q5e(e,t){if(t>0){const n=J5e(e);return Math.min(...n)>=t}return!0}function I7(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function eSe(e){return(String(e).split(".")[1]||"").length}function tSe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var KH=FH,XH=HH,nSe=ZH,JH=qH,rSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],QH=rSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),_4="Switch",[iSe]=Pa(_4),[oSe,aSe]=iSe(_4),eZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:i,defaultChecked:o,required:a,disabled:s,value:l="on",onCheckedChange:c,form:d,...f}=e,[p,v]=m.useState(null),x=At(t,S=>v(S)),y=m.useRef(!1),b=p?d||!!p.closest("form"):!0,[w,_]=Xs({prop:i,defaultProp:o??!1,onChange:c,caller:_4});return u.jsxs(oSe,{scope:n,checked:w,disabled:s,children:[u.jsx(QH.button,{type:"button",role:"switch","aria-checked":w,"aria-required":a,"data-state":iZ(w),"data-disabled":s?"":void 0,disabled:s,value:l,...f,ref:x,onClick:Xe(e.onClick,S=>{_(C=>!C),b&&(y.current=S.isPropagationStopped(),y.current||S.stopPropagation())})}),b&&u.jsx(rZ,{control:p,bubbles:!y.current,name:r,value:l,checked:w,required:a,disabled:s,form:d,style:{transform:"translateX(-100%)"}})]})});eZ.displayName=_4;var tZ="SwitchThumb",nZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,i=aSe(tZ,n);return u.jsx(QH.span,{"data-state":iZ(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t})});nZ.displayName=tZ;var sSe="SwitchBubbleInput",rZ=m.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},o)=>{const a=m.useRef(null),s=At(a,o),l=O9(n),c=z9(t);return m.useEffect(()=>{const d=a.current;if(!d)return;const f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(l!==n&&p){const v=new Event("click",{bubbles:r});p.call(d,n),d.dispatchEvent(v)}},[l,n,r]),u.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});rZ.displayName=sSe;function iZ(e){return e?"checked":"unchecked"}var lSe=eZ,uSe=nZ,cSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],dSe=cSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),oZ="Toggle",E7=m.forwardRef((e,t)=>{const{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[a,s]=Xs({prop:n,onChange:i,defaultProp:r??!1,caller:oZ});return u.jsx(dSe.button,{type:"button","aria-pressed":a,"data-state":a?"on":"off","data-disabled":e.disabled?"":void 0,...o,ref:t,onClick:Xe(e.onClick,()=>{e.disabled||s(!a)})})});E7.displayName=oZ;var N7=E7,fSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],aZ=fSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),If="ToggleGroup",[sZ]=Pa(If,[i4]),lZ=i4(),$7=Pe.forwardRef((e,t)=>{const{type:n,...r}=e;if(n==="single"){const i=r;return u.jsx(hSe,{...i,ref:t})}if(n==="multiple"){const i=r;return u.jsx(pSe,{...i,ref:t})}throw new Error(`Missing prop \`type\` expected on \`${If}\``)});$7.displayName=If;var[uZ,cZ]=sZ(If),hSe=Pe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??"",onChange:i,caller:If});return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"single",value:Pe.useMemo(()=>a?[a]:[],[a]),onItemActivate:s,onItemDeactivate:Pe.useCallback(()=>s(""),[s]),children:u.jsx(dZ,{...o,ref:t})})}),pSe=Pe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??[],onChange:i,caller:If}),l=Pe.useCallback(d=>s((f=[])=>[...f,d]),[s]),c=Pe.useCallback(d=>s((f=[])=>f.filter(p=>p!==d)),[s]);return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"multiple",value:a,onItemActivate:l,onItemDeactivate:c,children:u.jsx(dZ,{...o,ref:t})})});$7.displayName=If;var[mSe,gSe]=sZ(If),dZ=Pe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:o,dir:a,loop:s=!0,...l}=e,c=lZ(n),d=T0(a),f={role:"group",dir:d,...l};return u.jsx(mSe,{scope:n,rovingFocus:i,disabled:r,children:i?u.jsx(NW,{asChild:!0,...c,orientation:o,dir:d,loop:s,children:u.jsx(aZ.div,{...f,ref:t})}):u.jsx(aZ.div,{...f,ref:t})})}),w4="ToggleGroupItem",fZ=Pe.forwardRef((e,t)=>{const n=cZ(w4,e.__scopeToggleGroup),r=gSe(w4,e.__scopeToggleGroup),i=lZ(e.__scopeToggleGroup),o=n.value.includes(e.value),a=r.disabled||e.disabled,s={...e,pressed:o,disabled:a},l=Pe.useRef(null);return r.rovingFocus?u.jsx($W,{asChild:!0,...i,focusable:!a,active:o,ref:l,children:u.jsx(hZ,{...s,ref:t})}):u.jsx(hZ,{...s,ref:t})});fZ.displayName=w4;var hZ=Pe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,value:r,...i}=e,o=cZ(w4,n),a={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s=o.type==="single"?a:void 0;return u.jsx(E7,{...s,...i,ref:t,onPressedChange:l=>{l?o.onItemActivate(r):o.onItemDeactivate(r)}})}),M7=$7,B0=fZ,vSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ySe=vSe.reduce((e,t)=>{const n=vr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),[k4]=Pa("Tooltip",[Sf]),S4=Sf(),pZ="TooltipProvider",bSe=700,R7="tooltip.open",[xSe,L7]=k4(pZ),mZ=e=>{const{__scopeTooltip:t,delayDuration:n=bSe,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:o}=e,a=m.useRef(!0),s=m.useRef(!1),l=m.useRef(0);return m.useEffect(()=>{const c=l.current;return()=>window.clearTimeout(c)},[]),u.jsx(xSe,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(l.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:m.useCallback(c=>{s.current=c},[]),disableHoverableContent:i,children:o})};mZ.displayName=pZ;var _y="Tooltip",[_Se,wy]=k4(_y),gZ=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:o,disableHoverableContent:a,delayDuration:s}=e,l=L7(_y,e.__scopeTooltip),c=S4(t),[d,f]=m.useState(null),p=wo(),v=m.useRef(0),x=a??l.disableHoverableContent,y=s??l.delayDuration,b=m.useRef(!1),[w,_]=Xs({prop:r,defaultProp:i??!1,onChange:E=>{E?(l.onOpen(),document.dispatchEvent(new CustomEvent(R7))):l.onClose(),o==null||o(E)},caller:_y}),S=m.useMemo(()=>w?b.current?"delayed-open":"instant-open":"closed",[w]),C=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,b.current=!1,_(!0)},[_]),j=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,_(!1)},[_]),T=m.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{b.current=!0,_(!0),v.current=0},y)},[y,_]);return m.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),u.jsx(t4,{...c,children:u.jsx(_Se,{scope:t,contentId:p,open:w,stateAttribute:S,trigger:d,onTriggerChange:f,onTriggerEnter:m.useCallback(()=>{l.isOpenDelayedRef.current?T():C()},[l.isOpenDelayedRef,T,C]),onTriggerLeave:m.useCallback(()=>{x?j():(window.clearTimeout(v.current),v.current=0)},[j,x]),onOpen:C,onClose:j,disableHoverableContent:x,children:n})})};gZ.displayName=_y;var P7="TooltipTrigger",vZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=wy(P7,n),o=L7(P7,n),a=S4(n),s=m.useRef(null),l=At(t,s,i.onTriggerChange),c=m.useRef(!1),d=m.useRef(!1),f=m.useCallback(()=>c.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),u.jsx(ly,{asChild:!0,...a,children:u.jsx(ySe.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:l,onPointerMove:Xe(e.onPointerMove,p=>{p.pointerType!=="touch"&&!d.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),d.current=!0)}),onPointerLeave:Xe(e.onPointerLeave,()=>{i.onTriggerLeave(),d.current=!1}),onPointerDown:Xe(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:Xe(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:Xe(e.onBlur,i.onClose),onClick:Xe(e.onClick,i.onClose)})})});vZ.displayName=P7;var O7="TooltipPortal",[wSe,kSe]=k4(O7,{forceMount:void 0}),yZ=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,o=wy(O7,t);return u.jsx(wSe,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(Zh,{asChild:!0,container:i,children:r})})})};yZ.displayName=O7;var W0="TooltipContent",bZ=m.forwardRef((e,t)=>{const n=kSe(W0,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...o}=e,a=wy(W0,e.__scopeTooltip);return u.jsx(Ao,{present:r||a.open,children:a.disableHoverableContent?u.jsx(xZ,{side:i,...o,ref:t}):u.jsx(SSe,{side:i,...o,ref:t})})}),SSe=m.forwardRef((e,t)=>{const n=wy(W0,e.__scopeTooltip),r=L7(W0,e.__scopeTooltip),i=m.useRef(null),o=At(t,i),[a,s]=m.useState(null),{trigger:l,onClose:c}=n,d=i.current,{onPointerInTransitChange:f}=r,p=m.useCallback(()=>{s(null),f(!1)},[f]),v=m.useCallback((x,y)=>{const b=x.currentTarget,w={x:x.clientX,y:x.clientY},_=ISe(w,b.getBoundingClientRect()),S=ESe(w,_),C=NSe(y.getBoundingClientRect()),j=MSe([...S,...C]);s(j),f(!0)},[f]);return m.useEffect(()=>()=>p(),[p]),m.useEffect(()=>{if(l&&d){const x=b=>v(b,d),y=b=>v(b,l);return l.addEventListener("pointerleave",x),d.addEventListener("pointerleave",y),()=>{l.removeEventListener("pointerleave",x),d.removeEventListener("pointerleave",y)}}},[l,d,v,p]),m.useEffect(()=>{if(a){const x=y=>{const b=y.target,w={x:y.clientX,y:y.clientY},_=(l==null?void 0:l.contains(b))||(d==null?void 0:d.contains(b)),S=!$Se(w,a);_?p():S&&(p(),c())};return document.addEventListener("pointermove",x),()=>document.removeEventListener("pointermove",x)}},[l,d,a,c,p]),u.jsx(xZ,{...e,ref:o})}),[CSe,jSe]=k4(_y,{isInside:!1}),TSe=qU("TooltipContent"),xZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:a,...s}=e,l=wy(W0,n),c=S4(n),{onClose:d}=l;return m.useEffect(()=>(document.addEventListener(R7,d),()=>document.removeEventListener(R7,d)),[d]),m.useEffect(()=>{if(l.trigger){const f=p=>{var v;(v=p.target)!=null&&v.contains(l.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[l.trigger,d]),u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:u.jsxs(n4,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(TSe,{children:r}),u.jsx(CSe,{scope:n,isInside:!0,children:u.jsx(KU,{id:l.contentId,role:"tooltip",children:i||r})})]})})});bZ.displayName=W0;var _Z="TooltipArrow",wZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=S4(n);return jSe(_Z,n).isInside?null:u.jsx(r4,{...i,...r,ref:t})});wZ.displayName=_Z;function ISe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,i,o)){case o:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ESe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NSe(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function $Se(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function MSe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),RSe(t)}function RSe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],a=t[t.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const o=n[n.length-1],a=n[n.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var LSe=mZ,PSe=gZ,OSe=vZ,zSe=yZ,DSe=bZ,ASe=wZ,kZ={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var o="",a=0;az7.includes(t))}function Nf({className:e,customProperties:t,...n}){const r=Sy({allowArbitraryValues:!0,className:e,...n}),i=XSe({customProperties:t,...n});return[r,i]}function Sy({allowArbitraryValues:e,value:t,className:n,propValues:r,parseValue:i=o=>o}){const o=[];if(t){if(typeof t=="string"&&r.includes(t))return $Z(n,t,i);if(ky(t)){const a=t;for(const s in a){if(!NZ(a,s)||!z7.includes(s))continue;const l=a[s];if(l!==void 0){if(r.includes(l)){const c=$Z(n,l,i),d=s==="initial"?c:`${s}:${c}`;o.push(d)}else if(e){const c=s==="initial"?n:`${s}:${n}`;o.push(c)}}}return o.join(" ")}if(e)return n}}function $Z(e,t,n){const r=e?"-":"",i=n(t),o=i==null?void 0:i.startsWith("-"),a=o?"-":"",s=o?i==null?void 0:i.substring(1):i;return`${a}${e}${r}${s}`}function XSe({customProperties:e,value:t,propValues:n,parseValue:r=i=>i}){let i={};if(!(!t||typeof t=="string"&&n.includes(t))){if(typeof t=="string"&&(i=Object.fromEntries(e.map(o=>[o,t]))),ky(t)){const o=t;for(const a in o){if(!NZ(o,a)||!z7.includes(a))continue;const s=o[a];if(!n.includes(s))for(const l of e)i={[a==="initial"?l:`${l}-${a}`]:s,...i}}}for(const o in i){const a=i[o];a!==void 0&&(i[o]=r(a))}return i}}function Cy(...e){let t={};for(const n of e)n&&(t={...t,...n});return Object.keys(t).length?t:void 0}function JSe(...e){return Object.assign({},...e)}function er(e,...t){let n,r;const i={...e},o=JSe(...t);for(const a in o){let s=i[a];const l=o[a];if(l.default!==void 0&&s===void 0&&(s=l.default),l.type==="enum"&&![l.default,...l.values].includes(s)&&!ky(s)&&(s=l.default),i[a]=s,"className"in l&&l.className){delete i[a];const c="responsive"in l;if(!s||ky(s)&&!c)continue;if(ky(s)&&(l.default!==void 0&&s.initial===void 0&&(s.initial=l.default),l.type==="enum"&&([l.default,...l.values].includes(s.initial)||(s.initial=l.default))),l.type==="enum"){const d=Sy({allowArbitraryValues:!1,value:s,className:l.className,propValues:l.values,parseValue:l.parseValue});n=gt(n,d);continue}if(l.type==="string"||l.type==="enum | string"){const d=l.type==="string"?[]:l.values,[f,p]=Nf({className:l.className,customProperties:l.customProperties,propValues:d,parseValue:l.parseValue,value:s});r=Cy(r,p),n=gt(n,f);continue}if(l.type==="boolean"&&s){n=gt(n,l.className);continue}}}return i.className=gt(n,e.className),i.style=Cy(r,e.style),i}const Qh=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],So={m:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:Qh,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}},MZ=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="h1",color:a,...s}=er(e,KSe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Heading",r)},i?n:m.createElement(o,null,n))});MZ.displayName="Heading";const QSe=["span","div","label","p"],eCe=["1","2","3","4","5","6","7","8","9"],tCe={as:{type:"enum",values:QSe,default:"span"},...el,size:{type:"enum",className:"rt-r-size",values:eCe,responsive:!0},...EZ,...jZ,...CZ,...IZ,...TZ,...Oa,...Ef},Z=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="span",color:a,...s}=er(e,tCe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Text",r)},i?n:m.createElement(o,null,n))});Z.displayName="Text";function nCe(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}const rCe=["none","small","medium","large","full"],ep={radius:{type:"enum",values:rCe,default:void 0}},fs={hasBackground:{default:!0},appearance:{default:"inherit"},accentColor:{default:"indigo"},grayColor:{default:"auto"},panelBackground:{default:"translucent"},radius:{default:"medium"},scaling:{default:"100%"}},V0=()=>{},j4=m.createContext(void 0);function RZ(){const e=m.useContext(j4);if(e===void 0)throw new Error("`useThemeContext` must be used within a `Theme`");return e}const $f=m.forwardRef((e,t)=>m.useContext(j4)===void 0?m.createElement(LSe,{delayDuration:200},m.createElement(K2e,{dir:"ltr"},m.createElement(LZ,{...e,ref:t}))):m.createElement(D7,{...e,ref:t}));$f.displayName="Theme";const LZ=m.forwardRef((e,t)=>{const{appearance:n=fs.appearance.default,accentColor:r=fs.accentColor.default,grayColor:i=fs.grayColor.default,panelBackground:o=fs.panelBackground.default,radius:a=fs.radius.default,scaling:s=fs.scaling.default,hasBackground:l=fs.hasBackground.default,...c}=e,[d,f]=m.useState(n);m.useEffect(()=>f(n),[n]);const[p,v]=m.useState(r);m.useEffect(()=>v(r),[r]);const[x,y]=m.useState(i);m.useEffect(()=>y(i),[i]);const[b,w]=m.useState(o);m.useEffect(()=>w(o),[o]);const[_,S]=m.useState(a);m.useEffect(()=>S(a),[a]);const[C,j]=m.useState(s);return m.useEffect(()=>j(s),[s]),m.createElement(D7,{...c,ref:t,isRoot:!0,hasBackground:l,appearance:d,accentColor:p,grayColor:x,panelBackground:b,radius:_,scaling:C,onAppearanceChange:f,onAccentColorChange:v,onGrayColorChange:y,onPanelBackgroundChange:w,onRadiusChange:S,onScalingChange:j})});LZ.displayName="ThemeRoot";const D7=m.forwardRef((e,t)=>{const n=m.useContext(j4),{asChild:r,isRoot:i,hasBackground:o,appearance:a=(n==null?void 0:n.appearance)??fs.appearance.default,accentColor:s=(n==null?void 0:n.accentColor)??fs.accentColor.default,grayColor:l=(n==null?void 0:n.resolvedGrayColor)??fs.grayColor.default,panelBackground:c=(n==null?void 0:n.panelBackground)??fs.panelBackground.default,radius:d=(n==null?void 0:n.radius)??fs.radius.default,scaling:f=(n==null?void 0:n.scaling)??fs.scaling.default,onAppearanceChange:p=V0,onAccentColorChange:v=V0,onGrayColorChange:x=V0,onPanelBackgroundChange:y=V0,onRadiusChange:b=V0,onScalingChange:w=V0,..._}=e,S=r?xf:"div",C=l==="auto"?nCe(s):l,j=e.appearance==="light"||e.appearance==="dark",T=o===void 0?i||j:o;return m.createElement(j4.Provider,{value:m.useMemo(()=>({appearance:a,accentColor:s,grayColor:l,resolvedGrayColor:C,panelBackground:c,radius:d,scaling:f,onAppearanceChange:p,onAccentColorChange:v,onGrayColorChange:x,onPanelBackgroundChange:y,onRadiusChange:b,onScalingChange:w}),[a,s,l,C,c,d,f,p,v,x,y,b,w])},m.createElement(S,{"data-is-root-theme":i?"true":"false","data-accent-color":s,"data-gray-color":C,"data-has-background":T?"true":"false","data-panel-background":c,"data-radius":d,"data-scaling":f,ref:t,..._,className:gt("radix-themes",{light:a==="light",dark:a==="dark"},_.className)}))});D7.displayName="ThemeImpl";const H0=e=>{if(!m.isValidElement(e))throw Error(`Expected a single React Element child, but got: ${m.Children.toArray(e).map(t=>typeof t=="object"&&"type"in t&&typeof t.type=="string"?t.type:typeof t).join(", ")}`);return e};function PZ(e,t){const{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;const i=m.Children.only(r);return m.cloneElement(i,{children:typeof t=="function"?t(i.props.children):t})}const A7=xf,iCe=["div","span"],oCe=["none","inline","inline-block","block","contents"],aCe={as:{type:"enum",values:iCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:oCe,responsive:!0}},tp=["0","1","2","3","4","5","6","7","8","9"],jy={p:{type:"enum | string",className:"rt-r-p",customProperties:["--p"],values:tp,responsive:!0},px:{type:"enum | string",className:"rt-r-px",customProperties:["--pl","--pr"],values:tp,responsive:!0},py:{type:"enum | string",className:"rt-r-py",customProperties:["--pt","--pb"],values:tp,responsive:!0},pt:{type:"enum | string",className:"rt-r-pt",customProperties:["--pt"],values:tp,responsive:!0},pr:{type:"enum | string",className:"rt-r-pr",customProperties:["--pr"],values:tp,responsive:!0},pb:{type:"enum | string",className:"rt-r-pb",customProperties:["--pb"],values:tp,responsive:!0},pl:{type:"enum | string",className:"rt-r-pl",customProperties:["--pl"],values:tp,responsive:!0}},F7=["visible","hidden","clip","scroll","auto"],sCe=["static","relative","absolute","fixed","sticky"],Ty=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],lCe=["0","1"],uCe=["0","1"],T4={...jy,...tl,...C4,position:{type:"enum",className:"rt-r-position",values:sCe,responsive:!0},inset:{type:"enum | string",className:"rt-r-inset",customProperties:["--inset"],values:Ty,responsive:!0},top:{type:"enum | string",className:"rt-r-top",customProperties:["--top"],values:Ty,responsive:!0},right:{type:"enum | string",className:"rt-r-right",customProperties:["--right"],values:Ty,responsive:!0},bottom:{type:"enum | string",className:"rt-r-bottom",customProperties:["--bottom"],values:Ty,responsive:!0},left:{type:"enum | string",className:"rt-r-left",customProperties:["--left"],values:Ty,responsive:!0},overflow:{type:"enum",className:"rt-r-overflow",values:F7,responsive:!0},overflowX:{type:"enum",className:"rt-r-ox",values:F7,responsive:!0},overflowY:{type:"enum",className:"rt-r-oy",values:F7,responsive:!0},flexBasis:{type:"string",className:"rt-r-fb",customProperties:["--flex-basis"],responsive:!0},flexShrink:{type:"enum | string",className:"rt-r-fs",customProperties:["--flex-shrink"],values:lCe,responsive:!0},flexGrow:{type:"enum | string",className:"rt-r-fg",customProperties:["--flex-grow"],values:uCe,responsive:!0},gridArea:{type:"string",className:"rt-r-ga",customProperties:["--grid-area"],responsive:!0},gridColumn:{type:"string",className:"rt-r-gc",customProperties:["--grid-column"],responsive:!0},gridColumnStart:{type:"string",className:"rt-r-gcs",customProperties:["--grid-column-start"],responsive:!0},gridColumnEnd:{type:"string",className:"rt-r-gce",customProperties:["--grid-column-end"],responsive:!0},gridRow:{type:"string",className:"rt-r-gr",customProperties:["--grid-row"],responsive:!0},gridRowStart:{type:"string",className:"rt-r-grs",customProperties:["--grid-row-start"],responsive:!0},gridRowEnd:{type:"string",className:"rt-r-gre",customProperties:["--grid-row-end"],responsive:!0}},Mt=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,aCe,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Box",n)})});Mt.displayName="Box";const cCe=["1","2","3","4"],dCe=["classic","solid","soft","surface","outline","ghost"],OZ={...el,size:{type:"enum",className:"rt-r-size",values:cCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:dCe,default:"solid"},...WSe,...Ef,...ep,loading:{type:"boolean",className:"rt-loading",default:!1}},U7=["0","1","2","3","4","5","6","7","8","9"],zZ={gap:{type:"enum | string",className:"rt-r-gap",customProperties:["--gap"],values:U7,responsive:!0},gapX:{type:"enum | string",className:"rt-r-cg",customProperties:["--column-gap"],values:U7,responsive:!0},gapY:{type:"enum | string",className:"rt-r-rg",customProperties:["--row-gap"],values:U7,responsive:!0}},fCe=["div","span"],hCe=["none","inline-flex","flex"],pCe=["row","column","row-reverse","column-reverse"],mCe=["start","center","end","baseline","stretch"],gCe=["start","center","end","between"],vCe=["nowrap","wrap","wrap-reverse"],DZ={as:{type:"enum",values:fCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:hCe,responsive:!0},direction:{type:"enum",className:"rt-r-fd",values:pCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:mCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:gCe,parseValue:yCe,responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:vCe,responsive:!0},...zZ};function yCe(e){return e==="between"?"space-between":e}const W=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,DZ,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Flex",n)})});W.displayName="Flex";const bCe=["1","2","3"],xCe={size:{type:"enum",className:"rt-r-size",values:bCe,default:"2",responsive:!0},loading:{type:"boolean",default:!0}},Iy=m.forwardRef((e,t)=>{const{className:n,children:r,loading:i,...o}=er(e,xCe,So);if(!i)return r;const a=m.createElement("span",{...o,ref:t,className:gt("rt-Spinner",n)},m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}));return r===void 0?a:m.createElement(W,{asChild:!0,position:"relative",align:"center",justify:"center"},m.createElement("span",null,m.createElement("span",{"aria-hidden":!0,style:{display:"contents",visibility:"hidden"},inert:void 0},r),m.createElement(W,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,a))))});Iy.displayName="Spinner";const _Ce=KU;function wCe(e,t){if(e!==void 0)return typeof e=="string"?t(e):Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]))}function kCe(e){switch(e){case"1":return"1";case"2":case"3":return"2";case"4":return"3"}}const B7=m.forwardRef((e,t)=>{const{size:n=OZ.size.default}=e,{className:r,children:i,asChild:o,color:a,radius:s,disabled:l=e.loading,...c}=er(e,OZ,So),d=o?xf:"button";return m.createElement(d,{"data-disabled":l||void 0,"data-accent-color":a,"data-radius":s,...c,ref:t,className:gt("rt-reset","rt-BaseButton",r),disabled:l},e.loading?m.createElement(m.Fragment,null,m.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},i),m.createElement(_Ce,null,i),m.createElement(W,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,m.createElement(Iy,{size:wCe(n,kCe)})))):i)});B7.displayName="BaseButton";const hs=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-Button",e)}));hs.displayName="Button";const SCe=["1","2","3","4","5"],CCe=["surface","classic","ghost"],jCe={...el,size:{type:"enum",className:"rt-r-size",values:SCe,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:CCe,default:"surface"}},Ey=m.forwardRef((e,t)=>{const{asChild:n,className:r,...i}=er(e,jCe,So),o=n?xf:"div";return m.createElement(o,{ref:t,...i,className:gt("rt-reset","rt-BaseCard","rt-Card",r)})});Ey.displayName="Card";const TCe=["div","span"],ICe=["none","inline-grid","grid"],ECe=["1","2","3","4","5","6","7","8","9"],NCe=["1","2","3","4","5","6","7","8","9"],$Ce=["row","column","dense","row-dense","column-dense"],MCe=["start","center","end","baseline","stretch"],RCe=["start","center","end","between"],AZ={as:{type:"enum",values:TCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:ICe,responsive:!0},areas:{type:"string",className:"rt-r-gta",customProperties:["--grid-template-areas"],responsive:!0},columns:{type:"enum | string",className:"rt-r-gtc",customProperties:["--grid-template-columns"],values:ECe,parseValue:FZ,responsive:!0},rows:{type:"enum | string",className:"rt-r-gtr",customProperties:["--grid-template-rows"],values:NCe,parseValue:FZ,responsive:!0},flow:{type:"enum",className:"rt-r-gaf",values:$Ce,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:MCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:RCe,parseValue:LCe,responsive:!0},...zZ};function FZ(e){return AZ.columns.values.includes(e)?e:e!=null&&e.match(/^\d+$/)?`repeat(${e}, minmax(0, 1fr))`:e}function LCe(e){return e==="between"?"space-between":e}const qr=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,AZ,T4,So);return m.createElement(r?A7:i,{...o,ref:t,className:gt("rt-Grid",n)})});qr.displayName="Grid";const PCe=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));PCe.displayName="ThickDividerHorizontalIcon";const I4=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));I4.displayName="ThickCheckIcon";const W7=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));W7.displayName="ChevronDownIcon";const UZ=Pe.forwardRef((e,t)=>Pe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Pe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));UZ.displayName="ThickChevronRightIcon";const OCe=["1","2","3","4"],zCe=["none","initial"],DCe=["left","center","right"],ACe={...el,size:{type:"enum",className:"rt-r-size",values:OCe,default:"4",responsive:!0},display:{type:"enum",className:"rt-r-display",values:zCe,parseValue:FCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:DCe,parseValue:UCe,responsive:!0}};function FCe(e){return e==="initial"?"flex":e}function UCe(e){return e==="left"?"start":e==="right"?"end":e}const BZ=m.forwardRef(({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o,...a},s)=>{const{asChild:l,children:c,className:d,...f}=er(a,ACe,T4,So),{className:p,style:v}=er({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o},tl,C4),x=l?xf:"div";return m.createElement(x,{...f,ref:s,className:gt("rt-Container",d)},PZ({asChild:l,children:c},y=>m.createElement("div",{className:gt("rt-ContainerInner",p),style:v},y)))});BZ.displayName="Container";const BCe=["1","2","3"],Ny={...el,size:{values:BCe,default:"1"},...ep,scrollbars:{default:"both"}};function WCe(e){const{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,...l}=e;return{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,rest:l}}const np=So.m.values;function VCe(e){const[t,n]=Nf({className:"rt-r-m",customProperties:["--margin"],propValues:np,value:e.m}),[r,i]=Nf({className:"rt-r-mx",customProperties:["--margin-left","--margin-right"],propValues:np,value:e.mx}),[o,a]=Nf({className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"],propValues:np,value:e.my}),[s,l]=Nf({className:"rt-r-mt",customProperties:["--margin-top"],propValues:np,value:e.mt}),[c,d]=Nf({className:"rt-r-mr",customProperties:["--margin-right"],propValues:np,value:e.mr}),[f,p]=Nf({className:"rt-r-mb",customProperties:["--margin-bottom"],propValues:np,value:e.mb}),[v,x]=Nf({className:"rt-r-ml",customProperties:["--margin-left"],propValues:np,value:e.ml});return[gt(t,r,o,s,c,f,v),Cy(n,i,a,l,d,p,x)]}const E4=m.forwardRef((e,t)=>{const{rest:n,...r}=WCe(e),[i,o]=VCe(r),{asChild:a,children:s,className:l,style:c,type:d,scrollHideDelay:f=d!=="scroll"?0:void 0,dir:p,size:v=Ny.size.default,radius:x=Ny.radius.default,scrollbars:y=Ny.scrollbars.default,...b}=n;return m.createElement(sH,{type:d,scrollHideDelay:f,className:gt("rt-ScrollAreaRoot",i,l),style:Cy(o,c),asChild:a},PZ({asChild:a,children:s},w=>m.createElement(m.Fragment,null,m.createElement(lH,{...b,ref:t,className:"rt-ScrollAreaViewport"},w),m.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),y!=="vertical"?m.createElement(v7,{"data-radius":x,orientation:"horizontal",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(y7,{className:"rt-ScrollAreaThumb"})):null,y!=="horizontal"?m.createElement(v7,{"data-radius":x,orientation:"vertical",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(y7,{className:"rt-ScrollAreaThumb"})):null,y==="both"?m.createElement(r5e,{className:"rt-ScrollAreaCorner"}):null)))});E4.displayName="ScrollArea";const HCe=["1","2"],ZCe=["solid","soft"],$y={size:{type:"enum",className:"rt-r-size",values:HCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:ZCe,default:"solid"},...Oa,...Ef},qCe={...el,...Oa},GCe={...Oa},YCe={...Oa},WZ=e=>m.createElement(AB,{...e,modal:!0});WZ.displayName="Dialog.Root";const VZ=m.forwardRef(({children:e,...t},n)=>m.createElement(p4e,{...t,ref:n,asChild:!0},H0(e)));VZ.displayName="Dialog.Trigger";const HZ=m.forwardRef(({align:e,...t},n)=>{const{align:r,...i}=BSe,{className:o}=er({align:e},{align:r}),{className:a,forceMount:s,container:l,...c}=er(t,i);return m.createElement(FB,{container:l,forceMount:s},m.createElement($f,{asChild:!0},m.createElement(UB,{className:"rt-BaseDialogOverlay rt-DialogOverlay"},m.createElement("div",{className:"rt-BaseDialogScroll rt-DialogScroll"},m.createElement("div",{className:`rt-BaseDialogScrollPadding rt-DialogScrollPadding ${o}`},m.createElement(BB,{...c,ref:n,className:gt("rt-BaseDialogContent","rt-DialogContent",a)}))))))});HZ.displayName="Dialog.Content";const ZZ=m.forwardRef((e,t)=>m.createElement(m4e,{asChild:!0},m.createElement(MZ,{size:"5",mb:"3",trim:"start",...e,asChild:!1,ref:t})));ZZ.displayName="Dialog.Title";const KCe=m.forwardRef((e,t)=>m.createElement(g4e,{asChild:!0},m.createElement(Z,{as:"p",size:"3",...e,asChild:!1,ref:t})));KCe.displayName="Dialog.Description";const qZ=m.forwardRef(({children:e,...t},n)=>m.createElement(v4e,{...t,ref:n,asChild:!0},H0(e)));qZ.displayName="Dialog.Close";const GZ=e=>m.createElement(bV,{...e});GZ.displayName="DropdownMenu.Root";const YZ=m.forwardRef(({children:e,...t},n)=>m.createElement(xV,{...t,ref:n,asChild:!0},H0(e)));YZ.displayName="DropdownMenu.Trigger";const KZ=m.createContext({}),XZ=m.forwardRef((e,t)=>{const n=RZ(),{size:r=$y.size.default,variant:i=$y.variant.default,highContrast:o=$y.highContrast.default}=e,{className:a,children:s,color:l,container:c,forceMount:d,...f}=er(e,$y),p=l||n.accentColor;return m.createElement(s7,{container:c,forceMount:d},m.createElement($f,{asChild:!0},m.createElement(_V,{"data-accent-color":p,align:"start",sideOffset:4,collisionPadding:10,...f,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},m.createElement(KZ.Provider,{value:m.useMemo(()=>({size:r,variant:i,color:p,highContrast:o}),[r,i,p,o])},s))))))});XZ.displayName="DropdownMenu.Content";const XCe=m.forwardRef(({className:e,...t},n)=>m.createElement(m6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuLabel","rt-DropdownMenuLabel",e)}));XCe.displayName="DropdownMenu.Label";const JZ=m.forwardRef((e,t)=>{const{className:n,children:r,color:i=qCe.color.default,shortcut:o,...a}=e;return m.createElement(wV,{"data-accent-color":i,...a,ref:t,className:gt("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",n)},m.createElement(M2e,null,r),o&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},o))});JZ.displayName="DropdownMenu.Item";const JCe=m.forwardRef(({className:e,...t},n)=>m.createElement(p6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuGroup","rt-DropdownMenuGroup",e)}));JCe.displayName="DropdownMenu.Group";const QCe=m.forwardRef(({className:e,...t},n)=>m.createElement(v6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",e)}));QCe.displayName="DropdownMenu.RadioGroup";const eje=m.forwardRef((e,t)=>{const{children:n,className:r,color:i=YCe.color.default,...o}=e;return m.createElement(y6e,{...o,asChild:!1,ref:t,"data-accent-color":i,className:gt("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});eje.displayName="DropdownMenu.RadioItem";const tje=m.forwardRef((e,t)=>{const{children:n,className:r,shortcut:i,color:o=GCe.color.default,...a}=e;return m.createElement(g6e,{...a,asChild:!1,ref:t,"data-accent-color":o,className:gt("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),i&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},i))});tje.displayName="DropdownMenu.CheckboxItem";const nje=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(x6e,{...i,asChild:!1,ref:t,className:gt("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",n)},r,m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},m.createElement(UZ,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});nje.displayName="DropdownMenu.SubTrigger";const rje=m.forwardRef((e,t)=>{const{size:n,variant:r,color:i,highContrast:o}=m.useContext(KZ),{className:a,children:s,container:l,forceMount:c,...d}=er({size:n,variant:r,color:i,highContrast:o,...e},$y);return m.createElement(s7,{container:l,forceMount:c},m.createElement($f,{asChild:!0},m.createElement(_6e,{"data-accent-color":i,alignOffset:-Number(n)*4,sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},s)))))});rje.displayName="DropdownMenu.SubContent";const ije=m.forwardRef(({className:e,...t},n)=>m.createElement(b6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",e)}));ije.displayName="DropdownMenu.Separator";const nl=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-IconButton",e)}));nl.displayName="IconButton";const oje=["1","2","3","4"],aje={...el,size:{type:"enum",className:"rt-r-size",values:oje,default:"2",responsive:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"480px"},...C4},QZ=e=>m.createElement(u7,{...e});QZ.displayName="Popover.Root";const eq=m.forwardRef(({children:e,...t},n)=>m.createElement(AV,{...t,ref:n,asChild:!0},H0(e)));eq.displayName="Popover.Trigger";const tq=m.forwardRef((e,t)=>{const{className:n,forceMount:r,container:i,...o}=er(e,aje);return m.createElement(c7,{container:i,forceMount:r},m.createElement($f,{asChild:!0},m.createElement(d7,{align:"start",sideOffset:8,collisionPadding:10,...o,ref:t,className:gt("rt-PopperContent","rt-PopoverContent",n)})))});tq.displayName="Popover.Content";const sje=m.forwardRef(({children:e,...t},n)=>m.createElement(P6e,{...t,ref:n,asChild:!0},H0(e)));sje.displayName="Popover.Close";const lje=m.forwardRef(({children:e,...t},n)=>m.createElement(DV,{...t,ref:n}));lje.displayName="Popover.Anchor";const uje=["1","2","3"],cje=["classic","surface","soft"],dje={size:{type:"enum",className:"rt-r-size",values:uje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:cje,default:"surface"},...Oa,...Ef,...ep,duration:{type:"string"}},N4=m.forwardRef((e,t)=>{const{className:n,style:r,color:i,radius:o,duration:a,...s}=er(e,dje,So);return m.createElement(W6e,{"data-accent-color":i,"data-radius":o,ref:t,className:gt("rt-ProgressRoot",n),style:Cy({"--progress-duration":"value"in s?void 0:a,"--progress-value":"value"in s?s.value:void 0,"--progress-max":"max"in s?s.max:void 0},r),...s,asChild:!1},m.createElement(V6e,{className:"rt-ProgressIndicator"}))});N4.displayName="Progress";const Z0=m.forwardRef(({className:e,children:t,...n},r)=>m.createElement(xf,{...n,ref:r,className:gt("rt-reset",e)},H0(t)));Z0.displayName="Reset";const fje=["1","2","3"],V7={size:{type:"enum",className:"rt-r-size",values:fje,default:"2",responsive:!0}},hje=["classic","surface","soft","ghost"],pje={variant:{type:"enum",className:"rt-variant",values:hje,default:"surface"},...Oa,...ep,placeholder:{type:"string"}},mje=["solid","soft"],gje={variant:{type:"enum",className:"rt-variant",values:mje,default:"solid"},...Oa,...Ef},H7=m.createContext({}),Z7=e=>{const{children:t,size:n=V7.size.default,...r}=e;return m.createElement(T5e,{...r},m.createElement(H7.Provider,{value:m.useMemo(()=>({size:n}),[n])},t))};Z7.displayName="Select.Root";const q7=m.forwardRef((e,t)=>{const n=m.useContext(H7),{children:r,className:i,color:o,radius:a,placeholder:s,...l}=er({size:n==null?void 0:n.size,...e},{size:V7.size},pje,So);return m.createElement(I5e,{asChild:!0},m.createElement("button",{"data-accent-color":o,"data-radius":a,...l,ref:t,className:gt("rt-reset","rt-SelectTrigger",i)},m.createElement("span",{className:"rt-SelectTriggerInner"},m.createElement(E5e,{placeholder:s},r)),m.createElement(N5e,{asChild:!0},m.createElement(W7,{className:"rt-SelectIcon"}))))});q7.displayName="Select.Trigger";const G7=m.forwardRef((e,t)=>{const n=m.useContext(H7),{className:r,children:i,color:o,container:a,...s}=er({size:n==null?void 0:n.size,...e},{size:V7.size},gje),l=RZ(),c=o||l.accentColor;return m.createElement($5e,{container:a},m.createElement($f,{asChild:!0},m.createElement(M5e,{"data-accent-color":c,sideOffset:4,...s,asChild:!1,ref:t,className:gt({"rt-PopperContent":s.position==="popper"},"rt-SelectContent",r)},m.createElement(sH,{type:"auto",className:"rt-ScrollAreaRoot"},m.createElement(R5e,{asChild:!0,className:"rt-SelectViewport"},m.createElement(lH,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),m.createElement(v7,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},m.createElement(y7,{className:"rt-ScrollAreaThumb"}))))))});G7.displayName="Select.Content";const My=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(O5e,{...i,asChild:!1,ref:t,className:gt("rt-SelectItem",n)},m.createElement(D5e,{className:"rt-SelectItemIndicator"},m.createElement(I4,{className:"rt-SelectItemIndicatorIcon"})),m.createElement(z5e,null,r))});My.displayName="Select.Item";const Y7=m.forwardRef(({className:e,...t},n)=>m.createElement(L5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectGroup",e)}));Y7.displayName="Select.Group";const vje=m.forwardRef(({className:e,...t},n)=>m.createElement(P5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectLabel",e)}));vje.displayName="Select.Label";const yje=m.forwardRef(({className:e,...t},n)=>m.createElement(A5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectSeparator",e)}));yje.displayName="Select.Separator";const bje=["horizontal","vertical"],xje=["1","2","3","4"],_je={orientation:{type:"enum",className:"rt-r-orientation",values:bje,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:xje,default:"1",responsive:!0},color:{...Oa.color,default:"gray"},decorative:{type:"boolean",default:!0}},ps=m.forwardRef((e,t)=>{const{className:n,color:r,decorative:i,...o}=er(e,_je,So);return m.createElement("span",{"data-accent-color":r,role:i?void 0:"separator",...o,ref:t,className:gt("rt-Separator",n)})});ps.displayName="Separator";const wje=["1","2","3"],kje=["classic","surface","soft"],Sje={size:{type:"enum",className:"rt-r-size",values:wje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:kje,default:"surface"},...Oa,...Ef,...ep},nq=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,tabIndex:o,...a}=er(e,Sje,So);return m.createElement(KH,{"data-accent-color":r,"data-radius":i,ref:t,...a,asChild:!1,className:gt("rt-SliderRoot",n)},m.createElement(XH,{className:"rt-SliderTrack"},m.createElement(nSe,{className:gt("rt-SliderRange",{"rt-high-contrast":e.highContrast}),"data-inverted":a.inverted?"":void 0})),(a.value??a.defaultValue??[]).map((s,l)=>m.createElement(JH,{key:l,className:"rt-SliderThumb",...o!==void 0?{tabIndex:o}:void 0})))});nq.displayName="Slider";const Cje=["1","2","3"],jje=["classic","surface","soft"],Tje={size:{type:"enum",className:"rt-r-size",values:Cje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:jje,default:"surface"},...Oa,...Ef,...ep},K7=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,...o}=er(e,Tje,So);return m.createElement(lSe,{"data-accent-color":r,"data-radius":i,...o,asChild:!1,ref:t,className:gt("rt-reset","rt-SwitchRoot",n)},m.createElement(uSe,{className:gt("rt-SwitchThumb",{"rt-high-contrast":e.highContrast})}))});K7.displayName="Switch";const Ije=["1","2","3"],Eje=["surface","ghost"],Nje=["auto","fixed"],X7={size:{type:"enum",className:"rt-r-size",values:Ije,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:Eje,default:"ghost"},layout:{type:"enum",className:"rt-r-tl",values:Nje,responsive:!0}},$je=["start","center","end","baseline"],Mje={align:{type:"enum",className:"rt-r-va",values:$je,parseValue:Rje,responsive:!0}};function Rje(e){return{baseline:"baseline",start:"top",center:"middle",end:"bottom"}[e]}const Lje=["start","center","end"],J7={justify:{type:"enum",className:"rt-r-ta",values:Lje,parseValue:Pje,responsive:!0},...tl,...jy};function Pje(e){return{start:"left",center:"center",end:"right"}[e]}const q0=m.forwardRef((e,t)=>{const{layout:n,...r}=X7,{className:i,children:o,layout:a,...s}=er(e,r,So),l=Sy({value:a,className:X7.layout.className,propValues:X7.layout.values});return m.createElement("div",{ref:t,className:gt("rt-TableRoot",i),...s},m.createElement(E4,null,m.createElement("table",{className:gt("rt-TableRootTable",l)},o)))});q0.displayName="Table.Root";const rp=m.forwardRef(({className:e,...t},n)=>m.createElement("thead",{...t,ref:n,className:gt("rt-TableHeader",e)}));rp.displayName="Table.Header";const G0=m.forwardRef(({className:e,...t},n)=>m.createElement("tbody",{...t,ref:n,className:gt("rt-TableBody",e)}));G0.displayName="Table.Body";const la=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,Mje);return m.createElement("tr",{...r,ref:t,className:gt("rt-TableRow",n)})});la.displayName="Table.Row";const ni=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("td",{className:gt("rt-TableCell",n),ref:t,...r})});ni.displayName="Table.Cell";const Wi=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableColumnHeaderCell",n),scope:"col",ref:t,...r})});Wi.displayName="Table.ColumnHeaderCell";const $4=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,J7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableRowHeaderCell",n),scope:"row",ref:t,...r})});$4.displayName="Table.RowHeaderCell";const Oje=["1","2","3"],zje=["classic","surface","soft"],Dje={size:{type:"enum",className:"rt-r-size",values:Oje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:zje,default:"surface"},...Oa,...ep},Aje=["left","right"],Fje={side:{type:"enum",values:Aje},...Oa,gap:DZ.gap,px:jy.px,pl:jy.pl,pr:jy.pr},Q7=m.forwardRef((e,t)=>{const n=m.useRef(null),{children:r,className:i,color:o,radius:a,style:s,...l}=er(e,Dje,So);return m.createElement("div",{"data-accent-color":o,"data-radius":a,style:s,className:gt("rt-TextFieldRoot",i),onPointerDown:c=>{const d=c.target;if(d.closest("input, button, a"))return;const f=n.current;if(!f)return;const p=d.closest(` + .rt-TextFieldSlot[data-side='right'], + .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left']) + `)?f.value.length:0;requestAnimationFrame(()=>{try{f.setSelectionRange(p,p)}catch{}f.focus()})}},m.createElement("input",{spellCheck:"false",...l,ref:zl(n,t),className:"rt-reset rt-TextFieldInput"}),r)});Q7.displayName="TextField.Root";const M4=m.forwardRef((e,t)=>{const{className:n,color:r,side:i,...o}=er(e,Fje);return m.createElement("div",{"data-accent-color":r,"data-side":i,...o,ref:t,className:gt("rt-TextFieldSlot",n)})});M4.displayName="TextField.Slot";const Uje={content:{type:"ReactNode",required:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"360px"}},ci=m.forwardRef((e,t)=>{const{children:n,className:r,open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l,content:c,container:d,forceMount:f,...p}=er(e,Uje),v={open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l};return m.createElement(PSe,{...v},m.createElement(OSe,{asChild:!0},n),m.createElement(zSe,{container:d,forceMount:f},m.createElement($f,{asChild:!0},m.createElement(DSe,{sideOffset:4,collisionPadding:10,...p,asChild:!1,ref:t,className:gt("rt-TooltipContent",r)},m.createElement(Z,{as:"p",className:"rt-TooltipText",size:"1"},c),m.createElement(ASe,{className:"rt-TooltipArrow"})))))});ci.displayName="Tooltip";const eT=new WeakMap,Bje=new WeakMap,R4={current:[]};let tT=!1,Ry=0;const Ly=new Set,L4=new Map;function rq(e){for(const t of e){if(R4.current.includes(t))continue;R4.current.push(t),t.recompute();const n=Bje.get(t);if(n)for(const r of n){const i=eT.get(r);i!=null&&i.length&&rq(i)}}}function Wje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function Vje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function iq(e){if(Ry>0&&!L4.has(e)&&L4.set(e,e.prevState),Ly.add(e),!(Ry>0)&&!tT)try{for(tT=!0;Ly.size>0;){const t=Array.from(Ly);Ly.clear();for(const n of t){const r=L4.get(n)??n.prevState;n.prevState=r,Wje(n)}for(const n of t){const r=eT.get(n);r&&(R4.current.push(n),rq(r))}for(const n of t){const r=eT.get(n);if(r)for(const i of r)Vje(i)}}}finally{tT=!1,R4.current=[],L4.clear()}}function Py(e){Ry++;try{e()}finally{if(Ry--,Ry===0){const t=Ly.values().next().value;t&&iq(t)}}}function Hje(e){return typeof e=="function"}class Zje{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var i,o;this.listeners.add(r);const a=(o=(i=this.options)==null?void 0:i.onSubscribe)==null?void 0:o.call(i,r,this);return()=>{this.listeners.delete(r),a==null||a()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,i;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):Hje(t)?this.state=t(this.prevState):this.state=t,(i=(r=this.options)==null?void 0:r.onUpdate)==null||i.call(r),iq(this)}}const Mf="__TSR_index",oq="popstate",aq="beforeunload";function qje(e){let t=e.getLocation();const n=new Set,r=a=>{t=e.getLocation(),n.forEach(s=>s({location:t,action:a}))},i=a=>{e.notifyOnIndexChange??!0?r(a):t=e.getLocation()},o=async({task:a,navigateOpts:s,...l})=>{var f,p;if((s==null?void 0:s.ignoreBlocker)??!1){a();return}const c=((f=e.getBlockers)==null?void 0:f.call(e))??[],d=l.type==="PUSH"||l.type==="REPLACE";if(typeof document<"u"&&c.length&&d)for(const v of c){const x=P4(l.path,l.state);if(await v.blockerFn({currentLocation:t,nextLocation:x,action:l.type})){(p=e.onBlocked)==null||p.call(e);return}}a()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:a=>(n.add(a),()=>{n.delete(a)}),push:(a,s,l)=>{const c=t.state[Mf];s=sq(c+1,s),o({task:()=>{e.pushState(a,s),r({type:"PUSH"})},navigateOpts:l,type:"PUSH",path:a,state:s})},replace:(a,s,l)=>{const c=t.state[Mf];s=sq(c,s),o({task:()=>{e.replaceState(a,s),r({type:"REPLACE"})},navigateOpts:l,type:"REPLACE",path:a,state:s})},go:(a,s)=>{o({task:()=>{e.go(a),i({type:"GO",index:a})},navigateOpts:s,type:"GO"})},back:a=>{o({task:()=>{e.back((a==null?void 0:a.ignoreBlocker)??!1),i({type:"BACK"})},navigateOpts:a,type:"BACK"})},forward:a=>{o({task:()=>{e.forward((a==null?void 0:a.ignoreBlocker)??!1),i({type:"FORWARD"})},navigateOpts:a,type:"FORWARD"})},canGoBack:()=>t.state[Mf]!==0,createHref:a=>e.createHref(a),block:a=>{var l;if(!e.setBlockers)return()=>{};const s=((l=e.getBlockers)==null?void 0:l.call(e))??[];return e.setBlockers([...s,a]),()=>{var d,f;const c=((d=e.getBlockers)==null?void 0:d.call(e))??[];(f=e.setBlockers)==null||f.call(e,c.filter(p=>p!==a))}},flush:()=>{var a;return(a=e.flush)==null?void 0:a.call(e)},destroy:()=>{var a;return(a=e.destroy)==null?void 0:a.call(e)},notify:r}}function sq(e,t){t||(t={});const n=nT();return{...t,key:n,__TSR_key:n,[Mf]:e}}function Gje(e){var $,D;const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let i=[];const o=()=>i,a=M=>i=M,s=M=>M,l=()=>P4(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state);if(!(($=t.history.state)!=null&&$.__TSR_key)&&!((D=t.history.state)!=null&&D.key)){const M=nT();t.history.replaceState({[Mf]:0,key:M,__TSR_key:M},"")}let c=l(),d,f=!1,p=!1,v=!1,x=!1;const y=()=>c;let b,w;const _=()=>{b&&(E._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),E._ignoreSubscribers=!1,b=void 0,w=void 0,d=void 0)},S=(M,O,te)=>{const q=s(O);w||(d=c),c=P4(O,te),b={href:q,state:te,isPush:(b==null?void 0:b.isPush)||M==="push"},w||(w=Promise.resolve().then(()=>_()))},C=M=>{c=l(),E.notify({type:M})},j=async()=>{if(p){p=!1;return}const M=l(),O=M.state[Mf]-c.state[Mf],te=O===1,q=O===-1,P=!te&&!q||f;f=!1;const X=P?"GO":q?"BACK":"FORWARD",A=P?{type:"GO",index:O}:{type:q?"BACK":"FORWARD"};if(v)v=!1;else{const Y=o();if(typeof document<"u"&&Y.length){for(const F of Y)if(await F.blockerFn({currentLocation:c,nextLocation:M,action:X})){p=!0,t.history.go(1),E.notify(A);return}}}c=l(),E.notify(A)},T=M=>{if(x){x=!1;return}let O=!1;const te=o();if(typeof document<"u"&&te.length)for(const q of te){const P=q.enableBeforeUnload??!0;if(P===!0){O=!0;break}if(typeof P=="function"&&P()===!0){O=!0;break}}if(O)return M.preventDefault(),M.returnValue=""},E=qje({getLocation:y,getLength:()=>t.history.length,pushState:(M,O)=>S("push",M,O),replaceState:(M,O)=>S("replace",M,O),back:M=>(M&&(v=!0),x=!0,t.history.back()),forward:M=>{M&&(v=!0),x=!0,t.history.forward()},go:M=>{f=!0,t.history.go(M)},createHref:M=>s(M),flush:_,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aq,T,{capture:!0}),t.removeEventListener(oq,j)},onBlocked:()=>{d&&c!==d&&(c=d)},getBlockers:o,setBlockers:a,notifyOnIndexChange:!1});return t.addEventListener(aq,T,{capture:!0}),t.addEventListener(oq,j),t.history.pushState=function(...M){const O=n.apply(t.history,M);return E._ignoreSubscribers||C("PUSH"),O},t.history.replaceState=function(...M){const O=r.apply(t.history,M);return E._ignoreSubscribers||C("REPLACE"),O},E}function P4(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),i=nT();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Mf]:0,key:i,__TSR_key:i}}}function nT(){return(Math.random()+1).toString(36).substring(7)}function rT(e){return e[e.length-1]}function Yje(e){return typeof e=="function"}function ip(e,t){return Yje(e)?e(t):e}const Kje=Object.prototype.hasOwnProperty;function Bl(e,t){if(e===t)return e;const n=t,r=cq(e)&&cq(n);if(!r&&!(O4(e)&&O4(n)))return n;const i=r?e:lq(e);if(!i)return n;const o=r?n:lq(n);if(!o)return n;const a=i.length,s=o.length,l=r?new Array(s):{};let c=0;for(let d=0;d"u")return!0;const n=t.prototype;return!(!uq(n)||!n.hasOwnProperty("isPrototypeOf"))}function uq(e){return Object.prototype.toString.call(e)==="[object Object]"}function cq(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Rf(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;ri||!Rf(e[a],t[a],n)))return!1;return i===o}return!1}function Y0(e){let t,n;const r=new Promise((i,o)=>{t=i,n=o});return r.status="pending",r.resolve=i=>{r.status="resolved",r.value=i,t(i),e==null||e(i)},r.reject=i=>{r.status="rejected",n(i)},r}function Lf(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const Xje=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function dq(e,t=Xje){function n(i,o,a=0){for(let s=a;s{try{return decodeURI(s)}catch{return s}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,i=>i.toUpperCase());return n(r,t)}var Jje="Invariant failed";function Qc(e,t){if(!e)throw new Error(Jje)}const Wu=0,op=1,K0=2,X0=3;function ed(e){return iT(e.filter(t=>t!==void 0).join("/"))}function iT(e){return e.replace(/\/{2,}/g,"/")}function oT(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Pf(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function z4(e){return Pf(oT(e))}function D4(e,t){return e!=null&&e.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function Qje(e,t,n){return D4(e,n)===D4(t,n)}function e8e(e){const{type:t,value:n}=e;if(t===Wu)return n;const{prefixSegment:r,suffixSegment:i}=e;if(t===op){const o=n.substring(1);if(r&&i)return`${r}{$${o}}${i}`;if(r)return`${r}{$${o}}`;if(i)return`{$${o}}${i}`}if(t===X0){const o=n.substring(1);return r&&i?`${r}{-$${o}}${i}`:r?`${r}{-$${o}}`:i?`{-$${o}}${i}`:`{-$${o}}`}if(t===K0){if(r&&i)return`${r}{$}${i}`;if(r)return`${r}{$}`;if(i)return`{$}${i}`}return n}function t8e({base:e,to:t,trailingSlash:n="never",parseCache:r}){var s;let i=J0(e,r).slice();const o=J0(t,r);i.length>1&&((s=rT(i))==null?void 0:s.value)==="/"&&i.pop();for(let l=0,c=o.length;l1&&(rT(i).value==="/"?n==="never"&&i.pop():n==="always"&&i.push({type:Wu,value:"/"}));const a=i.map(e8e);return ed(a)}const J0=(e,t)=>{if(!e)return[];const n=t==null?void 0:t.get(e);if(n)return n;const r=s8e(e);return t==null||t.set(e,r),r},n8e=/^\$.{1,}$/,r8e=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,i8e=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,o8e=/^\$$/,a8e=/^(.*?)\{\$\}(.*)$/;function s8e(e){e=iT(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const i=r.match(a8e);if(i){const s=i[1],l=i[2];return{type:K0,value:"$",prefixSegment:s||void 0,suffixSegment:l||void 0}}const o=r.match(i8e);if(o){const s=o[1],l=o[2],c=o[3];return{type:X0,value:l,prefixSegment:s||void 0,suffixSegment:c||void 0}}const a=r.match(r8e);if(a){const s=a[1],l=a[2],c=a[3];return{type:op,value:""+l,prefixSegment:s||void 0,suffixSegment:c||void 0}}if(n8e.test(r)){const s=r.substring(1);return{type:op,value:"$"+s,prefixSegment:void 0,suffixSegment:void 0}}return o8e.test(r)?{type:K0,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:Wu,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),t}function aT({path:e,params:t,leaveParams:n,decodeCharMap:r,parseCache:i}){const o=J0(e,i);function a(d){const f=t[d],p=typeof f=="string";return d==="*"||d==="_splat"?p?encodeURI(f):f:p?l8e(f,r):f}let s=!1;const l={},c=ed(o.map(d=>{if(d.type===Wu)return d.value;if(d.type===K0){l._splat=t._splat,l["*"]=t._splat;const f=d.prefixSegment||"",p=d.suffixSegment||"";if(!t._splat)return s=!0,f||p?`${f}${p}`:void 0;const v=a("_splat");return`${f}${v}${p}`}if(d.type===op){const f=d.value.substring(1);!s&&!(f in t)&&(s=!0),l[f]=t[f];const p=d.prefixSegment||"",v=d.suffixSegment||"";if(n){const x=a(d.value);return`${p}${d.value}${x??""}${v}`}return`${p}${a(f)??"undefined"}${v}`}if(d.type===X0){const f=d.value.substring(1),p=d.prefixSegment||"",v=d.suffixSegment||"";if(!(f in t)||t[f]==null)return p||v?`${p}${v}`:void 0;if(l[f]=t[f],n){const x=a(d.value);return`${p}${d.value}${x??""}${v}`}return`${p}${a(f)??""}${v}`}return d.value}));return{usedParams:l,interpolatedPath:c,isMissingParams:s}}function l8e(e,t){let n=encodeURIComponent(e);if(t)for(const[r,i]of t)n=n.replaceAll(r,i);return n}function sT(e,t,n){const r=u8e(e,t,n);if(!(t.to&&!r))return r??{}}function u8e(e,{to:t,fuzzy:n,caseSensitive:r},i){const o=t,a=J0(e.startsWith("/")?e:`/${e}`,i),s=J0(o.startsWith("/")?o:`/${o}`,i),l={};return c8e(a,s,l,n,r)?l:void 0}function c8e(e,t,n,r,i){var s,l,c;let o=0,a=0;for(;o_.value)));x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),v=w}else v=decodeURI(ed(p.map(x=>x.value)));return n["*"]=v,n._splat=v,!0}if(f.type===Wu){if(f.value==="/"&&!(d!=null&&d.value)){a++;continue}if(d){if(i){if(f.value!==d.value)return!1}else if(f.value.toLowerCase()!==d.value.toLowerCase())return!1;o++,a++;continue}else return!1}if(f.type===op){if(!d||d.value==="/")return!1;let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const x=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if(x&&!b.startsWith(x)||y&&!b.endsWith(y))return!1;let w=b;x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}else p=decodeURIComponent(d.value),v=!0;v&&(n[f.value.substring(1)]=p,o++),a++;continue}if(f.type===X0){if(!d){a++;continue}if(d.value==="/"){a++;continue}let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const x=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if((!x||b.startsWith(x))&&(!y||b.endsWith(y))){let w=b;x&&w.startsWith(x)&&(w=w.slice(x.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}}else{let x=!0;for(let y=a+1;y=t.length)return n["**"]=ed(e.slice(o).map(p=>p.value)),!!r&&((l=t[t.length-1])==null?void 0:l.value)!=="/";if(a=e.length){for(let p=a;p{var d;if(n.isRoot||!n.path)return;const i=oT(n.fullPath);let o=J0(i),a=0;for(;o.length>a+1&&((d=o[a])==null?void 0:d.value)==="/";)a++;a>0&&(o=o.slice(a));let s=0,l=!1;const c=o.map((f,p)=>{if(f.value==="/")return d8e;if(f.type===Wu)return f8e;let v;f.type===op?v=h8e:f.type===X0?(v=p8e,s++):v=m8e;for(let x=p+1;x{const i=Math.min(n.scores.length,r.scores.length);for(let o=0;or.parsed[o].value?1:-1;return n.index-r.index}).map((n,r)=>(n.child.rank=r,n.child))}function _8e({routeTree:e,initRoute:t}){const n={},r={},i=a=>{a.forEach((s,l)=>{t==null||t(s,l);const c=n[s.id];if(Qc(!c,`Duplicate routes found with id: ${String(s.id)}`),n[s.id]=s,!s.isRoot&&s.path){const f=Pf(s.fullPath);(!r[f]||s.fullPath.endsWith("/"))&&(r[f]=s)}const d=s.children;d!=null&&d.length&&i(d)})};i([e]);const o=x8e(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:o}}function Wl(e){return!!(e!=null&&e.isNotFound)}function w8e(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const A4="tsr-scroll-restoration-v1_3",k8e=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function S8e(){const e=w8e();if(!e)return null;const t=e.getItem(A4);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=ip(r,n)||n,e.setItem(A4,JSON.stringify(n)))}}const F4=S8e(),lT=e=>e.state.__TSR_key||e.href;function C8e(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let U4=!1;function mq({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:i,location:o}){var c,d;let a;try{a=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const s=t||((c=window.history.state)==null?void 0:c.__TSR_key),l=a[s];U4=!0;e:{if(r&&l&&Object.keys(l).length>0){for(const v in l){const x=l[v];if(v==="window")window.scrollTo({top:x.scrollY,left:x.scrollX,behavior:n});else if(v){const y=document.querySelector(v);y&&(y.scrollLeft=x.scrollX,y.scrollTop=x.scrollY)}}break e}const f=(o??window.location).hash.split("#",2)[1];if(f){const v=((d=window.history.state)==null?void 0:d.__hashScrollIntoViewOptions)??!0;if(v){const x=document.getElementById(f);x&&x.scrollIntoView(v)}break e}const p={top:0,left:0,behavior:n};if(window.scrollTo(p),i)for(const v of i){if(v==="window")continue;const x=typeof v=="function"?v():document.querySelector(v);x&&x.scrollTo(p)}}U4=!1}function j8e(e,t){if(!F4&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!F4))return;e.isScrollRestorationSetup=!0,U4=!1;const n=e.options.getScrollRestorationKey||lT;window.history.scrollRestoration="manual";const r=i=>{if(U4||!e.isScrollRestoring)return;let o="";if(i.target===document||i.target===window)o="window";else{const s=i.target.getAttribute("data-scroll-restoration-id");s?o=`[data-scroll-restoration-id="${s}"]`:o=C8e(i.target)}const a=n(e.state.location);F4.set(s=>{const l=s[a]||(s[a]={}),c=l[o]||(l[o]={});if(o==="window")c.scrollX=window.scrollX||0,c.scrollY=window.scrollY||0;else if(o){const d=document.querySelector(o);d&&(c.scrollX=d.scrollLeft||0,c.scrollY=d.scrollTop||0)}return s})};typeof document<"u"&&document.addEventListener("scroll",k8e(r,100),!0),e.subscribe("onRendered",i=>{const o=n(i.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(mq({storageKey:A4,key:o,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&F4.set(a=>(a[o]||(a[o]={}),a)))})}function T8e(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function I8e(e,t=String){const n=new URLSearchParams;for(const r in e){const i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function uT(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function E8e(e){const t=new URLSearchParams(e),n={};for(const[r,i]of t.entries()){const o=n[r];o==null?n[r]=uT(i):Array.isArray(o)?o.push(uT(i)):n[r]=[o,uT(i)]}return n}const N8e=M8e(JSON.parse),$8e=R8e(JSON.stringify,JSON.parse);function M8e(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=E8e(t);for(const r in n){const i=n[r];if(typeof i=="string")try{n[r]=e(i)}catch{}}return n}}function R8e(e,t){const n=typeof t=="function";function r(i){if(typeof i=="object"&&i!==null)try{return e(i)}catch{}else if(n&&typeof i=="string")try{return t(i),e(i)}catch{}return i}return i=>{const o=I8e(i,r);return o?`?${o}`:""}}const ms="__root__";function cT(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function Vu(e){return e instanceof Response&&!!e.options}function L8e(e){const t=new Map;let n,r;const i=o=>{o.next&&(o.prev?(o.prev.next=o.next,o.next.prev=o.prev,o.next=void 0,r&&(r.next=o,o.prev=r)):(o.next.prev=void 0,n=o.next,o.next=void 0,r&&(o.prev=r,r.next=o)),r=o)};return{get(o){const a=t.get(o);if(a)return i(a),a.value},set(o,a){if(t.size>=e&&n){const l=n;t.delete(l.key),l.next&&(n=l.next,l.next.prev=void 0),l===r&&(r=void 0)}const s=t.get(o);if(s)s.value=a,i(s);else{const l={key:o,value:a,prev:r};r&&(r.next=l),r=l,n||(n=l),t.set(o,l)}}}}const B4=e=>{var t;if(!e.rendered)return e.rendered=!0,(t=e.onReady)==null?void 0:t.call(e)},W4=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),gq=(e,t)=>{var i;const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&((i=e.router.options)!=null&&i.defaultNotFoundComponent)&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),Qc(n.options.notFoundComponent);const r=e.matches.find(o=>o.routeId===n.id);Qc(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,o=>({...o,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,gq(e,t))},Of=(e,t,n)=>{var r,i,o;if(!(!Vu(n)&&!Wl(n))){if(Vu(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){(r=t._nonReactive.beforeLoadPromise)==null||r.resolve(),(i=t._nonReactive.loaderPromise)==null||i.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const a=Vu(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,s=>({...s,status:a,isFetching:!1,error:n})),Wl(n)&&!n.routeId&&(n.routeId=t.routeId),(o=t._nonReactive.loadPromise)==null||o.resolve()}throw Vu(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(gq(e,n),n)}},vq=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Oy=(e,t,n,r)=>{var s,l;const{id:i,routeId:o}=e.matches[t],a=e.router.looseRoutesById[o];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??(e.firstBadMatchIndex=t),Of(e,e.router.getMatch(i),n);try{(l=(s=a.options).onError)==null||l.call(s,n)}catch(c){n=c,Of(e,e.router.getMatch(i),n)}e.updateMatch(i,c=>{var d,f;return(d=c._nonReactive.beforeLoadPromise)==null||d.resolve(),c._nonReactive.beforeLoadPromise=void 0,(f=c._nonReactive.loadPromise)==null||f.resolve(),{...c,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}})},P8e=(e,t,n,r)=>{var v;const i=e.router.getMatch(t),o=(v=e.matches[n-1])==null?void 0:v.id,a=o?e.router.getMatch(o):void 0;if(e.router.isShell()){i.ssr=r.id===ms;return}if((a==null?void 0:a.ssr)===!1){i.ssr=!1;return}const s=x=>x===!0&&(a==null?void 0:a.ssr)==="data-only"?"data-only":x,l=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){i.ssr=s(l);return}if(typeof r.options.ssr!="function"){i.ssr=s(r.options.ssr);return}const{search:c,params:d}=i,f={search:V4(c,i.searchError),params:V4(d,i.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:V4(x.search,x.searchError),params:V4(x.params,x.paramsError),ssr:x.ssr}))},p=r.options.ssr(f);if(Lf(p))return p.then(x=>{i.ssr=s(x??l)});i.ssr=s(p??l)},yq=(e,t,n,r)=>{var o;if(r._nonReactive.pendingTimeout!==void 0)return;const i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!e.router.isServer&&!W4(e,t)&&(n.options.loader||n.options.beforeLoad||kq(n))&&typeof i=="number"&&i!==1/0&&(n.options.pendingComponent??((o=e.router.options)==null?void 0:o.defaultPendingComponent))){const a=setTimeout(()=>{B4(e)},i);r._nonReactive.pendingTimeout=a}},O8e=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;yq(e,t,n,r);const i=()=>{const o=e.router.getMatch(t);o.preload&&(o.status==="redirected"||o.status==="notFound")&&Of(e,o,o.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},z8e=(e,t,n,r)=>{var j,T;const i=e.router.getMatch(t),o=i._nonReactive.loadPromise;i._nonReactive.loadPromise=Y0(()=>{o==null||o.resolve()});const{paramsError:a,searchError:s}=i;a&&Oy(e,n,a,"PARSE_PARAMS"),s&&Oy(e,n,s,"VALIDATE_SEARCH"),yq(e,t,r,i);const l=new AbortController,c=(j=e.matches[n-1])==null?void 0:j.id,d={...((T=c?e.router.getMatch(c):void 0)==null?void 0:T.context)??e.router.options.context??void 0,...i.__routeContext};let f=!1;const p=()=>{f||(f=!0,e.updateMatch(t,E=>({...E,isFetching:"beforeLoad",fetchCount:E.fetchCount+1,abortController:l,context:d})))},v=()=>{var E;(E=i._nonReactive.beforeLoadPromise)==null||E.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,$=>({...$,isFetching:!1}))};if(!r.options.beforeLoad){Py(()=>{p(),v()});return}i._nonReactive.beforeLoadPromise=Y0();const{search:x,params:y,cause:b}=i,w=W4(e,t),_={search:x,abortController:l,params:y,preload:w,context:d,location:e.location,navigate:E=>e.router.navigate({...E,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:w?"preload":b,matches:e.matches,...e.router.options.additionalContext},S=E=>{if(E===void 0){Py(()=>{p(),v()});return}(Vu(E)||Wl(E))&&(p(),Oy(e,n,E,"BEFORE_LOAD")),Py(()=>{p(),e.updateMatch(t,$=>({...$,__beforeLoadContext:E,context:{...$.context,...E}})),v()})};let C;try{if(C=r.options.beforeLoad(_),Lf(C))return p(),C.catch(E=>{Oy(e,n,E,"BEFORE_LOAD")}).then(S)}catch(E){p(),Oy(e,n,E,"BEFORE_LOAD")}S(C)},D8e=(e,t)=>{const{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],o=()=>{if(e.router.isServer){const l=P8e(e,n,t,i);if(Lf(l))return l.then(s)}return s()},a=()=>z8e(e,n,t,i),s=()=>{if(vq(e,n))return;const l=O8e(e,n,i);return Lf(l)?l.then(a):a()};return o()},zy=(e,t,n)=>{var o,a,s,l,c,d;const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const i={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([(a=(o=n.options).head)==null?void 0:a.call(o,i),(l=(s=n.options).scripts)==null?void 0:l.call(s,i),(d=(c=n.options).headers)==null?void 0:d.call(c,i)]).then(([f,p,v])=>{const x=f==null?void 0:f.meta,y=f==null?void 0:f.links,b=f==null?void 0:f.scripts,w=f==null?void 0:f.styles;return{meta:x,links:y,headScripts:b,headers:v,scripts:p,styles:w}})},bq=(e,t,n,r)=>{const i=e.matchPromises[n-1],{params:o,loaderDeps:a,abortController:s,cause:l}=e.router.getMatch(t);let c=e.router.options.context??{};for(let f=0;f<=n;f++){const p=e.matches[f];if(!p)continue;const v=e.router.getMatch(p.id);v&&(c={...c,...v.__routeContext??{},...v.__beforeLoadContext??{}})}const d=W4(e,t);return{params:o,deps:a,preload:!!d,parentMatchPromise:i,abortController:s,context:c,location:e.location,navigate:f=>e.router.navigate({...f,_fromLocation:e.location}),cause:d?"preload":l,route:r,...e.router.options.additionalContext}},xq=async(e,t,n,r)=>{var i,o,a,s,l,c;try{const d=e.router.getMatch(t);try{(!e.router.isServer||d.ssr===!0)&&wq(r);const f=(o=(i=r.options).loader)==null?void 0:o.call(i,bq(e,t,n,r)),p=r.options.loader&&Lf(f);if((p||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||d._nonReactive.minPendingPromise)&&e.updateMatch(t,b=>({...b,isFetching:"loader"})),r.options.loader){const b=p?await f:f;Of(e,e.router.getMatch(t),b),b!==void 0&&e.updateMatch(t,w=>({...w,loaderData:b}))}r._lazyPromise&&await r._lazyPromise;const v=zy(e,t,r),x=v?await v:void 0,y=d._nonReactive.minPendingPromise;y&&await y,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,b=>({...b,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...x}))}catch(f){let p=f;const v=d._nonReactive.minPendingPromise;v&&await v,Wl(f)&&await((s=(a=r.options.notFoundComponent)==null?void 0:a.preload)==null?void 0:s.call(a)),Of(e,e.router.getMatch(t),f);try{(c=(l=r.options).onError)==null||c.call(l,f)}catch(b){p=b,Of(e,e.router.getMatch(t),b)}const x=zy(e,t,r),y=x?await x:void 0;e.updateMatch(t,b=>({...b,error:p,status:"error",isFetching:!1,...y}))}}catch(d){const f=e.router.getMatch(t);if(f){const p=zy(e,t,r);if(p){const v=await p;e.updateMatch(t,x=>({...x,...v}))}f._nonReactive.loaderPromise=void 0}Of(e,f,d)}},A8e=async(e,t)=>{var c,d;const{id:n,routeId:r}=e.matches[t];let i=!1,o=!1;const a=e.router.looseRoutesById[r];if(vq(e,n)){if(e.router.isServer){const f=zy(e,n,a);if(f){const p=await f;e.updateMatch(n,v=>({...v,...p}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const p=e.router.getMatch(n),v=p._nonReactive.error||p.error;v&&Of(e,p,v)}else{const p=Date.now()-f.updatedAt,v=W4(e,n),x=v?a.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:a.options.staleTime??e.router.options.defaultStaleTime??0,y=a.options.shouldReload,b=typeof y=="function"?y(bq(e,n,t,a)):y,w=!!v&&!e.router.state.matches.some(j=>j.id===n),_=e.router.getMatch(n);_._nonReactive.loaderPromise=Y0(),w!==_.preload&&e.updateMatch(n,j=>({...j,preload:w}));const{status:S,invalid:C}=_;if(i=S==="success"&&(C||(b??p>x)),!(v&&a.options.preload===!1))if(i&&!e.sync)o=!0,(async()=>{var j,T;try{await xq(e,n,t,a);const E=e.router.getMatch(n);(j=E._nonReactive.loaderPromise)==null||j.resolve(),(T=E._nonReactive.loadPromise)==null||T.resolve(),E._nonReactive.loaderPromise=void 0}catch(E){Vu(E)&&await e.router.navigate(E.options)}})();else if(S!=="success"||i&&e.sync)await xq(e,n,t,a);else{const j=zy(e,n,a);if(j){const T=await j;e.updateMatch(n,E=>({...E,...T}))}}}}const s=e.router.getMatch(n);o||((c=s._nonReactive.loaderPromise)==null||c.resolve(),(d=s._nonReactive.loadPromise)==null||d.resolve()),clearTimeout(s._nonReactive.pendingTimeout),s._nonReactive.pendingTimeout=void 0,o||(s._nonReactive.loaderPromise=void 0),s._nonReactive.dehydrated=void 0;const l=o?s.isFetching:!1;return l!==s.isFetching||s.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:l,invalid:!1})),e.router.getMatch(n)):s};async function _q(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&B4(t);try{for(let i=0;i{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{var r;const n=[];for(const i of Sq){const o=(r=e.options[i])==null?void 0:r.preload;o&&n.push(o())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function V4(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function kq(e){var t;for(const n of Sq)if((t=e.options[n])!=null&&t.preload)return!0;return!1}const Sq=["component","errorComponent","pendingComponent","notFoundComponent"];function F8e(e){return{input:({url:t})=>{for(const n of e)t=Cq(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=jq(e[n],t);return t}}}function U8e(e){const t=z4(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),o=e.caseSensitive?r:r.toLowerCase();return{input:({url:a})=>{const s=e.caseSensitive?a.pathname:a.pathname.toLowerCase();return s===i?a.pathname="/":s.startsWith(o)&&(a.pathname=a.pathname.slice(n.length)),a},output:({url:a})=>(a.pathname=ed(["/",t,a.pathname]),a)}}function Cq(e,t){var r;const n=(r=e==null?void 0:e.input)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function jq(e,t){var r;const n=(r=e==null?void 0:e.output)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function ap(e){const t=e.resolvedLocation,n=e.location,r=(t==null?void 0:t.pathname)!==n.pathname,i=(t==null?void 0:t.href)!==n.href,o=(t==null?void 0:t.hash)!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:i,hashChanged:o}}class B8e{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{var d;n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,i=this.basepath??(r==null?void 0:r.basepath)??"/",o=this.basepath===void 0,a=r==null?void 0:r.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(f=>[encodeURIComponent(f),f])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=Gje())),this.origin=this.options.origin,this.origin||(!this.isServer&&(window!=null&&window.origin)&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new Zje(V8e(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(f=>!["redirected"].includes(f.status))}}}),j8e(this));let s=!1;const l=this.options.basepath??"/",c=this.options.rewrite;if(o||i!==l||a!==c){this.basepath=l;const f=[];z4(l)!==""&&f.push(U8e({basepath:l})),c&&f.push(c),this.rewrite=f.length===0?void 0:f.length===1?f[0]:F8e(f),this.history&&this.updateLatestLocation(),s=!0}s&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof((d=window.CSS)==null?void 0:d.supports)=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:i}=_8e({routeTree:this.routeTree,initRoute:(a,s)=>{a.init({originalIndex:s})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=i;const o=this.options.notFoundRoute;o&&(o.init({originalIndex:99999999999}),this.routesById[o.id]=o)},this.subscribe=(n,r)=>{const i={eventType:n,fn:r};return this.subscribers.add(i),()=>{this.subscribers.delete(i)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const i=({href:l,state:c})=>{const d=new URL(l,this.origin),f=Cq(this.rewrite,d),p=this.options.parseSearch(f.search),v=this.options.stringifySearch(p);f.search=v;const x=f.href.replace(f.origin,""),{pathname:y,hash:b}=f;return{href:x,publicHref:l,url:f.href,pathname:dq(y),searchStr:v,search:Bl(r==null?void 0:r.search,p),hash:b.split("#").reverse()[0]??"",state:Bl(r==null?void 0:r.state,c)}},o=i(n),{__tempLocation:a,__tempKey:s}=o.state;if(a&&(!s||s===this.tempLocationKey)){const l=i(a);return l.state.key=o.state.key,l.state.__TSR_key=o.state.__TSR_key,delete l.state.__tempLocation,{...l,maskedLocation:o}}return o},this.resolvePathWithBase=(n,r)=>t8e({base:n,to:iT(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,i)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},i):this.matchRoutesInternal(n,r),this.parsePathnameCache=L8e(1e3),this.getMatchedRoutes=(n,r)=>H8e({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(i=>i.status==="pending"),r=this.state.matches.filter(i=>i.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(i=>{this.cancelMatch(i.id)})},this.buildLocation=n=>{const r=(o={})=>{var M,O;const a=o._fromLocation||this.pendingBuiltLocation||this.latestLocation,s=this.matchRoutes(a,{_buildLocation:!0}),l=rT(s);o.from;const c=o.unsafeRelative==="path"?a.pathname:o.from??l.fullPath,d=this.resolvePathWithBase(c,"."),f=l.search,p={...l.params},v=o.to?this.resolvePathWithBase(d,`${o.to}`):this.resolvePathWithBase(d,"."),x=o.params===!1||o.params===null?{}:(o.params??!0)===!0?p:Object.assign(p,ip(o.params,p)),y=aT({path:v,params:x,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(y,void 0,{_buildLocation:!0}).map(te=>this.looseRoutesById[te.routeId]);if(Object.keys(x).length>0)for(const te of b){const q=((M=te.options.params)==null?void 0:M.stringify)??te.options.stringifyParams;q&&Object.assign(x,q(x))}const w=dq(aT({path:v,params:x,leaveParams:n.leaveParams,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let _=f;if(n._includeValidateSearch&&((O=this.options.search)!=null&&O.strict)){const te={};b.forEach(q=>{if(q.options.validateSearch)try{Object.assign(te,dT(q.options.validateSearch,{...te,..._}))}catch{}}),_=te}_=Z8e({search:_,dest:o,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),_=Bl(f,_);const S=this.options.stringifySearch(_),C=o.hash===!0?a.hash:o.hash?ip(o.hash,a.hash):void 0,j=C?`#${C}`:"";let T=o.state===!0?a.state:o.state?ip(o.state,a.state):{};T=Bl(a.state,T);const E=`${w}${S}${j}`,$=new URL(E,this.origin),D=jq(this.rewrite,$);return{publicHref:D.pathname+D.search+D.hash,href:E,url:D.href,pathname:w,search:_,searchStr:S,state:T,hash:C??"",unmaskOnReload:o.unmaskOnReload}},i=(o={},a)=>{var c;const s=r(o);let l=a?r(a):void 0;if(!l){let d={};const f=(c=this.options.routeMasks)==null?void 0:c.find(p=>{const v=sT(s.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return v?(d=v,!0):!1});if(f){const{from:p,...v}=f;a={from:n.from,...v,params:d},l=r(a)}}return l&&(s.maskedLocation=l),s};return n.mask?i(n,{from:n.from,...n.mask}):i(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...i})=>{const o=()=>{const l=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];l.forEach(d=>{i.state[d]=this.latestLocation.state[d]});const c=Rf(i.state,this.latestLocation.state);return l.forEach(d=>{delete i.state[d]}),c},a=Pf(this.latestLocation.href)===Pf(i.href),s=this.commitLocationPromise;if(this.commitLocationPromise=Y0(()=>{s==null||s.resolve()}),a&&o())this.load();else{let{maskedLocation:l,hashScrollIntoView:c,...d}=i;l&&(d={...l,state:{...l.state,__tempKey:void 0,__tempLocation:{...d,search:d.searchStr,state:{...d.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(d.unmaskOnReload??this.options.unmaskOnReload??!1)&&(d.state.__tempKey=this.tempLocationKey)),d.state.__hashScrollIntoViewOptions=c??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[i.replace?"replace":"push"](d.publicHref,d.state,{ignoreBlocker:r})}return this.resetNextScroll=i.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:i,viewTransition:o,ignoreBlocker:a,href:s,...l}={})=>{if(s){const f=this.history.location.state.__TSR_index,p=P4(s,{__TSR_index:n?f:f+1});l.to=p.pathname,l.search=this.options.parseSearch(p.search),l.hash=p.hash.slice(1)}const c=this.buildLocation({...l,_includeValidateSearch:!0});this.pendingBuiltLocation=c;const d=this.commitLocation({...c,viewTransition:o,replace:n,resetScroll:r,hashScrollIntoView:i,ignoreBlocker:a});return Promise.resolve().then(()=>{this.pendingBuiltLocation===c&&(this.pendingBuiltLocation=void 0)}),d},this.navigate=({to:n,reloadDocument:r,href:i,...o})=>{if(!r&&i)try{new URL(`${i}`),r=!0}catch{}return r?(i||(i=this.buildLocation({to:n,...o}).url),o.replace?window.location.replace(i):window.location.href=i,Promise.resolve()):this.buildAndCommitLocation({...o,href:i,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),i=o=>{try{return encodeURI(decodeURI(o))}catch{return o}};if(z4(i(this.latestLocation.href))!==z4(i(r.href))){let o=r.url;throw this.origin&&o.startsWith(this.origin)&&(o=o.replace(this.origin,"")||"/"),cT({href:o})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(i=>!n.some(o=>o.id===i.id))}))},this.load=async n=>{let r,i,o;for(o=new Promise(s=>{this.startTransition(async()=>{var l;try{this.beforeLoad();const c=this.latestLocation,d=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...ap({resolvedLocation:d,location:c})}),this.emit({type:"onBeforeLoad",...ap({resolvedLocation:d,location:c})}),await _q({router:this,sync:n==null?void 0:n.sync,matches:this.state.pendingMatches,location:c,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let f=[],p=[],v=[];Py(()=>{this.__store.setState(x=>{const y=x.matches,b=x.pendingMatches||x.matches;return f=y.filter(w=>!b.some(_=>_.id===w.id)),p=b.filter(w=>!y.some(_=>_.id===w.id)),v=b.filter(w=>y.some(_=>_.id===w.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:b,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...f.filter(w=>w.status!=="error")]}}),this.clearExpiredCache()}),[[f,"onLeave"],[p,"onEnter"],[v,"onStay"]].forEach(([x,y])=>{x.forEach(b=>{var w,_;(_=(w=this.looseRoutesById[b.routeId].options)[y])==null||_.call(w,b)})})})})}})}catch(c){Vu(c)?(r=c,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wl(c)&&(i=c),this.__store.setState(d=>({...d,statusCode:r?r.status:i?404:d.matches.some(f=>f.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===o&&((l=this.commitLocationPromise)==null||l.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),s()})}),this.latestLoadPromise=o,await o;this.latestLoadPromise&&o!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.__store.state.matches.some(s=>s.status==="error")&&(a=500),a!==void 0&&this.__store.setState(s=>({...s,statusCode:a}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let i;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const o=this.latestLocation,a=this.state.resolvedLocation,s=typeof r.types=="function"?r.types(ap({resolvedLocation:a,location:o})):r.types;if(s===!1){n();return}i={update:n,types:s}}else i=n;document.startViewTransition(i)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{var o;const i=(o=this.state.pendingMatches)!=null&&o.some(a=>a.id===n)?"pendingMatches":this.state.matches.some(a=>a.id===n)?"matches":this.state.cachedMatches.some(a=>a.id===n)?"cachedMatches":"";i&&this.__store.setState(a=>{var s;return{...a,[i]:(s=a[i])==null?void 0:s.map(l=>l.id===n?r(l):l)}})})},this.getMatch=n=>{var i;const r=o=>o.id===n;return this.state.cachedMatches.find(r)??((i=this.state.pendingMatches)==null?void 0:i.find(r))??this.state.matches.find(r)},this.invalidate=n=>{const r=i=>{var o;return((o=n==null?void 0:n.filter)==null?void 0:o.call(n,i))??!0?{...i,invalid:!0,...n!=null&&n.forcePending||i.status==="error"?{status:"pending",error:void 0}:void 0}:i};return this.__store.setState(i=>{var o;return{...i,matches:i.matches.map(r),cachedMatches:i.cachedMatches.map(r),pendingMatches:(o=i.pendingMatches)==null?void 0:o.map(r)}}),this.shouldViewTransition=!1,this.load({sync:n==null?void 0:n.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let i=r.url;this.origin&&i.startsWith(this.origin)&&(i=i.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",i)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n==null?void 0:n.filter;r!==void 0?this.__store.setState(i=>({...i,cachedMatches:i.cachedMatches.filter(o=>!r(o))})):this.__store.setState(i=>({...i,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const i=this.looseRoutesById[r.routeId];if(!i.options.loader)return!0;const o=(r.preload?i.options.preloadGcTime??this.options.defaultPreloadGcTime:i.options.gcTime??this.options.defaultGcTime)??5*60*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=o};this.clearCache({filter:n})},this.loadRouteChunk=wq,this.preloadRoute=async n=>{const r=this.buildLocation(n);let i=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const o=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(s=>s.id)),a=new Set([...o,...this.state.cachedMatches.map(s=>s.id)]);Py(()=>{i.forEach(s=>{a.has(s.id)||this.__store.setState(l=>({...l,cachedMatches:[...l.cachedMatches,s]}))})});try{return i=await _q({router:this,matches:i,location:r,preload:!0,updateMatch:(s,l)=>{o.has(s)?i=i.map(c=>c.id===s?l(c):c):this.updateMatch(s,l)}}),i}catch(s){if(Vu(s))return s.options.reloadDocument?void 0:await this.preloadRoute({...s.options,_fromLocation:r});Wl(s)||console.error(s);return}},this.matchRoute=(n,r)=>{const i={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},o=this.buildLocation(i);if(r!=null&&r.pending&&this.state.status!=="pending")return!1;const a=((r==null?void 0:r.pending)===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,s=sT(a.pathname,{...r,to:o.pathname},this.parsePathnameCache);return!s||n.params&&!Rf(s,n.params,{partial:!0})?!1:s&&((r==null?void 0:r.includeSearch)??!0)?Rf(a.search,o.search,{partial:!0})?s:!1:s},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??$8e,parseSearch:t.parseSearch??N8e}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){var d;const{foundRoute:r,matchedRoutes:i,routeParams:o}=this.getMatchedRoutes(t.pathname,(d=n==null?void 0:n.dest)==null?void 0:d.to);let a=!1;(r?r.path!=="/"&&o["**"]:Pf(t.pathname))&&(this.options.notFoundRoute?i.push(this.options.notFoundRoute):a=!0);const s=(()=>{if(a){if(this.options.notFoundMode!=="root")for(let f=i.length-1;f>=0;f--){const p=i[f];if(p.children)return p.id}return ms}})(),l=[],c=f=>f!=null&&f.id?f.context??this.options.context??void 0:this.options.context??void 0;return i.forEach((f,p)=>{var q,P,X;const v=l[p-1],[x,y,b]=(()=>{const A=(v==null?void 0:v.search)??t.search,Y=(v==null?void 0:v._strictSearch)??void 0;try{const F=dT(f.options.validateSearch,{...A})??void 0;return[{...A,...F},{...Y,...F},void 0]}catch(F){let H=F;if(F instanceof H4||(H=new H4(F.message,{cause:F})),n==null?void 0:n.throwOnError)throw H;return[A,{},H]}})(),w=((P=(q=f.options).loaderDeps)==null?void 0:P.call(q,{search:x}))??"",_=w?JSON.stringify(w):"",{interpolatedPath:S,usedParams:C}=aT({path:f.fullPath,params:o,decodeCharMap:this.pathParamsDecodeCharMap}),j=f.id+S+_,T=this.getMatch(j),E=this.state.matches.find(A=>A.routeId===f.id),$=(T==null?void 0:T._strictParams)??C;let D;if(!T){const A=((X=f.options.params)==null?void 0:X.parse)??f.options.parseParams;if(A)try{Object.assign($,A($))}catch(Y){if(D=new W8e(Y.message,{cause:Y}),n==null?void 0:n.throwOnError)throw D}}Object.assign(o,$);const M=E?"stay":"enter";let O;if(T)O={...T,cause:M,params:E?Bl(E.params,o):o,_strictParams:$,search:Bl(E?E.search:T.search,x),_strictSearch:y};else{const A=f.options.loader||f.options.beforeLoad||f.lazyFn||kq(f)?"pending":"success";O={id:j,index:p,routeId:f.id,params:E?Bl(E.params,o):o,_strictParams:$,pathname:S,updatedAt:Date.now(),search:E?Bl(E.search,x):x,_strictSearch:y,searchError:void 0,status:A,isFetching:!1,error:void 0,paramsError:D,__routeContext:void 0,_nonReactive:{loadPromise:Y0()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:M,loaderDeps:E?Bl(E.loaderDeps,w):w,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:f.options.staticData||{},fullPath:f.fullPath}}n!=null&&n.preload||(O.globalNotFound=s===f.id),O.searchError=b;const te=c(v);O.context={...te,...O.__routeContext,...O.__beforeLoadContext},l.push(O)}),l.forEach((f,p)=>{const v=this.looseRoutesById[f.routeId];if(!this.getMatch(f.id)&&(n==null?void 0:n._buildLocation)!==!0){const x=l[p-1],y=c(x);if(v.options.context){const b={deps:f.loaderDeps,params:f.params,context:y??{},location:t,navigate:w=>this.navigate({...w,_fromLocation:t}),buildLocation:this.buildLocation,cause:f.cause,abortController:f.abortController,preload:!!f.preload,matches:l};f.__routeContext=v.options.context(b)??void 0}f.context={...y,...f.__routeContext,...f.__beforeLoadContext}}}),l}}class H4 extends Error{}class W8e extends Error{}function V8e(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function dT(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new H4("Async validation not supported");if(n.issues)throw new H4(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function H8e({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:i,flatRoutes:o,parseCache:a}){let s={};const l=Pf(e),c=v=>{var x;return sT(l,{to:v.fullPath,caseSensitive:((x=v.options)==null?void 0:x.caseSensitive)??n,fuzzy:!0},a)};let d=t!==void 0?r[t]:void 0;if(d)s=c(d);else{let v;for(const x of o){const y=c(x);if(y)if(x.path!=="/"&&y["**"])v||(v={foundRoute:x,routeParams:y});else{d=x,s=y;break}}!d&&v&&(d=v.foundRoute,s=v.routeParams)}let f=d||i[ms];const p=[f];for(;f.parentRoute;)f=f.parentRoute,p.push(f);return p.reverse(),{matchedRoutes:p,routeParams:s,foundRoute:d}}function Z8e({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const i=n.reduce((s,l)=>{var d;const c=[];if("search"in l.options)(d=l.options.search)!=null&&d.middlewares&&c.push(...l.options.search.middlewares);else if(l.options.preSearchFilters||l.options.postSearchFilters){const f=({search:p,next:v})=>{let x=p;"preSearchFilters"in l.options&&l.options.preSearchFilters&&(x=l.options.preSearchFilters.reduce((b,w)=>w(b),p));const y=v(x);return"postSearchFilters"in l.options&&l.options.postSearchFilters?l.options.postSearchFilters.reduce((b,w)=>w(b),y):y};c.push(f)}if(r&&l.options.validateSearch){const f=({search:p,next:v})=>{const x=v(p);try{return{...x,...dT(l.options.validateSearch,x)??void 0}}catch{return x}};c.push(f)}return s.concat(c)},[])??[],o=({search:s})=>t.search?t.search===!0?s:ip(t.search,s):{};i.push(o);const a=(s,l)=>{if(s>=i.length)return l;const c=i[s];return c({search:l,next:d=>a(s+1,d)})};return a(0,e)}const q8e="Error preloading route! \u261D\uFE0F";class Tq{constructor(t){if(this.init=n=>{var c,d;this.originalIndex=n.originalIndex;const r=this.options,i=!(r!=null&&r.path)&&!(r!=null&&r.id);this.parentRoute=(d=(c=this.options).getParentRoute)==null?void 0:d.call(c),i?this._path=ms:this.parentRoute||Qc(!1);let o=i?ms:r==null?void 0:r.path;o&&o!=="/"&&(o=oT(o));const a=(r==null?void 0:r.id)||o;let s=i?ms:ed([this.parentRoute.id===ms?"":this.parentRoute.id,a]);o===ms&&(o="/"),s!==ms&&(s=ed(["/",s]));const l=s===ms?"/":ed([this.parentRoute.fullPath,o]);this._path=o,this._id=s,this._fullPath=l,this._to=l},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!(t!=null&&t.getParentRoute),(t==null?void 0:t.id)&&(t==null?void 0:t.path))throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class G8e extends Tq{constructor(t){super(t)}}function Y8e(e){return({search:t,next:n})=>{const r=n(t);return e===!0?{...t,...r}:(e.forEach(i=>{i in r||(r[i]=t[i])}),r)}}function K8e(e){return({search:t,next:n})=>{if(e===!0)return{};const r=n(t);return Array.isArray(e)?e.forEach(i=>{delete r[i]}):Object.entries(e).forEach(([i,o])=>{Rf(r[i],o)&&delete r[i]}),r}}function fT(e){const t=e.errorComponent??Z4;return u.jsx(X8e,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?m.createElement(t,{error:n,reset:r}):e.children})}class X8e extends m.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Z4({error:e}){const[t,n]=m.useState(!1);return u.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[u.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),u.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),u.jsx("div",{style:{height:".25rem"}}),t?u.jsx("div",{children:u.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?u.jsx("code",{children:e.message}):null})}):null]})}function J8e({children:e,fallback:t=null}){return Q8e()?u.jsx(Pe.Fragment,{children:e}):u.jsx(Pe.Fragment,{children:t})}function Q8e(){return Pe.useSyncExternalStore(e9e,()=>!0,()=>!1)}function e9e(){return()=>{}}var Iq={exports:{}},Eq={};/** +* @license React +* use-sync-external-store-shim/with-selector.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var q4=m,t9e=T4e;function n9e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var r9e=typeof Object.is=="function"?Object.is:n9e,i9e=t9e.useSyncExternalStore,o9e=q4.useRef,a9e=q4.useEffect,s9e=q4.useMemo,l9e=q4.useDebugValue;Eq.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=o9e(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=s9e(function(){function l(v){if(!c){if(c=!0,d=v,v=r(v),i!==void 0&&a.hasValue){var x=a.value;if(i(x,v))return f=x}return f=v}if(x=f,r9e(d,v))return x;var y=r(v);return i!==void 0&&i(x,y)?(d=v,x):(d=v,f=y)}var c=!1,d,f,p=n===void 0?null:n;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,n,r,i]);var s=i9e(e,o[0],o[1]);return a9e(function(){a.hasValue=!0,a.value=s},[s]),l9e(s),s},Iq.exports=Eq;var u9e=Iq.exports;function c9e(e,t=r=>r,n={}){const r=n.equal??d9e;return u9e.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function d9e(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!t.has(r)||!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=Nq(e);if(n.length!==Nq(t).length)return!1;for(let r=0;r"u"?hT:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=hT,hT)}function gs(e){const t=m.useContext($q());return e==null||e.warn,t}function ua(e){const t=gs({warn:(e==null?void 0:e.router)===void 0}),n=(e==null?void 0:e.router)||t,r=m.useRef(void 0);return c9e(n.__store,i=>{if(e!=null&&e.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const o=Bl(r.current,e.select(i));return r.current=o,o}return e.select(i)}return i})}const G4=m.createContext(void 0),f9e=m.createContext(void 0);function Hu(e){const t=m.useContext(e.from?f9e:G4);return ua({select:n=>{const r=n.matches.find(i=>e.from?e.from===i.routeId:i.id===t);if(Qc(!((e.shouldThrow??!0)&&!r),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),r!==void 0)return e.select?e.select(r):r},structuralSharing:e.structuralSharing})}function pT(e){return Hu({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function mT(e){const{select:t,...n}=e;return Hu({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function gT(e){return Hu({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function vT(e){return Hu({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Q0(e){const t=gs();return m.useCallback(n=>t.navigate({...n,from:n.from??(e==null?void 0:e.from)}),[e==null?void 0:e.from,t])}const Y4=typeof window<"u"?m.useLayoutEffect:m.useEffect;function yT(e){const t=m.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function h9e(e,t,n={},r={}){m.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const i=new IntersectionObserver(([o])=>{t(o)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function p9e(e){const t=m.useRef(null);return m.useImperativeHandle(e,()=>t.current,[]),t}function m9e(e,t){const n=gs(),[r,i]=m.useState(!1),o=m.useRef(!1),a=p9e(t),{activeProps:s,inactiveProps:l,activeOptions:c,to:d,preload:f,preloadDelay:p,hashScrollIntoView:v,replace:x,startTransition:y,resetScroll:b,viewTransition:w,children:_,target:S,disabled:C,style:j,className:T,onClick:E,onFocus:$,onMouseEnter:D,onMouseLeave:M,onTouchStart:O,ignoreBlocker:te,params:q,search:P,hash:X,state:A,mask:Y,reloadDocument:F,unsafeRelative:H,from:ee,_fromLocation:ce,...B}=e,ae=ua({select:Qe=>Qe.location.search,structuralSharing:!0}),je=e.from,me=m.useMemo(()=>({...e,from:je}),[n,ae,je,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ke=m.useMemo(()=>n.buildLocation({...me}),[n,me]),he=m.useMemo(()=>{if(C)return;let Qe=ke.maskedLocation?ke.maskedLocation.url:ke.url,Ke=!1;return n.origin&&(Qe.startsWith(n.origin)?Qe=n.history.createHref(Qe.replace(n.origin,""))||"/":Ke=!0),{href:Qe,external:Ke}},[C,ke.maskedLocation,ke.url,n.origin,n.history]),ue=m.useMemo(()=>{if(he!=null&&he.external)return he.href;try{return new URL(d),d}catch{}},[d,he]),re=e.reloadDocument||ue?!1:f??n.options.defaultPreload,ge=p??n.options.defaultPreloadDelay??0,$e=ua({select:Qe=>{if(ue)return!1;if(c!=null&&c.exact){if(!Qje(Qe.location.pathname,ke.pathname,n.basepath))return!1}else{const Ke=D4(Qe.location.pathname,n.basepath),De=D4(ke.pathname,n.basepath);if(!(Ke.startsWith(De)&&(Ke.length===De.length||Ke[De.length]==="/")))return!1}return((c==null?void 0:c.includeSearch)??!0)&&!Rf(Qe.location.search,ke.search,{partial:!(c!=null&&c.exact),ignoreUndefined:!(c!=null&&c.explicitUndefined)})?!1:c!=null&&c.includeHash?Qe.location.hash===ke.hash:!0}}),pe=m.useCallback(()=>{n.preloadRoute({...me}).catch(Qe=>{console.warn(Qe),console.warn(q8e)})},[n,me]),ye=m.useCallback(Qe=>{Qe!=null&&Qe.isIntersecting&&pe()},[pe]);h9e(a,ye,x9e,{disabled:!!C||re!=="viewport"}),m.useEffect(()=>{o.current||!C&&re==="render"&&(pe(),o.current=!0)},[C,pe,re]);const Se=Qe=>{const Ke=Qe.currentTarget.getAttribute("target"),De=S!==void 0?S:Ke;if(!C&&!_9e(Qe)&&!Qe.defaultPrevented&&(!De||De==="_self")&&Qe.button===0){Qe.preventDefault(),Kc.flushSync(()=>{i(!0)});const Dt=n.subscribe("onResolved",()=>{Dt(),i(!1)});n.navigate({...me,replace:x,resetScroll:b,hashScrollIntoView:v,startTransition:y,viewTransition:w,ignoreBlocker:te})}};if(ue)return{...B,ref:a,href:ue,..._&&{children:_},...S&&{target:S},...C&&{disabled:C},...j&&{style:j},...T&&{className:T},...E&&{onClick:E},...$&&{onFocus:$},...D&&{onMouseEnter:D},...M&&{onMouseLeave:M},...O&&{onTouchStart:O}};const Ce=Qe=>{C||re&&pe()},Ue=Ce,Ge=Qe=>{if(!(C||!re))if(!ge)pe();else{const Ke=Qe.target;if(Dy.has(Ke))return;const De=setTimeout(()=>{Dy.delete(Ke),pe()},ge);Dy.set(Ke,De)}},_t=Qe=>{if(C||!re||!ge)return;const Ke=Qe.target,De=Dy.get(Ke);De&&(clearTimeout(De),Dy.delete(Ke))},St=$e?ip(s,{})??g9e:bT,ut=$e?bT:ip(l,{})??bT,ct=[T,St.className,ut.className].filter(Boolean).join(" "),bt=(j||St.style||ut.style)&&{...j,...St.style,...ut.style};return{...B,...St,...ut,href:he==null?void 0:he.href,ref:a,onClick:Ay([E,Se]),onFocus:Ay([$,Ce]),onMouseEnter:Ay([D,Ge]),onMouseLeave:Ay([M,_t]),onTouchStart:Ay([O,Ue]),disabled:!!C,target:S,...bt&&{style:bt},...ct&&{className:ct},...C&&v9e,...$e&&y9e,...r&&b9e}}const bT={},g9e={className:"active"},v9e={role:"link","aria-disabled":!0},y9e={"data-status":"active","aria-current":"page"},b9e={"data-transitioning":"transitioning"},Dy=new WeakMap,x9e={rootMargin:"100px"},Ay=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},sp=m.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:i,ref:o,...a}=m9e(r,t),s=typeof r.children=="function"?r.children({isActive:a["data-status"]==="active"}):r.children;return n===void 0&&delete a.disabled,m.createElement(n||"a",{...a,ref:o},s)});function _9e(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}let w9e=class extends Tq{constructor(e){super(e),this.useMatch=t=>Hu({select:t==null?void 0:t.select,from:this.id,structuralSharing:t==null?void 0:t.structuralSharing}),this.useRouteContext=t=>Hu({...t,from:this.id,select:n=>t!=null&&t.select?t.select(n.context):n.context}),this.useSearch=t=>vT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useParams=t=>gT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useLoaderDeps=t=>mT({...t,from:this.id}),this.useLoaderData=t=>pT({...t,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Pe.forwardRef((t,n)=>u.jsx(sp,{ref:n,from:this.fullPath,...t})),this.$$typeof=Symbol.for("react.memo")}};function k9e(e){return new w9e(e)}class S9e extends G8e{constructor(t){super(t),this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({...n,from:this.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>vT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useParams=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useLoaderDeps=n=>mT({...n,from:this.id}),this.useLoaderData=n=>pT({...n,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Pe.forwardRef((n,r)=>u.jsx(sp,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function C9e(e){return new S9e(e)}function lp(e){return typeof e=="object"?new Mq(e,{silent:!0}).createRoute(e):new Mq(e,{silent:!0}).createRoute}class Mq{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const i=k9e(r);return i.isRoot=!1,i},this.silent=n==null?void 0:n.silent}}class Rq{constructor(t){this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.options.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({from:this.options.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>vT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useParams=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>mT({...n,from:this.options.id}),this.useLoaderData=n=>pT({...n,from:this.options.id}),this.useNavigate=()=>{const n=gs();return Q0({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function Lq(e){return typeof e=="object"?new Rq(e):t=>new Rq({id:e,...t})}function j9e(){const e=gs(),t=m.useRef({router:e,mounted:!1}),[n,r]=m.useState(!1),{hasPendingMatches:i,isLoading:o}=ua({select:f=>({isLoading:f.isLoading,hasPendingMatches:f.matches.some(p=>p.status==="pending")}),structuralSharing:!0}),a=yT(o),s=o||n||i,l=yT(s),c=o||i,d=yT(c);return e.startTransition=f=>{r(!0),m.startTransition(()=>{f(),r(!1)})},m.useEffect(()=>{const f=e.history.subscribe(e.load),p=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Pf(e.latestLocation.href)!==Pf(p.href)&&e.commitLocation({...p,replace:!0}),()=>{f()}},[e,e.history]),Y4(()=>{typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(f){console.error(f)}})())},[e]),Y4(()=>{a&&!o&&e.emit({type:"onLoad",...ap(e.state)})},[a,e,o]),Y4(()=>{d&&!c&&e.emit({type:"onBeforeRouteMount",...ap(e.state)})},[c,d,e]),Y4(()=>{l&&!s&&(e.emit({type:"onResolved",...ap(e.state)}),e.__store.setState(f=>({...f,status:"idle",resolvedLocation:f.location})),T8e(e))},[s,l,e]),null}function T9e(e){const t=ua({select:n=>`not-found-${n.location.pathname}-${n.status}`});return u.jsx(fT,{getResetKey:()=>t,onCatch:(n,r)=>{var i;if(Wl(n))(i=e.onCatch)==null||i.call(e,n,r);else throw n},errorComponent:({error:n})=>{var r;if(Wl(n))return(r=e.fallback)==null?void 0:r.call(e,n);throw n},children:e.children})}function I9e(){return u.jsx("p",{children:"Not Found"})}function eg(e){return u.jsx(u.Fragment,{children:e.children})}function Pq(e,t,n){return t.options.notFoundComponent?u.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?u.jsx(e.options.defaultNotFoundComponent,{data:n}):u.jsx(I9e,{})}function E9e({children:e}){var n;const t=gs();return t.isServer?u.jsx("script",{nonce:(n=t.options.ssr)==null?void 0:n.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` +`)+";$_TSR.c()"}}):null}function N9e(){const e=gs();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const t=(e.options.getScrollRestorationKey||lT)(e.latestLocation),n=t!==lT(e.latestLocation)?t:void 0,r={storageKey:A4,shouldScrollRestoration:!0};return n&&(r.key=n),u.jsx(E9e,{children:`(${mq.toString()})(${JSON.stringify(r)})`})}const Oq=m.memo(function({matchId:e}){var b,w;const t=gs(),n=ua({select:_=>{const S=_.matches.find(C=>C.id===e);return Qc(S),{routeId:S.routeId,ssr:S.ssr,_displayPending:S._displayPending}},structuralSharing:!0}),r=t.routesById[n.routeId],i=r.options.pendingComponent??t.options.defaultPendingComponent,o=i?u.jsx(i,{}):null,a=r.options.errorComponent??t.options.defaultErrorComponent,s=r.options.onCatch??t.options.defaultOnCatch,l=r.isRoot?r.options.notFoundComponent??((b=t.options.notFoundRoute)==null?void 0:b.options.component):r.options.notFoundComponent,c=n.ssr===!1||n.ssr==="data-only",d=(!r.isRoot||r.options.wrapInSuspense||c)&&(r.options.wrapInSuspense??i??(((w=r.options.errorComponent)==null?void 0:w.preload)||c))?m.Suspense:eg,f=a?fT:eg,p=l?T9e:eg,v=ua({select:_=>_.loadedAt}),x=ua({select:_=>{var C;const S=_.matches.findIndex(j=>j.id===e);return(C=_.matches[S-1])==null?void 0:C.routeId}}),y=r.isRoot?r.options.shellComponent??eg:eg;return u.jsxs(y,{children:[u.jsx(G4.Provider,{value:e,children:u.jsx(d,{fallback:o,children:u.jsx(f,{getResetKey:()=>v,errorComponent:a||Z4,onCatch:(_,S)=>{if(Wl(_))throw _;s==null||s(_,S)},children:u.jsx(p,{fallback:_=>{if(!l||_.routeId&&_.routeId!==n.routeId||!_.routeId&&!r.isRoot)throw _;return m.createElement(l,_)},children:c||n._displayPending?u.jsx(J8e,{fallback:o,children:u.jsx(zq,{matchId:e})}):u.jsx(zq,{matchId:e})})})})}),x===ms&&t.options.scrollRestoration?u.jsxs(u.Fragment,{children:[u.jsx($9e,{}),u.jsx(N9e,{})]}):null]})});function $9e(){const e=gs(),t=m.useRef(void 0);return u.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...ap(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const zq=m.memo(function({matchId:e}){var s,l,c,d;const t=gs(),{match:n,key:r,routeId:i}=ua({select:f=>{var y;const p=f.matches.find(b=>b.id===e),v=p.routeId,x=(y=t.routesById[v].options.remountDeps??t.options.defaultRemountDeps)==null?void 0:y({routeId:v,loaderDeps:p.loaderDeps,params:p._strictParams,search:p._strictSearch});return{key:x?JSON.stringify(x):void 0,routeId:v,match:{id:p.id,status:p.status,error:p.error,_forcePending:p._forcePending,_displayPending:p._displayPending}}},structuralSharing:!0}),o=t.routesById[i],a=m.useMemo(()=>{const f=o.options.component??t.options.defaultComponent;return f?u.jsx(f,{},r):u.jsx(Dq,{})},[r,o.options.component,t.options.defaultComponent]);if(n._displayPending)throw(s=t.getMatch(n.id))==null?void 0:s._nonReactive.displayPendingPromise;if(n._forcePending)throw(l=t.getMatch(n.id))==null?void 0:l._nonReactive.minPendingPromise;if(n.status==="pending"){const f=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(f){const p=t.getMatch(n.id);if(p&&!p._nonReactive.minPendingPromise&&!t.isServer){const v=Y0();p._nonReactive.minPendingPromise=v,setTimeout(()=>{v.resolve(),p._nonReactive.minPendingPromise=void 0},f)}}throw(c=t.getMatch(n.id))==null?void 0:c._nonReactive.loadPromise}if(n.status==="notFound")return Qc(Wl(n.error)),Pq(t,o,n.error);if(n.status==="redirected")throw Qc(Vu(n.error)),(d=t.getMatch(n.id))==null?void 0:d._nonReactive.loadPromise;if(n.status==="error"){if(t.isServer){const f=(o.options.errorComponent??t.options.defaultErrorComponent)||Z4;return u.jsx(f,{error:n.error,reset:void 0,info:{componentStack:""}})}throw n.error}return a}),Dq=m.memo(function(){const e=gs(),t=m.useContext(G4),n=ua({select:l=>{var c;return(c=l.matches.find(d=>d.id===t))==null?void 0:c.routeId}}),r=e.routesById[n],i=ua({select:l=>{const c=l.matches.find(d=>d.id===t);return Qc(c),c.globalNotFound}}),o=ua({select:l=>{var f;const c=l.matches,d=c.findIndex(p=>p.id===t);return(f=c[d+1])==null?void 0:f.id}}),a=e.options.defaultPendingComponent?u.jsx(e.options.defaultPendingComponent,{}):null;if(i)return Pq(e,r,void 0);if(!o)return null;const s=u.jsx(Oq,{matchId:o});return n===ms?u.jsx(m.Suspense,{fallback:a,children:s}):s});function M9e(){const e=gs(),t=e.routesById[ms].options.pendingComponent??e.options.defaultPendingComponent,n=t?u.jsx(t,{}):null,r=e.isServer||typeof document<"u"&&e.ssr?eg:m.Suspense,i=u.jsxs(r,{fallback:n,children:[!e.isServer&&u.jsx(j9e,{}),u.jsx(R9e,{})]});return e.options.InnerWrap?u.jsx(e.options.InnerWrap,{children:i}):i}function R9e(){const e=gs(),t=ua({select:i=>{var o;return(o=i.matches[0])==null?void 0:o.id}}),n=ua({select:i=>i.loadedAt}),r=t?u.jsx(Oq,{matchId:t}):null;return u.jsx(G4.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:u.jsx(fT,{getResetKey:()=>n,errorComponent:Z4,onCatch:i=>{i.message||i.toString()},children:r})})}const L9e=e=>new P9e(e);class P9e extends B8e{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=lp,globalThis.createLazyFileRoute=Lq):typeof window<"u"&&(window.createFileRoute=lp,window.createLazyFileRoute=Lq);function O9e({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=$q(),i=u.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?u.jsx(e.options.Wrap,{children:i}):i}function z9e({router:e,...t}){return u.jsx(O9e,{router:e,...t,children:u.jsx(M9e,{})})}function D9e(e){return ua({select:t=>t.location})}const tg={};function Aq(e){return"init"in e}function xT(e){return!!e.write}function Fq(e){return"v"in e||"e"in e}function K4(e){if("e"in e)throw e.e;if((tg?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}const X4=new WeakMap;function Uq(e){var t;return J4(e)&&!!((t=X4.get(e))!=null&&t[0])}function A9e(e){const t=X4.get(e);t!=null&&t[0]&&(t[0]=!1,t[1].forEach(n=>n()))}function _T(e,t){let n=X4.get(e);if(!n){n=[!0,new Set],X4.set(e,n);const r=()=>{n[0]=!1};e.then(r,r)}n[1].add(t)}function J4(e){return typeof(e==null?void 0:e.then)=="function"}function Bq(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function Wq(e,t,n){var r;const i=new Set;for(const o of((r=n.get(e))==null?void 0:r.t)||[])n.has(o)&&i.add(o);for(const o of t.p)i.add(o);return i}const F9e=(e,t,...n)=>t.read(...n),U9e=(e,t,...n)=>t.write(...n),B9e=(e,t)=>{var n;return(n=t.unstable_onInit)==null?void 0:n.call(t,e)},W9e=(e,t,n)=>{var r;return(r=t.onMount)==null?void 0:r.call(t,n)},V9e=(e,t)=>{const n=Fo(e),r=n[0],i=n[9];if((tg?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let o=r.get(t);return o||(o={d:new Map,p:new Set,n:0},r.set(t,o),i==null||i(e,t)),o},H9e=e=>{const t=Fo(e),n=t[1],r=t[3],i=t[4],o=t[5],a=t[6],s=t[13],l=[],c=d=>{try{d()}catch(f){l.push(f)}};do{a.f&&c(a.f);const d=new Set,f=d.add.bind(d);r.forEach(p=>{var v;return(v=n.get(p))==null?void 0:v.l.forEach(f)}),r.clear(),o.forEach(f),o.clear(),i.forEach(f),i.clear(),d.forEach(c),r.size&&s(e)}while(r.size||o.size||i.size);if(l.length)throw new AggregateError(l)},Z9e=e=>{const t=Fo(e),n=t[1],r=t[2],i=t[3],o=t[11],a=t[14],s=t[17],l=[],c=new WeakSet,d=new WeakSet,f=Array.from(i);for(;f.length;){const p=f[f.length-1],v=o(e,p);if(d.has(p)){f.pop();continue}if(c.has(p)){if(r.get(p)===v.n)l.push([p,v]);else if((tg?"production":void 0)!=="production"&&r.has(p))throw new Error("[Bug] invalidated atom exists");d.add(p),f.pop();continue}c.add(p);for(const x of Wq(p,v,n))c.has(x)||f.push(x)}for(let p=l.length-1;p>=0;--p){const[v,x]=l[p];let y=!1;for(const b of x.d.keys())if(b!==v&&i.has(b)){y=!0;break}y&&(a(e,v),s(e,v)),r.delete(v)}},q9e=(e,t)=>{var n,r;const i=Fo(e),o=i[1],a=i[2],s=i[3],l=i[6],c=i[7],d=i[11],f=i[12],p=i[13],v=i[14],x=i[16],y=i[17],b=d(e,t);if(Fq(b)&&(o.has(t)&&a.get(t)!==b.n||Array.from(b.d).every(([$,D])=>v(e,$).n===D)))return b;b.d.clear();let w=!0;function _(){o.has(t)&&(y(e,t),p(e),f(e))}function S($){var D;if($===t){const O=d(e,$);if(!Fq(O))if(Aq($))Q4(e,$,$.init);else throw new Error("no atom init");return K4(O)}const M=v(e,$);try{return K4(M)}finally{b.d.set($,M.n),Uq(b.v)&&Bq(t,b.v,M),(D=o.get($))==null||D.t.add(t),w||_()}}let C,j;const T={get signal(){return C||(C=new AbortController),C.signal},get setSelf(){return(tg?"production":void 0)!=="production"&&!xT(t)&&console.warn("setSelf function cannot be used with read-only atom"),!j&&xT(t)&&(j=(...$)=>{if((tg?"production":void 0)!=="production"&&w&&console.warn("setSelf function cannot be called in sync"),!w)try{return x(e,t,...$)}finally{p(e),f(e)}}),j}},E=b.n;try{const $=c(e,t,S,T);return Q4(e,t,$),J4($)&&(_T($,()=>C==null?void 0:C.abort()),$.then(_,_)),(n=l.r)==null||n.call(l,t),b}catch($){return delete b.v,b.e=$,++b.n,b}finally{w=!1,E!==b.n&&a.get(t)===E&&(a.set(t,b.n),s.add(t),(r=l.c)==null||r.call(l,t))}},G9e=(e,t)=>{const n=Fo(e),r=n[1],i=n[2],o=n[11],a=[t];for(;a.length;){const s=a.pop(),l=o(e,s);for(const c of Wq(s,l,r)){const d=o(e,c);i.set(c,d.n),a.push(c)}}},Vq=(e,t,...n)=>{const r=Fo(e),i=r[3],o=r[6],a=r[8],s=r[11],l=r[12],c=r[13],d=r[14],f=r[15],p=r[17];let v=!0;const x=b=>K4(d(e,b)),y=(b,...w)=>{var _;const S=s(e,b);try{if(b===t){if(!Aq(b))throw new Error("atom not writable");const C=S.n,j=w[0];Q4(e,b,j),p(e,b),C!==S.n&&(i.add(b),(_=o.c)==null||_.call(o,b),f(e,b));return}else return Vq(e,b,...w)}finally{v||(c(e),l(e))}};try{return a(e,t,x,y,...n)}finally{v=!1}},Y9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[3],a=r[6],s=r[11],l=r[15],c=r[18],d=r[19],f=s(e,t),p=i.get(t);if(p&&!Uq(f.v)){for(const[v,x]of f.d)if(!p.d.has(v)){const y=s(e,v);c(e,v).t.add(t),p.d.add(v),x!==y.n&&(o.add(v),(n=a.c)==null||n.call(a,v),l(e,v))}for(const v of p.d||[])if(!f.d.has(v)){p.d.delete(v);const x=d(e,v);x==null||x.t.delete(t)}}},Hq=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[4],a=r[6],s=r[10],l=r[11],c=r[12],d=r[13],f=r[14],p=r[16],v=l(e,t);let x=i.get(t);if(!x){f(e,t);for(const y of v.d.keys())Hq(e,y).t.add(t);if(x={l:new Set,d:new Set(v.d.keys()),t:new Set},i.set(t,x),(n=a.m)==null||n.call(a,t),xT(t)){const y=()=>{let b=!0;const w=(..._)=>{try{return p(e,t,..._)}finally{b||(d(e),c(e))}};try{const _=s(e,t,w);_&&(x.u=()=>{b=!0;try{_()}finally{b=!1}})}finally{b=!1}};o.add(y)}}return x},K9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[5],a=r[6],s=r[11],l=r[19],c=s(e,t);let d=i.get(t);if(d&&!d.l.size&&!Array.from(d.t).some(f=>{var p;return(p=i.get(f))==null?void 0:p.d.has(t)})){d.u&&o.add(d.u),d=void 0,i.delete(t),(n=a.u)==null||n.call(a,t);for(const f of c.d.keys()){const p=l(e,f);p==null||p.t.delete(t)}return}return d},Q4=(e,t,n)=>{const r=Fo(e)[11],i=r(e,t),o="v"in i,a=i.v;if(J4(n))for(const s of i.d.keys())Bq(t,n,r(e,s));i.v=n,delete i.e,(!o||!Object.is(a,i.v))&&(++i.n,J4(a)&&A9e(a))},X9e=(e,t)=>{const n=Fo(e)[14];return K4(n(e,t))},J9e=(e,t,...n)=>{const r=Fo(e),i=r[12],o=r[13],a=r[16];try{return a(e,t,...n)}finally{o(e),i(e)}},Q9e=(e,t,n)=>{const r=Fo(e),i=r[12],o=r[18],a=r[19],s=o(e,t).l;return s.add(n),i(e),()=>{s.delete(n),a(e,t),i(e)}},Zq=new WeakMap,Fo=e=>{const t=Zq.get(e);if((tg?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function e7e(...e){const t={get(r){const i=Fo(t)[21];return i(t,r)},set(r,...i){const o=Fo(t)[22];return o(t,r,...i)},sub(r,i){const o=Fo(t)[23];return o(t,r,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},F9e,U9e,B9e,W9e,V9e,H9e,Z9e,q9e,G9e,Vq,Y9e,Hq,K9e,Q4,X9e,J9e,Q9e,void 0].map((r,i)=>e[i]||r);return Zq.set(t,Object.freeze(n)),t}const qq={};let t7e=0;function fe(e,t){const n=`atom${++t7e}`,r={toString(){return(qq?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=n7e,r.write=r7e),t&&(r.write=t),r}function n7e(e){return e(this)}function r7e(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function i7e(){return e7e()}let Fy;function ca(){return Fy||(Fy=i7e(),(qq?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Fy),globalThis.__JOTAI_DEFAULT_STORE__!==Fy&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Fy}const o7e={},a7e=m.createContext(void 0);function Gq(e){return m.useContext(a7e)||ca()}const wT=e=>typeof(e==null?void 0:e.then)=="function",kT=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},s7e=Pe.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(kT(e),e)}),ST=new WeakMap,Yq=(e,t)=>{let n=ST.get(e);return n||(n=new Promise((r,i)=>{let o=e;const a=c=>d=>{o===c&&r(d)},s=c=>d=>{o===c&&i(d)},l=()=>{try{const c=t();wT(c)?(ST.set(c,n),o=c,c.then(a(c),s(c)),_T(c,l)):r(c)}catch(c){i(c)}};e.then(a(e),s(e)),_T(e,l)}),ST.set(e,n)),n};function J(e,t){const{delay:n,unstable_promiseStatus:r=!Pe.use}={},i=Gq(),[[o,a,s],l]=m.useReducer(d=>{const f=i.get(e);return Object.is(d[0],f)&&d[1]===i&&d[2]===e?d:[f,i,e]},void 0,()=>[i.get(e),i,e]);let c=o;if((a!==i||s!==e)&&(l(),c=i.get(e)),m.useEffect(()=>{const d=i.sub(e,()=>{if(r)try{const f=i.get(e);wT(f)&&kT(Yq(f,()=>i.get(e)))}catch{}if(typeof n=="number"){setTimeout(l,n);return}l()});return l(),d},[i,e,n,r]),m.useDebugValue(c),wT(c)){const d=Yq(c,()=>i.get(e));return r&&kT(d),s7e(d)}return c}function Ee(e,t){const n=Gq();return m.useCallback((...r)=>{if((o7e?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return n.set(e,...r)},[n,e])}function Vl(e,t){return[J(e),Ee(e)]}var Kq=Symbol.for("immer-nothing"),Xq=Symbol.for("immer-draftable"),Vn=Symbol.for("immer-state");function rl(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Uy=Object.getPrototypeOf;function ng(e){return!!e&&!!e[Vn]}function td(e){var t;return e?Qq(e)||Array.isArray(e)||!!e[Xq]||!!((t=e.constructor)!=null&&t[Xq])||Wy(e)||t3(e):!1}var l7e=Object.prototype.constructor.toString(),Jq=new WeakMap;function Qq(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let r=Jq.get(n);return r===void 0&&(r=Function.toString.call(n),Jq.set(n,r)),r===l7e}function By(e,t,n=!0){e3(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,i)=>t(i,r,e))}function e3(e){const t=e[Vn];return t?t.type_:Array.isArray(e)?1:Wy(e)?2:t3(e)?3:0}function CT(e,t){return e3(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function eG(e,t,n){const r=e3(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function u7e(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Wy(e){return e instanceof Map}function t3(e){return e instanceof Set}function io(e){return e.copy_||e.base_}function jT(e,t){if(Wy(e))return new Map(e);if(t3(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=Qq(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[Vn];let i=Reflect.ownKeys(r);for(let o=0;o1&&Object.defineProperties(e,{set:n3,add:n3,clear:n3,delete:n3}),Object.freeze(e),t&&Object.values(e).forEach(n=>TT(n,!0))),e}function c7e(){rl(2)}var n3={value:c7e};function r3(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var IT={};function up(e){const t=IT[e];return t||rl(0,e),t}function d7e(e,t){IT[e]||(IT[e]=t)}var Vy;function i3(){return Vy}function f7e(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function tG(e,t){t&&(up("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function ET(e){NT(e),e.drafts_.forEach(h7e),e.drafts_=null}function NT(e){e===Vy&&(Vy=e.parent_)}function nG(e){return Vy=f7e(Vy,e)}function h7e(e){const t=e[Vn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rG(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[Vn].modified_&&(ET(t),rl(4)),td(e)&&(e=o3(t,e),t.parent_||a3(t,e)),t.patches_&&up("Patches").generateReplacementPatches_(n[Vn].base_,e,t.patches_,t.inversePatches_)):e=o3(t,n,[]),ET(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Kq?e:void 0}function o3(e,t,n){if(r3(t))return t;const r=e.immer_.shouldUseStrictIteration(),i=t[Vn];if(!i)return By(t,(o,a)=>iG(e,i,t,o,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return a3(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let a=o,s=!1;i.type_===3&&(a=new Set(o),o.clear(),s=!0),By(a,(l,c)=>iG(e,i,o,l,c,n,s),r),a3(e,o,!1),n&&e.patches_&&up("Patches").generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function iG(e,t,n,r,i,o,a){if(i==null||typeof i!="object"&&!a)return;const s=r3(i);if(!(s&&!a)){if(ng(i)){const l=o&&t&&t.type_!==3&&!CT(t.assigned_,r)?o.concat(r):void 0,c=o3(e,i,l);if(eG(n,r,c),ng(c))e.canAutoFreeze_=!1;else return}else a&&n.add(i);if(td(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;o3(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&(Wy(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&a3(e,i)}}}function a3(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&TT(t,n)}function p7e(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:i3(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,o=$T;n&&(i=[r],o=Hy);const{revoke:a,proxy:s}=Proxy.revocable(i,o);return r.draft_=s,r.revoke_=a,s}var $T={get(e,t){if(t===Vn)return e;const n=io(e);if(!CT(n,t))return m7e(e,n,t);const r=n[t];return e.finalized_||!td(r)?r:r===MT(e.base_,t)?(RT(e),e.copy_[t]=Zy(r,e)):r},has(e,t){return t in io(e)},ownKeys(e){return Reflect.ownKeys(io(e))},set(e,t,n){const r=oG(io(e),t);if(r!=null&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=MT(io(e),t),o=i==null?void 0:i[Vn];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(u7e(n,i)&&(n!==void 0||CT(e.base_,t)))return!0;RT(e),nd(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return MT(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,RT(e),nd(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=io(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){rl(11)},getPrototypeOf(e){return Uy(e.base_)},setPrototypeOf(){rl(12)}},Hy={};By($T,(e,t)=>{Hy[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),Hy.deleteProperty=function(e,t){return Hy.set.call(this,e,t,void 0)},Hy.set=function(e,t,n){return $T.set.call(this,e[0],t,n,e[0])};function MT(e,t){const n=e[Vn];return(n?io(n):e)[t]}function m7e(e,t,n){var i;const r=oG(t,n);return r?"value"in r?r.value:(i=r.get)==null?void 0:i.call(e.draft_):void 0}function oG(e,t){if(!(t in e))return;let n=Uy(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Uy(n)}}function nd(e){e.modified_||(e.modified_=!0,e.parent_&&nd(e.parent_))}function RT(e){e.copy_||(e.copy_=jT(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var g7e=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const o=n;n=t;const a=this;return function(s=o,...l){return a.produce(s,c=>n.call(this,c,...l))}}typeof n!="function"&&rl(6),r!==void 0&&typeof r!="function"&&rl(7);let i;if(td(t)){const o=nG(this),a=Zy(t,void 0);let s=!0;try{i=n(a),s=!1}finally{s?ET(o):NT(o)}return tG(o,r),rG(i,o)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===Kq&&(i=void 0),this.autoFreeze_&&TT(i,!0),r){const o=[],a=[];up("Patches").generateReplacementPatches_(t,i,o,a),r(o,a)}return i}else rl(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(o,...a)=>this.produceWithPatches(o,s=>t(s,...a));let r,i;return[this.produce(t,n,(o,a)=>{r=o,i=a}),r,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){td(e)||rl(8),ng(e)&&(e=v7e(e));const t=nG(this),n=Zy(e,void 0);return n[Vn].isManual_=!0,NT(t),n}finishDraft(e,t){const n=e&&e[Vn];(!n||!n.isManual_)&&rl(9);const{scope_:r}=n;return tG(r,t),rG(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=up("Patches").applyPatches_;return ng(e)?r(e,t):this.produce(e,i=>r(i,t))}};function Zy(e,t){const n=Wy(e)?up("MapSet").proxyMap_(e,t):t3(e)?up("MapSet").proxySet_(e,t):p7e(e,t);return(t?t.scope_:i3()).drafts_.push(n),n}function v7e(e){return ng(e)||rl(10,e),aG(e)}function aG(e){if(!td(e)||r3(e))return e;const t=e[Vn];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=jT(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=jT(e,!0);return By(n,(i,o)=>{eG(n,i,aG(o))},r),t&&(t.finalized_=!1),n}function y7e(){class e extends Map{constructor(l,c){super(),this[Vn]={type_:2,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:l,draft_:this,isManual_:!1,revoked_:!1}}get size(){return io(this[Vn]).size}has(l){return io(this[Vn]).has(l)}set(l,c){const d=this[Vn];return a(d),(!io(d).has(l)||io(d).get(l)!==c)&&(n(d),nd(d),d.assigned_.set(l,!0),d.copy_.set(l,c),d.assigned_.set(l,!0)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),n(c),nd(c),c.base_.has(l)?c.assigned_.set(l,!1):c.assigned_.delete(l),c.copy_.delete(l),!0}clear(){const l=this[Vn];a(l),io(l).size&&(n(l),nd(l),l.assigned_=new Map,By(l.base_,c=>{l.assigned_.set(c,!1)}),l.copy_.clear())}forEach(l,c){const d=this[Vn];io(d).forEach((f,p,v)=>{l.call(c,this.get(p),p,this)})}get(l){const c=this[Vn];a(c);const d=io(c).get(l);if(c.finalized_||!td(d)||d!==c.base_.get(l))return d;const f=Zy(d,c);return n(c),c.copy_.set(l,f),f}keys(){return io(this[Vn]).keys()}values(){const l=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{const c=l.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){const l=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{const c=l.next();if(c.done)return c;const d=this.get(c.value);return{done:!1,value:[c.value,d]}}}}[Symbol.iterator](){return this.entries()}}function t(s,l){return new e(s,l)}function n(s){s.copy_||(s.assigned_=new Map,s.copy_=new Map(s.base_))}class r extends Set{constructor(l,c){super(),this[Vn]={type_:3,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,base_:l,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return io(this[Vn]).size}has(l){const c=this[Vn];return a(c),c.copy_?!!(c.copy_.has(l)||c.drafts_.has(l)&&c.copy_.has(c.drafts_.get(l))):c.base_.has(l)}add(l){const c=this[Vn];return a(c),this.has(l)||(o(c),nd(c),c.copy_.add(l)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),o(c),nd(c),c.copy_.delete(l)||(c.drafts_.has(l)?c.copy_.delete(c.drafts_.get(l)):!1)}clear(){const l=this[Vn];a(l),io(l).size&&(o(l),nd(l),l.copy_.clear())}values(){const l=this[Vn];return a(l),o(l),l.copy_.values()}entries(){const l=this[Vn];return a(l),o(l),l.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(l,c){const d=this.values();let f=d.next();for(;!f.done;)l.call(c,f.value,f.value,this),f=d.next()}}function i(s,l){return new r(s,l)}function o(s){s.copy_||(s.copy_=new Set,s.base_.forEach(l=>{if(td(l)){const c=Zy(l,s);s.drafts_.set(l,c),s.copy_.add(c)}else s.copy_.add(l)}))}function a(s){s.revoked_&&rl(3,JSON.stringify(io(s)))}d7e("MapSet",{proxyMap_:t,proxySet_:i})}var b7e=new g7e,sG=b7e.produce;function Co(e){const t=fe(e,(n,r,i)=>r(t,sG(n(t),typeof i=="function"?i:()=>i)));return t}function lG(e){const t=fe(e);let n;return fe(r=>r(t),(r,i,o)=>{n!==void 0&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=void 0,i(t,o)})})}function x7e(e=6e4){const t=Co({});return n=>fe(r=>n==null?!1:!!r(t)[n],(r,i)=>{if(n==null)return;const o=setTimeout(()=>{i(t,a=>{delete a[n]})},e);i(t,a=>{a[n]&&clearTimeout(a[n]),a[n]=o})})}const LT={values:[],history:[]},uG=fe(void 0),qy=fe(void 0),cG=fe(void 0),cp=fe(void 0),dG=fe(void 0),rg=fe(void 0),s3=fe(void 0),fG=fe(void 0),hG=fe(void 0),pG=fe(void 0),mG=fe(void 0),dp=fe(void 0),gG=fe(void 0);fe(void 0);const _7e=fe(void 0),vG=fe(void 0),PT=fe(void 0),yG=fe(void 0),Gy=fe(void 0),bG=fe(void 0),xG=fe(void 0),OT=fe(void 0),zT=fe(void 0),_G=fe(LT),wG=fe(LT),kG=lG(void 0),SG=fe(void 0),CG=fe(void 0),l3=fe(void 0),jG=fe(LT),Hl=fe(void 0),Zu=fe(void 0),TG=lG(void 0),w7e=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"],k7e=Object.fromEntries(w7e.map(e=>[e,0])),IG=fe({value:k7e,history:[]}),EG=fe(void 0),NG=fe(void 0),$G=fe(void 0),MG=fe(void 0),DT=fe(void 0),RG=fe(void 0),u3=fe(void 0),LG=fe(void 0),PG=fe(void 0),c3=fe(void 0),S7e="_outer-container_13cf2_1",C7e="_inner-container_13cf2_12",OG={outerContainer:S7e,innerContainer:C7e},zG=Object.freeze({status:"aborted"});function be(e,t,n){function r(s,l){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:l,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,l);const c=a.prototype,d=Object.keys(c);for(let f=0;f{var l,c;return n!=null&&n.Parent&&s instanceof n.Parent?!0:(c=(l=s==null?void 0:s._zod)==null?void 0:l.traits)==null?void 0:c.has(e)}}),Object.defineProperty(a,"name",{value:e}),a}const DG=Symbol("zod_brand");class fp extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class d3 extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const f3={};function da(e){return e&&Object.assign(f3,e),f3}function j7e(e){return e}function T7e(e){return e}function I7e(e){}function E7e(e){throw new Error}function N7e(e){}function AT(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,r])=>t.indexOf(+n)===-1).map(([n,r])=>r)}function qe(e,t="|"){return e.map(n=>Rt(n)).join(t)}function h3(e,t){return typeof t=="bigint"?t.toString():t}function Yy(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function hp(e){return e==null}function p3(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function AG(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let i=(r.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(r)){const l=r.match(/\d?e-(\d?)/);l!=null&&l[1]&&(i=Number.parseInt(l[1]))}const o=n>i?n:i,a=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(t.toFixed(o).replace(".",""));return a%s/10**o}const FG=Symbol("evaluating");function vn(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==FG)return r===void 0&&(r=FG,r=n()),r},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function $7e(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function zf(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function rd(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function M7e(e){return rd(e._zod.def)}function R7e(e,t){return t?t.reduce((n,r)=>n==null?void 0:n[r],e):e}function L7e(e){const t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{const i={};for(let o=0;o{};function ig(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const BG=Yy(()=>{var e;if(typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function pp(e){if(ig(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ig(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function m3(e){return pp(e)?{...e}:Array.isArray(e)?[...e]:e}function O7e(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}const z7e=e=>{const t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},g3=new Set(["string","number","symbol"]),WG=new Set(["string","number","bigint","boolean","symbol","undefined"]);function id(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function il(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n!=null&&n.parent)&&(r._zod.parent=e),r}function Oe(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function D7e(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,o){return t??(t=e()),Reflect.set(t,r,i,o)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function Rt(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function VG(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const HG={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ZG={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function qG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(i[o]=n.shape[o])}return zf(this,"shape",i),i},checks:[]});return il(e,r)}function GG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&delete i[o]}return zf(this,"shape",i),i},checks:[]});return il(e,r)}function YG(e,t){if(!pp(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");const r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return zf(this,"shape",i),i},checks:[]});return il(e,r)}function KG(e,t){if(!pp(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n={...e._zod.def,get shape(){const r={...e._zod.def.shape,...t};return zf(this,"shape",r),r},checks:e._zod.def.checks};return il(e,n)}function XG(e,t){const n=rd(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return zf(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return il(e,n)}function JG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=e?new e({type:"optional",innerType:i[a]}):i[a])}else for(const a in i)o[a]=e?new e({type:"optional",innerType:i[a]}):i[a];return zf(this,"shape",o),o},checks:[]});return il(t,r)}function QG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=new e({type:"nonoptional",innerType:i[a]}))}else for(const a in i)o[a]=new e({type:"nonoptional",innerType:i[a]});return zf(this,"shape",o),o},checks:[]});return il(t,r)}function mp(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Ky(e){return typeof e=="string"?e:e==null?void 0:e.message}function ql(e,t,n){var i,o,a,s,l,c;const r={...e,path:e.path??[]};if(!e.message){const d=Ky((a=(o=(i=e.inst)==null?void 0:i._zod.def)==null?void 0:o.error)==null?void 0:a.call(o,e))??Ky((s=t==null?void 0:t.error)==null?void 0:s.call(t,e))??Ky((l=n.customError)==null?void 0:l.call(n,e))??Ky((c=n.localeError)==null?void 0:c.call(n,e))??"Invalid input";r.message=d}return delete r.inst,delete r.continue,t!=null&&t.reportInput||delete r.input,r}function v3(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function y3(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function og(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function A7e(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function eY(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;rt.toString(16).padStart(2,"0")).join("")}class V7e{constructor(...t){}}const nY=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:ZG,Class:V7e,NUMBER_FORMAT_RANGES:HG,aborted:mp,allowsEval:BG,assert:N7e,assertEqual:j7e,assertIs:I7e,assertNever:E7e,assertNotEqual:T7e,assignProp:zf,base64ToUint8Array:eY,base64urlToUint8Array:F7e,cached:Yy,captureStackTrace:UT,cleanEnum:A7e,cleanRegex:p3,clone:il,cloneDef:M7e,createTransparentProxy:D7e,defineLazy:vn,esc:FT,escapeRegex:id,extend:YG,finalizeIssue:ql,floatSafeRemainder:AG,getElementAtPath:R7e,getEnumValues:AT,getLengthableOrigin:y3,getParsedType:z7e,getSizableOrigin:v3,hexToUint8Array:B7e,isObject:ig,isPlainObject:pp,issue:og,joinValues:qe,jsonStringifyReplacer:h3,merge:XG,mergeDefs:rd,normalizeParams:Oe,nullish:hp,numKeys:O7e,objectClone:$7e,omit:GG,optionalKeys:VG,partial:JG,pick:qG,prefixIssues:Zl,primitiveTypes:WG,promiseAllObject:L7e,propertyKeyTypes:g3,randomString:P7e,required:QG,safeExtend:KG,shallowClone:m3,slugify:UG,stringifyPrimitive:Rt,uint8ArrayToBase64:tY,uint8ArrayToBase64url:U7e,uint8ArrayToHex:W7e,unwrapMessage:Ky},Symbol.toStringTag,{value:"Module"})),rY=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,h3,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},BT=be("$ZodError",rY),vs=be("$ZodError",rY,{Parent:Error});function WT(e,t=n=>n.message){const n={},r=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function VT(e,t=n=>n.message){const n={_errors:[]},r=i=>{for(const o of i.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>r({issues:a}));else if(o.code==="invalid_key")r({issues:o.issues});else if(o.code==="invalid_element")r({issues:o.issues});else if(o.path.length===0)n._errors.push(t(o));else{let a=n,s=0;for(;sn.message){const n={errors:[]},r=(i,o=[])=>{var a,s;for(const l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(c=>r({issues:c},l.path));else if(l.code==="invalid_key")r({issues:l.issues},l.path);else if(l.code==="invalid_element")r({issues:l.issues},l.path);else{const c=[...o,...l.path];if(c.length===0){n.errors.push(t(l));continue}let d=n,f=0;for(;ftypeof r=="object"?r.key:r);for(const r of n)typeof r=="number"?t.push(`[${r}]`):typeof r=="symbol"?t.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?t.push(`[${JSON.stringify(r)}]`):(t.length&&t.push("."),t.push(r));return t.join("")}function aY(e){var r;const t=[],n=[...e.issues].sort((i,o)=>(i.path??[]).length-(o.path??[]).length);for(const i of n)t.push(`\u2716 ${i.message}`),(r=i.path)!=null&&r.length&&t.push(` \u2192 at ${oY(i.path)}`);return t.join(` +`)}const Xy=e=>(t,n,r,i)=>{const o=r?Object.assign(r,{async:!1}):{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new fp;if(a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw UT(s,i==null?void 0:i.callee),s}return a.value},HT=Xy(vs),Jy=e=>async(t,n,r,i)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw UT(s,i==null?void 0:i.callee),s}return a.value},ZT=Jy(vs),Qy=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new fp;return o.issues.length?{success:!1,error:new(e??BT)(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},sY=Qy(vs),eb=e=>async(t,n,r)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},lY=eb(vs),qT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Xy(e)(t,n,i)},H7e=qT(vs),GT=e=>(t,n,r)=>Xy(e)(t,n,r),Z7e=GT(vs),YT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Jy(e)(t,n,i)},q7e=YT(vs),KT=e=>async(t,n,r)=>Jy(e)(t,n,r),G7e=KT(vs),XT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Qy(e)(t,n,i)},Y7e=XT(vs),JT=e=>(t,n,r)=>Qy(e)(t,n,r),K7e=JT(vs),QT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return eb(e)(t,n,i)},X7e=QT(vs),eI=e=>async(t,n,r)=>eb(e)(t,n,r),J7e=eI(vs),uY=/^[cC][^\s-]{8,}$/,cY=/^[0-9a-z]+$/,dY=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fY=/^[0-9a-vA-V]{20}$/,hY=/^[A-Za-z0-9]{27}$/,pY=/^[a-zA-Z0-9_-]{21}$/,mY=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Q7e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,gY=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ag=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,eTe=ag(4),tTe=ag(6),nTe=ag(7),vY=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,rTe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,iTe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,yY=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,oTe=yY,aTe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,sTe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function bY(){return new RegExp(sTe,"u")}const xY=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_Y=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,wY=e=>{const t=id(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},kY=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,SY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,CY=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,tI=/^[A-Za-z0-9_-]*$/,jY=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,TY=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,IY=/^\+(?:[0-9]){6,14}[0-9]$/,EY="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",NY=new RegExp(`^${EY}$`);function $Y(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function MY(e){return new RegExp(`^${$Y(e)}$`)}function RY(e){const t=$Y({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${EY}T(?:${r})$`)}const LY=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},PY=/^-?\d+n?$/,OY=/^-?\d+$/,zY=/^-?\d+(?:\.\d+)?/,DY=/^(?:true|false)$/i,AY=/^null$/i,FY=/^undefined$/i,UY=/^[^A-Z]*$/,BY=/^[^a-z]*$/,WY=/^[0-9a-fA-F]*$/;function tb(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function nb(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}const lTe=/^[0-9a-fA-F]{32}$/,uTe=tb(22,"=="),cTe=nb(22),dTe=/^[0-9a-fA-F]{40}$/,fTe=tb(27,"="),hTe=nb(27),pTe=/^[0-9a-fA-F]{64}$/,mTe=tb(43,"="),gTe=nb(43),vTe=/^[0-9a-fA-F]{96}$/,yTe=tb(64,""),bTe=nb(64),xTe=/^[0-9a-fA-F]{128}$/,_Te=tb(86,"=="),wTe=nb(86),nI=Object.freeze(Object.defineProperty({__proto__:null,base64:CY,base64url:tI,bigint:PY,boolean:DY,browserEmail:aTe,cidrv4:kY,cidrv6:SY,cuid:uY,cuid2:cY,date:NY,datetime:RY,domain:TY,duration:mY,e164:IY,email:vY,emoji:bY,extendedDuration:Q7e,guid:gY,hex:WY,hostname:jY,html5Email:rTe,idnEmail:oTe,integer:OY,ipv4:xY,ipv6:_Y,ksuid:hY,lowercase:UY,mac:wY,md5_base64:uTe,md5_base64url:cTe,md5_hex:lTe,nanoid:pY,null:AY,number:zY,rfc5322Email:iTe,sha1_base64:fTe,sha1_base64url:hTe,sha1_hex:dTe,sha256_base64:mTe,sha256_base64url:gTe,sha256_hex:pTe,sha384_base64:yTe,sha384_base64url:bTe,sha384_hex:vTe,sha512_base64:_Te,sha512_base64url:wTe,sha512_hex:xTe,string:LY,time:MY,ulid:dY,undefined:FY,unicodeEmail:yY,uppercase:BY,uuid:ag,uuid4:eTe,uuid6:tTe,uuid7:nTe,xid:fY},Symbol.toStringTag,{value:"Module"})),Gr=be("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),VY={number:"number",bigint:"bigint",object:"date"},rI=be("$ZodCheckLessThan",(e,t)=>{Gr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{Gr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),HY=be("$ZodCheckMultipleOf",(e,t)=>{Gr.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):AG(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ZY=be("$ZodCheckNumberFormat",(e,t)=>{var a;Gr.init(e,t),t.format=t.format||"float64";const n=(a=t.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,o]=HG[t.format];e._zod.onattach.push(s=>{const l=s._zod.bag;l.format=t.format,l.minimum=i,l.maximum=o,n&&(l.pattern=OY)}),e._zod.check=s=>{const l=s.value;if(n){if(!Number.isInteger(l)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}lo&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:o,inst:e})}}),qY=be("$ZodCheckBigIntFormat",(e,t)=>{Gr.init(e,t);const[n,r]=ZG[t.format];e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,o.minimum=n,o.maximum=r}),e._zod.check=i=>{const o=i.value;or&&i.issues.push({origin:"bigint",input:o,code:"too_big",maximum:r,inst:e})}}),GY=be("$ZodCheckMaxSize",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;i.size<=t.maximum||r.issues.push({origin:v3(i),code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),YY=be("$ZodCheckMinSize",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;i.size>=t.minimum||r.issues.push({origin:v3(i),code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),KY=be("$ZodCheckSizeEquals",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.size,i.maximum=t.size,i.size=t.size}),e._zod.check=r=>{const i=r.value,o=i.size;if(o===t.size)return;const a=o>t.size;r.issues.push({origin:v3(i),...a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),XY=be("$ZodCheckMaxLength",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;if(i.length<=t.maximum)return;const o=y3(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),JY=be("$ZodCheckMinLength",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;if(i.length>=t.minimum)return;const o=y3(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),QY=be("$ZodCheckLengthEquals",(e,t)=>{var n;Gr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!hp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{const i=r.value,o=i.length;if(o===t.length)return;const a=y3(i),s=o>t.length;r.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),rb=be("$ZodCheckStringFormat",(e,t)=>{var n,r;Gr.init(e,t),e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,t.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),eK=be("$ZodCheckRegex",(e,t)=>{rb.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tK=be("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=UY),rb.init(e,t)}),nK=be("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=BY),rb.init(e,t)}),rK=be("$ZodCheckIncludes",(e,t)=>{Gr.init(e,t);const n=id(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),iK=be("$ZodCheckStartsWith",(e,t)=>{Gr.init(e,t);const n=new RegExp(`^${id(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),oK=be("$ZodCheckEndsWith",(e,t)=>{Gr.init(e,t);const n=new RegExp(`.*${id(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function aK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues))}const sK=be("$ZodCheckProperty",(e,t)=>{Gr.init(e,t),e._zod.check=n=>{const r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>aK(i,n,t.property));aK(r,n,t.property)}}),lK=be("$ZodCheckMimeType",(e,t)=>{Gr.init(e,t);const n=new Set(t.mime);e._zod.onattach.push(r=>{r._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),uK=be("$ZodCheckOverwrite",(e,t)=>{Gr.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class cK{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(` +`).filter(o=>o),r=Math.min(...n.map(o=>o.length-o.trimStart().length)),i=n.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of i)this.content.push(o)}compile(){const t=Function,n=this==null?void 0:this.args,r=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new t(...n,r.join(` +`))}}const dK={major:4,minor:1,patch:13},Bt=be("$ZodType",(e,t)=>{var i;var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=dK;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const a of o._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),(i=e._zod.deferred)==null||i.push(()=>{e._zod.run=e._zod.parse});else{const o=(s,l,c)=>{let d=mp(s),f;for(const p of l){if(p._zod.def.when){if(!p._zod.def.when(s))continue}else if(d)continue;const v=s.issues.length,x=p._zod.check(s);if(x instanceof Promise&&(c==null?void 0:c.async)===!1)throw new fp;if(f||x instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await x,s.issues.length!==v&&(d||(d=mp(s,v)))});else{if(s.issues.length===v)continue;d||(d=mp(s,v))}}return f?f.then(()=>s):s},a=(s,l,c)=>{if(mp(s))return s.aborted=!0,s;const d=o(l,r,c);if(d instanceof Promise){if(c.async===!1)throw new fp;return d.then(f=>e._zod.parse(f,c))}return e._zod.parse(d,c)};e._zod.run=(s,l)=>{if(l.skipChecks)return e._zod.parse(s,l);if(l.direction==="backward"){const d=e._zod.parse({value:s.value,issues:[]},{...l,skipChecks:!0});return d instanceof Promise?d.then(f=>a(f,s,l)):a(d,s,l)}const c=e._zod.parse(s,l);if(c instanceof Promise){if(l.async===!1)throw new fp;return c.then(d=>o(d,r,l))}return o(c,r,l)}}e["~standard"]={validate:o=>{var a;try{const s=sY(e,o);return s.success?{value:s.data}:{issues:(a=s.error)==null?void 0:a.issues}}catch{return lY(e,o).then(s=>{var l;return s.success?{value:s.data}:{issues:(l=s.error)==null?void 0:l.issues}})}},vendor:"zod",version:1}}),ib=be("$ZodString",(e,t)=>{var n;Bt.init(e,t),e._zod.pattern=[...((n=e==null?void 0:e._zod.bag)==null?void 0:n.patterns)??[]].pop()??LY(e._zod.bag),e._zod.parse=(r,i)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),yr=be("$ZodStringFormat",(e,t)=>{rb.init(e,t),ib.init(e,t)}),fK=be("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=gY),yr.init(e,t)}),hK=be("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ag(n))}else t.pattern??(t.pattern=ag());yr.init(e,t)}),pK=be("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vY),yr.init(e,t)}),mK=be("$ZodURL",(e,t)=>{yr.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),gK=be("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=bY()),yr.init(e,t)}),vK=be("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=pY),yr.init(e,t)}),yK=be("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=uY),yr.init(e,t)}),bK=be("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=cY),yr.init(e,t)}),xK=be("$ZodULID",(e,t)=>{t.pattern??(t.pattern=dY),yr.init(e,t)}),_K=be("$ZodXID",(e,t)=>{t.pattern??(t.pattern=fY),yr.init(e,t)}),wK=be("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=hY),yr.init(e,t)}),kK=be("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=RY(t)),yr.init(e,t)}),SK=be("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=NY),yr.init(e,t)}),CK=be("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=MY(t)),yr.init(e,t)}),jK=be("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=mY),yr.init(e,t)}),TK=be("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=xY),yr.init(e,t),e._zod.bag.format="ipv4"}),IK=be("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=_Y),yr.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),EK=be("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=wY(t.delimiter)),yr.init(e,t),e._zod.bag.format="mac"}),NK=be("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=kY),yr.init(e,t)}),$K=be("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=SY),yr.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[i,o]=r;if(!o)throw new Error;const a=Number(o);if(`${a}`!==o)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${i}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function oI(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const MK=be("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=CY),yr.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{oI(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function RK(e){if(!tI.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return oI(n)}const LK=be("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=tI),yr.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{RK(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),PK=be("$ZodE164",(e,t)=>{t.pattern??(t.pattern=IY),yr.init(e,t)});function OK(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}const zK=be("$ZodJWT",(e,t)=>{yr.init(e,t),e._zod.check=n=>{OK(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),DK=be("$ZodCustomStringFormat",(e,t)=>{yr.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),aI=be("$ZodNumber",(e,t)=>{Bt.init(e,t),e._zod.pattern=e._zod.bag.pattern??zY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),AK=be("$ZodNumberFormat",(e,t)=>{ZY.init(e,t),aI.init(e,t)}),sI=be("$ZodBoolean",(e,t)=>{Bt.init(e,t),e._zod.pattern=DY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),lI=be("$ZodBigInt",(e,t)=>{Bt.init(e,t),e._zod.pattern=PY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),FK=be("$ZodBigIntFormat",(e,t)=>{qY.init(e,t),lI.init(e,t)}),UK=be("$ZodSymbol",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:e}),n}}),BK=be("$ZodUndefined",(e,t)=>{Bt.init(e,t),e._zod.pattern=FY,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:e}),n}}),WK=be("$ZodNull",(e,t)=>{Bt.init(e,t),e._zod.pattern=AY,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{const i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),VK=be("$ZodAny",(e,t)=>{Bt.init(e,t),e._zod.parse=n=>n}),HK=be("$ZodUnknown",(e,t)=>{Bt.init(e,t),e._zod.parse=n=>n}),ZK=be("$ZodNever",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),qK=be("$ZodVoid",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:e}),n}}),GK=be("$ZodDate",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}const i=n.value,o=i instanceof Date;return o&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...o?{received:"Invalid Date"}:{},inst:e}),n}});function YK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const KK=be("$ZodArray",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const o=[];for(let a=0;aYK(c,n,a))):YK(l,n,a)}return o.length?Promise.all(o).then(()=>n):n}});function b3(e,t,n,r){e.issues.length&&t.issues.push(...Zl(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function XK(e){var r,i,o,a;const t=Object.keys(e.shape);for(const s of t)if(!((a=(o=(i=(r=e.shape)==null?void 0:r[s])==null?void 0:i._zod)==null?void 0:o.traits)!=null&&a.has("$ZodType")))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const n=VG(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function JK(e,t,n,r,i,o){const a=[],s=i.keySet,l=i.catchall._zod,c=l.def.type;for(const d in t){if(s.has(d))continue;if(c==="never"){a.push(d);continue}const f=l.run({value:t[d],issues:[]},r);f instanceof Promise?e.push(f.then(p=>b3(p,n,d,t))):b3(f,n,d,t)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}const QK=be("$ZodObject",(e,t)=>{var a;if(Bt.init(e,t),!((a=Object.getOwnPropertyDescriptor(t,"shape"))!=null&&a.get)){const s=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...s};return Object.defineProperty(t,"shape",{value:l}),l}})}const n=Yy(()=>XK(t));vn(e._zod,"propValues",()=>{const s=t.shape,l={};for(const c in s){const d=s[c]._zod;if(d.values){l[c]??(l[c]=new Set);for(const f of d.values)l[c].add(f)}}return l});const r=ig,i=t.catchall;let o;e._zod.parse=(s,l)=>{o??(o=n.value);const c=s.value;if(!r(c))return s.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),s;s.value={};const d=[],f=o.shape;for(const p of o.keys){const v=f[p]._zod.run({value:c[p],issues:[]},l);v instanceof Promise?d.push(v.then(x=>b3(x,s,p,c))):b3(v,s,p,c)}return i?JK(d,c,s,l,n.value,e):d.length?Promise.all(d).then(()=>s):s}}),eX=be("$ZodObjectJIT",(e,t)=>{QK.init(e,t);const n=e._zod.parse,r=Yy(()=>XK(t)),i=f=>{const p=new cK(["shape","payload","ctx"]),v=r.value,x=_=>{const S=FT(_);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};p.write("const input = payload.value;");const y=Object.create(null);let b=0;for(const _ of v.keys)y[_]=`key_${b++}`;p.write("const newResult = {};");for(const _ of v.keys){const S=y[_],C=FT(_);p.write(`const ${S} = ${x(_)};`),p.write(` + if (${S}.issues.length) { + payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${C}, ...iss.path] : [${C}] + }))); + } + + + if (${S}.value === undefined) { + if (${C} in input) { + newResult[${C}] = undefined; + } + } else { + newResult[${C}] = ${S}.value; + } + + `)}p.write("payload.value = newResult;"),p.write("return payload;");const w=p.compile();return(_,S)=>w(f,_,S)};let o;const a=ig,s=!f3.jitless,l=s&&BG.value,c=t.catchall;let d;e._zod.parse=(f,p)=>{d??(d=r.value);const v=f.value;return a(v)?s&&l&&(p==null?void 0:p.async)===!1&&p.jitless!==!0?(o||(o=i(t.shape)),f=o(f,p),c?JK([],v,f,p,d,e):f):n(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),f)}});function tX(e,t,n,r){for(const o of e)if(o.issues.length===0)return t.value=o.value,t;const i=e.filter(o=>!mp(o));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(a=>ql(a,r,da())))}),t)}const uI=be("$ZodUnion",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.options.some(i=>i._zod.optin==="optional")?"optional":void 0),vn(e._zod,"optout",()=>t.options.some(i=>i._zod.optout==="optional")?"optional":void 0),vn(e._zod,"values",()=>{if(t.options.every(i=>i._zod.values))return new Set(t.options.flatMap(i=>Array.from(i._zod.values)))}),vn(e._zod,"pattern",()=>{if(t.options.every(i=>i._zod.pattern)){const i=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>p3(o.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,o)=>{if(n)return r(i,o);let a=!1;const s=[];for(const l of t.options){const c=l._zod.run({value:i.value,issues:[]},o);if(c instanceof Promise)s.push(c),a=!0;else{if(c.issues.length===0)return c;s.push(c)}}return a?Promise.all(s).then(l=>tX(l,i,e,o)):tX(s,i,e,o)}}),nX=be("$ZodDiscriminatedUnion",(e,t)=>{uI.init(e,t);const n=e._zod.parse;vn(e._zod,"propValues",()=>{const i={};for(const o of t.options){const a=o._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const[s,l]of Object.entries(a)){i[s]||(i[s]=new Set);for(const c of l)i[s].add(c)}}return i});const r=Yy(()=>{var a;const i=t.options,o=new Map;for(const s of i){const l=(a=s._zod.propValues)==null?void 0:a[t.discriminator];if(!l||l.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const c of l){if(o.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);o.set(c,s)}}return o});e._zod.parse=(i,o)=>{const a=i.value;if(!ig(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a==null?void 0:a[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),i)}}),rX=be("$ZodIntersection",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value,o=t.left._zod.run({value:i,issues:[]},r),a=t.right._zod.run({value:i,issues:[]},r);return o instanceof Promise||a instanceof Promise?Promise.all([o,a]).then(([s,l])=>iX(n,s,l)):iX(n,o,a)}});function cI(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(pp(e)&&pp(t)){const n=Object.keys(t),r=Object.keys(e).filter(o=>n.indexOf(o)!==-1),i={...e,...t};for(const o of r){const a=cI(e[o],t[o]);if(!a.valid)return{valid:!1,mergeErrorPath:[o,...a.mergeErrorPath]};i[o]=a.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r{Bt.init(e,t);const n=t.items;e._zod.parse=(r,i)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({input:o,inst:e,expected:"tuple",code:"invalid_type"}),r;r.value=[];const a=[],s=[...n].reverse().findIndex(d=>d._zod.optin!=="optional"),l=s===-1?0:n.length-s;if(!t.rest){const d=o.length>n.length,f=o.length=o.length&&c>=l)continue;const f=d._zod.run({value:o[c],issues:[]},i);f instanceof Promise?a.push(f.then(p=>x3(p,r,c))):x3(f,r,c)}if(t.rest){const d=o.slice(n.length);for(const f of d){c++;const p=t.rest._zod.run({value:f,issues:[]},i);p instanceof Promise?a.push(p.then(v=>x3(v,r,c))):x3(p,r,c)}}return a.length?Promise.all(a).then(()=>r):r}});function x3(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const oX=be("$ZodRecord",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!pp(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){s.add(typeof c=="number"?c.toString():c);const d=t.valueType._zod.run({value:i[c],issues:[]},r);d instanceof Promise?o.push(d.then(f=>{f.issues.length&&n.issues.push(...Zl(c,f.issues)),n.value[c]=f.value})):(d.issues.length&&n.issues.push(...Zl(c,d.issues)),n.value[c]=d.value)}let l;for(const c in i)s.has(c)||(l=l??[],l.push(c));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:l})}else{n.value={};for(const s of Reflect.ownKeys(i)){if(s==="__proto__")continue;const l=t.keyType._zod.run({value:s,issues:[]},r);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(l.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(d=>ql(d,r,da())),input:s,path:[s],inst:e}),n.value[l.value]=l.value;continue}const c=t.valueType._zod.run({value:i[s],issues:[]},r);c instanceof Promise?o.push(c.then(d=>{d.issues.length&&n.issues.push(...Zl(s,d.issues)),n.value[l.value]=d.value})):(c.issues.length&&n.issues.push(...Zl(s,c.issues)),n.value[l.value]=c.value)}}return o.length?Promise.all(o).then(()=>n):n}}),aX=be("$ZodMap",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:i,inst:e}),n;const o=[];n.value=new Map;for(const[a,s]of i){const l=t.keyType._zod.run({value:a,issues:[]},r),c=t.valueType._zod.run({value:s,issues:[]},r);l instanceof Promise||c instanceof Promise?o.push(Promise.all([l,c]).then(([d,f])=>{sX(d,f,n,a,i,e,r)})):sX(l,c,n,a,i,e,r)}return o.length?Promise.all(o).then(()=>n):n}});function sX(e,t,n,r,i,o,a){e.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:o,issues:e.issues.map(s=>ql(s,a,da()))})),t.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:o,key:r,issues:t.issues.map(s=>ql(s,a,da()))})),n.value.set(e.value,t.value)}const lX=be("$ZodSet",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:e,expected:"set",code:"invalid_type"}),n;const o=[];n.value=new Set;for(const a of i){const s=t.valueType._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(l=>uX(l,n))):uX(s,n)}return o.length?Promise.all(o).then(()=>n):n}});function uX(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}const cX=be("$ZodEnum",(e,t)=>{Bt.init(e,t);const n=AT(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(i=>g3.has(typeof i)).map(i=>typeof i=="string"?id(i):i.toString()).join("|")})$`),e._zod.parse=(i,o)=>{const a=i.value;return r.has(a)||i.issues.push({code:"invalid_value",values:n,input:a,inst:e}),i}}),dX=be("$ZodLiteral",(e,t)=>{if(Bt.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(r=>typeof r=="string"?id(r):r?id(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),fX=be("$ZodFile",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:e}),n}}),hX=be("$ZodTransform",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new fp;return n.value=i,n}});function pX(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const mX=be("$ZodOptional",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>pX(o,n.value)):pX(i,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),gX=be("$ZodNullable",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)}|null)$`):void 0}),vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),vX=be("$ZodDefault",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>yX(o,t)):yX(i,t)}});function yX(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const bX=be("$ZodPrefault",(e,t)=>{Bt.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),xX=be("$ZodNonOptional",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>_X(o,e)):_X(i,e)}});function _X(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const wX=be("$ZodSuccess",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3("ZodSuccess");const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.issues.length===0,n)):(n.value=i.issues.length===0,n)}}),kX=be("$ZodCatch",(e,t)=>{Bt.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(a=>ql(a,r,da()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(o=>ql(o,r,da()))},input:n.value}),n.issues=[]),n)}}),SX=be("$ZodNaN",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),CX=be("$ZodPipe",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const o=t.out._zod.run(n,r);return o instanceof Promise?o.then(a=>_3(a,t.in,r)):_3(o,t.in,r)}const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>_3(o,t.out,r)):_3(i,t.out,r)}});function _3(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const fI=be("$ZodCodec",(e,t)=>{Bt.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}else{const i=t.out._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}}});function w3(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){const r=t.transform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.out,n)):k3(e,r,t.out,n)}else{const r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.in,n)):k3(e,r,t.in,n)}}function k3(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const jX=be("$ZodReadonly",(e,t)=>{Bt.init(e,t),vn(e._zod,"propValues",()=>t.innerType._zod.propValues),vn(e._zod,"values",()=>t.innerType._zod.values),vn(e._zod,"optin",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optin}),vn(e._zod,"optout",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optout}),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(TX):TX(i)}});function TX(e){return e.value=Object.freeze(e.value),e}const IX=be("$ZodTemplateLiteral",(e,t)=>{Bt.init(e,t);const n=[];for(const r of t.parts)if(typeof r=="object"&&r!==null){if(!r._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);const i=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${r._zod.traits}`);const o=i.startsWith("^")?1:0,a=i.endsWith("$")?i.length-1:i.length;n.push(i.slice(o,a))}else if(r===null||WG.has(typeof r))n.push(id(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"template_literal",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),r)}),EX=be("$ZodFunction",(e,t)=>(Bt.init(e,t),e._def=t,e._zod.def=t,e.implement=n=>{if(typeof n!="function")throw new Error("implement() must be called with a function");return function(...r){const i=e._def.input?HT(e._def.input,r):r,o=Reflect.apply(n,this,i);return e._def.output?HT(e._def.output,o):o}},e.implementAsync=n=>{if(typeof n!="function")throw new Error("implementAsync() must be called with a function");return async function(...r){const i=e._def.input?await ZT(e._def.input,r):r,o=await Reflect.apply(n,this,i);return e._def.output?await ZT(e._def.output,o):o}},e._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n):(e._def.output&&e._def.output._zod.def.type==="promise"?n.value=e.implementAsync(n.value):n.value=e.implement(n.value),n),e.input=(...n)=>{const r=e.constructor;return Array.isArray(n[0])?new r({type:"function",input:new dI({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output}):new r({type:"function",input:n[0],output:e._def.output})},e.output=n=>{const r=e.constructor;return new r({type:"function",input:e._def.input,output:n})},e)),NX=be("$ZodPromise",(e,t)=>{Bt.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>t.innerType._zod.run({value:i,issues:[]},r))}),$X=be("$ZodLazy",(e,t)=>{Bt.init(e,t),vn(e._zod,"innerType",()=>t.getter()),vn(e._zod,"pattern",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.pattern}),vn(e._zod,"propValues",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.propValues}),vn(e._zod,"optin",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optin)??void 0}),vn(e._zod,"optout",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optout)??void 0}),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),MX=be("$ZodCustom",(e,t)=>{Gr.init(e,t),Bt.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(o=>RX(o,n,r,e));RX(i,n,r,e)}});function RX(e,t,n,r){if(!e){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),t.issues.push(og(i))}}const kTe=()=>{const e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return i=>{switch(i.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${i.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Rt(i.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${i.prefix}"`:o.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${o.suffix}"`:o.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${o.includes}"`:o.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${o.pattern}`:`${r[o.format]??i.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${i.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${i.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${i.keys.length>1?"\u0629":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function STe(){return{localeError:kTe()}}const CTe=()=>{const e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${i.expected}, daxil olan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Rt(i.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${o.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:o.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${o.suffix}" il\u0259 bitm\u0259lidir`:o.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${o.includes}" daxil olmal\u0131d\u0131r`:o.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${o.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[o.format]??i.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${i.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${i.keys.length>1?"lar":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${i.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function jTe(){return{localeError:CTe()}}function LX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const TTe=()=>{const e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0456\u045E";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${i.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Rt(i.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=LX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.maximum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=LX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.minimum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${i.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${i.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function ITe(){return{localeError:TTe()}}const ETe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(e))return"\u043C\u0430\u0441\u0438\u0432";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},NTe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function t(r){return e[r]??null}const n={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"};return r=>{switch(r.code){case"invalid_type":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${r.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${ETe(r.input)}`;case"invalid_value":return r.values.length===1?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${Rt(r.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.maximum.toString()} ${o.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.minimum.toString()} ${o.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;if(i.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${i.prefix}"`;if(i.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${i.suffix}"`;if(i.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${i.includes}"`;if(i.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${i.pattern}`;let o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return i.format==="emoji"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="datetime"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="date"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),i.format==="time"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="duration"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${o} ${n[i.format]??r.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${r.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${r.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${r.keys.length>1?"\u043E\u0432\u0435":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${r.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${r.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function $Te(){return{localeError:NTe()}}const MTe=()=>{const e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${i.expected}, s'ha rebut ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Valor inv\xE0lid: s'esperava ${Rt(i.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${qe(i.values," o ")}`;case"too_big":{const o=i.inclusive?"com a m\xE0xim":"menys de",a=t(i.origin);return a?`Massa gran: s'esperava que ${i.origin??"el valor"} contingu\xE9s ${o} ${i.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${i.origin??"el valor"} fos ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"com a m\xEDnim":"m\xE9s de",a=t(i.origin);return a?`Massa petit: s'esperava que ${i.origin} contingu\xE9s ${o} ${i.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${i.origin} fos ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${o.prefix}"`:o.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${o.suffix}"`:o.format==="includes"?`Format inv\xE0lid: ha d'incloure "${o.includes}"`:o.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${o.pattern}`:`Format inv\xE0lid per a ${r[o.format]??i.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${i.divisor}`;case"unrecognized_keys":return`Clau${i.keys.length>1?"s":""} no reconeguda${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${i.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${i.origin}`;default:return"Entrada inv\xE0lida"}}};function RTe(){return{localeError:MTe()}}const LTe=()=>{const e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(i))return"pole";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return i=>{switch(i.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${i.expected}, obdr\u017Eeno ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Rt(i.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${o.prefix}"`:o.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${o.suffix}"`:o.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${o.includes}"`:o.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${o.pattern}`:`Neplatn\xFD form\xE1t ${r[o.format]??i.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${i.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${qe(i.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${i.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${i.origin}`;default:return"Neplatn\xFD vstup"}}};function PTe(){return{localeError:LTe()}}const OTe=()=>{const e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},t={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"tal";case"object":return Array.isArray(a)?"liste":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype&&a.constructor?a.constructor.name:"objekt"}return s},o={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return a=>{switch(a.code){case"invalid_type":return`Ugyldigt input: forventede ${r(a.expected)}, fik ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Ugyldig v\xE6rdi: forventede ${Rt(a.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`For stor: forventede ${c??"value"} ${l.verb} ${s} ${a.maximum.toString()} ${l.unit??"elementer"}`:`For stor: forventede ${c??"value"} havde ${s} ${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`For lille: forventede ${c} ${l.verb} ${s} ${a.minimum.toString()} ${l.unit}`:`For lille: forventede ${c} havde ${s} ${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Ugyldig streng: skal starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: skal ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: skal indeholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${s.pattern}`:`Ugyldig ${o[s.format]??a.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${a.divisor}`;case"unrecognized_keys":return`${a.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${qe(a.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${a.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${a.origin}`;default:return"Ugyldigt input"}}};function zTe(){return{localeError:OTe()}}const DTe=()=>{const e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"Zahl";case"object":{if(Array.isArray(i))return"Array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return i=>{switch(i.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${i.expected}, erhalten ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Rt(i.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ist`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ist`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ung\xFCltiger String: muss mit "${o.prefix}" beginnen`:o.format==="ends_with"?`Ung\xFCltiger String: muss mit "${o.suffix}" enden`:o.format==="includes"?`Ung\xFCltiger String: muss "${o.includes}" enthalten`:o.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${o.pattern} entsprechen`:`Ung\xFCltig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${i.divisor} sein`;case"unrecognized_keys":return`${i.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${i.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${i.origin}`;default:return"Ung\xFCltige Eingabe"}}};function ATe(){return{localeError:DTe()}}const FTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},UTe=()=>{const e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function t(r){return e[r]??null}const n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${FTe(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${Rt(r.values[0])}`:`Invalid option: expected one of ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${o.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};function PX(){return{localeError:UTe()}}const BTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"nombro";case"object":{if(Array.isArray(e))return"tabelo";if(e===null)return"senvalora";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},WTe=()=>{const e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function t(r){return e[r]??null}const n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return r=>{switch(r.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${r.expected}, ricevi\u011Dis ${BTe(r.input)}`;case"invalid_value":return r.values.length===1?`Nevalida enigo: atendi\u011Dis ${Rt(r.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()} ${o.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Tro malgranda: atendi\u011Dis ke ${r.origin} havu ${i}${r.minimum.toString()} ${o.unit}`:`Tro malgranda: atendi\u011Dis ke ${r.origin} estu ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${i.prefix}"`:i.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${i.suffix}"`:i.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${i.includes}"`:i.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${i.pattern}`:`Nevalida ${n[i.format]??r.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${r.divisor}`;case"unrecognized_keys":return`Nekonata${r.keys.length>1?"j":""} \u015Dlosilo${r.keys.length>1?"j":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${r.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${r.origin}`;default:return"Nevalida enigo"}}};function VTe(){return{localeError:WTe()}}const HTe=()=>{const e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},t={string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"number";case"object":return Array.isArray(a)?"array":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype?a.constructor.name:"object"}return s},o={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return a=>{switch(a.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${r(a.expected)}, recibido ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Entrada inv\xE1lida: se esperaba ${Rt(a.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${s}${a.maximum.toString()} ${l.unit??"elementos"}`:`Demasiado grande: se esperaba que ${c??"valor"} fuera ${s}${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${s}${a.minimum.toString()} ${l.unit}`:`Demasiado peque\xF1o: se esperaba que ${c} fuera ${s}${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${s.prefix}"`:s.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${s.suffix}"`:s.format==="includes"?`Cadena inv\xE1lida: debe incluir "${s.includes}"`:s.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${s.pattern}`:`Inv\xE1lido ${o[s.format]??a.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${a.divisor}`;case"unrecognized_keys":return`Llave${a.keys.length>1?"s":""} desconocida${a.keys.length>1?"s":""}: ${qe(a.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${r(a.origin)}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${r(a.origin)}`;default:return"Entrada inv\xE1lida"}}};function ZTe(){return{localeError:HTe()}}const qTe=()=>{const e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0622\u0631\u0627\u06CC\u0647";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return i=>{switch(i.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${i.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${n(i.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return i.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Rt(i.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${qe(i.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:o.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:o.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${o.includes}" \u0628\u0627\u0634\u062F`:o.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${o.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[o.format]??i.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${i.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${i.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${qe(i.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${i.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${i.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function GTe(){return{localeError:qTe()}}const YTe=()=>{const e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return i=>{switch(i.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${i.expected}, oli ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Rt(i.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${o}${i.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${o}${i.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${o.prefix}"`:o.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${o.suffix}"`:o.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${o.includes}"`:o.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${o.pattern}`:`Virheellinen ${r[o.format]??i.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${i.divisor} monikerta`;case"unrecognized_keys":return`${i.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${qe(i.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function KTe(){return{localeError:YTe()}}const XTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombre";case"object":{if(Array.isArray(i))return"tableau";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : ${i.expected} attendu, ${n(i.input)} re\xE7u`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : ${Rt(i.values[0])} attendu`:`Option invalide : une valeur parmi ${qe(i.values,"|")} attendue`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Trop grand : ${i.origin??"valeur"} doit ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${i.origin??"valeur"} doit \xEAtre ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Trop petit : ${i.origin} doit ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : ${i.origin} doit \xEAtre ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function JTe(){return{localeError:XTe()}}const QTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${i.expected}, re\xE7u ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : attendu ${Rt(i.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u2264":"<",a=t(i.origin);return a?`Trop grand : attendu que ${i.origin??"la valeur"} ait ${o}${i.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${i.origin??"la valeur"} soit ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u2265":">",a=t(i.origin);return a?`Trop petit : attendu que ${i.origin} ait ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${i.origin} soit ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function eIe(){return{localeError:QTe()}}const tIe=()=>{const e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},t={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},n=c=>c?e[c]:void 0,r=c=>{const d=n(c);return d?d.label:c??e.unknown.label},i=c=>`\u05D4${r(c)}`,o=c=>{var d;return(((d=n(c))==null?void 0:d.gender)??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"},a=c=>c?t[c]??null:null,s=c=>{const d=typeof c;switch(d){case"number":return Number.isNaN(c)?"NaN":"number";case"object":return Array.isArray(c)?"array":c===null?"null":Object.getPrototypeOf(c)!==Object.prototype&&c.constructor?c.constructor.name:"object";default:return d}},l={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}};return c=>{var d;switch(c.code){case"invalid_type":{const f=c.expected,p=r(f),v=s(c.input),x=((d=e[v])==null?void 0:d.label)??v;return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${p}, \u05D4\u05EA\u05E7\u05D1\u05DC ${x}`}case"invalid_value":{if(c.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${Rt(c.values[0])}`;const f=c.values.map(v=>Rt(v));if(c.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f[0]} \u05D0\u05D5 ${f[1]}`;const p=f[f.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f.slice(0,-1).join(", ")} \u05D0\u05D5 ${p}`}case"too_big":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.longLabel)??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.maximum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${c.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",b=c.inclusive?`${c.maximum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${c.maximum} ${(f==null?void 0:f.unit)??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?"<=":"<",x=o(c.origin??"value");return f!=null&&f.unit?`${f.longLabel} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.maximum.toString()} ${f.unit}`:`${(f==null?void 0:f.longLabel)??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.maximum.toString()}`}case"too_small":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.shortLabel)??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.minimum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${c.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(c.minimum===1&&c.inclusive){const w=(c.origin,"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${w}`}const b=c.inclusive?`${c.minimum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${c.minimum} ${(f==null?void 0:f.unit)??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?">=":">",x=o(c.origin??"value");return f!=null&&f.unit?`${f.shortLabel} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.minimum.toString()} ${f.unit}`:`${(f==null?void 0:f.shortLabel)??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${p} ${x} ${v}${c.minimum.toString()}`}case"invalid_format":{const f=c;if(f.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${f.prefix}"`;if(f.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${f.suffix}"`;if(f.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${f.includes}"`;if(f.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${f.pattern}`;const p=l[f.format],v=(p==null?void 0:p.label)??f.format,x=((p==null?void 0:p.gender)??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${v} \u05DC\u05D0 ${x}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${c.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${c.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${c.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${qe(c.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${i(c.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function nIe(){return{localeError:tIe()}}const rIe=()=>{const e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(i))return"t\xF6mb";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return i=>{switch(i.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${i.expected}, a kapott \xE9rt\xE9k ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Rt(i.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xFAl nagy: ${i.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${o}${i.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${i.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} m\xE9rete t\xFAl kicsi ${o}${i.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} t\xFAl kicsi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\xC9rv\xE9nytelen string: "${o.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:o.format==="ends_with"?`\xC9rv\xE9nytelen string: "${o.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:o.format==="includes"?`\xC9rv\xE9nytelen string: "${o.includes}" \xE9rt\xE9ket kell tartalmaznia`:o.format==="regex"?`\xC9rv\xE9nytelen string: ${o.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[o.format]??i.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${i.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${i.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${i.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function iIe(){return{localeError:rIe()}}const oIe=()=>{const e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak valid: diharapkan ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak valid: diharapkan ${Rt(i.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: diharapkan ${i.origin??"value"} memiliki ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${i.origin??"value"} menjadi ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: diharapkan ${i.origin} memiliki ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${i.origin} menjadi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak valid: harus dimulai dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak valid: harus berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak valid: harus menyertakan "${o.includes}"`:o.format==="regex"?`String tidak valid: harus sesuai pola ${o.pattern}`:`${r[o.format]??i.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${i.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${i.origin}`;default:return"Input tidak valid"}}};function aIe(){return{localeError:oIe()}}const sIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"n\xFAmer";case"object":{if(Array.isArray(e))return"fylki";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},lIe=()=>{const e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function t(r){return e[r]??null}const n={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"};return r=>{switch(r.code){case"invalid_type":return`Rangt gildi: \xDE\xFA sl\xF3st inn ${sIe(r.input)} \xFEar sem \xE1 a\xF0 vera ${r.expected}`;case"invalid_value":return r.values.length===1?`Rangt gildi: gert r\xE1\xF0 fyrir ${Rt(r.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} hafi ${i}${r.maximum.toString()} ${o.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} s\xE9 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} hafi ${i}${r.minimum.toString()} ${o.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} s\xE9 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${i.prefix}"`:i.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${i.suffix}"`:i.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${i.includes}"`:i.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${i.pattern}`:`Rangt ${n[i.format]??r.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${r.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${r.keys.length>1?"ir lyklar":"ur lykill"}: ${qe(r.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${r.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${r.origin}`;default:return"Rangt gildi"}}};function uIe(){return{localeError:lIe()}}const cIe=()=>{const e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numero";case"object":{if(Array.isArray(i))return"vettore";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input non valido: atteso ${i.expected}, ricevuto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input non valido: atteso ${Rt(i.values[0])}`:`Opzione non valida: atteso uno tra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Troppo grande: ${i.origin??"valore"} deve avere ${o}${i.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${i.origin??"valore"} deve essere ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Troppo piccolo: ${i.origin} deve avere ${o}${i.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${i.origin} deve essere ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Stringa non valida: deve iniziare con "${o.prefix}"`:o.format==="ends_with"?`Stringa non valida: deve terminare con "${o.suffix}"`:o.format==="includes"?`Stringa non valida: deve includere "${o.includes}"`:o.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${i.divisor}`;case"unrecognized_keys":return`Chiav${i.keys.length>1?"i":"e"} non riconosciut${i.keys.length>1?"e":"a"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${i.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${i.origin}`;default:return"Input non valido"}}};function dIe(){return{localeError:cIe()}}const fIe=()=>{const e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(i))return"\u914D\u5217";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${i.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${n(i.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return i.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Rt(i.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${qe(i.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{const o=i.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=t(i.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${a.unit??"\u8981\u7D20"}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{const o=i.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=t(i.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${a.unit}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${o.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${i.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${i.keys.length>1?"\u7FA4":""}: ${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function hIe(){return{localeError:fIe()}}const pIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8";case"object":{if(Array.isArray(e))return"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return{string:"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0"}[t]??t},mIe=()=>{const e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function t(r){return e[r]??null}const n={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",json_string:"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"};return r=>{switch(r.code){case"invalid_type":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${pIe(r.input)}`;case"invalid_value":return r.values.length===1?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${Rt(r.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${qe(r.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${o.verb} ${i}${r.maximum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} ${o.verb} ${i}${r.minimum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} \u10D8\u10E7\u10DD\u10E1 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.prefix}"-\u10D8\u10D7`:i.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.suffix}"-\u10D8\u10D7`:i.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${i.includes}"-\u10E1`:i.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${i.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${n[i.format]??r.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${r.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${r.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${r.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${r.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function gIe(){return{localeError:mIe()}}const vIe=()=>{const e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(i))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(i===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return i=>{switch(i.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Rt(i.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${o.prefix}"`:o.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${o.suffix}"`:o.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${o.includes}"`:o.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${o.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${i.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${qe(i.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function OX(){return{localeError:vIe()}}function yIe(){return OX()}const bIe=()=>{const e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return i=>{switch(i.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${i.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${n(i.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return i.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Rt(i.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${qe(i.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{const o=i.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=o==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()} ${o}${a}`}case"too_small":{const o=i.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=o==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()} ${o}${a}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:o.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${o.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[o.format]??i.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${i.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${qe(i.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${i.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${i.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function xIe(){return{localeError:bIe()}}const _Ie=e=>ob(typeof e,e),ob=(e,t=void 0)=>{switch(e){case"number":return Number.isNaN(t)?"NaN":"skai\u010Dius";case"bigint":return"sveikasis skai\u010Dius";case"string":return"eilut\u0117";case"boolean":return"login\u0117 reik\u0161m\u0117";case"undefined":case"void":return"neapibr\u0117\u017Eta reik\u0161m\u0117";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return t===void 0?"ne\u017Einomas objektas":t===null?"nulin\u0117 reik\u0161m\u0117":Array.isArray(t)?"masyvas":Object.getPrototypeOf(t)!==Object.prototype&&t.constructor?t.constructor.name:"objektas";case"null":return"nulin\u0117 reik\u0161m\u0117"}return e},ab=e=>e.charAt(0).toUpperCase()+e.slice(1);function zX(e){const t=Math.abs(e),n=t%10,r=t%100;return r>=11&&r<=19||n===0?"many":n===1?"one":"few"}const wIe=()=>{const e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function t(r,i,o,a){const s=e[r]??null;return s===null?s:{unit:s.unit[i],verb:s.verb[a][o?"inclusive":"notInclusive"]}}const n={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"};return r=>{switch(r.code){case"invalid_type":return`Gautas tipas ${_Ie(r.input)}, o tik\u0117tasi - ${ob(r.expected)}`;case"invalid_value":return r.values.length===1?`Privalo b\u016Bti ${Rt(r.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${qe(r.values,"|")} pasirinkim\u0173`;case"too_big":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.maximum)),r.inclusive??!1,"smaller");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.maximum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.maximum.toString()} ${o==null?void 0:o.unit}`}case"too_small":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.minimum)),r.inclusive??!1,"bigger");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.minimum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.minimum.toString()} ${o==null?void 0:o.unit}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${i.prefix}"`:i.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${i.suffix}"`:i.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${i.includes}"`:i.format==="regex"?`Eilut\u0117 privalo atitikti ${i.pattern}`:`Neteisingas ${n[i.format]??r.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${r.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${r.keys.length>1?"i":"as"} rakt${r.keys.length>1?"ai":"as"}: ${qe(r.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{const i=ob(r.origin);return`${ab(i??r.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};function kIe(){return{localeError:wIe()}}const SIe=()=>{const e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(i))return"\u043D\u0438\u0437\u0430";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return i=>{switch(i.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Invalid input: expected ${Rt(i.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${i.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${i.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function CIe(){return{localeError:SIe()}}const jIe=()=>{const e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombor";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak sah: dijangka ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak sah: dijangka ${Rt(i.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: dijangka ${i.origin??"nilai"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${i.origin??"nilai"} adalah ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: dijangka ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${i.origin} adalah ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak sah: mesti bermula dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak sah: mesti mengandungi "${o.includes}"`:o.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${o.pattern}`:`${r[o.format]??i.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${i.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${i.origin}`;default:return"Input tidak sah"}}};function TIe(){return{localeError:jIe()}}const IIe=()=>{const e={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"getal";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return i=>{switch(i.code){case"invalid_type":return`Ongeldige invoer: verwacht ${i.expected}, ontving ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ongeldige invoer: verwacht ${Rt(i.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Te groot: verwacht dat ${i.origin??"waarde"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elementen"}`:`Te groot: verwacht dat ${i.origin??"waarde"} ${o}${i.maximum.toString()} is`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Te klein: verwacht dat ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Te klein: verwacht dat ${i.origin} ${o}${i.minimum.toString()} is`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ongeldige tekst: moet met "${o.prefix}" beginnen`:o.format==="ends_with"?`Ongeldige tekst: moet op "${o.suffix}" eindigen`:o.format==="includes"?`Ongeldige tekst: moet "${o.includes}" bevatten`:o.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${o.pattern}`:`Ongeldig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${i.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${i.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${i.origin}`;default:return"Ongeldige invoer"}}};function EIe(){return{localeError:IIe()}}const NIe=()=>{const e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"tall";case"object":{if(Array.isArray(i))return"liste";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Ugyldig input: forventet ${i.expected}, fikk ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ugyldig verdi: forventet ${Rt(i.values[0])}`:`Ugyldig valg: forventet en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${o.prefix}"`:o.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${o.suffix}"`:o.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${o.includes}"`:o.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${o.pattern}`:`Ugyldig ${r[o.format]??i.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${i.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${i.origin}`;default:return"Ugyldig input"}}};function $Ie(){return{localeError:NIe()}}const MIe=()=>{const e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numara";case"object":{if(Array.isArray(i))return"saf";if(i===null)return"gayb";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return i=>{switch(i.code){case"invalid_type":return`F\xE2sit giren: umulan ${i.expected}, al\u0131nan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`F\xE2sit giren: umulan ${Rt(i.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{const o=i;return o.format==="starts_with"?`F\xE2sit metin: "${o.prefix}" ile ba\u015Flamal\u0131.`:o.format==="ends_with"?`F\xE2sit metin: "${o.suffix}" ile bitmeli.`:o.format==="includes"?`F\xE2sit metin: "${o.includes}" ihtiv\xE2 etmeli.`:o.format==="regex"?`F\xE2sit metin: ${o.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[o.format]??i.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${i.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${i.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function RIe(){return{localeError:MIe()}}const LIe=()=>{const e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0627\u0631\u06D0";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return i=>{switch(i.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${i.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${n(i.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return i.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Rt(i.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${qe(i.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0648\u064A`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0648\u064A`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:o.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:o.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${o.includes}" \u0648\u0644\u0631\u064A`:o.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${o.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[o.format]??i.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${i.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${i.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${i.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${i.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function PIe(){return{localeError:LIe()}}const OIe=()=>{const e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"liczba";case"object":{if(Array.isArray(i))return"tablica";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return i=>{switch(i.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${i.expected}, otrzymano ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Rt(i.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${o.prefix}"`:o.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${o.suffix}"`:o.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${o.includes}"`:o.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${o.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[o.format]??i.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${i.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${i.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${i.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function zIe(){return{localeError:OIe()}}const DIe=()=>{const e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(i))return"array";if(i===null)return"nulo";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${i.expected}, recebido ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entrada inv\xE1lida: esperado ${Rt(i.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Muito grande: esperado que ${i.origin??"valor"} tivesse ${o}${i.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${i.origin??"valor"} fosse ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Muito pequeno: esperado que ${i.origin} tivesse ${o}${i.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${i.origin} fosse ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${o.prefix}"`:o.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${o.suffix}"`:o.format==="includes"?`Texto inv\xE1lido: deve incluir "${o.includes}"`:o.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${o.pattern}`:`${r[o.format]??i.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${i.divisor}`;case"unrecognized_keys":return`Chave${i.keys.length>1?"s":""} desconhecida${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${i.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${i.origin}`;default:return"Campo inv\xE1lido"}}};function AIe(){return{localeError:DIe()}}function DX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const FIe=()=>{const e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${i.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Rt(i.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.maximum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.minimum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${i.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0438":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${i.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function UIe(){return{localeError:FIe()}}const BIe=()=>{const e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(i))return"tabela";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return i=>{switch(i.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${i.expected}, prejeto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Rt(i.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} imelo ${o}${i.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${i.origin} imelo ${o}${i.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${o.prefix}"`:o.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${o.suffix}"`:o.format==="includes"?`Neveljaven niz: mora vsebovati "${o.includes}"`:o.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${o.pattern}`:`Neveljaven ${r[o.format]??i.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${i.divisor}`;case"unrecognized_keys":return`Neprepoznan${i.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${i.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${i.origin}`;default:return"Neveljaven vnos"}}};function WIe(){return{localeError:BIe()}}const VIe=()=>{const e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"antal";case"object":{if(Array.isArray(i))return"lista";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return i=>{switch(i.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${i.expected}, fick ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Rt(i.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${o.prefix}"`:o.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${o.suffix}"`:o.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${o.includes}"`:o.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${o.pattern}"`:`Ogiltig(t) ${r[o.format]??i.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${i.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${i.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function HIe(){return{localeError:VIe()}}const ZIe=()=>{const e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(i))return"\u0B85\u0BA3\u0BBF";if(i===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Rt(i.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${qe(i.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${o.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${i.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${i.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function qIe(){return{localeError:ZIe()}}const GIe=()=>{const e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(i))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(i===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return i=>{switch(i.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${i.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Rt(i.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${o.prefix}"`:o.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${o.suffix}"`:o.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${o.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:o.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${o.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${i.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function YIe(){return{localeError:GIe()}}const KIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},XIe=()=>{const e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function t(r){return e[r]??null}const n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return r=>{switch(r.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${r.expected}, al\u0131nan ${KIe(r.input)}`;case"invalid_value":return r.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Rt(r.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()} ${o.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()} ${o.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Ge\xE7ersiz metin: "${i.prefix}" ile ba\u015Flamal\u0131`:i.format==="ends_with"?`Ge\xE7ersiz metin: "${i.suffix}" ile bitmeli`:i.format==="includes"?`Ge\xE7ersiz metin: "${i.includes}" i\xE7ermeli`:i.format==="regex"?`Ge\xE7ersiz metin: ${i.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${n[i.format]??r.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${r.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${r.keys.length>1?"lar":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`${r.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${r.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function JIe(){return{localeError:XIe()}}const QIe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${i.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Rt(i.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} \u0431\u0443\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0456":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${i.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function AX(){return{localeError:QIe()}}function eEe(){return AX()}const tEe=()=>{const e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(i))return"\u0622\u0631\u06D2";if(i===null)return"\u0646\u0644";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return i=>{switch(i.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${i.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${n(i.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return i.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Rt(i.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${qe(i.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${o}${i.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u06D2 ${o}${i.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u0627 ${o}${i.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${o.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${i.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${i.keys.length>1?"\u0632":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function nEe(){return{localeError:tEe()}}const rEe=()=>{const e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(i))return"m\u1EA3ng";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return i=>{switch(i.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${i.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Rt(i.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${o.prefix}"`:o.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${o.suffix}"`:o.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${o.includes}"`:o.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${o.pattern}`:`${r[o.format]??i.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${i.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${qe(i.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function iEe(){return{localeError:rEe()}}const oEe=()=>{const e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(i))return"\u6570\u7EC4";if(i===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${i.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Rt(i.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.prefix}" \u5F00\u5934`:o.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.suffix}" \u7ED3\u5C3E`:o.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${o.pattern}`:`\u65E0\u6548${r[o.format]??i.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${i.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${i.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function aEe(){return{localeError:oEe()}}const sEe=()=>{const e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${i.expected}\uFF0C\u4F46\u6536\u5230 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Rt(i.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.prefix}" \u958B\u982D`:o.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.suffix}" \u7D50\u5C3E`:o.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${o.pattern}`:`\u7121\u6548\u7684 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${i.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${i.keys.length>1?"\u5011":""}\uFF1A${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function lEe(){return{localeError:sEe()}}const uEe=()=>{const e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\u1ECD\u0301mb\xE0";case"object":{if(Array.isArray(i))return"akop\u1ECD";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"};return i=>{switch(i.code){case"invalid_type":return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${i.expected}, \xE0m\u1ECD\u0300 a r\xED ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${Rt(i.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin??"iye"} ${a.verb} ${o}${i.maximum} ${a.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.maximum}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin} ${a.verb} ${o}${i.minimum} ${a.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.minimum}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${o.prefix}"`:o.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${o.suffix}"`:o.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${o.includes}"`:o.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${o.pattern}`:`A\u1E63\xEC\u1E63e: ${r[o.format]??i.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${i.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${qe(i.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function cEe(){return{localeError:uEe()}}const FX=Object.freeze(Object.defineProperty({__proto__:null,ar:STe,az:jTe,be:ITe,bg:$Te,ca:RTe,cs:PTe,da:zTe,de:ATe,en:PX,eo:VTe,es:ZTe,fa:GTe,fi:KTe,fr:JTe,frCA:eIe,he:nIe,hu:iIe,id:aIe,is:uIe,it:dIe,ja:hIe,ka:gIe,kh:yIe,km:OX,ko:xIe,lt:kIe,mk:CIe,ms:TIe,nl:EIe,no:$Ie,ota:RIe,pl:zIe,ps:PIe,pt:AIe,ru:UIe,sl:WIe,sv:HIe,ta:qIe,th:YIe,tr:JIe,ua:eEe,uk:AX,ur:nEe,vi:iEe,yo:cEe,zhCN:aEe,zhTW:lEe},Symbol.toStringTag,{value:"Module"}));var UX;const BX=Symbol("ZodOutput"),WX=Symbol("ZodInput");class hI{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const i={...r,...this._map.get(t)};return Object.keys(i).length?i:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function pI(){return new hI}(UX=globalThis).__zod_globalRegistry??(UX.__zod_globalRegistry=pI());const Gl=globalThis.__zod_globalRegistry;function VX(e,t){return new e({type:"string",...Oe(t)})}function HX(e,t){return new e({type:"string",coerce:!0,...Oe(t)})}function mI(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Oe(t)})}function S3(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Oe(t)})}function gI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Oe(t)})}function vI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Oe(t)})}function yI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Oe(t)})}function bI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Oe(t)})}function C3(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Oe(t)})}function xI(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Oe(t)})}function _I(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Oe(t)})}function wI(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Oe(t)})}function kI(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Oe(t)})}function SI(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Oe(t)})}function CI(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Oe(t)})}function jI(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Oe(t)})}function TI(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Oe(t)})}function II(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Oe(t)})}function ZX(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...Oe(t)})}function EI(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Oe(t)})}function NI(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Oe(t)})}function $I(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Oe(t)})}function MI(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Oe(t)})}function RI(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Oe(t)})}function LI(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Oe(t)})}const qX={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function GX(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Oe(t)})}function YX(e,t){return new e({type:"string",format:"date",check:"string_format",...Oe(t)})}function KX(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Oe(t)})}function XX(e,t){return new e({type:"string",format:"duration",check:"string_format",...Oe(t)})}function JX(e,t){return new e({type:"number",checks:[],...Oe(t)})}function QX(e,t){return new e({type:"number",coerce:!0,checks:[],...Oe(t)})}function eJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Oe(t)})}function tJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...Oe(t)})}function nJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...Oe(t)})}function rJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...Oe(t)})}function iJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...Oe(t)})}function oJ(e,t){return new e({type:"boolean",...Oe(t)})}function aJ(e,t){return new e({type:"boolean",coerce:!0,...Oe(t)})}function sJ(e,t){return new e({type:"bigint",...Oe(t)})}function lJ(e,t){return new e({type:"bigint",coerce:!0,...Oe(t)})}function uJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Oe(t)})}function cJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Oe(t)})}function dJ(e,t){return new e({type:"symbol",...Oe(t)})}function fJ(e,t){return new e({type:"undefined",...Oe(t)})}function hJ(e,t){return new e({type:"null",...Oe(t)})}function pJ(e){return new e({type:"any"})}function mJ(e){return new e({type:"unknown"})}function gJ(e,t){return new e({type:"never",...Oe(t)})}function vJ(e,t){return new e({type:"void",...Oe(t)})}function yJ(e,t){return new e({type:"date",...Oe(t)})}function bJ(e,t){return new e({type:"date",coerce:!0,...Oe(t)})}function xJ(e,t){return new e({type:"nan",...Oe(t)})}function gp(e,t){return new rI({check:"less_than",...Oe(t),value:e,inclusive:!1})}function Yl(e,t){return new rI({check:"less_than",...Oe(t),value:e,inclusive:!0})}function vp(e,t){return new iI({check:"greater_than",...Oe(t),value:e,inclusive:!1})}function ys(e,t){return new iI({check:"greater_than",...Oe(t),value:e,inclusive:!0})}function _J(e){return vp(0,e)}function wJ(e){return gp(0,e)}function kJ(e){return Yl(0,e)}function SJ(e){return ys(0,e)}function sb(e,t){return new HY({check:"multiple_of",...Oe(t),value:e})}function j3(e,t){return new GY({check:"max_size",...Oe(t),maximum:e})}function lb(e,t){return new YY({check:"min_size",...Oe(t),minimum:e})}function PI(e,t){return new KY({check:"size_equals",...Oe(t),size:e})}function T3(e,t){return new XY({check:"max_length",...Oe(t),maximum:e})}function sg(e,t){return new JY({check:"min_length",...Oe(t),minimum:e})}function I3(e,t){return new QY({check:"length_equals",...Oe(t),length:e})}function OI(e,t){return new eK({check:"string_format",format:"regex",...Oe(t),pattern:e})}function zI(e){return new tK({check:"string_format",format:"lowercase",...Oe(e)})}function DI(e){return new nK({check:"string_format",format:"uppercase",...Oe(e)})}function AI(e,t){return new rK({check:"string_format",format:"includes",...Oe(t),includes:e})}function FI(e,t){return new iK({check:"string_format",format:"starts_with",...Oe(t),prefix:e})}function UI(e,t){return new oK({check:"string_format",format:"ends_with",...Oe(t),suffix:e})}function CJ(e,t,n){return new sK({check:"property",property:e,schema:t,...Oe(n)})}function BI(e,t){return new lK({check:"mime_type",mime:e,...Oe(t)})}function Df(e){return new uK({check:"overwrite",tx:e})}function WI(e){return Df(t=>t.normalize(e))}function VI(){return Df(e=>e.trim())}function HI(){return Df(e=>e.toLowerCase())}function ZI(){return Df(e=>e.toUpperCase())}function qI(){return Df(e=>UG(e))}function jJ(e,t,n){return new e({type:"array",element:t,...Oe(n)})}function dEe(e,t,n){return new e({type:"union",options:t,...Oe(n)})}function fEe(e,t,n,r){return new e({type:"union",options:n,discriminator:t,...Oe(r)})}function hEe(e,t,n){return new e({type:"intersection",left:t,right:n})}function pEe(e,t,n,r){const i=n instanceof Bt,o=i?r:n,a=i?n:null;return new e({type:"tuple",items:t,rest:a,...Oe(o)})}function mEe(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,...Oe(r)})}function gEe(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,...Oe(r)})}function vEe(e,t,n){return new e({type:"set",valueType:t,...Oe(n)})}function yEe(e,t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(i=>[i,i])):t;return new e({type:"enum",entries:r,...Oe(n)})}function bEe(e,t,n){return new e({type:"enum",entries:t,...Oe(n)})}function xEe(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],...Oe(n)})}function TJ(e,t){return new e({type:"file",...Oe(t)})}function _Ee(e,t){return new e({type:"transform",transform:t})}function wEe(e,t){return new e({type:"optional",innerType:t})}function kEe(e,t){return new e({type:"nullable",innerType:t})}function SEe(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():m3(n)}})}function CEe(e,t,n){return new e({type:"nonoptional",innerType:t,...Oe(n)})}function jEe(e,t){return new e({type:"success",innerType:t})}function TEe(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}function IEe(e,t,n){return new e({type:"pipe",in:t,out:n})}function EEe(e,t){return new e({type:"readonly",innerType:t})}function NEe(e,t,n){return new e({type:"template_literal",parts:t,...Oe(n)})}function $Ee(e,t){return new e({type:"lazy",getter:t})}function MEe(e,t){return new e({type:"promise",innerType:t})}function IJ(e,t,n){const r=Oe(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function EJ(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Oe(n)})}function NJ(e){const t=$J(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(og(r,n.value,t._zod.def));else{const i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(og(i))}},e(n.value,n)));return t}function $J(e,t){const n=new Gr({check:"custom",...Oe(t)});return n._zod.check=e,n}function MJ(e){const t=new Gr({check:"describe"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,description:e})}],t._zod.check=()=>{},t}function RJ(e){const t=new Gr({check:"meta"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,...e})}],t._zod.check=()=>{},t}function LJ(e,t){const n=Oe(t);let r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(v=>typeof v=="string"?v.toLowerCase():v),i=i.map(v=>typeof v=="string"?v.toLowerCase():v));const o=new Set(r),a=new Set(i),s=e.Codec??fI,l=e.Boolean??sI,c=e.String??ib,d=new c({type:"string",error:n.error}),f=new l({type:"boolean",error:n.error}),p=new s({type:"pipe",in:d,out:f,transform:(v,x)=>{let y=v;return n.case!=="sensitive"&&(y=y.toLowerCase()),o.has(y)?!0:a.has(y)?!1:(x.issues.push({code:"invalid_value",expected:"stringbool",values:[...o,...a],input:x.value,inst:p,continue:!1}),{})},reverseTransform:(v,x)=>v===!0?r[0]||"true":i[0]||"false",error:n.error});return p}function ub(e,t,n,r={}){const i=Oe(r),o={...Oe(r),check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(o.pattern=n),new e(o)}class GI{constructor(t){this.counter=0,this.metadataRegistry=(t==null?void 0:t.metadata)??Gl,this.target=(t==null?void 0:t.target)??"draft-2020-12",this.unrepresentable=(t==null?void 0:t.unrepresentable)??"throw",this.override=(t==null?void 0:t.override)??(()=>{}),this.io=(t==null?void 0:t.io)??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var d,f,p;var r;const i=t._zod.def,o={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(t);if(a)return a.count++,n.schemaPath.includes(t)&&(a.cycle=n.path),a.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,s);const l=(f=(d=t._zod).toJSONSchema)==null?void 0:f.call(d);if(l)s.schema=l;else{const v={...n,schemaPath:[...n.schemaPath,t],path:n.path},x=t._zod.parent;if(x)s.ref=x,this.process(x,v),this.seen.get(x).isParent=!0;else{const y=s.schema;switch(i.type){case"string":{const b=y;b.type="string";const{minimum:w,maximum:_,format:S,patterns:C,contentEncoding:j}=t._zod.bag;if(typeof w=="number"&&(b.minLength=w),typeof _=="number"&&(b.maxLength=_),S&&(b.format=o[S]??S,b.format===""&&delete b.format),j&&(b.contentEncoding=j),C&&C.size>0){const T=[...C];T.length===1?b.pattern=T[0].source:T.length>1&&(s.schema.allOf=[...T.map(E=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:E.source}))])}break}case"number":{const b=y,{minimum:w,maximum:_,format:S,multipleOf:C,exclusiveMaximum:j,exclusiveMinimum:T}=t._zod.bag;typeof S=="string"&&S.includes("int")?b.type="integer":b.type="number",typeof T=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.minimum=T,b.exclusiveMinimum=!0):b.exclusiveMinimum=T),typeof w=="number"&&(b.minimum=w,typeof T=="number"&&this.target!=="draft-4"&&(T>=w?delete b.minimum:delete b.exclusiveMinimum)),typeof j=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.maximum=j,b.exclusiveMaximum=!0):b.exclusiveMaximum=j),typeof _=="number"&&(b.maximum=_,typeof j=="number"&&this.target!=="draft-4"&&(j<=_?delete b.maximum:delete b.exclusiveMaximum)),typeof C=="number"&&(b.multipleOf=C);break}case"boolean":{const b=y;b.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(y.type="string",y.nullable=!0,y.enum=[null]):y.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{y.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const b=y,{minimum:w,maximum:_}=t._zod.bag;typeof w=="number"&&(b.minItems=w),typeof _=="number"&&(b.maxItems=_),b.type="array",b.items=this.process(i.element,{...v,path:[...v.path,"items"]});break}case"object":{const b=y;b.type="object",b.properties={};const w=i.shape;for(const C in w)b.properties[C]=this.process(w[C],{...v,path:[...v.path,"properties",C]});const _=new Set(Object.keys(w)),S=new Set([..._].filter(C=>{const j=i.shape[C]._zod;return this.io==="input"?j.optin===void 0:j.optout===void 0}));S.size>0&&(b.required=Array.from(S)),((p=i.catchall)==null?void 0:p._zod.def.type)==="never"?b.additionalProperties=!1:i.catchall?i.catchall&&(b.additionalProperties=this.process(i.catchall,{...v,path:[...v.path,"additionalProperties"]})):this.io==="output"&&(b.additionalProperties=!1);break}case"union":{const b=y,w=i.discriminator!==void 0,_=i.options.map((S,C)=>this.process(S,{...v,path:[...v.path,w?"oneOf":"anyOf",C]}));w?b.oneOf=_:b.anyOf=_;break}case"intersection":{const b=y,w=this.process(i.left,{...v,path:[...v.path,"allOf",0]}),_=this.process(i.right,{...v,path:[...v.path,"allOf",1]}),S=j=>"allOf"in j&&Object.keys(j).length===1,C=[...S(w)?w.allOf:[w],...S(_)?_.allOf:[_]];b.allOf=C;break}case"tuple":{const b=y;b.type="array";const w=this.target==="draft-2020-12"?"prefixItems":"items",_=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",S=i.items.map((E,$)=>this.process(E,{...v,path:[...v.path,w,$]})),C=i.rest?this.process(i.rest,{...v,path:[...v.path,_,...this.target==="openapi-3.0"?[i.items.length]:[]]}):null;this.target==="draft-2020-12"?(b.prefixItems=S,C&&(b.items=C)):this.target==="openapi-3.0"?(b.items={anyOf:S},C&&b.items.anyOf.push(C),b.minItems=S.length,C||(b.maxItems=S.length)):(b.items=S,C&&(b.additionalItems=C));const{minimum:j,maximum:T}=t._zod.bag;typeof j=="number"&&(b.minItems=j),typeof T=="number"&&(b.maxItems=T);break}case"record":{const b=y;b.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(b.propertyNames=this.process(i.keyType,{...v,path:[...v.path,"propertyNames"]})),b.additionalProperties=this.process(i.valueType,{...v,path:[...v.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const b=y,w=AT(i.entries);w.every(_=>typeof _=="number")&&(b.type="number"),w.every(_=>typeof _=="string")&&(b.type="string"),b.enum=w;break}case"literal":{const b=y,w=[];for(const _ of i.values)if(_===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof _=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");w.push(Number(_))}else w.push(_);if(w.length!==0)if(w.length===1){const _=w[0];b.type=_===null?"null":typeof _,this.target==="draft-4"||this.target==="openapi-3.0"?b.enum=[_]:b.const=_}else w.every(_=>typeof _=="number")&&(b.type="number"),w.every(_=>typeof _=="string")&&(b.type="string"),w.every(_=>typeof _=="boolean")&&(b.type="string"),w.every(_=>_===null)&&(b.type="null"),b.enum=w;break}case"file":{const b=y,w={type:"string",format:"binary",contentEncoding:"binary"},{minimum:_,maximum:S,mime:C}=t._zod.bag;_!==void 0&&(w.minLength=_),S!==void 0&&(w.maxLength=S),C?C.length===1?(w.contentMediaType=C[0],Object.assign(b,w)):b.anyOf=C.map(j=>({...w,contentMediaType:j})):Object.assign(b,w);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const b=this.process(i.innerType,v);this.target==="openapi-3.0"?(s.ref=i.innerType,y.nullable=!0):y.anyOf=[b,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"success":{const b=y;b.type="boolean";break}case"default":{this.process(i.innerType,v),s.ref=i.innerType,y.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,v),s.ref=i.innerType,this.io==="input"&&(y._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,v),s.ref=i.innerType;let b;try{b=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}y.default=b;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const b=y,w=t._zod.pattern;if(!w)throw new Error("Pattern not found in template literal");b.type="string",b.pattern=w.source;break}case"pipe":{const b=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(b,v),s.ref=b;break}case"readonly":{this.process(i.innerType,v),s.ref=i.innerType,y.readOnly=!0;break}case"promise":{this.process(i.innerType,v),s.ref=i.innerType;break}case"optional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"lazy":{const b=t._zod.innerType;this.process(b,v),s.ref=b;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const c=this.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),this.io==="input"&&fa(t)&&(delete s.schema.examples,delete s.schema.default),this.io==="input"&&s.schema._prefault&&((r=s.schema).default??(r.default=s.schema._prefault)),delete s.schema._prefault,this.seen.get(t).schema}emit(t,n){var d,f,p,v,x,y;const r={cycles:(n==null?void 0:n.cycles)??"ref",reused:(n==null?void 0:n.reused)??"inline",external:(n==null?void 0:n.external)??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=b=>{var C;const w=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){const j=(C=r.external.registry.get(b[0]))==null?void 0:C.id,T=r.external.uri??($=>$);if(j)return{ref:T(j)};const E=b[1].defId??b[1].schema.id??`schema${this.counter++}`;return b[1].defId=E,{defId:E,ref:`${T("__shared")}#/${w}/${E}`}}if(b[1]===i)return{ref:"#"};const _=`#/${w}/`,S=b[1].schema.id??`__schema${this.counter++}`;return{defId:S,ref:_+S}},a=b=>{if(b[1].schema.$ref)return;const w=b[1],{ref:_,defId:S}=o(b);w.def={...w.schema},S&&(w.defId=S);const C=w.schema;for(const j in C)delete C[j];C.$ref=_};if(r.cycles==="throw")for(const b of this.seen.entries()){const w=b[1];if(w.cycle)throw new Error(`Cycle detected: #/${(d=w.cycle)==null?void 0:d.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const b of this.seen.entries()){const w=b[1];if(t===b[0]){a(b);continue}if(r.external){const _=(f=r.external.registry.get(b[0]))==null?void 0:f.id;if(t!==b[0]&&_){a(b);continue}}if((p=this.metadataRegistry.get(b[0]))!=null&&p.id){a(b);continue}if(w.cycle){a(b);continue}if(w.count>1&&r.reused==="ref"){a(b);continue}}const s=(b,w)=>{const _=this.seen.get(b),S=_.def??_.schema,C={...S};if(_.ref===null)return;const j=_.ref;if(_.ref=null,j){s(j,w);const T=this.seen.get(j).schema;T.$ref&&(w.target==="draft-7"||w.target==="draft-4"||w.target==="openapi-3.0")?(S.allOf=S.allOf??[],S.allOf.push(T)):(Object.assign(S,T),Object.assign(S,C))}_.isParent||this.override({zodSchema:b,jsonSchema:S,path:_.path??[]})};for(const b of[...this.seen.entries()].reverse())s(b[0],{target:this.target});const l={};if(this.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?l.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?l.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),(v=r.external)==null?void 0:v.uri){const b=(x=r.external.registry.get(t))==null?void 0:x.id;if(!b)throw new Error("Schema is missing an `id` property");l.$id=r.external.uri(b)}Object.assign(l,i.def);const c=((y=r.external)==null?void 0:y.defs)??{};for(const b of this.seen.entries()){const w=b[1];w.def&&w.defId&&(c[w.defId]=w.def)}r.external||Object.keys(c).length>0&&(this.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{return JSON.parse(JSON.stringify(l))}catch{throw new Error("Error converting schema to JSON.")}}}function PJ(e,t){if(e instanceof hI){const r=new GI(t),i={};for(const s of e._idmap.entries()){const[l,c]=s;r.process(c)}const o={},a={registry:e,uri:t==null?void 0:t.uri,defs:i};for(const s of e._idmap.entries()){const[l,c]=s;o[l]=r.emit(c,{...t,external:a})}if(Object.keys(i).length>0){const s=r.target==="draft-2020-12"?"$defs":"definitions";o.__shared={[s]:i}}return{schemas:o}}const n=new GI(t);return n.process(e),n.emit(e,t)}function fa(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return fa(r.element,n);if(r.type==="set")return fa(r.valueType,n);if(r.type==="lazy")return fa(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return fa(r.innerType,n);if(r.type==="intersection")return fa(r.left,n)||fa(r.right,n);if(r.type==="record"||r.type==="map")return fa(r.keyType,n)||fa(r.valueType,n);if(r.type==="pipe")return fa(r.in,n)||fa(r.out,n);if(r.type==="object"){for(const i in r.shape)if(fa(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(fa(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(fa(i,n))return!0;return!!(r.rest&&fa(r.rest,n))}return!1}const REe=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),LEe=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:VK,$ZodArray:KK,$ZodAsyncError:fp,$ZodBase64:MK,$ZodBase64URL:LK,$ZodBigInt:lI,$ZodBigIntFormat:FK,$ZodBoolean:sI,$ZodCIDRv4:NK,$ZodCIDRv6:$K,$ZodCUID:yK,$ZodCUID2:bK,$ZodCatch:kX,$ZodCheck:Gr,$ZodCheckBigIntFormat:qY,$ZodCheckEndsWith:oK,$ZodCheckGreaterThan:iI,$ZodCheckIncludes:rK,$ZodCheckLengthEquals:QY,$ZodCheckLessThan:rI,$ZodCheckLowerCase:tK,$ZodCheckMaxLength:XY,$ZodCheckMaxSize:GY,$ZodCheckMimeType:lK,$ZodCheckMinLength:JY,$ZodCheckMinSize:YY,$ZodCheckMultipleOf:HY,$ZodCheckNumberFormat:ZY,$ZodCheckOverwrite:uK,$ZodCheckProperty:sK,$ZodCheckRegex:eK,$ZodCheckSizeEquals:KY,$ZodCheckStartsWith:iK,$ZodCheckStringFormat:rb,$ZodCheckUpperCase:nK,$ZodCodec:fI,$ZodCustom:MX,$ZodCustomStringFormat:DK,$ZodDate:GK,$ZodDefault:vX,$ZodDiscriminatedUnion:nX,$ZodE164:PK,$ZodEmail:pK,$ZodEmoji:gK,$ZodEncodeError:d3,$ZodEnum:cX,$ZodError:BT,$ZodFile:fX,$ZodFunction:EX,$ZodGUID:fK,$ZodIPv4:TK,$ZodIPv6:IK,$ZodISODate:SK,$ZodISODateTime:kK,$ZodISODuration:jK,$ZodISOTime:CK,$ZodIntersection:rX,$ZodJWT:zK,$ZodKSUID:wK,$ZodLazy:$X,$ZodLiteral:dX,$ZodMAC:EK,$ZodMap:aX,$ZodNaN:SX,$ZodNanoID:vK,$ZodNever:ZK,$ZodNonOptional:xX,$ZodNull:WK,$ZodNullable:gX,$ZodNumber:aI,$ZodNumberFormat:AK,$ZodObject:QK,$ZodObjectJIT:eX,$ZodOptional:mX,$ZodPipe:CX,$ZodPrefault:bX,$ZodPromise:NX,$ZodReadonly:jX,$ZodRealError:vs,$ZodRecord:oX,$ZodRegistry:hI,$ZodSet:lX,$ZodString:ib,$ZodStringFormat:yr,$ZodSuccess:wX,$ZodSymbol:UK,$ZodTemplateLiteral:IX,$ZodTransform:hX,$ZodTuple:dI,$ZodType:Bt,$ZodULID:xK,$ZodURL:mK,$ZodUUID:hK,$ZodUndefined:BK,$ZodUnion:uI,$ZodUnknown:HK,$ZodVoid:qK,$ZodXID:_K,$brand:DG,$constructor:be,$input:WX,$output:BX,Doc:cK,JSONSchema:REe,JSONSchemaGenerator:GI,NEVER:zG,TimePrecision:qX,_any:pJ,_array:jJ,_base64:$I,_base64url:MI,_bigint:sJ,_boolean:oJ,_catch:TEe,_check:$J,_cidrv4:EI,_cidrv6:NI,_coercedBigint:lJ,_coercedBoolean:aJ,_coercedDate:bJ,_coercedNumber:QX,_coercedString:HX,_cuid:wI,_cuid2:kI,_custom:IJ,_date:yJ,_decode:GT,_decodeAsync:KT,_default:SEe,_discriminatedUnion:fEe,_e164:RI,_email:mI,_emoji:xI,_encode:qT,_encodeAsync:YT,_endsWith:UI,_enum:yEe,_file:TJ,_float32:tJ,_float64:nJ,_gt:vp,_gte:ys,_guid:S3,_includes:AI,_int:eJ,_int32:rJ,_int64:uJ,_intersection:hEe,_ipv4:TI,_ipv6:II,_isoDate:YX,_isoDateTime:GX,_isoDuration:XX,_isoTime:KX,_jwt:LI,_ksuid:jI,_lazy:$Ee,_length:I3,_literal:xEe,_lowercase:zI,_lt:gp,_lte:Yl,_mac:ZX,_map:gEe,_max:Yl,_maxLength:T3,_maxSize:j3,_mime:BI,_min:ys,_minLength:sg,_minSize:lb,_multipleOf:sb,_nan:xJ,_nanoid:_I,_nativeEnum:bEe,_negative:wJ,_never:gJ,_nonnegative:SJ,_nonoptional:CEe,_nonpositive:kJ,_normalize:WI,_null:hJ,_nullable:kEe,_number:JX,_optional:wEe,_overwrite:Df,_parse:Xy,_parseAsync:Jy,_pipe:IEe,_positive:_J,_promise:MEe,_property:CJ,_readonly:EEe,_record:mEe,_refine:EJ,_regex:OI,_safeDecode:JT,_safeDecodeAsync:eI,_safeEncode:XT,_safeEncodeAsync:QT,_safeParse:Qy,_safeParseAsync:eb,_set:vEe,_size:PI,_slugify:qI,_startsWith:FI,_string:VX,_stringFormat:ub,_stringbool:LJ,_success:jEe,_superRefine:NJ,_symbol:dJ,_templateLiteral:NEe,_toLowerCase:HI,_toUpperCase:ZI,_transform:_Ee,_trim:VI,_tuple:pEe,_uint32:iJ,_uint64:cJ,_ulid:SI,_undefined:fJ,_union:dEe,_unknown:mJ,_uppercase:DI,_url:C3,_uuid:gI,_uuidv4:vI,_uuidv6:yI,_uuidv7:bI,_void:vJ,_xid:CI,clone:il,config:da,decode:Z7e,decodeAsync:G7e,describe:MJ,encode:H7e,encodeAsync:q7e,flattenError:WT,formatError:VT,globalConfig:f3,globalRegistry:Gl,isValidBase64:oI,isValidBase64URL:RK,isValidJWT:OK,locales:FX,meta:RJ,parse:HT,parseAsync:ZT,prettifyError:aY,regexes:nI,registry:pI,safeDecode:K7e,safeDecodeAsync:J7e,safeEncode:Y7e,safeEncodeAsync:X7e,safeParse:sY,safeParseAsync:lY,toDotPath:oY,toJSONSchema:PJ,treeifyError:iY,util:nY,version:dK},Symbol.toStringTag,{value:"Module"})),YI=be("ZodISODateTime",(e,t)=>{kK.init(e,t),Ir.init(e,t)});function OJ(e){return GX(YI,e)}const KI=be("ZodISODate",(e,t)=>{SK.init(e,t),Ir.init(e,t)});function zJ(e){return YX(KI,e)}const XI=be("ZodISOTime",(e,t)=>{CK.init(e,t),Ir.init(e,t)});function DJ(e){return KX(XI,e)}const JI=be("ZodISODuration",(e,t)=>{jK.init(e,t),Ir.init(e,t)});function AJ(e){return XX(JI,e)}const PEe=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:KI,ZodISODateTime:YI,ZodISODuration:JI,ZodISOTime:XI,date:zJ,datetime:OJ,duration:AJ,time:DJ},Symbol.toStringTag,{value:"Module"})),FJ=(e,t)=>{BT.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>VT(e,n)},flatten:{value:n=>WT(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,h3,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,h3,2)}},isEmpty:{get(){return e.issues.length===0}}})},OEe=be("ZodError",FJ),bs=be("ZodError",FJ,{Parent:Error}),UJ=Xy(bs),BJ=Jy(bs),WJ=Qy(bs),VJ=eb(bs),HJ=qT(bs),ZJ=GT(bs),qJ=YT(bs),GJ=KT(bs),YJ=XT(bs),KJ=JT(bs),XJ=QT(bs),JJ=eI(bs),rn=be("ZodType",(e,t)=>(Bt.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(rd(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]})),e.clone=(n,r)=>il(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>UJ(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>WJ(e,n,r),e.parseAsync=async(n,r)=>BJ(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>VJ(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>HJ(e,n,r),e.decode=(n,r)=>ZJ(e,n,r),e.encodeAsync=async(n,r)=>qJ(e,n,r),e.decodeAsync=async(n,r)=>GJ(e,n,r),e.safeEncode=(n,r)=>YJ(e,n,r),e.safeDecode=(n,r)=>KJ(e,n,r),e.safeEncodeAsync=async(n,r)=>XJ(e,n,r),e.safeDecodeAsync=async(n,r)=>JJ(e,n,r),e.refine=(n,r)=>e.check(PQ(n,r)),e.superRefine=n=>e.check(OQ(n)),e.overwrite=n=>e.check(Df(n)),e.optional=()=>z3(e),e.nullable=()=>_s(e),e.nullish=()=>z3(_s(e)),e.nonoptional=n=>wQ(e,n),e.array=()=>zr(e),e.or=n=>O3([e,n]),e.and=n=>cQ(e,n),e.transform=n=>D3(e,SE(n)),e.default=n=>bQ(e,n),e.prefault=n=>_Q(e,n),e.catch=n=>CQ(e,n),e.pipe=n=>D3(e,n),e.readonly=()=>IQ(e),e.describe=n=>{const r=e.clone();return Gl.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){var n;return(n=Gl.get(e))==null?void 0:n.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Gl.get(e);const r=e.clone();return Gl.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),QI=be("_ZodString",(e,t)=>{ib.init(e,t),rn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(OI(...r)),e.includes=(...r)=>e.check(AI(...r)),e.startsWith=(...r)=>e.check(FI(...r)),e.endsWith=(...r)=>e.check(UI(...r)),e.min=(...r)=>e.check(sg(...r)),e.max=(...r)=>e.check(T3(...r)),e.length=(...r)=>e.check(I3(...r)),e.nonempty=(...r)=>e.check(sg(1,...r)),e.lowercase=r=>e.check(zI(r)),e.uppercase=r=>e.check(DI(r)),e.trim=()=>e.check(VI()),e.normalize=(...r)=>e.check(WI(...r)),e.toLowerCase=()=>e.check(HI()),e.toUpperCase=()=>e.check(ZI()),e.slugify=()=>e.check(qI())}),E3=be("ZodString",(e,t)=>{ib.init(e,t),QI.init(e,t),e.email=n=>e.check(mI(eE,n)),e.url=n=>e.check(C3($3,n)),e.jwt=n=>e.check(LI(mE,n)),e.emoji=n=>e.check(xI(tE,n)),e.guid=n=>e.check(S3(N3,n)),e.uuid=n=>e.check(gI(od,n)),e.uuidv4=n=>e.check(vI(od,n)),e.uuidv6=n=>e.check(yI(od,n)),e.uuidv7=n=>e.check(bI(od,n)),e.nanoid=n=>e.check(_I(nE,n)),e.guid=n=>e.check(S3(N3,n)),e.cuid=n=>e.check(wI(rE,n)),e.cuid2=n=>e.check(kI(iE,n)),e.ulid=n=>e.check(SI(oE,n)),e.base64=n=>e.check($I(fE,n)),e.base64url=n=>e.check(MI(hE,n)),e.xid=n=>e.check(CI(aE,n)),e.ksuid=n=>e.check(jI(sE,n)),e.ipv4=n=>e.check(TI(lE,n)),e.ipv6=n=>e.check(II(uE,n)),e.cidrv4=n=>e.check(EI(cE,n)),e.cidrv6=n=>e.check(NI(dE,n)),e.e164=n=>e.check(RI(pE,n)),e.datetime=n=>e.check(OJ(n)),e.date=n=>e.check(zJ(n)),e.time=n=>e.check(DJ(n)),e.duration=n=>e.check(AJ(n))});function Et(e){return VX(E3,e)}const Ir=be("ZodStringFormat",(e,t)=>{yr.init(e,t),QI.init(e,t)}),eE=be("ZodEmail",(e,t)=>{pK.init(e,t),Ir.init(e,t)});function zEe(e){return mI(eE,e)}const N3=be("ZodGUID",(e,t)=>{fK.init(e,t),Ir.init(e,t)});function DEe(e){return S3(N3,e)}const od=be("ZodUUID",(e,t)=>{hK.init(e,t),Ir.init(e,t)});function AEe(e){return gI(od,e)}function FEe(e){return vI(od,e)}function UEe(e){return yI(od,e)}function BEe(e){return bI(od,e)}const $3=be("ZodURL",(e,t)=>{mK.init(e,t),Ir.init(e,t)});function WEe(e){return C3($3,e)}function VEe(e){return C3($3,{protocol:/^https?$/,hostname:TY,...Oe(e)})}const tE=be("ZodEmoji",(e,t)=>{gK.init(e,t),Ir.init(e,t)});function HEe(e){return xI(tE,e)}const nE=be("ZodNanoID",(e,t)=>{vK.init(e,t),Ir.init(e,t)});function ZEe(e){return _I(nE,e)}const rE=be("ZodCUID",(e,t)=>{yK.init(e,t),Ir.init(e,t)});function qEe(e){return wI(rE,e)}const iE=be("ZodCUID2",(e,t)=>{bK.init(e,t),Ir.init(e,t)});function GEe(e){return kI(iE,e)}const oE=be("ZodULID",(e,t)=>{xK.init(e,t),Ir.init(e,t)});function YEe(e){return SI(oE,e)}const aE=be("ZodXID",(e,t)=>{_K.init(e,t),Ir.init(e,t)});function KEe(e){return CI(aE,e)}const sE=be("ZodKSUID",(e,t)=>{wK.init(e,t),Ir.init(e,t)});function XEe(e){return jI(sE,e)}const lE=be("ZodIPv4",(e,t)=>{TK.init(e,t),Ir.init(e,t)});function JEe(e){return TI(lE,e)}const QJ=be("ZodMAC",(e,t)=>{EK.init(e,t),Ir.init(e,t)});function QEe(e){return ZX(QJ,e)}const uE=be("ZodIPv6",(e,t)=>{IK.init(e,t),Ir.init(e,t)});function eNe(e){return II(uE,e)}const cE=be("ZodCIDRv4",(e,t)=>{NK.init(e,t),Ir.init(e,t)});function tNe(e){return EI(cE,e)}const dE=be("ZodCIDRv6",(e,t)=>{$K.init(e,t),Ir.init(e,t)});function nNe(e){return NI(dE,e)}const fE=be("ZodBase64",(e,t)=>{MK.init(e,t),Ir.init(e,t)});function rNe(e){return $I(fE,e)}const hE=be("ZodBase64URL",(e,t)=>{LK.init(e,t),Ir.init(e,t)});function iNe(e){return MI(hE,e)}const pE=be("ZodE164",(e,t)=>{PK.init(e,t),Ir.init(e,t)});function oNe(e){return RI(pE,e)}const mE=be("ZodJWT",(e,t)=>{zK.init(e,t),Ir.init(e,t)});function aNe(e){return LI(mE,e)}const cb=be("ZodCustomStringFormat",(e,t)=>{DK.init(e,t),Ir.init(e,t)});function sNe(e,t,n={}){return ub(cb,e,t,n)}function lNe(e){return ub(cb,"hostname",jY,e)}function uNe(e){return ub(cb,"hex",WY,e)}function cNe(e,t){const n=(t==null?void 0:t.enc)??"hex",r=`${e}_${n}`,i=nI[r];if(!i)throw new Error(`Unrecognized hash format: ${r}`);return ub(cb,r,i,t)}const M3=be("ZodNumber",(e,t)=>{aI.init(e,t),rn.init(e,t),e.gt=(r,i)=>e.check(vp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(gp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.int=r=>e.check(gE(r)),e.safe=r=>e.check(gE(r)),e.positive=r=>e.check(vp(0,r)),e.nonnegative=r=>e.check(ys(0,r)),e.negative=r=>e.check(gp(0,r)),e.nonpositive=r=>e.check(Yl(0,r)),e.multipleOf=(r,i)=>e.check(sb(r,i)),e.step=(r,i)=>e.check(sb(r,i)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function oe(e){return JX(M3,e)}const lg=be("ZodNumberFormat",(e,t)=>{AK.init(e,t),M3.init(e,t)});function gE(e){return eJ(lg,e)}function dNe(e){return tJ(lg,e)}function fNe(e){return nJ(lg,e)}function hNe(e){return rJ(lg,e)}function pNe(e){return iJ(lg,e)}const R3=be("ZodBoolean",(e,t)=>{sI.init(e,t),rn.init(e,t)});function ad(e){return oJ(R3,e)}const L3=be("ZodBigInt",(e,t)=>{lI.init(e,t),rn.init(e,t),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.gt=(r,i)=>e.check(vp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(gp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.positive=r=>e.check(vp(BigInt(0),r)),e.negative=r=>e.check(gp(BigInt(0),r)),e.nonpositive=r=>e.check(Yl(BigInt(0),r)),e.nonnegative=r=>e.check(ys(BigInt(0),r)),e.multipleOf=(r,i)=>e.check(sb(r,i));const n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function mNe(e){return sJ(L3,e)}const vE=be("ZodBigIntFormat",(e,t)=>{FK.init(e,t),L3.init(e,t)});function gNe(e){return uJ(vE,e)}function vNe(e){return cJ(vE,e)}const eQ=be("ZodSymbol",(e,t)=>{UK.init(e,t),rn.init(e,t)});function yNe(e){return dJ(eQ,e)}const tQ=be("ZodUndefined",(e,t)=>{BK.init(e,t),rn.init(e,t)});function bNe(e){return fJ(tQ,e)}const nQ=be("ZodNull",(e,t)=>{WK.init(e,t),rn.init(e,t)});function yE(e){return hJ(nQ,e)}const rQ=be("ZodAny",(e,t)=>{VK.init(e,t),rn.init(e,t)});function xNe(){return pJ(rQ)}const iQ=be("ZodUnknown",(e,t)=>{HK.init(e,t),rn.init(e,t)});function ug(){return mJ(iQ)}const oQ=be("ZodNever",(e,t)=>{ZK.init(e,t),rn.init(e,t)});function bE(e){return gJ(oQ,e)}const aQ=be("ZodVoid",(e,t)=>{qK.init(e,t),rn.init(e,t)});function _Ne(e){return vJ(aQ,e)}const xE=be("ZodDate",(e,t)=>{GK.init(e,t),rn.init(e,t),e.min=(r,i)=>e.check(ys(r,i)),e.max=(r,i)=>e.check(Yl(r,i));const n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function wNe(e){return yJ(xE,e)}const sQ=be("ZodArray",(e,t)=>{KK.init(e,t),rn.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(sg(n,r)),e.nonempty=n=>e.check(sg(1,n)),e.max=(n,r)=>e.check(T3(n,r)),e.length=(n,r)=>e.check(I3(n,r)),e.unwrap=()=>e.element});function zr(e,t){return jJ(sQ,e,t)}function kNe(e){const t=e._zod.def.shape;return xs(Object.keys(t))}const P3=be("ZodObject",(e,t)=>{eX.init(e,t),rn.init(e,t),vn(e,"shape",()=>t.shape),e.keyof=()=>xs(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ug()}),e.loose=()=>e.clone({...e._zod.def,catchall:ug()}),e.strict=()=>e.clone({...e._zod.def,catchall:bE()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>YG(e,n),e.safeExtend=n=>KG(e,n),e.merge=n=>XG(e,n),e.pick=n=>qG(e,n),e.omit=n=>GG(e,n),e.partial=(...n)=>JG(CE,e,n[0]),e.required=(...n)=>QG(jE,e,n[0])});function kt(e,t){const n={type:"object",shape:e??{},...Oe(t)};return new P3(n)}function SNe(e,t){return new P3({type:"object",shape:e,catchall:bE(),...Oe(t)})}function CNe(e,t){return new P3({type:"object",shape:e,catchall:ug(),...Oe(t)})}const _E=be("ZodUnion",(e,t)=>{uI.init(e,t),rn.init(e,t),e.options=t.options});function O3(e,t){return new _E({type:"union",options:e,...Oe(t)})}const lQ=be("ZodDiscriminatedUnion",(e,t)=>{_E.init(e,t),nX.init(e,t)});function sd(e,t,n){return new lQ({type:"union",options:t,discriminator:e,...Oe(n)})}const uQ=be("ZodIntersection",(e,t)=>{rX.init(e,t),rn.init(e,t)});function cQ(e,t){return new uQ({type:"intersection",left:e,right:t})}const dQ=be("ZodTuple",(e,t)=>{dI.init(e,t),rn.init(e,t),e.rest=n=>e.clone({...e._zod.def,rest:n})});function wE(e,t,n){const r=t instanceof Bt,i=r?n:t,o=r?t:null;return new dQ({type:"tuple",items:e,rest:o,...Oe(i)})}const kE=be("ZodRecord",(e,t)=>{oX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function db(e,t,n){return new kE({type:"record",keyType:e,valueType:t,...Oe(n)})}function jNe(e,t,n){const r=il(e);return r._zod.values=void 0,new kE({type:"record",keyType:r,valueType:t,...Oe(n)})}const fQ=be("ZodMap",(e,t)=>{aX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function TNe(e,t,n){return new fQ({type:"map",keyType:e,valueType:t,...Oe(n)})}const hQ=be("ZodSet",(e,t)=>{lX.init(e,t),rn.init(e,t),e.min=(...n)=>e.check(lb(...n)),e.nonempty=n=>e.check(lb(1,n)),e.max=(...n)=>e.check(j3(...n)),e.size=(...n)=>e.check(PI(...n))});function INe(e,t){return new hQ({type:"set",valueType:e,...Oe(t)})}const fb=be("ZodEnum",(e,t)=>{cX.init(e,t),rn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const o={};for(const a of r)if(n.has(a))o[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Oe(i),entries:o})},e.exclude=(r,i)=>{const o={...t.entries};for(const a of r)if(n.has(a))delete o[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Oe(i),entries:o})}});function xs(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new fb({type:"enum",entries:n,...Oe(t)})}function ENe(e,t){return new fb({type:"enum",entries:e,...Oe(t)})}const pQ=be("ZodLiteral",(e,t)=>{dX.init(e,t),rn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ft(e,t){return new pQ({type:"literal",values:Array.isArray(e)?e:[e],...Oe(t)})}const mQ=be("ZodFile",(e,t)=>{fX.init(e,t),rn.init(e,t),e.min=(n,r)=>e.check(lb(n,r)),e.max=(n,r)=>e.check(j3(n,r)),e.mime=(n,r)=>e.check(BI(Array.isArray(n)?n:[n],r))});function NNe(e){return TJ(mQ,e)}const gQ=be("ZodTransform",(e,t)=>{hX.init(e,t),rn.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);n.addIssue=o=>{if(typeof o=="string")n.issues.push(og(o,n.value,t));else{const a=o;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=e),n.issues.push(og(a))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(o=>(n.value=o,n)):(n.value=i,n)}});function SE(e){return new gQ({type:"transform",transform:e})}const CE=be("ZodOptional",(e,t)=>{mX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function z3(e){return new CE({type:"optional",innerType:e})}const vQ=be("ZodNullable",(e,t)=>{gX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _s(e){return new vQ({type:"nullable",innerType:e})}function $Ne(e){return z3(_s(e))}const yQ=be("ZodDefault",(e,t)=>{vX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function bQ(e,t){return new yQ({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const xQ=be("ZodPrefault",(e,t)=>{bX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _Q(e,t){return new xQ({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const jE=be("ZodNonOptional",(e,t)=>{xX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function wQ(e,t){return new jE({type:"nonoptional",innerType:e,...Oe(t)})}const kQ=be("ZodSuccess",(e,t)=>{wX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function MNe(e){return new kQ({type:"success",innerType:e})}const SQ=be("ZodCatch",(e,t)=>{kX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function CQ(e,t){return new SQ({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const jQ=be("ZodNaN",(e,t)=>{SX.init(e,t),rn.init(e,t)});function RNe(e){return xJ(jQ,e)}const TE=be("ZodPipe",(e,t)=>{CX.init(e,t),rn.init(e,t),e.in=t.in,e.out=t.out});function D3(e,t){return new TE({type:"pipe",in:e,out:t})}const IE=be("ZodCodec",(e,t)=>{TE.init(e,t),fI.init(e,t)});function LNe(e,t,n){return new IE({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}const TQ=be("ZodReadonly",(e,t)=>{jX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IQ(e){return new TQ({type:"readonly",innerType:e})}const EQ=be("ZodTemplateLiteral",(e,t)=>{IX.init(e,t),rn.init(e,t)});function PNe(e,t){return new EQ({type:"template_literal",parts:e,...Oe(t)})}const NQ=be("ZodLazy",(e,t)=>{$X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.getter()});function $Q(e){return new NQ({type:"lazy",getter:e})}const MQ=be("ZodPromise",(e,t)=>{NX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function ONe(e){return new MQ({type:"promise",innerType:e})}const RQ=be("ZodFunction",(e,t)=>{EX.init(e,t),rn.init(e,t)});function LQ(e){return new RQ({type:"function",input:Array.isArray(e==null?void 0:e.input)?wE(e==null?void 0:e.input):(e==null?void 0:e.input)??zr(ug()),output:(e==null?void 0:e.output)??ug()})}const A3=be("ZodCustom",(e,t)=>{MX.init(e,t),rn.init(e,t)});function zNe(e){const t=new Gr({check:"custom"});return t._zod.check=e,t}function DNe(e,t){return IJ(A3,e??(()=>!0),t)}function PQ(e,t={}){return EJ(A3,e,t)}function OQ(e){return NJ(e)}const ANe=MJ,FNe=RJ;function UNe(e,t={error:`Input not instance of ${e.name}`}){const n=new A3({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...Oe(t)});return n._zod.bag.Class=e,n}const BNe=(...e)=>LJ({Codec:IE,Boolean:R3,String:E3},...e);function WNe(e){const t=$Q(()=>O3([Et(e),oe(),ad(),yE(),zr(t),db(Et(),t)]));return t}function zQ(e,t){return D3(SE(e),t)}const VNe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function HNe(e){da({customError:e})}function ZNe(){return da().customError}var EE;EE||(EE={});function qNe(e){return HX(E3,e)}function jo(e){return QX(M3,e)}function GNe(e){return aJ(R3,e)}function Zt(e){return lJ(L3,e)}function YNe(e){return bJ(xE,e)}const KNe=Object.freeze(Object.defineProperty({__proto__:null,bigint:Zt,boolean:GNe,date:YNe,number:jo,string:qNe},Symbol.toStringTag,{value:"Module"}));da(PX());const XNe=Object.freeze(Object.defineProperty({__proto__:null,$brand:DG,$input:WX,$output:BX,NEVER:zG,TimePrecision:qX,ZodAny:rQ,ZodArray:sQ,ZodBase64:fE,ZodBase64URL:hE,ZodBigInt:L3,ZodBigIntFormat:vE,ZodBoolean:R3,ZodCIDRv4:cE,ZodCIDRv6:dE,ZodCUID:rE,ZodCUID2:iE,ZodCatch:SQ,ZodCodec:IE,ZodCustom:A3,ZodCustomStringFormat:cb,ZodDate:xE,ZodDefault:yQ,ZodDiscriminatedUnion:lQ,ZodE164:pE,ZodEmail:eE,ZodEmoji:tE,ZodEnum:fb,ZodError:OEe,ZodFile:mQ,get ZodFirstPartyTypeKind(){return EE},ZodFunction:RQ,ZodGUID:N3,ZodIPv4:lE,ZodIPv6:uE,ZodISODate:KI,ZodISODateTime:YI,ZodISODuration:JI,ZodISOTime:XI,ZodIntersection:uQ,ZodIssueCode:VNe,ZodJWT:mE,ZodKSUID:sE,ZodLazy:NQ,ZodLiteral:pQ,ZodMAC:QJ,ZodMap:fQ,ZodNaN:jQ,ZodNanoID:nE,ZodNever:oQ,ZodNonOptional:jE,ZodNull:nQ,ZodNullable:vQ,ZodNumber:M3,ZodNumberFormat:lg,ZodObject:P3,ZodOptional:CE,ZodPipe:TE,ZodPrefault:xQ,ZodPromise:MQ,ZodReadonly:TQ,ZodRealError:bs,ZodRecord:kE,ZodSet:hQ,ZodString:E3,ZodStringFormat:Ir,ZodSuccess:kQ,ZodSymbol:eQ,ZodTemplateLiteral:EQ,ZodTransform:gQ,ZodTuple:dQ,ZodType:rn,ZodULID:oE,ZodURL:$3,ZodUUID:od,ZodUndefined:tQ,ZodUnion:_E,ZodUnknown:iQ,ZodVoid:aQ,ZodXID:aE,_ZodString:QI,_default:bQ,_function:LQ,any:xNe,array:zr,base64:rNe,base64url:iNe,bigint:mNe,boolean:ad,catch:CQ,check:zNe,cidrv4:tNe,cidrv6:nNe,clone:il,codec:LNe,coerce:KNe,config:da,core:LEe,cuid:qEe,cuid2:GEe,custom:DNe,date:wNe,decode:ZJ,decodeAsync:GJ,describe:ANe,discriminatedUnion:sd,e164:oNe,email:zEe,emoji:HEe,encode:HJ,encodeAsync:qJ,endsWith:UI,enum:xs,file:NNe,flattenError:WT,float32:dNe,float64:fNe,formatError:VT,function:LQ,getErrorMap:ZNe,globalRegistry:Gl,gt:vp,gte:ys,guid:DEe,hash:cNe,hex:uNe,hostname:lNe,httpUrl:VEe,includes:AI,instanceof:UNe,int:gE,int32:hNe,int64:gNe,intersection:cQ,ipv4:JEe,ipv6:eNe,iso:PEe,json:WNe,jwt:aNe,keyof:kNe,ksuid:XEe,lazy:$Q,length:I3,literal:ft,locales:FX,looseObject:CNe,lowercase:zI,lt:gp,lte:Yl,mac:QEe,map:TNe,maxLength:T3,maxSize:j3,meta:FNe,mime:BI,minLength:sg,minSize:lb,multipleOf:sb,nan:RNe,nanoid:ZEe,nativeEnum:ENe,negative:wJ,never:bE,nonnegative:SJ,nonoptional:wQ,nonpositive:kJ,normalize:WI,null:yE,nullable:_s,nullish:$Ne,number:oe,object:kt,optional:z3,overwrite:Df,parse:UJ,parseAsync:BJ,partialRecord:jNe,pipe:D3,positive:_J,prefault:_Q,preprocess:zQ,prettifyError:aY,promise:ONe,property:CJ,readonly:IQ,record:db,refine:PQ,regex:OI,regexes:nI,registry:pI,safeDecode:KJ,safeDecodeAsync:JJ,safeEncode:YJ,safeEncodeAsync:XJ,safeParse:WJ,safeParseAsync:VJ,set:INe,setErrorMap:HNe,size:PI,slugify:qI,startsWith:FI,strictObject:SNe,string:Et,stringFormat:sNe,stringbool:BNe,success:MNe,superRefine:OQ,symbol:yNe,templateLiteral:PNe,toJSONSchema:PJ,toLowerCase:HI,toUpperCase:ZI,transform:SE,treeifyError:iY,trim:VI,tuple:wE,uint32:pNe,uint64:vNe,ulid:YEe,undefined:bNe,union:O3,unknown:ug,uppercase:DI,url:WEe,util:nY,uuid:AEe,uuidv4:FEe,uuidv6:UEe,uuidv7:BEe,void:_Ne,xid:KEe},Symbol.toStringTag,{value:"Module"})),DQ=xs(["Frankendancer","Firedancer"]),NE=DQ.enum,ln=kt({topic:ft("summary")}),AQ=kt({topic:ft("epoch")}),cg=kt({topic:ft("gossip")}),FQ=kt({topic:ft("peers")}),qu=kt({topic:ft("slot")}),UQ=kt({topic:ft("block_engine")}),F3=kt({topic:ft("wait_for_supermajority")});sd("topic",[ln,AQ,cg,FQ,qu,UQ,F3]);const JNe=Et(),QNe=xs(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),e$e=Et(),t$e=Et(),n$e=Et(),r$e=Zt(),BQ=xs(["perf","balanced","revenue"]),ld=BQ.enum,$E=xs(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","genesi","diag","event"]),i$e=kt({kind:Et(),kind_id:oe()}),WQ=Zt();Zt();const o$e=oe(),a$e=oe(),s$e=oe(),l$e=oe().nullable(),u$e=oe().nullable(),c$e=kt({repair:oe().array(),turbine:oe().array()}),d$e=jo(),f$e=oe(),h$e=oe().nullable(),p$e=oe().nullable(),m$e=oe(),g$e=oe().nullable(),v$e=oe(),y$e=oe(),b$e=kt({total:oe(),vote:oe(),nonvote_success:oe(),nonvote_failed:oe()}),x$e=kt({ingress:zr(oe()),egress:zr(oe())}),_$e=kt({pack_cranked:oe(),pack_retained:oe(),resolv_retained:oe(),quic:oe(),udp:oe(),gossip:oe(),block_engine:oe()}),w$e=kt({net_overrun:oe(),quic_overrun:oe(),quic_frag_drop:oe(),quic_abandoned:oe(),tpu_quic_invalid:oe(),tpu_udp_invalid:oe(),verify_overrun:oe(),verify_parse:oe(),verify_failed:oe(),verify_duplicate:oe(),dedup_duplicate:oe(),resolv_lut_failed:oe(),resolv_expired:oe(),resolv_no_ledger:oe(),resolv_ancient:oe(),resolv_retained:oe(),pack_invalid:oe(),pack_already_executed:oe(),pack_invalid_bundle:oe(),pack_retained:oe(),pack_leader_slow:oe(),pack_wait_full:oe(),pack_expired:oe(),bank_invalid:oe(),bank_nonce_already_advanced:oe(),bank_nonce_advance_failed:oe(),bank_nonce_wrong_blockhash:oe(),block_success:oe(),block_fail:oe()}),VQ=kt({in:_$e,out:w$e}),k$e=kt({next_leader_slot:oe().nullable(),waterfall:VQ}),HQ=kt({net_in:oe(),quic:oe(),verify:oe(),bundle_rtt_smoothed_millis:oe(),bundle_rx_delay_millis_p90:oe(),dedup:oe(),pack:oe(),bank:oe(),poh:oe(),shred:oe(),store:oe(),net_out:oe()}),S$e=kt({next_leader_slot:oe().nullable(),tile_primary_metric:HQ}),C$e=kt({timers:zr(zr(oe()).nullable()),sched_timers:zr(zr(oe()).nullable()),in_backp:zr(ad().nullable()),backp_msgs:zr(oe().nullable()),alive:zr(oe().nullable()),nvcsw:zr(oe().nullable()),nivcsw:zr(oe().nullable()),last_cpu:zr(oe().nullable()),minflt:zr(oe().nullable()),majflt:zr(oe().nullable())});kt({tile:Et(),kind_id:oe(),idle:oe()});const j$e=xs(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),T$e=kt({phase:j$e,downloading_full_snapshot_slot:oe().nullable(),downloading_full_snapshot_peer:Et().nullable(),downloading_full_snapshot_elapsed_secs:oe().nullable(),downloading_full_snapshot_remaining_secs:oe().nullable(),downloading_full_snapshot_throughput:oe().nullable(),downloading_full_snapshot_total_bytes:jo().nullable(),downloading_full_snapshot_current_bytes:jo().nullable(),downloading_incremental_snapshot_slot:oe().nullable(),downloading_incremental_snapshot_peer:Et().nullable(),downloading_incremental_snapshot_elapsed_secs:oe().nullable(),downloading_incremental_snapshot_remaining_secs:oe().nullable(),downloading_incremental_snapshot_throughput:oe().nullable(),downloading_incremental_snapshot_total_bytes:jo().nullable(),downloading_incremental_snapshot_current_bytes:jo().nullable(),ledger_slot:oe().nullable(),ledger_max_slot:oe().nullable(),waiting_for_supermajority_slot:oe().nullable(),waiting_for_supermajority_stake_percent:oe().nullable()}),ZQ=xs(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]),wn=ZQ.enum,I$e=kt({phase:ZQ,joining_gossip_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_reset_count:oe().nullable().optional(),loading_full_snapshot_slot:oe().nullable().optional(),loading_full_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_path:Et().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_insert_accounts:oe().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:oe().nullable().optional(),loading_incremental_snapshot_reset_count:oe().nullable().optional(),loading_incremental_snapshot_slot:oe().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_path:Et().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_insert_accounts:oe().nullable().optional(),wait_for_supermajority_bank_hash:Et().nullable().optional(),wait_for_supermajority_shred_version:Et().nullable().optional(),wait_for_supermajority_attempt:oe().nullable().optional(),wait_for_supermajority_total_stake:Zt().nullable().optional(),wait_for_supermajority_connected_stake:Zt().nullable().optional(),wait_for_supermajority_total_peers:oe().nullable().optional(),wait_for_supermajority_connected_peers:oe().nullable().optional(),catching_up_elapsed_seconds:oe().nullable().optional(),catching_up_first_replay_slot:oe().nullable().optional()}),E$e=zQ(e=>{if(!e||typeof e!="object"||Array.isArray(e))return e;const t=e;return{...t,txn_preload_end_timestamps_nanos:t.txn_preload_end_timestamps_nanos??t.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:t.txn_start_timestamps_nanos??t.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:t.txn_load_end_timestamps_nanos??t.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:t.txn_end_timestamps_nanos??t.txn_commit_start_timestamps_nanos}},kt({start_timestamp_nanos:Zt(),target_end_timestamp_nanos:Zt(),txn_mb_start_timestamps_nanos:Zt().array(),txn_mb_end_timestamps_nanos:Zt().array(),txn_compute_units_requested:oe().array(),txn_compute_units_consumed:oe().array(),txn_transaction_fee:Zt().array(),txn_priority_fee:Zt().array(),txn_tips:Zt().array(),txn_error_code:oe().array(),txn_from_bundle:ad().array(),txn_is_simple_vote:ad().array(),txn_bank_idx:oe().array(),txn_preload_end_timestamps_nanos:Zt().array(),txn_start_timestamps_nanos:Zt().array(),txn_load_end_timestamps_nanos:Zt().array(),txn_end_timestamps_nanos:Zt().array(),txn_commit_end_timestamps_nanos:Zt().array().optional(),txn_arrival_timestamps_nanos:Zt().array(),txn_microblock_id:oe().array(),txn_landed:ad().array(),txn_signature:Et().array(),txn_source_ipv4:Et().array(),txn_source_tpu:Et().array()})),N$e=xs(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),$$e=kt({slot:oe(),mine:ad(),skipped:ad(),level:N$e,success_nonvote_transaction_cnt:oe().nullable(),failed_nonvote_transaction_cnt:oe().nullable(),success_vote_transaction_cnt:oe().nullable(),failed_vote_transaction_cnt:oe().nullable(),priority_fee:Zt().nullable(),transaction_fee:Zt().nullable(),tips:Zt().nullable(),max_compute_units:oe().nullable(),compute_units:oe().nullable(),duration_nanos:oe().nullable(),completed_time_nanos:Zt().nullable(),vote_latency:oe().nullable()}),M$e=zr(wE([oe(),oe(),oe(),oe()])),R$e=xs(["voting","non-voting","delinquent"]),L$e=oe(),P$e=kt({epoch:oe(),skip_rate:oe()}),O$e=kt({hits:oe(),lookups:oe(),insertions:oe(),insertion_bytes:oe(),evictions:oe(),eviction_bytes:oe(),spills:oe(),spill_bytes:oe(),free_bytes:oe(),size_bytes:oe()}),z$e=sd("key",[ln.extend({key:ft("ping"),value:yE(),id:oe()}),ln.extend({key:ft("version"),value:JNe}),ln.extend({key:ft("cluster"),value:QNe}),ln.extend({key:ft("commit_hash"),value:e$e}),ln.extend({key:ft("identity_key"),value:t$e}),ln.extend({key:ft("vote_key"),value:n$e}),ln.extend({key:ft("startup_time_nanos"),value:r$e}),ln.extend({key:ft("schedule_strategy"),value:BQ}),ln.extend({key:ft("tiles"),value:i$e.array()}),ln.extend({key:ft("identity_balance"),value:WQ}),ln.extend({key:ft("vote_balance"),value:WQ}),ln.extend({key:ft("root_slot"),value:o$e}),ln.extend({key:ft("optimistically_confirmed_slot"),value:a$e}),ln.extend({key:ft("completed_slot"),value:s$e}),ln.extend({key:ft("estimated_slot"),value:f$e}),ln.extend({key:ft("reset_slot"),value:h$e}),ln.extend({key:ft("storage_slot"),value:p$e}),ln.extend({key:ft("vote_slot"),value:m$e}),ln.extend({key:ft("slot_caught_up"),value:g$e}),ln.extend({key:ft("active_fork_count"),value:v$e}),ln.extend({key:ft("estimated_slot_duration_nanos"),value:y$e}),ln.extend({key:ft("estimated_tps"),value:b$e}),ln.extend({key:ft("live_network_metrics"),value:x$e}),ln.extend({key:ft("live_txn_waterfall"),value:k$e}),ln.extend({key:ft("live_tile_primary_metric"),value:S$e}),ln.extend({key:ft("live_tile_metrics"),value:C$e}),ln.extend({key:ft("live_tile_timers"),value:oe().array()}),ln.extend({key:ft("startup_progress"),value:T$e}),ln.extend({key:ft("boot_progress"),value:I$e}),ln.extend({key:ft("tps_history"),value:M$e}),ln.extend({key:ft("vote_state"),value:R$e}),ln.extend({key:ft("vote_distance"),value:L$e}),ln.extend({key:ft("skip_rate"),value:P$e}),ln.extend({key:ft("turbine_slot"),value:l$e}),ln.extend({key:ft("repair_slot"),value:u$e}),ln.extend({key:ft("catch_up_history"),value:c$e}),ln.extend({key:ft("server_time_nanos"),value:d$e}),ln.extend({key:ft("live_program_cache"),value:O$e})]),D$e=kt({epoch:oe(),start_time_nanos:Et().nullable(),end_time_nanos:Et().nullable(),start_slot:oe(),end_slot:oe(),excluded_stake_lamports:Zt(),staked_pubkeys:Et().array(),staked_lamports:Zt().array(),leader_slots:oe().array()}),A$e=sd("key",[AQ.extend({key:ft("new"),value:D$e})]),F$e=kt({num_push_messages_rx_success:oe(),num_push_messages_rx_failure:oe(),num_push_entries_rx_success:oe(),num_push_entries_rx_failure:oe(),num_push_entries_rx_duplicate:oe(),num_pull_response_messages_rx_success:oe(),num_pull_response_messages_rx_failure:oe(),num_pull_response_entries_rx_success:oe(),num_pull_response_entries_rx_failure:oe(),num_pull_response_entries_rx_duplicate:oe(),total_peers:oe(),total_stake:Zt(),connected_stake:Zt(),connected_staked_peers:oe(),connected_unstaked_peers:oe()}),qQ=kt({total_throughput:oe(),peer_names:Et().array(),peer_identities:Et().array(),peer_throughput:oe().array()}),U$e=kt({capacity:oe(),expired_count:oe(),evicted_count:oe(),count:oe().array(),count_tx:oe().array(),bytes_tx:oe().array()}),B$e=kt({num_bytes_rx:oe().array(),num_bytes_tx:oe().array(),num_messages_rx:oe().array(),num_messages_tx:oe().array()}),W$e=kt({health:F$e,ingress:qQ,egress:qQ,storage:U$e,messages:B$e}),V$e=oe(),GQ=O3([Et(),oe()]),YQ=db(Et(),db(Et(),GQ)).nullable(),H$e=kt({changes:zr(kt({row_index:oe(),column_name:Et(),new_value:GQ}))}),Z$e=sd("key",[cg.extend({key:ft("network_stats"),value:W$e}),cg.extend({key:ft("peers_size_update"),value:V$e}),cg.extend({key:ft("query_scroll"),value:YQ}),cg.extend({key:ft("query_sort"),value:YQ}),cg.extend({key:ft("view_update"),value:H$e})]),q$e=kt({client_id:oe().nullable().optional(),wallclock:oe(),shred_version:oe(),version:Et().nullable(),feature_set:oe().nullable(),sockets:db(Et(),Et()),country_code:Et().nullable().optional(),city_name:Et().nullable().optional()}),G$e=kt({vote_account:Et(),activated_stake:Zt(),last_vote:_s(oe()),root_slot:_s(oe()),epoch_credits:oe(),commission:oe(),delinquent:ad()}),KQ=kt({name:_s(Et()),details:_s(Et()),website:_s(Et()),icon_url:_s(Et()),keybase_username:_s(Et())}),XQ=kt({identity_pubkey:Et(),gossip:_s(q$e),vote:zr(G$e),info:_s(KQ)}),Y$e=kt({identity_pubkey:Et()}),K$e=kt({add:zr(XQ).optional(),update:zr(XQ).optional(),remove:zr(Y$e).optional()}),X$e=sd("key",[FQ.extend({key:ft("update"),value:K$e})]),J$e=kt({timestamp_nanos:Et(),tile_timers:oe().array()}),Q$e=kt({timestamp_nanos:Zt(),regular:oe(),votes:oe(),conflicting:oe(),bundles:oe()}),eMe=kt({account:Et(),cost:oe()}),tMe=kt({used_total_block_cost:oe(),used_total_vote_cost:oe(),used_account_write_costs:eMe.array(),used_total_bytes:oe(),used_total_microblocks:oe(),max_total_block_cost:oe(),max_total_vote_cost:oe(),max_account_write_cost:oe(),max_total_bytes:oe(),max_total_microblocks:oe()}),nMe=kt({block_hash:Et().optional(),end_slot_reason:Et().optional(),slot_schedule_counts:oe().array(),end_slot_schedule_counts:oe().array(),pending_smallest_cost:oe().nullable(),pending_smallest_bytes:oe().nullable(),pending_vote_smallest_cost:oe().nullable(),pending_vote_smallest_bytes:oe().nullable()}),U3=kt({publish:$$e,waterfall:VQ.nullable().optional(),tile_primary_metric:HQ.nullable().optional(),tile_timers:J$e.array().nullable().optional(),scheduler_counts:Q$e.array().nullable().optional(),transactions:E$e.nullable().optional(),limits:tMe.nullable().optional(),scheduler_stats:nMe.nullable().optional()}),rMe=oe().array(),iMe=oe().array(),oMe=kt({slots_largest_tips:oe().array(),vals_largest_tips:Zt().array(),slots_smallest_tips:oe().array(),vals_smallest_tips:Zt().array(),slots_largest_fees:oe().array(),vals_largest_fees:Zt().array(),slots_smallest_fees:oe().array(),vals_smallest_fees:Zt().array(),slots_largest_rewards:oe().array(),vals_largest_rewards:Zt().array(),slots_smallest_rewards:oe().array(),vals_smallest_rewards:Zt().array(),slots_largest_duration:oe().array(),vals_largest_duration:Zt().array(),slots_smallest_duration:oe().array(),vals_smallest_duration:Zt().array(),slots_largest_compute_units:oe().array(),vals_largest_compute_units:Zt().array(),slots_smallest_compute_units:oe().array(),vals_smallest_compute_units:Zt().array(),slots_largest_skipped:oe().array(),vals_largest_skipped:Zt().array(),slots_smallest_skipped:oe().array(),vals_smallest_skipped:Zt().array()});var Er=(e=>(e[e.shred_repair_request=0]="shred_repair_request",e[e.shred_received_turbine=1]="shred_received_turbine",e[e.shred_received_repair=2]="shred_received_repair",e[e.shred_replayed=3]="shred_replayed",e[e.slot_complete=4]="slot_complete",e[e.shred_published=6]="shred_published",e))(Er||{});const aMe=kt({reference_slot:oe(),reference_ts:Zt(),slot_delta:oe().array(),shred_idx:oe().nullable().array(),event:oe().array(),event_ts_delta:jo().array()}),sMe=sd("key",[qu.extend({key:ft("skipped_history"),value:rMe}),qu.extend({key:ft("skipped_history_cluster"),value:iMe}),qu.extend({key:ft("update"),value:U3}),qu.extend({key:ft("query"),value:U3.nullable()}),qu.extend({key:ft("query_detailed"),value:U3.nullable()}),qu.extend({key:ft("query_transactions"),value:U3.nullable()}),qu.extend({key:ft("query_rankings"),value:oMe}),qu.extend({key:ft("live_shreds"),value:aMe}),qu.extend({key:ft("late_votes_history"),value:kt({slot:oe().array(),latency:oe().nullable().array()})})]),lMe=xs(["disconnected","connecting","connected","sleeping"]),uMe=kt({name:Et(),url:Et(),ip:Et().optional(),status:lMe}),cMe=sd("key",[UQ.extend({key:ft("update"),value:uMe})]),dMe=kt({staked_pubkeys:Et().array(),staked_lamports:Zt().array(),infos:zr(KQ.nullable())}),fMe=Et().array(),hMe=Et().array(),pMe=sd("key",[F3.extend({key:ft("stakes"),value:dMe}),F3.extend({key:ft("peer_add"),value:fMe}),F3.extend({key:ft("peer_remove"),value:hMe})]),JQ=DQ.safeParse("Firedancer".trim()),hb=JQ.error?NE.Frankendancer:JQ.data,xi=hb===NE.Frankendancer,Vi=hb===NE.Firedancer,Gu=fe(e=>{var t;return(t=e(Hl))==null?void 0:t.phase}),QQ=fe(e=>{const t=e(B3),n=e(Gu);return t.find(({phase:r})=>r===n)}),mMe=fe(e=>{const t=e(Hl);return!!(t!=null&&t.wait_for_supermajority_bank_hash)&&!!(t!=null&&t.wait_for_supermajority_shred_version)}),B3=fe(e=>e(mMe)?[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.waiting_for_supermajority,completionFraction:.25},{phase:wn.running,completionFraction:0}]:[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.catching_up,completionFraction:.25},{phase:wn.running,completionFraction:0}]),eee=fe(e=>{const t=e(B3),n=e(Gu),r=new Set;for(const i of t){if(i.phase===n)break;r.add(i.phase)}return r}),ol=fe(!0),W3=fe(!0),tee=fe(null),V3=fe(e=>{const t=e(ol);return t?xi?t:t&&e(W3):!1}),nee=fe(e=>{var t,n;return((t=e(Hl))==null?void 0:t.loading_incremental_snapshot_slot)??((n=e(Hl))==null?void 0:n.loading_full_snapshot_slot)}),ree="/assets/firedancer-D_J0EzUc.svg",gMe="/assets/frankendancer-0Top5G94.svg",vMe="_text_o41r7_1",yMe="_container_o41r7_6",iee={text:vMe,container:yMe};function bMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsx(W,{gap:"2",align:"center",style:n,className:iee.container,children:u.jsx(Z,{className:iee.text,children:e})})}const xMe="_container_1tszc_1",_Me="_text_1tszc_11",oee={container:xMe,text:_Me};function wMe({label:e,hide:t,rightChildren:n,bottomChildren:r}){const i=t?{visibility:"hidden"}:{};return u.jsxs("div",{className:oee.container,style:i,children:[u.jsx(W,{justify:"center",align:"center",children:u.jsx(Iy,{})}),u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(Z,{className:oee.text,children:[e,"..."]}),u.jsx(Mt,{flexGrow:"1"}),n]}),r&&u.jsxs(u.Fragment,{children:[u.jsx("div",{}),r]})]})}const kMe="data:image/svg+xml,%3csvg%20width='14'%20height='11'%20viewBox='0%200%2014%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.75%208.6748L12.6953%200.729492L13.75%201.78418L4.75%2010.7842L0.566406%206.60059L1.62109%205.5459L4.75%208.6748Z'%20fill='%231D863B'/%3e%3c/svg%3e",SMe="_text_1ont6_1",CMe="_container_1ont6_7",aee={text:SMe,container:CMe};function jMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsxs(W,{gap:"2",align:"center",style:n,className:aee.container,children:[u.jsx("img",{src:kMe,alt:"complete"}),u.jsx(Z,{className:aee.text,children:e})]})}const TMe="_label_1ojid_1",IMe="_value_1ojid_6",see={label:TMe,value:IMe};function ud({label:e,value:t}){return u.jsxs(W,{gap:"1",flexGrow:"1",children:[u.jsx(Z,{className:see.label,children:e}),u.jsx(Z,{className:see.value,children:t??"-"})]})}function EMe(){const e=J(Zu);return e?u.jsxs(W,{children:[u.jsx(ud,{label:"Current Slot",value:e.ledger_slot}),u.jsx(ud,{label:"Max Slot",value:e.ledger_max_slot})]}):null}const NMe="_progress_gtr5g_1",$Me="_text_gtr5g_11",H3={progress:NMe,text:$Me};class yp extends Error{}class MMe extends yp{constructor(t){super(`Invalid DateTime: ${t.toMessage()}`)}}class RMe extends yp{constructor(t){super(`Invalid Interval: ${t.toMessage()}`)}}class LMe extends yp{constructor(t){super(`Invalid Duration: ${t.toMessage()}`)}}class dg extends yp{}class lee extends yp{constructor(t){super(`Invalid unit ${t}`)}}class Uo extends yp{}class Af extends yp{constructor(){super("Zone is an abstract class")}}const nt="numeric",Kl="short",ws="long",Z3={year:nt,month:nt,day:nt},uee={year:nt,month:Kl,day:nt},PMe={year:nt,month:Kl,day:nt,weekday:Kl},cee={year:nt,month:ws,day:nt},dee={year:nt,month:ws,day:nt,weekday:ws},fee={hour:nt,minute:nt},hee={hour:nt,minute:nt,second:nt},pee={hour:nt,minute:nt,second:nt,timeZoneName:Kl},mee={hour:nt,minute:nt,second:nt,timeZoneName:ws},gee={hour:nt,minute:nt,hourCycle:"h23"},vee={hour:nt,minute:nt,second:nt,hourCycle:"h23"},yee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:Kl},bee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:ws},xee={year:nt,month:nt,day:nt,hour:nt,minute:nt},_ee={year:nt,month:nt,day:nt,hour:nt,minute:nt,second:nt},wee={year:nt,month:Kl,day:nt,hour:nt,minute:nt},kee={year:nt,month:Kl,day:nt,hour:nt,minute:nt,second:nt},OMe={year:nt,month:Kl,day:nt,weekday:Kl,hour:nt,minute:nt},See={year:nt,month:ws,day:nt,hour:nt,minute:nt,timeZoneName:Kl},Cee={year:nt,month:ws,day:nt,hour:nt,minute:nt,second:nt,timeZoneName:Kl},jee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,timeZoneName:ws},Tee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,second:nt,timeZoneName:ws};class pb{get type(){throw new Af}get name(){throw new Af}get ianaName(){return this.name}get isUniversal(){throw new Af}offsetName(t,n){throw new Af}formatOffset(t,n){throw new Af}offset(t){throw new Af}equals(t){throw new Af}get isValid(){throw new Af}}let ME=null;class pC extends pb{static get instance(){return ME===null&&(ME=new pC),ME}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(t,{format:n,locale:r}){return Qee(t,n,r)}formatOffset(t,n){return vb(this.offset(t),n)}offset(t){return-new Date(t).getTimezoneOffset()}equals(t){return t.type==="system"}get isValid(){return!0}}const RE=new Map;function zMe(e){let t=RE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),RE.set(e,t)),t}const DMe={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function AMe(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,o,a,s,l,c,d]=r;return[a,i,o,s,l,c,d]}function FMe(e,t){const n=e.formatToParts(t),r=[];for(let i=0;i=0?v:1e3+v,(f-p)/(60*1e3)}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}}let Iee={};function UMe(e,t={}){const n=JSON.stringify([e,t]);let r=Iee[n];return r||(r=new Intl.ListFormat(e,t),Iee[n]=r),r}const PE=new Map;function OE(e,t={}){const n=JSON.stringify([e,t]);let r=PE.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),PE.set(n,r)),r}const zE=new Map;function BMe(e,t={}){const n=JSON.stringify([e,t]);let r=zE.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),zE.set(n,r)),r}const DE=new Map;function WMe(e,t={}){const{base:n,...r}=t,i=JSON.stringify([e,r]);let o=DE.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(e,t),DE.set(i,o)),o}let q3=null;function VMe(){return q3||(q3=new Intl.DateTimeFormat().resolvedOptions().locale,q3)}const AE=new Map;function Eee(e){let t=AE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),AE.set(e,t)),t}const FE=new Map;function HMe(e){let t=FE.get(e);if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in t||(t={...Nee,...t}),FE.set(e,t)}return t}function ZMe(e){const t=e.indexOf("-x-");t!==-1&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(n===-1)return[e];{let r,i;try{r=OE(e).resolvedOptions(),i=e}catch{const s=e.substring(0,n);r=OE(s).resolvedOptions(),i=s}const{numberingSystem:o,calendar:a}=r;return[i,o,a]}}function qMe(e,t,n){return(n||t)&&(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`)),e}function GMe(e){const t=[];for(let n=1;n<=12;n++){const r=jt.utc(2009,n,1);t.push(e(r))}return t}function YMe(e){const t=[];for(let n=1;n<=7;n++){const r=jt.utc(2016,11,13+n);t.push(e(r))}return t}function G3(e,t,n,r){const i=e.listingMode();return i==="error"?null:i==="en"?n(t):r(t)}function KMe(e){return e.numberingSystem&&e.numberingSystem!=="latn"?!1:e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||Eee(e.locale).numberingSystem==="latn"}class XMe{constructor(t,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:o,...a}=r;if(!n||Object.keys(a).length>0){const s={useGrouping:!1,...r};r.padTo>0&&(s.minimumIntegerDigits=r.padTo),this.inf=BMe(t,s)}}format(t){if(this.inf){const n=this.floor?Math.floor(t):t;return this.inf.format(n)}else{const n=this.floor?Math.floor(t):YE(t,3);return Ri(n,this.padTo)}}}class JMe{constructor(t,n,r){this.opts=r,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){const a=-1*(t.offset/60),s=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;t.offset!==0&&Ld.create(s).valid?(i=s,this.dt=t):(i="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,i=t.zone.name):(i="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);const o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=OE(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(n=>{if(n.type==="timeZoneName"){const r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):t}resolvedOptions(){return this.dtf.resolvedOptions()}}class QMe{constructor(t,n,r){this.opts={style:"long",...r},!n&&Yee()&&(this.rtf=WMe(t,r))}format(t,n){return this.rtf?this.rtf.format(t,n):_Re(n,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,n){return this.rtf?this.rtf.formatToParts(t,n):[]}}const Nee={firstDay:1,minimalDays:4,weekend:[6,7]};class Gn{static fromOpts(t){return Gn.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,o=!1){const a=t||di.defaultLocale,s=a||(o?"en-US":VMe()),l=n||di.defaultNumberingSystem,c=r||di.defaultOutputCalendar,d=qE(i)||di.defaultWeekSettings;return new Gn(s,l,c,d,a)}static resetCache(){q3=null,PE.clear(),zE.clear(),DE.clear(),AE.clear(),FE.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return Gn.create(t,n,r,i)}constructor(t,n,r,i,o){const[a,s,l]=ZMe(t);this.locale=a,this.numberingSystem=n||s||null,this.outputCalendar=r||l||null,this.weekSettings=i,this.intl=qMe(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=KMe(this)),this.fastNumbersCached}listingMode(){const t=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&n?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:Gn.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,qE(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,n=!1){return G3(this,t,nte,()=>{const r=this.intl==="ja"||this.intl.startsWith("ja-");n&=!r;const i=n?{month:t,day:"numeric"}:{month:t},o=n?"format":"standalone";if(!this.monthsCache[o][t]){const a=r?s=>this.dtFormatter(s,i).format():s=>this.extract(s,i,"month");this.monthsCache[o][t]=GMe(a)}return this.monthsCache[o][t]})}weekdays(t,n=!1){return G3(this,t,ote,()=>{const r=n?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},i=n?"format":"standalone";return this.weekdaysCache[i][t]||(this.weekdaysCache[i][t]=YMe(o=>this.extract(o,r,"weekday"))),this.weekdaysCache[i][t]})}meridiems(){return G3(this,void 0,()=>ate,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[jt.utc(2016,11,13,9),jt.utc(2016,11,13,19)].map(n=>this.extract(n,t,"dayperiod"))}return this.meridiemCache})}eras(t){return G3(this,t,ste,()=>{const n={era:t};return this.eraCache[t]||(this.eraCache[t]=[jt.utc(-40,1,1),jt.utc(2017,1,1)].map(r=>this.extract(r,n,"era"))),this.eraCache[t]})}extract(t,n,r){const i=this.dtFormatter(t,n),o=i.formatToParts(),a=o.find(s=>s.type.toLowerCase()===r);return a?a.value:null}numberFormatter(t={}){return new XMe(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,n={}){return new JMe(t,this.intl,n)}relFormatter(t={}){return new QMe(this.intl,this.isEnglish(),t)}listFormatter(t={}){return UMe(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Eee(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Kee()?HMe(this.locale):Nee}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let UE=null;class ba extends pb{static get utcInstance(){return UE===null&&(UE=new ba(0)),UE}static instance(t){return t===0?ba.utcInstance:new ba(t)}static parseSpecifier(t){if(t){const n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new ba(Q3(n[1],n[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${vb(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${vb(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,n){return vb(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}}class eRe extends pb{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Ff(e,t){if(Ot(e)||e===null)return t;if(e instanceof pb)return e;if(aRe(e)){const n=e.toLowerCase();return n==="default"?t:n==="local"||n==="system"?pC.instance:n==="utc"||n==="gmt"?ba.utcInstance:ba.parseSpecifier(n)||Ld.create(e)}else return Uf(e)?ba.instance(e):typeof e=="object"&&"offset"in e&&typeof e.offset=="function"?e:new eRe(e)}const BE={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},$ee={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},tRe=BE.hanidec.replace(/[\[|\]]/g,"").split("");function nRe(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=o&&r<=a&&(t+=r-o)}}return parseInt(t,10)}else return t}const WE=new Map;function rRe(){WE.clear()}function Xl({numberingSystem:e},t=""){const n=e||"latn";let r=WE.get(n);r===void 0&&(r=new Map,WE.set(n,r));let i=r.get(t);return i===void 0&&(i=new RegExp(`${BE[n]}${t}`),r.set(t,i)),i}let Mee=()=>Date.now(),Ree="system",Lee=null,Pee=null,Oee=null,zee=60,Dee,Aee=null;class di{static get now(){return Mee}static set now(t){Mee=t}static set defaultZone(t){Ree=t}static get defaultZone(){return Ff(Ree,pC.instance)}static get defaultLocale(){return Lee}static set defaultLocale(t){Lee=t}static get defaultNumberingSystem(){return Pee}static set defaultNumberingSystem(t){Pee=t}static get defaultOutputCalendar(){return Oee}static set defaultOutputCalendar(t){Oee=t}static get defaultWeekSettings(){return Aee}static set defaultWeekSettings(t){Aee=qE(t)}static get twoDigitCutoffYear(){return zee}static set twoDigitCutoffYear(t){zee=t%100}static get throwOnInvalid(){return Dee}static set throwOnInvalid(t){Dee=t}static resetCaches(){Gn.resetCache(),Ld.resetCache(),jt.resetCache(),rRe()}}class Jl{constructor(t,n){this.reason=t,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Fee=[0,31,59,90,120,151,181,212,243,273,304,334],Uee=[0,31,60,91,121,152,182,213,244,274,305,335];function al(e,t){return new Jl("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function VE(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function Bee(e,t,n){return n+(mb(e)?Uee:Fee)[t-1]}function Wee(e,t){const n=mb(e)?Uee:Fee,r=n.findIndex(o=>ogb(r,t,n)?(c=r+1,l=1):c=r,{weekYear:c,weekNumber:l,weekday:s,...tk(e)}}function Vee(e,t=4,n=1){const{weekYear:r,weekNumber:i,weekday:o}=e,a=HE(VE(r,1,t),n),s=hg(r);let l=i*7+o-a-7+t,c;l<1?(c=r-1,l+=hg(c)):l>s?(c=r+1,l-=hg(r)):c=r;const{month:d,day:f}=Wee(c,l);return{year:c,month:d,day:f,...tk(e)}}function ZE(e){const{year:t,month:n,day:r}=e,i=Bee(t,n,r);return{year:t,ordinal:i,...tk(e)}}function Hee(e){const{year:t,ordinal:n}=e,{month:r,day:i}=Wee(t,n);return{year:t,month:r,day:i,...tk(e)}}function Zee(e,t){if(!Ot(e.localWeekday)||!Ot(e.localWeekNumber)||!Ot(e.localWeekYear)){if(!Ot(e.weekday)||!Ot(e.weekNumber)||!Ot(e.weekYear))throw new dg("Cannot mix locale-based week fields with ISO-based week fields");return Ot(e.localWeekday)||(e.weekday=e.localWeekday),Ot(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),Ot(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function iRe(e,t=4,n=1){const r=K3(e.weekYear),i=sl(e.weekNumber,1,gb(e.weekYear,t,n)),o=sl(e.weekday,1,7);return r?i?o?!1:al("weekday",e.weekday):al("week",e.weekNumber):al("weekYear",e.weekYear)}function oRe(e){const t=K3(e.year),n=sl(e.ordinal,1,hg(e.year));return t?n?!1:al("ordinal",e.ordinal):al("year",e.year)}function qee(e){const t=K3(e.year),n=sl(e.month,1,12),r=sl(e.day,1,X3(e.year,e.month));return t?n?r?!1:al("day",e.day):al("month",e.month):al("year",e.year)}function Gee(e){const{hour:t,minute:n,second:r,millisecond:i}=e,o=sl(t,0,23)||t===24&&n===0&&r===0&&i===0,a=sl(n,0,59),s=sl(r,0,59),l=sl(i,0,999);return o?a?s?l?!1:al("millisecond",i):al("second",r):al("minute",n):al("hour",t)}function Ot(e){return typeof e>"u"}function Uf(e){return typeof e=="number"}function K3(e){return typeof e=="number"&&e%1===0}function aRe(e){return typeof e=="string"}function sRe(e){return Object.prototype.toString.call(e)==="[object Date]"}function Yee(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Kee(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function lRe(e){return Array.isArray(e)?e:[e]}function Xee(e,t,n){if(e.length!==0)return e.reduce((r,i)=>{const o=[t(i),i];return r&&n(r[0],o[0])===r[0]?r:o},null)[1]}function uRe(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function fg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function qE(e){if(e==null)return null;if(typeof e!="object")throw new Uo("Week settings must be an object");if(!sl(e.firstDay,1,7)||!sl(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(t=>!sl(t,1,7)))throw new Uo("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function sl(e,t,n){return K3(e)&&e>=t&&e<=n}function cRe(e,t){return e-t*Math.floor(e/t)}function Ri(e,t=2){const n=e<0;let r;return n?r="-"+(""+-e).padStart(t,"0"):r=(""+e).padStart(t,"0"),r}function Bf(e){if(!(Ot(e)||e===null||e===""))return parseInt(e,10)}function bp(e){if(!(Ot(e)||e===null||e===""))return parseFloat(e)}function GE(e){if(!(Ot(e)||e===null||e==="")){const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function YE(e,t,n="round"){const r=10**t;switch(n){case"expand":return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case"trunc":return Math.trunc(e*r)/r;case"round":return Math.round(e*r)/r;case"floor":return Math.floor(e*r)/r;case"ceil":return Math.ceil(e*r)/r;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function mb(e){return e%4===0&&(e%100!==0||e%400===0)}function hg(e){return mb(e)?366:365}function X3(e,t){const n=cRe(t-1,12)+1,r=e+(t-n)/12;return n===2?mb(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function J3(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Jee(e,t,n){return-HE(VE(e,1,t),n)+t-1}function gb(e,t=4,n=1){const r=Jee(e,t,n),i=Jee(e+1,t,n);return(hg(e)-r+i)/7}function KE(e){return e>99?e:e>di.twoDigitCutoffYear?1900+e:2e3+e}function Qee(e,t,n,r=null){const i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);const a={timeZoneName:t,...o},s=new Intl.DateTimeFormat(n,a).formatToParts(i).find(l=>l.type.toLowerCase()==="timezonename");return s?s.value:null}function Q3(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function ete(e){const t=Number(e);if(typeof e=="boolean"||e===""||!Number.isFinite(t))throw new Uo(`Invalid unit value ${e}`);return t}function ek(e,t){const n={};for(const r in e)if(fg(e,r)){const i=e[r];if(i==null)continue;n[t(r)]=ete(i)}return n}function vb(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${Ri(n,2)}:${Ri(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${Ri(n,2)}${Ri(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function tk(e){return uRe(e,["hour","minute","second","millisecond"])}const dRe=["January","February","March","April","May","June","July","August","September","October","November","December"],tte=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fRe=["J","F","M","A","M","J","J","A","S","O","N","D"];function nte(e){switch(e){case"narrow":return[...fRe];case"short":return[...tte];case"long":return[...dRe];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const rte=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ite=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],hRe=["M","T","W","T","F","S","S"];function ote(e){switch(e){case"narrow":return[...hRe];case"short":return[...ite];case"long":return[...rte];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const ate=["AM","PM"],pRe=["Before Christ","Anno Domini"],mRe=["BC","AD"],gRe=["B","A"];function ste(e){switch(e){case"narrow":return[...gRe];case"short":return[...mRe];case"long":return[...pRe];default:return null}}function vRe(e){return ate[e.hour<12?0:1]}function yRe(e,t){return ote(t)[e.weekday-1]}function bRe(e,t){return nte(t)[e.month-1]}function xRe(e,t){return ste(t)[e.year<0?0:1]}function _Re(e,t,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(e)===-1;if(n==="auto"&&o){const f=e==="days";switch(t){case 1:return f?"tomorrow":`next ${i[e][0]}`;case-1:return f?"yesterday":`last ${i[e][0]}`;case 0:return f?"today":`this ${i[e][0]}`}}const a=Object.is(t,-0)||t<0,s=Math.abs(t),l=s===1,c=i[e],d=r?l?c[1]:c[2]||c[1]:l?i[e][0]:e;return a?`${s} ${d} ago`:`in ${s} ${d}`}function lte(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const wRe={D:Z3,DD:uee,DDD:cee,DDDD:dee,t:fee,tt:hee,ttt:pee,tttt:mee,T:gee,TT:vee,TTT:yee,TTTT:bee,f:xee,ff:wee,fff:See,ffff:jee,F:_ee,FF:kee,FFF:Cee,FFFF:Tee};class Yo{static create(t,n={}){return new Yo(t,n)}static parseFormat(t){let n=null,r="",i=!1;const o=[];for(let a=0;a0||i)&&o.push({literal:i||/^\s+$/.test(r),val:r===""?"'":r}),n=null,r="",i=!i):i||s===n?r+=s:(r.length>0&&o.push({literal:/^\s+$/.test(r),val:r}),r=s,n=s)}return r.length>0&&o.push({literal:i||/^\s+$/.test(r),val:r}),o}static macroTokenToFormatOpts(t){return wRe[t]}constructor(t,n){this.opts=n,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...n}).format()}dtFormatter(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n})}formatDateTime(t,n){return this.dtFormatter(t,n).format()}formatDateTimeParts(t,n){return this.dtFormatter(t,n).formatToParts()}formatInterval(t,n){return this.dtFormatter(t.start,n).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,n){return this.dtFormatter(t,n).resolvedOptions()}num(t,n=0,r=void 0){if(this.opts.forceSimple)return Ri(t,n);const i={...this.opts};return n>0&&(i.padTo=n),r&&(i.signDisplay=r),this.loc.numberFormatter(i).format(t)}formatDateTimeFromString(t,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(v,x)=>this.loc.extract(t,v,x),a=v=>t.isOffsetFixed&&t.offset===0&&v.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,v.format):"",s=()=>r?vRe(t):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(v,x)=>r?bRe(t,v):o(x?{month:v}:{month:v,day:"numeric"},"month"),c=(v,x)=>r?yRe(t,v):o(x?{weekday:v}:{weekday:v,month:"long",day:"numeric"},"weekday"),d=v=>{const x=Yo.macroTokenToFormatOpts(v);return x?this.formatWithSystemDefault(t,x):v},f=v=>r?xRe(t,v):o({era:v},"era"),p=v=>{switch(v){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return s();case"d":return i?o({day:"numeric"},"day"):this.num(t.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(t.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(t.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(t.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"n":return this.num(t.localWeekNumber);case"nn":return this.num(t.localWeekNumber,2);case"ii":return this.num(t.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(t.localWeekYear,4);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return d(v)}};return lte(Yo.parseFormat(n),p)}formatDurationFromString(t,n){const r=this.opts.signMode==="negativeLargestOnly"?-1:1,i=d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},o=(d,f)=>p=>{const v=i(p);if(v){const x=f.isNegativeDuration&&v!==f.largestUnit?r:1;let y;return this.opts.signMode==="negativeLargestOnly"&&v!==f.largestUnit?y="never":this.opts.signMode==="all"?y="always":y="auto",this.num(d.get(v)*x,p.length,y)}else return p},a=Yo.parseFormat(n),s=a.reduce((d,{literal:f,val:p})=>f?d:d.concat(p),[]),l=t.shiftTo(...s.map(i).filter(d=>d)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return lte(a,o(l,c))}}const ute=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function pg(...e){const t=e.reduce((n,r)=>n+r.source,"");return RegExp(`^${t}$`)}function mg(...e){return t=>e.reduce(([n,r,i],o)=>{const[a,s,l]=o(t,i);return[{...n,...a},s||r,l]},[{},null,1]).slice(0,2)}function gg(e,...t){if(e==null)return[null,null];for(const[n,r]of t){const i=n.exec(e);if(i)return r(i)}return[null,null]}function cte(...e){return(t,n)=>{const r={};let i;for(i=0;iv!==void 0&&(x||v&&d)?-v:v;return[{years:p(bp(n)),months:p(bp(r)),weeks:p(bp(i)),days:p(bp(o)),hours:p(bp(a)),minutes:p(bp(s)),seconds:p(bp(l),l==="-0"),milliseconds:p(GE(c),f)}]}const PRe={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function QE(e,t,n,r,i,o,a){const s={year:t.length===2?KE(Bf(t)):Bf(t),month:tte.indexOf(n)+1,day:Bf(r),hour:Bf(i),minute:Bf(o)};return a&&(s.second=Bf(a)),e&&(s.weekday=e.length>3?rte.indexOf(e)+1:ite.indexOf(e)+1),s}const ORe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function zRe(e){const[,t,n,r,i,o,a,s,l,c,d,f]=e,p=QE(t,i,r,n,o,a,s);let v;return l?v=PRe[l]:c?v=0:v=Q3(d,f),[p,new ba(v)]}function DRe(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const ARe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,FRe=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,URe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function pte(e){const[,t,n,r,i,o,a,s]=e;return[QE(t,i,r,n,o,a,s),ba.utcInstance]}function BRe(e){const[,t,n,r,i,o,a,s]=e;return[QE(t,s,n,r,i,o,a),ba.utcInstance]}const WRe=pg(SRe,JE),VRe=pg(CRe,JE),HRe=pg(jRe,JE),ZRe=pg(fte),mte=mg($Re,yg,yb,bb),qRe=mg(TRe,yg,yb,bb),GRe=mg(IRe,yg,yb,bb),YRe=mg(yg,yb,bb);function KRe(e){return gg(e,[WRe,mte],[VRe,qRe],[HRe,GRe],[ZRe,YRe])}function XRe(e){return gg(DRe(e),[ORe,zRe])}function JRe(e){return gg(e,[ARe,pte],[FRe,pte],[URe,BRe])}function QRe(e){return gg(e,[RRe,LRe])}const eLe=mg(yg);function tLe(e){return gg(e,[MRe,eLe])}const nLe=pg(ERe,NRe),rLe=pg(hte),iLe=mg(yg,yb,bb);function oLe(e){return gg(e,[nLe,mte],[rLe,iLe])}const gte="Invalid Duration",vte={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},aLe={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...vte},ll=146097/400,bg=146097/4800,sLe={years:{quarters:4,months:12,weeks:ll/7,days:ll,hours:ll*24,minutes:ll*24*60,seconds:ll*24*60*60,milliseconds:ll*24*60*60*1e3},quarters:{months:3,weeks:ll/28,days:ll/4,hours:ll*24/4,minutes:ll*24*60/4,seconds:ll*24*60*60/4,milliseconds:ll*24*60*60*1e3/4},months:{weeks:bg/7,days:bg,hours:bg*24,minutes:bg*24*60,seconds:bg*24*60*60,milliseconds:bg*24*60*60*1e3},...vte},xp=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],lLe=xp.slice(0).reverse();function cd(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new fn(r)}function yte(e,t){let n=t.milliseconds??0;for(const r of lLe.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bte(e,t){const n=yte(e,t)<0?-1:1;xp.reduceRight((r,i)=>{if(Ot(t[i]))return r;if(r){const o=t[r]*n,a=e[i][r],s=Math.floor(o/a);t[i]+=s*n,t[r]-=s*a*n}return i},null),xp.reduce((r,i)=>{if(Ot(t[i]))return r;if(r){const o=t[r]%1;t[r]-=o,t[i]+=o*e[r][i]}return i},null)}function xte(e){const t={};for(const[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}class fn{constructor(t){const n=t.conversionAccuracy==="longterm"||!1;let r=n?sLe:aLe;t.matrix&&(r=t.matrix),this.values=t.values,this.loc=t.loc||Gn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(t,n){return fn.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(t==null||typeof t!="object")throw new Uo(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new fn({values:ek(t,fn.normalizeUnit),loc:Gn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(Uf(t))return fn.fromMillis(t);if(fn.isDuration(t))return t;if(typeof t=="object")return fn.fromObject(t);throw new Uo(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){const[r]=QRe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){const[r]=tLe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new Uo("need to specify a reason the Duration is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(di.throwOnInvalid)throw new LMe(r);return new fn({invalid:r})}static normalizeUnit(t){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!n)throw new lee(t);return n}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Yo.create(this.loc,r).formatDurationFromString(this,t):gte}toHuman(t={}){if(!this.isValid)return gte;const n=t.showZeros!==!1,r=xp.map(i=>{const o=this.values[i];return Ot(o)||o===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=YE(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t,includeOffset:!1},jt.fromMillis(n,{zone:"UTC"}).toISOTime(t))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?yte(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t),r={};for(const i of xp)(fg(n.values,i)||fg(this.values,i))&&(r[i]=n.get(i)+this.get(i));return cd(this,{values:r},!0)}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return this.plus(n.negate())}mapUnits(t){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=ete(t(this.values[r],r));return cd(this,{values:n},!0)}get(t){return this[fn.normalizeUnit(t)]}set(t){if(!this.isValid)return this;const n={...this.values,...ek(t,fn.normalizeUnit)};return cd(this,{values:n})}reconfigure({locale:t,numberingSystem:n,conversionAccuracy:r,matrix:i}={}){const o={loc:this.loc.clone({locale:t,numberingSystem:n}),matrix:i,conversionAccuracy:r};return cd(this,o)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;const t=this.toObject();return bte(this.matrix,t),cd(this,{values:t},!0)}rescale(){if(!this.isValid)return this;const t=xte(this.normalize().shiftToAll().toObject());return cd(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(a=>fn.normalizeUnit(a));const n={},r={},i=this.toObject();let o;for(const a of xp)if(t.indexOf(a)>=0){o=a;let s=0;for(const c in r)s+=this.matrix[c][a]*r[c],r[c]=0;Uf(i[a])&&(s+=i[a]);const l=Math.trunc(s);n[a]=l,r[a]=(s*1e3-l*1e3)/1e3}else Uf(i[a])&&(r[a]=i[a]);for(const a in r)r[a]!==0&&(n[o]+=a===o?r[a]:r[a]/this.matrix[o][a]);return bte(this.matrix,n),cd(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=this.values[n]===0?0:-this.values[n];return cd(this,{values:t},!0)}removeZeros(){if(!this.isValid)return this;const t=xte(this.values);return cd(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of xp)if(!n(this.values[r],t.values[r]))return!1;return!0}}const xg="Invalid Interval";function uLe(e,t){return!e||!e.isValid?hi.invalid("missing or invalid start"):!t||!t.isValid?hi.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:n}={}){return this.isValid?hi.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];const n=t.map(wb).filter(a=>this.contains(a)).sort((a,s)=>a.toMillis()-s.toMillis()),r=[];let{s:i}=this,o=0;for(;i+this.e?this.e:a;r.push(hi.fromDateTimes(i,s)),i=s,o+=1}return r}splitBy(t){const n=fn.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,o;const a=[];for(;rl*i));o=+s>+this.e?this.e:s,a.push(hi.fromDateTimes(r,o)),r=o,i+=1}return a}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;const n=this.s>t.s?this.s:t.s,r=this.e=r?null:hi.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;const n=this.st.e?this.e:t.e;return hi.fromDateTimes(n,r)}static merge(t){const[n,r]=t.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return r&&n.push(r),n}static xor(t){let n=null,r=0;const i=[],o=t.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...o),s=a.sort((l,c)=>l.time-c.time);for(const l of s)r+=l.type==="s"?1:-1,r===1?n=l.time:(n&&+n!=+l.time&&i.push(hi.fromDateTimes(n,l.time)),n=null);return hi.merge(i)}difference(...t){return hi.xor([this].concat(t)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:xg}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(t=Z3,n={}){return this.isValid?Yo.create(this.s.loc.clone(n),t).formatInterval(this):xg}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:xg}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:xg}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:xg}toFormat(t,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(t)}${n}${this.e.toFormat(t)}`:xg}toDuration(t,n){return this.isValid?this.e.diff(this.s,t,n):fn.invalid(this.invalidReason)}mapEndpoints(t){return hi.fromDateTimes(t(this.s),t(this.e))}}class nk{static hasDST(t=di.defaultZone){const n=jt.now().setZone(t).set({month:12});return!t.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(t){return Ld.isValidZone(t)}static normalizeZone(t){return Ff(t,di.defaultZone)}static getStartOfWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getWeekendDays().slice()}static months(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t)}static monthsFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t,!0)}static weekdays(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return Gn.create(t).meridiems()}static eras(t="short",{locale:n=null}={}){return Gn.create(n,null,"gregory").eras(t)}static features(){return{relative:Yee(),localeWeek:Kee()}}}function _te(e,t){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(fn.fromMillis(r).as("days"))}function cLe(e,t,n){const r=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{const d=_te(l,c);return(d-d%7)/7}],["days",_te]],i={},o=e;let a,s;for(const[l,c]of r)n.indexOf(l)>=0&&(a=l,i[l]=c(e,t),s=o.plus(i),s>t?(i[l]--,e=o.plus(i),e>t&&(s=e,i[l]--,e=o.plus(i))):e=s);return[e,i,s,a]}function dLe(e,t,n,r){let[i,o,a,s]=cLe(e,t,n);const l=t-i,c=n.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);c.length===0&&(a0?fn.fromMillis(l,r).shiftTo(...c).plus(d):d}const fLe="missing Intl.DateTimeFormat.formatToParts support";function Dn(e,t=n=>n){return{regex:e,deser:([n])=>t(nRe(n))}}const hLe="\xA0",wte=`[ ${hLe}]`,kte=new RegExp(wte,"g");function pLe(e){return e.replace(/\./g,"\\.?").replace(kte,wte)}function Ste(e){return e.replace(/\./g,"").replace(kte," ").toLowerCase()}function Ql(e,t){return e===null?null:{regex:RegExp(e.map(pLe).join("|")),deser:([n])=>e.findIndex(r=>Ste(n)===Ste(r))+t}}function Cte(e,t){return{regex:e,deser:([,n,r])=>Q3(n,r),groups:t}}function rk(e){return{regex:e,deser:([t])=>t}}function mLe(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gLe(e,t){const n=Xl(t),r=Xl(t,"{2}"),i=Xl(t,"{3}"),o=Xl(t,"{4}"),a=Xl(t,"{6}"),s=Xl(t,"{1,2}"),l=Xl(t,"{1,3}"),c=Xl(t,"{1,6}"),d=Xl(t,"{1,9}"),f=Xl(t,"{2,4}"),p=Xl(t,"{4,6}"),v=y=>({regex:RegExp(mLe(y.val)),deser:([b])=>b,literal:!0}),x=(y=>{if(e.literal)return v(y);switch(y.val){case"G":return Ql(t.eras("short"),0);case"GG":return Ql(t.eras("long"),0);case"y":return Dn(c);case"yy":return Dn(f,KE);case"yyyy":return Dn(o);case"yyyyy":return Dn(p);case"yyyyyy":return Dn(a);case"M":return Dn(s);case"MM":return Dn(r);case"MMM":return Ql(t.months("short",!0),1);case"MMMM":return Ql(t.months("long",!0),1);case"L":return Dn(s);case"LL":return Dn(r);case"LLL":return Ql(t.months("short",!1),1);case"LLLL":return Ql(t.months("long",!1),1);case"d":return Dn(s);case"dd":return Dn(r);case"o":return Dn(l);case"ooo":return Dn(i);case"HH":return Dn(r);case"H":return Dn(s);case"hh":return Dn(r);case"h":return Dn(s);case"mm":return Dn(r);case"m":return Dn(s);case"q":return Dn(s);case"qq":return Dn(r);case"s":return Dn(s);case"ss":return Dn(r);case"S":return Dn(l);case"SSS":return Dn(i);case"u":return rk(d);case"uu":return rk(s);case"uuu":return Dn(n);case"a":return Ql(t.meridiems(),0);case"kkkk":return Dn(o);case"kk":return Dn(f,KE);case"W":return Dn(s);case"WW":return Dn(r);case"E":case"c":return Dn(n);case"EEE":return Ql(t.weekdays("short",!1),1);case"EEEE":return Ql(t.weekdays("long",!1),1);case"ccc":return Ql(t.weekdays("short",!0),1);case"cccc":return Ql(t.weekdays("long",!0),1);case"Z":case"ZZ":return Cte(new RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case"ZZZ":return Cte(new RegExp(`([+-]${s.source})(${r.source})?`),2);case"z":return rk(/[a-z_+-/]{1,256}?/i);case" ":return rk(/[^\S\n\r]/);default:return v(y)}})(e)||{invalidReason:fLe};return x.token=e,x}const vLe={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function yLe(e,t,n){const{type:r,value:i}=e;if(r==="literal"){const l=/^\s+$/.test(i);return{literal:!l,val:l?" ":i}}const o=t[r];let a=r;r==="hour"&&(t.hour12!=null?a=t.hour12?"hour12":"hour24":t.hourCycle!=null?t.hourCycle==="h11"||t.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let s=vLe[a];if(typeof s=="object"&&(s=s[o]),s)return{literal:!1,val:s}}function bLe(e){return[`^${e.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,e]}function xLe(e,t,n){const r=e.match(t);if(r){const i={};let o=1;for(const a in n)if(fg(n,a)){const s=n[a],l=s.groups?s.groups+1:1;!s.literal&&s.token&&(i[s.token.val[0]]=s.deser(r.slice(o,o+l))),o+=l}return[r,i]}else return[r,{}]}function _Le(e){const t=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return Ot(e.z)||(n=Ld.create(e.z)),Ot(e.Z)||(n||(n=new ba(e.Z)),r=e.Z),Ot(e.q)||(e.M=(e.q-1)*3+1),Ot(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),Ot(e.u)||(e.S=GE(e.u)),[Object.keys(e).reduce((i,o)=>{const a=t(o);return a&&(i[a]=e[o]),i},{}),n,r]}let eN=null;function wLe(){return eN||(eN=jt.fromMillis(1555555555555)),eN}function kLe(e,t){if(e.literal)return e;const n=Yo.macroTokenToFormatOpts(e.val),r=Ete(n,t);return r==null||r.includes(void 0)?e:r}function jte(e,t){return Array.prototype.concat(...e.map(n=>kLe(n,t)))}class Tte{constructor(t,n){if(this.locale=t,this.format=n,this.tokens=jte(Yo.parseFormat(n),t),this.units=this.tokens.map(r=>gLe(r,t)),this.disqualifyingUnit=this.units.find(r=>r.invalidReason),!this.disqualifyingUnit){const[r,i]=bLe(this.units);this.regex=RegExp(r,"i"),this.handlers=i}}explainFromTokens(t){if(this.isValid){const[n,r]=xLe(t,this.regex,this.handlers),[i,o,a]=r?_Le(r):[null,null,void 0];if(fg(r,"a")&&fg(r,"H"))throw new dg("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:r,result:i,zone:o,specificOffset:a}}else return{input:t,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Ite(e,t,n){return new Tte(e,n).explainFromTokens(t)}function SLe(e,t,n){const{result:r,zone:i,specificOffset:o,invalidReason:a}=Ite(e,t,n);return[r,i,o,a]}function Ete(e,t){if(!e)return null;const n=Yo.create(t,e).dtFormatter(wLe()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(o=>yLe(o,e,i))}const tN="Invalid DateTime",Nte=864e13;function xb(e){return new Jl("unsupported zone",`the zone "${e.name}" is not supported`)}function nN(e){return e.weekData===null&&(e.weekData=Y3(e.c)),e.weekData}function rN(e){return e.localWeekData===null&&(e.localWeekData=Y3(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function _p(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new jt({...n,...t,old:n})}function $te(e,t,n){let r=e-t*60*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;const o=n.offset(r);return i===o?[r,i]:[e-Math.min(i,o)*60*1e3,Math.max(i,o)]}function ik(e,t){e+=t*60*1e3;const n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function ok(e,t,n){return $te(J3(e),t,n)}function Mte(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:r,month:i,day:Math.min(e.c.day,X3(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},a=fn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=J3(o);let[l,c]=$te(s,n,e.zone);return a!==0&&(l+=a,c=e.zone.offset(l)),{ts:l,o:c}}function _g(e,t,n,r,i,o){const{setZone:a,zone:s}=n;if(e&&Object.keys(e).length!==0||t){const l=t||s,c=jt.fromObject(e,{...n,zone:l,specificOffset:o});return a?c:c.setZone(s)}else return jt.invalid(new Jl("unparsable",`the input "${i}" can't be parsed as ${r}`))}function ak(e,t,n=!0){return e.isValid?Yo.create(Gn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function iN(e,t,n){const r=e.c.year>9999||e.c.year<0;let i="";if(r&&e.c.year>=0&&(i+="+"),i+=Ri(e.c.year,r?6:4),n==="year")return i;if(t){if(i+="-",i+=Ri(e.c.month),n==="month")return i;i+="-"}else if(i+=Ri(e.c.month),n==="month")return i;return i+=Ri(e.c.day),i}function Rte(e,t,n,r,i,o,a){let s=!n||e.c.millisecond!==0||e.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=Ri(e.c.hour),a==="hour")break;if(t){if(l+=":",l+=Ri(e.c.minute),a==="minute")break;s&&(l+=":",l+=Ri(e.c.second))}else{if(l+=Ri(e.c.minute),a==="minute")break;s&&(l+=Ri(e.c.second))}if(a==="second")break;s&&(!r||e.c.millisecond!==0)&&(l+=".",l+=Ri(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!o?l+="Z":e.o<0?(l+="-",l+=Ri(Math.trunc(-e.o/60)),l+=":",l+=Ri(Math.trunc(-e.o%60))):(l+="+",l+=Ri(Math.trunc(e.o/60)),l+=":",l+=Ri(Math.trunc(e.o%60)))),o&&(l+="["+e.zone.ianaName+"]"),l}const Lte={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},CLe={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jLe={ordinal:1,hour:0,minute:0,second:0,millisecond:0},sk=["year","month","day","hour","minute","second","millisecond"],TLe=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ILe=["year","ordinal","hour","minute","second","millisecond"];function lk(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new lee(e);return t}function Pte(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return lk(e)}}function ELe(e){if(_b===void 0&&(_b=di.now()),e.type!=="iana")return e.offset(_b);const t=e.name;let n=oN.get(t);return n===void 0&&(n=e.offset(_b),oN.set(t,n)),n}function Ote(e,t){const n=Ff(t.zone,di.defaultZone);if(!n.isValid)return jt.invalid(xb(n));const r=Gn.fromObject(t);let i,o;if(Ot(e.year))i=di.now();else{for(const l of sk)Ot(e[l])&&(e[l]=Lte[l]);const a=qee(e)||Gee(e);if(a)return jt.invalid(a);const s=ELe(n);[i,o]=ok(e,s,n)}return new jt({ts:i,zone:n,loc:r,o})}function zte(e,t,n){const r=Ot(n.round)?!0:n.round,i=Ot(n.rounding)?"trunc":n.rounding,o=(s,l)=>(s=YE(s,r||n.calendary?0:2,n.calendary?"round":i),t.loc.clone(n).relFormatter(n).format(s,l)),a=s=>n.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(n.unit)return o(a(n.unit),n.unit);for(const s of n.units){const l=a(s);if(Math.abs(l)>=1)return o(l,s)}return o(e>t?-0:0,n.units[n.units.length-1])}function Dte(e){let t={},n;return e.length>0&&typeof e[e.length-1]=="object"?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}let _b;const oN=new Map;class jt{constructor(t){const n=t.zone||di.defaultZone;let r=t.invalid||(Number.isNaN(t.ts)?new Jl("invalid input"):null)||(n.isValid?null:xb(n));this.ts=Ot(t.ts)?di.now():t.ts;let i=null,o=null;if(!r)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(n))[i,o]=[t.old.c,t.old.o];else{const a=Uf(t.o)&&!t.old?t.o:n.offset(this.ts);i=ik(this.ts,a),r=Number.isNaN(i.year)?new Jl("invalid input"):null,i=r?null:i,o=r?null:a}this._zone=n,this.loc=t.loc||Gn.create(),this.invalid=r,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new jt({})}static local(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return Ote({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static utc(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return t.zone=ba.utcInstance,Ote({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static fromJSDate(t,n={}){const r=sRe(t)?t.valueOf():NaN;if(Number.isNaN(r))return jt.invalid("invalid input");const i=Ff(n.zone,di.defaultZone);return i.isValid?new jt({ts:r,zone:i,loc:Gn.fromObject(n)}):jt.invalid(xb(i))}static fromMillis(t,n={}){if(Uf(t))return t<-Nte||t>Nte?jt.invalid("Timestamp out of range"):new jt({ts:t,zone:Ff(n.zone,di.defaultZone),loc:Gn.fromObject(n)});throw new Uo(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(Uf(t))return new jt({ts:t*1e3,zone:Ff(n.zone,di.defaultZone),loc:Gn.fromObject(n)});throw new Uo("fromSeconds requires a numerical input")}static fromObject(t,n={}){t=t||{};const r=Ff(n.zone,di.defaultZone);if(!r.isValid)return jt.invalid(xb(r));const i=Gn.fromObject(n),o=ek(t,Pte),{minDaysInFirstWeek:a,startOfWeek:s}=Zee(o,i),l=di.now(),c=Ot(n.specificOffset)?r.offset(l):n.specificOffset,d=!Ot(o.ordinal),f=!Ot(o.year),p=!Ot(o.month)||!Ot(o.day),v=f||p,x=o.weekYear||o.weekNumber;if((v||d)&&x)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&d)throw new dg("Can't mix ordinal dates with month/day");const y=x||o.weekday&&!v;let b,w,_=ik(l,c);y?(b=TLe,w=CLe,_=Y3(_,a,s)):d?(b=ILe,w=jLe,_=ZE(_)):(b=sk,w=Lte);let S=!1;for(const M of b){const O=o[M];Ot(O)?S?o[M]=w[M]:o[M]=_[M]:S=!0}const C=y?iRe(o,a,s):d?oRe(o):qee(o),j=C||Gee(o);if(j)return jt.invalid(j);const T=y?Vee(o,a,s):d?Hee(o):o,[E,$]=ok(T,c,r),D=new jt({ts:E,zone:r,o:$,loc:i});return o.weekday&&v&&t.weekday!==D.weekday?jt.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${D.toISO()}`):D.isValid?D:jt.invalid(D.invalid)}static fromISO(t,n={}){const[r,i]=KRe(t);return _g(r,i,n,"ISO 8601",t)}static fromRFC2822(t,n={}){const[r,i]=XRe(t);return _g(r,i,n,"RFC 2822",t)}static fromHTTP(t,n={}){const[r,i]=JRe(t);return _g(r,i,n,"HTTP",n)}static fromFormat(t,n,r={}){if(Ot(t)||Ot(n))throw new Uo("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[s,l,c,d]=SLe(a,t,n);return d?jt.invalid(d):_g(s,l,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return jt.fromFormat(t,n,r)}static fromSQL(t,n={}){const[r,i]=oLe(t);return _g(r,i,n,"SQL",t)}static invalid(t,n=null){if(!t)throw new Uo("need to specify a reason the DateTime is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(di.throwOnInvalid)throw new MMe(r);return new jt({invalid:r})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,n={}){const r=Ete(t,Gn.fromObject(n));return r?r.map(i=>i?i.val:null).join(""):null}static expandFormat(t,n={}){return jte(Yo.parseFormat(t),Gn.fromObject(n)).map(r=>r.val).join("")}static resetCache(){_b=void 0,oN.clear()}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?nN(this).weekYear:NaN}get weekNumber(){return this.isValid?nN(this).weekNumber:NaN}get weekday(){return this.isValid?nN(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?rN(this).weekday:NaN}get localWeekNumber(){return this.isValid?rN(this).weekNumber:NaN}get localWeekYear(){return this.isValid?rN(this).weekYear:NaN}get ordinal(){return this.isValid?ZE(this.c).ordinal:NaN}get monthShort(){return this.isValid?nk.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?nk.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?nk.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?nk.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const t=864e5,n=6e4,r=J3(this.c),i=this.zone.offset(r-t),o=this.zone.offset(r+t),a=this.zone.offset(r-i*n),s=this.zone.offset(r-o*n);if(a===s)return[this];const l=r-a*n,c=r-s*n,d=ik(l,a),f=ik(c,s);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[_p(this,{ts:l}),_p(this,{ts:c})]:[this]}get isInLeapYear(){return mb(this.year)}get daysInMonth(){return X3(this.year,this.month)}get daysInYear(){return this.isValid?hg(this.year):NaN}get weeksInWeekYear(){return this.isValid?gb(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?gb(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(t={}){const{locale:n,numberingSystem:r,calendar:i}=Yo.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(t=0,n={}){return this.setZone(ba.instance(t),n)}toLocal(){return this.setZone(di.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Ff(t,di.defaultZone),t.equals(this.zone))return this;if(t.isValid){let i=this.ts;if(n||r){const o=t.offset(this.ts),a=this.toObject();[i]=ok(a,o,t)}return _p(this,{ts:i,zone:t})}else return jt.invalid(xb(t))}reconfigure({locale:t,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:t,numberingSystem:n,outputCalendar:r});return _p(this,{loc:i})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;const n=ek(t,Pte),{minDaysInFirstWeek:r,startOfWeek:i}=Zee(n,this.loc),o=!Ot(n.weekYear)||!Ot(n.weekNumber)||!Ot(n.weekday),a=!Ot(n.ordinal),s=!Ot(n.year),l=!Ot(n.month)||!Ot(n.day),c=s||l,d=n.weekYear||n.weekNumber;if((c||a)&&d)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new dg("Can't mix ordinal dates with month/day");let f;o?f=Vee({...Y3(this.c,r,i),...n},r,i):Ot(n.ordinal)?(f={...this.toObject(),...n},Ot(n.day)&&(f.day=Math.min(X3(f.year,f.month),f.day))):f=Hee({...ZE(this.c),...n});const[p,v]=ok(f,this.o,this.zone);return _p(this,{ts:p,o:v})}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return _p(this,Mte(this,n))}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t).negate();return _p(this,Mte(this,n))}startOf(t,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const r={},i=fn.normalizeUnit(t);switch(i){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(i==="weeks")if(n){const o=this.loc.getStartOfWeek(),{weekday:a}=this;a=3&&(l+="T"),l+=Rte(this,s,n,r,i,o,a),l}toISODate({format:t="extended",precision:n="day"}={}){return this.isValid?iN(this,t==="extended",lk(n)):null}toISOWeekDate(){return ak(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:t=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:s="milliseconds"}={}){return this.isValid?(s=lk(s),(i&&sk.indexOf(s)>=3?"T":"")+Rte(this,a==="extended",n,t,r,o,s)):null}toRFC2822(){return ak(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ak(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?iN(this,!0):null}toSQLTime({includeOffset:t=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||t)&&(r&&(i+=" "),n?i+="z":t&&(i+="ZZ")),ak(this,i,!0)}toSQL(t={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(t)}`:null}toString(){return this.isValid?this.toISO():tN}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(t={}){if(!this.isValid)return{};const n={...this.c};return t.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(t,n="milliseconds",r={}){if(!this.isValid||!t.isValid)return fn.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},o=lRe(n).map(fn.normalizeUnit),a=t.valueOf()>this.valueOf(),s=a?this:t,l=a?t:this,c=dLe(s,l,o,i);return a?c.negate():c}diffNow(t="milliseconds",n={}){return this.diff(jt.now(),t,n)}until(t){return this.isValid?hi.fromDateTimes(this,t):this}hasSame(t,n,r){if(!this.isValid)return!1;const i=t.valueOf(),o=this.setZone(t.zone,{keepLocalTime:!0});return o.startOf(n,r)<=i&&i<=o.endOf(n,r)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;const n=t.base||jt.fromObject({},{zone:this.zone}),r=t.padding?thisn.valueOf(),Math.min)}static max(...t){if(!t.every(jt.isDateTime))throw new Uo("max requires all arguments be DateTimes");return Xee(t,n=>n.valueOf(),Math.max)}static fromFormatExplain(t,n,r={}){const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Ite(a,t,n)}static fromStringExplain(t,n,r={}){return jt.fromFormatExplain(t,n,r)}static buildFormatParser(t,n={}){const{locale:r=null,numberingSystem:i=null}=n,o=Gn.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0});return new Tte(o,t)}static fromFormatParser(t,n,r={}){if(Ot(t)||Ot(n))throw new Uo("fromFormatParser requires an input string and a format parser");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(n.locale))throw new Uo(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${n.locale}`);const{result:s,zone:l,specificOffset:c,invalidReason:d}=n.explainFromTokens(t);return d?jt.invalid(d):_g(s,l,r,`format ${n.format}`,t,c)}static get DATE_SHORT(){return Z3}static get DATE_MED(){return uee}static get DATE_MED_WITH_WEEKDAY(){return PMe}static get DATE_FULL(){return cee}static get DATE_HUGE(){return dee}static get TIME_SIMPLE(){return fee}static get TIME_WITH_SECONDS(){return hee}static get TIME_WITH_SHORT_OFFSET(){return pee}static get TIME_WITH_LONG_OFFSET(){return mee}static get TIME_24_SIMPLE(){return gee}static get TIME_24_WITH_SECONDS(){return vee}static get TIME_24_WITH_SHORT_OFFSET(){return yee}static get TIME_24_WITH_LONG_OFFSET(){return bee}static get DATETIME_SHORT(){return xee}static get DATETIME_SHORT_WITH_SECONDS(){return _ee}static get DATETIME_MED(){return wee}static get DATETIME_MED_WITH_SECONDS(){return kee}static get DATETIME_MED_WITH_WEEKDAY(){return OMe}static get DATETIME_FULL(){return See}static get DATETIME_FULL_WITH_SECONDS(){return Cee}static get DATETIME_HUGE(){return jee}static get DATETIME_HUGE_WITH_SECONDS(){return Tee}}function wb(e){if(jt.isDateTime(e))return e;if(e&&e.valueOf&&Uf(e.valueOf()))return jt.fromJSDate(e);if(e&&typeof e=="object")return jt.fromObject(e);throw new Uo(`Unknown datetime argument: ${e}, of type ${typeof e}`)}const $n=4,aN=5,Ate=3,Bo=4,Fte=9,dd=1e9,sN=1e6,Ute=6e7,lN={0:"Success",1:"Account In Use",2:"Account Loaded Twice",3:"Account Not Found",4:"Program Account Not Found",5:"Insufficient Funds For Fee",6:"Invalid Account For Fee",7:"Already Processed",8:"Blockhash Not Found",9:"Instruction Error",10:"Call Chain Too Deep",11:"Missing Signature For Fee",12:"Invalid Account Index",13:"Signature Failure",14:"Invalid Program For Execution",15:"Sanitize Failure",16:"Cluster Maintenance",17:"Account Borrow Outstanding",18:"Would Exceed Max Block Cost Limit",19:"Unsupported Version",20:"Invalid Writable Account",21:"Would Exceed Max Account Cost Limit",22:"Would Exceed Account Data Block Limit",23:"Too Many Account Locks",24:"Address Lookup Table Not Found",25:"Invalid Address Lookup Table Owner",26:"Invalid Address Lookup Table Data",27:"Invalid Address Lookup Table Index",28:"Invalid Rent Paying Account",29:"Would Exceed Max Vote Cost Limit",30:"Would Exceed Account Data Total Limit",31:"Duplicate Instruction",32:"Insufficient Funds For Rent",33:"Max Loaded Accounts Data Size Exceeded",34:"Invalid Loaded Accounts Data Size Limit",35:"Resanitization Needed",36:"Program Execution Temporarily Restricted",37:"Unbalanced Transaction",38:"Program Cache Hit Max Limit",39:"Commit Cancelled",40:"Bundle Peer",50:"Blockhash Nonce Already Advanced",51:"Blockhash Advanced Failed",52:"Blockhash Wrong Nonce"},uk="\xA0",kb=5,Bte=30,Sb=48,uN=13,cN=21,NLe=28,Wf=5,dN=21,ck=8,fN=ck,hN=122,Wte=dN+ck,$Le=Wte+hN+Wf,Vte="(max-width: 768px)",Hte="564px",Vf=110,Zte="1920px";var za=(e=>(e.AgaveJito="Agave Jito",e.Frankendancer="Frankendancer",e.Agave="Agave",e.AgavePaladin="Agave Paladin",e.Firedancer="Firedancer",e.AgaveBam="Agave BAM",e.Sig="Sig",e.AgaveRakurai="Agave Rakurai",e.FiredancerHarmonic="Firedancer Harmonic",e.AgaveHarmonic="Agave Harmonic",e.FrankendancerHarmonic="Frankendancer Harmonic",e))(za||{});const qte={1:"Agave Jito",2:"Frankendancer",3:"Agave",4:"Agave Paladin",5:"Firedancer",6:"Agave BAM",7:"Sig",8:"Agave Rakurai",9:"Firedancer Harmonic",10:"Agave Harmonic",11:"Frankendancer Harmonic"};function MLe(){if(typeof window>"u")return!1;const e=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(e)||"ontouchstart"in window&&!!(matchMedia!=null&&matchMedia("(hover: none)").matches)}const RLe=MLe(),fd="#E5484D",pN="#67B873",Gte="#C567EA",Yte="#2A7EDF",dk="#1CE7C2",LLe="#CBCBCB",Kte="#8A8A8A",mN="#B2BCC9",wg="#67696A",gN="#8E909D",Xte="#B4B4B4",Jte="#949494",PLe="rgba(250, 250, 250, 0.12)",OLe="rgba(250, 250, 250, 0.05)",zLe="#24262B",DLe="#F7F8F8",ALe="var(--gray-1, #111)",FLe="var(--gray-12, #eee)",ULe="var(--gray-10, #7b7b7b)",BLe="#333333",WLe="#F7F7F7",Qte=Jte,hd="#557AE0",Hf=pN,VLe="#9982f0",HLe="#303134",ZLe="#37a4bc",qLe="#00205F",GLe="#010102",YLe="#03030C",KLe="#A7A7A7",XLe="#121213",JLe=dk,QLe="#3BA158",ePe="#030312",tPe="#020C12",nPe="#020912",rPe="#060E0E",iPe="#120602",oPe="#252D2C",aPe="#175E51",sPe="#2D2B25",lPe="#6A510C",uPe="#E6B11E",cPe="#2D2525",dPe="#5E1717",fPe="#CE3636",hPe="#A2A2A2",pPe="#666",mPe="#C8B3B3",gPe="#686868",vPe="#171765ff",yPe="linear-gradient(270deg, #1414B8 0%, #090952 100%)",bPe="#8F8FED",xPe="#0E0E8E",_Pe="#0C171D",wPe="linear-gradient(270deg, #1481B8 0%, #093952 100%)",kPe="#47B4EB",SPe="#0F3F57",CPe="#041225",jPe="linear-gradient(270deg, #0E448B 0%, #090E15 100%)",TPe="#83B3F2",IPe="#0E448B",EPe="#091515",NPe=`linear-gradient(270deg, ${dk} 0%, #0C6B5A 100%)`,$Pe="#2EC9C9",MPe="#0C6B5A",RPe="#231511",LPe="linear-gradient(270deg, #8B2B0E 0%, #150C09 100%)",PPe="#F29D83",OPe="#250C04",zPe="rgba(16, 129, 108, 0.53)",DPe="#ffffff1a",APe="rgba(250, 250, 250, 0.12)",FPe="#cac4c4",UPe="#231f1f",BPe="var(--gray-11)",WPe="var(--gray-10)",VPe="var(--gray-9)",HPe="var(--gray-7)",ene="#3972C9",tne="#74AFEA",nne="#0F1313",rne="#118B74",ine="#871616",one="#163454",ane="#89603E",ZPe="#EF5F00",qPe="#F76B15",GPe="#0D9B8A",YPe="#53B9AB",KPe="#0588F0",XPe="#0090FF",sne=dk,lne="#E7B81C",une="#1C96E7",cne="#E7601C",dne="#9D1CE7",fne="#E71C88",hne="#898989",JPe="#FF7878",QPe="#FF9D0A",eOe="#FFC267",pne="#141720",fk="var(--gray-11)",hk="var(--gray-9)",mne="#56BF8C",gne="#4A7661",vne="#C27B45",yne="#714C32",bne="#DC6869",xne="#7A3B40",Yu="#BDF3FF",pk="#6F77C0",_ne="#363A63",vN="#20788C",tOe="#b1b1b1",wne="#7b837c",kne="#eee",Sne="#006851",Cne="#19307C",jne="#743F4D",nOe="#919191",rOe="#E5B319",iOe="#E55A19",oOe="#E5484D",yN="#55BA83",bN="#D94343",Tne="#232A38",aOe="#676767",sOe="#E13131",lOe="#5F6FA9",uOe="#A2A2A2",cOe="#DB8F38",dOe="#CACACA",xN="#858585",_N="#312D42",wN="#A66759",kN="#597FA6",SN="#A67F59",CN="#366357",jN="#B2904D",TN="#2F3842",IN="#B23232",EN="#82738C",fOe="#FAFAFA",hOe="#3CB4FF",pOe="#142D53",mOe="#FF5353",Ine="#525463",Ene="#23639E",Nne="#5C5555",$ne="#452909",Zf="#C6C6C6",NN="#183A5A",Mne="#10273D",gOe="#7CE198",vOe="#A4A3A3",yOe="#1B659933",sr="#777b84",$N="#2C3235",pd="#D19DFF",kg="#4CCCE6",qf="#1FD8A4",bOe="#6A6A6E",Rne=wg,Lne="rgba(250, 250, 250, 0.05)",MN="#30A46C",RN="#E5484D",mk="#FF8DCC",wp="#9EB1FF",xOe="#292929",_Oe="#9e9e9e",wOe="#1d6fba",kOe="#84858a",LN="rgba(0, 0, 0, .5)",Pne="rgba(125, 94, 84, .5)",One="#A18072",PN="#6C4E62",zne="rgba(158, 108, 0, .5)",Dne="#836A21",Ane="rgba(96, 100, 108, .5)",Fne="#B5B2BC",Une="rgba(17, 50, 100, .5)",Bne="#0090FF",SOe="var(--gray-11)",COe="var(--gray-10)",jOe="#41B9D3",TOe="#C46BF0",IOe="#6BEFD7",EOe="#C6F06A",NOe="#71EF9B",$Oe="#6AC4F0",MOe="#DDD",ROe="#8FB6FC",LOe="linear-gradient(83.85deg, #024eff 0.22%, #3ce844 102.21%)",POe="#F5F2EC",ON="#AFB2C2",OOe="rgba(178, 178, 178, 0.12)",zOe="#424242",DOe="rgba(114, 114, 114, 0.15)",AOe="#646464",zN="#676767",FOe="var(--gray-11)",UOe="var(--gray-10)",BOe="#cbcbcb",WOe="#1190CF",VOe="#6CB1D3",HOe="#967DC8",gk="#871616",DN="#1d863b",AN="#1d6286",Wne="#1CE7C2",Vne="#076B59",ZOe="#313131",Hne="#666666",Zne=AN,qOe="#19457A",GOe="#FFF",YOe="var(--gray-10)",qne="var(--teal-9)",Gne="var(--cyan-9)",Yne="var(--red-8)",Kne="var(--sky-8)",Xne="var(--green-9)",Jne="var(--indigo-10)",KOe="var(--blue-9)",XOe="#15181e",JOe="#9aabc3",QOe="#250f0f",eze="#283551",tze="#3b0c0c",nze="#e3efff",rze="#484D53B2",ize="var(--gray-11)",oze="var(--gray-10)",aze="var(--gray-12)",sze="#70B8FF",lze="#070A13",uze="#070B14 ",cze="rgba(42, 126, 223, 0.5)",dze="rgba(125, 125, 125, 0.50)",fze="#2A7EDF",hze="#070a13",pze="#0D0D0D",mze="#250f0f",gze="#002163",vze="#3b0c0c",yze="#848484",bze="#A0A0A0",xze="#ccc",_ze="#878787",wze="rgba(191, 135, 253, 0.13)",kze="#283551",vk="#0000001F",Sze=Object.freeze(Object.defineProperty({__proto__:null,appTeal:dk,averageChangedColor:vne,averageUnchangedColor:yne,badChangedColor:bne,badUnchangedColor:xne,bootProgressCatchupBackgroundColor:rPe,bootProgressFullSnapshotBackgroundColor:tPe,bootProgressGossipBackgroundColor:ePe,bootProgressGossipBarsColor:oPe,bootProgressGossipFilledBarColor:aPe,bootProgressGossipHighBarColor:cPe,bootProgressGossipHighFilledBarColor:dPe,bootProgressGossipHighThresholdBarColor:fPe,bootProgressGossipMidBarColor:sPe,bootProgressGossipMidFilledBarColor:lPe,bootProgressGossipMidThresholdBarColor:uPe,bootProgressIncrSnapshotBackgroundColor:nPe,bootProgressPrimaryTextColor:hPe,bootProgressSecondaryTextColor:pPe,bootProgressSnapshotUnitsColor:gPe,bootProgressSupermajorityBackgroundColor:iPe,bootProgressTertiaryColor:mPe,cardBackgroundColor:pne,chartAxisColor:sr,chartGridColor:$N,chartGridStrokeColor:Lne,circularProgressPathColor:Zne,circularProgressTrailColor:Hne,clusterDevelopmentColor:une,clusterDevnetColor:cne,clusterMainnetBetaColor:sne,clusterPythnetColor:dne,clusterPythtestColor:fne,clusterTestnetColor:lne,clusterUnknownColor:hne,computeUnitsColor:pd,containerBackgroundColor:OLe,containerBorderColor:PLe,dropdownBackgroundColor:zLe,dropdownButtonTextColor:DLe,elapsedTimeColor:bOe,epochNotLiveColor:hOe,epochSkippedSlotColor:mOe,epochSliderProgressColor:pOe,epochTextColor:fOe,errorToggleColor:RN,fadedText:kOe,failureColor:fd,feesColor:kg,firstTurbineSlotColor:ene,focusedBorderColor:wOe,goodChangedColor:mne,goodUnchangedColor:gne,gridLineColor:_N,gridTicksColor:xN,headerColor:Yu,headerLabelTextColor:Jte,highIncrementTextColor:oOe,iconButtonColor:Xte,incomePerCuToggleControlColor:wp,latestTurbineSlotColor:tne,lowIncrementTextColor:rOe,midIncrementTextColor:iOe,missingSlotColor:nne,mySlotsColor:Yte,navButtonInactiveTextColor:Qte,navButtonTextColor:WLe,needsReplaySlotColor:one,nextColor:Gte,nextSlotValueColor:dOe,nonDelinquentChartColor:_ne,nonDelinquentColor:pk,nonVoteColor:Hf,popoverBackgroundColor:ALe,popoverPrimaryColor:FLe,popoverSecondaryColor:ULe,primaryTextColor:mN,programCacheColor:kne,progressBackgroundColor:ZLe,progressBarCompleteCatchupColor:MPe,progressBarCompleteFullSnapshotColor:SPe,progressBarCompleteGossipColor:xPe,progressBarCompleteIncSnapshotColor:IPe,progressBarCompleteSupermajorityColor:OPe,progressBarInProgressCatchupBackground:NPe,progressBarInProgressCatchupBorder:$Pe,progressBarInProgressFullSnapshotBackground:wPe,progressBarInProgressFullSnapshotBorder:kPe,progressBarInProgressGossipBackground:yPe,progressBarInProgressGossipBorder:bPe,progressBarInProgressIncSnapshotBackground:jPe,progressBarInProgressIncSnapshotBorder:TPe,progressBarInProgressSupermajorityBackground:LPe,progressBarInProgressSupermajorityBorder:PPe,progressBarIncompleteCatchupColor:EPe,progressBarIncompleteFullSnapshotColor:_Pe,progressBarIncompleteGossipColor:vPe,progressBarIncompleteIncSnapshotColor:CPe,progressBarIncompleteSupermajorityColor:RPe,progressGutterBackgroundColor:HLe,regularTextColor:gN,repairedNeedsReplaySlotColor:ane,repairedSlotsBoldTextColor:qPe,repairedSlotsTextColor:ZPe,replayedMissingSlotColor:ine,replayedSlotColor:rne,replayedSlotsBoldTextColor:YPe,replayedSlotsTextColor:GPe,requestedToggleControlColor:mk,rowSeparatorBackgroundColor:BLe,sankeyBaseLabelColor:Zf,sankeyDroppedLinkColor:Nne,sankeyIncomingLinkColor:Ene,sankeyLinkGradientEndColor:NN,sankeyLinkGradientMiddleColor:Mne,sankeyRetainedLinkColor:$ne,sankeyStartEndNodeColor:Ine,sankeySuccessRateColor:gOe,searchDisabledBackgroundColor:DOe,searchDisabledBorderColor:OOe,searchDisabledTextColor:zOe,searchIconColor:ON,secondaryTextColor:wg,shredPublishedColor:EN,shredReceivedRepairColor:SN,shredReceivedTurbineColor:kN,shredRepairRequestedColor:wN,shredReplayedNothingColor:TN,shredReplayedRepairColor:jN,shredReplayedTurbineColor:CN,shredSkippedColor:IN,skipRateLabelColor:AOe,slotCardHeaderTextColor:BOe,slotCardSectionBackgroundColor:zN,slotCardSectionPrimaryColor:FOe,slotCardSectionSecondaryColor:UOe,slotDetailsBackgroundColor:XOe,slotDetailsChartControlsTriggered:sze,slotDetailsClickableSlotColor:KOe,slotDetailsColor:JOe,slotDetailsDisabledSlotBorderColor:rze,slotDetailsEarliestSlotColor:qne,slotDetailsFeesSlotColor:Kne,slotDetailsMySlotsNotSelectedColor:qOe,slotDetailsQuickSearchTextColor:YOe,slotDetailsRecentSlotColor:Gne,slotDetailsRewardsSlotColor:Jne,slotDetailsSearchLabelColor:GOe,slotDetailsSelectedBackgroundColor:eze,slotDetailsSelectedColor:nze,slotDetailsSkippedBackgroundColor:QOe,slotDetailsSkippedSelectedBackgroundColor:tze,slotDetailsSkippedSlotColor:Yne,slotDetailsStatsPrimary:ize,slotDetailsStatsSecondary:oze,slotDetailsStatsTertiary:aze,slotDetailsTipsSlotColor:Xne,slotNavBackgroundColor:GLe,slotNavFilterBackgroundColor:qLe,slotSelectorItemBackgroundColor:yOe,slotSelectorTextColor:vOe,slotStatusBlue:AN,slotStatusDullTeal:Vne,slotStatusGray:ZOe,slotStatusGreen:DN,slotStatusRed:gk,slotStatusTeal:Wne,slotTextActiveLinkColor:VOe,slotTextLinkColor:WOe,slotTextVisitedLinkColor:HOe,slotTimelineTextColor:tOe,slotsListBackgroundColor:hze,slotsListCurrentSlotBoxShadowColor:wze,slotsListCurrentSlotNumberBackgroundColor:kze,slotsListFutureSlotBackgroundColor:pze,slotsListFutureSlotColor:_ze,slotsListMySlotBackgroundColor:uze,slotsListMySlotsBorderColor:cze,slotsListMySlotsSelectedBorderColor:fze,slotsListNotProcessedMySlotsBorderColor:dze,slotsListPastSlotColor:bze,slotsListPastSlotNumberColor:yze,slotsListSelectedBackgroundColor:gze,slotsListSkippedBackgroundColor:mze,slotsListSkippedSelectedBackgroundColor:vze,slotsListSlotBackgroundColor:lze,slotsListSlotColor:xze,snapshotAreaChartDark:zPe,snapshotAreaChartGridLineColor:DPe,startLineColor:Rne,startupBackgroundColor:YLe,startupCompleteStepColor:QLe,startupProgressBackgroundColor:XLe,startupProgressTealColor:JLe,startupTextColor:KLe,successColor:pN,successToggleColor:MN,summaryAgaveTextColor:EOe,summaryBamTextColor:MOe,summaryFiredancerTextColor:IOe,summaryFrankendancerTextColor:TOe,summaryHarmonicTextColor:POe,summaryJitoTextColor:NOe,summaryMySlotsColor:jOe,summaryPaladinTextColor:$Oe,summaryPrimaryTextColor:SOe,summaryRakuraiTextColor:LOe,summarySecondaryTextColor:COe,summarySigTextColor:ROe,supermajorityPieChartTextColor:FPe,supermajorityPieChartUnfilledColor:UPe,supermajorityTableBorderColor:APe,supermajorityTableOfflinePrimaryColor:BPe,supermajorityTableOfflineSecondaryColor:WPe,supermajorityTableOnlinePrimaryColor:VPe,supermajorityTableOnlineSecondaryColor:HPe,tableBodyColor:Kte,tableHeaderColor:LLe,tileBackgroundBlueColor:lOe,tileBackgroundRedColor:sOe,tileBusyGreenColor:yN,tileBusyRedColor:bN,tileChartDarkBackground:vk,tilePrimaryStatValueColor:cOe,tileSparklineBackgroundColor:Tne,tileSparklineRangeTextColor:aOe,tileSubHeaderColor:uOe,tipsColor:qf,toastConnectingEndColor:eOe,toastConnectingStartColor:QPe,toastDisconnectedColor:JPe,toggleItemBackgroundColor:xOe,toggleItemTextColor:_Oe,totalValidatorsColor:vN,transactionAxisTextColor:nOe,transactionDefaultColor:LN,transactionExecuteColor:Ane,transactionExecuteTextColor:Fne,transactionFailedPathColor:jne,transactionLoadingColor:zne,transactionLoadingTextColor:Dne,transactionNonVotePathColor:Sne,transactionPostExecuteColor:Une,transactionPostExecuteTextColor:Bne,transactionPreloadingColor:Pne,transactionPreloadingTextColor:One,transactionValidateColor:PN,transactionVotePathColor:Cne,turbineSlotsBoldTextColor:XPe,turbineSlotsTextColor:KPe,unknownChangedColor:fk,unknownUnchangedColor:hk,voteDistanceColor:wne,voteLatencyColor:VLe,votesColor:hd},Symbol.toStringTag,{value:"Module"}));var Cze={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},jze=Array.prototype.slice;function yk(e){var t=e.length;return t?t===1?[e[0]]:t===2?[e[0],e[1]]:t===3?[e[0],e[1],e[2]]:jze.call(e,0):[]}function Tze(e){var t={};for(var n in e)Cze[n]||(t[n]=e[n]);return t}function Ize(e){return typeof e=="function"&&e.isMemoized}function Eze(e,t){return e===t||e!==e&&t!==t}function Qne(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}var Nze=function(){function e(t){this.keys=[],this.values=[],this.options=t;var n=typeof t.isMatchingKey=="function";n?this.getKeyIndex=this._getKeyIndexFromMatchingKey:t.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof t.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||n,this.shouldUpdateOnAdd=typeof t.onCacheAdd=="function",this.shouldUpdateOnChange=typeof t.onCacheChange=="function",this.shouldUpdateOnHit=typeof t.onCacheHit=="function"}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:yk(this.keys),size:this.size,values:yk(this.values)}},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(t){var n=this.options,r=n.isMatchingKey,i=n.maxSize,o=this.keys,a=o.length;if(!a)return-1;if(r(o[0],t))return 0;if(i>1){for(var s=1;s1){for(var l=0;l1){for(var a=0;a=l&&(i.length=o.length=l)},e.prototype.updateAsyncCache=function(t){var n=this,r=this.options,i=r.onCacheChange,o=r.onCacheHit,a=this.keys[0],s=this.values[0];this.values[0]=s.then(function(l){return n.shouldUpdateOnHit&&o(n,n.options,t),n.shouldUpdateOnChange&&i(n,n.options,t),l},function(l){var c=n.getKeyIndex(a);throw c!==-1&&(n.keys.splice(c,1),n.values.splice(c,1)),l})},e}();function Gf(e,t){if(t===void 0&&(t={}),Ize(e))return Gf(e.fn,Qne(e.options,t));if(typeof e!="function")throw new TypeError("You must pass a function to `memoize`.");var n=t.isEqual,r=n===void 0?Eze:n,i=t.isMatchingKey,o=t.isPromise,a=o===void 0?!1:o,s=t.maxSize,l=s===void 0?1:s,c=t.onCacheAdd,d=t.onCacheChange,f=t.onCacheHit,p=t.transformKey,v=Qne({isEqual:r,isMatchingKey:i,isPromise:a,maxSize:l,onCacheAdd:c,onCacheChange:d,onCacheHit:f,transformKey:p},Tze(t)),x=new Nze(v),y=x.keys,b=x.values,w=x.canTransformKey,_=x.shouldCloneArguments,S=x.shouldUpdateOnAdd,C=x.shouldUpdateOnChange,j=x.shouldUpdateOnHit,T=function(){var E=_?yk(arguments):arguments;w&&(E=p(E));var $=y.length?x.getKeyIndex(E):-1;if($!==-1)j&&f(x,v,T),$&&(x.orderByLru(y[$],b[$],$),C&&d(x,v,T));else{var D=e.apply(this,arguments),M=_?E:yk(arguments);x.orderByLru(M,D,y.length),a&&x.updateAsyncCache(T),S&&c(x,v,T),C&&d(x,v,T)}return b[0]};return T.cache=x,T.fn=e,T.isMemoized=!0,T.options=v,T}function FN(e,t){return e.leader_slots.reduce((n,r,i)=>(e.staked_pubkeys[r]===t&&n.push(i*$n+e.start_slot),n),[])}function _i(e){return e-e%$n}const UN=[{unit:"years",suffix:"y"},{unit:"months",suffix:"m"},{unit:"weeks",suffix:"w"},{unit:"days",suffix:"d"},{unit:"hours",suffix:"h"},{unit:"minutes",suffix:"m"},{unit:"seconds",suffix:"s"}];function $ze(e,t){if(t!=null&&t.showOnlyTwoSignificantUnits){const n=UN.findIndex(({unit:r})=>!!e[r]);return UN.slice(n,n+2).map(({unit:r,suffix:i})=>[e[r],i])}return UN.filter(({unit:n})=>t!=null&&t.omitSeconds&&n==="seconds"?!1:!!e[n]).map(({unit:n,suffix:r})=>[e[n],r])}function ere(e,t){if(!e)return;if(e.toMillis()<1e3)return[[0,"s"]];const n=$ze(e,t);return n.length?n:[[0,"s"]]}function kp(e,t){const n=ere(e,t);return n?n.map(([r,i])=>`${r}${i}`).join(" "):"Never"}function Mze(e,t={showSeconds:!0}){if(!e)return"Never";if(e.toMillis()<0)return"0s";let n="";return e.years&&(n&&(n+=" "),n+=`${e.years}y`),e.months&&(n&&(n+=" "),n+=`${e.months}m`),e.weeks&&(n&&(n+=" "),n+=`${e.weeks}w`),e.days&&(n&&(n+=" "),n+=`${e.days}d`),e.hours&&(n&&(n+=" "),n+=`${e.hours}h`),e.minutes&&(n&&(n+=" "),n+=`${e.minutes}m`),e.seconds&&t.showSeconds&&(n&&(n+=" "),n+=`${e.seconds}s`),n||(n="0s"),n}let Yf=jt.now();setInterval(()=>{Yf=jt.now()},1e3);function tre(e){return jt.fromMillis(Math.trunc(Number(e/1000000n)))}function Cb(e){return e!==void 0}const jb=e=>e>=18446744073709552e3?0:e;function nre(e){return e.vote.reduce((t,{activated_stake:n})=>t+n,0n)}function Tb(e,t){if(e===void 0)return;const n=Number(e)/dd;return n<1?n.toLocaleString(void 0,{maximumFractionDigits:t}):n<100?n.toLocaleString(void 0,{maximumFractionDigits:2}):n.toLocaleString(void 0,{maximumFractionDigits:0})}function BN(e,t){const n=Tb(e,t);if(n!==void 0)return`${n}\xA0SOL`}const Rze=e=>Array.isArray(e);function WN(e){if(navigator.clipboard){navigator.clipboard.writeText(e);return}const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.left="-999999px",document.body.appendChild(t),t.select();try{document.execCommand("copy")||console.error("Failed to copy text",e)}catch(n){console.error("Failed to copy text",e,n)}finally{document.body.removeChild(t)}}function Lze(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function VN(e,t){return e.txn_landed[t]&&![5,6].includes(e.txn_error_code[t])?e.txn_priority_fee[t]+e.txn_transaction_fee[t]:0n}function HN(e,t){return e.txn_landed[t]&&e.txn_error_code[t]===0?e.txn_tips[t]:0n}function md(e,t){return VN(e,t)+HN(e,t)}function ZN(e){return e.split(":")[0]}function bk(e){switch(e){case"mainnet-beta":return sne;case"testnet":return lne;case"development":return une;case"devnet":return cne;case"pythnet":return dne;case"pythtest":return fne;case"unknown":case void 0:return hne}}function Ib(e){const t=e*8;return t<1e3?{value:xk(t),unit:"b"}:t<1e6?{value:xk(t/1e3),unit:"Kb"}:t<1e9?{value:xk(t/1e6),unit:"Mb"}:{value:xk(t/1e9),unit:"Gb"}}const Sg=[{unit:"B",divisor:1,threshold:1e3},{unit:"kB",divisor:1e3,threshold:1e6},{unit:"MB",divisor:1e6,threshold:1e9},{unit:"GB",divisor:1e9,threshold:1/0}];function Da(e,t=1,n,r=!0){if(e===0&&r)return{value:"0",unit:n??"B"};const i=Sg.find(o=>o.unit===n)??Sg.find(o=>e=9.5?Math.round(e):Math.round(e*10)/10}function Eb(e){let t=-1/0;for(let n=0;nt&&(t=r)}return t}function Pze(e){let t=1/0;for(let n=0;n{if(e)return e.toUpperCase().split("").map(t=>String.fromCodePoint(t.charCodeAt(0)-65+127462)).join("")},{maxSize:100}),_k={month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3},wk={local:new Intl.DateTimeFormat(void 0,{..._k,timeZoneName:"short"}),localNoTz:new Intl.DateTimeFormat(void 0,_k),utc:new Intl.DateTimeFormat(void 0,{..._k,timeZone:"UTC",timeZoneName:"short"}),utcNoTz:new Intl.DateTimeFormat(void 0,{..._k,timeZone:"UTC"})};function kk(e,t){const n=Number(e/1000000n),r=Number(e%1000000n),i=new Date(n),o=(t==null?void 0:t.timezone)??"local",a=(t==null?void 0:t.showTimezoneName)??!0,s=(o==="utc"?a?wk.utc:wk.utcNoTz:a?wk.local:wk.localNoTz).formatToParts(i),l=r.toString().padStart(6,"0");let c="",d="";for(const f of s)c+=f.value,d+=f.value,f.type==="fractionalSecond"&&(d+=l);return{inMillis:c,inNanos:d}}function zze(e){return e.level==="rooted"&&(e.vote_latency&&e.vote_latency>1||e.vote_latency===null&&!e.skipped)}function rre(e,t,n){let r=0;for(let i=e;it>=a.from&&t{if(!t)return"";const a=Sp(t,{units:"iec"}),s=e?e/t:0,l=Number(a.value);return`${isNaN(l)?"0":(l*s).toFixed(1)} / ${a.toString()}`};return u.jsx(W,{children:u.jsxs(W,{direction:"column",children:[u.jsx(Mt,{minHeight:"10px"}),u.jsx(N4,{value:r,className:H3.progress}),u.jsxs(W,{minHeight:"10px",children:[u.jsx(Z,{className:H3.text,children:o()}),u.jsx(Mt,{flexGrow:"1"}),u.jsxs(Z,{className:H3.text,children:["~",kp(i)]})]})]})})}function Aze(){const e=J(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_full_snapshot_current_bytes,totalBytes:e.downloading_full_snapshot_total_bytes,remainingSecs:e.downloading_full_snapshot_remaining_secs})}var Sk={exports:{}};/** +* @license +* Lodash +* Copyright OpenJS Foundation and other contributors +* Released under MIT license +* Based on Underscore.js 1.8.3 +* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +*/Sk.exports,function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",f=1,p=2,v=4,x=1,y=2,b=1,w=2,_=4,S=8,C=16,j=32,T=64,E=128,$=256,D=512,M=30,O="...",te=800,q=16,P=1,X=2,A=3,Y=1/0,F=9007199254740991,H=17976931348623157e292,ee=NaN,ce=4294967295,B=ce-1,ae=ce>>>1,je=[["ary",E],["bind",b],["bindKey",w],["curry",S],["curryRight",C],["flip",D],["partial",j],["partialRight",T],["rearg",$]],me="[object Arguments]",ke="[object Array]",he="[object AsyncFunction]",ue="[object Boolean]",re="[object Date]",ge="[object DOMException]",$e="[object Error]",pe="[object Function]",ye="[object GeneratorFunction]",Se="[object Map]",Ce="[object Number]",Ue="[object Null]",Ge="[object Object]",_t="[object Promise]",St="[object Proxy]",ut="[object RegExp]",ct="[object Set]",bt="[object String]",Qe="[object Symbol]",Ke="[object Undefined]",De="[object WeakMap]",Dt="[object WeakSet]",pn="[object ArrayBuffer]",Yn="[object DataView]",hr="[object Float32Array]",Kn="[object Float64Array]",kr="[object Int8Array]",On="[object Int16Array]",Mr="[object Int32Array]",tr="[object Uint8Array]",Sr="[object Uint8ClampedArray]",ri="[object Uint16Array]",uo="[object Uint32Array]",Ki=/\b__p \+= '';/g,No=/\b(__p \+=) '' \+/g,Ps=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zn=/&(?:amp|lt|gt|quot|#39);/g,co=/[&<>"']/g,xa=RegExp(zn.source),yc=RegExp(co.source),bc=/<%-([\s\S]+?)%>/g,xc=/<%([\s\S]+?)%>/g,qa=/<%=([\s\S]+?)%>/g,kl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pi=/^\w*$/,Un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rr=/[\\^$.*+?()[\]{}|]/g,$o=RegExp(Rr.source),fo=/^\s+/,Lr=/\s/,ho=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,_a=/\{\n\/\* \[wrapped with (.+)\] \*/,it=/,? & /,Yt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,ii=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ga=/\w*$/,Ya=/^[-+]0x[0-9a-f]+$/i,Ko=/^0b[01]+$/i,mi=/^\[object .+?Constructor\]$/,Bn=/^0o[0-7]+$/i,pr=/^(?:0|[1-9]\d*)$/,Cr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ka=/($^)/,po=/['\n\r\u2028\u2029\\]/g,mo="\\ud800-\\udfff",Vr="\\u0300-\\u036f",wa="\\ufe20-\\ufe2f",ji="\\u20d0-\\u20ff",gi=Vr+wa+ji,Os="\\u2700-\\u27bf",go="a-z\\xdf-\\xf6\\xf8-\\xff",Xo="\\xac\\xb1\\xd7\\xf7",Pd="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Od="\\u2000-\\u206f",bu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xi="A-Z\\xc0-\\xd6\\xd8-\\xde",oi="\\ufe0e\\ufe0f",_c=Xo+Pd+Od+bu,xu="['\u2019]",wc="["+mo+"]",kc="["+_c+"]",Sl="["+gi+"]",Xa="\\d+",z1="["+Os+"]",zd="["+go+"]",Sc="[^"+mo+_c+Xa+Os+go+Xi+"]",Dd="\\ud83c[\\udffb-\\udfff]",Fm="(?:"+Sl+"|"+Dd+")",Ad="[^"+mo+"]",L="(?:\\ud83c[\\udde6-\\uddff]){2}",G="[\\ud800-\\udbff][\\udc00-\\udfff]",ie="["+Xi+"]",Ie="\\u200d",ze="(?:"+zd+"|"+Sc+")",vt="(?:"+ie+"|"+Sc+")",Kt="(?:"+xu+"(?:d|ll|m|re|s|t|ve))?",In="(?:"+xu+"(?:D|LL|M|RE|S|T|VE))?",Di=Fm+"?",Ti="["+oi+"]?",Ji="(?:"+Ie+"(?:"+[Ad,L,G].join("|")+")"+Ti+Di+")*",mC="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fd="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",j_=Ti+Di+Ji,T_="(?:"+[z1,L,G].join("|")+")"+j_,D1="(?:"+[Ad+Sl+"?",Sl,L,G,wc].join("|")+")",A1=RegExp(xu,"g"),F1=RegExp(Sl,"g"),_u=RegExp(Dd+"(?="+Dd+")|"+D1+j_,"g"),Ud=RegExp([ie+"?"+zd+"+"+Kt+"(?="+[kc,ie,"$"].join("|")+")",vt+"+"+In+"(?="+[kc,ie+ze,"$"].join("|")+")",ie+"?"+ze+"+"+Kt,ie+"+"+In,Fd,mC,Xa,T_].join("|"),"g"),I_=RegExp("["+Ie+mo+gi+oi+"]"),E_=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Bd=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Wd=-1,rr={};rr[hr]=rr[Kn]=rr[kr]=rr[On]=rr[Mr]=rr[tr]=rr[Sr]=rr[ri]=rr[uo]=!0,rr[me]=rr[ke]=rr[pn]=rr[ue]=rr[Yn]=rr[re]=rr[$e]=rr[pe]=rr[Se]=rr[Ce]=rr[Ge]=rr[ut]=rr[ct]=rr[bt]=rr[De]=!1;var Xn={};Xn[me]=Xn[ke]=Xn[pn]=Xn[Yn]=Xn[ue]=Xn[re]=Xn[hr]=Xn[Kn]=Xn[kr]=Xn[On]=Xn[Mr]=Xn[Se]=Xn[Ce]=Xn[Ge]=Xn[ut]=Xn[ct]=Xn[bt]=Xn[Qe]=Xn[tr]=Xn[Sr]=Xn[ri]=Xn[uo]=!0,Xn[$e]=Xn[pe]=Xn[De]=!1;var mr={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},jr={"&":"&","<":"<",">":">",'"':""","'":"'"},wu={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ai={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ii=parseFloat,Ei=parseInt,ir=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Vd=typeof self=="object"&&self&&self.Object===Object&&self,ai=ir||Vd||Function("return this")(),U1=t&&!t.nodeType&&t,Mo=U1&&!0&&e&&!e.nodeType&&e,Ja=Mo&&Mo.exports===U1,B1=Ja&&ir.process,ka=function(){try{var le=Mo&&Mo.require&&Mo.require("util").types;return le||B1&&B1.binding&&B1.binding("util")}catch{}}(),N_=ka&&ka.isArrayBuffer,$_=ka&&ka.isDate,zs=ka&&ka.isMap,Cl=ka&&ka.isRegExp,ku=ka&&ka.isSet,Cc=ka&&ka.isTypedArray;function Jo(le,Ne,we){switch(we.length){case 0:return le.call(Ne);case 1:return le.call(Ne,we[0]);case 2:return le.call(Ne,we[0],we[1]);case 3:return le.call(Ne,we[0],we[1],we[2])}return le.apply(Ne,we)}function Ds(le,Ne,we,Je){for(var xt=-1,Gt=le==null?0:le.length;++xt-1}function V1(le,Ne,we){for(var Je=-1,xt=le==null?0:le.length;++Je-1;);return we}function O_(le,Ne){for(var we=le.length;we--&&Tc(Ne,le[we],0)>-1;);return we}function gC(le,Ne){for(var we=le.length,Je=0;we--;)le[we]===Ne&&++Je;return Je}var J1=Y1(mr),N=Y1(jr);function z(le){return"\\"+Ai[le]}function K(le,Ne){return le==null?n:le[Ne]}function Q(le){return I_.test(le)}function de(le){return E_.test(le)}function _e(le){for(var Ne,we=[];!(Ne=le.next()).done;)we.push(Ne.value);return we}function Me(le){var Ne=-1,we=Array(le.size);return le.forEach(function(Je,xt){we[++Ne]=[xt,Je]}),we}function Fe(le,Ne){return function(we){return le(Ne(we))}}function Ve(le,Ne){for(var we=-1,Je=le.length,xt=0,Gt=[];++we-1}function I0e(h,g){var k=this.__data__,I=Y_(k,h);return I<0?(++this.size,k.push([h,g])):k[I][1]=g,this}Nc.prototype.clear=S0e,Nc.prototype.delete=C0e,Nc.prototype.get=j0e,Nc.prototype.has=T0e,Nc.prototype.set=I0e;function $c(h){var g=-1,k=h==null?0:h.length;for(this.clear();++g=g?h:g)),h}function Us(h,g,k,I,R,V){var ne,se=g&f,ve=g&p,Re=g&v;if(k&&(ne=R?k(h,I,R,V):k(h)),ne!==n)return ne;if(!Jr(h))return h;var Le=Ht(h);if(Le){if(ne=Mge(h),!se)return ja(h,ne)}else{var Ae=Lo(h),tt=Ae==pe||Ae==ye;if(Jd(h))return hz(h,se);if(Ae==Ge||Ae==me||tt&&!R){if(ne=ve||tt?{}:Mz(h),!se)return ve?_ge(h,V0e(ne,h)):xge(h,WO(ne,h))}else{if(!Xn[Ae])return R?h:{};ne=Rge(h,Ae,se)}}V||(V=new Tl);var pt=V.get(h);if(pt)return pt;V.set(h,ne),sD(h)?h.forEach(function($t){ne.add(Us($t,g,k,$t,h,V))}):oD(h)&&h.forEach(function($t,mn){ne.set(mn,Us($t,g,k,mn,h,V))});var Nt=Re?ve?UC:FC:ve?Ia:eo,nn=Le?n:Nt(h);return Sa(nn||h,function($t,mn){nn&&(mn=$t,$t=h[mn]),iv(ne,mn,Us($t,g,k,mn,h,V))}),ne}function H0e(h){var g=eo(h);return function(k){return VO(k,h,g)}}function VO(h,g,k){var I=k.length;if(h==null)return!I;for(h=tn(h);I--;){var R=k[I],V=g[R],ne=h[R];if(ne===n&&!(R in h)||!V(ne))return!1}return!0}function HO(h,g,k){if(typeof h!="function")throw new ar(a);return dv(function(){h.apply(n,k)},g)}function ov(h,g,k,I){var R=-1,V=Su,ne=!0,se=h.length,ve=[],Re=g.length;if(!se)return ve;k&&(g=or(g,Sn(k))),I?(V=V1,ne=!1):g.length>=i&&(V=Ic,ne=!1,g=new jh(g));e:for(;++RR?0:R+k),I=I===n||I>R?R:Xt(I),I<0&&(I+=R),I=k>I?0:uD(I);k0&&k(se)?g>1?vo(se,g-1,k,I,R):Cu(R,se):I||(R[R.length]=se)}return R}var wC=bz(),GO=bz(!0);function Iu(h,g){return h&&wC(h,g,eo)}function kC(h,g){return h&&GO(h,g,eo)}function X_(h,g){return Ca(g,function(k){return Oc(h[k])})}function Ih(h,g){g=Kd(g,h);for(var k=0,I=g.length;h!=null&&kg}function G0e(h,g){return h!=null&&Jn.call(h,g)}function Y0e(h,g){return h!=null&&g in tn(h)}function K0e(h,g,k){return h>=Ro(g,k)&&h=120&&Le.length>=120)?new jh(ne&&Le):n}Le=h[0];var Ae=-1,tt=se[0];e:for(;++Ae-1;)se!==h&&B_.call(se,ve,1),B_.call(h,ve,1);return h}function oz(h,g){for(var k=h?g.length:0,I=k-1;k--;){var R=g[k];if(k==I||R!==V){var V=R;Pc(R)?B_.call(h,R,1):RC(h,R)}}return h}function NC(h,g){return h+H_(AO()*(g-h+1))}function uge(h,g,k,I){for(var R=-1,V=Fi(V_((g-h)/(k||1)),0),ne=we(V);V--;)ne[I?V:++R]=h,h+=k;return ne}function $C(h,g){var k="";if(!h||g<1||g>F)return k;do g%2&&(k+=h),g=H_(g/2),g&&(h+=h);while(g);return k}function sn(h,g){return GC(Pz(h,g,Ea),h+"")}function cge(h){return BO(Xm(h))}function dge(h,g){var k=Xm(h);return l2(k,Th(g,0,k.length))}function lv(h,g,k,I){if(!Jr(h))return h;g=Kd(g,h);for(var R=-1,V=g.length,ne=V-1,se=h;se!=null&&++RR?0:R+g),k=k>R?R:k,k<0&&(k+=R),R=g>k?0:k-g>>>0,g>>>=0;for(var V=we(R);++I>>1,ne=h[V];ne!==null&&!es(ne)&&(k?ne<=g:ne=i){var Re=g?null:Cge(h);if(Re)return et(Re);ne=!1,R=Ic,ve=new jh}else ve=g?[]:se;e:for(;++I=I?h:Bs(h,g,k)}var fz=n0e||function(h){return ai.clearTimeout(h)};function hz(h,g){if(g)return h.slice();var k=h.length,I=LO?LO(k):new h.constructor(k);return h.copy(I),I}function zC(h){var g=new h.constructor(h.byteLength);return new F_(g).set(new F_(h)),g}function gge(h,g){var k=g?zC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.byteLength)}function vge(h){var g=new h.constructor(h.source,Ga.exec(h));return g.lastIndex=h.lastIndex,g}function yge(h){return rv?tn(rv.call(h)):{}}function pz(h,g){var k=g?zC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.length)}function mz(h,g){if(h!==g){var k=h!==n,I=h===null,R=h===h,V=es(h),ne=g!==n,se=g===null,ve=g===g,Re=es(g);if(!se&&!Re&&!V&&h>g||V&&ne&&ve&&!se&&!Re||I&&ne&&ve||!k&&ve||!R)return 1;if(!I&&!V&&!Re&&h=se)return ve;var Re=k[I];return ve*(Re=="desc"?-1:1)}}return h.index-g.index}function gz(h,g,k,I){for(var R=-1,V=h.length,ne=k.length,se=-1,ve=g.length,Re=Fi(V-ne,0),Le=we(ve+Re),Ae=!I;++se1?k[R-1]:n,ne=R>2?k[2]:n;for(V=h.length>3&&typeof V=="function"?(R--,V):n,ne&&ta(k[0],k[1],ne)&&(V=R<3?n:V,R=1),g=tn(g);++I-1?R[V?g[ne]:ne]:n}}function wz(h){return Lc(function(g){var k=g.length,I=k,R=Fs.prototype.thru;for(h&&g.reverse();I--;){var V=g[I];if(typeof V!="function")throw new ar(a);if(R&&!ne&&a2(V)=="wrapper")var ne=new Fs([],!0)}for(I=ne?I:k;++I1&&_n.reverse(),Le&&vese))return!1;var Re=V.get(h),Le=V.get(g);if(Re&&Le)return Re==g&&Le==h;var Ae=-1,tt=!0,pt=k&y?new jh:n;for(V.set(h,g),V.set(g,h);++Ae1?"& ":"")+g[I],g=g.join(k>2?", ":" "),h.replace(ho,`{ +/* [wrapped with `+g+`] */ +`)}function Pge(h){return Ht(h)||$h(h)||!!(zO&&h&&h[zO])}function Pc(h,g){var k=typeof h;return g=g??F,!!g&&(k=="number"||k!="symbol"&&pr.test(h))&&h>-1&&h%1==0&&h0){if(++g>=te)return arguments[0]}else g=0;return h.apply(n,arguments)}}function l2(h,g){var k=-1,I=h.length,R=I-1;for(g=g===n?I:g;++k1?h[g-1]:n;return k=typeof k=="function"?(h.pop(),k):n,qz(h,k)});function Gz(h){var g=U(h);return g.__chain__=!0,g}function Z1e(h,g){return g(h),h}function u2(h,g){return g(h)}var q1e=Lc(function(h){var g=h.length,k=g?h[0]:0,I=this.__wrapped__,R=function(V){return _C(V,h)};return g>1||this.__actions__.length||!(I instanceof yn)||!Pc(k)?this.thru(R):(I=I.slice(k,+k+(g?1:0)),I.__actions__.push({func:u2,args:[R],thisArg:n}),new Fs(I,this.__chain__).thru(function(V){return g&&!V.length&&V.push(n),V}))});function G1e(){return Gz(this)}function Y1e(){return new Fs(this.value(),this.__chain__)}function K1e(){this.__values__===n&&(this.__values__=lD(this.value()));var h=this.__index__>=this.__values__.length,g=h?n:this.__values__[this.__index__++];return{done:h,value:g}}function X1e(){return this}function J1e(h){for(var g,k=this;k instanceof G_;){var I=Uz(k);I.__index__=0,I.__values__=n,g?R.__wrapped__=I:g=I;var R=I;k=k.__wrapped__}return R.__wrapped__=h,g}function Q1e(){var h=this.__wrapped__;if(h instanceof yn){var g=h;return this.__actions__.length&&(g=new yn(this)),g=g.reverse(),g.__actions__.push({func:u2,args:[YC],thisArg:n}),new Fs(g,this.__chain__)}return this.thru(YC)}function eve(){return cz(this.__wrapped__,this.__actions__)}var tve=t2(function(h,g,k){Jn.call(h,k)?++h[k]:Mc(h,k,1)});function nve(h,g,k){var I=Ht(h)?W1:Z0e;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}function rve(h,g){var k=Ht(h)?Ca:qO;return k(h,It(g,3))}var ive=_z(Bz),ove=_z(Wz);function ave(h,g){return vo(c2(h,g),1)}function sve(h,g){return vo(c2(h,g),Y)}function lve(h,g,k){return k=k===n?1:Xt(k),vo(c2(h,g),k)}function Yz(h,g){var k=Ht(h)?Sa:Gd;return k(h,It(g,3))}function Kz(h,g){var k=Ht(h)?M_:ZO;return k(h,It(g,3))}var uve=t2(function(h,g,k){Jn.call(h,k)?h[k].push(g):Mc(h,k,[g])});function cve(h,g,k,I){h=Ta(h)?h:Xm(h),k=k&&!I?Xt(k):0;var R=h.length;return k<0&&(k=Fi(R+k,0)),m2(h)?k<=R&&h.indexOf(g,k)>-1:!!R&&Tc(h,g,k)>-1}var dve=sn(function(h,g,k){var I=-1,R=typeof g=="function",V=Ta(h)?we(h.length):[];return Gd(h,function(ne){V[++I]=R?Jo(g,ne,k):av(ne,g,k)}),V}),fve=t2(function(h,g,k){Mc(h,k,g)});function c2(h,g){var k=Ht(h)?or:QO;return k(h,It(g,3))}function hve(h,g,k,I){return h==null?[]:(Ht(g)||(g=g==null?[]:[g]),k=I?n:k,Ht(k)||(k=k==null?[]:[k]),rz(h,g,k))}var pve=t2(function(h,g,k){h[k?0:1].push(g)},function(){return[[],[]]});function mve(h,g,k){var I=Ht(h)?jl:K1,R=arguments.length<3;return I(h,It(g,4),k,R,Gd)}function gve(h,g,k){var I=Ht(h)?ju:K1,R=arguments.length<3;return I(h,It(g,4),k,R,ZO)}function vve(h,g){var k=Ht(h)?Ca:qO;return k(h,h2(It(g,3)))}function yve(h){var g=Ht(h)?BO:cge;return g(h)}function bve(h,g,k){(k?ta(h,g,k):g===n)?g=1:g=Xt(g);var I=Ht(h)?U0e:dge;return I(h,g)}function xve(h){var g=Ht(h)?B0e:hge;return g(h)}function _ve(h){if(h==null)return 0;if(Ta(h))return m2(h)?hn(h):h.length;var g=Lo(h);return g==Se||g==ct?h.size:TC(h).length}function wve(h,g,k){var I=Ht(h)?jc:pge;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}var kve=sn(function(h,g){if(h==null)return[];var k=g.length;return k>1&&ta(h,g[0],g[1])?g=[]:k>2&&ta(g[0],g[1],g[2])&&(g=[g[0]]),rz(h,vo(g,1),[])}),d2=r0e||function(){return ai.Date.now()};function Sve(h,g){if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){if(--h<1)return g.apply(this,arguments)}}function Xz(h,g,k){return g=k?n:g,g=h&&g==null?h.length:g,Rc(h,E,n,n,n,n,g)}function Jz(h,g){var k;if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){return--h>0&&(k=g.apply(this,arguments)),h<=1&&(g=n),k}}var XC=sn(function(h,g,k){var I=b;if(k.length){var R=Ve(k,Ym(XC));I|=j}return Rc(h,I,g,k,R)}),Qz=sn(function(h,g,k){var I=b|w;if(k.length){var R=Ve(k,Ym(Qz));I|=j}return Rc(g,I,h,k,R)});function eD(h,g,k){g=k?n:g;var I=Rc(h,S,n,n,n,n,n,g);return I.placeholder=eD.placeholder,I}function tD(h,g,k){g=k?n:g;var I=Rc(h,C,n,n,n,n,n,g);return I.placeholder=tD.placeholder,I}function nD(h,g,k){var I,R,V,ne,se,ve,Re=0,Le=!1,Ae=!1,tt=!0;if(typeof h!="function")throw new ar(a);g=Vs(g)||0,Jr(k)&&(Le=!!k.leading,Ae="maxWait"in k,V=Ae?Fi(Vs(k.maxWait)||0,g):V,tt="trailing"in k?!!k.trailing:tt);function pt(yi){var El=I,Dc=R;return I=R=n,Re=yi,ne=h.apply(Dc,El),ne}function Nt(yi){return Re=yi,se=dv(mn,g),Le?pt(yi):ne}function nn(yi){var El=yi-ve,Dc=yi-Re,_D=g-El;return Ae?Ro(_D,V-Dc):_D}function $t(yi){var El=yi-ve,Dc=yi-Re;return ve===n||El>=g||El<0||Ae&&Dc>=V}function mn(){var yi=d2();if($t(yi))return _n(yi);se=dv(mn,nn(yi))}function _n(yi){return se=n,tt&&I?pt(yi):(I=R=n,ne)}function ts(){se!==n&&fz(se),Re=0,I=ve=R=se=n}function na(){return se===n?ne:_n(d2())}function ns(){var yi=d2(),El=$t(yi);if(I=arguments,R=this,ve=yi,El){if(se===n)return Nt(ve);if(Ae)return fz(se),se=dv(mn,g),pt(ve)}return se===n&&(se=dv(mn,g)),ne}return ns.cancel=ts,ns.flush=na,ns}var Cve=sn(function(h,g){return HO(h,1,g)}),jve=sn(function(h,g,k){return HO(h,Vs(g)||0,k)});function Tve(h){return Rc(h,D)}function f2(h,g){if(typeof h!="function"||g!=null&&typeof g!="function")throw new ar(a);var k=function(){var I=arguments,R=g?g.apply(this,I):I[0],V=k.cache;if(V.has(R))return V.get(R);var ne=h.apply(this,I);return k.cache=V.set(R,ne)||V,ne};return k.cache=new(f2.Cache||$c),k}f2.Cache=$c;function h2(h){if(typeof h!="function")throw new ar(a);return function(){var g=arguments;switch(g.length){case 0:return!h.call(this);case 1:return!h.call(this,g[0]);case 2:return!h.call(this,g[0],g[1]);case 3:return!h.call(this,g[0],g[1],g[2])}return!h.apply(this,g)}}function Ive(h){return Jz(2,h)}var Eve=mge(function(h,g){g=g.length==1&&Ht(g[0])?or(g[0],Sn(It())):or(vo(g,1),Sn(It()));var k=g.length;return sn(function(I){for(var R=-1,V=Ro(I.length,k);++R=g}),$h=KO(function(){return arguments}())?KO:function(h){return li(h)&&Jn.call(h,"callee")&&!OO.call(h,"callee")},Ht=we.isArray,Vve=N_?Sn(N_):J0e;function Ta(h){return h!=null&&p2(h.length)&&!Oc(h)}function vi(h){return li(h)&&Ta(h)}function Hve(h){return h===!0||h===!1||li(h)&&ea(h)==ue}var Jd=o0e||uj,Zve=$_?Sn($_):Q0e;function qve(h){return li(h)&&h.nodeType===1&&!fv(h)}function Gve(h){if(h==null)return!0;if(Ta(h)&&(Ht(h)||typeof h=="string"||typeof h.splice=="function"||Jd(h)||Km(h)||$h(h)))return!h.length;var g=Lo(h);if(g==Se||g==ct)return!h.size;if(cv(h))return!TC(h).length;for(var k in h)if(Jn.call(h,k))return!1;return!0}function Yve(h,g){return sv(h,g)}function Kve(h,g,k){k=typeof k=="function"?k:n;var I=k?k(h,g):n;return I===n?sv(h,g,n,k):!!I}function QC(h){if(!li(h))return!1;var g=ea(h);return g==$e||g==ge||typeof h.message=="string"&&typeof h.name=="string"&&!fv(h)}function Xve(h){return typeof h=="number"&&DO(h)}function Oc(h){if(!Jr(h))return!1;var g=ea(h);return g==pe||g==ye||g==he||g==St}function iD(h){return typeof h=="number"&&h==Xt(h)}function p2(h){return typeof h=="number"&&h>-1&&h%1==0&&h<=F}function Jr(h){var g=typeof h;return h!=null&&(g=="object"||g=="function")}function li(h){return h!=null&&typeof h=="object"}var oD=zs?Sn(zs):tge;function Jve(h,g){return h===g||jC(h,g,WC(g))}function Qve(h,g,k){return k=typeof k=="function"?k:n,jC(h,g,WC(g),k)}function eye(h){return aD(h)&&h!=+h}function tye(h){if(Dge(h))throw new xt(o);return XO(h)}function nye(h){return h===null}function rye(h){return h==null}function aD(h){return typeof h=="number"||li(h)&&ea(h)==Ce}function fv(h){if(!li(h)||ea(h)!=Ge)return!1;var g=U_(h);if(g===null)return!0;var k=Jn.call(g,"constructor")&&g.constructor;return typeof k=="function"&&k instanceof k&&z_.call(k)==Qme}var ej=Cl?Sn(Cl):nge;function iye(h){return iD(h)&&h>=-F&&h<=F}var sD=ku?Sn(ku):rge;function m2(h){return typeof h=="string"||!Ht(h)&&li(h)&&ea(h)==bt}function es(h){return typeof h=="symbol"||li(h)&&ea(h)==Qe}var Km=Cc?Sn(Cc):ige;function oye(h){return h===n}function aye(h){return li(h)&&Lo(h)==De}function sye(h){return li(h)&&ea(h)==Dt}var lye=o2(IC),uye=o2(function(h,g){return h<=g});function lD(h){if(!h)return[];if(Ta(h))return m2(h)?Ut(h):ja(h);if(Q1&&h[Q1])return _e(h[Q1]());var g=Lo(h),k=g==Se?Me:g==ct?et:Xm;return k(h)}function zc(h){if(!h)return h===0?h:0;if(h=Vs(h),h===Y||h===-Y){var g=h<0?-1:1;return g*H}return h===h?h:0}function Xt(h){var g=zc(h),k=g%1;return g===g?k?g-k:g:0}function uD(h){return h?Th(Xt(h),0,ce):0}function Vs(h){if(typeof h=="number")return h;if(es(h))return ee;if(Jr(h)){var g=typeof h.valueOf=="function"?h.valueOf():h;h=Jr(g)?g+"":g}if(typeof h!="string")return h===0?h:+h;h=X1(h);var k=Ko.test(h);return k||Bn.test(h)?Ei(h.slice(2),k?2:8):Ya.test(h)?ee:+h}function cD(h){return Eu(h,Ia(h))}function cye(h){return h?Th(Xt(h),-F,F):h===0?h:0}function Wn(h){return h==null?"":Qa(h)}var dye=qm(function(h,g){if(cv(g)||Ta(g)){Eu(g,eo(g),h);return}for(var k in g)Jn.call(g,k)&&iv(h,k,g[k])}),dD=qm(function(h,g){Eu(g,Ia(g),h)}),g2=qm(function(h,g,k,I){Eu(g,Ia(g),h,I)}),fye=qm(function(h,g,k,I){Eu(g,eo(g),h,I)}),hye=Lc(_C);function pye(h,g){var k=Zm(h);return g==null?k:WO(k,g)}var mye=sn(function(h,g){h=tn(h);var k=-1,I=g.length,R=I>2?g[2]:n;for(R&&ta(g[0],g[1],R)&&(I=1);++k1),V}),Eu(h,UC(h),k),I&&(k=Us(k,f|p|v,jge));for(var R=g.length;R--;)RC(k,g[R]);return k});function Rye(h,g){return hD(h,h2(It(g)))}var Lye=Lc(function(h,g){return h==null?{}:sge(h,g)});function hD(h,g){if(h==null)return{};var k=or(UC(h),function(I){return[I]});return g=It(g),iz(h,k,function(I,R){return g(I,R[0])})}function Pye(h,g,k){g=Kd(g,h);var I=-1,R=g.length;for(R||(R=1,h=n);++Ig){var I=h;h=g,g=I}if(k||h%1||g%1){var R=AO();return Ro(h+R*(g-h+Ii("1e-"+((R+"").length-1))),g)}return NC(h,g)}var Zye=Gm(function(h,g,k){return g=g.toLowerCase(),h+(k?gD(g):g)});function gD(h){return rj(Wn(h).toLowerCase())}function vD(h){return h=Wn(h),h&&h.replace(Cr,J1).replace(F1,"")}function qye(h,g,k){h=Wn(h),g=Qa(g);var I=h.length;k=k===n?I:Th(Xt(k),0,I);var R=k;return k-=g.length,k>=0&&h.slice(k,R)==g}function Gye(h){return h=Wn(h),h&&yc.test(h)?h.replace(co,N):h}function Yye(h){return h=Wn(h),h&&$o.test(h)?h.replace(Rr,"\\$&"):h}var Kye=Gm(function(h,g,k){return h+(k?"-":"")+g.toLowerCase()}),Xye=Gm(function(h,g,k){return h+(k?" ":"")+g.toLowerCase()}),Jye=xz("toLowerCase");function Qye(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;if(!g||I>=g)return h;var R=(g-I)/2;return i2(H_(R),k)+h+i2(V_(R),k)}function ebe(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;return g&&I>>0,k?(h=Wn(h),h&&(typeof g=="string"||g!=null&&!ej(g))&&(g=Qa(g),!g&&Q(h))?Xd(Ut(h),0,k):h.split(g,k)):[]}var sbe=Gm(function(h,g,k){return h+(k?" ":"")+rj(g)});function lbe(h,g,k){return h=Wn(h),k=k==null?0:Th(Xt(k),0,h.length),g=Qa(g),h.slice(k,k+g.length)==g}function ube(h,g,k){var I=U.templateSettings;k&&ta(h,g,k)&&(g=n),h=Wn(h),g=g2({},g,I,Tz);var R=g2({},g.imports,I.imports,Tz),V=eo(R),ne=Wm(R,V),se,ve,Re=0,Le=g.interpolate||Ka,Ae="__p += '",tt=Qo((g.escape||Ka).source+"|"+Le.source+"|"+(Le===qa?ii:Ka).source+"|"+(g.evaluate||Ka).source+"|$","g"),pt="//# sourceURL="+(Jn.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Wd+"]")+` +`;h.replace(tt,function($t,mn,_n,ts,na,ns){return _n||(_n=ts),Ae+=h.slice(Re,ns).replace(po,z),mn&&(se=!0,Ae+=`' + +__e(`+mn+`) + +'`),na&&(ve=!0,Ae+=`'; +`+na+`; +__p += '`),_n&&(Ae+=`' + +((__t = (`+_n+`)) == null ? '' : __t) + +'`),Re=ns+$t.length,$t}),Ae+=`'; +`;var Nt=Jn.call(g,"variable")&&g.variable;if(!Nt)Ae=`with (obj) { +`+Ae+` +} +`;else if(nr.test(Nt))throw new xt(s);Ae=(ve?Ae.replace(Ki,""):Ae).replace(No,"$1").replace(Ps,"$1;"),Ae="function("+(Nt||"obj")+`) { +`+(Nt?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(se?", __e = _.escape":"")+(ve?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Ae+`return __p +}`;var nn=bD(function(){return Gt(V,pt+"return "+Ae).apply(n,ne)});if(nn.source=Ae,QC(nn))throw nn;return nn}function cbe(h){return Wn(h).toLowerCase()}function dbe(h){return Wn(h).toUpperCase()}function fbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return X1(h);if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=Ut(g),V=Zd(I,R),ne=O_(I,R)+1;return Xd(I,V,ne).join("")}function hbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.slice(0,an(h)+1);if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=O_(I,Ut(g))+1;return Xd(I,0,R).join("")}function pbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.replace(fo,"");if(!h||!(g=Qa(g)))return h;var I=Ut(h),R=Zd(I,Ut(g));return Xd(I,R).join("")}function mbe(h,g){var k=M,I=O;if(Jr(g)){var R="separator"in g?g.separator:R;k="length"in g?Xt(g.length):k,I="omission"in g?Qa(g.omission):I}h=Wn(h);var V=h.length;if(Q(h)){var ne=Ut(h);V=ne.length}if(k>=V)return h;var se=k-hn(I);if(se<1)return I;var ve=ne?Xd(ne,0,se).join(""):h.slice(0,se);if(R===n)return ve+I;if(ne&&(se+=ve.length-se),ej(R)){if(h.slice(se).search(R)){var Re,Le=ve;for(R.global||(R=Qo(R.source,Wn(Ga.exec(R))+"g")),R.lastIndex=0;Re=R.exec(Le);)var Ae=Re.index;ve=ve.slice(0,Ae===n?se:Ae)}}else if(h.indexOf(Qa(R),se)!=se){var tt=ve.lastIndexOf(R);tt>-1&&(ve=ve.slice(0,tt))}return ve+I}function gbe(h){return h=Wn(h),h&&xa.test(h)?h.replace(zn,Tt):h}var vbe=Gm(function(h,g,k){return h+(k?" ":"")+g.toUpperCase()}),rj=xz("toUpperCase");function yD(h,g,k){return h=Wn(h),g=k?n:g,g===n?de(h)?Hr(h):Z1(h):h.match(g)||[]}var bD=sn(function(h,g){try{return Jo(h,n,g)}catch(k){return QC(k)?k:new xt(k)}}),ybe=Lc(function(h,g){return Sa(g,function(k){k=Nu(k),Mc(h,k,XC(h[k],h))}),h});function bbe(h){var g=h==null?0:h.length,k=It();return h=g?or(h,function(I){if(typeof I[1]!="function")throw new ar(a);return[k(I[0]),I[1]]}):[],sn(function(I){for(var R=-1;++RF)return[];var k=ce,I=Ro(h,ce);g=It(g),h-=ce;for(var R=Hd(I,g);++k0||g<0)?new yn(k):(h<0?k=k.takeRight(-h):h&&(k=k.drop(h)),g!==n&&(g=Xt(g),k=g<0?k.dropRight(-g):k.take(g-h)),k)},yn.prototype.takeRightWhile=function(h){return this.reverse().takeWhile(h).reverse()},yn.prototype.toArray=function(){return this.take(ce)},Iu(yn.prototype,function(h,g){var k=/^(?:filter|find|map|reject)|While$/.test(g),I=/^(?:head|last)$/.test(g),R=U[I?"take"+(g=="last"?"Right":""):g],V=I||/^find/.test(g);R&&(U.prototype[g]=function(){var ne=this.__wrapped__,se=I?[1]:arguments,ve=ne instanceof yn,Re=se[0],Le=ve||Ht(ne),Ae=function(mn){var _n=R.apply(U,Cu([mn],se));return I&&tt?_n[0]:_n};Le&&k&&typeof Re=="function"&&Re.length!=1&&(ve=Le=!1);var tt=this.__chain__,pt=!!this.__actions__.length,Nt=V&&!tt,nn=ve&&!pt;if(!V&&Le){ne=nn?ne:new yn(this);var $t=h.apply(ne,se);return $t.__actions__.push({func:u2,args:[Ae],thisArg:n}),new Fs($t,tt)}return Nt&&nn?h.apply(this,se):($t=this.thru(Ae),Nt?I?$t.value()[0]:$t.value():$t)})}),Sa(["pop","push","shift","sort","splice","unshift"],function(h){var g=Qi[h],k=/^(?:push|sort|unshift)$/.test(h)?"tap":"thru",I=/^(?:pop|shift)$/.test(h);U.prototype[h]=function(){var R=arguments;if(I&&!this.__chain__){var V=this.value();return g.apply(Ht(V)?V:[],R)}return this[k](function(ne){return g.apply(Ht(ne)?ne:[],R)})}}),Iu(yn.prototype,function(h,g){var k=U[g];if(k){var I=k.name+"";Jn.call(Hm,I)||(Hm[I]=[]),Hm[I].push({name:g,func:k})}}),Hm[n2(n,w).name]=[{name:"wrapper",func:n}],yn.prototype.clone=g0e,yn.prototype.reverse=v0e,yn.prototype.value=y0e,U.prototype.at=q1e,U.prototype.chain=G1e,U.prototype.commit=Y1e,U.prototype.next=K1e,U.prototype.plant=J1e,U.prototype.reverse=Q1e,U.prototype.toJSON=U.prototype.valueOf=U.prototype.value=eve,U.prototype.first=U.prototype.head,Q1&&(U.prototype[Q1]=X1e),U},xn=$i();Mo?((Mo.exports=xn)._=xn,U1._=xn):ai._=xn}).call(Ac)}(Sk,Sk.exports);var rt=Sk.exports;const Aa=fe(void 0),Fze=fe(null,(e,t,n)=>{var c;const r=e(fi);if(!r)return;if(n=n.trim(),!n){t(Aa,void 0),t(An,void 0);return}const i=parseInt(n,10);if(!isNaN(i)&&i>=r.start_slot&&i<=r.end_slot){t(Aa,void 0),t(An,i);return}if(n.length<3){t(Aa,[]),t(An,void 0);return}const o=n.split(",").map(d=>d.trim().toLowerCase()).filter(d=>!!d),a=Object.entries(qte).reduce((d,[f,p])=>(o.some(v=>p.toLowerCase().includes(v))&&d.add(parseInt(f)),d),new Set),s=(c=e(gDe))==null?void 0:c.filter(({name:d,pubkey:f,clientId:p})=>p!=null&&a.has(p)||o.some(v=>(d==null?void 0:d.includes(v))||f.toLowerCase().includes(v))).map(({pubkey:d})=>d);if(!(s!=null&&s.length)){t(Aa,[]),t(An,void 0);return}const l=s.flatMap(d=>FN(r,d)).sort();t(Aa,l)}),Uze=fe(null,(e,t)=>{const n=e(Aa);if(!n)return;const r=e(An),i=e(eu),o=n.map(l=>Math.abs(l-(r??i??0))),a=Math.min(...o),s=Math.max(o.indexOf(a),0);t(An,n[s])}),Bze=fe(null,(e,t,n)=>{const r=e(An),i=e(Aa),o=e(eu);if(o!==void 0)if(i!=null&&i.length)if(r!==void 0){const a=i.map(c=>Math.abs(c-r)),s=Math.min(...a),l=Math.max(a.indexOf(s),0);if(l>=0){const c=Math.min(Math.max(l+Math.trunc(n/4),0),i.length-1);t(An,i[c])}}else t(Uze);else r!==void 0?t(An,r+n):t(An,n+o+$n*3)});var Kf=(e=>(e.Valid="valid",e.NotReady="invalid",e.OutsideEpoch="outside-epoch",e.BeforeFirstProcessed="before-first-processed",e.Future="future",e.NotYou="not-you",e))(Kf||{});function Wze(e,t,n,r,i){return e===void 0?"valid":!t||!n||r===void 0||i===void 0?"invalid":e=i?"future":"valid":"not-you"}const gd=function(){const e=fe(),t=fe(n=>{const r=n(fi),i=n(e),o=n(ao),a=n(Xf),s=n(oo);return Wze(i,r,o,a,s)});return{slot:e,state:t,isValid:fe(n=>n(t)==="valid")}}(),Cn=fe(e=>e(gd.isValid)?e(gd.slot):void 0);var Io=(e=>(e.Count="Count",e.Pct="Pct %",e.Rate="Rate",e))(Io||{});const Cg=fe("Count"),Vze=fe(e=>{if(!e(Cn))return e(l3)}),Hze=fe(e=>{const t=e(Vze),n=e(rg);return t==null?void 0:t.reduce((r,i,o)=>{var l;const a=n==null?void 0:n[o];if(!a)return r;const s=$E.safeParse(a.kind);return s.error||(r[l=s.data]??(r[l]=[]),r[s.data].push(i)),r},{})}),Zze=fe(e=>{const t=e(rg),n=["snapld","snapdc","snapin"];if(!t)return;const r=t.reduce((i,o,a)=>{const s=$E.safeParse(o.kind);if(s.error||!n.includes(s.data))return i;const l=i.get(s.data)??[];return l.push(a),i.set(s.data,l),i},new Map);return Array.from(r.entries()).map(([i,o])=>[i,o])}),qze=fe(e=>{const t=e(l3),n=e(Zze);if(!(!t||!n))return n.reduce((r,[i,o])=>(r[i]=o.map(a=>t[a]),r),{})}),Gze=fe(e=>{var t;return e(Cn)?void 0:e(Cg)==="Rate"?e(cre):(t=e(kG))==null?void 0:t.waterfall}),ure=Co([]),cre=fe(e=>{var o;if(e(Cg)!=="Rate")return;const t=e(ure);if(t.length<2)return(o=t[0])==null?void 0:o.waterfall;const n=t[t.length-1],r=t[0],i=(n.ts-r.ts)/1e3;return sG(n.waterfall,a=>{for(const s in a.in)if(Object.prototype.hasOwnProperty.call(a.in,s)){const l=a.in[s]-r.waterfall.in[s];a.in[s]=Math.trunc(l/i)}for(const s in a.out)if(Object.prototype.hasOwnProperty.call(a.out,s)){const l=a.out[s]-r.waterfall.out[s];a.out[s]=Math.trunc(l/i)}})},(e,t,n)=>{t(ure,r=>{const i=performance.now();for(n&&r.push({waterfall:n,ts:i});r.length&&i-r[0].ts>1e3;)r.shift();const o=Object.values(r[r.length-1].waterfall.in);for(;r.length>1&&Object.values(r[0].waterfall.in).some((a,s)=>o[s]-a<0);)r.shift()})}),Nb=fe(e=>{const t=e(rg),n=rt.countBy(t,r=>r.kind);return Object.fromEntries($E.options.map(r=>[r,n[r]??0]))}),Yze={};function qN(e,t){let n=null;const r=new Map,i=new Set,o=s=>{let l;if(l=r.get(s),l!==void 0)if(n!=null&&n(l[1],s))o.remove(s);else return l[0];const c=e(s);return r.set(s,[c,Date.now()]),a("CREATE",s,c),c},a=(s,l,c)=>{for(const d of i)d({type:s,param:l,atom:c})};return o.unstable_listen=s=>(i.add(s),()=>{i.delete(s)}),o.getParams=()=>r.keys(),o.remove=s=>{{if(!r.has(s))return;const[l]=r.get(s);r.delete(s),a("REMOVE",s,l)}},o.setShouldRemove=s=>{if(n=s,!!n)for(const[l,[c,d]]of r)n(d,l)&&(r.delete(l),a("REMOVE",l,c))},o}const Kze=e=>typeof(e==null?void 0:e.then)=="function";function Xze(e=()=>{try{return window.localStorage}catch(n){(Yze?"production":void 0)!=="production"&&typeof window<"u"&&console.warn(n);return}},t){var n;let r,i;const o={getItem:(l,c)=>{var d,f;const p=x=>{if(x=x||"",r!==x){try{i=JSON.parse(x,t==null?void 0:t.reviver)}catch{return c}r=x}return i},v=(f=(d=e())==null?void 0:d.getItem(l))!=null?f:null;return Kze(v)?v.then(p):p(v)},setItem:(l,c)=>{var d;return(d=e())==null?void 0:d.setItem(l,JSON.stringify(c,void 0))},removeItem:l=>{var c;return(c=e())==null?void 0:c.removeItem(l)}},a=l=>(c,d,f)=>l(c,p=>{let v;try{v=JSON.parse(p||"")}catch{v=f}d(v)});let s;try{s=(n=e())==null?void 0:n.subscribe}catch{}return!s&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(s=(l,c)=>{if(!(e()instanceof window.Storage))return()=>{};const d=f=>{f.storageArea===e()&&f.key===l&&c(f.newValue)};return window.addEventListener("storage",d),()=>{window.removeEventListener("storage",d)}}),s&&(o.subscribe=a(s)),o}Xze();const GN=3,jg=fe();fe();const Jze=fe(!1),dre=fe(),Ck=Co([]),fi=fe(e=>{const t=e(oo),n=e(Ck);if(!n.length||t===void 0)return;const r=n.find(({start_slot:i,end_slot:o})=>t>=i&&t<=o);if(r)return r},(e,t,n)=>{t(Ck,r=>{r.findIndex(i=>i.epoch===n.epoch)===-1&&r.push(n)})}),Qze=fe(null,(e,t,n)=>{t(Ck,r=>r.filter(({epoch:i})=>i>=n))}),eDe=fe(e=>{const t=e(fi);return t?e(Ck).find(n=>n.epoch===(t==null?void 0:t.epoch)+1):void 0}),[An,tDe]=function(){const e=fe();return[fe(t=>t(e),(t,n,r)=>{const i=t(fi);if(!i)return;const o=r===void 0?void 0:rt.clamp(_i(r),i.start_slot,i.end_slot);n(e,o)}),fe(t=>t(e)===void 0)]}(),YN=Co({}),nDe=Gf(e=>fe(t=>e!==void 0&&t(YN)[e]||"incomplete"),{maxSize:1e3});var $b=(e=>(e.AllSlots="All Slots",e.MySlots="My Slots",e))($b||{});const Tg=function(){const e=fe();return fe(t=>t(e)??"All Slots",(t,n,r)=>{n(e,r);const i=t(Cn);n(An,i??void 0)})}(),rDe=fe(null,(e,t,n,r)=>{(r==="completed"||r==="optimistically_confirmed"||r==="rooted")&&t(oo,n+1),t(YN,i=>{i[n]=r})}),fre=10,iDe=fe(e=>{const t=e(ao),n=e(Cn);if(t===void 0||n===void 0)return;const r=t.indexOf(_i(n));if(r!==-1)return t.slice(Math.max(r-fre,0),r+fre)}),jk=1e3,oDe=fe(null,(e,t)=>{const n=e(An),r=e(iDe),i=e(oo),o=e(Aa),a=e(ao),s=e(Tg),l=n??i;l!==void 0&&t(YN,c=>{const d=l-jk/2,f=l+jk/2,p=Object.keys(c);for(const v of p){const x=Number(v),y=_i(x);o!=null&&o.includes(y)||r!=null&&r.includes(y)||s==="My Slots"&&(a!=null&&a.includes(y))||!isNaN(x)&&(xf)&&delete c[x]}})}),Tk=Co({}),KN=qN(e=>fe(t=>{var n;return e!==void 0?(n=t(Tk)[e])==null?void 0:n.publish:void 0})),hre=qN(e=>fe(t=>e!==void 0?t(Tk)[e]:void 0)),aDe=fe(null,(e,t,n)=>{const r=n.publish.slot;t(Tk,i=>{var o,a,s,l,c,d,f;n.transactions??(n.transactions=(o=i[r])==null?void 0:o.transactions),n.tile_primary_metric??(n.tile_primary_metric=(a=i[r])==null?void 0:a.tile_primary_metric),n.tile_timers??(n.tile_timers=(s=i[r])==null?void 0:s.tile_timers),n.waterfall??(n.waterfall=(l=i[r])==null?void 0:l.waterfall),n.scheduler_counts??(n.scheduler_counts=(c=i[r])==null?void 0:c.scheduler_counts),n.limits??(n.limits=(d=i[r])==null?void 0:d.limits),n.scheduler_stats??(n.scheduler_stats=(f=i[r])==null?void 0:f.scheduler_stats),i[r]=n})}),sDe=fe(null,(e,t)=>{const n=e(An),r=e(Cn),i=e(oo),o=e(Aa),a=n??i,s=e(Tg),l=e(ao),{earliestQuickSlots:c,mostRecentQuickSlots:d}=e(Tre);a!==void 0&&t(Tk,f=>{const p=a-jk/2,v=a+jk/2,x=Object.keys(f);for(const y of x){const b=Number(y),w=_i(b);o!=null&&o.length&&o.includes(w)||r!==void 0&&w===_i(r)||s==="My Slots"&&(l!=null&&l.includes(w))||c&&c.includes(b)||d&&d.includes(b)||!isNaN(b)&&(bv)&&(delete f[b],KN.remove(b))}})}),Xf=fe(e=>{var t;if(xi){const n=e(Zu);return(n==null?void 0:n.ledger_max_slot)==null?void 0:n.ledger_max_slot+1}return((t=e(Hl))==null?void 0:t.catching_up_first_replay_slot)??void 0}),pre=fe(e=>{const t=e(ao),n=e(Xf);if(!t||n===void 0)return;const r=t.findIndex(i=>i>=n);return r!==-1?r:void 0});fe(e=>{const t=e(ao),n=e(pre);return n?t==null?void 0:t[n]:void 0});const XN=fe(e=>{const t=e(ao),n=e(Mb);return n?t==null?void 0:t[n-1]:void 0}),mre=fe(void 0),oo=fe(e=>e(mre),(e,t,n)=>{const r=e(Rb);(r===void 0||n>=r)&&t(Rb,n),t(mre,i=>Math.max(n,i??0))}),ao=fe(e=>{const t=e(fi),n=e(cp);if(!(!t||!n))return FN(t,n)}),lDe=fe(e=>{const t=e(eDe),n=e(cp);if(!(!t||!n))return FN(t,n)}),Mb=fe(void 0),Rb=fe(e=>{const t=e(ao),n=e(Mb);if(!(!t||n===void 0))return t[n]},(e,t,n)=>{const r=e(ao);r!=null&&t(Mb,i=>{let o=i??0;for((r[o-1]??0)>n&&(o=0);o=r.length))return o})}),uDe=fe(e=>{const t=e(lDe);if(t)return t[0]}),gre=fe(e=>{const t=e(ao),n=e(Mb);if(t)return n===void 0?t[t.length-1]:t[n-1]}),cDe=fe(e=>{const t=e(oo),n=e(gre);return t===void 0||n===void 0?!1:t>=n&&t<=n+$n}),eu=fe(e=>{const t=e(oo);if(t!=null)return _i(t)}),Ku=Co({}),JN=fe(e=>Object.values(e(Ku))),dDe=fe(e=>e(JN).length),vre=qN(e=>fe(t=>e!==void 0?t(Ku)[e]:void 0)),fDe=fe(null,(e,t,n)=>{n!=null&&n.length&&t(Ku,r=>{for(const i of n)r[i.identity_pubkey]?r[i.identity_pubkey]=rt.merge(r[i.identity_pubkey],i):r[i.identity_pubkey]=i})}),hDe=6e4*5,pDe=fe(null,(e,t,n)=>{n!=null&&n.length&&(t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&(r[i.identity_pubkey].removed=!0,vre.remove(i.identity_pubkey))}),setTimeout(()=>{t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&delete r[i.identity_pubkey]})},hDe))}),Ig=fe(e=>{const t=e(Ku);if(!t)return;const n=Object.values(t).filter(s=>!s.removed),r=n.filter(s=>s.vote.every(l=>!l.activated_stake)&&!!s.gossip),i=n.filter(s=>s.vote.some(l=>l.activated_stake)),o=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c:c+d.activated_stake,0n)+s,0n),a=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c+d.activated_stake:c,0n)+s,0n);return{rpcCount:r.length,validatorCount:i.length,activeStake:o,delinquentStake:a}}),yre=fe(e=>{const t=e(Ig);if(t&&t.activeStake+t.delinquentStake)return t.activeStake+t.delinquentStake}),bre=fe(e=>{const t=e(Ku),n=e(cp),r=e(Ig);if(!t||!n||!r)return;const i=t[n];if(i)return nre(i)}),mDe=fe(e=>{const t=e(yre),n=e(bre);if(!(n===void 0||!t))return Number(n)/Number(t)*100}),xre=fe(e=>{const t=e(fi),n=e(Ku),r=e(dDe);if(!(!t||r===0))return{epoch:t,peers:n}}),gDe=fe(e=>{const t=e(xre);if(!t)return;const{epoch:n,peers:r}=t;return[...new Set(n.leader_slots.map(i=>n.staked_pubkeys[i]))].map(i=>{var o,a,s,l,c;return{pubkey:i,name:(s=(a=(o=r[i])==null?void 0:o.info)==null?void 0:a.name)==null?void 0:s.toLowerCase(),clientId:(c=(l=r[i])==null?void 0:l.gossip)==null?void 0:c.client_id}})}),QN=function(){const e=Co(void 0);return fe(t=>t(e),(t,n,r)=>{const i=new Map;for(let o=0;oi(e)),fe(null,(i,o,a,s)=>{if(o(e,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)}),!i(t))o(t,!0),o(n,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)});else if(a.length>0||s.length>0){const l=Date.now(),c={addPeers:a,removePeers:s,timestamp:l};o(r,d=>{d.push(c)})}}),fe(i=>{const o=i(n),a=i(e);let s=0;for(const l of o)a.has(l)||s++;return{online:a.size+s-o.size,offline:s}}),fe(null,(i,o)=>{const a=i(r);if(a.length===0)return;const s=Date.now()-_re,l=a.findIndex(d=>d.timestamp>=s);if(l===0)return;const c=l===-1?a.length:l;o(n,d=>{for(let f=0;fl===-1?[]:d.slice(l))}),fe(null,(i,o)=>{o(e,new Set),o(t,!1),o(n,new Set),o(r,[])})]}(),_De=fe(e=>{var i;const t=new Set,n=(i=e(QN))==null?void 0:i.keys();if(!n)return t;const r=e(wre);for(const o of n)r.has(o)||t.add(o);return t}),wDe=Gf(e=>fe(t=>{if(e===void 0)return!0;const n=t(oo);return n===void 0||e>=n}),{maxSize:1e3}),Eg=fe(e=>{const t=e(xG);if(!t)return 300;const n=Math.trunc(t/1e6);return Math.max(50,Math.min(n,1e3*10))}),kre=Co({}),Sre=fe(e=>{const t=e(fi);if(t)return e(kre)[t.epoch]},(e,t,n)=>{t(kre,r=>{r[n.epoch]=n})}),kDe=fe(e=>{const t=e(oo);if(t===void 0)return null;const n=e(An);return n===void 0?"Live":_i(n)===_i(t)?"Current":n>t?"Future":"Past"}),[Ik,SDe,CDe,jDe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{n(e,i=>{for(const o of r)i.add(o)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r,i)=>{n(e,o=>{const a=new Set;for(const s of o)si||a.add(s);return a})})]}(),Cre=fe(e=>{const t=e(gG);if(t!=null)return Math.round(t/sN)}),[jre,TDe,IDe,EDe,NDe]=function(){const e=Co(new Map);return[fe(t=>{const n=t(e),r=t(Ik),i=new Set;for(const[o,a]of n){if(a===null){i.add(o);continue}rre(o,a,r)>1&&i.add(o)}return i}),fe(null,(t,n,r,i)=>{n(e,o=>{o.set(r,i)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r)=>{n(e,i=>{if(!r){i.clear();return}const o=[];i.forEach((a,s)=>{(si.delete(a))})}),fe(null,(t,n,r)=>{const i=new Map;let o=0;for(let a=0;a{const t=e(ao),n=e(pre),r=e(Mb);if(!t||n===void 0)return{};const i=t.slice(n,r);return{earliestQuickSlots:i.slice(0,GN),mostRecentQuickSlots:i.slice(-GN).toReversed()}});function $De(){const e=J(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_incremental_snapshot_current_bytes,totalBytes:e.downloading_incremental_snapshot_total_bytes,remainingSecs:e.downloading_incremental_snapshot_remaining_secs})}var e$=Pb(),qt=e=>Lb(e,e$),t$=Pb();qt.write=e=>Lb(e,t$);var Ek=Pb();qt.onStart=e=>Lb(e,Ek);var n$=Pb();qt.onFrame=e=>Lb(e,n$);var r$=Pb();qt.onFinish=e=>Lb(e,r$);var Ng=[];qt.setTimeout=(e,t)=>{const n=qt.now()+t,r=()=>{const o=Ng.findIndex(a=>a.cancel==r);~o&&Ng.splice(o,1),Qf-=~o?1:0},i={time:n,handler:e,cancel:r};return Ng.splice(Ire(n),0,i),Qf+=1,Ere(),i};var Ire=e=>~(~Ng.findIndex(t=>t.time>e)||~Ng.length);qt.cancel=e=>{Ek.delete(e),n$.delete(e),r$.delete(e),e$.delete(e),t$.delete(e)},qt.sync=e=>{o$=!0,qt.batchedUpdates(e),o$=!1},qt.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...i){t=i,qt.onStart(n)}return r.handler=e,r.cancel=()=>{Ek.delete(n),t=null},r};var i$=typeof window<"u"?window.requestAnimationFrame:()=>{};qt.use=e=>i$=e,qt.now=typeof performance<"u"?()=>performance.now():Date.now,qt.batchedUpdates=e=>e(),qt.catch=console.error,qt.frameLoop="always",qt.advance=()=>{qt.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):$re()};var Jf=-1,Qf=0,o$=!1;function Lb(e,t){o$?(t.delete(e),e(0)):(t.add(e),Ere())}function Ere(){Jf<0&&(Jf=0,qt.frameLoop!=="demand"&&i$(Nre))}function MDe(){Jf=-1}function Nre(){~Jf&&(i$(Nre),qt.batchedUpdates($re))}function $re(){const e=Jf;Jf=qt.now();const t=Ire(Jf);if(t&&(Mre(Ng.splice(0,t),n=>n.handler()),Qf-=t),!Qf){MDe();return}Ek.flush(),e$.flush(e?Math.min(64,Jf-e):16.667),n$.flush(),t$.flush(),r$.flush()}function Pb(){let e=new Set,t=e;return{add(n){Qf+=t==e&&!e.has(n)?1:0,e.add(n)},delete(n){return Qf-=t==e&&e.has(n)?1:0,e.delete(n)},flush(n){t.size&&(e=new Set,Qf-=t.size,Mre(t,r=>r(n)&&e.add(r)),Qf+=e.size,t=e)}}}function Mre(e,t){e.forEach(n=>{try{t(n)}catch(r){qt.catch(r)}})}var RDe=Object.defineProperty,LDe=(e,t)=>{for(var n in t)RDe(e,n,{get:t[n],enumerable:!0})},tu={};LDe(tu,{assign:()=>ODe,colors:()=>eh,createStringInterpolator:()=>l$,skipAnimation:()=>Lre,to:()=>Rre,willAdvance:()=>u$});function a$(){}var PDe=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),He={arr:Array.isArray,obj:e=>!!e&&e.constructor.name==="Object",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",und:e=>e===void 0};function vd(e,t){if(He.arr(e)){if(!He.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function Xu(e,t,n){if(He.arr(e)){for(let r=0;rHe.und(e)?[]:He.arr(e)?e:[e];function Ob(e,t){if(e.size){const n=Array.from(e);e.clear(),Ft(n,t)}}var zb=(e,...t)=>Ob(e,n=>n(...t)),s$=()=>typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),l$,Rre,eh=null,Lre=!1,u$=a$,ODe=e=>{e.to&&(Rre=e.to),e.now&&(qt.now=e.now),e.colors!==void 0&&(eh=e.colors),e.skipAnimation!=null&&(Lre=e.skipAnimation),e.createStringInterpolator&&(l$=e.createStringInterpolator),e.requestAnimationFrame&&qt.use(e.requestAnimationFrame),e.batchedUpdates&&(qt.batchedUpdates=e.batchedUpdates),e.willAdvance&&(u$=e.willAdvance),e.frameLoop&&(qt.frameLoop=e.frameLoop)},Db=new Set,ul=[],c$=[],Nk=0,$k={get idle(){return!Db.size&&!ul.length},start(e){Nk>e.priority?(Db.add(e),qt.onStart(zDe)):(Pre(e),qt(d$))},advance:d$,sort(e){if(Nk)qt.onFrame(()=>$k.sort(e));else{const t=ul.indexOf(e);~t&&(ul.splice(t,1),Ore(e))}},clear(){ul=[],Db.clear()}};function zDe(){Db.forEach(Pre),Db.clear(),qt(d$)}function Pre(e){ul.includes(e)||Ore(e)}function Ore(e){ul.splice(DDe(ul,t=>t.priority>e.priority),0,e)}function d$(e){const t=c$;for(let n=0;n0}function DDe(e,t){const n=e.findIndex(t);return n<0?e.length:n}var ADe={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},nu="[-+]?\\d*\\.?\\d+",Mk=nu+"%";function Rk(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var FDe=new RegExp("rgb"+Rk(nu,nu,nu)),UDe=new RegExp("rgba"+Rk(nu,nu,nu,nu)),BDe=new RegExp("hsl"+Rk(nu,Mk,Mk)),WDe=new RegExp("hsla"+Rk(nu,Mk,Mk,nu)),VDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,HDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ZDe=/^#([0-9a-fA-F]{6})$/,qDe=/^#([0-9a-fA-F]{8})$/;function GDe(e){let t;return typeof e=="number"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=ZDe.exec(e))?parseInt(t[1]+"ff",16)>>>0:eh&&eh[e]!==void 0?eh[e]:(t=FDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|255)>>>0:(t=UDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|Are(t[4]))>>>0:(t=VDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=qDe.exec(e))?parseInt(t[1],16)>>>0:(t=HDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=BDe.exec(e))?(zre(Dre(t[1]),Lk(t[2]),Lk(t[3]))|255)>>>0:(t=WDe.exec(e))?(zre(Dre(t[1]),Lk(t[2]),Lk(t[3]))|Are(t[4]))>>>0:null}function f$(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function zre(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,o=f$(i,r,e+1/3),a=f$(i,r,e),s=f$(i,r,e-1/3);return Math.round(o*255)<<24|Math.round(a*255)<<16|Math.round(s*255)<<8}function $g(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Dre(e){return(parseFloat(e)%360+360)%360/360}function Are(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function Lk(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Fre(e){let t=GDe(e);if(t===null)return e;t=t||0;const n=(t&4278190080)>>>24,r=(t&16711680)>>>16,i=(t&65280)>>>8,o=(t&255)/255;return`rgba(${n}, ${r}, ${i}, ${o})`}var Ab=(e,t,n)=>{if(He.fun(e))return e;if(He.arr(e))return Ab({range:e,output:t,extrapolate:n});if(He.str(e.output[0]))return l$(e);const r=e,i=r.output,o=r.range||[0,1],a=r.extrapolateLeft||r.extrapolate||"extend",s=r.extrapolateRight||r.extrapolate||"extend",l=r.easing||(c=>c);return c=>{const d=KDe(c,o);return YDe(c,o[d],o[d+1],i[d],i[d+1],l,a,s,r.map)}};function YDe(e,t,n,r,i,o,a,s,l){let c=l?l(e):e;if(cn){if(s==="identity")return c;s==="clamp"&&(c=n)}return r===i?r:t===n?e<=t?r:i:(t===-1/0?c=-c:n===1/0?c=c-t:c=(c-t)/(n-t),c=o(c),r===-1/0?c=-c:i===1/0?c=c+r:c=c*(i-r)+r,c)}function KDe(e,t){for(var n=1;n=e);++n);return n-1}var XDe={linear:e=>e},Fb=Symbol.for("FluidValue.get"),Mg=Symbol.for("FluidValue.observers"),cl=e=>!!(e&&e[Fb]),Fa=e=>e&&e[Fb]?e[Fb]():e,Ure=e=>e[Mg]||null;function JDe(e,t){e.eventObserved?e.eventObserved(t):e(t)}function Ub(e,t){const n=e[Mg];n&&n.forEach(r=>{JDe(r,t)})}var Bre=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");QDe(this,e)}},QDe=(e,t)=>Wre(e,Fb,t);function Rg(e,t){if(e[Fb]){let n=e[Mg];n||Wre(e,Mg,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function Bb(e,t){const n=e[Mg];if(n&&n.has(t)){const r=n.size-1;r?n.delete(t):e[Mg]=null,e.observerRemoved&&e.observerRemoved(r,t)}}var Wre=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Pk=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,eAe=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,Vre=new RegExp(`(${Pk.source})(%|[a-z]+)`,"i"),tAe=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,Ok=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,Hre=e=>{const[t,n]=nAe(e);if(!t||s$())return e;const r=window.getComputedStyle(document.documentElement).getPropertyValue(t);return r?r.trim():n&&n.startsWith("--")?window.getComputedStyle(document.documentElement).getPropertyValue(n)||e:n&&Ok.test(n)?Hre(n):n||e},nAe=e=>{const t=Ok.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]},h$,rAe=(e,t,n,r,i)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(r)}, ${i})`,Zre=e=>{h$||(h$=eh?new RegExp(`(${Object.keys(eh).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map(i=>Fa(i).replace(Ok,Hre).replace(eAe,Fre).replace(h$,Fre)),n=t.map(i=>i.match(Pk).map(Number)),r=n[0].map((i,o)=>n.map(a=>{if(!(o in a))throw Error('The arity of each "output" value must be equal');return a[o]})).map(i=>Ab({...e,output:i}));return i=>{var s;const o=!Vre.test(t[0])&&((s=t.find(l=>Vre.test(l)))==null?void 0:s.replace(Pk,""));let a=0;return t[0].replace(Pk,()=>`${r[a++](i)}${o||""}`).replace(tAe,rAe)}},p$="react-spring: ",qre=e=>{const t=e;let n=!1;if(typeof t!="function")throw new TypeError(`${p$}once requires a function parameter`);return(...r)=>{n||(t(...r),n=!0)}},iAe=qre(console.warn);function oAe(){iAe(`${p$}The "interpolate" function is deprecated in v9 (use "to" instead)`)}var aAe=qre(console.warn);function sAe(){aAe(`${p$}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function zk(e){return He.str(e)&&(e[0]=="#"||/\d/.test(e)||!s$()&&Ok.test(e)||e in(eh||{}))}var Cp=s$()?m.useEffect:m.useLayoutEffect,lAe=()=>{const e=m.useRef(!1);return Cp(()=>(e.current=!0,()=>{e.current=!1}),[]),e};function m$(){const e=m.useState()[1],t=lAe();return()=>{t.current&&e(Math.random())}}function uAe(e,t){const[n]=m.useState(()=>({inputs:t,result:e()})),r=m.useRef(),i=r.current;let o=i;return o?t&&o.inputs&&cAe(t,o.inputs)||(o={inputs:t,result:e()}):o=n,m.useEffect(()=>{r.current=o,i==n&&(n.inputs=n.result=void 0)},[o]),o.result}function cAe(e,t){if(e.length!==t.length)return!1;for(let n=0;nm.useEffect(e,dAe),dAe=[];function v$(e){const t=m.useRef();return m.useEffect(()=>{t.current=e}),t.current}var Wb=Symbol.for("Animated:node"),fAe=e=>!!e&&e[Wb]===e,Ju=e=>e&&e[Wb],y$=(e,t)=>PDe(e,Wb,t),Dk=e=>e&&e[Wb]&&e[Wb].getPayload(),Gre=class{constructor(){y$(this,this)}getPayload(){return this.payload||[]}},Vb=class extends Gre{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,He.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Vb(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return He.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value===e?!1:(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,He.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Hb=class extends Vb{constructor(e){super(0),this._string=null,this._toString=Ab({output:[e,e]})}static create(e){return new Hb(e)}getValue(){return this._string??(this._string=this._toString(this._value))}setValue(e){if(He.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else if(super.setValue(e))this._string=null;else return!1;return!0}reset(e){e&&(this._toString=Ab({output:[this.getValue(),e]})),this._value=0,super.reset()}},Ak={dependencies:null},Fk=class extends Gre{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return Xu(this.source,(n,r)=>{fAe(n)?t[r]=n.getValue(e):cl(n)?t[r]=Fa(n):e||(t[r]=n)}),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&Ft(this.payload,e=>e.reset())}_makePayload(e){if(e){const t=new Set;return Xu(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Ak.dependencies&&cl(e)&&Ak.dependencies.add(e);const t=Dk(e);t&&Ft(t,n=>this.add(n))}},Yre=class extends Fk{constructor(e){super(e)}static create(e){return new Yre(e)}getValue(){return this.source.map(e=>e.getValue())}setValue(e){const t=this.getPayload();return e.length==t.length?t.map((n,r)=>n.setValue(e[r])).some(Boolean):(super.setValue(e.map(hAe)),!0)}};function hAe(e){return(zk(e)?Hb:Vb).create(e)}function b$(e){const t=Ju(e);return t?t.constructor:He.arr(e)?Yre:zk(e)?Hb:Vb}var Kre=(e,t)=>{const n=!He.fun(e)||e.prototype&&e.prototype.isReactComponent;return m.forwardRef((r,i)=>{const o=m.useRef(null),a=n&&m.useCallback(x=>{o.current=gAe(i,x)},[i]),[s,l]=mAe(r,t),c=m$(),d=()=>{const x=o.current;n&&!x||(x?t.applyAnimatedValues(x,s.getValue(!0)):!1)===!1&&c()},f=new pAe(d,l),p=m.useRef();Cp(()=>(p.current=f,Ft(l,x=>Rg(x,f)),()=>{p.current&&(Ft(p.current.deps,x=>Bb(x,p.current)),qt.cancel(p.current.update))})),m.useEffect(d,[]),g$(()=>()=>{const x=p.current;Ft(x.deps,y=>Bb(y,x))});const v=t.getComponentProps(s.getValue());return m.createElement(e,{...v,ref:a})})},pAe=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){e.type=="change"&&qt.write(this.update)}};function mAe(e,t){const n=new Set;return Ak.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)}),e=new Fk(e),Ak.dependencies=null,[e,n]}function gAe(e,t){return e&&(He.fun(e)?e(t):e.current=t),t}var Xre=Symbol.for("AnimatedComponent"),vAe=(e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:n=i=>new Fk(i),getComponentProps:r=i=>i}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:r},o=a=>{const s=Jre(a)||"Anonymous";return He.str(a)?a=o[a]||(o[a]=Kre(a,i)):a=a[Xre]||(a[Xre]=Kre(a,i)),a.displayName=`Animated(${s})`,a};return Xu(e,(a,s)=>{He.arr(e)&&(s=Jre(a)),o[s]=o(a)}),{animated:o}},Jre=e=>He.str(e)?e:e&&He.str(e.displayName)?e.displayName:He.fun(e)&&e.name||null;function Ua(e,...t){return He.fun(e)?e(...t):e}var Zb=(e,t)=>e===!0||!!(t&&e&&(He.fun(e)?e(t):ha(e).includes(t))),Qre=(e,t)=>He.obj(e)?t&&e[t]:e,eie=(e,t)=>e.default===!0?e[t]:e.default?e.default[t]:void 0,yAe=e=>e,Uk=(e,t=yAe)=>{let n=bAe;e.default&&e.default!==!0&&(e=e.default,n=Object.keys(e));const r={};for(const i of n){const o=t(e[i],i);He.und(o)||(r[i]=o)}return r},bAe=["config","onProps","onStart","onChange","onPause","onResume","onRest"],xAe={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function _Ae(e){const t={};let n=0;if(Xu(e,(r,i)=>{xAe[i]||(t[i]=r,n++)}),n)return t}function x$(e){const t=_Ae(e);if(t){const n={to:t};return Xu(e,(r,i)=>i in t||(n[i]=r)),n}return{...e}}function qb(e){return e=Fa(e),He.arr(e)?e.map(qb):zk(e)?tu.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function tie(e){for(const t in e)return!0;return!1}function _$(e){return He.fun(e)||He.arr(e)&&He.obj(e[0])}function w$(e,t){var n;(n=e.ref)==null||n.delete(e),t==null||t.delete(e)}function nie(e,t){var n;t&&e.ref!==t&&((n=e.ref)==null||n.delete(e),t.add(e),e.ref=t)}var k$={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}},S$={...k$.default,mass:1,damping:1,easing:XDe.linear,clamp:!1},wAe=class{constructor(){this.velocity=0,Object.assign(this,S$)}};function kAe(e,t,n){n&&(n={...n},rie(n,t),t={...n,...t}),rie(e,t),Object.assign(e,t);for(const a in S$)e[a]==null&&(e[a]=S$[a]);let{frequency:r,damping:i}=e;const{mass:o}=e;return He.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*o,e.friction=4*Math.PI*i*o/r),e}function rie(e,t){if(!He.und(t.decay))e.duration=void 0;else{const n=!He.und(t.tension)||!He.und(t.friction);(n||!He.und(t.frequency)||!He.und(t.damping)||!He.und(t.mass))&&(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}}var iie=[],SAe=class{constructor(){this.changed=!1,this.values=iie,this.toValues=null,this.fromValues=iie,this.config=new wAe,this.immediate=!1}};function oie(e,{key:t,props:n,defaultProps:r,state:i,actions:o}){return new Promise((a,s)=>{let l,c,d=Zb(n.cancel??(r==null?void 0:r.cancel),t);if(d)v();else{He.und(n.pause)||(i.paused=Zb(n.pause,t));let x=r==null?void 0:r.pause;x!==!0&&(x=i.paused||Zb(x,t)),l=Ua(n.delay||0,t),x?(i.resumeQueue.add(p),o.pause()):(o.resume(),p())}function f(){i.resumeQueue.add(p),i.timeouts.delete(c),c.cancel(),l=c.time-qt.now()}function p(){l>0&&!tu.skipAnimation?(i.delayed=!0,c=qt.setTimeout(v,l),i.pauseQueue.add(f),i.timeouts.add(c)):v()}function v(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(f),i.timeouts.delete(c),e<=(i.cancelId||0)&&(d=!0);try{o.start({...n,callId:e,cancel:d},a)}catch(x){s(x)}}})}var C$=(e,t)=>t.length==1?t[0]:t.some(n=>n.cancelled)?Lg(e.get()):t.every(n=>n.noop)?aie(e.get()):ru(e.get(),t.every(n=>n.finished)),aie=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),ru=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),Lg=e=>({value:e,cancelled:!0,finished:!1});function sie(e,t,n,r){const{callId:i,parentId:o,onRest:a}=t,{asyncTo:s,promise:l}=n;return!o&&e===s&&!t.reset?l:n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const c=Uk(t,(b,w)=>w==="onRest"?void 0:b);let d,f;const p=new Promise((b,w)=>(d=b,f=w)),v=b=>{const w=i<=(n.cancelId||0)&&Lg(r)||i!==n.asyncId&&ru(r,!1);if(w)throw b.result=w,f(b),b},x=(b,w)=>{const _=new lie,S=new uie;return(async()=>{if(tu.skipAnimation)throw Gb(n),S.result=ru(r,!1),f(S),S;v(_);const C=He.obj(b)?{...b}:{...w,to:b};C.parentId=i,Xu(c,(T,E)=>{He.und(C[E])&&(C[E]=T)});const j=await r.start(C);return v(_),n.paused&&await new Promise(T=>{n.resumeQueue.add(T)}),j})()};let y;if(tu.skipAnimation)return Gb(n),ru(r,!1);try{let b;He.arr(e)?b=(async w=>{for(const _ of w)await x(_)})(e):b=Promise.resolve(e(x,r.stop.bind(r))),await Promise.all([b.then(d),p]),y=ru(r.get(),!0,!1)}catch(b){if(b instanceof lie)y=b.result;else if(b instanceof uie)y=b.result;else throw b}finally{i==n.asyncId&&(n.asyncId=o,n.asyncTo=o?s:void 0,n.promise=o?l:void 0)}return He.fun(a)&&qt.batchedUpdates(()=>{a(y,r,r.item)}),y})()}function Gb(e,t){Ob(e.timeouts,n=>n.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var lie=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},uie=class extends Error{constructor(){super("SkipAnimationSignal")}},j$=e=>e instanceof T$,CAe=1,T$=class extends Bre{constructor(){super(...arguments),this.id=CAe++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Ju(this);return e&&e.getValue()}to(...e){return tu.to(this,e)}interpolate(...e){return oAe(),tu.to(this,e)}toJSON(){return this.get()}observerAdded(e){e==1&&this._attach()}observerRemoved(e){e==0&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){Ub(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||$k.sort(this),Ub(this,{type:"priority",parent:this,priority:e})}},jp=Symbol.for("SpringPhase"),cie=1,I$=2,E$=4,N$=e=>(e[jp]&cie)>0,th=e=>(e[jp]&I$)>0,Yb=e=>(e[jp]&E$)>0,die=(e,t)=>t?e[jp]|=I$|cie:e[jp]&=~I$,fie=(e,t)=>t?e[jp]|=E$:e[jp]&=~E$,jAe=class extends T${constructor(e,t){if(super(),this.animation=new SAe,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!He.und(e)||!He.und(t)){const n=He.obj(e)?{...e}:{...t,from:e};He.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(th(this)||this._state.asyncTo)||Yb(this)}get goal(){return Fa(this.animation.to)}get velocity(){const e=Ju(this);return e instanceof Vb?e.lastVelocity||0:e.getPayload().map(t=>t.lastVelocity||0)}get hasAnimated(){return N$(this)}get isAnimating(){return th(this)}get isPaused(){return Yb(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const r=this.animation;let{toValues:i}=r;const{config:o}=r,a=Dk(r.to);!a&&cl(r.to)&&(i=ha(Fa(r.to))),r.values.forEach((c,d)=>{if(c.done)return;const f=c.constructor==Hb?1:a?a[d].lastPosition:i[d];let p=r.immediate,v=f;if(!p){if(v=c.lastPosition,o.tension<=0){c.done=!0;return}let x=c.elapsedTime+=e;const y=r.fromValues[d],b=c.v0!=null?c.v0:c.v0=He.arr(o.velocity)?o.velocity[d]:o.velocity;let w;const _=o.precision||(y==f?.005:Math.min(1,Math.abs(f-y)*.001));if(He.und(o.duration))if(o.decay){const S=o.decay===!0?.998:o.decay,C=Math.exp(-(1-S)*x);v=y+b/(1-S)*(1-C),p=Math.abs(c.lastPosition-v)<=_,w=b*C}else{w=c.lastVelocity==null?b:c.lastVelocity;const S=o.restVelocity||_/10,C=o.clamp?0:o.bounce,j=!He.und(C),T=y==f?c.v0>0:yS,!(!E&&(p=Math.abs(f-v)<=_,p)));++O){j&&($=v==f||v>f==T,$&&(w=-w*C,v=f));const te=-o.tension*1e-6*(v-f),q=-o.friction*.001*w,P=(te+q)/o.mass;w=w+P*D,v=v+w*D}}else{let S=1;o.duration>0&&(this._memoizedDuration!==o.duration&&(this._memoizedDuration=o.duration,c.durationProgress>0&&(c.elapsedTime=o.duration*c.durationProgress,x=c.elapsedTime+=e)),S=(o.progress||0)+x/this._memoizedDuration,S=S>1?1:S<0?0:S,c.durationProgress=S),v=y+o.easing(S)*(f-y),w=(v-c.lastPosition)/e,p=S==1}c.lastVelocity=w,Number.isNaN(v)&&(console.warn("Got NaN while animating:",this),p=!0)}a&&!a[d].done&&(p=!1),p?c.done=!0:t=!1,c.setValue(v,o.round)&&(n=!0)});const s=Ju(this),l=s.getValue();if(t){const c=Fa(r.to);(l!==c||n)&&!o.decay?(s.setValue(c),this._onChange(c)):n&&o.decay&&this._onChange(l),this._stop()}else n&&this._onChange(l)}set(e){return qt.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(th(this)){const{to:e,config:t}=this.animation;qt.batchedUpdates(()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return He.und(e)?(n=this.queue||[],this.queue=[]):n=[He.obj(e)?e:{...t,to:e}],Promise.all(n.map(r=>this._update(r))).then(r=>C$(this,r))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),Gb(this._state,e&&this._lastCallId),qt.batchedUpdates(()=>this._stop(t,e)),this}reset(){this._update({reset:!0})}eventObserved(e){e.type=="change"?this._start():e.type=="priority"&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:r}=e;n=He.obj(n)?n[t]:n,(n==null||_$(n))&&(n=void 0),r=He.obj(r)?r[t]:r,r==null&&(r=void 0);const i={to:n,from:r};return N$(this)||(e.reverse&&([n,r]=[r,n]),r=Fa(r),He.und(r)?Ju(this)||this._set(n):this._set(r)),i}_update({...e},t){const{key:n,defaultProps:r}=this;e.default&&Object.assign(r,Uk(e,(a,s)=>/^on/.test(s)?Qre(a,n):a)),mie(this,e,"onProps"),Jb(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const o=this._state;return oie(++this._lastCallId,{key:n,props:e,defaultProps:r,state:o,actions:{pause:()=>{Yb(this)||(fie(this,!0),zb(o.pauseQueue),Jb(this,"onPause",ru(this,Kb(this,this.animation.to)),this))},resume:()=>{Yb(this)&&(fie(this,!1),th(this)&&this._resume(),zb(o.resumeQueue),Jb(this,"onResume",ru(this,Kb(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then(a=>{if(e.loop&&a.finished&&!(t&&a.noop)){const s=hie(e);if(s)return this._update(s,!0)}return a})}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(Lg(this));const r=!He.und(e.to),i=!He.und(e.from);if(r||i)if(t.callId>this._lastToId)this._lastToId=t.callId;else return n(Lg(this));const{key:o,defaultProps:a,animation:s}=this,{to:l,from:c}=s;let{to:d=l,from:f=c}=e;i&&!r&&(!t.default||He.und(d))&&(d=f),t.reverse&&([d,f]=[f,d]);const p=!vd(f,c);p&&(s.from=f),f=Fa(f);const v=!vd(d,l);v&&this._focus(d);const x=_$(t.to),{config:y}=s,{decay:b,velocity:w}=y;(r||i)&&(y.velocity=0),t.config&&!x&&kAe(y,Ua(t.config,o),t.config!==a.config?Ua(a.config,o):void 0);let _=Ju(this);if(!_||He.und(d))return n(ru(this,!0));const S=He.und(t.reset)?i&&!t.default:!He.und(f)&&Zb(t.reset,o),C=S?f:this.get(),j=qb(d),T=He.num(j)||He.arr(j)||zk(j),E=!x&&(!T||Zb(a.immediate||t.immediate,o));if(v){const O=b$(d);if(O!==_.constructor)if(E)_=this._set(j);else throw Error(`Cannot animate between ${_.constructor.name} and ${O.name}, as the "to" prop suggests`)}const $=_.constructor;let D=cl(d),M=!1;if(!D){const O=S||!N$(this)&&p;(v||O)&&(M=vd(qb(C),j),D=!M),(!vd(s.immediate,E)&&!E||!vd(y.decay,b)||!vd(y.velocity,w))&&(D=!0)}if(M&&th(this)&&(s.changed&&!S?D=!0:D||this._stop(l)),!x&&((D||cl(l))&&(s.values=_.getPayload(),s.toValues=cl(d)?null:$==Hb?[1]:ha(j)),s.immediate!=E&&(s.immediate=E,!E&&!S&&this._set(l)),D)){const{onRest:O}=s;Ft(IAe,q=>mie(this,t,q));const te=ru(this,Kb(this,l));zb(this._pendingCalls,te),this._pendingCalls.add(n),s.changed&&qt.batchedUpdates(()=>{var q;s.changed=!S,O==null||O(te,this),S?Ua(a.onRest,te):(q=s.onStart)==null||q.call(s,te,this)})}S&&this._set(C),x?n(sie(t.to,t,this._state,this)):D?this._start():th(this)&&!v?this._pendingCalls.add(n):n(aie(C))}_focus(e){const t=this.animation;e!==t.to&&(Ure(this)&&this._detach(),t.to=e,Ure(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;cl(t)&&(Rg(t,this),j$(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;cl(e)&&Bb(e,this)}_set(e,t=!0){const n=Fa(e);if(!He.und(n)){const r=Ju(this);if(!r||!vd(n,r.getValue())){const i=b$(n);!r||r.constructor!=i?y$(this,i.create(n)):r.setValue(n),r&&qt.batchedUpdates(()=>{this._onChange(n,t)})}}return Ju(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Jb(this,"onStart",ru(this,Kb(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Ua(this.animation.onChange,e,this)),Ua(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Ju(this).reset(Fa(e.to)),e.immediate||(e.fromValues=e.values.map(t=>t.lastPosition)),th(this)||(die(this,!0),Yb(this)||this._resume())}_resume(){tu.skipAnimation?this.finish():$k.start(this)}_stop(e,t){if(th(this)){die(this,!1);const n=this.animation;Ft(n.values,i=>{i.done=!0}),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),Ub(this,{type:"idle",parent:this});const r=t?Lg(this.get()):ru(this.get(),Kb(this,e??n.to));zb(this._pendingCalls,r),n.changed&&(n.changed=!1,Jb(this,"onRest",r,this))}}};function Kb(e,t){const n=qb(t),r=qb(e.get());return vd(r,n)}function hie(e,t=e.loop,n=e.to){const r=Ua(t);if(r){const i=r!==!0&&x$(r),o=(i||e).reverse,a=!i||i.reset;return Xb({...e,loop:t,default:!1,pause:void 0,to:!o||_$(n)?n:void 0,from:a?e.from:void 0,reset:a,...i})}}function Xb(e){const{to:t,from:n}=e=x$(e),r=new Set;return He.obj(t)&&pie(t,r),He.obj(n)&&pie(n,r),e.keys=r.size?Array.from(r):null,e}function TAe(e){const t=Xb(e);return He.und(t.default)&&(t.default=Uk(t)),t}function pie(e,t){Xu(e,(n,r)=>n!=null&&t.add(r))}var IAe=["onStart","onRest","onChange","onPause","onResume"];function mie(e,t,n){e.animation[n]=t[n]!==eie(t,n)?Qre(t[n],e.key):void 0}function Jb(e,t,...n){var r,i,o,a;(i=(r=e.animation)[t])==null||i.call(r,...n),(a=(o=e.defaultProps)[t])==null||a.call(o,...n)}var EAe=["onStart","onChange","onRest"],NAe=1,gie=class{constructor(e,t){this.id=NAe++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each((t,n)=>e[n]=t.get()),e}set(e){for(const t in e){const n=e[t];He.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(Xb(e)),this}start(e){let{queue:t}=this;return e?t=ha(e).map(Xb):this.queue=[],this._flush?this._flush(this,t):(_ie(this,t),$$(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;Ft(ha(t),r=>n[r].stop(!!e))}else Gb(this._state,this._lastAsyncId),this.each(n=>n.stop(!!e));return this}pause(e){if(He.und(e))this.start({pause:!0});else{const t=this.springs;Ft(ha(e),n=>t[n].pause())}return this}resume(e){if(He.und(e))this.start({pause:!1});else{const t=this.springs;Ft(ha(e),n=>t[n].resume())}return this}each(e){Xu(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,r=this._active.size>0,i=this._changed.size>0;(r&&!this._started||i&&!this._started)&&(this._started=!0,Ob(e,([s,l])=>{l.value=this.get(),s(l,this,this._item)}));const o=!r&&this._started,a=i||o&&n.size?this.get():null;i&&t.size&&Ob(t,([s,l])=>{l.value=a,s(l,this,this._item)}),o&&(this._started=!1,Ob(n,([s,l])=>{l.value=a,s(l,this,this._item)}))}eventObserved(e){if(e.type=="change")this._changed.add(e.parent),e.idle||this._active.add(e.parent);else if(e.type=="idle")this._active.delete(e.parent);else return;qt.onFrame(this._onFrame)}};function $$(e,t){return Promise.all(t.map(n=>vie(e,n))).then(n=>C$(e,n))}async function vie(e,t,n){const{keys:r,to:i,from:o,loop:a,onRest:s,onResolve:l}=t,c=He.obj(t.default)&&t.default;a&&(t.loop=!1),i===!1&&(t.to=null),o===!1&&(t.from=null);const d=He.arr(i)||He.fun(i)?i:void 0;d?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):Ft(EAe,y=>{const b=t[y];if(He.fun(b)){const w=e._events[y];t[y]=({finished:_,cancelled:S})=>{const C=w.get(b);C?(_||(C.finished=!1),S&&(C.cancelled=!0)):w.set(b,{value:null,finished:_||!1,cancelled:S||!1})},c&&(c[y]=t[y])}});const f=e._state;t.pause===!f.paused?(f.paused=t.pause,zb(t.pause?f.pauseQueue:f.resumeQueue)):f.paused&&(t.pause=!0);const p=(r||Object.keys(e.springs)).map(y=>e.springs[y].start(t)),v=t.cancel===!0||eie(t,"cancel")===!0;(d||v&&f.asyncId)&&p.push(oie(++e._lastAsyncId,{props:t,state:f,actions:{pause:a$,resume:a$,start(y,b){v?(Gb(f,e._lastAsyncId),b(Lg(e))):(y.onRest=s,b(sie(d,y,f,e)))}}})),f.paused&&await new Promise(y=>{f.resumeQueue.add(y)});const x=C$(e,await Promise.all(p));if(a&&x.finished&&!(n&&x.noop)){const y=hie(t,a,i);if(y)return _ie(e,[y]),vie(e,y,!0)}return l&&qt.batchedUpdates(()=>l(x,e,e.item)),x}function M$(e,t){const n={...e.springs};return t&&Ft(ha(t),r=>{He.und(r.keys)&&(r=Xb(r)),He.obj(r.to)||(r={...r,to:void 0}),xie(n,r,i=>bie(i))}),yie(e,n),n}function yie(e,t){Xu(t,(n,r)=>{e.springs[r]||(e.springs[r]=n,Rg(n,e))})}function bie(e,t){const n=new jAe;return n.key=e,t&&Rg(n,t),n}function xie(e,t,n){t.keys&&Ft(t.keys,r=>{(e[r]||(e[r]=n(r)))._prepareNode(t)})}function _ie(e,t){Ft(t,n=>{xie(e.springs,n,r=>bie(r,e))})}var Qb=({children:e,...t})=>{const n=m.useContext(Bk),r=t.pause||!!n.pause,i=t.immediate||!!n.immediate;t=uAe(()=>({pause:r,immediate:i}),[r,i]);const{Provider:o}=Bk;return m.createElement(o,{value:t},e)},Bk=$Ae(Qb,{});Qb.Provider=Bk.Provider,Qb.Consumer=Bk.Consumer;function $Ae(e,t){return Object.assign(e,m.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}var wie=()=>{const e=[],t=function(r){sAe();const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=n(r,o,a);s&&i.push(o.start(s))}}),i};t.current=e,t.add=function(r){e.includes(r)||e.push(r)},t.delete=function(r){const i=e.indexOf(r);~i&&e.splice(i,1)},t.pause=function(){return Ft(e,r=>r.pause(...arguments)),this},t.resume=function(){return Ft(e,r=>r.resume(...arguments)),this},t.set=function(r){Ft(e,(i,o)=>{const a=He.fun(r)?r(o,i):r;a&&i.set(a)})},t.start=function(r){const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=this._getProps(r,o,a);s&&i.push(o.start(s))}}),i},t.stop=function(){return Ft(e,r=>r.stop(...arguments)),this},t.update=function(r){return Ft(e,(i,o)=>i.update(this._getProps(r,i,o))),this};const n=function(r,i,o){return He.fun(r)?r(o,i):r};return t._getProps=n,t};function MAe(e,t,n){const r=He.fun(t)&&t;r&&!n&&(n=[]);const i=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),o=m.useRef(0),a=m$(),s=m.useMemo(()=>({ctrls:[],queue:[],flush(w,_){const S=M$(w,_);return o.current>0&&!s.queue.length&&!Object.keys(S).some(C=>!w.springs[C])?$$(w,_):new Promise(C=>{yie(w,S),s.queue.push(()=>{C($$(w,_))}),a()})}}),[]),l=m.useRef([...s.ctrls]),c=[],d=v$(e)||0;m.useMemo(()=>{Ft(l.current.slice(e,d),w=>{w$(w,i),w.stop(!0)}),l.current.length=e,f(d,e)},[e]),m.useMemo(()=>{f(0,Math.min(d,e))},n);function f(w,_){for(let S=w;S<_;S++){const C=l.current[S]||(l.current[S]=new gie(null,s.flush)),j=r?r(S,C):t[S];j&&(c[S]=TAe(j))}}const p=l.current.map((w,_)=>M$(w,c[_])),v=m.useContext(Qb),x=v$(v),y=v!==x&&tie(v);Cp(()=>{o.current++,s.ctrls=l.current;const{queue:w}=s;w.length&&(s.queue=[],Ft(w,_=>_())),Ft(l.current,(_,S)=>{i==null||i.add(_),y&&_.start({default:v});const C=c[S];C&&(nie(_,C.ref),_.ref?_.queue.push(C):_.start(C))})}),g$(()=>()=>{Ft(s.ctrls,w=>w.stop(!0))});const b=p.map(w=>({...w}));return i?[b,i]:b}function ex(e,t){const n=He.fun(e),[[r],i]=MAe(1,n?e:[e],n?[]:t);return n||arguments.length==2?[r,i]:r}function R$(e,t,n){const r=He.fun(t)&&t,{reset:i,sort:o,trail:a=0,expires:s=!0,exitBeforeEnter:l=!1,onDestroyed:c,ref:d,config:f}=r?r():t,p=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),v=ha(e),x=[],y=m.useRef(null),b=i?null:y.current;Cp(()=>{y.current=x}),g$(()=>(Ft(x,P=>{p==null||p.add(P.ctrl),P.ctrl.ref=p}),()=>{Ft(y.current,P=>{P.expired&&clearTimeout(P.expirationId),w$(P.ctrl,p),P.ctrl.stop(!0)})}));const w=LAe(v,r?r():t,b),_=i&&y.current||[];Cp(()=>Ft(_,({ctrl:P,item:X,key:A})=>{w$(P,p),Ua(c,X,A)}));const S=[];if(b&&Ft(b,(P,X)=>{P.expired?(clearTimeout(P.expirationId),_.push(P)):(X=S[X]=w.indexOf(P.key),~X&&(x[X]=P))}),Ft(v,(P,X)=>{x[X]||(x[X]={key:w[X],item:P,phase:"mount",ctrl:new gie},x[X].ctrl.item=P)}),S.length){let P=-1;const{leave:X}=r?r():t;Ft(S,(A,Y)=>{const F=b[Y];~A?(P=x.indexOf(F),x[P]={...F,item:v[A]}):X&&x.splice(++P,0,F)})}He.fun(o)&&x.sort((P,X)=>o(P.item,X.item));let C=-a;const j=m$(),T=Uk(t),E=new Map,$=m.useRef(new Map),D=m.useRef(!1);Ft(x,(P,X)=>{const A=P.key,Y=P.phase,F=r?r():t;let H,ee;const ce=Ua(F.delay||0,A);if(Y=="mount")H=F.enter,ee="enter";else{const me=w.indexOf(A)<0;if(Y!="leave")if(me)H=F.leave,ee="leave";else if(H=F.update)ee="update";else return;else if(!me)H=F.enter,ee="enter";else return}if(H=Ua(H,P.item,X),H=He.obj(H)?x$(H):{to:H},!H.config){const me=f||T.config;H.config=Ua(me,P.item,X,ee)}C+=a;const B={...T,delay:ce+C,ref:d,immediate:F.immediate,reset:!1,...H};if(ee=="enter"&&He.und(B.from)){const me=r?r():t,ke=He.und(me.initial)||b?me.from:me.initial;B.from=Ua(ke,P.item,X)}const{onResolve:ae}=B;B.onResolve=me=>{Ua(ae,me);const ke=y.current,he=ke.find(ue=>ue.key===A);if(he&&!(me.cancelled&&he.phase!="update")&&he.ctrl.idle){const ue=ke.every(re=>re.ctrl.idle);if(he.phase=="leave"){const re=Ua(s,he.item);if(re!==!1){const ge=re===!0?0:re;if(he.expired=!0,!ue&&ge>0){ge<=2147483647&&(he.expirationId=setTimeout(j,ge));return}}}ue&&ke.some(re=>re.expired)&&($.current.delete(he),l&&(D.current=!0),j())}};const je=M$(P.ctrl,B);ee==="leave"&&l?$.current.set(P,{phase:ee,springs:je,payload:B}):E.set(P,{phase:ee,springs:je,payload:B})});const M=m.useContext(Qb),O=v$(M),te=M!==O&&tie(M);Cp(()=>{te&&Ft(x,P=>{P.ctrl.start({default:M})})},[M]),Ft(E,(P,X)=>{if($.current.size){const A=x.findIndex(Y=>Y.key===X.key);x.splice(A,1)}}),Cp(()=>{Ft($.current.size?$.current:E,({phase:P,payload:X},A)=>{const{ctrl:Y}=A;A.phase=P,p==null||p.add(Y),te&&P=="enter"&&Y.start({default:M}),X&&(nie(Y,X.ref),(Y.ref||p)&&!D.current?Y.update(X):(Y.start(X),D.current&&(D.current=!1)))})},i?void 0:n);const q=P=>m.createElement(m.Fragment,null,x.map((X,A)=>{const{springs:Y}=E.get(X)||X.ctrl,F=P({...Y},X.item,X,A);return F&&F.type?m.createElement(F.type,{...F.props,key:He.str(X.key)||He.num(X.key)?X.key:X.ctrl.id,ref:F.ref}):F}));return p?[q,p]:q}var RAe=1;function LAe(e,{key:t,keys:n=t},r){if(n===null){const i=new Set;return e.map(o=>{const a=r&&r.find(s=>s.item===o&&s.phase!=="leave"&&!i.has(s));return a?(i.add(a),a.key):RAe++})}return He.und(n)?e:He.fun(n)?e.map(n):ha(n)}var kie=class extends T${constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=Ab(...t);const n=this._get(),r=b$(n);y$(this,r.create(n))}advance(e){const t=this._get(),n=this.get();vd(t,n)||(Ju(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Sie(this._active)&&L$(this)}_get(){const e=He.arr(this.source)?this.source.map(Fa):ha(Fa(this.source));return this.calc(...e)}_start(){this.idle&&!Sie(this._active)&&(this.idle=!1,Ft(Dk(this),e=>{e.done=!1}),tu.skipAnimation?(qt.batchedUpdates(()=>this.advance()),L$(this)):$k.start(this))}_attach(){let e=1;Ft(ha(this.source),t=>{cl(t)&&Rg(t,this),j$(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))}),this.priority=e,this._start()}_detach(){Ft(ha(this.source),e=>{cl(e)&&Bb(e,this)}),this._active.clear(),L$(this)}eventObserved(e){e.type=="change"?e.idle?this.advance():(this._active.add(e.parent),this._start()):e.type=="idle"?this._active.delete(e.parent):e.type=="priority"&&(this.priority=ha(this.source).reduce((t,n)=>Math.max(t,(j$(n)?n.priority:0)+1),0))}};function PAe(e){return e.idle!==!1}function Sie(e){return!e.size||Array.from(e).every(PAe)}function L$(e){e.idle||(e.idle=!0,Ft(Dk(e),t=>{t.done=!0}),Ub(e,{type:"idle",parent:e}))}var tx=(e,...t)=>new kie(e,t);tu.assign({createStringInterpolator:Zre,to:(e,t)=>new kie(e,t)});var Cie=/^--/;function OAe(e,t){return t==null||typeof t=="boolean"||t===""?"":typeof t=="number"&&t!==0&&!Cie.test(e)&&!(nx.hasOwnProperty(e)&&nx[e])?t+"px":(""+t).trim()}var jie={};function zAe(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n=e.nodeName==="filter"||e.parentNode&&e.parentNode.nodeName==="filter",{className:r,style:i,children:o,scrollTop:a,scrollLeft:s,viewBox:l,...c}=t,d=Object.values(c),f=Object.keys(c).map(p=>n||e.hasAttribute(p)?p:jie[p]||(jie[p]=p.replace(/([A-Z])/g,v=>"-"+v.toLowerCase())));o!==void 0&&(e.textContent=o);for(const p in i)if(i.hasOwnProperty(p)){const v=OAe(p,i[p]);Cie.test(p)?e.style.setProperty(p,v):e.style[p]=v}f.forEach((p,v)=>{e.setAttribute(p,d[v])}),r!==void 0&&(e.className=r),a!==void 0&&(e.scrollTop=a),s!==void 0&&(e.scrollLeft=s),l!==void 0&&e.setAttribute("viewBox",l)}var nx={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},DAe=(e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1),AAe=["Webkit","Ms","Moz","O"];nx=Object.keys(nx).reduce((e,t)=>(AAe.forEach(n=>e[DAe(n,t)]=e[t]),e),nx);var FAe=/^(matrix|translate|scale|rotate|skew)/,UAe=/^(translate)/,BAe=/^(rotate|skew)/,P$=(e,t)=>He.num(e)&&e!==0?e+t:e,Wk=(e,t)=>He.arr(e)?e.every(n=>Wk(n,t)):He.num(e)?e===t:parseFloat(e)===t,WAe=class extends Fk{constructor({x:e,y:t,z:n,...r}){const i=[],o=[];(e||t||n)&&(i.push([e||0,t||0,n||0]),o.push(a=>[`translate3d(${a.map(s=>P$(s,"px")).join(",")})`,Wk(a,0)])),Xu(r,(a,s)=>{if(s==="transform")i.push([a||""]),o.push(l=>[l,l===""]);else if(FAe.test(s)){if(delete r[s],He.und(a))return;const l=UAe.test(s)?"px":BAe.test(s)?"deg":"";i.push(ha(a)),o.push(s==="rotate3d"?([c,d,f,p])=>[`rotate3d(${c},${d},${f},${P$(p,l)})`,Wk(p,0)]:c=>[`${s}(${c.map(d=>P$(d,l)).join(",")})`,Wk(c,s.startsWith("scale")?1:0)])}}),i.length&&(r.transform=new VAe(i,o)),super(r)}},VAe=class extends Bre{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e="",t=!0;return Ft(this.inputs,(n,r)=>{const i=Fa(n[0]),[o,a]=this.transforms[r](He.arr(i)?i:n.map(Fa));e+=" "+o,t=t&&a}),t?"none":e}observerAdded(e){e==1&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Rg(n,this)))}observerRemoved(e){e==0&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Bb(n,this)))}eventObserved(e){e.type=="change"&&(this._value=null),Ub(this,e)}},HAe=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"];tu.assign({batchedUpdates:Kc.unstable_batchedUpdates,createStringInterpolator:Zre,colors:ADe});var ZAe=vAe(HAe,{applyAnimatedValues:zAe,createAnimatedStyle:e=>new WAe(e),getComponentProps:({scrollTop:e,scrollLeft:t,...n})=>n}),iu=ZAe.animated;function qAe(){const e=J(Zu);if(!e)return;const t=e.downloading_full_snapshot_throughput?`${Sp(e.downloading_full_snapshot_throughput).toString()}/s`:"-";return u.jsxs(W,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_full_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_full_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}function GAe(){const e=J(Zu);return e?u.jsx(ud,{label:"Slot",value:e.waiting_for_supermajority_slot}):null}function YAe(){const e=J(Zu);return e?u.jsx(N4,{value:e.waiting_for_supermajority_stake_percent||0,className:H3.progress}):null}function KAe(){const e=J(Zu);if(!e)return;const t=e.downloading_incremental_snapshot_throughput?`${Sp(e.downloading_incremental_snapshot_throughput).toString()}/s`:"-";return u.jsxs(W,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_incremental_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_incremental_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}const Tie=[{step:"initializing"},{step:"searching_for_full_snapshot"},{step:"downloading_full_snapshot",rightChildren:u.jsx(Aze,{}),bottomChildren:u.jsx(qAe,{})},{step:"searching_for_incremental_snapshot"},{step:"downloading_incremental_snapshot",rightChildren:u.jsx($De,{}),bottomChildren:u.jsx(KAe,{})},{step:"cleaning_blockstore"},{step:"cleaning_accounts"},{step:"loading_ledger"},{step:"processing_ledger",bottomChildren:u.jsx(EMe,{})},{step:"starting_services"},{step:"waiting_for_supermajority",rightChildren:u.jsx(YAe,{}),bottomChildren:u.jsx(GAe,{}),optional:!0},{step:"running"}];function XAe(){const e=J(Zu),[t,n]=Vl(ol),r=J(Ku),i=!!Object.values(r).length,[o,a]=m.useState();m.useEffect(()=>{(e==null?void 0:e.phase)!=="running"&&n(!0),a(f=>e?e.phase==="running":f)},[n,e]);const s=o===!0||o===void 0;m.useEffect(()=>{i&&(e==null?void 0:e.phase)==="running"&&n(!1)},[i,n,t,e==null?void 0:e.phase]);const l=Math.max(0,Tie.findIndex(({step:f})=>f===(e==null?void 0:e.phase))),[c,d]=ex(()=>({from:{opacity:t?1:0,zIndex:t?1:-1}}));return m.useEffect(()=>{d.stop(),t?d.start({from:{opacity:1,zIndex:1}}):d.start({from:{opacity:1,zIndex:1},to:{opacity:0,zIndex:-1}})},[d,t]),u.jsx(iu.div,{className:OG.outerContainer,style:c,children:u.jsxs(W,{direction:"column",gap:"4",className:OG.innerContainer,children:[u.jsx(Mt,{flexGrow:"1"}),u.jsx("img",{src:Vi?ree:gMe,alt:"fd",height:"50px",style:{marginBottom:"28px"}}),Tie.map(({step:f,rightChildren:p,bottomChildren:v,optional:x},y)=>{if(x&&f!==(e==null?void 0:e.phase))return null;const b=JAe(f);return y===l?u.jsx(wMe,{label:b,hide:s,rightChildren:p,bottomChildren:v},f):yt!==void 0).map((t,n)=>t==="for"?t:t==="rpc"?"RPC":(n===0?t[0].toUpperCase():t[0])+t.slice(1)).join(" ")}const QAe="_container_e8h4h_1",eFe="_blur_e8h4h_4",Iie={container:QAe,blur:eFe};function Eie(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;tvFe(e||null),{maxSize:1e3}),yFe="_hide_1etvv_1",Mie={hide:yFe};function ks({url:e,size:t,hideFallback:n,hideTooltip:r=!1,isYou:i}){const[o,a]=Vl($ie(e)),[s,l]=m.useState(o),[c,d]=m.useState(!1),f=`${t}px`,p={width:f,height:f,minWidth:f,minHeight:f};if(!e||s){if(n)return u.jsx("div",{style:p});if(i){const x=u.jsx("img",{src:gFe,style:p});return r?x:u.jsx(ci,{content:"Your current validator",children:x})}return u.jsx("img",{src:Nie,alt:"private",style:p})}const v=()=>{a(),l(!0)};return u.jsxs(u.Fragment,{children:[u.jsx("img",{className:Te({[Mie.hide]:!c}),style:p,onError:v,onLoad:()=>d(!0),src:e}),u.jsx("img",{className:Te({[Mie.hide]:c}),style:p,src:Nie,alt:"private"})]})}const O$=Gf((e,t,n)=>new Intl.NumberFormat(void 0,{minimumFractionDigits:n?e:0,maximumFractionDigits:e,minimumSignificantDigits:!n&&t?1:t,maximumSignificantDigits:t}),{maxSize:100});function z$(e,t){const{trailingZeroes:n=!0,decimalsOnZero:r=!1}=t;if(e===0&&!r)return"0";let i;if("decimals"in t){const s=typeof t.decimals=="function"?t.decimals(e):t.decimals;i=O$(s,void 0,n)}else{const{significantDigits:s,exactIntegers:l}=t;l&&Math.abs(e)>Math.pow(10,s)?i=O$(0,void 0,n):i=O$(void 0,s||1,n)}let o="";t.useSuffix&&([e,o]=bFe(e));const a=i.format(e);return a==="-0"?"0":a+o}function bFe(e){if(isFinite(e)){const t=Math.abs(e);if(t>=1e12)return[e/1e12,"T"];if(t>=1e9)return[e/1e9,"B"];if(t>=1e6)return[e/1e6,"M"];if(t>=1e3)return[e/1e3,"K"]}return[e,""]}const Rie=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",maximumFractionDigits:0}),D$=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumFractionDigits:1,maximumFractionDigits:1});function xFe(e){switch(e){case 1:return"Once";case 2:return"Twice";default:return`${e} times`}}function _Fe(){var e=m.useRef(!0);return e.current?(e.current=!1,!0):e.current}var Lie=function(){};function wFe(e){for(var t=[],n=1;ns.preventDefault(),children:t})})]})}function Uie(e){const t=J(dG),n=Pie();if(Qu(n,e),!!t)return Yf.diff(jt.fromMillis(Math.trunc(Number(t.startupTimeNanos)/1e6))).rescale()}function Tp(e,t,n,r){var i=this,o=m.useRef(null),a=m.useRef(0),s=m.useRef(0),l=m.useRef(null),c=m.useRef([]),d=m.useRef(),f=m.useRef(),p=m.useRef(e),v=m.useRef(!0);p.current=e;var x=typeof window<"u",y=!t&&t!==0&&x;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var b=!!(n=n||{}).leading,w=!("trailing"in n)||!!n.trailing,_="maxWait"in n,S="debounceOnServer"in n&&!!n.debounceOnServer,C=_?Math.max(+n.maxWait||0,t):null;m.useEffect(function(){return v.current=!0,function(){v.current=!1}},[]);var j=m.useMemo(function(){var T=function(q){var P=c.current,X=d.current;return c.current=d.current=null,a.current=q,s.current=s.current||q,f.current=p.current.apply(X,P)},E=function(q,P){y&&cancelAnimationFrame(l.current),l.current=y?requestAnimationFrame(q):setTimeout(q,P)},$=function(q){if(!v.current)return!1;var P=q-o.current;return!o.current||P>=t||P<0||_&&q-a.current>=C},D=function(q){return l.current=null,w&&c.current?T(q):(c.current=d.current=null,f.current)},M=function q(){var P=Date.now();if(b&&s.current===a.current&&O(),$(P))return D(P);if(v.current){var X=t-(P-o.current),A=_?Math.min(X,C-(P-a.current)):X;E(q,A)}},O=function(){r&&r({})},te=function(){if(x||S){var q=Date.now(),P=$(q);if(c.current=[].slice.call(arguments),d.current=i,o.current=q,P){if(!l.current&&v.current)return a.current=o.current,E(M,t),b?T(o.current):f.current;if(_)return E(M,t),T(o.current)}return l.current||E(M,t),f.current}};return te.cancel=function(){var q=l.current;q&&(y?cancelAnimationFrame(l.current):clearTimeout(l.current)),a.current=0,c.current=o.current=d.current=l.current=null,q&&r&&r({})},te.isPending=function(){return!!l.current},te.flush=function(){return l.current?D(Date.now()):f.current},te},[b,_,t,C,w,y,x,S,r]);return j}function DFe(e,t){return e===t}function Bie(e,t,n){var r=n&&n.equalityFn||DFe,i=m.useRef(e),o=m.useState({})[1],a=Tp(m.useCallback(function(l){i.current=l,o({})},[o]),t,n,o),s=m.useRef(e);return r(s.current,e)||(a(e),s.current=e),[i.current,a]}function Ba(e,t,n){var r=n===void 0?{}:n,i=r.leading,o=r.trailing;return Tp(e,t,{maxWait:t,leading:i===void 0||i,trailing:o===void 0||o})}function Yr(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var AFe=["color"],Wie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,AFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.5 2C7.77614 2 8 2.22386 8 2.5L8 11.2929L11.1464 8.14645C11.3417 7.95118 11.6583 7.95118 11.8536 8.14645C12.0488 8.34171 12.0488 8.65829 11.8536 8.85355L7.85355 12.8536C7.75979 12.9473 7.63261 13 7.5 13C7.36739 13 7.24021 12.9473 7.14645 12.8536L3.14645 8.85355C2.95118 8.65829 2.95118 8.34171 3.14645 8.14645C3.34171 7.95118 3.65829 7.95118 3.85355 8.14645L7 11.2929L7 2.5C7 2.22386 7.22386 2 7.5 2Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),FFe=["color"],Vie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,FFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.14645 2.14645C7.34171 1.95118 7.65829 1.95118 7.85355 2.14645L11.8536 6.14645C12.0488 6.34171 12.0488 6.65829 11.8536 6.85355C11.6583 7.04882 11.3417 7.04882 11.1464 6.85355L8 3.70711L8 12.5C8 12.7761 7.77614 13 7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.70711L3.85355 6.85355C3.65829 7.04882 3.34171 7.04882 3.14645 6.85355C2.95118 6.65829 2.95118 6.34171 3.14645 6.14645L7.14645 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),UFe=["color"],F$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,UFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),BFe=["color"],U$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,BFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),WFe=["color"],VFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,WFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),HFe=["color"],Hie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,HFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),ZFe=["color"],qFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,ZFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),GFe=["color"],YFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,GFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),KFe=["color"],XFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,KFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1 9.50006C1 10.3285 1.67157 11.0001 2.5 11.0001H4L4 10.0001H2.5C2.22386 10.0001 2 9.7762 2 9.50006L2 2.50006C2 2.22392 2.22386 2.00006 2.5 2.00006L9.5 2.00006C9.77614 2.00006 10 2.22392 10 2.50006V4.00002H5.5C4.67158 4.00002 4 4.67159 4 5.50002V12.5C4 13.3284 4.67158 14 5.5 14H12.5C13.3284 14 14 13.3284 14 12.5V5.50002C14 4.67159 13.3284 4.00002 12.5 4.00002H11V2.50006C11 1.67163 10.3284 1.00006 9.5 1.00006H2.5C1.67157 1.00006 1 1.67163 1 2.50006V9.50006ZM5 5.50002C5 5.22388 5.22386 5.00002 5.5 5.00002H12.5C12.7761 5.00002 13 5.22388 13 5.50002V12.5C13 12.7762 12.7761 13 12.5 13H5.5C5.22386 13 5 12.7762 5 12.5V5.50002Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),JFe=["color"],QFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,JFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M13.15 7.49998C13.15 4.66458 10.9402 1.84998 7.50002 1.84998C4.72167 1.84998 3.34849 3.9064 2.76335 5H4.5C4.77614 5 5 5.22386 5 5.5C5 5.77614 4.77614 6 4.5 6H1.5C1.22386 6 1 5.77614 1 5.5V2.5C1 2.22386 1.22386 2 1.5 2C1.77614 2 2 2.22386 2 2.5V4.31318C2.70453 3.07126 4.33406 0.849976 7.50002 0.849976C11.5628 0.849976 14.15 4.18537 14.15 7.49998C14.15 10.8146 11.5628 14.15 7.50002 14.15C5.55618 14.15 3.93778 13.3808 2.78548 12.2084C2.16852 11.5806 1.68668 10.839 1.35816 10.0407C1.25306 9.78536 1.37488 9.49315 1.63024 9.38806C1.8856 9.28296 2.17781 9.40478 2.2829 9.66014C2.56374 10.3425 2.97495 10.9745 3.4987 11.5074C4.47052 12.4963 5.83496 13.15 7.50002 13.15C10.9402 13.15 13.15 10.3354 13.15 7.49998ZM7.5 4.00001C7.77614 4.00001 8 4.22387 8 4.50001V7.29291L9.85355 9.14646C10.0488 9.34172 10.0488 9.65831 9.85355 9.85357C9.65829 10.0488 9.34171 10.0488 9.14645 9.85357L7.14645 7.85357C7.05268 7.7598 7 7.63262 7 7.50001V4.50001C7 4.22387 7.22386 4.00001 7.5 4.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),eUe=["color"],B$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,eUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),tUe=["color"],nUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,tUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),rUe=["color"],iUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,rUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.1464 6.85355C11.3417 7.04882 11.6583 7.04882 11.8536 6.85355C12.0488 6.65829 12.0488 6.34171 11.8536 6.14645L7.85355 2.14645C7.65829 1.95118 7.34171 1.95118 7.14645 2.14645L3.14645 6.14645C2.95118 6.34171 2.95118 6.65829 3.14645 6.85355C3.34171 7.04882 3.65829 7.04882 3.85355 6.85355L7.5 3.20711L11.1464 6.85355ZM11.1464 12.8536C11.3417 13.0488 11.6583 13.0488 11.8536 12.8536C12.0488 12.6583 12.0488 12.3417 11.8536 12.1464L7.85355 8.14645C7.65829 7.95118 7.34171 7.95118 7.14645 8.14645L3.14645 12.1464C2.95118 12.3417 2.95118 12.6583 3.14645 12.8536C3.34171 13.0488 3.65829 13.0488 3.85355 12.8536L7.5 9.20711L11.1464 12.8536Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),oUe=["color"],aUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,oUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M2 2.5C2 2.22386 2.22386 2 2.5 2H5.5C5.77614 2 6 2.22386 6 2.5C6 2.77614 5.77614 3 5.5 3H3V5.5C3 5.77614 2.77614 6 2.5 6C2.22386 6 2 5.77614 2 5.5V2.5ZM9 2.5C9 2.22386 9.22386 2 9.5 2H12.5C12.7761 2 13 2.22386 13 2.5V5.5C13 5.77614 12.7761 6 12.5 6C12.2239 6 12 5.77614 12 5.5V3H9.5C9.22386 3 9 2.77614 9 2.5ZM2.5 9C2.77614 9 3 9.22386 3 9.5V12H5.5C5.77614 12 6 12.2239 6 12.5C6 12.7761 5.77614 13 5.5 13H2.5C2.22386 13 2 12.7761 2 12.5V9.5C2 9.22386 2.22386 9 2.5 9ZM12.5 9C12.7761 9 13 9.22386 13 9.5V12.5C13 12.7761 12.7761 13 12.5 13H9.5C9.22386 13 9 12.7761 9 12.5C9 12.2239 9.22386 12 9.5 12H12V9.5C12 9.22386 12.2239 9 12.5 9Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),sUe=["color"],lUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,sUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M5.5 2C5.77614 2 6 2.22386 6 2.5V5.5C6 5.77614 5.77614 6 5.5 6H2.5C2.22386 6 2 5.77614 2 5.5C2 5.22386 2.22386 5 2.5 5H5V2.5C5 2.22386 5.22386 2 5.5 2ZM9.5 2C9.77614 2 10 2.22386 10 2.5V5H12.5C12.7761 5 13 5.22386 13 5.5C13 5.77614 12.7761 6 12.5 6H9.5C9.22386 6 9 5.77614 9 5.5V2.5C9 2.22386 9.22386 2 9.5 2ZM2 9.5C2 9.22386 2.22386 9 2.5 9H5.5C5.77614 9 6 9.22386 6 9.5V12.5C6 12.7761 5.77614 13 5.5 13C5.22386 13 5 12.7761 5 12.5V10H2.5C2.22386 10 2 9.77614 2 9.5ZM9 9.5C9 9.22386 9.22386 9 9.5 9H12.5C12.7761 9 13 9.22386 13 9.5C13 9.77614 12.7761 10 12.5 10H10V12.5C10 12.7761 9.77614 13 9.5 13C9.22386 13 9 12.7761 9 12.5V9.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),uUe=["color"],Zie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,uUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999ZM6.00003 5.99999H6.50003H7.50003C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H8.50003H9.00003V11H8.50003H7.50003H6.50003H6.00003V9.99999H6.50003H7.00003V6.99999H6.50003H6.00003V5.99999Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),cUe=["color"],qie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,cUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),dUe=["color"],fUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,dUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1.85001 7.50043C1.85001 4.37975 4.37963 1.85001 7.50001 1.85001C10.6204 1.85001 13.15 4.37975 13.15 7.50043C13.15 10.6211 10.6204 13.1509 7.50001 13.1509C4.37963 13.1509 1.85001 10.6211 1.85001 7.50043ZM7.50001 0.850006C3.82728 0.850006 0.850006 3.82753 0.850006 7.50043C0.850006 11.1733 3.82728 14.1509 7.50001 14.1509C11.1727 14.1509 14.15 11.1733 14.15 7.50043C14.15 3.82753 11.1727 0.850006 7.50001 0.850006ZM7.00001 8.00001V3.12811C7.16411 3.10954 7.33094 3.10001 7.50001 3.10001C9.93006 3.10001 11.9 5.07014 11.9 7.50043C11.9 7.66935 11.8905 7.83604 11.872 8.00001H7.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),hUe=["color"],pUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,hUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM7.50003 4C7.77617 4 8.00003 4.22386 8.00003 4.5V7H10.5C10.7762 7 11 7.22386 11 7.5C11 7.77614 10.7762 8 10.5 8H8.00003V10.5C8.00003 10.7761 7.77617 11 7.50003 11C7.22389 11 7.00003 10.7761 7.00003 10.5V8H4.50003C4.22389 8 4.00003 7.77614 4.00003 7.5C4.00003 7.22386 4.22389 7 4.50003 7H7.00003V4.5C7.00003 4.22386 7.22389 4 7.50003 4Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),mUe=["color"],gUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,mUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.85355 2.14645C5.04882 2.34171 5.04882 2.65829 4.85355 2.85355L3.70711 4H9C11.4853 4 13.5 6.01472 13.5 8.5C13.5 10.9853 11.4853 13 9 13H5C4.72386 13 4.5 12.7761 4.5 12.5C4.5 12.2239 4.72386 12 5 12H9C10.933 12 12.5 10.433 12.5 8.5C12.5 6.567 10.933 5 9 5H3.70711L4.85355 6.14645C5.04882 6.34171 5.04882 6.65829 4.85355 6.85355C4.65829 7.04882 4.34171 7.04882 4.14645 6.85355L2.14645 4.85355C1.95118 4.65829 1.95118 4.34171 2.14645 4.14645L4.14645 2.14645C4.34171 1.95118 4.65829 1.95118 4.85355 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),vUe=["color"],yUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,vUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.89949 9.49998C3.89949 9.72089 3.7204 9.89997 3.49949 9.89997C3.27857 9.89997 3.09949 9.72089 3.09949 9.49998L3.09949 2.46566L1.78233 3.78282C1.62612 3.93903 1.37285 3.93903 1.21664 3.78282C1.06043 3.62661 1.06043 3.37334 1.21664 3.21713L3.21664 1.21713C3.29166 1.14212 3.3934 1.09998 3.49949 1.09998C3.60557 1.09998 3.70732 1.14212 3.78233 1.21713L5.78233 3.21713C5.93854 3.37334 5.93854 3.62661 5.78233 3.78282C5.62612 3.93903 5.37285 3.93903 5.21664 3.78282L3.89949 2.46566L3.89949 9.49998ZM8.49998 1.99998C8.22383 1.99998 7.99998 2.22383 7.99998 2.49998C7.99998 2.77612 8.22383 2.99998 8.49998 2.99998H14.5C14.7761 2.99998 15 2.77612 15 2.49998C15 2.22383 14.7761 1.99998 14.5 1.99998H8.49998ZM8.49998 4.99998C8.22383 4.99998 7.99998 5.22383 7.99998 5.49998C7.99998 5.77612 8.22383 5.99998 8.49998 5.99998H14.5C14.7761 5.99998 15 5.77612 15 5.49998C15 5.22383 14.7761 4.99998 14.5 4.99998H8.49998ZM7.99998 8.49998C7.99998 8.22383 8.22383 7.99998 8.49998 7.99998H14.5C14.7761 7.99998 15 8.22383 15 8.49998C15 8.77612 14.7761 8.99998 14.5 8.99998H8.49998C8.22383 8.99998 7.99998 8.77612 7.99998 8.49998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),bUe=["color"],Gie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,bUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49998 0.849976C7.22383 0.849976 6.99998 1.07383 6.99998 1.34998V3.52234C6.99998 3.79848 7.22383 4.02234 7.49998 4.02234C7.77612 4.02234 7.99998 3.79848 7.99998 3.52234V1.8718C10.8862 2.12488 13.15 4.54806 13.15 7.49998C13.15 10.6204 10.6204 13.15 7.49998 13.15C4.37957 13.15 1.84998 10.6204 1.84998 7.49998C1.84998 6.10612 2.35407 4.83128 3.19049 3.8459C3.36919 3.63538 3.34339 3.31985 3.13286 3.14115C2.92234 2.96245 2.60681 2.98825 2.42811 3.19877C1.44405 4.35808 0.849976 5.86029 0.849976 7.49998C0.849976 11.1727 3.82728 14.15 7.49998 14.15C11.1727 14.15 14.15 11.1727 14.15 7.49998C14.15 3.82728 11.1727 0.849976 7.49998 0.849976ZM6.74049 8.08072L4.22363 4.57237C4.15231 4.47295 4.16346 4.33652 4.24998 4.25C4.33649 4.16348 4.47293 4.15233 4.57234 4.22365L8.08069 6.74051C8.56227 7.08599 8.61906 7.78091 8.19998 8.2C7.78089 8.61909 7.08597 8.56229 6.74049 8.08072Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),xUe=["color"],_Ue=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,xUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159ZM4.25 6.5C4.25 6.22386 4.47386 6 4.75 6H6V4.75C6 4.47386 6.22386 4.25 6.5 4.25C6.77614 4.25 7 4.47386 7 4.75V6H8.25C8.52614 6 8.75 6.22386 8.75 6.5C8.75 6.77614 8.52614 7 8.25 7H7V8.25C7 8.52614 6.77614 8.75 6.5 8.75C6.22386 8.75 6 8.52614 6 8.25V7H4.75C4.47386 7 4.25 6.77614 4.25 6.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),wUe=["color"],kUe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Yr(e,wUe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.5 10C8.433 10 10 8.433 10 6.5C10 4.567 8.433 3 6.5 3C4.567 3 3 4.567 3 6.5C3 8.433 4.567 10 6.5 10ZM6.5 11C7.56251 11 8.53901 10.6318 9.30884 10.0159L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L10.0159 9.30884C10.6318 8.53901 11 7.56251 11 6.5C11 4.01472 8.98528 2 6.5 2C4.01472 2 2 4.01472 2 6.5C2 8.98528 4.01472 11 6.5 11ZM4.75 6C4.47386 6 4.25 6.22386 4.25 6.5C4.25 6.77614 4.47386 7 4.75 7H8.25C8.52614 7 8.75 6.77614 8.75 6.5C8.75 6.22386 8.52614 6 8.25 6H4.75Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const SUe="_copy-button_1km2g_1",CUe="_icon_1km2g_8",jUe="_hide-icon-until-hover_1km2g_12",Zk={copyButton:SUe,icon:CUe,hideIconUntilHover:jUe};function Dg({value:e,color:t,size:n,hideIconUntilHover:r,className:i,children:o}){const[a,s]=m.useState(!1),l=Tp(()=>s(!1),1e3);return e===void 0?o:u.jsxs(hs,{className:Te(i,Zk.copyButton,r&&Zk.hideIconUntilHover),variant:"ghost",size:"1",onClick:c=>{WN(e),s(!0),l(),c.stopPropagation()},children:[o,a?u.jsx(VFe,{className:Zk.icon,color:"green",height:n}):u.jsx(XFe,{className:Zk.icon,color:t,height:n})]})}function qk({children:e,...t}){return t.content?u.jsx(ci,{...t,children:e}):u.jsx(u.Fragment,{children:e})}function TUe(){var o;const{peer:e,identityKey:t}=ax(),n=Hn(`(min-width: ${Hte})`),r=Hn("(min-width: 798px)"),i=Hn("(min-width: 914px)");return m.useEffect(()=>{var s;const a=((s=e==null?void 0:e.info)==null?void 0:s.name)??t;document.title=a?`${hb} | ${a}`:hb},[t,e]),u.jsx(IUe,{showDropdown:!0,children:u.jsxs("div",{className:Te(nh.container,nh.horizontal,nh.pointer),children:[u.jsx(ks,{url:(o=e==null?void 0:e.info)==null?void 0:o.icon_url,size:28,isYou:!0}),n&&u.jsx(Yie,{shouldShrink:!0}),r&&u.jsxs(u.Fragment,{children:[u.jsx(Jie,{showTooltip:!0}),u.jsx(Xie,{showTooltip:!0})]}),i&&u.jsxs(u.Fragment,{children:[u.jsx(Qie,{}),u.jsx(Kie,{showTooltip:!0}),u.jsx(eoe,{})]})]})})}function IUe({showDropdown:e,children:t}){return e?u.jsx(zg,{content:u.jsx(EUe,{}),align:"end",children:t}):t}function EUe(){var t;const{peer:e}=ax();return u.jsxs(W,{direction:"column",wrap:"wrap",gap:"2",className:Te(nh.container,nh.dropdownMenu),style:{zIndex:Vf},children:[u.jsxs(W,{gap:"2",children:[u.jsx(ks,{url:(t=e==null?void 0:e.info)==null?void 0:t.icon_url,size:24,isYou:!0}),u.jsx(Yie,{})]}),u.jsx(Jie,{}),u.jsx(Xie,{}),u.jsx(Qie,{}),u.jsx(Kie,{}),u.jsx(NUe,{}),u.jsx($Ue,{}),u.jsx(eoe,{})]})}function Yie({shouldShrink:e}){const{identityKey:t}=ax();return u.jsx(rh,{label:"Validator Name",copyValue:t,shouldShrink:e,children:t})}function NUe(){var t;const{peer:e}=ax();return u.jsx(rh,{label:"Vote Pubkey",children:(t=e==null?void 0:e.vote[0])==null?void 0:t.vote_account})}function $Ue(){const e=J(hG),t=Tb(e);return u.jsx(rh,{label:"Vote Balance",children:u.jsx(Ag,{value:t,suffix:"SOL"})})}function Kie({showTooltip:e}){const t=J(fG),n=Tb(t);return u.jsx(rh,{label:"Identity Balance",tooltip:e?"Account balance of this validators identity account. The balance is on the highest slot of the currently active fork of the validator.":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Xie({showTooltip:e}){const t=J(mDe),n=t===void 0?void 0:z$(t,{significantDigits:4,trailingZeroes:!1});return u.jsx(rh,{label:"Stake %",tooltip:e?"What percentage of total stake is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"%"})})}function Jie({showTooltip:e}){const t=J(bre),n=Tb(t);return u.jsx(rh,{label:"Stake Amount",tooltip:e?"Amount of total stake that is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Qie(){var n;const{peer:e}=ax(),t=e==null?void 0:e.vote.reduce((r,i)=>i.activated_stake>r.maxStake?{maxStake:i.activated_stake,commission:i.commission}:r,{maxStake:0n,commission:void 0});return u.jsx(rh,{label:"Commission",children:u.jsx(Ag,{value:(n=t==null?void 0:t.commission)==null?void 0:n.toLocaleString(),suffix:"%"})})}function eoe(){const e=Uie(6e4),t=e?ere(e,{omitSeconds:!0}):void 0;return u.jsx(rh,{label:"Uptime",children:t==null?void 0:t.map(([n,r],i)=>u.jsxs(m.Fragment,{children:[i!==0&&"\xA0",u.jsx(Ag,{value:n,suffix:r,excludeSpace:!0})]},`${n}${r}`))})}function rh({label:e,tooltip:t,shouldShrink:n=!1,children:r,copyValue:i}){return r?u.jsx(qk,{content:t,children:u.jsxs(W,{direction:"column",minWidth:"0",flexShrink:n?"1":"0",children:[u.jsx(Z,{truncate:!0,className:nh.label,children:e}),u.jsx(Dg,{value:i,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(Z,{truncate:!0,className:nh.value,children:r})})]})}):null}function Ag({value:e,suffix:t,valueColor:n,excludeSpace:r}){return u.jsxs(u.Fragment,{children:[u.jsxs("span",{style:{color:n},children:[e,!r&&"\xA0"]}),u.jsx("span",{className:nh.valueSuffix,children:t})]})}const MUe="_nav-link_tb1ax_1",RUe="_icon_tb1ax_14",LUe="_dropdown-icon_tb1ax_19",PUe="_active_tb1ax_29",OUe="_nav-dropdown-content_tb1ax_41",sx={navLink:MUe,icon:RUe,dropdownIcon:LUe,active:PUe,navDropdownContent:OUe},zUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M21 5.47 12 12 7.62 7.62 3 11V8.52L7.83 5l4.38 4.38L21 3v2.47zM21 15h-4.7l-4.17 3.34L6 12.41l-3 2.13V17l2.8-2 6.2 6 5-4h4v-2z"})),DUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"})),AUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z"})),FUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"})),UUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"})),Gk={Overview:"/","Slot Details":"/slotDetails",Schedule:"/leaderSchedule",Gossip:"/gossip"};function Yk(){const e=D9e();return m.useMemo(()=>{const t=Object.entries(Gk).find(([n,r])=>e.pathname===r);return t?t[0]:"Overview"},[e.pathname])}function BUe(){const e=J(ao),t=J(eu),n=J(An),r=Ee(An),[i,o]=m.useMemo(()=>{if(e===void 0)return[-1,-1];const a=e.findIndex(l=>l>(n??t??0));let s=a-1;return s===e.findIndex(l=>l===(n??t??0))&&s--,[s,a]},[t,e,n]);return m.useMemo(()=>({navPrevLeaderSlot:(a=1)=>{if(i>-1&&a>0){const s=e==null?void 0:e[i-a+1];s!==void 0&&r(s)}},navNextLeaderSlot:(a=1)=>{if(o>-1&&a>0){const s=e==null?void 0:e[o+a-1];s!==void 0&&r(s)}}}),[e,o,i,r])}const WUe={Overview:zUe,Schedule:AUe,Gossip:FUe,"Slot Details":DUe},Kk=m.forwardRef(({label:e,isActive:t,showDropdownIcon:n=!1,isLink:r,...i},o)=>{const a=J(qy),s=bk(a),l=WUe[e],c=Gk[e],d=m.useMemo(()=>{const f=t?s:Qte;return u.jsxs(u.Fragment,{children:[u.jsx(l,{className:sx.icon,fill:f}),u.jsx(Z,{truncate:!0,children:e}),n&&u.jsx(UUe,{className:sx.dropdownIcon,fill:f})]})},[l,s,t,e,n]);return u.jsx(hs,{ref:o,...i,size:"2",variant:"soft",color:"gray",className:Te(sx.navLink,{[sx.active]:t}),style:{color:t?s:void 0},asChild:r,children:r?u.jsx(sp,{to:c,children:d}):d})});Kk.displayName="NavButton";function VUe(){const e=Yk();return u.jsx(W,{gap:`${Wf}px`,children:Object.keys(Gk).map(t=>{const n=t;if(!(n==="Gossip"&&xi))return u.jsx(Kk,{label:n,isActive:e===n,isLink:!0},n)})})}function HUe(){const e=J(jg),t=Yk();return u.jsxs(bV,{children:[u.jsx(xV,{asChild:!0,children:u.jsx(Kk,{label:t,isActive:!0,showDropdownIcon:!0,isLink:!1},t)}),u.jsx(s7,{container:e,children:u.jsx(_V,{side:"bottom",sideOffset:5,className:sx.navDropdownContent,style:{zIndex:Vf},children:Object.keys(Gk).map(n=>{const r=n;if(!(r==="Gossip"&&xi))return u.jsx(wV,{asChild:!0,children:u.jsx(Kk,{label:r,isActive:r===t,isLink:!0},r)},r)})})})]})}function ZUe(){const e=BUe();return m.useEffect(()=>{const t=n=>{n.code==="ArrowLeft"?e.navPrevLeaderSlot():n.code==="ArrowRight"&&e.navNextLeaderSlot()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),null}const toe="/assets/firedancer_logo-CrgwxzPk.svg",noe="/assets/frankendancer_logo-CHyfJ772.svg",qUe="_logo_1ml9x_1",GUe={logo:qUe};function YUe(){return u.jsx(Z0,{children:u.jsx(sp,{to:"/",children:u.jsx("img",{className:GUe.logo,width:dN,src:Vi?toe:noe,alt:hb})})})}const KUe="_cluster-container_7aa6c_1",XUe="_cluster_7aa6c_1",JUe="_cluster-name_7aa6c_19",W$={clusterContainer:KUe,cluster:XUe,clusterName:JUe},QUe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M6.39844 3.39062V9.89844H11.6484V11.0742H0V9.89844H5.25V3.39062C4.72135 3.20833 4.36589 2.85286 4.18359 2.32422H2.32422L4.07422 6.39844C4.07422 6.72656 3.98307 7.02734 3.80078 7.30078C3.61849 7.55599 3.3724 7.76562 3.0625 7.92969C2.7526 8.07552 2.40625 8.14844 2.02344 8.14844C1.65885 8.14844 1.32161 8.07552 1.01172 7.92969C0.701823 7.76562 0.455729 7.55599 0.273438 7.30078C0.0911458 7.02734 0 6.72656 0 6.39844L1.75 2.32422H0.574219V1.14844H4.18359C4.29297 0.820312 4.49349 0.546875 4.78516 0.328125C5.09505 0.109375 5.44141 0 5.82422 0C6.20703 0 6.54427 0.109375 6.83594 0.328125C7.14583 0.546875 7.35547 0.820312 7.46484 1.14844H11.0742V2.32422H9.89844L11.6484 6.39844C11.6484 6.72656 11.5573 7.02734 11.375 7.30078C11.1927 7.55599 10.9466 7.76562 10.6367 7.92969C10.3268 8.07552 9.98958 8.14844 9.625 8.14844C9.24219 8.14844 8.89583 8.07552 8.58594 7.92969C8.27604 7.76562 8.02995 7.55599 7.84766 7.30078C7.66536 7.02734 7.57422 6.72656 7.57422 6.39844L9.32422 2.32422H7.46484C7.28255 2.85286 6.92708 3.20833 6.39844 3.39062ZM10.7188 6.39844L9.625 3.85547L8.53125 6.39844H10.7188ZM3.11719 6.39844L2.02344 3.85547L0.929688 6.39844H3.11719ZM5.82422 2.32422C5.98828 2.32422 6.125 2.26953 6.23438 2.16016C6.34375 2.03255 6.39844 1.89583 6.39844 1.75C6.39844 1.58594 6.34375 1.44922 6.23438 1.33984C6.125 1.21224 5.98828 1.14844 5.82422 1.14844C5.66016 1.14844 5.52344 1.21224 5.41406 1.33984C5.30469 1.44922 5.25 1.58594 5.25 1.75C5.25 1.89583 5.30469 2.03255 5.41406 2.16016C5.52344 2.26953 5.66016 2.32422 5.82422 2.32422Z"})),eBe=e=>m.createElement("svg",{width:7,height:11,viewBox:"0 0 7 11",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M2.48828 10.5H1.88672L2.48828 6.42578H0.4375C0.145833 6.42578 0.0729167 6.29818 0.21875 6.04297C0.273438 5.95182 0.282552 5.92448 0.246094 5.96094C1.17578 4.33854 2.30599 2.35156 3.63672 0H4.23828L3.63672 4.07422H5.6875C5.94271 4.07422 6.02474 4.20182 5.93359 4.45703L2.48828 10.5Z"})),tBe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M4.18359 2.26953L3.41797 2.13281C2.9987 2.04167 2.64323 2.15104 2.35156 2.46094L0 4.8125L2.10547 5.71484C2.1237 5.67839 2.1875 5.54167 2.29688 5.30469C2.40625 5.06771 2.55208 4.77604 2.73438 4.42969C2.91667 4.08333 3.1263 3.72786 3.36328 3.36328C3.61849 2.98047 3.89193 2.61589 4.18359 2.26953ZM5.33203 8.50391L2.89844 6.07031C2.89844 6.07031 2.95312 5.95182 3.0625 5.71484C3.17188 5.47786 3.31771 5.17708 3.5 4.8125C3.70052 4.44792 3.92839 4.07422 4.18359 3.69141C4.45703 3.29036 4.7487 2.9349 5.05859 2.625C5.69661 1.98698 6.29818 1.49479 6.86328 1.14844C7.42839 0.783854 7.94792 0.519531 8.42188 0.355469C8.91406 0.191406 9.35156 0.0911458 9.73438 0.0546875C10.1172 0.0182292 10.4362 0.0182292 10.6914 0.0546875C10.9466 0.0911458 11.1289 0.127604 11.2383 0.164062C11.2747 0.273438 11.3112 0.455729 11.3477 0.710938C11.3841 0.966146 11.3841 1.28516 11.3477 1.66797C11.3112 2.05078 11.2109 2.48828 11.0469 2.98047C10.8828 3.45443 10.6185 3.97396 10.2539 4.53906C9.90755 5.10417 9.41536 5.70573 8.77734 6.34375C8.46745 6.65365 8.11198 6.94531 7.71094 7.21875C7.32812 7.47396 6.95443 7.70182 6.58984 7.90234C6.22526 8.08464 5.92448 8.23047 5.6875 8.33984C5.45052 8.44922 5.33203 8.50391 5.33203 8.50391ZM9.13281 7.21875L9.26953 7.98438C9.36068 8.40365 9.2513 8.75911 8.94141 9.05078L6.58984 11.4023L5.6875 9.29688C5.72396 9.27865 5.86068 9.21484 6.09766 9.10547C6.33464 8.99609 6.6263 8.85026 6.97266 8.66797C7.31901 8.48568 7.67448 8.27604 8.03906 8.03906C8.42188 7.78385 8.78646 7.51042 9.13281 7.21875ZM4.07422 9.07812C4.07422 8.75 3.99219 8.45833 3.82812 8.20312C3.68229 7.92969 3.47266 7.72005 3.19922 7.57422C2.94401 7.41016 2.65234 7.32812 2.32422 7.32812C2.08724 7.32812 1.85938 7.3737 1.64062 7.46484C1.42188 7.55599 1.23958 7.68359 1.09375 7.84766C0.947917 7.97526 0.820312 8.1849 0.710938 8.47656C0.601562 8.75 0.501302 9.0599 0.410156 9.40625C0.31901 9.73438 0.236979 10.0534 0.164062 10.3633C0.109375 10.6732 0.0638021 10.9284 0.0273438 11.1289C0.00911458 11.3112 0 11.4023 0 11.4023C0 11.4023 0.0911458 11.3932 0.273438 11.375C0.473958 11.3385 0.729167 11.293 1.03906 11.2383C1.34896 11.1654 1.66797 11.0833 1.99609 10.9922C2.34245 10.901 2.65234 10.8008 2.92578 10.6914C3.21745 10.582 3.42708 10.4544 3.55469 10.3086C3.71875 10.1628 3.84635 9.98047 3.9375 9.76172C4.02865 9.54297 4.07422 9.3151 4.07422 9.07812ZM6.39844 3.82812C6.39844 4.15625 6.50781 4.4388 6.72656 4.67578C6.96354 4.89453 7.24609 5.00391 7.57422 5.00391C7.90234 5.00391 8.17578 4.89453 8.39453 4.67578C8.63151 4.4388 8.75 4.15625 8.75 3.82812C8.75 3.5 8.63151 3.22656 8.39453 3.00781C8.17578 2.77083 7.90234 2.65234 7.57422 2.65234C7.24609 2.65234 6.96354 2.77083 6.72656 3.00781C6.50781 3.22656 6.39844 3.5 6.39844 3.82812Z"}));function roe({strategy:e,iconSize:t,tooltipContent:n}){const r=J(qy),i=m.useMemo(()=>({width:`${t}px`,height:`${t}px`,color:bk(r)}),[r,t]),o=m.useMemo(()=>{if(e===ld.balanced)return u.jsx(QUe,{...i});if(e===ld.perf)return u.jsx(eBe,{...i});if(e===ld.revenue)return u.jsx(tBe,{...i})},[e,i]);return n?u.jsx(ci,{content:n,children:u.jsx("div",{style:{lineHeight:0},children:o})}):o}const lx=2;function nBe(){const e=J(qy),t=J(uG),n=J(cG);if(!e&&!t)return null;let r=e;return e==="mainnet-beta"&&(r="mainnet"),u.jsxs(W,{width:`${hN+lx}px`,className:W$.clusterContainer,gap:"5px",ml:`-${lx}px`,p:`${lx}px 5px ${lx}px ${lx}px`,children:[u.jsxs(W,{className:W$.cluster,flexGrow:"1",direction:"column",align:"center",style:{background:bk(e)},children:[u.jsx(ci,{content:"Cluster the validator is joined to",children:u.jsx(Z,{className:W$.clusterName,children:r})}),u.jsx(ci,{content:`Current validator software version. Commit Hash: ${n||"unknown"}`,children:u.jsxs(Z,{children:["v",t]})})]}),u.jsx(iBe,{})]})}function rBe(){const e=J(qy),t=bk(e);return u.jsx("div",{style:{background:t,height:kb,width:"100%"}})}function iBe(){const e=J(s3),t=m.useMemo(()=>{if(e===ld.balanced)return"Transaction scheduler strategy: balanced";if(e===ld.perf)return"Transaction scheduler strategy: performance";if(e===ld.revenue)return"Transaction scheduler strategy: revenue"},[e]);if(e)return u.jsx(roe,{strategy:e,iconSize:12,tooltipContent:t})}const oBe="_nav-filter-toggle-group_148xa_1",aBe="_lg_148xa_47",sBe="_toggle-button_148xa_43",lBe="_floating_148xa_61",uBe="_mirror_148xa_75",cBe="_slot-nav-container_148xa_81",dBe="_nav-background_148xa_85",Ip={navFilterToggleGroup:oBe,lg:aBe,toggleButton:sBe,floating:lBe,mirror:uBe,slotNavContainer:cBe,navBackground:dBe},fBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z"}));function Fg(){const e=Hn(Vte),[t,n]=Vl(Jze),r=Yk()==="Schedule",i=r||!t,o=r;return{isNarrowScreen:e,showNav:i,setIsNavCollapsed:n,showOnlyEpochBar:o,blurBackground:e&&!t&&!o,occupyRowWidth:o||!e&&!t}}function V$({isFloating:e,isLarge:t}){const{showNav:n,setIsNavCollapsed:r,showOnlyEpochBar:i}=Fg(),o=`${t?NLe:cN}px`;return i?u.jsx("div",{style:{height:o,width:o}}):u.jsx(nl,{size:"1",onClick:()=>r(a=>!a),className:Te(Ip.toggleButton,{[Ip.floating]:e}),style:{height:o,width:o},children:u.jsx(fBe,{className:Te({[Ip.lg]:t,[Ip.mirror]:n})})})}function ioe(){const{setIsNavCollapsed:e}=Fg();return u.jsx("div",{onClick:()=>e(!0),className:"blur",style:{zIndex:Vf-2}})}const hBe="_nav-background_1sjct_1",pBe={navBackground:hBe},mBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm-1-5.05-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01z"})),gBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z"})),vBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),m.createElement("path",{d:"M22 7.47V5.35C20.05 4.77 16.56 4 12 4c-2.15 0-4.11.86-5.54 2.24.13-.85.4-2.4 1.01-4.24H5.35C4.77 3.95 4 7.44 4 12c0 2.15.86 4.11 2.24 5.54-.85-.14-2.4-.4-4.24-1.01v2.12C3.95 19.23 7.44 20 12 20c2.15 0 4.11-.86 5.54-2.24-.14.85-.4 2.4-1.01 4.24h2.12c.58-1.95 1.35-5.44 1.35-10 0-2.15-.86-4.11-2.24-5.54.85.13 2.4.4 4.24 1.01zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"})),yBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{fillRule:"evenodd",d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 10c0 3.31-2.69 6-6 6s-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4v3L8 7l4-4v3c3.31 0 6 2.69 6 6z"})),bBe="_health-pane_hbx15_1",xBe="_vertical_hbx15_14",_Be="_narrow_hbx15_18",wBe="_health-box_hbx15_22",kBe="_stacked_hbx15_36",SBe="_alerting_hbx15_44",CBe="_popover_hbx15_58",jBe="_title_hbx15_62",TBe="_status_hbx15_67",IBe="_content_hbx15_77",dl={healthPane:bBe,vertical:xBe,narrow:_Be,healthBox:wBe,stacked:kBe,alerting:SBe,popover:CBe,title:jBe,status:TBe,content:IBe},ooe={forceUpdateIntervalMs:1500,halfLifeMs:5e3,initMinSamples:5};function Ug(e,t){const{forceUpdateIntervalMs:n,halfLifeMs:r,initMinSamples:i}={...ooe,...t},o=m.useMemo(()=>r/Math.log(2),[r]),[a,s]=m.useState(),l=m.useRef(),c=m.useRef(e);c.current=e;const d=m.useRef(),f=m.useRef(0),p=m.useRef(!1);p.current=a!==void 0;const v=m.useCallback(()=>{s(void 0),l.current=void 0,d.current=void 0,f.current=0,y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)},[]),x=m.useCallback(b=>{b??(b=c.current);const w=performance.now();if(l.current===void 0){b!=null&&(l.current={value:b,tsMs:w});return}b??(b=l.current.value);const{value:_,tsMs:S}=l.current,C=w-S;if(!isFinite(C)||C<=0)return;const j=b-_;if(!isFinite(j)||j<0){v();return}if(l.current={value:b,tsMs:w},!p.current&&j>0){if(f.current+=1,!d.current){d.current={value:b,tsMs:w};return}if(f.current{const E=j/C*1e3;if(T===void 0)return E>0?E:T;const $=-Math.expm1(-C/o);return T*(1-$)+E*$})},[i,v,o]),y=m.useRef();return m.useEffect(()=>{if(y.current!==void 0&&(clearTimeout(y.current),y.current=void 0),x(e),n!==void 0){let b=function(){y.current=setTimeout(()=>{x(),b()},n)};b()}return()=>{y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)}},[n,x,e]),{ema:a,reset:v}}function Bg(e,t=ooe){return Ug(e,t).ema??0}const H$=["turbine","gossip","tpu","repair","metrics"],aoe={Ingress:{turbine:64e6/8,gossip:1e9/8,tpu:1e8/8,repair:1e6/8,metrics:1e4/8,Total:118901e4/8},Egress:{turbine:1e9/8,gossip:1e9/8,tpu:1e6/8,repair:1e6/8,metrics:1e4/8,Total:205001e4/8}};function soe(e){return e?"Unhealthy":"Healthy"}function EBe(){const e=Hn("(max-width: 450px)"),t=Hn("(max-width: 390px)"),n=ABe(),r="Health Pane",i=Te(dl.healthPane,{[dl.narrow]:t});return e&&n.length>1?u.jsx(zg,{className:dl.popover,content:u.jsx(W,{direction:"column",gap:"8px",children:n.map(o=>u.jsx(loe,{...o},o.title))}),children:u.jsx("button",{"aria-label":r,className:Te(i,dl.vertical),children:n.map(o=>u.jsx(uoe,{...o,isStacked:!0},o.title))})}):u.jsx("div",{"aria-label":r,className:i,children:n.map(o=>u.jsx(uoe,{...o},o.title))})}function loe({title:e,description:t,isAlerting:n}){return u.jsxs(W,{direction:"column",gap:"4px",children:[u.jsxs(W,{gap:"5px",children:[u.jsx(Z,{className:dl.title,children:e}),u.jsx(Z,{className:Te(dl.status,{[dl.alerting]:n}),children:soe(n)})]}),u.jsx("div",{className:dl.content,children:u.jsx(Z,{children:t})})]})}function uoe({title:e,description:t,Icon:n,isAlerting:r,isStacked:i=!1}){const o=`${e}: ${soe(r)}`,a=Te(dl.healthBox,{[dl.alerting]:r});return i?u.jsx("div",{"aria-label":o,className:Te(a,dl.stacked)}):u.jsx(zg,{className:dl.popover,content:u.jsx(loe,{title:e,description:t,isAlerting:r}),children:u.jsx("button",{"aria-label":o,className:a,children:u.jsx(n,{width:"75%"})})})}function NBe(){const e=J(DT),t=J(PT),n=J(Gy),r=e==="delinquent";return m.useMemo(()=>({title:"Vote Health",Icon:mBe,isAlerting:r,description:r?t==null||n==null?"Missing vote slot or turbine slot data.":`We haven't landed a vote since slot ${t} (${t-n}).`:"Our consensus votes are being received by other nodes normally."}),[r,t,n])}function $Be(){const e=J(LG);return m.useMemo(()=>{if(!e)return null;const t=e.status==="sleeping"?"sleeping and disconnected from":e.status==="disconnected"?`${e.status} from`:`${e.status} to`;return{title:"Bundle Health",Icon:gBe,isAlerting:e.status!=="connected"&&e.status!=="sleeping",description:`Currently ${t} ${e.name} - ${e.url} (${e.ip})`}},[e])}const coe={forceUpdateIntervalMs:void 0},MBe=xi?coe:{forceUpdateIntervalMs:1e3,initMinSamples:2,halfLifeMs:1e3},RBe=.5,doe=xi?coe:{halfLifeMs:1e3};function LBe(){const e=J(Gy),t=e==null,{ema:n}=Ug(xi?null:e,MBe),r=t||n!=null&&nxi?null:{title:"Turbine Health",Icon:vBe,isAlerting:l,description:l?t?"Missing turbine slot data.":"We are receiving little to no block data from other nodes over Turbine.":"Block data is arriving normally over Turbine."},[l,t])}const PBe=H$.indexOf("turbine"),OBe=H$.indexOf("repair"),zBe=12;function DBe(){const e=J(Gy),t=J(dp);return m.useMemo(()=>{if(xi)return null;const n=e==null||t==null||e-t>zBe;return{title:"Replay Health",Icon:yBe,isAlerting:n,description:n?e==null||t==null?"Missing turbine slot or processed slot data.":`Replay is ${e-t} behind the rest of the cluster.`:"Replay is keeping up with the cluster."}},[e,t])}function ABe(){const e=NBe(),t=$Be(),n=LBe(),r=DBe();return[e,t,n,r].filter(i=>i!=null)}function foe({isStartup:e}){const t=Hn("(max-width: 1218px)"),n=Hn("(max-width: 401px)"),r=Hn(`(max-width: ${Hte})`),{isNarrowScreen:i,blurBackground:o,showNav:a,showOnlyEpochBar:s}=Fg(),l=!a&&n,c="3px";return u.jsxs("div",{className:"sticky",style:{top:0,backgroundColor:"var(--color-background)",zIndex:Vf},children:[u.jsx(rBe,{}),u.jsxs(Mt,{px:"2",className:"app-width-container",children:[u.jsxs(W,{height:`${Sb}px`,align:"center",children:[u.jsxs(W,{className:Te({[pBe.navBackground]:a&&!s}),height:"100%",align:"center",gapX:l?c:`${ck}px`,pr:l?c:`${Wf}px`,ml:`${-fN}px`,pl:`${fN}px`,children:[!e&&i&&!a&&u.jsx(V$,{isLarge:!0}),u.jsx(YUe,{}),u.jsx(nBe,{})]}),u.jsxs(W,{position:"relative",gapX:l?c:`${uN}px`,height:"100%",flexGrow:"1",align:"center",justify:"between",pl:l?c:`${uN-Wf}px`,minWidth:"0",flexShrink:"100",children:[!e&&u.jsxs(W,{flexShrink:r?"1":"0",minWidth:"100px",children:[u.jsx(ZUe,{}),t?u.jsx(HUe,{}):u.jsx(VUe,{})]}),u.jsxs(W,{gap:i?"1":"3",justify:"end",align:"center",minWidth:"50px",flexGrow:"1",children:[u.jsx(TUe,{}),u.jsx(EBe,{}),u.jsxs(W,{gap:"1",direction:i?"column":"row",children:[u.jsx(FBe,{}),e?u.jsx(BBe,{}):u.jsx(UBe,{})]})]}),o&&u.jsx(ioe,{})]})]}),!e&&!i&&u.jsx("div",{style:{position:"relative"},children:u.jsx("div",{style:{position:"absolute",top:0,left:0},children:u.jsx(V$,{isFloating:!a})})})]})]})}function FBe(){return u.jsx(zg,{content:u.jsx(Z,{size:"2",wrap:"wrap",children:u.jsx("a",{href:"https://db-ip.com",children:"IP Geolocation by DB-IP"})}),children:u.jsx(Zie,{color:"var(--gray-11)"})})}function UBe(){const e=J(ol),t=Ee(W3),n=Ee(tee);return e?u.jsx(nl,{ref:n,variant:"ghost",color:"gray",onClick:()=>t(!0),children:u.jsx(Gie,{})}):null}function BBe(){const e=J(ol),t=Ee(W3),n=J(tee),r=J(dre),i=m.useCallback(()=>{if(!n||!r)return;const{bottom:o,left:a,width:s,height:l}=n.getBoundingClientRect();r.style.setProperty("--transform-origin",`${Math.round(a+s/2)}px ${Math.round(o-l/2)}px`),t(!1)},[r,n,t]);return e?u.jsx(nl,{variant:"ghost",color:"gray",onClick:i,children:u.jsx(B$,{color:"white"})}):null}const WBe="_logo-container_1po46_1",VBe="_hidden_1po46_30",hoe={logoContainer:WBe,hidden:VBe};function HBe(){const e=J(Gu),[t,n]=m.useState(!0);return e&&t&&n(!1),u.jsx(W,{className:Te(hoe.logoContainer,{[hoe.hidden]:!t}),children:u.jsx("img",{src:ree,alt:"fd"})})}const ZBe="_secondary-color_2x9jp_1",qBe="_ellipsis_2x9jp_5",GBe="_card_2x9jp_11",YBe="_sparkline-card_2x9jp_19",KBe="_snapshot-tile-title_2x9jp_25",XBe="_snapshot-tile-busy_2x9jp_31",JBe="_sparkline-container_2x9jp_36",QBe="_bars-card_2x9jp_54",eWe="_card-header_2x9jp_62",tWe="_title_2x9jp_68",nWe="_accounts-rate_2x9jp_74",rWe="_total_2x9jp_79",iWe="_throughput_2x9jp_84",oWe="_with-prefix_2x9jp_87",aWe="_reading-card_2x9jp_95",sWe="_read-path-container_2x9jp_96",lWe="_read-path_2x9jp_96",uWe="_decompressing-card_2x9jp_124",cWe="_decompressing-card-left_2x9jp_127",dWe="_decompressing-card-right_2x9jp_137",fWe="_inserting-card_2x9jp_146",lr={secondaryColor:ZBe,ellipsis:qBe,card:GBe,sparklineCard:YBe,snapshotTileTitle:KBe,snapshotTileBusy:XBe,sparklineContainer:JBe,barsCard:QBe,cardHeader:eWe,title:tWe,accountsRate:nWe,total:rWe,throughput:iWe,withPrefix:oWe,readingCard:aWe,readPathContainer:sWe,readPath:lWe,decompressingCard:uWe,decompressingCardLeft:cWe,decompressingCardRight:dWe,insertingCard:fWe},hWe="_busy_1fw9w_1",pWe={busy:hWe};function Xk({busy:e,className:t}){const n=e!==void 0?Math.trunc(e*100):void 0;return u.jsx(W,{gap:"1",align:"end",children:u.jsxs(Z,{className:t??pWe.busy,style:{color:`color-mix(in srgb, ${yN}, ${bN} ${n}%)`},children:[n??"-","%"]})})}function mWe(e){const t=new Set;let n=null,r=performance.now();function i(){const s=()=>{const l=performance.now();if(l-r>=e){const c=l-r;r=l,t.forEach(d=>d(l,c))}n=requestAnimationFrame(s)};n=requestAnimationFrame(s)}function o(){n!=null&&cancelAnimationFrame(n),n=null}function a(s){return t.add(s),n==null&&i(),()=>{t.delete(s),t.size||o()}}return{subscribeClock:a}}const Jk=2;function poe({isLive:e,tileCount:t,liveIdlePerTile:n,queryIdlePerTile:r}){var c;const i=m.useMemo(()=>new Array(t).fill(0),[t]),o=n==null?void 0:n.map(d=>d===-1?void 0:1-d),a=r==null?void 0:r.map(d=>{const f=d.filter(p=>p!==-1);if(f.length)return 1-rt.mean(f)}).filter(d=>d!==void 0),s=i.map((d,f)=>{const p=r==null?void 0:r.map(v=>1-v[f]).filter(v=>v!==void 0&&v<=1);if(p!=null&&p.length)return rt.mean(p)}),l=(c=e?o:s)==null?void 0:c.filter(d=>d!==void 0&&d<=1);return{avgBusy:l!=null&&l.length?rt.mean(l):void 0,aggQueryBusyPerTs:a,tileCountArr:i,liveBusyPerTile:o,busy:l}}function Z$(e){const t=m.useRef();return e!==void 0&&(t.current=e),e??t.current}const moe=[0,1],gWe=150,goe=3,q$=new Map;function voe(e,t,n){var i;const r=performance.now();for(e.push({value:n,ts:r});(((i=e[1])==null?void 0:i.ts)??0)+t{if(!(t!=null&&t.length))return;if(!vWe(t))return t;const w=performance.now(),_=n/(t.length-1),S=w-n;return t.map((C,j)=>({value:C,ts:S+j*_}))},[n,t]),{pxPerTick:p,width:v,windowMs:x}=m.useMemo(()=>{let w=n,_=i;const S=_/(w/s);return d||(w+=s*goe,_+=S*goe),{pxPerTick:S,width:_,windowMs:w}},[i,n,d,s]),y=m.useRef([{value:void 0,ts:performance.now()-x},{value:void 0,ts:performance.now()}]),b=m.useRef(!1);return m.useEffect(()=>{if(b.current||!(f!=null&&f.length))return;b.current=!0;const w=performance.now(),_=f[f.length-1].ts;y.current=f.map(({ts:S,value:C})=>({value:C,ts:w-(_-S)}))},[f]),m.useEffect(()=>{a||d||voe(y.current,x,e)},[d,x,a,e]),Qu(()=>{var _;if(a||d)return;const w=(_=y.current[y.current.length-1])==null?void 0:_.ts;w!==void 0&&performance.now()-w{function w(_,S){var $,D;const C=_.length;if(C===0){c([]);return}const j=S-x,T=v/x,E=new Array(C);for(let M=0;M({value:T,ts:_-(S-j)}));w(C,_)}else{q$.has(s)||q$.set(s,mWe(s));const _=q$.get(s);if(_)return _.subscribeClock(S=>{w(y.current,S)})}},[r,f,d,s,v,x]),{scaledDataPoints:l,range:moe,pxPerTick:p,chartTickMs:s,isLive:!d}}const yWe="_range-label_14i5c_1",bWe="_top_14i5c_9",xWe="_bottom_14i5c_13",_We="_g-transform_14i5c_17",ux={rangeLabel:yWe,top:bWe,bottom:xWe,gTransform:_We},wWe=400*4,kWe=80;function cx({value:e,history:t,height:n=24,background:r,windowMs:i=wWe,strokeWidth:o=Jk,updateIntervalMs:a=kWe,tickMs:s}){const[l,{width:c}]=Ss(),{scaledDataPoints:d,range:f,pxPerTick:p,chartTickMs:v,isLive:x}=yoe({value:e,history:t,windowMs:i,height:n,width:c,updateIntervalMs:a,tickMs:s});return u.jsx(boe,{svgRef:l,scaledDataPoints:d,range:f,height:n,background:r,pxPerTick:p,tickMs:v,isLive:x,strokeWidth:o})}function boe({svgRef:e,scaledDataPoints:t,range:n=moe,showRange:r=!1,height:i,background:o=Tne,pxPerTick:a,tickMs:s,isLive:l,strokeWidth:c=Jk}){const d=m.useRef(null),f=m.useRef(null),p=m.useRef(null),v=m.useMemo(()=>{const y=n[1]-n[0],b=(i-c*2)/y,w=b*(n[1]-1);return[w+b,w]},[i,n,c]),x=m.useMemo(()=>t.map(({x:y,y:b})=>`${y},${b}`).join(" "),[t]);return m.useLayoutEffect(()=>{var b,w,_;const y=d.current;if(y)if(l){p.current||(p.current=y.animate([{transform:"translate3d(0px, 0, 0)"},{transform:"translate3d(0px, 0, 0)"}],{duration:s,easing:"linear",fill:"forwards"}),p.current.cancel()),p.current.finish(),(b=f.current)==null||b.setAttribute("points",x);const S=p.current.effect;S.setKeyframes([{transform:"translate3d(0px, 0, 0)"},{transform:`translate3d(${-a}px, 0, 0)`}]),S.updateTiming({duration:s,easing:"linear",fill:"forwards"}),p.current.currentTime=0,p.current.play()}else(w=f.current)==null||w.setAttribute("points",x),(_=p.current)==null||_.cancel()},[l,x,a,s]),u.jsxs(u.Fragment,{children:[u.jsxs("svg",{ref:e,xmlns:"http://www.w3.org/2000/svg",width:"100%",height:`${i}px`,fill:"none",style:{background:o},shapeRendering:"optimizeSpeed",children:[u.jsx("g",{ref:d,className:ux.gTransform,children:u.jsx("polyline",{ref:f,stroke:"url(#paint0_linear_2971_11300)",strokeWidth:c,strokeLinecap:"butt",vectorEffect:"non-scaling-stroke",pointerEvents:"none"})}),u.jsx("defs",{children:u.jsxs("linearGradient",{id:"paint0_linear_2971_11300",x1:"59.5",y1:v[0],x2:"59.5",y2:v[1],gradientUnits:"userSpaceOnUse",children:[u.jsx("stop",{stopColor:yN}),u.jsx("stop",{offset:"1",stopColor:bN})]})})]}),r&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:Te(ux.rangeLabel,ux.top),children:[Math.round(n[1]*100),"%"]}),u.jsxs("div",{className:Te(ux.rangeLabel,ux.bottom),children:[Math.round(n[0]*100),"%"]})]})]})}const Qk=15,xoe=Qk*6+1,_oe=Qk*15+1,SWe=6e3,CWe=50;function G$({title:e,tileType:t,isComplete:n}){const r=J(Nb),i=J(qze),{avgBusy:o}=poe({isLive:!0,tileCount:r[t],liveIdlePerTile:i==null?void 0:i[t]}),a=Z$(o),{scaledDataPoints:s,range:l,pxPerTick:c,chartTickMs:d,isLive:f}=yoe({value:a,windowMs:SWe,height:xoe,width:_oe,updateIntervalMs:CWe,stopShifting:n});return u.jsxs(Ey,{className:Te(lr.card,lr.sparklineCard),children:[u.jsxs(W,{justify:"between",align:"center",children:[u.jsx(Z,{className:lr.snapshotTileTitle,children:e}),u.jsx(Xk,{busy:a,className:lr.snapshotTileBusy})]}),u.jsx(W,{className:lr.sparklineContainer,style:{alignSelf:"center",width:`${_oe}px`,backgroundSize:`${Qk}px ${Qk}px`},children:u.jsx(boe,{scaledDataPoints:s,range:l,showRange:!0,height:xoe,background:"transparent",tickMs:d,pxPerTick:c,isLive:f})})]})}const jWe="_bars_1d34t_1",TWe={bars:jWe},IWe=2;function Y$({value:e,max:t,barWidth:n=IWe}){const r=!t||!e?0:rt.clamp(e/t,0,1);return u.jsx("div",{className:TWe.bars,style:{"--bar-width":`${n}px`,"--bar-gap":`${n*1.5}px`,"--pct":r}})}function woe(e,t,n){const r=performance.now(),i=[...e,[t,r]];for(;i.length>2&&i[0]&&i[0][1]<=r-n;)i.shift();return i}function koe(e,t=500){const[n,r]=m.useState([]);m.useEffect(()=>{e!=null&&r(o=>woe(o,e,t))},[e,t]),Qu(()=>{r(o=>{const a=performance.now(),s=o[o.length-1];return s&&s[1]{r([])},[]);return{valuePerSecond:m.useMemo(()=>{if(!(n.length<=1))return 1e3*(n[n.length-1][0]-n[0][0])/(n[n.length-1][1]-n[0][1])},[n]),reset:i}}const EWe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"}));function K$({headerContent:e,footer:t,throughput:n,containerClassName:r,maxThroughput:i}){return u.jsxs(Ey,{className:Te(lr.card,lr.barsCard,r),children:[u.jsx(W,{justify:"between",align:"center",wrap:"wrap",gapX:"4",className:lr.cardHeader,children:e}),u.jsx(Y$,{value:n??0,max:i}),t]})}function e6({value:e,unit:t}){return u.jsxs(u.Fragment,{children:[u.jsx(Z,{children:e??"--"}),t&&u.jsxs(u.Fragment,{children:[" ",u.jsx(Z,{className:lr.secondaryColor,children:t})]})]})}function X$({text:e}){return u.jsx(Z,{className:Te(lr.title,lr.ellipsis),children:e})}function NWe({cumulativeAccounts:e}){const t=J(Gu),{valuePerSecond:n,reset:r}=koe(e,1e3);m.useEffect(()=>{r()},[t,r]);const i=m.useMemo(()=>{if(e!=null&&n==null)return"0";if(n!=null)return D$.format(n)},[n,e]);return u.jsx("div",{className:lr.accountsRate,children:u.jsx(e6,{value:i,unit:"Accounts / sec"})})}function J$({completed:e,total:t}){return u.jsxs("div",{className:lr.total,children:[u.jsx(e6,{value:e==null?void 0:e.value,unit:e==null?void 0:e.unit}),u.jsx(Z,{children:" / "}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit})]})}function t6({prefix:e,throughput:t}){return u.jsxs("div",{className:Te(lr.throughput,{[lr.withPrefix]:!!e}),children:[e&&u.jsxs(Z,{className:lr.secondaryColor,children:[e," "]}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit}),u.jsx(Z,{className:lr.secondaryColor,children:"/sec"})]})}function $We({readPath:e}){return u.jsxs(W,{align:"center",gap:"10px",wrap:"nowrap",className:lr.readPathContainer,children:[u.jsx(EWe,{}),u.jsx(Z,{className:Te(lr.readPath,lr.ellipsis),children:e})]})}function MWe({compressedCompleted:e,compressedTotal:t,readPath:n}){const r=J(Gu),{ema:i,reset:o}=Ug(e);m.useEffect(()=>{o()},[r,o]);const a=i==null?void 0:Da(i),s=e==null?void 0:Da(e),l=t==null?void 0:Da(t),c=m.useMemo(()=>u.jsx($We,{readPath:n}),[n]);return u.jsx(K$,{containerClassName:lr.readingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(X$,{text:"Reading"}),u.jsx(J$,{completed:s,total:l}),u.jsx(t6,{throughput:a})]}),footer:c,throughput:i,maxThroughput:8e8})}function RWe({compressedCompleted:e,decompressedCompleted:t,compressedTotal:n}){const r=J(Gu),{ema:i,reset:o}=Ug(e),{ema:a,reset:s}=Ug(t);m.useEffect(()=>{o(),s()},[r,o,s]);const l=i==null?void 0:Da(i),c=a==null?void 0:Da(a),d=e==null?void 0:Da(e),f=n==null?void 0:Da(n);return u.jsx(K$,{containerClassName:lr.decompressingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsxs(W,{flexGrow:"1",justify:"between",align:"center",className:lr.decompressingCardLeft,children:[u.jsx(X$,{text:"Decompressing"}),u.jsx(J$,{completed:d,total:f})]}),u.jsxs(W,{gapX:"30px",justify:"end",flexGrow:"1",className:lr.decompressingCardRight,children:[u.jsx(t6,{prefix:"Input",throughput:l}),u.jsx(t6,{prefix:"Output",throughput:c})]})]}),throughput:i,maxThroughput:8e8})}function LWe({decompressedThroughput:e,decompressedCompleted:t,decompressedTotal:n,cumulativeAccounts:r}){const i=e==null?void 0:Da(e),o=t==null?void 0:Da(t),a=n==null?void 0:Da(n);return u.jsx(K$,{containerClassName:lr.insertingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(X$,{text:"Inserting"}),u.jsx(NWe,{cumulativeAccounts:r}),u.jsx(J$,{completed:o,total:a}),u.jsx(t6,{throughput:i})]}),throughput:e,maxThroughput:35e8})}const PWe="_secondary-text_1iskf_1",OWe="_phase-header-container_1iskf_5",zWe="_phase-name_1iskf_11",DWe="_no-wrap_1iskf_15",AWe="_complete-pct-container_1iskf_19",ih={secondaryText:PWe,phaseHeaderContainer:OWe,phaseName:zWe,noWrap:DWe,completePctContainer:AWe},FWe="_progress-bar_drgbz_1",UWe="_current_drgbz_14",BWe="_progressing-bar_drgbz_21",WWe="_gossip_drgbz_33",VWe="_complete_drgbz_35",HWe="_full-snapshot_drgbz_46",ZWe="_incr-snapshot_drgbz_59",qWe="_catching-up_drgbz_72",GWe="_supermajority_drgbz_85",bd={progressBar:FWe,current:UWe,progressingBar:BWe,gossip:WWe,complete:VWe,fullSnapshot:HWe,incrSnapshot:ZWe,catchingUp:qWe,supermajority:GWe},YWe={[wn.joining_gossip]:bd.gossip,[wn.loading_full_snapshot]:bd.fullSnapshot,[wn.loading_incremental_snapshot]:bd.incrSnapshot,[wn.catching_up]:bd.catchingUp,[wn.waiting_for_supermajority]:bd.supermajority,[wn.running]:""};function KWe({phaseCompleteFraction:e}){const[t,n]=m.useState(0);m.useEffect(()=>{n(rt.clamp(e,0,1))},[e]);const r=J(Gu),i=J(B3),o=J(eee);return u.jsx(W,{className:bd.progressBar,children:i.map(({phase:a,completionFraction:s})=>{if(a===wn.running)return;const l=a===r,c=`${s*100}%`;return u.jsx("div",{className:Te(YWe[a],{[bd.current]:l,[bd.complete]:o.has(a)}),style:{width:c},children:l&&u.jsx("div",{className:bd.progressingBar,style:{transform:`scaleX(${t})`}})},a)})})}const XWe={[wn.joining_gossip]:"Joining Gossip",[wn.loading_full_snapshot]:"Loading Full Snapshot",[wn.loading_incremental_snapshot]:"Loading Incremental Snapshot",[wn.catching_up]:"Catching Up",[wn.waiting_for_supermajority]:"Waiting for Supermajority",[wn.running]:"Running"};function JWe(){const e=Uie(1e3);return u.jsx(Z,{children:e==null?"--":Mze(e)})}function Q$({phaseCompleteFraction:e,overallCompleteFraction:t,remainingSeconds:n,showLoadingIcon:r=!1}){const i=J(Gu),[o,a]=m.useState(),s=Ba(d=>{const f=d==null?void 0:Math.max(Math.round(d),0);a(f)},1e3);m.useEffect(()=>{s(n)},[s,n]);const l=m.useMemo(()=>{if(o!=null)return kp(fn.fromObject({seconds:o}).rescale(),{showOnlyTwoSignificantUnits:!0})},[o]),c=rt.clamp(Math.round(t*100),0,100);return i?u.jsxs(Mt,{flexShrink:"0",className:ih.phaseHeaderContainer,children:[u.jsxs(W,{justify:"between",mt:"7",mb:"2",gapX:"8px",wrap:"wrap",children:[u.jsxs("span",{className:ih.noWrap,children:[u.jsx(Z,{className:ih.secondaryText,children:"Elapsed "}),u.jsx(JWe,{})]}),u.jsxs("span",{children:[u.jsxs(Z,{className:ih.phaseName,children:[XWe[i],"... "]}),l&&u.jsxs("span",{className:ih.noWrap,children:[u.jsx(Z,{className:ih.secondaryText,children:"Remaining "}),u.jsxs(Z,{style:{display:"inline-block",minWidth:"120px"},children:["~",l]})]})]}),u.jsxs(Z,{className:ih.completePctContainer,children:[u.jsx(Z,{className:ih.secondaryText,children:"Complete "}),c,"%",r&&u.jsx(Iy,{size:"3",ml:"8px"})]})]}),u.jsx(KWe,{phaseCompleteFraction:e})]}):null}function Soe(e){const t=J(QQ),n=J(B3),r=J(eee);return m.useMemo(()=>t?rt.sum(n.map(i=>i===t?i.completionFraction*rt.clamp(e,0,1):r.has(i.phase)?i.completionFraction:0)):0,[r,e,t,n])}const QWe="5",Coe="26px";function eVe(e){const{loading_full_snapshot_total_bytes_compressed:t,loading_full_snapshot_read_bytes_compressed:n,loading_full_snapshot_decompress_bytes_compressed:r,loading_full_snapshot_decompress_bytes_decompressed:i,loading_full_snapshot_insert_bytes_decompressed:o,loading_full_snapshot_read_path:a,loading_full_snapshot_insert_accounts:s,loading_incremental_snapshot_total_bytes_compressed:l,loading_incremental_snapshot_read_bytes_compressed:c,loading_incremental_snapshot_decompress_bytes_compressed:d,loading_incremental_snapshot_decompress_bytes_decompressed:f,loading_incremental_snapshot_insert_bytes_decompressed:p,loading_incremental_snapshot_read_path:v,loading_incremental_snapshot_insert_accounts:x}=e,y=e.phase===wn.loading_full_snapshot||!l?{totalCompressedBytes:t,readCompressedBytes:n,readPath:a,decompressCompressedBytes:r,decompressDecompressedBytes:i,insertDecompressedBytes:o,insertAccounts:s}:{totalCompressedBytes:l,readCompressedBytes:c,readPath:v,decompressCompressedBytes:d,decompressDecompressedBytes:f,insertDecompressedBytes:p,insertAccounts:x},b=y.insertDecompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.insertDecompressedBytes*(y.decompressCompressedBytes/y.decompressDecompressedBytes):0,w=y.totalCompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.totalCompressedBytes*y.decompressDecompressedBytes/y.decompressCompressedBytes:0;return{...y,insertCompressedBytes:b,totalDecompressedBytes:w}}function tVe(){const e=J(Hl),t=(e==null?void 0:e.phase)===wn.loading_incremental_snapshot,n=Hn("(max-width: 560px)"),r=n?"wrap":"nowrap",i=n?Coe:QWe,o=e?eVe(e):void 0,{ema:a,reset:s}=Ug(o==null?void 0:o.insertDecompressedBytes);m.useEffect(()=>{s()},[e==null?void 0:e.phase,s]);const{totalCompressedBytes:l,readCompressedBytes:c,readPath:d,decompressCompressedBytes:f,decompressDecompressedBytes:p,insertDecompressedBytes:v,insertAccounts:x,insertCompressedBytes:y,totalDecompressedBytes:b}=o??{},w=a==null||b==null||v==null?void 0:Math.round((b-v)/a),_=Math.min(l&&y?y/l:0,1),S=Soe(_);if(!(!e||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:_,overallCompleteFraction:S,remainingSeconds:w}),u.jsxs(W,{mt:"52px",direction:"column",gap:Coe,className:yd.startupContentIndentation,children:[u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(MWe,{compressedCompleted:c,compressedTotal:l,readPath:d}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapld",isComplete:t&&!!c&&c===l})]}),u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(RWe,{compressedCompleted:f,decompressedCompleted:p,compressedTotal:l}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapdc",isComplete:t&&!!f&&f===l})]}),u.jsxs(W,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(LWe,{decompressedThroughput:a,decompressedCompleted:v,decompressedTotal:b,cumulativeAccounts:x}),u.jsx(G$,{title:"CPU Utilization",tileType:"snapin",isComplete:t&&!!y&&y===l})]})]})]})}const nVe=!0,Hi="u-",rVe="uplot",iVe=Hi+"hz",oVe=Hi+"vt",aVe=Hi+"title",sVe=Hi+"wrap",lVe=Hi+"under",uVe=Hi+"over",cVe=Hi+"axis",Ep=Hi+"off",dVe=Hi+"select",fVe=Hi+"cursor-x",hVe=Hi+"cursor-y",pVe=Hi+"cursor-pt",mVe=Hi+"legend",gVe=Hi+"live",vVe=Hi+"inline",yVe=Hi+"series",bVe=Hi+"marker",joe=Hi+"label",xVe=Hi+"value",dx="width",fx="height",hx="top",Toe="bottom",Wg="left",eM="right",tM="#000",Ioe=tM+"0",nM="mousemove",Eoe="mousedown",rM="mouseup",Noe="mouseenter",$oe="mouseleave",Moe="dblclick",_Ve="resize",wVe="scroll",Roe="change",n6="dppxchange",iM="--",Vg=typeof window<"u",oM=Vg?document:null,Hg=Vg?window:null,kVe=Vg?navigator:null;let Fn,r6;function aM(){let e=devicePixelRatio;Fn!=e&&(Fn=e,r6&&uM(Roe,r6,aM),r6=matchMedia(`(min-resolution: ${Fn-.001}dppx) and (max-resolution: ${Fn+.001}dppx)`),Np(Roe,r6,aM),Hg.dispatchEvent(new CustomEvent(n6)))}function Cs(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function sM(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function Dr(e,t,n){e.style[t]=n+"px"}function ou(e,t,n,r){let i=oM.createElement(e);return t!=null&&Cs(i,t),n==null||n.insertBefore(i,r),i}function fl(e,t){return ou("div",e,t)}const Loe=new WeakMap;function ec(e,t,n,r,i){let o="translate("+t+"px,"+n+"px)",a=Loe.get(e);o!=a&&(e.style.transform=o,Loe.set(e,o),t<0||n<0||t>r||n>i?Cs(e,Ep):sM(e,Ep))}const Poe=new WeakMap;function Ooe(e,t,n){let r=t+n,i=Poe.get(e);r!=i&&(Poe.set(e,r),e.style.background=t,e.style.borderColor=n)}const zoe=new WeakMap;function Doe(e,t,n,r){let i=t+""+n,o=zoe.get(e);i!=o&&(zoe.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=r?-t/2+"px":0,e.style.marginTop=r?-n/2+"px":0)}const lM={passive:!0},SVe={...lM,capture:!0};function Np(e,t,n,r){t.addEventListener(e,n,r?SVe:lM)}function uM(e,t,n,r){t.removeEventListener(e,n,lM)}Vg&&aM();function au(e,t,n,r){let i;n=n||0,r=r||t.length-1;let o=r<=2147483647;for(;r-n>1;)i=o?n+r>>1:Ts((n+r)/2),t[i]{let i=-1,o=-1;for(let a=n;a<=r;a++)if(e(t[a])){i=a;break}for(let a=r;a>=n;a--)if(e(t[a])){o=a;break}return[i,o]}}const Foe=e=>e!=null,Uoe=e=>e!=null&&e>0,i6=Aoe(Foe),CVe=Aoe(Uoe);function jVe(e,t,n,r=0,i=!1){let o=i?CVe:i6,a=i?Uoe:Foe;[t,n]=o(e,t,n);let s=e[t],l=e[t];if(t>-1)if(r==1)s=e[t],l=e[n];else if(r==-1)s=e[n],l=e[t];else for(let c=t;c<=n;c++){let d=e[c];a(d)&&(dl&&(l=d))}return[s??br,l??-br]}function o6(e,t,n,r){let i=Voe(e),o=Voe(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let a=n==10?xd:Hoe,s=i==1?Ts:hl,l=o==1?hl:Ts,c=s(a(Zi(e))),d=l(a(Zi(t))),f=Zg(n,c),p=Zg(n,d);return n==10&&(c<0&&(f=xr(f,-c)),d<0&&(p=xr(p,-d))),r||n==2?(e=f*i,t=p*o):(e=Joe(e,f),t=l6(t,p)),[e,t]}function cM(e,t,n,r){let i=o6(e,t,n,r);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}const dM=.1,Boe={mode:3,pad:dM},px={pad:0,soft:null,mode:0},TVe={min:px,max:px};function a6(e,t,n,r){return u6(n)?Woe(e,t,n):(px.pad=n,px.soft=r?0:null,px.mode=r?3:0,Woe(e,t,TVe))}function Rn(e,t){return e??t}function IVe(e,t,n){for(t=Rn(t,0),n=Rn(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function Woe(e,t,n){let r=n.min,i=n.max,o=Rn(r.pad,0),a=Rn(i.pad,0),s=Rn(r.hard,-br),l=Rn(i.hard,br),c=Rn(r.soft,br),d=Rn(i.soft,-br),f=Rn(r.mode,0),p=Rn(i.mode,0),v=t-e,x=xd(v),y=pa(Zi(e),Zi(t)),b=xd(y),w=Zi(b-x);(v<1e-24||w>10)&&(v=0,(e==0||t==0)&&(v=1e-24,f==2&&c!=br&&(o=0),p==2&&d!=-br&&(a=0)));let _=v||y||1e3,S=xd(_),C=Zg(10,Ts(S)),j=_*(v==0?e==0?.1:1:o),T=xr(Joe(e-j,C/10),24),E=e>=c&&(f==1||f==3&&T<=c||f==2&&T>=c)?c:br,$=pa(s,T=E?E:su(E,T)),D=_*(v==0?t==0?.1:1:a),M=xr(l6(t+D,C/10),24),O=t<=d&&(p==1||p==3&&M>=d||p==2&&M<=d)?d:-br,te=su(l,M>O&&t<=O?O:pa(O,M));return $==te&&$==0&&(te=100),[$,te]}const EVe=new Intl.NumberFormat(Vg?kVe.language:"en-US"),fM=e=>EVe.format(e),js=Math,s6=js.PI,Zi=js.abs,Ts=js.floor,qi=js.round,hl=js.ceil,su=js.min,pa=js.max,Zg=js.pow,Voe=js.sign,xd=js.log10,Hoe=js.log2,NVe=(e,t=1)=>js.sinh(e)*t,hM=(e,t=1)=>js.asinh(e/t),br=1/0;function Zoe(e){return(xd((e^e>>31)-(e>>31))|0)+1}function pM(e,t,n){return su(pa(e,t),n)}function qoe(e){return typeof e=="function"}function bn(e){return qoe(e)?e:()=>e}const $Ve=()=>{},Goe=e=>e,Yoe=(e,t)=>t,MVe=e=>null,Koe=e=>!0,Xoe=(e,t)=>e==t,RVe=/\.\d*?(?=9{6,}|0{6,})/gm,$p=e=>{if(eae(e)||oh.has(e))return e;const t=`${e}`,n=t.match(RVe);if(n==null)return e;let r=n[0].length-1;if(t.indexOf("e-")!=-1){let[i,o]=t.split("e");return+`${$p(i)}e${o}`}return xr(e,r)};function Mp(e,t){return $p(xr($p(e/t))*t)}function l6(e,t){return $p(hl($p(e/t))*t)}function Joe(e,t){return $p(Ts($p(e/t))*t)}function xr(e,t=0){if(eae(e))return e;let n=10**t,r=e*n*(1+Number.EPSILON);return qi(r)/n}const oh=new Map;function Qoe(e){return((""+e).split(".")[1]||"").length}function mx(e,t,n,r){let i=[],o=r.map(Qoe);for(let a=t;a=0?0:s)+(a>=o[c]?0:o[c]),p=e==10?d:xr(d,f);i.push(p),oh.set(p,f)}}return i}const gx={},mM=[],qg=[null,null],ah=Array.isArray,eae=Number.isInteger,LVe=e=>e===void 0;function tae(e){return typeof e=="string"}function u6(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function PVe(e){return e!=null&&typeof e=="object"}const OVe=Object.getPrototypeOf(Uint8Array),nae="__proto__";function Gg(e,t=u6){let n;if(ah(e)){let r=e.find(i=>i!=null);if(ah(r)||t(r)){n=Array(e.length);for(let i=0;io){for(i=a-1;i>=0&&e[i]==null;)e[i--]=null;for(i=a+1;ia-s)],i=r[0].length,o=new Map;for(let a=0;a"u"?e=>Promise.resolve().then(e):queueMicrotask;function WVe(e){let t=e[0],n=t.length,r=Array(n);for(let o=0;ot[o]-t[a]);let i=[];for(let o=0;o=r&&e[i]==null;)i--;if(i<=r)return!0;const o=pa(1,Ts((i-r+1)/t));for(let a=e[r],s=r+o;s<=i;s+=o){const l=e[s];if(l!=null){if(l<=a)return!1;a=l}}return!0}const rae=["January","February","March","April","May","June","July","August","September","October","November","December"],iae=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function oae(e){return e.slice(0,3)}const ZVe=iae.map(oae),qVe=rae.map(oae),GVe={MMMM:rae,MMM:qVe,WWWW:iae,WWW:ZVe};function vx(e){return(e<10?"0":"")+e}function YVe(e){return(e<10?"00":e<100?"0":"")+e}const KVe={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>vx(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>vx(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>vx(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>vx(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>vx(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>YVe(e.getMilliseconds())};function gM(e,t){t=t||GVe;let n=[],r=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=r.exec(e);)n.push(i[0][0]=="{"?KVe[i[1]]:i[0]);return o=>{let a="";for(let s=0;se%1==0,c6=[1,2,2.5,5],QVe=mx(10,-32,0,c6),sae=mx(10,0,32,c6),eHe=sae.filter(aae),Rp=QVe.concat(sae),vM=` +`,lae="{YYYY}",uae=vM+lae,cae="{M}/{D}",yx=vM+cae,d6=yx+"/{YY}",dae="{aa}",tHe="{h}:{mm}",Yg=tHe+dae,fae=vM+Yg,hae=":{ss}",Zn=null;function pae(e){let t=e*1e3,n=t*60,r=n*60,i=r*24,o=i*30,a=i*365,s=(e==1?mx(10,0,3,c6).filter(aae):mx(10,-3,0,c6)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,r,r*2,r*3,r*4,r*6,r*8,r*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,o,o*2,o*3,o*4,o*6,a,a*2,a*5,a*10,a*25,a*50,a*100]);const l=[[a,lae,Zn,Zn,Zn,Zn,Zn,Zn,1],[i*28,"{MMM}",uae,Zn,Zn,Zn,Zn,Zn,1],[i,cae,uae,Zn,Zn,Zn,Zn,Zn,1],[r,"{h}"+dae,d6,Zn,yx,Zn,Zn,Zn,1],[n,Yg,d6,Zn,yx,Zn,Zn,Zn,1],[t,hae,d6+" "+Yg,Zn,yx+" "+Yg,Zn,fae,Zn,1],[e,hae+".{fff}",d6+" "+Yg,Zn,yx+" "+Yg,Zn,fae,Zn,1]];function c(d){return(f,p,v,x,y,b)=>{let w=[],_=y>=a,S=y>=o&&y=i?i:y,D=Ts(v)-Ts(j),M=E+D+l6(j-E,$);w.push(M);let O=d(M),te=O.getHours()+O.getMinutes()/n+O.getSeconds()/r,q=y/r,P=f.axes[p]._space,X=b/P;for(;M=xr(M+y,e==1?0:3),!(M>x);)if(q>1){let A=Ts(xr(te+q,6))%24,Y=d(M).getHours()-A;Y>1&&(Y=-1),M-=Y*r,te=(te+q)%24;let F=w[w.length-1];xr((M-F)/y,3)*X>=.7&&w.push(M)}else w.push(M)}return w}}return[s,l,c]}const[nHe,rHe,iHe]=pae(1),[oHe,aHe,sHe]=pae(.001);mx(2,-53,53,[1]);function mae(e,t){return e.map(n=>n.map((r,i)=>i==0||i==8||r==null?r:t(i==1||n[8]==0?r:n[1]+r)))}function gae(e,t){return(n,r,i,o,a)=>{let s=t.find(x=>a>=x[0])||t[t.length-1],l,c,d,f,p,v;return r.map(x=>{let y=e(x),b=y.getFullYear(),w=y.getMonth(),_=y.getDate(),S=y.getHours(),C=y.getMinutes(),j=y.getSeconds(),T=b!=l&&s[2]||w!=c&&s[3]||_!=d&&s[4]||S!=f&&s[5]||C!=p&&s[6]||j!=v&&s[7]||s[1];return l=b,c=w,d=_,f=S,p=C,v=j,T(y)})}}function lHe(e,t){let n=gM(t);return(r,i,o,a,s)=>i.map(l=>n(e(l)))}function yM(e,t,n){return new Date(e,t,n)}function vae(e,t){return t(e)}const uHe="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function yae(e,t){return(n,r,i,o)=>o==null?iM:t(e(r))}function cHe(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function dHe(e,t){return e.series[t].fill(e,t)}const fHe={show:!0,live:!0,isolate:!1,mount:$Ve,markers:{show:!0,width:2,stroke:cHe,fill:dHe,dash:"solid"},idx:null,idxs:null,values:[]};function hHe(e,t){let n=e.cursor.points,r=fl(),i=n.size(e,t);Dr(r,dx,i),Dr(r,fx,i);let o=i/-2;Dr(r,"marginLeft",o),Dr(r,"marginTop",o);let a=n.width(e,t,i);return a&&Dr(r,"borderWidth",a),r}function pHe(e,t){let n=e.series[t].points;return n._fill||n._stroke}function mHe(e,t){let n=e.series[t].points;return n._stroke||n._fill}function gHe(e,t){return e.series[t].points.size}const bM=[0,0];function vHe(e,t,n){return bM[0]=t,bM[1]=n,bM}function f6(e,t,n,r=!0){return i=>{i.button==0&&(!r||i.target==t)&&n(i)}}function xM(e,t,n,r=!0){return i=>{(!r||i.target==t)&&n(i)}}const yHe={show:!0,x:!0,y:!0,lock:!1,move:vHe,points:{one:!1,show:hHe,size:gHe,width:0,stroke:mHe,fill:pHe},bind:{mousedown:f6,mouseup:f6,click:f6,dblclick:f6,mousemove:xM,mouseleave:xM,mouseenter:xM},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,r,i)=>r-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},bae={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},_M=Li({},bae,{filter:Yoe}),xae=Li({},_M,{size:10}),_ae=Li({},bae,{show:!1}),wM='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',wae="bold "+wM,kae=1.5,Sae={show:!0,scale:"x",stroke:tM,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:wae,side:2,grid:_M,ticks:xae,border:_ae,font:wM,lineGap:kae,rotate:0},bHe="Value",xHe="Time",Cae={show:!0,scale:"x",auto:!1,sorted:1,min:br,max:-br,idxs:[]};function _He(e,t,n,r,i){return t.map(o=>o==null?"":fM(o))}function wHe(e,t,n,r,i,o,a){let s=[],l=oh.get(i)||0;n=a?n:xr(l6(n,i),l);for(let c=n;c<=r;c=xr(c+i,l))s.push(Object.is(c,-0)?0:c);return s}function kM(e,t,n,r,i,o,a){const s=[],l=e.scales[e.axes[t].scale].log,c=l==10?xd:Hoe,d=Ts(c(n));i=Zg(l,d),l==10&&(i=Rp[au(i,Rp)]);let f=n,p=i*l;l==10&&(p=Rp[au(p,Rp)]);do s.push(f),f=f+i,l==10&&!oh.has(f)&&(f=xr(f,oh.get(i))),f>=p&&(i=f,p=i*l,l==10&&(p=Rp[au(p,Rp)]));while(f<=r);return s}function kHe(e,t,n,r,i,o,a){let s=e.scales[e.axes[t].scale].asinh,l=r>s?kM(e,t,pa(s,n),r,i):[s],c=r>=0&&n<=0?[0]:[];return(n<-s?kM(e,t,pa(s,-r),-n,i):[s]).reverse().map(d=>-d).concat(c,l)}const jae=/./,SHe=/[12357]/,CHe=/[125]/,Tae=/1/,SM=(e,t,n,r)=>e.map((i,o)=>t==4&&i==0||o%r==0&&n.test(i.toExponential()[i<0?1:0])?i:null);function jHe(e,t,n,r,i){let o=e.axes[n],a=o.scale,s=e.scales[a],l=e.valToPos,c=o._space,d=l(10,a),f=l(9,a)-d>=c?jae:l(7,a)-d>=c?SHe:l(5,a)-d>=c?CHe:Tae;if(f==Tae){let p=Zi(l(1,a)-d);if(pi,$ae={show:!0,auto:!0,sorted:0,gaps:Nae,alpha:1,facets:[Li({},Eae,{scale:"x"}),Li({},Eae,{scale:"y"})]},Mae={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:Nae,alpha:1,points:{show:NHe,filter:null},values:null,min:br,max:-br,idxs:[],path:null,clip:null};function $He(e,t,n,r,i){return n/10}const Rae={time:nVe,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},MHe=Li({},Rae,{time:!1,ori:1}),Lae={};function Pae(e,t){let n=Lae[e];return n||(n={key:e,plots:[],sub(r){n.plots.push(r)},unsub(r){n.plots=n.plots.filter(i=>i!=r)},pub(r,i,o,a,s,l,c){for(let d=0;d{let w=a.pxRound;const _=c.dir*(c.ori==0?1:-1),S=c.ori==0?Xg:Jg;let C,j;_==1?(C=n,j=r):(C=r,j=n);let T=w(f(s[C],c,y,v)),E=w(p(l[C],d,b,x)),$=w(f(s[j],c,y,v)),D=w(p(o==1?d.max:d.min,d,b,x)),M=new Path2D(i);return S(M,$,D),S(M,T,D),S(M,T,E),M})}function h6(e,t,n,r,i,o){let a=null;if(e.length>0){a=new Path2D;const s=t==0?g6:IM;let l=n;for(let f=0;fp[0]){let v=p[0]-l;v>0&&s(a,l,r,v,r+o),l=p[1]}}let c=n+i-l,d=10;c>0&&s(a,l,r-d/2,c,r+o+d)}return a}function LHe(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])}function TM(e,t,n,r,i,o,a){let s=[],l=e.length;for(let c=i==1?n:r;c>=n&&c<=r;c+=i)if(t[c]===null){let d=c,f=c;if(i==1)for(;++c<=r&&t[c]===null;)f=c;else for(;--c>=n&&t[c]===null;)f=c;let p=o(e[d]),v=f==d?p:o(e[f]),x=d-i;p=a<=0&&x>=0&&x=0&&y>=0&&y=p&&s.push([p,v])}return s}function Oae(e){return e==0?Goe:e==1?qi:t=>Mp(t,e)}function zae(e){let t=e==0?p6:m6,n=e==0?(i,o,a,s,l,c)=>{i.arcTo(o,a,s,l,c)}:(i,o,a,s,l,c)=>{i.arcTo(a,o,l,s,c)},r=e==0?(i,o,a,s,l)=>{i.rect(o,a,s,l)}:(i,o,a,s,l)=>{i.rect(a,o,l,s)};return(i,o,a,s,l,c=0,d=0)=>{c==0&&d==0?r(i,o,a,s,l):(c=su(c,s/2,l/2),d=su(d,s/2,l/2),t(i,o+c,a),n(i,o+s,a,o+s,a+l,c),n(i,o+s,a+l,o,a+l,d),n(i,o,a+l,o,a,d),n(i,o,a,o+s,a,c),i.closePath())}}const p6=(e,t,n)=>{e.moveTo(t,n)},m6=(e,t,n)=>{e.moveTo(n,t)},Xg=(e,t,n)=>{e.lineTo(t,n)},Jg=(e,t,n)=>{e.lineTo(n,t)},g6=zae(0),IM=zae(1),Dae=(e,t,n,r,i,o)=>{e.arc(t,n,r,i,o)},Aae=(e,t,n,r,i,o)=>{e.arc(n,t,r,i,o)},Fae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(t,n,r,i,o,a)},Uae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(n,t,i,r,a,o)};function Bae(e){return(t,n,r,i,o)=>Lp(t,n,(a,s,l,c,d,f,p,v,x,y,b)=>{let{pxRound:w,points:_}=a,S,C;c.ori==0?(S=p6,C=Dae):(S=m6,C=Aae);const j=xr(_.width*Fn,3);let T=(_.size-_.width)/2*Fn,E=xr(T*2,3),$=new Path2D,D=new Path2D,{left:M,top:O,width:te,height:q}=t.bbox;g6(D,M-E,O-E,te+E*2,q+E*2);const P=X=>{if(l[X]!=null){let A=w(f(s[X],c,y,v)),Y=w(p(l[X],d,b,x));S($,A+T,Y),C($,A,Y,T,0,s6*2)}};if(o)o.forEach(P);else for(let X=r;X<=i;X++)P(X);return{stroke:j>0?$:null,fill:$,clip:D,flags:Kg|CM}})}function Wae(e){return(t,n,r,i,o,a)=>{r!=i&&(o!=r&&a!=r&&e(t,n,r),o!=i&&a!=i&&e(t,n,i),e(t,n,a))}}const PHe=Wae(Xg),OHe=Wae(Jg);function Vae(e){const t=Rn(e==null?void 0:e.alignGaps,0);return(n,r,i,o)=>Lp(n,r,(a,s,l,c,d,f,p,v,x,y,b)=>{[i,o]=i6(l,i,o);let w=a.pxRound,_=te=>w(f(te,c,y,v)),S=te=>w(p(te,d,b,x)),C,j;c.ori==0?(C=Xg,j=PHe):(C=Jg,j=OHe);const T=c.dir*(c.ori==0?1:-1),E={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},$=E.stroke;let D=!1;if(o-i>=y*4){let te=B=>n.posToVal(B,c.key,!0),q=null,P=null,X,A,Y,F=_(s[T==1?i:o]),H=_(s[i]),ee=_(s[o]),ce=te(T==1?H+1:ee-1);for(let B=T==1?i:o;B>=i&&B<=o;B+=T){let ae=s[B],je=(T==1?aece)?F:_(ae),me=l[B];je==F?me!=null?(A=me,q==null?(C($,je,S(A)),X=q=P=A):AP&&(P=A)):me===null&&(D=!0):(q!=null&&j($,F,S(q),S(P),S(X),S(A)),me!=null?(A=me,C($,je,S(A)),q=P=X=A):(q=P=null,me===null&&(D=!0)),F=je,ce=te(F+T))}q!=null&&q!=P&&Y!=F&&j($,F,S(q),S(P),S(X),S(A))}else for(let te=T==1?i:o;te>=i&&te<=o;te+=T){let q=l[te];q===null?D=!0:q!=null&&C($,_(s[te]),S(q))}let[M,O]=jM(n,r);if(a.fill!=null||M!=0){let te=E.fill=new Path2D($),q=a.fillTo(n,r,a.min,a.max,M),P=S(q),X=_(s[i]),A=_(s[o]);T==-1&&([A,X]=[X,A]),C(te,A,P),C(te,X,P)}if(!a.spanGaps){let te=[];D&&te.push(...TM(s,l,i,o,T,_,t)),E.gaps=te=a.gaps(n,r,i,o,te),E.clip=h6(te,c.ori,v,x,y,b)}return O!=0&&(E.band=O==2?[_d(n,r,i,o,$,-1),_d(n,r,i,o,$,1)]:_d(n,r,i,o,$,O)),E})}function zHe(e){const t=Rn(e.align,1),n=Rn(e.ascDesc,!1),r=Rn(e.alignGaps,0),i=Rn(e.extend,!1);return(o,a,s,l)=>Lp(o,a,(c,d,f,p,v,x,y,b,w,_,S)=>{[s,l]=i6(f,s,l);let C=c.pxRound,{left:j,width:T}=o.bbox,E=ee=>C(x(ee,p,_,b)),$=ee=>C(y(ee,v,S,w)),D=p.ori==0?Xg:Jg;const M={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},O=M.stroke,te=p.dir*(p.ori==0?1:-1);let q=$(f[te==1?s:l]),P=E(d[te==1?s:l]),X=P,A=P;i&&t==-1&&(A=j,D(O,A,q)),D(O,P,q);for(let ee=te==1?s:l;ee>=s&&ee<=l;ee+=te){let ce=f[ee];if(ce==null)continue;let B=E(d[ee]),ae=$(ce);t==1?D(O,B,q):D(O,X,ae),D(O,B,ae),q=ae,X=B}let Y=X;i&&t==1&&(Y=j+T,D(O,Y,q));let[F,H]=jM(o,a);if(c.fill!=null||F!=0){let ee=M.fill=new Path2D(O),ce=c.fillTo(o,a,c.min,c.max,F),B=$(ce);D(ee,Y,B),D(ee,A,B)}if(!c.spanGaps){let ee=[];ee.push(...TM(d,f,s,l,te,E,r));let ce=c.width*Fn/2,B=n||t==1?ce:-ce,ae=n||t==-1?-ce:ce;ee.forEach(je=>{je[0]+=B,je[1]+=ae}),M.gaps=ee=c.gaps(o,a,s,l,ee),M.clip=h6(ee,p.ori,b,w,_,S)}return H!=0&&(M.band=H==2?[_d(o,a,s,l,O,-1),_d(o,a,s,l,O,1)]:_d(o,a,s,l,O,H)),M})}function Hae(e,t,n,r,i,o,a=br){if(e.length>1){let s=null;for(let l=0,c=1/0;l{}),{fill:f,stroke:p}=c;return(v,x,y,b)=>Lp(v,x,(w,_,S,C,j,T,E,$,D,M,O)=>{let te=w.pxRound,q=n,P=r*Fn,X=s*Fn,A=l*Fn,Y,F;C.ori==0?[Y,F]=o(v,x):[F,Y]=o(v,x);const H=C.dir*(C.ori==0?1:-1);let ee=C.ori==0?g6:IM,ce=C.ori==0?d:(De,Dt,pn,Yn,hr,Kn,kr)=>{d(De,Dt,pn,hr,Yn,kr,Kn)},B=Rn(v.bands,mM).find(De=>De.series[0]==x),ae=B!=null?B.dir:0,je=w.fillTo(v,x,w.min,w.max,ae),me=te(E(je,j,O,D)),ke,he,ue,re=M,ge=te(w.width*Fn),$e=!1,pe=null,ye=null,Se=null,Ce=null;f!=null&&(ge==0||p!=null)&&($e=!0,pe=f.values(v,x,y,b),ye=new Map,new Set(pe).forEach(De=>{De!=null&&ye.set(De,new Path2D)}),ge>0&&(Se=p.values(v,x,y,b),Ce=new Map,new Set(Se).forEach(De=>{De!=null&&Ce.set(De,new Path2D)})));let{x0:Ue,size:Ge}=c;if(Ue!=null&&Ge!=null){q=1,_=Ue.values(v,x,y,b),Ue.unit==2&&(_=_.map(Dt=>v.posToVal($+Dt*M,C.key,!0)));let De=Ge.values(v,x,y,b);Ge.unit==2?he=De[0]*M:he=T(De[0],C,M,$)-T(0,C,M,$),re=Hae(_,S,T,C,M,$,re),ue=re-he+P}else re=Hae(_,S,T,C,M,$,re),ue=re*a+P,he=re-ue;ue<1&&(ue=0),ge>=he/2&&(ge=0),ue<5&&(te=Goe);let _t=ue>0,St=re-ue-(_t?ge:0);he=te(pM(St,A,X)),ke=(q==0?he/2:q==H?0:he)-q*H*((q==0?P/2:0)+(_t?ge/2:0));const ut={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},ct=$e?null:new Path2D;let bt=null;if(B!=null)bt=v.data[B.series[1]];else{let{y0:De,y1:Dt}=c;De!=null&&Dt!=null&&(S=Dt.values(v,x,y,b),bt=De.values(v,x,y,b))}let Qe=Y*he,Ke=F*he;for(let De=H==1?y:b;De>=y&&De<=b;De+=H){let Dt=S[De];if(Dt==null)continue;if(bt!=null){let tr=bt[De]??0;if(Dt-tr==0)continue;me=E(tr,j,O,D)}let pn=C.distr!=2||c!=null?_[De]:De,Yn=T(pn,C,M,$),hr=E(Rn(Dt,je),j,O,D),Kn=te(Yn-ke),kr=te(pa(hr,me)),On=te(su(hr,me)),Mr=kr-On;if(Dt!=null){let tr=Dt<0?Ke:Qe,Sr=Dt<0?Qe:Ke;$e?(ge>0&&Se[De]!=null&&ee(Ce.get(Se[De]),Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr),pe[De]!=null&&ee(ye.get(pe[De]),Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr)):ee(ct,Kn,On+Ts(ge/2),he,pa(0,Mr-ge),tr,Sr),ce(v,x,De,Kn-ge/2,On,he+ge,Mr)}}return ge>0?ut.stroke=$e?Ce:ct:$e||(ut._fill=w.width==0?w._fill:w._stroke??w._fill,ut.width=0),ut.fill=$e?ye:ct,ut})}function AHe(e,t){const n=Rn(t==null?void 0:t.alignGaps,0);return(r,i,o,a)=>Lp(r,i,(s,l,c,d,f,p,v,x,y,b,w)=>{[o,a]=i6(c,o,a);let _=s.pxRound,S=Y=>_(p(Y,d,b,x)),C=Y=>_(v(Y,f,w,y)),j,T,E;d.ori==0?(j=p6,E=Xg,T=Fae):(j=m6,E=Jg,T=Uae);const $=d.dir*(d.ori==0?1:-1);let D=S(l[$==1?o:a]),M=D,O=[],te=[];for(let Y=$==1?o:a;Y>=o&&Y<=a;Y+=$)if(c[Y]!=null){let F=l[Y],H=S(F);O.push(M=H),te.push(C(c[Y]))}const q={stroke:e(O,te,j,E,T,_),fill:null,clip:null,band:null,gaps:null,flags:Kg},P=q.stroke;let[X,A]=jM(r,i);if(s.fill!=null||X!=0){let Y=q.fill=new Path2D(P),F=s.fillTo(r,i,s.min,s.max,X),H=C(F);E(Y,M,H),E(Y,D,H)}if(!s.spanGaps){let Y=[];Y.push(...TM(l,c,o,a,$,S,n)),q.gaps=Y=s.gaps(r,i,o,a,Y),q.clip=h6(Y,d.ori,x,y,b,w)}return A!=0&&(q.band=A==2?[_d(r,i,o,a,P,-1),_d(r,i,o,a,P,1)]:_d(r,i,o,a,P,A)),q})}function FHe(e){return AHe(UHe,e)}function UHe(e,t,n,r,i,o){const a=e.length;if(a<2)return null;const s=new Path2D;if(n(s,e[0],t[0]),a==2)r(s,e[1],t[1]);else{let l=Array(a),c=Array(a-1),d=Array(a-1),f=Array(a-1);for(let p=0;p0!=c[p]>0?l[p]=0:(l[p]=3*(f[p-1]+f[p])/((2*f[p]+f[p-1])/c[p-1]+(f[p]+2*f[p-1])/c[p]),isFinite(l[p])||(l[p]=0));l[a-1]=c[a-2];for(let p=0;p{jn.pxRatio=Fn}));const BHe=Vae(),WHe=Bae();function qae(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((i,o)=>NM(i,o,t,n))}function VHe(e,t){return e.map((n,r)=>r==0?{}:Li({},t,n))}function NM(e,t,n,r){return Li({},t==0?n:r,e)}function Gae(e,t,n){return t==null?qg:[t,n]}const HHe=Gae;function ZHe(e,t,n){return t==null?qg:a6(t,n,dM,!0)}function Yae(e,t,n,r){return t==null?qg:o6(t,n,e.scales[r].log,!1)}const qHe=Yae;function Kae(e,t,n,r){return t==null?qg:cM(t,n,e.scales[r].log,!1)}const GHe=Kae;function YHe(e,t,n,r,i){let o=pa(Zoe(e),Zoe(t)),a=t-e,s=au(i/r*a,n);do{let l=n[s],c=r*l/a;if(c>=i&&o+(l<5?oh.get(l):0)<=17)return[l,c]}while(++s(t=qi((n=+i)*Fn))+"px"),[e,t,n]}function KHe(e){e.show&&[e.font,e.labelFont].forEach(t=>{let n=xr(t[2]*Fn,1);t[0]=t[0].replace(/[0-9.]+px/,n+"px"),t[1]=n})}function jn(e,t,n){const r={mode:Rn(e.mode,1)},i=r.mode;function o(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?1-de:de)}function a(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?de:1-de)}function s(N,z,K,Q){return z.ori==0?o(N,z,K,Q):a(N,z,K,Q)}r.valToPosH=o,r.valToPosV=a;let l=!1;r.status=0;const c=r.root=fl(rVe);if(e.id!=null&&(c.id=e.id),Cs(c,e.class),e.title){let N=fl(aVe,c);N.textContent=e.title}const d=ou("canvas"),f=r.ctx=d.getContext("2d"),p=fl(sVe,c);Np("click",p,N=>{N.target===x&&(mr!=Bd||jr!=Wd)&&Ai.click(r,N)},!0);const v=r.under=fl(lVe,p);p.appendChild(d);const x=r.over=fl(uVe,p);e=Gg(e);const y=+Rn(e.pxAlign,1),b=Oae(y);(e.plugins||[]).forEach(N=>{N.opts&&(e=N.opts(r,e)||e)});const w=e.ms||.001,_=r.series=i==1?qae(e.series||[],Cae,Mae,!1):VHe(e.series||[null],$ae),S=r.axes=qae(e.axes||[],Sae,Iae,!0),C=r.scales={},j=r.bands=e.bands||[];j.forEach(N=>{N.fill=bn(N.fill||null),N.dir=Rn(N.dir,-1)});const T=i==2?_[1].facets[0].scale:_[0].scale,E={axes:Kt,series:z1},$=(e.drawOrder||["axes","series"]).map(N=>E[N]);function D(N){const z=N.distr==3?K=>xd(K>0?K:N.clamp(r,K,N.min,N.max,N.key)):N.distr==4?K=>hM(K,N.asinh):N.distr==100?K=>N.fwd(K):K=>K;return K=>{let Q=z(K),{_min:de,_max:_e}=N,Me=_e-de;return(Q-de)/Me}}function M(N){let z=C[N];if(z==null){let K=(e.scales||gx)[N]||gx;if(K.from!=null){M(K.from);let Q=Li({},C[K.from],K,{key:N});Q.valToPct=D(Q),C[N]=Q}else{z=C[N]=Li({},N==T?Rae:MHe,K),z.key=N;let Q=z.time,de=z.range,_e=ah(de);if((N!=T||i==2&&!Q)&&(_e&&(de[0]==null||de[1]==null)&&(de={min:de[0]==null?Boe:{mode:1,hard:de[0],soft:de[0]},max:de[1]==null?Boe:{mode:1,hard:de[1],soft:de[1]}},_e=!1),!_e&&u6(de))){let Me=de;de=(Fe,Ve,et)=>Ve==null?qg:a6(Ve,et,Me)}z.range=bn(de||(Q?HHe:N==T?z.distr==3?qHe:z.distr==4?GHe:Gae:z.distr==3?Yae:z.distr==4?Kae:ZHe)),z.auto=bn(_e?!1:z.auto),z.clamp=bn(z.clamp||$He),z._min=z._max=null,z.valToPct=D(z)}}}M("x"),M("y"),i==1&&_.forEach(N=>{M(N.scale)}),S.forEach(N=>{M(N.scale)});for(let N in e.scales)M(N);const O=C[T],te=O.distr;let q,P;O.ori==0?(Cs(c,iVe),q=o,P=a):(Cs(c,oVe),q=a,P=o);const X={};for(let N in C){let z=C[N];(z.min!=null||z.max!=null)&&(X[N]={min:z.min,max:z.max},z.min=z.max=null)}const A=e.tzDate||(N=>new Date(qi(N/w))),Y=e.fmtDate||gM,F=w==1?iHe(A):sHe(A),H=gae(A,mae(w==1?rHe:aHe,Y)),ee=yae(A,vae(uHe,Y)),ce=[],B=r.legend=Li({},fHe,e.legend),ae=r.cursor=Li({},yHe,{drag:{y:i==2}},e.cursor),je=B.show,me=ae.show,ke=B.markers;B.idxs=ce,ke.width=bn(ke.width),ke.dash=bn(ke.dash),ke.stroke=bn(ke.stroke),ke.fill=bn(ke.fill);let he,ue,re,ge=[],$e=[],pe,ye=!1,Se={};if(B.live){const N=_[1]?_[1].values:null;ye=N!=null,pe=ye?N(r,1,0):{_:0};for(let z in pe)Se[z]=iM}if(je)if(he=ou("table",mVe,c),re=ou("tbody",null,he),B.mount(r,he),ye){ue=ou("thead",null,he,re);let N=ou("tr",null,ue);ou("th",null,N);for(var Ce in pe)ou("th",joe,N).textContent=Ce}else Cs(he,vVe),B.live&&Cs(he,gVe);const Ue={show:!0},Ge={show:!1};function _t(N,z){if(z==0&&(ye||!B.live||i==2))return qg;let K=[],Q=ou("tr",yVe,re,re.childNodes[z]);Cs(Q,N.class),N.show||Cs(Q,Ep);let de=ou("th",null,Q);if(ke.show){let Fe=fl(bVe,de);if(z>0){let Ve=ke.width(r,z);Ve&&(Fe.style.border=Ve+"px "+ke.dash(r,z)+" "+ke.stroke(r,z)),Fe.style.background=ke.fill(r,z)}}let _e=fl(joe,de);N.label instanceof HTMLElement?_e.appendChild(N.label):_e.textContent=N.label,z>0&&(ke.show||(_e.style.color=N.width>0?ke.stroke(r,z):ke.fill(r,z)),ut("click",de,Fe=>{if(ae._lock)return;pi(Fe);let Ve=_.indexOf(N);if((Fe.ctrlKey||Fe.metaKey)!=B.isolate){let et=_.some((ot,st)=>st>0&&st!=Ve&&ot.show);_.forEach((ot,st)=>{st>0&&Ja(st,et?st==Ve?Ue:Ge:Ue,!0,Sn.setSeries)})}else Ja(Ve,{show:!N.show},!0,Sn.setSeries)},!1),$o&&ut(Noe,de,Fe=>{ae._lock||(pi(Fe),Ja(_.indexOf(N),Cc,!0,Sn.setSeries))},!1));for(var Me in pe){let Fe=ou("td",xVe,Q);Fe.textContent="--",K.push(Fe)}return[Q,K]}const St=new Map;function ut(N,z,K,Q=!0){const de=St.get(z)||{},_e=ae.bind[N](r,z,K,Q);_e&&(Np(N,z,de[N]=_e),St.set(z,de))}function ct(N,z,K){const Q=St.get(z)||{};for(let de in Q)(N==null||de==N)&&(uM(de,z,Q[de]),delete Q[de]);N==null&&St.delete(z)}let bt=0,Qe=0,Ke=0,De=0,Dt=0,pn=0,Yn=Dt,hr=pn,Kn=Ke,kr=De,On=0,Mr=0,tr=0,Sr=0;r.bbox={};let ri=!1,uo=!1,Ki=!1,No=!1,Ps=!1,zn=!1;function co(N,z,K){(K||N!=r.width||z!=r.height)&&xa(N,z),In(!1),Ki=!0,uo=!0,Fd()}function xa(N,z){r.width=bt=Ke=N,r.height=Qe=De=z,Dt=pn=0,qa(),kl();let K=r.bbox;On=K.left=Mp(Dt*Fn,.5),Mr=K.top=Mp(pn*Fn,.5),tr=K.width=Mp(Ke*Fn,.5),Sr=K.height=Mp(De*Fn,.5)}const yc=3;function bc(){let N=!1,z=0;for(;!N;){z++;let K=ze(z),Q=vt(z);N=z==yc||K&&Q,N||(xa(r.width,r.height),uo=!0)}}function xc({width:N,height:z}){co(N,z)}r.setSize=xc;function qa(){let N=!1,z=!1,K=!1,Q=!1;S.forEach((de,_e)=>{if(de.show&&de._show){let{side:Me,_size:Fe}=de,Ve=Me%2,et=de.label!=null?de.labelSize:0,ot=Fe+et;ot>0&&(Ve?(Ke-=ot,Me==3?(Dt+=ot,Q=!0):K=!0):(De-=ot,Me==0?(pn+=ot,N=!0):z=!0))}}),ii[0]=N,ii[1]=K,ii[2]=z,ii[3]=Q,Ke-=mi[1]+mi[3],Dt+=mi[3],De-=mi[2]+mi[0],pn+=mi[0]}function kl(){let N=Dt+Ke,z=pn+De,K=Dt,Q=pn;function de(_e,Me){switch(_e){case 1:return N+=Me,N-Me;case 2:return z+=Me,z-Me;case 3:return K-=Me,K+Me;case 0:return Q-=Me,Q+Me}}S.forEach((_e,Me)=>{if(_e.show&&_e._show){let Fe=_e.side;_e._pos=de(Fe,_e._size),_e.label!=null&&(_e._lpos=de(Fe,_e.labelSize))}})}if(ae.dataIdx==null){let N=ae.hover,z=N.skip=new Set(N.skip??[]);z.add(void 0);let K=N.prox=bn(N.prox),Q=N.bias??(N.bias=0);ae.dataIdx=(de,_e,Me,Fe)=>{if(_e==0)return Me;let Ve=Me,et=K(de,_e,Me,Fe)??br,ot=et>=0&&et0;)z.has(Ut[mt])||(an=mt);if(Q==0||Q==1)for(mt=Me;Tt==null&&mt++et&&(Ve=null);return Ve}}const pi=N=>{ae.event=N};ae.idxs=ce,ae._lock=!1;let Un=ae.points;Un.show=bn(Un.show),Un.size=bn(Un.size),Un.stroke=bn(Un.stroke),Un.width=bn(Un.width),Un.fill=bn(Un.fill);const Rr=r.focus=Li({},e.focus||{alpha:.3},ae.focus),$o=Rr.prox>=0,fo=$o&&Un.one;let Lr=[],ho=[],_a=[];function it(N,z){let K=Un.show(r,z);if(K instanceof HTMLElement)return Cs(K,pVe),Cs(K,N.class),ec(K,-10,-10,Ke,De),x.insertBefore(K,Lr[z]),K}function Yt(N,z){if(i==1||z>0){let K=i==1&&C[N.scale].time,Q=N.value;N.value=K?tae(Q)?yae(A,vae(Q,Y)):Q||ee:Q||IHe,N.label=N.label||(K?xHe:bHe)}if(fo||z>0){N.width=N.width==null?1:N.width,N.paths=N.paths||BHe||MVe,N.fillTo=bn(N.fillTo||RHe),N.pxAlign=+Rn(N.pxAlign,y),N.pxRound=Oae(N.pxAlign),N.stroke=bn(N.stroke||null),N.fill=bn(N.fill||null),N._stroke=N._fill=N._paths=N._focus=null;let K=EHe(pa(1,N.width),1),Q=N.points=Li({},{size:K,width:pa(1,K*.2),stroke:N.stroke,space:K*2,paths:WHe,_stroke:null,_fill:null},N.points);Q.show=bn(Q.show),Q.filter=bn(Q.filter),Q.fill=bn(Q.fill),Q.stroke=bn(Q.stroke),Q.paths=bn(Q.paths),Q.pxAlign=N.pxAlign}if(je){let K=_t(N,z);ge.splice(z,0,K[0]),$e.splice(z,0,K[1]),B.values.push(null)}if(me){ce.splice(z,0,null);let K=null;fo?z==0&&(K=it(N,z)):z>0&&(K=it(N,z)),Lr.splice(z,0,K),ho.splice(z,0,0),_a.splice(z,0,0)}Ni("addSeries",z)}function nr(N,z){z=z??_.length,N=i==1?NM(N,z,Cae,Mae):NM(N,z,{},$ae),_.splice(z,0,N),Yt(_[z],z)}r.addSeries=nr;function ht(N){if(_.splice(N,1),je){B.values.splice(N,1),$e.splice(N,1);let z=ge.splice(N,1)[0];ct(null,z.firstChild),z.remove()}me&&(ce.splice(N,1),Lr.splice(N,1)[0].remove(),ho.splice(N,1),_a.splice(N,1)),Ni("delSeries",N)}r.delSeries=ht;const ii=[!1,!1,!1,!1];function Ga(N,z){if(N._show=N.show,N.show){let K=N.side%2,Q=C[N.scale];Q==null&&(N.scale=K?_[1].scale:T,Q=C[N.scale]);let de=Q.time;N.size=bn(N.size),N.space=bn(N.space),N.rotate=bn(N.rotate),ah(N.incrs)&&N.incrs.forEach(Me=>{!oh.has(Me)&&oh.set(Me,Qoe(Me))}),N.incrs=bn(N.incrs||(Q.distr==2?eHe:de?w==1?nHe:oHe:Rp)),N.splits=bn(N.splits||(de&&Q.distr==1?F:Q.distr==3?kM:Q.distr==4?kHe:wHe)),N.stroke=bn(N.stroke),N.grid.stroke=bn(N.grid.stroke),N.ticks.stroke=bn(N.ticks.stroke),N.border.stroke=bn(N.border.stroke);let _e=N.values;N.values=ah(_e)&&!ah(_e[0])?bn(_e):de?ah(_e)?gae(A,mae(_e,Y)):tae(_e)?lHe(A,_e):_e||H:_e||_He,N.filter=bn(N.filter||(Q.distr>=3&&Q.log==10?jHe:Q.distr==3&&Q.log==2?THe:Yoe)),N.font=Xae(N.font),N.labelFont=Xae(N.labelFont),N._size=N.size(r,null,z,0),N._space=N._rotate=N._incrs=N._found=N._splits=N._values=null,N._size>0&&(ii[z]=!0,N._el=fl(cVe,p))}}function Ya(N,z,K,Q){let[de,_e,Me,Fe]=K,Ve=z%2,et=0;return Ve==0&&(Fe||_e)&&(et=z==0&&!de||z==2&&!Me?qi(Sae.size/3):0),Ve==1&&(de||Me)&&(et=z==1&&!_e||z==3&&!Fe?qi(Iae.size/2):0),et}const Ko=r.padding=(e.padding||[Ya,Ya,Ya,Ya]).map(N=>bn(Rn(N,Ya))),mi=r._padding=Ko.map((N,z)=>N(r,z,ii,0));let Bn,pr=null,Cr=null;const Ka=i==1?_[0].idxs:null;let po=null,mo=!1;function Vr(N,z){if(t=N??[],r.data=r._data=t,i==2){Bn=0;for(let K=1;K<_.length;K++)Bn+=t[K][0].length}else{t.length==0&&(r.data=r._data=t=[[]]),po=t[0],Bn=po.length;let K=t;if(te==2){K=t.slice();let Q=K[0]=Array(Bn);for(let de=0;de=0,zn=!0,Fd()}}r.setData=Vr;function wa(){mo=!0;let N,z;i==1&&(Bn>0?(pr=Ka[0]=0,Cr=Ka[1]=Bn-1,N=t[0][pr],z=t[0][Cr],te==2?(N=pr,z=Cr):N==z&&(te==3?[N,z]=o6(N,N,O.log,!1):te==4?[N,z]=cM(N,N,O.log,!1):O.time?z=N+qi(86400/w):[N,z]=a6(N,z,dM,!0))):(pr=Ka[0]=N=null,Cr=Ka[1]=z=null)),Mo(T,N,z)}let ji,gi,Os,go,Xo,Pd,Od,bu,Xi,oi;function _c(N,z,K,Q,de,_e){N??(N=Ioe),K??(K=mM),Q??(Q="butt"),de??(de=Ioe),_e??(_e="round"),N!=ji&&(f.strokeStyle=ji=N),de!=gi&&(f.fillStyle=gi=de),z!=Os&&(f.lineWidth=Os=z),_e!=Xo&&(f.lineJoin=Xo=_e),Q!=Pd&&(f.lineCap=Pd=Q),K!=go&&f.setLineDash(go=K)}function xu(N,z,K,Q){z!=gi&&(f.fillStyle=gi=z),N!=Od&&(f.font=Od=N),K!=bu&&(f.textAlign=bu=K),Q!=Xi&&(f.textBaseline=Xi=Q)}function wc(N,z,K,Q,de=0){if(Q.length>0&&N.auto(r,mo)&&(z==null||z.min==null)){let _e=Rn(pr,0),Me=Rn(Cr,Q.length-1),Fe=K.min==null?jVe(Q,_e,Me,de,N.distr==3):[K.min,K.max];N.min=su(N.min,K.min=Fe[0]),N.max=pa(N.max,K.max=Fe[1])}}const kc={min:null,max:null};function Sl(){for(let Q in C){let de=C[Q];X[Q]==null&&(de.min==null||X[T]!=null&&de.auto(r,mo))&&(X[Q]=kc)}for(let Q in C){let de=C[Q];X[Q]==null&&de.from!=null&&X[de.from]!=null&&(X[Q]=kc)}X[T]!=null&&In(!0);let N={};for(let Q in X){let de=X[Q];if(de!=null){let _e=N[Q]=Gg(C[Q],PVe);if(de.min!=null)Li(_e,de);else if(Q!=T||i==2)if(Bn==0&&_e.from==null){let Me=_e.range(r,null,null,Q);_e.min=Me[0],_e.max=Me[1]}else _e.min=br,_e.max=-br}}if(Bn>0){_.forEach((Q,de)=>{if(i==1){let _e=Q.scale,Me=X[_e];if(Me==null)return;let Fe=N[_e];if(de==0){let Ve=Fe.range(r,Fe.min,Fe.max,_e);Fe.min=Ve[0],Fe.max=Ve[1],pr=au(Fe.min,t[0]),Cr=au(Fe.max,t[0]),Cr-pr>1&&(t[0][pr]Fe.max&&Cr--),Q.min=po[pr],Q.max=po[Cr]}else Q.show&&Q.auto&&wc(Fe,Me,Q,t[de],Q.sorted);Q.idxs[0]=pr,Q.idxs[1]=Cr}else if(de>0&&Q.show&&Q.auto){let[_e,Me]=Q.facets,Fe=_e.scale,Ve=Me.scale,[et,ot]=t[de],st=N[Fe],Pt=N[Ve];st!=null&&wc(st,X[Fe],_e,et,_e.sorted),Pt!=null&&wc(Pt,X[Ve],Me,ot,Me.sorted),Q.min=Me.min,Q.max=Me.max}});for(let Q in N){let de=N[Q],_e=X[Q];if(de.from==null&&(_e==null||_e.min==null)){let Me=de.range(r,de.min==br?null:de.min,de.max==-br?null:de.max,Q);de.min=Me[0],de.max=Me[1]}}}for(let Q in N){let de=N[Q];if(de.from!=null){let _e=N[de.from];if(_e.min==null)de.min=de.max=null;else{let Me=de.range(r,_e.min,_e.max,Q);de.min=Me[0],de.max=Me[1]}}}let z={},K=!1;for(let Q in N){let de=N[Q],_e=C[Q];if(_e.min!=de.min||_e.max!=de.max){_e.min=de.min,_e.max=de.max;let Me=_e.distr;_e._min=Me==3?xd(_e.min):Me==4?hM(_e.min,_e.asinh):Me==100?_e.fwd(_e.min):_e.min,_e._max=Me==3?xd(_e.max):Me==4?hM(_e.max,_e.asinh):Me==100?_e.fwd(_e.max):_e.max,z[Q]=K=!0}}if(K){_.forEach((Q,de)=>{i==2?de>0&&z.y&&(Q._paths=null):z[Q.scale]&&(Q._paths=null)});for(let Q in z)Ki=!0,Ni("setScale",Q);me&&ae.left>=0&&(No=zn=!0)}for(let Q in X)X[Q]=null}function Xa(N){let z=pM(pr-1,0,Bn-1),K=pM(Cr+1,0,Bn-1);for(;N[z]==null&&z>0;)z--;for(;N[K]==null&&K0){let N=_.some(z=>z._focus)&&oi!=Rr.alpha;N&&(f.globalAlpha=oi=Rr.alpha),_.forEach((z,K)=>{if(K>0&&z.show&&(zd(K,!1),zd(K,!0),z._paths==null)){let Q=oi;oi!=z.alpha&&(f.globalAlpha=oi=z.alpha);let de=i==2?[0,t[K][0].length-1]:Xa(t[K]);z._paths=z.paths(r,K,de[0],de[1]),oi!=Q&&(f.globalAlpha=oi=Q)}}),_.forEach((z,K)=>{if(K>0&&z.show){let Q=oi;oi!=z.alpha&&(f.globalAlpha=oi=z.alpha),z._paths!=null&&Sc(K,!1);{let de=z._paths!=null?z._paths.gaps:null,_e=z.points.show(r,K,pr,Cr,de),Me=z.points.filter(r,K,_e,de);(_e||Me)&&(z.points._paths=z.points.paths(r,K,pr,Cr,Me),Sc(K,!0))}oi!=Q&&(f.globalAlpha=oi=Q),Ni("drawSeries",K)}}),N&&(f.globalAlpha=oi=1)}}function zd(N,z){let K=z?_[N].points:_[N];K._stroke=K.stroke(r,N),K._fill=K.fill(r,N)}function Sc(N,z){let K=z?_[N].points:_[N],{stroke:Q,fill:de,clip:_e,flags:Me,_stroke:Fe=K._stroke,_fill:Ve=K._fill,_width:et=K.width}=K._paths;et=xr(et*Fn,3);let ot=null,st=et%2/2;z&&Ve==null&&(Ve=et>0?"#fff":Fe);let Pt=K.pxAlign==1&&st>0;if(Pt&&f.translate(st,st),!z){let hn=On-et/2,Ut=Mr-et/2,an=tr+et,Tt=Sr+et;ot=new Path2D,ot.rect(hn,Ut,an,Tt)}z?Ad(Fe,et,K.dash,K.cap,Ve,Q,de,Me,_e):Dd(N,Fe,et,K.dash,K.cap,Ve,Q,de,Me,ot,_e),Pt&&f.translate(-st,-st)}function Dd(N,z,K,Q,de,_e,Me,Fe,Ve,et,ot){let st=!1;Ve!=0&&j.forEach((Pt,hn)=>{if(Pt.series[0]==N){let Ut=_[Pt.series[1]],an=t[Pt.series[1]],Tt=(Ut._paths||gx).band;ah(Tt)&&(Tt=Pt.dir==1?Tt[0]:Tt[1]);let mt,gr=null;Ut.show&&Tt&&IVe(an,pr,Cr)?(gr=Pt.fill(r,hn)||_e,mt=Ut._paths.clip):Tt=null,Ad(z,K,Q,de,gr,Me,Fe,Ve,et,ot,mt,Tt),st=!0}}),st||Ad(z,K,Q,de,_e,Me,Fe,Ve,et,ot)}const Fm=Kg|CM;function Ad(N,z,K,Q,de,_e,Me,Fe,Ve,et,ot,st){_c(N,z,K,Q,de),(Ve||et||st)&&(f.save(),Ve&&f.clip(Ve),et&&f.clip(et)),st?(Fe&Fm)==Fm?(f.clip(st),ot&&f.clip(ot),G(de,Me),L(N,_e,z)):Fe&CM?(G(de,Me),f.clip(st),L(N,_e,z)):Fe&Kg&&(f.save(),f.clip(st),ot&&f.clip(ot),G(de,Me),f.restore(),L(N,_e,z)):(G(de,Me),L(N,_e,z)),(Ve||et||st)&&f.restore()}function L(N,z,K){K>0&&(z instanceof Map?z.forEach((Q,de)=>{f.strokeStyle=ji=de,f.stroke(Q)}):z!=null&&N&&f.stroke(z))}function G(N,z){z instanceof Map?z.forEach((K,Q)=>{f.fillStyle=gi=Q,f.fill(K)}):z!=null&&N&&f.fill(z)}function ie(N,z,K,Q){let de=S[N],_e;if(Q<=0)_e=[0,0];else{let Me=de._space=de.space(r,N,z,K,Q),Fe=de._incrs=de.incrs(r,N,z,K,Q,Me);_e=YHe(z,K,Fe,Q,Me)}return de._found=_e}function Ie(N,z,K,Q,de,_e,Me,Fe,Ve,et){let ot=Me%2/2;y==1&&f.translate(ot,ot),_c(Fe,Me,Ve,et,Fe),f.beginPath();let st,Pt,hn,Ut,an=de+(Q==0||Q==3?-_e:_e);K==0?(Pt=de,Ut=an):(st=de,hn=an);for(let Tt=0;Tt{if(!K.show)return;let de=C[K.scale];if(de.min==null){K._show&&(z=!1,K._show=!1,In(!1));return}else K._show||(z=!1,K._show=!0,In(!1));let _e=K.side,Me=_e%2,{min:Fe,max:Ve}=de,[et,ot]=ie(Q,Fe,Ve,Me==0?Ke:De);if(ot==0)return;let st=de.distr==2,Pt=K._splits=K.splits(r,Q,Fe,Ve,et,ot,st),hn=de.distr==2?Pt.map(mt=>po[mt]):Pt,Ut=de.distr==2?po[Pt[1]]-po[Pt[0]]:et,an=K._values=K.values(r,K.filter(r,hn,Q,ot,Ut),Q,ot,Ut);K._rotate=_e==2?K.rotate(r,an,Q,ot):0;let Tt=K._size;K._size=hl(K.size(r,an,Q,N)),Tt!=null&&K._size!=Tt&&(z=!1)}),z}function vt(N){let z=!0;return Ko.forEach((K,Q)=>{let de=K(r,Q,ii,N);de!=mi[Q]&&(z=!1),mi[Q]=de}),z}function Kt(){for(let N=0;Npo[ar]):hn,an=ot.distr==2?po[hn[1]]-po[hn[0]]:Ve,Tt=z.ticks,mt=z.border,gr=Tt.show?Tt.size:0,Hr=qi(gr*Fn),$i=qi((z.alignTo==2?z._size-gr-z.gap:z.gap)*Fn),xn=z._rotate*-s6/180,le=b(z._pos*Fn),Ne=(Hr+$i)*Fe,we=le+Ne;_e=Q==0?we:0,de=Q==1?we:0;let Je=z.font[0],xt=z.align==1?Wg:z.align==2?eM:xn>0?Wg:xn<0?eM:Q==0?"center":K==3?eM:Wg,Gt=xn||Q==1?"middle":K==2?hx:Toe;xu(Je,Me,xt,Gt);let En=z.font[1]*z.lineGap,tn=hn.map(ar=>b(s(ar,ot,st,Pt))),Qo=z._values;for(let ar=0;ar{K>0&&(z._paths=null,N&&(i==1?(z.min=null,z.max=null):z.facets.forEach(Q=>{Q.min=null,Q.max=null})))})}let Di=!1,Ti=!1,Ji=[];function mC(){Ti=!1;for(let N=0;N0&&queueMicrotask(mC)}r.batch=j_;function T_(){if(ri&&(Sl(),ri=!1),Ki&&(bc(),Ki=!1),uo){if(Dr(v,Wg,Dt),Dr(v,hx,pn),Dr(v,dx,Ke),Dr(v,fx,De),Dr(x,Wg,Dt),Dr(x,hx,pn),Dr(x,dx,Ke),Dr(x,fx,De),Dr(p,dx,bt),Dr(p,fx,Qe),d.width=qi(bt*Fn),d.height=qi(Qe*Fn),S.forEach(({_el:N,_show:z,_size:K,_pos:Q,side:de})=>{if(N!=null)if(z){let _e=de===3||de===0?K:0,Me=de%2==1;Dr(N,Me?"left":"top",Q-_e),Dr(N,Me?"width":"height",K),Dr(N,Me?"top":"left",Me?pn:Dt),Dr(N,Me?"height":"width",Me?De:Ke),sM(N,Ep)}else Cs(N,Ep)}),ji=gi=Os=Xo=Pd=Od=bu=Xi=go=null,oi=1,jc(!0),Dt!=Yn||pn!=hr||Ke!=Kn||De!=kr){In(!1);let N=Ke/Kn,z=De/kr;if(me&&!No&&ae.left>=0){ae.left*=N,ae.top*=z,_u&&ec(_u,qi(ae.left),0,Ke,De),Ud&&ec(Ud,0,qi(ae.top),Ke,De);for(let K=0;K=0&&ir.width>0){ir.left*=N,ir.width*=N,ir.top*=z,ir.height*=z;for(let K in Z1)Dr(Vd,K,ir[K])}Yn=Dt,hr=pn,Kn=Ke,kr=De}Ni("setSize"),uo=!1}bt>0&&Qe>0&&(f.clearRect(0,0,d.width,d.height),Ni("drawClear"),$.forEach(N=>N()),Ni("draw")),ir.show&&Ps&&(ai(ir),Ps=!1),me&&No&&(jl(null,!0,!1),No=!1),B.show&&B.live&&zn&&(or(),zn=!1),l||(l=!0,r.status=1,Ni("ready")),mo=!1,Di=!1}r.redraw=(N,z)=>{Ki=z||!1,N!==!1?Mo(T,O.min,O.max):Fd()};function D1(N,z){let K=C[N];if(K.from==null){if(Bn==0){let Q=K.range(r,z.min,z.max,N);z.min=Q[0],z.max=Q[1]}if(z.min>z.max){let Q=z.min;z.min=z.max,z.max=Q}if(Bn>1&&z.min!=null&&z.max!=null&&z.max-z.min<1e-16)return;N==T&&K.distr==2&&Bn>0&&(z.min=au(z.min,t[0]),z.max=au(z.max,t[0]),z.min==z.max&&z.max++),X[N]=z,ri=!0,Fd()}}r.setScale=D1;let A1,F1,_u,Ud,I_,E_,Bd,Wd,rr,Xn,mr,jr,wu=!1;const Ai=ae.drag;let Ii=Ai.x,Ei=Ai.y;me&&(ae.x&&(A1=fl(fVe,x)),ae.y&&(F1=fl(hVe,x)),O.ori==0?(_u=A1,Ud=F1):(_u=F1,Ud=A1),mr=ae.left,jr=ae.top);const ir=r.select=Li({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),Vd=ir.show?fl(dVe,ir.over?x:v):null;function ai(N,z){if(ir.show){for(let K in N)ir[K]=N[K],K in Z1&&Dr(Vd,K,N[K]);z!==!1&&Ni("setSelect")}}r.setSelect=ai;function U1(N){if(_[N].show)je&&sM(ge[N],Ep);else if(je&&Cs(ge[N],Ep),me){let z=fo?Lr[0]:Lr[N];z!=null&&ec(z,-10,-10,Ke,De)}}function Mo(N,z,K){D1(N,{min:z,max:K})}function Ja(N,z,K,Q){z.focus!=null&&Jo(N),z.show!=null&&_.forEach((de,_e)=>{_e>0&&(N==_e||N==null)&&(de.show=z.show,U1(_e),i==2?(Mo(de.facets[0].scale,null,null),Mo(de.facets[1].scale,null,null)):Mo(de.scale,null,null),Fd())}),K!==!1&&Ni("setSeries",N,z),Q&&Zd("setSeries",r,N,z)}r.setSeries=Ja;function B1(N,z){Li(j[N],z)}function ka(N,z){N.fill=bn(N.fill||null),N.dir=Rn(N.dir,-1),z=z??j.length,j.splice(z,0,N)}function N_(N){N==null?j.length=0:j.splice(N,1)}r.addBand=ka,r.setBand=B1,r.delBand=N_;function $_(N,z){_[N].alpha=z,me&&Lr[N]!=null&&(Lr[N].style.opacity=z),je&&ge[N]&&(ge[N].style.opacity=z)}let zs,Cl,ku;const Cc={focus:!0};function Jo(N){if(N!=ku){let z=N==null,K=Rr.alpha!=1;_.forEach((Q,de)=>{if(i==1||de>0){let _e=z||de==0||de==N;Q._focus=z?null:_e,K&&$_(de,_e?1:Rr.alpha)}}),ku=N,K&&Fd()}}je&&$o&&ut($oe,he,N=>{ae._lock||(pi(N),ku!=null&&Ja(null,Cc,!0,Sn.setSeries))});function Ds(N,z,K){let Q=C[z];K&&(N=N/Fn-(Q.ori==1?pn:Dt));let de=Ke;Q.ori==1&&(de=De,N=de-N),Q.dir==-1&&(N=de-N);let _e=Q._min,Me=Q._max,Fe=N/de,Ve=_e+(Me-_e)*Fe,et=Q.distr;return et==3?Zg(10,Ve):et==4?NVe(Ve,Q.asinh):et==100?Q.bwd(Ve):Ve}function Sa(N,z){let K=Ds(N,T,z);return au(K,t[0],pr,Cr)}r.valToIdx=N=>au(N,t[0]),r.posToIdx=Sa,r.posToVal=Ds,r.valToPos=(N,z,K)=>C[z].ori==0?o(N,C[z],K?tr:Ke,K?On:0):a(N,C[z],K?Sr:De,K?Mr:0),r.setCursor=(N,z,K)=>{mr=N.left,jr=N.top,jl(null,z,K)};function M_(N,z){Dr(Vd,Wg,ir.left=N),Dr(Vd,dx,ir.width=z)}function W1(N,z){Dr(Vd,hx,ir.top=N),Dr(Vd,fx,ir.height=z)}let Ca=O.ori==0?M_:W1,Su=O.ori==1?M_:W1;function V1(){if(je&&B.live)for(let N=i==2?1:0;N<_.length;N++){if(N==0&&ye)continue;let z=B.values[N],K=0;for(let Q in z)$e[N][K++].firstChild.nodeValue=z[Q]}}function or(N,z){if(N!=null&&(N.idxs?N.idxs.forEach((K,Q)=>{ce[Q]=K}):LVe(N.idx)||ce.fill(N.idx),B.idx=ce[0]),je&&B.live){for(let K=0;K<_.length;K++)(K>0||i==1&&!ye)&&Cu(K,ce[K]);V1()}zn=!1,z!==!1&&Ni("setLegend")}r.setLegend=or;function Cu(N,z){let K=_[N],Q=N==0&&te==2?po:t[N],de;ye?de=K.values(r,N,z)??Se:(de=K.value(r,z==null?null:Q[z],N,z),de=de==null?Se:{_:de}),B.values[N]=de}function jl(N,z,K){rr=mr,Xn=jr,[mr,jr]=ae.move(r,mr,jr),ae.left=mr,ae.top=jr,me&&(_u&&ec(_u,qi(mr),0,Ke,De),Ud&&ec(Ud,0,qi(jr),Ke,De));let Q,de=pr>Cr;zs=br,Cl=null;let _e=O.ori==0?Ke:De,Me=O.ori==1?Ke:De;if(mr<0||Bn==0||de){Q=ae.idx=null;for(let Fe=0;Fe<_.length;Fe++){let Ve=Lr[Fe];Ve!=null&&ec(Ve,-10,-10,Ke,De)}$o&&Ja(null,Cc,!0,N==null&&Sn.setSeries),B.live&&(ce.fill(Q),zn=!0)}else{let Fe,Ve,et;i==1&&(Fe=O.ori==0?mr:jr,Ve=Ds(Fe,T),Q=ae.idx=au(Ve,t[0],pr,Cr),et=q(t[0][Q],O,_e,0));let ot=-10,st=-10,Pt=0,hn=0,Ut=!0,an="",Tt="";for(let mt=i==2?1:0;mt<_.length;mt++){let gr=_[mt],Hr=ce[mt],$i=Hr==null?null:i==1?t[mt][Hr]:t[mt][1][Hr],xn=ae.dataIdx(r,mt,Q,Ve),le=xn==null?null:i==1?t[mt][xn]:t[mt][1][xn];if(zn=zn||le!=$i||xn!=Hr,ce[mt]=xn,mt>0&&gr.show){let Ne=xn==null?-10:xn==Q?et:q(i==1?t[0][xn]:t[mt][0][xn],O,_e,0),we=le==null?-10:P(le,i==1?C[gr.scale]:C[gr.facets[1].scale],Me,0);if($o&&le!=null){let Je=O.ori==1?mr:jr,xt=Zi(Rr.dist(r,mt,xn,we,Je));if(xt=0?1:-1,Qo=En>=0?1:-1;Qo==tn&&(Qo==1?Gt==1?le>=En:le<=En:Gt==1?le<=En:le>=En)&&(zs=xt,Cl=mt)}else zs=xt,Cl=mt}}if(zn||fo){let Je,xt;O.ori==0?(Je=Ne,xt=we):(Je=we,xt=Ne);let Gt,En,tn,Qo,As,ar,Qi=!0,Ec=Un.bbox;if(Ec!=null){Qi=!1;let si=Ec(r,mt);tn=si.left,Qo=si.top,Gt=si.width,En=si.height}else tn=Je,Qo=xt,Gt=En=Un.size(r,mt);if(ar=Un.fill(r,mt),As=Un.stroke(r,mt),fo)mt==Cl&&zs<=Rr.prox&&(ot=tn,st=Qo,Pt=Gt,hn=En,Ut=Qi,an=ar,Tt=As);else{let si=Lr[mt];si!=null&&(ho[mt]=tn,_a[mt]=Qo,Doe(si,Gt,En,Qi),Ooe(si,ar,As),ec(si,hl(tn),hl(Qo),Ke,De))}}}}if(fo){let mt=Rr.prox,gr=ku==null?zs<=mt:zs>mt||Cl!=ku;if(zn||gr){let Hr=Lr[0];Hr!=null&&(ho[0]=ot,_a[0]=st,Doe(Hr,Pt,hn,Ut),Ooe(Hr,an,Tt),ec(Hr,hl(ot),hl(st),Ke,De))}}}if(ir.show&&wu)if(N!=null){let[Fe,Ve]=Sn.scales,[et,ot]=Sn.match,[st,Pt]=N.cursor.sync.scales,hn=N.cursor.drag;if(Ii=hn._x,Ei=hn._y,Ii||Ei){let{left:Ut,top:an,width:Tt,height:mt}=N.select,gr=N.scales[st].ori,Hr=N.posToVal,$i,xn,le,Ne,we,Je=Fe!=null&&et(Fe,st),xt=Ve!=null&&ot(Ve,Pt);Je&&Ii?(gr==0?($i=Ut,xn=Tt):($i=an,xn=mt),le=C[Fe],Ne=q(Hr($i,st),le,_e,0),we=q(Hr($i+xn,st),le,_e,0),Ca(su(Ne,we),Zi(we-Ne))):Ca(0,_e),xt&&Ei?(gr==1?($i=Ut,xn=Tt):($i=an,xn=mt),le=C[Ve],Ne=P(Hr($i,Pt),le,Me,0),we=P(Hr($i+xn,Pt),le,Me,0),Su(su(Ne,we),Zi(we-Ne))):Su(0,Me)}else Um()}else{let Fe=Zi(rr-I_),Ve=Zi(Xn-E_);if(O.ori==1){let Pt=Fe;Fe=Ve,Ve=Pt}Ii=Ai.x&&Fe>=Ai.dist,Ei=Ai.y&&Ve>=Ai.dist;let et=Ai.uni;et!=null?Ii&&Ei&&(Ii=Fe>=et,Ei=Ve>=et,!Ii&&!Ei&&(Ve>Fe?Ei=!0:Ii=!0)):Ai.x&&Ai.y&&(Ii||Ei)&&(Ii=Ei=!0);let ot,st;Ii&&(O.ori==0?(ot=Bd,st=mr):(ot=Wd,st=jr),Ca(su(ot,st),Zi(st-ot)),Ei||Su(0,Me)),Ei&&(O.ori==1?(ot=Bd,st=mr):(ot=Wd,st=jr),Su(su(ot,st),Zi(st-ot)),Ii||Ca(0,_e)),!Ii&&!Ei&&(Ca(0,0),Su(0,0))}if(Ai._x=Ii,Ai._y=Ei,N==null){if(K){if(Wm!=null){let[Fe,Ve]=Sn.scales;Sn.values[0]=Fe!=null?Ds(O.ori==0?mr:jr,Fe):null,Sn.values[1]=Ve!=null?Ds(O.ori==1?mr:jr,Ve):null}Zd(nM,r,mr,jr,Ke,De,Q)}if($o){let Fe=K&&Sn.setSeries,Ve=Rr.prox;ku==null?zs<=Ve&&Ja(Cl,Cc,!0,Fe):zs>Ve?Ja(null,Cc,!0,Fe):Cl!=ku&&Ja(Cl,Cc,!0,Fe)}}zn&&(B.idx=Q,or()),z!==!1&&Ni("setCursor")}let ju=null;Object.defineProperty(r,"rect",{get(){return ju==null&&jc(!1),ju}});function jc(N=!1){N?ju=null:(ju=x.getBoundingClientRect(),Ni("syncRect",ju))}function R_(N,z,K,Q,de,_e,Me){ae._lock||wu&&N!=null&&N.movementX==0&&N.movementY==0||(H1(N,z,K,Q,de,_e,Me,!1,N!=null),N!=null?jl(null,!0,!0):jl(z,!0,!1))}function H1(N,z,K,Q,de,_e,Me,Fe,Ve){if(ju==null&&jc(!1),pi(N),N!=null)K=N.clientX-ju.left,Q=N.clientY-ju.top;else{if(K<0||Q<0){mr=-10,jr=-10;return}let[et,ot]=Sn.scales,st=z.cursor.sync,[Pt,hn]=st.values,[Ut,an]=st.scales,[Tt,mt]=Sn.match,gr=z.axes[0].side%2==1,Hr=O.ori==0?Ke:De,$i=O.ori==1?Ke:De,xn=gr?_e:de,le=gr?de:_e,Ne=gr?Q:K,we=gr?K:Q;if(Ut!=null?K=Tt(et,Ut)?s(Pt,C[et],Hr,0):-10:K=Hr*(Ne/xn),an!=null?Q=mt(ot,an)?s(hn,C[ot],$i,0):-10:Q=$i*(we/le),O.ori==1){let Je=K;K=Q,Q=Je}}Ve&&(z==null||z.cursor.event.type==nM)&&((K<=1||K>=Ke-1)&&(K=Mp(K,Ke)),(Q<=1||Q>=De-1)&&(Q=Mp(Q,De))),Fe?(I_=K,E_=Q,[Bd,Wd]=ae.move(r,K,Q)):(mr=K,jr=Q)}const Z1={width:0,height:0,left:0,top:0};function Um(){ai(Z1,!1)}let wh,Tc,L_,q1;function G1(N,z,K,Q,de,_e,Me){wu=!0,Ii=Ei=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,_e,Me,!0,!1),N!=null&&(ut(rM,oM,Bm,!1),Zd(Eoe,r,Bd,Wd,Ke,De,null));let{left:Fe,top:Ve,width:et,height:ot}=ir;wh=Fe,Tc=Ve,L_=et,q1=ot}function Bm(N,z,K,Q,de,_e,Me){wu=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,_e,Me,!1,!0);let{left:Fe,top:Ve,width:et,height:ot}=ir,st=et>0||ot>0,Pt=wh!=Fe||Tc!=Ve||L_!=et||q1!=ot;if(st&&Pt&&ai(ir),Ai.setScale&&st&&Pt){let hn=Fe,Ut=et,an=Ve,Tt=ot;if(O.ori==1&&(hn=Ve,Ut=ot,an=Fe,Tt=et),Ii&&Mo(T,Ds(hn,T),Ds(hn+Ut,T)),Ei)for(let mt in C){let gr=C[mt];mt!=T&&gr.from==null&&gr.min!=br&&Mo(mt,Ds(an+Tt,mt),Ds(an,mt))}Um()}else ae.lock&&(ae._lock=!ae._lock,jl(z,!0,N!=null));N!=null&&(ct(rM,oM),Zd(rM,r,mr,jr,Ke,De,null))}function Y1(N,z,K,Q,de,_e,Me){if(ae._lock)return;pi(N);let Fe=wu;if(wu){let Ve=!0,et=!0,ot=10,st,Pt;O.ori==0?(st=Ii,Pt=Ei):(st=Ei,Pt=Ii),st&&Pt&&(Ve=mr<=ot||mr>=Ke-ot,et=jr<=ot||jr>=De-ot),st&&Ve&&(mr=mr{let de=Sn.match[2];K=de(r,z,K),K!=-1&&Ja(K,Q,!0,!1)},me&&(ut(Eoe,x,G1),ut(nM,x,R_),ut(Noe,x,N=>{pi(N),jc(!1)}),ut($oe,x,Y1),ut(Moe,x,K1),EM.add(r),r.syncRect=jc);const Hd=r.hooks=e.hooks||{};function Ni(N,z,K){Ti?Ji.push([N,z,K]):N in Hd&&Hd[N].forEach(Q=>{Q.call(null,r,z,K)})}(e.plugins||[]).forEach(N=>{for(let z in N.hooks)Hd[z]=(Hd[z]||[]).concat(N.hooks[z])});const X1=(N,z,K)=>K,Sn=Li({key:null,setSeries:!1,filters:{pub:Koe,sub:Koe},scales:[T,_[1]?_[1].scale:null],match:[Xoe,Xoe,X1],values:[null,null]},ae.sync);Sn.match.length==2&&Sn.match.push(X1),ae.sync=Sn;const Wm=Sn.key,Ic=Pae(Wm);function Zd(N,z,K,Q,de,_e,Me){Sn.filters.pub(N,z,K,Q,de,_e,Me)&&Ic.pub(N,z,K,Q,de,_e,Me)}Ic.sub(r);function O_(N,z,K,Q,de,_e,Me){Sn.filters.sub(N,z,K,Q,de,_e,Me)&&Tu[N](null,z,K,Q,de,_e,Me)}r.pub=O_;function gC(){Ic.unsub(r),EM.delete(r),St.clear(),uM(n6,Hg,P_),c.remove(),he==null||he.remove(),Ni("destroy")}r.destroy=gC;function J1(){Ni("init",e,t),Vr(t||e.data,!1),X[T]?D1(T,X[T]):wa(),Ps=ir.show&&(ir.width>0||ir.height>0),No=zn=!0,co(e.width,e.height)}return _.forEach(Yt),S.forEach(Ga),n?n instanceof HTMLElement?(n.appendChild(c),J1()):n(r,J1):J1(),r}jn.assign=Li,jn.fmtNum=fM,jn.rangeNum=a6,jn.rangeLog=o6,jn.rangeAsinh=cM,jn.orient=Lp,jn.pxRatio=Fn,jn.join=UVe,jn.fmtDate=gM,jn.tzDate=JVe,jn.sync=Pae;{jn.addGap=LHe,jn.clipGaps=h6;let e=jn.paths={points:Bae};e.linear=Vae,e.stepped=zHe,e.bars=DHe,e.spline=FHe}Object.is||Object.defineProperty(Object,"is",{value:(e,t)=>e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t});const XHe=(e,t)=>{const{width:n,height:r,...i}=e,{width:o,height:a,...s}=t;let l="keep";if((r!==a||n!==o)&&(l="update"),Object.keys(i).length!==Object.keys(s).length)return"create";for(const c of Object.keys(i))if(!Object.is(i[c],s[c])){l="create";break}return l},JHe=(e,t)=>e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];if(n.length!==i.length)return!1;if(Array.isArray(n))return n.every((o,a)=>o===i[a])});function v6(e,t,n,r,i,o){return e>r?(t=i,n=o):to&&(n=o,t=o-e),[t,n]}const Jae=e=>e._size??0,Qae=fe({}),y6=fe(null,(e,t,n,r)=>{const{chartId:i,isMatchingChartId:o}=r||{},a=e(Qae);if(i&&a[i])n(a[i],i);else for(const[s,l]of Object.entries(a))o&&!o(s)||n(l,s)}),QHe="_uplot_1swaw_1",eZe={uplot:QHe};function Pp({id:e,options:t,data:n,target:r,onDelete:i,onCreate:o,resetScales:a=!0,className:s}){var S,C;const l=m.useRef(null),c=m.useRef(null),d=m.useRef(t),f=m.useRef(r),p=m.useRef(n),v=m.useRef(o),x=m.useRef(i),y=Ee(Qae);m.useEffect(()=>{v.current=o,x.current=i});const b=m.useCallback(j=>{var T;j&&((T=x.current)==null||T.call(x,j),j.destroy(),l.current=null,y(E=>{const $={...E};return delete $[e],$}))},[e,y]),w=m.useCallback(()=>{var T;const j=new jn(d.current,p.current,f.current||c.current);l.current=j,y(E=>({...E,[e]:j})),(T=v.current)==null||T.call(v,j)},[e,y]);m.useEffect(()=>(w(),()=>{b(l.current)}),[w,b]),m.useEffect(()=>{if(d.current!==t){const j=XHe(d.current,t);d.current=t,!l.current||j==="create"?(b(l.current),w()):j==="update"&&l.current.setSize({width:t.width,height:t.height})}},[t,w,b]),m.useEffect(()=>{p.current!==n&&(l.current?JHe(p.current,n)||(a?l.current.setData(n,!0):(l.current.setData(n,!1),l.current.redraw())):(p.current=n,w()),p.current=n)},[n,a,w]),m.useEffect(()=>(f.current!==r&&(f.current=r,w()),()=>b(l.current)),[r,w,b]);const _=Ba(()=>{requestAnimationFrame(()=>{var j;return(j=l.current)==null?void 0:j.setSize({width:d.current.width,height:d.current.height})})},500,{leading:!0,trailing:!0});return(t.height!==((S=l.current)==null?void 0:S.height)||t.width!==((C=l.current)==null?void 0:C.width))&&_(),r?null:u.jsx("div",{id:e,ref:c,className:Te(eZe.uplot,s)})}const $M=fe(null),Op=fe(e=>{const t=e(nee);return t==null?void 0:t+1}),tZe=fe(e=>{const t=e(Op),n=e(ese);return t!=null&&!!n.size}),[ese,nZe,tse,bx,rZe]=function(){const e=Co(new Set),t=fe(),n=fe();return[fe(r=>r(e)),fe(null,(r,i,o)=>{r(ol)&&i(e,a=>{o.forEach(s=>{a.add(s),i(t,l=>l?Math.min(l,s):s),i(n,l=>l?Math.max(l,s):s)})})}),fe(r=>r(t)),fe(r=>r(n)),fe(null,(r,i)=>{i(t,void 0),i(n,void 0),i(e,new Set)})]}(),[iZe,oZe,aZe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{t(ol)&&n(e,i=>{r.forEach(o=>{i.add(o)})})}),fe(null,(t,n)=>{n(e,new Set)})]}();function nse(e,t,n,r){if(!n)return 0;const i=Math.ceil((e-t+1)/n);return Math.min(i-1,r)}function MM(e,t){return t==null?!1:e<=t}function RM(e,t){return t.has(e)}function LM(e,t){return t.has(e)}function b6(e,t,n){for(let r=t;r>=e;r--)if(n(r))return!0;return!1}function sZe(e,t,n,r,i,o,a){return o?tne:i?ene:b6(e,t,s=>!MM(s,n)&&!RM(s,r)&&!LM(s,a))?nne:b6(e,t,s=>!MM(s,n)&&RM(s,r))?ane:b6(e,t,s=>!MM(s,n)&&LM(s,a))?one:b6(e,t,s=>!RM(s,r)&&!LM(s,a))?ine:rne}const lZe=ca(),rse=4,uZe=rse;function cZe(e,t){return{hooks:{drawSeries:[n=>{const r=e.current.totalSlotsEstimate;if(r==null||!t.current)return;const i=n.ctx;i.save();const o=n.bbox.top,a=n.bbox.height,s=rse*window.devicePixelRatio,l=uZe*window.devicePixelRatio,c=s/2,d=Math.trunc((n.bbox.width+l)/(s+l)),f=r/d,{startSlot:p,repairSlots:v,latestReplaySlot:x,firstTurbineSlot:y,latestTurbineSlot:b,turbineSlots:w}=t.current,_=nse(b,p,f,d-1),S=nse(y,p,f,d-1),C=lZe.get($M);C==null||C.style.setProperty("--turbine-start-x",`${PM(S,s,l)/window.devicePixelRatio}px`),C==null||C.style.setProperty("--turbine-head-x",`${PM(_,s,l)/window.devicePixelRatio}px`);const j=new Map;for(let T=0;T<=_;T++){const E=T*f,$=p+Math.trunc(E),D=(T+1)*f,M=Math.min(b,p+Math.ceil(D)-1),O=PM(T,s,l),te=sZe($,M,x,v,T===S,T===_,w),q=j.get(te)??[];q.push(O),j.set(te,q)}for(const[T,E]of j.entries()){i.fillStyle=T,i.beginPath();for(const $ of E)i.roundRect($,o,s,a,c);i.fill()}i.restore()}]}}}function PM(e,t,n){return e*(t+n)}const dZe=[[0],[null]];function fZe({catchingUpRatesRef:e}){const[t,n]=Ss(),r=J(Op),i=J(iZe),o=J(ese),a=J(tse),s=J(bx),l=J(dp),c=m.useRef(),d=m.useRef(),f=m.useMemo(()=>({width:0,height:0,scales:{x:{time:!1}},axes:[{show:!1},{show:!1}],series:[{},{points:{show:!1}}],cursor:{x:!1,y:!1},legend:{show:!1},plugins:[cZe(e,c)]}),[c,e]);f.width=n.width,f.height=n.height;const p=m.useCallback(y=>{d.current=y},[]),v=m.useCallback(y=>{var b;c.current=y,(b=d.current)==null||b.redraw()},[]),x=Ba(v,100,{trailing:!0});if(m.useEffect(()=>{r==null||!o.size||a==null||s==null||x({startSlot:r,repairSlots:i,turbineSlots:o,firstTurbineSlot:a,latestTurbineSlot:s,latestReplaySlot:l})},[a,l,s,i,r,x,o]),!(r==null||!o.size||a==null||s==null))return u.jsx(Mt,{height:"77px",ref:t,children:u.jsx(Pp,{id:"catching-up-slot-bars",options:f,data:dZe,onCreate:p})})}const hZe="_card_1yavk_1",pZe="_secondary-color_1yavk_13",mZe="_bold_1yavk_17",gZe="_ellipsis_1yavk_21",vZe="_labels-row_1yavk_27",yZe="_labels-left_1yavk_39",bZe="_turbine-label_1yavk_46",xZe="_start_1yavk_54",_Ze="_head_1yavk_58",wZe="_footer-row_1yavk_64",kZe="_left-footer_1yavk_76",SZe="_footer-title_1yavk_83",CZe="_footer-value_1yavk_88",jZe="_bars-stats-container_1yavk_95",TZe="_bars-stats-row_1yavk_99",IZe="_replayed_1yavk_104",EZe="_speed_1yavk_111",NZe="_to-replay_1yavk_118",ur={card:hZe,secondaryColor:pZe,bold:mZe,ellipsis:gZe,labelsRow:vZe,labelsLeft:yZe,turbineLabel:bZe,start:xZe,head:_Ze,footerRow:wZe,leftFooter:kZe,footerTitle:SZe,footerValue:CZe,barsStatsContainer:jZe,barsStatsRow:TZe,replayed:IZe,speed:EZe,toReplay:NZe};function $Ze(){const e=J(Op);if(e)return u.jsxs(W,{className:ur.footerRow,children:[u.jsxs(W,{className:ur.leftFooter,children:[u.jsxs(Z,{className:Te(ur.footerValue,ur.ellipsis),children:[u.jsx(Z,{className:ur.secondaryColor,children:"Slot "}),e]}),u.jsx(Z,{className:Te(ur.footerTitle,ur.ellipsis),children:"Repair"})]}),u.jsx(Z,{className:Te(ur.rightFooter,ur.footerTitle,ur.ellipsis),children:"Turbine"})]})}function MZe(){const e=J(Op),t=J(tse),n=J(bx);if(!(e==null||t==null||n==null))return u.jsxs(W,{className:ur.labelsRow,children:[u.jsx(W,{justify:"end",flexShrink:"0",className:ur.labelsLeft,children:u.jsx(ise,{slot:t})}),u.jsx(W,{justify:"end",flexGrow:"1",minWidth:"0",className:ur.labelsRight,children:u.jsx(ise,{slot:n,isHead:!0})})]})}function ise({isHead:e=!1,slot:t}){const n=J($M),[r,{width:i}]=Ss();return m.useEffect(()=>{n==null||n.style.setProperty(e?"--turbine-head-label-width":"--turbine-start-label-width",`${i}px`)},[n,e,i]),u.jsxs(W,{ref:r,direction:"column",className:Te(ur.turbineLabel,e?ur.head:ur.start),children:[u.jsx(Z,{className:ur.bold,children:e?"Turbine Head":"Turbine Start"}),u.jsx(Z,{children:t})]})}const x6=1e4,ose=50,RZe=[Er.shred_published,Er.shred_replayed,Er.shred_received_repair,Er.shred_received_turbine,Er.shred_repair_request],LZe=[Er.shred_received_repair,Er.shred_published,Er.shred_replayed,Er.shred_received_turbine,Er.shred_repair_request],PZe={"Repair Requested":wN,"Received Turbine":kN,"Received Repair":SN,"Replayed Turbine":CN,"Replayed Repair":jN,"Replayed Nothing":TN,Skipped:IN,Published:EN};function OZe(){const e=fe(),t=fe(),n=fe(),r=fe(i=>{const o=i(n),a=i(bG);if(!(!o||a==null)&&!(a+1>o.max))return{min:Math.max(a+1,o.min),max:o.max}});return{minCompletedSlot:fe(i=>i(e)),range:fe(i=>i(n)),rangeAfterStartup:r,groupLeaderSlots:fe(i=>{const o=i(r);if(!o)return[];const a=[_i(o.min)];for(;a[a.length-1]+$n-1i(t)),addShredEvents:fe(null,(i,o,{reference_slot:a,reference_ts:s,slot_delta:l,shred_idx:c,event:d,event_ts_delta:f})=>{let p=i(n),v=i(e);o(t,x=>{const y=x??{referenceTs:Math.round(Number(s)/sN),slots:new Map};for(let b=0;b{if(a){o(n,void 0),o(e,void 0),o(t,void 0);return}o(t,l=>{const c=i(n),d=i(Cre)??Date.now();if(!l||!c)return l;if(s)for(let p=c.min;p<=c.max;p++){const v=l.slots.get(p);v&&(v.maxEventTsDelta==null||ase(v.maxEventTsDelta,d,l.referenceTs))&&l.slots.delete(p)}else{let p=c.min;if(c.max-c.min>50){for(let x=p;x<=c.max-50;x++)l.slots.get(x)&&l.slots.delete(x);p=c.max-50}let v=!1;for(let x=c.max;x>=p;x--){const y=l.slots.get(x);if((y==null?void 0:y.maxEventTsDelta)!=null){if(!v&&y.completionTsDelta!=null&&ase(y.completionTsDelta,d,l.referenceTs)){v=!0;continue}v&&l.slots.delete(x)}}}const f=l.slots.keys();return o(n,p=>{if(!(!p||!l.slots.size))return{min:Math.min(...f),max:p.max}}),l})})}}function ase(e,t,n){const r=t-n,i=x6+ose;return r-e>i}const xx=OZe();function zZe(e,t,n){const r=n??new Array;return r[e]=Math.min(t,r[e]??t),r}function DZe(e,t,n,r){const i=r??{shreds:[]};return i.minEventTsDelta=Math.min(n,i.minEventTsDelta??n),i.maxEventTsDelta=Math.max(n,i.maxEventTsDelta??n),t===Er.slot_complete?(i.completionTsDelta=Math.min(n,i.completionTsDelta??n),i):e==null?(console.error("Missing shred ID"),i):(i.shreds[e]=zZe(t,n,i.shreds[e]),i)}function sse(e){return`slot-group-label-${_i(e)}`}function lse(e){return`slot-label-${e}`}const sh=ca(),zp="shredsXScaleKey";function AZe(e){const t=[];function n(){const r=Date.now(),i=sh.get(Cre);if(i){const a=r-i;for(t.push(a);t.length>20;)t.shift()}const o=t.length?rt.sum(t)/t.length:void 0;return(o==null?i??r:r-o)-ose}return{hooks:{draw:[r=>{e&&FZe(r);const i=xx,o=sh.get(i.slotsShreds),a=sh.get(i.range),s=sh.get(i.minCompletedSlot),l=sh.get(Ik),c=sh.get(i.rangeAfterStartup),{min:d,max:f}=r.scales[zp];if(!o||!a||d==null||f==null||!e&&(sh.get(ol)||s==null||!c))return;const p=n()-o.referenceTs,v=f-d,x={minDeltaTs:p-v,maxDeltaTs:p,minCanvasPos:r.bbox.left,maxCanvasPos:r.bbox.left+r.bbox.width,minCssPos:r.valToPos(d,zp,!1),maxCssPos:r.valToPos(f,zp,!1)},y=e?a.min:Math.max(a.min,s??a.min),b=a.max,{maxShreds:w,orderedSlotNumbers:_}=UZe(y,b,o,x),S=e?Math.trunc(r.bbox.height/3):r.bbox.height,C=e?M=>{switch(M){case Er.shred_received_turbine:case Er.shred_published:return 0;case Er.shred_repair_request:case Er.shred_received_repair:return S;case Er.shred_replayed:return S*2}}:void 0,j=rt.clamp(S/w,1,10),T=1,E=Math.max(j,3),$=Math.trunc((S+T)/(j+T)),D=w/$;r.ctx.save(),r.ctx.rect(r.bbox.left,r.bbox.top,r.bbox.width,r.bbox.height),r.ctx.clip();for(const M of _){const O={},te=(X,A)=>{O[X]??(O[X]=[]),O[X].push(A)},q=o.slots.get(M);if(!q)continue;const P=l.has(M);for(let X=0;X<$;X++){const A=X*D,Y=Math.trunc(A),F=(X+1)*D,H=Math.min(w,Math.ceil(F)-1);BZe({addEventPosition:te,firstShredIdx:Y,lastShredIdx:H,shreds:q.shreds,slotCompletionTsDelta:q.completionTsDelta,isSlotSkipped:P,drawOnlyDots:e,y:(j+T)*X+r.bbox.top,getYOffset:C,xRange:x})}for(const X of Object.keys(O)){r.ctx.beginPath(),r.ctx.fillStyle=X;for(const[A,Y,F]of O[X])F==null?r.ctx.rect(A,Y,E,E):r.ctx.rect(A,Y,F,j);r.ctx.fill()}}r.ctx.restore(),!e&&c&&HZe(c,o.slots,l,r,x)}]}}}function FZe(e){e.ctx.save(),e.ctx.strokeStyle=_N,e.ctx.lineWidth=1,e.ctx.beginPath();const t=e.bbox.left,n=e.bbox.left+e.bbox.width;for(let r=0;r<3;r++)e.ctx.moveTo(t,e.bbox.top+e.bbox.height*r/3),e.ctx.lineTo(n,e.bbox.top+e.bbox.height*r/3);e.ctx.stroke(),e.ctx.restore()}function UZe(e,t,n,r){const i=[];let o=0;for(let a=e;a<=t;a++){const s=n.slots.get(a);!(s!=null&&s.shreds.length)||s.minEventTsDelta==null||s.minEventTsDelta>r.maxDeltaTs||s.completionTsDelta!=null&&s.completionTsDelta=p)continue;const w=(l==null?void 0:l(x))??0;v.set(x,o||a?[b,s+w]:[b,s+w,p-b]),p=b}for(const[x,y]of v.entries()){if(a){e(IN,y);continue}switch(x){case Er.shred_repair_request:{e(wN,y);break}case Er.shred_received_turbine:{e(kN,y);break}case Er.shred_received_repair:{e(SN,y);break}case Er.shred_replayed:{v.has(Er.shred_received_repair)?e(jN,y):v.has(Er.shred_received_turbine)?e(CN,y):e(TN,y);break}case Er.shred_published:e(EN,y)}}}function WZe(e,t,n){for(const r of LZe){const i=VZe(e,t,n,o=>(o==null?void 0:o[r])!=null);if(i!==-1)return i}return e}function VZe(e,t,n,r){for(let i=e;is+r).reduce((a,s)=>(a.length===0&&!(s in e)||s in e&&e[s]===void 0||a.push(s),a),[]);if(i.length===0)continue;const o=i.reduce((a,s)=>{var d,f;const l=(d=e[s])==null?void 0:d[0],c=(f=e[s])==null?void 0:f[1];return l!=null&&(a[0]=Math.min(a[0],l)),a[1]=a[1]===void 0||c===void 0?void 0:Math.max(c,a[1]),a},[1/0,-1/0]);n[r]=o}return n}function dse(e,t){if(!e)return;const n=_6(e[0],t,!1),r=e[1];if(r==null)return[n,void 0];const i=_6(r,t,!1);return[n,i-n]}function fse(e,t,n,r){const i=e?"--group-x":"--slot-x";if(!t){r.style.setProperty(i,"-100000px");return}const[o,a]=t;r.style.setProperty(i,`${o-(e?1:0)}px`);const s=a??n-o+1;r.style.width=`${s+(e?1*2:0)}px`;const l=a==null;e&&r.style.setProperty("--group-name-opacity",l?"0":"1")}const YZe="_slot-group-label_mfowj_1",KZe="_you_mfowj_13",XZe="_slot-group-top-container_mfowj_17",JZe="_skipped_mfowj_21",QZe="_slot-group-name-container_mfowj_25",eqe="_name_mfowj_30",tqe="_slot-bars-container_mfowj_41",nqe="_slot-bar_mfowj_41",rqe="_legend-color-box_mfowj_72",iqe="_legend-label_mfowj_78",lu={slotGroupLabel:YZe,you:KZe,slotGroupTopContainer:XZe,skipped:JZe,slotGroupNameContainer:QZe,name:eqe,slotBarsContainer:tqe,slotBar:nqe,legendColorBox:rqe,legendLabel:iqe};function OM(e){const t=J(fi);if(!t)return;const n=e-t.start_slot,r=Math.trunc(n/4);return t.staked_pubkeys[t.leader_slots[r]]}function zM(e){var s,l,c,d;const t=(s=e==null?void 0:e.gossip)==null?void 0:s.version,n=(l=e==null?void 0:e.gossip)==null?void 0:l.client_id,r=(n?qte[n]:void 0)??(t?t[0]==="0"?za.Frankendancer:za.Agave:void 0),i=(c=e==null?void 0:e.gossip)==null?void 0:c.country_code,o=Oze(i),a=(d=e==null?void 0:e.gossip)==null?void 0:d.city_name;return m.useMemo(()=>({client:r,version:t,countryCode:i,countryFlag:o,cityName:a}),[a,r,i,o,t])}function ma(e){var f;const t=J(cp),n=OM(e),r=Hk(n??""),i=t===n,o=((f=r==null?void 0:r.info)==null?void 0:f.name)??"Private",{version:a,client:s,countryCode:l,countryFlag:c,cityName:d}=zM(r);return{pubkey:n,peer:r,isLeader:i,name:o,client:s,version:a,countryCode:l,countryFlag:c,cityName:d}}function oqe(){const e=J(V3),t=J(xx.groupLeaderSlots);if(!e)return u.jsx(W,{flexShrink:"0",overflowX:"hidden",position:"relative",height:"15px",children:t.map(n=>u.jsx(aqe,{firstSlot:n},n))})}function aqe({firstSlot:e}){var s;const{peer:t,name:n,isLeader:r}=ma(e),i=m.useMemo(()=>Array.from({length:$n},(l,c)=>e+c),[e]),o=J(Ik),a=m.useMemo(()=>{const l=new Set;for(const c of i)o.has(c)&&l.add(c);return l},[i,o]);return u.jsxs(W,{height:"100%",minHeight:"0",direction:"column",gap:"2px",position:"absolute",id:sse(e),className:Te(lu.slotGroupLabel,{[lu.you]:r}),children:[u.jsx(W,{justify:"center",flexGrow:"1",minHeight:"0",minWidth:"0",px:"2px",className:Te(lu.slotGroupTopContainer,{[lu.skipped]:a.size>0}),children:u.jsxs(W,{align:"center",gap:"4px",minWidth:"0",className:lu.slotGroupNameContainer,children:[u.jsx(ks,{url:(s=t==null?void 0:t.info)==null?void 0:s.icon_url,size:10,isYou:r,hideTooltip:!0}),u.jsx(Z,{className:lu.name,children:n})]})}),u.jsx(W,{height:"2px",position:"relative",className:lu.slotBarsContainer,children:i.map(l=>u.jsx("div",{className:Te(lu.slotBar,{[lu.skipped]:a.has(l)}),id:lse(l)},l))})]})}const sqe=40,DM=15,AM={min:200,max:1600},lqe=e=>{const t=e*AM.max,n=[Math.trunc(t/AM.min)*AM.min];for(;n[n.length-1]{c.current=w},[]),[x,y]=m.useMemo(()=>[[[Math.trunc(l*-x6),0],new Array(2)],lqe(l)],[l]);m.useEffect(()=>{c.current&&(c.current.axes[0].incrs=()=>y,c.current.setData(x,!0))},[x,y]);const b=m.useMemo(()=>({padding:[0,DM,0,DM],width:0,height:0,scales:{[zp]:{time:!1},y:{time:!1,range:[0,1]}},series:[{scale:zp},{}],cursor:{show:!1,drag:{[zp]:!1,y:!1}},legend:{show:!1},axes:[{scale:zp,incrs:y,size:30,ticks:{opacity:.2,stroke:sr,size:5,width:1/devicePixelRatio},values:(w,_)=>_.map(S=>S===0?"now":`${(S/1e3).toFixed(1)}s`),grid:{stroke:_N,width:1/devicePixelRatio},stroke:xN},{size:0,grid:{filter:()=>[0],stroke:xN,width:1}}],plugins:[AZe(t)]}),[t,y]);return b.width=p.width,b.height=p.height,Aie(w=>{var _;c&&(d.current==null||w-d.current>=sqe)&&(d.current=w,(_=c.current)==null||_.redraw(!0,!1))}),u.jsxs(W,{direction:"column",gap:"2px",...n,children:[!t&&u.jsx(oqe,{}),u.jsx(Mt,{flexGrow:"1",minHeight:"0",mx:`-${DM}px`,ref:f,children:u.jsx(Pp,{id:e,options:b,data:x,onCreate:v})})]})}const uqe="_card_1vnw5_1",cqe="_narrow_1vnw5_7",pse={card:uqe,narrow:cqe};function so({children:e,hideChildren:t,isNarrow:n=!1,...r}){return u.jsx("div",{...r,className:Te(pse.card,n&&pse.narrow,r.className),children:!t&&e})}const dqe="_header_10qjn_1",fqe="_full-width_10qjn_5",hqe="_dark_10qjn_9",pqe="_subHeader_10qjn_14",mqe="_tile-container_10qjn_20",gqe="_tile_10qjn_20",Dp={header:dqe,fullWidth:fqe,dark:hqe,subHeader:pqe,tileContainer:mqe,tile:gqe},vqe="_stat-container_1hzk8_1",yqe="_label_1hzk8_10",bqe="_value-container_1hzk8_15",xqe="_value_1hzk8_15",w6={statContainer:vqe,label:yqe,valueContainer:bqe,value:xqe};var FM={exports:{}},Qg=typeof Reflect=="object"?Reflect:null,mse=Qg&&typeof Qg.apply=="function"?Qg.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},k6;Qg&&typeof Qg.ownKeys=="function"?k6=Qg.ownKeys:Object.getOwnPropertySymbols?k6=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:k6=function(e){return Object.getOwnPropertyNames(e)};function _qe(e){console&&console.warn&&console.warn(e)}var gse=Number.isNaN||function(e){return e!==e};function cr(){cr.init.call(this)}FM.exports=cr,FM.exports.once=Cqe,cr.EventEmitter=cr,cr.prototype._events=void 0,cr.prototype._eventsCount=0,cr.prototype._maxListeners=void 0;var vse=10;function S6(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(cr,"defaultMaxListeners",{enumerable:!0,get:function(){return vse},set:function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");vse=e}}),cr.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},cr.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function yse(e){return e._maxListeners===void 0?cr.defaultMaxListeners:e._maxListeners}cr.prototype.getMaxListeners=function(){return yse(this)},cr.prototype.emit=function(e){for(var t=[],n=1;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=i[e];if(s===void 0)return!1;if(typeof s=="function")mse(s,this,t);else for(var l=s.length,c=kse(s,l),n=0;n0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,_qe(s)}return e}cr.prototype.addListener=function(e,t){return bse(this,e,t,!1)},cr.prototype.on=cr.prototype.addListener,cr.prototype.prependListener=function(e,t){return bse(this,e,t,!0)};function wqe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function xse(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=wqe.bind(r);return i.listener=n,r.wrapFn=i,i}cr.prototype.once=function(e,t){return S6(t),this.on(e,xse(this,e,t)),this},cr.prototype.prependOnceListener=function(e,t){return S6(t),this.prependListener(e,xse(this,e,t)),this},cr.prototype.removeListener=function(e,t){var n,r,i,o,a;if(S6(t),r=this._events,r===void 0)return this;if(n=r[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;i===0?n.shift():kqe(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this},cr.prototype.off=cr.prototype.removeListener,cr.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),o;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function _se(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?Sqe(i):kse(i,i.length)}cr.prototype.listeners=function(e){return _se(this,e,!0)},cr.prototype.rawListeners=function(e){return _se(this,e,!1)},cr.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):wse.call(e,t)},cr.prototype.listenerCount=wse;function wse(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}cr.prototype.eventNames=function(){return this._eventsCount>0?k6(this._events):[]};function kse(e,t){for(var n=new Array(t),r=0;r{const r=i=>n.current(i);return t.addListener(UM,r),()=>{t.removeListener(UM,r)}},[t])}const Eqe=Gf((e,t,n)=>rt.throttle(()=>{switch(n){case"publish":{e({topic:"slot",key:"query",id:1,params:{slot:t}});break}case"detailed":{e({topic:"slot",key:"query_detailed",id:2,params:{slot:t}});break}case"transactions":{e({topic:"slot",key:"query_transactions",id:3,params:{slot:t}});break}}},5e3,{trailing:!1}),{maxSize:250});function WM(e,t,n){const r=C6(),i=J(wDe(e)),o=m.useCallback(()=>{!e||i||n||Eqe(r,e,t)()},[t,i,e,n,r]);m.useEffect(()=>{const l=setTimeout(()=>o(),250);return()=>{clearTimeout(l)}},[o]);const[a,s]=m.useState(!0);return ix(()=>{setTimeout(()=>s(!1),3e3)}),{hasWaitedForData:!a}}function Is(e){const t=J(KN(e)),n=!!t,{hasWaitedForData:r}=WM(e,"publish",n);return{publish:t,hasWaitedForData:r}}function tc(e){const t=J(hre(e)),n=!!(t!=null&&t.waterfall)&&!!(t!=null&&t.tile_timers)&&!!(t!=null&&t.tile_primary_metric)&&!!t.scheduler_counts&&!!t.scheduler_stats&&!!t.limits,{hasWaitedForData:r}=WM(e,"detailed",n);return{response:t,hasWaitedForData:r}}function pl(e){const t=J(hre(e)),n=!!(t!=null&&t.transactions),{hasWaitedForData:r}=WM(e,"transactions",n);return{response:t,hasWaitedForData:r}}function Nqe({type:e,label:t}){var l,c,d;const n=J(Cn),r=!n,i=J(SG),o=tc(r?void 0:n),a=r?(l=i==null?void 0:i.tile_primary_metric)==null?void 0:l[e]:(d=(c=o.response)==null?void 0:c.tile_primary_metric)==null?void 0:d[e],s=e==="net_in"||e==="net_out"?{minWidth:"55px"}:void 0;return u.jsxs("div",{className:w6.statContainer,children:[u.jsx(Z,{className:w6.label,children:t}),u.jsx("div",{className:w6.valueContainer,style:s,children:u.jsx(Z,{className:w6.value,children:$qe(e,a)})})]})}function $qe(e,t){if(t===void 0||t===-1)return"-";if(e==="net_in"||e==="net_out"){const n=t*8,r=Sp(t*8,{precision:n>1e9?2:0}),i=Number(r.value);if(!t)return"0";const o=r.unit.replace("B","b");return`${i} ${o}/s`}if(e==="bundle_rx_delay_millis_p90"||e==="bundle_rtt_smoothed_millis")return`${Math.max(1,Math.round(t))} ms`;if(e==="verify"||e==="dedup"||e==="pack"){if(t<.01&&t>0)return`${(t*100).toFixed(2)}%`;{const n=t*100;return`${Math.trunc(n)}%`}}return t.toLocaleString()}const Mqe="_btn_1lb0v_1",Rqe={btn:Mqe};let VM=!1;function Lqe({children:e,tileCountArr:t,liveBusyPerTile:n,queryIdlePerTile:r,width:i,header:o,isExpanded:a,setIsExpanded:s}){return t.length>1?u.jsxs(QZ,{open:a,onOpenChange:l=>{VM||(s(l),VM=!0,setTimeout(()=>VM=!1,10))},defaultOpen:!1,children:[u.jsx(eq,{children:a?u.jsx("div",{}):u.jsx(hs,{className:Rqe.btn,children:e})}),u.jsx(tq,{width:`${i}px`,size:"1",side:"top",sideOffset:-17,align:"center",children:u.jsxs(W,{gap:"3",direction:"column",children:[o,n?n.map((l,c)=>u.jsx(Pqe,{busy:l},c)):t==null?void 0:t.map((l,c)=>{const d=r==null?void 0:r.map(f=>f[c]!==void 0&&f[c]!==-1?1-f[c]:void 0).filter(Cb);if(d!=null&&d.length)return u.jsxs(W,{children:[u.jsx(cx,{history:d}),u.jsx(Xk,{busy:rt.mean(d)})]},c)})]})})]}):u.jsx(W,{gap:"1",children:e})}function Pqe({busy:e}){const t=Z$(e);return u.jsxs(W,{children:[u.jsx(cx,{value:t}),u.jsx(Xk,{busy:t})]})}function Wa({header:e,subHeader:t,tileCount:n,statLabel:r,liveIdlePerTile:i,queryIdlePerTile:o,metricType:a,sparklineHeight:s,isExpanded:l=!1,setIsExpanded:c=()=>{},isDark:d=!1,isNarrow:f}){const[p,{width:v}]=Ss(),x=J(Cn)===void 0,{avgBusy:y,aggQueryBusyPerTs:b,tileCountArr:w,liveBusyPerTile:_,busy:S}=poe({isLive:x,tileCount:n,liveIdlePerTile:i,queryIdlePerTile:o}),C=Z$(y);return u.jsx(W,{ref:p,children:u.jsx(so,{className:Te(Dp.fullWidth,d&&Dp.dark),isNarrow:f,children:u.jsxs(W,{direction:"column",justify:"between",height:"100%",gap:"1",children:[u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(cx,{value:b===void 0?C:void 0,history:b,height:s,background:d?vk:void 0}),u.jsxs(Lqe,{tileCountArr:w,liveBusyPerTile:_,queryIdlePerTile:o,width:v,header:u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),isExpanded:l,setIsExpanded:c,children:[u.jsx("div",{className:Dp.tileContainer,children:w.map((j,T)=>{const E=S==null?void 0:S[T];return E===void 0?u.jsx("div",{className:Dp.tile,style:{background:d?"#232A38":"gray"}},T):u.jsx("div",{className:Dp.tile,style:{"--busy":`${E*100}%`}},T)})}),u.jsx(Xk,{busy:C})]})]})})})}function Tse({header:e,subHeader:t,metricType:n,statLabel:r}){return u.jsxs(W,{justify:"between",gap:"1",children:[u.jsxs(W,{direction:"column",gap:"0",children:[u.jsx(Z,{className:Dp.header,children:e}),t&&u.jsx(Z,{className:Dp.subHeader,children:t})]}),n&&u.jsx(Nqe,{type:n,label:r})]})}function HM(){var s;const e=J(Cn),t=!e,n=J(rg),r=J(Nb),i=J(Hze),o=tc(e),a=m.useMemo(()=>{var l,c;if(!(!((c=(l=o.response)==null?void 0:l.tile_timers)!=null&&c.length)||t||!n))return o.response.tile_timers.reduce((d,f)=>{var v;if(!f.tile_timers.length)return d;const p={};f.tile_timers.length!==n.length&&console.warn("Length mismatch between tiles and time timers",f.tile_timers,n);for(let x=0;xu.jsx(Wa,{header:s,tileCount:r[s],liveIdlePerTile:i==null?void 0:i[s],queryIdlePerTile:o||a==null?void 0:a[s],statLabel:"",sparklineHeight:Oqe,isExpanded:n,setIsExpanded:t},s))})}function Aqe(){const e=m.useRef({}),t=J(Op),n=J(bx),r=J(dp),i=r??(t==null?void 0:t-1),o=Bg(i),a=Bg(n);return e.current.replaySlotsPerSecond=o,e.current.turbineSlotsPerSecond=a,m.useEffect(()=>{if(t==null||n==null||e.current.totalSlotsEstimate!=null)return;const s=Ise(400,100,t,r,n);e.current={totalSlotsEstimate:s}},[r,n,t,e]),Qu(()=>{const s=e.current.totalSlotsEstimate;if(t==null||n==null||s==null||o==null||a==null)return;const l=Ise(o,a,t,r,n),c=r==null||l==null?void 0:l+t-1-r,d=o===0||c==null?void 0:c/o;if(e.current.remainingSeconds=d,!l||l>=s)return;const f=Math.min(.15*s,s-l),p=s-f;e.current.totalSlotsEstimate=p},500),e}function Ise(e,t,n,r,i){const o=r??n-1;if(o===i)return i-n;if(e<=t)return;const a=o-n+1,s=e*(i-o)/(e-t);return a+s}function Fqe({catchingUpRates:e}){const t=J(Op),n=J(bx),r=J(dp),i=e.replaySlotsPerSecond,o=e.turbineSlotsPerSecond,a=i==null||o==null?void 0:Math.round(i-o);return u.jsxs(Mt,{mt:"3px",className:ur.barsStatsContainer,children:[u.jsxs(W,{justify:"between",className:ur.barsStatsRow,children:[u.jsx(j6,{className:ur.replayed,value:r==null||t==null?void 0:r-t+1,label:"Slots Replayed"}),u.jsx(j6,{className:ur.toReplay,value:r==null||n==null?void 0:n-r,label:"Slots Remaining"})]}),u.jsxs(W,{justify:"between",className:ur.barsStatsColumn,children:[u.jsx(j6,{className:ur.speed,value:i,label:"Slots/s Replay Speed"}),u.jsx(j6,{className:ur.speed,value:a,label:"Slots/s Catchup Speed"})]})]})}function j6({value:e,label:t,className:n}){const r=e===void 0?"--":e.toLocaleString(void 0,{maximumFractionDigits:0});return u.jsxs(Z,{truncate:!0,className:n,children:[u.jsxs(Z,{className:ur.bold,children:[r," "]}),t]})}function Ese(){return u.jsx(W,{gapX:"15px",gapY:"5px",wrap:"wrap",children:Object.entries(PZe).map(([e,t])=>u.jsxs(W,{gap:"5px",flexShrink:"0",children:[u.jsx("div",{className:lu.legendColorBox,style:{backgroundColor:t}}),u.jsx(Z,{className:lu.legendLabel,children:e})]},e))})}function Uqe(){const e=Ee($M),t=J(tZe),n=Aqe(),r=J(Op),i=J(bx),o=J(dp),a=m.useMemo(()=>{if(r==null||i==null||o==null)return 0;const l=i-r+1;if(!l)return 0;const c=o-r+1;return rt.clamp(c/l,0,1)},[o,i,r]),s=Soe(a);return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:a,overallCompleteFraction:s,remainingSeconds:n.current.remainingSeconds}),u.jsxs(W,{direction:"column",mt:"8px",gap:"8px",className:yd.startupContentIndentation,children:[t&&u.jsxs(W,{ref:e,direction:"column",gap:"5px",children:[u.jsx(MZe,{}),u.jsx(fZe,{catchingUpRatesRef:n}),u.jsx($Ze,{}),u.jsx(Fqe,{catchingUpRates:n.current})]}),u.jsxs(W,{direction:"column",className:ur.card,mb:"14px",children:[u.jsxs(W,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(Z,{className:ur.title,children:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{flexGrow:"1",minHeight:"280px",chartId:"catching-up-shreds",isOnStartupScreen:!0})]}),u.jsx(Dqe,{})]})]})}const Bqe="_secondary-color_1cuvx_1",Wqe="_card_1cuvx_5",Vqe="_pie-chart-title_1cuvx_18",Hqe="_pie-chart-container_1cuvx_24",Zqe="_pie-chart_1cuvx_18",qqe="_shimmer_1cuvx_58",Gqe="_threshold-marker_1cuvx_43",Yqe="_marker-line_1cuvx_47",Kqe="_marker-icon_1cuvx_51",Xqe="_overlay_1cuvx_74",Jqe="_pie-chart-content_1cuvx_86",Qqe="_lg_1cuvx_93",eGe="_eighty_1cuvx_97",tGe="_details-box_1cuvx_103",nGe="_copyButton_1cuvx_105",rGe="_label_1cuvx_111",iGe="_snapshot-source_1cuvx_116",wi={secondaryColor:Bqe,card:Wqe,pieChartTitle:Vqe,pieChartContainer:Hqe,pieChart:Zqe,shimmer:qqe,thresholdMarker:Gqe,markerLine:Yqe,markerIcon:Kqe,overlay:Xqe,pieChartContent:Jqe,lg:Qqe,eighty:eGe,detailsBox:tGe,copyButton:nGe,label:rGe,snapshotSource:iGe},oGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("circle",{cx:12,cy:12,r:8})),aGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6m0-2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8z"})),sGe="_container_1vhtf_1",lGe="_horizontal_1vhtf_4",uGe="_vertical_1vhtf_9",cGe="_table-card_1vhtf_15",dGe="_narrow_1vhtf_21",fGe="_rows-container_1vhtf_26",hGe="_row_1vhtf_26",pGe="_xnarrow_1vhtf_44",mGe="_online_1vhtf_48",gGe="_pubkey-text_1vhtf_51",vGe="_peer_1vhtf_56",yGe="_status_1vhtf_62",bGe="_version_1vhtf_66",xGe="_client-icon_1vhtf_66",_Ge="_client-icon-placeholder_1vhtf_66",wGe="_suffix_1vhtf_70",kGe="_offline_1vhtf_75",SGe="_header-row_1vhtf_92",CGe="_toggle-row_1vhtf_97",jGe="_cell_1vhtf_116",TGe="_header_1vhtf_92",IGe="_pubkey_1vhtf_51",EGe="_stake_1vhtf_174",NGe="_stake-pct_1vhtf_187",un={container:sGe,horizontal:lGe,vertical:uGe,tableCard:cGe,narrow:dGe,rowsContainer:fGe,row:hGe,xnarrow:pGe,online:mGe,pubkeyText:gGe,peer:vGe,status:yGe,version:bGe,clientIcon:xGe,clientIconPlaceholder:_Ge,suffix:wGe,offline:kGe,headerRow:SGe,toggleRow:CGe,cell:jGe,header:TGe,pubkey:IGe,stake:EGe,stakePct:NGe},$Ge="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3c/svg%3e",MGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_474_23049)'%3e%3cpath%20d='M39.3846%2011.9422C39.3846%207.91449%2036.1195%204.64941%2032.0918%204.64941C28.0641%204.64941%2024.7991%207.91449%2024.7991%2011.9422C24.7991%2015.9698%2028.0641%2019.2349%2032.0918%2019.2349C36.1195%2019.2349%2039.3846%2015.9698%2039.3846%2011.9422Z'%20fill='white'/%3e%3cpath%20d='M32.0907%2017.6901C35.3062%2017.6901%2037.9129%2015.0834%2037.9129%2011.8678C37.9129%208.65226%2035.3062%206.04553%2032.0907%206.04553C28.8751%206.04553%2026.2684%208.65226%2026.2684%2011.8678C26.2684%2015.0834%2028.8751%2017.6901%2032.0907%2017.6901Z'%20fill='white'%20stroke='%23000000F2'%20stroke-width='0.540037'/%3e%3cpath%20d='M32.6719%2010.4479C32.2543%2010.7361%2031.8053%2010.8349%2031.3257%2010.7436C30.8452%2010.6529%2030.4636%2010.4018%2030.1799%209.99083L29.7579%209.3793L30.3633%208.96143L30.7854%209.57296C30.9533%209.81627%2031.1774%209.96374%2031.4585%2010.0148C31.7388%2010.0665%2032.0029%2010.0068%2032.249%209.83693L33.3171%209.09511C33.6566%208.85936%2034.123%208.94414%2034.3578%209.2843L32.6719%2010.4479Z'%20fill='%23000000F2'/%3e%3cpath%20d='M33.4893%2012.4798C33.2006%2012.0614%2033.1011%2011.6119%2033.1914%2011.1321C33.2812%2010.6515%2033.5315%2010.27%2033.9417%209.98692L34.552%209.56567L34.9707%2010.1723L34.3603%2010.5935C34.1175%2010.7611%2033.9705%2010.9851%2033.92%2011.2664C33.8688%2011.5468%2033.9289%2011.8111%2034.0991%2012.0577L34.8439%2013.1301C35.0793%2013.469%2034.9946%2013.9345%2034.6551%2014.1689L33.4893%2012.4798Z'%20fill='%23000000F2'/%3e%3cpath%20d='M31.4498%2013.3013C31.8674%2013.013%2032.3164%2012.9143%2032.796%2013.0055C33.2764%2013.0962%2033.6581%2013.3473%2033.9417%2013.7583L34.3638%2014.3698L33.7584%2014.7877L33.3363%2014.1762C33.1684%2013.9329%2032.9442%2013.7854%2032.6631%2013.7343C32.3828%2013.6827%2032.1188%2013.7423%2031.8726%2013.9122L30.8045%2014.654C30.4651%2014.8898%2029.9986%2014.805%2029.7639%2014.4648L31.4498%2013.3013Z'%20fill='%23000000F2'/%3e%3cpath%20d='M30.6689%2011.3224C30.9576%2011.7408%2031.0571%2012.1903%2030.9668%2012.6701C30.877%2013.1507%2030.6267%2013.5321%2030.2165%2013.8152L29.6062%2014.2365L29.1875%2013.6299L29.7979%2013.2086C30.0407%2013.041%2030.1877%2012.817%2030.2383%2012.5358C30.2894%2012.2554%2030.2293%2011.9911%2030.0591%2011.7445L29.3143%2010.672C29.0789%2010.3332%2029.1636%209.86764%2029.5031%209.6333L30.6689%2011.3224Z'%20fill='%23000000F2'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_474_23049'%3e%3crect%20width='15'%20height='15'%20fill='white'%20transform='translate(24.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",RGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_bam)'%3e%3cg%20transform='translate(25.5%204.5)%20scale(0.1%200.10204)'%3e%3cpath%20d='M124.208%2034.2304C125.338%2034.8826%20125.338%2035.939%20124.208%2036.5912L100.697%2050.1653C99.5673%2050.8175%2097.7375%2050.8175%2096.6079%2050.1653L85.4912%2043.7471C83.8097%2042.7763%2081.0548%2042.6789%2079.3221%2043.6202C77.5894%2044.5616%2077.5025%2046.217%2079.2301%2047.2144L90.4746%2053.7064C91.6041%2054.3586%2091.6041%2055.415%2090.4746%2056.0672L66.9634%2069.6413C65.8338%2070.2935%2064.0041%2070.2935%2062.8745%2069.6413L5.62989%2036.5912C4.50034%2035.939%204.50033%2034.8826%205.62989%2034.2304L62.8694%201.18319C63.9989%200.531042%2065.8338%200.528091%2066.9634%201.18024L124.208%2034.2304ZM58.7805%2037.7745C57.0887%2036.7977%2054.3389%2036.7977%2052.6471%2037.7745L49.5805%2039.545C47.8887%2040.5218%2047.8887%2042.1094%2049.5805%2043.0861C51.2722%2044.0629%2054.022%2044.0629%2055.7138%2043.0861L58.7805%2041.3156C60.4723%2040.3388%2060.4723%2038.7512%2058.7805%2037.7745ZM78.2028%2026.561C76.511%2025.5843%2073.7612%2025.5843%2072.0694%2026.561L69.0027%2028.3316C67.311%2029.3083%2067.3109%2030.8959%2069.0027%2031.8727C70.6945%2032.8494%2073.4443%2032.8494%2075.1361%2031.8727L78.2028%2030.1021C79.8945%2029.1254%2079.8945%2027.5378%2078.2028%2026.561Z'%20fill='white'/%3e%3cpath%20d='M59.2891%2076.1449L2.04445%2043.0947C0.914891%2042.4425%200%2042.9707%200%2044.275V110.375C0%20111.674%200.914891%20113.264%202.04445%20113.916L24.5334%20126.9C25.663%20127.553%2026.5779%20127.024%2026.5779%20125.72V108.162C26.5779%20106.226%2027.871%20105.285%2029.5423%20106.185C31.2136%20107.085%2032.7112%20109.555%2032.7112%20111.556V129.261C32.7112%20130.566%2033.6261%20132.15%2034.7557%20132.802L59.2891%20146.967C60.4135%20147.616%2061.3335%20147.085%2061.3335%20145.786V79.6859C61.3335%2078.3816%2060.4135%2076.7941%2059.2891%2076.1449ZM32.7112%2086.7681C32.7112%2088.7216%2031.3363%2089.5154%2029.6445%2088.5387C27.9527%2087.5619%2026.5779%2085.1805%2026.5779%2083.227V79.6859C26.5779%2077.7265%2027.9476%2076.9357%2029.6445%2077.9154C31.3414%2078.8951%2032.7112%2081.2676%2032.7112%2083.227V86.7681Z'%20fill='white'/%3e%3cpath%20d='M129.768%2044.2782L129.758%20110.384C129.758%20111.683%20128.838%20113.276%20127.714%20113.926L115.447%20121.008C114.318%20121.66%20113.403%20121.126%20113.403%20119.821V102.116C113.403%20100.115%20111.977%2099.3333%20110.239%20100.402C108.501%20101.47%20107.269%20103.869%20107.269%20105.805V123.363C107.269%20124.667%20106.349%20126.254%20105.22%20126.907L92.9531%20133.989C91.8235%20134.641%2090.9086%20134.107%2090.9086%20132.803V115.097C90.9086%20113.096%2089.4826%20112.314%2087.7448%20113.383C86.007%20114.451%2084.7753%20116.85%2084.7753%20118.786V136.344C84.7753%20137.648%2083.8553%20139.235%2082.7257%20139.888L70.459%20146.97C69.3294%20147.622%2068.4146%20147.082%2068.4146%20145.784L68.4248%2079.6773C68.435%2078.373%2069.3499%2076.7884%2070.4794%2076.1362L93.9906%2062.562C95.1202%2061.9099%2096.0351%2062.444%2096.0351%2063.7483V76.7323C96.0351%2078.7212%2097.4508%2079.5091%2099.1835%2078.4556C100.916%2077.4021%20102.163%2074.9883%20102.163%2073.0466V60.2101C102.163%2058.9058%20103.083%2057.3183%20104.213%2056.6661L127.724%2043.0919C128.848%2042.4427%20129.768%2042.9739%20129.768%2044.2782Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_bam'%3e%3crect%20width='13'%20height='15'%20fill='white'%20transform='translate(25.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",LGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.9666%2013.9482L32%204.5V15.7351H30.4462L29.7889%2016.2729L29.3705%2016.0637V15.6963L30.3462%2014.9648H31.1439L30.9666%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M33.0334%2013.9482L32%204.5V15.7351H33.5538L34.2112%2016.2729L34.6295%2016.0637V15.6963L33.6539%2014.9648H32.8562L33.0334%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M32.7769%2016.0338H31.2231L31.5278%2018.1254C31.9083%2017.9732%2032.1222%2017.9697%2032.5027%2018.1254L32.7769%2016.0338Z'%20fill='white'/%3e%3ccircle%20cx='32'%20cy='18.9024'%20r='0.597609'%20fill='white'/%3e%3c/svg%3e",PGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.3732%2012.8333L28.5766%2017.4999H26.5V12.8333H30.3732Z'%20fill='white'/%3e%3cpath%20d='M32.2294%207.25712L26.5%2012.8333V6.5H33.007L32.2294%207.25712Z'%20fill='white'/%3e%3cpath%20d='M37.5001%2017.4997H28.5142L29.2508%2016.7805L35.0308%2011.1317L31.1466%2011.1272L32.9948%206.5H33.7908C36.6966%206.5%2038.0893%2010.2843%2035.9518%2012.3714L34.1024%2014.1786L34.1002%2014.181L37.5001%2017.5V17.4997Z'%20fill='white'/%3e%3c/svg%3e",OGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M16.1566%209.23523L18.3627%2017.4735H12.9886L11.3783%2014.6581L9.93787%2017.2225H6.92126L6.00037%2013.9823L7.64783%2011.9999L10.9594%2013.9257L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M26.0904%2015.5H24.5V8.5H26.0904V15.5Z'%20fill='white'/%3e%3cpath%20d='M39.5%2015.5H37.9096V8.5H39.5V15.5Z'%20fill='white'/%3e%3cpath%20d='M36.0011%2013.9841H32.8203V12.6465H36.0011V13.9841Z'%20fill='white'/%3e%3cpath%20d='M27.9989%2012.6465H26.3583V11.2049H27.9989V12.6465Z'%20fill='white'/%3e%3cpath%20d='M32.8203%2012.6465H31.1797V11.2049H32.8203V12.6465Z'%20fill='white'/%3e%3cpath%20d='M37.6417%2012.6465H36.0011V11.2049H37.6417V12.6465Z'%20fill='white'/%3e%3cpath%20d='M31.1797%2011.2049H27.9989V9.8673H31.1797V11.2049Z'%20fill='white'/%3e%3c/svg%3e",zGe="/assets/firedancer_circle_logo-D9jlxCje.svg",DGe="/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg",AGe="/assets/frankendancer_circle_logo-D5z79vwQ.svg",FGe="/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg",UGe="data:image/svg+xml,%3csvg%20width='35'%20height='20'%20viewBox='0%200%2035%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='25'%20cy='10'%20r='9.5'%20stroke='%233E332E'/%3e%3cmask%20id='path-2-inside-1_10887_28103'%20fill='white'%3e%3cpath%20d='M10%200C13.2712%200%2016.1755%201.57069%2018%203.99902C16.7442%205.67051%2016%207.74835%2016%2010C16%2012.2514%2016.7445%2014.3286%2018%2016C16.1756%2018.4287%2013.2715%2020%2010%2020C4.47715%2020%200%2015.5228%200%2010C0%204.47715%204.47715%200%2010%200Z'/%3e%3c/mask%3e%3cpath%20d='M18%203.99902L18.7995%204.5997L19.2508%203.99902L18.7995%203.39835L18%203.99902ZM18%2016L18.7995%2016.6006L19.2507%2016L18.7995%2015.3994L18%2016ZM10%200V1C12.9434%201%2015.5568%202.41194%2017.2005%204.5997L18%203.99902L18.7995%203.39835C16.7943%200.729431%2013.599%20-1%2010%20-1V0ZM18%203.99902L17.2005%203.39835C15.819%205.23708%2015%207.52433%2015%2010H16H17C17%207.97237%2017.6693%206.10394%2018.7995%204.5997L18%203.99902ZM16%2010H15C15%2012.4755%2015.8194%2014.7621%2017.2005%2016.6006L18%2016L18.7995%2015.3994C17.6695%2013.8951%2017%2012.0272%2017%2010H16ZM18%2016L17.2005%2015.3994C15.5567%2017.5876%2012.9436%2019%2010%2019V20V21C13.5994%2021%2016.7944%2019.2698%2018.7995%2016.6006L18%2016ZM10%2020V19C5.02944%2019%201%2014.9706%201%2010H0H-1C-1%2016.0751%203.92487%2021%2010%2021V20ZM0%2010H1C1%205.02944%205.02944%201%2010%201V0V-1C3.92487%20-1%20-1%203.92487%20-1%2010H0Z'%20fill='%233E332E'%20mask='url(%23path-2-inside-1_10887_28103)'/%3e%3c/svg%3e",BGe="_small-icon_imn4j_1",WGe="_medium-icon_imn4j_5",VGe="_large-icon_imn4j_9",HGe="_xlarge-icon_imn4j_13",ZGe={smallIcon:BGe,mediumIcon:WGe,largeIcon:VGe,xlargeIcon:HGe},qGe={[za.Frankendancer]:{src:AGe,alt:"Frankendancer Logo"},[za.Firedancer]:{src:zGe,alt:"Firedancer Logo"},[za.Agave]:{src:$Ge,alt:"Anza Logo"},[za.AgaveJito]:{src:MGe,alt:"Anza Jito Logo"},[za.AgavePaladin]:{src:LGe,alt:"Anza Paladin Logo"},[za.AgaveBam]:{src:RGe,alt:"Anza Bam Logo"},[za.AgaveRakurai]:{src:PGe,alt:"Anza Rakurai Logo"},[za.Sig]:null,[za.FiredancerHarmonic]:{src:DGe,alt:"Firedancer Harmonic Logo"},[za.AgaveHarmonic]:{src:OGe,alt:"Anza Harmonic Logo"},[za.FrankendancerHarmonic]:{src:FGe,alt:"Frankendancer Harmonic Logo"}},Nse=m.memo(function({client:e,size:t,showPlaceholder:n,className:r,placeholderClassName:i}){const o=Te(ZGe[`${t}Icon`],r),a=e?qGe[e]:void 0;return a?u.jsx("img",{src:a.src,alt:a.alt,className:o}):n?u.jsx("img",{src:UGe,alt:"Empty clients logo",className:Te(o,i)}):null}),GGe=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumSignificantDigits:3,maximumSignificantDigits:3});function ZM(e){if(e==null)return;const t=GGe.formatToParts(Number(e)/dd);let n="",r;for(const{value:i,type:o}of t)o==="compact"?r=i:n+=i;return{formatted:n,suffix:r}}function YGe(e,t,n){if(e==null||!t)return;const r=10**n,i=100n*BigInt(r)*e/t;return Number(i)/r}const T6=0,lh=1,e1=2,$se=4;function Mse(e){return()=>e}function KGe(e){e()}function _x(e,t){return n=>e(t(n))}function Rse(e,t){return()=>e(t)}function XGe(e,t){return n=>e(t,n)}function qM(e){return e!==void 0}function JGe(...e){return()=>{e.map(KGe)}}function t1(){}function I6(e,t){return t(e),e}function QGe(e,t){return t(e)}function Ar(...e){return e}function qn(e,t){return e(lh,t)}function Jt(e,t){e(T6,t)}function GM(e){e(e1)}function ki(e){return e($se)}function yt(e,t){return qn(e,XGe(t,T6))}function uu(e,t){const n=e(lh,r=>{n(),t(r)});return n}function Lse(e){let t,n;return r=>i=>{t=i,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Pse(e,t){return e===t}function Fr(e=Pse){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function zt(e){return t=>n=>{e(n)&&t(n)}}function lt(e){return t=>_x(t,e)}function nc(e){return t=>()=>{t(e)}}function Be(e,...t){const n=eYe(...t);return(r,i)=>{switch(r){case e1:GM(e);return;case lh:return qn(e,n(i))}}}function rc(e,t){return n=>r=>{n(t=e(t,r))}}function Ap(e){return t=>n=>{e>0?e--:t(n)}}function wd(e){let t=null,n;return r=>i=>{t=i,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function cn(...e){const t=new Array(e.length);let n=0,r=null;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{const c=n;n=n|s,t[a]=l,c!==i&&n===i&&r&&(r(),r=null)})}),o=>a=>{const s=()=>{o([a].concat(t))};n===i?s():r=s}}function eYe(...e){return t=>e.reduceRight(QGe,t)}function tYe(e){let t,n;const r=()=>t==null?void 0:t();return function(i,o){switch(i){case lh:return o?n===o?void 0:(r(),n=o,t=qn(e,o),t):(r(),t1);case e1:r(),n=null;return}}}function Ye(e){let t=e;const n=kn();return(r,i)=>{switch(r){case T6:t=i;break;case lh:{i(t);break}case $se:return t}return n(r,i)}}function Wo(e,t){return I6(Ye(t),n=>yt(e,n))}function kn(){const e=[];return(t,n)=>{switch(t){case T6:e.slice().forEach(r=>{r(n)});return;case e1:e.splice(0,e.length);return;case lh:return e.push(n),()=>{const r=e.indexOf(n);r>-1&&e.splice(r,1)}}}}function Es(e){return I6(kn(),t=>yt(e,t))}function Ln(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:nYe(),singleton:n}}const nYe=()=>Symbol();function rYe(e){const t=new Map,n=({constructor:r,dependencies:i,id:o,singleton:a})=>{if(a&&t.has(o))return t.get(o);const s=r(i.map(l=>n(l)));return a&&t.set(o,s),s};return n(e)}function Pi(...e){const t=kn(),n=new Array(e.length);let r=0;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{n[a]=l,r=r|s,r===i&&Jt(t,n)})}),function(o,a){switch(o){case e1:{GM(t);return}case lh:return r===i&&a(n),qn(t,a)}}}function Lt(e,t=Pse){return Be(e,Fr(t))}function YM(...e){return function(t,n){switch(t){case e1:return;case lh:return JGe(...e.map(r=>qn(r,n)))}}}var Va=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(Va||{});const iYe={0:"debug",3:"error",1:"log",2:"warn"},oYe=()=>typeof globalThis>"u"?window:globalThis,uh=Ln(()=>{const e=Ye(3);return{log:Ye((t,n,r=1)=>{var i;const o=(i=oYe().VIRTUOSO_LOG_LEVEL)!=null?i:ki(e);r>=o&&console[iYe[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function ic(e,t,n){return KM(e,t,n).callbackRef}function KM(e,t,n){const r=Pe.useRef(null);let i=a=>{};const o=Pe.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(a=>{const s=()=>{const l=a[0].target;l.offsetParent!==null&&e(l)};n?s():requestAnimationFrame(s)}):null,[e,n]);return i=a=>{a&&t?(o==null||o.observe(a),r.current=a):(r.current&&(o==null||o.unobserve(r.current)),r.current=null)},{callbackRef:i,ref:r}}function Ose(e,t,n,r,i,o,a,s,l){const c=Pe.useCallback(d=>{const f=aYe(d.children,t,s?"offsetWidth":"offsetHeight",i);let p=d.parentElement;for(;!p.dataset.virtuosoScroller;)p=p.parentElement;const v=p.lastElementChild.dataset.viewportType==="window";let x;v&&(x=p.ownerDocument.defaultView);const y=a?s?a.scrollLeft:a.scrollTop:v?s?x.scrollX||x.document.documentElement.scrollLeft:x.scrollY||x.document.documentElement.scrollTop:s?p.scrollLeft:p.scrollTop,b=a?s?a.scrollWidth:a.scrollHeight:v?s?x.document.documentElement.scrollWidth:x.document.documentElement.scrollHeight:s?p.scrollWidth:p.scrollHeight,w=a?s?a.offsetWidth:a.offsetHeight:v?s?x.innerWidth:x.innerHeight:s?p.offsetWidth:p.offsetHeight;r({scrollHeight:b,scrollTop:Math.max(y,0),viewportHeight:w}),o==null||o(s?zse("column-gap",getComputedStyle(d).columnGap,i):zse("row-gap",getComputedStyle(d).rowGap,i)),f!==null&&e(f)},[e,t,i,o,a,r,s]);return KM(c,n,l)}function aYe(e,t,n,r){const i=e.length;if(i===0)return null;const o=[];for(let a=0;a{if(!(l!=null&&l.offsetParent))return;const c=l.getBoundingClientRect(),d=c.width;let f,p;if(t){const v=t.getBoundingClientRect(),x=c.top-v.top;p=v.height-Math.max(0,x),f=x+t.scrollTop}else{const v=a.current.ownerDocument.defaultView;p=v.innerHeight-Math.max(0,c.top),f=c.top+v.scrollY}r.current={offsetTop:f,visibleHeight:p,visibleWidth:d},e(r.current)},[e,t]),{callbackRef:o,ref:a}=KM(i,!0,n),s=Pe.useCallback(()=>{i(a.current)},[i,a]);return Pe.useEffect(()=>{var l;if(t){t.addEventListener("scroll",s);const c=new ResizeObserver(()=>{requestAnimationFrame(s)});return c.observe(t),()=>{t.removeEventListener("scroll",s),c.unobserve(t)}}else{const c=(l=a.current)==null?void 0:l.ownerDocument.defaultView;return c==null||c.addEventListener("scroll",s),c==null||c.addEventListener("resize",s),()=>{c==null||c.removeEventListener("scroll",s),c==null||c.removeEventListener("resize",s)}}},[s,t,a]),o}const ga=Ln(()=>{const e=kn(),t=kn(),n=Ye(0),r=kn(),i=Ye(0),o=kn(),a=kn(),s=Ye(0),l=Ye(0),c=Ye(0),d=Ye(0),f=kn(),p=kn(),v=Ye(!1),x=Ye(!1),y=Ye(!1);return yt(Be(e,lt(({scrollTop:b})=>b)),t),yt(Be(e,lt(({scrollHeight:b})=>b)),a),yt(t,i),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:x,scrollBy:p,scrollContainerState:e,scrollHeight:a,scrollingInProgress:v,scrollTo:f,scrollTop:t,skipAnimationFrameInResizeObserver:y,smoothScrollTargetReached:r,statefulScrollTop:i,viewportHeight:o}},[],{singleton:!0}),wx={lvl:0};function Dse(e,t){const n=e.length;if(n===0)return[];let{index:r,value:i}=t(e[0]);const o=[];for(let a=1;at&&(s=s.concat(QM(i,t,n))),r>=t&&r<=n&&s.push({k:r,v:a}),r<=n&&(s=s.concat(QM(o,t,n))),s}function N6(e){const{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(eR(t))return Wse(Gi(e,{lvl:n-1}));if(!_r(t)&&!_r(t.r))return Gi(t.r,{l:Gi(t,{r:t.r.l}),lvl:n,r:Gi(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(eR(e))return tR(Gi(e,{lvl:n-1}));if(!_r(r)&&!_r(r.l)){const i=r.l,o=eR(i)?r.lvl-1:r.lvl;return Gi(i,{l:Gi(e,{lvl:n-1,r:i.l}),lvl:i.lvl+1,r:tR(Gi(r,{l:i.r,lvl:o}))})}else throw new Error("Unexpected empty nodes")}}function Gi(e,t){return Use(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function Ase(e){return _r(e.r)?e.l:N6(Gi(e,{r:Ase(e.r)}))}function eR(e){return _r(e)||e.lvl>e.r.lvl}function Fse(e){return _r(e.r)?[e.k,e.v]:Fse(e.r)}function Use(e,t,n,r=wx,i=wx){return{k:e,l:r,lvl:n,r:i,v:t}}function Bse(e){return tR(Wse(e))}function Wse(e){const{l:t}=e;return!_r(t)&&t.lvl===e.lvl?Gi(t,{r:Gi(e,{l:t.r})}):e}function tR(e){const{lvl:t,r:n}=e;return!_r(n)&&!_r(n.r)&&n.lvl===t&&n.r.lvl===t?Gi(n,{l:Gi(e,{r:n.l}),lvl:t+1}):e}function sYe(e){return Dse(e,({k:t,v:n})=>({index:t,value:n}))}function Vse(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function Sx(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const nR=Ln(()=>({recalcInProgress:Ye(!1)}),[],{singleton:!0});function Hse(e,t,n){return e[$6(e,t,n)]}function $6(e,t,n,r=0){let i=e.length-1;for(;r<=i;){const o=Math.floor((r+i)/2),a=e[o],s=n(a,t);if(s===0)return o;if(s===-1){if(i-r<2)return o-1;i=o-1}else{if(i===r)return o;r=o+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function lYe(e,t,n,r){const i=$6(e,t,r),o=$6(e,n,r,i);return e.slice(i,o+1)}function du(e,t){return Math.round(e.getBoundingClientRect()[t])}function M6(e){return!_r(e.groupOffsetTree)}function rR({index:e},t){return t===e?0:t=f||o===p)&&(e=JM(e,f)):(c=p!==o,l=!0),d>i&&i>=f&&p!==o&&(e=Ns(e,i+1,p));c&&(e=Ns(e,a,o))}return[e,n]}function dYe(e){return typeof e.groupIndex<"u"}function fYe({offset:e},t){return t===e?0:t0?s+n:s}function Zse(e,t){if(!M6(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function qse(e,t,n){if(dYe(e))return t.groupIndices[e.groupIndex]+1;{const r=e.index==="LAST"?n:e.index;let i=Zse(r,t);return i=Math.max(0,i,Math.min(n,i)),i}}function hYe(e,t,n,r=0){return r>0&&(t=Math.max(t,Hse(e,r,rR).offset)),Dse(lYe(e,t,n,fYe),gYe)}function pYe(e,[t,n,r,i]){t.length>0&&r("received item sizes",t,Va.DEBUG);const o=e.sizeTree;let a=o,s=0;if(n.length>0&&_r(o)&&t.length===2){const p=t[0].size,v=t[1].size;a=n.reduce((x,y)=>Ns(Ns(x,y,p),y+1,v),a)}else[a,s]=cYe(a,t);if(a===o)return e;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f}=iR(e.offsetTree,s,a,i);return{groupIndices:n,groupOffsetTree:n.reduce((p,v)=>Ns(p,v,Cx(v,f,i)),n1()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f,sizeTree:a}}function mYe(e){return Fp(e).map(({k:t,v:n},r,i)=>{const o=i[r+1];return{endIndex:o?o.k-1:1/0,size:n,startIndex:t}})}function Gse(e,t){let n=0,r=0;for(;ni.start===r&&(i.end===t||i.end===1/0)&&i.value===n}const yYe={offsetHeight:"height",offsetWidth:"width"},oc=Ln(([{log:e},{recalcInProgress:t}])=>{const n=kn(),r=kn(),i=Wo(r,0),o=kn(),a=kn(),s=Ye(0),l=Ye([]),c=Ye(void 0),d=Ye(void 0),f=Ye((j,T)=>du(j,yYe[T])),p=Ye(void 0),v=Ye(0),x=uYe(),y=Wo(Be(n,cn(l,e,v),rc(pYe,x),Fr()),x),b=Wo(Be(l,Fr(),rc((j,T)=>({current:T,prev:j.current}),{current:[],prev:[]}),lt(({prev:j})=>j)),[]);yt(Be(l,zt(j=>j.length>0),cn(y,v),lt(([j,T,E])=>{const $=j.reduce((D,M,O)=>Ns(D,M,Cx(M,T.offsetTree,E)||O),n1());return{...T,groupIndices:j,groupOffsetTree:$}})),y),yt(Be(r,cn(y),zt(([j,{lastIndex:T}])=>j[{endIndex:T,size:E,startIndex:j}])),n),yt(c,d);const w=Wo(Be(c,lt(j=>j===void 0)),!0);yt(Be(d,zt(j=>j!==void 0&&_r(ki(y).sizeTree)),lt(j=>[{endIndex:0,size:j,startIndex:0}])),n);const _=Es(Be(n,cn(y),rc(({sizes:j},[T,E])=>({changed:E!==j,sizes:E}),{changed:!1,sizes:x}),lt(j=>j.changed)));qn(Be(s,rc((j,T)=>({diff:j.prev-T,prev:T}),{diff:0,prev:0}),lt(j=>j.diff)),j=>{const{groupIndices:T}=ki(y);if(j>0)Jt(t,!0),Jt(o,j+Gse(j,T));else if(j<0){const E=ki(b);E.length>0&&(j-=Gse(-j,E)),Jt(a,j)}}),qn(Be(s,cn(e)),([j,T])=>{j<0&&T("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Va.ERROR)});const S=Es(o);yt(Be(o,cn(y),lt(([j,T])=>{const E=T.groupIndices.length>0,$=[],D=T.lastSize;if(E){const M=kx(T.sizeTree,0);let O=0,te=0;for(;O{let Y=P.ranges;return P.prevSize!==0&&(Y=[...P.ranges,{endIndex:X+j-1,size:P.prevSize,startIndex:P.prevIndex}]),{prevIndex:X+j,prevSize:A,ranges:Y}},{prevIndex:j,prevSize:0,ranges:$}).ranges}return Fp(T.sizeTree).reduce((M,{k:O,v:te})=>({prevIndex:O+j,prevSize:te,ranges:[...M.ranges,{endIndex:O+j-1,size:M.prevSize,startIndex:M.prevIndex}]}),{prevIndex:0,prevSize:D,ranges:[]}).ranges})),n);const C=Es(Be(a,cn(y,v),lt(([j,{offsetTree:T},E])=>{const $=-j;return Cx($,T,E)})));return yt(Be(a,cn(y,v),lt(([j,T,E])=>{if(T.groupIndices.length>0){if(_r(T.sizeTree))return T;let $=n1();const D=ki(b);let M=0,O=0,te=0;for(;M<-j;){te=D[O];const q=D[O+1]-te-1;O++,M+=q+1}if($=Fp(T.sizeTree).reduce((q,{k:P,v:X})=>Ns(q,Math.max(0,P+j),X),$),M!==-j){const q=kx(T.sizeTree,te);$=Ns($,0,q);const P=cu(T.sizeTree,-j+1)[1];$=Ns($,1,P)}return{...T,sizeTree:$,...iR(T.offsetTree,0,$,E)}}else{const $=Fp(T.sizeTree).reduce((D,{k:M,v:O})=>Ns(D,Math.max(0,M+j),O),n1());return{...T,sizeTree:$,...iR(T.offsetTree,0,$,E)}}})),y),{beforeUnshiftWith:S,data:p,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:v,groupIndices:l,itemSize:f,listRefresh:_,shiftWith:a,shiftWithOffset:C,sizeRanges:n,sizes:y,statefulTotalCount:i,totalCount:r,trackItemSizes:w,unshiftWith:o}},Ar(uh,nR),{singleton:!0});function bYe(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const Yse=Ln(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:i}])=>{const o=kn(),a=kn(),s=Es(Be(o,lt(bYe)));return yt(Be(s,lt(l=>l.totalCount)),n),yt(Be(s,lt(l=>l.groupIndices)),e),yt(Be(Pi(i,t,r),zt(([l,c])=>M6(c)),lt(([l,c,d])=>cu(c.groupOffsetTree,Math.max(l-d,0),"v")[0]),Fr(),lt(l=>[l])),a),{groupCounts:o,topItemsIndexes:a}},Ar(oc,ga)),ch=Ln(([{log:e}])=>{const t=Ye(!1),n=Es(Be(t,zt(r=>r),Fr()));return qn(t,r=>{r&&ki(e)("props updated",{},Va.DEBUG)}),{didMount:n,propsReady:t}},Ar(uh),{singleton:!0}),xYe=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Kse(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!xYe)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const jx=Ln(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:i,fixedHeaderHeight:o,footerHeight:a,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:f},{log:p}])=>{const v=kn(),x=kn(),y=Ye(0);let b=null,w=null,_=null;function S(){b&&(b(),b=null),_&&(_(),_=null),w&&(clearTimeout(w),w=null),Jt(l,!1)}return yt(Be(v,cn(n,f,r,y,s,a,p),cn(e,o,i),lt(([[C,j,T,E,$,D,M,O],te,q,P])=>{const X=Kse(C),{align:A,behavior:Y,offset:F}=X,H=E-1,ee=qse(X,j,H);let ce=Cx(ee,j.offsetTree,te)+D;A==="end"?(ce+=q+cu(j.sizeTree,ee)[1]-T+P,ee===H&&(ce+=M)):A==="center"?ce+=(q+cu(j.sizeTree,ee)[1]-T+P)/2:ce-=$,F&&(ce+=F);const B=ae=>{S(),ae?(O("retrying to scroll to",{location:C},Va.DEBUG),Jt(v,C)):(Jt(x,!0),O("list did not change, scroll successful",{},Va.DEBUG))};if(S(),Y==="smooth"){let ae=!1;_=qn(t,je=>{ae=ae||je}),b=uu(d,()=>{B(ae)})}else b=uu(Be(t,_Ye(150)),B);return w=setTimeout(()=>{S()},1200),Jt(l,!0),O("scrolling from index to",{behavior:Y,index:ee,top:ce},Va.DEBUG),{behavior:Y,top:ce}})),c),{scrollTargetReached:x,scrollToIndex:v,topListHeight:y}},Ar(oc,ga,uh),{singleton:!0});function _Ye(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return r=>{r&&(t(!0),clearTimeout(n))}}}function oR(e,t){e==0?t():requestAnimationFrame(()=>{oR(e-1,t)})}function aR(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const Tx=Ln(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:i,scrollToIndex:o},{didMount:a}])=>{const s=Ye(!0),l=Ye(0),c=Ye(!0);return yt(Be(a,cn(l),zt(([d,f])=>!!f),nc(!1)),s),yt(Be(a,cn(l),zt(([d,f])=>!!f),nc(!1)),c),qn(Be(Pi(t,a),cn(s,n,e,c),zt(([[,d],f,{sizeTree:p},v,x])=>d&&(!_r(p)||qM(v))&&!f&&!x),cn(l)),([,d])=>{uu(i,()=>{Jt(c,!0)}),oR(4,()=>{uu(r,()=>{Jt(s,!0)}),Jt(o,d)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},Ar(oc,ga,jx,ch),{singleton:!0});function Xse(e,t){return Math.abs(e-t)<1.01}const Ix="up",Ex="down",wYe="none",kYe={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},SYe=0,Nx=Ln(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:i,viewportHeight:o}])=>{const a=Ye(!1),s=Ye(!0),l=kn(),c=kn(),d=Ye(4),f=Ye(SYe),p=Wo(Be(YM(Be(Lt(i),Ap(1),nc(!0)),Be(Lt(i),Ap(1),nc(!1),Lse(100))),Fr()),!1),v=Wo(Be(YM(Be(n,nc(!0)),Be(n,nc(!1),Lse(200))),Fr()),!1);yt(Be(Pi(Lt(i),Lt(f)),lt(([_,S])=>_<=S),Fr()),s),yt(Be(s,wd(50)),c);const x=Es(Be(Pi(r,Lt(o),Lt(t),Lt(e),Lt(d)),rc((_,[{scrollHeight:S,scrollTop:C},j,T,E,$])=>{const D=C+j-S>-$,M={scrollHeight:S,scrollTop:C,viewportHeight:j};if(D){let te,q;return C>_.state.scrollTop?(te="SCROLLED_DOWN",q=_.state.scrollTop-C):(te="SIZE_DECREASED",q=_.state.scrollTop-C||_.scrollTopDelta),{atBottom:!0,atBottomBecause:te,scrollTopDelta:q,state:M}}let O;return M.scrollHeight>_.state.scrollHeight?O="SIZE_INCREASED":j<_.state.viewportHeight?O="VIEWPORT_HEIGHT_DECREASING":C<_.state.scrollTop?O="SCROLLING_UPWARDS":O="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:O,state:M}},kYe),Fr((_,S)=>_&&_.atBottom===S.atBottom))),y=Wo(Be(r,rc((_,{scrollHeight:S,scrollTop:C,viewportHeight:j})=>{if(Xse(_.scrollHeight,S))return{changed:!1,jump:0,scrollHeight:S,scrollTop:C};{const T=S-(C+j)<1;return _.scrollTop!==C&&T?{changed:!0,jump:_.scrollTop-C,scrollHeight:S,scrollTop:C}:{changed:!0,jump:0,scrollHeight:S,scrollTop:C}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),zt(_=>_.changed),lt(_=>_.jump)),0);yt(Be(x,lt(_=>_.atBottom)),a),yt(Be(a,wd(50)),l);const b=Ye(Ex);yt(Be(r,lt(({scrollTop:_})=>_),Fr(),rc((_,S)=>ki(v)?{direction:_.direction,prevScrollTop:S}:{direction:S<_.prevScrollTop?Ix:Ex,prevScrollTop:S},{direction:Ex,prevScrollTop:0}),lt(_=>_.direction)),b),yt(Be(r,wd(50),nc(wYe)),b);const w=Ye(0);return yt(Be(p,zt(_=>!_),nc(0)),w),yt(Be(i,wd(100),cn(p),zt(([_,S])=>!!S),rc(([_,S],[C])=>[S,C],[0,0]),lt(([_,S])=>S-_)),w),{atBottomState:x,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:f,isAtBottom:a,isAtTop:s,isScrolling:p,lastJumpDueToItemResize:y,scrollDirection:b,scrollVelocity:w}},Ar(ga)),R6="top",L6="bottom",Jse="none";function Qse(e,t,n){return typeof e=="number"?n===Ix&&t===R6||n===Ex&&t===L6?e:0:n===Ix?t===R6?e.main:e.reverse:t===L6?e.main:e.reverse}function ele(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const sR=Ln(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:i}])=>{const o=kn(),a=Ye(0),s=Ye(0),l=Ye(0),c=Wo(Be(Pi(Lt(r),Lt(i),Lt(n),Lt(o,Sx),Lt(l),Lt(a),Lt(t),Lt(e),Lt(s)),lt(([d,f,p,[v,x],y,b,w,_,S])=>{const C=d-_,j=b+w,T=Math.max(p-C,0);let E=Jse;const $=ele(S,R6),D=ele(S,L6);return v-=_,v+=p+w,x+=p+w,x-=_,v>d+j-$&&(E=Ix),xd!=null),Fr(Sx)),[0,0]);return{increaseViewportBy:s,listBoundary:o,overscan:l,topListHeight:a,visibleRange:c}},Ar(ga),{singleton:!0});function CYe(e,t,n){if(M6(t)){const r=Zse(e,t);return[{index:cu(t.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:e,offset:0,size:0}]}const lR={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function P6(e,t,n,r,i,o){const{lastIndex:a,lastOffset:s,lastSize:l}=i;let c=0,d=0;if(e.length>0){c=e[0].offset;const y=e[e.length-1];d=y.offset+y.size}const f=n-a,p=s+f*l+(f-1)*r,v=c,x=p-d;return{bottom:d,firstItemIndex:o,items:nle(e,i,o),offsetBottom:x,offsetTop:c,top:v,topItems:nle(t,i,o),topListHeight:t.reduce((y,b)=>b.size+y,0),totalCount:n}}function tle(e,t,n,r,i,o){let a=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-a>=e)break;a++}const s=e+a,l=aR(t,s),c=Array.from({length:s}).map((d,f)=>({data:o[f+l],index:f+l,offset:0,size:0}));return P6(c,[],s,i,n,r)}function nle(e,t,n){if(e.length===0)return[];if(!M6(t))return e.map(c=>({...c,index:c.index+n,originalIndex:c.index}));const r=e[0].index,i=e[e.length-1].index,o=[],a=E6(t.groupOffsetTree,r,i);let s,l=0;for(const c of e){(!s||s.end{const y=Ye([]),b=Ye(0),w=kn();yt(o.topItemsIndexes,y);const _=Wo(Be(Pi(v,x,Lt(l,Sx),Lt(i),Lt(r),Lt(c),d,Lt(y),Lt(t),Lt(n),e),zt(([T,E,,$,,,,,,,D])=>{const M=D&&D.length!==$;return T&&!E&&!M}),lt(([,,[T,E],$,D,M,O,te,q,P,X])=>{const A=D,{offsetTree:Y,sizeTree:F}=A,H=ki(b);if($===0)return{...lR,totalCount:$};if(T===0&&E===0)return H===0?{...lR,totalCount:$}:tle(H,M,D,q,P,X||[]);if(_r(F))return H>0?null:P6(CYe(aR(M,$),A,X),[],$,P,A,q);const ee=[];if(te.length>0){const me=te[0],ke=te[te.length-1];let he=0;for(const ue of E6(F,me,ke)){const re=ue.value,ge=Math.max(ue.start,me),$e=Math.min(ue.end,ke);for(let pe=ge;pe<=$e;pe++)ee.push({data:X==null?void 0:X[pe],index:pe,offset:he,size:re}),he+=re}}if(!O)return P6([],ee,$,P,A,q);const ce=te.length>0?te[te.length-1]+1:0,B=hYe(Y,T,E,ce);if(B.length===0)return null;const ae=$-1,je=I6([],me=>{for(const ke of B){const he=ke.value;let ue=he.offset,re=ke.start;const ge=he.size;if(he.offset=E);pe++)me.push({data:X==null?void 0:X[pe],index:pe,offset:ue,size:ge}),ue+=ge+P}});return P6(je,ee,$,P,A,q)}),zt(T=>T!==null),Fr()),lR);yt(Be(e,zt(qM),lt(T=>T==null?void 0:T.length)),i),yt(Be(_,lt(T=>T.topListHeight)),f),yt(f,s),yt(Be(_,lt(T=>[T.top,T.bottom])),a),yt(Be(_,lt(T=>T.items)),w);const S=Es(Be(_,zt(({items:T})=>T.length>0),cn(i,e),zt(([{items:T},E])=>T[T.length-1].originalIndex===E-1),lt(([,T,E])=>[T-1,E]),Fr(Sx),lt(([T])=>T))),C=Es(Be(_,wd(200),zt(({items:T,topItems:E})=>T.length>0&&T[0].originalIndex===E.length),lt(({items:T})=>T[0].index),Fr())),j=Es(Be(_,zt(({items:T})=>T.length>0),lt(({items:T})=>{let E=0,$=T.length-1;for(;T[E].type==="group"&&E<$;)E++;for(;T[$].type==="group"&&$>E;)$--;return{endIndex:T[$].index,startIndex:T[E].index}}),Fr(Vse)));return{endReached:S,initialItemCount:b,itemsRendered:w,listState:_,rangeChanged:j,startReached:C,topItemsIndexes:y,...p}},Ar(oc,Yse,sR,Tx,jx,Nx,ch,nR),{singleton:!0}),rle=Ln(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:i}])=>{const o=kn(),a=Wo(Be(Pi(n,e,r,t,i),lt(([s,l,c,d,f])=>s+l+c+d+f.offsetBottom+f.bottom)),0);return yt(Lt(a),o),{totalListHeight:a,totalListHeightChanged:o}},Ar(ga,Up),{singleton:!0}),jYe=Ln(([{viewportHeight:e},{totalListHeight:t}])=>{const n=Ye(!1),r=Wo(Be(Pi(n,e,t),zt(([i])=>i),lt(([,i,o])=>Math.max(0,i-o)),wd(0),Fr()),0);return{alignToBottom:n,paddingTopAddition:r}},Ar(ga,rle),{singleton:!0}),ile=Ln(()=>({context:Ye(null)})),TYe=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...i},viewportBottom:o,viewportTop:a})=>to?{...i,align:n??"end",behavior:r}:null,ole=Ln(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:i,headerHeight:o,scrollingInProgress:a,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=kn();return yt(Be(d,cn(t,l,n,o,i,r,s),cn(e),lt(([[f,p,v,x,y,b,w,_],S])=>{const{align:C,behavior:j,calculateViewLocation:T=TYe,done:E,...$}=f,D=qse(f,p,x-1),M=Cx(D,p.offsetTree,S)+y+b,O=M+cu(p.sizeTree,D)[1],te=_+b,q=_+v-w,P=T({itemBottom:O,itemTop:M,locationParams:{align:C,behavior:j,...$},viewportBottom:q,viewportTop:te});return P?E&&uu(Be(a,zt(X=>!X),Ap(ki(a)?1:2)),E):E&&E(),P}),zt(f=>f!==null)),c),{scrollIntoView:d}},Ar(oc,ga,jx,Up,uh),{singleton:!0});function ale(e){return e?e==="smooth"?"smooth":"auto":!1}const IYe=(e,t)=>typeof e=="function"?ale(e(t)):t&&ale(e),EYe=Ln(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:i,isAtBottom:o},{scrollToIndex:a},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:f},{context:p},{scrollIntoView:v}])=>{const x=Ye(!1),y=kn();let b=null;function w(j){Jt(a,{align:"end",behavior:j,index:"LAST"})}qn(Be(Pi(Be(Lt(t),Ap(1)),l),cn(Lt(x),o,s,f),lt(([[j,T],E,$,D,M])=>{let O=T&&D,te="auto";return O&&(te=IYe(E,$||M),O=O&&!!te),{followOutputBehavior:te,shouldFollow:O,totalCount:j}}),zt(({shouldFollow:j})=>j)),({followOutputBehavior:j,totalCount:T})=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j)}):b=uu(e,()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j),b=null})});function _(j){const T=uu(i,E=>{j&&!E.atBottom&&E.notAtBottomBecause==="SIZE_INCREASED"&&!b&&(ki(d)("scrolling to bottom due to increased size",{},Va.DEBUG),w("auto"))});setTimeout(T,100)}qn(Be(Pi(Lt(x),t,c),zt(([j,,T])=>j&&T),rc(({value:j},[,T])=>({refreshed:j===T,value:T}),{refreshed:!1,value:0}),zt(({refreshed:j})=>j),cn(x,t)),([,j])=>{ki(s)&&_(j!==!1)}),qn(y,()=>{_(ki(x)!==!1)}),qn(Pi(Lt(x),i),([j,T])=>{j&&!T.atBottom&&T.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&w("auto")});const S=Ye(null),C=kn();return yt(YM(Be(Lt(r),lt(j=>{var T;return(T=j==null?void 0:j.length)!=null?T:0})),Be(Lt(t))),C),qn(Be(Pi(Be(C,Ap(1)),l),cn(Lt(S),s,f,p),lt(([[j,T],E,$,D,M])=>T&&$&&(E==null?void 0:E({context:M,totalCount:j,scrollingInProgress:D}))),zt(j=>!!j),wd(0)),j=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("scrolling into view",{}),Jt(v,j)}):b=uu(e,()=>{ki(d)("scrolling into view",{}),Jt(v,j),b=null})}),{autoscrollToBottom:y,followOutput:x,scrollIntoViewOnChange:S}},Ar(oc,Nx,jx,Tx,ch,uh,ga,ile,ole)),NYe=Ln(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:i},{initialItemCount:o,listState:a},{didMount:s}])=>(yt(Be(s,cn(o),zt(([,l])=>l!==0),cn(i,r,t,n,e),lt(([[,l],c,d,f,p,v=[]])=>tle(l,c,d,f,p,v))),a),{}),Ar(oc,Tx,Up,ch),{singleton:!0}),$Ye=Ln(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=Ye(0);return qn(Be(e,cn(r),zt(([,i])=>i!==0),lt(([,i])=>({top:i}))),i=>{uu(Be(n,Ap(1),zt(o=>o.items.length>1)),()=>{requestAnimationFrame(()=>{Jt(t,i)})})}),{initialScrollTop:r}},Ar(ch,ga,Up),{singleton:!0}),sle=Ln(([{scrollVelocity:e}])=>{const t=Ye(!1),n=kn(),r=Ye(!1);return yt(Be(e,cn(r,t,n),zt(([i,o])=>!!o),lt(([i,o,a,s])=>{const{enter:l,exit:c}=o;if(a){if(c(i,s))return!1}else if(l(i,s))return!0;return a}),Fr()),t),qn(Be(Pi(t,e,n),cn(r)),([[i,o,a],s])=>{i&&s&&s.change&&s.change(o,a)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},Ar(Nx),{singleton:!0}),uR=Ln(([{scrollContainerState:e,scrollTo:t}])=>{const n=kn(),r=kn(),i=kn(),o=Ye(!1),a=Ye(void 0);return yt(Be(Pi(n,r),lt(([{scrollHeight:s,scrollTop:l,viewportHeight:c},{offsetTop:d}])=>({scrollHeight:s,scrollTop:Math.max(0,l-d),viewportHeight:c}))),e),yt(Be(t,cn(r),lt(([s,{offsetTop:l}])=>({...s,top:s.top+l}))),i),{customScrollParent:a,useWindowScroll:o,windowScrollContainerState:n,windowScrollTo:i,windowViewportRect:r}},Ar(ga)),MYe=Ln(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:i},{didMount:o},{useWindowScroll:a,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=kn(),d=Ye(void 0),f=Ye(null),p=Ye(null);return yt(s,f),yt(l,p),qn(Be(c,cn(t,r,a,f,p,n)),([v,x,y,b,w,_,S])=>{const C=mYe(x.sizeTree);b&&w!==null&&_!==null&&(y=w.scrollTop-_.offsetTop),y-=S,v({ranges:C,scrollTop:y})}),yt(Be(d,zt(qM),lt(RYe)),i),yt(Be(o,cn(d),zt(([,v])=>v!==void 0),Fr(),lt(([,v])=>v.ranges)),e),{getState:c,restoreStateFrom:d}},Ar(oc,ga,Tx,ch,uR));function RYe(e){return{align:"start",index:0,offset:e.scrollTop}}const LYe=Ln(([{topItemsIndexes:e}])=>{const t=Ye(0);return yt(Be(t,zt(n=>n>=0),lt(n=>Array.from({length:n}).map((r,i)=>i))),e),{topItemCount:t}},Ar(Up));function lle(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const PYe=lle(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),OYe=Ln(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:i,isScrolling:o,lastJumpDueToItemResize:a,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:f,sizes:p},{log:v},{recalcInProgress:x}])=>{const y=Es(Be(l,cn(a),rc(([,w,_,S],[{bottom:C,items:j,offsetBottom:T,totalCount:E},$])=>{const D=C+T;let M=0;return _===E&&w.length>0&&j.length>0&&(j[0].originalIndex===0&&w[0].originalIndex===0||(M=D-S,M!==0&&(M+=$))),[M,j,E,D]},[0,[],0,0]),zt(([w])=>w!==0),cn(r,s,n,i,v,x),zt(([,w,_,S,,,C])=>!C&&!S&&w!==0&&_===Ix),lt(([[w],,,,,_])=>(_("Upward scrolling compensation",{amount:w},Va.DEBUG),w))));function b(w){w>0?(Jt(t,{behavior:"auto",top:-w}),Jt(e,0)):(Jt(e,0),Jt(t,{behavior:"auto",top:-w}))}return qn(Be(y,cn(e,o)),([w,_,S])=>{S&&PYe()?Jt(e,_-w):b(-w)}),qn(Be(Pi(Wo(o,!1),e,x),zt(([w,_,S])=>!w&&!S&&_!==0),lt(([w,_])=>_),wd(1)),b),yt(Be(f,lt(w=>({top:-w}))),t),qn(Be(c,cn(p,d),lt(([w,{groupIndices:_,lastSize:S,sizeTree:C},j])=>{function T(E){return E*(S+j)}if(_.length===0)return T(w);{let E=0;const $=kx(C,0);let D=0,M=0;for(;Dw&&(E-=$,O=w-D+1),D+=O,E+=T(O),M++}return E}})),w=>{Jt(e,w),requestAnimationFrame(()=>{Jt(t,{top:w}),requestAnimationFrame(()=>{Jt(e,0),Jt(x,!1)})})}),{deviation:e}},Ar(ga,Nx,Up,oc,uh,nR)),zYe=Ln(([e,t,n,r,i,o,a,s,l,c,d])=>({...e,...t,...n,...r,...i,...o,...a,...s,...l,...c,...d}),Ar(sR,NYe,ch,sle,rle,$Ye,jYe,uR,ole,uh,ile)),ule=Ln(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:i,groupIndices:o,itemSize:a,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:f},{initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:x},y,b,w,{listState:_,topItemsIndexes:S,...C},{scrollToIndex:j},T,{topItemCount:E},{groupCounts:$},D])=>(yt(C.rangeChanged,D.scrollSeekRangeChanged),yt(Be(D.windowViewportRect,lt(M=>M.visibleHeight)),y.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:i,groupCounts:$,initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:x,sizeRanges:s,topItemCount:E,topItemsIndexes:S,totalCount:d,...w,groupIndices:o,itemSize:a,listState:_,scrollToIndex:j,statefulTotalCount:c,trackItemSizes:f,...C,...D,...y,sizes:l,...b}),Ar(oc,Tx,ga,MYe,EYe,Up,jx,OYe,LYe,Yse,zYe));function DYe(e,t){const n={},r={};let i=0;const o=e.length;for(;i(w[_]=S=>{const C=b[t.methods[_]];Jt(C,S)},w),{})}function d(b){return a.reduce((w,_)=>(w[_]=tYe(b[t.events[_]]),w),{})}const f=Pe.forwardRef((b,w)=>{const{children:_,...S}=b,[C]=Pe.useState(()=>I6(rYe(e),E=>{l(E,S)})),[j]=Pe.useState(Rse(d,C));O6(()=>{for(const E of a)E in S&&qn(j[E],S[E]);return()=>{Object.values(j).map(GM)}},[S,j,C]),O6(()=>{l(C,S)}),Pe.useImperativeHandle(w,Mse(c(C)));const T=n;return u.jsx(s.Provider,{value:C,children:n?u.jsx(T,{...DYe([...r,...i,...a],S),children:_}):_})}),p=b=>{const w=Pe.useContext(s);return Pe.useCallback(_=>{Jt(w[b],_)},[w,b])},v=b=>{const w=Pe.useContext(s)[b],_=Pe.useCallback(S=>qn(w,S),[w]);return Pe.useSyncExternalStore(_,()=>ki(w),()=>ki(w))},x=b=>{const w=Pe.useContext(s)[b],[_,S]=Pe.useState(Rse(ki,w));return O6(()=>qn(w,C=>{C!==_&&S(Mse(C))}),[w,_]),_},y=Pe.version.startsWith("18")?v:x;return{Component:f,useEmitter:(b,w)=>{const _=Pe.useContext(s)[b];O6(()=>qn(_,w),[w,_])},useEmitterValue:y,usePublisher:p}}const z6=Pe.createContext(void 0),cle=Pe.createContext(void 0),dle=typeof document<"u"?Pe.useLayoutEffect:Pe.useEffect;function dR(e){return"self"in e}function AYe(e){return"body"in e}function fle(e,t,n,r=t1,i,o){const a=Pe.useRef(null),s=Pe.useRef(null),l=Pe.useRef(null),c=Pe.useCallback(p=>{let v,x,y;const b=p.target;if(AYe(b)||dR(b)){const _=dR(b)?b:b.defaultView;y=o?_.scrollX:_.scrollY,v=o?_.document.documentElement.scrollWidth:_.document.documentElement.scrollHeight,x=o?_.innerWidth:_.innerHeight}else y=o?b.scrollLeft:b.scrollTop,v=o?b.scrollWidth:b.scrollHeight,x=o?b.offsetWidth:b.offsetHeight;const w=()=>{e({scrollHeight:v,scrollTop:Math.max(y,0),viewportHeight:x})};p.suppressFlushSync?w():WU.flushSync(w),s.current!==null&&(y===s.current||y<=0||y===v-x)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))},[e,t,o]);Pe.useEffect(()=>{const p=i||a.current;return r(i||a.current),c({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",c,{passive:!0}),()=>{r(null),p.removeEventListener("scroll",c)}},[a,c,n,r,i]);function d(p){const v=a.current;if(!v||(o?"offsetWidth"in v&&v.offsetWidth===0:"offsetHeight"in v&&v.offsetHeight===0))return;const x=p.behavior==="smooth";let y,b,w;dR(v)?(b=Math.max(du(v.document.documentElement,o?"width":"height"),o?v.document.documentElement.scrollWidth:v.document.documentElement.scrollHeight),y=o?v.innerWidth:v.innerHeight,w=o?window.scrollX:window.scrollY):(b=v[o?"scrollWidth":"scrollHeight"],y=du(v,o?"width":"height"),w=v[o?"scrollLeft":"scrollTop"]);const _=b-y;if(p.top=Math.ceil(Math.max(Math.min(_,p.top),0)),Xse(y,b)||p.top===w){e({scrollHeight:b,scrollTop:w,viewportHeight:y}),x&&t(!0);return}x?(s.current=p.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,t(!0)},1e3)):s.current=null,o&&(p={behavior:p.behavior,left:p.top}),v.scrollTo(p)}function f(p){o&&(p={behavior:p.behavior,left:p.top}),a.current.scrollBy(p)}return{scrollByCallback:f,scrollerRef:a,scrollToCallback:d}}const fR="-webkit-sticky",hle="sticky",hR=lle(()=>{if(typeof document>"u")return hle;const e=document.createElement("div");return e.style.position=fR,e.style.position===fR?fR:hle});function pR(e){return e}const FYe=Ln(()=>{const e=Ye(s=>`Item ${s}`),t=Ye(s=>`Group ${s}`),n=Ye({}),r=Ye(pR),i=Ye("div"),o=Ye(t1),a=(s,l=null)=>Wo(Be(n,lt(c=>c[s]),Fr()),l);return{components:n,computeItemKey:r,EmptyPlaceholder:a("EmptyPlaceholder"),FooterComponent:a("Footer"),GroupComponent:a("Group","div"),groupContent:t,HeaderComponent:a("Header"),HeaderFooterTag:i,ItemComponent:a("Item","div"),itemContent:e,ListComponent:a("List","div"),ScrollerComponent:a("Scroller","div"),scrollerRef:o,ScrollSeekPlaceholder:a("ScrollSeekPlaceholder"),TopItemListComponent:a("TopItemList")}}),UYe=Ln(([e,t])=>({...e,...t}),Ar(ule,FYe)),BYe=({height:e})=>u.jsx("div",{style:{height:e}}),WYe={overflowAnchor:"none",position:hR(),zIndex:1},ple={overflowAnchor:"none"},VYe={...ple,display:"inline-block",height:"100%"},mle=Pe.memo(function({showTopList:e=!1}){const t=Wt("listState"),n=ml("sizeRanges"),r=Wt("useWindowScroll"),i=Wt("customScrollParent"),o=ml("windowScrollContainerState"),a=ml("scrollContainerState"),s=i||r?o:a,l=Wt("itemContent"),c=Wt("context"),d=Wt("groupContent"),f=Wt("trackItemSizes"),p=Wt("itemSize"),v=Wt("log"),x=ml("gap"),y=Wt("horizontalDirection"),{callbackRef:b}=Ose(n,p,f,e?t1:s,v,x,i,y,Wt("skipAnimationFrameInResizeObserver")),[w,_]=Pe.useState(0);vR("deviation",P=>{w!==P&&_(P)});const S=Wt("EmptyPlaceholder"),C=Wt("ScrollSeekPlaceholder")||BYe,j=Wt("ListComponent"),T=Wt("ItemComponent"),E=Wt("GroupComponent"),$=Wt("computeItemKey"),D=Wt("isSeeking"),M=Wt("groupIndices").length>0,O=Wt("alignToBottom"),te=Wt("initialItemFinalLocationReached"),q=e?{}:{boxSizing:"border-box",...y?{display:"inline-block",height:"100%",marginLeft:w!==0?w:O?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:w!==0?w:O?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...te?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&S?u.jsx(S,{...Ur(S,c)}):u.jsx(j,{...Ur(j,c),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:b,style:q,children:(e?t.topItems:t.items).map(P=>{const X=P.originalIndex,A=$(X+t.firstItemIndex,P.data,c);return D?m.createElement(C,{...Ur(C,c),height:P.size,index:P.index,key:A,type:P.type||"item",...P.type==="group"?{}:{groupIndex:P.groupIndex}}):P.type==="group"?m.createElement(E,{...Ur(E,c),"data-index":X,"data-item-index":P.index,"data-known-size":P.size,key:A,style:WYe},d(P.index,c)):m.createElement(T,{...Ur(T,c),...gle(T,P.data),"data-index":X,"data-item-group-index":P.groupIndex,"data-item-index":P.index,"data-known-size":P.size,key:A,style:y?VYe:ple},M?l(P.index,P.groupIndex,P.data,c):l(P.index,P.data,c))})})}),HYe={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},ZYe={outline:"none",overflowX:"auto",position:"relative"},r1=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),qYe={position:hR(),top:0,width:"100%",zIndex:1};function Ur(e,t){if(typeof e!="string")return{context:t}}function gle(e,t){return{item:typeof e=="string"?void 0:t}}const GYe=Pe.memo(function(){const e=Wt("HeaderComponent"),t=ml("headerHeight"),n=Wt("HeaderFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),YYe=Pe.memo(function(){const e=Wt("FooterComponent"),t=ml("footerHeight"),n=Wt("HeaderFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null});function mR({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Pe.memo(function({children:r,style:i,context:o,...a}){const s=n("scrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("scrollerRef"),f=t("horizontalDirection")||!1,{scrollByCallback:p,scrollerRef:v,scrollToCallback:x}=fle(s,c,l,d,void 0,f);return e("scrollTo",x),e("scrollBy",p),u.jsx(l,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:v,style:{...f?ZYe:HYe,...i},tabIndex:0,...a,...Ur(l,o),children:r})})}function gR({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Pe.memo(function({children:r,style:i,context:o,...a}){const s=n("windowScrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("totalListHeight"),f=t("deviation"),p=t("customScrollParent"),v=Pe.useRef(null),x=t("scrollerRef"),{scrollByCallback:y,scrollerRef:b,scrollToCallback:w}=fle(s,c,l,x,p);return dle(()=>{var _;return b.current=p||((_=v.current)==null?void 0:_.ownerDocument.defaultView),()=>{b.current=null}},[b,p]),e("windowScrollTo",w),e("scrollBy",y),u.jsx(l,{ref:v,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...d!==0?{height:d+f}:{}},...a,...Ur(l,o),children:r})})}const KYe=({children:e})=>{const t=Pe.useContext(z6),n=ml("viewportHeight"),r=ml("fixedItemHeight"),i=Wt("alignToBottom"),o=Wt("horizontalDirection"),a=Pe.useMemo(()=>_x(n,l=>du(l,o?"width":"height")),[n,o]),s=ic(a,!0,Wt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:s,style:r1(i),children:e})},XYe=({children:e})=>{const t=Pe.useContext(z6),n=ml("windowViewportRect"),r=ml("fixedItemHeight"),i=Wt("customScrollParent"),o=XM(n,i,Wt("skipAnimationFrameInResizeObserver")),a=Wt("alignToBottom");return Pe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(a),children:e})},JYe=({children:e})=>{const t=Wt("TopItemListComponent")||"div",n=Wt("headerHeight"),r={...qYe,marginTop:`${n}px`},i=Wt("context");return u.jsx(t,{style:r,...Ur(t,i),children:e})},QYe=Pe.memo(function(e){const t=Wt("useWindowScroll"),n=Wt("topItemsIndexes").length>0,r=Wt("customScrollParent"),i=Wt("context");return u.jsxs(r||t?nKe:tKe,{...e,context:i,children:[n&&u.jsx(JYe,{children:u.jsx(mle,{showTopList:!0})}),u.jsxs(r||t?XYe:KYe,{children:[u.jsx(GYe,{}),u.jsx(mle,{}),u.jsx(YYe,{})]})]})}),{Component:eKe,useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}=cR(UYe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},QYe),tKe=mR({useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}),nKe=gR({useEmitter:vR,useEmitterValue:Wt,usePublisher:ml}),yR=eKe,rKe=Ln(()=>{const e=Ye(c=>u.jsxs("td",{children:["Item $",c]})),t=Ye(null),n=Ye(c=>u.jsxs("td",{colSpan:1e3,children:["Group ",c]})),r=Ye(null),i=Ye(null),o=Ye({}),a=Ye(pR),s=Ye(t1),l=(c,d=null)=>Wo(Be(o,lt(f=>f[c]),Fr()),d);return{components:o,computeItemKey:a,context:t,EmptyPlaceholder:l("EmptyPlaceholder"),FillerRow:l("FillerRow"),fixedFooterContent:i,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TableBodyComponent:l("TableBody","tbody"),TableComponent:l("Table","table"),TableFooterComponent:l("TableFoot","tfoot"),TableHeadComponent:l("TableHead","thead"),TableRowComponent:l("TableRow","tr"),GroupComponent:l("Group","tr")}}),iKe=Ln(([e,t])=>({...e,...t}),Ar(ule,rKe)),oKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{height:e}})}),aKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{border:0,height:e,padding:0}})}),sKe={overflowAnchor:"none"},vle={position:hR(),zIndex:2,overflowAnchor:"none"},yle=Pe.memo(function({showTopList:e=!1}){const t=Qt("listState"),n=Qt("computeItemKey"),r=Qt("firstItemIndex"),i=Qt("context"),o=Qt("isSeeking"),a=Qt("fixedHeaderHeight"),s=Qt("groupIndices").length>0,l=Qt("itemContent"),c=Qt("groupContent"),d=Qt("ScrollSeekPlaceholder")||oKe,f=Qt("GroupComponent"),p=Qt("TableRowComponent"),v=(e?t.topItems:[]).reduce((y,b,w)=>(w===0?y.push(b.size):y.push(y[w-1]+b.size),y),[]),x=(e?t.topItems:t.items).map(y=>{const b=y.originalIndex,w=n(b+r,y.data,i),_=e?b===0?0:v[b-1]:0;return o?m.createElement(d,{...Ur(d,i),height:y.size,index:y.index,key:w,type:y.type||"item"}):y.type==="group"?m.createElement(f,{...Ur(f,i),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,key:w,style:{...vle,top:a}},c(y.index,i)):m.createElement(p,{...Ur(p,i),...gle(p,y.data),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,"data-item-group-index":y.groupIndex,key:w,style:e?{...vle,top:a+_}:sKe},s?l(y.index,y.groupIndex,y.data,i):l(y.index,y.data,i))});return u.jsx(u.Fragment,{children:x})}),lKe=Pe.memo(function(){const e=Qt("listState"),t=Qt("topItemsIndexes").length>0,n=fu("sizeRanges"),r=Qt("useWindowScroll"),i=Qt("customScrollParent"),o=fu("windowScrollContainerState"),a=fu("scrollContainerState"),s=i||r?o:a,l=Qt("trackItemSizes"),c=Qt("itemSize"),d=Qt("log"),{callbackRef:f,ref:p}=Ose(n,c,l,s,d,void 0,i,!1,Qt("skipAnimationFrameInResizeObserver")),[v,x]=Pe.useState(0);bR("deviation",M=>{v!==M&&(p.current.style.marginTop=`${M}px`,x(M))});const y=Qt("EmptyPlaceholder"),b=Qt("FillerRow")||aKe,w=Qt("TableBodyComponent"),_=Qt("paddingTopAddition"),S=Qt("statefulTotalCount"),C=Qt("context");if(S===0&&y)return u.jsx(y,{...Ur(y,C)});const j=(t?e.topItems:[]).reduce((M,O)=>M+O.size,0),T=e.offsetTop+_+v-j,E=e.offsetBottom,$=T>0?u.jsx(b,{context:C,height:T},"padding-top"):null,D=E>0?u.jsx(b,{context:C,height:E},"padding-bottom"):null;return u.jsxs(w,{"data-testid":"virtuoso-item-list",ref:f,...Ur(w,C),children:[$,t&&u.jsx(yle,{showTopList:!0}),u.jsx(yle,{}),D]})}),uKe=({children:e})=>{const t=Pe.useContext(z6),n=fu("viewportHeight"),r=fu("fixedItemHeight"),i=ic(Pe.useMemo(()=>_x(n,o=>du(o,"height")),[n]),!0,Qt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:i,style:r1(!1),children:e})},cKe=({children:e})=>{const t=Pe.useContext(z6),n=fu("windowViewportRect"),r=fu("fixedItemHeight"),i=Qt("customScrollParent"),o=XM(n,i,Qt("skipAnimationFrameInResizeObserver"));return Pe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(!1),children:e})},dKe=Pe.memo(function(e){const t=Qt("useWindowScroll"),n=Qt("customScrollParent"),r=fu("fixedHeaderHeight"),i=fu("fixedFooterHeight"),o=Qt("fixedHeaderContent"),a=Qt("fixedFooterContent"),s=Qt("context"),l=ic(Pe.useMemo(()=>_x(r,w=>du(w,"height")),[r]),!0,Qt("skipAnimationFrameInResizeObserver")),c=ic(Pe.useMemo(()=>_x(i,w=>du(w,"height")),[i]),!0,Qt("skipAnimationFrameInResizeObserver")),d=n||t?pKe:hKe,f=n||t?cKe:uKe,p=Qt("TableComponent"),v=Qt("TableHeadComponent"),x=Qt("TableFooterComponent"),y=o?u.jsx(v,{ref:l,style:{position:"sticky",top:0,zIndex:2},...Ur(v,s),children:o()},"TableHead"):null,b=a?u.jsx(x,{ref:c,style:{bottom:0,position:"sticky",zIndex:1},...Ur(x,s),children:a()},"TableFoot"):null;return u.jsx(d,{...e,...Ur(d,s),children:u.jsx(f,{children:u.jsxs(p,{style:{borderSpacing:0,overflowAnchor:"none"},...Ur(p,s),children:[y,u.jsx(lKe,{},"TableBody"),b]})})})}),{Component:fKe,useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}=cR(iKe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},dKe),hKe=mR({useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}),pKe=gR({useEmitter:bR,useEmitterValue:Qt,usePublisher:fu}),mKe=fKe,ble={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},gKe={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:xle,floor:D6,max:$x,min:xR,round:_le}=Math;function wle(e,t,n){return Array.from({length:t-e+1}).map((r,i)=>({data:n===null?null:n[i+e],index:i+e}))}function vKe(e){return{...gKe,items:e}}function A6(e,t){return e&&e.width===t.width&&e.height===t.height}function yKe(e,t){return e&&e.column===t.column&&e.row===t.row}const bKe=Ln(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:i,headerHeight:o,scrollBy:a,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:f},p,v,{didMount:x,propsReady:y},{customScrollParent:b,useWindowScroll:w,windowScrollContainerState:_,windowScrollTo:S,windowViewportRect:C},j])=>{const T=Ye(0),E=Ye(0),$=Ye(ble),D=Ye({height:0,width:0}),M=Ye({height:0,width:0}),O=kn(),te=kn(),q=Ye(0),P=Ye(null),X=Ye({column:0,row:0}),A=kn(),Y=kn(),F=Ye(!1),H=Ye(0),ee=Ye(!0),ce=Ye(!1),B=Ye(!1);qn(Be(x,cn(H),zt(([ue,re])=>!!re)),()=>{Jt(ee,!1)}),qn(Be(Pi(x,ee,M,D,H,ce),zt(([ue,re,ge,$e,,pe])=>ue&&!re&&ge.height!==0&&$e.height!==0&&!pe)),([,,,,ue])=>{Jt(ce,!0),oR(1,()=>{Jt(O,ue)}),uu(Be(c),()=>{Jt(t,[0,0]),Jt(ee,!0)})}),yt(Be(Y,zt(ue=>ue!=null&&ue.scrollTop>0),nc(0)),E),qn(Be(x,cn(Y),zt(([,ue])=>ue!=null)),([,ue])=>{ue&&(Jt(D,ue.viewport),Jt(M,ue.item),Jt(X,ue.gap),ue.scrollTop>0&&(Jt(F,!0),uu(Be(c,Ap(1)),re=>{Jt(F,!1)}),Jt(l,{top:ue.scrollTop})))}),yt(Be(D,lt(({height:ue})=>ue)),f),yt(Be(Pi(Lt(D,A6),Lt(M,A6),Lt(X,(ue,re)=>ue&&ue.column===re.column&&ue.row===re.row),Lt(c)),lt(([ue,re,ge,$e])=>({gap:ge,item:re,scrollTop:$e,viewport:ue}))),A),yt(Be(Pi(Lt(T),r,Lt(X,yKe),Lt(M,A6),Lt(D,A6),Lt(P),Lt(E),Lt(F),Lt(ee),Lt(H)),zt(([,,,,,,,ue])=>!ue),lt(([ue,[re,ge],$e,pe,ye,Se,Ce,,Ue,Ge])=>{const{column:_t,row:St}=$e,{height:ut,width:ct}=pe,{width:bt}=ye;if(Ce===0&&(ue===0||bt===0))return ble;if(ct===0){const kr=aR(Ge,ue),On=kr+Math.max(Ce-1,0);return vKe(wle(kr,On,Se))}const Qe=kle(bt,ct,_t);let Ke,De;Ue?re===0&&ge===0&&Ce>0?(Ke=0,De=Ce-1):(Ke=Qe*D6((re+St)/(ut+St)),De=Qe*xle((ge+St)/(ut+St))-1,De=xR(ue-1,$x(De,Qe-1)),Ke=xR(De,$x(0,Ke))):(Ke=0,De=-1);const Dt=wle(Ke,De,Se),{bottom:pn,top:Yn}=Sle(ye,$e,pe,Dt),hr=xle(ue/Qe),Kn=hr*ut+(hr-1)*St-pn;return{bottom:pn,itemHeight:ut,items:Dt,itemWidth:ct,offsetBottom:Kn,offsetTop:Yn,top:Yn}})),$),yt(Be(P,zt(ue=>ue!==null),lt(ue=>ue.length)),T),yt(Be(Pi(D,M,$,X),zt(([ue,re,{items:ge}])=>ge.length>0&&re.height!==0&&ue.height!==0),lt(([ue,re,{items:ge},$e])=>{const{bottom:pe,top:ye}=Sle(ue,$e,re,ge);return[ye,pe]}),Fr(Sx)),t);const ae=Ye(!1);yt(Be(c,cn(ae),lt(([ue,re])=>re||ue!==0)),ae);const je=Es(Be(Pi($,T),zt(([{items:ue}])=>ue.length>0),cn(ae),zt(([[ue,re],ge])=>{const $e=ue.items[ue.items.length-1].index===re-1;return(ge||ue.bottom>0&&ue.itemHeight>0&&ue.offsetBottom===0&&ue.items.length===re)&&$e}),lt(([[,ue]])=>ue-1),Fr())),me=Es(Be(Lt($),zt(({items:ue})=>ue.length>0&&ue[0].index===0),nc(0),Fr())),ke=Es(Be(Lt($),cn(F),zt(([{items:ue},re])=>ue.length>0&&!re),lt(([{items:ue}])=>({endIndex:ue[ue.length-1].index,startIndex:ue[0].index})),Fr(Vse),wd(0)));yt(ke,v.scrollSeekRangeChanged),yt(Be(O,cn(D,M,T,X),lt(([ue,re,ge,$e,pe])=>{const ye=Kse(ue),{align:Se,behavior:Ce,offset:Ue}=ye;let Ge=ye.index;Ge==="LAST"&&(Ge=$e-1),Ge=$x(0,Ge,xR($e-1,Ge));let _t=_R(re,pe,ge,Ge);return Se==="end"?_t=_le(_t-re.height+ge.height):Se==="center"&&(_t=_le(_t-re.height/2+ge.height/2)),Ue&&(_t+=Ue),{behavior:Ce,top:_t}})),l);const he=Wo(Be($,lt(ue=>ue.offsetBottom+ue.bottom)),0);return yt(Be(C,lt(ue=>({height:ue.visibleHeight,width:ue.visibleWidth}))),D),{customScrollParent:b,data:P,deviation:q,footerHeight:i,gap:X,headerHeight:o,increaseViewportBy:e,initialItemCount:E,itemDimensions:M,overscan:n,restoreStateFrom:Y,scrollBy:a,scrollContainerState:s,scrollHeight:te,scrollTo:l,scrollToIndex:O,scrollTop:c,smoothScrollTargetReached:d,totalCount:T,useWindowScroll:w,viewportDimensions:D,windowScrollContainerState:_,windowScrollTo:S,windowViewportRect:C,...v,gridState:$,horizontalDirection:B,initialTopMostItemIndex:H,totalListHeight:he,...p,endReached:je,propsReady:y,rangeChanged:ke,startReached:me,stateChanged:A,stateRestoreInProgress:F,...j}},Ar(sR,ga,Nx,sle,ch,uR,uh));function kle(e,t,n){return $x(1,D6((e+n)/(D6(t)+n)))}function Sle(e,t,n,r){const{height:i}=n;if(i===void 0||r.length===0)return{bottom:0,top:0};const o=_R(e,t,n,r[0].index);return{bottom:_R(e,t,n,r[r.length-1].index)+i,top:o}}function _R(e,t,n,r){const i=kle(e.width,n.width,t.column),o=D6(r/i),a=o*n.height+$x(0,o-1)*t.row;return a>0?a+t.row:a}const xKe=Ln(()=>{const e=Ye(f=>`Item ${f}`),t=Ye({}),n=Ye(null),r=Ye("virtuoso-grid-item"),i=Ye("virtuoso-grid-list"),o=Ye(pR),a=Ye("div"),s=Ye(t1),l=(f,p=null)=>Wo(Be(t,lt(v=>v[f]),Fr()),p),c=Ye(!1),d=Ye(!1);return yt(Lt(d),c),{components:t,computeItemKey:o,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:a,itemClassName:r,ItemComponent:l("Item","div"),itemContent:e,listClassName:i,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),_Ke=Ln(([e,t])=>({...e,...t}),Ar(bKe,xKe)),wKe=Pe.memo(function(){const e=Kr("gridState"),t=Kr("listClassName"),n=Kr("itemClassName"),r=Kr("itemContent"),i=Kr("computeItemKey"),o=Kr("isSeeking"),a=gl("scrollHeight"),s=Kr("ItemComponent"),l=Kr("ListComponent"),c=Kr("ScrollSeekPlaceholder"),d=Kr("context"),f=gl("itemDimensions"),p=gl("gap"),v=Kr("log"),x=Kr("stateRestoreInProgress"),y=gl("reportReadyState"),b=ic(Pe.useMemo(()=>w=>{const _=w.parentElement.parentElement.scrollHeight;a(_);const S=w.firstChild;if(S){const{height:C,width:j}=S.getBoundingClientRect();f({height:C,width:j})}p({column:jle("column-gap",getComputedStyle(w).columnGap,v),row:jle("row-gap",getComputedStyle(w).rowGap,v)})},[a,f,p,v]),!0,!1);return dle(()=>{e.itemHeight>0&&e.itemWidth>0&&y(!0)},[e]),x?null:u.jsx(l,{className:t,ref:b,...Ur(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(w=>{const _=i(w.index,w.data,d);return o?u.jsx(c,{...Ur(c,d),height:e.itemHeight,index:w.index,width:e.itemWidth},_):m.createElement(s,{...Ur(s,d),className:n,"data-index":w.index,key:_},r(w.index,w.data,d))})})}),kKe=Pe.memo(function(){const e=Kr("HeaderComponent"),t=gl("headerHeight"),n=Kr("headerFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Kr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),SKe=Pe.memo(function(){const e=Kr("FooterComponent"),t=gl("footerHeight"),n=Kr("headerFooterTag"),r=ic(Pe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Kr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Ur(e,i)})}):null}),CKe=({children:e})=>{const t=Pe.useContext(cle),n=gl("itemDimensions"),r=gl("viewportDimensions"),i=ic(Pe.useMemo(()=>o=>{r(o.getBoundingClientRect())},[r]),!0,!1);return Pe.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),u.jsx("div",{ref:i,style:r1(!1),children:e})},jKe=({children:e})=>{const t=Pe.useContext(cle),n=gl("windowViewportRect"),r=gl("itemDimensions"),i=Kr("customScrollParent"),o=XM(n,i,!1);return Pe.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),u.jsx("div",{ref:o,style:r1(!1),children:e})},TKe=Pe.memo(function({...e}){const t=Kr("useWindowScroll"),n=Kr("customScrollParent"),r=n||t?EKe:IKe,i=n||t?jKe:CKe,o=Kr("context");return u.jsx(r,{...e,...Ur(r,o),children:u.jsxs(i,{children:[u.jsx(kKe,{}),u.jsx(wKe,{}),u.jsx(SKe,{})]})})}),{useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl}=cR(_Ke,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},TKe),IKe=mR({useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl}),EKe=gR({useEmitter:Cle,useEmitterValue:Kr,usePublisher:gl});function jle(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Va.WARN),t==="normal"?0:parseInt(t??"0",10)}const NKe="_digit_1rfzd_1",$Ke="_hidden_1rfzd_5",MKe="_selection-text_1rfzd_10",wR={digit:NKe,hidden:$Ke,selectionText:MKe};function RKe(){const[e,t]=m.useState(()=>document.visibilityState==="visible");return m.useEffect(()=>{const n=()=>{t(document.visibilityState==="visible")};return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}const LKe=20;function Mx(e){return RKe()?u.jsx(OKe,{...e}):null}function PKe(e,t){const{start:n,target:r}=t;return{start:n,target:r,maxDigitsSeen:Math.max(e.maxDigitsSeen,kR(n),kR(r))}}function OKe({value:e,animationDurationMs:t=150,height:n,className:r,containerRowJustify:i}){const[o,a]=m.useReducer(PKe,{start:e,target:e,maxDigitsSeen:kR(e)}),{start:s,target:l,maxDigitsSeen:c}=o,[d,f]=m.useState(e),[p,v]=m.useState(()=>{const T=Ile(e).reverse(),E=Array.from({length:T.length});return{digits:T,animations:E}}),x=l>s?"incr":"decr",{stepDurationMs:y,shouldJumpToTarget:b}=m.useMemo(()=>{const T=Math.abs(l-s),E=Math.trunc(t/T);return E{const T=d===l||b?l:x==="incr"?d+1:d-1;return{number:T,paddedDigits:Ile(T,c)}},[d,x,c,b,l]),_=m.useCallback((T,E)=>{v($=>{const D=[...$.animations];return D[E]=T,{...$,animations:D}})},[]),S=m.useCallback((T,E)=>{v($=>{const D=[...$.digits],M=[...$.animations];D[E]=T,M[E]=void 0;const O={digits:D,animations:M};return parseInt([...O.digits].reverse().join(""),10)===Math.abs(w.number)&&f(w.number),O})},[w.number]),C=m.useMemo(()=>p.animations.some(T=>!!T),[p.animations]);m.useLayoutEffect(()=>{e===l||C||a({start:d,target:e})},[d,C,w.number,l,e]);const j=m.useMemo(()=>{if(n!=null)return{height:`${n}px`}},[n]);return u.jsxs(W,{position:"relative",justify:i,children:[u.jsx(Z,{className:Te(r,wR.selectionText),style:j,children:d}),u.jsxs(W,{height:"100%",position:"absolute",inert:"true",children:[w.number<0&&u.jsx(Z,{className:r,children:"-"}),w.paddedDigits.map((T,E)=>{const $=w.paddedDigits.length-1-E;return u.jsx(zKe,{idxFromBack:$,currentDigit:p.digits[$],nextDigit:T,direction:x,animation:p.animations[$],pauseNextAnimation:l!==e,animationDurationMs:y,onAnimationStart:_,onAnimationCompleted:S,className:r},$)})]})]})}function zKe({idxFromBack:e,currentDigit:t,nextDigit:n,direction:r,animation:i,pauseNextAnimation:o,onAnimationStart:a,onAnimationCompleted:s,animationDurationMs:l,className:c}){const d=m.useRef(null),f=m.useRef(null);return m.useLayoutEffect(()=>{if(i||o||t===n)return;const p=d.current;if(!p)return;const v=p.animate(r==="incr"?[{transform:"translateY(-50%)"},{transform:"translateY(0px)"}]:[{transform:"translateY(0px)"},{transform:"translateY(-50%)"}],{duration:l,easing:"ease-in-out",fill:"forwards"});f.current=v,a(v,e),v.finished.catch(()=>{}).finally(()=>{f.current=null,s(n,e)})},[l,t,n,r,e,o,s,i,a]),Og(()=>{var p;(p=f.current)==null||p.cancel()}),u.jsx(Mt,{height:"100%",overflowY:"hidden",children:u.jsxs(W,{ref:d,height:"200%",direction:"column",children:[u.jsx(Tle,{className:c,digit:r==="incr"?n:t}),u.jsx(Tle,{className:c,digit:r==="incr"?t:n})]})})}function Tle({digit:e,className:t}){return u.jsx(Z,{className:Te(t,wR.digit,{[wR.hidden]:e==null}),children:e})}function Ile(e,t){const n=Math.abs(e).toString().split("").map(i=>parseInt(i,10));if(t==null)return n;const r=Math.max(0,t-n.length);return[...Array(r).fill(null),...n]}function kR(e){return Math.abs(e).toString().length}const DKe="_container_zkl3s_1",AKe="_added_zkl3s_6",FKe="_removed_zkl3s_10",SR={container:DKe,added:AKe,removed:FKe},UKe=`Last ${_re/6e4}m`;function Ele({isOffline:e}){const t=J(yDe);return u.jsxs(W,{className:SR.container,align:"center",gap:"5px",children:[u.jsx(Z,{children:UKe}),u.jsxs(Z,{className:SR.added,children:["+",e?t.offline:t.online]}),u.jsxs(Z,{className:SR.removed,children:["-",e?t.online:t.offline]})]})}const Nle="16px",CR=33,$le="15px";function BKe({isStacked:e}){var j;const[t,{width:n}]=Ss(),r=n<496,i=!r&&n<642,o=r?"xnarrow":i?"narrow":"wide",[a,s]=m.useState(!0),[l,c]=m.useState(!0),d=J(QN),f=J(wre),p=J(_De),v=m.useCallback((T,E)=>{var M,O;const $=(M=d==null?void 0:d.get(T))==null?void 0:M[0],D=(O=d==null?void 0:d.get(E))==null?void 0:O[0];return $==null&&D==null?0:$==null?1:D==null?-1:$===D?0:$[...p].sort(v),[p,v]),y=m.useMemo(()=>[...f].sort(v),[f,v]),b=(j=J(Hl))==null?void 0:j.wait_for_supermajority_total_stake,w=m.useCallback(T=>x[T],[x]),_=m.useCallback(T=>{const E=w(T),[$,D]=(d==null?void 0:d.get(E))??[];return u.jsx(Rle,{pubkey:E,lamportsStake:$,info:D,totalStake:b,isOffline:!0,size:o})},[w,o,d,b]),S=m.useCallback(T=>y[T],[y]),C=m.useCallback(T=>{const E=S(T),[$,D]=(d==null?void 0:d.get(E))??[];return u.jsx(Rle,{pubkey:E,lamportsStake:$,info:D,totalStake:b,size:o})},[S,o,d,b]);return u.jsx(W,{ref:t,className:Te(un.container,e?un.vertical:un.horizontal),style:{"--row-height":`${CR}px`},children:u.jsxs(so,{className:Te(wi.card,un.tableCard,{[un.narrow]:i,[un.xnarrow]:r}),children:[u.jsxs(F6,{size:o,flexShrink:"0",className:un.headerRow,children:[u.jsx(o1,{size:o,className:un.peer,children:"Peer"}),u.jsx(o1,{size:o,className:un.status,children:"Status"}),u.jsx(o1,{size:o,className:un.pubkey,children:"Pubkey"}),u.jsx(o1,{size:o,className:un.version,children:"Version"}),u.jsx(o1,{size:o,className:un.stake,children:"Stake (SOL)"}),u.jsx(o1,{size:o,className:un.stakePct,children:"Stake %"})]}),u.jsx(F6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.offline),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":a,"aria-controls":"supermajority-offline-rows",onClick:()=>s(T=>!T),children:[u.jsx(Mle,{isExpanded:a}),u.jsxs(W,{align:"center",gap:$le,children:[u.jsxs(W,{align:"center",gap:"1",children:[u.jsx(Mx,{value:p.size}),u.jsx(Z,{children:"Nodes Offline"})]}),u.jsx(Ele,{isOffline:!0})]})]})}),u.jsx(Mt,{display:a?void 0:"none",className:un.rowsContainer,id:"supermajority-offline-rows",children:u.jsx(yR,{totalCount:x.length,fixedItemHeight:CR,computeItemKey:w,itemContent:_})}),u.jsx(F6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.online),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":l,"aria-controls":"supermajority-online-rows",onClick:()=>c(T=>!T),children:[u.jsx(Mle,{isExpanded:l}),u.jsxs(W,{align:"center",gap:$le,children:[u.jsxs(W,{align:"center",gap:"1",children:[u.jsx(Mx,{value:f.size}),u.jsx(Z,{children:"Nodes Online"})]}),u.jsx(Ele,{})]})]})}),u.jsx(Mt,{id:"supermajority-online-rows",display:l?void 0:"none",className:un.rowsContainer,children:u.jsx(yR,{totalCount:y.length,fixedItemHeight:CR,computeItemKey:S,itemContent:C})})]})})}function Mle({isExpanded:e}){const t=e?Hie:qFe;return u.jsx(t,{height:Nle,width:Nle,color:"white"})}const F6=m.forwardRef(function({size:e,className:t,...n},r){return u.jsx(W,{ref:r,className:Te(un.row,un[e],t),...n})});function Rle({pubkey:e,lamportsStake:t,info:n,totalStake:r,isOffline:i=!1,size:o}){return u.jsxs(F6,{size:o,className:i?un.offline:un.online,children:[u.jsx(WKe,{name:n==null?void 0:n.name,iconUrl:ire(n),size:o}),u.jsx(VKe,{isOffline:i,size:o}),u.jsx(HKe,{pubkey:e,size:o}),u.jsx(ZKe,{pubkey:e,size:o}),u.jsx(qKe,{lamportsStake:t,size:o}),u.jsx(GKe,{lamportsStake:t,totalStake:r,size:o})]})}function i1({children:e,className:t,size:n}){return u.jsx(W,{align:"center",className:Te(un.cell,un[n],t),children:e})}function o1({children:e,className:t,size:n}){return u.jsx(W,{align:"center",className:Te(un.cell,un.header,un[n],t),children:u.jsx(Z,{truncate:!0,children:e})})}function WKe({name:e,iconUrl:t,size:n}){return u.jsxs(i1,{size:n,className:un.peer,children:[u.jsx(ks,{url:t,size:16}),u.jsx(Z,{truncate:!0,children:e??"-"})]})}function VKe({isOffline:e=!1,size:t}){const n=e?aGe:oGe;return u.jsxs(i1,{size:t,className:Te(un.status),children:[u.jsx(n,{height:12,width:12,fill:"currentColor"}),t==="wide"&&u.jsx(Z,{truncate:!0,children:e?"Offline":"Online"})]})}function HKe({pubkey:e,size:t}){return u.jsx(i1,{size:t,className:un.pubkey,children:u.jsx(Dg,{value:e,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(Z,{truncate:!0,className:un.pubkeyText,children:e})})})}function ZKe({pubkey:e,size:t}){const n=Hk(e),{version:r,client:i}=zM(n);return u.jsxs(i1,{size:t,className:Te(un.version),children:[u.jsx(W,{width:"37px",flexShrink:"0",children:u.jsx(Nse,{client:i,size:"xlarge",showPlaceholder:!0,className:un.clientIcon,placeholderClassName:un.clientIconPlaceholder})}),t!=="xnarrow"&&u.jsx(Z,{truncate:!0,children:r?`v${r}`:"-"})]})}function qKe({lamportsStake:e,size:t}){const n=ZM(e);return u.jsx(i1,{size:t,className:un.stake,children:u.jsxs(Z,{children:[u.jsx(Z,{children:(n==null?void 0:n.formatted)??"-"}),(n==null?void 0:n.suffix)&&u.jsxs(Z,{className:un.suffix,children:[" ",n.suffix]})]})})}const Lle=2;function GKe({lamportsStake:e,totalStake:t,size:n}){const r=YGe(e,t,Lle);return u.jsx(i1,{size:n,className:un.stakePct,children:u.jsxs(Z,{children:[u.jsx(Z,{children:r===void 0?"-":r.toFixed(Lle)}),r!==void 0&&u.jsx(Z,{className:un.suffix,children:" %"})]})})}const YKe="data:image/svg+xml,%3csvg%20width='12'%20height='11'%20viewBox='0%200%2012%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2011H12L6.0482%200L0%2011Z'%20fill='%23F29D83'/%3e%3c/svg%3e";function KKe(){const e=J(Hl),t=e==null?void 0:e.wait_for_supermajority_total_stake,n=e==null?void 0:e.wait_for_supermajority_connected_stake,r=t&&n?rt.clamp(Number(n)/Number(t),0,1):0,i=m.useMemo(()=>ZM(t),[t]),o=ZM(n);return e?u.jsxs(W,{height:"100%",maxWidth:"100%",position:"relative",align:"center",justify:"center",className:wi.pieChart,children:[u.jsx("div",{className:wi.shimmer}),u.jsx("div",{className:wi.overlay,style:{"--progress-pct":`${Math.round(r*100)}%`}}),u.jsxs(W,{direction:"column",position:"absolute",height:"50%",width:"0px",bottom:"0",left:"50%",align:"center",className:wi.thresholdMarker,gap:"1px",children:[u.jsx(Mt,{className:wi.markerLine,height:"100%",flexShrink:"0"}),u.jsx("img",{className:wi.markerIcon,src:YKe,alt:"80% supermajority pointer"})]}),u.jsxs(W,{direction:"column",position:"relative",height:"70%",width:"70%",align:"center",justify:"center",gapY:"4%",className:wi.pieChartContent,children:[u.jsxs(Z,{children:[u.jsx(Z,{weight:"bold",className:wi.lg,children:(r*100).toFixed(2)}),u.jsx(Z,{weight:"bold",className:wi.secondaryColor,children:" %"}),u.jsx(Z,{className:wi.lg,children:" / "}),u.jsx(Z,{weight:"bold",className:Te(wi.lg,wi.eighty),children:"80"}),u.jsx(Z,{weight:"bold",color:"bronze",children:" %"})]}),u.jsxs(Z,{children:[(o==null?void 0:o.formatted)??"--",(o==null?void 0:o.suffix)&&u.jsxs(Z,{className:wi.secondaryColor,children:[" ",o.suffix]})," / ",u.jsx(Z,{children:(i==null?void 0:i.formatted)??"--"}),(i==null?void 0:i.suffix)&&u.jsxs(Z,{className:wi.secondaryColor,children:[" ",i.suffix]})]})]})]}):null}function XKe(){const e=J(Hl),t=J(nee);if(!e)return null;const n=e.wait_for_supermajority_attempt,r=e.loading_incremental_snapshot_read_path??e.loading_full_snapshot_read_path;return u.jsxs(W,{flexShrink:"0",direction:"column",width:"100%",className:wi.detailsBox,gapY:"10px",children:[u.jsxs(W,{gapX:"8px",justify:"between",children:[u.jsx(Rx,{label:"Slot",value:t==null?void 0:t.toString()}),u.jsx(Rx,{label:"Shred Version",value:e.wait_for_supermajority_shred_version}),u.jsx(Rx,{label:"Forked",value:n==null?void 0:xFe(n)})]}),u.jsx(Rx,{label:"Bank Hash",value:e.wait_for_supermajority_bank_hash,allowCopy:!0}),u.jsx(Rx,{label:"Snapshot Source",value:r,wrap:!0,valueClassName:wi.snapshotSource,allowCopy:!0})]})}function Rx({label:e,value:t,wrap:n=!1,valueClassName:r,allowCopy:i=!1}){return u.jsxs(W,{direction:"column",gap:"3px",children:[u.jsx(Z,{className:wi.label,children:e}),u.jsx(Dg,{className:wi.copyButton,value:i&&t?t:void 0,color:"white",size:"12px",hideIconUntilHover:!0,children:u.jsx(Z,{className:r,truncate:!n,children:t??"--"})})]})}const Ple="400px",jR="24px",Ole="50px";function JKe(){var i;const e=Hn("(max-width: 1025px)"),t=J(Hl),n=(i=J(QQ))==null?void 0:i.completionFraction;if(!t||!n)return null;const r=1-.01/n;return u.jsxs(u.Fragment,{children:[u.jsx(Q$,{phaseCompleteFraction:r,overallCompleteFraction:.99,showLoadingIcon:!0}),u.jsxs(W,{flexGrow:"1",mt:e?"18px":"36px",direction:e?"column-reverse":"row",justify:e?"end":"center",align:"stretch",gap:e?jR:Ole,minHeight:"0",children:[u.jsx(BKe,{isStacked:e}),u.jsxs(W,{direction:"column",align:"center",width:e?"100%":void 0,minWidth:"300px",maxWidth:e?void 0:Ple,flexBasis:"30%",flexGrow:e?"0":"1",flexShrink:"1",children:[u.jsx(Z,{className:wi.pieChartTitle,children:"Stake Online"}),u.jsx(W,{className:wi.pieChartContainer,mt:e?"4px":"8px",maxHeight:Ple,justify:"center",children:u.jsx(KKe,{})}),u.jsx(Mt,{height:e?jR:void 0,minHeight:jR,maxHeight:Ole,flexGrow:"1"}),u.jsx(XKe,{})]})]})]})}const QKe={[wn.joining_gossip]:yd.gossip,[wn.loading_full_snapshot]:yd.fullSnapshot,[wn.loading_incremental_snapshot]:yd.incrSnapshot,[wn.catching_up]:yd.catchingUp,[wn.waiting_for_supermajority]:yd.supermajority};function eXe(){const e=Ee(ol),t=J(Gu);return m.useEffect(()=>{e(t!=="running")},[e,t]),u.jsxs(u.Fragment,{children:[t&&u.jsx(tXe,{phase:t}),u.jsx(HBe,{})]})}function tXe({phase:e}){const t=Ee(dre),n=J(ol),r=J(W3),i=e?QKe[e]:"",o=Hn("(max-width: 750px)");return u.jsxs(W,{direction:"column",ref:a=>t(a),overflowY:"auto",className:Te(yd.container,i,{[yd.collapsed]:!n||!r}),children:[u.jsx(foe,{isStartup:!0}),u.jsxs(W,{flexGrow:"1",direction:"column",width:"100%",maxWidth:Zte,minHeight:"0",mx:"auto",px:o?"20px":"89px",children:[(e===wn.loading_full_snapshot||e===wn.loading_incremental_snapshot)&&u.jsx(tVe,{}),e===wn.catching_up&&u.jsx(Uqe,{}),e===wn.waiting_for_supermajority&&u.jsx(JKe,{}),u.jsx(Mt,{pb:"20px"})]})]})}function nXe({children:e}){const t=J(ol);return Vi?u.jsxs(u.Fragment,{children:[u.jsx(eXe,{}),u.jsx("div",{children:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(XAe,{}),u.jsx("div",{className:Te(Iie.container,{[Iie.blur]:t}),children:e})]})}const rXe="_container_1i8oq_1",iXe="_toast_1i8oq_10",oXe="_disconnected_1i8oq_19",aXe="_connecting_1i8oq_29",sXe="_text_1i8oq_39",Lx={container:rXe,toast:iXe,disconnected:oXe,connecting:aXe,text:sXe};var ac=(e=>(e.Disconnected="disconnected",e.Connecting="connecting",e.Connected="connected",e))(ac||{});const TR=fe(ac.Disconnected),zle={opacity:0,top:-100},lXe={opacity:1,top:18};function Dle(e,t){if(e)return e===ac.Disconnected?{className:Lx.disconnected,text:"validator disconnected."}:e===ac.Connecting?{className:Lx.connecting,text:"validator connecting..."}:Dle(t)}function uXe(){const e=J(TR),t=ox(e),[n,r]=m.useState(!0);ix(()=>{setTimeout(()=>r(!1),3e3)});const[i,o]=ex(()=>({from:zle}));m.useEffect(()=>{n||(e===ac.Connecting||e===ac.Disconnected?o.start({to:lXe}):o.start({to:zle}))},[o,n,e]);const a=Dle(e,t);if(a)return u.jsx(iu.div,{className:Lx.container,style:i,children:u.jsx("div",{className:`${Lx.toast} ${a.className}`,children:u.jsx(Z,{className:Lx.text,children:a.text})})})}const cXe="_slots-list_1sk8v_1",dXe="_hidden_1sk8v_3",fXe="_no-slots-text_1sk8v_8",IR={slotsList:cXe,hidden:dXe,noSlotsText:fXe},hXe="_slot-group-container_1sejw_1",pXe="_slot-group_1sejw_1",mXe="_left-column_1sejw_14",gXe="_future_1sejw_20",vXe="_you_1sejw_28",yXe="_current_1sejw_36",bXe="_slot-name_1sejw_43",xXe="_skipped_1sejw_47",_Xe="_current-slot-row_1sejw_57",wXe="_past_1sejw_63",kXe="_processed_1sejw_74",SXe="_selected_1sejw_87",CXe="_ellipsis_1sejw_105",jXe="_slot-item-content_1sejw_111",TXe="_placeholder_1sejw_119",IXe="_slot-statuses_1sejw_123",EXe="_slot-status_1sejw_123",NXe="_slot-status-progress_1sejw_132",$Xe="_tall_1sejw_142",MXe="_short_1sejw_149",RXe="_scroll-slots-placeholder_1sejw_173",LXe="_shimmer_1sejw_184",PXe="_absolute-full-size_1sejw_176",OXe="_scroll-placeholder-item_1sejw_197",on={slotGroupContainer:hXe,slotGroup:pXe,leftColumn:mXe,future:gXe,you:vXe,current:yXe,slotName:bXe,skipped:xXe,currentSlotRow:_Xe,past:wXe,processed:kXe,selected:SXe,ellipsis:CXe,slotItemContent:jXe,placeholder:TXe,slotStatuses:IXe,slotStatus:EXe,slotStatusProgress:NXe,tall:$Xe,short:MXe,scrollSlotsPlaceholder:RXe,shimmer:LXe,absoluteFullSize:PXe,scrollPlaceholderItem:OXe},Px=m.memo(function({slot:e,size:t}){const{client:n}=ma(e);return u.jsx(Nse,{client:n,size:t})}),zXe=Gf(e=>fe(t=>{var r;const n=_i(e);for(let i=0;i<$n;i++)if((r=t(KN(n+i)))!=null&&r.skipped)return!0;return!1}),{maxSize:500});function ER(e){return J(zXe(e))}const Ale=fe(!1);function Ox({showNowIfCurrent:e,durationOptions:t}){const n=J(gre),r=J(Rb),i=J(uDe),o=r??i,a=J(oo),s=J(cDe),l=J(Eg),[c,d]=m.useState(a);rx(()=>{d(v=>{if(!a)return v;if(!v)return a;const x=v-a;return x>10?v-Math.trunc(x/2):x>4?v:x<-4?v-Math.trunc(x/2):v+1})},l);const f=m.useMemo(()=>{if(!(o==null||c==null))return fn.fromMillis(l*(o-c)).rescale()},[c,o,l]),p=m.useMemo(()=>{if(n==null||o==null||c==null)return;const v=o-n,x=(c-n)/v*100;return x<0||x>100?0:x},[c,o,n]);return e&&s?{progressSinceLastLeader:100,nextSlotText:"Now",nextLeaderSlot:a}:{progressSinceLastLeader:p??0,nextSlotText:kp(f,t),nextLeaderSlot:o}}const DXe="_progress_51hag_1",AXe={progress:DXe};function a1({width:e="100%",height:t="3px",style:n,className:r,variant:i="soft",...o}){return u.jsx(N4,{className:Te(AXe.progress,r),style:{width:e,height:t,...n},variant:i,...o})}function FXe(e){return J(Ale)?u.jsx("div",{className:on.placeholder}):u.jsx(UXe,{...e})}const Fle=fe(e=>{const t=e(eu),n=e(Xf);if(!e(ao)||t===void 0||n===void 0)return;const r=e(Rb);return function(i){return{isCurrentSlotGroup:t<=i&&iMath.ceil(t/46),[t]);return u.jsxs(Mt,{position:"absolute",width:`${e-1}px`,height:`${t}px`,overflow:"hidden",className:on.scrollSlotsPlaceholder,children:[u.jsx("div",{className:Te(on.absoluteFullSize,on.shimmer)}),u.jsx("div",{className:on.absoluteFullSize,children:Array.from({length:n},(r,i)=>u.jsx("div",{className:on.scrollPlaceholderItem},i))})]})});function U6({slot:e,iconSize:t=15}){var o;const{peer:n,isLeader:r,name:i}=ma(e);return u.jsxs(W,{gap:"4px",minWidth:"0",children:[u.jsx(ks,{url:(o=n==null?void 0:n.info)==null?void 0:o.icon_url,size:t,isYou:r,hideTooltip:!0}),u.jsx(Z,{className:Te(on.slotName,on.ellipsis),children:i})]})}function Ble({flag:e,width:t}){return u.jsx(W,{width:t,children:e&&u.jsx(Z,{children:e})})}function zx({firstSlot:e,isCurrentSlot:t=!1,isPastSlot:n=!1}){return u.jsx(W,{className:Te(on.slotStatuses,{[on.tall]:t,[on.short]:!t&&!n}),direction:"column",justify:"between",children:Array.from({length:$n}).map((r,i)=>{const o=e+($n-1)-i;return t?u.jsx(GXe,{slot:o},i):n?u.jsx(YXe,{slot:o},i):u.jsx(NR,{},i)})})}function NR({borderColor:e,backgroundColor:t,slotDuration:n}){return u.jsx(W,{className:on.slotStatus,style:{borderColor:e,backgroundColor:t},children:n&&u.jsx("div",{style:{"--slot-duration":`${n}ms`},className:on.slotStatusProgress})})}function Wle(e){if(!e)return{};if(e.skipped)return{backgroundColor:gk};switch(e.level){case"incomplete":return{};case"completed":return{borderColor:DN};case"optimistically_confirmed":return{backgroundColor:DN};case"finalized":case"rooted":return{backgroundColor:Wne}}}function GXe({slot:e}){const t=J(oo),n=Is(e),r=J(Eg),i=m.useMemo(()=>e===t,[e,t]),o=m.useMemo(()=>i?{borderColor:AN}:Wle(n.publish),[i,n.publish]);return u.jsx(NR,{borderColor:o.borderColor,backgroundColor:o.backgroundColor,slotDuration:i?r:void 0})}function YXe({slot:e}){const t=Is(e),n=J(Cn),r=m.useMemo(()=>{var o,a;const i=Wle(t.publish);return((o=t==null?void 0:t.publish)==null?void 0:o.level)==="rooted"&&!((a=t.publish)!=null&&a.skipped)&&(n===void 0||_i(e)!==_i(n))&&(i.backgroundColor=Vne),i},[t.publish,n,e]);return u.jsx(NR,{borderColor:r.borderColor,backgroundColor:r.backgroundColor})}const KXe="_container_1l1zm_1",XXe="_button_1l1zm_5",Vle={container:KXe,button:XXe};function JXe(){const e=Ee(An),t=J(kDe);return t==="Live"?null:u.jsx("div",{className:Vle.container,children:u.jsxs(hs,{className:Vle.button,style:{zIndex:3},onClick:()=>{e(void 0)},children:[u.jsx(Z,{children:"Skip to RT"}),t==="Past"?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const QXe=m.memo(JXe);function eJe(e){if(!e)return;const t=e.end_slot-e.start_slot+1,n=Math.ceil(t/$n);return{getSlotAtIndex:r=>{if(!(r<0||r>=n))return _i(e.end_slot-r*$n)},getIndexForSlot:r=>{if(!(re.end_slot))return Math.trunc((e.end_slot-r)/$n)},itemsCount:n}}function tJe(e){if(e==null)return;const t=e.reduce((n,r,i)=>(n[r]=e.length-i-1,n),{});return{getSlotAtIndex:n=>e[e.length-n-1],getIndexForSlot:n=>n>=e[e.length-1]?0:t[_i(n)]??e.length-rt.sortedIndex(e,n)-1,itemsCount:e.length}}const nJe=e=>e,rJe={top:24,bottom:0};function iJe({width:e,height:t}){const n=J(Tg),r=J(fi);return r?n===$b.MySlots?u.jsx(uJe,{width:e,height:t},r.epoch):u.jsx(lJe,{width:e,height:t},r.epoch):null}function Hle({width:e,height:t,itemsCount:n,getSlotAtIndex:r,getIndexForSlot:i}){const o=m.useRef(null),a=m.useRef(null),s=m.useRef(null),[l,c]=m.useState(!0),[d,f]=m.useState(!0);m.useEffect(()=>{const _=setTimeout(()=>{c(!1)},100);return()=>clearTimeout(_)},[]);const p=Ee(An),v=Tp(()=>{},100),{rangeChanged:x,scrollSeekConfiguration:y}=m.useMemo(()=>{const _=({startIndex:S})=>{s.current=S+1};return{rangeChanged:_,scrollSeekConfiguration:{enter:S=>Math.abs(S)>1500,exit:S=>Math.abs(S)<500,change:(S,C)=>_(C)}}},[s]);m.useEffect(()=>{if(!o.current)return;const _=o.current,S=rt.throttle(()=>{if(s.current===null)return;v();const j=Math.min(s.current+aN,n-1),T=r(j);p(T)},50,{leading:!0,trailing:!0}),C=()=>{S()};return _.addEventListener("wheel",C),_.addEventListener("touchmove",C),()=>{_.removeEventListener("wheel",C),_.removeEventListener("touchmove",C)}},[r,v,p,n,s]);const b=m.useCallback(_=>{const S=r(_);return S==null?null:u.jsx(FXe,{leaderSlotForGroup:S})},[r]),w=m.useCallback(_=>f(_>=t),[t]);return u.jsxs(Mt,{ref:o,position:"relative",width:`${e}px`,height:`${t}px`,children:[u.jsx(aJe,{listRef:a,getIndexForSlot:i}),u.jsx(sJe,{listRef:a,getIndexForSlot:i,debouncedScroll:v}),d&&u.jsx(qXe,{width:e,height:t}),u.jsx(QXe,{}),u.jsx(yR,{ref:a,className:Te(IR.slotsList,{[IR.hidden]:l}),width:e,height:t,totalCount:n,increaseViewportBy:rJe,defaultItemHeight:42,skipAnimationFrameInResizeObserver:!0,computeItemKey:nJe,itemContent:b,rangeChanged:x,components:{ScrollSeekPlaceholder:oJe},scrollSeekConfiguration:y,totalListHeightChanged:w})]})}const oJe=m.memo(function(){return null}),aJe=m.memo(function({listRef:e,getIndexForSlot:t}){const n=J(eu),r=J(tDe);return m.useEffect(()=>{if(!r||n===void 0||!e.current)return;const i=t(n),o=i?Math.max(0,i-aN):0;e.current.scrollToIndex({index:o,align:"start"})},[r,n,t,e]),null}),sJe=m.memo(function({listRef:e,getIndexForSlot:t,debouncedScroll:n}){const r=m.useRef(null),i=J(An);return m.useEffect(()=>{if(i===void 0||!e.current||n.isPending())return;const o=t(i),a=o?Math.max(0,o-aN):0,s=r.current;return r.current=requestAnimationFrame(()=>{var l;s!==null&&cancelAnimationFrame(s),(l=e.current)==null||l.scrollToIndex({index:a,align:"start"})}),()=>{r.current!==null&&(cancelAnimationFrame(r.current),r.current=null)}},[t,i,e,n]),null});function lJe({width:e,height:t}){const n=J(fi),r=m.useMemo(()=>eJe(n),[n]);return r?u.jsx(Hle,{width:e,height:t,...r}):null}function uJe({width:e,height:t}){const n=J(ao),r=m.useMemo(()=>tJe(n),[n]);return r?r.itemsCount===0?u.jsx(W,{width:`${e}px`,height:`${t}px`,justify:"center",align:"center",children:u.jsxs(Z,{className:IR.noSlotsText,children:["No Slots",u.jsx("br",{}),"Available"]})}):u.jsx(Hle,{width:e,height:t,...r}):null}let vl;typeof window<"u"?vl=window:typeof self<"u"?vl=self:vl=global;let $R=null,MR=null;const Zle=20,RR=vl.clearTimeout,qle=vl.setTimeout,LR=vl.cancelAnimationFrame||vl.mozCancelAnimationFrame||vl.webkitCancelAnimationFrame,Gle=vl.requestAnimationFrame||vl.mozRequestAnimationFrame||vl.webkitRequestAnimationFrame;LR==null||Gle==null?($R=RR,MR=function(e){return qle(e,Zle)}):($R=function([e,t]){LR(e),RR(t)},MR=function(e){const t=Gle(function(){RR(n),e()}),n=qle(function(){LR(t),e()},Zle);return[t,n]});function cJe(e){let t,n,r,i,o,a,s;const l=typeof document<"u"&&document.attachEvent;if(!l){a=function(y){const b=y.__resizeTriggers__,w=b.firstElementChild,_=b.lastElementChild,S=w.firstElementChild;_.scrollLeft=_.scrollWidth,_.scrollTop=_.scrollHeight,S.style.width=w.offsetWidth+1+"px",S.style.height=w.offsetHeight+1+"px",w.scrollLeft=w.scrollWidth,w.scrollTop=w.scrollHeight},o=function(y){return y.offsetWidth!==y.__resizeLast__.width||y.offsetHeight!==y.__resizeLast__.height},s=function(y){if(y.target.className&&typeof y.target.className.indexOf=="function"&&y.target.className.indexOf("contract-trigger")<0&&y.target.className.indexOf("expand-trigger")<0)return;const b=this;a(this),this.__resizeRAF__&&$R(this.__resizeRAF__),this.__resizeRAF__=MR(function(){o(b)&&(b.__resizeLast__.width=b.offsetWidth,b.__resizeLast__.height=b.offsetHeight,b.__resizeListeners__.forEach(function(w){w.call(b,y)}))})};let d=!1,f="";r="animationstart";const p="Webkit Moz O ms".split(" ");let v="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),x="";{const y=document.createElement("fakeelement");if(y.style.animationName!==void 0&&(d=!0),d===!1){for(let b=0;b div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',p=d.head||d.getElementsByTagName("head")[0],v=d.createElement("style");v.id="detectElementResize",v.type="text/css",e!=null&&v.setAttribute("nonce",e),v.styleSheet?v.styleSheet.cssText=f:v.appendChild(d.createTextNode(f)),p.appendChild(v)}};return{addResizeListener:function(d,f){if(l)d.attachEvent("onresize",f);else{if(!d.__resizeTriggers__){const p=d.ownerDocument,v=vl.getComputedStyle(d);v&&v.position==="static"&&(d.style.position="relative"),c(p),d.__resizeLast__={},d.__resizeListeners__=[],(d.__resizeTriggers__=p.createElement("div")).className="resize-triggers";const x=p.createElement("div");x.className="expand-trigger",x.appendChild(p.createElement("div"));const y=p.createElement("div");y.className="contract-trigger",d.__resizeTriggers__.appendChild(x),d.__resizeTriggers__.appendChild(y),d.appendChild(d.__resizeTriggers__),a(d),d.addEventListener("scroll",s,!0),r&&(d.__resizeTriggers__.__animationListener__=function(b){b.animationName===n&&a(d)},d.__resizeTriggers__.addEventListener(r,d.__resizeTriggers__.__animationListener__))}d.__resizeListeners__.push(f)}},removeResizeListener:function(d,f){if(l)d.detachEvent("onresize",f);else if(d.__resizeListeners__.splice(d.__resizeListeners__.indexOf(f),1),!d.__resizeListeners__.length){d.removeEventListener("scroll",s,!0),d.__resizeTriggers__.__animationListener__&&(d.__resizeTriggers__.removeEventListener(r,d.__resizeTriggers__.__animationListener__),d.__resizeTriggers__.__animationListener__=null);try{d.__resizeTriggers__=!d.removeChild(d.__resizeTriggers__)}catch{}}}}}class $s extends m.Component{constructor(...t){super(...t),this.state={height:this.props.defaultHeight||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._didLogDeprecationWarning=!1,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:n,disableWidth:r,onResize:i}=this.props;if(this._parentNode){const o=window.getComputedStyle(this._parentNode)||{},a=parseFloat(o.paddingLeft||"0"),s=parseFloat(o.paddingRight||"0"),l=parseFloat(o.paddingTop||"0"),c=parseFloat(o.paddingBottom||"0"),d=this._parentNode.getBoundingClientRect(),f=d.height-l-c,p=d.width-a-s;if(!n&&this.state.height!==f||!r&&this.state.width!==p){this.setState({height:f,width:p});const v=()=>{this._didLogDeprecationWarning||(this._didLogDeprecationWarning=!0,console.warn("scaledWidth and scaledHeight parameters have been deprecated; use width and height instead"))};typeof i=="function"&&i({height:f,width:p,get scaledHeight(){return v(),f},get scaledWidth(){return v(),p}})}}},this._setRef=n=>{this._autoSizer=n}}componentDidMount(){const{nonce:t}=this.props,n=this._autoSizer?this._autoSizer.parentNode:null;if(n!=null&&n.ownerDocument&&n.ownerDocument.defaultView&&n instanceof n.ownerDocument.defaultView.HTMLElement){this._parentNode=n;const r=n.ownerDocument.defaultView.ResizeObserver;r!=null?(this._resizeObserver=new r(()=>{this._timeoutId=setTimeout(this._onResize,0)}),this._resizeObserver.observe(n)):(this._detectElementResize=cJe(t),this._detectElementResize.addResizeListener(n,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),this._timeoutId!==null&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:t,defaultHeight:n,defaultWidth:r,disableHeight:i=!1,disableWidth:o=!1,doNotBailOutOnEmptyChildren:a=!1,nonce:s,onResize:l,style:c={},tagName:d="div",...f}=this.props,{height:p,width:v}=this.state,x={overflow:"visible"},y={};let b=!1;return i||(p===0&&(b=!0),x.height=0,y.height=p,y.scaledHeight=p),o||(v===0&&(b=!0),x.width=0,y.width=v,y.scaledWidth=v),a&&(b=!1),m.createElement(d,{ref:this._setRef,style:{...x,...c},...f},!b&&t(y))}}function dJe(){const[e,t]=Vl(Tg),n=m.useCallback(r=>{r&&t(r)},[t]);return u.jsx(W,{height:`${cN}px`,width:"100%",children:u.jsxs(M7,{type:"single",value:e,"aria-label":"Slots List Toggle",onValueChange:n,className:Ip.navFilterToggleGroup,children:[u.jsx(B0,{value:$b.AllSlots,"aria-label":"All Slots toggle",tabIndex:0,children:u.jsx(Z,{children:"All Slots"})}),u.jsx(B0,{value:$b.MySlots,"aria-label":"My Slots toggle",tabIndex:0,children:u.jsx(Z,{children:"My Slots"})})]})})}const fJe="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%23FF5353'%3e%3cpath%20d='m48-144%20432-720%20432%20720H48Zm431.79-120q15.21%200%2025.71-10.29t10.5-25.5q0-15.21-10.29-25.71t-25.5-10.5q-15.21%200-25.71%2010.29t-10.5%2025.5q0%2015.21%2010.29%2025.71t25.5%2010.5ZM444-384h72v-192h-72v192Z'/%3e%3c/svg%3e",hJe="data:image/svg+xml,%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.39453%201.5H9.67578V7.32422H5.57422L5.35547%206.17578H2.07422V10.25H0.925781V0.324219H6.17578L6.39453%201.5Z'%20fill='%231DB247'/%3e%3c/svg%3e",pJe="_epoch-progress_niwu5_1",mJe="_clickable_niwu5_8",gJe="_leader-slot_niwu5_12",vJe="_before-start_niwu5_21",yJe="_skipped-slot_niwu5_26",bJe="_skipped-slot-icon_niwu5_36",xJe="_first-processed-slot_niwu5_45",_Je="_first-processed-slot-icon_niwu5_56",wJe="_slider-root_niwu5_65",kJe="_slider-track_niwu5_76",SJe="_slider-thumb_niwu5_82",CJe="_collapsed_niwu5_92",jJe="_tooltip_niwu5_106",TJe="_hide_niwu5_114",IJe="_show_niwu5_123",Yi={epochProgress:pJe,clickable:mJe,leaderSlot:gJe,beforeStart:vJe,skippedSlot:yJe,skippedSlotIcon:bJe,firstProcessedSlot:xJe,firstProcessedSlotIcon:_Je,sliderRoot:wJe,sliderTrack:kJe,sliderThumb:SJe,collapsed:CJe,tooltip:jJe,hide:TJe,show:IJe};function EJe(e,t,n=window){const r=m.useRef(t);m.useEffect(()=>{r.current=t});const i=Rze(e)?e:[e];m.useEffect(()=>{if(!r.current||!n||!n.addEventListener||i.length===0)return;const o=a=>{var s;return(s=r.current)==null?void 0:s.call(r,a)};return i.forEach(a=>n.addEventListener(a,o,{passive:!1})),()=>{i.forEach(a=>n.removeEventListener(a,o,!1))}},[...i,n])}const PR=10800;function Bp({slot:e,epochStartSlot:t,epochEndSlot:n}){if(!e||t===void 0||n===void 0||t===n)return 0;e=Math.min(Math.max(e,t),n);const r=n-t;return(e-t)/r}function NJe(e){return Math.trunc(e*PR)}function $Je(e,t,n){if(e===void 0||t===void 0||n===void 0)return;const r=e/PR,i=n-t;return Math.trunc(i*r)+t}function MJe(e,t){return Bp(t)}function RJe(e,t){if(!e||!t)return 3e3;const n=e.end_slot-e.start_slot;return n<1e4?300:n<5e4?1e3:n<1e5?3e3:n<2e5?5e3:n<3e5?1e4:n<4e5?15e3:3e4}function Yle(e,t){return e.length?e.reduce((n,r,i)=>{if(i===0)return n;const o=n[n.length-1];return Math.abs(r.pct-o.pct)clearTimeout(f.current));const p=m.useCallback(y=>{t(y),d(!0),clearTimeout(f.current),f.current=setTimeout(()=>d(!1),100)},[t]),v=m.useCallback(y=>{const b=$Je(y[0],e==null?void 0:e.start_slot,e==null?void 0:e.end_slot);b!==void 0&&p(b)},[e==null?void 0:e.end_slot,e==null?void 0:e.start_slot,p]),x=Ba(v,100,{trailing:!0});return EJe("pointerup",()=>{i.current=!1,o(!1)}),u.jsx(W,{direction:"column",width:"100%",flexGrow:"1",align:"center",ref:a,children:u.jsxs(KH,{orientation:"vertical",className:Yi.sliderRoot,style:{zIndex:Vf},value:n,onValueChange:y=>{i.current=!0,r(y),x(y),o(!0)},onValueCommit:()=>{i.current=!1,x.flush(),o(!1)},max:PR,children:[u.jsxs(XH,{className:Yi.sliderTrack,children:[u.jsx(zJe,{isSliderChangingValueRef:i,setSliderValue:r},e==null?void 0:e.epoch),u.jsx(WJe,{updateSlot:p,slotHeight:l}),u.jsx(ZJe,{updateSlot:p}),u.jsx(YJe,{updateSlot:p})]}),u.jsx(DJe,{isOpen:c})]})})}function OJe({isSliderChangingValueRef:e,setSliderValue:t}){const n=J(fi),r=J(XN),i=J(eu),o=J(An),a=J(Tg),[s,l]=m.useReducer(MJe,{slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot},Bp),c=m.useMemo(()=>RJe(n,s),[n,s]);return Qu(()=>{m.startTransition(()=>{l({slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot})})},c),m.useEffect(()=>{if(e.current)return;const d=o?Bp({slot:o,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):a===$b.MySlots?Bp({slot:r,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):s,f=NJe(d);t(p=>p[0]===f?p:[f])},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,s,e,t,o,a,r]),u.jsx(Mt,{className:Yi.epochProgress,height:`${s*100}%`})}const zJe=m.memo(OJe);function DJe({isOpen:e}){const t=J(An),{showNav:n}=Fg();return u.jsx(JH,{className:Te(Yi.sliderThumb,{[Yi.collapsed]:!n}),children:u.jsx(Z,{size:"1",className:Te("rt-TooltipContent","rt-TooltipText",Yi.tooltip,e?Yi.show:Yi.hide),children:t})})}const AJe=e=>fe(t=>{const n=t(eu);return e>(n??0)});function FJe({slot:e,pct:t,height:n,updateSlot:r}){const i=J(Xf),o=J(m.useMemo(()=>AJe(e),[e])),a=l=>c=>{c.stopPropagation(),c.preventDefault(),r(l)},s=i?e{if(!n||!(r!=null&&r.length))return;const o=r.map(a=>({slot:a,pct:Bp({slot:a,epochStartSlot:n.start_slot,epochEndSlot:n.end_slot})}));return Yle(o,.005)},[n,r]);return u.jsx(u.Fragment,{children:i==null?void 0:i.map(({slot:o,pct:a})=>u.jsx(UJe,{slot:o,pct:a,height:t,updateSlot:e},o))})}const WJe=m.memo(BJe);function VJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsx(u.Fragment,{children:u.jsx("div",{className:Te(Yi.skippedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e),children:u.jsx("img",{src:fJe,alt:"skipped slot",className:Te(Yi.skippedSlotIcon,Yi.clickable),style:{bottom:"-3px"},onPointerDown:r(e)})})})}function HJe({updateSlot:e}){const t=J(fi),n=J(u3),r=m.useMemo(()=>{if(!t||!(n!=null&&n.length))return;const i=n.map(o=>({slot:o,pct:Bp({slot:o,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})}));return Yle(i,.005)},[t,n]);return u.jsx(u.Fragment,{children:r==null?void 0:r.map(({slot:i,pct:o})=>u.jsx(VJe,{slot:i,pct:o,updateSlot:e},i))})}const ZJe=m.memo(HJe);function qJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{className:Te(Yi.firstProcessedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e)}),u.jsx("img",{src:hJe,alt:"first processed slot",className:Te(Yi.firstProcessedSlotIcon,Yi.clickable),style:{bottom:`calc(${t*100}%)`},onPointerDown:r(e)})]})}function GJe({updateSlot:e}){const t=J(fi),n=J(Xf),r=m.useMemo(()=>{if(!(!n||!t))return Bp({slot:n,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})},[t,n]);return!r||!n?null:u.jsx(qJe,{slot:n,pct:r,updateSlot:e})}const YJe=m.memo(GJe),Kle=kb+Sb;function KJe(){const e=Hn(Vte),{showNav:t,occupyRowWidth:n,showOnlyEpochBar:r}=Fg(),i=t?fN:0,o=m.useMemo(()=>r?Wte:$Le,[r]);return u.jsxs(u.Fragment,{children:[u.jsx(XJe,{}),u.jsx("div",{style:{flexShrink:0,width:n?`${o}px`:"0"},children:u.jsxs(W,{width:t?`${o+i}px`:"0",overflow:t?"visible":"hidden",className:Te("sticky",Ip.slotNavContainer,{[Ip.navBackground]:!r}),style:{zIndex:Vf-1},top:`${Kle}px`,height:`calc(100vh - ${Kle}px)`,ml:`${-i}px`,pl:`${i}px`,pb:"2",children:[u.jsxs(W,{flexShrink:"0",direction:"column",width:`${dN}px`,pt:e?"0":`${cN+Wf}px`,children:[e&&u.jsx("div",{style:{marginBottom:`${Wf}px`},children:u.jsx(V$,{})}),u.jsx(LJe,{})]}),!r&&u.jsxs(W,{ml:`${ck}px`,direction:"column",width:`${hN}px`,flexShrink:"0",gap:`${Wf}px`,children:[u.jsx(dJe,{}),u.jsx(W,{flexGrow:"1",children:u.jsx($s,{children:({height:a,width:s})=>u.jsx(iJe,{width:s,height:a})})})]})]})})]})}function XJe(){const e=Ee(An),t=J(Cn);return m.useEffect(()=>{t!==void 0&&e(t)},[t,e]),null}const JJe=ca(),s1=C9e({component:QJe,beforeLoad:()=>JJe.set(gd.slot,void 0)});function QJe(){const e=J(V3);return u.jsxs(u.Fragment,{children:[u.jsx(uXe,{}),u.jsx(nXe,{children:u.jsxs("div",{id:"scroll-container",style:{position:"relative",height:"100dvh",maxHeight:e?"100vh":"unset",overflowY:e?"hidden":"auto",willChange:"scroll-position",contain:"paint",isolation:"isolate"},children:[u.jsx(foe,{}),u.jsxs(W,{className:"app-width-container",px:"2",position:"relative",children:[u.jsx(KJe,{}),u.jsx(eQe,{})]})]})})]})}function eQe(){const e=Yk()==="Schedule",{setIsNavCollapsed:t,isNarrowScreen:n,occupyRowWidth:r,blurBackground:i}=Fg();return m.useEffect(()=>{t(n)},[n,t]),u.jsxs(Mt,{position:"relative",flexGrow:"1",minWidth:"0",pb:"2",pl:e||!r?"0px":`${uN-Wf}px`,children:[u.jsx(Dq,{}),i&&u.jsx(ioe,{})]})}const tQe="_text_nk1yn_1",nQe={text:tQe};function kd({text:e}){return u.jsx(Z,{className:nQe.text,children:e})}var rQe=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Xle=rQe,iQe=Xle,oQe=typeof self=="object"&&self&&self.Object===Object&&self,aQe=iQe||oQe||Function("return this")(),sc=aQe,sQe=sc,lQe=sQe.Symbol,l1=lQe,Jle=l1,Qle=Object.prototype,uQe=Qle.hasOwnProperty,cQe=Qle.toString,Dx=Jle?Jle.toStringTag:void 0;function dQe(e){var t=uQe.call(e,Dx),n=e[Dx];try{e[Dx]=void 0;var r=!0}catch{}var i=cQe.call(e);return r&&(t?e[Dx]=n:delete e[Dx]),i}var fQe=dQe,hQe=Object.prototype,pQe=hQe.toString;function mQe(e){return pQe.call(e)}var gQe=mQe,eue=l1,vQe=fQe,yQe=gQe,bQe="[object Null]",xQe="[object Undefined]",tue=eue?eue.toStringTag:void 0;function _Qe(e){return e==null?e===void 0?xQe:bQe:tue&&tue in Object(e)?vQe(e):yQe(e)}var Wp=_Qe;function wQe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Sd=wQe,kQe=Wp,SQe=Sd,CQe="[object AsyncFunction]",jQe="[object Function]",TQe="[object GeneratorFunction]",IQe="[object Proxy]";function EQe(e){if(!SQe(e))return!1;var t=kQe(e);return t==jQe||t==TQe||t==CQe||t==IQe}var B6=EQe;const nue=to(B6);var NQe=sc,$Qe=NQe["__core-js_shared__"],MQe=$Qe,OR=MQe,rue=function(){var e=/[^.]+$/.exec(OR&&OR.keys&&OR.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function RQe(e){return!!rue&&rue in e}var LQe=RQe,PQe=Function.prototype,OQe=PQe.toString;function zQe(e){if(e!=null){try{return OQe.call(e)}catch{}try{return e+""}catch{}}return""}var iue=zQe,DQe=B6,AQe=LQe,FQe=Sd,UQe=iue,BQe=/[\\^$.*+?()[\]{}|]/g,WQe=/^\[object .+?Constructor\]$/,VQe=Function.prototype,HQe=Object.prototype,ZQe=VQe.toString,qQe=HQe.hasOwnProperty,GQe=RegExp("^"+ZQe.call(qQe).replace(BQe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function YQe(e){if(!FQe(e)||AQe(e))return!1;var t=DQe(e)?GQe:WQe;return t.test(UQe(e))}var KQe=YQe;function XQe(e,t){return e==null?void 0:e[t]}var JQe=XQe,QQe=KQe,eet=JQe;function tet(e,t){var n=eet(e,t);return QQe(n)?n:void 0}var Vp=tet,net=Vp,ret=net(Object,"create"),W6=ret,oue=W6;function iet(){this.__data__=oue?oue(null):{},this.size=0}var oet=iet;function aet(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var set=aet,uet=W6,cet="__lodash_hash_undefined__",det=Object.prototype,fet=det.hasOwnProperty;function het(e){var t=this.__data__;if(uet){var n=t[e];return n===cet?void 0:n}return fet.call(t,e)?t[e]:void 0}var pet=het,met=W6,get=Object.prototype,vet=get.hasOwnProperty;function yet(e){var t=this.__data__;return met?t[e]!==void 0:vet.call(t,e)}var bet=yet,xet=W6,_et="__lodash_hash_undefined__";function wet(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=xet&&t===void 0?_et:t,this}var ket=wet,Cet=oet,jet=set,Tet=pet,Iet=bet,Eet=ket;function u1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Zet=Het,qet=V6;function Get(e,t){var n=this.__data__,r=qet(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Yet=Get,Ket=Met,Xet=Fet,Jet=Wet,Qet=Zet,ett=Yet;function c1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var sue=Ytt;function Ktt(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=mnt){var c=t?null:hnt(e);if(c)return pnt(c);a=!1,i=fnt,l=new unt}else l=t?[]:s;e:for(;++r0&&f.height>0,b=Math.round(n[0]),w=Math.round(n[1]);y&&(r==="top"?(b-=f.width/2,w-=f.height+14):r==="right"?(b+=14,w-=f.height/2):r==="bottom"?(b-=f.width/2,w+=14):r==="left"?(b-=f.width+14,w-=f.height/2):r==="center"&&(b-=f.width/2,w-=f.height/2),v={transform:hue(b,w)},p.current||(x=!0),p.current=[b,w]);var _=ex({to:v,config:l,immediate:!s||x}),S=Hp({},Tnt,o.tooltip.wrapper,{transform:(t=_.transform)!=null?t:hue(b,w),opacity:_.transform?1:0});return u.jsx(iu.div,{ref:d,style:S,children:i})});pue.displayName="TooltipWrapper";var WR=m.memo(function(e){var t=e.size,n=t===void 0?12:t,r=e.color,i=e.style;return u.jsx("span",{style:Hp({display:"block",width:n,height:n,background:r},i===void 0?{}:i)})}),VR=m.memo(function(e){var t,n=e.id,r=e.value,i=e.format,o=e.enableChip,a=o!==void 0&&o,s=e.color,l=e.renderContent,c=Ms(),d=VL(i);if(typeof l=="function")t=l();else{var f=r;d!==void 0&&f!==void 0&&(f=d(f)),t=u.jsxs("div",{style:c.tooltip.basic,children:[a&&u.jsx(WR,{color:s,style:c.tooltip.chip}),f!==void 0?u.jsxs("span",{children:[n,": ",u.jsx("strong",{children:""+f})]}):n]})}return u.jsx("div",{style:c.tooltip.container,children:t})}),Int={width:"100%",borderCollapse:"collapse"},Ent=m.memo(function(e){var t,n=e.title,r=e.rows,i=r===void 0?[]:r,o=e.renderContent,a=Ms();return i.length?(t=typeof o=="function"?o():u.jsxs("div",{children:[n&&n,u.jsx("table",{style:Hp({},Int,a.tooltip.table),children:u.jsx("tbody",{children:i.map(function(s,l){return u.jsx("tr",{children:s.map(function(c,d){return u.jsx("td",{style:a.tooltip.tableCell,children:c},d)})},l)})})})]}),u.jsx("div",{style:a.tooltip.container,children:t})):null});Ent.displayName="TableTooltip";var HR=m.memo(function(e){var t=e.x0,n=e.x1,r=e.y0,i=e.y1,o=Ms(),a=w1(),s=a.animate,l=a.config,c=m.useMemo(function(){return Hp({},o.crosshair.line,{pointerEvents:"none"})},[o.crosshair.line]),d=ex({x1:t,x2:n,y1:r,y2:i,config:l,immediate:!s});return u.jsx(iu.line,Hp({},d,{fill:"none",style:c}))});HR.displayName="CrosshairLine";var Nnt=m.memo(function(e){var t,n,r=e.width,i=e.height,o=e.type,a=e.x,s=e.y;return o==="cross"?(t={x0:a,x1:a,y0:0,y1:i},n={x0:0,x1:r,y0:s,y1:s}):o==="top-left"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:0,x1:a,y0:s,y1:s}):o==="top"?t={x0:a,x1:a,y0:0,y1:s}:o==="top-right"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:a,x1:r,y0:s,y1:s}):o==="right"?n={x0:a,x1:r,y0:s,y1:s}:o==="bottom-right"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:a,x1:r,y0:s,y1:s}):o==="bottom"?t={x0:a,x1:a,y0:s,y1:i}:o==="bottom-left"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:0,x1:a,y0:s,y1:s}):o==="left"?n={x0:0,x1:a,y0:s,y1:s}:o==="x"?t={x0:a,x1:a,y0:0,y1:i}:o==="y"&&(n={x0:0,x1:r,y0:s,y1:s}),u.jsxs(u.Fragment,{children:[t&&u.jsx(HR,{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}),n&&u.jsx(HR,{x0:n.x0,x1:n.x1,y0:n.y0,y1:n.y1})]})});Nnt.displayName="Crosshair";var mue=m.createContext({showTooltipAt:function(){},showTooltipFromEvent:function(){},hideTooltip:function(){}}),ZR={isVisible:!1,position:[null,null],content:null,anchor:null},gue=m.createContext(ZR),$nt=function(e){var t=m.useState(ZR),n=t[0],r=t[1],i=m.useCallback(function(s,l,c){var d=l[0],f=l[1];c===void 0&&(c="top"),r({isVisible:!0,position:[d,f],anchor:c,content:s})},[r]),o=m.useCallback(function(s,l,c){c===void 0&&(c="top");var d=e.current.getBoundingClientRect(),f=e.current.offsetWidth,p=f===d.width?1:f/d.width,v="touches"in l?l.touches[0]:l,x=v.clientX,y=v.clientY,b=(x-d.left)*p,w=(y-d.top)*p;c!=="left"&&c!=="right"||(c=b-1&&e%1==0&&e<=Vrt}var JR=Hrt,Zrt=B6,qrt=JR;function Grt(e){return e!=null&&qrt(e.length)&&!Zrt(e)}var K6=Grt,Yrt=K6,Krt=lc;function Xrt(e){return Krt(e)&&Yrt(e)}var Nue=Xrt,X6={exports:{}};function Jrt(){return!1}var Qrt=Jrt;X6.exports,function(e,t){var n=sc,r=Qrt,i=t&&!t.nodeType&&t,o=i&&!0&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a?n.Buffer:void 0,l=s?s.isBuffer:void 0,c=l||r;e.exports=c}(X6,X6.exports);var J6=X6.exports,eit=Wp,tit=KR,nit=lc,rit="[object Object]",iit=Function.prototype,oit=Object.prototype,$ue=iit.toString,ait=oit.hasOwnProperty,sit=$ue.call(Object);function lit(e){if(!nit(e)||eit(e)!=rit)return!1;var t=tit(e);if(t===null)return!0;var n=ait.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&$ue.call(n)==sit}var Mue=lit;const Fx=to(Mue);var uit=Wp,cit=JR,dit=lc,fit="[object Arguments]",hit="[object Array]",pit="[object Boolean]",mit="[object Date]",git="[object Error]",vit="[object Function]",yit="[object Map]",bit="[object Number]",xit="[object Object]",_it="[object RegExp]",wit="[object Set]",kit="[object String]",Sit="[object WeakMap]",Cit="[object ArrayBuffer]",jit="[object DataView]",Tit="[object Float32Array]",Iit="[object Float64Array]",Eit="[object Int8Array]",Nit="[object Int16Array]",$it="[object Int32Array]",Mit="[object Uint8Array]",Rit="[object Uint8ClampedArray]",Lit="[object Uint16Array]",Pit="[object Uint32Array]",Br={};Br[Tit]=Br[Iit]=Br[Eit]=Br[Nit]=Br[$it]=Br[Mit]=Br[Rit]=Br[Lit]=Br[Pit]=!0,Br[fit]=Br[hit]=Br[Cit]=Br[pit]=Br[jit]=Br[mit]=Br[git]=Br[vit]=Br[yit]=Br[bit]=Br[xit]=Br[_it]=Br[wit]=Br[kit]=Br[Sit]=!1;function Oit(e){return dit(e)&&cit(e.length)&&!!Br[uit(e)]}var zit=Oit;function Dit(e){return function(t){return e(t)}}var Q6=Dit,e5={exports:{}};e5.exports,function(e,t){var n=Xle,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,a=o&&n.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||a&&a.binding&&a.binding("util")}catch{}}();e.exports=s}(e5,e5.exports);var QR=e5.exports,Ait=zit,Fit=Q6,Rue=QR,Lue=Rue&&Rue.isTypedArray,Uit=Lue?Fit(Lue):Ait,eL=Uit;function Bit(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Pue=Bit,Wit=GR,Vit=Ax,Hit=Object.prototype,Zit=Hit.hasOwnProperty;function qit(e,t,n){var r=e[t];(!(Zit.call(e,t)&&Vit(r,n))||n===void 0&&!(t in e))&&Wit(e,t,n)}var tL=qit,Git=tL,Yit=GR;function Kit(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o-1&&e%1==0&&e0){if(++t>=aat)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var cat=uat,dat=oat,fat=cat,hat=fat(dat),Zue=hat,pat=Bue,mat=Vue,gat=Zue;function vat(e,t){return gat(mat(e,t,pat),e+"")}var que=vat,yat=Ax,bat=K6,xat=t5,_at=Sd;function wat(e,t,n){if(!_at(n))return!1;var r=typeof t;return(r=="number"?bat(n)&&xat(t,n.length):r=="string"&&t in n)?yat(n[t],e):!1}var kat=wat,Sat=que,Cat=kat;function jat(e){return Sat(function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&typeof o=="function"?(i--,o):void 0,a&&Cat(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?i5(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?i5(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Nst.exec(e))?new Vo(t[1],t[2],t[3],1):(t=$st.exec(e))?new Vo(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Mst.exec(e))?i5(t[1],t[2],t[3],t[4]):(t=Rst.exec(e))?i5(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Lst.exec(e))?cce(t[1],t[2]/100,t[3]/100,1):(t=Pst.exec(e))?cce(t[1],t[2]/100,t[3]/100,t[4]):rce.hasOwnProperty(e)?ace(rce[e]):e==="transparent"?new Vo(NaN,NaN,NaN,0):null}function ace(e){return new Vo(e>>16&255,e>>8&255,e&255,1)}function i5(e,t,n,r){return r<=0&&(e=t=n=NaN),new Vo(e,t,n,r)}function sce(e){return e instanceof h1||(e=aL(e)),e?(e=e.rgb(),new Vo(e.r,e.g,e.b,e.opacity)):new Vo}function qp(e,t,n,r){return arguments.length===1?sce(e):new Vo(e,t,n,r??1)}function Vo(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}r5(Vo,qp,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Vo(Gp(this.r),Gp(this.g),Gp(this.b),o5(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:lce,formatHex:lce,formatHex8:Dst,formatRgb:uce,toString:uce}));function lce(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}`}function Dst(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}${Yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function uce(){const e=o5(this.opacity);return`${e===1?"rgb(":"rgba("}${Gp(this.r)}, ${Gp(this.g)}, ${Gp(this.b)}${e===1?")":`, ${e})`}`}function o5(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Gp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yp(e){return e=Gp(e),(e<16?"0":"")+e.toString(16)}function cce(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new pu(e,t,n,r)}function dce(e){if(e instanceof pu)return new pu(e.h,e.s,e.l,e.opacity);if(e instanceof h1||(e=aL(e)),!e)return new pu;if(e instanceof pu)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(t===o?a=(n-r)/s+(n0&&l<1?0:a,new pu(a,s,l,e.opacity)}function Ast(e,t,n,r){return arguments.length===1?dce(e):new pu(e,t,n,r??1)}function pu(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}r5(pu,Ast,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new pu(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new pu(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Vo(sL(e>=240?e-240:e+120,i,r),sL(e,i,r),sL(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new pu(fce(this.h),a5(this.s),a5(this.l),o5(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=o5(this.opacity);return`${e===1?"hsl(":"hsla("}${fce(this.h)}, ${a5(this.s)*100}%, ${a5(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fce(e){return e=(e||0)%360,e<0?e+360:e}function a5(e){return Math.max(0,Math.min(1,e||0))}function sL(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Fst=Math.PI/180,Ust=180/Math.PI;var hce=-.14861,lL=1.78277,uL=-.29227,s5=-.90649,Hx=1.97294,pce=Hx*s5,mce=Hx*lL,gce=lL*uL-s5*hce;function Bst(e){if(e instanceof Kp)return new Kp(e.h,e.s,e.l,e.opacity);e instanceof Vo||(e=sce(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(gce*r+pce*t-mce*n)/(gce+pce-mce),o=r-i,a=(Hx*(n-i)-uL*o)/s5,s=Math.sqrt(a*a+o*o)/(Hx*i*(1-i)),l=s?Math.atan2(a,o)*Ust-120:NaN;return new Kp(l<0?l+360:l,s,i,e.opacity)}function cc(e,t,n,r){return arguments.length===1?Bst(e):new Kp(e,t,n,r??1)}function Kp(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}r5(Kp,cc,oL(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Kp(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Kp(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Fst,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Vo(255*(t+n*(hce*r+lL*i)),255*(t+n*(uL*r+s5*i)),255*(t+n*(Hx*r)),this.opacity)}}));function Wst(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function Vst(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r()=>e;function vce(e,t){return function(n){return e+n*t}}function Hst(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Zst(e,t){var n=t-e;return n?vce(e,n>180||n<-180?n-360*Math.round(n/360):n):cL(isNaN(e)?t:e)}function qst(e){return(e=+e)==1?g1:function(t,n){return n-t?Hst(t,n,e):cL(isNaN(t)?n:t)}}function g1(e,t){var n=t-e;return n?vce(e,n):cL(isNaN(e)?t:e)}(function e(t){var n=qst(t);function r(i,o){var a=n((i=qp(i)).r,(o=qp(o)).r),s=n(i.g,o.g),l=n(i.b,o.b),c=g1(i.opacity,o.opacity);return function(d){return i.r=a(d),i.g=s(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r})(1);function Gst(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function wce(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function fL(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function llt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}const kce=Symbol("implicit");function dc(){var e=new bce,t=[],n=[],r=kce;function i(o){let a=e.get(o);if(a===void 0){if(r!==kce)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new bce;for(const a of o)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return dc(t,n).unknown(r)},llt.apply(i,arguments),i}function ult(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function l5(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function clt(e){return e=l5(Math.abs(e)),e?e[1]:NaN}function dlt(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function flt(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var hlt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function hL(e){if(!(t=hlt.exec(e)))throw new Error("invalid format: "+e);var t;return new pL({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}hL.prototype=pL.prototype;function pL(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}pL.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function plt(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Sce;function mlt(e,t){var n=l5(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(Sce=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+l5(e,Math.max(0,t+o-1))[0]}function Cce(e,t){var n=l5(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const jce={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:ult,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Cce(e*100,t)},r:Cce,s:mlt,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function Tce(e){return e}var Ice=Array.prototype.map,Ece=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function glt(e){var t=e.grouping===void 0||e.thousands===void 0?Tce:dlt(Ice.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal+"",o=e.numerals===void 0?Tce:flt(Ice.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f){f=hL(f);var p=f.fill,v=f.align,x=f.sign,y=f.symbol,b=f.zero,w=f.width,_=f.comma,S=f.precision,C=f.trim,j=f.type;j==="n"?(_=!0,j="g"):jce[j]||(S===void 0&&(S=12),C=!0,j="g"),(b||p==="0"&&v==="=")&&(b=!0,p="0",v="=");var T=y==="$"?n:y==="#"&&/[boxX]/.test(j)?"0"+j.toLowerCase():"",E=y==="$"?r:/[%p]/.test(j)?a:"",$=jce[j],D=/[defgprs%]/.test(j);S=S===void 0?6:/[gprs]/.test(j)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function M(O){var te=T,q=E,P,X,A;if(j==="c")q=$(O)+q,O="";else{O=+O;var Y=O<0||1/O<0;if(O=isNaN(O)?l:$(Math.abs(O),S),C&&(O=plt(O)),Y&&+O==0&&x!=="+"&&(Y=!1),te=(Y?x==="("?x:s:x==="-"||x==="("?"":x)+te,q=(j==="s"?Ece[8+Sce/3]:"")+q+(Y&&x==="("?")":""),D){for(P=-1,X=O.length;++PA||A>57){q=(A===46?i+O.slice(P+1):O.slice(P))+q,O=O.slice(0,P);break}}}_&&!b&&(O=t(O,1/0));var F=te.length+O.length+q.length,H=F>1)+te+O+q+H.slice(F);break;default:O=H+te+O+q;break}return o(O)}return M.toString=function(){return f+""},M}function d(f,p){var v=c((f=hL(f),f.type="f",f)),x=Math.max(-8,Math.min(8,Math.floor(clt(p)/3)))*3,y=Math.pow(10,-x),b=Ece[8+x/3];return function(w){return v(y*w)+b}}return{format:c,formatPrefix:d}}var u5,Nce;vlt({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function vlt(e){return u5=glt(e),Nce=u5.format,u5.formatPrefix,u5}var mL=new Date,gL=new Date;function Cd(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a0))return l;do l.push(c=new Date(+o)),t(o,s),e(o);while(c=a)for(;e(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););})},n&&(i.count=function(o,a){return mL.setTime(+o),gL.setTime(+a),e(mL),e(gL),Math.floor(n(mL,gL))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}const ylt=1e3,vL=ylt*60,blt=vL*60,yL=blt*24,$ce=yL*7;var bL=Cd(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*vL)/yL,e=>e.getDate()-1);bL.range;function Xp(e){return Cd(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*vL)/$ce})}var Mce=Xp(0),c5=Xp(1),xlt=Xp(2),_lt=Xp(3),v1=Xp(4),wlt=Xp(5),klt=Xp(6);Mce.range,c5.range,xlt.range,_lt.range,v1.range,wlt.range,klt.range;var Jp=Cd(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Jp.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:Cd(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})},Jp.range;var xL=Cd(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/yL},function(e){return e.getUTCDate()-1});xL.range;function Qp(e){return Cd(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/$ce})}var Rce=Qp(0),d5=Qp(1),Slt=Qp(2),Clt=Qp(3),y1=Qp(4),jlt=Qp(5),Tlt=Qp(6);Rce.range,d5.range,Slt.range,Clt.range,y1.range,jlt.range,Tlt.range;var em=Cd(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});em.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:Cd(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})},em.range;function _L(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function wL(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Zx(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Ilt(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,c=qx(i),d=Gx(i),f=qx(o),p=Gx(o),v=qx(a),x=Gx(a),y=qx(s),b=Gx(s),w=qx(l),_=Gx(l),S={a:Y,A:F,b:H,B:ee,c:null,d:Ace,e:Ace,f:Xlt,g:sut,G:uut,H:Glt,I:Ylt,j:Klt,L:Fce,m:Jlt,M:Qlt,p:ce,q:B,Q:Zce,s:qce,S:eut,u:tut,U:nut,V:rut,w:iut,W:out,x:null,X:null,y:aut,Y:lut,Z:cut,"%":Hce},C={a:ae,A:je,b:me,B:ke,c:null,d:Bce,e:Bce,f:put,g:Sut,G:jut,H:dut,I:fut,j:hut,L:Wce,m:mut,M:gut,p:he,q:ue,Q:Zce,s:qce,S:vut,u:yut,U:but,V:xut,w:_ut,W:wut,x:null,X:null,y:kut,Y:Cut,Z:Tut,"%":Hce},j={a:M,A:O,b:te,B:q,c:P,d:zce,e:zce,f:Vlt,g:Oce,G:Pce,H:Dce,I:Dce,j:Flt,L:Wlt,m:Alt,M:Ult,p:D,q:Dlt,Q:Zlt,s:qlt,S:Blt,u:Rlt,U:Llt,V:Plt,w:Mlt,W:Olt,x:X,X:A,y:Oce,Y:Pce,Z:zlt,"%":Hlt};S.x=T(n,S),S.X=T(r,S),S.c=T(t,S),C.x=T(n,C),C.X=T(r,C),C.c=T(t,C);function T(re,ge){return function($e){var pe=[],ye=-1,Se=0,Ce=re.length,Ue,Ge,_t;for($e instanceof Date||($e=new Date(+$e));++ye53)return null;"w"in pe||(pe.w=1),"Z"in pe?(Se=wL(Zx(pe.y,0,1)),Ce=Se.getUTCDay(),Se=Ce>4||Ce===0?d5.ceil(Se):d5(Se),Se=xL.offset(Se,(pe.V-1)*7),pe.y=Se.getUTCFullYear(),pe.m=Se.getUTCMonth(),pe.d=Se.getUTCDate()+(pe.w+6)%7):(Se=_L(Zx(pe.y,0,1)),Ce=Se.getDay(),Se=Ce>4||Ce===0?c5.ceil(Se):c5(Se),Se=bL.offset(Se,(pe.V-1)*7),pe.y=Se.getFullYear(),pe.m=Se.getMonth(),pe.d=Se.getDate()+(pe.w+6)%7)}else("W"in pe||"U"in pe)&&("w"in pe||(pe.w="u"in pe?pe.u%7:"W"in pe?1:0),Ce="Z"in pe?wL(Zx(pe.y,0,1)).getUTCDay():_L(Zx(pe.y,0,1)).getDay(),pe.m=0,pe.d="W"in pe?(pe.w+6)%7+pe.W*7-(Ce+5)%7:pe.w+pe.U*7-(Ce+6)%7);return"Z"in pe?(pe.H+=pe.Z/100|0,pe.M+=pe.Z%100,wL(pe)):_L(pe)}}function $(re,ge,$e,pe){for(var ye=0,Se=ge.length,Ce=$e.length,Ue,Ge;ye=Ce)return-1;if(Ue=ge.charCodeAt(ye++),Ue===37){if(Ue=ge.charAt(ye++),Ge=j[Ue in Lce?ge.charAt(ye++):Ue],!Ge||(pe=Ge(re,$e,pe))<0)return-1}else if(Ue!=$e.charCodeAt(pe++))return-1}return pe}function D(re,ge,$e){var pe=c.exec(ge.slice($e));return pe?(re.p=d.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function M(re,ge,$e){var pe=v.exec(ge.slice($e));return pe?(re.w=x.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function O(re,ge,$e){var pe=f.exec(ge.slice($e));return pe?(re.w=p.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function te(re,ge,$e){var pe=w.exec(ge.slice($e));return pe?(re.m=_.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function q(re,ge,$e){var pe=y.exec(ge.slice($e));return pe?(re.m=b.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function P(re,ge,$e){return $(re,t,ge,$e)}function X(re,ge,$e){return $(re,n,ge,$e)}function A(re,ge,$e){return $(re,r,ge,$e)}function Y(re){return a[re.getDay()]}function F(re){return o[re.getDay()]}function H(re){return l[re.getMonth()]}function ee(re){return s[re.getMonth()]}function ce(re){return i[+(re.getHours()>=12)]}function B(re){return 1+~~(re.getMonth()/3)}function ae(re){return a[re.getUTCDay()]}function je(re){return o[re.getUTCDay()]}function me(re){return l[re.getUTCMonth()]}function ke(re){return s[re.getUTCMonth()]}function he(re){return i[+(re.getUTCHours()>=12)]}function ue(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var ge=T(re+="",S);return ge.toString=function(){return re},ge},parse:function(re){var ge=E(re+="",!1);return ge.toString=function(){return re},ge},utcFormat:function(re){var ge=T(re+="",C);return ge.toString=function(){return re},ge},utcParse:function(re){var ge=E(re+="",!0);return ge.toString=function(){return re},ge}}}var Lce={"-":"",_:" ",0:"0"},lo=/^\s*\d+/,Elt=/^%/,Nlt=/[\\^$*+?|[\]().{}]/g;function Pn(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o[t.toLowerCase(),n]))}function Mlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Rlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Llt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Plt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Olt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Pce(e,t,n){var r=lo.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Oce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function zlt(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Dlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Alt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function zce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Flt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Dce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Ult(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Blt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Wlt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Vlt(e,t,n){var r=lo.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Hlt(e,t,n){var r=Elt.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Zlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function qlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Ace(e,t){return Pn(e.getDate(),t,2)}function Glt(e,t){return Pn(e.getHours(),t,2)}function Ylt(e,t){return Pn(e.getHours()%12||12,t,2)}function Klt(e,t){return Pn(1+bL.count(Jp(e),e),t,3)}function Fce(e,t){return Pn(e.getMilliseconds(),t,3)}function Xlt(e,t){return Fce(e,t)+"000"}function Jlt(e,t){return Pn(e.getMonth()+1,t,2)}function Qlt(e,t){return Pn(e.getMinutes(),t,2)}function eut(e,t){return Pn(e.getSeconds(),t,2)}function tut(e){var t=e.getDay();return t===0?7:t}function nut(e,t){return Pn(Mce.count(Jp(e)-1,e),t,2)}function Uce(e){var t=e.getDay();return t>=4||t===0?v1(e):v1.ceil(e)}function rut(e,t){return e=Uce(e),Pn(v1.count(Jp(e),e)+(Jp(e).getDay()===4),t,2)}function iut(e){return e.getDay()}function out(e,t){return Pn(c5.count(Jp(e)-1,e),t,2)}function aut(e,t){return Pn(e.getFullYear()%100,t,2)}function sut(e,t){return e=Uce(e),Pn(e.getFullYear()%100,t,2)}function lut(e,t){return Pn(e.getFullYear()%1e4,t,4)}function uut(e,t){var n=e.getDay();return e=n>=4||n===0?v1(e):v1.ceil(e),Pn(e.getFullYear()%1e4,t,4)}function cut(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Pn(t/60|0,"0",2)+Pn(t%60,"0",2)}function Bce(e,t){return Pn(e.getUTCDate(),t,2)}function dut(e,t){return Pn(e.getUTCHours(),t,2)}function fut(e,t){return Pn(e.getUTCHours()%12||12,t,2)}function hut(e,t){return Pn(1+xL.count(em(e),e),t,3)}function Wce(e,t){return Pn(e.getUTCMilliseconds(),t,3)}function put(e,t){return Wce(e,t)+"000"}function mut(e,t){return Pn(e.getUTCMonth()+1,t,2)}function gut(e,t){return Pn(e.getUTCMinutes(),t,2)}function vut(e,t){return Pn(e.getUTCSeconds(),t,2)}function yut(e){var t=e.getUTCDay();return t===0?7:t}function but(e,t){return Pn(Rce.count(em(e)-1,e),t,2)}function Vce(e){var t=e.getUTCDay();return t>=4||t===0?y1(e):y1.ceil(e)}function xut(e,t){return e=Vce(e),Pn(y1.count(em(e),e)+(em(e).getUTCDay()===4),t,2)}function _ut(e){return e.getUTCDay()}function wut(e,t){return Pn(d5.count(em(e)-1,e),t,2)}function kut(e,t){return Pn(e.getUTCFullYear()%100,t,2)}function Sut(e,t){return e=Vce(e),Pn(e.getUTCFullYear()%100,t,2)}function Cut(e,t){return Pn(e.getUTCFullYear()%1e4,t,4)}function jut(e,t){var n=e.getUTCDay();return e=n>=4||n===0?y1(e):y1.ceil(e),Pn(e.getUTCFullYear()%1e4,t,4)}function Tut(){return"+0000"}function Hce(){return"%"}function Zce(e){return+e}function qce(e){return Math.floor(+e/1e3)}var b1,Gce;Iut({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Iut(e){return b1=Ilt(e),Gce=b1.format,b1.parse,b1.utcFormat,b1.utcParse,b1}function en(e){for(var t=e.length/6|0,n=new Array(t),r=0;rYst(e[e.length-1]);var tm=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(en);const _5=wr(tm);var nm=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(en);const w5=wr(nm);var rm=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(en);const k5=wr(rm);var im=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(en);const S5=wr(im);var om=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(en);const C5=wr(om);var am=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(en);const j5=wr(am);var sm=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(en);const T5=wr(sm);var lm=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(en);const I5=wr(lm);var um=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(en);const E5=wr(um);var cm=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(en);const N5=wr(cm);var dm=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(en);const $5=wr(dm);var fm=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(en);const M5=wr(fm);var hm=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(en);const R5=wr(hm);var pm=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(en);const L5=wr(pm);var mm=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(en);const P5=wr(mm);var gm=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(en);const O5=wr(gm);var vm=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(en);const z5=wr(vm);var ym=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(en);const D5=wr(ym);var bm=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(en);const A5=wr(bm);var xm=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(en);const F5=wr(xm);var _m=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(en);const U5=wr(_m);var wm=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(en);const B5=wr(wm);var km=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(en);const W5=wr(km);var Sm=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(en);const V5=wr(Sm);var Cm=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(en);const H5=wr(Cm);var jm=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(en);const Z5=wr(jm);var Tm=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(en);const q5=wr(Tm);function G5(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const Y5=dL(cc(300,.5,0),cc(-240,.5,1));var K5=dL(cc(-100,.75,.35),cc(80,1.5,.8)),X5=dL(cc(260,.75,.35),cc(80,1.5,.8)),J5=cc();function Q5(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return J5.h=360*e-100,J5.s=1.5-1.5*t,J5.l=.8-.9*t,J5+""}var eS=qp(),Eut=Math.PI/3,Nut=Math.PI*2/3;function tS(e){var t;return e=(.5-e)*Math.PI,eS.r=255*(t=Math.sin(e))*t,eS.g=255*(t=Math.sin(e+Eut))*t,eS.b=255*(t=Math.sin(e+Nut))*t,eS+""}function nS(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}function rS(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const iS=rS(en("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var oS=rS(en("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),aS=rS(en("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),sS=rS(en("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),$ut=AR,Mut=sue,Rut=lue,Lut=Yue,Put=Q6,Out=FR,zut=200;function Dut(e,t,n,r){var i=-1,o=Mut,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Lut(t,Put(n))),r?(o=Rut,a=!1):t.length>=zut&&(o=Out,a=!1,t=new $ut(t));e:for(;++i1?0:e<-1?Kx:Math.acos(e)}function Xce(e){return e>=1?lS:e<=-1?-lS:Math.asin(e)}const SL=Math.PI,CL=2*SL,Em=1e-6,qut=CL-Em;function Jce(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Jce;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;iEm)if(!(Math.abs(d*s-l*c)>Em)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=n-o,v=r-a,x=s*s+l*l,y=p*p+v*v,b=Math.sqrt(x),w=Math.sqrt(f),_=i*Math.tan((SL-Math.acos((x+f-y)/(2*b*w)))/2),S=_/w,C=_/b;Math.abs(S-1)>Em&&this._append`L${e+S*c},${t+S*d}`,this._append`A${i},${i},0,0,${+(d*p>c*v)},${this._x1=e+C*s},${this._y1=t+C*l}`}}arc(e,t,n,r,i,o){if(e=+e,t=+t,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,c=t+s,d=1^o,f=o?r-i:i-r;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Em||Math.abs(this._y1-c)>Em)&&this._append`L${l},${c}`,n&&(f<0&&(f=f%CL+CL),f>qut?this._append`A${n},${n},0,1,${d},${e-a},${t-s}A${n},${n},0,1,${d},${this._x1=l},${this._y1=c}`:f>Em&&this._append`A${n},${n},0,${+(f>=SL)},${d},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function Qce(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new Yut(t)}function Kut(e){return e.innerRadius}function Xut(e){return e.outerRadius}function Jut(e){return e.startAngle}function Qut(e){return e.endAngle}function ect(e){return e&&e.padAngle}function tct(e,t,n,r,i,o,a,s){var l=n-e,c=r-t,d=a-i,f=s-o,p=f*l-d*c;if(!(p*pP*P+X*X&&($=M,D=O),{cx:$,cy:D,x01:-d,y01:-f,x11:$*(i/j-1),y11:D*(i/j-1)}}function nct(){var e=Kut,t=Xut,n=Si(0),r=null,i=Jut,o=Qut,a=ect,s=null,l=Qce(c);function c(){var d,f,p=+e.apply(this,arguments),v=+t.apply(this,arguments),x=i.apply(this,arguments)-lS,y=o.apply(this,arguments)-lS,b=Kce(y-x),w=y>x;if(s||(s=d=l()),vZo))s.moveTo(0,0);else if(b>uS-Zo)s.moveTo(v*Im(x),v*fc(x)),s.arc(0,0,v,x,y,!w),p>Zo&&(s.moveTo(p*Im(y),p*fc(y)),s.arc(0,0,p,y,x,w));else{var _=x,S=y,C=x,j=y,T=b,E=b,$=a.apply(this,arguments)/2,D=$>Zo&&(r?+r.apply(this,arguments):x1(p*p+v*v)),M=kL(Kce(v-p)/2,+n.apply(this,arguments)),O=M,te=M,q,P;if(D>Zo){var X=Xce(D/p*fc($)),A=Xce(D/v*fc($));(T-=X*2)>Zo?(X*=w?1:-1,C+=X,j-=X):(T=0,C=j=(x+y)/2),(E-=A*2)>Zo?(A*=w?1:-1,_+=A,S-=A):(E=0,_=S=(x+y)/2)}var Y=v*Im(_),F=v*fc(_),H=p*Im(j),ee=p*fc(j);if(M>Zo){var ce=v*Im(S),B=v*fc(S),ae=p*Im(C),je=p*fc(C),me;if(bZo?te>Zo?(q=cS(ae,je,Y,F,v,te,w),P=cS(ce,B,H,ee,v,te,w),s.moveTo(q.cx+q.x01,q.cy+q.y01),teZo)||!(T>Zo)?s.lineTo(H,ee):O>Zo?(q=cS(H,ee,ce,B,p,-O,w),P=cS(Y,F,ae,je,p,-O,w),s.lineTo(q.cx+q.x01,q.cy+q.y01),Oe?1:t>=e?0:NaN}function act(e){return e}function sct(){var e=act,t=oct,n=null,r=Si(0),i=Si(uS),o=Si(0);function a(s){var l,c=(s=ede(s)).length,d,f,p=0,v=new Array(c),x=new Array(c),y=+r.apply(this,arguments),b=Math.min(uS,Math.max(-uS,i.apply(this,arguments)-y)),w,_=Math.min(Math.abs(b)/c,o.apply(this,arguments)),S=_*(b<0?-1:1),C;for(l=0;l0&&(p+=C);for(t!=null?v.sort(function(j,T){return t(x[j],x[T])}):n!=null&&v.sort(function(j,T){return n(s[j],s[T])}),l=0,f=p?(b-c*S)/p:0;l0?C*f:0)+S,x[d]={data:s[d],index:l,value:C,startAngle:y,endAngle:w,padAngle:_};return x}return a.value=function(s){return arguments.length?(e=typeof s=="function"?s:Si(+s),a):e},a.sortValues=function(s){return arguments.length?(t=s,n=null,a):t},a.sort=function(s){return arguments.length?(n=s,t=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:Si(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:Si(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:Si(+s),a):o},a}function dh(){}function dS(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function fS(e){this._context=e}fS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:dS(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lct(e){return new fS(e)}function rde(e){this._context=e}rde.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function uct(e){return new rde(e)}function ide(e){this._context=e}ide.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:dS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function cct(e){return new ide(e)}function ode(e,t){this._basis=new fS(e),this._beta=t}ode.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r=e[0],i=t[0],o=e[n]-r,a=t[n]-i,s=-1,l;++s<=n;)l=s/n,this._basis.point(this._beta*e[s]+(1-this._beta)*(r+l*o),this._beta*t[s]+(1-this._beta)*(i+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const dct=function e(t){function n(r){return t===1?new fS(r):new ode(r,t)}return n.beta=function(r){return e(+r)},n}(.85);function hS(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function TL(e,t){this._context=e,this._k=(1-t)/6}TL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:hS(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const fct=function e(t){function n(r){return new TL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function IL(e,t){this._context=e,this._k=(1-t)/6}IL.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const hct=function e(t){function n(r){return new IL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function EL(e,t){this._context=e,this._k=(1-t)/6}EL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:hS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const pct=function e(t){function n(r){return new EL(r,t)}return n.tension=function(r){return e(+r)},n}(0);function NL(e,t,n){var r=e._x1,i=e._y1,o=e._x2,a=e._y2;if(e._l01_a>Zo){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Zo){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,d=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*c+e._x1*e._l23_2a-t*e._l12_2a)/d,a=(a*c+e._y1*e._l23_2a-n*e._l12_2a)/d}e._context.bezierCurveTo(r,i,o,a,e._x2,e._y2)}function ade(e,t){this._context=e,this._alpha=t}ade.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const mct=function e(t){function n(r){return t?new ade(r,t):new TL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function sde(e,t){this._context=e,this._alpha=t}sde.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const gct=function e(t){function n(r){return t?new sde(r,t):new IL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function lde(e,t){this._context=e,this._alpha=t}lde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:NL(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const vct=function e(t){function n(r){return t?new lde(r,t):new EL(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function ude(e){this._context=e}ude.prototype={areaStart:dh,areaEnd:dh,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function yct(e){return new ude(e)}function cde(e){return e<0?-1:1}function dde(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),a=(n-e._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(cde(o)+cde(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function fde(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function $L(e,t,n){var r=e._x0,i=e._y0,o=e._x1,a=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,i+s*t,o-s,a-s*n,o,a)}function pS(e){this._context=e}pS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:$L(this,this._t0,fde(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,$L(this,fde(this,n=dde(this,e,t)),n);break;default:$L(this,this._t0,n=dde(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function hde(e){this._context=new pde(e)}(hde.prototype=Object.create(pS.prototype)).point=function(e,t){pS.prototype.point.call(this,t,e)};function pde(e){this._context=e}pde.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,o){this._context.bezierCurveTo(t,e,r,n,o,i)}};function mde(e){return new pS(e)}function gde(e){return new hde(e)}function vde(e){this._context=e}vde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=yde(e),i=yde(t),o=0,a=1;a=0;--t)i[t]=(a[t]-i[t+1])/o[t];for(o[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function xct(e){return new mS(e,.5)}function _ct(e){return new mS(e,0)}function wct(e){return new mS(e,1)}var kct=ece,Sct=nce,Cct=n5;function jct(e,t,n){for(var r=-1,i=t.length,o={};++r0&&n(s)?t>1?_de(s,t-1,n,r,i):Xct(i,s):r||(i[i.length]=s)}return i}var Qct=_de,edt=Qct;function tdt(e){var t=e==null?0:e.length;return t?edt(e,1):[]}var ndt=tdt,rdt=ndt,idt=Vue,odt=Zue;function adt(e){return odt(idt(e,void 0,rdt),e+"")}var sdt=adt,ldt=Hct,udt=sdt,cdt=udt(function(e,t){return e==null?{}:ldt(e,t)}),ddt=cdt;const fdt=to(ddt);function hdt(e,t){for(var n=-1,r=e==null?0:e.length;++ns))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var f=-1,p=!0,v=n&bdt?new mdt:void 0;for(o.set(e,t),o.set(t,e);++f=0||(i[n]=e[n]);return i}var eht=["axis.ticks.text","axis.legend.text","legends.title.text","legends.text","legends.ticks.text","legends.title.text","labels.text","dots.text","markers.text","annotations.text"],tht=function(e,t){return mu({},t,e)},nht=function(e,t){var n=Mat({},e,t);return eht.forEach(function(r){Wx(n,r,tht(yl(n,r),n.text))}),n},Hde=m.createContext(),Zde=function(e){var t=e.children,n=e.animate,r=n===void 0||n,i=e.config,o=i===void 0?"default":i,a=m.useMemo(function(){var s=nlt(o)?k$[o]:o;return{animate:r,config:s}},[r,o]);return u.jsx(Hde.Provider,{value:a,children:t})},yS={animate:xe.bool,motionConfig:xe.oneOfType([xe.oneOf(Object.keys(k$)),xe.shape({mass:xe.number,tension:xe.number,friction:xe.number,clamp:xe.bool,precision:xe.number,velocity:xe.number,duration:xe.number,easing:xe.func})])};Zde.propTypes={children:xe.node.isRequired,animate:yS.animate,config:yS.motionConfig};var w1=function(){return m.useContext(Hde)},rht={nivo:["#d76445","#f47560","#e8c1a0","#97e3d5","#61cdbb","#00b0a7"],BrBG:wt(tm),PRGn:wt(nm),PiYG:wt(rm),PuOr:wt(im),RdBu:wt(om),RdGy:wt(am),RdYlBu:wt(sm),RdYlGn:wt(lm),spectral:wt(um),blues:wt(wm),greens:wt(km),greys:wt(Sm),oranges:wt(Tm),purples:wt(Cm),reds:wt(jm),BuGn:wt(cm),BuPu:wt(dm),GnBu:wt(fm),OrRd:wt(hm),PuBuGn:wt(pm),PuBu:wt(mm),PuRd:wt(gm),RdPu:wt(vm),YlGnBu:wt(ym),YlGn:wt(bm),YlOrBr:wt(xm),YlOrRd:wt(_m)},iht=Object.keys(rht);wt(tm),wt(nm),wt(rm),wt(im),wt(om),wt(am),wt(sm),wt(lm),wt(um),wt(wm),wt(km),wt(Sm),wt(Tm),wt(Cm),wt(jm),wt(cm),wt(dm),wt(fm),wt(hm),wt(pm),wt(mm),wt(gm),wt(vm),wt(ym),wt(bm),wt(xm),wt(_m),xe.oneOfType([xe.oneOf(iht),xe.func,xe.arrayOf(xe.string)]);var oht={basis:lct,basisClosed:uct,basisOpen:cct,bundle:dct,cardinal:fct,cardinalClosed:hct,cardinalOpen:pct,catmullRom:mct,catmullRomClosed:gct,catmullRomOpen:vct,linear:nde,linearClosed:yct,monotoneX:mde,monotoneY:gde,natural:bct,step:xct,stepAfter:wct,stepBefore:_ct},WL=Object.keys(oht);WL.filter(function(e){return e.endsWith("Closed")}),Yce(WL,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),Yce(WL,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),xe.shape({top:xe.number,right:xe.number,bottom:xe.number,left:xe.number}).isRequired;var aht=["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"];xe.oneOf(aht),dc(Yx);var sht={top:0,right:0,bottom:0,left:0},qde=function(e,t,n){return n===void 0&&(n={}),m.useMemo(function(){var r=mu({},sht,n);return{margin:r,innerWidth:e-r.left-r.right,innerHeight:t-r.top-r.bottom,outerWidth:e,outerHeight:t}},[e,t,n.top,n.right,n.bottom,n.left])},lht=function(){var e=m.useRef(null),t=m.useState({left:0,top:0,width:0,height:0}),n=t[0],r=t[1],i=m.useState(function(){return typeof ResizeObserver>"u"?null:new ResizeObserver(function(o){var a=o[0];return r(a.contentRect)})})[0];return m.useEffect(function(){return e.current&&i!==null&&i.observe(e.current),function(){i!==null&&i.disconnect()}},[]),[e,n]},uht=function(e){return m.useMemo(function(){return nht(Qft,e)},[e])},cht=function(e){return typeof e=="function"?e:typeof e=="string"?e.indexOf("time:")===0?Gce(e.slice("5")):Nce(e):function(t){return""+t}},VL=function(e){return m.useMemo(function(){return cht(e)},[e])},Gde=m.createContext(),dht={},Yde=function(e){var t=e.theme,n=t===void 0?dht:t,r=e.children,i=uht(n);return u.jsx(Gde.Provider,{value:i,children:r})};Yde.propTypes={children:xe.node.isRequired,theme:xe.object};var Ms=function(){return m.useContext(Gde)},fht=["outlineWidth","outlineColor","outlineOpacity"],Kde=function(e){return e.outlineWidth,e.outlineColor,e.outlineOpacity,BL(e,fht)},Xde=function(e){var t=e.children,n=e.condition,r=e.wrapper;return n?m.cloneElement(r,{},t):t};Xde.propTypes={children:xe.node.isRequired,condition:xe.bool.isRequired,wrapper:xe.element.isRequired};var hht={position:"relative"},HL=function(e){var t=e.children,n=e.theme,r=e.renderWrapper,i=r===void 0||r,o=e.isInteractive,a=o===void 0||o,s=e.animate,l=e.motionConfig,c=m.useRef(null);return u.jsx(Yde,{theme:n,children:u.jsx(Zde,{animate:s,config:l,children:u.jsx(Ont,{container:c,children:u.jsxs(Xde,{condition:i,wrapper:u.jsx("div",{style:hht,ref:c}),children:[t,a&&u.jsx(Pnt,{})]})})})})};HL.propTypes={children:xe.element.isRequired,isInteractive:xe.bool,renderWrapper:xe.bool,theme:xe.object,animate:xe.bool,motionConfig:xe.oneOfType([xe.string,yS.motionConfig])},xe.func.isRequired,xe.bool,xe.bool,xe.object.isRequired,xe.bool.isRequired,xe.oneOfType([xe.string,yS.motionConfig]),xe.func.isRequired;var pht=["id","colors"],Jde=function(e){var t=e.id,n=e.colors,r=BL(e,pht);return u.jsx("linearGradient",mu({id:t,x1:0,x2:0,y1:0,y2:1},r,{children:n.map(function(i){var o=i.offset,a=i.color,s=i.opacity;return u.jsx("stop",{offset:o+"%",stopColor:a,stopOpacity:s!==void 0?s:1},o)})}))};Jde.propTypes={id:xe.string.isRequired,colors:xe.arrayOf(xe.shape({offset:xe.number.isRequired,color:xe.string.isRequired,opacity:xe.number})).isRequired,gradientTransform:xe.string};var Qde={linearGradient:Jde},Xx={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},ZL=m.memo(function(e){var t=e.id,n=e.background,r=n===void 0?Xx.background:n,i=e.color,o=i===void 0?Xx.color:i,a=e.size,s=a===void 0?Xx.size:a,l=e.padding,c=l===void 0?Xx.padding:l,d=e.stagger,f=d===void 0?Xx.stagger:d,p=s+c,v=s/2,x=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:r}),u.jsx("circle",{cx:x+v,cy:x+v,r:v,fill:o}),f&&u.jsx("circle",{cx:1.5*c+s+v,cy:1.5*c+s+v,r:v,fill:o})]})});ZL.displayName="PatternDots",ZL.propTypes={id:xe.string.isRequired,color:xe.string.isRequired,background:xe.string.isRequired,size:xe.number.isRequired,padding:xe.number.isRequired,stagger:xe.bool.isRequired};var jd=function(e){return e*Math.PI/180},qL=function(e){return 180*e/Math.PI},mht=function(e){return e.startAngle+(e.endAngle-e.startAngle)/2},k1=function(e,t){return{x:Math.cos(e)*t,y:Math.sin(e)*t}},Jx={spacing:5,rotation:0,background:"#000000",color:"#ffffff",lineWidth:2},GL=m.memo(function(e){var t=e.id,n=e.spacing,r=n===void 0?Jx.spacing:n,i=e.rotation,o=i===void 0?Jx.rotation:i,a=e.background,s=a===void 0?Jx.background:a,l=e.color,c=l===void 0?Jx.color:l,d=e.lineWidth,f=d===void 0?Jx.lineWidth:d,p=Math.round(o)%360,v=Math.abs(r);p>180?p-=360:p>90?p-=180:p<-180?p+=360:p<-90&&(p+=180);var x,y=v,b=v;return p===0?x=` + M 0 0 L `+y+` 0 + M 0 `+b+" L "+y+" "+b+` + `:p===90?x=` + M 0 0 L 0 `+b+` + M `+y+" 0 L "+y+" "+b+` + `:(y=Math.abs(v/Math.sin(jd(p))),b=v/Math.sin(jd(90-p)),x=p>0?` + M 0 `+-b+" L "+2*y+" "+b+` + M `+-y+" "+-b+" L "+y+" "+b+` + M `+-y+" 0 L "+y+" "+2*b+` + `:` + M `+-y+" "+b+" L "+y+" "+-b+` + M `+-y+" "+2*b+" L "+2*y+" "+-b+` + M 0 `+2*b+" L "+2*y+` 0 + `),u.jsxs("pattern",{id:t,width:y,height:b,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:y,height:b,fill:s,stroke:"rgba(255, 0, 0, 0.1)",strokeWidth:0}),u.jsx("path",{d:x,strokeWidth:f,stroke:c,strokeLinecap:"square"})]})});GL.displayName="PatternLines",GL.propTypes={id:xe.string.isRequired,spacing:xe.number.isRequired,rotation:xe.number.isRequired,background:xe.string.isRequired,color:xe.string.isRequired,lineWidth:xe.number.isRequired};var Qx={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},YL=m.memo(function(e){var t=e.id,n=e.color,r=n===void 0?Qx.color:n,i=e.background,o=i===void 0?Qx.background:i,a=e.size,s=a===void 0?Qx.size:a,l=e.padding,c=l===void 0?Qx.padding:l,d=e.stagger,f=d===void 0?Qx.stagger:d,p=s+c,v=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:o}),u.jsx("rect",{x:v,y:v,width:s,height:s,fill:r}),f&&u.jsx("rect",{x:1.5*c+s,y:1.5*c+s,width:s,height:s,fill:r})]})});YL.displayName="PatternSquares",YL.propTypes={id:xe.string.isRequired,color:xe.string.isRequired,background:xe.string.isRequired,size:xe.number.isRequired,padding:xe.number.isRequired,stagger:xe.bool.isRequired};var efe={patternDots:ZL,patternLines:GL,patternSquares:YL},ght=["type"],KL=mu({},Qde,efe),tfe=function(e){var t=e.defs;return!t||t.length<1?null:u.jsx("defs",{"aria-hidden":!0,children:t.map(function(n){var r=n.type,i=BL(n,ght);return KL[r]?m.createElement(KL[r],mu({key:i.id},i)):null})})};tfe.propTypes={defs:xe.arrayOf(xe.shape({type:xe.oneOf(Object.keys(KL)).isRequired,id:xe.string.isRequired}))};var vht=m.memo(tfe),XL=function(e){var t=e.width,n=e.height,r=e.margin,i=e.defs,o=e.children,a=e.role,s=e.ariaLabel,l=e.ariaLabelledBy,c=e.ariaDescribedBy,d=e.isFocusable,f=Ms();return u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,role:a,"aria-label":s,"aria-labelledby":l,"aria-describedby":c,focusable:d,tabIndex:d?0:void 0,children:[u.jsx(vht,{defs:i}),u.jsx("rect",{width:t,height:n,fill:f.background}),u.jsx("g",{transform:"translate("+r.left+","+r.top+")",children:o})]})};XL.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,margin:xe.shape({top:xe.number.isRequired,left:xe.number.isRequired}).isRequired,defs:xe.array,children:xe.oneOfType([xe.arrayOf(xe.node),xe.node]).isRequired,role:xe.string,isFocusable:xe.bool,ariaLabel:xe.string,ariaLabelledBy:xe.string,ariaDescribedBy:xe.string};var nfe=function(e){var t=e.size,n=e.color,r=e.borderWidth,i=e.borderColor;return u.jsx("circle",{r:t/2,fill:n,stroke:i,strokeWidth:r,style:{pointerEvents:"none"}})};nfe.propTypes={size:xe.number.isRequired,color:xe.string.isRequired,borderWidth:xe.number.isRequired,borderColor:xe.string.isRequired};var yht=m.memo(nfe),rfe=function(e){var t=e.x,n=e.y,r=e.symbol,i=r===void 0?yht:r,o=e.size,a=e.datum,s=e.color,l=e.borderWidth,c=e.borderColor,d=e.label,f=e.labelTextAnchor,p=f===void 0?"middle":f,v=e.labelYOffset,x=v===void 0?-12:v,y=Ms(),b=w1(),w=b.animate,_=b.config,S=ex({transform:"translate("+t+", "+n+")",config:_,immediate:!w});return u.jsxs(iu.g,{transform:S.transform,style:{pointerEvents:"none"},children:[m.createElement(i,{size:o,color:s,datum:a,borderWidth:l,borderColor:c}),d&&u.jsx("text",{textAnchor:p,y:x,style:Kde(y.dots.text),children:d})]})};rfe.propTypes={x:xe.number.isRequired,y:xe.number.isRequired,datum:xe.object.isRequired,size:xe.number.isRequired,color:xe.string.isRequired,borderWidth:xe.number.isRequired,borderColor:xe.string.isRequired,symbol:xe.oneOfType([xe.func,xe.object]),label:xe.oneOfType([xe.string,xe.number]),labelTextAnchor:xe.oneOf(["start","middle","end"]),labelYOffset:xe.number},m.memo(rfe);var ife=function(e){var t=e.width,n=e.height,r=e.axis,i=e.scale,o=e.value,a=e.lineStyle,s=e.textStyle,l=e.legend,c=e.legendNode,d=e.legendPosition,f=d===void 0?"top-right":d,p=e.legendOffsetX,v=p===void 0?14:p,x=e.legendOffsetY,y=x===void 0?14:x,b=e.legendOrientation,w=b===void 0?"horizontal":b,_=Ms(),S=0,C=0,j=0,T=0;if(r==="y"?(j=i(o),C=t):(S=i(o),T=n),l&&!c){var E=function($){var D=$.axis,M=$.width,O=$.height,te=$.position,q=$.offsetX,P=$.offsetY,X=$.orientation,A=0,Y=0,F=X==="vertical"?-90:0,H="start";if(D==="x")switch(te){case"top-left":A=-q,Y=P,H="end";break;case"top":Y=-P,H=X==="horizontal"?"middle":"start";break;case"top-right":A=q,Y=P,H=X==="horizontal"?"start":"end";break;case"right":A=q,Y=O/2,H=X==="horizontal"?"start":"middle";break;case"bottom-right":A=q,Y=O-P,H="start";break;case"bottom":Y=O+P,H=X==="horizontal"?"middle":"end";break;case"bottom-left":Y=O-P,A=-q,H=X==="horizontal"?"end":"start";break;case"left":A=-q,Y=O/2,H=X==="horizontal"?"end":"middle"}else switch(te){case"top-left":A=q,Y=-P,H="start";break;case"top":A=M/2,Y=-P,H=X==="horizontal"?"middle":"start";break;case"top-right":A=M-q,Y=-P,H=X==="horizontal"?"end":"start";break;case"right":A=M+q,H=X==="horizontal"?"start":"middle";break;case"bottom-right":A=M-q,Y=P,H="end";break;case"bottom":A=M/2,Y=P,H=X==="horizontal"?"middle":"end";break;case"bottom-left":A=q,Y=P,H=X==="horizontal"?"start":"end";break;case"left":A=-q,H=X==="horizontal"?"end":"middle"}return{x:A,y:Y,rotation:F,textAnchor:H}}({axis:r,width:t,height:n,position:f,offsetX:v,offsetY:y,orientation:w});c=u.jsx("text",{transform:"translate("+E.x+", "+E.y+") rotate("+E.rotation+")",textAnchor:E.textAnchor,dominantBaseline:"central",style:s,children:l})}return u.jsxs("g",{transform:"translate("+S+", "+j+")",children:[u.jsx("line",{x1:0,x2:C,y1:0,y2:T,stroke:_.markers.lineColor,strokeWidth:_.markers.lineStrokeWidth,style:a}),c]})};ife.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,axis:xe.oneOf(["x","y"]).isRequired,scale:xe.func.isRequired,value:xe.oneOfType([xe.number,xe.string,xe.instanceOf(Date)]).isRequired,lineStyle:xe.object,textStyle:xe.object,legend:xe.string,legendPosition:xe.oneOf(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]),legendOffsetX:xe.number.isRequired,legendOffsetY:xe.number.isRequired,legendOrientation:xe.oneOf(["horizontal","vertical"]).isRequired};var bht=m.memo(ife),ofe=function(e){var t=e.markers,n=e.width,r=e.height,i=e.xScale,o=e.yScale;return t&&t.length!==0?t.map(function(a,s){return u.jsx(bht,mu({},a,{width:n,height:r,scale:a.axis==="y"?o:i}),s)}):null};ofe.propTypes={width:xe.number.isRequired,height:xe.number.isRequired,xScale:xe.func.isRequired,yScale:xe.func.isRequired,markers:xe.arrayOf(xe.shape({axis:xe.oneOf(["x","y"]).isRequired,value:xe.oneOfType([xe.number,xe.string,xe.instanceOf(Date)]).isRequired,lineStyle:xe.object,textStyle:xe.object}))},m.memo(ofe);var xht=function(e){return nue(e)?e:function(t){return yl(t,e)}},e_=function(e){return m.useMemo(function(){return xht(e)},[e])},_ht=Object.keys(Qde),wht=Object.keys(efe),kht=function(e,t,n){if(e==="*")return!0;if(nue(e))return e(t);if(Fx(e)){var r=n?yl(t,n):t;return Jft(fdt(r,Object.keys(e)),e)}return!1},Sht=function(e,t,n,r){var i={},o=i.dataKey,a=i.colorKey,s=a===void 0?"color":a,l=i.targetKey,c=l===void 0?"fill":l,d=[],f={};return e.length&&t.length&&(d=[].concat(e),t.forEach(function(p){for(var v=function(){var y=n[x],b=y.id,w=y.match;if(kht(w,p,o)){var _=e.find(function(M){return M.id===b});if(_){if(wht.includes(_.type))if(_.background==="inherit"||_.color==="inherit"){var S=yl(p,s),C=_.background,j=_.color,T=b;_.background==="inherit"&&(T=T+".bg."+S,C=S),_.color==="inherit"&&(T=T+".fg."+S,j=S),Wx(p,c,"url(#"+T+")"),f[T]||(d.push(mu({},_,{id:T,background:C,color:j})),f[T]=1)}else Wx(p,c,"url(#"+b+")");else if(_ht.includes(_.type))if(_.colors.map(function(M){return M.color}).includes("inherit")){var E=yl(p,s),$=b,D=mu({},_,{colors:_.colors.map(function(M,O){return M.color!=="inherit"?M:($=$+"."+O+"."+E,mu({},M,{color:M.color==="inherit"?E:M.color}))})});D.id=$,Wx(p,c,"url(#"+$+")"),f[$]||(d.push(D),f[$]=1)}else Wx(p,c,"url(#"+b+")")}return"break"}},x=0;xu.jsx(VR,{id:e.label,enableChip:!0,color:e.color}),JL={container:{display:"flex",alignItems:"center"},sourceChip:{marginRight:7},targetChip:{marginLeft:7,marginRight:7}},Bht=({link:e})=>u.jsx(VR,{id:u.jsxs("span",{style:JL.container,children:[u.jsx(WR,{color:e.source.color,style:JL.sourceChip}),u.jsx("strong",{children:e.source.label})," > ",u.jsx("strong",{children:e.target.label}),u.jsx(WR,{color:e.target.color,style:JL.targetChip}),u.jsx("strong",{children:e.formattedValue})]})});function Wht(e){return e.target.depth}function Vht(e){return e.depth}function Hht(e,t){return t-1-e.height}function lfe(e,t){return e.sourceLinks.length?e.depth:t-1}function Zht(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?wce(e.sourceLinks,Wht)-1:0}function xS(e){return function(){return e}}var We=(e=>(e.IncPackCranked="Crank:inc",e.IncPackRetained="Buffered:inc",e.IncResolvRetained="Unresolved:inc",e.IncQuic="QUIC",e.IncUdp="UDP",e.IncGossip="Gossip",e.IncBlockEngine="Jito",e.SlotStart="Received",e.SlotEnd="Packed",e.End="End",e.Networking="networking:tile",e.QUIC="QUIC:tile",e.Verification="verify:tile",e.Dedup="dedup:tile",e.Resolv="resolv:tile",e.Pack="pack:tile",e.Execle="execle:tile",e.NetOverrun="Too slow:net",e.QUICOverrun="Too slow:quic",e.QUICInvalid="Malformed:quic",e.QUICTooManyFrags="Out of buffers:quic",e.QUICAbandoned="Abandoned:quic",e.VerifyOverrun="Too slow:verify",e.VerifyParse="Unparseable",e.VerifyFailed="Bad signature",e.VerifyDuplicate="Duplicate:verify",e.DedupDeuplicate="Duplicate:dedup",e.ResolvFailed="Bad LUT",e.ResolvExpired="Expired:resolv",e.ResolvNoLedger="No ledger",e.ResolvRetained="Unresolved:resolv",e.PackInvalid="Unpackable",e.PackInvalidBundle="Bad Bundle",e.PackExpired="Expired:pack",e.PackAlreadyExecuted="AlreadyExecuted:pack",e.PackRetained="Buffered:pack",e.PackLeaderSlow="Buffer full",e.PackWaitFull="Storage full",e.BankInvalid="Unexecutable",e.BankNonceAlreadyAdvanced="NonceAlreadyAdvanced",e.BankNonceAdvanceFailed="NonceAdvanceFailed",e.BankNonceWrongBlockhash="NonceWrongBlockhash",e.BlockSuccess="Success",e.BlockFailure="Failure",e.Votes="Votes",e.NonVoteSuccess="Non-vote Success",e.NonVoteFailure="Non-vote Failure",e))(We||{});const qht=["Received","Packed"],ufe=["networking:tile","QUIC:tile","verify:tile","dedup:tile","resolv:tile","pack:tile","execle:tile"],cfe=["Too slow:net","Too slow:quic","Malformed:quic","Out of buffers:quic","Abandoned:quic","Too slow:verify","Unparseable","Bad signature","Duplicate:verify","Duplicate:dedup","Bad LUT","Expired:resolv","No ledger","Unresolved:resolv","Unpackable","Bad Bundle","Expired:pack","AlreadyExecuted:pack","Buffered:pack","Buffer full","Storage full","Unexecutable","NonceAlreadyAdvanced","NonceAdvanceFailed","NonceWrongBlockhash"],dfe=["QUIC","UDP"],QL=["Buffered:inc","Buffered:pack","Unresolved:inc","Unresolved:resolv"],ffe=["Success","Non-vote Success"],hfe=["Failure","Non-vote Failure"],Ght=[{id:"QUIC"},{id:"UDP"},{id:"Buffered:pack",labelPositionOverride:"right"},{id:"Unresolved:resolv",labelPositionOverride:"right"},{id:"Too slow:net",labelPositionOverride:"right"},{id:"Too slow:quic",labelPositionOverride:"right"},{id:"Malformed:quic",labelPositionOverride:"right"},{id:"Out of buffers:quic",labelPositionOverride:"right"},{id:"Abandoned:quic",labelPositionOverride:"right"},{id:"Too slow:verify",labelPositionOverride:"right"},{id:"Unparseable",labelPositionOverride:"right"},{id:"Bad signature",labelPositionOverride:"right"},{id:"Duplicate:verify",labelPositionOverride:"right"},{id:"Duplicate:dedup",labelPositionOverride:"right"},{id:"Bad LUT",labelPositionOverride:"right"},{id:"Expired:resolv",labelPositionOverride:"right"},{id:"No ledger",labelPositionOverride:"right"},{id:"Unpackable",labelPositionOverride:"right"},{id:"Bad Bundle",labelPositionOverride:"right"},{id:"Expired:pack",labelPositionOverride:"right"},{id:"AlreadyExecuted:pack",labelPositionOverride:"right"},{id:"Buffer full",labelPositionOverride:"right"},{id:"Storage full",labelPositionOverride:"right"},{id:"Unexecutable",labelPositionOverride:"right"},{id:"NonceAlreadyAdvanced",labelPositionOverride:"right"},{id:"NonceAdvanceFailed",labelPositionOverride:"right"},{id:"NonceWrongBlockhash",labelPositionOverride:"right"},{id:"Received",alignLabelBottom:!0,labelPositionOverride:"right"},{id:"QUIC:tile",alignLabelBottom:!0},{id:"verify:tile",alignLabelBottom:!0},{id:"dedup:tile",alignLabelBottom:!0},{id:"resolv:tile",alignLabelBottom:!0},{id:"Gossip"},{id:"Jito"},{id:"Unresolved:inc",labelPositionOverride:"left"},{id:"Crank:inc",labelPositionOverride:"left"},{id:"Buffered:inc",labelPositionOverride:"left"},{id:"pack:tile",alignLabelBottom:!0},{id:"execle:tile",alignLabelBottom:!0},{id:"End",hideLabel:!0},{id:"Packed",alignLabelBottom:!0,labelPositionOverride:"left"},{id:"Failure"},{id:"Success"},{id:"Votes"},{id:"Non-vote Failure"},{id:"Non-vote Success"}],Yht=ca(),Kht=1,pfe=-1e3,mfe=12,Xht=30,Jht=3e3,Qht=2;function gfe(e,t){return _S(e.source,t.source)||e.index-t.index}function vfe(e,t){return _S(e.target,t.target)||e.index-t.index}function _S(e,t){return e.y0-t.y0}function yfe(e){return e.value}function ept(e){return e.index}function tpt(e){return e.nodes}function npt(e){return e.links}function bfe(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function xfe({nodes:e}){for(const t of e){let n=t.y0,r=n;for(const i of t.sourceLinks)i.y0=n+i.width/2,n+=i.width;for(const i of t.targetLinks)i.y1=r+i.width/2,r+=i.width}}function rpt(){let e=0,t=0,n=1,r=1,i=24,o=8,a,s=ept,l=lfe,c,d,f=tpt,p=npt,v=6;function x(){const A={nodes:f.apply(null,arguments),links:p.apply(null,arguments)};return y(A),b(A),w(A),_(A),j(A),xfe(A),X(A),A}x.update=function(A){return xfe(A),A},x.nodeId=function(A){return arguments.length?(s=typeof A=="function"?A:xS(A),x):s},x.nodeAlign=function(A){return arguments.length?(l=typeof A=="function"?A:xS(A),x):l},x.nodeSort=function(A){return arguments.length?(c=A,x):c},x.nodeWidth=function(A){return arguments.length?(i=+A,x):i},x.nodePadding=function(A){return arguments.length?(o=a=+A,x):o},x.nodes=function(A){return arguments.length?(f=typeof A=="function"?A:xS(A),x):f},x.links=function(A){return arguments.length?(p=typeof A=="function"?A:xS(A),x):p},x.linkSort=function(A){return arguments.length?(d=A,x):d},x.size=function(A){return arguments.length?(e=t=0,n=+A[0],r=+A[1],x):[n-e,r-t]},x.extent=function(A){return arguments.length?(e=+A[0][0],n=+A[1][0],t=+A[0][1],r=+A[1][1],x):[[e,t],[n,r]]},x.iterations=function(A){return arguments.length?(v=+A,x):v};function y({nodes:A,links:Y}){for(const[H,ee]of A.entries())ee.index=H,ee.sourceLinks=[],ee.targetLinks=[];const F=new Map(A.map((H,ee)=>[s(H,ee,A),H]));for(const[H,ee]of Y.entries()){ee.index=H;let{source:ce,target:B}=ee;typeof ce!="object"&&(ce=ee.source=bfe(F,ce)),typeof B!="object"&&(B=ee.target=bfe(F,B)),ce.sourceLinks.push(ee),B.targetLinks.push(ee)}if(d!=null)for(const{sourceLinks:H,targetLinks:ee}of A)H.sort(d),ee.sort(d)}function b({nodes:A}){for(const Y of A)if(Y.fixedValue===void 0){let F=-1/0;Y.sourceLinks.length&&(F=Math.max(fL(Y.sourceLinks,yfe))),Y.targetLinks.length&&(F=Math.max(fL(Y.targetLinks,yfe))),F===-1/0&&(F=0),Y.value=F}else Y.value=Y.fixedValue}function w({nodes:A}){const Y=A.length;let F=new Set(A),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.depth=ee;for(const{target:B}of ce.sourceLinks)H.add(B)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function _({nodes:A}){const Y=A.length;let F=new Set(A),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.height=ee;for(const{source:B}of ce.targetLinks)H.add(B)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function S({nodes:A}){const Y=_ce(A,ae=>ae.depth)+1;let F=(n-e-i)/(Y-1);const H=F/Qht,ee=new Array(Y),ce=e+H,B=n-H;F=(B-ce-i)/(Y-1-2);for(const ae of A){let je=l.call(null,ae,Y);const me=Math.max(0,Math.min(Y-1,Math.floor(je)));ae.layer=me,me===1?ae.x0=e+H:me<1?ae.x0=e+me*H:me===Y-1?ae.x0=B+H:ae.x0=ce+(me-1)*F,ae.x1=ae.x0+Kht,ee[me]?ee[me].push(ae):ee[me]=[ae]}if(c)for(const ae of ee)ae.sort(c);return ee}function C(A){const Y=Yht.get(Cg)===Io.Pct,F=wce(A,H=>(r-t-(H.length-1)*a)/fL(H,ee=>Math.max(ee.value,Y?1:Jht)));for(let H=0;HF.length)-1)),C(Y);for(let F=0;F0))continue;let me=(ae/je-B.y0)*Y+mfe;B.y0+=me,B.y1+=me,B.id===We.SlotStart&&(B.y0=t+(r-t)/6,B.y1=B.y0+B.height),B.id===We.SlotEnd&&(B.y1=r-(r-t)/6,B.y0=B.y1-B.height),O(B)}c===void 0&&ce.sort(_S),$(ce,F)}}function E(A,Y,F){for(let H=A.length,ee=H-2;ee>=0;--ee){const ce=A[ee];for(const B of ce){let ae=0,je=0;for(const{target:ke,value:he}of B.sourceLinks){let ue=(he?Math.abs(he):1)*(ke.layer-B.layer);ae+=P(B,ke)*ue,je+=ue}if(!(je>0))continue;let me=(ae/je-B.y0)*Y-mfe;B.y0+=me,B.y1+=me,B.id===We.SlotStart&&(B.y0=t+(r-t)/6,B.y1=B.y0+B.height),B.id===We.SlotEnd&&(B.y1=r-(r-t)/6,B.y0=B.y1-B.height),O(B)}c===void 0&&ce.sort(_S),$(ce,F)}}function $(A,Y){const F=A.length>>1,H=A[F];M(A,H.y0-a,F-1,Y),D(A,H.y1+a,F+1,Y),M(A,r,A.length-1,Y),D(A,t,0,Y)}function D(A,Y,F,H){for(;F1e-6&&(ee.y0+=ce,ee.y1+=ce),Y=ee.y1+a}}function M(A,Y,F,H){for(;F>=0;--F){const ee=A[F],ce=(ee.y1-Y)*H;ce>1e-6&&(ee.y0-=ce,ee.y1-=ce),Y=ee.y0-a}}function O({sourceLinks:A,targetLinks:Y}){if(d===void 0){for(const{source:{sourceLinks:F}}of Y)F.sort(vfe);for(const{target:{targetLinks:F}}of A)F.sort(gfe)}}function te(A){if(d===void 0)for(const{sourceLinks:Y,targetLinks:F}of A)Y.sort(vfe),F.sort(gfe)}function q(A,Y){let F=A.y0-(A.sourceLinks.length-1)*a/2;for(const{target:H,width:ee}of A.sourceLinks){if(H===Y)break;F+=ee+a}for(const{source:H,width:ee,target:{id:ce}}of Y.targetLinks){if(ce.includes("Dropped")&&(F-=Xht),H===A)break;F-=ee}return F}function P(A,Y){let F=Y.y0-(Y.targetLinks.length-1)*a/2;for(const{source:H,width:ee}of Y.targetLinks){if(H===A)break;F+=ee+a}for(const{target:H,width:ee}of A.sourceLinks){if(H===Y)break;F-=ee}return F}function X(A){const Y=A.nodes.reduce((F,H)=>Math.max(F,H.y1),0);A.nodes.forEach(F=>{qht.includes(F.id)&&(F.y0=0,F.y1=Y,F.height=Y)})}return x}const ipt={center:Zht,justify:lfe,start:Vht,end:Hht},opt=e=>ipt[e],Tn={layout:"horizontal",align:"center",sort:"auto",colors:{scheme:"nivo"},nodeOpacity:.75,nodeHoverOpacity:1,nodeHoverOthersOpacity:.15,nodeThickness:12,nodeInnerPadding:0,nodeBorderWidth:1,nodeBorderColor:{from:"color",modifiers:[["darker",.5]]},nodeBorderRadius:0,linkOpacity:.25,linkHoverOpacity:.6,linkHoverOthersOpacity:.15,linkContract:0,linkBlendMode:"multiply",enableLinkGradient:!1,enableLabels:!0,label:"id",labelPosition:"inside",labelPadding:9,labelOrientation:"horizontal",labelTextColor:{from:"color",modifiers:[["darker",.8]]},isInteractive:!1,nodeTooltip:Uht,linkTooltip:Bht,legends:[],layers:["links","nodes","labels"],role:"img",animate:!1,motionConfig:"gentle"};function apt(e,t){for(var n=-1,r=e==null?0:e.length;++ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kS(){return kS=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(eP[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(Z0t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(eP[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},J0t=function(e,t){return m.useMemo(function(){return X0t(e,t)},[e,t])};const Q0t=e=>e.id,egt=({data:e,formatValue:t,layout:n,alignFunction:r,sortFunction:i,linkSortMode:o,nodeThickness:a,nodeSpacing:s,nodeInnerPadding:l,width:c,height:d,getColor:f,getLabel:p})=>{const v=rpt().nodeAlign(r).nodeSort(i).linkSort(o).nodeWidth(a).nodePadding(s).size(n==="horizontal"?[c,d]:[d,c]).nodeId(Q0t),x=z0t(e);return v(x),x.nodes.forEach(y=>{if(y.color=f(y),y.label=p(y),y.formattedValue=t(y.value),n==="horizontal")y.x=y.x0+l,y.y=y.y0,y.width=Math.max(y.x1-y.x0-l*2,0),y.height=Math.max(y.y1-y.y0,0);else{y.x=y.y0,y.y=y.x0+l,y.width=Math.max(y.y1-y.y0,0),y.height=Math.max(y.x1-y.x0-l*2,0);const b=y.x0,w=y.x1;y.x0=y.y0,y.x1=y.y1,y.y0=b,y.y1=w}}),x.links.forEach(y=>{y.formattedValue=t(y.value),y.color=y.source.color,y.pos0=y.y0,y.pos1=y.y1,y.thickness=y.width,delete y.y0,delete y.y1,delete y.width}),x},tgt=({data:e,valueFormat:t,layout:n,width:r,height:i,sort:o,align:a,colors:s,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,nodeBorderColor:f,label:p,labelTextColor:v})=>{const[x,y]=m.useState(null),[b,w]=m.useState(null),_=m.useMemo(()=>{if(o!=="auto")return o==="input"?null:o==="ascending"?(q,P)=>q.value-P.value:o==="descending"?(q,P)=>P.value-q.value:o},[o]),S=o==="input"?null:void 0,C=m.useMemo(()=>typeof a=="function"?a:opt(a),[a]),j=J0t(s,"id"),T=Ofe(f),E=e_(p),$=Ofe(v),D=VL(t),{nodes:M,links:O}=m.useMemo(()=>egt({data:e,formatValue:D,layout:n,alignFunction:C,sortFunction:_,linkSortMode:S,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,width:r,height:i,getColor:j,getLabel:E}),[e,D,n,C,_,S,l,c,d,r,i,j,E]),te=m.useMemo(()=>M.map(q=>({id:q.id,label:q.label,color:q.color})),[M]);return{nodes:M,links:O,legendData:te,getNodeBorderColor:T,currentNode:x,setCurrentNode:y,currentLink:b,setCurrentLink:w,getLabelTextColor:$}},ngt=({node:e,x:t,y:n,width:r,height:i,color:o,opacity:a,borderWidth:s,borderRadius:l,setCurrent:c,isInteractive:d,onClick:f,tooltip:p})=>u.jsx("rect",{x:t,y:n,width:r,height:i,fill:Ine}),rgt=({nodes:e,nodeOpacity:t,nodeHoverOpacity:n,nodeHoverOthersOpacity:r,borderWidth:i,getBorderColor:o,borderRadius:a,setCurrentNode:s,currentNode:l,currentLink:c,isCurrentNode:d,isInteractive:f,onClick:p,tooltip:v})=>u.jsx(u.Fragment,{children:e.map(x=>u.jsx(ngt,{node:x,x:x.x,y:x.y,width:x.width,height:x.height,color:x.color,opacity:1,borderWidth:i,borderColor:o(x),borderRadius:a,setCurrent:s,isInteractive:f,onClick:p,tooltip:v},x.id))}),igt=()=>{const e=jL().curve(mde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2),i=Math.max(1,r/2),o=(t.target.x0-t.source.x1)*.12,a=[[t.source.x1,t.pos0-i],[t.source.x1+o,t.pos0-i],[t.target.x0-o,t.pos1-i],[t.target.x0,t.pos1-i],[t.target.x0,t.pos1+i],[t.target.x0-o,t.pos1+i],[t.source.x1+o,t.pos0+i],[t.source.x1,t.pos0+i],[t.source.x1,t.pos0-i]];return e(a)+"Z"}},ogt=()=>{const e=jL().curve(gde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2)/2,i=(t.target.y0-t.source.y1)*.12,o=[[t.pos0+r,t.source.y1],[t.pos0+r,t.source.y1+i],[t.pos1+r,t.target.y0-i],[t.pos1+r,t.target.y0],[t.pos1-r,t.target.y0],[t.pos1-r,t.target.y0-i],[t.pos0-r,t.source.y1+i],[t.pos0-r,t.source.y1],[t.pos0+r,t.source.y1]];return e(o)+"Z"}},agt=({id:e,layout:t})=>{let n;return t==="horizontal"?n={x1:"0%",x2:"100%",y1:"0%",y2:"0%"}:n={x1:"0%",x2:"0%",y1:"0%",y2:"100%"},u.jsxs("linearGradient",{id:e,spreadMethod:"pad",...n,children:[u.jsx("stop",{stopColor:NN}),u.jsx("stop",{offset:"0.24",stopColor:Mne}),u.jsx("stop",{offset:"1",stopColor:NN})]})};function zfe(e,t){const[n,r]=m.useState(!1),i=m.useRef();return m.useEffect(()=>{[...dfe,We.SlotStart].includes(e)||(t?(i.current&&(clearTimeout(i.current),i.current=void 0),r(!0)):i.current||(i.current=setTimeout(()=>{r(!1),i.current=void 0},3e3)))},[e,r,t]),!!t||n}const sgt=({link:e,layout:t,path:n,color:r,opacity:i,enableGradient:o,setCurrent:a,tooltip:s,isInteractive:l,onClick:c})=>{const d=`${e.source.id}.${e.target.id}.${e.index}`;let f;return dfe.includes(e.source.id)?f=Ene:QL.includes(e.source.id)||QL.includes(e.target.id)?f=$ne:ffe.includes(e.target.id)?f=Hf:hfe.includes(e.target.id)?f=fd:e.target.id===We.Votes?f=hd:cfe.includes(e.target.id)&&(f=Nne),zfe(e.target.id,e.value)?u.jsxs(u.Fragment,{children:[o&&u.jsx(agt,{id:d,layout:t,startColor:e.startColor||e.source.color,endColor:e.endColor||e.target.color}),u.jsx("path",{fill:f??(o?`url("#${encodeURI(d)}")`:r),d:n})]}):null},lgt=({links:e,layout:t,linkOpacity:n,linkHoverOpacity:r,linkHoverOthersOpacity:i,linkContract:o,linkBlendMode:a,enableLinkGradient:s,setCurrentLink:l,currentLink:c,currentNode:d,isCurrentLink:f,isInteractive:p,onClick:v,tooltip:x})=>{const y=m.useMemo(()=>t==="horizontal"?igt():ogt(),[t]);return u.jsx(u.Fragment,{children:e.map(b=>u.jsx(sgt,{link:b,layout:t,path:y(b,o),color:b.color,opacity:1,blendMode:a,enableGradient:s,setCurrent:l,isInteractive:p,onClick:v,tooltip:x},`${b.source.id}.${b.target.id}.${b.index}`))})};function ugt({children:e,node:t,value:n}){return zfe(t,n)?e:null}const cgt=ca();function dgt(){switch(cgt.get(Cg)){case Io.Pct:return"%";case Io.Rate:return"/s";case Io.Count:return""}}const fgt=({nodes:e,layout:t,width:n,height:r,labelPosition:i,labelPadding:o,labelOrientation:a})=>{const s=a==="vertical"?-90:0,l=e.filter(c=>!c.hideLabel).map(c=>{let d,f,p;return t==="horizontal"?(f=c.y+c.height/2-5,c.alignLabelBottom&&(f=c.y1),ufe.includes(c.id)?(d=c.x0+(c.x1-c.x0)/2,f=f+10,p="middle"):c.labelPositionOverride==="right"?(d=c.x1+o,p=a==="vertical"?"middle":"start"):c.labelPositionOverride==="left"?(d=c.x-o,p=a==="vertical"?"middle":"end"):c.x{var v,x;const[d,f]=hgt(c.label,c.value),p=(v=c.label.split(":")[0])==null?void 0:v.trim();return u.jsx(ugt,{node:c.label,value:c.value,children:u.jsxs("text",{dominantBaseline:"central",textAnchor:c.textAnchor,transform:`translate(${c.x}, ${c.y}) rotate(${s})`,className:"sankey-label",children:[pgt(p).map((y,b)=>u.jsx("tspan",{x:"0",dy:b===0?"0em":"1em",style:{fill:d},children:y},y)),u.jsxs("tspan",{x:"0",dy:"1em",style:{fill:f},children:[(x=c.value)==null?void 0:x.toLocaleString(),dgt()]})]},c.id)},c.id)})})};function hgt(e,t){return t?QL.includes(e)?[Zf,Zf]:ffe.includes(e)?[Zf,Hf]:ufe.includes(e)?[wg,wg]:cfe.includes(e)||hfe.includes(e)?[Zf,fd]:e===We.Votes?[Zf,hd]:[Zf,Zf]:[wg,wg]}function pgt(e){if(e.length<17||!e.includes(" "))return[e];const t=Math.trunc(e.length/2),n=e.lastIndexOf(" ",t),r=e.indexOf(" ",t+1),i=t-n{const{margin:je,innerWidth:me,innerHeight:ke,outerWidth:he,outerHeight:ue}=qde(o,a,s),{nodes:re,links:ge,legendData:$e,getNodeBorderColor:pe,currentNode:ye,setCurrentNode:Se,currentLink:Ce,setCurrentLink:Ue,getLabelTextColor:Ge}=tgt({data:e,valueFormat:t,layout:n,width:me,height:ke,sort:r,align:i,colors:l,nodeThickness:c,nodeSpacing:d,nodeInnerPadding:f,nodeBorderColor:p,label:te,labelTextColor:q});let _t=()=>!1,St=()=>!1;if(Ce&&(_t=({id:bt})=>bt===Ce.source.id||bt===Ce.target.id,St=({source:bt,target:Qe})=>bt.id===Ce.source.id&&Qe.id===Ce.target.id),ye){let bt=[ye.id];ge.filter(({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id).forEach(({source:Qe,target:Ke})=>{bt.push(Qe.id),bt.push(Ke.id)}),bt=_nt(bt),_t=({id:Qe})=>bt.includes(Qe),St=({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id}const ut={links:ge,nodes:re,margin:je,width:o,height:a,outerWidth:he,outerHeight:ue},ct={links:null,nodes:null,labels:null,legends:null};return H.includes("links")&&(ct.links=u.jsx(lgt,{links:ge,layout:n,linkContract:j,linkOpacity:_,linkHoverOpacity:S,linkHoverOthersOpacity:C,linkBlendMode:T,enableLinkGradient:E,setCurrentLink:Ue,currentNode:ye,currentLink:Ce,isCurrentLink:St,isInteractive:A,onClick:Y,tooltip:X},"links")),H.includes("nodes")&&(ct.nodes=u.jsx(rgt,{nodes:re,nodeOpacity:v,nodeHoverOpacity:x,nodeHoverOthersOpacity:y,borderWidth:b,borderRadius:w,getBorderColor:pe,setCurrentNode:Se,currentNode:ye,currentLink:Ce,isCurrentNode:_t,isInteractive:A,onClick:Y,tooltip:P},"nodes")),H.includes("labels")&&$&&(ct.labels=u.jsx(fgt,{nodes:re,layout:n,width:me,height:ke,labelPosition:D,labelPadding:M,labelOrientation:O,getLabelTextColor:Ge},"labels")),H.includes("legends")&&(ct.legends=u.jsx(m.Fragment,{children:F.map((bt,Qe)=>u.jsx(sfe,{...bt,containerWidth:me,containerHeight:ke,data:$e},`legend${Qe}`))},"legends")),u.jsx(XL,{width:he,height:ue,margin:je,role:ee,ariaLabel:ce,ariaLabelledBy:B,ariaDescribedBy:ae,children:H.map((bt,Qe)=>typeof bt=="function"?u.jsx(m.Fragment,{children:m.createElement(bt,ut)},Qe):(ct==null?void 0:ct[bt])??null)})},ggt=({isInteractive:e=Tn.isInteractive,animate:t=Tn.animate,motionConfig:n=Tn.motionConfig,theme:r,renderWrapper:i,...o})=>u.jsx(HL,{animate:t,isInteractive:e,motionConfig:n,renderWrapper:i,theme:r,children:u.jsx(mgt,{isInteractive:e,...o})});function Dfe({displayType:e,durationNanos:t,totalIncoming:n}){return function(r){switch(e){case Io.Count:return r;case Io.Pct:{let i=Math.max(0,Math.round(r/n*1e4)/100);return!i&&r&&(i=.01),i}case Io.Rate:{if(!t)return r;const i=t/1e9;return Math.trunc(r/i)}}}}function vgt(e){return e.net_overrun}function ygt(e){return e.quic_overrun+e.quic_frag_drop+e.quic_abandoned+e.tpu_quic_invalid+e.tpu_udp_invalid}function bgt(e){return e.verify_overrun+e.verify_parse+e.verify_failed+e.verify_duplicate}function xgt(e){return e.dedup_duplicate}function _gt(e,t){return e.resolv_expired+e.resolv_lut_failed+e.resolv_no_ledger+e.resolv_ancient+t}function wgt(e){return e.pack_invalid+e.pack_already_executed+e.pack_invalid_bundle+e.pack_expired+e.pack_leader_slow+e.pack_retained+e.pack_wait_full}function Afe(e,t){const n=Math.min(e.in.resolv_retained,e.out.resolv_retained),r=e.in.resolv_retained-n,i=e.out.resolv_retained-n,o=e.in.quic+e.in.udp-vgt(e.out),a=o-ygt(e.out),s=e.in.block_engine+e.in.gossip+a-bgt(e.out),l=s-xgt(e.out),c=r+l-_gt(e.out,i),d=e.in.pack_retained+e.in.pack_cranked+c-wgt(e.out),f=d-e.out.bank_invalid-e.out.bank_nonce_already_advanced-e.out.bank_nonce_advance_failed-e.out.bank_nonce_wrong_blockhash;return[{source:We.IncQuic,target:We.SlotStart,value:t(e.in.quic)},{source:We.IncUdp,target:We.SlotStart,value:t(e.in.udp)},{source:We.SlotStart,target:We.NetOverrun,value:t(e.out.net_overrun)},{source:We.SlotStart,target:We.QUIC,value:t(o)},{source:We.QUIC,target:We.QUICOverrun,value:t(e.out.quic_overrun)},{source:We.QUIC,target:We.QUICInvalid,value:t(e.out.tpu_quic_invalid+e.out.tpu_udp_invalid)},{source:We.QUIC,target:We.QUICTooManyFrags,value:t(e.out.quic_frag_drop)},{source:We.QUIC,target:We.QUICAbandoned,value:t(e.out.quic_abandoned)},{source:We.QUIC,target:We.Verification,value:t(a)},{source:We.IncGossip,target:We.Verification,value:t(e.in.gossip)},{source:We.IncBlockEngine,target:We.Verification,value:t(e.in.block_engine)},{source:We.Verification,target:We.VerifyOverrun,value:t(e.out.verify_overrun)},{source:We.Verification,target:We.VerifyParse,value:t(e.out.verify_parse)},{source:We.Verification,target:We.VerifyFailed,value:t(e.out.verify_failed)},{source:We.Verification,target:We.VerifyDuplicate,value:t(e.out.verify_duplicate)},{source:We.Verification,target:We.Dedup,value:t(s)},{source:We.Dedup,target:We.DedupDeuplicate,value:t(e.out.dedup_duplicate)},{source:We.Dedup,target:We.Resolv,value:t(l)},{source:We.IncResolvRetained,target:We.Resolv,value:t(r)},{source:We.Resolv,target:We.ResolvRetained,value:t(i)},{source:We.Resolv,target:We.ResolvFailed,value:t(e.out.resolv_lut_failed)},{source:We.Resolv,target:We.ResolvExpired,value:t(e.out.resolv_expired+e.out.resolv_ancient)},{source:We.Resolv,target:We.ResolvNoLedger,value:t(e.out.resolv_no_ledger)},{source:We.Resolv,target:We.Pack,value:t(c)},{source:We.IncPackCranked,target:We.Pack,value:t(e.in.pack_cranked)},{source:We.IncPackRetained,target:We.Pack,value:t(e.in.pack_retained)},{source:We.Pack,target:We.PackRetained,value:t(e.out.pack_retained)},{source:We.Pack,target:We.PackInvalid,value:t(e.out.pack_invalid)},{source:We.Pack,target:We.PackInvalidBundle,value:t(e.out.pack_invalid_bundle)},{source:We.Pack,target:We.PackExpired,value:t(e.out.pack_expired)},{source:We.Pack,target:We.PackAlreadyExecuted,value:t(e.out.pack_already_executed)},{source:We.Pack,target:We.PackLeaderSlow,value:t(e.out.pack_leader_slow)},{source:We.Pack,target:We.PackWaitFull,value:t(e.out.pack_wait_full)},{source:We.Pack,target:We.Execle,value:t(d)},{source:We.Execle,target:We.BankInvalid,value:t(e.out.bank_invalid)},{source:We.Execle,target:We.BankNonceAlreadyAdvanced,value:t(e.out.bank_nonce_already_advanced)},{source:We.Execle,target:We.BankNonceAdvanceFailed,value:t(e.out.bank_nonce_advance_failed)},{source:We.Execle,target:We.BankNonceWrongBlockhash,value:t(e.out.bank_nonce_wrong_blockhash)},{source:We.Execle,target:We.End,value:t(f)},{source:We.End,target:We.SlotEnd,value:t(f)}]}function kgt(e,t){const n=rt.sum(Object.values(e.in)),r=Dfe({displayType:t,durationNanos:void 0,totalIncoming:n});return[...Afe(e,r),{source:We.SlotEnd,target:We.BlockFailure,value:r(e.out.block_fail)},{source:We.SlotEnd,target:We.BlockSuccess,value:r(e.out.block_success)}]}function Sgt(e,t,n,r,i,o,a){const s=rt.sum(Object.values(e.in)),l=Dfe({displayType:t,durationNanos:n,totalIncoming:s}),c=(r??0)+(i??0);return[...Afe(e,l),{source:We.SlotEnd,target:We.Votes,value:l(c)},{source:We.SlotEnd,target:We.NonVoteFailure,value:l(a??0)},{source:We.SlotEnd,target:We.NonVoteSuccess,value:l(o??0)}]}function Cgt(){const e=J(Cn);return u.jsx(jgt,{slot:e},e)}function jgt({slot:e}){var o,a,s,l,c,d;const t=J(Cg),n=J(Gze),r=tc(e),i=m.useMemo(()=>{var x,y,b,w,_,S;const f=n??((x=r.response)==null?void 0:x.waterfall);if(!f)return;const p=n?kgt(f,t):Sgt(f,t,(y=r.response)==null?void 0:y.publish.duration_nanos,(b=r.response)==null?void 0:b.publish.success_vote_transaction_cnt,(w=r.response)==null?void 0:w.publish.failed_vote_transaction_cnt,(_=r.response)==null?void 0:_.publish.success_nonvote_transaction_cnt,(S=r.response)==null?void 0:S.publish.failed_nonvote_transaction_cnt),v=p.flatMap(C=>[C.source,C.target]);return{nodes:Ght.filter(C=>v.includes(C.id)),links:p}},[t,n,(o=r.response)==null?void 0:o.publish.duration_nanos,(a=r.response)==null?void 0:a.publish.failed_nonvote_transaction_cnt,(s=r.response)==null?void 0:s.publish.failed_vote_transaction_cnt,(l=r.response)==null?void 0:l.publish.success_nonvote_transaction_cnt,(c=r.response)==null?void 0:c.publish.success_vote_transaction_cnt,(d=r.response)==null?void 0:d.waterfall]);return!i||!i.links.length?r.hasWaitedForData?u.jsx(W,{justify:"center",align:"center",height:"100%",children:u.jsx(Z,{children:"No waterfall avaliable for this slot"})}):u.jsx(W,{justify:"center",align:"center",height:"100%",children:u.jsx(Iy,{style:{height:50,width:50}})}):u.jsx($s,{children:({height:f,width:p})=>{const v=p<600;if(v){const x=f;f=p,p=x}return u.jsx(ggt,{height:f,width:p,data:i,margin:{top:10,right:n?100:v?145:130,bottom:35,left:85},align:"center",isInteractive:!1,nodeThickness:0,nodeSpacing:Tgt(f),nodeBorderWidth:0,sort:"input",nodeBorderRadius:0,linkOpacity:1,enableLinkGradient:!0,labelPosition:"outside",labelPadding:16,animate:!1,nodeTooltip:Ffe,linkTooltip:Ffe})}})}function Ffe(){return null}function Tgt(e){return e<275?32:e<300?36:e<325?40:e<350?48:52}const Igt="_container_k3j09_1",Egt={container:Igt};function Ngt(){const[e,t]=m.useState(!1),n=J(V3),r=e&&!n,{tileCounts:i,groupedLiveIdlePerTile:o,showLive:a,queryIdleData:s}=HM(),l=i.net?"net":"sock";return u.jsxs("div",{className:Egt.container,children:[u.jsx(Wa,{header:l,subHeader:"(in)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Ingress",metricType:"net_in",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"QUIC",tileCount:i.quic,liveIdlePerTile:o==null?void 0:o.quic,queryIdlePerTile:a||s==null?void 0:s.quic,statLabel:"Conns",metricType:"quic",isExpanded:r,setIsExpanded:t}),"bundle"in i&&u.jsx(Wa,{header:"bundle",tileCount:i.bundle,liveIdlePerTile:o==null?void 0:o.bundle,queryIdlePerTile:a||s==null?void 0:s.bundle,...a?{statLabel:"RTT",metricType:"bundle_rtt_smoothed_millis"}:{statLabel:"Lat p90",metricType:"bundle_rx_delay_millis_p90"},isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"verify",tileCount:i.verify,liveIdlePerTile:o==null?void 0:o.verify,queryIdlePerTile:a||s==null?void 0:s.verify,statLabel:"Failed",metricType:"verify",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"dedup",tileCount:i.dedup,liveIdlePerTile:o==null?void 0:o.dedup,queryIdlePerTile:a||s==null?void 0:s.dedup,statLabel:"Dupes",metricType:"dedup",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.resolv,tileCount:i[To.resolv],liveIdlePerTile:o==null?void 0:o[To.resolv],queryIdlePerTile:a||s==null?void 0:s[To.resolv],statLabel:"Resolv",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"pack",tileCount:i.pack,liveIdlePerTile:o==null?void 0:o.pack,queryIdlePerTile:a||s==null?void 0:s.pack,statLabel:"Full",metricType:"pack",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.bank,tileCount:i[To.bank],liveIdlePerTile:o==null?void 0:o[To.bank],queryIdlePerTile:a||s==null?void 0:s[To.bank],statLabel:"TPS",metricType:"bank",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.poh,tileCount:i[To.poh],liveIdlePerTile:o==null?void 0:o[To.poh],queryIdlePerTile:a||s==null?void 0:s[To.poh],statLabel:"Hash",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"shred",tileCount:i.shred,liveIdlePerTile:o==null?void 0:o.shred,queryIdlePerTile:a||s==null?void 0:s.shred,statLabel:"Shreds",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:l,subHeader:"(out)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Egress",metricType:"net_out",isExpanded:r,setIsExpanded:t})]})}const $gt="_container_k6h1w_1",Mgt="_toggle-group_k6h1w_46",Rgt="_toggle-group-item_k6h1w_53",t_={container:$gt,toggleGroup:Mgt,toggleGroupItem:Rgt};function Lgt(){const[e,t]=Vl(Cg);return u.jsx("div",{className:t_.container,children:u.jsxs(M7,{className:t_.toggleGroup,type:"single","aria-label":"Dropped Type",value:e,children:[u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Count,"aria-label":Io.Count,onClick:()=>t(Io.Count),children:"Count"}),u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Pct,"aria-label":Io.Pct,onClick:()=>t(Io.Pct),children:"Pct %"}),u.jsx(B0,{className:t_.toggleGroupItem,value:Io.Rate,"aria-label":Io.Rate,onClick:()=>t(Io.Rate),children:"Rate"})]})})}const Pgt="_slot-performance-container_6u4bp_1",Ogt="_sankey-container_6u4bp_5",zgt="_slot-sankey-container_6u4bp_11",tP={slotPerformanceContainer:Pgt,sankeyContainer:Ogt,slotSankeyContainer:zgt};function Ufe(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",gap:"1",className:tP.slotPerformanceContainer,children:[u.jsx(W,{gap:"3",children:u.jsx(kd,{text:"TPU Waterfall"})}),u.jsx(Dgt,{}),u.jsx(Ngt,{})]})})}function Dgt(){return u.jsxs("div",{className:tP.sankeyContainer,children:[u.jsx(Lgt,{}),u.jsx("div",{className:tP.slotSankeyContainer,children:u.jsx(Cgt,{})})]})}const Agt="_chart_102uq_43",Fgt={chart:Agt},Ugt="_chart_1hpd4_1",Bgt="_focused_1hpd4_32",nP={chart:Ugt,focused:Bgt};function rP(){return{hooks:{init:[e=>{const t=e.root.querySelectorAll(".u-axis")[0];t&&t.addEventListener("mousedown",n=>{const r=n.clientX,i=e.axes[0].scale;if(i===void 0)return;const o=e.scales[i],{min:a,max:s}=o,l=((s??0)-(a??0))/(e.bbox.width/jn.pxRatio),c=f=>{const p=(f.clientX-r)*l;if(!e.data[0].length)return;const v=e.data[0][0]??0,x=e.data[0][e.data[0].length-1]??0;e.setScale(i,{min:Math.max(v,f.shiftKey?(a??0)-p:(a??0)+p),max:Math.min(x,(s??0)+p)})},d=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mousemove",d)};document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)})}]}}}const Bfe="banks",Td="lamports",fh="computeUnits",Vt="banksXScale",Wgt="txnExecutionDuration",Wfe="txnExecutionDurationTooltip",Vfe=fe(),Hfe=fe(0),Zfe=fe(0),qfe=fe(!0),Gfe=fe(void 0),Yfe=fe(e=>{const t=e(Gfe);return t===void 0?e(s3)===ld.balanced:t},(e,t,n)=>{t(Gfe,n)}),Vgt=ca(),iP=1/9,oP=[{color:"42 126 223"},{color:"30 156 80"},{color:"30 156 80",opacity:.05},{color:"174 85 17",opacity:.05},{color:"244 5 5",opacity:.05},{color:"244 5 5",opacity:.1}],aP=e=>oP[e]??oP[oP.length-1];function Kfe({computeUnits:e,bankCount:t,tEnd:n,maxComputeUnits:r}){return Math.round((e-r)/t/iP+n)}function Hgt(e,t,n){const r=[];function i(o,a,s,l){const c=(o.x-a.x)*(s.y-l.y)-(o.y-a.y)*(s.x-l.x);if(c===0)return;const d=((o.x-s.x)*(s.y-l.y)-(o.y-s.y)*(s.x-l.x))/c,f=((o.x-s.x)*(o.y-a.y)-(o.y-s.y)*(o.x-a.x))/c;if(!(d<0||d>1||f<0||f>1))return{x:o.x+d*(a.x-o.x),y:o.y+d*(a.y-o.y)}}for(const o of e){const a=i(t,n,o[0],o[1]);a&&r.push(a)}if(r.length)return r.length!==2&&console.debug(r),r.sort((o,a)=>o.x-a.x)}function Zgt(e,t,n,r,i){const o=Number(n.target_end_timestamp_nanos-n.start_timestamp_nanos),a=e.min??0,s=e.max??o,l=t.max??r,c=t.min??0,d=[[{x:a,y:l},{x:s,y:l}],[{x:a,y:l},{x:a,y:c}],[{x:a,y:c},{x:s,y:c}],[{x:s,y:l},{x:s,y:c}]],f=[];for(let p=1;p<=i;p++){const v=Kfe({computeUnits:0,tEnd:o,maxComputeUnits:r,bankCount:p}),x=Kfe({computeUnits:r,tEnd:o,maxComputeUnits:r,bankCount:p}),y=Hgt(d,{x:v,y:0},{x,y:r});y&&f.push({line:y,bankCount:p})}return f}function Xfe(e){return[{x:e.left,y:e.top+e.height},{x:e.left+e.width,y:e.top+e.height},{x:e.left+e.width,y:e.top},{x:e.left,y:e.top}]}function bl(e,t){return Math.abs(e-t)<2}function qgt(e,t,n){const r=Xfe(e),i=[...t,...n];for(const a of r)((a.x>=t[0].x||bl(a.x,t[0].x))&&(a.x<=n[0].x||bl(a.x,n[0].x))&&(a.y>=t[0].y||bl(a.y,t[0].y))&&(a.y<=n[0].y||bl(a.y,n[0].y))||(a.x>=t[1].x||bl(a.x,t[1].x))&&(a.x<=n[1].x||bl(a.x,n[1].x))&&(a.y>=t[1].y||bl(a.y,t[1].y))&&(a.y<=n[1].y||bl(a.y,n[1].y)))&&i.push(a);const o={x:i.reduce((a,s)=>a+s.x,0)/i.length,y:i.reduce((a,s)=>a+s.y,0)/i.length};return i.sort((a,s)=>{const l=Math.atan2(a.y-o.y,a.x-o.x),c=Math.atan2(s.y-o.y,s.x-o.x);return l-c}),i}function Ggt(e,t,n,r,i){if(!i.opacity)return;const o=qgt(t,n,r);if(o.length>1){e.beginPath(),e.moveTo(o[0].x,o[0].y);for(let a=1;a{window.addEventListener("dppxchange",sP)},destroy:()=>{window.removeEventListener("dppxchange",sP)},drawSeries:[(r,i)=>{if(r.series[i].label!=="Active Bank")return;const o=e.current,a=t.current,s=n.current;if(o===null||a===null||s===null)return;const l=r.ctx;l.save();const c=!Vgt.get(Yfe),d=Number(o.target_end_timestamp_nanos-o.start_timestamp_nanos),f=Math.trunc(a+.05*d*iP),p=c?[]:Zgt(r.scales[Vt],r.scales[fh],o,f,s);p.unshift({line:[{x:r.scales[Vt].min??0,y:a},{x:r.scales[Vt].max??45e7,y:a}],bankCount:0});const v=[];sP(),l.font=Jfe;const x={x:-100,y:30};for(let y=0;yjn.pxRatio*50||bl(_,r.bbox.left)&&Math.abs(S-x.y)>jn.pxRatio*20){l.save();const E=Math.atan2(j-S,C-_);l.translate(_,S),l.rotate(E),l.fillStyle=l.strokeStyle;const $=`${w-1} Bank${w===2?"":"s"} Active`;l.measureText($).width<=r.bbox.left+r.bbox.width-_&&l.fillText($,4*jn.pxRatio,-8*jn.pxRatio),l.restore()}x.x=_,x.y=S}}if(v.length>0){v.unshift({line:[{x:r.bbox.left,y:bl(v[0].line[0].x,r.bbox.left)?v[0].line[0].y:r.bbox.top+r.bbox.height},{x:r.bbox.left,y:r.bbox.top}],bankCount:v[0].bankCount-1}),v.push({line:[{x:r.bbox.left+r.bbox.width,y:r.bbox.top+r.bbox.height},{x:r.bbox.left+r.bbox.width,y:bl(v[v.length-1].line[1].x,r.bbox.left+r.bbox.width)?v[v.length-1].line[1].y:r.bbox.top}],bankCount:v[v.length-1].bankCount+1});for(let y=1;yS||i===d.after&&n[d.offsetSize]>C)&&(i=S>C?d.before:d.after);var j=i===d.before?S:C,T=parseInt(c[d.maxSize]);(!T||j{const n=document.getElementById(Qfe);n&&(n_=n)},drawSeries:[(t,n)=>{if(t.series[n].label!=="Active Bank"||(n_.style.display="none",e!==ld.revenue))return;const r=t.scales[Vt],i=Math.round(t.valToPos(SS,Vt,!0));if(r.min!==void 0&&SSr.max)return;const o=t.ctx;if(o.save(),o.beginPath(),o.strokeStyle=Rne,o.lineWidth=3,o.setLineDash([5,5]),o.moveTo(i,t.bbox.top),o.lineTo(i,t.bbox.top+t.bbox.height),o.stroke(),o.restore(),n_){const a={left:Math.round(t.valToPos(SS,Vt,!1))+t.over.offsetLeft-lP/2,top:t.over.offsetTop-lP};ehe(n_,a,"center","bottom"),n_.style.display="block"}}]}}}const the=1;let r_=!1;function nhe(){return document.getElementById("scroll-container")??document.body}function i_({elId:e,showOnCursor:t,showPointer:n,closeTooltipElId:r,getClosestIdx:i}){let o,a,s,l,c=!1;function d(){const _=o.getBoundingClientRect();s=_.left,l=_.top}function f(){r_=!0,w.style.pointerEvents="auto",y(),setTimeout(()=>{var _;document.addEventListener("click",b),r&&((_=document.getElementById(r))==null||_.addEventListener("click",p))},0)}function p(){var _;r_=!1,w.style.pointerEvents="none",w.style.display="none",document.removeEventListener("click",b),r&&((_=document.getElementById(r))==null||_.removeEventListener("click",p))}const v=rt.throttle(p,100,{leading:!0,trailing:!0});function x(){n&&(document.body.style.cursor="pointer",document.body.addEventListener("click",f))}function y(){n&&(document.body.style.cursor="unset",document.body.removeEventListener("click",f))}function b(_){const S=document.getElementById(e);_.target&&(S!=null&&S.contains(_.target))||(p(),y())}let w;return{opts:(_,S)=>{i&&(S.cursor??(S.cursor={}),S.cursor.dataIdx=(C,j,T)=>j===the?i(C):T)},hooks:{init:_=>{const S=document.getElementById(e);S?w=S:(w=document.createElement("div"),w.id=e,document.body.appendChild(w)),w&&(w.style.display="none",w.style.pointerEvents="none",o=_.over,a=document.body,o.onmouseenter=()=>{c=!0},o.onmouseleave=()=>{c=!1,!r_&&(w.style.display="none",y(),r_=!1)},nhe().addEventListener("scroll",v))},destroy:()=>{o.onmouseenter=null,o.onmouseleave=null,y(),p(),nhe().removeEventListener("scroll",v)},setSize:()=>{d()},syncRect:()=>{d()},setCursor:_=>{var E;if(!c||r_)return;const{left:S,top:C}=_.cursor,j=(E=_.cursor.idxs)==null?void 0:E[i?the:0];if(S===void 0||C===void 0||j===void 0)return;const T=_.posToVal(S,_.series[0].scale??"x");if(j!==null&&t(_,T,j)){const $={left:S+s+5,top:C+l};w.style.display="block",w.style.pointerEvents="none",x(),ehe(w,$,"right","start",{bound:a})}else w.style.display="none",y()},setScale:()=>{y(),p()}}}}function n1t(e){function t(n,r,i){const o=r>=n.data[0][i]?i:i-1;return e({elapsedTime:r,activeBanks:n.data[1][o],computeUnits:n.data[2][o],fees:n.data[3][o],tips:n.data[4][o]}),!0}return i_({elId:"cu-chart-tooltip",showOnCursor:t})}function uP(e){const t=e.factor||.75,n=.1;let r,i,o,a,s,l,c;return{hooks:{ready(d){var y;const f=d.series[0].scale??"x",p=((y=d.series.find((b,w)=>w>0&&b.show!==!1))==null?void 0:y.scale)??"y";r=d.scales[f].min??0,i=d.scales[f].max??0,o=d.scales[p].min??0,a=d.scales[p].max??0,s=i-r,l=a-o;const v=d.over;let x=v.getBoundingClientRect();c=new ResizeObserver(()=>{x=v.getBoundingClientRect()}),c.observe(v),v.addEventListener("wheel",b=>{if(b.ctrlKey||b.metaKey||b.shiftKey){if(b.preventDefault(),b.ctrlKey||b.metaKey){let{left:w,top:_}=d.cursor;w??(w=0),_??(_=0);const S=w/x.width,C=1-_/x.height,j=d.posToVal(w,Vt),T=d.posToVal(_,"y"),E=(d.scales[f].max??0)-(d.scales[f].min??0),$=(d.scales[p].max??0)-(d.scales[p].min??0),D=b.deltaY<0?E*t:E/t;let M=j-S*D,O=M+D;[M,O]=v6(D,M,O,s,r??0,i??0);const te=b.deltaY<0?$*t:$/t;let q=T-C*te,P=q+te;[q,P]=v6(te,q,P,l,o??0,a??0),requestAnimationFrame(()=>d.batch(()=>{d.setScale(Vt,{min:M,max:O})}))}else if(b.shiftKey){const w=(d.scales[f].max??0)-(d.scales[f].min??0);let _=w*n;b.deltaY>=0&&(_*=-1);const[S,C]=v6(w,(d.scales[f].min??0)+_,(d.scales[f].max??0)+_,w,r??0,i??0);requestAnimationFrame(()=>d.setScale(Vt,{min:S,max:C}))}}})},destroy(d){c==null||c.disconnect()}}}}const r1t=ca();let cP=!1;function dP(e){const t=(e==null?void 0:e.minRange)??0;return{hooks:{setScale:(n,r)=>{const i=n.series[0].scale??"x";if(cP||r!==i)return;const o=n.scales[i];cP=!0;let a=o.min??0,s=o.max??0;if(s-a{i===(l.series[0].scale??"x")&&l.setScale(i,{min:a,max:s})}),cP=!1}}}}var dn=(e=>(e.DEFAULT="All",e.PRELOADING="Pre-Loading",e.VALIDATE="Validate",e.LOADING="Loading",e.EXECUTE="Execute",e.POST_EXECUTE="Post-Execute",e))(dn||{});const i1t={All:LN,"Pre-Loading":Pne,Validate:PN,Loading:zne,Execute:Ane,"Post-Execute":Une},va={All:LN,"Pre-Loading":One,Validate:PN,Loading:Dne,Execute:Fne,"Post-Execute":Bne};var Ci=(e=>(e[e.ERROR=0]="ERROR",e[e.MICROBLOCK=1]="MICROBLOCK",e[e.BUNDLE=2]="BUNDLE",e[e.LANDED=3]="LANDED",e[e.SIMPLE=4]="SIMPLE",e[e.FEES=5]="FEES",e[e.TIPS=6]="TIPS",e[e.CUS_CONSUMED=7]="CUS_CONSUMED",e[e.CUS_REQUESTED=8]="CUS_REQUESTED",e[e.INCOME_CUS=9]="INCOME_CUS",e))(Ci||{});const rhe="bank-",fP=2e6;function hP(e,t=!1){if(!e)return 0;const n=e.txn_mb_end_timestamps_nanos.map(i=>Number(i-e.start_timestamp_nanos));n.push(Number(e.target_end_timestamp_nanos-e.start_timestamp_nanos));const r=rt.max(n)??0;return t?r+fP:r}function pP(e,t,n){if(t<0)return{preLoading:0n,validating:0n,loading:0n,execute:0n,postExecute:0n};let r=e.txn_mb_start_timestamps_nanos[t],i=e.txn_mb_end_timestamps_nanos[t];const o=Vi?e.txn_start_timestamps_nanos:e.txn_preload_end_timestamps_nanos;if(e.txn_from_bundle[t]&&(n!=null&&n.length)){const x=n.indexOf(t)??-1;n[x-1]>0&&(r=o[t]);const y=x!==-1?n[x+1]:-1;y>0&&(i=o[y])}const a=e.txn_preload_end_timestamps_nanos[t],s=e.txn_start_timestamps_nanos[t],l=e.txn_load_end_timestamps_nanos[t];let c,d,f;Vi?(c=s-r,d=a-s,f=l-a):(c=a-r,f=s-a,d=l-s);let p,v;if(xi||!e.txn_from_bundle[t]||!(n!=null&&n.length))p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t];else{const x=n.indexOf(t)??-1,y=x!==-1?n[x+1]:-1;y>0?(p=o[y]-e.txn_load_end_timestamps_nanos[t],v=e.txn_end_timestamps_nanos[y]-e.txn_end_timestamps_nanos[t]):(p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t])}return{preLoading:c,validating:f,loading:d,execute:p,postExecute:v}}function CS(e,t){const n=e.txn_microblock_id[t],r=[];for(let i=0;iNumber(o-t.start_timestamp_nanos);if(Vi){if(e0){if(e{const d=c.series[0].scale??"x";r=c.scales[d].min??0,i=c.scales[d].max??0,n=i-r;function f(){const v=a.dx/s.dx,x=s.x/e.width,y=t*v;let b=o-x*y,w=b+y;[b,w]=v6(y,b,w,n,r,i),c.batch(()=>{c.setScale(d,{min:b,max:w})}),l=!1}function p(v){ohe(v,s,e),l||(l=!0,requestAnimationFrame(f))}c.over.addEventListener("touchstart",function(v){c.scales[d].max===void 0||c.scales[d].min===void 0||(e=c.over.getBoundingClientRect(),t=c.scales[d].max-c.scales[d].min,o=c.posToVal(a.x,d),ohe(v,a,e),document.addEventListener("touchmove",p,{passive:!0}))}),c.over.addEventListener("touchend",function(v){document.removeEventListener("touchmove",p)})}}}}function s1t(e){const t=[...e.txn_mb_start_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!0})),...e.txn_mb_end_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!1}))].sort((l,c)=>l.timestampNanos-c.timestampNanos),n=[];let r=0,i=0,o=0;const a=t.reduce((l,c,d)=>{const f=c.txn_idx,p=e.txn_landed[f]?c.isTxnStart?e.txn_compute_units_requested[f]:-e.txn_compute_units_requested[f]+e.txn_compute_units_consumed[f]:0,v=c.isTxnStart?0:Number(VN(e,f)),x=c.isTxnStart?0:Number(HN(e,f));n[e.txn_bank_idx[f]]=c.isTxnStart;const y=n.filter(C=>C).length,b=l[0].length-1,w=(l[2][b]||0)+p,_=(l[3][b]||0)+v,S=(l[4][b]||0)+x;return y>o&&(o=y),w>i&&(i=w),_>r&&(r=_),S>r&&(r=S),d>0&&t[d-1].timestampNanos===c.timestampNanos?(l[1][b]=y,l[2][b]=w,l[3][b]=_,l[4][b]=S):(l[0].push(c.timestampNanos),l[1].push(y),l[2].push(w),l[3].push(_),l[4].push(S)),l},[[-fP],[0],[0],[0],[0]]),s=hP(e,!0);return a.forEach(l=>{l.push(null)}),a[0][a[0].length-1]=s,{chartData:a,maxBankCount:o,maxComputeUnits:i,maxLamports:r}}const{stepped:gP}=jn.paths,vP=gP==null?void 0:gP({align:1}),jS=(e,t,n,r)=>(vP==null?void 0:vP(e,t,n,r))??null,l1t="cu-chart";function u1t({slotTransactions:e,maxComputeUnits:t,bankTileCount:n,onCreate:r}){const i=Ee(Vfe),o=Ee(Hfe),a=Ee(Zfe),s=m.useRef(e);s.current=e;const l=m.useRef(t);l.current=t;const c=m.useRef(n);c.current=n;const{chartData:d,maxBankCount:f,maxComputeUnits:p,maxLamports:v}=m.useMemo(()=>s1t(e),[e]),x=m.useCallback((b,w)=>!(b>0||w({width:0,height:0,class:nP.chart,drawOrder:["axes","series"],cursor:{sync:{key:Vt},points:{show:!1}},scales:{[Vt]:{time:!1},[fh]:{range:(b,w,_)=>{if(x(w,_))return[0,t+1e6];const S=Math.max(_-w,5e4);return[Math.max(w-S,0),Math.min(_+S,t+1e6)]}},[Bfe]:{range:[0,f+1]},[Td]:{range:[0,v*1.1]}},axes:[{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:$N},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},size:30,values:(b,w)=>w.map(_=>_/1e6+"ms"),space:100,scale:Vt},{scale:fh,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:$N},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(_=>_/1e6+"M"),space:50,size(b,w,_,S){var $,D;const C=b.axes[_];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,O)=>O.length>M.length?O:M,"");T!==""&&(b.ctx.font=((D=C.font)==null?void 0:D[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return o(E),E}},{scale:Td,stroke:sr,border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(_=>_/dd+" SOL"),side:1,space:50,size(b,w,_,S){var $,D;const C=b.axes[_];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,O)=>O.length>M.length?O:M,"");T!==""&&(b.ctx.font=((D=C.font)==null?void 0:D[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return a(E),E}}],series:[{scale:Vt},{label:"Active Bank",stroke:"rgba(117, 77, 18, 1)",paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Bfe},{label:"Compute Units",stroke:pd,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:fh},{label:"Fees",stroke:kg,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Td},{label:"Tips",stroke:qf,paths:jS,points:{show:!1},width:2/devicePixelRatio,scale:Td}],legend:{show:!1},plugins:[t1t(),Kgt({slotTransactionsRef:s,maxComputeUnitsRef:l,bankTileCountRef:c}),rP(),uP({factor:.75}),n1t(i),dP(),a1t(),mP()]}),[f,v,i,x,t,o,a]);return u.jsx("div",{style:{height:"100%"},children:u.jsx($s,{children:({height:b,width:w})=>(y.width=w,y.height=b,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:l1t,options:y,data:d,onCreate:r})}))})})}const c1t="_tooltip_h8khk_1",d1t={tooltip:c1t};function o_({elId:e,children:t}){const n=J(jg);return u.jsx(lB,{container:n,id:e,className:d1t.tooltip,children:t})}const f1t="_tooltip_11ays_1",h1t="_active-banks_11ays_14",p1t="_compute-units_11ays_18",m1t="_elapsed-time_11ays_22",g1t="_fees_11ays_26",v1t="_tips_11ays_30",y1t="_label_11ays_34",qo={tooltip:f1t,activeBanks:h1t,computeUnits:p1t,elapsedTime:m1t,fees:g1t,tips:v1t,label:y1t};function b1t(){var t;const e=J(Vfe);return u.jsx(o_,{elId:"cu-chart-tooltip",children:e&&u.jsxs("div",{className:qo.tooltip,children:[u.jsx(Z,{className:Te(qo.activeBanks,qo.label),children:"Active\xA0banks"}),u.jsx(Z,{className:qo.activeBanks,children:e.activeBanks??"-"}),u.jsx(Z,{className:Te(qo.computeUnits,qo.label),children:"Compute\xA0units"}),u.jsxs(Z,{className:qo.computeUnits,children:[((t=e.computeUnits)==null?void 0:t.toLocaleString())??"-","\xA0CUs"]}),u.jsx(Z,{className:Te(qo.elapsedTime,qo.label),children:"Time\xA0elapsed"}),u.jsx(Z,{className:qo.elapsedTime,children:e.elapsedTime!=null?`${(e.elapsedTime/1e6).toLocaleString(void 0,{maximumFractionDigits:6})} ms`:"-"}),u.jsx(Z,{className:Te(qo.tips,qo.label),children:"Tips"}),u.jsx(Z,{className:qo.tips,children:BN(BigInt(e.tips||0),Bo)}),u.jsx(Z,{className:Te(qo.fees,qo.label),children:"Fees"}),u.jsx(Z,{className:qo.fees,children:BN(BigInt(e.fees||0),Bo)})]})})}const x1t="_button_1b3a4_1",yP={button:x1t};function _1t({onUplot:e}){const t=J(qfe);return u.jsxs(W,{gap:"3",align:"center",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsxs(W,{gap:"1px",children:[u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.scales[Vt].min??0,i=n.scales[Vt].max??0,o=i-r;if(o<=0)return;const a=o*.2;n.setScale(Vt,{min:r+a,max:i-a})}),className:yP.button,children:u.jsx(_Ue,{width:"18",height:"18"})}),u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.data[0][0],i=n.data[0].at(-1)??r,o=n.scales[Vt].min??0,a=n.scales[Vt].max??0,s=a-o;if(s<=0)return;const l=s*.2;n.setScale(Vt,{min:Math.max(o-l,r),max:Math.min(a+l,i)})}),disabled:t,className:yP.button,children:u.jsx(kUe,{width:"18",height:"18"})}),u.jsx(hs,{variant:"soft",onClick:()=>e(n=>n.setScale(Vt,{min:n.data[0][0],max:n.data[0].at(-1)??0})),disabled:t,className:yP.button,children:u.jsx(gUe,{width:"18",height:"18"})})]})]})}const w1t="_label_1q3ew_1",k1t={label:w1t};function S1t({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(W,{align:"center",gap:"2",children:u.jsx(Z,{as:"label",className:k1t.label,style:{color:r},children:u.jsxs(W,{gap:"2",children:[u.jsx(K7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}function C1t({onUplot:e}){const[t,n]=Vl(Yfe),r=i=>{n(i),e(o=>{o.redraw(!1,!1)})};return u.jsx(S1t,{label:"Show Projections",checked:t,onCheckedChange:r,color:mN})}const ahe="500px";function j1t(){var a;const e=J(Cn),t=pl(e),n=m.useRef(),r=J(Nb)[To.bank],i=m.useCallback(s=>{n.current=s},[]),o=m.useCallback(s=>n.current&&s(n.current),[]);return!e||!((a=t.response)!=null&&a.transactions)?u.jsx(T1t,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{children:u.jsxs(W,{direction:"column",height:ahe,gap:"2",children:[u.jsxs(W,{gap:"3",children:[u.jsx(kd,{text:"Slot Progression"}),u.jsx(_1t,{onUplot:o}),u.jsx(C1t,{onUplot:o})]}),u.jsxs("div",{className:Fgt.chart,children:[u.jsx(u1t,{slotTransactions:t.response.transactions,maxComputeUnits:t.response.publish.max_compute_units??Ute,bankTileCount:r,onCreate:i}),u.jsx(Qgt,{})]})]})}),u.jsx(b1t,{})]})}function T1t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:ahe,justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Slot Progress..."})})}function she(e,t){return Math.round(e*(t=10**t))/t}const I1t=1,lhe=(e,t,n,r,i)=>she(t+e*(n+i),6);function E1t(e,t,n,r,i){let o=(1-t)/(e-1);(isNaN(o)||o===1/0)&&(o=0);const a=0,s=t/e,l=she(s,6),c=l,d=l;if(r==null)for(let f=0;f=n&&e<=i&&t>=r&&t<=o}const vc=class vc{constructor(t,n,r,i,o=0){$u(this,"x");$u(this,"y");$u(this,"w");$u(this,"h");$u(this,"l");$u(this,"o");$u(this,"q");this.x=t,this.y=n,this.w=r,this.h=i,this.l=o,this.o=[],this.q=null}split(){const t=this.w/2,n=this.h/2,r=this.l+1;this.q=[new vc(this.x+t,this.y,t,n,r),new vc(this.x,this.y,t,n,r),new vc(this.x,this.y+n,t,n,r),new vc(this.x+t,this.y+n,t,n,r)]}quads(t,n,r,i,o){if(!this.q)return;const a=this.x+this.w/2,s=this.y+this.h/2,l=na,f=n+i>s;l&&d&&o(this.q[0]),c&&l&&o(this.q[1]),c&&f&&o(this.q[2]),d&&f&&o(this.q[3])}add(t){if(this.q)this.quads(t.x,t.y,t.w,t.h,n=>n.add(t));else if(this.o.push(t),this.o.length>vc.MAX_OBJECTS&&this.lr.add(n));this.o.length=0}}get(t,n,r,i,o){for(const a of this.o)o(a);this.q&&this.quads(t,n,r,i,a=>a.get(t,n,r,i,o))}clear(){this.o.length=0,this.q=null}};$u(vc,"MAX_OBJECTS",10),$u(vc,"MAX_LEVELS",4);let bP=vc;function uhe(e,t,n=Math.E){return e===0||t===0?0:((e<=0||t<=0)&&(console.error(e,t),console.error("Logarithms are only defined for positive numbers.")),n===Math.E?Math.log(e)-Math.log(t):Math.log(e)/Math.log(n)-Math.log(t)/Math.log(n))}function $1t(e,t){if(Math.trunc(e)!==e){let n=0;for(;Math.trunc(e)!==e;)e*=10,n++;return e/(Math.pow(10,n)*t)}else return e/t}function xP(e){return`${rhe}${e}`}function M1t(e,t){if(t<0||e.txn_mb_start_timestamps_nanos[t]===void 0)return;const n=e.start_timestamp_nanos,r=Number(e.txn_mb_start_timestamps_nanos[t]-n),i=Number(e.txn_preload_end_timestamps_nanos[t]-n),o=Number(e.txn_start_timestamps_nanos[t]-n),a=Number(e.txn_load_end_timestamps_nanos[t]-n),s=Number(e.txn_end_timestamps_nanos[t]-n),l=Number(e.txn_mb_end_timestamps_nanos[t]-n);return{mbStartTs:r,preloadTs:i,txnStartTs:o,loadEndTs:a,txnEndTs:s,mbEndTs:l}}function TS(e,t,n,r){const i={};for(let s=0;s+s).sort((s,l)=>s-l),a=[[-fP],[null],[null]];for(let s=0;s!d(e,c)))a[1].push(null),a[2].push(null);else if(a[1].push(c),c===null)a[2].push(null);else{const d=e.txn_microblock_id[c];a[2][a[2].length-1]===d||a[2][a[2].length-1]===void 0?a[2].push(void 0):a[2].push(d)}}a[0].push(n);for(let s=1;srt.round(o,n);let i=Number(e);return t||(i=Math.abs(i)),Math.abs(i)<1e3?{value:r(i),unit:"ns"}:(i/=1e3,Math.abs(i)<1e3?{value:r(i),unit:"\xB5s"}:(i/=1e3,Math.abs(i)<1e5?{value:r(i),unit:"ms"}:(i/=1e3,Math.abs(i)<120?{value:r(i),unit:"s"}:(i/=60,Math.abs(i)<120?{value:r(i),unit:"m"}:(i/=60,{value:r(i),unit:"h"})))))}const Rs=fe(null,(e,t,n)=>{function r(o){return o.startsWith("bank-")}function i(o,a){const s=Number(a.replace(rhe,""));isNaN(s)||n(o,s)}t(y6,i,{isMatchingChartId:r})}),R1t="landed";function L1t(e,t){return e.txn_landed[t]}const che=fe([]),dhe={},[a_,_P]=function(){const e=fe({...dhe}),t=fe();return[fe(n=>n(e),(n,r,i)=>{if(r(e,i),Object.keys(i).length){const o=new Set;r(Rs,a=>{var s;if((s=a.data[1])!=null&&s.length)for(let l=0;ln(t))]}();function P1t({baseChartData:e,transactions:t,value:n,filterEnum:r,filterFunc:i,mergeMatchingPoints:o}){const a=[null];let s=null;for(let l=1;l{const c={...n(a_)};l===void 0?delete c[e]:c[e]=(f,p)=>t(f,p,l);const d=TS(o,a,s,Object.values(c));i.data.splice(1,1,d[1]),i.data.splice(2,1,d[2]),i.setData(i.data,!1),r(a_,c),i.redraw(!0,!0)})}function IS(e,t){function n(r,i,o){switch(o){case"All":return!0;case"Yes":return t(r,i);case"No":return!t(r,i)}}return fhe(e,n)}const O1t=IS("error",(e,t)=>e.txn_error_code[t]!==0),z1t=IS("bundle",(e,t)=>e.txn_from_bundle[t]),D1t=IS(R1t,L1t),A1t=IS("simple",(e,t)=>e.txn_is_simple_vote[t]),F1t=fhe("arrival",(e,t,{min:n,max:r})=>{const i=Number(e.txn_arrival_timestamps_nanos[t]-e.start_timestamp_nanos);return(n===void 0||i>=n)&&i<=r});let ES={};function U1t(e,t){Object.values(ES).forEach(n=>n(e,t))}function B1t(){ES={}}function s_(e,t,n){return fe(null,(r,i,o,a,s,l)=>{function c(d,f){const p=d.data.length,v=r(che),x=P1t({filterEnum:e,filterFunc:t,transactions:a,baseChartData:v[f],value:l,mergeMatchingPoints:n});d.data.splice(p,0,x),d.addSeries({...d.series[1],label:`${e}`},p),whe(d.series.filter(y=>y.show).length-1),d.setData(d.data,!1),r(NS)===void 0&&d.redraw(!0,!0)}ES[e]=c,c(o,s)})}const W1t=s_(Ci.FEES,(e,t)=>!!Number(e.txn_priority_fee[t]+e.txn_transaction_fee[t])),V1t=s_(Ci.TIPS,(e,t)=>!!Number(e.txn_tips[t])),H1t=s_(Ci.CUS_CONSUMED,(e,t)=>!!e.txn_compute_units_consumed[t]),Z1t=s_(Ci.CUS_REQUESTED,(e,t,n)=>!!e.txn_compute_units_requested[t]),q1t=s_(Ci.INCOME_CUS,(e,t)=>e.txn_compute_units_consumed[t]>0&&Number(md(e,t))/e.txn_compute_units_consumed[t]>0),l_=fe(null,(e,t,n,r)=>{const i=n.series.findIndex(o=>o.label===`${r}`);i!==-1&&(n.delSeries(i),n.data.splice(i,1),whe(n.data.length-1),n.setData(n.data,!1),e(NS)===void 0&&n.redraw(!0,!0),delete ES[r])}),wP=fe(1),NS=fe(),G1t=0,Id=1,hhe=2;function u_(e){return e===G1t}function $S(e){return e===Id}function MS(e){return e===hhe}function phe(e){return e>hhe}function mhe(e,t,n=2){const r=10n**BigInt(n),i=e*r/t;return Number(i)/Number(r)}function RS(e,t){return function(n){return n.current?e(n.current).reduce((r,i,o)=>i>r?i:r,t):t}}const Y1t=RS(e=>e.txn_priority_fee.map((t,n)=>t+e.txn_transaction_fee[n]),0n),K1t=RS(e=>e.txn_tips,0n),X1t=RS(e=>e.txn_compute_units_consumed,0),J1t=RS(e=>e.txn_compute_units_requested,0);function ghe(e,t){if(!e.txn_landed[t])return 0;const n=e.txn_compute_units_consumed[t];return n?Number(md(e,t))/n:0}function vhe(e){const t=e.txn_priority_fee.reduce((r,i,o)=>{if(!e)return r;const a=ghe(e,o);return r[a]??(r[a]=[]),r[a].push(o),r},{}),n=Object.keys(t).sort((r,i)=>Number(i)-Number(r));return{rankings:n.reduce((r,i,o)=>{const a=t[i];for(const s of a)r.set(s,o+1);return r},new Map),totalRanks:n.length}}function Q1t(e){if(!e.current)return new Map;const{rankings:t,totalRanks:n}=vhe(e.current);for(const[r,i]of t)t.set(r,(n-i+1)/n);return t}const evt=1,tvt=I1t;let yhe=0;const bhe=.5,nvt=1.3;let S1;function kP(e){S1=e}let C1="";function xhe(e){C1=e}let SP;function _he(e){SP=e}let Ed=0;const whe=e=>{Ed=e-1,ca().set(wP,Ed)};function rvt(e,t){let n=0n,r=0n,i=0,o=0,a=new Map;function s(){n=Y1t(e)}function l(){r=K1t(e)}function c(){i=X1t(e)}function d(){o=J1t(e)}function f(){a=Q1t(e)}Ed=1;const p={mode:1,fill:(P,X,A,Y)=>{var F,H,ee,ce;if(!e.current)return{fill:""};if(u_(X))return{fill:""};if($S(X))return{fill:i1t[!P||!e.current?dn.DEFAULT:ihe(P[0][A],e.current,Y,(F=t[Y])==null?void 0:F.bundleTxnIdx)],brightness:SP===P[Id][A]?nvt:void 0};if(MS(X))return{fill:""};if(Y===Ci.FEES){const B=P[Id][A]??-1,ae=e.current.txn_priority_fee[B]+e.current.txn_transaction_fee[B];if(!ae)return{fill:""};const je=mhe(ae,n,4);return{fill:`rgba(76, 204, 230, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.TIPS){const B=P[Id][A]??-1,ae=(H=e.current)==null?void 0:H.txn_tips[B];if(!ae)return{fill:""};const je=mhe(ae,r,4);return{fill:`rgba(31, 216, 164, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.CUS_REQUESTED){const B=P[Id][A]??-1,ae=(ee=e.current)==null?void 0:ee.txn_compute_units_requested[B];if(!ae)return{fill:""};const je=ae/o;return{fill:`rgba(255, 141, 204, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.CUS_CONSUMED){const B=P[Id][A]??-1,ae=(ce=e.current)==null?void 0:ce.txn_compute_units_consumed[B];if(!ae)return{fill:""};const je=ae/i;return{fill:`rgba(209, 157, 255, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.INCOME_CUS){const B=P[Id][A]??-1,ae=a.get(B)??0;return{fill:`rgba(158, 177, 255, ${Math.max(Math.min(.8,ae),.3)})`}}return{fill:""}},stroke:(P,X,A,Y)=>{var F,H,ee;if(u_(X)||$S(X))return"";if(MS(X)){const ce=P[Id][A]??-1,B=(F=e.current)==null?void 0:F.txn_error_code[ce];return S1?B===S1&&(!C1||((H=e.current)==null?void 0:H.txn_source_tpu[ce])===C1)?"rgba(162,5,8, .8)":B?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":C1?((ee=e.current)==null?void 0:ee.txn_source_tpu[ce])===C1&&(!S1||B===S1)?B?"rgba(162,5,8, .8)":"rgba(19,173,79, .8)":B?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":B?"rgba(162,5,8, .5)":"rgba(19,173,79, .5)"}return""}},{mode:v,fill:x,stroke:y}=p;function b(P,X,A,Y){E1t(X,evt,tvt,P,(F,H,ee)=>{const ce=A*H,B=A*ee;Y(F,ce,B)})}const w=[.6,1/0];1-w[0];function _(){(w[1]??1/0)*jn.pxRatio}_();const S=new Map,C=new Map;function j(P){let X;const A=SP!==void 0;A&&(P.filter=`brightness(${bhe})`),S.forEach(({path:Y,brightness:F,fill:H})=>{H&&(A&&F!==X&&(P.filter=`brightness(${F??bhe})`,X=F),P.fillStyle=H,P.fill(Y))}),P.filter="",C.forEach((Y,F)=>{F&&(P.strokeStyle=F,P.stroke(Y))}),S.clear(),C.clear()}function T(P,X,A,Y,F,H,ee,ce,B,ae,je,me,ke){var $e,pe,ye;if(!e.current)return;const he=je+1,ue=x(P,he,me,ke);let re=S.get(ue.fill+ue.brightness);const ge=P[Id][me];if(ge!=null){if(phe(he)){if(ke===Ci.FEES){const Se=e.current.txn_priority_fee[ge]+e.current.txn_transaction_fee[ge];if(Se!==void 0){let Ce=1/uhe(Number(n),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.TIPS){const Se=($e=e.current)==null?void 0:$e.txn_tips[ge];if(Se!==void 0){let Ce=1/uhe(Number(r),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.CUS_CONSUMED){const Se=(pe=e.current)==null?void 0:pe.txn_compute_units_consumed[ge];if(Se!==void 0){let Ce=Se/i;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.CUS_REQUESTED){const Se=(ye=e.current)==null?void 0:ye.txn_compute_units_requested[ge];if(Se!==void 0){let Ce=Se/o;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Ue=B*Ce,Ge=B-Ue;B-=Ge,ee+=Ge}}if(ke===Ci.INCOME_CUS){let Se=a.get(ge)??0;Se>.9&&(Se=.95),Se<.1&&(Se=.1);const Ce=B*Se,Ue=B-Ce;B-=Ue,ee+=Ue}}if(re==null&&S.set(ue.fill+ue.brightness,re={path:new Path2D,fill:ue.fill,brightness:ue.brightness}),A(re.path,H,ee,ce,B),ae){const Se=y(P,he,me,ke);let Ce=C.get(Se);Ce==null&&C.set(Se,Ce=new Path2D),A(Ce,H+ae/2,ee+ae/2,ce-ae,B-ae)}MS(he)||$.add({x:rt.round(H-Y),y:rt.round(ee-F),w:ce,h:B,sidx:je+(je>1?2:1),didx:me})}}function E(P,X,A,Y){return jn.orient(P,X,(F,H,ee,ce,B,ae,je,me,ke,he,ue,re,ge,$e)=>{const pe=rt.round((F.width||0)*jn.pxRatio);P.ctx.save(),$e(P.ctx,P.bbox.left,P.bbox.top,P.bbox.width,P.bbox.height),P.ctx.clip(),b(X-1,Ed,ue,(ye,Se,Ce)=>{(u_(X)||$S(X))&&Ce&&(yhe=Ce),u_(X)||$S(X)||(Se-=yhe);for(let Ue=0;Ue=P.bbox.left&&Ge<=P.bbox.left+P.bbox.width){const ut=P.scales[Vt].min!=null&&P.scales[Vt].max!=null?4e8/(P.scales[Vt].max-P.scales[Vt].min):void 0;T(P.data,P.ctx,$e,me,ke,Ge,rt.round(ke+Se)+10,phe(X)?Math.max(3,Math.min(St-Ge,ut??1)):St-Ge,rt.round(Ce)-20,pe,ye,Ue,ee[Ue]??0)}Ue=_t-1}}),P.ctx.lineWidth=pe,j(P.ctx),P.ctx.restore()}),null}let $;const D=Array(Ed).fill(null),M=Array(Ed).fill(0),O=Array(Ed).fill(0),te=jn.fmtDate("{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}");let q=null;return{hooks:{init:P=>{q=P.root.querySelector(".u-series:first-child .u-value"),window.addEventListener("dppxchange",_),s(),l(),c(),d(),f()},destroy:P=>{window.removeEventListener("dppxchange",_)},drawClear:P=>{$=$||new bP(0,0,P.bbox.width,P.bbox.height),$.clear(),P.series.forEach(X=>{X._paths=null})},setCursor:P=>{{const X=P.posToVal(P.cursor.left??0,Vt);q&&(q.textContent=P.scales[Vt].time?te(new Date(X*1e3)):X.toFixed(2))}}},opts:(P,X)=>{jn.assign(X,{cursor:{sync:{key:Vt},y:!1,dataIdx:(A,Y,F,H)=>{var ce;if(u_(Y)||MS(Y))return F;const ee=rt.round(A.cursor.left*jn.pxRatio);if(ee>=0){const B=M[Y-1];D[Y-1]=null,$.get(ee,B,1,1,ae=>{N1t(ee,B,ae.x,ae.y,ae.x+ae.w,ae.y+ae.h)&&(D[Y-1]=ae)})}return(ce=D[Y-1])==null?void 0:ce.didx},points:{fill:"rgba(255,255,255,0.2)",bbox:(A,Y)=>{const F=D[Y-1],H={left:F?rt.round(F.x/devicePixelRatio):-10,top:F?rt.round(F.y/devicePixelRatio):-10,width:F?rt.round(F.w/devicePixelRatio):0,height:F?rt.round(F.h/devicePixelRatio):0},ee=rt.round((A.bbox.left+A.bbox.width)/devicePixelRatio)-H.left-10;return H.width>ee&&(H.width=ee),H}}},scales:{[Vt]:{range(A,Y,F){return[Y,F]}},y:{range:[0,1]}}}),X.axes&&jn.assign(X.axes[0],{splits:null,grid:{show:v!==2}}),X.axes&&jn.assign(X.axes[1],{splits:(A,Y)=>(b(null,Ed,A.bbox.height,(F,H,ee)=>{M[F]=rt.round(H+ee/2),O[F]=A.posToVal(M[F]/jn.pxRatio,"y")}),O),values:()=>Array(Ed).fill(null).map((A,Y)=>P.series[Y+1].label),gap:5,size:0,grid:{show:!1},ticks:{show:!1},side:3}),X.series.forEach((A,Y)=>{Y>0&&jn.assign(A,{paths:E,points:{show:!1}})})}}}const ivt="_group-label_1cg9k_1",ovt="_min-text-width_1cg9k_4",avt="_group_1cg9k_1",svt="_tooltip-open_1cg9k_15",lvt="_item_1cg9k_18",uvt="_item-color_1cg9k_65",j1={groupLabel:ivt,minTextWidth:ovt,group:avt,tooltipOpen:svt,item:lvt,itemColor:uvt},cvt="_slider_zs58s_1",dvt="_arrival-label_zs58s_68",fvt="_minimize-button_zs58s_77",hvt="_chart-control-tooltip_zs58s_83",c_={slider:cvt,arrivalLabel:dvt,minimizeButton:fvt,chartControlTooltip:hvt},LS=m.forwardRef(pvt);function pvt({label:e,options:t,value:n,onChange:r,isTooltipOpen:i,closeTooltip:o,optionColors:a,hasMinTextWidth:s},l){const c=m.useRef(new Map);return m.useImperativeHandle(l,()=>({focus:d=>{var f;(f=c.current.get(d))==null||f.focus()}}),[]),u.jsxs(W,{align:"center",children:[e&&u.jsx(Z,{className:Te(j1.groupLabel,{[j1.minTextWidth]:s}),children:e}),u.jsx(ci,{className:c_.chartControlTooltip,content:`Applied "${n}"`,open:!!i,side:"bottom",children:u.jsx(M7,{className:Te(j1.group,i&&j1.tooltipOpen),type:"single",value:n,"aria-label":e,onValueChange:d=>d&&r(d),children:t.map(d=>u.jsxs(B0,{ref:f=>{f?c.current.set(d,f):c.current.delete(d)},className:j1.item,value:d,"aria-label":d,onBlur:o,children:[(a==null?void 0:a[d])&&u.jsx("div",{className:j1.itemColor,style:{background:a[d]}}),d]},d))})})]})}const mvt="_label_1q3ew_1",CP={label:mvt};function d_({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(W,{align:"center",gap:"2",children:u.jsx(Z,{as:"label",className:CP.label,style:{color:r},children:u.jsxs(W,{gap:"2",children:[u.jsx(K7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}const jP=fe(-1),TP=fe(dn.DEFAULT);var khe=1,gvt=.9,vvt=.8,yvt=.17,IP=.1,EP=.999,bvt=.9999,xvt=.99,_vt=/[\\\/_+.#"@\[\(\{&]/,wvt=/[\\\/_+.#"@\[\(\{&]/g,kvt=/[\s-]/,She=/[\s-]/g;function NP(e,t,n,r,i,o,a){if(o===t.length)return i===e.length?khe:xvt;var s=`${i},${o}`;if(a[s]!==void 0)return a[s];for(var l=r.charAt(o),c=n.indexOf(l,i),d=0,f,p,v,x;c>=0;)f=NP(e,t,n,r,c+1,o+1,a),f>d&&(c===i?f*=khe:_vt.test(e.charAt(c-1))?(f*=vvt,v=e.slice(i,c-1).match(wvt),v&&i>0&&(f*=Math.pow(EP,v.length))):kvt.test(e.charAt(c-1))?(f*=gvt,x=e.slice(i,c-1).match(She),x&&i>0&&(f*=Math.pow(EP,x.length))):(f*=yvt,i>0&&(f*=Math.pow(EP,c-i))),e.charAt(c)!==t.charAt(o)&&(f*=bvt)),(ff&&(f=p*IP)),f>d&&(d=f),c=n.indexOf(l,c+1);return a[s]=d,d}function Che(e){return e.toLowerCase().replace(She," ")}function Svt(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,NP(e,t,Che(e),Che(t),0,0,{})}var Cvt=Symbol.for("react.lazy"),PS=mj[" use ".trim().toString()];function jvt(e){return typeof e=="object"&&e!==null&&"then"in e}function jhe(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Cvt&&"_payload"in e&&jvt(e._payload)}function Tvt(e){const t=Ivt(e),n=m.forwardRef((r,i)=>{let{children:o,...a}=r;jhe(o)&&typeof PS=="function"&&(o=PS(o._payload));const s=m.Children.toArray(o),l=s.find(Nvt);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}function Ivt(e){const t=m.forwardRef((n,r)=>{let{children:i,...o}=n;if(jhe(i)&&typeof PS=="function"&&(i=PS(i._payload)),m.isValidElement(i)){const a=Mvt(i),s=$vt(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Evt=Symbol("radix.slottable");function Nvt(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Evt}function $vt(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function Mvt(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Rvt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],hh=Rvt.reduce((e,t)=>{const n=Tvt(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),f_='[cmdk-group=""]',$P='[cmdk-group-items=""]',Lvt='[cmdk-group-heading=""]',The='[cmdk-item=""]',Ihe=`${The}:not([aria-disabled="true"])`,MP="cmdk-item-select",T1="data-value",Pvt=(e,t,n)=>Svt(e,t,n),Ehe=m.createContext(void 0),h_=()=>m.useContext(Ehe),Nhe=m.createContext(void 0),RP=()=>m.useContext(Nhe),$he=m.createContext(void 0),Mhe=m.forwardRef((e,t)=>{let n=I1(()=>{var B,ae;return{search:"",value:(ae=(B=e.value)!=null?B:e.defaultValue)!=null?ae:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=I1(()=>new Set),i=I1(()=>new Map),o=I1(()=>new Map),a=I1(()=>new Set),s=Rhe(e),{label:l,children:c,value:d,onValueChange:f,filter:p,shouldFilter:v,loop:x,disablePointerSelection:y=!1,vimBindings:b=!0,...w}=e,_=wo(),S=wo(),C=wo(),j=m.useRef(null),T=Zvt();Mm(()=>{if(d!==void 0){let B=d.trim();n.current.value=B,E.emit()}},[d]),Mm(()=>{T(6,q)},[]);let E=m.useMemo(()=>({subscribe:B=>(a.current.add(B),()=>a.current.delete(B)),snapshot:()=>n.current,setState:(B,ae,je)=>{var me,ke,he,ue;if(!Object.is(n.current[B],ae)){if(n.current[B]=ae,B==="search")te(),M(),T(1,O);else if(B==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(C);re?re.focus():(me=document.getElementById(_))==null||me.focus()}if(T(7,()=>{var re;n.current.selectedItemId=(re=P())==null?void 0:re.id,E.emit()}),je||T(5,q),((ke=s.current)==null?void 0:ke.value)!==void 0){let re=ae??"";(ue=(he=s.current).onValueChange)==null||ue.call(he,re);return}}E.emit()}},emit:()=>{a.current.forEach(B=>B())}}),[]),$=m.useMemo(()=>({value:(B,ae,je)=>{var me;ae!==((me=o.current.get(B))==null?void 0:me.value)&&(o.current.set(B,{value:ae,keywords:je}),n.current.filtered.items.set(B,D(ae,je)),T(2,()=>{M(),E.emit()}))},item:(B,ae)=>(r.current.add(B),ae&&(i.current.has(ae)?i.current.get(ae).add(B):i.current.set(ae,new Set([B]))),T(3,()=>{te(),M(),n.current.value||O(),E.emit()}),()=>{o.current.delete(B),r.current.delete(B),n.current.filtered.items.delete(B);let je=P();T(4,()=>{te(),(je==null?void 0:je.getAttribute("id"))===B&&O(),E.emit()})}),group:B=>(i.current.has(B)||i.current.set(B,new Set),()=>{o.current.delete(B),i.current.delete(B)}),filter:()=>s.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:_,inputId:C,labelId:S,listInnerRef:j}),[]);function D(B,ae){var je,me;let ke=(me=(je=s.current)==null?void 0:je.filter)!=null?me:Pvt;return B?ke(B,n.current.search,ae):0}function M(){if(!n.current.search||s.current.shouldFilter===!1)return;let B=n.current.filtered.items,ae=[];n.current.filtered.groups.forEach(me=>{let ke=i.current.get(me),he=0;ke.forEach(ue=>{let re=B.get(ue);he=Math.max(re,he)}),ae.push([me,he])});let je=j.current;X().sort((me,ke)=>{var he,ue;let re=me.getAttribute("id"),ge=ke.getAttribute("id");return((he=B.get(ge))!=null?he:0)-((ue=B.get(re))!=null?ue:0)}).forEach(me=>{let ke=me.closest($P);ke?ke.appendChild(me.parentElement===ke?me:me.closest(`${$P} > *`)):je.appendChild(me.parentElement===je?me:me.closest(`${$P} > *`))}),ae.sort((me,ke)=>ke[1]-me[1]).forEach(me=>{var ke;let he=(ke=j.current)==null?void 0:ke.querySelector(`${f_}[${T1}="${encodeURIComponent(me[0])}"]`);he==null||he.parentElement.appendChild(he)})}function O(){let B=X().find(je=>je.getAttribute("aria-disabled")!=="true"),ae=B==null?void 0:B.getAttribute(T1);E.setState("value",ae||void 0)}function te(){var B,ae,je,me;if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ke=0;for(let he of r.current){let ue=(ae=(B=o.current.get(he))==null?void 0:B.value)!=null?ae:"",re=(me=(je=o.current.get(he))==null?void 0:je.keywords)!=null?me:[],ge=D(ue,re);n.current.filtered.items.set(he,ge),ge>0&&ke++}for(let[he,ue]of i.current)for(let re of ue)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(he);break}n.current.filtered.count=ke}function q(){var B,ae,je;let me=P();me&&(((B=me.parentElement)==null?void 0:B.firstChild)===me&&((je=(ae=me.closest(f_))==null?void 0:ae.querySelector(Lvt))==null||je.scrollIntoView({block:"nearest"})),me.scrollIntoView({block:"nearest"}))}function P(){var B;return(B=j.current)==null?void 0:B.querySelector(`${The}[aria-selected="true"]`)}function X(){var B;return Array.from(((B=j.current)==null?void 0:B.querySelectorAll(Ihe))||[])}function A(B){let ae=X()[B];ae&&E.setState("value",ae.getAttribute(T1))}function Y(B){var ae;let je=P(),me=X(),ke=me.findIndex(ue=>ue===je),he=me[ke+B];(ae=s.current)!=null&&ae.loop&&(he=ke+B<0?me[me.length-1]:ke+B===me.length?me[0]:me[ke+B]),he&&E.setState("value",he.getAttribute(T1))}function F(B){let ae=P(),je=ae==null?void 0:ae.closest(f_),me;for(;je&&!me;)je=B>0?Vvt(je,f_):Hvt(je,f_),me=je==null?void 0:je.querySelector(Ihe);me?E.setState("value",me.getAttribute(T1)):Y(B)}let H=()=>A(X().length-1),ee=B=>{B.preventDefault(),B.metaKey?H():B.altKey?F(1):Y(1)},ce=B=>{B.preventDefault(),B.metaKey?A(0):B.altKey?F(-1):Y(-1)};return m.createElement(hh.div,{ref:t,tabIndex:-1,...w,"cmdk-root":"",onKeyDown:B=>{var ae;(ae=w.onKeyDown)==null||ae.call(w,B);let je=B.nativeEvent.isComposing||B.keyCode===229;if(!(B.defaultPrevented||je))switch(B.key){case"n":case"j":{b&&B.ctrlKey&&ee(B);break}case"ArrowDown":{ee(B);break}case"p":case"k":{b&&B.ctrlKey&&ce(B);break}case"ArrowUp":{ce(B);break}case"Home":{B.preventDefault(),A(0);break}case"End":{B.preventDefault(),H();break}case"Enter":{B.preventDefault();let me=P();if(me){let ke=new Event(MP);me.dispatchEvent(ke)}}}}},m.createElement("label",{"cmdk-label":"",htmlFor:$.inputId,id:$.labelId,style:Gvt},l),OS(e,B=>m.createElement(Nhe.Provider,{value:E},m.createElement(Ehe.Provider,{value:$},B))))}),Ovt=m.forwardRef((e,t)=>{var n,r;let i=wo(),o=m.useRef(null),a=m.useContext($he),s=h_(),l=Rhe(e),c=(r=(n=l.current)==null?void 0:n.forceMount)!=null?r:a==null?void 0:a.forceMount;Mm(()=>{if(!c)return s.item(i,a==null?void 0:a.id)},[c]);let d=Lhe(i,o,[e.value,e.children,o],e.keywords),f=RP(),p=ph(T=>T.value&&T.value===d.current),v=ph(T=>c||s.filter()===!1?!0:T.search?T.filtered.items.get(i)>0:!0);m.useEffect(()=>{let T=o.current;if(!(!T||e.disabled))return T.addEventListener(MP,x),()=>T.removeEventListener(MP,x)},[v,e.onSelect,e.disabled]);function x(){var T,E;y(),(E=(T=l.current).onSelect)==null||E.call(T,d.current)}function y(){f.setState("value",d.current,!0)}if(!v)return null;let{disabled:b,value:w,onSelect:_,forceMount:S,keywords:C,...j}=e;return m.createElement(hh.div,{ref:zl(o,t),...j,id:i,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!p,"data-disabled":!!b,"data-selected":!!p,onPointerMove:b||s.getDisablePointerSelection()?void 0:y,onClick:b?void 0:x},e.children)}),zvt=m.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...o}=e,a=wo(),s=m.useRef(null),l=m.useRef(null),c=wo(),d=h_(),f=ph(v=>i||d.filter()===!1?!0:v.search?v.filtered.groups.has(a):!0);Mm(()=>d.group(a),[]),Lhe(a,s,[e.value,e.heading,l]);let p=m.useMemo(()=>({id:a,forceMount:i}),[i]);return m.createElement(hh.div,{ref:zl(s,t),...o,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&m.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),OS(e,v=>m.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},m.createElement($he.Provider,{value:p},v))))}),Dvt=m.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=m.useRef(null),o=ph(a=>!a.search);return!n&&!o?null:m.createElement(hh.div,{ref:zl(i,t),...r,"cmdk-separator":"",role:"separator"})}),Avt=m.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,o=RP(),a=ph(c=>c.search),s=ph(c=>c.selectedItemId),l=h_();return m.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),m.createElement(hh.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":s,id:l.inputId,type:"text",value:i?e.value:a,onChange:c=>{i||o.setState("search",c.target.value),n==null||n(c.target.value)}})}),Fvt=m.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...i}=e,o=m.useRef(null),a=m.useRef(null),s=ph(c=>c.selectedItemId),l=h_();return m.useEffect(()=>{if(a.current&&o.current){let c=a.current,d=o.current,f,p=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let v=c.offsetHeight;d.style.setProperty("--cmdk-list-height",v.toFixed(1)+"px")})});return p.observe(c),()=>{cancelAnimationFrame(f),p.unobserve(c)}}},[]),m.createElement(hh.div,{ref:zl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:l.listId},OS(e,c=>m.createElement("div",{ref:zl(a,l.listInnerRef),"cmdk-list-sizer":""},c)))}),Uvt=m.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:o,container:a,...s}=e;return m.createElement(AB,{open:n,onOpenChange:r},m.createElement(FB,{container:a},m.createElement(UB,{"cmdk-overlay":"",className:i}),m.createElement(BB,{"aria-label":e.label,"cmdk-dialog":"",className:o},m.createElement(Mhe,{ref:t,...s}))))}),Bvt=m.forwardRef((e,t)=>ph(n=>n.filtered.count===0)?m.createElement(hh.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Wvt=m.forwardRef((e,t)=>{let{progress:n,children:r,label:i="Loading...",...o}=e;return m.createElement(hh.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},OS(e,a=>m.createElement("div",{"aria-hidden":!0},a)))}),gu=Object.assign(Mhe,{List:Fvt,Item:Ovt,Input:Avt,Group:zvt,Separator:Dvt,Dialog:Uvt,Empty:Bvt,Loading:Wvt});function Vvt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Hvt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Rhe(e){let t=m.useRef(e);return Mm(()=>{t.current=e}),t}var Mm=typeof window>"u"?m.useEffect:m.useLayoutEffect;function I1(e){let t=m.useRef();return t.current===void 0&&(t.current=e()),t}function ph(e){let t=RP(),n=()=>e(t.snapshot());return m.useSyncExternalStore(t.subscribe,n,n)}function Lhe(e,t,n,r=[]){let i=m.useRef(),o=h_();return Mm(()=>{var a;let s=(()=>{var c;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(c=d.current.textContent)==null?void 0:c.trim():i.current}})(),l=r.map(c=>c.trim());o.value(e,s,l),(a=t.current)==null||a.setAttribute(T1,s),i.current=s}),i}var Zvt=()=>{let[e,t]=m.useState(),n=I1(()=>new Map);return Mm(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,i)=>{n.current.set(r,i),t({})}};function qvt(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function OS({asChild:e,children:t},n){return e&&m.isValidElement(t)?m.cloneElement(qvt(t),{ref:t.ref},n(t.props.children)):n(t)}var Gvt={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Yvt="_dropdownButton_1yasw_1",Kvt="_input-container_1yasw_6",Xvt="_sm_1yasw_20",Jvt="_content_1yasw_68",Qvt="_tooltip-open_1yasw_135",E1={dropdownButton:Yvt,inputContainer:Kvt,sm:Xvt,content:Jvt,tooltipOpen:Qvt},eyt="_text_1k6sv_1",tyt="_faded_1k6sv_7",nyt="_ellipsis_1k6sv_11",LP={text:eyt,faded:tyt,ellipsis:nyt};function Phe({textSegments:e,truncateLastSegment:t}){return u.jsx(W,{flexGrow:"1",minWidth:"0",maxWidth:"100%",wrap:"nowrap",className:LP.text,"aria-label":e.map(({text:n})=>n).join(""),children:e.map(({text:n,faded:r},i)=>n?u.jsx(Z,{className:Te({[LP.faded]:r,[LP.ellipsis]:i===e.length-1&&t}),children:n},i):null)})}const p_=8,ryt=2,Ohe=2;function iyt(e,{signature:t,optionValue:n,txnIdxCount:r}){const i=r>1,o=e.trim().toLowerCase(),a=n.toLowerCase(),s=v=>{i&&v.push({text:`${uk}(${r})`,faded:!0})};if(o.length===a.length||o.length>p_){const v=[{text:`${t.substring(0,p_)}...${t.substring(t.length-p_)}`}];return s(v),v}const l=a.indexOf(o),c=l+o.length,d=[{start:0,end:Math.min(p_,t.length)},{start:Math.max(0,Math.min(l-Ohe,t.length)),end:Math.min(t.length,Math.min(c+Ohe,t.length))},{start:Math.max(0,t.length-p_),end:t.length}].filter(v=>v.end>v.start).sort((v,x)=>v.start-x.start),f=[];for(const v of d){if(!f.length){f.push({...v});continue}const x=f[f.length-1],y=v.start-x.end;y<=0||y<=ryt?x.end=Math.max(x.end,v.end):f.push({...v})}const p=[];for(let v=0;v0&&p.push({text:"...",faded:!0});const y=Math.max(x.start,Math.min(l,x.end)),b=Math.max(x.start,Math.min(c,x.end));b>y?(x.startv)}function oyt(e){return function(t){return u.jsx(Phe,{textSegments:iyt(t,e)})}}function zhe(e,t){if(t=t.trim(),!t)return;if(t.includes(".")){const s=e.indexOf(t);return s<0?void 0:{startIdx:s,endIdx:s+t.length}}const n=[];let r="";for(let s=0;s="0"&&l<="9"&&(r+=l,n.push(s))}const i=r.indexOf(t);if(i<0)return;const o=n[i],a=n[i+t.length-1]+1;return{startIdx:o,endIdx:a}}function ayt(e,t,n){return function(r){const i=zhe(e,r),o=t>1,a=(i==null?void 0:i.startIdx)??-1,s=(i==null?void 0:i.endIdx)??-1,l=[{text:e.substring(0,a),faded:!0},{text:e.substring(a,s)},{text:e.substring(s),faded:!0},{text:o?`${uk}(${t})`:"",faded:!0},{text:n?`${uk}${n}`:""}];return u.jsx(Phe,{textSegments:l,truncateLastSegment:!0})}}const syt=["All","Success","Errors"],PP=["All","Yes","No"];var Mn=(e=>(e.TxnSignature="Txn Sig",e.Error="Error",e.Income="Income",e.Ip="IPv4",e.Tpu="TPU",e))(Mn||{});const lyt="errorState",OP="bundle",uyt="landed",cyt="vote",zP="focusBank",m_="search",Dhe="arrival",dyt={triggerControl:()=>{},registerControl:()=>()=>{},resetControl:()=>{},resetAllControls:()=>{}},N1=m.createContext(dyt);function zS(e,t,n){const{registerControl:r}=m.useContext(N1),i=m.useRef(t);i.current=t;const o=m.useRef(n);o.current=n;const[a,s]=m.useState(!1),l=m.useCallback(()=>s(!1),[]);return m.useEffect(()=>r(e,c=>{i.current(c),s(!0)},()=>{o.current(),s(!1)}),[e,r]),{isTooltipOpen:a,closeTooltip:l}}const fyt=30,hyt=20,Ahe=[Mn.TxnSignature,Mn.Ip],Fhe=[Mn.Income],Uhe=[Mn.TxnSignature,Mn.Error,Mn.Income,Mn.Ip,Mn.Tpu],pyt={[Mn.TxnSignature]:"2ZwHLf3Qw7ZE8s3PWW81ELCmGiVhaDS9LWMK4McGL9ySmqvTZSZf3S9EWks4TFbyJt7U6i5RPuLk7PgWVBdy9HY5",[Mn.Error]:"",[Mn.Income]:"Rank #",[Mn.Ip]:"192.0.2.1",[Mn.Tpu]:"udp"};function Bhe({transactions:e,size:t="lg"}){const n=m.useRef(null),[r,i]=m.useState(!1),[o,a]=m.useState(!1),[s,l]=m.useState(""),[c,d]=Bie(s,500),[f,p]=m.useState(),[v,x]=m.useState(Mn.TxnSignature),y=J(_P),b=J(JN),w=J(jg),_=Ee(Rs),S=m.useRef(null),C=m.useRef(null),j=m.useRef(!1),{triggerControl:T,resetControl:E}=m.useContext(N1),$=m.useCallback(ye=>{const Se=ye.mode===Mn.TxnSignature?e.txn_signature:ye.mode===Mn.Ip?e.txn_source_ipv4:void 0;return Se?Se.reduce((Ce,Ue,Ge)=>(Ue===ye.text&&Ce.push(Ge),Ce),[]):[]},[e.txn_signature,e.txn_source_ipv4]),D=m.useCallback(ye=>{var Ge,_t,St;const Se=e.txn_bank_idx[ye],Ce=document.getElementById(xP(Se)),Ue=(Ge=Ce==null?void 0:Ce.getElementsByTagName("canvas"))==null?void 0:Ge[0];if(Ce&&Ue){if(!Lze(Ue)){Ue.scrollIntoView({block:"nearest"});const ut=Ue.getBoundingClientRect(),ct=(_t=document.getElementById("transaction-bars-controls"))==null?void 0:_t.getBoundingClientRect();ct&&ct.top-epe<=0&&ut.top{if(Se!==ct){ut.redraw();return}const bt=ut.scales[Vt],Qe=bt.min??-1/0,Ke=bt.max??1/0,De=Ke-Qe,Dt=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye-1]!==e.txn_microblock_id[ye],pn=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye+1]!==e.txn_microblock_id[ye],Yn=Number((Dt||!e.txn_from_bundle[ye]?e.txn_mb_start_timestamps_nanos[ye]:e.txn_preload_end_timestamps_nanos[ye])-e.start_timestamp_nanos),hr=Number((pn||!e.txn_from_bundle[ye]?e.txn_mb_end_timestamps_nanos[ye]:e.txn_end_timestamps_nanos[ye])-e.start_timestamp_nanos),Kn=(hr-Yn)*fyt,kr=(hr-Yn)*hyt,On=hrKe,Mr=De>Kn,tr=De{if(On||Mr||tr){let Sr=Math.max(ut.data[0][0],Yn-Kn/2);const ri=Sr+Kn;ri>ut.data[0][ut.data[0].length-1]&&(Sr=ri-Kn),ut.setScale(Vt,{min:Sr,max:ri})}_he(ye)})})},[e,T,_]),M=m.useCallback(ye=>{const Se={current:0,total:ye.length-1,txnIdxs:ye};p(Se);const Ce=ye[Se.current];D(Ce)},[D]),O=m.useCallback(ye=>{var Ce;const Se=$(ye);Se.length&&(l(ye.text),x(ye.mode),M(Se),j.current=!0,(Ce=n.current)==null||Ce.focus())},[$,M]),te=m.useCallback(()=>{E(zP),E(Dhe),_he(void 0),p(void 0),a(!1)},[E]),q=m.useCallback(()=>{te(),l(""),d(""),_((ye,Se)=>{ye.setScale(Vt,{min:ye.data[0][0],max:ye.data[0][ye.data[0].length-1]})})},[te,d,_]),{isTooltipOpen:P,closeTooltip:X}=zS(m_,O,q);m.useEffect(()=>{y&&(f!=null&&f.txnIdxs.some(ye=>!y.has(ye)))&&q()},[y,q,f==null?void 0:f.txnIdxs]),m.useEffect(()=>{f===void 0&&Fhe.includes(v)&&x(Uhe[0])},[f,v]);const A=m.useCallback((ye,Se,Ce)=>ye.reduce((Ue,Ge,_t)=>{var ct;if(y&&!y.has(_t)||Ce!=null&&Ce(Ge))return Ue;const St=((ct=Ue[Ge])==null?void 0:ct.txnIdxs)??[];St.push(_t);const ut=Se(Ge,St);return Ue[Ge]=ut,Ue},{}),[y]),Y=m.useMemo(()=>A(e.txn_signature,(ye,Se)=>{const Ce=ye.toLowerCase();return{getLabelEl:oyt({signature:ye,optionValue:Ce,txnIdxCount:Se.length}),txnIdxs:Se,signatureLower:Ce,signature:ye}}),[A,e.txn_signature]),F=m.useMemo(()=>A(e.txn_error_code,(ye,Se)=>({txnIdxs:Se,label:lN[ye]}),ye=>ye===0),[A,e.txn_error_code]),H=m.useMemo(()=>{const ye=b.reduce((Se,Ce)=>{var Ge,_t;if(!Ce.gossip||!((Ge=Ce.info)!=null&&Ge.name))return Se;const Ue=Object.values(Ce.gossip.sockets);for(const St of Ue)Se.set(ZN(St),(_t=Ce.info)==null?void 0:_t.name);return Se},new Map);return A(e.txn_source_ipv4,(Se,Ce)=>{var Ue;return{getLabelEl:ayt(Se,Ce.length,ye.get(Se)),txnIdxs:Ce,label:`${Se} ${ye.get(Se)??""}`,queryValue:`${Se}${(Ue=ye.get(Se)??"")==null?void 0:Ue.toLowerCase()}`}})},[A,b,e.txn_source_ipv4]),ee=m.useMemo(()=>A(e.txn_source_tpu,(ye,Se)=>({txnIdxs:Se,label:ye})),[A,e.txn_source_tpu]),ce=m.useMemo(()=>e.txn_transaction_fee.reduce((ye,Se,Ce)=>(y&&!y.has(Ce)||ye.push({txnIdx:Ce,income:Number(md(e,Ce))}),ye),[]).sort(({income:ye},{income:Se})=>Se-ye),[y,e]),B=m.useCallback((ye,Se)=>{switch(l(ye),d(ye),i(!1),a(!0),v){case Mn.TxnSignature:{const Ce=Y[ye].txnIdxs;M(Ce);break}case Mn.Error:{if(Se!==void 0){const Ce=F[Number(Se)].txnIdxs;M(Ce)}break}case Mn.Ip:{const Ce=H[Se??ye];if(Ce){const Ue=Ce.txnIdxs;M(Ue)}break}case Mn.Tpu:{if(Se!==void 0){const Ce=ee[Se].txnIdxs;M(Ce)}break}case Mn.Income:break}},[d,v,Y,M,F,H,ee]),ae=ye=>()=>{p(Se=>{if(!Se)return;let{current:Ce,total:Ue,txnIdxs:Ge}=Se;ye==="prev"?Ce--:ye==="next"&&Ce++,Ce>Ue&&(Ce=0),Ce<0&&(Ce=Ue);const _t=Ge[Ce];return D(_t),{current:Ce,total:Ue,txnIdxs:Ge}})},je=ye=>()=>{switch(x(ye),q(),ye){case Mn.TxnSignature:case Mn.Ip:case Mn.Error:case Mn.Tpu:{pe.current=!0,i(!0),setTimeout(()=>{var Se;(Se=n.current)==null||Se.focus()},250);break}case Mn.Income:{const Se=ce.map(({txnIdx:Ue})=>Ue);p({current:0,total:Se.length,txnIdxs:Se});const Ce=Se[0];D(Ce);break}}},me=Ahe.includes(v),ke=me&&s!==c,he=r&&!me||!ke,ue=f&&f.total>0,re=s||Fhe.includes(v),ge=!Ahe.includes(v),$e=m.useRef(ge);$e.current=ge;const pe=m.useRef(!1);return u.jsxs(W,{children:[u.jsxs(GZ,{children:[u.jsx(YZ,{children:u.jsxs(hs,{variant:"surface",className:E1.dropdownButton,onFocusCapture:ye=>ye.preventDefault(),onFocus:ye=>{ye.preventDefault()},children:[v,u.jsx(W7,{})]})}),u.jsx(XZ,{onCloseAutoFocus:ye=>ye.preventDefault(),children:Uhe.map(ye=>u.jsx(JZ,{onSelect:je(ye),children:ye},ye))})]}),u.jsx(gu,{loop:!0,className:E1.root,shouldFilter:!1,ref:S,children:u.jsxs(u7,{open:r,onOpenChange:ye=>i(ye),children:[u.jsx(DV,{asChild:!0,children:u.jsx(W,{children:u.jsx(ci,{className:c_.chartControlTooltip,content:`Applied: ${v}`,open:P,side:"bottom",children:u.jsxs(W,{align:"center",className:Te(E1.inputContainer,"rt-TextFieldRoot","rt-variant-surface",{[E1.sm]:t==="sm",[E1.tooltipOpen]:P}),children:[u.jsx(gu.Input,{placeholder:pyt[v],onFocus:()=>{j.current?j.current=!1:i(!0)},onKeyDown:ye=>{ye.key==="Enter"&&i(!0)},value:s,onValueChange:ye=>{l(ye),te(),i(!0)},onBlur:X,readOnly:ge,ref:n}),(ue||re)&&u.jsxs(W,{align:"center",children:[ue&&u.jsxs(u.Fragment,{children:[u.jsxs(Z,{style:{paddingRight:"var(--space-2)",cursor:"default"},children:[f.current+1,"\xA0of\xA0",f.total+1]}),u.jsx(nl,{onClick:ae("prev"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("prev")()},children:u.jsx(YFe,{})}),u.jsx(nl,{onClick:ae("next"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("next")()},children:u.jsx(Hie,{})})]}),re&&u.jsx(nl,{onClick:q,variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&q()},children:u.jsx(B$,{})})]})]})})})}),u.jsx(c7,{container:w,children:u.jsx(d7,{className:E1.content,onOpenAutoFocus:ye=>{pe.current?setTimeout(()=>{pe.current=!1},250):ye.preventDefault()},onInteractOutside:ye=>{(ye.target===n.current||pe.current)&&ye.preventDefault()},style:{outline:"unset"},children:u.jsxs(gu.List,{ref:C,style:{maxHeight:"min(300px, var(--radix-popover-content-available-height))"},children:[s.length>1&&ke&&u.jsx(gu.Loading,{children:u.jsx(Z,{children:"Loading..."})}),he&&u.jsxs(u.Fragment,{children:[v===Mn.TxnSignature&&u.jsx(myt,{optionMap:Y,inputValue:c,onSelect:B,showAllOptions:o}),v===Mn.Error&&u.jsx(Whe,{onSelect:B,optionMap:F}),v===Mn.Ip&&u.jsx(gyt,{onSelect:B,optionMap:H,inputValue:c,showAllOptions:o}),v===Mn.Tpu&&u.jsx(Whe,{onSelect:B,optionMap:ee})]})]})})})]})})]})}const myt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.toLowerCase();function a([,{signatureLower:c}]){return r||c.includes(o)}function s([,{signatureLower:c}]){return c===o?3:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([,{getLabelEl:c,signatureLower:d,signature:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:d,onSelect:()=>{n(f)},children:c(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),gyt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.trim().toLowerCase();function a([,{label:c,queryValue:d}]){return r||!!zhe(c,o)||d.includes(o)}function s([,{label:c,txnIdxs:d}]){return c===o?1/0:d.length>1?3+d.length:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([c,{getLabelEl:d,label:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:f,onSelect:()=>{n(f,c)},children:d(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),Whe=m.memo(function({onSelect:e,optionMap:t}){return m.useMemo(()=>Object.entries(t),[t]).map(([n,{label:r,txnIdxs:i}],o)=>u.jsx(gu.Item,{onSelect:()=>{e(r,n)},children:u.jsxs(Z,{children:[r," (",i.length,")"]})},n))});function DS(e,t,n){const r=m.useRef(null),i=m.useCallback(s=>{var l,c;t(s),(l=r.current)==null||l.focus(s),(c=document.getElementById(xP(0)))==null||c.scrollIntoView({behavior:"smooth",block:"nearest"})},[t]),{isTooltipOpen:o,closeTooltip:a}=zS(e,i,n);return{isTooltipOpen:o,closeTooltip:a,toggleGroupRef:r}}function vyt(e){const[t,n]=m.useState(!1);return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:c_.minimizeButton,children:u.jsx(nl,{variant:"ghost",onClick:()=>n(r=>!r),children:t?u.jsx(F$,{}):u.jsx(U$,{})})}),!t&&u.jsx(yyt,{...e})]})}function yyt(e){const{transactions:t,maxTs:n}=e,r=Ee(a_),i=Ee(wP),o=Ee(NS),a=Ee(jP),s=Ee(TP);return Og(()=>{r(dhe),B1t(),i(1),o(void 0),kP(0),a(-1),s(dn.DEFAULT)}),Hn("(max-width: 500px)")?u.jsx(byt,{...e}):u.jsxs(W,{gap:"2",align:"center",wrap:"wrap",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Vhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Zhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(qhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Ghe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Yhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Khe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Jhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Hhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Bhe,{transactions:t})]})}function byt({transactions:e,maxTs:t}){return u.jsxs(W,{direction:"column",gap:"3",children:[u.jsx(Vhe,{transactions:e,maxTs:t}),u.jsx(Zhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(qhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Ghe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Yhe,{transactions:e}),u.jsx(Khe,{transactions:e}),u.jsx("div",{style:{marginBottom:"8px"},children:u.jsx(Jhe,{transactions:e})}),u.jsx(Hhe,{transactions:e,maxTs:t}),u.jsx(Bhe,{transactions:e,size:"sm"})]})}function Vhe({transactions:e,maxTs:t}){const n=Ee(Rs),r=Ee(O1t),[i,o]=m.useState("All"),a=m.useCallback(d=>{if(!e)return;o(d);const f=d==="Success"?"No":d==="Errors"?"Yes":"All";n((p,v)=>r(p,e,v,t,f))},[r,t,e,n]),{isTooltipOpen:s,closeTooltip:l,toggleGroupRef:c}=DS(lyt,a,()=>a("All"));return u.jsxs(W,{gap:"2",children:[u.jsx(LS,{ref:c,options:syt,optionColors:{Success:MN,Errors:RN},value:i,onChange:d=>d&&a(d),isTooltipOpen:s,closeTooltip:l}),u.jsx(xyt,{transactions:e,isDisabled:i==="Success"})]})}function xyt({transactions:e,isDisabled:t}){const n=Ee(y6),r=J(_P),[i,o]=m.useState("0"),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_error_code.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_error_code)},[r,e.txn_error_code]);return m.useEffect(()=>{a[S1]||(o("0"),kP(0))},[a]),u.jsxs(Z7,{onValueChange:s=>{o(s),kP(Number(s)),n(l=>l.redraw())},size:"1",value:i,disabled:t,children:[u.jsx(q7,{placeholder:"Txn State",style:{height:"22px",width:"90px"}}),u.jsx(G7,{children:u.jsxs(Y7,{children:[u.jsx(My,{value:"0",children:"None"}),Object.keys(a).map(s=>s==="0"?null:u.jsxs(My,{value:`${s}`,children:[lN[s]," (",a[s].length,")"]},s))]})})]})}const DP="none";function Hhe({transactions:e,maxTs:t}){const n=Ee(y6),r=J(_P),[i,o]=m.useState(DP),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_source_tpu.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_source_tpu)},[r,e.txn_source_tpu]);return m.useEffect(()=>{a[C1]||(o(""),xhe(""))},[a]),u.jsxs(W,{gap:"2",align:"center",children:[u.jsx(Z,{className:CP.label,children:"TPU"}),u.jsxs(Z7,{onValueChange:s=>{o(s),xhe(s===DP?"":s),n(l=>l.redraw())},size:"1",value:i,children:[u.jsx(q7,{placeholder:"TPU",style:{height:"22px",width:"90px"}}),u.jsx(G7,{children:u.jsxs(Y7,{children:[u.jsx(My,{value:DP,children:"None"}),Object.keys(a).map(s=>u.jsxs(My,{value:s,children:[s," (",a[s].length,")"]},s))]})})]})]})}function Zhe({transactions:e,maxTs:t,isMobileView:n}){const[r,i]=m.useState("All"),o=Ee(Rs),a=Ee(z1t),s=m.useCallback(f=>{e&&(i(f),o((p,v)=>a(p,e,v,t,f)))},[a,t,e,o]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(OP,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Bundle",options:PP,value:r,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function qhe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Rs),i=Ee(D1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(uyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Landed",options:PP,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Ghe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Rs),i=Ee(A1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=DS(cyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Vote",options:PP,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Yhe({transactions:e}){return u.jsxs(W,{gap:"2",children:[u.jsx(_yt,{transactions:e}),u.jsx(wyt,{transactions:e}),u.jsx(Cyt,{transactions:e})]})}function _yt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(W1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.FEES)})};return u.jsx(d_,{label:"Fees",checked:t,onCheckedChange:a,color:kg})}function wyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(V1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.TIPS)})};return u.jsx(d_,{label:"Tips",checked:t,onCheckedChange:a,color:qf})}function Khe({transactions:e}){return u.jsxs(W,{gap:"2",children:[u.jsx(Z,{className:CP.label,children:"CU"}),u.jsx(kyt,{transactions:e}),u.jsx(Syt,{transactions:e})]})}function kyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(H1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_CONSUMED)})};return u.jsx(d_,{label:"Consumed",checked:t,onCheckedChange:a,color:pd})}function Syt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(Z1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_REQUESTED)})};return u.jsx(d_,{label:"Requested",checked:t,onCheckedChange:a,color:mk})}function Cyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Rs),i=Ee(q1t),o=Ee(l_),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.INCOME_CUS)})};return u.jsx(d_,{label:"Income per CU",checked:t,onCheckedChange:a,color:wp})}const Rm=12,Xhe=100;function jyt({transactions:e,sliderMin:t,sliderMax:n,beforeZeroMulti:r,bboxWidth:i}){const o=m.useMemo(()=>{if(t>=n||!e.txn_arrival_timestamps_nanos.length)return;const a=n-t;function s(f){return f>=0?f:f/r}const l=e.txn_arrival_timestamps_nanos.reduce((f,p)=>{const v=(s(Number(p-e.start_timestamp_nanos))-t)/a,x=Math.trunc(v*Xhe);return f[x]+=1,f},new Array(Xhe).fill(0)),c=rt.max(l)??1,d=l.reduce((f,p,v)=>{const x=i*((v+1)/l.length),y=Rm-Rm*(p/c);return f+`${x},${y} `},"");return`0,${Rm}, ${d}, ${i},${Rm}`},[i,r,n,t,e.start_timestamp_nanos,e.txn_arrival_timestamps_nanos]);return u.jsx("svg",{height:`${Rm}px`,width:"100%",viewBox:`0 0 ${i} ${Rm}`,xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"-5px",borderRadius:"4px"},children:u.jsx("polyline",{points:o,fill:"rgba(186, 167, 255, 0.5)",stroke:"rgb(186, 167, 255)",strokeWidth:".5"})})}const AP=.3,Tyt=.025;function Jhe({transactions:e}){const t=m.useMemo(()=>hP(e),[e]),n=m.useMemo(()=>-Math.ceil(t*AP),[t]),[r,i]=m.useState([n,t]),o=Ee(Rs),a=Ee(F1t),[s,{width:l}]=Ss(),c=`${Math.ceil(AP/(1+AP)*100)}%`,d=m.useMemo(()=>{if(!e.txn_arrival_timestamps_nanos.length)return 0;const j=e.txn_arrival_timestamps_nanos.reduce((T,E)=>Ej<0?p*j:j,[p]),x=m.useCallback(j=>{if(!(j.length<2))return{min:v(j[0]),max:v(j[1])}},[v]),y=m.useCallback(j=>`${Math.round(v(j)/1e6).toLocaleString()} ms`,[v]),b=y(r[0]),w=y(r[1]),_=m.useCallback(j=>{o((T,E)=>a(T,e,E,t,x(j)))},[a,x,e,t,o]),S=Ba(j=>{requestAnimationFrame(()=>_(j))},100,{leading:!1,trailing:!0}),C=m.useCallback(j=>{i(j),_(j)},[_]);return m.useEffect(()=>{C([n,t])},[n,t,C]),zS(Dhe,C,()=>C([n,t])),u.jsxs(W,{align:"center",gap:"2",children:[u.jsx(Z,{className:c_.arrivalLabel,children:"Arrival"}),u.jsxs("div",{className:c_.slider,ref:s,style:{"--slot-start-pct":c,marginTop:`-${Rm+6}px`,"--min-value-label":`"${b}"`,"--max-value-label":`"${w}"`},children:[u.jsx(jyt,{transactions:e,sliderMin:n,sliderMax:t,beforeZeroMulti:p,bboxWidth:l}),u.jsx(nq,{style:{"--slider-track-size":"4px"},value:r,min:n,max:t,onValueChange:j=>{const T=j[0]!==r[0]?0:1;Math.abs(j[T]){const $=E.valToPos(j[T],Vt);E.setCursor({left:$,top:0})}),S(j)}})]})]})}function Iyt({transactionsRef:e,setTxnIdx:t,setTxnState:n,transactionsBundleStats:r}){function i(o,a,s){var d,f;let l=o.data[1][s];o.data[0][s]>a&&(l=o.data[1][s-1]),l==null&&o.data[1][s-1]!=null&&(l=o.data[1][s-1]);const c=((d=o.cursor.idxs)==null?void 0:d.length)&&o.cursor.idxs[1]===void 0;if(l==null||!e.current||c)return!1;{const p=ihe(a,e.current,l,(f=r[l])==null?void 0:f.bundleTxnIdx);return n(p),t(l),!0}}return i_({elId:"txn-bars-tooltip",closeTooltipElId:"txn-bars-tooltip-close",showOnCursor:i,showPointer:!0})}const AS=20;function Eyt({bankIdx:e,transactions:t,maxTs:n,isFirstChart:r,isLastChart:i,hide:o,isSelected:a,isFocused:s}){const l=r||i,c=J(Hfe)-AS,d=J(Zfe)-AS,f=Ee(jP),p=Ee(TP),v=m.useRef(null),x=m.useRef(t);x.current=t;const y=m.useMemo(()=>TS(t,e,n,Object.values(ca().get(a_))),[e,n,t]),b=m.useCallback(C=>{C.setData(TS(t,e,n,Object.values(ca().get(a_))),!1)},[e,n,t]),w=m.useMemo(()=>t.txn_from_bundle.map((C,j)=>{if(C)return CS(t,j)}),[t]),_=m.useMemo(()=>{if(y!=null&&y.length)return{width:0,height:0,class:nP.chart,drawOrder:["series","axes"],scales:{[Vt]:{time:!1}},axes:[{scale:Vt,stroke:sr,values:(C,j)=>l?j.map(T=>$1t(T,1e6)+"ms"):[],size:l?40:0,space:100,grid:{stroke:Lne},border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},side:r?0:2},{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:"rgba(0,0,0,0)"}],legend:{markers:{width:0},show:!1},padding:[0,AS,0,AS],series:[{scale:Vt},{label:`Bank ${e}`},{}],plugins:[rvt(x,w),Iyt({transactionsRef:x,setTxnIdx:f,setTxnState:p,transactionsBundleStats:w}),rP(),uP({factor:.75}),dP(),mP()],hooks:{ready:[C=>{requestAnimationFrame(()=>{U1t(C,e)})}]}}},[e,y==null?void 0:y.length,r,l,f,p,w]),S=J(wP);return!y||!_||o?null:u.jsx("div",{style:{flex:1,marginLeft:`${c}px`,marginRight:`${d}px`,display:o?"none":"block",height:a?`${Math.max(2,S)*90+40}px`:l?"170px":"130px"},ref:v,children:u.jsx($s,{children:({height:C,width:j})=>(_.width=j,_.height=C,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:xP(e),className:Te(s&&nP.focused),options:_,data:y,onCreate:b})}))})})}const Nyt="_container_14qh6_1",$yt="_label_14qh6_10",Qhe={container:Nyt,label:$yt};function Myt({setSelected:e,bankIdx:t,isSelected:n}){return u.jsxs("div",{className:Qhe.container,children:[u.jsxs(Z,{className:Qhe.label,children:["Bank ",t]}),u.jsx(hs,{variant:"ghost",size:"1",onClick:()=>e(),children:n?u.jsx(lUe,{color:"grey"}):u.jsx(aUe,{color:"grey"})})]})}const Ryt=kb+Sb,epe=Ryt+Bte;function Lyt(){var d,f,p,v,x;const[e,t]=m.useState();zS(zP,y=>t(y),()=>t(void 0));const n=J(Cn),r=pl(n),i=m.useRef((d=r.response)==null?void 0:d.transactions);i.current=(f=r.response)==null?void 0:f.transactions;const o=J(Nb)[To.bank],a=Ee(che),s=m.useMemo(()=>{var y;return(y=r.response)!=null&&y.transactions?hP(r.response.transactions,!0):0},[(p=r.response)==null?void 0:p.transactions]);m.useMemo(()=>{var b;if(!((b=r.response)!=null&&b.transactions))return;const y=[];for(let w=0;w{var w;if((w=r.response)!=null&&w.transactions&&!(l!==void 0&&l!==b))return u.jsxs("div",{style:{position:"relative"},children:[(l===void 0||l===b)&&u.jsx(Myt,{bankIdx:b,setSelected:()=>c(_=>_===void 0?b:void 0),isSelected:l===b}),u.jsx(Eyt,{bankIdx:b,transactions:r.response.transactions,maxTs:s,isFirstChart:b===0&&o>1,isLastChart:b===o-1||l!==void 0,isSelected:l===b,hide:l!==void 0&&l!==b,isFocused:e===b},`${b}`)]},b)})]}):null}const Pyt="_state_1bdpv_11",Oyt="_cu-bars_1bdpv_24",zyt="_duration-container_1bdpv_30",Dyt="_value-text_1bdpv_38",Ayt="_unit_1bdpv_42",g_={state:Pyt,cuBars:Oyt,durationContainer:zyt,valueText:Dyt,unit:Ayt},Fyt="_separator_1pgc5_1",Uyt={separator:Fyt};function Lm({my:e,mb:t}){return u.jsx(ps,{size:"4",my:e??"1",mb:t,className:Uyt.separator})}function Byt(){var s,l;const e=J(Cn),t=pl(e),n=J(jP),r=J(TP),i=(s=t.response)==null?void 0:s.transactions,o=m.useMemo(()=>{if(i&&!(n<0)&&i.txn_from_bundle[n])return CS(i,n)},[i,n]),a=i!=null&&i.txn_arrival_timestamps_nanos[n]?kk(i.txn_arrival_timestamps_nanos[n]):void 0;return u.jsx(o_,{elId:"txn-bars-tooltip",children:(i==null?void 0:i.txn_bank_idx[n])!=null&&u.jsxs(W,{direction:"column",children:[u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:g_.state,style:{color:va[r]},children:r}),u.jsx(hs,{variant:"ghost",size:"1",id:"txn-bars-tooltip-close",children:u.jsx(nUe,{color:sr})})]}),u.jsx(Lm,{}),u.jsxs(W,{direction:"column",children:[u.jsx(qyt,{txnIdx:n,transactions:i}),u.jsx(FP,{label:"Bundle",value:i.txn_from_bundle[n],append:o?`(${o.order} of ${o.totalCount})`:void 0}),u.jsx(FP,{label:"Vote",value:i.txn_is_simple_vote[n]}),u.jsx(FP,{label:"Landed",value:i.txn_landed[n]}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Fees",value:`${(i.txn_priority_fee[n]+i.txn_transaction_fee[n]).toLocaleString()}`,color:kg}),u.jsx(Wr,{label:"Tips",value:`${(l=i.txn_tips[n])==null?void 0:l.toLocaleString()}`,color:qf}),u.jsx(Lm,{}),u.jsx(Hyt,{transactions:i,txnIdx:n}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Txn Index",value:`${n}`}),u.jsx(Wr,{label:"Microblock ID",value:`${i.txn_microblock_id[n]}`}),u.jsx(Wr,{label:"Bank ID",value:`${i.txn_bank_idx[n]}`}),u.jsx(Wr,{label:"Slot to Arrival",value:(Number(i.txn_arrival_timestamps_nanos[n]-i.start_timestamp_nanos)/1e6).toLocaleString(),unit:"ms"}),u.jsx(Wr,{label:"Arrival to Scheduled",value:(Number(i.txn_start_timestamps_nanos[n]-i.txn_arrival_timestamps_nanos[n])/1e6).toLocaleString(),unit:"ms"}),a&&u.jsx(Wr,{label:"Arrival Time",value:a.inNanos}),u.jsx(Wyt,{transactions:i,txnIdx:n}),u.jsx(Zyt,{transactions:i,txnIdx:n,bundleTxnIdx:o==null?void 0:o.bundleTxnIdx}),u.jsx(Lm,{}),u.jsx(Wr,{label:"Txn Sig",value:i.txn_signature[n],copyValue:i.txn_signature[n],truncateValue:!0})]})]})})}function Wyt({transactions:e,txnIdx:t}){const n=J(JN),r=e.txn_source_ipv4[t],i=m.useMemo(()=>{var a;const o=n.find(s=>s.gossip?Object.values(s.gossip.sockets).some(l=>ZN(l)===r):!1);return o?(a=o.info)!=null&&a.name?o.info.name:o.identity_pubkey:void 0},[r,n]);return u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:"IPv4 (tpu)",value:`${r} (${e.txn_source_tpu[t]})`}),i&&u.jsx(Wr,{label:"Validator",value:i,truncateValue:!0})]})}function Vyt({transactions:e,txnIdx:t}){var o;const{rankings:n,totalRanks:r}=m.useMemo(()=>vhe(e),[e]),i=n.has(t)?` (${n.get(t)} of ${r})`:"";return u.jsx(Wr,{label:"CU Income",value:`${(o=ghe(e,t))==null?void 0:o.toLocaleString(void 0,{maximumFractionDigits:Bo})}${i}`,color:wp})}function Hyt({transactions:e,txnIdx:t}){var r,i;const n=e.txn_compute_units_requested[t]?Math.trunc(e.txn_compute_units_consumed[t]/e.txn_compute_units_requested[t]*100):100;return u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:"CU Consumed",value:`${(r=e.txn_compute_units_consumed[t])==null?void 0:r.toLocaleString()}`,color:pd}),u.jsx(Wr,{label:"CU Requested",value:`${(i=e.txn_compute_units_requested[t])==null?void 0:i.toLocaleString()}`,color:mk}),u.jsx(Vyt,{transactions:e,txnIdx:t}),u.jsx(W,{children:u.jsxs("svg",{height:"8",fill:"none",className:g_.cuBars,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${n}%`,opacity:.6,fill:pd}),u.jsx("rect",{height:"8",width:`${100-n}%`,x:`${n}%`,opacity:.2,fill:mk})]})})]})}function Zyt({transactions:e,txnIdx:t,bundleTxnIdx:n}){const r=m.useMemo(()=>pP(e,t,n),[n,e,t]),i=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(p=>Number(p))),s=Math.max(0,Number(r.preLoading)/a*100),l=Math.max(0,Number(r.validating)/a*100),c=Math.max(0,Number(r.loading)/a*100),d=Math.max(0,Number(r.execute)/a*100),f=Math.max(0,Number(r.postExecute)/a*100);return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f}},[r]),o=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(b=>Number(b))),s=Ha(r.preLoading),l=Ha(r.validating),c=Ha(r.loading),d=Ha(r.execute),f=Ha(r.postExecute),p=Ha(a),v=e.txn_mb_start_timestamps_nanos[t],x=e.txn_mb_end_timestamps_nanos[t],y=n!=null&&n.length&&e.txn_from_bundle[t]?Ha(x-v):null;return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f,total:p,bundleTotal:y}},[e,r,t,n]);if(!(!r||!i||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Lm,{}),u.jsx(W,{children:u.jsxs("svg",{height:"36",className:g_.durationContainer,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${i.preLoading}%`,fill:va[dn.PRELOADING]}),Vi?u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading+i.loading}%`,y:"40%"})]}):u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading+i.validating}%`,y:"40%"})]}),u.jsx("rect",{height:"8",width:`${i.execute}%`,fill:va[dn.EXECUTE],x:`${i.preLoading+i.validating+i.loading}%`,y:"60%"}),u.jsx("rect",{height:"8",width:`${i.postExecute}%`,fill:va[dn.POST_EXECUTE],x:`${i.preLoading+i.validating+i.loading+i.execute}%`,y:"80%"})]})}),u.jsx(Wr,{label:dn.PRELOADING,color:va[dn.PRELOADING],value:o.preLoading.value,unit:o.preLoading.unit}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit}),u.jsx(Wr,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit})]}):u.jsxs(u.Fragment,{children:[u.jsx(Wr,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit}),u.jsx(Wr,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit})]}),u.jsx(Wr,{label:dn.EXECUTE,color:va[dn.EXECUTE],value:o.execute.value,unit:o.execute.unit}),u.jsx(Wr,{label:dn.POST_EXECUTE,color:va[dn.POST_EXECUTE],value:o.postExecute.value,unit:o.postExecute.unit}),u.jsx(Wr,{label:"Total",value:o.total.value,unit:o.total.unit}),o.bundleTotal&&u.jsx(Wr,{label:"Total (Bundle)",value:o.bundleTotal.value,unit:o.bundleTotal.unit})]})}function qyt({txnIdx:e,transactions:t}){const n=t.txn_error_code[e],r=n!==0;return u.jsx(Wr,{label:r?"Error":"Success",value:r?`${lN[n]}`:"Yes",color:r?RN:MN})}function Wr({label:e,value:t,color:n,unit:r,copyValue:i,truncateValue:o}){const a=typeof t=="number"?t.toLocaleString():t;return u.jsxs(W,{justify:"between",gap:"4",style:{"--color-override":n},children:[u.jsx(W,{minWidth:"105px",children:u.jsx(Z,{wrap:"nowrap",children:e})}),u.jsx(W,{minWidth:"0",maxWidth:"210px",align:"center",children:u.jsxs(Dg,{value:i,color:Xte,size:"14px",children:[u.jsx(Z,{className:g_.valueText,align:"right",truncate:o,children:a}),r&&u.jsx(Z,{className:g_.unit,children:r})]})})]})}function FP({value:e,append:t,...n}){let r=e?"Yes":"No";return t&&(r+=` ${t}`),u.jsx(Wr,{...n,value:r})}function Gyt(){var n;const e=J(Cn),t=pl(e);return!e||!((n=t.response)!=null&&n.transactions)?u.jsx(Yyt,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{id:"txn-bars-card",children:u.jsx(Lyt,{},e)}),u.jsx(Byt,{})]})}function Yyt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"400px",justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Banks..."})})}const Kyt="_search-grid_gudx6_1",Xyt="_search-label_gudx6_5",Jyt="_search-field_gudx6_11",Qyt="_error-text_gudx6_15",ebt="_quick-search-card_gudx6_19",tbt="_quick-search-header_gudx6_26",nbt="_quick-search-slot_gudx6_37",rbt="_clickable_gudx6_40",ibt="_quick-search-metric_gudx6_51",hc={searchGrid:Kyt,searchLabel:Xyt,searchField:Jyt,errorText:Qyt,quickSearchCard:ebt,quickSearchHeader:tbt,quickSearchSlot:nbt,clickable:rbt,quickSearchMetric:ibt},obt=e=>m.createElement("svg",{width:18,height:18,viewBox:"0 0 18 18",fill:"#D86363",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.01469 6.00051C5.58562 6.03619 3 7.94365 3 12C3 12.5523 2.55228 13 2 13C1.44772 13 1 12.5523 1 12C1 6.90007 4.41438 4.05318 7.98531 4.00073C9.74494 3.97489 11.5153 4.63461 12.8432 6.00502C13.8812 7.07635 14.6101 8.5405 14.8821 10.3602L15.8896 8.9389C16.209 8.48833 16.8331 8.38198 17.2837 8.70137C17.7343 9.02075 17.8406 9.64492 17.5213 10.0955L15.0678 13.5568C14.7484 14.0073 14.1242 14.1137 13.6737 13.7943L10.2124 11.3408C9.76181 11.0214 9.65546 10.3973 9.97484 9.9467C10.2942 9.49613 10.9184 9.38978 11.369 9.70916L12.9263 10.8131C12.7275 9.27771 12.1449 8.15845 11.4068 7.39676C10.4847 6.44507 9.25506 5.9823 8.01469 6.00051ZM6.5 13C7.32843 13 8 12.3284 8 11.5C8 10.6716 7.32843 10 6.5 10C5.67157 10 5 10.6716 5 11.5C5 12.3284 5.67157 13 6.5 13Z"}));function abt(e=!1){const t=C6(),n=m.useCallback(()=>t({topic:"slot",key:"query_rankings",id:32,params:{mine:e}}),[e,t]);m.useEffect(()=>{n();const r=setInterval(n,5e3);return()=>clearInterval(r)},[n])}function tpe(e,t){const n=Pie();if(rx(n,1e3),!e)return;const r=Yf>=e,i=(r?Yf.diff(e):e.diff(Yf)).rescale(),o=kp(i,t);return r?`${o} ago`:o}function npe(e,t){var a;const n=Is(e),r=m.useMemo(()=>{var s;return((s=n.publish)==null?void 0:s.completed_time_nanos)??void 0},[(a=n.publish)==null?void 0:a.completed_time_nanos]),i=m.useMemo(()=>{if(r!==void 0)return tre(r)},[r]),o=tpe(i,t);return{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}}function rpe(){const e=Q0({from:$pe.fullPath});return m.useCallback(t=>{e({search:{slot:t},replace:!0})},[e])}const ipe=3,ope=226,ape=40,spe=20,sbt=2*spe+ipe*ope+(ipe-1)*ape;function lbt(){const e=J(gd.slot),t=rpe(),[n,r]=m.useState(e===void 0?"":String(e)),i=J(fi),o=J(gd.isValid),a=m.useCallback(()=>{t(n===""?void 0:Number(n))},[n,t]);return u.jsxs(qr,{height:"100%",maxWidth:`${sbt}px`,justify:"center",m:"auto",gap:`${ape}px`,p:`${spe}px`,columns:`repeat(auto-fit, ${ope}px)`,className:hc.searchGrid,children:[u.jsx(W,{direction:"column",gap:"8px",gridColumn:"1 / -1",asChild:!0,children:u.jsxs("form",{onSubmit:s=>{s.preventDefault(),a()},children:[u.jsx(C6e,{htmlFor:"searchSlotId",className:hc.searchLabel,children:"Search Slot ID"}),u.jsx(Q7,{id:"searchSlotId",className:hc.searchField,placeholder:`e.g. ${(i==null?void 0:i.start_slot)??0}`,type:"number",step:"1",value:n,onChange:s=>r(s.target.value),size:"3",color:o?"teal":"red",autoFocus:!0,children:u.jsx(M4,{side:"right",children:u.jsx(nl,{variant:"ghost",color:"gray",onClick:a,children:u.jsx(qie,{height:"16",width:"16"})})})}),!o&&u.jsx(hbt,{})]})}),u.jsx(ubt,{})]})}function UP(e){return`${Tb(e,4)} SOL`}function ubt(){abt(!0);const e=J(PG),{earliestQuickSlots:t,mostRecentQuickSlots:n}=J(Tre);return u.jsxs(u.Fragment,{children:[u.jsx($1,{icon:u.jsx(QFe,{}),label:"Earliest Slots",color:qne,slots:t}),u.jsx($1,{icon:u.jsx(Gie,{}),label:"Most Recent Slots",color:Gne,slots:n}),u.jsx($1,{icon:u.jsx(obt,{}),label:"Last Skipped Slots",color:Yne,slots:e==null?void 0:e.slots_largest_skipped}),u.jsx($1,{icon:u.jsx(iUe,{}),label:"Highest Fees",color:Kne,slots:e==null?void 0:e.slots_largest_fees,metricOptions:{metrics:e==null?void 0:e.vals_largest_fees,metricsFmt:UP}}),u.jsx($1,{icon:u.jsx(pUe,{}),label:"Highest Tips",color:Xne,slots:e==null?void 0:e.slots_largest_tips,metricOptions:{metrics:e==null?void 0:e.vals_largest_tips,metricsFmt:UP}}),u.jsx($1,{icon:u.jsx(yUe,{}),label:"Highest Rewards",color:Jne,slots:e==null?void 0:e.slots_largest_rewards,metricOptions:{metrics:e==null?void 0:e.vals_largest_rewards,metricsFmt:UP}})]})}function $1({icon:e,label:t,color:n,slots:r,metricOptions:i}){return u.jsxs(W,{direction:"column",className:hc.quickSearchCard,p:"20px",gap:"20px",children:[u.jsxs(W,{direction:"column",gap:"10px",className:hc.quickSearchHeader,style:{"--quick-search-color":n},children:[e,u.jsx(Z,{align:"left",children:t})]}),u.jsx(cbt,{slots:r,metricOptions:i})]})}function cbt({slots:e,metricOptions:t}){const n=rpe();return u.jsx(W,{direction:"column",gap:"5px",children:Array.from({length:GN}).map((r,i)=>{var a;const o=e==null?void 0:e[i];return u.jsxs(W,{justify:"between",children:[o===void 0?u.jsx(Z,{className:hc.quickSearchSlot,children:"--"}):u.jsx(Z,{className:Te(hc.quickSearchSlot,hc.clickable),onClick:()=>n(o),children:o}),u.jsx(Z,{className:hc.quickSearchMetric,children:u.jsx(dbt,{slot:o,metric:(a=t==null?void 0:t.metrics)==null?void 0:a[i],metricsFmt:t==null?void 0:t.metricsFmt})})]},i)})})}function dbt({slot:e,metric:t,metricsFmt:n}){return e===void 0?"--":n?t===void 0?"--":n(t)??"--":u.jsx(fbt,{slot:e})}function fbt({slot:e}){const{timeAgoText:t}=npe(e,{showOnlyTwoSignificantUnits:!0});return t}function hbt(){const e=J(gd.slot),t=J(gd.state),n=J(fi),r=m.useMemo(()=>{switch(t){case Kf.NotReady:return`Slot ${e} validity cannot be determined because epoch and leader slot data is not available yet.`;case Kf.OutsideEpoch:return`Slot ${e} is outside this epoch. Please try again with a different ID between ${n==null?void 0:n.start_slot} - ${n==null?void 0:n.end_slot}.`;case Kf.NotYou:return`Slot ${e} belongs to another validator. Please try again with a slot number processed by you.`;case Kf.BeforeFirstProcessed:return`Slot ${e} is in this epoch but its details are unavailable because it was processed before the restart.`;case Kf.Future:return`Slot ${e} is valid but in the future. To view details, check again after it has been processed.`;case Kf.Valid:return""}},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,e,t]);return u.jsx(Z,{size:"3",className:hc.errorText,children:r})}const pbt="_slot-item-group_p1cnp_1",mbt="_disabled_p1cnp_8",gbt="_is-selected_p1cnp_13",vbt="_slot-item_p1cnp_1",ybt="_selected-slot_p1cnp_35",bbt="_skipped-slot_p1cnp_41",xbt="_fade_p1cnp_50",_bt="_fade-left_p1cnp_57",wbt="_fade-right_p1cnp_62",pc={slotItemGroup:pbt,disabled:mbt,isSelected:gbt,slotItem:vbt,selectedSlot:ybt,skippedSlot:bbt,fade:xbt,fadeLeft:_bt,fadeRight:wbt};function lpe({onMeasured:e,children:t}){const n=J(jg),[r,i]=Ss();return m.useEffect(()=>e(i),[i,e]),u.jsx(lB,{container:n,style:{position:"fixed",left:"-100000px",top:"-100000px",visibility:"hidden"},ref:r,"aria-hidden":"true",children:t})}/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */var BP=function(e,t){return BP=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},BP(e,t)};function kbt(e,t){BP(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Sbt=100,Cbt=100,upe=50,WP=50,VP=50;function cpe(e){var t=e.className,n=e.counterClockwise,r=e.dashRatio,i=e.pathRadius,o=e.strokeWidth,a=e.style;return m.createElement("path",{className:t,style:Object.assign({},a,Tbt({pathRadius:i,dashRatio:r,counterClockwise:n})),d:jbt({pathRadius:i,counterClockwise:n}),strokeWidth:o,fillOpacity:0})}function jbt(e){var t=e.pathRadius,n=e.counterClockwise,r=t,i=n?1:0;return` + M `+WP+","+VP+` + m 0,-`+r+` + a `+r+","+r+" "+i+" 1 1 0,"+2*r+` + a `+r+","+r+" "+i+" 1 1 0,-"+2*r+` + `}function Tbt(e){var t=e.counterClockwise,n=e.dashRatio,r=e.pathRadius,i=Math.PI*2*r,o=(1-n)*i;return{strokeDasharray:i+"px "+i+"px",strokeDashoffset:(t?-o:o)+"px"}}var Ibt=function(e){kbt(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getBackgroundPadding=function(){return this.props.background?this.props.backgroundPadding:0},t.prototype.getPathRadius=function(){return upe-this.props.strokeWidth/2-this.getBackgroundPadding()},t.prototype.getPathRatio=function(){var n=this.props,r=n.value,i=n.minValue,o=n.maxValue,a=Math.min(Math.max(r,i),o);return(a-i)/(o-i)},t.prototype.render=function(){var n=this.props,r=n.circleRatio,i=n.className,o=n.classes,a=n.counterClockwise,s=n.styles,l=n.strokeWidth,c=n.text,d=this.getPathRadius(),f=this.getPathRatio();return m.createElement("svg",{className:o.root+" "+i,style:s.root,viewBox:"0 0 "+Sbt+" "+Cbt,"data-test-id":"CircularProgressbar"},this.props.background?m.createElement("circle",{className:o.background,style:s.background,cx:WP,cy:VP,r:upe}):null,m.createElement(cpe,{className:o.trail,counterClockwise:a,dashRatio:r,pathRadius:d,strokeWidth:l,style:s.trail}),m.createElement(cpe,{className:o.path,counterClockwise:a,dashRatio:f*r,pathRadius:d,strokeWidth:l,style:s.path}),c?m.createElement("text",{className:o.text,style:s.text,x:WP,y:VP},c):null)},t.defaultProps={background:!1,backgroundPadding:0,circleRatio:1,classes:{root:"CircularProgressbar",trail:"CircularProgressbar-trail",path:"CircularProgressbar-path",text:"CircularProgressbar-text",background:"CircularProgressbar-background"},counterClockwise:!1,className:"",maxValue:100,minValue:0,strokeWidth:8,styles:{root:{},trail:{},path:{},text:{},background:{}},text:""},t}(m.Component);function Ebt(e){var t=e.rotation,n=e.strokeLinecap,r=e.textColor,i=e.textSize,o=e.pathColor,a=e.pathTransition,s=e.pathTransitionDuration,l=e.trailColor,c=e.backgroundColor,d=t==null?void 0:"rotate("+t+"turn)",f=t==null?void 0:"center center";return{root:{},path:FS({stroke:o,strokeLinecap:n,transform:d,transformOrigin:f,transition:a,transitionDuration:s==null?void 0:s+"s"}),trail:FS({stroke:l,strokeLinecap:n,transform:d,transformOrigin:f}),text:FS({fill:r,fontSize:i}),background:FS({fill:c})}}function FS(e){return Object.keys(e).forEach(function(t){e[t]==null&&delete e[t]}),e}const Nbt="data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6%200.675781C9.22656%200.675781%2011.8242%203.27344%2011.8242%206.5C11.8242%209.72656%209.22656%2012.3242%206%2012.3242C2.77344%2012.3242%200.175781%209.72656%200.175781%206.5C0.175781%203.27344%202.77344%200.675781%206%200.675781ZM6%2011.1758C8.57031%2011.1758%2010.6758%209.07031%2010.6758%206.5C10.6758%203.92969%208.57031%201.82422%206%201.82422C3.42969%201.82422%201.32422%203.92969%201.32422%206.5C1.32422%209.07031%203.42969%2011.1758%206%2011.1758ZM8.67969%203.92969L9.5%204.75L4.82422%209.42578L2.5%207.07422L3.32031%206.25391L4.82422%207.75781L8.67969%203.92969Z'%20fill='%231D863B'/%3e%3c/svg%3e",$bt="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='%231D863B'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.82422%208.92578L10.0742%203.67578L9.25391%202.82812L4.82422%207.25781L2.74609%205.17969L1.92578%206L4.82422%208.92578ZM1.87109%201.89844C3.01953%200.75%204.39583%200.175781%206%200.175781C7.60417%200.175781%208.97135%200.75%2010.1016%201.89844C11.25%203.02865%2011.8242%204.39583%2011.8242%206C11.8242%207.60417%2011.25%208.98047%2010.1016%2010.1289C8.97135%2011.2591%207.60417%2011.8242%206%2011.8242C4.39583%2011.8242%203.01953%2011.2591%201.87109%2010.1289C0.740885%208.98047%200.175781%207.60417%200.175781%206C0.175781%204.39583%200.740885%203.02865%201.87109%201.89844Z'/%3e%3c/svg%3e",Mbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='8.5'%20cy='2.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='4.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='12.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3cline%20x1='8.35355'%20y1='1.64645'%20x2='13.3536'%20y2='6.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='3.64645'%20y1='6.64645'%20x2='8.64645'%20y2='1.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='12.4642'%20y1='6.8143'%20x2='14.4642'%20y2='11.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5358'%20y1='11.8143'%20x2='12.5356'%20y2='6.81427'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.53576'%20y1='11.8143'%20x2='4.53576'%20y2='6.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='4.46424'%20y1='6.81432'%20x2='6.46412'%20y2='11.8144'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.5'%20y1='11'%20x2='2.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='6.5'%20y1='11'%20x2='6.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5'%20y1='11'%20x2='10.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='14.5'%20y1='11'%20x2='14.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3c/svg%3e",Rbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='%23D86363'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.01469%206.00051C5.58562%206.03619%203%207.94365%203%2012C3%2012.5523%202.55228%2013%202%2013C1.44772%2013%201%2012.5523%201%2012C1%206.90007%204.41438%204.05318%207.98531%204.00073C9.74494%203.97489%2011.5153%204.63461%2012.8432%206.00502C13.8812%207.07635%2014.6101%208.5405%2014.8821%2010.3602L15.8896%208.9389C16.209%208.48833%2016.8331%208.38198%2017.2837%208.70137C17.7343%209.02075%2017.8406%209.64492%2017.5213%2010.0955L15.0678%2013.5568C14.7484%2014.0073%2014.1242%2014.1137%2013.6737%2013.7943L10.2124%2011.3408C9.76181%2011.0214%209.65546%2010.3973%209.97484%209.9467C10.2942%209.49613%2010.9184%209.38978%2011.369%209.70916L12.9263%2010.8131C12.7275%209.27771%2012.1449%208.15845%2011.4068%207.39676C10.4847%206.44507%209.25506%205.9823%208.01469%206.00051ZM6.5%2013C7.32843%2013%208%2012.3284%208%2011.5C8%2010.6716%207.32843%2010%206.5%2010C5.67157%2010%205%2010.6716%205%2011.5C5%2012.3284%205.67157%2013%206.5%2013Z'/%3e%3c/svg%3e",Lbt="_small-icon_1vpxu_1",Pbt="_large-icon_1vpxu_6",US={smallIcon:Lbt,largeIcon:Pbt};function dpe({slot:e,isCurrent:t,size:n}){const r=J(nDe(e)),i=Te(US[`${n}Icon`]);return t?u.jsx(Obt,{size:n}):r==="incomplete"?u.jsx(fpe,{size:n}):r==="optimistically_confirmed"?u.jsx(ci,{content:"Slot was optimistically confirmed",children:u.jsx("img",{src:$bt,alt:"optimistically_confirmed",className:i})}):r==="rooted"||r==="finalized"?u.jsx(ci,{content:"Slot was rooted",children:u.jsx("img",{src:Mbt,alt:"rooted",className:i})}):u.jsx(ci,{content:"Slot was processed",children:u.jsx("img",{src:Nbt,alt:"processed",className:i})})}function fpe({size:e}){return u.jsx("div",{className:Te(US[`${e}Icon`])})}function Obt({size:e}){const t=m.useRef(performance.now()),n=J(Eg),[r,i]=m.useState(0);return Aie(()=>{if(r>=100)return;const o=performance.now()-t.current,a=Math.min(Math.floor(o/n*100),100);i(a)}),u.jsx(W,{className:Te(US[`${e}Icon`]),children:u.jsx(Ibt,{value:r,styles:Ebt({trailColor:Hne,pathColor:Zne,pathTransition:"none"}),strokeWidth:25,maxValue:100})})}function hpe({size:e}){return u.jsx(ci,{content:"Slot was skipped",children:u.jsx("img",{src:Rbt,alt:"skipped",className:Te(US[`${e}Icon`])})})}const zbt=kb+Sb,ppe=4;function mpe(e,t){return e*t+Math.max(0,e-1)*ppe}function Dbt(){const e=J(Cn),t=J(ao),[n,r]=m.useState(0),[i,o]=m.useState(0),[a,{width:s}]=Ss(),l=m.useRef(null),[c,d]=m.useState(0),f=m.useCallback(w=>{w&&requestAnimationFrame(()=>{var S;const _=s/2-(w.offsetLeft+w.offsetWidth/2);(S=l.current)==null||S.style.setProperty("--offset",`${_}px`),d(_)})},[s]),p=m.useMemo(()=>e===void 0||!t?-1:t.indexOf(_i(e)),[t,e]),v=m.useMemo(()=>{if(p<0||!t)return;const w=Math.max(1,Math.ceil(s/2/i)),_=rt.clamp(w,1,10),S=w+_,C=t.length,j=Math.max(0,p-S),T=Math.min(C-1,p+S),E=C-1-T;return{leftSpacerWidth:mpe(j,i),rightSpacerWidth:mpe(E,i),startItemGroupIdx:j,endItemGroupIdx:T}},[s,i,t,p]),{showFadeLeft:x,showFadeRight:y}=m.useMemo(()=>{var S;const w=c<0,_=(((S=l.current)==null?void 0:S.offsetWidth)??0)-s+c>0;return{showFadeLeft:w,showFadeRight:_}},[s,c]);if(!t||!v||e===void 0)return;const b=[];if(i&&n)for(let w=v.startItemGroupIdx;w<=v.endItemGroupIdx;w++){const _=[],S=t[w];for(let j=0;j<$n;j++){const T=S+j,E=T===e;_.push(u.jsx(HP,{slot:T,isSelected:E,onSelectedSlotRef:E?f:void 0},T))}const C=S<=e&&et(i.width),children:u.jsx(HP,{slot:e[e.length-1],isSelected:!0})}),u.jsx(lpe,{onMeasured:i=>n(i.width),children:u.jsx(gpe,{slot:r,children:new Array($n).fill(0).map((i,o)=>u.jsx(HP,{slot:r-o,isSelected:!0},o))})})]})}function gpe({slot:e,isSelected:t,children:n}){const r=e<(J(Xf)??-1),i=e>(J(XN)??1/0),o=r||i;return u.jsx(W,{className:Te(pc.slotItemGroup,{[pc.disabled]:o,[pc.isSelected]:t}),children:n})}function HP({slot:e,isSelected:t,onSelectedSlotRef:n}){var s;Is(e);const r=(s=J(u3))==null?void 0:s.includes(e),i=e<(J(Xf)??-1),o=e>=(J(XN)??1/0)+$n,a=i||o;return u.jsxs(sp,{to:"/slotDetails",search:{slot:e},className:Te(pc.slotItem,{[pc.selectedSlot]:t,[pc.skippedSlot]:r}),ref:n,disabled:a,children:[u.jsx(Z,{children:e}),r?u.jsx(hpe,{size:"large"}):u.jsx(dpe,{isCurrent:!1,slot:e,size:"large"})]},e)}const Fbt="_header_1s5d9_1",Ubt="_subheader_1s5d9_7",Bbt="_label_1s5d9_12",Wbt="_value_1s5d9_18",Vbt="_table-header_1s5d9_26",Hbt="_table-row-label_1s5d9_32",Zbt="_total_1s5d9_37",qbt="_table-cell-value_1s5d9_42",Gbt="_grid_1s5d9_52",Ybt="_name_1s5d9_67",Kbt="_lg_1s5d9_70",Xbt="_copy-button_1s5d9_79",Jbt="_time-popover_1s5d9_85",at={header:Fbt,subheader:Ubt,label:Bbt,value:Wbt,tableHeader:Vbt,tableRowLabel:Hbt,total:Zbt,tableCellValue:qbt,grid:Gbt,name:Ybt,lg:Kbt,copyButton:Xbt,timePopover:Jbt},vpe="20px",BS="15px",Qbt="15px",xl="5px",Nd="1",ype=2.5;function ZP({title:e,children:t,...n}){return u.jsxs(W,{direction:"column",flexBasis:"0",flexGrow:"1",gap:BS,...n,children:[u.jsxs(Mt,{children:[u.jsx(Z,{className:at.header,children:e}),u.jsx(Lm,{my:"0"})]}),t]})}function Oi({title:e,children:t,...n}){return u.jsxs(W,{direction:"column",...n,children:[u.jsx(Z,{className:at.subheader,mb:"5px",children:e}),t]})}const ext=Yu;function txt(){const e=J(Cn),t=pl(e),n=m.useMemo(()=>{var o;if((o=t==null?void 0:t.response)!=null&&o.transactions)return t.response.transactions.txn_compute_units_consumed.reduce((a,s,l)=>{var f,p,v,x;const c=!!((p=(f=t.response)==null?void 0:f.transactions)!=null&&p.txn_is_simple_vote[l]),d=(x=(v=t.response)==null?void 0:v.transactions)==null?void 0:x.txn_from_bundle[l];return c?a.vote+=s:d?a.bundle+=s:a.other+=s,a},{vote:0,bundle:0,other:0})},[t]);if(!n)return;const r=n.vote+n.bundle+n.other,i=Math.max(n.vote,n.bundle,n.other);return u.jsx(Oi,{title:"Consumed Compute Units",children:u.jsxs(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:[u.jsx(qP,{label:"Vote",cus:n.vote,totalCus:r,maxCus:i,pctColor:hd}),u.jsx(qP,{label:"Bundle",cus:n.bundle,totalCus:r,maxCus:i,pctColor:ext}),u.jsx(qP,{label:"Other",cus:n.other,totalCus:r,maxCus:i,pctColor:Hf})]})})}function qP({label:e,cus:t,totalCus:n,maxCus:r,pctColor:i}){const o=Math.round(n?t/n*100:0),a=Math.round(r?t/r*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:i},align:"right",children:t.toLocaleString()}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:pd},align:"right",children:n.toLocaleString()}),u.jsxs(Z,{className:at.value,align:"right",children:[o,"%"]}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${a}%`,opacity:.6,fill:i})})]})}function WS({value:e,total:t,valueColor:n,showBackground:r}){const i=Math.round(t?e/t*100:0);return u.jsx(u.Fragment,{children:u.jsxs("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:n}),r&&u.jsx("rect",{height:"8",width:`${100-i}%`,x:`${i}%`,opacity:.2,fill:n})]})})}function v_({label:e,value:t,total:n,valueColor:r,labelWidth:i,numeratorColor:o=!0,pctColor:a=!1}){const s=Math.round(n?t/n*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(qk,{content:i?e:void 0,children:u.jsx(Z,{className:at.label,truncate:!0,style:{width:i},children:e})}),u.jsx(Z,{className:at.value,style:{color:o?r:void 0},align:"right",children:t.toLocaleString()}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,align:"right",children:n.toLocaleString()}),u.jsxs(Z,{className:at.value,style:{color:a?r:void 0},align:"right",children:[s,"%"]}),u.jsx(WS,{value:t,total:n,valueColor:r,showBackground:!0})]})}function nxt(){const e=J(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Oi,{title:"Protocol Limit Utilization",children:u.jsxs(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:[u.jsx(v_,{label:"Block cost",value:n.used_total_block_cost??0,total:n.max_total_block_cost??0,valueColor:pd}),u.jsx(v_,{label:"Vote cost",value:n.used_total_vote_cost??0,total:n.max_total_vote_cost??0,valueColor:hd}),u.jsx(v_,{label:"Bytes",value:n.used_total_bytes??0,total:n.max_total_bytes??0,valueColor:"#A35829"}),u.jsx(v_,{label:"Microblocks",value:n.used_total_microblocks??0,total:n.max_total_microblocks??0,valueColor:"#9EB1FF"})]})})}function rxt(){const e=J(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Oi,{title:"Top 5 Busy Accounts",children:u.jsx(qr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:xl,gapY:Nd,children:n.used_account_write_costs.map(({account:r,cost:i})=>u.jsx(v_,{label:r,labelWidth:"80px",value:i,total:n.max_account_write_cost,valueColor:"#30A46C",numeratorColor:!1,pctColor:!0},r))})})}function Za({children:e,...t}){return u.jsx(Z,{...t,className:Te("mono-text",t.className),children:e})}const GP={preLoading:0,validating:0,loading:0,execute:0,postExecute:0,total:0};function YP(e){return Object.values(e).reduce((t,n)=>t+n,0)}function ixt(){var s;const e=J(Cn),t=(s=pl(e).response)==null?void 0:s.transactions,n=m.useMemo(()=>{if(!t)return;const l={...GP},c={...GP},d={...GP};for(let f=0;f{y.preLoading+=Number(b.preLoading),y.validating+=Number(b.validating),y.loading+=Number(b.loading),y.execute+=Number(b.execute),y.postExecute+=Number(b.postExecute)};t.txn_landed[f]?t.txn_error_code[f]===0?x(c,v):x(d,v):x(l,v)}return l.total=YP(l),c.total=YP(c),d.total=YP(d),{unlanded:l,landedSuccess:c,landedFailed:d,max:Math.max(l.total,c.total,d.total)}},[t]);if(!n)return;const{unlanded:r,landedSuccess:i,landedFailed:o,max:a}=n;return u.jsx(Oi,{title:"Cumulative Execution Time",children:u.jsxs(qr,{columns:"repeat(7, auto)",gapX:xl,gapY:Nd,children:[u.jsx("div",{}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Success+Landed"}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Failed+Landed"}),u.jsx(Z,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Unlanded"}),u.jsx(mh,{label:"Preloading",landedSuccess:i.preLoading,landedFailed:o.preLoading,unlanded:r.preLoading,max:a}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(mh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a}),u.jsx(mh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a})]}):u.jsxs(u.Fragment,{children:[u.jsx(mh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a}),u.jsx(mh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a})]}),u.jsx(mh,{label:"Execute",landedSuccess:i.execute,landedFailed:o.execute,unlanded:r.execute,max:a}),u.jsx(mh,{label:"Post-Execute",landedSuccess:i.postExecute,landedFailed:o.postExecute,unlanded:r.postExecute,max:a}),u.jsx(mh,{label:"Total",landedSuccess:i.total,landedFailed:o.total,unlanded:r.total,max:a,isTotal:!0})]})})}function mh({label:e,landedSuccess:t,landedFailed:n,unlanded:r,max:i,isTotal:o}){const a=o?"#28684A":"#174933",s=o?"#8C333A":"#611623",l=o?"#12677E":"#004558",c=Ha(t),d=Ha(n),f=Ha(r);return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:Te(at.tableRowLabel,o&&at.total),children:e}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[c.value,u.jsx(Za,{children:c.unit})]}),u.jsx(WS,{value:t,total:i,valueColor:a}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[d.value,u.jsx(Za,{children:d.unit})]}),u.jsx(WS,{value:n,total:i,valueColor:s}),u.jsxs(Z,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[f.value,u.jsx(Za,{children:f.unit})]}),u.jsx(WS,{value:r,total:i,valueColor:l})]})}function oxt(){var i;const e=J(Cn),t=(i=pl(e).response)==null?void 0:i.transactions,n=m.useMemo(()=>{if(!t)return;const{vote:o,nonVote:a,bundle:s}={vote:{count:0,total:0,min:1/0,max:-1/0},nonVote:{count:0,total:0,min:1/0,max:-1/0},bundle:{count:0,total:0,min:1/0,max:-1/0}};for(let l=0;lNumber(p)));t.txn_is_simple_vote[l]?(o.total+=f,o.count++,o.min=Math.min(o.min,f),o.max=Math.max(o.max,f)):(a.total+=f,a.count++,a.min=Math.min(a.min,f),a.max=Math.max(a.max,f)),t.txn_from_bundle[l]&&(s.total+=f,s.count++,s.min=Math.min(s.min,f),s.max=Math.max(s.max,f))}return{vote:o.total/o.count,nonVote:a.total/a.count,bundle:s.total/s.count,voteMin:o.min,voteMax:o.max,nonVoteMin:a.min,nonVoteMax:a.max,bundleMin:s.min,bundleMax:s.max}},[t]);if(!n)return;const r=Math.max(n.voteMax,n.nonVoteMax,n.bundleMax);return u.jsx(Oi,{title:"Execution Time (min / avg / max)",children:u.jsxs(qr,{columns:"repeat(7, auto)",gapX:xl,gapY:Nd,children:[u.jsx(XP,{label:"Vote",value:n.vote,color:hd,max:r,minValue:n.voteMin,maxValue:n.voteMax}),u.jsx(XP,{label:"Non-vote",value:n.nonVote,color:Hf,max:r,minValue:n.nonVoteMin,maxValue:n.nonVoteMax}),u.jsx(XP,{label:"Bundle",value:n.bundle,color:"var(--purple-9)",max:r,minValue:n.bundleMin,maxValue:n.bundleMax})]})})}const bpe=4,VS=`${bpe}px`;function KP(e){return`clamp(0px, calc(${e}% - ${bpe/2}px), calc(100% - ${VS}))`}function XP({label:e,value:t,max:n,minValue:r,maxValue:i}){const o=isFinite(t)&&isFinite(r)&&isFinite(i),a=o?t/n*100:0,s=o?r/n*100:0,l=o?i/n*100:0,c=o?Ha(t):null,d=o?Ha(r):null,f=o?Ha(i):null;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:"#6E56CF"},align:"right",children:d?u.jsxs(u.Fragment,{children:[d.value,u.jsx(Za,{children:d.unit})]}):"-"}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:"#BAA7FF"},align:"right",children:c?u.jsxs(u.Fragment,{children:[c.value,u.jsx(Za,{children:c.unit})]}):"-"}),u.jsx(Z,{className:at.value,children:"/"}),u.jsx(Z,{className:at.value,style:{color:"#6E56CF"},align:"right",children:f?u.jsxs(u.Fragment,{children:[f.value,u.jsx(Za,{children:f.unit})]}):"-"}),u.jsxs("svg",{height:"13",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center",width:"100%"},children:[u.jsx("rect",{height:"10%",y:"45%",width:"100%",opacity:.6,fill:"#313131"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(s),width:VS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(l),width:VS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:KP(a),width:VS,fill:"#BAA7FF"})]})]})}function axt(){return u.jsxs(ZP,{title:"Compute",flexGrow:"2",children:[u.jsx(nxt,{}),u.jsx(txt,{}),u.jsx(rxt,{}),u.jsx(ixt,{}),u.jsx(oxt,{})]})}function Ls(e,t=Bo,n){if(!e)return"0";const r=Number(e)/dd;return r<1?r.toFixed(t):z$(r,n??{useSuffix:!0,significantDigits:4,trailingZeroes:!1,decimalsOnZero:!1})}const JP=1e8;function sxt(){const e=J(Cn),t=pl(e),n=m.useMemo(()=>{var f;const a=(f=t==null?void 0:t.response)==null?void 0:f.transactions;if(!a)return;const{tips:s,fees:l}=a.txn_transaction_fee.reduce((p,v,x)=>(p.fees+=Number(VN(a,x)),p.tips+=Number(HN(a,x)),p),{tips:0,fees:0}),c=s+l,d=s*.06;return{tips:s,fees:l,maxValue:c>JP?c+d:JP}},[t]);if(!n)return;const{tips:r,fees:i,maxValue:o}=n;return u.jsx(Oi,{title:"Fee Breakdown",children:u.jsxs(qr,{columns:"repeat(3, auto)",gapX:xl,gapY:Nd,children:[u.jsx(lxt,{label:"Tips",value:r,total:o,color:qf}),u.jsx(uxt,{label:"Fees",value:i,total:o,color:kg}),u.jsx(cxt,{tips:r,fees:i})]})})}function lxt({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0,o=t*.06,a=n>0?o/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:r},align:"right",children:`${Ls(t??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsxs(W,{children:[u.jsxs("svg",{height:"8",width:`${i+a}%`,fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${100/106*100}%`,opacity:.6,fill:r}),u.jsx("rect",{height:"8",x:`${100/106*100}%`,width:`${6/106*100}%`,opacity:.6,fill:"#FFC53D"})]}),u.jsx(Z,{className:at.label,style:{marginLeft:xl},children:"Commission\xA0"}),u.jsxs(Z,{className:at.value,style:{color:"#FFC53D"},children:["-",`${Ls(o??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`]})]})]})}function uxt({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:e}),u.jsx(Z,{className:at.value,style:{color:r},align:"right",children:`${Ls(t??0n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:r})})]})}function cxt({tips:e,fees:t}){const n=e+t,r=Math.max(JP,n),i=n/r*100,o=e/r*100,a=t/r*100;return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:"Income"}),u.jsx(Z,{className:at.value,style:{color:wp},align:"right",children:`${Ls(n,Bo,{decimals:Bo,trailingZeroes:!0})} SOL`}),u.jsxs("svg",{height:"10",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"100%",width:`${o}%`,opacity:.6,fill:qf}),u.jsx("rect",{height:"100%",x:`${o}%`,width:`${a}%`,opacity:.6,fill:kg}),u.jsx("rect",{height:"100%",x:`${o}%`,width:1,opacity:.6,fill:"black"}),u.jsx("rect",{height:"9",width:`${i}%`,x:.5,y:.5,opacity:1,stroke:wp,strokeWidth:1})]})]})}const dxt="_container_1w2fb_1",fxt="_label_1w2fb_5",hxt="_clickable_1w2fb_12",QP={container:dxt,label:fxt,clickable:hxt},xpe=["#003362","#113B29","#3F2700","#202248","#33255B"],eO=5e3;function HS({data:e,showPct:t,sort:n,onItemClick:r}){const i=e.reduce((s,{value:l})=>s+l,0);let o=n?e.toSorted((s,l)=>l.value-s.value):e,a=0;if(o.length>eO){for(let s=eO;su.jsx(W,{width:`${l}px`,height:`${s}px`,children:o.map(({value:c,label:d},f)=>{const p=xpe[f%xpe.length],v=c/i,x=v*100,y=x>1?`${Math.round(x)}%`:`${x.toFixed(2)}%`,b=v*l>30;return u.jsx(ci,{content:u.jsxs(u.Fragment,{children:[u.jsx(Z,{weight:"bold",children:d}),u.jsx("br",{}),u.jsx(Z,{children:`Income: ${Ls(c,Fte)} SOL (${y})`})]}),side:"bottom",disableHoverableContent:!0,children:r?u.jsx(W,{asChild:!0,className:QP.clickable,minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:u.jsx("button",{"aria-label":`Filter by ${d} (${y})`,onClick:()=>r({label:d,value:c}),children:b&&u.jsx(_pe,{label:d,showPct:t,formattedPct:y})})}):u.jsx(W,{minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:b&&u.jsx(_pe,{label:d,showPct:t,formattedPct:y})})},d)})})})})}function _pe({label:e,showPct:t,formattedPct:n}){return u.jsxs(Z,{mx:"2",className:QP.label,truncate:!0,children:[e,t&&` ${n}`]})}function pxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_signature.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([m_]),t(m_,{mode:Mn.TxnSignature,text:o})},[n,t]);return u.jsx(Oi,{title:"Income Distribution by Txn",children:u.jsx(HS,{data:r,sort:!0,onItemClick:i})})}function mxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_source_ipv4.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([m_]),t(m_,{mode:Mn.Ip,text:o})},[n,t]);return u.jsx(Oi,{title:"Income Distribution by IP Address",children:u.jsx(HS,{data:r,sort:!0,onItemClick:i})})}const tO="Bundle";function gxt({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=Ee(Rs),i=m.useMemo(()=>{const a=e.txn_from_bundle.map((s,l)=>({value:Number(md(e,l)),label:s?tO:"Other"}));return Object.values(rt.groupBy(a,({label:s})=>s)).map(s=>({label:s[0].label,value:rt.sum(s.map(({value:l})=>l))})).sort((s,l)=>s.label===tO?-1:1)},[e]),o=m.useCallback(({label:a})=>{n([OP]),t(OP,a===tO?"Yes":"No"),r(s=>{s.setScale(Vt,{min:s.data[0][0],max:s.data[0][s.data[0].length-1]})})},[n,t,r]);return u.jsx(Oi,{title:"Income Distribution by Bundle",children:u.jsx(HS,{data:i,showPct:!0,onItemClick:o})})}function vxt(e,t=[1,10]){const n=e.length;if(n===0)return;e=e.toSorted((c,d)=>d-c);const r=new Array(n+1);r[0]=0;for(let c=0;crt.clamp(c,0,100)))).sort((c,d)=>c-d),a=c=>c<=0?0:c>=100?n:rt.clamp(Math.ceil(c/100*n),0,n),s={},l=[0,...o,100];for(let c=1;cNumber(md(e,i)),[]),n=vxt(t);if(n!==void 0)return Object.entries(n).map(([r,i])=>({value:i,label:r}))}function bxt({transactions:e}){const t=m.useMemo(()=>yxt(e),[e]);if(t)return u.jsx(Oi,{title:"Income Distribution by Percent Txns",children:u.jsx(HS,{data:t})})}function xxt(){var n;const e=J(Cn),t=(n=pl(e).response)==null?void 0:n.transactions;if(t)return u.jsxs(u.Fragment,{children:[u.jsx(bxt,{transactions:t}),u.jsx(gxt,{transactions:t}),u.jsx(pxt,{transactions:t}),u.jsx(mxt,{transactions:t})]})}function _xt(e,t){const n=parseInt(e.substring(1,3),16),r=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return`rgba(${n}, ${r}, ${i}, ${t})`}const wxt=(ype+2)**2;function kxt(e,t,n,r){function i(a){const{left:s,top:l}=a.cursor;if(s==null||l==null)return null;const c=a.data[0],d=a.data[1];let f=null,p=1/0;for(let v=0;v({width:0,height:0,padding:[10,15,0,15],scales:{[ZS]:{time:!1,distr:n?3:void 0},[Td]:{time:!1,distr:3}},axes:[{scale:ZS,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{show:!1},values:(f,p)=>p.map(v=>{if(r){const{scaledToX:x,negMin:y,posMax:b}=r;return Math.round(x(v,y,b)).toLocaleString()}return v&&Rie.format(v)}),size:20,gap:0,font:"8px Inter Tight"},{scale:Td,stroke:sr,grid:{show:!1},border:{show:!0,width:1/devicePixelRatio,stroke:sr},show:!1}],series:[{scale:ZS},{scale:Td,stroke:void 0,points:{show:!0,size:ype*2,fill:_xt(wp,.3),space:0}}],legend:{show:!1},hooks:{draw:[f=>{var p;f.ctx.save(),f.ctx.fillStyle=sr,f.ctx.font="18px Inter Tight",f.ctx.textAlign="left",f.ctx.fillText(`${(((p=f.scales[Td])==null?void 0:p.max)??0)/dd} SOL`,0,0),f.ctx.restore()}]},plugins:[kxt(s,ZS,Td,c)]}),[s,n,r]);return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:f,width:p})=>(d.width=p,d.height=f,u.jsx(Pp,{id:t,options:d,data:e}))})}),u.jsx(Sxt,{elId:s,data:l,xLabel:i,xColor:o,tooltipFormatX:a})]})}function Cxt(e){return e==null?void 0:e.txn_compute_units_consumed.map((t,n)=>({cu:t,i:n})).sort((t,n)=>t.cu-n.cu).reduce((t,{cu:n,i:r})=>{const i=Number(md(e,r));return!i||!n||(t[0].push(n),t[1].push(i)),t},[[],[]])}function jxt(e,t,n){return e<=0?.5*(e-t)/-t:.5+.5*(e/n)}function kpe(e,t,n){return e<=.5?t+e/.5*-t:(e-.5)/.5*n}function Txt(e){if(!e)return;const t=e.txn_arrival_timestamps_nanos.map((i,o)=>({tsNanos:i,i:o})).sort((i,o)=>Number(i.tsNanos-o.tsNanos)).reduce((i,{tsNanos:o,i:a})=>{const s=Number(o-e.start_timestamp_nanos)/1e6,l=Number(md(e,a));return l&&(i[0].push(s),i[1].push(l??0)),i},[[],[]]),n=t[0][0],r=t[0][t[0].length-1];return t[0]=t[0].map(i=>jxt(i,n,r)),{min:n,max:r,chartData:t}}function Ixt(){var a,s;const e=J(Cn),t=(a=pl(e).response)==null?void 0:a.transactions,n=pl(e),r=m.useMemo(()=>Cxt(t),[t]),i=m.useMemo(()=>Txt(t),[t]),o=m.useMemo(()=>{if(i)return{scaledToX:kpe,negMin:i.min,posMax:i.max}},[i]);if(!(!((s=n.response)!=null&&s.transactions)||!r||!i))return u.jsxs(W,{flexGrow:"1",minWidth:"300px",minHeight:"150px",gap:Qbt,children:[u.jsx(Oi,{title:"Compute Units vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"cuIncomeScatterChart",data:r,xLogScale:!0,xLabel:"CU",xColor:pd,formatX:l=>Rie.format(l)})}),u.jsx(Oi,{title:"Arrival Time vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"arrivalIncomeScatterChart",data:i.chartData,xScaleOptions:o,xLabel:"Arrival",formatX:l=>`${Math.round(kpe(l,i.min,i.max)).toLocaleString()}ms`})})]})}function Ext(){return u.jsxs(ZP,{title:"Fees",flexGrow:"2",children:[u.jsx(sxt,{}),u.jsx(xxt,{}),u.jsx(Ixt,{})]})}function Nxt(e){function t(n,r,i){return e(i),!0}return i_({elId:Wfe,showOnCursor:t})}const M1=new Map,Spe=e=>{const t=M1.get(e);if(!t||t.pendingSync!==null)return;const n=Math.max(0,...t.naturalSizes.values());n!==t.maxSize&&(t.maxSize=n,t.pendingSync=requestAnimationFrame(()=>{for(const r of t.charts.values())r.redraw(!1,!0);t.pendingSync=null}))};function $xt(e,t,n=1){return{opts:(r,i)=>{var s;const o=(s=i.axes)==null?void 0:s[n];if(!o)return;const a=o.size;o.size=(l,c,d,f)=>{const p=typeof a=="function"?a(l,c,d,f):a??Jae(l.axes[d]),v=M1.get(t);return v?(v.naturalSizes.set(e,p),Math.max(p,v.maxSize)):p}},hooks:{ready:r=>{const i=M1.get(t);i?i.charts.set(e,r):M1.set(t,{charts:new Map([[e,r]]),naturalSizes:new Map,maxSize:0,pendingSync:null})},destroy:r=>{const i=M1.get(t);i&&i.charts.get(e)===r&&(i.charts.delete(e),i.naturalSizes.delete(e),i.charts.size===0?(i.pendingSync!==null&&cancelAnimationFrame(i.pendingSync),M1.delete(t)):Spe(t))},draw:r=>Spe(t)}}}function Mxt({data:e,formatBucketRange:t}){return u.jsx(o_,{elId:Wfe,children:e&&u.jsxs(qr,{columns:"auto auto",gapX:"2",children:[u.jsx($d,{label:"Duration",value:t(e.bucketIdx)}),u.jsx($d,{label:"Avg CUs",value:e.cuYVal?Math.round(e.cuYVal).toLocaleString():"0",color:pd}),u.jsx($d,{label:"Count",value:e.countYVal?e.countYVal.toLocaleString():"0"})]})})}const qS=20,Cpe=Array.from({length:qS},(e,t)=>t),Rxt=(e,t)=>Math.trunc(e/t*qS),nO=(e,t)=>e/qS*t,GS="8px Inter Tight",Lxt="#3C2E69",rO=1,Pxt=((Yme=(hC=jn.paths)==null?void 0:hC.bars)==null?void 0:Yme.call(hC,{size:[.8]}))??(()=>({stroke:new Path2D,fill:new Path2D})),jpe={cuData:[[],[]],countData:[[],[]],maxDuration:0},iO=(e,t)=>{const{value:n,unit:r}=Ha(e,!1,t);return`${n} ${r}`};function Oxt(){var c;const e=J(Cn),t=(c=pl(e).response)==null?void 0:c.transactions,[n,r]=m.useState(),{cuData:i,countData:o,maxDuration:a}=m.useMemo(()=>{if(!t)return jpe;const d=t.txn_landed.map((y,b)=>({duration:Number(t.txn_mb_end_timestamps_nanos[b]-t.txn_mb_start_timestamps_nanos[b]),cu:t.txn_compute_units_consumed[b]})).filter(({duration:y})=>y>0);if(d.length===0)return jpe;const f=Eb(d.map(({duration:y})=>y))+1,p=Array.from({length:qS},()=>({count:0,cus:0}));for(const{duration:y,cu:b}of d){const w=Rxt(y,f);p[w].count++,p[w].cus+=b}const v=p.map(({count:y})=>y),x=p.map(({count:y,cus:b})=>y?b/y:0);return{countData:[Cpe,v],cuData:[Cpe,x],maxDuration:f}},[t]),s=m.useCallback(d=>`${iO(nO(d,a),2)} - ${iO(nO(d+1,a),2)}`,[a]),l=m.useMemo(()=>n!==void 0?{bucketIdx:n,cuYVal:i[rO][n],countYVal:o[rO][n]}:void 0,[o,i,n]);if(t)return u.jsxs(u.Fragment,{children:[u.jsx(Oi,{title:"CUs vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:i,id:"txnExecutionDurationCu",maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Oi,{title:"Transaction Count vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:o,id:"txnExecutionDurationCount",log:!0,maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Mxt,{data:l,formatBucketRange:s})]})}function Tpe({data:e,log:t,id:n,maxDuration:r,setTooltipDataIdx:i}){const o=m.useMemo(()=>t?[e[0],e[rO].map(l=>Math.log((l??0)+1))]:e,[e,t]),a=Math.max(0,e[0].length-1),s=m.useMemo(()=>({width:0,height:0,cursor:{sync:{key:Wgt}},scales:{duration:{time:!1},y:{auto:!0,range:(l,c,d)=>t?[0,Math.max(d,Math.log(3))]:[0,Math.max(d,2)]}},series:[{scale:"duration"},{label:"Count",points:{show:!1},fill:Lxt,paths:Pxt}],axes:[{scale:"duration",splits:[0,a],values:(l,c)=>c.map(d=>iO(nO(d,r))),label:"Txn Execution Duration",stroke:sr,grid:{show:!1},size:10,gap:0,font:GS,labelFont:GS,labelGap:0,labelSize:10},{stroke:sr,splits:(l,c,d,f)=>[d,(d+f)/2,f],values:(l,c)=>(t?c.map(d=>Math.round(Math.exp(d)-1)):c.map(Math.round)).map(d=>d.toLocaleString()),gap:0,font:GS,size(l,c,d,f){var b,w;const p=l.axes[d];if(f>1)return Jae(p);const v=(((b=p.ticks)==null?void 0:b.size)??0)+(p.gap??0),x=(c??[]).reduce((_,S)=>S.length>_.length?S:_,"");if(x==="")return Math.ceil(v);l.ctx.font=((w=p.font)==null?void 0:w[0])??GS;const y=l.ctx.measureText(x).width/devicePixelRatio;return Math.ceil(v+y)}}],legend:{show:!1},plugins:[Nxt(i),dP({minRange:0}),$xt(n,"txnExecutionDurationYAxis")]}),[a,i,n,t,r]);return u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:l,width:c})=>(s.width=c,s.height=l,u.jsx(Pp,{id:n,options:s,data:o}))})})}function zxt(){var a;const e=J(Eg),t=J(Cn),n=J(ao),r=(a=tc(t).response)==null?void 0:a.scheduler_stats,i=m.useMemo(()=>{if(t===void 0||!n)return;const s=_i(t),l=n.indexOf(s)-1;if(!(l<0))return n[l]+$n-1},[n,t]);if(t===void 0)return;const o=i?fn.fromMillis(e*(t-i)).rescale():void 0;return u.jsx(Oi,{title:"Scheduler",children:u.jsxs(W,{direction:"column",gap:Nd,children:[u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"Time Since Last Leader Group"}),u.jsx(Z,{className:at.value,children:kp(o)})]}),Vi&&u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"End slot reason"}),u.jsx(Z,{className:at.value,children:r==null?void 0:r.end_slot_reason})]})]})})}function Dxt(){const e=J(Nb),{queryIdleData:t}=HM();return u.jsx(Oi,{title:"CPU Utilization",children:u.jsxs(W,{direction:"column",gap:"5px",children:[u.jsx(Wa,{header:"pack",tileCount:e.pack,queryIdlePerTile:t==null?void 0:t.pack,statLabel:"Full",metricType:"pack",isDark:!0,isNarrow:!0}),u.jsx(Wa,{header:To.bank,tileCount:e[To.bank],queryIdlePerTile:t==null?void 0:t[To.bank],statLabel:"TPS",metricType:"bank",isDark:!0,isNarrow:!0})]})})}function Axt(e){function t(n,r,i){return e(i),!0}return i_({elId:"pack-buffer-chart-tooltip",showOnCursor:t})}function Fxt({data:e}){return u.jsx(o_,{elId:"pack-buffer-chart-tooltip",children:e&&u.jsxs(qr,{columns:"auto auto",gapX:"2",children:[u.jsx($d,{label:"Regular",value:e.regular.toLocaleString(),color:Hf}),u.jsx($d,{label:"Votes",value:e.votes.toLocaleString(),color:hd}),u.jsx($d,{label:"Conflicting",value:e.conflicting.toLocaleString(),color:gk}),u.jsx($d,{label:"Bundles",value:e.bundles.toLocaleString(),color:qf})]})})}const oO="packX",R1="packTxnsY";function Uxt(){var l;const e=J(Cn),t=tc(e).response,[n,r]=m.useState(),i=t==null?void 0:t.scheduler_counts,o=m.useMemo(()=>{var f;const c=(f=t==null?void 0:t.transactions)==null?void 0:f.start_timestamp_nanos;if(!i||!c)return;const d=[[],[],[],[],[]];for(let p=0;p({width:0,height:0,padding:[0,0,0,0],drawOrder:["axes","series"],cursor:{},scales:{[oO]:{time:!1},[R1]:{}},axes:[{scale:oO,border:{show:!0,width:1/devicePixelRatio},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(c,d)=>d.map(f=>f/1e6+"ms"),space:100,size:20,font:"8px Inter Tight"},{scale:R1,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},space:50,font:"8px Inter Tight",size(c,d,f,p){var b,w;const v=c.axes[f];if(p>1)return v._size;let x=((b=v.ticks)==null?void 0:b.size)??0+(v.gap??0);x+=5;const y=(d??[]).reduce((_,S)=>S.length>_.length?S:_,"");return y!==""&&(c.ctx.font=((w=v.font)==null?void 0:w[0])??"Inter Tight",x+=c.ctx.measureText(y).width/devicePixelRatio),Math.ceil(x)}}],series:[{scale:oO},{label:"Regular",stroke:Hf,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Votes",stroke:hd,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Conflicting",stroke:gk,points:{show:!1},width:2/devicePixelRatio,scale:R1},{label:"Bundles",stroke:qf,points:{show:!1},width:2/devicePixelRatio,scale:R1}],legend:{show:!1},plugins:[rP(),uP({factor:.75}),Axt(r),mP()]}),[]);if(!o)return;const s=n!==void 0?i==null?void 0:i[n]:void 0;return u.jsxs(Oi,{title:"Pack Txns Buffer Utilization",flexGrow:"1",minWidth:"150px",minHeight:"150px",children:[u.jsx(Mt,{height:"100%",children:u.jsx($s,{children:({height:c,width:d})=>(a.width=d,a.height=c,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:"packBufferChart",options:a,data:o})}))})}),u.jsx(Fxt,{data:s})]})}function Bxt(){var n;const e=J(Cn),t=(n=Is(e).publish)==null?void 0:n.duration_nanos;return u.jsx(Oi,{title:"Slot Duration",children:u.jsxs(W,{gap:xl,children:[u.jsx(Z,{className:at.label,children:"Actual"}),t!=null&&u.jsx(Z,{className:at.value,children:`${(t/1e6).toFixed(2)}ms`})]})})}const Wxt=["success","fail_cu_limit","fail_fast_path","fail_byte_limit","fail_alloc_limit","fail_write_cost","fail_slow_path","fail_defer_skip"];function Vxt(){var l,c,d;const e=J(Cn),t=(l=tc(e).response)==null?void 0:l.scheduler_stats;if(!t)return;const{slot_schedule_counts:n,end_slot_schedule_counts:r,pending_smallest_bytes:i,pending_smallest_cost:o,pending_vote_smallest_bytes:a,pending_vote_smallest_cost:s}=t;return u.jsxs(u.Fragment,{children:[u.jsx(Oi,{title:"Txn Schedule Outcomes",children:u.jsxs(qr,{columns:"repeat(3, 1fr)",gapX:xl,gapY:Nd,children:[u.jsx(Z,{className:at.label,children:"Outcome"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Txn Count"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Txn Count (End)"}),n.map((f,p)=>{const v=Wxt[p];return u.jsxs(u.Fragment,{children:[u.jsx(Z,{className:at.label,children:v}),u.jsx(Z,{className:at.value,align:"right",children:f.toLocaleString()}),u.jsx(Z,{className:at.value,align:"right",children:r[p].toLocaleString()})]},v)})]})}),u.jsx(Oi,{title:"Smallest Pending Txn",children:u.jsxs(qr,{columns:"repeat(3, 1fr)",gapX:xl,gapY:Nd,children:[u.jsx("div",{}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"CU Cost"}),u.jsx(Z,{className:at.tableHeader,align:"right",children:"Size"}),u.jsx(Z,{className:at.label,children:"Non-vote"}),u.jsx(Z,{className:at.value,align:"right",children:(o==null?void 0:o.toLocaleString())??0}),u.jsx(Z,{className:at.value,align:"right",children:i!=null?(c=Sp(i))==null?void 0:c.toString():0}),u.jsx(Z,{className:at.label,children:"Vote"}),u.jsx(Z,{className:at.value,align:"right",children:(s==null?void 0:s.toLocaleString())??0}),u.jsx(Z,{className:at.value,align:"right",children:a!=null?(d=Sp(a))==null?void 0:d.toString():0})]})})]})}function Hxt(){return u.jsx(ZP,{title:"Performance",flexGrow:"3",children:u.jsxs(W,{direction:{sm:"row",initial:"column"},gapX:vpe,gapY:BS,flexGrow:"1",children:[u.jsxs(W,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(zxt,{}),u.jsx(Vxt,{}),u.jsx(Uxt,{})]}),u.jsxs(W,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(Bxt,{}),u.jsx(Oxt,{}),u.jsx(Dxt,{})]})]})})}const Zxt="_container_id19r_1",qxt="_label_id19r_6",Gxt="_value_id19r_10",Yxt="_popover-trigger_id19r_15",Kxt="_popover-underline-overlay_id19r_23",Xxt="_popover-text-underline_id19r_27",_l={container:Zxt,label:qxt,value:Gxt,popoverTrigger:Yxt,popoverUnderlineOverlay:Kxt,popoverTextUnderline:Xxt},Jxt=Intl.DateTimeFormat().resolvedOptions().timeZone;function aO({nanoTs:e,lines:t,textClassName:n,triggerClassName:r}){const i=m.useMemo(()=>tre(e),[e]),o=tpe(i),a=m.useMemo(()=>{const s=kk(e,{timezone:"local",showTimezoneName:!1}),l=kk(e,{timezone:"utc",showTimezoneName:!1});return{local:s.inNanos,utc:l.inNanos,ts:e.toString()}},[e]);return u.jsx(zg,{content:u.jsxs(qr,{columns:"max-content max-content",gapX:"10px",gapY:"5px",rows:"4",className:_l.container,children:[u.jsx(Z,{className:_l.label,children:Jxt}),u.jsx(Za,{className:_l.value,children:a.local}),u.jsx(Z,{className:_l.label,children:"UTC"}),u.jsx(Za,{className:_l.value,children:a.utc}),u.jsx(Z,{className:_l.label,children:"Relative"}),u.jsx(Za,{className:_l.value,children:o}),u.jsx(Z,{className:_l.label,children:"Timestamp"}),u.jsx(Za,{className:_l.value,children:a.ts})]}),align:"start",children:u.jsx(hs,{variant:"ghost",className:Te(_l.popoverTrigger,r),children:u.jsxs(W,{minWidth:"0",position:"relative",children:[u.jsx(W,{direction:"column",minWidth:"0",width:"100%",children:t.map((s,l)=>u.jsx(Z,{truncate:!0,className:n,children:s},l))}),u.jsx(W,{direction:"column","aria-hidden":"true",className:_l.popoverUnderlineOverlay,children:t.map((s,l)=>u.jsx(Z,{truncate:!0,className:Te(n,_l.popoverTextUnderline),children:s},l))})]})})})}const gh="5px";function Qxt(){var c,d,f,p;const e=J(Cn),{countryCode:t,countryFlag:n,cityName:r}=ma(e??0),i=J(fi),o=Is(e).publish,a=Hn("(min-width: 1420px)"),s=Hn("(min-width: 600px)"),l=m.useMemo(()=>a?"minmax(300px, max-content) minmax(228px, max-content) minmax(200px, max-content) minmax(150px, max-content) minmax(160px, max-content)":s?"minmax(0px, max-content) 1fr":"1",[a,s]);return e===void 0?null:u.jsxs(qr,{className:at.grid,align:a?"center":"start",justify:"between",columns:l,gapX:a?"12px":"30px",gapY:gh,children:[u.jsx(e_t,{slot:e,isLgScreen:a}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"City",value:r&&t?`${r}, ${t}`:"Unknown",icon:n,vertical:!a}),u.jsx(vh,{label:"Epoch",value:i==null?void 0:i.epoch,vertical:!a})]}),a?u.jsxs(W,{direction:"column",gapX:gh,gapY:gh,children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos}),u.jsx(Npe,{slot:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos,vertical:!0}),u.jsx(Npe,{slot:e,vertical:!0})]}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"Votes",value:(c=o==null?void 0:o.success_vote_transaction_cnt)==null?void 0:c.toLocaleString()}),u.jsx(vh,{label:"Vote Failures",value:(d=o==null?void 0:o.failed_vote_transaction_cnt)==null?void 0:d.toLocaleString()})]}),u.jsxs(W,{direction:"column",gap:gh,children:[u.jsx(vh,{label:"Non-votes",value:(f=o==null?void 0:o.success_nonvote_transaction_cnt)==null?void 0:f.toLocaleString()}),u.jsx(vh,{label:"Non-vote Failures",value:(p=o==null?void 0:o.failed_nonvote_transaction_cnt)==null?void 0:p.toLocaleString()})]})]})}function vh({label:e,value:t,popoverDropdown:n,icon:r,vertical:i=!1,allowCopy:o=!1}){return u.jsxs(W,{gapX:"2",direction:i?"column":"row",children:[u.jsx(Za,{className:at.label,children:e}),n===void 0?u.jsx(Dg,{className:at.copyButton,size:14,value:o?t==null?void 0:t.toString():void 0,hideIconUntilHover:!0,children:u.jsxs(Za,{truncate:!0,className:at.value,children:[t,r&&` ${r}`]})}):n]})}function e_t({slot:e,isLgScreen:t}){var a,s;const{peer:n,isLeader:r,name:i,pubkey:o}=ma(e??0);return t?u.jsxs(W,{gapX:"10px",align:"center",children:[u.jsx(ks,{url:(a=n==null?void 0:n.info)==null?void 0:a.icon_url,size:42,isYou:r}),u.jsxs(W,{direction:"column",gapY:"1px",minWidth:"0",children:[u.jsx(qk,{content:i,children:u.jsx(Z,{truncate:!0,className:Te(at.name,at.lg),children:i})}),u.jsx(Ipe,{slot:e,pubkey:o})]})]}):u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gapX:gh,align:"center",children:[u.jsx(ks,{url:(s=n==null?void 0:n.info)==null?void 0:s.icon_url,size:15,isYou:r}),u.jsx(qk,{content:i,children:u.jsx(Z,{truncate:!0,className:at.name,children:i})})]}),u.jsx(Ipe,{slot:e,pubkey:o})]})}function Ipe({slot:e,pubkey:t}){return u.jsxs(W,{gapX:gh,align:"center",children:[u.jsx(Dg,{className:at.copyButton,size:14,value:t,hideIconUntilHover:!0,children:u.jsx(Za,{truncate:!0,className:at.value,children:t})}),u.jsx(Px,{slot:e,size:"large"})]})}function Epe({vertical:e=!1,slotCompletedTimeNanos:t}){const n=m.useMemo(()=>{if(t!=null)return kk(t)},[t]);return u.jsx(vh,{label:"Slot Time",popoverDropdown:t&&n?u.jsx(aO,{nanoTs:t,lines:[n.inMillis],textClassName:Te("mono-text",at.value),triggerClassName:at.timePopover}):void 0,vertical:e})}function Npe({slot:e,vertical:t=!1}){var r;const n=(r=tc(e).response)==null?void 0:r.scheduler_stats;return u.jsx(vh,{label:"Block Hash",value:xi?"Not available for Frankendancer":n==null?void 0:n.block_hash,vertical:t,allowCopy:!xi&&(n==null?void 0:n.block_hash)!=null})}function t_t(){var t;const e=J(Cn);return(t=tc(e).response)!=null&&t.limits?u.jsxs(u.Fragment,{children:[u.jsx(Qxt,{}),u.jsx(so,{children:u.jsxs(W,{gap:vpe,wrap:"wrap",flexBasis:"0",children:[u.jsx(axt,{}),u.jsx(Ext,{}),u.jsx(Hxt,{})]})})]}):u.jsx(n_t,{})}function n_t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"550px",justifyContent:"center",alignItems:"center"},children:u.jsx(Z,{children:"Loading Slot Statistics..."})})}function r_t({children:e}){const t=m.useRef(new Map),n=m.useRef(new Map),r=m.useMemo(()=>({registerControl:(i,o,a)=>(t.current.set(i,o),n.current.set(i,a),()=>{t.current.delete(i),n.current.delete(i)}),triggerControl:(i,o)=>{var a;(a=t.current.get(i))==null||a(o)},resetControl:i=>{var o;(o=n.current.get(i))==null||o()},resetAllControls:i=>{for(const[o,a]of n.current)i!=null&&i.includes(o)||a()}}),[]);return u.jsx(N1.Provider,{value:r,children:e})}function i_t(){const e=J(Cn),[t,n]=m.useState(!1),r=J(gd.state)===Kf.NotReady;return m.useEffect(()=>{if(r&&!t){const i=setTimeout(()=>n(!0),2500);return()=>clearTimeout(i)}},[r,n,t]),r&&!t?null:e===void 0?u.jsx(lbt,{}):u.jsx(o_t,{})}function o_t(){if(J(Cn)!==void 0)return u.jsxs(W,{direction:"column",gap:"2",flexGrow:"1",children:[u.jsx(Dbt,{}),u.jsxs(r_t,{children:[u.jsx(t_t,{}),u.jsx(Ufe,{}),u.jsx(j1t,{}),u.jsx(Gyt,{})]})]})}const a_t=ca(),s_t=kt({slot:oe().optional().catch(void 0)}),$pe=lp("/slotDetails")({validateSearch:s_t,component:i_t,beforeLoad:({search:{slot:e}})=>a_t.set(gd.slot,e)}),l_t="_card_ybszl_1",u_t="_name-text_ybszl_8",c_t="_pubkey-text_ybszl_14",d_t="_narrow-screen_ybszl_21",f_t="_two-away_ybszl_27",h_t="_one-away_ybszl_33",p_t="_time-till_ybszl_38",mc={card:l_t,nameText:u_t,pubkeyText:c_t,narrowScreen:d_t,twoAway:f_t,oneAway:h_t,timeTill:p_t},m_t="_my-slots_kxi8u_1",g_t="_scroll_kxi8u_7",YS={mySlots:m_t,scroll:g_t};var Pm=(e=>(e.Past="Past",e.Now="Now",e.Upcoming="Upcoming",e))(Pm||{});function v_t(e,t){return et?Pm.Upcoming:Pm.Now}function y_t({currentLeaderSlot:e,searchLeaderSlots:t,slotOverride:n,curCardCount:r=0,cardCount:i=1}){const o=t.toReversed();if(n===void 0){if(o.length<=i)return o[r];{const a=o.findIndex(l=>lMath.abs(c-n)),s=Math.min(...a),l=Math.max(a.indexOf(s)-3,0);return o[r+l]}}function b_t({cardCount:e,currentLeaderSlot:t,epoch:n,searchLeaderSlots:r,slotOverride:i,topSlot:o}){const a=[],s=[],l=[];if(t===void 0)return{upcoming:a,now:s,past:l};for(let c=0;cn.end_slot))continue;const f=v_t(d,t);f===Pm.Upcoming&&a.push(d),f===Pm.Now&&s.push(d),f===Pm.Past&&l.push(d)}return{upcoming:a,now:s,past:l}}function Mpe(e){const{year:t,...n}=jt.DATETIME_MED_WITH_SECONDS;return e.toLocaleString({...n,timeZoneName:"short"})}function x_t({slot:e}){var c,d;const t=J(eu),{pubkey:n,peer:r,isLeader:i,name:o}=ma(e),a=t!==void 0&&e===t+$n,s=t!==void 0&&e===t+$n*2,l=Hn("(min-width: 1250px)");return u.jsx("div",{className:Te(mc.card,{[mc.oneAway]:a,[mc.twoAway]:s,[YS.mySlots]:i}),children:l?u.jsx(__t,{iconUrl:(c=r==null?void 0:r.info)==null?void 0:c.icon_url,isLeader:i,name:o,pubkey:n,slot:e}):u.jsx(w_t,{iconUrl:(d=r==null?void 0:r.info)==null?void 0:d.icon_url,isLeader:i,name:o,pubkey:n,slot:e})})}function __t({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(W,{gap:"2",minWidth:"300px",width:"505px",align:"center",pr:"20px",children:[u.jsx(ks,{url:e,size:24,isYou:t}),u.jsx(Z,{className:mc.nameText,children:n})]}),u.jsx(Z,{className:mc.pubkeyText,children:r}),u.jsx(W,{justify:"center",minWidth:"190px",children:u.jsx(Z,{children:i})}),u.jsx(Rpe,{slot:i})]})}function w_t({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gap:"2",align:"center",children:[u.jsx(ks,{url:e,size:16,isYou:t}),u.jsx(Z,{className:mc.nameText,children:n}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Z,{className:Te(mc.pubkeyText,mc.narrowScreen),children:r})]}),u.jsxs(W,{justify:"between",children:[u.jsx(Z,{children:i}),u.jsx(Rpe,{slot:i,isNarrowScreen:!0})]})]})}function Rpe({slot:e,isNarrowScreen:t}){const n=J(oo),r=J(Eg),i=n?fn.fromMillis(r*(e-n)).rescale():void 0,[o,a]=m.useReducer(Lpe,i,s=>Lpe(void 0,s));if(rx(()=>a(i),1e3),o!==void 0)return u.jsx(W,{className:Te(mc.timeTill,{[mc.narrowScreen]:t}),children:u.jsx(aO,{nanoTs:o.predictedTsNanos,lines:[`${o.dtText} (${o.timeTillText})`]})})}function Lpe(e,t){if(t!==void 0)return{timeTillText:kp(t),dtText:S_t(t),predictedTsNanos:k_t(t)}}function k_t(e){const t=Yf.plus(e);return BigInt(Math.trunc(t.toSeconds()))*1000000000n}function S_t(e){const t=Yf.plus(e);return Mpe(t)}const C_t="_card_zlaiw_1",j_t="_late-vote_zlaiw_7",T_t="_skipped_zlaiw_12",sO={card:C_t,lateVote:j_t,skipped:T_t},I_t="_grid_1feao_1",E_t="_firedancer-grid_1feao_16",N_t="_header-text_1feao_24",$_t="_vote-latency-header_1feao_30",M_t="_votes-header_1feao_33",R_t="_non-votes-header_1feao_36",L_t="_fees-header_1feao_39",P_t="_tips-header_1feao_42",O_t="_compute-units-header_1feao_45",z_t="_compute-units-pct_1feao_50",D_t="_row-text_1feao_55",A_t="_active_1feao_62",F_t="_slot-text_1feao_68",Xr={grid:I_t,firedancerGrid:E_t,headerText:N_t,voteLatencyHeader:$_t,votesHeader:M_t,nonVotesHeader:R_t,feesHeader:L_t,tipsHeader:P_t,computeUnitsHeader:O_t,computeUnitsPct:z_t,rowText:D_t,active:A_t,slotText:F_t},[U_t,B_t,W_t,V_t]=function(){const e=Co({}),t=fe(0);return[fe(null,(n,r,i,o)=>{const a=n(t);a&&o(a),r(e,s=>{s[i]=o})}),fe(null,(n,r,i)=>{r(e,o=>{delete o[i]})}),fe(null,(n,r,i,o)=>{for(const[a,s]of Object.entries(n(e)))Number(a)!==i&&s(o);r(t,o)}),fe(null,(n,r)=>{r(e,{}),r(t,0)})]}(),H_t="_slot-text_j49it_1",Z_t={slotText:H_t};function q_t({slot:e,isLeader:t,className:n}){const r=Te(n,Z_t.slotText);return t?u.jsx(Z,{className:r,children:u.jsx(sp,{to:"/slotDetails",search:{slot:e},children:e})}):u.jsx(Z,{className:r,children:e})}function L1({slot:e,currentSlot:t}){const n=m.useRef(null),r=Ee(U_t),i=Ee(B_t),o=Ee(W_t);return m.useEffect(()=>(r(e,a=>{var s;(s=n.current)==null||s.scrollTo(a,0)}),()=>i(e)),[i,r,e]),u.jsxs(W,{minWidth:"0",flexGrow:"1",children:[u.jsx(G_t,{slot:e,currentSlot:t}),u.jsxs("div",{className:Te(Xr.grid,{[Xr.firedancerGrid]:Vi}),ref:n,onScroll:a=>{o(e,a.currentTarget.scrollLeft)},children:[Vi&&u.jsx(Z,{className:Te(Xr.headerText,Xr.voteLatencyHeader),align:"right",children:"Vote\xA0Latency"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.votesHeader),align:"right",children:"Votes"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.nonVotesHeader),align:"right",children:"Non-votes"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.feesHeader),align:"right",children:"Fees"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.tipsHeader),align:"right",children:"Tips"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.durationHeader),align:"right",children:"Duration"}),u.jsx(Z,{className:Te(Xr.headerText,Xr.computeUnitsHeader),align:"right",children:"Compute\xA0Units"}),new Array(4).fill(0).map((a,s)=>{const l=e+3-s;return u.jsx(K_t,{slot:l,active:l===t},l)})]})]})}function G_t({slot:e,currentSlot:t}){return u.jsxs(W,{direction:"column",children:[u.jsx(Z,{className:Te(Xr.headerText,Xr.slotText),children:"Slot"}),new Array(4).fill(0).map((n,r)=>{const i=e+3-r,o=i===t;return u.jsx(Y_t,{slot:i,isCurrent:o},i)})]})}function Y_t({slot:e,isCurrent:t}){var o;const n=Is(e),r=OM(e),i=J(cp)===r;return u.jsxs(W,{className:Te(Xr.rowText,Xr.slotText,t&&Xr.active),align:"center",gap:"2",children:[u.jsx(q_t,{slot:e,isLeader:i}),u.jsx(dpe,{slot:e,isCurrent:t,size:"small"}),(o=n.publish)!=null&&o.skipped?u.jsx(hpe,{size:"small"}):u.jsx(fpe,{size:"small"})]})}function Ppe(e,t){const n=jb(e.success_vote_transaction_cnt??0),r=jb(e.success_nonvote_transaction_cnt??0),i=jb(e.failed_vote_transaction_cnt??0),o=jb(e.failed_nonvote_transaction_cnt??0),a=Ls((e.transaction_fee??0n)+(e.priority_fee??0n),Bo,{decimals:Bo,trailingZeroes:!0}),s=e.transaction_fee!=null?(Number(e.transaction_fee)/dd).toString():"0",l=e.priority_fee!=null?(Number(e.priority_fee)/dd).toString():"0",c=Ls(e.tips??0n,Bo,{decimals:Bo,trailingZeroes:!0}),d=e.tips!=null?(Number(e.tips)/dd).toString():"0",f=e.duration_nanos!==null?`${Math.trunc(e.duration_nanos/1e6)} ms`:"-",p=jb((e==null?void 0:e.compute_units)??0),v=e.compute_units!=null?e.compute_units/(e.max_compute_units??Ute)*100:0,x=e.vote_latency!=null?{text:rre(e.slot,e.vote_latency,t).toLocaleString()}:e.skipped?{text:""}:e.level==="rooted"?{text:"\u2715",color:"#FF3C3C"}:{text:"-"};return{voteTxns:(n+i).toLocaleString(),nonVoteTxns:(r+o).toLocaleString(),totalFees:a,transactionFeeFull:s,priorityFeeFull:l,tips:c,tipsFull:d,durationText:f,computeUnits:p,computeUnitsPct:v,voteLatency:x}}function K_t({slot:e,active:t}){var b;const n=J(Xf),r=J(oo),i=J(Ik),o=Is(e),[a,s]=m.useState(()=>{if(o.publish)return Ppe(o.publish,i)});m.useEffect(()=>{o.publish&&s(Ppe(o.publish,i))},[o.publish,i,e]);const l=e>(r??1/0),c=e===r,d=m.useRef(),[f,p]=m.useState(!1);ox(c)&&!c&&!f&&(clearTimeout(d.current),d.current=setTimeout(()=>{p(!1)},50),p(!0)),Og(()=>{clearTimeout(d.current)});const v=e<(n??0),x=(w,_)=>l||c||v?"-":!a&&!o.hasWaitedForData&&!f?"Loading...":a?(typeof w=="number"&&(w=Math.round(w)),`${w}`):"-",y=Te(Xr.rowText,{[Xr.active]:t});return u.jsxs(u.Fragment,{children:[Vi&&u.jsx(Z,{className:y,align:"right",style:{color:(b=a==null?void 0:a.voteLatency)==null?void 0:b.color},children:x(a==null?void 0:a.voteLatency.text)}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.voteTxns)}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.nonVoteTxns)}),u.jsx(ci,{content:u.jsxs(qr,{columns:"auto auto",rows:"2",gapX:"3",children:[u.jsx(Z,{children:"Transaction"}),u.jsx(Z,{children:"Priority"}),u.jsxs(Z,{children:[a==null?void 0:a.transactionFeeFull," SOL"]}),u.jsxs(Z,{children:[a==null?void 0:a.priorityFeeFull," SOL"]})]}),children:u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.totalFees)})}),u.jsx(ci,{content:`${a==null?void 0:a.tipsFull} SOL`,children:u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.tips)})}),u.jsx(Z,{className:y,align:"right",children:x(a==null?void 0:a.durationText)}),(a==null?void 0:a.computeUnits)!==void 0?u.jsx(Z,{className:y,align:"right",style:{padding:0},children:u.jsxs(u.Fragment,{children:[x(a==null?void 0:a.computeUnits.toLocaleString()),u.jsx("span",{className:Xr.computeUnitsPct,children:(a==null?void 0:a.computeUnitsPct)!==void 0?`${uk}(${x(a==null?void 0:a.computeUnitsPct)}%)`:null})]})}):u.jsx(Z,{className:y,align:"right",children:x()})]})}const X_t="_my-slots_476vd_1",J_t="_summary-container_476vd_8",Q_t="_name_476vd_13",e2t="_you_476vd_22",t2t="_mobile_476vd_26",n2t="_primary-text_476vd_32",r2t="_secondary-text_476vd_40",i2t="_divider_476vd_47",o2t="_firedancer_476vd_55",a2t="_frankendancer_476vd_59",s2t="_agave_476vd_63",l2t="_jito_476vd_67",u2t="_paladin_476vd_71",c2t="_bam_476vd_75",d2t="_sig_476vd_79",f2t="_rakurai_476vd_83",h2t="_harmonic_476vd_89",p2t="_major-minor-version-text_476vd_93",m2t="_remaining-version-text_476vd_97",g2t="_time-ago_476vd_102",v2t="_right-aligned_476vd_105",Go={mySlots:X_t,summaryContainer:J_t,name:Q_t,you:e2t,mobile:t2t,primaryText:n2t,secondaryText:r2t,divider:i2t,firedancer:o2t,frankendancer:a2t,agave:s2t,jito:l2t,paladin:u2t,bam:c2t,sig:d2t,rakurai:f2t,harmonic:h2t,majorMinorVersionText:p2t,remainingVersionText:m2t,timeAgo:g2t,rightAligned:v2t},y2t="_arrow-dropdown_mvcj2_1",b2t={arrowDropdown:y2t};function x2t({align:e,children:t}){const[n,r]=m.useState(!1);return u.jsx(zg,{align:e,content:t,isOpen:n,onOpenChange:r,children:u.jsx(hs,{variant:"ghost",size:"1",className:b2t.arrowDropdown,children:n?u.jsx(U$,{}):u.jsx(F$,{})})})}function Ope({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{direction:"column",className:Go.summaryContainer,gap:"2",mr:"2",children:[u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:30,isYou:i}),u.jsx(Z,{className:Te(Go.name,{[Go.you]:i}),children:o})]}),u.jsx(Z,{className:Go.primaryText,children:n}),u.jsx(Fpe,{slot:e,peer:r,showTime:t})]})}function zpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{direction:"column",gap:"1",children:[u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(Z,{className:Te(Go.name,Go.mobile),children:o}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Z,{className:Go.primaryText,children:n})]}),u.jsx(Fpe,{slot:e,peer:r,showTime:t,full:!0})]})}function Dpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(W,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(Z,{className:Go.primaryText,children:o}),u.jsx(x2t,{align:"start",children:u.jsxs(W,{p:"1",direction:"column",gap:"2",className:Go.mobile,children:[u.jsx(Z,{children:n}),u.jsx(_2t,{slot:e,peer:r,showTime:t})]})})]})}function Ape(e){var p;const t=J(Ig),{client:n,version:r,countryCode:i,countryFlag:o,cityName:a}=zM(e),s=e?nre(e):void 0,l=t?t.activeStake+t.delinquentStake:0n,c=l>0n?Number(s)/Number(l)*100:void 0,d=s!==void 0?`${BN(s)}${c!==void 0?` \u2022 ${z$(c,{significantDigits:4,trailingZeroes:!1})}%`:""}`:void 0,f=ZN(((p=e==null?void 0:e.gossip)==null?void 0:p.sockets.tvu)??"");return!Cb(n)&&!Cb(d)&&!f?null:{client:n,version:r,countryCode:i,countryFlag:o,cityName:a,stakeText:d??"",ipText:f||"Offline"}}function Fpe({slot:e,peer:t,showTime:n,full:r}){const i=Ape(t);if(!i)return null;const{client:o,version:a,countryCode:s,countryFlag:l,cityName:c,stakeText:d,ipText:f}=i;return u.jsxs(W,{gap:"4",minWidth:"0",justify:"between",className:Go.secondaryText,children:[u.jsxs(W,{direction:"column",minWidth:"0",children:[u.jsx(ci,{content:`${o??"Unknown"}${a!=null?` v${a}`:""}`,children:u.jsxs(W,{gap:"1",children:[u.jsx(W,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(Px,{slot:e,size:"medium"})}),u.jsx(Bpe,{client:o,version:a})]})}),c&&s&&u.jsx(ci,{content:`${c}, ${s}`,children:u.jsxs(W,{gap:"1",children:[u.jsx(W,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(Z,{children:l})}),u.jsx(Upe,{cityName:c,countryCode:s})]})})]}),u.jsxs(W,{gap:"4",children:[u.jsxs(W,{direction:"column",width:"180px",align:r?"end":"start",children:[u.jsx(Z,{children:d}),u.jsx(Z,{children:f})]}),u.jsx(W,{width:"165px",justify:r?"end":"start",children:n&&u.jsx(Wpe,{slot:e,align:r?"right":"left",multiline:!0})})]})]})}function _2t({slot:e,peer:t,showTime:n}){const r=Ape(t);if(!r)return null;const{client:i,version:o,countryCode:a,countryFlag:s,cityName:l,stakeText:c,ipText:d}=r;return u.jsxs(W,{gap:"2",minWidth:"0",justify:"between",direction:"column",children:[u.jsxs(W,{gap:"1",children:[u.jsx(Px,{slot:e,size:"small"}),u.jsx(Bpe,{client:i,version:o})]}),l&&a&&u.jsxs(W,{gap:"1",children:[u.jsx(Z,{children:s}),u.jsx(Upe,{cityName:l,countryCode:a})]}),u.jsx(Z,{children:c}),u.jsx(Z,{children:d}),n&&u.jsx(Mt,{children:u.jsx(Wpe,{slot:e,align:"left"})})]})}function Upe({cityName:e,countryCode:t}){return u.jsxs(W,{minWidth:"0",children:[u.jsx(Z,{truncate:!0,children:e}),u.jsxs(Z,{children:["\xA0",t]})]})}function Bpe({client:e,version:t}){const n=(e??"Unknown").split(" "),r=n[0],i=n[1],o=Go[r.toLowerCase()],a=t==null?void 0:t.match(/^(\d+\.\d+)(\..+)$/),s=a?a[1]:t??"",l=a?a[2]:"";return u.jsxs(W,{minWidth:"0",children:[u.jsxs(Z,{truncate:!0,children:[u.jsx(Z,{className:o,children:r}),i&&u.jsxs(Z,{className:Go[i.toLowerCase()],children:["\xA0",i]}),t&&u.jsx(Z,{children:"\xA0"})]}),t&&u.jsxs(Z,{className:Te(Go.majorMinorVersionText,o),children:["v",s]}),l&&u.jsx(Z,{truncate:!0,className:Te(Go.remainingVersionText,o),children:l})]})}function Wpe({slot:e,align:t,multiline:n=!1}){const{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}=npe(e);if(r===void 0)return;const a=i?Mpe(i):"",s=o?n?[a,o]:[`${a} (${o})`]:[a];return u.jsx(aO,{nanoTs:r,lines:s,textClassName:Te(Go.timeAgo,{[Go.rightAligned]:t==="right"})})}const Vpe="(min-width: 900px)",lO="(min-width: 600px)";function w2t({slot:e}){var f,p,v,x;const{isLeader:t}=ma(e),n=J(jre),r=Is(e),i=Is(e+1),o=Is(e+2),a=Is(e+3),s=[0,1,2,3].some(y=>n.has(e+y)),l=((f=r.publish)==null?void 0:f.skipped)||((p=i.publish)==null?void 0:p.skipped)||((v=o.publish)==null?void 0:v.skipped)||((x=a.publish)==null?void 0:x.skipped),c=Hn(Vpe),d=Hn(lO);return u.jsx("div",{className:Te(sO.card,{[YS.mySlots]:t,[sO.lateVote]:s,[sO.skipped]:l}),children:c?u.jsxs(W,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ope,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]}):d?u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]}):u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e,showTime:!0}),u.jsx(L1,{slot:e})]})})}const k2t="_card_wweyx_1",S2t={card:k2t};function C2t({slot:e}){const t=J(oo),{isLeader:n}=ma(e),r=Hn(Vpe),i=Hn(lO);return u.jsx("div",{className:Te(S2t.card,{[YS.mySlots]:n}),children:r?u.jsxs(W,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ope,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]}):i?u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]}):u.jsxs(W,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e}),u.jsx(L1,{slot:e,currentSlot:t})]})})}var j2t=Object.defineProperty,T2t=(e,t,n)=>t in e?j2t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,KS=(e,t,n)=>T2t(e,typeof t!="symbol"?t+"":t,n),uO=new Map,cO=new WeakMap,Hpe=0,I2t=void 0;function E2t(e){return e?(cO.has(e)||(Hpe+=1,cO.set(e,Hpe.toString())),cO.get(e)):"0"}function N2t(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?E2t(e.root):e[t]}`).toString()}function $2t(e){const t=N2t(e);let n=uO.get(t);if(!n){const r=new Map;let i;const o=new IntersectionObserver(a=>{a.forEach(s=>{var l;const c=s.isIntersecting&&i.some(d=>s.intersectionRatio>=d);e.trackVisibility&&typeof s.isVisible>"u"&&(s.isVisible=c),(l=r.get(s.target))==null||l.forEach(d=>{d(c,s)})})},e);i=o.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:o,elements:r},uO.set(t,n)}return n}function M2t(e,t,n={},r=I2t){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const l=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:i,observer:o,elements:a}=$2t(n),s=a.get(e)||[];return a.has(e)||a.set(e,s),s.push(t),o.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(a.delete(e),o.unobserve(e)),a.size===0&&(o.disconnect(),uO.delete(i))}}function R2t(e){return typeof e.children!="function"}var Zpe=class extends m.Component{constructor(e){super(e),KS(this,"node",null),KS(this,"_unobserveCb",null),KS(this,"handleNode",t=>{this.node&&(this.unobserve(),!t&&!this.props.triggerOnce&&!this.props.skip&&this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=t||null,this.observeNode()}),KS(this,"handleChange",(t,n)=>{t&&this.props.triggerOnce&&this.unobserve(),R2t(this.props)||this.setState({inView:t,entry:n}),this.props.onChange&&this.props.onChange(t,n)}),this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(e){(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i,fallbackInView:o}=this.props;this._unobserveCb=M2t(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i},o)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if(typeof e=="function"){const{inView:v,entry:x}=this.state;return e({inView:v,entry:x,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:i,rootMargin:o,onChange:a,skip:s,trackVisibility:l,delay:c,initialInView:d,fallbackInView:f,...p}=this.props;return m.createElement(t||"div",{ref:this.handleNode,...p},e)}};function dO({slot:e,lastCardSlot:t,setCardCount:n,children:r}){return e!==t?r:u.jsxs(u.Fragment,{children:[u.jsx(Zpe,{onChange:i=>{i||n("decrease")},children:r}),u.jsx(Zpe,{onChange:i=>{i&&n("increase")}})]})}const L2t="_preload_1uziq_1",P2t={preload:L2t};function O2t({slot:e}){var a,s;Is(e);const t=OM(e),n=Hk(t),[r,i]=Vl($ie((a=n==null?void 0:n.info)==null?void 0:a.icon_url)),o=!r&&((s=n==null?void 0:n.info)!=null&&s.icon_url)?n.info.icon_url:void 0;return u.jsx("div",{className:P2t.preload,children:u.jsx("img",{src:o,onError:()=>i()})})}const XS=$n*5;function z2t({topCardSlotLeader:e,bottomCardSlotLeader:t,searchLeaderSlots:n}){if(n){const r=[],i=n.indexOf(t),o=n.indexOf(e);if(i>0)for(let a=1;a<=XS&&i-a>=0;a++){const s=n[i-a];for(let l=0;l<$n;l++)r.push(s+l)}if(o>0)for(let a=1;a<=XS&&o+a0)for(let a=r;a>r-XS;a--)o.push(a);if(i>0)for(let a=i;au.jsx(O2t,{slot:i},i))})}const A2t=10,F2t=2,U2t=1;function B2t(e,t){switch(t){case"increase":return e+F2t;case"decrease":return Math.max(1,e-U2t)}}function W2t(){const e=J(eu),t=J(An),n=J(Aa),r=J(fi),[i,o]=m.useReducer(B2t,A2t),a=t??(e??0)+Ate*$n,{upcoming:s,now:l,past:c}=m.useMemo(()=>b_t({cardCount:i,currentLeaderSlot:e,epoch:r,searchLeaderSlots:n,slotOverride:t,topSlot:a}),[i,e,r,n,t,a]);if(e===void 0)return;if((n==null?void 0:n.length)===0)return u.jsx(W,{justify:"center",align:"center",style:{color:mN,fontSize:"24px",letterSpacing:"-0.96px",minHeight:"300px"},children:u.jsx(Z,{children:"No slots found."})});const d=s[0]??l[0]??c[0]??-1,f=c[c.length-1]??l[l.length-1]??s[s.length-1]??-1;return u.jsxs(u.Fragment,{children:[!!s.length&&u.jsx(fO,{sectionName:"Upcoming",children:s.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(x_t,{slot:p},p)},p))}),!!l.length&&u.jsx(fO,{sectionName:"Now",children:l.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(C2t,{slot:p},p)},p))}),!!c.length&&u.jsx(fO,{sectionName:"Past",children:c.map(p=>u.jsx(dO,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(w2t,{slot:p})},p))}),u.jsx(D2t,{topCardSlotLeader:d,bottomCardSlotLeader:f})]})}function fO({children:e,sectionName:t}){const n=Hn(lO);return u.jsxs(W,{gap:"2",align:"stretch",children:[n&&u.jsxs(W,{direction:"column",gap:"2",align:"center",children:[u.jsx("div",{style:{width:"1px",flex:1,background:zN,height:"10px"}}),u.jsx(Z,{style:{transform:"rotate(180deg)",writingMode:"vertical-rl",color:Kte},size:"2",children:t}),u.jsx("div",{style:{width:"1px",flex:1,background:zN,height:"10px"}})]}),u.jsx(W,{direction:"column",flexGrow:"1",gap:"2",minWidth:"0",children:e})]})}const V2t="_container_1hof6_1",H2t="_button_1hof6_5",qpe={container:V2t,button:H2t};function Z2t(){const[e,t]=Vl(An),n=J(eu);if(e===void 0||n===void 0)return null;const r=e<=n+Ate*$n;return u.jsx("div",{className:qpe.container,children:u.jsxs(hs,{className:qpe.button,style:{bottom:r?void 0:"8px"},onClick:()=>t(void 0),children:[u.jsx(Z,{children:"Skip to Realtime"}),r?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const q2t="_label_14v9a_1",G2t="_value_14v9a_5",Gpe={label:q2t,value:G2t};function Y2t(){const{progressSinceLastLeader:e,nextSlotText:t,nextLeaderSlot:n}=Ox({showNowIfCurrent:!0}),r=n!==void 0?` (${n})`:"";return u.jsxs(W,{align:"center",gap:"2",children:[u.jsxs(Z,{className:Gpe.label,children:["Next leader slot",r]}),u.jsx(a1,{width:"60px",height:"8px",value:e}),u.jsx(Z,{className:Gpe.value,children:t})]})}const K2t="_container_bc437_1",X2t="_search-box_bc437_18",J2t="_label_bc437_29",Q2t="_search-button_bc437_33",ewt="_disabled_bc437_56",twt="_my-slots_bc437_64",nwt="_late-vote-slots_bc437_84",rwt="_skipped-slots_bc437_102",iwt="_skip-rate-label_bc437_130",owt="_skip-rate-value_bc437_135",Eo={container:K2t,searchBox:X2t,label:J2t,searchButton:Q2t,disabled:ewt,mySlots:twt,lateVoteSlots:nwt,skippedSlots:rwt,skipRateLabel:iwt,skipRateValue:owt};function JS(){const{searchType:e}=y_.useSearch(),t=Q0({from:y_.fullPath}),n=m.useCallback(r=>{t({search:{searchType:r},replace:!0})},[t]);return{searchType:e,setSearchType:n}}function awt(){const{searchText:e}=y_.useSearch(),t=Q0({from:y_.fullPath}),n=m.useCallback(r=>{t({search:{searchText:r,searchType:zi.text},replace:!0})},[t]);return{searchText:e,setSearchText:n}}function swt(){const e=Ee(Fze),t=Ee(An),{searchType:n}=JS(),{searchText:r,setSearchText:i}=awt(),[o,a]=m.useState(r),s=Tp(c=>{e(c),i(c)},1e3);m.useEffect(()=>{!s.isPending()&&o!==r&&a(r)},[s,o,r]);const l=()=>{i(""),t(void 0),e("")};return ix(()=>{n===zi.text&&e(r)}),u.jsxs(W,{className:Eo.container,gap:"2",wrap:"wrap",children:[u.jsx(Mt,{className:Eo.searchBox,children:u.jsxs(Q7,{placeholder:"Name, Client Id, Pubkey, or Slot (use , for multiple)",variant:"soft",color:"gray",onChange:c=>{a(c.currentTarget.value),s(c.currentTarget.value)},value:o,children:[u.jsx(M4,{children:u.jsx(qie,{height:"16",width:"16",style:{color:ON}})}),o&&u.jsx(M4,{children:u.jsx(nl,{size:"1",variant:"ghost",children:u.jsx(B$,{height:"14",width:"14",style:{color:ON},onClick:l})})})]})}),u.jsx(uwt,{resetSearchText:l}),Vi&&u.jsx(dwt,{resetSearchText:l}),u.jsx(cwt,{resetSearchText:l}),u.jsx(lwt,{}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(Y2t,{})]})}function lwt(){const e=J(Sre),t=m.useMemo(()=>e?`${(e.skip_rate*100).toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:2})}%`:"-",[e]);return u.jsxs(W,{justify:"center",align:"center",gap:"1",children:[u.jsx(Z,{className:Eo.skipRateLabel,children:"Skip Rate"}),u.jsx(Z,{className:e!=null&&e.skip_rate?Eo.skipRateValue:Eo.skipRateLabel,children:t})]})}function uwt({resetSearchText:e}){const t=J(ao),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=((t==null?void 0:t.length)??0)*4,s=m.useCallback(()=>{n(t)},[n,t]);m.useEffect(()=>{i===zi.mySlots&&n(t)},[t,n]);const l=()=>{e(),r(void 0),i===zi.mySlots?o(zi.text):(o(zi.mySlots),s())},c=i===zi.mySlots,d=!(t!=null&&t.length);return u.jsx(ci,{content:"Number of slots this validator is leader in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.mySlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle my slots",pressed:c,disabled:d,children:[u.jsx(Z,{className:Eo.label,children:"My Slots"}),u.jsx(Z,{children:a})]})})})})}function cwt({resetSearchText:e}){const t=J(u3),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=(t==null?void 0:t.length)??0,s=m.useCallback(()=>{const f=t==null?void 0:t.map(p=>p-p%4);n([...new Set(f)])},[n,t]);m.useEffect(()=>{i===zi.skippedSlots&&s()},[s]);const l=()=>{e(),r(void 0),i===zi.skippedSlots?o(zi.text):t!=null&&t.length&&(o(zi.skippedSlots),s())},c=i===zi.skippedSlots,d=!(t!=null&&t.length);return u.jsx(ci,{content:"Number of slots this validator has skipped in the current epoch since it was last restarted. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.skippedSlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle skipped slots",pressed:c,disabled:!c&&d,children:[u.jsx(Z,{className:Eo.label,children:"My Skipped Slots"}),u.jsx(Z,{children:a})]})})})})}function dwt({resetSearchText:e}){const t=J(jre),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=JS(),a=t.size,s=m.useMemo(()=>Array.from(new Set([...t].map(p=>_i(p)))),[t]),l=m.useCallback(()=>{n(s)},[n,s]);m.useEffect(()=>{i===zi.lateVoteSlots&&n(s)},[s,n]);const c=()=>{e(),r(void 0),i===zi.lateVoteSlots?o(zi.text):(o(zi.lateVoteSlots),l())},d=i===zi.lateVoteSlots,f=!t.size;return u.jsx(ci,{content:"Number of slots this validator has voted late in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(N7,{className:Te(Eo.searchButton,Eo.lateVoteSlots,f&&Eo.disabled),onClick:c,"aria-label":"Toggle late vote slots",pressed:d,disabled:f,children:[u.jsx(Z,{className:Eo.label,children:"My Late Votes"}),u.jsx(Z,{children:a})]})})})})}var Ype={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 +* http://hammerjs.github.io/ +* +* Copyright (c) 2016 Jorik Tangelder; +* Licensed under the MIT license */(function(e){(function(t,n,r,i){var o=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),s="function",l=Math.round,c=Math.abs,d=Date.now;function f(L,G,ie){return setTimeout(S(L,ie),G)}function p(L,G,ie){return Array.isArray(L)?(v(L,ie[G],ie),!0):!1}function v(L,G,ie){var Ie;if(L)if(L.forEach)L.forEach(G,ie);else if(L.length!==i)for(Ie=0;Ie\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Kt=t.console&&(t.console.warn||t.console.log);return Kt&&Kt.call(t.console,Ie,vt),L.apply(this,arguments)}}var y;typeof Object.assign!="function"?y=function(L){if(L===i||L===null)throw new TypeError("Cannot convert undefined or null to object");for(var G=Object(L),ie=1;ie-1}function M(L){return L.trim().split(/\s+/g)}function O(L,G,ie){if(L.indexOf&&!ie)return L.indexOf(G);for(var Ie=0;IeDi[G]}),Ie}function P(L,G){for(var ie,Ie,ze=G[0].toUpperCase()+G.slice(1),vt=0;vt1&&!ie.firstMultiple?ie.firstMultiple=pn(G):ze===1&&(ie.firstMultiple=!1);var vt=ie.firstInput,Kt=ie.firstMultiple,In=Kt?Kt.center:vt.center,Di=G.center=Yn(Ie);G.timeStamp=d(),G.deltaTime=G.timeStamp-vt.timeStamp,G.angle=On(In,Di),G.distance=kr(In,Di),De(ie,G),G.offsetDirection=Kn(G.deltaX,G.deltaY);var Ti=hr(G.deltaTime,G.deltaX,G.deltaY);G.overallVelocityX=Ti.x,G.overallVelocityY=Ti.y,G.overallVelocity=c(Ti.x)>c(Ti.y)?Ti.x:Ti.y,G.scale=Kt?tr(Kt.pointers,Ie):1,G.rotation=Kt?Mr(Kt.pointers,Ie):0,G.maxPointers=ie.prevInput?G.pointers.length>ie.prevInput.maxPointers?G.pointers.length:ie.prevInput.maxPointers:G.pointers.length,Dt(ie,G);var Ji=L.element;$(G.srcEvent.target,Ji)&&(Ji=G.srcEvent.target),G.target=Ji}function De(L,G){var ie=G.center,Ie=L.offsetDelta||{},ze=L.prevDelta||{},vt=L.prevInput||{};(G.eventType===he||vt.eventType===re)&&(ze=L.prevDelta={x:vt.deltaX||0,y:vt.deltaY||0},Ie=L.offsetDelta={x:ie.x,y:ie.y}),G.deltaX=ze.x+(ie.x-Ie.x),G.deltaY=ze.y+(ie.y-Ie.y)}function Dt(L,G){var ie=L.lastInterval||G,Ie=G.timeStamp-ie.timeStamp,ze,vt,Kt,In;if(G.eventType!=ge&&(Ie>ke||ie.velocity===i)){var Di=G.deltaX-ie.deltaX,Ti=G.deltaY-ie.deltaY,Ji=hr(Ie,Di,Ti);vt=Ji.x,Kt=Ji.y,ze=c(Ji.x)>c(Ji.y)?Ji.x:Ji.y,In=Kn(Di,Ti),L.lastInterval=G}else ze=ie.velocity,vt=ie.velocityX,Kt=ie.velocityY,In=ie.direction;G.velocity=ze,G.velocityX=vt,G.velocityY=Kt,G.direction=In}function pn(L){for(var G=[],ie=0;ie=c(G)?L<0?pe:ye:G<0?Se:Ce}function kr(L,G,ie){ie||(ie=St);var Ie=G[ie[0]]-L[ie[0]],ze=G[ie[1]]-L[ie[1]];return Math.sqrt(Ie*Ie+ze*ze)}function On(L,G,ie){ie||(ie=St);var Ie=G[ie[0]]-L[ie[0]],ze=G[ie[1]]-L[ie[1]];return Math.atan2(ze,Ie)*180/Math.PI}function Mr(L,G){return On(G[1],G[0],ut)+On(L[1],L[0],ut)}function tr(L,G){return kr(G[0],G[1],ut)/kr(L[0],L[1],ut)}var Sr={mousedown:he,mousemove:ue,mouseup:re},ri="mousedown",uo="mousemove mouseup";function Ki(){this.evEl=ri,this.evWin=uo,this.pressed=!1,ct.apply(this,arguments)}_(Ki,ct,{handler:function(L){var G=Sr[L.type];G&he&&L.button===0&&(this.pressed=!0),G&ue&&L.which!==1&&(G=re),this.pressed&&(G&re&&(this.pressed=!1),this.callback(this.manager,G,{pointers:[L],changedPointers:[L],pointerType:je,srcEvent:L}))}});var No={pointerdown:he,pointermove:ue,pointerup:re,pointercancel:ge,pointerout:ge},Ps={2:B,3:ae,4:je,5:me},zn="pointerdown",co="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(zn="MSPointerDown",co="MSPointerMove MSPointerUp MSPointerCancel");function xa(){this.evEl=zn,this.evWin=co,ct.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}_(xa,ct,{handler:function(L){var G=this.store,ie=!1,Ie=L.type.toLowerCase().replace("ms",""),ze=No[Ie],vt=Ps[L.pointerType]||L.pointerType,Kt=vt==B,In=O(G,L.pointerId,"pointerId");ze&he&&(L.button===0||Kt)?In<0&&(G.push(L),In=G.length-1):ze&(re|ge)&&(ie=!0),!(In<0)&&(G[In]=L,this.callback(this.manager,ze,{pointers:G,changedPointers:[L],pointerType:vt,srcEvent:L}),ie&&G.splice(In,1))}});var yc={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},bc="touchstart",xc="touchstart touchmove touchend touchcancel";function qa(){this.evTarget=bc,this.evWin=xc,this.started=!1,ct.apply(this,arguments)}_(qa,ct,{handler:function(L){var G=yc[L.type];if(G===he&&(this.started=!0),!!this.started){var ie=kl.call(this,L,G);G&(re|ge)&&ie[0].length-ie[1].length===0&&(this.started=!1),this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:B,srcEvent:L})}}});function kl(L,G){var ie=te(L.touches),Ie=te(L.changedTouches);return G&(re|ge)&&(ie=q(ie.concat(Ie),"identifier")),[ie,Ie]}var pi={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},Un="touchstart touchmove touchend touchcancel";function Rr(){this.evTarget=Un,this.targetIds={},ct.apply(this,arguments)}_(Rr,ct,{handler:function(L){var G=pi[L.type],ie=$o.call(this,L,G);ie&&this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:B,srcEvent:L})}});function $o(L,G){var ie=te(L.touches),Ie=this.targetIds;if(G&(he|ue)&&ie.length===1)return Ie[ie[0].identifier]=!0,[ie,ie];var ze,vt,Kt=te(L.changedTouches),In=[],Di=this.target;if(vt=ie.filter(function(Ti){return $(Ti.target,Di)}),G===he)for(ze=0;ze-1&&Ie.splice(vt,1)};setTimeout(ze,fo)}}function Yt(L){for(var G=L.srcEvent.clientX,ie=L.srcEvent.clientY,Ie=0;Ie-1&&this.requireFail.splice(G,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(L){return!!this.simultaneous[L.id]},emit:function(L){var G=this,ie=this.state;function Ie(ze){G.manager.emit(ze,L)}ie=ji&&Ie(G.options.event+Pd(ie))},tryEmit:function(L){if(this.canEmit())return this.emit(L);this.state=go},canEmit:function(){for(var L=0;LG.threshold&&ze&G.direction},attrTest:function(L){return Xi.prototype.attrTest.call(this,L)&&(this.state&Vr||!(this.state&Vr)&&this.directionTest(L))},emit:function(L){this.pX=L.deltaX,this.pY=L.deltaY;var G=Od(L.direction);G&&(L.additionalEvent=this.options.event+G),this._super.emit.call(this,L)}});function _c(){Xi.apply(this,arguments)}_(_c,Xi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(L){return this._super.attrTest.call(this,L)&&(Math.abs(L.scale-1)>this.options.threshold||this.state&Vr)},emit:function(L){if(L.scale!==1){var G=L.scale<1?"in":"out";L.additionalEvent=this.options.event+G}this._super.emit.call(this,L)}});function xu(){Xo.apply(this,arguments),this._timer=null,this._input=null}_(xu,Xo,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ga]},process:function(L){var G=this.options,ie=L.pointers.length===G.pointers,Ie=L.distanceG.time;if(this._input=L,!Ie||!ie||L.eventType&(re|ge)&&!ze)this.reset();else if(L.eventType&he)this.reset(),this._timer=f(function(){this.state=gi,this.tryEmit()},G.time,this);else if(L.eventType&re)return gi;return go},reset:function(){clearTimeout(this._timer)},emit:function(L){this.state===gi&&(L&&L.eventType&re?this.manager.emit(this.options.event+"up",L):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}});function wc(){Xi.apply(this,arguments)}_(wc,Xi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(L){return this._super.attrTest.call(this,L)&&(Math.abs(L.rotation)>this.options.threshold||this.state&Vr)}});function kc(){Xi.apply(this,arguments)}_(kc,Xi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ue|Ge,pointers:1},getTouchAction:function(){return oi.prototype.getTouchAction.call(this)},attrTest:function(L){var G=this.options.direction,ie;return G&(Ue|Ge)?ie=L.overallVelocity:G&Ue?ie=L.overallVelocityX:G&Ge&&(ie=L.overallVelocityY),this._super.attrTest.call(this,L)&&G&L.offsetDirection&&L.distance>this.options.threshold&&L.maxPointers==this.options.pointers&&c(ie)>this.options.velocity&&L.eventType&re},emit:function(L){var G=Od(L.offsetDirection);G&&this.manager.emit(this.options.event+G,L),this.manager.emit(this.options.event,L)}});function Sl(){Xo.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}_(Sl,Xo,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ya]},process:function(L){var G=this.options,ie=L.pointers.length===G.pointers,Ie=L.distance0?-1:1)}const pwt=function(){let e=0,t=null;return fe(null,(n,r,i)=>{t&&clearTimeout(t),i*e<0&&(e=0);const o=n(oo);if(o===void 0)return;const a=n(An),s=a&&a=s){const l=e%100;r(Bze,hwt(e/s)),e=l}t=setTimeout(()=>e=0,100)})}();function mwt(){const e=Ee(pwt),t=Ee(V_t),n=m.useRef(null),r=i=>{i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||!i.deltaY||e(i.deltaY)};return Og(()=>t()),m.useEffect(()=>{if(!n.current)return;const i=new Kpe(n.current);return i.get("pan").set({direction:Kpe.DIRECTION_VERTICAL}),i.on("panup pandown",o=>{var a;o.pointerType.includes("touch")&&e(-(((a=o.changedPointers[0])==null?void 0:a.movementY)??0)*5)}),()=>{i.destroy()}},[e]),u.jsxs(BZ,{overflow:"hidden",flexShrink:"1",onWheel:r,maxWidth:"100%",className:YS.scroll,ref:n,children:[u.jsx(swt,{}),u.jsx(Z2t,{}),u.jsx(W,{direction:"column",gap:"4",children:u.jsx(W2t,{})})]})}const gwt=fe(e=>e(eu)!=null&&!!e(xre));function vwt(){const e=J(gwt),t=Ee(An),n=Ee(Tg);ix(()=>{t(void 0),n(void 0)});const r=i=>{i.button===1&&t(void 0)};if(e)return u.jsx(W,{direction:"column",gap:"4",width:"100%",maxHeight:`calc(100vh - ${kb+Sb+12}px)`,onMouseDown:r,children:u.jsx(mwt,{})})}const Xpe=xs(["mySlots","skippedSlots","lateVoteSlots","text"]),zi=Xpe.enum,ywt={searchType:zi.text,searchText:""},bwt=kt({searchType:Xpe.default(zi.text).catch(zi.text),searchText:Et().default("").catch("")}),y_=lp("/leaderSchedule")({component:vwt,validateSearch:bwt,search:{middlewares:[K8e(ywt),Y8e(["searchType","searchText"])]},beforeLoad:({search:e})=>{if(e.searchText.includes(";"))throw cT({to:"/leaderSchedule",search:{...e,searchText:e.searchText.replaceAll(";",",")}})}});function P1({inBytes:e,value:t}){const n=Bg(t)??0;let r="-";if(n!==void 0)if(e){const{value:i,unit:o}=Ib(n);r=`${i.toLocaleString()} ${o}`}else r=Math.trunc(n).toLocaleString();return u.jsx(ni,{align:"right",children:r})}const QS=["ContactInfoV1","Vote","LowestSlot","SnapshotHashes","AccountsHashes","EpochSlots","VersionV1","VersionV2","NodeInstance","DuplicateShred","IncrementalSnapshotHashes","ContactInfoV2","RestartLastVotedForkSlots","RestartHeaviestFork"],xwt=["pull_request","pull_response","push","ping","pong","prune"],hO="30px",gc="10px",pO="160px",Jpe="10px",Qpe=`repeat(auto-fill, minmax(${pO}, 1fr)`,eme="44px",eC="200px",tC="320px",_wt="_header-text_n52ov_1",wwt="_storage-stats-container_n52ov_6",kwt="_root_n52ov_11",Md={headerText:_wt,storageStatsContainer:wwt,root:kwt};function Swt({storage:e}){const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((n,r)=>{var i,o,a;return{type:QS[r],activeEntries:(i=e.count)==null?void 0:i[r],egressCount:(o=e.count_tx)==null?void 0:o[r],egressBytes:(a=e.bytes_tx)==null?void 0:a[r]}}).sort((n,r)=>r.activeEntries-n.activeEntries)},[e]);if(t)return u.jsxs(W,{className:Md.storageStatsContainer,direction:"column",gap:gc,minWidth:tC,height:"100%",minHeight:"250px",children:[u.jsx(Z,{className:Md.headerText,children:"Storage Stats"}),u.jsxs(q0,{variant:"surface",className:Md.root,size:"1",children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Entry Type"}),u.jsx(Wi,{align:"right",children:"Total Entries"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map(n=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(ni,{align:"right",children:n.activeEntries.toLocaleString()}),u.jsx(P1,{value:n.egressCount??0}),u.jsx(P1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}function nC(){return nC=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var jwt={nivo:["#e8c1a0","#f47560","#f1e15b","#e8a838","#61cdbb","#97e3d5"],category10:f5,accent:h5,dark2:p5,paired:m5,pastel1:g5,pastel2:v5,set1:y5,set2:b5,set3:Yx,tableau10:x5},Twt={brown_blueGreen:tm,purpleRed_green:nm,pink_yellowGreen:rm,purple_orange:im,red_blue:om,red_grey:am,red_yellow_blue:sm,red_yellow_green:lm,spectral:um},Iwt={brown_blueGreen:_5,purpleRed_green:w5,pink_yellowGreen:k5,purple_orange:S5,red_blue:C5,red_grey:j5,red_yellow_blue:T5,red_yellow_green:I5,spectral:E5},Ewt={blues:wm,greens:km,greys:Sm,oranges:Tm,purples:Cm,reds:jm,blue_green:cm,blue_purple:dm,green_blue:fm,orange_red:hm,purple_blue_green:pm,purple_blue:mm,purple_red:gm,red_purple:vm,yellow_green_blue:ym,yellow_green:bm,yellow_orange_brown:xm,yellow_orange_red:_m},Nwt={blues:B5,greens:W5,greys:V5,oranges:q5,purples:H5,reds:Z5,turbo:nS,viridis:iS,inferno:aS,magma:oS,plasma:sS,cividis:G5,warm:K5,cool:X5,cubehelixDefault:Y5,blue_green:N5,blue_purple:$5,green_blue:M5,orange_red:R5,purple_blue_green:L5,purple_blue:P5,purple_red:O5,red_purple:z5,yellow_green_blue:D5,yellow_green:A5,yellow_orange_brown:F5,yellow_orange_red:U5};nC({},jwt,Twt,Ewt);var $wt={rainbow:Q5,sinebow:tS};nC({},Iwt,Nwt,$wt);var Mwt=function(e,t){if(typeof e=="function")return e;if(Fx(e)){if(function(l){return l.theme!==void 0}(e)){if(t===void 0)throw new Error("Unable to use color from theme as no theme was provided");var n=yl(t,e.theme);if(n===void 0)throw new Error("Color from theme is undefined at path: '"+e.theme+"'");return function(){return n}}if(function(l){return l.from!==void 0}(e)){var r=function(l){return yl(l,e.from)};if(Array.isArray(e.modifiers)){for(var i,o=[],a=function(){var l=i.value,c=l[0],d=l[1];if(c==="brighter")o.push(function(f){return f.brighter(d)});else if(c==="darker")o.push(function(f){return f.darker(d)});else{if(c!=="opacity")throw new Error("Invalid color modifier: '"+c+"', must be one of: 'brighter', 'darker', 'opacity'");o.push(function(f){return f.opacity=d,f})}},s=Cwt(e.modifiers);!(i=s()).done;)a();return o.length===0?r:function(l){return o.reduce(function(c,d){return d(c)},qp(r(l))).toString()}}return r}throw new Error("Invalid color spec, you should either specify 'theme' or 'from' when using a config object")}return function(){return e}},rC=function(e,t){return m.useMemo(function(){return Mwt(e,t)},[e,t])};xe.oneOfType([xe.string,xe.func,xe.shape({theme:xe.string.isRequired}),xe.shape({from:xe.string.isRequired,modifiers:xe.arrayOf(xe.array)})]);function $r(){return $r=Object.assign?Object.assign.bind():function(e){for(var t=1;t=t})},Owt={startAngle:{enter:function(e){return $r({},e,{endAngle:e.startAngle})},update:function(e){return e},leave:function(e){return $r({},e,{startAngle:e.endAngle})}},middleAngle:{enter:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return $r({},e,{startAngle:t,endAngle:t})},update:function(e){return e},leave:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return $r({},e,{startAngle:t,endAngle:t})}},endAngle:{enter:function(e){return $r({},e,{startAngle:e.endAngle})},update:function(e){return e},leave:function(e){return $r({},e,{endAngle:e.startAngle})}},innerRadius:{enter:function(e){return $r({},e,{outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.outerRadius})}},centerRadius:{enter:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return $r({},e,{innerRadius:t,outerRadius:t})},update:function(e){return e},leave:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return $r({},e,{innerRadius:t,outerRadius:t})}},outerRadius:{enter:function(e){return $r({},e,{innerRadius:e.outerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{outerRadius:e.innerRadius})}},pushIn:{enter:function(e){return $r({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})}},pushOut:{enter:function(e){return $r({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})},update:function(e){return e},leave:function(e){return $r({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})}}},rme=function(e,t){return m.useMemo(function(){var n=Owt[e];return{enter:function(r){return $r({progress:0},n.enter(r.arc),t?t.enter(r):{})},update:function(r){return $r({progress:1},n.update(r.arc),t?t.update(r):{})},leave:function(r){return $r({progress:0},n.leave(r.arc),t?t.leave(r):{})}}},[e,t])},zwt=function(e,t){var n=mht(e)-Math.PI/2,r=e.innerRadius+(e.outerRadius-e.innerRadius)*t;return k1(n,r)},Dwt=function(e){return function(t,n,r,i){return tx([t,n,r,i],function(o,a,s,l){var c=zwt({startAngle:o,endAngle:a,innerRadius:s,outerRadius:l},e);return"translate("+c.x+","+c.y+")"})}},Awt=function(e,t,n,r){t===void 0&&(t=.5),n===void 0&&(n="innerRadius");var i=w1(),o=i.animate,a=i.config,s=rme(n,r);return{transition:R$(e,{keys:function(l){return l.id},initial:s.update,from:s.enter,enter:s.update,update:s.update,leave:s.leave,config:a,immediate:!o}),interpolate:Dwt(t)}},Fwt=function(e){var t=e.center,n=e.data,r=e.transitionMode,i=e.label,o=e.radiusOffset,a=e.skipAngle,s=e.textColor,l=e.component,c=l===void 0?Lwt:l,d=e_(i),f=Ms(),p=rC(s,f),v=m.useMemo(function(){return n.filter(function(_){return Math.abs(qL(_.arc.endAngle-_.arc.startAngle))>=a})},[n,a]),x=Awt(v,o,r),y=x.transition,b=x.interpolate,w=c;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:y(function(_,S){return m.createElement(w,{key:S.id,datum:S,label:d(S),style:$r({},_,{transform:b(_.startAngle,_.endAngle,_.innerRadius,_.outerRadius),textColor:p(S)})})})})},Uwt=function(e){var t=e.label,n=e.style,r=Ms();return u.jsxs(iu.g,{opacity:n.opacity,children:[u.jsx(iu.path,{fill:"none",stroke:n.linkColor,strokeWidth:n.thickness,d:n.path}),u.jsx(iu.text,{transform:n.textPosition,textAnchor:n.textAnchor,dominantBaseline:"central",style:$r({},r.labels.text,{fill:n.textColor}),children:t})]})},Bwt=function(e){var t=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2);return t1.5*Math.PI?"start":"end"},ime=function(e,t,n,r){var i,o,a=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2),s=k1(a,e.outerRadius+t),l=k1(a,e.outerRadius+t+n);return a1.5*Math.PI?(i="after",o={x:l.x+r,y:l.y}):(i="before",o={x:l.x-r,y:l.y}),{side:i,points:[s,l,o]}},Wwt=jL().x(function(e){return e.x}).y(function(e){return e.y}),Vwt=function(e,t,n,r,i,o,a){return tx([e,t,n,r,i,o,a],function(s,l,c,d,f,p,v){var x=ime({startAngle:s,endAngle:l,outerRadius:d},f,p,v).points;return Wwt(x)})},Hwt=function(e,t,n,r){return tx([e,t,n,r],function(i,o,a,s){return Bwt({startAngle:i,endAngle:o})})},Zwt=function(e,t,n,r,i,o,a,s){return tx([e,t,n,r,i,o,a,s],function(l,c,d,f,p,v,x,y){var b=ime({startAngle:l,endAngle:c,outerRadius:f},p,v,x),w=b.points,_=b.side,S=w[2];return _==="before"?S.x-=y:S.x+=y,"translate("+S.x+","+S.y+")"})},qwt=function(e){var t=e.data,n=e.offset,r=n===void 0?0:n,i=e.diagonalLength,o=e.straightLength,a=e.skipAngle,s=a===void 0?0:a,l=e.textOffset,c=e.linkColor,d=e.textColor,f=w1(),p=f.animate,v=f.config,x=Ms(),y=rC(c,x),b=rC(d,x),w=function(S,C){return m.useMemo(function(){return Pwt(S,C)},[S,C])}(t,s),_=function(S){var C=S.offset,j=S.diagonalLength,T=S.straightLength,E=S.textOffset,$=S.getLinkColor,D=S.getTextColor;return m.useMemo(function(){return{enter:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:D(M),opacity:0}},update:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:j,straightLength:T,textOffset:E,linkColor:$(M),textColor:D(M),opacity:1}},leave:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:D(M),opacity:0}}}},[j,T,E,$,D,C])}({offset:r,diagonalLength:i,straightLength:o,textOffset:l,getLinkColor:y,getTextColor:b});return{transition:R$(w,{keys:function(S){return S.id},initial:_.update,from:_.enter,enter:_.update,update:_.update,leave:_.leave,config:v,immediate:!p}),interpolateLink:Vwt,interpolateTextAnchor:Hwt,interpolateTextPosition:Zwt}},Gwt=function(e){var t=e.center,n=e.data,r=e.label,i=e.skipAngle,o=e.offset,a=e.diagonalLength,s=e.straightLength,l=e.strokeWidth,c=e.textOffset,d=e.textColor,f=e.linkColor,p=e.component,v=p===void 0?Uwt:p,x=e_(r),y=qwt({data:n,skipAngle:i,offset:o,diagonalLength:a,straightLength:s,textOffset:c,linkColor:f,textColor:d}),b=y.transition,w=y.interpolateLink,_=y.interpolateTextAnchor,S=y.interpolateTextPosition,C=v;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(j,T){return m.createElement(C,{key:T.id,datum:T,label:x(T),style:$r({},j,{thickness:l,path:w(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength),textAnchor:_(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius),textPosition:S(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength,j.textOffset)})})})})},Ywt=function(e){var t=e.datum,n=e.style,r=e.onClick,i=e.onMouseEnter,o=e.onMouseMove,a=e.onMouseLeave,s=m.useCallback(function(f){return r==null?void 0:r(t,f)},[r,t]),l=m.useCallback(function(f){return i==null?void 0:i(t,f)},[i,t]),c=m.useCallback(function(f){return o==null?void 0:o(t,f)},[o,t]),d=m.useCallback(function(f){return a==null?void 0:a(t,f)},[a,t]);return u.jsx(iu.path,{d:n.path,opacity:n.opacity,fill:t.fill||n.color,stroke:n.borderColor,strokeWidth:n.borderWidth,onClick:r?s:void 0,onMouseEnter:i?l:void 0,onMouseMove:o?c:void 0,onMouseLeave:a?d:void 0})},Kwt=function(e,t,n,r,i){return tx([e,t,n,r],function(o,a,s,l){return i({startAngle:o,endAngle:a,innerRadius:Math.max(0,s),outerRadius:Math.max(0,l)})})},Xwt=function(e,t,n){t===void 0&&(t="innerRadius");var r=w1(),i=r.animate,o=r.config,a=rme(t,n);return{transition:R$(e,{keys:function(s){return s.id},initial:a.update,from:a.enter,enter:a.update,update:a.update,leave:a.leave,config:o,immediate:!i}),interpolate:Kwt}},Jwt=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.onClick,s=e.onMouseEnter,l=e.onMouseMove,c=e.onMouseLeave,d=e.transitionMode,f=e.component,p=f===void 0?Ywt:f,v=Ms(),x=rC(o,v),y=Xwt(n,d,{enter:function(S){return{opacity:0,color:S.color,borderColor:x(S)}},update:function(S){return{opacity:1,color:S.color,borderColor:x(S)}},leave:function(S){return{opacity:0,color:S.color,borderColor:x(S)}}}),b=y.transition,w=y.interpolate,_=p;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(S,C){return m.createElement(_,{key:C.id,datum:C,style:$r({},S,{borderWidth:i,path:w(S.startAngle,S.endAngle,S.innerRadius,S.outerRadius,r)}),onClick:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:c})})})},Qwt=function(e,t,n,r,i,o){o===void 0&&(o=!0);var a=[],s=k1(jd(r),n);a.push([s.x,s.y]);var l=k1(jd(i),n);a.push([l.x,l.y]);for(var c=Math.round(Math.min(r,i));c<=Math.round(Math.max(r,i));c++)if(c%90==0){var d=k1(jd(c),n);a.push([d.x,d.y])}a=a.map(function(b){var w=b[0],_=b[1];return[e+w,t+_]}),o&&a.push([e,t]);var f=a.map(function(b){return b[0]}),p=a.map(function(b){return b[1]}),v=Math.min.apply(Math,f),x=Math.max.apply(Math,f),y=Math.min.apply(Math,p);return{points:a,x:v,y,width:x-v,height:Math.max.apply(Math,p)-y}},e4t=function(e){var t=e===void 0?{}:e,n=t.cornerRadius,r=n===void 0?0:n,i=t.padAngle,o=i===void 0?0:i;return m.useMemo(function(){return nct().innerRadius(function(a){return a.innerRadius}).outerRadius(function(a){return a.outerRadius}).cornerRadius(r).padAngle(o)},[r,o])};function iC(){return iC=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(mO[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(l4t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(mO[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},d4t=function(e,t){return m.useMemo(function(){return c4t(e,t)},[e,t])};function Om(){return Om=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}var f4t=function(e){var t=e.width,n=e.height,r=e.legends,i=e.data,o=e.toggleSerie;return u.jsx(u.Fragment,{children:r.map(function(a,s){var l;return u.jsx(sfe,Om({},a,{containerWidth:t,containerHeight:n,data:(l=a.data)!=null?l:i,toggleSerie:a.toggleSerie?o:void 0}),s)})})},Ct={id:"id",value:"value",sortByValue:!1,innerRadius:0,padAngle:0,cornerRadius:0,layers:["arcs","arcLinkLabels","arcLabels","legends"],startAngle:0,endAngle:360,fit:!0,activeInnerRadiusOffset:0,activeOuterRadiusOffset:0,borderWidth:0,borderColor:{from:"color",modifiers:[["darker",1]]},enableArcLabels:!0,arcLabel:"formattedValue",arcLabelsSkipAngle:0,arcLabelsRadiusOffset:.5,arcLabelsTextColor:{theme:"labels.text.fill"},enableArcLinkLabels:!0,arcLinkLabel:"id",arcLinkLabelsSkipAngle:0,arcLinkLabelsOffset:0,arcLinkLabelsDiagonalLength:16,arcLinkLabelsStraightLength:24,arcLinkLabelsThickness:1,arcLinkLabelsTextOffset:6,arcLinkLabelsTextColor:{theme:"labels.text.fill"},arcLinkLabelsColor:{theme:"axis.ticks.line.stroke"},colors:{scheme:"nivo"},defs:[],fill:[],isInteractive:!0,animate:!0,motionConfig:"gentle",transitionMode:"innerRadius",tooltip:function(e){var t=e.datum;return u.jsx(VR,{id:t.id,value:t.formattedValue,enableChip:!0,color:t.color})},legends:[],role:"img"},h4t=["points"],p4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.colors,l=s===void 0?Ct.colors:s,c=e_(r),d=e_(o),f=VL(a),p=d4t(l,"id");return m.useMemo(function(){return t.map(function(v){var x,y=c(v),b=d(v),w={id:y,label:(x=v.label)!=null?x:y,hidden:!1,value:b,formattedValue:f(b),data:v};return Om({},w,{color:p(w)})})},[t,c,d,f,p])},m4t=function(e){var t=e.data,n=e.startAngle,r=e.endAngle,i=e.innerRadius,o=e.outerRadius,a=e.padAngle,s=e.sortByValue,l=e.activeId,c=e.activeInnerRadiusOffset,d=e.activeOuterRadiusOffset,f=e.hiddenIds,p=e.forwardLegendData,v=m.useMemo(function(){var w=sct().value(function(_){return _.value}).startAngle(jd(n)).endAngle(jd(r)).padAngle(jd(a));return s||w.sortValues(null),w},[n,r,a,s]),x=m.useMemo(function(){var w=t.filter(function(_){return!f.includes(_.id)});return{dataWithArc:v(w).map(function(_){var S=Math.abs(_.endAngle-_.startAngle);return Om({},_.data,{arc:{index:_.index,startAngle:_.startAngle,endAngle:_.endAngle,innerRadius:l===_.data.id?i-c:i,outerRadius:l===_.data.id?o+d:o,thickness:o-i,padAngle:_.padAngle,angle:S,angleDeg:qL(S)}})}),legendData:t.map(function(_){return{id:_.id,label:_.label,color:_.color,hidden:f.includes(_.id),data:_}})}},[v,t,f,l,i,c,o,d]),y=x.legendData,b=m.useRef(p);return m.useEffect(function(){typeof b.current=="function"&&b.current(y)},[b,y]),x},g4t=function(e){var t=e.activeId,n=e.onActiveIdChange,r=e.defaultActiveId,i=t!==void 0,o=m.useState(i||r===void 0?null:r),a=o[0],s=o[1];return{activeId:i?t:a,setActiveId:m.useCallback(function(l){n&&n(l),i||s(l)},[i,n,s])}},v4t=function(e){var t=e.data,n=e.width,r=e.height,i=e.innerRadius,o=i===void 0?Ct.innerRadius:i,a=e.startAngle,s=a===void 0?Ct.startAngle:a,l=e.endAngle,c=l===void 0?Ct.endAngle:l,d=e.padAngle,f=d===void 0?Ct.padAngle:d,p=e.sortByValue,v=p===void 0?Ct.sortByValue:p,x=e.cornerRadius,y=x===void 0?Ct.cornerRadius:x,b=e.fit,w=b===void 0?Ct.fit:b,_=e.activeInnerRadiusOffset,S=_===void 0?Ct.activeInnerRadiusOffset:_,C=e.activeOuterRadiusOffset,j=C===void 0?Ct.activeOuterRadiusOffset:C,T=e.activeId,E=e.onActiveIdChange,$=e.defaultActiveId,D=e.forwardLegendData,M=g4t({activeId:T,onActiveIdChange:E,defaultActiveId:$}),O=M.activeId,te=M.setActiveId,q=m.useState([]),P=q[0],X=q[1],A=m.useMemo(function(){var H,ee=Math.min(n,r)/2,ce=ee*Math.min(o,1),B=n/2,ae=r/2;if(w){var je=Qwt(B,ae,ee,s-90,c-90),me=je.points,ke=lme(je,h4t),he=Math.min(n/ke.width,r/ke.height),ue={width:ke.width*he,height:ke.height*he};ue.x=(n-ue.width)/2,ue.y=(r-ue.height)/2,B=(B-ke.x)/ke.width*ke.width*he+ue.x,ae=(ae-ke.y)/ke.height*ke.height*he+ue.y,H={box:ke,ratio:he,points:me},ee*=he,ce*=he}return{centerX:B,centerY:ae,radius:ee,innerRadius:ce,debug:H}},[n,r,o,s,c,w]),Y=m4t({data:t,startAngle:s,endAngle:c,innerRadius:A.innerRadius,outerRadius:A.radius,padAngle:f,sortByValue:v,activeId:O,activeInnerRadiusOffset:S,activeOuterRadiusOffset:j,hiddenIds:P,forwardLegendData:D}),F=m.useCallback(function(H){X(function(ee){return ee.indexOf(H)>-1?ee.filter(function(ce){return ce!==H}):[].concat(ee,[H])})},[]);return Om({arcGenerator:e4t({cornerRadius:y,padAngle:jd(f)}),activeId:O,setActiveId:te,toggleSerie:F},Y,A)},y4t=function(e){var t=e.dataWithArc,n=e.arcGenerator,r=e.centerX,i=e.centerY,o=e.radius,a=e.innerRadius;return m.useMemo(function(){return{dataWithArc:t,arcGenerator:n,centerX:r,centerY:i,radius:o,innerRadius:a}},[t,n,r,i,o,a])},b4t=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.isInteractive,s=e.onClick,l=e.onMouseEnter,c=e.onMouseMove,d=e.onMouseLeave,f=e.setActiveId,p=e.tooltip,v=e.transitionMode,x=Mnt(),y=x.showTooltipFromEvent,b=x.hideTooltip,w=m.useMemo(function(){if(a)return function(j,T){s==null||s(j,T)}},[a,s]),_=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),f(j.id),l==null||l(j,T)}},[a,y,f,l,p]),S=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),c==null||c(j,T)}},[a,y,c,p]),C=m.useMemo(function(){if(a)return function(j,T){b(),f(null),d==null||d(j,T)}},[a,b,f,d]);return u.jsx(Jwt,{center:t,data:n,arcGenerator:r,borderWidth:i,borderColor:o,transitionMode:v,onClick:w,onMouseEnter:_,onMouseMove:S,onMouseLeave:C})},x4t=["isInteractive","animate","motionConfig","theme","renderWrapper"],_4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.sortByValue,l=s===void 0?Ct.sortByValue:s,c=e.layers,d=c===void 0?Ct.layers:c,f=e.startAngle,p=f===void 0?Ct.startAngle:f,v=e.endAngle,x=v===void 0?Ct.endAngle:v,y=e.padAngle,b=y===void 0?Ct.padAngle:y,w=e.fit,_=w===void 0?Ct.fit:w,S=e.innerRadius,C=S===void 0?Ct.innerRadius:S,j=e.cornerRadius,T=j===void 0?Ct.cornerRadius:j,E=e.activeInnerRadiusOffset,$=E===void 0?Ct.activeInnerRadiusOffset:E,D=e.activeOuterRadiusOffset,M=D===void 0?Ct.activeOuterRadiusOffset:D,O=e.width,te=e.height,q=e.margin,P=e.colors,X=P===void 0?Ct.colors:P,A=e.borderWidth,Y=A===void 0?Ct.borderWidth:A,F=e.borderColor,H=F===void 0?Ct.borderColor:F,ee=e.enableArcLabels,ce=ee===void 0?Ct.enableArcLabels:ee,B=e.arcLabel,ae=B===void 0?Ct.arcLabel:B,je=e.arcLabelsSkipAngle,me=je===void 0?Ct.arcLabelsSkipAngle:je,ke=e.arcLabelsTextColor,he=ke===void 0?Ct.arcLabelsTextColor:ke,ue=e.arcLabelsRadiusOffset,re=ue===void 0?Ct.arcLabelsRadiusOffset:ue,ge=e.arcLabelsComponent,$e=e.enableArcLinkLabels,pe=$e===void 0?Ct.enableArcLinkLabels:$e,ye=e.arcLinkLabel,Se=ye===void 0?Ct.arcLinkLabel:ye,Ce=e.arcLinkLabelsSkipAngle,Ue=Ce===void 0?Ct.arcLinkLabelsSkipAngle:Ce,Ge=e.arcLinkLabelsOffset,_t=Ge===void 0?Ct.arcLinkLabelsOffset:Ge,St=e.arcLinkLabelsDiagonalLength,ut=St===void 0?Ct.arcLinkLabelsDiagonalLength:St,ct=e.arcLinkLabelsStraightLength,bt=ct===void 0?Ct.arcLinkLabelsStraightLength:ct,Qe=e.arcLinkLabelsThickness,Ke=Qe===void 0?Ct.arcLinkLabelsThickness:Qe,De=e.arcLinkLabelsTextOffset,Dt=De===void 0?Ct.arcLinkLabelsTextOffset:De,pn=e.arcLinkLabelsTextColor,Yn=pn===void 0?Ct.arcLinkLabelsTextColor:pn,hr=e.arcLinkLabelsColor,Kn=hr===void 0?Ct.arcLinkLabelsColor:hr,kr=e.arcLinkLabelComponent,On=e.defs,Mr=On===void 0?Ct.defs:On,tr=e.fill,Sr=tr===void 0?Ct.fill:tr,ri=e.isInteractive,uo=ri===void 0?Ct.isInteractive:ri,Ki=e.onClick,No=e.onMouseEnter,Ps=e.onMouseMove,zn=e.onMouseLeave,co=e.tooltip,xa=co===void 0?Ct.tooltip:co,yc=e.activeId,bc=e.onActiveIdChange,xc=e.defaultActiveId,qa=e.transitionMode,kl=qa===void 0?Ct.transitionMode:qa,pi=e.legends,Un=pi===void 0?Ct.legends:pi,Rr=e.forwardLegendData,$o=e.role,fo=$o===void 0?Ct.role:$o,Lr=qde(O,te,q),ho=Lr.outerWidth,_a=Lr.outerHeight,it=Lr.margin,Yt=Lr.innerWidth,nr=Lr.innerHeight,ht=p4t({data:t,id:r,value:o,valueFormat:a,colors:X}),ii=v4t({data:ht,width:Yt,height:nr,fit:_,innerRadius:C,startAngle:p,endAngle:x,padAngle:b,sortByValue:l,cornerRadius:T,activeInnerRadiusOffset:$,activeOuterRadiusOffset:M,activeId:yc,onActiveIdChange:bc,defaultActiveId:xc,forwardLegendData:Rr}),Ga=ii.dataWithArc,Ya=ii.legendData,Ko=ii.arcGenerator,mi=ii.centerX,Bn=ii.centerY,pr=ii.radius,Cr=ii.innerRadius,Ka=ii.setActiveId,po=ii.toggleSerie,mo=Sht(Mr,Ga,Sr),Vr={arcs:null,arcLinkLabels:null,arcLabels:null,legends:null};d.includes("arcs")&&(Vr.arcs=u.jsx(b4t,{center:[mi,Bn],data:Ga,arcGenerator:Ko,borderWidth:Y,borderColor:H,isInteractive:uo,onClick:Ki,onMouseEnter:No,onMouseMove:Ps,onMouseLeave:zn,setActiveId:Ka,tooltip:xa,transitionMode:kl},"arcs")),pe&&d.includes("arcLinkLabels")&&(Vr.arcLinkLabels=u.jsx(Gwt,{center:[mi,Bn],data:Ga,label:Se,skipAngle:Ue,offset:_t,diagonalLength:ut,straightLength:bt,strokeWidth:Ke,textOffset:Dt,textColor:Yn,linkColor:Kn,component:kr},"arcLinkLabels")),ce&&d.includes("arcLabels")&&(Vr.arcLabels=u.jsx(Fwt,{center:[mi,Bn],data:Ga,label:ae,radiusOffset:re,skipAngle:me,textColor:he,transitionMode:kl,component:ge},"arcLabels")),Un.length>0&&d.includes("legends")&&(Vr.legends=u.jsx(f4t,{width:Yt,height:nr,data:Ya,legends:Un,toggleSerie:po},"legends"));var wa=y4t({dataWithArc:Ga,arcGenerator:Ko,centerX:mi,centerY:Bn,radius:pr,innerRadius:Cr});return u.jsx(XL,{width:ho,height:_a,margin:it,defs:mo,role:fo,children:d.map(function(ji,gi){return Vr[ji]!==void 0?Vr[ji]:typeof ji=="function"?u.jsx(m.Fragment,{children:m.createElement(ji,wa)},gi):null})})},ume=function(e){var t=e.isInteractive,n=t===void 0?Ct.isInteractive:t,r=e.animate,i=r===void 0?Ct.animate:r,o=e.motionConfig,a=o===void 0?Ct.motionConfig:o,s=e.theme,l=e.renderWrapper,c=lme(e,x4t);return u.jsx(HL,{animate:i,isInteractive:n,motionConfig:a,renderWrapper:l,theme:s,children:u.jsx(_4t,Om({isInteractive:n},c))})};const w4t="_label_1nl74_1",k4t="_value_1nl74_6",cme={label:w4t,value:k4t};function yh(e){return u.jsx(Ey,{children:u.jsx(S4t,{...e})})}function S4t({value:e,label:t,valueColor:n}){const r=typeof e=="string"?e:e.toLocaleString();return u.jsxs(W,{direction:"column",minWidth:"0",gap:"10px",children:[u.jsx(Z,{className:cme.label,children:t}),u.jsx(Z,{className:cme.value,style:n?{color:n}:void 0,children:r})]})}const C4t="_header-text_uidb2_1",j4t="_tooltip_uidb2_8",oC={headerText:C4t,tooltip:j4t};function T4t({storage:e}){var a;const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((s,l)=>{var c,d,f;return{type:QS[l],activeEntries:(c=e.count)==null?void 0:c[l],egressCount:(d=e.count_tx)==null?void 0:d[l],egressBytes:(f=e.bytes_tx)==null?void 0:f[l]}})},[e]),n=m.useMemo(()=>{const s=rt.sum(e.count),l=e.capacity-s;return`${Math.round(s/l*100)}%`},[e.capacity,e.count]),r=koe(e.expired_count,1e4),i=m.useRef([]);m.useMemo(()=>{i.current.push({ts:performance.now(),value:e.expired_count})},[e.expired_count]),rx(()=>{const s=performance.now();for(;i.current.length>1&&s-i.current[0].ts>6e4;)i.current.shift()},1e3);const o=e.expired_count-(((a=i.current[0])==null?void 0:a.value)??0);if(t)return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{className:oC.headerText,children:"Storage Stats"}),u.jsxs(W,{gap:eme,wrap:"wrap",children:[u.jsxs(qr,{columns:Qpe,minWidth:pO,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(yh,{label:"Expired (/s)",value:`${Math.trunc(r.valuePerSecond??0)}`}),u.jsx(yh,{label:"Expired (Last Min)",value:`${o.toLocaleString()}`}),u.jsx(yh,{label:"Total Evicted",value:e.evicted_count}),u.jsx(yh,{label:"Capacity Used",value:n})]}),u.jsx(Mt,{minWidth:eC,minHeight:eC,flexGrow:"1",flexBasis:"0",children:u.jsx(E4t,{storage:e,usedCapacity:n})})]})]})}const dme=["#48295C","#562800","#132D21"],I4t=e=>dme[e%dme.length];function E4t({storage:e,usedCapacity:t}){const n=m.useMemo(()=>{const r=rt.sum(e.count);return[{id:"unused",label:"Unused",value:e.capacity-r,color:"#222"},...e.count.map((i,o)=>({id:QS[o]+o,label:QS[o],value:i})).sort((i,o)=>o.value-i.value).map((i,o)=>({...i,color:I4t(o)}))]},[e]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:o=>o.data.color,arcLabelsSkipAngle:10,arcLinkLabelsSkipAngle:10,arcLabelsTextColor:"#9F9F9F",enableArcLinkLabels:!1,layers:["arcs","arcLabels",N4t(t)],tooltip:$4t,animate:!1,innerRadius:.7,arcLabel:o=>o.data.label})})}function N4t(e){return function({dataWithArc:t,centerX:n,centerY:r}){return u.jsx("text",{y:r-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"28px",fill:"#9F9F9F"},children:u.jsx("tspan",{x:n,dy:5,children:e})})}}function $4t(e){const t=e.datum.value;return u.jsx("div",{className:oC.tooltip,children:u.jsxs(Z,{style:{whiteSpace:"nowrap"},children:[e.datum.label,":\xA0",t]})})}function M4t({messages:e}){const t=m.useMemo(()=>e.num_bytes_rx.map((n,r)=>{var i,o,a,s;return{type:xwt[r],ingressBytes:(i=e.num_bytes_rx)==null?void 0:i[r],egressBytes:(o=e.num_bytes_tx)==null?void 0:o[r],ingressMessages:(a=e.num_messages_rx)==null?void 0:a[r],egressMessages:(s=e.num_messages_tx)==null?void 0:s[r]}}),[e]);if(t)return u.jsxs(W,{direction:"column",gap:gc,minWidth:tC,children:[u.jsx(Z,{className:Md.headerText,children:"Message Stats"}),u.jsxs(q0,{variant:"surface",className:Md.root,size:"1",children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Message Type"}),u.jsx(Wi,{align:"right",children:"Ingress /s"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Ingress Throughput /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map((n,r)=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(P1,{value:n.ingressMessages??0}),u.jsx(P1,{value:n.egressMessages??0}),u.jsx(P1,{value:n.ingressBytes??0,inBytes:!0}),u.jsx(P1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}const fme={id:"Stake",direction:-1};function R4t(){const e=C6(),t=J(NG),n=J($G),r=m.useRef(new Map),[i,o]=m.useState([]),[a,s]=m.useState(fme);m.useEffect(()=>{var f;if(!t)return;const d=Object.entries(t);if(!i.length&&((f=d[0])!=null&&f[1])){const p=Object.keys(d[0][1]);o(p),s(fme)}for(const[p,v]of d)r.current.set(p,v)},[i,t]),m.useEffect(()=>{if(n)for(const d of n.changes){const f=r.current.get(d.row_index.toString());f&&(f[d.column_name]=d.new_value)}},[n]);const l=m.useCallback((d,f)=>{if(f{(i==null?void 0:i.indexOf(d))!==void 0&&s(f=>{let p=-1;f.id===d&&(p=-f.direction);const v=i.filter(b=>b!==d),x=new Array(v.length).fill(0),y={col:[d,...v],dir:[p,...x]};return e({topic:"gossip",key:"query_sort",id:32,params:y}),{id:d,direction:p}})},[i,e]);return{query:l,sort:c,colIds:i,rowsCacheRef:r,colSorting:a}}const L4t="_header-text_1ozln_1",P4t="_peer-table_1ozln_6",O4t="_header-cell_1ozln_22",z4t="_header-separator_1ozln_26",aC={headerText:L4t,peerTable:P4t,headerCell:O4t,headerSeparator:z4t},D4t=1e3,gO=0,sC=e=>{if(typeof e=="number"){const t=Ib(e);return`${t.value} ${t.unit}`}return e},A4t={Stake:{width:80,align:"right",format:e=>typeof e=="number"?Math.abs(Math.trunc(e/dd)).toLocaleString():e},Pubkey:{width:200},Name:{width:160},Country:{width:80},"IP Addr":{width:80},"Ingress Pull":{width:80,align:"right",format:sC},"Ingress Push":{width:80,align:"right",format:sC},"Egress Pull":{width:80,align:"right",format:sC},"Egress Push":{width:80,align:"right",format:sC}},lC={width:150};function b_(e){return A4t[e]??lC}function F4t(){const e=J(EG)??D4t,{query:t,sort:n,colIds:r,rowsCacheRef:i,colSorting:o}=R4t(),[a,s]=m.useState(()=>({row:-1,colId:""})),[l,c]=m.useState(!1),[d,f]=m.useState(Object.fromEntries(r.map(b=>[b,b_(b).width??lC.width])));m.useEffect(()=>{f(Object.fromEntries(r.map(b=>[b,b_(b).width??lC.width])))},[r]);const p=m.useCallback(({startIndex:b,endIndex:w})=>{const _=Math.max(0,b-gO),S=Math.min(w+gO,e>0?e-1:w+gO);t(_,S)},[t,e]),v=m.useMemo(()=>U4t(r,d),[r,d]),x=m.useRef(a);x.current=a,MFe("c",b=>{var w,_;if(b.ctrlKey){const S=(_=(w=i.current)==null?void 0:w.get(x.current.row.toString()))==null?void 0:_[x.current.colId];S&&(WN(S.toString()),c(!0),setTimeout(()=>{c(!1)},500))}});const y=m.useCallback((b,w)=>{f(_=>({..._,[b]:Math.max(w,b_(b).width??lC.width)}))},[]);return u.jsxs(W,{direction:"column",gap:gc,flexGrow:"1",children:[u.jsx(Z,{className:aC.headerText,children:"Peers"}),u.jsx(Mt,{flexGrow:"1",minHeight:"300px",asChild:!0,children:u.jsx(mKe,{className:Te("rt-TableRoot","rt-r-size-1","rt-variant-surface",aC.peerTable),totalCount:e,increaseViewportBy:200,rangeChanged:p,components:v,itemContent:b=>{var _;const w=(_=i.current)==null?void 0:_.get(b.toString());return w?r.map(S=>{const C=b_(S),j=C.align,T=C.format,E=w==null?void 0:w[S],$=a.row===b&&a.colId===S;return u.jsx(ni,{align:j,onClick:()=>s({row:b,colId:S}),style:{outline:$?`1px dashed var(--gray-${l?11:10})`:"none",outlineOffset:-2},children:u.jsx(Z,{truncate:!0,as:"div",children:T?T(E):E})},S)}):r!=null&&r.length?u.jsx(u.Fragment,{children:r.map(S=>u.jsx(ni,{children:"\xA0"},S))}):u.jsx(u.Fragment,{children:u.jsx(ni,{children:"&nsbsp;"})})},fixedHeaderContent:()=>u.jsx(la,{children:r.map(b=>{const{align:w}=b_(b),_=o.id===b?o.direction:void 0,S=C=>{C.preventDefault();const j=C.clientX,T=d[b],E=D=>y(b,T+(D.clientX-j)),$=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",$)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",$)};return u.jsx(Wi,{align:w,p:"0",children:u.jsxs(W,{align:"center",height:"100%",children:[u.jsx(Z0,{children:u.jsx(Mt,{flexGrow:"1",className:aC.headerCell,asChild:!0,children:u.jsx("button",{onClick:()=>n(b),children:u.jsxs(W,{align:"center",gap:"1",justify:w==="right"?"end":"start",children:[w==="right"&&u.jsx(hme,{direction:_}),u.jsx(Z,{truncate:!0,title:b,as:"div",children:b}),w!=="right"&&u.jsx(hme,{direction:_})]})})})}),u.jsx("div",{style:{paddingLeft:"8px",paddingRight:"2px",cursor:"col-resize"},onPointerDown:S,children:u.jsx(ps,{orientation:"vertical",size:"2",className:aC.headerSeparator})})]})},b)})})})})]})}function hme({direction:e}){return u.jsxs(u.Fragment,{children:[e===-1&&u.jsx(F$,{height:12,width:12}),e===1&&u.jsx(U$,{height:12,width:12})]})}function U4t(e,t){return{Table:n=>u.jsxs("table",{...n,className:"rt-TableRootTable",style:{...n.style,overflow:"inherit",tableLayout:"fixed"},children:[u.jsx("colgroup",{children:e.map(r=>u.jsx("col",{style:{width:t[r]}},r))}),n.children]}),TableHead:n=>u.jsx(rp,{...n,style:{...n.style,background:"#0e131c"}}),TableRow:n=>u.jsx(la,{...n})}}function pme({activeStake:e,delinquentStake:t}){const n=m.useMemo(()=>[{id:"non-delinquent",label:"Non-delinquent",value:Number(e),color:_ne,textColor:pk},{id:"delinquent",label:"Delinquent",value:Number(t),color:fd,textColor:fd}],[e,t]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:{datum:"data.color"},enableArcLabels:!1,enableArcLinkLabels:!1,layers:["arcs",B4t],tooltip:W4t,animate:!1,innerRadius:.7})})}const B4t=({dataWithArc:e,centerX:t,centerY:n})=>{const r=rt.sum(e.map(({value:i})=>i));return u.jsx("text",{y:n-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"12px",fill:"red"},children:e.map(({value:i,data:o,id:a},s)=>u.jsxs("tspan",{x:t,dy:`${s}em`,style:{fill:o.textColor},children:[(i/r*100).toFixed(2),"%"]},a))})};function W4t(e){const t=e.datum.value,n=Ls(BigInt(t));return u.jsx("div",{className:oC.tooltip,children:u.jsxs(Z,{children:[e.datum.label,":\xA0",n]})})}function V4t(){{const e=J(Ig);if(!e)return null;const t=Ls(e.activeStake),n=Ls(e.delinquentStake);return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{className:oC.headerText,children:"Validator Stats"}),u.jsxs(W,{gap:eme,wrap:"wrap",children:[u.jsxs(qr,{columns:Qpe,minWidth:pO,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(yh,{label:"Total Validators",value:e.validatorCount.toLocaleString(),valueColor:vN}),u.jsx(yh,{label:"Non-delinquent Stake",value:t,valueColor:pk}),u.jsx(yh,{label:"RPC Nodes",value:e.rpcCount.toLocaleString(),valueColor:Yu}),u.jsx(yh,{label:"Delinquent Stake",value:n,valueColor:fd})]}),u.jsx(Mt,{minWidth:eC,minHeight:eC,flexGrow:"1",flexBasis:"0",children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})]})}}const vO=2;function mme({colors:e,maxValue:t,history:n,capacity:r}){const i=m.useRef(),o=m.useRef(t);o.current=t;const a=m.useMemo(()=>{var y;if(!i.current||!n.length)return;const{height:s,width:l}=i.current;if(s<0||l<0)return;const c=r??n.length,d=c>1?l/(c-1):0,f=c-n.length,p=Math.max(o.current,Math.max(...n.flatMap(b=>b.filter(Cb))),1),v=n[n.length-1].length,x=Array.from({length:v}).map(()=>new Array);for(let b=0;bb.map(({x:w,y:_})=>`${w},${_}`).join(" "))},[n,r]);return u.jsx(Mt,{flexGrow:"1",minHeight:"80px",children:u.jsx($s,{children:({height:s,width:l})=>{if(i.current={height:s,width:l},!!a&&(a==null?void 0:a.length)===e.length)return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:s,style:{background:"#222222"},children:a.map((c,d)=>u.jsx("polyline",{points:c,stroke:e[d],strokeWidth:vO,fill:"none",strokeLinecap:"round",strokeOpacity:.8},e[d]))})}})})}const H4t=100,Z4t=3e4,yO="#197CAE",bO="var(--amber-8)",gme="#CBD4D6",vme=[yO,bO],yme=Math.ceil(Z4t/H4t);function q4t(){const{value:e,history:t}=J(IG);return u.jsxs(qr,{columns:{initial:"1",sm:"2",lg:"4"},gapY:"3",gapX:"7",children:[u.jsx(Y4t,{health:e,history:t}),u.jsx(G4t,{health:e,history:t}),u.jsx(K4t,{health:e,history:t}),u.jsx(X4t,{health:e,history:t})]})}function bme({title:e,children:t}){return u.jsxs(W,{direction:"column",gap:gc,children:[u.jsx(Z,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:e}),u.jsx(Ey,{style:{flex:1},children:t})]})}function xme({value:e,label:t,valueColor:n,pct:r}){return u.jsxs(W,{direction:"column",children:[u.jsxs(W,{gap:"2",children:[u.jsx(Z,{style:{color:"var(--gray-11)"},children:t}),u.jsxs(Z,{style:{color:"var(--gray-10)"},children:[D$.format(r*100),"%"]})]}),u.jsx(Z,{style:{color:n},size:"8",children:Math.round(e).toLocaleString()})]})}function xO({value:e,label:t,valueColor:n,pct:r,size:i}){return u.jsxs(W,{direction:"column",children:[u.jsx(Z,{style:{color:"var(--gray-11)"},children:t}),u.jsx(Z,{style:{color:n},size:i==="lg"?"8":"6",children:Math.round(e).toLocaleString()}),r!==void 0&&u.jsxs(Z,{style:{color:"var(--gray-10)"},size:"2",children:[D$.format(r*100),"%"]})]})}function uC(e,t){const n=m.useRef(t);return n.current=t,m.useMemo(()=>e.map(r=>n.current(r.value)),[e])}function G4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_success,o=e.num_pull_response_entries_rx_success,a=i+o,s=Math.max(n,r,a),l=rt.clamp(i/n,0,1),c=rt.clamp(o/r,0,1),d=[gme,...vme],f=uC(t,p=>[p.num_push_entries_rx_success+p.num_pull_response_entries_rx_success,p.num_push_entries_rx_success,p.num_pull_response_entries_rx_success]);return u.jsx(bme,{title:"Entries Success /s",children:u.jsxs(W,{gap:"6",children:[u.jsxs(W,{direction:"column",gap:"3",children:[u.jsx(xO,{label:"Total",value:a,valueColor:gme,size:"lg"}),u.jsxs(W,{gap:"3",children:[u.jsx(xO,{label:"Push",value:i,valueColor:yO,pct:l}),u.jsx(xO,{label:"Pull",value:o,valueColor:bO,pct:c})]})]}),u.jsx(mme,{colors:d,maxValue:s,history:f,capacity:yme})]})})}function _O({title:e,valueA:t,valueB:n,totalA:r,totalB:i,labelA:o,labelB:a,history:s}){const l=t/r,c=n/i,d=Math.max(r,i);return u.jsx(bme,{title:e,children:u.jsxs(W,{gap:"6",height:"100%",children:[u.jsxs(W,{direction:"column",gap:"3",minWidth:"120px",children:[u.jsx(xme,{label:o,value:t,valueColor:yO,pct:rt.clamp(l,0,1)}),u.jsx(xme,{label:a,value:n,valueColor:bO,pct:rt.clamp(c,0,1)})]}),u.jsx(mme,{colors:vme,maxValue:d,history:s,capacity:yme})]})})}function Y4t({health:e,history:t}){const n=e.num_push_messages_rx_success+e.num_push_messages_rx_failure,r=e.num_pull_response_messages_rx_success+e.num_pull_response_messages_rx_failure,i=e.num_push_messages_rx_failure,o=e.num_pull_response_messages_rx_failure,a=uC(t,s=>[s.num_push_messages_rx_failure,s.num_pull_response_messages_rx_failure]);return u.jsx(_O,{title:"Message Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function K4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_duplicate,a=uC(t,s=>[s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_duplicate]);return u.jsx(_O,{title:"Entry Duplicates /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function X4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_failure-e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_failure-e.num_pull_response_entries_rx_duplicate,a=uC(t,s=>[s.num_push_entries_rx_failure-s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_failure-s.num_pull_response_entries_rx_duplicate]);return u.jsx(_O,{title:"Entry Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function J4t(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function Q4t(){return this.eachAfter(J4t)}function e3t(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this}function t3t(e,t){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(e.call(t,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function n3t(e,t){for(var n=this,r=[n],i=[],o,a,s,l=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a=0;)n+=r[i].value;t.value=n})}function o3t(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function a3t(e){for(var t=this,n=s3t(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function s3t(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function l3t(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function u3t(){return Array.from(this)}function c3t(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function d3t(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*f3t(){var e=this,t,n=[e],r,i,o;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,o=r.length;i=0;--s)i.push(o=a[s]=new cC(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(v3t)}function h3t(){return wO(this).eachBefore(g3t)}function p3t(e){return e.children}function m3t(e){return Array.isArray(e)?e[1]:null}function g3t(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function v3t(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function cC(e){this.data=e,this.depth=this.height=0,this.parent=null}cC.prototype=wO.prototype={constructor:cC,count:Q4t,each:e3t,eachAfter:n3t,eachBefore:t3t,find:r3t,sum:i3t,sort:o3t,path:a3t,ancestors:l3t,descendants:u3t,leaves:c3t,links:d3t,copy:h3t,[Symbol.iterator]:f3t};function y3t(e){if(typeof e!="function")throw new Error;return e}function x_(){return 0}function __(e){return function(){return e}}function b3t(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function x3t(e,t,n,r,i){for(var o=e.children,a,s=-1,l=o.length,c=e.value&&(r-t)/e.value;++s_&&(_=c),T=b*b*j,S=Math.max(_/T,T/w),S>C){b-=c;break}C=S}a.push(l={value:b,dice:v1?r:1)},n}(w3t);function S3t(){var e=_me,t=!1,n=1,r=1,i=[0],o=x_,a=x_,s=x_,l=x_,c=x_;function d(p){return p.x0=p.y0=0,p.x1=n,p.y1=r,p.eachBefore(f),i=[0],t&&p.eachBefore(b3t),p}function f(p){var v=i[p.depth],x=p.x0+v,y=p.y0+v,b=p.x1-v,w=p.y1-v;b{let s=0,l=0;const c=[];for(;l{var p;const l=n[s];if(!l)return;const c=rt.sum(l.vote.map(v=>v.delinquent?0:Number(v.activated_stake))),d=ire(l.info),f=((p=l.info)==null?void 0:p.name)??void 0;return{stake:c,iconUrl:d,name:f}},[n]),o=J(yre);if(!r)return;const a=Ib(e.total_throughput);return u.jsxs(W,{direction:"column",gap:gc,minHeight:"300px",minWidth:"300px",flexGrow:"1",children:[u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:Rd.headerText,children:t}),u.jsxs("span",{children:[u.jsx(Z,{className:Rd.totalText,children:"Total"}),u.jsxs(Z,{className:Rd.throughputText,children:["\xA0",`${a.value} ${a.unit}`,"/s"]})]})]}),u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:s,width:l})=>u.jsx(P3t,{sortedData:r,width:l,height:s,getPeerValues:i,totalActivePeersStake:o})})})]})}function P3t({sortedData:e,width:t,height:n,totalActivePeersStake:r,getPeerValues:i}){const[o,a]=m.useState(),[s,l]=m.useState(!1),c=m.useRef(),d=m.useCallback(y=>{a(b=>(y!==b&&l(!1),y))},[]),f=m.useCallback(y=>{WN(y),l(!0),clearTimeout(c.current),c.current=setTimeout(()=>l(!1),1e3)},[l]);Og(()=>{clearTimeout(c.current)});const p=m.useMemo(()=>RLe||s?"ID copied to clipboard":"Click to copy ID",[s]),v=m.useMemo(()=>{const y=wO(e).sum(w=>w.value??0),b=S3t();return b.tile(L3t),b.size([t,n]),b.round(!0),b.paddingInner(2),b(y).leaves()},[t,n,e]),x=m.useMemo(()=>{let y=[];const b=Math.ceil(e.children.length/wme.length);for(let w=0;wd(void 0),children:v.map((y,b)=>{const w=`${y.data.id}-${y.x0}-${y.x1}-${y.y0}-${y.y1}`,_=o===w;return u.jsx(O3t,{leaf:y,color:x[b],totalActivePeersStake:r,getPeerValues:i,tooltipText:_?p:void 0,openTooltip:()=>d(w),copyId:()=>f(y.data.id)},y.data.id)})})}function O3t({leaf:e,color:t,totalActivePeersStake:n,getPeerValues:r,tooltipText:i,openTooltip:o,copyId:a}){const s=e.x1-e.x0,l=e.y1-e.y0;return u.jsx(ci,{open:!!i,className:Rd.tooltip,content:i,disableHoverableContent:!0,side:"bottom",onOpenChange:c=>{c&&o()},children:u.jsx(Mt,{onClick:a,onMouseEnter:()=>{o()},className:Rd.leaf,position:"absolute",width:`${s}px`,height:`${l}px`,style:{transform:`translate(${e.x0}px, ${e.y0}px)`,"--leaf-color":t},children:u.jsx(z3t,{width:s,height:l,leaf:e,totalActivePeersStake:n,getPeerValues:r})})})}function z3t({width:e,height:t,leaf:n,totalActivePeersStake:r,getPeerValues:i}){const o=n.data.id,a=i(o),s=(a==null?void 0:a.name)||"Private",l=e>=20&&t>=20,c=e>=100&&t>=100?14:e>=55&&t>=55?12:e>=32&&t>=32?8:4,d=e>=30&&t>=38,f=t>=150,p=t>=60,v=e>=82;return u.jsxs(W,{className:Rd.leafContent,height:"100%",direction:"column",align:"center",justify:"center",overflow:"hidden",p:l?"8px":"0",gap:"4px",children:[l&&u.jsx(ks,{url:a==null?void 0:a.iconUrl,size:c}),d&&u.jsx(Z,{className:Te(Rd.name,{[Rd.large]:f}),truncate:!0,align:"center",children:s}),p&&u.jsxs(W,{className:Rd.stats,align:"center",justify:"center",gap:"5px",children:[u.jsx(D3t,{value:n.value}),v&&(a==null?void 0:a.stake)!==void 0&&u.jsx(A3t,{stake:a.stake,totalActivePeersStake:r})]})]})}function D3t({value:e}){const t=Ib(e??0);return u.jsxs(Z,{truncate:!0,children:[t.value," ",t.unit]})}function A3t({stake:e,totalActivePeersStake:t}){const n=m.useMemo(()=>{if(e===0)return"0";const r=100*e/Number(t);return r<.01?"<.01":r.toFixed(2)},[e,t]);return u.jsxs(W,{align:"center",justify:"center",gap:"3px",children:[u.jsx(fUe,{width:8,height:8}),u.jsxs(Z,{truncate:!0,children:[n,"%"]})]})}function F3t(){const e=J(TG),[t]=Bie(e,5e3,{leading:!0,maxWait:5e3}),n=e==null?void 0:e.storage;if(!xi&&!(!n||!t))return u.jsxs(W,{gap:"30px",direction:"column",align:"stretch",justify:"center",height:"100%",children:[u.jsxs(W,{gapX:"30px",gapY:hO,wrap:"wrap",children:[u.jsx(kme,{networkTraffic:t.ingress,label:"Ingress"}),u.jsx(kme,{networkTraffic:t.egress,label:"Egress"})]}),u.jsxs(W,{gap:"30px",wrap:"wrap",children:[u.jsxs(W,{direction:"column",flexGrow:"1",flexBasis:"0",gap:hO,minWidth:tC,children:[u.jsx(T4t,{storage:n}),u.jsx(Swt,{storage:n})]}),u.jsxs(W,{direction:"column",flexGrow:"1",flexBasis:"0",gap:hO,minWidth:tC,children:[u.jsx(V4t,{}),u.jsx(M4t,{messages:e.messages})]})]}),u.jsx(q4t,{}),u.jsx(F4t,{})]})}const U3t=lp("/gossip")({component:F3t,beforeLoad:({context:e,location:t})=>{if(xi)throw cT({to:"/"})}}),B3t=lp("/about")({component:W3t});function W3t(){return u.jsx("div",{className:"p-2",children:u.jsx("h3",{children:"About"})})}const dC=600,Sme=Co(new Array(dC).fill(void 0)),kO=(e,t)=>e.length?"M"+e.map(({x:n,y:r})=>`L ${n} ${t-r}`).join(" ").slice(1)+`L ${e[e.length-1].x} ${t} L ${e[0].x} ${t}, L ${e[0].x} ${e[0].y}`:"";function V3t(){const e=J(Sme),t=m.useRef(),n=Math.max(...e.map(i=>(i==null?void 0:i.total)??0)),r=m.useMemo(()=>{if(!t.current||!e.length)return;const{height:i,width:o}=t.current,a=e.length,s=(o+2)/a,l=(i-10)/(n||1),c=e.map((f,p)=>{if(f!==void 0)return{x:p*s,voteY:f.vote*l,nonvoteFailedY:(f.nonvote_failed+f.vote)*l,nonvoteY:(f.nonvote_success+f.nonvote_failed+f.vote)*l}}).filter(Cb),d=i-n*l;return{votePath:kO(c.map(f=>({x:f.x,y:f.voteY})),i),failedPath:kO(c.map(f=>({x:f.x,y:f.nonvoteFailedY})),i),nonvotePath:kO(c.map(f=>({x:f.x,y:f.nonvoteY})),i),totalTpsY:isNaN(d)?void 0:d}},[n,e]);return u.jsx(u.Fragment,{children:u.jsx($s,{children:({height:i,width:o})=>(t.current={height:i,width:o},r?u.jsx(u.Fragment,{children:u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:o,height:i,fill:"none",children:[u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:r.nonvotePath,fill:Sne}),u.jsx("path",{d:r.failedPath,fill:jne}),u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",fill:Cne,d:r.votePath}),r.totalTpsY&&u.jsxs(u.Fragment,{children:[u.jsx("line",{x1:"0",y1:r.totalTpsY,x2:o,y2:r.totalTpsY,strokeDasharray:"4",stroke:"rgba(255, 255, 255, 0.30)"}),u.jsx("text",{x:"0",y:r.totalTpsY-3,fill:gN,fontSize:"8",fontFamily:"Inter Tight",children:n.toLocaleString()})]})]})}):null)})})}const H3t="_axis-text_juf3d_1",Cme={axisText:H3t},Z3t="_container_muoex_1",q3t="_label_muoex_6",G3t="_value_muoex_12",Y3t="_small_muoex_17",K3t="_medium_muoex_21",X3t="_large_muoex_25",J3t="_append-value_muoex_31",dr={container:Z3t,label:q3t,value:G3t,small:Y3t,medium:K3t,large:X3t,appendValue:J3t};function ya({label:e,value:t,valueColor:n,valueSize:r,animateInteger:i=!1,appendValue:o,appendValueColor:a,className:s}){const l=m.useMemo(()=>Te(dr.value,{[dr.small]:r==="small",[dr.medium]:r==="medium",[dr.large]:r==="large"}),[r]);return u.jsxs(W,{direction:"column",align:"start",className:Te(dr.container,s),style:{"--value-color":n},children:[u.jsx(Z,{className:dr.label,children:e}),u.jsxs(W,{align:"baseline",gap:"1",width:"100%",children:[typeof t=="number"&&i?u.jsx(Mx,{value:t,className:l}):u.jsx(Z,{className:l,children:t}),o&&u.jsx(Z,{className:dr.appendValue,style:{"--append-value-color":a},children:o})]})]})}const Q3t="_vote-tps_kqvrt_1",ekt={voteTps:Q3t};function tkt(){const e=J(OT);return u.jsxs(W,{direction:"column",gap:"2",minWidth:"100px",children:[u.jsx(ya,{label:"Total TPS",value:(e==null?void 0:e.total.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Yu,valueSize:"medium"}),u.jsxs(W,{gap:"4",wrap:"wrap",children:[u.jsx(ya,{label:"Non-vote TPS Success",value:(e==null?void 0:e.nonvote_success.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Hf,valueSize:"small"}),u.jsx(ya,{label:"Non-vote TPS Fail",value:(e==null?void 0:e.nonvote_failed.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:fd,valueSize:"small"}),u.jsx(ya,{label:"Vote TPS",value:(e==null?void 0:e.vote.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:hd,valueSize:"small",className:ekt.voteTps})]})]})}function nkt({className:e}){return u.jsx(so,{className:e,children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",children:[u.jsx(kd,{text:"Transactions"}),u.jsxs(W,{gap:"4",flexGrow:"1",children:[u.jsx(tkt,{}),u.jsxs(W,{direction:"column",flexGrow:"1",children:[u.jsx(Mt,{flexGrow:"1",minWidth:"180px",overflow:"hidden",children:u.jsx(V3t,{})}),u.jsxs(W,{justify:"between",children:[u.jsx(Z,{className:Cme.axisText,children:"~ 1min ago"}),u.jsx(Z,{className:Cme.axisText,children:"Now"})]})]})]})]})})}const rkt="_stat-row_1ia1g_1",jme={statRow:rkt};function ikt(){const e=J(Ig);if(!e)return null;const t=Ls(e.activeStake),n=Ls(e.delinquentStake);return u.jsxs(W,{gap:"2",flexGrow:"1",children:[u.jsxs(W,{direction:"column",gap:"2",minWidth:"0",children:[u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"Total Validators",value:e.validatorCount.toString(),valueColor:vN,valueSize:"medium"}),u.jsx(ya,{label:"Non-delinquent Stake",value:t,valueColor:pk,appendValue:"SOL",valueSize:"medium"})]}),u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"RPC Nodes",value:e.rpcCount.toString(),valueColor:Yu,valueSize:"small"}),u.jsx(ya,{label:"Delinquent Stake",value:n,valueColor:fd,appendValue:"SOL",valueSize:"small"})]})]}),u.jsx(Mt,{style:{minWidth:"200px"},children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})}function okt(){return J(Ig)?u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",children:[u.jsx(kd,{text:"Validators"}),u.jsx(ikt,{})]})}):null}const akt="_stat-row_11bim_1",Tme={statRow:akt};function skt(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Status"}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(lkt,{}),u.jsx(ckt,{})]}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(dkt,{}),u.jsx(ukt,{})]})]})})}function lkt(){const e=J(oo);return u.jsx(Mt,{children:u.jsx(ya,{label:"Slot",value:e??"",valueColor:Yu,valueSize:"medium",animateInteger:!0})})}function ukt(){const{nextLeaderSlot:e}=Ox({showNowIfCurrent:!0});return u.jsx(ya,{label:"Next leader slot",value:(e==null?void 0:e.toString())??"\u221E",valueColor:Gte,valueSize:e===void 0?"large":"small"})}function ckt(){const{progressSinceLastLeader:e,nextSlotText:t}=Ox({showNowIfCurrent:!0});return u.jsxs(W,{direction:"column",children:[u.jsx(ya,{label:"Time until leader",value:t,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{value:e})]})}function dkt(){const e=J(DT),t=J(RG),n=m.useMemo(()=>e==="voting"?pN:e==="non-voting"?Yte:e==="delinquent"?fd:gN,[e]),r=m.useMemo(()=>t==null||e==="delinquent"?void 0:`${t>150?"> 150":t} behind`,[t,e]);return u.jsx(ya,{label:"Vote Status",value:e??"Unknown",valueColor:n,valueSize:"small",appendValue:r,appendValueColor:wne})}const fkt="_stat-row_kmlhn_1",hkt="_progress_kmlhn_13",SO={statRow:fkt,progress:hkt};function pkt(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Epoch"}),u.jsx("div",{className:SO.statRow,children:u.jsx(mkt,{})}),u.jsx("div",{className:SO.statRow,children:u.jsx(gkt,{})})]})})}function mkt(){var t;const e=J(fi);return u.jsx(Mt,{children:u.jsx(ya,{label:"Current Epoch",value:((t=e==null?void 0:e.epoch)==null?void 0:t.toString())??"",valueColor:Yu,valueSize:"medium"})})}function gkt(){const e=J(oo),t=J(fi),n=J(Eg),r=m.useMemo(()=>{if(t===void 0||e===void 0)return"";const o=(t.end_slot-e)*n,a=fn.fromMillis(o).rescale();return kp(a)},[t,e,n]),i=m.useMemo(()=>{if(t===void 0||e===void 0)return 0;const o=e-t.start_slot,a=t.end_slot-t.start_slot,s=o/a*100;return s<0||s>100?0:s},[t,e]);return u.jsxs(W,{direction:"column",children:[u.jsx(ya,{label:"Time to Next Epoch",value:r,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{className:SO.progress,value:i})]})}function vkt(){if(!xi)return u.jsx(so,{style:{padding:"10px 13px 10px 10px"},children:u.jsxs(W,{direction:"column",gap:"4",children:[u.jsxs(W,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(kd,{text:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{height:"400px",chartId:"overview-shreds-chart",isOnStartupScreen:!1})]})})}const ykt="_chart_7b67t_1",bkt="_table_7b67t_7",xkt="_row_7b67t_7",_kt="_total-row_7b67t_8",w_={chart:ykt,table:bkt,row:xkt,totalRow:_kt},Ime=18;function wkt(){const e=J(zT),t=J(_G),n=J(wG);if(e)return u.jsxs(W,{wrap:"wrap",gap:"4",children:[u.jsx(Eme,{metrics:e.ingress,history:t.history,type:"Ingress"}),u.jsx(Eme,{metrics:e.egress,history:n.history,type:"Egress"})]})}function Eme({metrics:e,history:t,type:n}){return u.jsx(so,{style:{flexGrow:1},children:u.jsxs(W,{direction:"column",height:"100%",gap:gc,children:[u.jsxs(Z,{className:Md.headerText,children:["Network ",n]}),u.jsxs(q0,{variant:"ghost",className:Te(Md.root,w_.table),size:"1",style:{"--bar-height":`${Ime}px`},children:[u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{width:"60px",children:"Protocol"}),u.jsx(Wi,{align:"right",width:"80px",children:"Current"}),u.jsx(Wi,{minWidth:{xl:"250px",lg:"160px",md:"100px",initial:"60px"},children:"Utilization"}),u.jsx(Wi,{align:"right",width:{xl:"240px",lg:"200px",md:"100px",initial:"200px"},children:"History (1m)"})]})}),u.jsxs(G0,{children:[e.map((r,i)=>{const o=H$[i];if(!(xi&&(o==="gossip"||o==="repair")))return u.jsx($me,{label:o,value:r,maxValue:aoe[n][o],history:t,mapHistory:a=>a[i]??0},i)}),u.jsx($me,{label:"Total",value:rt.sum(e),maxValue:aoe[n].Total,history:t,mapHistory:rt.sum,className:w_.totalRow})]})]})]})})}const kkt=1e8;function Nme(e,t){return Math.min(1,e/t)}const Skt={halfLifeMs:1e3};function $me({label:e,value:t,maxValue:n=kkt,history:r,mapHistory:i,className:o}){const a=Bg(t,Skt),s=Ib(a),l=Nme(a,n),c=m.useRef(i);c.current=i;const d=m.useMemo(()=>r.map(f=>({ts:f.ts,value:Nme(c.current(f.values),n)})),[r,n]);return u.jsxs(la,{className:Te(w_.row,o),children:[u.jsx($4,{children:e}),u.jsxs(ni,{align:"right",children:[s.value," ",s.unit]}),u.jsx(ni,{className:w_.chart,children:u.jsx(W,{align:"center",children:u.jsx(Y$,{value:a,max:n,barWidth:2})})}),u.jsx(ni,{className:w_.chart,children:u.jsx(cx,{value:l,history:d,background:vk,windowMs:6e4,height:Ime,updateIntervalMs:500,tickMs:1e3})})]})}const Ckt="_group-header_1lbrc_1",jkt="_header_1lbrc_6",Tkt="_wrap_1lbrc_9",Ikt="_table_1lbrc_15",Ekt="_data-row_1lbrc_19",Nkt="_green_1lbrc_20",$kt="_red_1lbrc_24",Mkt="_pct-gradient_1lbrc_43",Rkt="_no-padding_1lbrc_51",Lkt="_increment-text_1lbrc_56",Pkt="_low-increment_1lbrc_61",Okt="_mid-increment_1lbrc_64",zkt="_high-increment_1lbrc_67",Dkt="_light-border-bottom_1lbrc_79",Akt="_right-border_1lbrc_83",fr={groupHeader:Ckt,header:jkt,wrap:Tkt,table:Ikt,dataRow:Ekt,green:Nkt,red:$kt,pctGradient:Mkt,noPadding:Rkt,incrementText:Lkt,lowIncrement:Pkt,midIncrement:Okt,highIncrement:zkt,lightBorderBottom:Dkt,rightBorder:Akt},Fkt="_table-description-dialog_1shm8_1",Ukt="_table_1shm8_1",Bkt="_th_1shm8_8",Wkt="_tr_1shm8_14",Vkt="_name_1shm8_22",Hkt="_close-button_1shm8_28",bh={tableDescriptionDialog:Fkt,table:Ukt,th:Bkt,tr:Wkt,name:Vkt,closeButton:Hkt},CO=[{name:"",pinned:!0,metrics:[{uniqueName:"Name",description:"The name and index of each tile. A tile represents a sandboxed process or individual thread that communicates with other tiles using message passing queues.",headerColWidth:70}]},{name:"Liveness",metrics:[{uniqueName:"CPU",description:"The CPU index on which the tile was last recorded executing.",headerColWidth:50,headerColAlign:"right"},{uniqueName:"Heartbeat",description:"Liveness indicator based on a periodic heartbeat timestamp written by tiles to a chunk of shared memory.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"Backp",description:"If a tile is backpressured, at least one outgoing message queue is at-capacity which can prevent the tile from moving forward with useful work.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Backp Count",description:"The number of cumulative | immediate (10ms) times a CPU transitioned into a backpressured state.",headerColWidth:120,headerColAlign:"right"}]},{name:"Utilization",metrics:[{uniqueName:"Utilization",description:"Visualized the percentage of the tile's CPU time spent doing useful work. Time spent in a context switch is not included.",headerColWidth:150},{uniqueName:"History (1m)",description:"A historical, low-pass-filtered view of CPU utilization.",headerColWidth:150}]},{name:"System",metrics:[{uniqueName:"% Hkeep",description:"The percentage of CPU time spent on housekeeping tasks, which are meant to be infrequent and generally more expensive than tasks on the critical path.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Wait",description:"The percentage of CPU time spent waiting for useful work to do.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Backp",description:"The percentage of CPU time during which the tile was backpressured, excluding housekeeping time.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Work",description:"The percentage of CPU time spent performing useful work, excluding housekeeping and backpressured time.",headerColWidth:70,headerColAlign:"right"}]},{name:"Scheduler",metrics:[{uniqueName:"% Wait (scheduler)",columnName:"% Wait",description:"The percentage of CPU time spent waiting in the runqueue before being dispatched.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% User (scheduler)",columnName:"% User",description:"The percentage of CPU time spent executing in user mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% System (scheduler)",columnName:"% System",description:"The percentage of CPU time spent executing in kernel mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% Idle (scheduler)",columnName:"% Idle",description:"The percentage of CPU time unaccounted for by the other 3 regimes.",headerColWidth:70,headerColAlign:"right",wrap:!0}]},{name:"Exceptions",metrics:[{uniqueName:"Minflt",description:"The number of cumulative minor page faults. Minor page faults occur for pages in RAM not indexed by the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Majflt",description:"The number of cumulative major page faults. Major page faults occur for pages that are neither in RAM nor the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Nivcsw",description:"The number of cumulative | immediate (10ms) involuntary context switches.",headerColWidth:150,headerColAlign:"right"},{uniqueName:"Nvcsw",description:"The number of cumulative | immediate (10ms) voluntary context switches.",headerColWidth:150,headerColAlign:"right"}]}],Mme=CO.filter(({pinned:e})=>e),Zkt=CO.filter(({pinned:e})=>!e),Rme=Mme.reduce((e,t)=>{for(const n of t.metrics)e+=n.headerColWidth;return e},1);function qkt(){return u.jsxs(WZ,{children:[u.jsx(VZ,{children:u.jsx(W,{children:u.jsx(ci,{content:"Click to view column definitions.",children:u.jsx(Zie,{color:"var(--gray-11)",cursor:"pointer"})})})}),u.jsxs(HZ,{maxHeight:"85dvh",maxWidth:`min(80dvw, calc(0.8 * ${Zte}))`,size:"1",className:bh.tableDescriptionDialog,children:[u.jsx(ZZ,{size:"2",className:bh.title,mb:"0px",children:"Column Definitions"}),u.jsxs(q0,{size:"1",className:bh.table,children:[u.jsx("colgroup",{children:u.jsx("col",{style:{width:"110px"}})}),u.jsx(rp,{children:u.jsxs(la,{children:[u.jsx(Wi,{className:bh.th,children:"Column"}),u.jsx(Wi,{className:bh.th,children:"Definition"})]})}),u.jsx(G0,{children:CO.map(e=>e.metrics.map(t=>u.jsxs(la,{className:bh.tr,children:[u.jsx(ni,{className:bh.name,children:t.uniqueName}),u.jsx(ni,{children:t.description})]},t.uniqueName)))})]}),u.jsx(W,{justify:"end",children:u.jsx(qZ,{children:u.jsx(hs,{className:bh.closeButton,children:"Close"})})})]})]})}const Lme=18,Gkt=m.memo(function(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",gap:gc,width:"100%",children:[u.jsxs(W,{align:"center",gap:"2",children:[u.jsx(Z,{className:Md.headerText,children:"Tiles"}),u.jsx(qkt,{})]}),u.jsx(Ykt,{})]})})});function Ykt(){return u.jsxs(W,{children:[u.jsx(Pme,{isPinned:!0}),u.jsx(Pme,{isPinned:!1})]})}function Pme({isPinned:e}){const t=J(rg),n=J(CG),r=e?Mme:Zkt,i=m.useMemo(()=>({"--bar-height":`${Lme}px`,minWidth:e?`${Rme}px`:"0px",flexBasis:e?`${Rme}px`:void 0}),[e]);if(!(!t||!n))return u.jsxs(q0,{variant:"ghost",className:Te(Md.root,fr.table),size:"1",style:i,children:[u.jsx("colgroup",{children:r.map(o=>o.metrics.map(a=>u.jsx("col",{style:{width:a.headerColWidth}},a.uniqueName)))}),u.jsxs(rp,{className:fr.header,children:[u.jsx(la,{children:r.map((o,a)=>u.jsx(Wi,{colSpan:o.metrics.length,className:Te(fr.groupHeader,{[fr.rightBorder]:e||a!==r.length-1}),children:o.name},o.name))}),u.jsx(la,{className:fr.lightBorderBottom,children:r.map((o,a)=>o.metrics.map((s,l)=>u.jsx(Wi,{align:s.headerColAlign,className:Te({[fr.wrap]:!!s.wrap,[fr.rightBorder]:e||a!==r.length-1&&l===o.metrics.length-1}),children:s.columnName??s.uniqueName},s.uniqueName)))})]}),u.jsx(G0,{children:t.map((o,a)=>u.jsx(Kkt,{tile:o,liveTileMetrics:n,idx:a,isPinned:e},`${o.kind}${o.kind_id}`))})]})}function Kkt({tile:e,liveTileMetrics:t,idx:n,isPinned:r}){const i=A$(t,(s,l)=>s?l?Object.keys(l).every(c=>{var d,f;return rt.isEqual((d=s[c])==null?void 0:d[n],(f=l[c])==null?void 0:f[n])}):!0:!1),o=t.alive[n]??(i==null?void 0:i.alive[n]);if(o===2)return;const a=t.timers[n]||(i==null?void 0:i.timers[n]);if(a)return r?u.jsx(la,{className:fr.dataRow,children:u.jsxs(ni,{className:fr.rightBorder,children:[e.kind,":",e.kind_id]})}):u.jsx(Xkt,{alive:o,timers:a,liveTileMetrics:t,prevLiveTileMetricsIdx:i,idx:n})}function Xkt({alive:e,timers:t,liveTileMetrics:n,prevLiveTileMetricsIdx:r,idx:i}){const o=A$(n.sched_timers[i]),a=n.sched_timers[i]||o||[],[s,l,c,d]=a.map(D=>D===-1?0:D),f=n.nivcsw[i]??(r==null?void 0:r.nivcsw[i]),p=n.nvcsw[i]??(r==null?void 0:r.nvcsw[i]),v=n.in_backp[i]??(r==null?void 0:r.in_backp[i]),x=n.backp_msgs[i]??(r==null?void 0:r.backp_msgs[i]),y=n.last_cpu[i]??(r==null?void 0:r.last_cpu[i]),b=n.minflt[i]??(r==null?void 0:r.minflt[i]),w=n.majflt[i]??(r==null?void 0:r.majflt[i]),_=ox(f),S=ox(p),C=ox(x);for(let D=0;D1})}),u.jsx(xh,{pct:T}),u.jsx(xh,{pct:E,className:Te({[fr.red]:E>0})}),u.jsx(xh,{pct:$,className:Te(fr.pctGradient,fr.rightBorder),style:{"--pct":`${$}%`}}),u.jsx(xh,{pct:s}),u.jsx(xh,{pct:c}),u.jsx(xh,{pct:d}),u.jsx(xh,{pct:l,className:fr.rightBorder}),u.jsx(ni,{align:"right",children:(b==null?void 0:b.toLocaleString())??"-"}),u.jsx(ni,{align:"right",children:(w==null?void 0:w.toLocaleString())??"-"}),u.jsxs(ni,{align:"right",children:[(f==null?void 0:f.toLocaleString())??"-"," |",u.jsx(Ome,{value:f!=null&&_!=null?f-_:0})]}),u.jsxs(ni,{align:"right",children:[(p==null?void 0:p.toLocaleString())??"-"," |",u.jsx(Ome,{value:p!=null&&S!=null?p-S:0})]})]})}function Ome({value:e}){const t=e.toLocaleString();return u.jsxs(Z,{className:Te(fr.incrementText,{[fr.lowIncrement]:1<=e&&e<=10,[fr.midIncrement]:11<=e&&e<=100,[fr.highIncrement]:e>=101}),children:["+",t]})}function xh({pct:e,...t}){return u.jsx(ni,{align:"right",...t,children:e==null?"--":`${e.toFixed(2)}%`})}const zme=300,Jkt=m.memo(function({idx:e}){const t=J(l3),n=J(jG),r=t!=null&&t[e]&&t[e]>=0?1-Math.max(0,t[e]):-1,i=A$(r,(c,d)=>!(d!=null&&c!=null&&d>=0&&c>=0&&d!==c)),o=m.useRef({count:0,sum:0}),[a,s]=m.useState(r);m.useEffect(()=>{r>=0&&(o.current.count++,o.current.sum+=r)},[r]),rx(()=>{o.current.count!==0&&(s(o.current.sum/o.current.count),o.current={count:0,sum:0})},zme);const l=m.useMemo(()=>n.history.map(c=>{const d=c.values[e]??0;return{ts:c.ts,value:d>=0?1-Math.max(0,d):0}}),[n.history,e]);return u.jsxs(u.Fragment,{children:[u.jsx(ni,{className:fr.noPadding,children:u.jsx(W,{align:"center",children:u.jsx(Y$,{value:r>=0?r:i??0,max:1,barWidth:2})})}),u.jsx(ni,{className:Te(fr.noPadding,fr.rightBorder),children:u.jsx(cx,{value:a,history:l,background:vk,windowMs:6e4,height:Lme,updateIntervalMs:zme,tickMs:1e3})})]})}),Qkt="_slot-label-card_1pson_1",e6t="_slot-label-name_1pson_13",t6t="_slot-label-dt_1pson_16",n6t="_dt-sign_1pson_19",r6t="_slot-bar_1pson_24",i6t="_dim_1pson_29",o6t="_slot-bar-track_1pson_34",a6t="_next-leader-container_1pson_38",s6t="_next-leader-timer-label_1pson_44",l6t="_next-leader-timer-container_1pson_50",wl={slotLabelCard:Qkt,slotLabelName:e6t,slotLabelDt:t6t,dtSign:n6t,slotBar:r6t,dim:i6t,slotBarTrack:o6t,nextLeaderContainer:a6t,nextLeaderTimerLabel:s6t,nextLeaderTimerContainer:l6t};function Dme(e){return m.useMemo(()=>{const t=new Map,n=r=>{var i;r.slot!=null&&(t.has(r.slot)?(i=t.get(r.slot))==null||i.push(r):t.set(r.slot,[r]))};for(const r of e)n(r);return t},[e])}const jO=2,O1=`${jO}px`,zm="5px",Ame=2,Fme=34,k_=Fme-Fme%2,u6t="#A09000",c6t="#0ABF9E",d6t="#4AA7C1",f6t="#08A24D",h6t="#AC4902",p6t="#3F7BF4",m6t="#AF49F2",g6t="#2497EE",v6t="#A09000",y6t="#0ABF9E",b6t="#4AA7C1",x6t="#08A24D",_6t="#AC4902",w6t="#3F7BF4",k6t="#AF49F2",S6t="#2497EE";function C6t(){if(!J(ol))return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:gc,children:[u.jsx(Z,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:"Slots"}),u.jsx(T6t,{})]})})}function j6t(e,t){if(!(t==null||e==null))return e-t}function _h(e,t,n,r,i){return{label:e,slot:t,slotDt:j6t(t,n),labelColor:r,barColor:i}}const Ume=14,S_=m.createContext({barWidth:Ume,shrinkSlotsLabel:!1,useLabelGrid:!1});function T6t(){const[e,t]=m.useState(Ume),n=J(vG),r=J(pG),i=J(PT),o=J(yG),a=J(Gy),s=J(dp),l=J(mG),c=J(Rb),d=Hn("(max-width: 1300px)"),f=Hn("(max-width: 1000px)"),{storageSlotBar:p,rootSlotBar:v,voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,optimisticallyConfirmedBar:_,nextLeaderSlotBar:S}=m.useMemo(()=>{const $=_h("Storage",n,s,u6t,v6t),D=_h("Root",r,s,c6t,y6t),M=_h("Voted",i,s,d6t,b6t),O=_h("Repair",o,s,h6t,_6t),te=_h("Turbine",a,s,p6t,w6t),q=_h("Processed",s,s,f6t,x6t),P=_h("Confirmed",l,s,m6t,k6t),X=_h("Next Leader",c,s,g6t,S6t);return{storageSlotBar:$,rootSlotBar:D,voteSlotBar:M,repairSlotBar:O,turbineSlotBar:te,replaySlotBar:q,optimisticallyConfirmedBar:P,nextLeaderSlotBar:X}},[c,l,o,s,r,n,a,i]),C=m.useMemo(()=>({barWidth:e,shrinkSlotsLabel:d,useLabelGrid:f}),[e,d,f]);if(!s)return;const j=Eb([x.slot,y.slot,b.slot,w.slot,_.slot]),T=r!=null||n!=null?Math.max(k_,Eb([s,a])-Eb([r,n])):k_,E=Math.max(T/8,k_/2+(k_-T));return u.jsxs(S_.Provider,{value:C,children:[f&&u.jsx($6t,{storageSlotBar:p,rootSlotBar:v,voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,confirmedSlotBar:_,replaySlotBar:w,nextLeaderSlotBar:S}),u.jsxs(W,{gap:O1,children:[u.jsx(I6t,{storageSlotBar:p,rootSlotBar:v,repairSlotBar:y}),u.jsxs(qr,{columns:`${T}fr ${E}fr`,gapX:O1,flexGrow:"1",children:[u.jsx(E6t,{voteSlotBar:x,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,confirmedSlotBar:_,minSlot:r??s-32,maxSlot:j,setBarWidth:t}),u.jsx(N6t,{nextLeaderSlotBar:S,minSlot:j})]})]})]})}const Bme=20;function I6t({storageSlotBar:e,rootSlotBar:t,repairSlotBar:n}){const{barWidth:r,useLabelGrid:i}=m.useContext(S_),[o,a]=Ss(),s=m.useMemo(()=>[e,t],[t,e]),l=m.useMemo(()=>[...s,n],[n,s]),c=Dme(l),d=m.useMemo(()=>{if(!r)return 0;const _=a.width-(r*3-jO*2),S=Math.max(Ame,r/2);return Math.min(20,Math.trunc(_/S))},[r,a.width]),f=Eb([e.slot,t.slot]),p=Pze([e.slot,t.slot,n.slot])-1,v=f-p,x=v<7?r:void 0,y=v>Bme,b=y?Bme:v,w=f-b;return u.jsxs(W,{direction:"column",gap:zm,minWidth:i?"30px":void 0,children:[!i&&u.jsx(W,{gap:zm,justify:"end",children:s.map(_=>u.jsx(vu,{slotBarInfo:_},_.label))}),u.jsxs(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,ref:o,children:[u.jsx(Vme,{count:d}),Array.from({length:b}).map((_,S)=>{const C=w+S+1,j=y&&S===0?c.get(n.slot??0):c.get(C);return j?u.jsx(TO,{colors:j.map(({barColor:T})=>T),barWidth:x},C):u.jsx(fC,{barWidth:x},C)})]})]})}function E6t({voteSlotBar:e,repairSlotBar:t,turbineSlotBar:n,replaySlotBar:r,confirmedSlotBar:i,maxSlot:o,minSlot:a,setBarWidth:s}){const[l,{width:c}]=Ss(),{useLabelGrid:d}=m.useContext(S_),f=m.useMemo(()=>[e,i,r,t,n],[i,t,r,n,e]),p=Dme(f),v=rt.clamp(o-a,k_,100),x=m.useRef(v);return x.current=v,m.useEffect(()=>{if(c){const y=Math.trunc((c-jO*(v-1))/v);s(y)}},[v,s,c]),u.jsxs(W,{direction:"column",gap:zm,ref:l,minWidth:"100px",children:[!d&&u.jsx(W,{gap:zm,justify:"end",children:f.map(y=>u.jsx(vu,{slotBarInfo:y},y.label))}),u.jsx(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,children:Array.from({length:v}).map((y,b)=>{const w=a+b+1,_=p.get(w);return _?u.jsx(TO,{colors:_.map(({barColor:S})=>S)},w):u.jsx(fC,{},w)})})]})}function N6t({nextLeaderSlotBar:e,minSlot:t}){const{barWidth:n,useLabelGrid:r}=m.useContext(S_),[i,o]=Ss(),a=m.useMemo(()=>{if(!n)return 0;const l=o.width-n,c=Math.max(Ame,n/2);return Math.trunc(l/c)},[n,o.width]),s=e.slot!=null?Math.min(a,e.slot-t):a;return u.jsxs(W,{direction:"column",gap:zm,minWidth:"0",className:wl.nextLeaderContainer,justify:"between",children:[!r&&u.jsxs(W,{justify:"end",gap:zm,children:[u.jsx(Wme,{}),u.jsx(vu,{slotBarInfo:e},e.label)]}),u.jsxs(W,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:O1,ref:i,children:[u.jsx(Vme,{count:s}),e.slot&&u.jsx(TO,{colors:[e.barColor],barWidth:n/2})]})]})}function Wme(){const{progressSinceLastLeader:e,nextSlotText:t}=Ox({showNowIfCurrent:!1});return u.jsxs(W,{direction:"column",flexGrow:"1",p:"5px",align:"stretch",justify:"between",minWidth:"70px",className:wl.nextLeaderTimerContainer,children:[u.jsxs(Z,{align:"center",wrap:"nowrap",children:[u.jsx(Z,{style:{color:"#919191"},className:wl.nextLeaderTimerLabel,children:"Time Until Leader"}),u.jsxs(Z,{style:{color:"#BCBCBC"},children:["\xA0",t]})]}),u.jsx("div",{children:u.jsx(a1,{value:e,height:"2px",duration:"500ms"})})]})}const vu=m.memo(function({slotBarInfo:e}){const{shrinkSlotsLabel:t}=m.useContext(S_),{slot:n,slotDt:r,labelColor:i,label:o}=e;if(n==null||r==null)return;const a=`${o}${t?"":" Slot"}`,s=`${Math.abs(r)}`;return u.jsxs(W,{direction:"column",align:"stretch",className:wl.slotLabelCard,minWidth:"50px",children:[u.jsxs(W,{gap:"5px",justify:"between",align:"stretch",style:{color:i},children:[u.jsx(Z,{className:wl.slotLabelName,weight:"bold",wrap:"nowrap",truncate:!0,dir:"rtl",children:a}),e.label==="Processed"?u.jsx(Z,{style:{fontSize:"10px",lineHeight:"14px"},children:"\u{1F4CD}"}):u.jsxs(Z,{truncate:!0,className:wl.slotLabelDt,weight:"bold",children:[e.label!=="Next Leader"&&u.jsx(Za,{className:wl.dtSign,children:r===0?" ":r>0?"+":"-"}),u.jsx(Z,{truncate:!0,children:s})]})]}),u.jsx(Mx,{value:n,containerRowJustify:"center"})]})});function TO({colors:e,barWidth:t}){const n=t?void 0:"1";return u.jsx(qr,{rows:"repeat(auto-fill, 1fr)",gap:O1,flexGrow:n,children:e.map(r=>u.jsx(fC,{barWidth:t,color:r},r))})}const fC=m.memo(function({isDim:e,color:t,barWidth:n}){const r=n?void 0:"1";return u.jsx(Mt,{width:`${n}px`,flexGrow:r,className:Te(wl.slotBar,{[wl.dim]:e}),style:{"--bar-color":t}})}),Vme=function({count:e}){return Array.from({length:e}).map((t,n)=>u.jsx(fC,{isDim:!0},n))};function $6t({storageSlotBar:e,rootSlotBar:t,voteSlotBar:n,repairSlotBar:r,turbineSlotBar:i,replaySlotBar:o,confirmedSlotBar:a,nextLeaderSlotBar:s}){return u.jsxs(qr,{columns:{xs:"4",initial:"2"},gap:zm,children:[u.jsx(vu,{slotBarInfo:e}),u.jsx(vu,{slotBarInfo:t}),u.jsx(vu,{slotBarInfo:n}),u.jsx(vu,{slotBarInfo:a}),u.jsx(vu,{slotBarInfo:o}),u.jsx(vu,{slotBarInfo:r}),u.jsx(vu,{slotBarInfo:i}),u.jsx(vu,{slotBarInfo:s}),u.jsx(Mt,{gridColumn:{xs:"span 4",initial:"span 2"},children:u.jsx(Wme,{})})]})}const M6t="_stat-row_1xsdi_1",R6t="_storage-stat-container_1xsdi_10",IO={statRow:M6t,storageStatContainer:R6t},L6t="_trailing_10pox_1",P6t={trailing:L6t};function O6t(e,t,n){const r=t.indexOf("."),i=n.indexOf("."),o=r!==-1?r:t.length,a=i!==-1?i:n.length,s=e-o,l=a+s;return l<0||l>=n.length||t[e]!==n[l]}function EO({value:e,changedColor:t,unchangedColor:n,className:r}){const i=m.useRef(void 0);m.useEffect(()=>{i.current=e},[e]);const o=i.current,a=e.split(""),s=o===void 0?0:a.findIndex((l,c)=>O6t(c,e,o));return u.jsx(Z,{className:r,children:a.map((l,c)=>{const d=s!==-1&&c>=s;return u.jsx("span",{style:{color:d?t:n},children:l},c)})})}const NO={Unknown:{changed:fk,unchanged:hk},Good:{changed:mne,unchanged:gne},Average:{changed:vne,unchanged:yne},Bad:{changed:bne,unchanged:xne}};function z6t(){const e=J(c3),{percentage:t,hits:n,misses:r,status:i}=m.useMemo(()=>{if(!e)return{percentage:"-",hits:"-",misses:"-",status:"Unknown"};const{hits:o,lookups:a}=e,s=a===0?0:o/a*100,l=a===0?"Unknown":s<99.95?"Bad":s<99.999?"Average":"Good";return{percentage:(Math.trunc(s*100)/100).toFixed(2),hits:o.toLocaleString(),misses:(a-o).toLocaleString(),status:l}},[e]);return u.jsxs(W,{className:Te(dr.container),direction:"column",align:"start",gap:"1",children:[u.jsxs(Z,{className:dr.label,children:[u.jsx(Z,{children:"Hit Rate"})," ",u.jsx(Z,{className:P6t.trailing,children:"Trailing 1m"})," ",u.jsx(Z,{style:{color:NO[i].unchanged},children:i})]}),u.jsxs(W,{gap:"2",align:"center",children:[u.jsxs(W,{align:"baseline",gap:"1",minWidth:"70px",children:[u.jsx(EO,{value:t,changedColor:NO[i].changed,unchangedColor:NO[i].unchanged,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"%"})]}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(EO,{value:n,changedColor:fk,unchangedColor:hk,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"Hits"})]}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(EO,{value:r,changedColor:fk,unchangedColor:hk,className:Te(dr.value,dr.small)}),u.jsx(Z,{className:dr.appendValue,children:"Misses"})]})]})]})}function D6t(){const e=J(c3),{progress:t,numerator:n,denominator:r}=m.useMemo(()=>{if(!e)return{progress:0,numerator:{value:"-",unit:"B"},denominator:{value:"-",unit:"B"}};const{size_bytes:i,free_bytes:o}=e,a=i-o,s=Da(a,2),l=Da(i,2),c=i?rt.clamp(a/i*100,0,100):0,d=Sg.findIndex(f=>f.unit===s.unit);return Sg.findIndex(f=>f.unit===l.unit)===d+1?{numerator:Da(a,3,l.unit),denominator:l,progress:c}:{numerator:s,denominator:l,progress:c}},[e]);return u.jsxs(W,{direction:"column",className:IO.storageStatContainer,children:[u.jsxs(W,{className:dr.container,direction:"column",align:"start",children:[u.jsx(Z,{className:dr.label,children:"Storage"}),u.jsxs(W,{align:"baseline",gap:"1",children:[u.jsx(Z,{className:Te(dr.value,dr.small),style:{color:Yu},children:n.value}),n.unit!==r.unit&&u.jsx(Z,{className:dr.appendValue,children:n.unit}),u.jsx(Z,{className:Te(dr.value,dr.small),children:"/"}),u.jsx(Z,{className:Te(dr.value,dr.small),children:r.value}),u.jsx(Z,{className:dr.appendValue,children:r.unit})]})]}),u.jsx(a1,{value:t})]})}function A6t(){return u.jsx(so,{children:u.jsxs(W,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(kd,{text:"Program Cache"}),u.jsxs("div",{className:IO.statRow,children:[u.jsx(z6t,{}),u.jsx(D6t,{})]}),u.jsx("div",{className:IO.statRow,children:u.jsx(F6t,{})})]})})}function F6t(){const e=J(c3);return u.jsxs(u.Fragment,{children:[u.jsx($O,{label:"Insertions",numTimes:e==null?void 0:e.insertions,bytes:e==null?void 0:e.insertion_bytes}),u.jsx($O,{label:"Evictions",numTimes:e==null?void 0:e.evictions,bytes:e==null?void 0:e.eviction_bytes}),u.jsx($O,{label:"Spills",numTimes:e==null?void 0:e.spills,bytes:e==null?void 0:e.spill_bytes})]})}function $O({label:e,numTimes:t,bytes:n}){const{value:r,appendValue:i}=m.useMemo(()=>{const o=n!==void 0?Da(n):void 0;return{value:t!==void 0?t.toLocaleString():"-",appendValue:o?` (${o.value} ${o.unit})`:void 0}},[n,t]);return u.jsx(ya,{label:e,value:r,valueColor:kne,valueSize:"small",appendValue:i})}const U6t="_cards_hn4o1_1",B6t="_txns-card_hn4o1_5",W6t="_frankendancer_hn4o1_18",MO={cards:U6t,txnsCard:B6t,frankendancer:W6t};function V6t(){return u.jsxs(W,{direction:"column",gap:"4",flexGrow:"1",children:[u.jsx(C6t,{}),u.jsxs(qr,{className:Te(MO.cards,{[MO.frankendancer]:xi}),gap:"4",children:[u.jsx(pkt,{}),u.jsx(skt,{}),u.jsx(okt,{}),!xi&&u.jsx(A6t,{}),u.jsx(nkt,{className:MO.txnsCard})]}),u.jsx(vkt,{}),u.jsx(Ufe,{}),u.jsx(wkt,{}),u.jsx(Gkt,{})]})}const H6t=lp("/")({component:V6t}),Z6t=$pe.update({id:"/slotDetails",path:"/slotDetails",getParentRoute:()=>s1}),q6t=y_.update({id:"/leaderSchedule",path:"/leaderSchedule",getParentRoute:()=>s1}),G6t=U3t.update({id:"/gossip",path:"/gossip",getParentRoute:()=>s1}),Y6t=B3t.update({id:"/about",path:"/about",getParentRoute:()=>s1}),K6t=H6t.update({id:"/",path:"/",getParentRoute:()=>s1}),X6t={IndexRoute:K6t,AboutRoute:Y6t,GossipRoute:G6t,LeaderScheduleRoute:q6t,SlotDetailsRoute:Z6t},J6t=s1._addFileChildren(X6t)._addFileTypes(),Q6t=ca();function e5t(){const e=J(MG),t=Ee(Sme);m.useEffect(()=>{if(!e)return;const i=[...new Array(dC).fill(void 0),...e.flatMap(([o,a,s,l])=>[{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l}])];t(i.slice(i.length-dC))},[t,e]);const n=()=>{if(!e)return;const i=Q6t.get(OT);i!==void 0&&t(o=>{o.push(i),o.length>dC&&o.shift()})},r=m.useRef(n);r.current=n,m.useEffect(()=>{let i;function o(){r.current(),i=setTimeout(o,100)}return o(),()=>clearTimeout(i)},[])}function t5t(){const e=C6();Qu(()=>{e({topic:"summary",key:"ping",id:1})},2e3)}XNe.discriminatedUnion("topic",[z$e,A$e,Z$e,X$e,sMe,cMe,pMe]);function n5t(e,t){return e.key===t}const r5t=400,i5t=100,o5t=130,a5t=100,s5t=100,l5t=25,u5t=300,c5t=1e3,d5t=`${window.location.protocol.startsWith("https")?"wss":"ws"}://${window.location.hostname}:${window.location.port}/websocket`,f5t=!0;function h5t(){const e=Ee(TR),t=p5t(),n=Ee(_G),r=Ee(wG),i=Ee(jG),o=Ee(IG),a=m.useCallback(d=>{n5t(d,"gossipHealth")&&o({value:d.value,history:d.history})},[o]),s=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"ingress":n({values:f,history:p});break;case"egress":r({values:f,history:p});break}},[n,r]),l=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"tileTimers":i({values:f,history:p});break}},[i]),c=m.useCallback(d=>{switch(d.type){case"connected":e(ac.Connected);break;case"connecting":e(ac.Connecting);break;case"disconnected":e(ac.Disconnected);break;case"kvb":for(const f of d.items)t(f);break;case"kv":t(d);break;case"ema":break;case"emaHistoryArray":for(const f of d.items)s(f);break;case"historyArray":for(const f of d.items)l(f);break;case"emaHistoryObject":for(const f of d.items)a(f);break}},[e,t,s,l,a]);Iqe(c)}function p5t(){const e=Ee(uG),t=Ee(qy),n=Ee(cG),r=Ee(cp),i=Ee(rg),o=Ee(fG),a=Ee(hG),s=Ee(s3),[l,c]=Vl(dG),[d,f]=m.useReducer(()=>{const it=l!==void 0?Yf.diff(jt.fromMillis(Math.floor(Number(l.startupTimeNanos)/1e6))):void 0,Yt=it!==void 0?it.as("minutes"):void 0;return Yt!==void 0&&Yt>5?1e3*60:1e3},1e3);Qu(f,1e3);const p=Ee(xG),v=Ba(it=>p(it),d),x=Ee(OT),y=Ba(it=>{x(it)},r5t),b=Ee(zT),w=Ba(it=>{b(it)},a5t),_=Ee(CG),S=Ba(it=>{_(it)},o5t),C=Ee(SG),j=Ba(it=>{C(it)},i5t),T=Ee(cre),E=Ee(kG),$=Ba(it=>{E(it),T(it==null?void 0:it.waterfall)},s5t),D=Ee(l3),M=Ba(it=>{D(it)},l5t),O=Ee(Hl),te=Ee(Zu),q=Ee(QN),P=Ee(MG),X=Ee(DT),A=Ee(RG),Y=Ee(Sre),F=Ee(u3),H=Ee(aDe),ee=Ee(PG),[ce,B]=Vl(fi),ae=Ee(rDe),je=Ee(TG),me=Ba(it=>{je(it)},u5t),ke=Ee(EG),he=Ba(it=>{ke(it)},c5t),ue=Ee(NG),re=Ee($G),ge=Ee(fDe),$e=Ee(pDe),pe=Ee(LG),ye=Ee(dp),Se=Ee(gG),Ce=Ee(SDe),Ue=Ee(CDe),Ge=Ee(TDe),_t=Ee(IDe),St=Ee(EDe),ut=Ee(NDe),ct=m.useCallback(it=>{ae(it.publish.slot,it.publish.level),it.publish.skipped?Ce([it.publish.slot]):Ue(it.publish.slot),it.publish.level==="rooted"&&(zze(it.publish)?Ge(it.publish.slot,it.publish.vote_latency):_t(it.publish.slot)),it.publish.mine&&(it.publish.skipped?F(Yt=>[...(Yt??[]).filter(nr=>nr!==it.publish.slot),it.publish.slot].sort()):F(Yt=>Yt!=null&&Yt.some(nr=>nr===it.publish.slot)?Yt==null?void 0:Yt.filter(nr=>nr!==it.publish.slot):Yt))},[Ge,Ce,_t,Ue,F,ae]),bt=Ee(Gy),Qe=Ee(nZe),Ke=m.useCallback(it=>{bt(it),it!=null&&Qe([it])},[Qe,bt]),De=Ee(yG),Dt=Ee(oZe),pn=m.useCallback(it=>{De(it),it!=null&&Dt([it])},[Dt,De]),Yn=Ee(_7e),hr=Ee(vG),Kn=Ee(PT),kr=Ee(pG),On=Ee(mG),Mr=Ee(bG),tr=Ee(xx.addShredEvents),Sr=Ee(c3),ri=m.useRef(new Map),uo=m.useRef(new Map),Ki=Tp(()=>{ge([...ri.current.values()]),$e([...uo.current.values()]),ri.current.clear(),uo.current.clear()},1e3,{maxWait:1e3}),No=m.useCallback(it=>{if(it.add)for(const Yt of it.add)ri.current.set(Yt.identity_pubkey,Yt),uo.current.delete(Yt.identity_pubkey);if(it.update)for(const Yt of it.update)ri.current.set(Yt.identity_pubkey,Yt);if(it.remove)for(const Yt of it.remove)ri.current.delete(Yt.identity_pubkey),uo.current.set(Yt.identity_pubkey,Yt);Ki()},[Ki]),Ps=Ee(vDe),zn=m.useRef({toAdd:new Set,toRemove:new Set}),co=Tp(()=>{Ps([...zn.current.toAdd],[...zn.current.toRemove]),zn.current.toAdd.clear(),zn.current.toRemove.clear()},1e3,{maxWait:1e3}),xa=m.useCallback((it,Yt)=>{if(it)for(const nr of Yt)zn.current.toAdd.add(nr),zn.current.toRemove.delete(nr);else for(const nr of Yt)zn.current.toAdd.delete(nr),zn.current.toRemove.add(nr);co()},[co]),yc=m.useCallback(it=>{const{topic:Yt,key:nr,value:ht}=it;switch(Yt){case"summary":switch(nr){case"version":{e(ht);break}case"cluster":{t(ht);break}case"commit_hash":{n(ht);break}case"identity_key":{r(ht);break}case"vote_balance":{a(ht);break}case"startup_time_nanos":{c({startupTimeNanos:ht});break}case"tiles":{i(ht);break}case"schedule_strategy":{s(ht);break}case"identity_balance":{o(ht);break}case"estimated_slot_duration_nanos":{v(ht);break}case"estimated_tps":{y(ht);break}case"live_tile_primary_metric":{j(ht);break}case"live_txn_waterfall":{$(ht);break}case"live_tile_timers":{M(ht);break}case"boot_progress":{O(ht);break}case"startup_progress":{te(ht);break}case"tps_history":{P(ht);break}case"vote_state":{X(ht);break}case"vote_distance":{A(ht);break}case"skip_rate":{Y(ht);break}case"completed_slot":{ye(ht);break}case"turbine_slot":{Ke(ht);break}case"repair_slot":{pn(ht);break}case"reset_slot":{Yn(ht);break}case"storage_slot":{hr(ht);break}case"vote_slot":{Kn(ht);break}case"root_slot":{kr(ht);break}case"optimistically_confirmed_slot":{On(ht);break}case"slot_caught_up":Mr(ht);break;case"catch_up_history":{Qe(ht.turbine),Dt(ht.repair);break}case"server_time_nanos":{Se(ht);break}case"live_network_metrics":{w(ht);break}case"live_tile_metrics":S(ht);break;case"live_program_cache":Sr(ht);break}break;case"epoch":switch(nr){case"new":B(ht);break}break;case"gossip":switch(nr){case"network_stats":{me(ht);break}case"peers_size_update":{he(ht);break}case"query_scroll":case"query_sort":{ue(ht);break}case"view_update":{re(ht);break}}break;case"peers":No(ht);break;case"slot":switch(nr){case"skipped_history":{F(ht.sort());break}case"skipped_history_cluster":{Ce(ht);break}case"update":case"query":case"query_detailed":case"query_transactions":{ht&&(H(ht),ct(ht));break}case"query_rankings":{ee(ht);break}case"live_shreds":{tr(ht);break}case"late_votes_history":{ut(ht);break}}break;case"block_engine":{switch(nr){case"update":{pe(ht);break}}break}case"wait_for_supermajority":{switch(nr){case"stakes":{q(ht);break}case"peer_add":{xa(!0,ht);break}case"peer_remove":{xa(!1,ht);break}}break}}},[tr,pn,Dt,Ce,No,xa,Ke,Qe,ct,pe,O,t,n,ye,v,y,me,he,w,j,S,$,M,B,re,ue,o,r,ut,Sr,On,Yn,kr,s,Se,Y,F,Mr,ee,H,te,c,hr,q,i,P,e,a,A,Kn,X]),bc=Ee(oDe),xc=Ee(sDe),qa=Ee(jDe),kl=Ee(Qze);Qu(()=>{bc(),xc(),ce&&F(it=>it==null?void 0:it.filter(Yt=>Yt>=ce.start_slot&&Yt<=ce.end_slot))},5e3),m.useEffect(()=>{ce&&(qa(ce.start_slot,ce.end_slot),kl(ce.epoch))},[qa,kl,ce]),m.useEffect(()=>{ce&&St({startSlot:ce.start_slot,endSlot:ce.end_slot})},[St,ce]);const pi=J(ol),Un=J(TR)===ac.Disconnected,Rr=Ee(xx.deleteSlots);m.useEffect(()=>{Un&&Rr(Un,pi)},[Rr,Un,pi]);const $o=Ee(rZe),fo=Ee(aZe);m.useEffect(()=>{pi||($o(),fo())},[pi,fo,$o]),Qu(()=>{Rr(Un,pi)},pi?1e3:x6/4);const Lr=Ee(bDe),ho=Ee(xDe),_a=J(Gu);return m.useEffect(()=>{Un&&(co.cancel(),zn.current.toAdd.clear(),zn.current.toRemove.clear(),ho())},[co,Un,ho]),Qu(Lr,_a===wn.waiting_for_supermajority?1e3:null),yc}function m5t(){return h5t(),e5t(),t5t(),null}function g5t(e){return new e}function v5t(e){return new Worker("/assets/wsWorker-CiLy8ipA.js",{name:e==null?void 0:e.name})}function y5t(e){return(t,...n)=>{console[e](`(${jt.now().toISO({includeOffset:!1})??""}) [${t}]`,...n)}}const b5t=y5t("error");let yu=null;const Hme=new Cse().setMaxListeners(1e3);let C_=[],Dm=null,Am=null;function Zme(){Dm=null,Am=null;const e=C_;C_=[];for(const t of e)try{Hme.emit(UM,t)}catch(n){b5t("useWsWorker","Error processing worker message:",t.type,n)}}function qme(){Dm!==null&&(cancelAnimationFrame(Dm),Dm=null),Am!==null&&(clearTimeout(Am),Am=null)}function Gme(){Dm!==null||Am!==null||C_.length&&(document.visibilityState==="visible"?Dm=requestAnimationFrame(Zme):Am=window.setTimeout(Zme,0))}function x5t(){(Dm!==null||Am!==null)&&(qme(),Gme())}document.addEventListener("visibilitychange",x5t);function _5t(e){C_.push(e.data),Gme()}function w5t(e,t){yu||e.trim()&&(yu=g5t(v5t),yu.onmessage=_5t,yu.postMessage({type:"connect",websocketUrl:e,compress:t}))}function k5t(){qme(),C_=[],yu&&(yu.postMessage({type:"disconnect"}),yu.terminate(),yu=null)}function S5t({websocketUrl:e,compress:t}){return m.useEffect(()=>(w5t(e,t),()=>k5t()),[e,t]),{sendMessage:m.useCallback(n=>{yu==null||yu.postMessage({type:"send",value:n})},[]),emitter:Hme}}function C5t({children:e}){const{sendMessage:t,emitter:n}=S5t({websocketUrl:d5t,compress:f5t}),r=m.useMemo(()=>({...jse,sendMessage:t,emitter:n}),[t,n]);return u.jsxs(BM.Provider,{value:r,children:[u.jsx(m5t,{}),e]})}const j5t=L9e({routeTree:J6t});y7e(),Vi?(Kme=document.getElementById("favicon"))==null||Kme.setAttribute("href",toe):(Xme=document.getElementById("favicon"))==null||Xme.setAttribute("href",noe);function T5t(){const e=Ee(jg),t=m.useCallback(n=>{e(n),Object.entries(Sze).forEach(([r,i])=>{n.style.setProperty(`--${rt.kebabCase(r)}`,i)})},[e]);return ix(()=>{"fonts"in document&&new FontFace("NotoFlagsOnly","url(assets/NotoFlagsOnly.woff2)",{weight:"normal",style:"normal",display:"swap"}).load().then(n=>{document.fonts.add(n)}).catch(console.error)}),u.jsx($f,{id:"app",appearance:"dark",ref:t,scaling:"90%",children:u.jsx(C5t,{children:u.jsx(z9e,{router:j5t})})})}gj.createRoot(document.getElementById("root")).render(u.jsx(Pe.StrictMode,{children:u.jsx(T5t,{})})); diff --git a/src/disco/gui/dist_dev/assets/index-CKTbDeLd.js b/src/disco/gui/dist_dev/assets/index-CKTbDeLd.js deleted file mode 100644 index 0b563c0f603..00000000000 --- a/src/disco/gui/dist_dev/assets/index-CKTbDeLd.js +++ /dev/null @@ -1,214 +0,0 @@ -var r_e=Object.defineProperty;var i_e=(e,t,n)=>t in e?r_e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $u=(e,t,n)=>i_e(e,typeof t!="symbol"?t+"":t,n);var fC,Yme,Kme,Xme;function o_e(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function t(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=t(r);fetch(r.href,i)}})();var Ac=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function to(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wD={exports:{}},v2={},kD={exports:{}},gn={};/** -* @license React -* react.production.min.js -* -* Copyright (c) Facebook, Inc. and its affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var hv=Symbol.for("react.element"),a_e=Symbol.for("react.portal"),s_e=Symbol.for("react.fragment"),l_e=Symbol.for("react.strict_mode"),u_e=Symbol.for("react.profiler"),c_e=Symbol.for("react.provider"),d_e=Symbol.for("react.context"),f_e=Symbol.for("react.forward_ref"),h_e=Symbol.for("react.suspense"),p_e=Symbol.for("react.memo"),m_e=Symbol.for("react.lazy"),SD=Symbol.iterator;function g_e(e){return e===null||typeof e!="object"?null:(e=SD&&e[SD]||e["@@iterator"],typeof e=="function"?e:null)}var CD={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jD=Object.assign,TD={};function Jm(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}Jm.prototype.isReactComponent={},Jm.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},Jm.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ID(){}ID.prototype=Jm.prototype;function uj(e,t,n){this.props=e,this.context=t,this.refs=TD,this.updater=n||CD}var cj=uj.prototype=new ID;cj.constructor=uj,jD(cj,Jm.prototype),cj.isPureReactComponent=!0;var ED=Array.isArray,ND=Object.prototype.hasOwnProperty,dj={current:null},$D={key:!0,ref:!0,__self:!0,__source:!0};function MD(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)ND.call(t,r)&&!$D.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1>>1,U=F[ce];if(0>>1;cei(me,ee))kei(he,me)?(F[ce]=he,F[ke]=ee,ce=ke):(F[ce]=me,F[je]=ee,ce=je);else if(kei(he,ee))F[ce]=he,F[ke]=ee,ce=ke;else break e}}return H}function i(F,H){var ee=F.sortIndex-H.sortIndex;return ee!==0?ee:F.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],d=1,f=null,p=3,v=!1,_=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(F){for(var H=n(c);H!==null;){if(H.callback===null)r(c);else if(H.startTime<=F)r(c),H.sortIndex=H.expirationTime,t(l,H);else break;H=n(c)}}function C(F){if(y=!1,S(F),!_)if(n(l)!==null)_=!0,D(j);else{var H=n(c);H!==null&&Y(C,H.startTime-F)}}function j(F,H){_=!1,y&&(y=!1,w($),$=-1),v=!0;var ee=p;try{for(S(H),f=n(l);f!==null&&(!(f.expirationTime>H)||F&&!P());){var ce=f.callback;if(typeof ce=="function"){f.callback=null,p=f.priorityLevel;var U=ce(f.expirationTime<=H);H=e.unstable_now(),typeof U=="function"?f.callback=U:f===n(l)&&r(l),S(H)}else r(l);f=n(l)}if(f!==null)var ae=!0;else{var je=n(c);je!==null&&Y(C,je.startTime-H),ae=!1}return ae}finally{f=null,p=ee,v=!1}}var T=!1,E=null,$=-1,A=5,M=-1;function P(){return!(e.unstable_now()-MF||125ce?(F.sortIndex=ee,t(c,F),n(l)===null&&F===n(c)&&(y?(w($),$=-1):y=!0,Y(C,ee-ce))):(F.sortIndex=U,t(l,F),_||v||(_=!0,D(j))),F},e.unstable_shouldYield=P,e.unstable_wrapCallback=function(F){var H=p;return function(){var ee=p;p=H;try{return F.apply(this,arguments)}finally{p=ee}}}})(DD),zD.exports=DD;var T_e=zD.exports;/** -* @license React -* react-dom.production.min.js -* -* Copyright (c) Facebook, Inc. and its affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var I_e=m,is=T_e;function Ze(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),gj=Object.prototype.hasOwnProperty,E_e=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,FD={},BD={};function N_e(e){return gj.call(BD,e)?!0:gj.call(FD,e)?!1:E_e.test(e)?BD[e]=!0:(FD[e]=!0,!1)}function $_e(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function M_e(e,t,n,r){if(t===null||typeof t>"u"||$_e(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ia(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var yo={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){yo[e]=new ia(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];yo[t]=new ia(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){yo[e]=new ia(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){yo[e]=new ia(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){yo[e]=new ia(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){yo[e]=new ia(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){yo[e]=new ia(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){yo[e]=new ia(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){yo[e]=new ia(e,5,!1,e.toLowerCase(),null,!1,!1)});var vj=/[\-:]([a-z])/g;function yj(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(vj,yj);yo[t]=new ia(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!1,!1)}),yo.xlinkHref=new ia("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){yo[e]=new ia(e,1,!1,e.toLowerCase(),null,!0,!0)});function bj(e,t,n,r){var i=yo.hasOwnProperty(t)?yo[t]:null;(i!==null?i.type!==0:r||!(2s||i[a]!==o[s]){var l=` -`+i[a].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Tj=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?gv(e):""}function L_e(e){switch(e.tag){case 5:return gv(e.type);case 16:return gv("Lazy");case 13:return gv("Suspense");case 19:return gv("SuspenseList");case 0:case 2:case 15:return e=Ij(e.type,!1),e;case 11:return e=Ij(e.type.render,!1),e;case 1:return e=Ij(e.type,!0),e;default:return""}}function Ej(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case t0:return"Fragment";case e0:return"Portal";case xj:return"Profiler";case _j:return"StrictMode";case kj:return"Suspense";case Sj:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case WD:return(e.displayName||"Context")+".Consumer";case UD:return(e._context.displayName||"Context")+".Provider";case wj:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Cj:return t=e.displayName||null,t!==null?t:Ej(e.type)||"Memo";case ef:t=e._payload,e=e._init;try{return Ej(e(t))}catch{}}return null}function R_e(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ej(t);case 8:return t===_j?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function tf(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ZD(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function O_e(e){var t=ZD(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function w2(e){e._valueTracker||(e._valueTracker=O_e(e))}function qD(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ZD(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function k2(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Nj(e,t){var n=t.checked;return Jr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function GD(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=tf(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function YD(e,t){t=t.checked,t!=null&&bj(e,"checked",t,!1)}function $j(e,t){YD(e,t);var n=tf(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Mj(e,t.type,n):t.hasOwnProperty("defaultValue")&&Mj(e,t.type,tf(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function KD(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Mj(e,t,n){(t!=="number"||k2(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var vv=Array.isArray;function n0(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=S2.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function yv(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var bv={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},P_e=["Webkit","ms","Moz","O"];Object.keys(bv).forEach(function(e){P_e.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),bv[t]=bv[e]})});function nA(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||bv.hasOwnProperty(e)&&bv[e]?(""+t).trim():t+"px"}function rA(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=nA(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var z_e=Jr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oj(e,t){if(t){if(z_e[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ze(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ze(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Ze(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Ze(62))}}function Pj(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var zj=null;function Dj(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Aj=null,r0=null,i0=null;function iA(e){if(e=Bv(e)){if(typeof Aj!="function")throw Error(Ze(280));var t=e.stateNode;t&&(t=q2(t),Aj(e.stateNode,e.type,t))}}function oA(e){r0?i0?i0.push(e):i0=[e]:r0=e}function aA(){if(r0){var e=r0,t=i0;if(i0=r0=null,iA(e),t)for(e=0;e>>=0,e===0?32:31-(G_e(e)/Y_e|0)|0}var E2=64,N2=4194304;function kv(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $2(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~i;s!==0?r=kv(s):(o&=a,o!==0&&(r=kv(o)))}else a=n&~i,a!==0?r=kv(a):o!==0&&(r=kv(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sv(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Nl(t),e[t]=n}function Q_e(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Mv),RA=" ",OA=!1;function PA(e,t){switch(e){case"keyup":return Txe.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zA(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var s0=!1;function Exe(e,t){switch(e){case"compositionend":return zA(t);case"keypress":return t.which!==32?null:(OA=!0,RA);case"textInput":return e=t.data,e===RA&&OA?null:e;default:return null}}function Nxe(e,t){if(s0)return e==="compositionend"||!r8&&PA(e,t)?(e=IA(),P2=Xj=sf=null,s0=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=VA(n)}}function ZA(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ZA(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qA(){for(var e=window,t=k2();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=k2(e.document)}return t}function a8(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Axe(e){var t=qA(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ZA(n.ownerDocument.documentElement,n)){if(r!==null&&a8(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=r.end===void 0?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=HA(n,o);var a=HA(n,r);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,l0=null,s8=null,Pv=null,l8=!1;function GA(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;l8||l0==null||l0!==k2(r)||(r=l0,"selectionStart"in r&&a8(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Pv&&Ov(Pv,r)||(Pv=r,r=V2(s8,"onSelect"),0h0||(e.current=_8[h0],_8[h0]=null,h0--)}function jr(e,t){h0++,_8[h0]=e.current,e.current=t}var df={},Oo=cf(df),Na=cf(!1),Ph=df;function p0(e,t){var n=e.type.contextTypes;if(!n)return df;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function $a(e){return e=e.childContextTypes,e!=null}function G2(){Or(Na),Or(Oo)}function uF(e,t,n){if(Oo.current!==df)throw Error(Ze(168));jr(Oo,t),jr(Na,n)}function cF(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(Ze(108,R_e(e)||"Unknown",i));return Jr({},n,r)}function Y2(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||df,Ph=Oo.current,jr(Oo,e),jr(Na,Na.current),!0}function dF(e,t,n){var r=e.stateNode;if(!r)throw Error(Ze(169));n?(e=cF(e,t,Ph),r.__reactInternalMemoizedMergedChildContext=e,Or(Na),Or(Oo),jr(Oo,e)):Or(Na),jr(Na,n)}var Wc=null,K2=!1,x8=!1;function fF(e){Wc===null?Wc=[e]:Wc.push(e)}function Xxe(e){K2=!0,fF(e)}function ff(){if(!x8&&Wc!==null){x8=!0;var e=0,t=Qn;try{var n=Wc;for(Qn=1;e>=a,i-=a,Vc=1<<32-Nl(t)+i|n<$?(A=E,E=null):A=E.sibling;var M=p(w,E,S[$],C);if(M===null){E===null&&(E=A);break}e&&E&&M.alternate===null&&t(w,E),x=o(M,x,$),T===null?j=M:T.sibling=M,T=M,E=A}if($===S.length)return n(w,E),Hr&&Dh(w,$),j;if(E===null){for(;$$?(A=E,E=null):A=E.sibling;var P=p(w,E,M.value,C);if(P===null){E===null&&(E=A);break}e&&E&&P.alternate===null&&t(w,E),x=o(P,x,$),T===null?j=P:T.sibling=P,T=P,E=A}if(M.done)return n(w,E),Hr&&Dh(w,$),j;if(E===null){for(;!M.done;$++,M=S.next())M=f(w,M.value,C),M!==null&&(x=o(M,x,$),T===null?j=M:T.sibling=M,T=M);return Hr&&Dh(w,$),j}for(E=r(w,E);!M.done;$++,M=S.next())M=v(E,w,$,M.value,C),M!==null&&(e&&M.alternate!==null&&E.delete(M.key===null?$:M.key),x=o(M,x,$),T===null?j=M:T.sibling=M,T=M);return e&&E.forEach(function(te){return t(w,te)}),Hr&&Dh(w,$),j}function b(w,x,S,C){if(typeof S=="object"&&S!==null&&S.type===t0&&S.key===null&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case x2:e:{for(var j=S.key,T=x;T!==null;){if(T.key===j){if(j=S.type,j===t0){if(T.tag===7){n(w,T.sibling),x=i(T,S.props.children),x.return=w,w=x;break e}}else if(T.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===ef&&yF(j)===T.type){n(w,T.sibling),x=i(T,S.props),x.ref=Uv(w,T,S),x.return=w,w=x;break e}n(w,T);break}else t(w,T);T=T.sibling}S.type===t0?(x=Zh(S.props.children,w.mode,C,S.key),x.return=w,w=x):(C=Sw(S.type,S.key,S.props,null,w.mode,C),C.ref=Uv(w,x,S),C.return=w,w=C)}return a(w);case e0:e:{for(T=S.key;x!==null;){if(x.key===T)if(x.tag===4&&x.stateNode.containerInfo===S.containerInfo&&x.stateNode.implementation===S.implementation){n(w,x.sibling),x=i(x,S.children||[]),x.return=w,w=x;break e}else{n(w,x);break}else t(w,x);x=x.sibling}x=v9(S,w.mode,C),x.return=w,w=x}return a(w);case ef:return T=S._init,b(w,x,T(S._payload),C)}if(vv(S))return _(w,x,S,C);if(mv(S))return y(w,x,S,C);ew(w,S)}return typeof S=="string"&&S!==""||typeof S=="number"?(S=""+S,x!==null&&x.tag===6?(n(w,x.sibling),x=i(x,S),x.return=w,w=x):(n(w,x),x=g9(S,w.mode,C),x.return=w,w=x),a(w)):n(w,x)}return b}var y0=bF(!0),_F=bF(!1),tw=cf(null),nw=null,b0=null,T8=null;function I8(){T8=b0=nw=null}function E8(e){var t=tw.current;Or(tw),e._currentValue=t}function N8(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _0(e,t){nw=e,T8=b0=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ma=!0),e.firstContext=null)}function qs(e){var t=e._currentValue;if(T8!==e)if(e={context:e,memoizedValue:t,next:null},b0===null){if(nw===null)throw Error(Ze(308));b0=e,nw.dependencies={lanes:0,firstContext:e}}else b0=b0.next=e;return t}var Ah=null;function $8(e){Ah===null?Ah=[e]:Ah.push(e)}function xF(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,$8(t)):(n.next=i.next,i.next=n),t.interleaved=n,Zc(e,r)}function Zc(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hf=!1;function M8(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wF(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qc(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pf(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Nn&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Zc(e,n)}return i=r.interleaved,i===null?(t.next=t,$8(r)):(t.next=i.next,i.next=t),r.interleaved=t,Zc(e,n)}function rw(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zj(e,n)}}function kF(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?i=o=a:o=o.next=a,n=n.next}while(n!==null);o===null?i=o=t:o=o.next=t}else i=o=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function iw(e,t,n,r){var i=e.updateQueue;hf=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?o=c:a.next=c,a=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==a&&(s===null?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l))}if(o!==null){var f=i.baseState;a=0,d=c=l=null,s=o;do{var p=s.lane,v=s.eventTime;if((r&p)===p){d!==null&&(d=d.next={eventTime:v,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var _=e,y=s;switch(p=t,v=n,y.tag){case 1:if(_=y.payload,typeof _=="function"){f=_.call(v,f,p);break e}f=_;break e;case 3:_.flags=_.flags&-65537|128;case 0:if(_=y.payload,p=typeof _=="function"?_.call(v,f,p):_,p==null)break e;f=Jr({},f,p);break e;case 2:hf=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,p=i.effects,p===null?i.effects=[s]:p.push(s))}else v={eventTime:v,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(c=d=v,l=f):d=d.next=v,a|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(!0);if(d===null&&(l=f),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do a|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);Uh|=a,e.lanes=a,e.memoizedState=f}}function SF(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=z8.transition;z8.transition={};try{e(!1),t()}finally{Qn=n,z8.transition=r}}function WF(){return Gs().memoizedState}function t2e(e,t,n){var r=yf(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},VF(e))HF(t,n);else if(n=xF(e,t,n,r),n!==null){var i=aa();Pl(n,e,r,i),ZF(n,t,r)}}function n2e(e,t,n){var r=yf(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(VF(e))HF(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,$l(s,a)){var l=t.interleaved;l===null?(i.next=i,$8(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=xF(e,t,i,r),n!==null&&(i=aa(),Pl(n,e,r,i),ZF(n,t,r))}}function VF(e){var t=e.alternate;return e===ei||t!==null&&t===ei}function HF(e,t){Zv=sw=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ZF(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zj(e,n)}}var cw={readContext:qs,useCallback:Po,useContext:Po,useEffect:Po,useImperativeHandle:Po,useInsertionEffect:Po,useLayoutEffect:Po,useMemo:Po,useReducer:Po,useRef:Po,useState:Po,useDebugValue:Po,useDeferredValue:Po,useTransition:Po,useMutableSource:Po,useSyncExternalStore:Po,useId:Po,unstable_isNewReconciler:!1},r2e={readContext:qs,useCallback:function(e,t){return Ou().memoizedState=[e,t===void 0?null:t],e},useContext:qs,useEffect:OF,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,lw(4194308,4,DF.bind(null,t,e),n)},useLayoutEffect:function(e,t){return lw(4194308,4,e,t)},useInsertionEffect:function(e,t){return lw(4,2,e,t)},useMemo:function(e,t){var n=Ou();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ou();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=t2e.bind(null,ei,e),[r.memoizedState,e]},useRef:function(e){var t=Ou();return e={current:e},t.memoizedState=e},useState:LF,useDebugValue:V8,useDeferredValue:function(e){return Ou().memoizedState=e},useTransition:function(){var e=LF(!1),t=e[0];return e=e2e.bind(null,e[1]),Ou().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ei,i=Ou();if(Hr){if(n===void 0)throw Error(Ze(407));n=n()}else{if(n=t(),ro===null)throw Error(Ze(349));Bh&30||IF(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,OF(NF.bind(null,r,o,e),[e]),r.flags|=2048,Yv(9,EF.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Ou(),t=ro.identifierPrefix;if(Hr){var n=Hc,r=Vc;n=(r&~(1<<32-Nl(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=qv++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Lu]=t,e[Fv]=r,fB(e,t,!1,!1),t.stateNode=e;e:{switch(a=Pj(n,r),n){case"dialog":Rr("cancel",e),Rr("close",e),i=r;break;case"iframe":case"object":case"embed":Rr("load",e),i=r;break;case"video":case"audio":for(i=0;iC0&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304)}else{if(!r)if(e=ow(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Kv(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Hr)return zo(t),null}else 2*bi()-o.renderingStartTime>C0&&n!==1073741824&&(t.flags|=128,r=!0,Kv(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(n=o.last,n!==null?n.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=bi(),t.sibling=null,n=Qr.current,jr(Qr,r?n&1|2:n&1),t):(zo(t),null);case 22:case 23:return h9(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ls&1073741824&&(zo(t),t.subtreeFlags&6&&(t.flags|=8192)):zo(t),null;case 24:return null;case 25:return null}throw Error(Ze(156,t.tag))}function d2e(e,t){switch(k8(t),t.tag){case 1:return $a(t.type)&&G2(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return x0(),Or(Na),Or(Oo),P8(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return R8(t),null;case 13:if(Or(Qr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ze(340));v0()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Or(Qr),null;case 4:return x0(),null;case 10:return E8(t.type._context),null;case 22:case 23:return h9(),null;case 24:return null;default:return null}}var pw=!1,Do=!1,f2e=typeof WeakSet=="function"?WeakSet:Set,dt=null;function k0(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){li(e,t,r)}else n.current=null}function mB(e,t,n){try{n()}catch(r){li(e,t,r)}}var gB=!1;function h2e(e,t){if(p8=R2,e=qA(),a8(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var v;f!==n||i!==0&&f.nodeType!==3||(s=a+i),f!==o||r!==0&&f.nodeType!==3||(l=a+r),f.nodeType===3&&(a+=f.nodeValue.length),(v=f.firstChild)!==null;)p=f,f=v;for(;;){if(f===e)break t;if(p===n&&++c===i&&(s=a),p===o&&++d===r&&(l=a),(v=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=v}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(m8={focusedElem:e,selectionRange:n},R2=!1,dt=t;dt!==null;)if(t=dt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dt=e;else for(;dt!==null;){t=dt;try{var _=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(_!==null){var y=_.memoizedProps,b=_.memoizedState,w=t.stateNode,x=w.getSnapshotBeforeUpdate(t.elementType===t.type?y:Ll(t.type,y),b);w.__reactInternalSnapshotBeforeUpdate=x}break;case 3:var S=t.stateNode.containerInfo;S.nodeType===1?S.textContent="":S.nodeType===9&&S.documentElement&&S.removeChild(S.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ze(163))}}catch(C){li(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,dt=e;break}dt=t.return}return _=gB,gB=!1,_}function Xv(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&mB(t,n,o)}i=i.next}while(i!==r)}}function mw(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function n9(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function vB(e){var t=e.alternate;t!==null&&(e.alternate=null,vB(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Lu],delete t[Fv],delete t[b8],delete t[Yxe],delete t[Kxe])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function yB(e){return e.tag===5||e.tag===3||e.tag===4}function bB(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||yB(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function r9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Z2));else if(r!==4&&(e=e.child,e!==null))for(r9(e,t,n),e=e.sibling;e!==null;)r9(e,t,n),e=e.sibling}function i9(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(i9(e,t,n),e=e.sibling;e!==null;)i9(e,t,n),e=e.sibling}var bo=null,Rl=!1;function mf(e,t,n){for(n=n.child;n!==null;)_B(e,t,n),n=n.sibling}function _B(e,t,n){if(Mu&&typeof Mu.onCommitFiberUnmount=="function")try{Mu.onCommitFiberUnmount(I2,n)}catch{}switch(n.tag){case 5:Do||k0(n,t);case 6:var r=bo,i=Rl;bo=null,mf(e,t,n),bo=r,Rl=i,bo!==null&&(Rl?(e=bo,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):bo.removeChild(n.stateNode));break;case 18:bo!==null&&(Rl?(e=bo,n=n.stateNode,e.nodeType===8?y8(e.parentNode,n):e.nodeType===1&&y8(e,n),Ev(e)):y8(bo,n.stateNode));break;case 4:r=bo,i=Rl,bo=n.stateNode.containerInfo,Rl=!0,mf(e,t,n),bo=r,Rl=i;break;case 0:case 11:case 14:case 15:if(!Do&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&mB(n,t,a),i=i.next}while(i!==r)}mf(e,t,n);break;case 1:if(!Do&&(k0(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){li(n,t,s)}mf(e,t,n);break;case 21:mf(e,t,n);break;case 22:n.mode&1?(Do=(r=Do)||n.memoizedState!==null,mf(e,t,n),Do=r):mf(e,t,n);break;default:mf(e,t,n)}}function xB(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new f2e),t.forEach(function(r){var i=w2e.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Ol(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=a),r&=~o}if(r=i,r=bi()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*m2e(r/1960))-r,10e?16:e,vf===null)var r=!1;else{if(e=vf,vf=null,_w=0,Nn&6)throw Error(Ze(331));var i=Nn;for(Nn|=4,dt=e.current;dt!==null;){var o=dt,a=o.child;if(dt.flags&16){var s=o.deletions;if(s!==null){for(var l=0;lbi()-s9?Vh(e,0):a9|=n),Ra(e,t)}function RB(e,t){t===0&&(e.mode&1?(t=N2,N2<<=1,!(N2&130023424)&&(N2=4194304)):t=1);var n=aa();e=Zc(e,t),e!==null&&(Sv(e,t,n),Ra(e,n))}function x2e(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),RB(e,n)}function w2e(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(Ze(314))}r!==null&&r.delete(t),RB(e,n)}var OB;OB=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Na.current)Ma=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ma=!1,u2e(e,t,n);Ma=!!(e.flags&131072)}else Ma=!1,Hr&&t.flags&1048576&&hF(t,J2,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;hw(e,t),e=t.pendingProps;var i=p0(t,Oo.current);_0(t,n),i=A8(null,t,r,e,i,n);var o=F8();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,$a(r)?(o=!0,Y2(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,M8(t),i.updater=dw,t.stateNode=i,i._reactInternals=t,Z8(t,r,e,n),t=K8(null,t,r,!0,o,n)):(t.tag=0,Hr&&o&&w8(t),oa(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(hw(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=S2e(r),e=Ll(r,e),i){case 0:t=Y8(null,t,r,e,n);break e;case 1:t=aB(null,t,r,e,n);break e;case 11:t=tB(null,t,r,e,n);break e;case 14:t=nB(null,t,r,Ll(r.type,e),n);break e}throw Error(Ze(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),Y8(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),aB(e,t,r,i,n);case 3:e:{if(sB(t),e===null)throw Error(Ze(387));r=t.pendingProps,o=t.memoizedState,i=o.element,wF(e,t),iw(t,r,null,n);var a=t.memoizedState;if(r=a.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=w0(Error(Ze(423)),t),t=lB(e,t,r,n,i);break e}else if(r!==i){i=w0(Error(Ze(424)),t),t=lB(e,t,r,n,i);break e}else for(ss=uf(t.stateNode.containerInfo.firstChild),as=t,Hr=!0,Ml=null,n=_F(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(v0(),r===i){t=Gc(e,t,n);break e}oa(e,t,r,n)}t=t.child}return t;case 5:return CF(t),e===null&&C8(t),r=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,g8(r,i)?a=null:o!==null&&g8(r,o)&&(t.flags|=32),oB(e,t),oa(e,t,a,n),t.child;case 6:return e===null&&C8(t),null;case 13:return uB(e,t,n);case 4:return L8(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=y0(t,null,r,n):oa(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),tB(e,t,r,i,n);case 7:return oa(e,t,t.pendingProps,n),t.child;case 8:return oa(e,t,t.pendingProps.children,n),t.child;case 12:return oa(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,jr(tw,r._currentValue),r._currentValue=a,o!==null)if($l(o.value,a)){if(o.children===i.children&&!Na.current){t=Gc(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(o.tag===1){l=qc(-1,n&-n),l.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),N8(o.return,n,t),s.lanes|=n;break}l=l.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ze(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),N8(a,n,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}oa(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,_0(t,n),i=qs(i),r=r(i),t.flags|=1,oa(e,t,r,n),t.child;case 14:return r=t.type,i=Ll(r,t.pendingProps),i=Ll(r.type,i),nB(e,t,r,i,n);case 15:return rB(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ll(r,i),hw(e,t),t.tag=1,$a(r)?(e=!0,Y2(t)):e=!1,_0(t,n),GF(t,r,i),Z8(t,r,i,n),K8(null,t,r,!0,e,n);case 19:return dB(e,t,n);case 22:return iB(e,t,n)}throw Error(Ze(156,t.tag))};function PB(e,t){return pA(e,t)}function k2e(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ks(e,t,n,r){return new k2e(e,t,n,r)}function m9(e){return e=e.prototype,!(!e||!e.isReactComponent)}function S2e(e){if(typeof e=="function")return m9(e)?1:0;if(e!=null){if(e=e.$$typeof,e===wj)return 11;if(e===Cj)return 14}return 2}function _f(e,t){var n=e.alternate;return n===null?(n=Ks(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Sw(e,t,n,r,i,o){var a=2;if(r=e,typeof e=="function")m9(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case t0:return Zh(n.children,i,o,t);case _j:a=8,i|=8;break;case xj:return e=Ks(12,n,t,i|2),e.elementType=xj,e.lanes=o,e;case kj:return e=Ks(13,n,t,i),e.elementType=kj,e.lanes=o,e;case Sj:return e=Ks(19,n,t,i),e.elementType=Sj,e.lanes=o,e;case VD:return Cw(n,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case UD:a=10;break e;case WD:a=9;break e;case wj:a=11;break e;case Cj:a=14;break e;case ef:a=16,r=null;break e}throw Error(Ze(130,e==null?e:typeof e,""))}return t=Ks(a,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function Zh(e,t,n,r){return e=Ks(7,e,r,t),e.lanes=n,e}function Cw(e,t,n,r){return e=Ks(22,e,r,t),e.elementType=VD,e.lanes=n,e.stateNode={isHidden:!1},e}function g9(e,t,n){return e=Ks(6,e,null,t),e.lanes=n,e}function v9(e,t,n){return t=Ks(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function C2e(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Hj(0),this.expirationTimes=Hj(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Hj(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function y9(e,t,n,r,i,o,a,s,l){return e=new C2e(e,t,n,s,l),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ks(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},M8(o),e}function j2e(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(UB)}catch(e){console.error(e)}}UB(),PD.exports=rs;var Kc=PD.exports;const WB=to(Kc);var VB=Kc;mj.createRoot=VB.createRoot,mj.hydrateRoot=VB.hydrateRoot;function HB(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zl(...e){return t=>{let n=!1;const r=e.map(i=>{const o=HB(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i{const{children:o,...a}=r,s=m.Children.toArray(o),l=s.find(L2e);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}var xf=gr("Slot");function $2e(e){const t=m.forwardRef((n,r)=>{const{children:i,...o}=n;if(m.isValidElement(i)){const a=O2e(i),s=R2e(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ZB=Symbol("radix.slottable");function qB(e){const t=({children:n})=>u.jsx(u.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=ZB,t}var M2e=qB("Slottable");function L2e(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ZB}function R2e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function O2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var P2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],z2e=P2e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),GB=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),D2e="VisuallyHidden",YB=m.forwardRef((e,t)=>u.jsx(z2e.span,{...e,ref:t,style:{...GB,...e.style}}));YB.displayName=D2e;var KB=YB;function A2e(e,t){const n=m.createContext(t),r=o=>{const{children:a,...s}=o,l=m.useMemo(()=>s,Object.values(s));return u.jsx(n.Provider,{value:l,children:a})};r.displayName=e+"Provider";function i(o){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,i]}function Oa(e,t=[]){let n=[];function r(o,a){const s=m.createContext(a),l=n.length;n=[...n,a];const c=f=>{var w;const{scope:p,children:v,..._}=f,y=((w=p==null?void 0:p[e])==null?void 0:w[l])||s,b=m.useMemo(()=>_,Object.values(_));return u.jsx(y.Provider,{value:b,children:v})};c.displayName=o+"Provider";function d(f,p){var y;const v=((y=p==null?void 0:p[e])==null?void 0:y[l])||s,_=m.useContext(v);if(_)return _;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[c,d]}const i=()=>{const o=n.map(a=>m.createContext(a));return function(a){const s=(a==null?void 0:a[e])||o;return m.useMemo(()=>({[`__scope${e}`]:{...a,[e]:s}}),[a,s])}};return i.scopeName=e,[r,F2e(i,...t)]}function F2e(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(i){const o=r.reduce((a,{useScope:s,scopeName:l})=>{const c=s(i)[`__scope${l}`];return{...a,...c}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function Mw(e){const t=e+"CollectionProvider",[n,r]=Oa(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,x=Oe.useRef(null),S=Oe.useRef(new Map).current;return u.jsx(i,{scope:b,itemMap:S,collectionRef:x,children:w})};a.displayName=t;const s=e+"CollectionSlot",l=gr(s),c=Oe.forwardRef((y,b)=>{const{scope:w,children:x}=y,S=o(s,w),C=At(b,S.collectionRef);return u.jsx(l,{ref:C,children:x})});c.displayName=s;const d=e+"CollectionItemSlot",f="data-radix-collection-item",p=gr(d),v=Oe.forwardRef((y,b)=>{const{scope:w,children:x,...S}=y,C=Oe.useRef(null),j=At(b,C),T=o(d,w);return Oe.useEffect(()=>(T.itemMap.set(C,{ref:C,...S}),()=>void T.itemMap.delete(C))),u.jsx(p,{[f]:"",ref:j,children:x})});v.displayName=d;function _(y){const b=o(e+"CollectionConsumer",y);return Oe.useCallback(()=>{const w=b.collectionRef.current;if(!w)return[];const x=Array.from(w.querySelectorAll(`[${f}]`));return Array.from(b.itemMap.values()).sort((S,C)=>x.indexOf(S.ref.current)-x.indexOf(C.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:v},_,r]}function Xe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}var xo=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},B2e=pj[" useInsertionEffect ".trim().toString()]||xo;function Xs({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,o,a]=U2e({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:i;{const d=m.useRef(e!==void 0);m.useEffect(()=>{const f=d.current;f!==s&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=m.useCallback(d=>{var f;if(s){const p=W2e(d)?d(e):d;p!==e&&((f=a.current)==null||f.call(a,p))}else o(d)},[s,e,o,a]);return[l,c]}function U2e({defaultProp:e,onChange:t}){const[n,r]=m.useState(e),i=m.useRef(n),o=m.useRef(t);return B2e(()=>{o.current=t},[t]),m.useEffect(()=>{var a;i.current!==n&&((a=o.current)==null||a.call(o,n),i.current=n)},[n,i]),[n,r,o]}function W2e(e){return typeof e=="function"}function V2e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var Ao=e=>{const{present:t,children:n}=e,r=H2e(t),i=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),o=At(r.ref,Z2e(i));return typeof n=="function"||r.isPresent?m.cloneElement(i,{ref:o}):null};Ao.displayName="Presence";function H2e(e){const[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),o=m.useRef("none"),a=e?"mounted":"unmounted",[s,l]=V2e(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const c=Lw(r.current);o.current=s==="mounted"?c:"none"},[s]),xo(()=>{const c=r.current,d=i.current;if(d!==e){const f=o.current,p=Lw(c);e?l("MOUNT"):p==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&f!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,l]),xo(()=>{if(t){let c;const d=t.ownerDocument.defaultView??window,f=v=>{const _=Lw(r.current).includes(CSS.escape(v.animationName));if(v.target===t&&_&&(l("ANIMATION_END"),!i.current)){const y=t.style.animationFillMode;t.style.animationFillMode="forwards",c=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=y)})}},p=v=>{v.target===t&&(o.current=Lw(r.current))};return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(c),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:m.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function Lw(e){return(e==null?void 0:e.animationName)||"none"}function Z2e(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var q2e=pj[" useId ".trim().toString()]||(()=>{}),G2e=0;function wo(e){const[t,n]=m.useState(q2e());return xo(()=>{n(r=>r??String(G2e++))},[e]),t?`radix-${t}`:""}var XB=m.createContext(void 0),Y2e=e=>{const{dir:t,children:n}=e;return u.jsx(XB.Provider,{value:t,children:n})};function T0(e){const t=m.useContext(XB);return e||t||"ltr"}var K2e=Y2e,X2e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],JB=X2e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function J2e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}function ko(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function Q2e(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e);m.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var ewe="DismissableLayer",w9="dismissableLayer.update",twe="dismissableLayer.pointerDownOutside",nwe="dismissableLayer.focusOutside",QB,eU=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),I0=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:a,onDismiss:s,...l}=e,c=m.useContext(eU),[d,f]=m.useState(null),p=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=m.useState({}),_=At(t,E=>f(E)),y=Array.from(c.layers),[b]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),w=y.indexOf(b),x=d?y.indexOf(d):-1,S=c.layersWithOutsidePointerEventsDisabled.size>0,C=x>=w,j=owe(E=>{const $=E.target,A=[...c.branches].some(M=>M.contains($));!C||A||(i==null||i(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p),T=awe(E=>{const $=E.target;[...c.branches].some(A=>A.contains($))||(o==null||o(E),a==null||a(E),E.defaultPrevented||(s==null||s()))},p);return Q2e(E=>{x===c.layers.size-1&&(r==null||r(E),!E.defaultPrevented&&s&&(E.preventDefault(),s()))},p),m.useEffect(()=>{if(d)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(QB=p.body.style.pointerEvents,p.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),tU(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(p.body.style.pointerEvents=QB)}},[d,p,n,c]),m.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),tU())},[d,c]),m.useEffect(()=>{const E=()=>v({});return document.addEventListener(w9,E),()=>document.removeEventListener(w9,E)},[]),u.jsx(JB.div,{...l,ref:_,style:{pointerEvents:S?C?"auto":"none":void 0,...e.style},onFocusCapture:Xe(e.onFocusCapture,T.onFocusCapture),onBlurCapture:Xe(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Xe(e.onPointerDownCapture,j.onPointerDownCapture)})});I0.displayName=ewe;var rwe="DismissableLayerBranch",iwe=m.forwardRef((e,t)=>{const n=m.useContext(eU),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),u.jsx(JB.div,{...e,ref:i})});iwe.displayName=rwe;function owe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1),i=m.useRef(()=>{});return m.useEffect(()=>{const o=s=>{if(s.target&&!r.current){let l=function(){nU(twe,n,c,{discrete:!0})};const c={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=l,t.addEventListener("click",i.current,{once:!0})):l()}else t.removeEventListener("click",i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function awe(e,t=globalThis==null?void 0:globalThis.document){const n=ko(e),r=m.useRef(!1);return m.useEffect(()=>{const i=o=>{o.target&&!r.current&&nU(nwe,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function tU(){const e=new CustomEvent(w9);document.dispatchEvent(e)}function nU(e,t,n,{discrete:r}){const i=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?J2e(i,o):i.dispatchEvent(o)}var swe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lwe=swe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),k9="focusScope.autoFocusOnMount",S9="focusScope.autoFocusOnUnmount",rU={bubbles:!1,cancelable:!0},uwe="FocusScope",ny=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...a}=e,[s,l]=m.useState(null),c=ko(i),d=ko(o),f=m.useRef(null),p=At(t,y=>l(y)),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let y=function(S){if(v.paused||!s)return;const C=S.target;s.contains(C)?f.current=C:wf(f.current,{select:!0})},b=function(S){if(v.paused||!s)return;const C=S.relatedTarget;C!==null&&(s.contains(C)||wf(f.current,{select:!0}))},w=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&wf(s)};document.addEventListener("focusin",y),document.addEventListener("focusout",b);const x=new MutationObserver(w);return s&&x.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),x.disconnect()}}},[r,s,v.paused]),m.useEffect(()=>{if(s){aU.add(v);const y=document.activeElement;if(!s.contains(y)){const b=new CustomEvent(k9,rU);s.addEventListener(k9,c),s.dispatchEvent(b),b.defaultPrevented||(cwe(mwe(iU(s)),{select:!0}),document.activeElement===y&&wf(s))}return()=>{s.removeEventListener(k9,c),setTimeout(()=>{const b=new CustomEvent(S9,rU);s.addEventListener(S9,d),s.dispatchEvent(b),b.defaultPrevented||wf(y??document.body,{select:!0}),s.removeEventListener(S9,d),aU.remove(v)},0)}}},[s,c,d,v]);const _=m.useCallback(y=>{if(!n&&!r||v.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,w=document.activeElement;if(b&&w){const x=y.currentTarget,[S,C]=dwe(x);S&&C?!y.shiftKey&&w===C?(y.preventDefault(),n&&wf(S,{select:!0})):y.shiftKey&&w===S&&(y.preventDefault(),n&&wf(C,{select:!0})):w===x&&y.preventDefault()}},[n,r,v.paused]);return u.jsx(lwe.div,{tabIndex:-1,...a,ref:p,onKeyDown:_})});ny.displayName=uwe;function cwe(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(wf(r,{select:t}),document.activeElement!==n)return}function dwe(e){const t=iU(e),n=oU(t,e),r=oU(t.reverse(),e);return[n,r]}function iU(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function oU(e,t){for(const n of e)if(!fwe(n,{upTo:t}))return n}function fwe(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function hwe(e){return e instanceof HTMLInputElement&&"select"in e}function wf(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&hwe(e)&&t&&e.select()}}var aU=pwe();function pwe(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=sU(e,t),e.unshift(t)},remove(t){var n;e=sU(e,t),(n=e[0])==null||n.resume()}}}function sU(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function mwe(e){return e.filter(t=>t.tagName!=="A")}var gwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],vwe=gwe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ywe="Portal",qh=m.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[i,o]=m.useState(!1);xo(()=>o(!0),[]);const a=n||i&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return a?WB.createPortal(u.jsx(vwe.div,{...r,ref:t}),a):null});qh.displayName=ywe;var lU=qh,bwe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ry=bwe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),C9=0;function Rw(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??uU()),document.body.insertAdjacentElement("beforeend",e[1]??uU()),C9++,()=>{C9===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),C9--}},[])}function uU(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var zu=function(){return zu=Object.assign||function(e){for(var t,n=1,r=arguments.length;n"u")return Pwe;var t=zwe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Awe=pU(),E0="data-scroll-locked",Fwe=function(e,t,n,r){var i=e.left,o=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` - .`.concat(xwe,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(s,"px ").concat(r,`; - } - body[`).concat(E0,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(i,`px; - padding-top: `).concat(o,`px; - padding-right: `).concat(a,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(s,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(Ow,` { - right: `).concat(s,"px ").concat(r,`; - } - - .`).concat(Pw,` { - margin-right: `).concat(s,"px ").concat(r,`; - } - - .`).concat(Ow," .").concat(Ow,` { - right: 0 `).concat(r,`; - } - - .`).concat(Pw," .").concat(Pw,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(E0,`] { - `).concat(wwe,": ").concat(s,`px; - } -`)},mU=function(){var e=parseInt(document.body.getAttribute(E0)||"0",10);return isFinite(e)?e:0},Bwe=function(){m.useEffect(function(){return document.body.setAttribute(E0,(mU()+1).toString()),function(){var e=mU()-1;e<=0?document.body.removeAttribute(E0):document.body.setAttribute(E0,e.toString())}},[])},Uwe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?"margin":r;Bwe();var o=m.useMemo(function(){return Dwe(i)},[i]);return m.createElement(Awe,{styles:Fwe(o,!t,i,n?"":"!important")})},E9=!1;if(typeof window<"u")try{var Dw=Object.defineProperty({},"passive",{get:function(){return E9=!0,!0}});window.addEventListener("test",Dw,Dw),window.removeEventListener("test",Dw,Dw)}catch{E9=!1}var N0=E9?{passive:!1}:!1,Wwe=function(e){return e.tagName==="TEXTAREA"},gU=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Wwe(e)&&n[t]==="visible")},Vwe=function(e){return gU(e,"overflowY")},Hwe=function(e){return gU(e,"overflowX")},vU=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=yU(e,r);if(i){var o=bU(e,r),a=o[1],s=o[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Zwe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},qwe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},yU=function(e,t){return e==="v"?Vwe(t):Hwe(t)},bU=function(e,t){return e==="v"?Zwe(t):qwe(t)},Gwe=function(e,t){return e==="h"&&t==="rtl"?-1:1},Ywe=function(e,t,n,r,i){var o=Gwe(e,window.getComputedStyle(t).direction),a=o*r,s=n.target,l=t.contains(s),c=!1,d=a>0,f=0,p=0;do{if(!s)break;var v=bU(e,s),_=v[0],y=v[1],b=v[2],w=y-b-o*_;(_||w)&&yU(e,s)&&(f+=w,p+=_);var x=s.parentNode;s=x&&x.nodeType===Node.DOCUMENT_FRAGMENT_NODE?x.host:x}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&Math.abs(f)<1||!d&&Math.abs(p)<1)&&(c=!0),c},Aw=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},_U=function(e){return[e.deltaX,e.deltaY]},xU=function(e){return e&&"current"in e?e.current:e},Kwe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Xwe=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},Jwe=0,$0=[];function Qwe(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(Jwe++)[0],o=m.useState(pU)[0],a=m.useRef(e);m.useEffect(function(){a.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var y=_we([e.lockRef.current],(e.shards||[]).map(xU),!0).filter(Boolean);return y.forEach(function(b){return b.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),y.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(y,b){if("touches"in y&&y.touches.length===2||y.type==="wheel"&&y.ctrlKey)return!a.current.allowPinchZoom;var w=Aw(y),x=n.current,S="deltaX"in y?y.deltaX:x[0]-w[0],C="deltaY"in y?y.deltaY:x[1]-w[1],j,T=y.target,E=Math.abs(S)>Math.abs(C)?"h":"v";if("touches"in y&&E==="h"&&T.type==="range")return!1;var $=vU(E,T);if(!$)return!0;if($?j=E:(j=E==="v"?"h":"v",$=vU(E,T)),!$)return!1;if(!r.current&&"changedTouches"in y&&(S||C)&&(r.current=j),!j)return!0;var A=r.current||j;return Ywe(A,b,y,A==="h"?S:C)},[]),l=m.useCallback(function(y){var b=y;if(!(!$0.length||$0[$0.length-1]!==o)){var w="deltaY"in b?_U(b):Aw(b),x=t.current.filter(function(j){return j.name===b.type&&(j.target===b.target||b.target===j.shadowParent)&&Kwe(j.delta,w)})[0];if(x&&x.should){b.cancelable&&b.preventDefault();return}if(!x){var S=(a.current.shards||[]).map(xU).filter(Boolean).filter(function(j){return j.contains(b.target)}),C=S.length>0?s(b,S[0]):!a.current.noIsolation;C&&b.cancelable&&b.preventDefault()}}},[]),c=m.useCallback(function(y,b,w,x){var S={name:y,delta:b,target:w,should:x,shadowParent:e4e(w)};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(C){return C!==S})},1)},[]),d=m.useCallback(function(y){n.current=Aw(y),r.current=void 0},[]),f=m.useCallback(function(y){c(y.type,_U(y),y.target,s(y,e.lockRef.current))},[]),p=m.useCallback(function(y){c(y.type,Aw(y),y.target,s(y,e.lockRef.current))},[]);m.useEffect(function(){return $0.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",l,N0),document.addEventListener("touchmove",l,N0),document.addEventListener("touchstart",d,N0),function(){$0=$0.filter(function(y){return y!==o}),document.removeEventListener("wheel",l,N0),document.removeEventListener("touchmove",l,N0),document.removeEventListener("touchstart",d,N0)}},[]);var v=e.removeScrollBar,_=e.inert;return m.createElement(m.Fragment,null,_?m.createElement(o,{styles:Xwe(i)}):null,v?m.createElement(Uwe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function e4e(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const t4e=Ewe(hU,Qwe);var iy=m.forwardRef(function(e,t){return m.createElement(zw,zu({},e,{ref:t,sideCar:t4e}))});iy.classNames=zw.classNames;var n4e=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},M0=new WeakMap,Fw=new WeakMap,Bw={},N9=0,wU=function(e){return e&&(e.host||wU(e.parentNode))},r4e=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=wU(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},i4e=function(e,t,n,r){var i=r4e(t,Array.isArray(e)?e:[e]);Bw[n]||(Bw[n]=new WeakMap);var o=Bw[n],a=[],s=new Set,l=new Set(i),c=function(f){!f||s.has(f)||(s.add(f),c(f.parentNode))};i.forEach(c);var d=function(f){!f||l.has(f)||Array.prototype.forEach.call(f.children,function(p){if(s.has(p))d(p);else try{var v=p.getAttribute(r),_=v!==null&&v!=="false",y=(M0.get(p)||0)+1,b=(o.get(p)||0)+1;M0.set(p,y),o.set(p,b),a.push(p),y===1&&_&&Fw.set(p,!0),b===1&&p.setAttribute(n,"true"),_||p.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",p,w)}})};return d(t),s.clear(),N9++,function(){a.forEach(function(f){var p=M0.get(f)-1,v=o.get(f)-1;M0.set(f,p),o.set(f,v),p||(Fw.has(f)||f.removeAttribute(r),Fw.delete(f)),v||f.removeAttribute(n)}),N9--,N9||(M0=new WeakMap,M0=new WeakMap,Fw=new WeakMap,Bw={})}},Uw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),i=n4e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live], script"))),i4e(r,i,n,"aria-hidden")):function(){return null}},Ww="Dialog",[kU]=Oa(Ww),[o4e,Dl]=kU(Ww),SU=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!0}=e,s=m.useRef(null),l=m.useRef(null),[c,d]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Ww});return u.jsx(o4e,{scope:t,triggerRef:s,contentRef:l,contentId:wo(),titleId:wo(),descriptionId:wo(),open:c,onOpenChange:d,onOpenToggle:m.useCallback(()=>d(f=>!f),[d]),modal:a,children:n})};SU.displayName=Ww;var CU="DialogTrigger",jU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(CU,n),o=At(t,i.triggerRef);return u.jsx(ry.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":L9(i.open),...r,ref:o,onClick:Xe(e.onClick,i.onOpenToggle)})});jU.displayName=CU;var $9="DialogPortal",[a4e,TU]=kU($9,{forceMount:void 0}),IU=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:i}=e,o=Dl($9,t);return u.jsx(a4e,{scope:t,forceMount:n,children:m.Children.map(r,a=>u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:a})}))})};IU.displayName=$9;var Vw="DialogOverlay",EU=m.forwardRef((e,t)=>{const n=TU(Vw,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Vw,e.__scopeDialog);return o.modal?u.jsx(Ao,{present:r||o.open,children:u.jsx(l4e,{...i,ref:t})}):null});EU.displayName=Vw;var s4e=gr("DialogOverlay.RemoveScroll"),l4e=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(Vw,n);return u.jsx(iy,{as:s4e,allowPinchZoom:!0,shards:[i.contentRef],children:u.jsx(ry.div,{"data-state":L9(i.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),Gh="DialogContent",NU=m.forwardRef((e,t)=>{const n=TU(Gh,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,o=Dl(Gh,e.__scopeDialog);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx(u4e,{...i,ref:t}):u.jsx(c4e,{...i,ref:t})})});NU.displayName=Gh;var u4e=m.forwardRef((e,t)=>{const n=Dl(Gh,e.__scopeDialog),r=m.useRef(null),i=At(t,n.contentRef,r);return m.useEffect(()=>{const o=r.current;if(o)return Uw(o)},[]),u.jsx($U,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,o=>{var a;o.preventDefault(),(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:Xe(e.onPointerDownOutside,o=>{const a=o.detail.originalEvent,s=a.button===0&&a.ctrlKey===!0;(a.button===2||s)&&o.preventDefault()}),onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault())})}),c4e=m.forwardRef((e,t)=>{const n=Dl(Gh,e.__scopeDialog),r=m.useRef(!1),i=m.useRef(!1);return u.jsx($U,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),$U=m.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,...a}=e,s=Dl(Gh,n),l=m.useRef(null),c=At(t,l);return Rw(),u.jsxs(u.Fragment,{children:[u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":L9(s.open),...a,ref:c,onDismiss:()=>s.onOpenChange(!1)})}),u.jsxs(u.Fragment,{children:[u.jsx(d4e,{titleId:s.titleId}),u.jsx(h4e,{contentRef:l,descriptionId:s.descriptionId})]})]})}),M9="DialogTitle",MU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(M9,n);return u.jsx(ry.h2,{id:i.titleId,...r,ref:t})});MU.displayName=M9;var LU="DialogDescription",RU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(LU,n);return u.jsx(ry.p,{id:i.descriptionId,...r,ref:t})});RU.displayName=LU;var OU="DialogClose",PU=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,i=Dl(OU,n);return u.jsx(ry.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});PU.displayName=OU;function L9(e){return e?"open":"closed"}var zU="DialogTitleWarning",[E5t,DU]=A2e(zU,{contentName:Gh,titleName:M9,docsSlug:"dialog"}),d4e=({titleId:e})=>{const t=DU(zU),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return m.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},f4e="DialogDescriptionWarning",h4e=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${DU(f4e).contentName}}.`;return m.useEffect(()=>{var i;const r=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},AU=SU,p4e=jU,FU=IU,BU=EU,UU=NU,m4e=MU,g4e=RU,v4e=PU,WU={exports:{}},VU={};/** -* @license React -* use-sync-external-store-shim.production.js -* -* Copyright (c) Meta Platforms, Inc. and affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var L0=m;function y4e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var b4e=typeof Object.is=="function"?Object.is:y4e,_4e=L0.useState,x4e=L0.useEffect,w4e=L0.useLayoutEffect,k4e=L0.useDebugValue;function S4e(e,t){var n=t(),r=_4e({inst:{value:n,getSnapshot:t}}),i=r[0].inst,o=r[1];return w4e(function(){i.value=n,i.getSnapshot=t,R9(i)&&o({inst:i})},[e,n,t]),x4e(function(){return R9(i)&&o({inst:i}),e(function(){R9(i)&&o({inst:i})})},[e]),k4e(n),n}function R9(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!b4e(e,n)}catch{return!0}}function C4e(e,t){return t()}var j4e=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?C4e:S4e;VU.useSyncExternalStore=L0.useSyncExternalStore!==void 0?L0.useSyncExternalStore:j4e,WU.exports=VU;var T4e=WU.exports;function O9(e){const t=m.useRef({value:e,previous:e});return m.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function P9(e){const[t,n]=m.useState(void 0);return xo(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const o=i[0];let a,s;if("borderBoxSize"in o){const l=o.borderBoxSize,c=Array.isArray(l)?l[0]:l;a=c.inlineSize,s=c.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const I4e=["top","right","bottom","left"],kf=Math.min,us=Math.max,Hw=Math.round,Zw=Math.floor,Du=e=>({x:e,y:e}),E4e={left:"right",right:"left",bottom:"top",top:"bottom"},N4e={start:"end",end:"start"};function z9(e,t,n){return us(e,kf(t,n))}function Xc(e,t){return typeof e=="function"?e(t):e}function Jc(e){return e.split("-")[0]}function R0(e){return e.split("-")[1]}function D9(e){return e==="x"?"y":"x"}function A9(e){return e==="y"?"height":"width"}const $4e=new Set(["top","bottom"]);function Au(e){return $4e.has(Jc(e))?"y":"x"}function F9(e){return D9(Au(e))}function M4e(e,t,n){n===void 0&&(n=!1);const r=R0(e),i=F9(e),o=A9(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=qw(a)),[a,qw(a)]}function L4e(e){const t=qw(e);return[B9(e),t,B9(t)]}function B9(e){return e.replace(/start|end/g,t=>N4e[t])}const HU=["left","right"],ZU=["right","left"],R4e=["top","bottom"],O4e=["bottom","top"];function P4e(e,t,n){switch(e){case"top":case"bottom":return n?t?ZU:HU:t?HU:ZU;case"left":case"right":return t?R4e:O4e;default:return[]}}function z4e(e,t,n,r){const i=R0(e);let o=P4e(Jc(e),n==="start",r);return i&&(o=o.map(a=>a+"-"+i),t&&(o=o.concat(o.map(B9)))),o}function qw(e){return e.replace(/left|right|bottom|top/g,t=>E4e[t])}function D4e(e){return{top:0,right:0,bottom:0,left:0,...e}}function qU(e){return typeof e!="number"?D4e(e):{top:e,right:e,bottom:e,left:e}}function Gw(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function GU(e,t,n){let{reference:r,floating:i}=e;const o=Au(t),a=F9(t),s=A9(a),l=Jc(t),c=o==="y",d=r.x+r.width/2-i.width/2,f=r.y+r.height/2-i.height/2,p=r[s]/2-i[s]/2;let v;switch(l){case"top":v={x:d,y:r.y-i.height};break;case"bottom":v={x:d,y:r.y+r.height};break;case"right":v={x:r.x+r.width,y:f};break;case"left":v={x:r.x-i.width,y:f};break;default:v={x:r.x,y:r.y}}switch(R0(t)){case"start":v[a]-=p*(n&&c?-1:1);break;case"end":v[a]+=p*(n&&c?-1:1);break}return v}const A4e=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=o.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:f}=GU(c,r,l),p=r,v={},_=0;for(let y=0;y({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:o,platform:a,elements:s,middlewareData:l}=t,{element:c,padding:d=0}=Xc(e,t)||{};if(c==null)return{};const f=qU(d),p={x:n,y:r},v=F9(i),_=A9(v),y=await a.getDimensions(c),b=v==="y",w=b?"top":"left",x=b?"bottom":"right",S=b?"clientHeight":"clientWidth",C=o.reference[_]+o.reference[v]-p[v]-o.floating[_],j=p[v]-o.reference[v],T=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c));let E=T?T[S]:0;(!E||!await(a.isElement==null?void 0:a.isElement(T)))&&(E=s.floating[S]||o.floating[_]);const $=C/2-j/2,A=E/2-y[_]/2-1,M=kf(f[w],A),P=kf(f[x],A),te=M,Z=E-y[_]-P,O=E/2-y[_]/2+$,J=z9(te,O,Z),D=!l.arrow&&R0(i)!=null&&O!==J&&o.reference[_]/2-(OO<=0)){var P,te;const O=(((P=o.flip)==null?void 0:P.index)||0)+1,J=E[O];if(J&&(!(f==="alignment"&&x!==Au(J))||M.every(Y=>Au(Y.placement)===x?Y.overflows[0]>0:!0)))return{data:{index:O,overflows:M},reset:{placement:J}};let D=(te=M.filter(Y=>Y.overflows[0]<=0).sort((Y,F)=>Y.overflows[1]-F.overflows[1])[0])==null?void 0:te.placement;if(!D)switch(v){case"bestFit":{var Z;const Y=(Z=M.filter(F=>{if(T){const H=Au(F.placement);return H===x||H==="y"}return!0}).map(F=>[F.placement,F.overflows.filter(H=>H>0).reduce((H,ee)=>H+ee,0)]).sort((F,H)=>F[1]-H[1])[0])==null?void 0:Z[0];Y&&(D=Y);break}case"initialPlacement":D=s;break}if(i!==D)return{reset:{placement:D}}}return{}}}};function YU(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function KU(e){return I4e.some(t=>e[t]>=0)}const U4e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=Xc(e,t);switch(r){case"referenceHidden":{const o=await oy(t,{...i,elementContext:"reference"}),a=YU(o,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:KU(a)}}}case"escaped":{const o=await oy(t,{...i,altBoundary:!0}),a=YU(o,n.floating);return{data:{escapedOffsets:a,escaped:KU(a)}}}default:return{}}}}},XU=new Set(["left","top"]);async function W4e(e,t){const{placement:n,platform:r,elements:i}=e,o=await(r.isRTL==null?void 0:r.isRTL(i.floating)),a=Jc(n),s=R0(n),l=Au(n)==="y",c=XU.has(a)?-1:1,d=o&&l?-1:1,f=Xc(t,e);let{mainAxis:p,crossAxis:v,alignmentAxis:_}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return s&&typeof _=="number"&&(v=s==="end"?_*-1:_),l?{x:v*d,y:p*c}:{x:p*c,y:v*d}}const V4e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:o,placement:a,middlewareData:s}=t,l=await W4e(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:i+l.x,y:o+l.y,data:{...l,placement:a}}}}},H4e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:o=!0,crossAxis:a=!1,limiter:s={fn:b=>{let{x:w,y:x}=b;return{x:w,y:x}}},...l}=Xc(e,t),c={x:n,y:r},d=await oy(t,l),f=Au(Jc(i)),p=D9(f);let v=c[p],_=c[f];if(o){const b=p==="y"?"top":"left",w=p==="y"?"bottom":"right",x=v+d[b],S=v-d[w];v=z9(x,v,S)}if(a){const b=f==="y"?"top":"left",w=f==="y"?"bottom":"right",x=_+d[b],S=_-d[w];_=z9(x,_,S)}const y=s.fn({...t,[p]:v,[f]:_});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:o,[f]:a}}}}}},Z4e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:o,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=Xc(e,t),d={x:n,y:r},f=Au(i),p=D9(f);let v=d[p],_=d[f];const y=Xc(s,t),b=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(l){const S=p==="y"?"height":"width",C=o.reference[p]-o.floating[S]+b.mainAxis,j=o.reference[p]+o.reference[S]-b.mainAxis;vj&&(v=j)}if(c){var w,x;const S=p==="y"?"width":"height",C=XU.has(Jc(i)),j=o.reference[f]-o.floating[S]+(C&&((w=a.offset)==null?void 0:w[f])||0)+(C?0:b.crossAxis),T=o.reference[f]+o.reference[S]+(C?0:((x=a.offset)==null?void 0:x[f])||0)-(C?b.crossAxis:0);_T&&(_=T)}return{[p]:v,[f]:_}}}},q4e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:i,rects:o,platform:a,elements:s}=t,{apply:l=()=>{},...c}=Xc(e,t),d=await oy(t,c),f=Jc(i),p=R0(i),v=Au(i)==="y",{width:_,height:y}=o.floating;let b,w;f==="top"||f==="bottom"?(b=f,w=p===(await(a.isRTL==null?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(w=f,b=p==="end"?"top":"bottom");const x=y-d.top-d.bottom,S=_-d.left-d.right,C=kf(y-d[b],x),j=kf(_-d[w],S),T=!t.middlewareData.shift;let E=C,$=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=S),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(E=x),T&&!p){const M=us(d.left,0),P=us(d.right,0),te=us(d.top,0),Z=us(d.bottom,0);v?$=_-2*(M!==0||P!==0?M+P:us(d.left,d.right)):E=y-2*(te!==0||Z!==0?te+Z:us(d.top,d.bottom))}await l({...t,availableWidth:$,availableHeight:E});const A=await a.getDimensions(s.floating);return _!==A.width||y!==A.height?{reset:{rects:!0}}:{}}}};function Yw(){return typeof window<"u"}function O0(e){return JU(e)?(e.nodeName||"").toLowerCase():"#document"}function cs(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fu(e){var t;return(t=(JU(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function JU(e){return Yw()?e instanceof Node||e instanceof cs(e).Node:!1}function Al(e){return Yw()?e instanceof Element||e instanceof cs(e).Element:!1}function Bu(e){return Yw()?e instanceof HTMLElement||e instanceof cs(e).HTMLElement:!1}function QU(e){return!Yw()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof cs(e).ShadowRoot}const G4e=new Set(["inline","contents"]);function ay(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=Fl(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!G4e.has(i)}const Y4e=new Set(["table","td","th"]);function K4e(e){return Y4e.has(O0(e))}const X4e=[":popover-open",":modal"];function Kw(e){return X4e.some(t=>{try{return e.matches(t)}catch{return!1}})}const J4e=["transform","translate","scale","rotate","perspective"],Q4e=["transform","translate","scale","rotate","perspective","filter"],e3e=["paint","layout","strict","content"];function U9(e){const t=W9(),n=Al(e)?Fl(e):e;return J4e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Q4e.some(r=>(n.willChange||"").includes(r))||e3e.some(r=>(n.contain||"").includes(r))}function t3e(e){let t=Sf(e);for(;Bu(t)&&!P0(t);){if(U9(t))return t;if(Kw(t))return null;t=Sf(t)}return null}function W9(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const n3e=new Set(["html","body","#document"]);function P0(e){return n3e.has(O0(e))}function Fl(e){return cs(e).getComputedStyle(e)}function Xw(e){return Al(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Sf(e){if(O0(e)==="html")return e;const t=e.assignedSlot||e.parentNode||QU(e)&&e.host||Fu(e);return QU(t)?t.host:t}function eW(e){const t=Sf(e);return P0(t)?e.ownerDocument?e.ownerDocument.body:e.body:Bu(t)&&ay(t)?t:eW(t)}function sy(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=eW(e),o=i===((r=e.ownerDocument)==null?void 0:r.body),a=cs(i);if(o){const s=V9(a);return t.concat(a,a.visualViewport||[],ay(i)?i:[],s&&n?sy(s):[])}return t.concat(i,sy(i,[],n))}function V9(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function tW(e){const t=Fl(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=Bu(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:r,s=Hw(n)!==o||Hw(r)!==a;return s&&(n=o,r=a),{width:n,height:r,$:s}}function H9(e){return Al(e)?e:e.contextElement}function z0(e){const t=H9(e);if(!Bu(t))return Du(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:o}=tW(t);let a=(o?Hw(n.width):n.width)/r,s=(o?Hw(n.height):n.height)/i;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const r3e=Du(0);function nW(e){const t=cs(e);return!W9()||!t.visualViewport?r3e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function i3e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==cs(e)?!1:t}function Yh(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),o=H9(e);let a=Du(1);t&&(r?Al(r)&&(a=z0(r)):a=z0(e));const s=i3e(o,n,r)?nW(o):Du(0);let l=(i.left+s.x)/a.x,c=(i.top+s.y)/a.y,d=i.width/a.x,f=i.height/a.y;if(o){const p=cs(o),v=r&&Al(r)?cs(r):r;let _=p,y=V9(_);for(;y&&r&&v!==_;){const b=z0(y),w=y.getBoundingClientRect(),x=Fl(y),S=w.left+(y.clientLeft+parseFloat(x.paddingLeft))*b.x,C=w.top+(y.clientTop+parseFloat(x.paddingTop))*b.y;l*=b.x,c*=b.y,d*=b.x,f*=b.y,l+=S,c+=C,_=cs(y),y=V9(_)}}return Gw({width:d,height:f,x:l,y:c})}function Jw(e,t){const n=Xw(e).scrollLeft;return t?t.left+n:Yh(Fu(e)).left+n}function rW(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Jw(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function o3e(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const o=i==="fixed",a=Fu(r),s=t?Kw(t.floating):!1;if(r===a||s&&o)return n;let l={scrollLeft:0,scrollTop:0},c=Du(1);const d=Du(0),f=Bu(r);if((f||!f&&!o)&&((O0(r)!=="body"||ay(a))&&(l=Xw(r)),Bu(r))){const v=Yh(r);c=z0(r),d.x=v.x+r.clientLeft,d.y=v.y+r.clientTop}const p=a&&!f&&!o?rW(a,l):Du(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+p.x,y:n.y*c.y-l.scrollTop*c.y+d.y+p.y}}function a3e(e){return Array.from(e.getClientRects())}function s3e(e){const t=Fu(e),n=Xw(e),r=e.ownerDocument.body,i=us(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=us(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Jw(e);const s=-n.scrollTop;return Fl(r).direction==="rtl"&&(a+=us(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:s}}const iW=25;function l3e(e,t){const n=cs(e),r=Fu(e),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;const d=W9();(!d||d&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}const c=Jw(r);if(c<=0){const d=r.ownerDocument,f=d.body,p=getComputedStyle(f),v=d.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,_=Math.abs(r.clientWidth-f.clientWidth-v);_<=iW&&(o-=_)}else c<=iW&&(o+=c);return{width:o,height:a,x:s,y:l}}const u3e=new Set(["absolute","fixed"]);function c3e(e,t){const n=Yh(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=Bu(e)?z0(e):Du(1),a=e.clientWidth*o.x,s=e.clientHeight*o.y,l=i*o.x,c=r*o.y;return{width:a,height:s,x:l,y:c}}function oW(e,t,n){let r;if(t==="viewport")r=l3e(e,n);else if(t==="document")r=s3e(Fu(e));else if(Al(t))r=c3e(t,n);else{const i=nW(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return Gw(r)}function aW(e,t){const n=Sf(e);return n===t||!Al(n)||P0(n)?!1:Fl(n).position==="fixed"||aW(n,t)}function d3e(e,t){const n=t.get(e);if(n)return n;let r=sy(e,[],!1).filter(s=>Al(s)&&O0(s)!=="body"),i=null;const o=Fl(e).position==="fixed";let a=o?Sf(e):e;for(;Al(a)&&!P0(a);){const s=Fl(a),l=U9(a);!l&&s.position==="fixed"&&(i=null),(o?!l&&!i:!l&&s.position==="static"&&i&&u3e.has(i.position)||ay(a)&&!l&&aW(e,a))?r=r.filter(c=>c!==a):i=s,a=Sf(a)}return t.set(e,r),r}function f3e(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?Kw(t)?[]:d3e(t,this._c):[].concat(n),r],a=o[0],s=o.reduce((l,c)=>{const d=oW(t,c,i);return l.top=us(d.top,l.top),l.right=kf(d.right,l.right),l.bottom=kf(d.bottom,l.bottom),l.left=us(d.left,l.left),l},oW(t,a,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function h3e(e){const{width:t,height:n}=tW(e);return{width:t,height:n}}function p3e(e,t,n){const r=Bu(t),i=Fu(t),o=n==="fixed",a=Yh(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const l=Du(0);function c(){l.x=Jw(i)}if(r||!r&&!o)if((O0(t)!=="body"||ay(i))&&(s=Xw(t)),r){const v=Yh(t,!0,o,t);l.x=v.x+t.clientLeft,l.y=v.y+t.clientTop}else i&&c();o&&!r&&i&&c();const d=i&&!r&&!o?rW(i,s):Du(0),f=a.left+s.scrollLeft-l.x-d.x,p=a.top+s.scrollTop-l.y-d.y;return{x:f,y:p,width:a.width,height:a.height}}function Z9(e){return Fl(e).position==="static"}function sW(e,t){if(!Bu(e)||Fl(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Fu(e)===n&&(n=n.ownerDocument.body),n}function lW(e,t){const n=cs(e);if(Kw(e))return n;if(!Bu(e)){let i=Sf(e);for(;i&&!P0(i);){if(Al(i)&&!Z9(i))return i;i=Sf(i)}return n}let r=sW(e,t);for(;r&&K4e(r)&&Z9(r);)r=sW(r,t);return r&&P0(r)&&Z9(r)&&!U9(r)?n:r||t3e(e)||n}const m3e=async function(e){const t=this.getOffsetParent||lW,n=this.getDimensions,r=await n(e.floating);return{reference:p3e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function g3e(e){return Fl(e).direction==="rtl"}const v3e={convertOffsetParentRelativeRectToViewportRelativeRect:o3e,getDocumentElement:Fu,getClippingRect:f3e,getOffsetParent:lW,getElementRects:m3e,getClientRects:a3e,getDimensions:h3e,getScale:z0,isElement:Al,isRTL:g3e};function uW(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function y3e(e,t){let n=null,r;const i=Fu(e);function o(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),o();const c=e.getBoundingClientRect(),{left:d,top:f,width:p,height:v}=c;if(s||t(),!p||!v)return;const _=Zw(f),y=Zw(i.clientWidth-(d+p)),b=Zw(i.clientHeight-(f+v)),w=Zw(d),x={rootMargin:-_+"px "+-y+"px "+-b+"px "+-w+"px",threshold:us(0,kf(1,l))||1};let S=!0;function C(j){const T=j[0].intersectionRatio;if(T!==l){if(!S)return a();T?a(!1,T):r=setTimeout(()=>{a(!1,1e-7)},1e3)}T===1&&!uW(c,e.getBoundingClientRect())&&a(),S=!1}try{n=new IntersectionObserver(C,{...x,root:i.ownerDocument})}catch{n=new IntersectionObserver(C,x)}n.observe(e)}return a(!0),o}function b3e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=H9(e),d=i||o?[...c?sy(c):[],...sy(t)]:[];d.forEach(w=>{i&&w.addEventListener("scroll",n,{passive:!0}),o&&w.addEventListener("resize",n)});const f=c&&s?y3e(c,n):null;let p=-1,v=null;a&&(v=new ResizeObserver(w=>{let[x]=w;x&&x.target===c&&v&&(v.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var S;(S=v)==null||S.observe(t)})),n()}),c&&!l&&v.observe(c),v.observe(t));let _,y=l?Yh(e):null;l&&b();function b(){const w=Yh(e);y&&!uW(y,w)&&n(),y=w,_=requestAnimationFrame(b)}return n(),()=>{var w;d.forEach(x=>{i&&x.removeEventListener("scroll",n),o&&x.removeEventListener("resize",n)}),f==null||f(),(w=v)==null||w.disconnect(),v=null,l&&cancelAnimationFrame(_)}}const _3e=V4e,x3e=H4e,w3e=B4e,k3e=q4e,S3e=U4e,cW=F4e,C3e=Z4e,j3e=(e,t,n)=>{const r=new Map,i={platform:v3e,...n},o={...i.platform,_c:r};return A4e(e,t,{...i,platform:o})};var T3e=typeof document<"u",I3e=function(){},Qw=T3e?m.useLayoutEffect:I3e;function e4(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!e4(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!(o==="_owner"&&e.$$typeof)&&!e4(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function dW(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function fW(e,t){const n=dW(e);return Math.round(t*n)/n}function q9(e){const t=m.useRef(e);return Qw(()=>{t.current=e}),t}function E3e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:o,floating:a}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[d,f]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,v]=m.useState(r);e4(p,r)||v(r);const[_,y]=m.useState(null),[b,w]=m.useState(null),x=m.useCallback(F=>{F!==T.current&&(T.current=F,y(F))},[]),S=m.useCallback(F=>{F!==E.current&&(E.current=F,w(F))},[]),C=o||_,j=a||b,T=m.useRef(null),E=m.useRef(null),$=m.useRef(d),A=l!=null,M=q9(l),P=q9(i),te=q9(c),Z=m.useCallback(()=>{if(!T.current||!E.current)return;const F={placement:t,strategy:n,middleware:p};P.current&&(F.platform=P.current),j3e(T.current,E.current,F).then(H=>{const ee={...H,isPositioned:te.current!==!1};O.current&&!e4($.current,ee)&&($.current=ee,Kc.flushSync(()=>{f(ee)}))})},[p,t,n,P,te]);Qw(()=>{c===!1&&$.current.isPositioned&&($.current.isPositioned=!1,f(F=>({...F,isPositioned:!1})))},[c]);const O=m.useRef(!1);Qw(()=>(O.current=!0,()=>{O.current=!1}),[]),Qw(()=>{if(C&&(T.current=C),j&&(E.current=j),C&&j){if(M.current)return M.current(C,j,Z);Z()}},[C,j,Z,M,A]);const J=m.useMemo(()=>({reference:T,floating:E,setReference:x,setFloating:S}),[x,S]),D=m.useMemo(()=>({reference:C,floating:j}),[C,j]),Y=m.useMemo(()=>{const F={position:n,left:0,top:0};if(!D.floating)return F;const H=fW(D.floating,d.x),ee=fW(D.floating,d.y);return s?{...F,transform:"translate("+H+"px, "+ee+"px)",...dW(D.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:H,top:ee}},[n,s,D.floating,d.x,d.y]);return m.useMemo(()=>({...d,update:Z,refs:J,elements:D,floatingStyles:Y}),[d,Z,J,D,Y])}const N3e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?cW({element:r.current,padding:i}).fn(n):{}:r?cW({element:r,padding:i}).fn(n):{}}}},$3e=(e,t)=>({..._3e(e),options:[e,t]}),M3e=(e,t)=>({...x3e(e),options:[e,t]}),L3e=(e,t)=>({...C3e(e),options:[e,t]}),R3e=(e,t)=>({...w3e(e),options:[e,t]}),O3e=(e,t)=>({...k3e(e),options:[e,t]}),P3e=(e,t)=>({...S3e(e),options:[e,t]}),z3e=(e,t)=>({...N3e(e),options:[e,t]});var D3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],A3e=D3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),F3e="Arrow",hW=m.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...o}=e;return u.jsx(A3e.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});hW.displayName=F3e;var B3e=hW,U3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pW=U3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),G9="Popper",[mW,Cf]=Oa(G9),[W3e,gW]=mW(G9),vW=e=>{const{__scopePopper:t,children:n}=e,[r,i]=m.useState(null);return u.jsx(W3e,{scope:t,anchor:r,onAnchorChange:i,children:n})};vW.displayName=G9;var yW="PopperAnchor",bW=m.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,o=gW(yW,n),a=m.useRef(null),s=At(t,a),l=m.useRef(null);return m.useEffect(()=>{const c=l.current;l.current=(r==null?void 0:r.current)||a.current,c!==l.current&&o.onAnchorChange(l.current)}),r?null:u.jsx(pW.div,{...i,ref:s})});bW.displayName=yW;var Y9="PopperContent",[V3e,H3e]=mW(Y9),_W=m.forwardRef((e,t)=>{var he,ue,re,ge,$e,pe;const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:o="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:p=!1,updatePositionStrategy:v="optimized",onPlaced:_,...y}=e,b=gW(Y9,n),[w,x]=m.useState(null),S=At(t,ye=>x(ye)),[C,j]=m.useState(null),T=P9(C),E=(T==null?void 0:T.width)??0,$=(T==null?void 0:T.height)??0,A=r+(o!=="center"?"-"+o:""),M=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},P=Array.isArray(c)?c:[c],te=P.length>0,Z={padding:M,boundary:P.filter(q3e),altBoundary:te},{refs:O,floatingStyles:J,placement:D,isPositioned:Y,middlewareData:F}=E3e({strategy:"fixed",placement:A,whileElementsMounted:(...ye)=>b3e(...ye,{animationFrame:v==="always"}),elements:{reference:b.anchor},middleware:[$3e({mainAxis:i+$,alignmentAxis:a}),l&&M3e({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?L3e():void 0,...Z}),l&&R3e({...Z}),O3e({...Z,apply:({elements:ye,rects:Se,availableWidth:Ce,availableHeight:Be})=>{const{width:Ge,height:xt}=Se.reference,St=ye.floating.style;St.setProperty("--radix-popper-available-width",`${Ce}px`),St.setProperty("--radix-popper-available-height",`${Be}px`),St.setProperty("--radix-popper-anchor-width",`${Ge}px`),St.setProperty("--radix-popper-anchor-height",`${xt}px`)}}),C&&z3e({element:C,padding:s}),G3e({arrowWidth:E,arrowHeight:$}),p&&P3e({strategy:"referenceHidden",...Z})]}),[H,ee]=kW(D),ce=ko(_);xo(()=>{Y&&(ce==null||ce())},[Y,ce]);const U=(he=F.arrow)==null?void 0:he.x,ae=(ue=F.arrow)==null?void 0:ue.y,je=((re=F.arrow)==null?void 0:re.centerOffset)!==0,[me,ke]=m.useState();return xo(()=>{w&&ke(window.getComputedStyle(w).zIndex)},[w]),u.jsx("div",{ref:O.setFloating,"data-radix-popper-content-wrapper":"",style:{...J,transform:Y?J.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:me,"--radix-popper-transform-origin":[(ge=F.transformOrigin)==null?void 0:ge.x,($e=F.transformOrigin)==null?void 0:$e.y].join(" "),...((pe=F.hide)==null?void 0:pe.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(V3e,{scope:n,placedSide:H,onArrowChange:j,arrowX:U,arrowY:ae,shouldHideArrow:je,children:u.jsx(pW.div,{"data-side":H,"data-align":ee,...y,ref:S,style:{...y.style,animation:Y?void 0:"none"}})})})});_W.displayName=Y9;var xW="PopperArrow",Z3e={top:"bottom",right:"left",bottom:"top",left:"right"},wW=m.forwardRef(function(e,t){const{__scopePopper:n,...r}=e,i=H3e(xW,n),o=Z3e[i.placedSide];return u.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:u.jsx(B3e,{...r,ref:t,style:{...r.style,display:"block"}})})});wW.displayName=xW;function q3e(e){return e!==null}var G3e=e=>({name:"transformOrigin",options:e,fn(t){var y,b,w;const{placement:n,rects:r,middlewareData:i}=t,o=((y=i.arrow)==null?void 0:y.centerOffset)!==0,a=o?0:e.arrowWidth,s=o?0:e.arrowHeight,[l,c]=kW(n),d={start:"0%",center:"50%",end:"100%"}[c],f=(((b=i.arrow)==null?void 0:b.x)??0)+a/2,p=(((w=i.arrow)==null?void 0:w.y)??0)+s/2;let v="",_="";return l==="bottom"?(v=o?d:`${f}px`,_=`${-s}px`):l==="top"?(v=o?d:`${f}px`,_=`${r.floating.height+s}px`):l==="right"?(v=`${-s}px`,_=o?d:`${p}px`):l==="left"&&(v=`${r.floating.width+s}px`,_=o?d:`${p}px`),{data:{x:v,y:_}}}});function kW(e){const[t,n="center"]=e.split("-");return[t,n]}var t4=vW,ly=bW,n4=_W,r4=wW,Y3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],uy=Y3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function K3e(e,t){e&&Kc.flushSync(()=>e.dispatchEvent(t))}var X3e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],SW=X3e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),K9="rovingFocusGroup.onEntryFocus",J3e={bubbles:!1,cancelable:!0},cy="RovingFocusGroup",[X9,CW,Q3e]=Mw(cy),[eke,i4]=Oa(cy,[Q3e]),[tke,nke]=eke(cy),jW=m.forwardRef((e,t)=>u.jsx(X9.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(X9.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(rke,{...e,ref:t})})}));jW.displayName=cy;var rke=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...f}=e,p=m.useRef(null),v=At(t,p),_=T0(o),[y,b]=Xs({prop:a,defaultProp:s??null,onChange:l,caller:cy}),[w,x]=m.useState(!1),S=ko(c),C=CW(n),j=m.useRef(!1),[T,E]=m.useState(0);return m.useEffect(()=>{const $=p.current;if($)return $.addEventListener(K9,S),()=>$.removeEventListener(K9,S)},[S]),u.jsx(tke,{scope:n,orientation:r,dir:_,loop:i,currentTabStopId:y,onItemFocus:m.useCallback($=>b($),[b]),onItemShiftTab:m.useCallback(()=>x(!0),[]),onFocusableItemAdd:m.useCallback(()=>E($=>$+1),[]),onFocusableItemRemove:m.useCallback(()=>E($=>$-1),[]),children:u.jsx(SW.div,{tabIndex:w||T===0?-1:0,"data-orientation":r,...f,ref:v,style:{outline:"none",...e.style},onMouseDown:Xe(e.onMouseDown,()=>{j.current=!0}),onFocus:Xe(e.onFocus,$=>{const A=!j.current;if($.target===$.currentTarget&&A&&!w){const M=new CustomEvent(K9,J3e);if($.currentTarget.dispatchEvent(M),!M.defaultPrevented){const P=C().filter(J=>J.focusable),te=P.find(J=>J.active),Z=P.find(J=>J.id===y),O=[te,Z,...P].filter(Boolean).map(J=>J.ref.current);EW(O,d)}}j.current=!1}),onBlur:Xe(e.onBlur,()=>x(!1))})})}),TW="RovingFocusGroupItem",IW=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:o,children:a,...s}=e,l=wo(),c=o||l,d=nke(TW,n),f=d.currentTabStopId===c,p=CW(n),{onFocusableItemAdd:v,onFocusableItemRemove:_,currentTabStopId:y}=d;return m.useEffect(()=>{if(r)return v(),()=>_()},[r,v,_]),u.jsx(X9.ItemSlot,{scope:n,id:c,focusable:r,active:i,children:u.jsx(SW.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:Xe(e.onMouseDown,b=>{r?d.onItemFocus(c):b.preventDefault()}),onFocus:Xe(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:Xe(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=ake(b,d.orientation,d.dir);if(w!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let x=p().filter(S=>S.focusable).map(S=>S.ref.current);if(w==="last")x.reverse();else if(w==="prev"||w==="next"){w==="prev"&&x.reverse();const S=x.indexOf(b.currentTarget);x=d.loop?ske(x,S+1):x.slice(S+1)}setTimeout(()=>EW(x))}}),children:typeof a=="function"?a({isCurrentTabStop:f,hasTabStop:y!=null}):a})})});IW.displayName=TW;var ike={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function oke(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function ake(e,t,n){const r=oke(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return ike[r]}function EW(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ske(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var NW=jW,$W=IW,J9=["Enter"," "],lke=["ArrowDown","PageUp","Home"],MW=["ArrowUp","PageDown","End"],uke=[...lke,...MW],cke={ltr:[...J9,"ArrowRight"],rtl:[...J9,"ArrowLeft"]},dke={ltr:["ArrowLeft"],rtl:["ArrowRight"]},dy="Menu",[fy,fke,hke]=Mw(dy),[Kh,LW]=Oa(dy,[hke,Cf,i4]),o4=Cf(),RW=i4(),[pke,Xh]=Kh(dy),[mke,hy]=Kh(dy),OW=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:o,modal:a=!0}=e,s=o4(t),[l,c]=m.useState(null),d=m.useRef(!1),f=ko(o),p=T0(i);return m.useEffect(()=>{const v=()=>{d.current=!0,document.addEventListener("pointerdown",_,{capture:!0,once:!0}),document.addEventListener("pointermove",_,{capture:!0,once:!0})},_=()=>d.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",_,{capture:!0}),document.removeEventListener("pointermove",_,{capture:!0})}},[]),u.jsx(t4,{...s,children:u.jsx(pke,{scope:t,open:n,onOpenChange:f,content:l,onContentChange:c,children:u.jsx(mke,{scope:t,onClose:m.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:p,modal:a,children:r})})})};OW.displayName=dy;var gke="MenuAnchor",Q9=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(ly,{...i,...r,ref:t})});Q9.displayName=gke;var e7="MenuPortal",[vke,PW]=Kh(e7,{forceMount:void 0}),zW=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:i}=e,o=Xh(e7,t);return u.jsx(vke,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};zW.displayName=e7;var Js="MenuContent",[yke,t7]=Kh(Js),DW=m.forwardRef((e,t)=>{const n=PW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Xh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:a.modal?u.jsx(bke,{...i,ref:t}):u.jsx(_ke,{...i,ref:t})})})})}),bke=m.forwardRef((e,t)=>{const n=Xh(Js,e.__scopeMenu),r=m.useRef(null),i=At(t,r);return m.useEffect(()=>{const o=r.current;if(o)return Uw(o)},[]),u.jsx(n7,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Xe(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),_ke=m.forwardRef((e,t)=>{const n=Xh(Js,e.__scopeMenu);return u.jsx(n7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),xke=gr("MenuContent.ScrollLock"),n7=m.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,disableOutsideScroll:_,...y}=e,b=Xh(Js,n),w=hy(Js,n),x=o4(n),S=RW(n),C=fke(n),[j,T]=m.useState(null),E=m.useRef(null),$=At(t,E,b.onContentChange),A=m.useRef(0),M=m.useRef(""),P=m.useRef(0),te=m.useRef(null),Z=m.useRef("right"),O=m.useRef(0),J=_?iy:m.Fragment,D=_?{as:xke,allowPinchZoom:!0}:void 0,Y=H=>{var he,ue;const ee=M.current+H,ce=C().filter(re=>!re.disabled),U=document.activeElement,ae=(he=ce.find(re=>re.ref.current===U))==null?void 0:he.textValue,je=ce.map(re=>re.textValue),me=Lke(je,ee,ae),ke=(ue=ce.find(re=>re.textValue===me))==null?void 0:ue.ref.current;(function re(ge){M.current=ge,window.clearTimeout(A.current),ge!==""&&(A.current=window.setTimeout(()=>re(""),1e3))})(ee),ke&&setTimeout(()=>ke.focus())};m.useEffect(()=>()=>window.clearTimeout(A.current),[]),Rw();const F=m.useCallback(H=>{var ee,ce;return Z.current===((ee=te.current)==null?void 0:ee.side)&&Oke(H,(ce=te.current)==null?void 0:ce.area)},[]);return u.jsx(yke,{scope:n,searchRef:M,onItemEnter:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),onItemLeave:m.useCallback(H=>{var ee;F(H)||((ee=E.current)==null||ee.focus(),T(null))},[F]),onTriggerLeave:m.useCallback(H=>{F(H)&&H.preventDefault()},[F]),pointerGraceTimerRef:P,onPointerGraceIntentChange:m.useCallback(H=>{te.current=H},[]),children:u.jsx(J,{...D,children:u.jsx(ny,{asChild:!0,trapped:i,onMountAutoFocus:Xe(o,H=>{var ee;H.preventDefault(),(ee=E.current)==null||ee.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:v,children:u.jsx(NW,{asChild:!0,...S,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:j,onCurrentTabStopIdChange:T,onEntryFocus:Xe(l,H=>{w.isUsingKeyboardRef.current||H.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(n4,{role:"menu","aria-orientation":"vertical","data-state":tV(b.open),"data-radix-menu-content":"",dir:w.dir,...x,...y,ref:$,style:{outline:"none",...y.style},onKeyDown:Xe(y.onKeyDown,H=>{const ee=H.target.closest("[data-radix-menu-content]")===H.currentTarget,ce=H.ctrlKey||H.altKey||H.metaKey,U=H.key.length===1;ee&&(H.key==="Tab"&&H.preventDefault(),!ce&&U&&Y(H.key));const ae=E.current;if(H.target!==ae||!uke.includes(H.key))return;H.preventDefault();const je=C().filter(me=>!me.disabled).map(me=>me.ref.current);MW.includes(H.key)&&je.reverse(),$ke(je)}),onBlur:Xe(e.onBlur,H=>{H.currentTarget.contains(H.target)||(window.clearTimeout(A.current),M.current="")}),onPointerMove:Xe(e.onPointerMove,my(H=>{const ee=H.target,ce=O.current!==H.clientX;if(H.currentTarget.contains(ee)&&ce){const U=H.clientX>O.current?"right":"left";Z.current=U,O.current=H.clientX}}))})})})})})})});DW.displayName=Js;var wke="MenuGroup",r7=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"group",...r,ref:t})});r7.displayName=wke;var kke="MenuLabel",AW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{...r,ref:t})});AW.displayName=kke;var a4="MenuItem",FW="menu.itemSelect",s4=m.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...i}=e,o=m.useRef(null),a=hy(a4,e.__scopeMenu),s=t7(a4,e.__scopeMenu),l=At(t,o),c=m.useRef(!1),d=()=>{const f=o.current;if(!n&&f){const p=new CustomEvent(FW,{bubbles:!0,cancelable:!0});f.addEventListener(FW,v=>r==null?void 0:r(v),{once:!0}),K3e(f,p),p.defaultPrevented?c.current=!1:a.onClose()}};return u.jsx(BW,{...i,ref:l,disabled:n,onClick:Xe(e.onClick,d),onPointerDown:f=>{var p;(p=e.onPointerDown)==null||p.call(e,f),c.current=!0},onPointerUp:Xe(e.onPointerUp,f=>{var p;c.current||((p=f.currentTarget)==null||p.click())}),onKeyDown:Xe(e.onKeyDown,f=>{const p=s.searchRef.current!=="";n||p&&f.key===" "||J9.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})});s4.displayName=a4;var BW=m.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...o}=e,a=t7(a4,n),s=RW(n),l=m.useRef(null),c=At(t,l),[d,f]=m.useState(!1),[p,v]=m.useState("");return m.useEffect(()=>{const _=l.current;_&&v((_.textContent??"").trim())},[o.children]),u.jsx(fy.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:u.jsx($W,{asChild:!0,...s,focusable:!r,children:u.jsx(uy.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:c,onPointerMove:Xe(e.onPointerMove,my(_=>{r?a.onItemLeave(_):(a.onItemEnter(_),_.defaultPrevented||_.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Xe(e.onPointerLeave,my(_=>a.onItemLeave(_))),onFocus:Xe(e.onFocus,()=>f(!0)),onBlur:Xe(e.onBlur,()=>f(!1))})})})}),Ske="MenuCheckboxItem",UW=m.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...i}=e;return u.jsx(qW,{scope:e.__scopeMenu,checked:n,children:u.jsx(s4,{role:"menuitemcheckbox","aria-checked":l4(n)?"mixed":n,...i,ref:t,"data-state":o7(n),onSelect:Xe(i.onSelect,()=>r==null?void 0:r(l4(n)?!0:!n),{checkForDefaultPrevented:!1})})})});UW.displayName=Ske;var WW="MenuRadioGroup",[Cke,jke]=Kh(WW,{value:void 0,onValueChange:()=>{}}),VW=m.forwardRef((e,t)=>{const{value:n,onValueChange:r,...i}=e,o=ko(r);return u.jsx(Cke,{scope:e.__scopeMenu,value:n,onValueChange:o,children:u.jsx(r7,{...i,ref:t})})});VW.displayName=WW;var HW="MenuRadioItem",ZW=m.forwardRef((e,t)=>{const{value:n,...r}=e,i=jke(HW,e.__scopeMenu),o=n===i.value;return u.jsx(qW,{scope:e.__scopeMenu,checked:o,children:u.jsx(s4,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":o7(o),onSelect:Xe(r.onSelect,()=>{var a;return(a=i.onValueChange)==null?void 0:a.call(i,n)},{checkForDefaultPrevented:!1})})})});ZW.displayName=HW;var i7="MenuItemIndicator",[qW,Tke]=Kh(i7,{checked:!1}),GW=m.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...i}=e,o=Tke(i7,n);return u.jsx(Ao,{present:r||l4(o.checked)||o.checked===!0,children:u.jsx(uy.span,{...i,ref:t,"data-state":o7(o.checked)})})});GW.displayName=i7;var Ike="MenuSeparator",YW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(uy.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});YW.displayName=Ike;var Eke="MenuArrow",KW=m.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,i=o4(n);return u.jsx(r4,{...i,...r,ref:t})});KW.displayName=Eke;var Nke="MenuSub",[N5t,XW]=Kh(Nke),py="MenuSubTrigger",JW=m.forwardRef((e,t)=>{const n=Xh(py,e.__scopeMenu),r=hy(py,e.__scopeMenu),i=XW(py,e.__scopeMenu),o=t7(py,e.__scopeMenu),a=m.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=o,c={__scopeMenu:e.__scopeMenu},d=m.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return m.useEffect(()=>d,[d]),m.useEffect(()=>{const f=s.current;return()=>{window.clearTimeout(f),l(null)}},[s,l]),u.jsx(Q9,{asChild:!0,...c,children:u.jsx(BW,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":tV(n.open),...e,ref:zl(t,i.onTriggerChange),onClick:f=>{var p;(p=e.onClick)==null||p.call(e,f),!(e.disabled||f.defaultPrevented)&&(f.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Xe(e.onPointerMove,my(f=>{o.onItemEnter(f),!f.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(o.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:Xe(e.onPointerLeave,my(f=>{var v,_;d();const p=(v=n.content)==null?void 0:v.getBoundingClientRect();if(p){const y=(_=n.content)==null?void 0:_.dataset.side,b=y==="right",w=b?-5:5,x=p[b?"left":"right"],S=p[b?"right":"left"];o.onPointerGraceIntentChange({area:[{x:f.clientX+w,y:f.clientY},{x,y:p.top},{x:S,y:p.top},{x:S,y:p.bottom},{x,y:p.bottom}],side:y}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(f),f.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Xe(e.onKeyDown,f=>{var v;const p=o.searchRef.current!=="";e.disabled||p&&f.key===" "||cke[r.dir].includes(f.key)&&(n.onOpenChange(!0),(v=n.content)==null||v.focus(),f.preventDefault())})})})});JW.displayName=py;var QW="MenuSubContent",eV=m.forwardRef((e,t)=>{const n=PW(Js,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,o=Xh(Js,e.__scopeMenu),a=hy(Js,e.__scopeMenu),s=XW(QW,e.__scopeMenu),l=m.useRef(null),c=At(t,l);return u.jsx(fy.Provider,{scope:e.__scopeMenu,children:u.jsx(Ao,{present:r||o.open,children:u.jsx(fy.Slot,{scope:e.__scopeMenu,children:u.jsx(n7,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:c,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{var f;a.isUsingKeyboardRef.current&&((f=l.current)==null||f.focus()),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:Xe(e.onFocusOutside,d=>{d.target!==s.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Xe(e.onEscapeKeyDown,d=>{a.onClose(),d.preventDefault()}),onKeyDown:Xe(e.onKeyDown,d=>{var v;const f=d.currentTarget.contains(d.target),p=dke[a.dir].includes(d.key);f&&p&&(o.onOpenChange(!1),(v=s.trigger)==null||v.focus(),d.preventDefault())})})})})})});eV.displayName=QW;function tV(e){return e?"open":"closed"}function l4(e){return e==="indeterminate"}function o7(e){return l4(e)?"indeterminate":e?"checked":"unchecked"}function $ke(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Mke(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Lke(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=Mke(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function Rke(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function Oke(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Rke(n,t)}function my(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Pke=OW,zke=Q9,Dke=zW,Ake=DW,Fke=r7,Bke=AW,Uke=s4,Wke=UW,Vke=VW,Hke=ZW,Zke=GW,qke=YW,Gke=KW,Yke=JW,Kke=eV,Xke=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jke=Xke.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),u4="DropdownMenu",[Qke]=Oa(u4,[LW]),sa=LW(),[e6e,nV]=Qke(u4),rV=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:o,onOpenChange:a,modal:s=!0}=e,l=sa(t),c=m.useRef(null),[d,f]=Xs({prop:i,defaultProp:o??!1,onChange:a,caller:u4});return u.jsx(e6e,{scope:t,triggerId:wo(),triggerRef:c,contentId:wo(),open:d,onOpenChange:f,onOpenToggle:m.useCallback(()=>f(p=>!p),[f]),modal:s,children:u.jsx(Pke,{...l,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};rV.displayName=u4;var iV="DropdownMenuTrigger",oV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,o=nV(iV,n),a=sa(n);return u.jsx(zke,{asChild:!0,...a,children:u.jsx(Jke.button,{type:"button",id:o.triggerId,"aria-haspopup":"menu","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:zl(t,o.triggerRef),onPointerDown:Xe(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(o.onOpenToggle(),o.open||s.preventDefault())}),onKeyDown:Xe(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&o.onOpenToggle(),s.key==="ArrowDown"&&o.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});oV.displayName=iV;var t6e="DropdownMenuPortal",aV=e=>{const{__scopeDropdownMenu:t,...n}=e,r=sa(t);return u.jsx(Dke,{...r,...n})};aV.displayName=t6e;var sV="DropdownMenuContent",lV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=nV(sV,n),o=sa(n),a=m.useRef(!1);return u.jsx(Ake,{id:i.contentId,"aria-labelledby":i.triggerId,...o,...r,ref:t,onCloseAutoFocus:Xe(e.onCloseAutoFocus,s=>{var l;a.current||((l=i.triggerRef.current)==null||l.focus()),a.current=!1,s.preventDefault()}),onInteractOutside:Xe(e.onInteractOutside,s=>{const l=s.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,d=l.button===2||c;(!i.modal||d)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});lV.displayName=sV;var n6e="DropdownMenuGroup",uV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Fke,{...i,...r,ref:t})});uV.displayName=n6e;var r6e="DropdownMenuLabel",cV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Bke,{...i,...r,ref:t})});cV.displayName=r6e;var i6e="DropdownMenuItem",dV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Uke,{...i,...r,ref:t})});dV.displayName=i6e;var o6e="DropdownMenuCheckboxItem",fV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Wke,{...i,...r,ref:t})});fV.displayName=o6e;var a6e="DropdownMenuRadioGroup",hV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Vke,{...i,...r,ref:t})});hV.displayName=a6e;var s6e="DropdownMenuRadioItem",pV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Hke,{...i,...r,ref:t})});pV.displayName=s6e;var l6e="DropdownMenuItemIndicator",mV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Zke,{...i,...r,ref:t})});mV.displayName=l6e;var u6e="DropdownMenuSeparator",gV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(qke,{...i,...r,ref:t})});gV.displayName=u6e;var c6e="DropdownMenuArrow",d6e=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Gke,{...i,...r,ref:t})});d6e.displayName=c6e;var f6e="DropdownMenuSubTrigger",vV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Yke,{...i,...r,ref:t})});vV.displayName=f6e;var h6e="DropdownMenuSubContent",yV=m.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,i=sa(n);return u.jsx(Kke,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yV.displayName=h6e;var bV=rV,_V=oV,a7=aV,xV=lV,p6e=uV,m6e=cV,wV=dV,g6e=fV,v6e=hV,y6e=pV,kV=mV,b6e=gV,_6e=vV,x6e=yV,w6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],k6e=w6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),S6e="Label",SV=m.forwardRef((e,t)=>u.jsx(k6e.label,{...e,ref:t,onMouseDown:n=>{var r;n.target.closest("button, input, select, textarea")||((r=e.onMouseDown)==null||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));SV.displayName=S6e;var C6e=SV;function gy(e,[t,n]){return Math.min(n,Math.max(t,e))}var j6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],CV=j6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),c4="Popover",[jV]=Oa(c4,[Cf]),vy=Cf(),[T6e,jf]=jV(c4),TV=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:o,modal:a=!1}=e,s=vy(t),l=m.useRef(null),[c,d]=m.useState(!1),[f,p]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:c4});return u.jsx(t4,{...s,children:u.jsx(T6e,{scope:t,contentId:wo(),triggerRef:l,open:f,onOpenChange:p,onOpenToggle:m.useCallback(()=>p(v=>!v),[p]),hasCustomAnchor:c,onCustomAnchorAdd:m.useCallback(()=>d(!0),[]),onCustomAnchorRemove:m.useCallback(()=>d(!1),[]),modal:a,children:n})})};TV.displayName=c4;var IV="PopoverAnchor",EV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(IV,n),o=vy(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=i;return m.useEffect(()=>(a(),()=>s()),[a,s]),u.jsx(ly,{...o,...r,ref:t})});EV.displayName=IV;var NV="PopoverTrigger",$V=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(NV,n),o=vy(n),a=At(t,i.triggerRef),s=u.jsx(CV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":zV(i.open),...r,ref:a,onClick:Xe(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:u.jsx(ly,{asChild:!0,...o,children:s})});$V.displayName=NV;var s7="PopoverPortal",[I6e,E6e]=jV(s7,{forceMount:void 0}),MV=e=>{const{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=jf(s7,t);return u.jsx(I6e,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};MV.displayName=s7;var D0="PopoverContent",LV=m.forwardRef((e,t)=>{const n=E6e(D0,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,o=jf(D0,e.__scopePopover);return u.jsx(Ao,{present:r||o.open,children:o.modal?u.jsx($6e,{...i,ref:t}):u.jsx(M6e,{...i,ref:t})})});LV.displayName=D0;var N6e=gr("PopoverContent.RemoveScroll"),$6e=m.forwardRef((e,t)=>{const n=jf(D0,e.__scopePopover),r=m.useRef(null),i=At(t,r),o=m.useRef(!1);return m.useEffect(()=>{const a=r.current;if(a)return Uw(a)},[]),u.jsx(iy,{as:N6e,allowPinchZoom:!0,children:u.jsx(RV,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Xe(e.onCloseAutoFocus,a=>{var s;a.preventDefault(),o.current||((s=n.triggerRef.current)==null||s.focus())}),onPointerDownOutside:Xe(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0,c=s.button===2||l;o.current=c},{checkForDefaultPrevented:!1}),onFocusOutside:Xe(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),M6e=m.forwardRef((e,t)=>{const n=jf(D0,e.__scopePopover),r=m.useRef(!1),i=m.useRef(!1);return u.jsx(RV,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,o),o.defaultPrevented||(r.current||((s=n.triggerRef.current)==null||s.focus()),o.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:o=>{var s,l;(s=e.onInteractOutside)==null||s.call(e,o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const a=o.target;(l=n.triggerRef.current)!=null&&l.contains(a)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})}),RV=m.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...f}=e,p=jf(D0,n),v=vy(n);return Rw(),u.jsx(ny,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>p.onOpenChange(!1),children:u.jsx(n4,{"data-state":zV(p.open),role:"dialog",id:p.contentId,...v,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),OV="PopoverClose",PV=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=jf(OV,n);return u.jsx(CV.button,{type:"button",...r,ref:t,onClick:Xe(e.onClick,()=>i.onOpenChange(!1))})});PV.displayName=OV;var L6e="PopoverArrow",R6e=m.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,i=vy(n);return u.jsx(r4,{...i,...r,ref:t})});R6e.displayName=L6e;function zV(e){return e?"open":"closed"}var l7=TV,DV=EV,AV=$V,u7=MV,c7=LV,O6e=PV,P6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],FV=P6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),d7="Progress",f7=100,[z6e]=Oa(d7),[D6e,A6e]=z6e(d7),BV=m.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:i,getValueLabel:o=F6e,...a}=e;(i||i===0)&&!HV(i)&&console.error(B6e(`${i}`,"Progress"));const s=HV(i)?i:f7;r!==null&&!ZV(r,s)&&console.error(U6e(`${r}`,"Progress"));const l=ZV(r,s)?r:null,c=d4(l)?o(l,s):void 0;return u.jsx(D6e,{scope:n,value:l,max:s,children:u.jsx(FV.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":d4(l)?l:void 0,"aria-valuetext":c,role:"progressbar","data-state":VV(l,s),"data-value":l??void 0,"data-max":s,...a,ref:t})})});BV.displayName=d7;var UV="ProgressIndicator",WV=m.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,i=A6e(UV,n);return u.jsx(FV.div,{"data-state":VV(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});WV.displayName=UV;function F6e(e,t){return`${Math.round(e/t*100)}%`}function VV(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function d4(e){return typeof e=="number"}function HV(e){return d4(e)&&!isNaN(e)&&e>0}function ZV(e,t){return d4(e)&&!isNaN(e)&&e<=t&&e>=0}function B6e(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${f7}\`.`}function U6e(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${f7} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var W6e=BV,V6e=WV,H6e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],yy=H6e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Z6e(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var h7="ScrollArea",[qV]=Oa(h7),[q6e,Qs]=qV(h7),GV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:i,scrollHideDelay:o=600,...a}=e,[s,l]=m.useState(null),[c,d]=m.useState(null),[f,p]=m.useState(null),[v,_]=m.useState(null),[y,b]=m.useState(null),[w,x]=m.useState(0),[S,C]=m.useState(0),[j,T]=m.useState(!1),[E,$]=m.useState(!1),A=At(t,P=>l(P)),M=T0(i);return u.jsx(q6e,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:s,viewport:c,onViewportChange:d,content:f,onContentChange:p,scrollbarX:v,onScrollbarXChange:_,scrollbarXEnabled:j,onScrollbarXEnabledChange:T,scrollbarY:y,onScrollbarYChange:b,scrollbarYEnabled:E,onScrollbarYEnabledChange:$,onCornerWidthChange:x,onCornerHeightChange:C,children:u.jsx(yy.div,{dir:M,...a,ref:A,style:{position:"relative","--radix-scroll-area-corner-width":w+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});GV.displayName=h7;var YV="ScrollAreaViewport",KV=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:i,...o}=e,a=Qs(YV,n),s=m.useRef(null),l=At(t,s,a.onViewportChange);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),u.jsx(yy.div,{"data-radix-scroll-area-viewport":"",...o,ref:l,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...e.style},children:u.jsx("div",{ref:a.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});KV.displayName=YV;var Uu="ScrollAreaScrollbar",XV=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:a}=i,s=e.orientation==="horizontal";return m.useEffect(()=>(s?o(!0):a(!0),()=>{s?o(!1):a(!1)}),[s,o,a]),i.type==="hover"?u.jsx(G6e,{...r,ref:t,forceMount:n}):i.type==="scroll"?u.jsx(Y6e,{...r,ref:t,forceMount:n}):i.type==="auto"?u.jsx(JV,{...r,ref:t,forceMount:n}):i.type==="always"?u.jsx(p7,{...r,ref:t}):null});XV.displayName=Uu;var G6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),[o,a]=m.useState(!1);return m.useEffect(()=>{const s=i.scrollArea;let l=0;if(s){const c=()=>{window.clearTimeout(l),a(!0)},d=()=>{l=window.setTimeout(()=>a(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",c),s.addEventListener("pointerleave",d),()=>{window.clearTimeout(l),s.removeEventListener("pointerenter",c),s.removeEventListener("pointerleave",d)}}},[i.scrollArea,i.scrollHideDelay]),u.jsx(Ao,{present:n||o,children:u.jsx(JV,{"data-state":o?"visible":"hidden",...r,ref:t})})}),Y6e=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=Qs(Uu,e.__scopeScrollArea),o=e.orientation==="horizontal",a=m4(()=>l("SCROLL_END"),100),[s,l]=Z6e("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return m.useEffect(()=>{if(s==="idle"){const c=window.setTimeout(()=>l("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(c)}},[s,i.scrollHideDelay,l]),m.useEffect(()=>{const c=i.viewport,d=o?"scrollLeft":"scrollTop";if(c){let f=c[d];const p=()=>{const v=c[d];f!==v&&(l("SCROLL"),a()),f=v};return c.addEventListener("scroll",p),()=>c.removeEventListener("scroll",p)}},[i.viewport,o,l,a]),u.jsx(Ao,{present:n||s!=="hidden",children:u.jsx(p7,{"data-state":s==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Xe(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:Xe(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),JV=m.forwardRef((e,t)=>{const n=Qs(Uu,e.__scopeScrollArea),{forceMount:r,...i}=e,[o,a]=m.useState(!1),s=e.orientation==="horizontal",l=m4(()=>{if(n.viewport){const c=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,i=Qs(Uu,e.__scopeScrollArea),o=m.useRef(null),a=m.useRef(0),[s,l]=m.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=rH(s.viewport,s.content),d={...r,sizes:s,onSizesChange:l,hasThumb:c>0&&c<1,onThumbChange:p=>o.current=p,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:p=>a.current=p};function f(p,v){return t5e(p,a.current,s,v)}return n==="horizontal"?u.jsx(K6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollLeft,v=iH(p,s,i.dir);o.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollLeft=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollLeft=f(p,i.dir))}}):n==="vertical"?u.jsx(X6e,{...d,ref:t,onThumbPositionChange:()=>{if(i.viewport&&o.current){const p=i.viewport.scrollTop,v=iH(p,s);o.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:p=>{i.viewport&&(i.viewport.scrollTop=p)},onDragScroll:p=>{i.viewport&&(i.viewport.scrollTop=f(p))}}):null}),K6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Uu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarXChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"horizontal",...i,ref:c,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:h4(a.paddingLeft),paddingEnd:h4(a.paddingRight)}})}})}),X6e=m.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...i}=e,o=Qs(Uu,e.__scopeScrollArea),[a,s]=m.useState(),l=m.useRef(null),c=At(t,l,o.onScrollbarYChange);return m.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),u.jsx(eH,{"data-orientation":"vertical",...i,ref:c,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":p4(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(o.viewport){const p=o.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),aH(p,f)&&d.preventDefault()}},onResize:()=>{l.current&&o.viewport&&a&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:h4(a.paddingTop),paddingEnd:h4(a.paddingBottom)}})}})}),[J6e,QV]=qV(Uu),eH=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:a,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:c,onWheelScroll:d,onResize:f,...p}=e,v=Qs(Uu,n),[_,y]=m.useState(null),b=At(t,A=>y(A)),w=m.useRef(null),x=m.useRef(""),S=v.viewport,C=r.content-r.viewport,j=ko(d),T=ko(l),E=m4(f,10);function $(A){if(w.current){const M=A.clientX-w.current.left,P=A.clientY-w.current.top;c({x:M,y:P})}}return m.useEffect(()=>{const A=M=>{const P=M.target;_!=null&&_.contains(P)&&j(M,C)};return document.addEventListener("wheel",A,{passive:!1}),()=>document.removeEventListener("wheel",A,{passive:!1})},[S,_,C,j]),m.useEffect(T,[r,T]),A0(_,E),A0(v.content,E),u.jsx(J6e,{scope:n,scrollbar:_,hasThumb:i,onThumbChange:ko(o),onThumbPointerUp:ko(a),onThumbPositionChange:T,onThumbPointerDown:ko(s),children:u.jsx(yy.div,{...p,ref:b,style:{position:"absolute",...p.style},onPointerDown:Xe(e.onPointerDown,A=>{A.button===0&&(A.target.setPointerCapture(A.pointerId),w.current=_.getBoundingClientRect(),x.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),$(A))}),onPointerMove:Xe(e.onPointerMove,$),onPointerUp:Xe(e.onPointerUp,A=>{const M=A.target;M.hasPointerCapture(A.pointerId)&&M.releasePointerCapture(A.pointerId),document.body.style.webkitUserSelect=x.current,v.viewport&&(v.viewport.style.scrollBehavior=""),w.current=null})})})}),f4="ScrollAreaThumb",tH=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=QV(f4,e.__scopeScrollArea);return u.jsx(Ao,{present:n||i.hasThumb,children:u.jsx(Q6e,{ref:t,...r})})}),Q6e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...i}=e,o=Qs(f4,n),a=QV(f4,n),{onThumbPositionChange:s}=a,l=At(t,f=>a.onThumbChange(f)),c=m.useRef(void 0),d=m4(()=>{c.current&&(c.current(),c.current=void 0)},100);return m.useEffect(()=>{const f=o.viewport;if(f){const p=()=>{if(d(),!c.current){const v=n5e(f,s);c.current=v,s()}};return s(),f.addEventListener("scroll",p),()=>f.removeEventListener("scroll",p)}},[o.viewport,d,s]),u.jsx(yy.div,{"data-state":a.hasThumb?"visible":"hidden",...i,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Xe(e.onPointerDownCapture,f=>{const p=f.target.getBoundingClientRect(),v=f.clientX-p.left,_=f.clientY-p.top;a.onThumbPointerDown({x:v,y:_})}),onPointerUp:Xe(e.onPointerUp,a.onThumbPointerUp)})});tH.displayName=f4;var m7="ScrollAreaCorner",nH=m.forwardRef((e,t)=>{const n=Qs(m7,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?u.jsx(e5e,{...e,ref:t}):null});nH.displayName=m7;var e5e=m.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,i=Qs(m7,n),[o,a]=m.useState(0),[s,l]=m.useState(0),c=!!(o&&s);return A0(i.scrollbarX,()=>{var f;const d=((f=i.scrollbarX)==null?void 0:f.offsetHeight)||0;i.onCornerHeightChange(d),l(d)}),A0(i.scrollbarY,()=>{var f;const d=((f=i.scrollbarY)==null?void 0:f.offsetWidth)||0;i.onCornerWidthChange(d),a(d)}),c?u.jsx(yy.div,{...r,ref:t,style:{width:o,height:s,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function h4(e){return e?parseInt(e,10):0}function rH(e,t){const n=e/t;return isNaN(n)?0:n}function p4(e){const t=rH(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function t5e(e,t,n,r="ltr"){const i=p4(n),o=i/2,a=t||o,s=i-a,l=n.scrollbar.paddingStart+a,c=n.scrollbar.size-n.scrollbar.paddingEnd-s,d=n.content-n.viewport,f=r==="ltr"?[0,d]:[d*-1,0];return oH([l,c],f)(e)}function iH(e,t,n="ltr"){const r=p4(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-i,a=t.content-t.viewport,s=o-r,l=n==="ltr"?[0,a]:[a*-1,0],c=gy(e,l);return oH([0,a],[0,s])(c)}function oH(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function aH(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function i(){const o={left:e.scrollLeft,top:e.scrollTop},a=n.left!==o.left,s=n.top!==o.top;(a||s)&&t(),n=o,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function m4(e,t){const n=ko(e),r=m.useRef(0);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),m.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function A0(e,t){const n=ko(t);xo(()=>{let r=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(r),i.unobserve(e)}}},[e,n])}var sH=GV,lH=KV,g7=XV,v7=tH,r5e=nH,i5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ds=i5e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),o5e=[" ","Enter","ArrowUp","ArrowDown"],a5e=[" ","Enter"],Jh="Select",[g4,v4,s5e]=Mw(Jh),[F0]=Oa(Jh,[s5e,Cf]),y4=Cf(),[l5e,Tf]=F0(Jh),[u5e,c5e]=F0(Jh),uH=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:o,value:a,defaultValue:s,onValueChange:l,dir:c,name:d,autoComplete:f,disabled:p,required:v,form:_}=e,y=y4(t),[b,w]=m.useState(null),[x,S]=m.useState(null),[C,j]=m.useState(!1),T=T0(c),[E,$]=Xs({prop:r,defaultProp:i??!1,onChange:o,caller:Jh}),[A,M]=Xs({prop:a,defaultProp:s,onChange:l,caller:Jh}),P=m.useRef(null),te=b?_||!!b.closest("form"):!0,[Z,O]=m.useState(new Set),J=Array.from(Z).map(D=>D.props.value).join(";");return u.jsx(t4,{...y,children:u.jsxs(l5e,{required:v,scope:t,trigger:b,onTriggerChange:w,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:j,contentId:wo(),value:A,onValueChange:M,open:E,onOpenChange:$,dir:T,triggerPointerDownPosRef:P,disabled:p,children:[u.jsx(g4.Provider,{scope:t,children:u.jsx(u5e,{scope:e.__scopeSelect,onNativeOptionAdd:m.useCallback(D=>{O(Y=>new Set(Y).add(D))},[]),onNativeOptionRemove:m.useCallback(D=>{O(Y=>{const F=new Set(Y);return F.delete(D),F})},[]),children:n})}),te?u.jsxs(MH,{"aria-hidden":!0,required:v,tabIndex:-1,name:d,autoComplete:f,value:A,onChange:D=>M(D.target.value),disabled:p,form:_,children:[A===void 0?u.jsx("option",{value:""}):null,Array.from(Z)]},J):null]})})};uH.displayName=Jh;var cH="SelectTrigger",dH=m.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...i}=e,o=y4(n),a=Tf(cH,n),s=a.disabled||r,l=At(t,a.onTriggerChange),c=v4(n),d=m.useRef("touch"),[f,p,v]=RH(y=>{const b=c().filter(S=>!S.disabled),w=b.find(S=>S.value===a.value),x=OH(b,y,w);x!==void 0&&a.onValueChange(x.value)}),_=y=>{s||(a.onOpenChange(!0),v()),y&&(a.triggerPointerDownPosRef.current={x:Math.round(y.pageX),y:Math.round(y.pageY)})};return u.jsx(ly,{asChild:!0,...o,children:u.jsx(ds.button,{type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":LH(a.value)?"":void 0,...i,ref:l,onClick:Xe(i.onClick,y=>{y.currentTarget.focus(),d.current!=="mouse"&&_(y)}),onPointerDown:Xe(i.onPointerDown,y=>{d.current=y.pointerType;const b=y.target;b.hasPointerCapture(y.pointerId)&&b.releasePointerCapture(y.pointerId),y.button===0&&y.ctrlKey===!1&&y.pointerType==="mouse"&&(_(y),y.preventDefault())}),onKeyDown:Xe(i.onKeyDown,y=>{const b=f.current!=="";!(y.ctrlKey||y.altKey||y.metaKey)&&y.key.length===1&&p(y.key),!(b&&y.key===" ")&&o5e.includes(y.key)&&(_(),y.preventDefault())})})})});dH.displayName=cH;var fH="SelectValue",hH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,children:o,placeholder:a="",...s}=e,l=Tf(fH,n),{onValueNodeHasChildrenChange:c}=l,d=o!==void 0,f=At(t,l.onValueNodeChange);return xo(()=>{c(d)},[c,d]),u.jsx(ds.span,{...s,ref:f,style:{pointerEvents:"none"},children:LH(l.value)?u.jsx(u.Fragment,{children:a}):o})});hH.displayName=fH;var d5e="SelectIcon",pH=m.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...i}=e;return u.jsx(ds.span,{"aria-hidden":!0,...i,ref:t,children:r||"\u25BC"})});pH.displayName=d5e;var f5e="SelectPortal",mH=e=>u.jsx(qh,{asChild:!0,...e});mH.displayName=f5e;var Qh="SelectContent",gH=m.forwardRef((e,t)=>{const n=Tf(Qh,e.__scopeSelect),[r,i]=m.useState();if(xo(()=>{i(new DocumentFragment)},[]),!n.open){const o=r;return o?Kc.createPortal(u.jsx(vH,{scope:e.__scopeSelect,children:u.jsx(g4.Slot,{scope:e.__scopeSelect,children:u.jsx("div",{children:e.children})})}),o):null}return u.jsx(yH,{...e,ref:t})});gH.displayName=Qh;var Bl=10,[vH,If]=F0(Qh),h5e="SelectContentImpl",p5e=gr("SelectContent.RemoveScroll"),yH=m.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:a,side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:_,hideWhenDetached:y,avoidCollisions:b,...w}=e,x=Tf(Qh,n),[S,C]=m.useState(null),[j,T]=m.useState(null),E=At(t,he=>C(he)),[$,A]=m.useState(null),[M,P]=m.useState(null),te=v4(n),[Z,O]=m.useState(!1),J=m.useRef(!1);m.useEffect(()=>{if(S)return Uw(S)},[S]),Rw();const D=m.useCallback(he=>{const[ue,...re]=te().map(pe=>pe.ref.current),[ge]=re.slice(-1),$e=document.activeElement;for(const pe of he)if(pe===$e||(pe==null||pe.scrollIntoView({block:"nearest"}),pe===ue&&j&&(j.scrollTop=0),pe===ge&&j&&(j.scrollTop=j.scrollHeight),pe==null||pe.focus(),document.activeElement!==$e))return},[te,j]),Y=m.useCallback(()=>D([$,S]),[D,$,S]);m.useEffect(()=>{Z&&Y()},[Z,Y]);const{onOpenChange:F,triggerPointerDownPosRef:H}=x;m.useEffect(()=>{if(S){let he={x:0,y:0};const ue=ge=>{var $e,pe;he={x:Math.abs(Math.round(ge.pageX)-((($e=H.current)==null?void 0:$e.x)??0)),y:Math.abs(Math.round(ge.pageY)-(((pe=H.current)==null?void 0:pe.y)??0))}},re=ge=>{he.x<=10&&he.y<=10?ge.preventDefault():S.contains(ge.target)||F(!1),document.removeEventListener("pointermove",ue),H.current=null};return H.current!==null&&(document.addEventListener("pointermove",ue),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ue),document.removeEventListener("pointerup",re,{capture:!0})}}},[S,F,H]),m.useEffect(()=>{const he=()=>F(!1);return window.addEventListener("blur",he),window.addEventListener("resize",he),()=>{window.removeEventListener("blur",he),window.removeEventListener("resize",he)}},[F]);const[ee,ce]=RH(he=>{const ue=te().filter($e=>!$e.disabled),re=ue.find($e=>$e.ref.current===document.activeElement),ge=OH(ue,he,re);ge&&setTimeout(()=>ge.ref.current.focus())}),U=m.useCallback((he,ue,re)=>{const ge=!J.current&&!re;(x.value!==void 0&&x.value===ue||ge)&&(A(he),ge&&(J.current=!0))},[x.value]),ae=m.useCallback(()=>S==null?void 0:S.focus(),[S]),je=m.useCallback((he,ue,re)=>{const ge=!J.current&&!re;(x.value!==void 0&&x.value===ue||ge)&&P(he)},[x.value]),me=r==="popper"?y7:bH,ke=me===y7?{side:s,sideOffset:l,align:c,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:v,sticky:_,hideWhenDetached:y,avoidCollisions:b}:{};return u.jsx(vH,{scope:n,content:S,viewport:j,onViewportChange:T,itemRefCallback:U,selectedItem:$,onItemLeave:ae,itemTextRefCallback:je,focusSelectedItem:Y,selectedItemText:M,position:r,isPositioned:Z,searchRef:ee,children:u.jsx(iy,{as:p5e,allowPinchZoom:!0,children:u.jsx(ny,{asChild:!0,trapped:x.open,onMountAutoFocus:he=>{he.preventDefault()},onUnmountAutoFocus:Xe(i,he=>{var ue;(ue=x.trigger)==null||ue.focus({preventScroll:!0}),he.preventDefault()}),children:u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:he=>he.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(me,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed",dir:x.dir,onContextMenu:he=>he.preventDefault(),...w,...ke,onPlaced:()=>O(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:Xe(w.onKeyDown,he=>{const ue=he.ctrlKey||he.altKey||he.metaKey;if(he.key==="Tab"&&he.preventDefault(),!ue&&he.key.length===1&&ce(he.key),["ArrowUp","ArrowDown","Home","End"].includes(he.key)){let re=te().filter(ge=>!ge.disabled).map(ge=>ge.ref.current);if(["ArrowUp","End"].includes(he.key)&&(re=re.slice().reverse()),["ArrowUp","ArrowDown"].includes(he.key)){const ge=he.target,$e=re.indexOf(ge);re=re.slice($e+1)}setTimeout(()=>D(re)),he.preventDefault()}})})})})})})});yH.displayName=h5e;var m5e="SelectItemAlignedPosition",bH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...i}=e,o=Tf(Qh,n),a=If(Qh,n),[s,l]=m.useState(null),[c,d]=m.useState(null),f=At(t,E=>d(E)),p=v4(n),v=m.useRef(!1),_=m.useRef(!0),{viewport:y,selectedItem:b,selectedItemText:w,focusSelectedItem:x}=a,S=m.useCallback(()=>{if(o.trigger&&o.valueNode&&s&&c&&y&&b&&w){const E=o.trigger.getBoundingClientRect(),$=c.getBoundingClientRect(),A=o.valueNode.getBoundingClientRect(),M=w.getBoundingClientRect();if(o.dir!=="rtl"){const ge=M.left-$.left,$e=A.left-ge,pe=E.left-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Bl,Be=gy($e,[Bl,Math.max(Bl,Ce-Se)]);s.style.minWidth=ye+"px",s.style.left=Be+"px"}else{const ge=$.right-M.right,$e=window.innerWidth-A.right-ge,pe=window.innerWidth-E.right-$e,ye=E.width+pe,Se=Math.max(ye,$.width),Ce=window.innerWidth-Bl,Be=gy($e,[Bl,Math.max(Bl,Ce-Se)]);s.style.minWidth=ye+"px",s.style.right=Be+"px"}const P=p(),te=window.innerHeight-Bl*2,Z=y.scrollHeight,O=window.getComputedStyle(c),J=parseInt(O.borderTopWidth,10),D=parseInt(O.paddingTop,10),Y=parseInt(O.borderBottomWidth,10),F=parseInt(O.paddingBottom,10),H=J+D+Z+F+Y,ee=Math.min(b.offsetHeight*5,H),ce=window.getComputedStyle(y),U=parseInt(ce.paddingTop,10),ae=parseInt(ce.paddingBottom,10),je=E.top+E.height/2-Bl,me=te-je,ke=b.offsetHeight/2,he=b.offsetTop+ke,ue=J+D+he,re=H-ue;if(ue<=je){const ge=P.length>0&&b===P[P.length-1].ref.current;s.style.bottom="0px";const $e=c.clientHeight-y.offsetTop-y.offsetHeight,pe=Math.max(me,ke+(ge?ae:0)+$e+Y),ye=ue+pe;s.style.height=ye+"px"}else{const ge=P.length>0&&b===P[0].ref.current;s.style.top="0px";const $e=Math.max(je,J+y.offsetTop+(ge?U:0)+ke)+re;s.style.height=$e+"px",y.scrollTop=ue-je+y.offsetTop}s.style.margin=`${Bl}px 0`,s.style.minHeight=ee+"px",s.style.maxHeight=te+"px",r==null||r(),requestAnimationFrame(()=>v.current=!0)}},[p,o.trigger,o.valueNode,s,c,y,b,w,o.dir,r]);xo(()=>S(),[S]);const[C,j]=m.useState();xo(()=>{c&&j(window.getComputedStyle(c).zIndex)},[c]);const T=m.useCallback(E=>{E&&_.current===!0&&(S(),x==null||x(),_.current=!1)},[S,x]);return u.jsx(v5e,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:v,onScrollButtonChange:T,children:u.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:C},children:u.jsx(ds.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});bH.displayName=m5e;var g5e="SelectPopperPosition",y7=m.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:i=Bl,...o}=e,a=y4(n);return u.jsx(n4,{...a,...o,ref:t,align:r,collisionPadding:i,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});y7.displayName=g5e;var[v5e,b7]=F0(Qh,{}),_7="SelectViewport",_H=m.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...i}=e,o=If(_7,n),a=b7(_7,n),s=At(t,o.onViewportChange),l=m.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),u.jsx(g4.Slot,{scope:n,children:u.jsx(ds.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Xe(i.onScroll,c=>{const d=c.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:p}=a;if(p!=null&&p.current&&f){const v=Math.abs(l.current-d.scrollTop);if(v>0){const _=window.innerHeight-Bl*2,y=parseFloat(f.style.minHeight),b=parseFloat(f.style.height),w=Math.max(y,b);if(w<_){const x=w+v,S=Math.min(_,x),C=x-S;f.style.height=S+"px",f.style.bottom==="0px"&&(d.scrollTop=C>0?C:0,f.style.justifyContent="flex-end")}}}l.current=d.scrollTop})})})]})});_H.displayName=_7;var xH="SelectGroup",[y5e,b5e]=F0(xH),wH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=wo();return u.jsx(y5e,{scope:n,id:i,children:u.jsx(ds.div,{role:"group","aria-labelledby":i,...r,ref:t})})});wH.displayName=xH;var kH="SelectLabel",SH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=b5e(kH,n);return u.jsx(ds.div,{id:i.id,...r,ref:t})});SH.displayName=kH;var b4="SelectItem",[_5e,CH]=F0(b4),jH=m.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:i=!1,textValue:o,...a}=e,s=Tf(b4,n),l=If(b4,n),c=s.value===r,[d,f]=m.useState(o??""),[p,v]=m.useState(!1),_=At(t,x=>{var S;return(S=l.itemRefCallback)==null?void 0:S.call(l,x,r,i)}),y=wo(),b=m.useRef("touch"),w=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return u.jsx(_5e,{scope:n,value:r,disabled:i,textId:y,isSelected:c,onItemTextChange:m.useCallback(x=>{f(S=>S||((x==null?void 0:x.textContent)??"").trim())},[]),children:u.jsx(g4.ItemSlot,{scope:n,value:r,disabled:i,textValue:d,children:u.jsx(ds.div,{role:"option","aria-labelledby":y,"data-highlighted":p?"":void 0,"aria-selected":c&&p,"data-state":c?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...a,ref:_,onFocus:Xe(a.onFocus,()=>v(!0)),onBlur:Xe(a.onBlur,()=>v(!1)),onClick:Xe(a.onClick,()=>{b.current!=="mouse"&&w()}),onPointerUp:Xe(a.onPointerUp,()=>{b.current==="mouse"&&w()}),onPointerDown:Xe(a.onPointerDown,x=>{b.current=x.pointerType}),onPointerMove:Xe(a.onPointerMove,x=>{var S;b.current=x.pointerType,i?(S=l.onItemLeave)==null||S.call(l):b.current==="mouse"&&x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Xe(a.onPointerLeave,x=>{var S;x.currentTarget===document.activeElement&&((S=l.onItemLeave)==null||S.call(l))}),onKeyDown:Xe(a.onKeyDown,x=>{var S;((S=l.searchRef)==null?void 0:S.current)!==""&&x.key===" "||(a5e.includes(x.key)&&w(),x.key===" "&&x.preventDefault())})})})})});jH.displayName=b4;var by="SelectItemText",TH=m.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:i,...o}=e,a=Tf(by,n),s=If(by,n),l=CH(by,n),c=c5e(by,n),[d,f]=m.useState(null),p=At(t,w=>f(w),l.onItemTextChange,w=>{var x;return(x=s.itemTextRefCallback)==null?void 0:x.call(s,w,l.value,l.disabled)}),v=d==null?void 0:d.textContent,_=m.useMemo(()=>u.jsx("option",{value:l.value,disabled:l.disabled,children:v},l.value),[l.disabled,l.value,v]),{onNativeOptionAdd:y,onNativeOptionRemove:b}=c;return xo(()=>(y(_),()=>b(_)),[y,b,_]),u.jsxs(u.Fragment,{children:[u.jsx(ds.span,{id:l.textId,...o,ref:p}),l.isSelected&&a.valueNode&&!a.valueNodeHasChildren?Kc.createPortal(o.children,a.valueNode):null]})});TH.displayName=by;var IH="SelectItemIndicator",EH=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return CH(IH,n).isSelected?u.jsx(ds.span,{"aria-hidden":!0,...r,ref:t}):null});EH.displayName=IH;var x7="SelectScrollUpButton",x5e=m.forwardRef((e,t)=>{const n=If(x7,e.__scopeSelect),r=b7(x7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return xo(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollTop>0;o(c)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});x5e.displayName=x7;var w7="SelectScrollDownButton",w5e=m.forwardRef((e,t)=>{const n=If(w7,e.__scopeSelect),r=b7(w7,e.__scopeSelect),[i,o]=m.useState(!1),a=At(t,r.onScrollButtonChange);return xo(()=>{if(n.viewport&&n.isPositioned){let s=function(){const c=l.scrollHeight-l.clientHeight,d=Math.ceil(l.scrollTop)l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),i?u.jsx(NH,{...e,ref:a,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});w5e.displayName=w7;var NH=m.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...i}=e,o=If("SelectScrollButton",n),a=m.useRef(null),s=v4(n),l=m.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return m.useEffect(()=>()=>l(),[l]),xo(()=>{var c,d;(d=(c=s().find(f=>f.ref.current===document.activeElement))==null?void 0:c.ref.current)==null||d.scrollIntoView({block:"nearest"})},[s]),u.jsx(ds.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:Xe(i.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(r,50))}),onPointerMove:Xe(i.onPointerMove,()=>{var c;(c=o.onItemLeave)==null||c.call(o),a.current===null&&(a.current=window.setInterval(r,50))}),onPointerLeave:Xe(i.onPointerLeave,()=>{l()})})}),k5e="SelectSeparator",$H=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return u.jsx(ds.div,{"aria-hidden":!0,...r,ref:t})});$H.displayName=k5e;var k7="SelectArrow",S5e=m.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,i=y4(n),o=Tf(k7,n),a=If(k7,n);return o.open&&a.position==="popper"?u.jsx(r4,{...i,...r,ref:t}):null});S5e.displayName=k7;var C5e="SelectBubbleInput",MH=m.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(r,i),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("change",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(ds.select,{...n,style:{...GB,...n.style},ref:o,defaultValue:t})});MH.displayName=C5e;function LH(e){return e===""||e===void 0}function RH(e){const t=ko(e),n=m.useRef(""),r=m.useRef(0),i=m.useCallback(a=>{const s=n.current+a;t(s),function l(c){n.current=c,window.clearTimeout(r.current),c!==""&&(r.current=window.setTimeout(()=>l(""),1e3))}(s)},[t]),o=m.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,o]}function OH(e,t,n){const r=t.length>1&&Array.from(t).every(s=>s===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let o=j5e(e,Math.max(i,0));r.length===1&&(o=o.filter(s=>s!==n));const a=o.find(s=>s.textValue.toLowerCase().startsWith(r.toLowerCase()));return a!==n?a:void 0}function j5e(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var T5e=uH,I5e=dH,E5e=hH,N5e=pH,$5e=mH,M5e=gH,L5e=_H,R5e=wH,O5e=SH,P5e=jH,z5e=TH,D5e=EH,A5e=$H,F5e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_y=F5e.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),PH=["PageUp","PageDown"],zH=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],DH={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},B0="Slider",[S7,B5e,U5e]=Mw(B0),[AH]=Oa(B0,[U5e]),[W5e,_4]=AH(B0),FH=m.forwardRef((e,t)=>{const{name:n,min:r=0,max:i=100,step:o=1,orientation:a="horizontal",disabled:s=!1,minStepsBetweenThumbs:l=0,defaultValue:c=[r],value:d,onValueChange:f=()=>{},onValueCommit:p=()=>{},inverted:v=!1,form:_,...y}=e,b=m.useRef(new Set),w=m.useRef(0),x=a==="horizontal"?V5e:H5e,[S=[],C]=Xs({prop:d,defaultProp:c,onChange:M=>{var P;(P=[...b.current][w.current])==null||P.focus(),f(M)}}),j=m.useRef(S);function T(M){const P=K5e(S,M);A(M,P)}function E(M){A(M,w.current)}function $(){const M=j.current[w.current];S[w.current]!==M&&p(S)}function A(M,P,{commit:te}={commit:!1}){const Z=eSe(o),O=tSe(Math.round((M-r)/o)*o+r,Z),J=gy(O,[r,i]);C((D=[])=>{const Y=G5e(D,J,P);if(Q5e(Y,l*o)){w.current=Y.indexOf(J);const F=String(Y)!==String(D);return F&&te&&p(Y),F?Y:D}else return D})}return u.jsx(W5e,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:w,thumbs:b.current,values:S,orientation:a,form:_,children:u.jsx(S7.Provider,{scope:e.__scopeSlider,children:u.jsx(S7.Slot,{scope:e.__scopeSlider,children:u.jsx(x,{"aria-disabled":s,"data-disabled":s?"":void 0,...y,ref:t,onPointerDown:Xe(y.onPointerDown,()=>{s||(j.current=S)}),min:r,max:i,inverted:v,onSlideStart:s?void 0:T,onSlideMove:s?void 0:E,onSlideEnd:s?void 0:$,onHomeKeyDown:()=>!s&&A(r,0,{commit:!0}),onEndKeyDown:()=>!s&&A(i,S.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:P})=>{if(!s){const te=PH.includes(M.key)||M.shiftKey&&zH.includes(M.key)?10:1,Z=w.current,O=S[Z],J=o*te*P;A(O+J,Z,{commit:!0})}}})})})})});FH.displayName=B0;var[BH,UH]=AH(B0,{startEdge:"left",endEdge:"right",size:"width",direction:1}),V5e=m.forwardRef((e,t)=>{const{min:n,max:r,dir:i,inverted:o,onSlideStart:a,onSlideMove:s,onSlideEnd:l,onStepKeyDown:c,...d}=e,[f,p]=m.useState(null),v=At(t,S=>p(S)),_=m.useRef(void 0),y=T0(i),b=y==="ltr",w=b&&!o||!b&&o;function x(S){const C=_.current||f.getBoundingClientRect(),j=[0,C.width],T=T7(j,w?[n,r]:[r,n]);return _.current=C,T(S-C.left)}return u.jsx(BH,{scope:e.__scopeSlider,startEdge:w?"left":"right",endEdge:w?"right":"left",direction:w?1:-1,size:"width",children:u.jsx(WH,{dir:y,"data-orientation":"horizontal",...d,ref:v,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:S=>{const C=x(S.clientX);a==null||a(C)},onSlideMove:S=>{const C=x(S.clientX);s==null||s(C)},onSlideEnd:()=>{_.current=void 0,l==null||l()},onStepKeyDown:S=>{const C=DH[w?"from-left":"from-right"].includes(S.key);c==null||c({event:S,direction:C?-1:1})}})})}),H5e=m.forwardRef((e,t)=>{const{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:a,onSlideEnd:s,onStepKeyDown:l,...c}=e,d=m.useRef(null),f=At(t,d),p=m.useRef(void 0),v=!i;function _(y){const b=p.current||d.current.getBoundingClientRect(),w=[0,b.height],x=T7(w,v?[r,n]:[n,r]);return p.current=b,x(y-b.top)}return u.jsx(BH,{scope:e.__scopeSlider,startEdge:v?"bottom":"top",endEdge:v?"top":"bottom",size:"height",direction:v?1:-1,children:u.jsx(WH,{"data-orientation":"vertical",...c,ref:f,style:{...c.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:y=>{const b=_(y.clientY);o==null||o(b)},onSlideMove:y=>{const b=_(y.clientY);a==null||a(b)},onSlideEnd:()=>{p.current=void 0,s==null||s()},onStepKeyDown:y=>{const b=DH[v?"from-bottom":"from-top"].includes(y.key);l==null||l({event:y,direction:b?-1:1})}})})}),WH=m.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:a,onEndKeyDown:s,onStepKeyDown:l,...c}=e,d=_4(B0,n);return u.jsx(_y.span,{...c,ref:t,onKeyDown:Xe(e.onKeyDown,f=>{f.key==="Home"?(a(f),f.preventDefault()):f.key==="End"?(s(f),f.preventDefault()):PH.concat(zH).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Xe(e.onPointerDown,f=>{const p=f.target;p.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(p)?p.focus():r(f)}),onPointerMove:Xe(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&i(f)}),onPointerUp:Xe(e.onPointerUp,f=>{const p=f.target;p.hasPointerCapture(f.pointerId)&&(p.releasePointerCapture(f.pointerId),o(f))})})}),VH="SliderTrack",HH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=_4(VH,n);return u.jsx(_y.span,{"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation,...r,ref:t})});HH.displayName=VH;var C7="SliderRange",ZH=m.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,i=_4(C7,n),o=UH(C7,n),a=m.useRef(null),s=At(t,a),l=i.values.length,c=i.values.map(p=>YH(p,i.min,i.max)),d=l>1?Math.min(...c):0,f=100-Math.max(...c);return u.jsx(_y.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...r,ref:s,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});ZH.displayName=C7;var j7="SliderThumb",qH=m.forwardRef((e,t)=>{const n=B5e(e.__scopeSlider),[r,i]=m.useState(null),o=At(t,s=>i(s)),a=m.useMemo(()=>r?n().findIndex(s=>s.ref.current===r):-1,[n,r]);return u.jsx(Z5e,{...e,ref:o,index:a})}),Z5e=m.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:i,...o}=e,a=_4(j7,n),s=UH(j7,n),[l,c]=m.useState(null),d=At(t,x=>c(x)),f=l?a.form||!!l.closest("form"):!0,p=P9(l),v=a.values[r],_=v===void 0?0:YH(v,a.min,a.max),y=Y5e(r,a.values.length),b=p==null?void 0:p[s.size],w=b?X5e(b,_,s.direction):0;return m.useEffect(()=>{if(l)return a.thumbs.add(l),()=>{a.thumbs.delete(l)}},[l,a.thumbs]),u.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${_}% + ${w}px)`},children:[u.jsx(S7.ItemSlot,{scope:e.__scopeSlider,children:u.jsx(_y.span,{role:"slider","aria-label":e["aria-label"]||y,"aria-valuemin":a.min,"aria-valuenow":v,"aria-valuemax":a.max,"aria-orientation":a.orientation,"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,tabIndex:a.disabled?void 0:0,...o,ref:d,style:v===void 0?{display:"none"}:e.style,onFocus:Xe(e.onFocus,()=>{a.valueIndexToChangeRef.current=r})})}),f&&u.jsx(GH,{name:i??(a.name?a.name+(a.values.length>1?"[]":""):void 0),form:a.form,value:v},r)]})});qH.displayName=j7;var q5e="RadioBubbleInput",GH=m.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const i=m.useRef(null),o=At(i,r),a=O9(t);return m.useEffect(()=>{const s=i.current;if(!s)return;const l=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(l,"value").set;if(a!==t&&c){const d=new Event("input",{bubbles:!0});c.call(s,t),s.dispatchEvent(d)}},[a,t]),u.jsx(_y.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});GH.displayName=q5e;function G5e(e=[],t,n){const r=[...e];return r[n]=t,r.sort((i,o)=>i-o)}function YH(e,t,n){const r=100/(n-t)*(e-t);return gy(r,[0,100])}function Y5e(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function K5e(e,t){if(e.length===1)return 0;const n=e.map(i=>Math.abs(i-t)),r=Math.min(...n);return n.indexOf(r)}function X5e(e,t,n){const r=e/2,i=T7([0,50],[0,r]);return(r-i(t)*n)*n}function J5e(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Q5e(e,t){if(t>0){const n=J5e(e);return Math.min(...n)>=t}return!0}function T7(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function eSe(e){return(String(e).split(".")[1]||"").length}function tSe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var KH=FH,XH=HH,nSe=ZH,JH=qH,rSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],QH=rSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),x4="Switch",[iSe]=Oa(x4),[oSe,aSe]=iSe(x4),eZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:i,defaultChecked:o,required:a,disabled:s,value:l="on",onCheckedChange:c,form:d,...f}=e,[p,v]=m.useState(null),_=At(t,S=>v(S)),y=m.useRef(!1),b=p?d||!!p.closest("form"):!0,[w,x]=Xs({prop:i,defaultProp:o??!1,onChange:c,caller:x4});return u.jsxs(oSe,{scope:n,checked:w,disabled:s,children:[u.jsx(QH.button,{type:"button",role:"switch","aria-checked":w,"aria-required":a,"data-state":iZ(w),"data-disabled":s?"":void 0,disabled:s,value:l,...f,ref:_,onClick:Xe(e.onClick,S=>{x(C=>!C),b&&(y.current=S.isPropagationStopped(),y.current||S.stopPropagation())})}),b&&u.jsx(rZ,{control:p,bubbles:!y.current,name:r,value:l,checked:w,required:a,disabled:s,form:d,style:{transform:"translateX(-100%)"}})]})});eZ.displayName=x4;var tZ="SwitchThumb",nZ=m.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,i=aSe(tZ,n);return u.jsx(QH.span,{"data-state":iZ(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t})});nZ.displayName=tZ;var sSe="SwitchBubbleInput",rZ=m.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},o)=>{const a=m.useRef(null),s=At(a,o),l=O9(n),c=P9(t);return m.useEffect(()=>{const d=a.current;if(!d)return;const f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(l!==n&&p){const v=new Event("click",{bubbles:r});p.call(d,n),d.dispatchEvent(v)}},[l,n,r]),u.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});rZ.displayName=sSe;function iZ(e){return e?"checked":"unchecked"}var lSe=eZ,uSe=nZ,cSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],dSe=cSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),oZ="Toggle",I7=m.forwardRef((e,t)=>{const{pressed:n,defaultPressed:r,onPressedChange:i,...o}=e,[a,s]=Xs({prop:n,onChange:i,defaultProp:r??!1,caller:oZ});return u.jsx(dSe.button,{type:"button","aria-pressed":a,"data-state":a?"on":"off","data-disabled":e.disabled?"":void 0,...o,ref:t,onClick:Xe(e.onClick,()=>{e.disabled||s(!a)})})});I7.displayName=oZ;var E7=I7,fSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],aZ=fSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Ef="ToggleGroup",[sZ]=Oa(Ef,[i4]),lZ=i4(),N7=Oe.forwardRef((e,t)=>{const{type:n,...r}=e;if(n==="single"){const i=r;return u.jsx(hSe,{...i,ref:t})}if(n==="multiple"){const i=r;return u.jsx(pSe,{...i,ref:t})}throw new Error(`Missing prop \`type\` expected on \`${Ef}\``)});N7.displayName=Ef;var[uZ,cZ]=sZ(Ef),hSe=Oe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??"",onChange:i,caller:Ef});return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"single",value:Oe.useMemo(()=>a?[a]:[],[a]),onItemActivate:s,onItemDeactivate:Oe.useCallback(()=>s(""),[s]),children:u.jsx(dZ,{...o,ref:t})})}),pSe=Oe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[a,s]=Xs({prop:n,defaultProp:r??[],onChange:i,caller:Ef}),l=Oe.useCallback(d=>s((f=[])=>[...f,d]),[s]),c=Oe.useCallback(d=>s((f=[])=>f.filter(p=>p!==d)),[s]);return u.jsx(uZ,{scope:e.__scopeToggleGroup,type:"multiple",value:a,onItemActivate:l,onItemDeactivate:c,children:u.jsx(dZ,{...o,ref:t})})});N7.displayName=Ef;var[mSe,gSe]=sZ(Ef),dZ=Oe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:o,dir:a,loop:s=!0,...l}=e,c=lZ(n),d=T0(a),f={role:"group",dir:d,...l};return u.jsx(mSe,{scope:n,rovingFocus:i,disabled:r,children:i?u.jsx(NW,{asChild:!0,...c,orientation:o,dir:d,loop:s,children:u.jsx(aZ.div,{...f,ref:t})}):u.jsx(aZ.div,{...f,ref:t})})}),w4="ToggleGroupItem",fZ=Oe.forwardRef((e,t)=>{const n=cZ(w4,e.__scopeToggleGroup),r=gSe(w4,e.__scopeToggleGroup),i=lZ(e.__scopeToggleGroup),o=n.value.includes(e.value),a=r.disabled||e.disabled,s={...e,pressed:o,disabled:a},l=Oe.useRef(null);return r.rovingFocus?u.jsx($W,{asChild:!0,...i,focusable:!a,active:o,ref:l,children:u.jsx(hZ,{...s,ref:t})}):u.jsx(hZ,{...s,ref:t})});fZ.displayName=w4;var hZ=Oe.forwardRef((e,t)=>{const{__scopeToggleGroup:n,value:r,...i}=e,o=cZ(w4,n),a={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s=o.type==="single"?a:void 0;return u.jsx(I7,{...s,...i,ref:t,onPressedChange:l=>{l?o.onItemActivate(r):o.onItemDeactivate(r)}})}),$7=N7,U0=fZ,vSe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ySe=vSe.reduce((e,t)=>{const n=gr(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),[k4]=Oa("Tooltip",[Cf]),S4=Cf(),pZ="TooltipProvider",bSe=700,M7="tooltip.open",[_Se,L7]=k4(pZ),mZ=e=>{const{__scopeTooltip:t,delayDuration:n=bSe,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:o}=e,a=m.useRef(!0),s=m.useRef(!1),l=m.useRef(0);return m.useEffect(()=>{const c=l.current;return()=>window.clearTimeout(c)},[]),u.jsx(_Se,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(l.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:m.useCallback(c=>{s.current=c},[]),disableHoverableContent:i,children:o})};mZ.displayName=pZ;var xy="Tooltip",[xSe,wy]=k4(xy),gZ=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:o,disableHoverableContent:a,delayDuration:s}=e,l=L7(xy,e.__scopeTooltip),c=S4(t),[d,f]=m.useState(null),p=wo(),v=m.useRef(0),_=a??l.disableHoverableContent,y=s??l.delayDuration,b=m.useRef(!1),[w,x]=Xs({prop:r,defaultProp:i??!1,onChange:E=>{E?(l.onOpen(),document.dispatchEvent(new CustomEvent(M7))):l.onClose(),o==null||o(E)},caller:xy}),S=m.useMemo(()=>w?b.current?"delayed-open":"instant-open":"closed",[w]),C=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,b.current=!1,x(!0)},[x]),j=m.useCallback(()=>{window.clearTimeout(v.current),v.current=0,x(!1)},[x]),T=m.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{b.current=!0,x(!0),v.current=0},y)},[y,x]);return m.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),u.jsx(t4,{...c,children:u.jsx(xSe,{scope:t,contentId:p,open:w,stateAttribute:S,trigger:d,onTriggerChange:f,onTriggerEnter:m.useCallback(()=>{l.isOpenDelayedRef.current?T():C()},[l.isOpenDelayedRef,T,C]),onTriggerLeave:m.useCallback(()=>{_?j():(window.clearTimeout(v.current),v.current=0)},[j,_]),onOpen:C,onClose:j,disableHoverableContent:_,children:n})})};gZ.displayName=xy;var R7="TooltipTrigger",vZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=wy(R7,n),o=L7(R7,n),a=S4(n),s=m.useRef(null),l=At(t,s,i.onTriggerChange),c=m.useRef(!1),d=m.useRef(!1),f=m.useCallback(()=>c.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),u.jsx(ly,{asChild:!0,...a,children:u.jsx(ySe.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:l,onPointerMove:Xe(e.onPointerMove,p=>{p.pointerType!=="touch"&&!d.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),d.current=!0)}),onPointerLeave:Xe(e.onPointerLeave,()=>{i.onTriggerLeave(),d.current=!1}),onPointerDown:Xe(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:Xe(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:Xe(e.onBlur,i.onClose),onClick:Xe(e.onClick,i.onClose)})})});vZ.displayName=R7;var O7="TooltipPortal",[wSe,kSe]=k4(O7,{forceMount:void 0}),yZ=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,o=wy(O7,t);return u.jsx(wSe,{scope:t,forceMount:n,children:u.jsx(Ao,{present:n||o.open,children:u.jsx(qh,{asChild:!0,container:i,children:r})})})};yZ.displayName=O7;var W0="TooltipContent",bZ=m.forwardRef((e,t)=>{const n=kSe(W0,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...o}=e,a=wy(W0,e.__scopeTooltip);return u.jsx(Ao,{present:r||a.open,children:a.disableHoverableContent?u.jsx(_Z,{side:i,...o,ref:t}):u.jsx(SSe,{side:i,...o,ref:t})})}),SSe=m.forwardRef((e,t)=>{const n=wy(W0,e.__scopeTooltip),r=L7(W0,e.__scopeTooltip),i=m.useRef(null),o=At(t,i),[a,s]=m.useState(null),{trigger:l,onClose:c}=n,d=i.current,{onPointerInTransitChange:f}=r,p=m.useCallback(()=>{s(null),f(!1)},[f]),v=m.useCallback((_,y)=>{const b=_.currentTarget,w={x:_.clientX,y:_.clientY},x=ISe(w,b.getBoundingClientRect()),S=ESe(w,x),C=NSe(y.getBoundingClientRect()),j=MSe([...S,...C]);s(j),f(!0)},[f]);return m.useEffect(()=>()=>p(),[p]),m.useEffect(()=>{if(l&&d){const _=b=>v(b,d),y=b=>v(b,l);return l.addEventListener("pointerleave",_),d.addEventListener("pointerleave",y),()=>{l.removeEventListener("pointerleave",_),d.removeEventListener("pointerleave",y)}}},[l,d,v,p]),m.useEffect(()=>{if(a){const _=y=>{const b=y.target,w={x:y.clientX,y:y.clientY},x=(l==null?void 0:l.contains(b))||(d==null?void 0:d.contains(b)),S=!$Se(w,a);x?p():S&&(p(),c())};return document.addEventListener("pointermove",_),()=>document.removeEventListener("pointermove",_)}},[l,d,a,c,p]),u.jsx(_Z,{...e,ref:o})}),[CSe,jSe]=k4(xy,{isInside:!1}),TSe=qB("TooltipContent"),_Z=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:a,...s}=e,l=wy(W0,n),c=S4(n),{onClose:d}=l;return m.useEffect(()=>(document.addEventListener(M7,d),()=>document.removeEventListener(M7,d)),[d]),m.useEffect(()=>{if(l.trigger){const f=p=>{var v;(v=p.target)!=null&&v.contains(l.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[l.trigger,d]),u.jsx(I0,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:u.jsxs(n4,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(TSe,{children:r}),u.jsx(CSe,{scope:n,isInside:!0,children:u.jsx(KB,{id:l.contentId,role:"tooltip",children:i||r})})]})})});bZ.displayName=W0;var xZ="TooltipArrow",wZ=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=S4(n);return jSe(xZ,n).isInside?null:u.jsx(r4,{...i,...r,ref:t})});wZ.displayName=xZ;function ISe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,i,o)){case o:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ESe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NSe(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function $Se(e,t){const{x:n,y:r}=e;let i=!1;for(let o=0,a=t.length-1;or!=p>r&&n<(f-c)*(r-d)/(p-d)+c&&(i=!i)}return i}function MSe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),LSe(t)}function LSe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],a=t[t.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const o=n[n.length-1],a=n[n.length-2];if((o.x-a.x)*(i.y-a.y)>=(o.y-a.y)*(i.x-a.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var RSe=mZ,OSe=gZ,PSe=vZ,zSe=yZ,DSe=bZ,ASe=wZ,kZ={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var o="",a=0;aP7.includes(t))}function $f({className:e,customProperties:t,...n}){const r=Sy({allowArbitraryValues:!0,className:e,...n}),i=XSe({customProperties:t,...n});return[r,i]}function Sy({allowArbitraryValues:e,value:t,className:n,propValues:r,parseValue:i=o=>o}){const o=[];if(t){if(typeof t=="string"&&r.includes(t))return $Z(n,t,i);if(ky(t)){const a=t;for(const s in a){if(!NZ(a,s)||!P7.includes(s))continue;const l=a[s];if(l!==void 0){if(r.includes(l)){const c=$Z(n,l,i),d=s==="initial"?c:`${s}:${c}`;o.push(d)}else if(e){const c=s==="initial"?n:`${s}:${n}`;o.push(c)}}}return o.join(" ")}if(e)return n}}function $Z(e,t,n){const r=e?"-":"",i=n(t),o=i==null?void 0:i.startsWith("-"),a=o?"-":"",s=o?i==null?void 0:i.substring(1):i;return`${a}${e}${r}${s}`}function XSe({customProperties:e,value:t,propValues:n,parseValue:r=i=>i}){let i={};if(!(!t||typeof t=="string"&&n.includes(t))){if(typeof t=="string"&&(i=Object.fromEntries(e.map(o=>[o,t]))),ky(t)){const o=t;for(const a in o){if(!NZ(o,a)||!P7.includes(a))continue;const s=o[a];if(!n.includes(s))for(const l of e)i={[a==="initial"?l:`${l}-${a}`]:s,...i}}}for(const o in i){const a=i[o];a!==void 0&&(i[o]=r(a))}return i}}function Cy(...e){let t={};for(const n of e)n&&(t={...t,...n});return Object.keys(t).length?t:void 0}function JSe(...e){return Object.assign({},...e)}function er(e,...t){let n,r;const i={...e},o=JSe(...t);for(const a in o){let s=i[a];const l=o[a];if(l.default!==void 0&&s===void 0&&(s=l.default),l.type==="enum"&&![l.default,...l.values].includes(s)&&!ky(s)&&(s=l.default),i[a]=s,"className"in l&&l.className){delete i[a];const c="responsive"in l;if(!s||ky(s)&&!c)continue;if(ky(s)&&(l.default!==void 0&&s.initial===void 0&&(s.initial=l.default),l.type==="enum"&&([l.default,...l.values].includes(s.initial)||(s.initial=l.default))),l.type==="enum"){const d=Sy({allowArbitraryValues:!1,value:s,className:l.className,propValues:l.values,parseValue:l.parseValue});n=gt(n,d);continue}if(l.type==="string"||l.type==="enum | string"){const d=l.type==="string"?[]:l.values,[f,p]=$f({className:l.className,customProperties:l.customProperties,propValues:d,parseValue:l.parseValue,value:s});r=Cy(r,p),n=gt(n,f);continue}if(l.type==="boolean"&&s){n=gt(n,l.className);continue}}}return i.className=gt(n,e.className),i.style=Cy(r,e.style),i}const ep=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],So={m:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:ep,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}},MZ=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="h1",color:a,...s}=er(e,KSe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Heading",r)},i?n:m.createElement(o,null,n))});MZ.displayName="Heading";const QSe=["span","div","label","p"],eCe=["1","2","3","4","5","6","7","8","9"],tCe={as:{type:"enum",values:QSe,default:"span"},...el,size:{type:"enum",className:"rt-r-size",values:eCe,responsive:!0},...EZ,...jZ,...CZ,...IZ,...TZ,...Pa,...Nf},q=m.forwardRef((e,t)=>{const{children:n,className:r,asChild:i,as:o="span",color:a,...s}=er(e,tCe,So);return m.createElement(xf,{"data-accent-color":a,...s,ref:t,className:gt("rt-Text",r)},i?n:m.createElement(o,null,n))});q.displayName="Text";function nCe(e){switch(e){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}const rCe=["none","small","medium","large","full"],tp={radius:{type:"enum",values:rCe,default:void 0}},fs={hasBackground:{default:!0},appearance:{default:"inherit"},accentColor:{default:"indigo"},grayColor:{default:"auto"},panelBackground:{default:"translucent"},radius:{default:"medium"},scaling:{default:"100%"}},V0=()=>{},j4=m.createContext(void 0);function LZ(){const e=m.useContext(j4);if(e===void 0)throw new Error("`useThemeContext` must be used within a `Theme`");return e}const Mf=m.forwardRef((e,t)=>m.useContext(j4)===void 0?m.createElement(RSe,{delayDuration:200},m.createElement(K2e,{dir:"ltr"},m.createElement(RZ,{...e,ref:t}))):m.createElement(z7,{...e,ref:t}));Mf.displayName="Theme";const RZ=m.forwardRef((e,t)=>{const{appearance:n=fs.appearance.default,accentColor:r=fs.accentColor.default,grayColor:i=fs.grayColor.default,panelBackground:o=fs.panelBackground.default,radius:a=fs.radius.default,scaling:s=fs.scaling.default,hasBackground:l=fs.hasBackground.default,...c}=e,[d,f]=m.useState(n);m.useEffect(()=>f(n),[n]);const[p,v]=m.useState(r);m.useEffect(()=>v(r),[r]);const[_,y]=m.useState(i);m.useEffect(()=>y(i),[i]);const[b,w]=m.useState(o);m.useEffect(()=>w(o),[o]);const[x,S]=m.useState(a);m.useEffect(()=>S(a),[a]);const[C,j]=m.useState(s);return m.useEffect(()=>j(s),[s]),m.createElement(z7,{...c,ref:t,isRoot:!0,hasBackground:l,appearance:d,accentColor:p,grayColor:_,panelBackground:b,radius:x,scaling:C,onAppearanceChange:f,onAccentColorChange:v,onGrayColorChange:y,onPanelBackgroundChange:w,onRadiusChange:S,onScalingChange:j})});RZ.displayName="ThemeRoot";const z7=m.forwardRef((e,t)=>{const n=m.useContext(j4),{asChild:r,isRoot:i,hasBackground:o,appearance:a=(n==null?void 0:n.appearance)??fs.appearance.default,accentColor:s=(n==null?void 0:n.accentColor)??fs.accentColor.default,grayColor:l=(n==null?void 0:n.resolvedGrayColor)??fs.grayColor.default,panelBackground:c=(n==null?void 0:n.panelBackground)??fs.panelBackground.default,radius:d=(n==null?void 0:n.radius)??fs.radius.default,scaling:f=(n==null?void 0:n.scaling)??fs.scaling.default,onAppearanceChange:p=V0,onAccentColorChange:v=V0,onGrayColorChange:_=V0,onPanelBackgroundChange:y=V0,onRadiusChange:b=V0,onScalingChange:w=V0,...x}=e,S=r?xf:"div",C=l==="auto"?nCe(s):l,j=e.appearance==="light"||e.appearance==="dark",T=o===void 0?i||j:o;return m.createElement(j4.Provider,{value:m.useMemo(()=>({appearance:a,accentColor:s,grayColor:l,resolvedGrayColor:C,panelBackground:c,radius:d,scaling:f,onAppearanceChange:p,onAccentColorChange:v,onGrayColorChange:_,onPanelBackgroundChange:y,onRadiusChange:b,onScalingChange:w}),[a,s,l,C,c,d,f,p,v,_,y,b,w])},m.createElement(S,{"data-is-root-theme":i?"true":"false","data-accent-color":s,"data-gray-color":C,"data-has-background":T?"true":"false","data-panel-background":c,"data-radius":d,"data-scaling":f,ref:t,...x,className:gt("radix-themes",{light:a==="light",dark:a==="dark"},x.className)}))});z7.displayName="ThemeImpl";const H0=e=>{if(!m.isValidElement(e))throw Error(`Expected a single React Element child, but got: ${m.Children.toArray(e).map(t=>typeof t=="object"&&"type"in t&&typeof t.type=="string"?t.type:typeof t).join(", ")}`);return e};function OZ(e,t){const{asChild:n,children:r}=e;if(!n)return typeof t=="function"?t(r):t;const i=m.Children.only(r);return m.cloneElement(i,{children:typeof t=="function"?t(i.props.children):t})}const D7=xf,iCe=["div","span"],oCe=["none","inline","inline-block","block","contents"],aCe={as:{type:"enum",values:iCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:oCe,responsive:!0}},np=["0","1","2","3","4","5","6","7","8","9"],jy={p:{type:"enum | string",className:"rt-r-p",customProperties:["--p"],values:np,responsive:!0},px:{type:"enum | string",className:"rt-r-px",customProperties:["--pl","--pr"],values:np,responsive:!0},py:{type:"enum | string",className:"rt-r-py",customProperties:["--pt","--pb"],values:np,responsive:!0},pt:{type:"enum | string",className:"rt-r-pt",customProperties:["--pt"],values:np,responsive:!0},pr:{type:"enum | string",className:"rt-r-pr",customProperties:["--pr"],values:np,responsive:!0},pb:{type:"enum | string",className:"rt-r-pb",customProperties:["--pb"],values:np,responsive:!0},pl:{type:"enum | string",className:"rt-r-pl",customProperties:["--pl"],values:np,responsive:!0}},A7=["visible","hidden","clip","scroll","auto"],sCe=["static","relative","absolute","fixed","sticky"],Ty=["0","1","2","3","4","5","6","7","8","9","-1","-2","-3","-4","-5","-6","-7","-8","-9"],lCe=["0","1"],uCe=["0","1"],T4={...jy,...tl,...C4,position:{type:"enum",className:"rt-r-position",values:sCe,responsive:!0},inset:{type:"enum | string",className:"rt-r-inset",customProperties:["--inset"],values:Ty,responsive:!0},top:{type:"enum | string",className:"rt-r-top",customProperties:["--top"],values:Ty,responsive:!0},right:{type:"enum | string",className:"rt-r-right",customProperties:["--right"],values:Ty,responsive:!0},bottom:{type:"enum | string",className:"rt-r-bottom",customProperties:["--bottom"],values:Ty,responsive:!0},left:{type:"enum | string",className:"rt-r-left",customProperties:["--left"],values:Ty,responsive:!0},overflow:{type:"enum",className:"rt-r-overflow",values:A7,responsive:!0},overflowX:{type:"enum",className:"rt-r-ox",values:A7,responsive:!0},overflowY:{type:"enum",className:"rt-r-oy",values:A7,responsive:!0},flexBasis:{type:"string",className:"rt-r-fb",customProperties:["--flex-basis"],responsive:!0},flexShrink:{type:"enum | string",className:"rt-r-fs",customProperties:["--flex-shrink"],values:lCe,responsive:!0},flexGrow:{type:"enum | string",className:"rt-r-fg",customProperties:["--flex-grow"],values:uCe,responsive:!0},gridArea:{type:"string",className:"rt-r-ga",customProperties:["--grid-area"],responsive:!0},gridColumn:{type:"string",className:"rt-r-gc",customProperties:["--grid-column"],responsive:!0},gridColumnStart:{type:"string",className:"rt-r-gcs",customProperties:["--grid-column-start"],responsive:!0},gridColumnEnd:{type:"string",className:"rt-r-gce",customProperties:["--grid-column-end"],responsive:!0},gridRow:{type:"string",className:"rt-r-gr",customProperties:["--grid-row"],responsive:!0},gridRowStart:{type:"string",className:"rt-r-grs",customProperties:["--grid-row-start"],responsive:!0},gridRowEnd:{type:"string",className:"rt-r-gre",customProperties:["--grid-row-end"],responsive:!0}},Mt=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,aCe,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Box",n)})});Mt.displayName="Box";const cCe=["1","2","3","4"],dCe=["classic","solid","soft","surface","outline","ghost"],PZ={...el,size:{type:"enum",className:"rt-r-size",values:cCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:dCe,default:"solid"},...WSe,...Nf,...tp,loading:{type:"boolean",className:"rt-loading",default:!1}},F7=["0","1","2","3","4","5","6","7","8","9"],zZ={gap:{type:"enum | string",className:"rt-r-gap",customProperties:["--gap"],values:F7,responsive:!0},gapX:{type:"enum | string",className:"rt-r-cg",customProperties:["--column-gap"],values:F7,responsive:!0},gapY:{type:"enum | string",className:"rt-r-rg",customProperties:["--row-gap"],values:F7,responsive:!0}},fCe=["div","span"],hCe=["none","inline-flex","flex"],pCe=["row","column","row-reverse","column-reverse"],mCe=["start","center","end","baseline","stretch"],gCe=["start","center","end","between"],vCe=["nowrap","wrap","wrap-reverse"],DZ={as:{type:"enum",values:fCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:hCe,responsive:!0},direction:{type:"enum",className:"rt-r-fd",values:pCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:mCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:gCe,parseValue:yCe,responsive:!0},wrap:{type:"enum",className:"rt-r-fw",values:vCe,responsive:!0},...zZ};function yCe(e){return e==="between"?"space-between":e}const V=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,DZ,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Flex",n)})});V.displayName="Flex";const bCe=["1","2","3"],_Ce={size:{type:"enum",className:"rt-r-size",values:bCe,default:"2",responsive:!0},loading:{type:"boolean",default:!0}},Iy=m.forwardRef((e,t)=>{const{className:n,children:r,loading:i,...o}=er(e,_Ce,So);if(!i)return r;const a=m.createElement("span",{...o,ref:t,className:gt("rt-Spinner",n)},m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}),m.createElement("span",{className:"rt-SpinnerLeaf"}));return r===void 0?a:m.createElement(V,{asChild:!0,position:"relative",align:"center",justify:"center"},m.createElement("span",null,m.createElement("span",{"aria-hidden":!0,style:{display:"contents",visibility:"hidden"},inert:void 0},r),m.createElement(V,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,a))))});Iy.displayName="Spinner";const xCe=KB;function wCe(e,t){if(e!==void 0)return typeof e=="string"?t(e):Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]))}function kCe(e){switch(e){case"1":return"1";case"2":case"3":return"2";case"4":return"3"}}const B7=m.forwardRef((e,t)=>{const{size:n=PZ.size.default}=e,{className:r,children:i,asChild:o,color:a,radius:s,disabled:l=e.loading,...c}=er(e,PZ,So),d=o?xf:"button";return m.createElement(d,{"data-disabled":l||void 0,"data-accent-color":a,"data-radius":s,...c,ref:t,className:gt("rt-reset","rt-BaseButton",r),disabled:l},e.loading?m.createElement(m.Fragment,null,m.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},i),m.createElement(xCe,null,i),m.createElement(V,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},m.createElement("span",null,m.createElement(Iy,{size:wCe(n,kCe)})))):i)});B7.displayName="BaseButton";const hs=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-Button",e)}));hs.displayName="Button";const SCe=["1","2","3","4","5"],CCe=["surface","classic","ghost"],jCe={...el,size:{type:"enum",className:"rt-r-size",values:SCe,default:"1",responsive:!0},variant:{type:"enum",className:"rt-variant",values:CCe,default:"surface"}},Ey=m.forwardRef((e,t)=>{const{asChild:n,className:r,...i}=er(e,jCe,So),o=n?xf:"div";return m.createElement(o,{ref:t,...i,className:gt("rt-reset","rt-BaseCard","rt-Card",r)})});Ey.displayName="Card";const TCe=["div","span"],ICe=["none","inline-grid","grid"],ECe=["1","2","3","4","5","6","7","8","9"],NCe=["1","2","3","4","5","6","7","8","9"],$Ce=["row","column","dense","row-dense","column-dense"],MCe=["start","center","end","baseline","stretch"],LCe=["start","center","end","between"],AZ={as:{type:"enum",values:TCe,default:"div"},...el,display:{type:"enum",className:"rt-r-display",values:ICe,responsive:!0},areas:{type:"string",className:"rt-r-gta",customProperties:["--grid-template-areas"],responsive:!0},columns:{type:"enum | string",className:"rt-r-gtc",customProperties:["--grid-template-columns"],values:ECe,parseValue:FZ,responsive:!0},rows:{type:"enum | string",className:"rt-r-gtr",customProperties:["--grid-template-rows"],values:NCe,parseValue:FZ,responsive:!0},flow:{type:"enum",className:"rt-r-gaf",values:$Ce,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:MCe,responsive:!0},justify:{type:"enum",className:"rt-r-jc",values:LCe,parseValue:RCe,responsive:!0},...zZ};function FZ(e){return AZ.columns.values.includes(e)?e:e!=null&&e.match(/^\d+$/)?`repeat(${e}, minmax(0, 1fr))`:e}function RCe(e){return e==="between"?"space-between":e}const Zr=m.forwardRef((e,t)=>{const{className:n,asChild:r,as:i="div",...o}=er(e,AZ,T4,So);return m.createElement(r?D7:i,{...o,ref:t,className:gt("rt-Grid",n)})});Zr.displayName="Grid";const OCe=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"})));OCe.displayName="ThickDividerHorizontalIcon";const I4=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"})));I4.displayName="ThickCheckIcon";const U7=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{d:"M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z"})));U7.displayName="ChevronDownIcon";const BZ=Oe.forwardRef((e,t)=>Oe.createElement("svg",{width:"9",height:"9",viewBox:"0 0 9 9",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",...e,ref:t},Oe.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"})));BZ.displayName="ThickChevronRightIcon";const PCe=["1","2","3","4"],zCe=["none","initial"],DCe=["left","center","right"],ACe={...el,size:{type:"enum",className:"rt-r-size",values:PCe,default:"4",responsive:!0},display:{type:"enum",className:"rt-r-display",values:zCe,parseValue:FCe,responsive:!0},align:{type:"enum",className:"rt-r-ai",values:DCe,parseValue:BCe,responsive:!0}};function FCe(e){return e==="initial"?"flex":e}function BCe(e){return e==="left"?"start":e==="right"?"end":e}const UZ=m.forwardRef(({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o,...a},s)=>{const{asChild:l,children:c,className:d,...f}=er(a,ACe,T4,So),{className:p,style:v}=er({width:e,minWidth:t,maxWidth:n,height:r,minHeight:i,maxHeight:o},tl,C4),_=l?xf:"div";return m.createElement(_,{...f,ref:s,className:gt("rt-Container",d)},OZ({asChild:l,children:c},y=>m.createElement("div",{className:gt("rt-ContainerInner",p),style:v},y)))});UZ.displayName="Container";const UCe=["1","2","3"],Ny={...el,size:{values:UCe,default:"1"},...tp,scrollbars:{default:"both"}};function WCe(e){const{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,...l}=e;return{m:t,mx:n,my:r,mt:i,mr:o,mb:a,ml:s,rest:l}}const rp=So.m.values;function VCe(e){const[t,n]=$f({className:"rt-r-m",customProperties:["--margin"],propValues:rp,value:e.m}),[r,i]=$f({className:"rt-r-mx",customProperties:["--margin-left","--margin-right"],propValues:rp,value:e.mx}),[o,a]=$f({className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"],propValues:rp,value:e.my}),[s,l]=$f({className:"rt-r-mt",customProperties:["--margin-top"],propValues:rp,value:e.mt}),[c,d]=$f({className:"rt-r-mr",customProperties:["--margin-right"],propValues:rp,value:e.mr}),[f,p]=$f({className:"rt-r-mb",customProperties:["--margin-bottom"],propValues:rp,value:e.mb}),[v,_]=$f({className:"rt-r-ml",customProperties:["--margin-left"],propValues:rp,value:e.ml});return[gt(t,r,o,s,c,f,v),Cy(n,i,a,l,d,p,_)]}const E4=m.forwardRef((e,t)=>{const{rest:n,...r}=WCe(e),[i,o]=VCe(r),{asChild:a,children:s,className:l,style:c,type:d,scrollHideDelay:f=d!=="scroll"?0:void 0,dir:p,size:v=Ny.size.default,radius:_=Ny.radius.default,scrollbars:y=Ny.scrollbars.default,...b}=n;return m.createElement(sH,{type:d,scrollHideDelay:f,className:gt("rt-ScrollAreaRoot",i,l),style:Cy(o,c),asChild:a},OZ({asChild:a,children:s},w=>m.createElement(m.Fragment,null,m.createElement(lH,{...b,ref:t,className:"rt-ScrollAreaViewport"},w),m.createElement("div",{className:"rt-ScrollAreaViewportFocusRing"}),y!=="vertical"?m.createElement(g7,{"data-radius":_,orientation:"horizontal",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(v7,{className:"rt-ScrollAreaThumb"})):null,y!=="horizontal"?m.createElement(g7,{"data-radius":_,orientation:"vertical",className:gt("rt-ScrollAreaScrollbar",Sy({className:"rt-r-size",value:v,propValues:Ny.size.values}))},m.createElement(v7,{className:"rt-ScrollAreaThumb"})):null,y==="both"?m.createElement(r5e,{className:"rt-ScrollAreaCorner"}):null)))});E4.displayName="ScrollArea";const HCe=["1","2"],ZCe=["solid","soft"],$y={size:{type:"enum",className:"rt-r-size",values:HCe,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:ZCe,default:"solid"},...Pa,...Nf},qCe={...el,...Pa},GCe={...Pa},YCe={...Pa},WZ=e=>m.createElement(AU,{...e,modal:!0});WZ.displayName="Dialog.Root";const VZ=m.forwardRef(({children:e,...t},n)=>m.createElement(p4e,{...t,ref:n,asChild:!0},H0(e)));VZ.displayName="Dialog.Trigger";const HZ=m.forwardRef(({align:e,...t},n)=>{const{align:r,...i}=USe,{className:o}=er({align:e},{align:r}),{className:a,forceMount:s,container:l,...c}=er(t,i);return m.createElement(FU,{container:l,forceMount:s},m.createElement(Mf,{asChild:!0},m.createElement(BU,{className:"rt-BaseDialogOverlay rt-DialogOverlay"},m.createElement("div",{className:"rt-BaseDialogScroll rt-DialogScroll"},m.createElement("div",{className:`rt-BaseDialogScrollPadding rt-DialogScrollPadding ${o}`},m.createElement(UU,{...c,ref:n,className:gt("rt-BaseDialogContent","rt-DialogContent",a)}))))))});HZ.displayName="Dialog.Content";const ZZ=m.forwardRef((e,t)=>m.createElement(m4e,{asChild:!0},m.createElement(MZ,{size:"5",mb:"3",trim:"start",...e,asChild:!1,ref:t})));ZZ.displayName="Dialog.Title";const KCe=m.forwardRef((e,t)=>m.createElement(g4e,{asChild:!0},m.createElement(q,{as:"p",size:"3",...e,asChild:!1,ref:t})));KCe.displayName="Dialog.Description";const qZ=m.forwardRef(({children:e,...t},n)=>m.createElement(v4e,{...t,ref:n,asChild:!0},H0(e)));qZ.displayName="Dialog.Close";const GZ=e=>m.createElement(bV,{...e});GZ.displayName="DropdownMenu.Root";const YZ=m.forwardRef(({children:e,...t},n)=>m.createElement(_V,{...t,ref:n,asChild:!0},H0(e)));YZ.displayName="DropdownMenu.Trigger";const KZ=m.createContext({}),XZ=m.forwardRef((e,t)=>{const n=LZ(),{size:r=$y.size.default,variant:i=$y.variant.default,highContrast:o=$y.highContrast.default}=e,{className:a,children:s,color:l,container:c,forceMount:d,...f}=er(e,$y),p=l||n.accentColor;return m.createElement(a7,{container:c,forceMount:d},m.createElement(Mf,{asChild:!0},m.createElement(xV,{"data-accent-color":p,align:"start",sideOffset:4,collisionPadding:10,...f,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-DropdownMenuContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},m.createElement(KZ.Provider,{value:m.useMemo(()=>({size:r,variant:i,color:p,highContrast:o}),[r,i,p,o])},s))))))});XZ.displayName="DropdownMenu.Content";const XCe=m.forwardRef(({className:e,...t},n)=>m.createElement(m6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuLabel","rt-DropdownMenuLabel",e)}));XCe.displayName="DropdownMenu.Label";const JZ=m.forwardRef((e,t)=>{const{className:n,children:r,color:i=qCe.color.default,shortcut:o,...a}=e;return m.createElement(wV,{"data-accent-color":i,...a,ref:t,className:gt("rt-reset","rt-BaseMenuItem","rt-DropdownMenuItem",n)},m.createElement(M2e,null,r),o&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},o))});JZ.displayName="DropdownMenu.Item";const JCe=m.forwardRef(({className:e,...t},n)=>m.createElement(p6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuGroup","rt-DropdownMenuGroup",e)}));JCe.displayName="DropdownMenu.Group";const QCe=m.forwardRef(({className:e,...t},n)=>m.createElement(v6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuRadioGroup","rt-DropdownMenuRadioGroup",e)}));QCe.displayName="DropdownMenu.RadioGroup";const eje=m.forwardRef((e,t)=>{const{children:n,className:r,color:i=YCe.color.default,...o}=e;return m.createElement(y6e,{...o,asChild:!1,ref:t,"data-accent-color":i,className:gt("rt-BaseMenuItem","rt-BaseMenuRadioItem","rt-DropdownMenuItem","rt-DropdownMenuRadioItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon"})))});eje.displayName="DropdownMenu.RadioItem";const tje=m.forwardRef((e,t)=>{const{children:n,className:r,shortcut:i,color:o=GCe.color.default,...a}=e;return m.createElement(g6e,{...a,asChild:!1,ref:t,"data-accent-color":o,className:gt("rt-BaseMenuItem","rt-BaseMenuCheckboxItem","rt-DropdownMenuItem","rt-DropdownMenuCheckboxItem",r)},n,m.createElement(kV,{className:"rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator"},m.createElement(I4,{className:"rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon"})),i&&m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},i))});tje.displayName="DropdownMenu.CheckboxItem";const nje=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(_6e,{...i,asChild:!1,ref:t,className:gt("rt-BaseMenuItem","rt-BaseMenuSubTrigger","rt-DropdownMenuItem","rt-DropdownMenuSubTrigger",n)},r,m.createElement("div",{className:"rt-BaseMenuShortcut rt-DropdownMenuShortcut"},m.createElement(BZ,{className:"rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon"})))});nje.displayName="DropdownMenu.SubTrigger";const rje=m.forwardRef((e,t)=>{const{size:n,variant:r,color:i,highContrast:o}=m.useContext(KZ),{className:a,children:s,container:l,forceMount:c,...d}=er({size:n,variant:r,color:i,highContrast:o,...e},$y);return m.createElement(a7,{container:l,forceMount:c},m.createElement(Mf,{asChild:!0},m.createElement(x6e,{"data-accent-color":i,alignOffset:-Number(n)*4,sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:t,className:gt("rt-PopperContent","rt-BaseMenuContent","rt-BaseMenuSubContent","rt-DropdownMenuContent","rt-DropdownMenuSubContent",a)},m.createElement(E4,{type:"auto"},m.createElement("div",{className:gt("rt-BaseMenuViewport","rt-DropdownMenuViewport")},s)))))});rje.displayName="DropdownMenu.SubContent";const ije=m.forwardRef(({className:e,...t},n)=>m.createElement(b6e,{...t,asChild:!1,ref:n,className:gt("rt-BaseMenuSeparator","rt-DropdownMenuSeparator",e)}));ije.displayName="DropdownMenu.Separator";const nl=m.forwardRef(({className:e,...t},n)=>m.createElement(B7,{...t,ref:n,className:gt("rt-IconButton",e)}));nl.displayName="IconButton";const oje=["1","2","3","4"],aje={...el,size:{type:"enum",className:"rt-r-size",values:oje,default:"2",responsive:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"480px"},...C4},QZ=e=>m.createElement(l7,{...e});QZ.displayName="Popover.Root";const eq=m.forwardRef(({children:e,...t},n)=>m.createElement(AV,{...t,ref:n,asChild:!0},H0(e)));eq.displayName="Popover.Trigger";const tq=m.forwardRef((e,t)=>{const{className:n,forceMount:r,container:i,...o}=er(e,aje);return m.createElement(u7,{container:i,forceMount:r},m.createElement(Mf,{asChild:!0},m.createElement(c7,{align:"start",sideOffset:8,collisionPadding:10,...o,ref:t,className:gt("rt-PopperContent","rt-PopoverContent",n)})))});tq.displayName="Popover.Content";const sje=m.forwardRef(({children:e,...t},n)=>m.createElement(O6e,{...t,ref:n,asChild:!0},H0(e)));sje.displayName="Popover.Close";const lje=m.forwardRef(({children:e,...t},n)=>m.createElement(DV,{...t,ref:n}));lje.displayName="Popover.Anchor";const uje=["1","2","3"],cje=["classic","surface","soft"],dje={size:{type:"enum",className:"rt-r-size",values:uje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:cje,default:"surface"},...Pa,...Nf,...tp,duration:{type:"string"}},N4=m.forwardRef((e,t)=>{const{className:n,style:r,color:i,radius:o,duration:a,...s}=er(e,dje,So);return m.createElement(W6e,{"data-accent-color":i,"data-radius":o,ref:t,className:gt("rt-ProgressRoot",n),style:Cy({"--progress-duration":"value"in s?void 0:a,"--progress-value":"value"in s?s.value:void 0,"--progress-max":"max"in s?s.max:void 0},r),...s,asChild:!1},m.createElement(V6e,{className:"rt-ProgressIndicator"}))});N4.displayName="Progress";const Z0=m.forwardRef(({className:e,children:t,...n},r)=>m.createElement(xf,{...n,ref:r,className:gt("rt-reset",e)},H0(t)));Z0.displayName="Reset";const fje=["1","2","3"],W7={size:{type:"enum",className:"rt-r-size",values:fje,default:"2",responsive:!0}},hje=["classic","surface","soft","ghost"],pje={variant:{type:"enum",className:"rt-variant",values:hje,default:"surface"},...Pa,...tp,placeholder:{type:"string"}},mje=["solid","soft"],gje={variant:{type:"enum",className:"rt-variant",values:mje,default:"solid"},...Pa,...Nf},V7=m.createContext({}),H7=e=>{const{children:t,size:n=W7.size.default,...r}=e;return m.createElement(T5e,{...r},m.createElement(V7.Provider,{value:m.useMemo(()=>({size:n}),[n])},t))};H7.displayName="Select.Root";const Z7=m.forwardRef((e,t)=>{const n=m.useContext(V7),{children:r,className:i,color:o,radius:a,placeholder:s,...l}=er({size:n==null?void 0:n.size,...e},{size:W7.size},pje,So);return m.createElement(I5e,{asChild:!0},m.createElement("button",{"data-accent-color":o,"data-radius":a,...l,ref:t,className:gt("rt-reset","rt-SelectTrigger",i)},m.createElement("span",{className:"rt-SelectTriggerInner"},m.createElement(E5e,{placeholder:s},r)),m.createElement(N5e,{asChild:!0},m.createElement(U7,{className:"rt-SelectIcon"}))))});Z7.displayName="Select.Trigger";const q7=m.forwardRef((e,t)=>{const n=m.useContext(V7),{className:r,children:i,color:o,container:a,...s}=er({size:n==null?void 0:n.size,...e},{size:W7.size},gje),l=LZ(),c=o||l.accentColor;return m.createElement($5e,{container:a},m.createElement(Mf,{asChild:!0},m.createElement(M5e,{"data-accent-color":c,sideOffset:4,...s,asChild:!1,ref:t,className:gt({"rt-PopperContent":s.position==="popper"},"rt-SelectContent",r)},m.createElement(sH,{type:"auto",className:"rt-ScrollAreaRoot"},m.createElement(L5e,{asChild:!0,className:"rt-SelectViewport"},m.createElement(lH,{className:"rt-ScrollAreaViewport",style:{overflowY:void 0}},i)),m.createElement(g7,{className:"rt-ScrollAreaScrollbar rt-r-size-1",orientation:"vertical"},m.createElement(v7,{className:"rt-ScrollAreaThumb"}))))))});q7.displayName="Select.Content";const My=m.forwardRef((e,t)=>{const{className:n,children:r,...i}=e;return m.createElement(P5e,{...i,asChild:!1,ref:t,className:gt("rt-SelectItem",n)},m.createElement(D5e,{className:"rt-SelectItemIndicator"},m.createElement(I4,{className:"rt-SelectItemIndicatorIcon"})),m.createElement(z5e,null,r))});My.displayName="Select.Item";const G7=m.forwardRef(({className:e,...t},n)=>m.createElement(R5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectGroup",e)}));G7.displayName="Select.Group";const vje=m.forwardRef(({className:e,...t},n)=>m.createElement(O5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectLabel",e)}));vje.displayName="Select.Label";const yje=m.forwardRef(({className:e,...t},n)=>m.createElement(A5e,{...t,asChild:!1,ref:n,className:gt("rt-SelectSeparator",e)}));yje.displayName="Select.Separator";const bje=["horizontal","vertical"],_je=["1","2","3","4"],xje={orientation:{type:"enum",className:"rt-r-orientation",values:bje,default:"horizontal",responsive:!0},size:{type:"enum",className:"rt-r-size",values:_je,default:"1",responsive:!0},color:{...Pa.color,default:"gray"},decorative:{type:"boolean",default:!0}},ps=m.forwardRef((e,t)=>{const{className:n,color:r,decorative:i,...o}=er(e,xje,So);return m.createElement("span",{"data-accent-color":r,role:i?void 0:"separator",...o,ref:t,className:gt("rt-Separator",n)})});ps.displayName="Separator";const wje=["1","2","3"],kje=["classic","surface","soft"],Sje={size:{type:"enum",className:"rt-r-size",values:wje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:kje,default:"surface"},...Pa,...Nf,...tp},nq=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,tabIndex:o,...a}=er(e,Sje,So);return m.createElement(KH,{"data-accent-color":r,"data-radius":i,ref:t,...a,asChild:!1,className:gt("rt-SliderRoot",n)},m.createElement(XH,{className:"rt-SliderTrack"},m.createElement(nSe,{className:gt("rt-SliderRange",{"rt-high-contrast":e.highContrast}),"data-inverted":a.inverted?"":void 0})),(a.value??a.defaultValue??[]).map((s,l)=>m.createElement(JH,{key:l,className:"rt-SliderThumb",...o!==void 0?{tabIndex:o}:void 0})))});nq.displayName="Slider";const Cje=["1","2","3"],jje=["classic","surface","soft"],Tje={size:{type:"enum",className:"rt-r-size",values:Cje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:jje,default:"surface"},...Pa,...Nf,...tp},Y7=m.forwardRef((e,t)=>{const{className:n,color:r,radius:i,...o}=er(e,Tje,So);return m.createElement(lSe,{"data-accent-color":r,"data-radius":i,...o,asChild:!1,ref:t,className:gt("rt-reset","rt-SwitchRoot",n)},m.createElement(uSe,{className:gt("rt-SwitchThumb",{"rt-high-contrast":e.highContrast})}))});Y7.displayName="Switch";const Ije=["1","2","3"],Eje=["surface","ghost"],Nje=["auto","fixed"],K7={size:{type:"enum",className:"rt-r-size",values:Ije,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:Eje,default:"ghost"},layout:{type:"enum",className:"rt-r-tl",values:Nje,responsive:!0}},$je=["start","center","end","baseline"],Mje={align:{type:"enum",className:"rt-r-va",values:$je,parseValue:Lje,responsive:!0}};function Lje(e){return{baseline:"baseline",start:"top",center:"middle",end:"bottom"}[e]}const Rje=["start","center","end"],X7={justify:{type:"enum",className:"rt-r-ta",values:Rje,parseValue:Oje,responsive:!0},...tl,...jy};function Oje(e){return{start:"left",center:"center",end:"right"}[e]}const q0=m.forwardRef((e,t)=>{const{layout:n,...r}=K7,{className:i,children:o,layout:a,...s}=er(e,r,So),l=Sy({value:a,className:K7.layout.className,propValues:K7.layout.values});return m.createElement("div",{ref:t,className:gt("rt-TableRoot",i),...s},m.createElement(E4,null,m.createElement("table",{className:gt("rt-TableRootTable",l)},o)))});q0.displayName="Table.Root";const ip=m.forwardRef(({className:e,...t},n)=>m.createElement("thead",{...t,ref:n,className:gt("rt-TableHeader",e)}));ip.displayName="Table.Header";const G0=m.forwardRef(({className:e,...t},n)=>m.createElement("tbody",{...t,ref:n,className:gt("rt-TableBody",e)}));G0.displayName="Table.Body";const la=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,Mje);return m.createElement("tr",{...r,ref:t,className:gt("rt-TableRow",n)})});la.displayName="Table.Row";const ti=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("td",{className:gt("rt-TableCell",n),ref:t,...r})});ti.displayName="Table.Cell";const Wi=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableColumnHeaderCell",n),scope:"col",ref:t,...r})});Wi.displayName="Table.ColumnHeaderCell";const $4=m.forwardRef((e,t)=>{const{className:n,...r}=er(e,X7);return m.createElement("th",{className:gt("rt-TableCell","rt-TableRowHeaderCell",n),scope:"row",ref:t,...r})});$4.displayName="Table.RowHeaderCell";const Pje=["1","2","3"],zje=["classic","surface","soft"],Dje={size:{type:"enum",className:"rt-r-size",values:Pje,default:"2",responsive:!0},variant:{type:"enum",className:"rt-variant",values:zje,default:"surface"},...Pa,...tp},Aje=["left","right"],Fje={side:{type:"enum",values:Aje},...Pa,gap:DZ.gap,px:jy.px,pl:jy.pl,pr:jy.pr},J7=m.forwardRef((e,t)=>{const n=m.useRef(null),{children:r,className:i,color:o,radius:a,style:s,...l}=er(e,Dje,So);return m.createElement("div",{"data-accent-color":o,"data-radius":a,style:s,className:gt("rt-TextFieldRoot",i),onPointerDown:c=>{const d=c.target;if(d.closest("input, button, a"))return;const f=n.current;if(!f)return;const p=d.closest(` - .rt-TextFieldSlot[data-side='right'], - .rt-TextFieldSlot:not([data-side='right']) ~ .rt-TextFieldSlot:not([data-side='left']) - `)?f.value.length:0;requestAnimationFrame(()=>{try{f.setSelectionRange(p,p)}catch{}f.focus()})}},m.createElement("input",{spellCheck:"false",...l,ref:zl(n,t),className:"rt-reset rt-TextFieldInput"}),r)});J7.displayName="TextField.Root";const M4=m.forwardRef((e,t)=>{const{className:n,color:r,side:i,...o}=er(e,Fje);return m.createElement("div",{"data-accent-color":r,"data-side":i,...o,ref:t,className:gt("rt-TextFieldSlot",n)})});M4.displayName="TextField.Slot";const Bje={content:{type:"ReactNode",required:!0},width:tl.width,minWidth:tl.minWidth,maxWidth:{...tl.maxWidth,default:"360px"}},ui=m.forwardRef((e,t)=>{const{children:n,className:r,open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l,content:c,container:d,forceMount:f,...p}=er(e,Bje),v={open:i,defaultOpen:o,onOpenChange:a,delayDuration:s,disableHoverableContent:l};return m.createElement(OSe,{...v},m.createElement(PSe,{asChild:!0},n),m.createElement(zSe,{container:d,forceMount:f},m.createElement(Mf,{asChild:!0},m.createElement(DSe,{sideOffset:4,collisionPadding:10,...p,asChild:!1,ref:t,className:gt("rt-TooltipContent",r)},m.createElement(q,{as:"p",className:"rt-TooltipText",size:"1"},c),m.createElement(ASe,{className:"rt-TooltipArrow"})))))});ui.displayName="Tooltip";const Q7=new WeakMap,Uje=new WeakMap,L4={current:[]};let eT=!1,Ly=0;const Ry=new Set,R4=new Map;function rq(e){for(const t of e){if(L4.current.includes(t))continue;L4.current.push(t),t.recompute();const n=Uje.get(t);if(n)for(const r of n){const i=Q7.get(r);i!=null&&i.length&&rq(i)}}}function Wje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function Vje(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function iq(e){if(Ly>0&&!R4.has(e)&&R4.set(e,e.prevState),Ry.add(e),!(Ly>0)&&!eT)try{for(eT=!0;Ry.size>0;){const t=Array.from(Ry);Ry.clear();for(const n of t){const r=R4.get(n)??n.prevState;n.prevState=r,Wje(n)}for(const n of t){const r=Q7.get(n);r&&(L4.current.push(n),rq(r))}for(const n of t){const r=Q7.get(n);if(r)for(const i of r)Vje(i)}}}finally{eT=!1,L4.current=[],R4.clear()}}function Oy(e){Ly++;try{e()}finally{if(Ly--,Ly===0){const t=Ry.values().next().value;t&&iq(t)}}}function Hje(e){return typeof e=="function"}class Zje{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var i,o;this.listeners.add(r);const a=(o=(i=this.options)==null?void 0:i.onSubscribe)==null?void 0:o.call(i,r,this);return()=>{this.listeners.delete(r),a==null||a()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,i;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):Hje(t)?this.state=t(this.prevState):this.state=t,(i=(r=this.options)==null?void 0:r.onUpdate)==null||i.call(r),iq(this)}}const Lf="__TSR_index",oq="popstate",aq="beforeunload";function qje(e){let t=e.getLocation();const n=new Set,r=a=>{t=e.getLocation(),n.forEach(s=>s({location:t,action:a}))},i=a=>{e.notifyOnIndexChange??!0?r(a):t=e.getLocation()},o=async({task:a,navigateOpts:s,...l})=>{var f,p;if((s==null?void 0:s.ignoreBlocker)??!1){a();return}const c=((f=e.getBlockers)==null?void 0:f.call(e))??[],d=l.type==="PUSH"||l.type==="REPLACE";if(typeof document<"u"&&c.length&&d)for(const v of c){const _=O4(l.path,l.state);if(await v.blockerFn({currentLocation:t,nextLocation:_,action:l.type})){(p=e.onBlocked)==null||p.call(e);return}}a()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:a=>(n.add(a),()=>{n.delete(a)}),push:(a,s,l)=>{const c=t.state[Lf];s=sq(c+1,s),o({task:()=>{e.pushState(a,s),r({type:"PUSH"})},navigateOpts:l,type:"PUSH",path:a,state:s})},replace:(a,s,l)=>{const c=t.state[Lf];s=sq(c,s),o({task:()=>{e.replaceState(a,s),r({type:"REPLACE"})},navigateOpts:l,type:"REPLACE",path:a,state:s})},go:(a,s)=>{o({task:()=>{e.go(a),i({type:"GO",index:a})},navigateOpts:s,type:"GO"})},back:a=>{o({task:()=>{e.back((a==null?void 0:a.ignoreBlocker)??!1),i({type:"BACK"})},navigateOpts:a,type:"BACK"})},forward:a=>{o({task:()=>{e.forward((a==null?void 0:a.ignoreBlocker)??!1),i({type:"FORWARD"})},navigateOpts:a,type:"FORWARD"})},canGoBack:()=>t.state[Lf]!==0,createHref:a=>e.createHref(a),block:a=>{var l;if(!e.setBlockers)return()=>{};const s=((l=e.getBlockers)==null?void 0:l.call(e))??[];return e.setBlockers([...s,a]),()=>{var d,f;const c=((d=e.getBlockers)==null?void 0:d.call(e))??[];(f=e.setBlockers)==null||f.call(e,c.filter(p=>p!==a))}},flush:()=>{var a;return(a=e.flush)==null?void 0:a.call(e)},destroy:()=>{var a;return(a=e.destroy)==null?void 0:a.call(e)},notify:r}}function sq(e,t){t||(t={});const n=tT();return{...t,key:n,__TSR_key:n,[Lf]:e}}function Gje(e){var $,A;const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let i=[];const o=()=>i,a=M=>i=M,s=M=>M,l=()=>O4(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state);if(!(($=t.history.state)!=null&&$.__TSR_key)&&!((A=t.history.state)!=null&&A.key)){const M=tT();t.history.replaceState({[Lf]:0,key:M,__TSR_key:M},"")}let c=l(),d,f=!1,p=!1,v=!1,_=!1;const y=()=>c;let b,w;const x=()=>{b&&(E._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),E._ignoreSubscribers=!1,b=void 0,w=void 0,d=void 0)},S=(M,P,te)=>{const Z=s(P);w||(d=c),c=O4(P,te),b={href:Z,state:te,isPush:(b==null?void 0:b.isPush)||M==="push"},w||(w=Promise.resolve().then(()=>x()))},C=M=>{c=l(),E.notify({type:M})},j=async()=>{if(p){p=!1;return}const M=l(),P=M.state[Lf]-c.state[Lf],te=P===1,Z=P===-1,O=!te&&!Z||f;f=!1;const J=O?"GO":Z?"BACK":"FORWARD",D=O?{type:"GO",index:P}:{type:Z?"BACK":"FORWARD"};if(v)v=!1;else{const Y=o();if(typeof document<"u"&&Y.length){for(const F of Y)if(await F.blockerFn({currentLocation:c,nextLocation:M,action:J})){p=!0,t.history.go(1),E.notify(D);return}}}c=l(),E.notify(D)},T=M=>{if(_){_=!1;return}let P=!1;const te=o();if(typeof document<"u"&&te.length)for(const Z of te){const O=Z.enableBeforeUnload??!0;if(O===!0){P=!0;break}if(typeof O=="function"&&O()===!0){P=!0;break}}if(P)return M.preventDefault(),M.returnValue=""},E=qje({getLocation:y,getLength:()=>t.history.length,pushState:(M,P)=>S("push",M,P),replaceState:(M,P)=>S("replace",M,P),back:M=>(M&&(v=!0),_=!0,t.history.back()),forward:M=>{M&&(v=!0),_=!0,t.history.forward()},go:M=>{f=!0,t.history.go(M)},createHref:M=>s(M),flush:x,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aq,T,{capture:!0}),t.removeEventListener(oq,j)},onBlocked:()=>{d&&c!==d&&(c=d)},getBlockers:o,setBlockers:a,notifyOnIndexChange:!1});return t.addEventListener(aq,T,{capture:!0}),t.addEventListener(oq,j),t.history.pushState=function(...M){const P=n.apply(t.history,M);return E._ignoreSubscribers||C("PUSH"),P},t.history.replaceState=function(...M){const P=r.apply(t.history,M);return E._ignoreSubscribers||C("REPLACE"),P},E}function O4(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),i=tT();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Lf]:0,key:i,__TSR_key:i}}}function tT(){return(Math.random()+1).toString(36).substring(7)}function nT(e){return e[e.length-1]}function Yje(e){return typeof e=="function"}function op(e,t){return Yje(e)?e(t):e}const Kje=Object.prototype.hasOwnProperty;function Ul(e,t){if(e===t)return e;const n=t,r=cq(e)&&cq(n);if(!r&&!(P4(e)&&P4(n)))return n;const i=r?e:lq(e);if(!i)return n;const o=r?n:lq(n);if(!o)return n;const a=i.length,s=o.length,l=r?new Array(s):{};let c=0;for(let d=0;d"u")return!0;const n=t.prototype;return!(!uq(n)||!n.hasOwnProperty("isPrototypeOf"))}function uq(e){return Object.prototype.toString.call(e)==="[object Object]"}function cq(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Rf(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,i=e.length;ri||!Rf(e[a],t[a],n)))return!1;return i===o}return!1}function Y0(e){let t,n;const r=new Promise((i,o)=>{t=i,n=o});return r.status="pending",r.resolve=i=>{r.status="resolved",r.value=i,t(i),e==null||e(i)},r.reject=i=>{r.status="rejected",n(i)},r}function Of(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const Xje=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function dq(e,t=Xje){function n(i,o,a=0){for(let s=a;s{try{return decodeURI(s)}catch{return s}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,i=>i.toUpperCase());return n(r,t)}var Jje="Invariant failed";function Qc(e,t){if(!e)throw new Error(Jje)}const Wu=0,ap=1,K0=2,X0=3;function ed(e){return rT(e.filter(t=>t!==void 0).join("/"))}function rT(e){return e.replace(/\/{2,}/g,"/")}function iT(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Pf(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function z4(e){return Pf(iT(e))}function D4(e,t){return e!=null&&e.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function Qje(e,t,n){return D4(e,n)===D4(t,n)}function e8e(e){const{type:t,value:n}=e;if(t===Wu)return n;const{prefixSegment:r,suffixSegment:i}=e;if(t===ap){const o=n.substring(1);if(r&&i)return`${r}{$${o}}${i}`;if(r)return`${r}{$${o}}`;if(i)return`{$${o}}${i}`}if(t===X0){const o=n.substring(1);return r&&i?`${r}{-$${o}}${i}`:r?`${r}{-$${o}}`:i?`{-$${o}}${i}`:`{-$${o}}`}if(t===K0){if(r&&i)return`${r}{$}${i}`;if(r)return`${r}{$}`;if(i)return`{$}${i}`}return n}function t8e({base:e,to:t,trailingSlash:n="never",parseCache:r}){var s;let i=J0(e,r).slice();const o=J0(t,r);i.length>1&&((s=nT(i))==null?void 0:s.value)==="/"&&i.pop();for(let l=0,c=o.length;l1&&(nT(i).value==="/"?n==="never"&&i.pop():n==="always"&&i.push({type:Wu,value:"/"}));const a=i.map(e8e);return ed(a)}const J0=(e,t)=>{if(!e)return[];const n=t==null?void 0:t.get(e);if(n)return n;const r=s8e(e);return t==null||t.set(e,r),r},n8e=/^\$.{1,}$/,r8e=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,i8e=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,o8e=/^\$$/,a8e=/^(.*?)\{\$\}(.*)$/;function s8e(e){e=rT(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const i=r.match(a8e);if(i){const s=i[1],l=i[2];return{type:K0,value:"$",prefixSegment:s||void 0,suffixSegment:l||void 0}}const o=r.match(i8e);if(o){const s=o[1],l=o[2],c=o[3];return{type:X0,value:l,prefixSegment:s||void 0,suffixSegment:c||void 0}}const a=r.match(r8e);if(a){const s=a[1],l=a[2],c=a[3];return{type:ap,value:""+l,prefixSegment:s||void 0,suffixSegment:c||void 0}}if(n8e.test(r)){const s=r.substring(1);return{type:ap,value:"$"+s,prefixSegment:void 0,suffixSegment:void 0}}return o8e.test(r)?{type:K0,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:Wu,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:Wu,value:"/"})),t}function oT({path:e,params:t,leaveParams:n,decodeCharMap:r,parseCache:i}){const o=J0(e,i);function a(d){const f=t[d],p=typeof f=="string";return d==="*"||d==="_splat"?p?encodeURI(f):f:p?l8e(f,r):f}let s=!1;const l={},c=ed(o.map(d=>{if(d.type===Wu)return d.value;if(d.type===K0){l._splat=t._splat,l["*"]=t._splat;const f=d.prefixSegment||"",p=d.suffixSegment||"";if(!t._splat)return s=!0,f||p?`${f}${p}`:void 0;const v=a("_splat");return`${f}${v}${p}`}if(d.type===ap){const f=d.value.substring(1);!s&&!(f in t)&&(s=!0),l[f]=t[f];const p=d.prefixSegment||"",v=d.suffixSegment||"";if(n){const _=a(d.value);return`${p}${d.value}${_??""}${v}`}return`${p}${a(f)??"undefined"}${v}`}if(d.type===X0){const f=d.value.substring(1),p=d.prefixSegment||"",v=d.suffixSegment||"";if(!(f in t)||t[f]==null)return p||v?`${p}${v}`:void 0;if(l[f]=t[f],n){const _=a(d.value);return`${p}${d.value}${_??""}${v}`}return`${p}${a(f)??""}${v}`}return d.value}));return{usedParams:l,interpolatedPath:c,isMissingParams:s}}function l8e(e,t){let n=encodeURIComponent(e);if(t)for(const[r,i]of t)n=n.replaceAll(r,i);return n}function aT(e,t,n){const r=u8e(e,t,n);if(!(t.to&&!r))return r??{}}function u8e(e,{to:t,fuzzy:n,caseSensitive:r},i){const o=t,a=J0(e.startsWith("/")?e:`/${e}`,i),s=J0(o.startsWith("/")?o:`/${o}`,i),l={};return c8e(a,s,l,n,r)?l:void 0}function c8e(e,t,n,r,i){var s,l,c;let o=0,a=0;for(;ox.value)));_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),v=w}else v=decodeURI(ed(p.map(_=>_.value)));return n["*"]=v,n._splat=v,!0}if(f.type===Wu){if(f.value==="/"&&!(d!=null&&d.value)){a++;continue}if(d){if(i){if(f.value!==d.value)return!1}else if(f.value.toLowerCase()!==d.value.toLowerCase())return!1;o++,a++;continue}else return!1}if(f.type===ap){if(!d||d.value==="/")return!1;let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const _=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if(_&&!b.startsWith(_)||y&&!b.endsWith(y))return!1;let w=b;_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}else p=decodeURIComponent(d.value),v=!0;v&&(n[f.value.substring(1)]=p,o++),a++;continue}if(f.type===X0){if(!d){a++;continue}if(d.value==="/"){a++;continue}let p="",v=!1;if(f.prefixSegment||f.suffixSegment){const _=f.prefixSegment||"",y=f.suffixSegment||"",b=d.value;if((!_||b.startsWith(_))&&(!y||b.endsWith(y))){let w=b;_&&w.startsWith(_)&&(w=w.slice(_.length)),y&&w.endsWith(y)&&(w=w.slice(0,w.length-y.length)),p=decodeURIComponent(w),v=!0}}else{let _=!0;for(let y=a+1;y=t.length)return n["**"]=ed(e.slice(o).map(p=>p.value)),!!r&&((l=t[t.length-1])==null?void 0:l.value)!=="/";if(a=e.length){for(let p=a;p{var d;if(n.isRoot||!n.path)return;const i=iT(n.fullPath);let o=J0(i),a=0;for(;o.length>a+1&&((d=o[a])==null?void 0:d.value)==="/";)a++;a>0&&(o=o.slice(a));let s=0,l=!1;const c=o.map((f,p)=>{if(f.value==="/")return d8e;if(f.type===Wu)return f8e;let v;f.type===ap?v=h8e:f.type===X0?(v=p8e,s++):v=m8e;for(let _=p+1;_{const i=Math.min(n.scores.length,r.scores.length);for(let o=0;or.parsed[o].value?1:-1;return n.index-r.index}).map((n,r)=>(n.child.rank=r,n.child))}function x8e({routeTree:e,initRoute:t}){const n={},r={},i=a=>{a.forEach((s,l)=>{t==null||t(s,l);const c=n[s.id];if(Qc(!c,`Duplicate routes found with id: ${String(s.id)}`),n[s.id]=s,!s.isRoot&&s.path){const f=Pf(s.fullPath);(!r[f]||s.fullPath.endsWith("/"))&&(r[f]=s)}const d=s.children;d!=null&&d.length&&i(d)})};i([e]);const o=_8e(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:o}}function Wl(e){return!!(e!=null&&e.isNotFound)}function w8e(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const A4="tsr-scroll-restoration-v1_3",k8e=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function S8e(){const e=w8e();if(!e)return null;const t=e.getItem(A4);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=op(r,n)||n,e.setItem(A4,JSON.stringify(n)))}}const F4=S8e(),sT=e=>e.state.__TSR_key||e.href;function C8e(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let B4=!1;function mq({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:i,location:o}){var c,d;let a;try{a=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const s=t||((c=window.history.state)==null?void 0:c.__TSR_key),l=a[s];B4=!0;e:{if(r&&l&&Object.keys(l).length>0){for(const v in l){const _=l[v];if(v==="window")window.scrollTo({top:_.scrollY,left:_.scrollX,behavior:n});else if(v){const y=document.querySelector(v);y&&(y.scrollLeft=_.scrollX,y.scrollTop=_.scrollY)}}break e}const f=(o??window.location).hash.split("#",2)[1];if(f){const v=((d=window.history.state)==null?void 0:d.__hashScrollIntoViewOptions)??!0;if(v){const _=document.getElementById(f);_&&_.scrollIntoView(v)}break e}const p={top:0,left:0,behavior:n};if(window.scrollTo(p),i)for(const v of i){if(v==="window")continue;const _=typeof v=="function"?v():document.querySelector(v);_&&_.scrollTo(p)}}B4=!1}function j8e(e,t){if(!F4&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!F4))return;e.isScrollRestorationSetup=!0,B4=!1;const n=e.options.getScrollRestorationKey||sT;window.history.scrollRestoration="manual";const r=i=>{if(B4||!e.isScrollRestoring)return;let o="";if(i.target===document||i.target===window)o="window";else{const s=i.target.getAttribute("data-scroll-restoration-id");s?o=`[data-scroll-restoration-id="${s}"]`:o=C8e(i.target)}const a=n(e.state.location);F4.set(s=>{const l=s[a]||(s[a]={}),c=l[o]||(l[o]={});if(o==="window")c.scrollX=window.scrollX||0,c.scrollY=window.scrollY||0;else if(o){const d=document.querySelector(o);d&&(c.scrollX=d.scrollLeft||0,c.scrollY=d.scrollTop||0)}return s})};typeof document<"u"&&document.addEventListener("scroll",k8e(r,100),!0),e.subscribe("onRendered",i=>{const o=n(i.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(mq({storageKey:A4,key:o,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&F4.set(a=>(a[o]||(a[o]={}),a)))})}function T8e(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function I8e(e,t=String){const n=new URLSearchParams;for(const r in e){const i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function lT(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function E8e(e){const t=new URLSearchParams(e),n={};for(const[r,i]of t.entries()){const o=n[r];o==null?n[r]=lT(i):Array.isArray(o)?o.push(lT(i)):n[r]=[o,lT(i)]}return n}const N8e=M8e(JSON.parse),$8e=L8e(JSON.stringify,JSON.parse);function M8e(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=E8e(t);for(const r in n){const i=n[r];if(typeof i=="string")try{n[r]=e(i)}catch{}}return n}}function L8e(e,t){const n=typeof t=="function";function r(i){if(typeof i=="object"&&i!==null)try{return e(i)}catch{}else if(n&&typeof i=="string")try{return t(i),e(i)}catch{}return i}return i=>{const o=I8e(i,r);return o?`?${o}`:""}}const ms="__root__";function uT(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function Vu(e){return e instanceof Response&&!!e.options}function R8e(e){const t=new Map;let n,r;const i=o=>{o.next&&(o.prev?(o.prev.next=o.next,o.next.prev=o.prev,o.next=void 0,r&&(r.next=o,o.prev=r)):(o.next.prev=void 0,n=o.next,o.next=void 0,r&&(o.prev=r,r.next=o)),r=o)};return{get(o){const a=t.get(o);if(a)return i(a),a.value},set(o,a){if(t.size>=e&&n){const l=n;t.delete(l.key),l.next&&(n=l.next,l.next.prev=void 0),l===r&&(r=void 0)}const s=t.get(o);if(s)s.value=a,i(s);else{const l={key:o,value:a,prev:r};r&&(r.next=l),r=l,n||(n=l),t.set(o,l)}}}}const U4=e=>{var t;if(!e.rendered)return e.rendered=!0,(t=e.onReady)==null?void 0:t.call(e)},W4=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),gq=(e,t)=>{var i;const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&((i=e.router.options)!=null&&i.defaultNotFoundComponent)&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),Qc(n.options.notFoundComponent);const r=e.matches.find(o=>o.routeId===n.id);Qc(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,o=>({...o,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,gq(e,t))},zf=(e,t,n)=>{var r,i,o;if(!(!Vu(n)&&!Wl(n))){if(Vu(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){(r=t._nonReactive.beforeLoadPromise)==null||r.resolve(),(i=t._nonReactive.loaderPromise)==null||i.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const a=Vu(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,s=>({...s,status:a,isFetching:!1,error:n})),Wl(n)&&!n.routeId&&(n.routeId=t.routeId),(o=t._nonReactive.loadPromise)==null||o.resolve()}throw Vu(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(gq(e,n),n)}},vq=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Py=(e,t,n,r)=>{var s,l;const{id:i,routeId:o}=e.matches[t],a=e.router.looseRoutesById[o];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??(e.firstBadMatchIndex=t),zf(e,e.router.getMatch(i),n);try{(l=(s=a.options).onError)==null||l.call(s,n)}catch(c){n=c,zf(e,e.router.getMatch(i),n)}e.updateMatch(i,c=>{var d,f;return(d=c._nonReactive.beforeLoadPromise)==null||d.resolve(),c._nonReactive.beforeLoadPromise=void 0,(f=c._nonReactive.loadPromise)==null||f.resolve(),{...c,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}})},O8e=(e,t,n,r)=>{var v;const i=e.router.getMatch(t),o=(v=e.matches[n-1])==null?void 0:v.id,a=o?e.router.getMatch(o):void 0;if(e.router.isShell()){i.ssr=r.id===ms;return}if((a==null?void 0:a.ssr)===!1){i.ssr=!1;return}const s=_=>_===!0&&(a==null?void 0:a.ssr)==="data-only"?"data-only":_,l=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){i.ssr=s(l);return}if(typeof r.options.ssr!="function"){i.ssr=s(r.options.ssr);return}const{search:c,params:d}=i,f={search:V4(c,i.searchError),params:V4(d,i.paramsError),location:e.location,matches:e.matches.map(_=>({index:_.index,pathname:_.pathname,fullPath:_.fullPath,staticData:_.staticData,id:_.id,routeId:_.routeId,search:V4(_.search,_.searchError),params:V4(_.params,_.paramsError),ssr:_.ssr}))},p=r.options.ssr(f);if(Of(p))return p.then(_=>{i.ssr=s(_??l)});i.ssr=s(p??l)},yq=(e,t,n,r)=>{var o;if(r._nonReactive.pendingTimeout!==void 0)return;const i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!e.router.isServer&&!W4(e,t)&&(n.options.loader||n.options.beforeLoad||kq(n))&&typeof i=="number"&&i!==1/0&&(n.options.pendingComponent??((o=e.router.options)==null?void 0:o.defaultPendingComponent))){const a=setTimeout(()=>{U4(e)},i);r._nonReactive.pendingTimeout=a}},P8e=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;yq(e,t,n,r);const i=()=>{const o=e.router.getMatch(t);o.preload&&(o.status==="redirected"||o.status==="notFound")&&zf(e,o,o.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},z8e=(e,t,n,r)=>{var j,T;const i=e.router.getMatch(t),o=i._nonReactive.loadPromise;i._nonReactive.loadPromise=Y0(()=>{o==null||o.resolve()});const{paramsError:a,searchError:s}=i;a&&Py(e,n,a,"PARSE_PARAMS"),s&&Py(e,n,s,"VALIDATE_SEARCH"),yq(e,t,r,i);const l=new AbortController,c=(j=e.matches[n-1])==null?void 0:j.id,d={...((T=c?e.router.getMatch(c):void 0)==null?void 0:T.context)??e.router.options.context??void 0,...i.__routeContext};let f=!1;const p=()=>{f||(f=!0,e.updateMatch(t,E=>({...E,isFetching:"beforeLoad",fetchCount:E.fetchCount+1,abortController:l,context:d})))},v=()=>{var E;(E=i._nonReactive.beforeLoadPromise)==null||E.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,$=>({...$,isFetching:!1}))};if(!r.options.beforeLoad){Oy(()=>{p(),v()});return}i._nonReactive.beforeLoadPromise=Y0();const{search:_,params:y,cause:b}=i,w=W4(e,t),x={search:_,abortController:l,params:y,preload:w,context:d,location:e.location,navigate:E=>e.router.navigate({...E,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:w?"preload":b,matches:e.matches,...e.router.options.additionalContext},S=E=>{if(E===void 0){Oy(()=>{p(),v()});return}(Vu(E)||Wl(E))&&(p(),Py(e,n,E,"BEFORE_LOAD")),Oy(()=>{p(),e.updateMatch(t,$=>({...$,__beforeLoadContext:E,context:{...$.context,...E}})),v()})};let C;try{if(C=r.options.beforeLoad(x),Of(C))return p(),C.catch(E=>{Py(e,n,E,"BEFORE_LOAD")}).then(S)}catch(E){p(),Py(e,n,E,"BEFORE_LOAD")}S(C)},D8e=(e,t)=>{const{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],o=()=>{if(e.router.isServer){const l=O8e(e,n,t,i);if(Of(l))return l.then(s)}return s()},a=()=>z8e(e,n,t,i),s=()=>{if(vq(e,n))return;const l=P8e(e,n,i);return Of(l)?l.then(a):a()};return o()},zy=(e,t,n)=>{var o,a,s,l,c,d;const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const i={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([(a=(o=n.options).head)==null?void 0:a.call(o,i),(l=(s=n.options).scripts)==null?void 0:l.call(s,i),(d=(c=n.options).headers)==null?void 0:d.call(c,i)]).then(([f,p,v])=>{const _=f==null?void 0:f.meta,y=f==null?void 0:f.links,b=f==null?void 0:f.scripts,w=f==null?void 0:f.styles;return{meta:_,links:y,headScripts:b,headers:v,scripts:p,styles:w}})},bq=(e,t,n,r)=>{const i=e.matchPromises[n-1],{params:o,loaderDeps:a,abortController:s,cause:l}=e.router.getMatch(t);let c=e.router.options.context??{};for(let f=0;f<=n;f++){const p=e.matches[f];if(!p)continue;const v=e.router.getMatch(p.id);v&&(c={...c,...v.__routeContext??{},...v.__beforeLoadContext??{}})}const d=W4(e,t);return{params:o,deps:a,preload:!!d,parentMatchPromise:i,abortController:s,context:c,location:e.location,navigate:f=>e.router.navigate({...f,_fromLocation:e.location}),cause:d?"preload":l,route:r,...e.router.options.additionalContext}},_q=async(e,t,n,r)=>{var i,o,a,s,l,c;try{const d=e.router.getMatch(t);try{(!e.router.isServer||d.ssr===!0)&&wq(r);const f=(o=(i=r.options).loader)==null?void 0:o.call(i,bq(e,t,n,r)),p=r.options.loader&&Of(f);if((p||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||d._nonReactive.minPendingPromise)&&e.updateMatch(t,b=>({...b,isFetching:"loader"})),r.options.loader){const b=p?await f:f;zf(e,e.router.getMatch(t),b),b!==void 0&&e.updateMatch(t,w=>({...w,loaderData:b}))}r._lazyPromise&&await r._lazyPromise;const v=zy(e,t,r),_=v?await v:void 0,y=d._nonReactive.minPendingPromise;y&&await y,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,b=>({...b,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),..._}))}catch(f){let p=f;const v=d._nonReactive.minPendingPromise;v&&await v,Wl(f)&&await((s=(a=r.options.notFoundComponent)==null?void 0:a.preload)==null?void 0:s.call(a)),zf(e,e.router.getMatch(t),f);try{(c=(l=r.options).onError)==null||c.call(l,f)}catch(b){p=b,zf(e,e.router.getMatch(t),b)}const _=zy(e,t,r),y=_?await _:void 0;e.updateMatch(t,b=>({...b,error:p,status:"error",isFetching:!1,...y}))}}catch(d){const f=e.router.getMatch(t);if(f){const p=zy(e,t,r);if(p){const v=await p;e.updateMatch(t,_=>({..._,...v}))}f._nonReactive.loaderPromise=void 0}zf(e,f,d)}},A8e=async(e,t)=>{var c,d;const{id:n,routeId:r}=e.matches[t];let i=!1,o=!1;const a=e.router.looseRoutesById[r];if(vq(e,n)){if(e.router.isServer){const f=zy(e,n,a);if(f){const p=await f;e.updateMatch(n,v=>({...v,...p}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const p=e.router.getMatch(n),v=p._nonReactive.error||p.error;v&&zf(e,p,v)}else{const p=Date.now()-f.updatedAt,v=W4(e,n),_=v?a.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:a.options.staleTime??e.router.options.defaultStaleTime??0,y=a.options.shouldReload,b=typeof y=="function"?y(bq(e,n,t,a)):y,w=!!v&&!e.router.state.matches.some(j=>j.id===n),x=e.router.getMatch(n);x._nonReactive.loaderPromise=Y0(),w!==x.preload&&e.updateMatch(n,j=>({...j,preload:w}));const{status:S,invalid:C}=x;if(i=S==="success"&&(C||(b??p>_)),!(v&&a.options.preload===!1))if(i&&!e.sync)o=!0,(async()=>{var j,T;try{await _q(e,n,t,a);const E=e.router.getMatch(n);(j=E._nonReactive.loaderPromise)==null||j.resolve(),(T=E._nonReactive.loadPromise)==null||T.resolve(),E._nonReactive.loaderPromise=void 0}catch(E){Vu(E)&&await e.router.navigate(E.options)}})();else if(S!=="success"||i&&e.sync)await _q(e,n,t,a);else{const j=zy(e,n,a);if(j){const T=await j;e.updateMatch(n,E=>({...E,...T}))}}}}const s=e.router.getMatch(n);o||((c=s._nonReactive.loaderPromise)==null||c.resolve(),(d=s._nonReactive.loadPromise)==null||d.resolve()),clearTimeout(s._nonReactive.pendingTimeout),s._nonReactive.pendingTimeout=void 0,o||(s._nonReactive.loaderPromise=void 0),s._nonReactive.dehydrated=void 0;const l=o?s.isFetching:!1;return l!==s.isFetching||s.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:l,invalid:!1})),e.router.getMatch(n)):s};async function xq(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&U4(t);try{for(let i=0;i{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{var r;const n=[];for(const i of Sq){const o=(r=e.options[i])==null?void 0:r.preload;o&&n.push(o())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function V4(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function kq(e){var t;for(const n of Sq)if((t=e.options[n])!=null&&t.preload)return!0;return!1}const Sq=["component","errorComponent","pendingComponent","notFoundComponent"];function F8e(e){return{input:({url:t})=>{for(const n of e)t=Cq(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=jq(e[n],t);return t}}}function B8e(e){const t=z4(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),o=e.caseSensitive?r:r.toLowerCase();return{input:({url:a})=>{const s=e.caseSensitive?a.pathname:a.pathname.toLowerCase();return s===i?a.pathname="/":s.startsWith(o)&&(a.pathname=a.pathname.slice(n.length)),a},output:({url:a})=>(a.pathname=ed(["/",t,a.pathname]),a)}}function Cq(e,t){var r;const n=(r=e==null?void 0:e.input)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function jq(e,t){var r;const n=(r=e==null?void 0:e.output)==null?void 0:r.call(e,{url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function sp(e){const t=e.resolvedLocation,n=e.location,r=(t==null?void 0:t.pathname)!==n.pathname,i=(t==null?void 0:t.href)!==n.href,o=(t==null?void 0:t.hash)!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:i,hashChanged:o}}class U8e{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{var d;n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,i=this.basepath??(r==null?void 0:r.basepath)??"/",o=this.basepath===void 0,a=r==null?void 0:r.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(f=>[encodeURIComponent(f),f])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=Gje())),this.origin=this.options.origin,this.origin||(!this.isServer&&(window!=null&&window.origin)&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new Zje(V8e(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(f=>!["redirected"].includes(f.status))}}}),j8e(this));let s=!1;const l=this.options.basepath??"/",c=this.options.rewrite;if(o||i!==l||a!==c){this.basepath=l;const f=[];z4(l)!==""&&f.push(B8e({basepath:l})),c&&f.push(c),this.rewrite=f.length===0?void 0:f.length===1?f[0]:F8e(f),this.history&&this.updateLatestLocation(),s=!0}s&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof((d=window.CSS)==null?void 0:d.supports)=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:i}=x8e({routeTree:this.routeTree,initRoute:(a,s)=>{a.init({originalIndex:s})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=i;const o=this.options.notFoundRoute;o&&(o.init({originalIndex:99999999999}),this.routesById[o.id]=o)},this.subscribe=(n,r)=>{const i={eventType:n,fn:r};return this.subscribers.add(i),()=>{this.subscribers.delete(i)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const i=({href:l,state:c})=>{const d=new URL(l,this.origin),f=Cq(this.rewrite,d),p=this.options.parseSearch(f.search),v=this.options.stringifySearch(p);f.search=v;const _=f.href.replace(f.origin,""),{pathname:y,hash:b}=f;return{href:_,publicHref:l,url:f.href,pathname:dq(y),searchStr:v,search:Ul(r==null?void 0:r.search,p),hash:b.split("#").reverse()[0]??"",state:Ul(r==null?void 0:r.state,c)}},o=i(n),{__tempLocation:a,__tempKey:s}=o.state;if(a&&(!s||s===this.tempLocationKey)){const l=i(a);return l.state.key=o.state.key,l.state.__TSR_key=o.state.__TSR_key,delete l.state.__tempLocation,{...l,maskedLocation:o}}return o},this.resolvePathWithBase=(n,r)=>t8e({base:n,to:rT(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,i)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},i):this.matchRoutesInternal(n,r),this.parsePathnameCache=R8e(1e3),this.getMatchedRoutes=(n,r)=>H8e({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(i=>i.status==="pending"),r=this.state.matches.filter(i=>i.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(i=>{this.cancelMatch(i.id)})},this.buildLocation=n=>{const r=(o={})=>{var M,P;const a=o._fromLocation||this.pendingBuiltLocation||this.latestLocation,s=this.matchRoutes(a,{_buildLocation:!0}),l=nT(s);o.from;const c=o.unsafeRelative==="path"?a.pathname:o.from??l.fullPath,d=this.resolvePathWithBase(c,"."),f=l.search,p={...l.params},v=o.to?this.resolvePathWithBase(d,`${o.to}`):this.resolvePathWithBase(d,"."),_=o.params===!1||o.params===null?{}:(o.params??!0)===!0?p:Object.assign(p,op(o.params,p)),y=oT({path:v,params:_,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(y,void 0,{_buildLocation:!0}).map(te=>this.looseRoutesById[te.routeId]);if(Object.keys(_).length>0)for(const te of b){const Z=((M=te.options.params)==null?void 0:M.stringify)??te.options.stringifyParams;Z&&Object.assign(_,Z(_))}const w=dq(oT({path:v,params:_,leaveParams:n.leaveParams,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let x=f;if(n._includeValidateSearch&&((P=this.options.search)!=null&&P.strict)){const te={};b.forEach(Z=>{if(Z.options.validateSearch)try{Object.assign(te,cT(Z.options.validateSearch,{...te,...x}))}catch{}}),x=te}x=Z8e({search:x,dest:o,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),x=Ul(f,x);const S=this.options.stringifySearch(x),C=o.hash===!0?a.hash:o.hash?op(o.hash,a.hash):void 0,j=C?`#${C}`:"";let T=o.state===!0?a.state:o.state?op(o.state,a.state):{};T=Ul(a.state,T);const E=`${w}${S}${j}`,$=new URL(E,this.origin),A=jq(this.rewrite,$);return{publicHref:A.pathname+A.search+A.hash,href:E,url:A.href,pathname:w,search:x,searchStr:S,state:T,hash:C??"",unmaskOnReload:o.unmaskOnReload}},i=(o={},a)=>{var c;const s=r(o);let l=a?r(a):void 0;if(!l){let d={};const f=(c=this.options.routeMasks)==null?void 0:c.find(p=>{const v=aT(s.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return v?(d=v,!0):!1});if(f){const{from:p,...v}=f;a={from:n.from,...v,params:d},l=r(a)}}return l&&(s.maskedLocation=l),s};return n.mask?i(n,{from:n.from,...n.mask}):i(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...i})=>{const o=()=>{const l=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];l.forEach(d=>{i.state[d]=this.latestLocation.state[d]});const c=Rf(i.state,this.latestLocation.state);return l.forEach(d=>{delete i.state[d]}),c},a=Pf(this.latestLocation.href)===Pf(i.href),s=this.commitLocationPromise;if(this.commitLocationPromise=Y0(()=>{s==null||s.resolve()}),a&&o())this.load();else{let{maskedLocation:l,hashScrollIntoView:c,...d}=i;l&&(d={...l,state:{...l.state,__tempKey:void 0,__tempLocation:{...d,search:d.searchStr,state:{...d.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(d.unmaskOnReload??this.options.unmaskOnReload??!1)&&(d.state.__tempKey=this.tempLocationKey)),d.state.__hashScrollIntoViewOptions=c??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[i.replace?"replace":"push"](d.publicHref,d.state,{ignoreBlocker:r})}return this.resetNextScroll=i.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:i,viewTransition:o,ignoreBlocker:a,href:s,...l}={})=>{if(s){const f=this.history.location.state.__TSR_index,p=O4(s,{__TSR_index:n?f:f+1});l.to=p.pathname,l.search=this.options.parseSearch(p.search),l.hash=p.hash.slice(1)}const c=this.buildLocation({...l,_includeValidateSearch:!0});this.pendingBuiltLocation=c;const d=this.commitLocation({...c,viewTransition:o,replace:n,resetScroll:r,hashScrollIntoView:i,ignoreBlocker:a});return Promise.resolve().then(()=>{this.pendingBuiltLocation===c&&(this.pendingBuiltLocation=void 0)}),d},this.navigate=({to:n,reloadDocument:r,href:i,...o})=>{if(!r&&i)try{new URL(`${i}`),r=!0}catch{}return r?(i||(i=this.buildLocation({to:n,...o}).url),o.replace?window.location.replace(i):window.location.href=i,Promise.resolve()):this.buildAndCommitLocation({...o,href:i,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),i=o=>{try{return encodeURI(decodeURI(o))}catch{return o}};if(z4(i(this.latestLocation.href))!==z4(i(r.href))){let o=r.url;throw this.origin&&o.startsWith(this.origin)&&(o=o.replace(this.origin,"")||"/"),uT({href:o})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(i=>!n.some(o=>o.id===i.id))}))},this.load=async n=>{let r,i,o;for(o=new Promise(s=>{this.startTransition(async()=>{var l;try{this.beforeLoad();const c=this.latestLocation,d=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...sp({resolvedLocation:d,location:c})}),this.emit({type:"onBeforeLoad",...sp({resolvedLocation:d,location:c})}),await xq({router:this,sync:n==null?void 0:n.sync,matches:this.state.pendingMatches,location:c,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let f=[],p=[],v=[];Oy(()=>{this.__store.setState(_=>{const y=_.matches,b=_.pendingMatches||_.matches;return f=y.filter(w=>!b.some(x=>x.id===w.id)),p=b.filter(w=>!y.some(x=>x.id===w.id)),v=b.filter(w=>y.some(x=>x.id===w.id)),{..._,isLoading:!1,loadedAt:Date.now(),matches:b,pendingMatches:void 0,cachedMatches:[..._.cachedMatches,...f.filter(w=>w.status!=="error")]}}),this.clearExpiredCache()}),[[f,"onLeave"],[p,"onEnter"],[v,"onStay"]].forEach(([_,y])=>{_.forEach(b=>{var w,x;(x=(w=this.looseRoutesById[b.routeId].options)[y])==null||x.call(w,b)})})})})}})}catch(c){Vu(c)?(r=c,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wl(c)&&(i=c),this.__store.setState(d=>({...d,statusCode:r?r.status:i?404:d.matches.some(f=>f.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===o&&((l=this.commitLocationPromise)==null||l.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),s()})}),this.latestLoadPromise=o,await o;this.latestLoadPromise&&o!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.__store.state.matches.some(s=>s.status==="error")&&(a=500),a!==void 0&&this.__store.setState(s=>({...s,statusCode:a}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let i;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const o=this.latestLocation,a=this.state.resolvedLocation,s=typeof r.types=="function"?r.types(sp({resolvedLocation:a,location:o})):r.types;if(s===!1){n();return}i={update:n,types:s}}else i=n;document.startViewTransition(i)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{var o;const i=(o=this.state.pendingMatches)!=null&&o.some(a=>a.id===n)?"pendingMatches":this.state.matches.some(a=>a.id===n)?"matches":this.state.cachedMatches.some(a=>a.id===n)?"cachedMatches":"";i&&this.__store.setState(a=>{var s;return{...a,[i]:(s=a[i])==null?void 0:s.map(l=>l.id===n?r(l):l)}})})},this.getMatch=n=>{var i;const r=o=>o.id===n;return this.state.cachedMatches.find(r)??((i=this.state.pendingMatches)==null?void 0:i.find(r))??this.state.matches.find(r)},this.invalidate=n=>{const r=i=>{var o;return((o=n==null?void 0:n.filter)==null?void 0:o.call(n,i))??!0?{...i,invalid:!0,...n!=null&&n.forcePending||i.status==="error"?{status:"pending",error:void 0}:void 0}:i};return this.__store.setState(i=>{var o;return{...i,matches:i.matches.map(r),cachedMatches:i.cachedMatches.map(r),pendingMatches:(o=i.pendingMatches)==null?void 0:o.map(r)}}),this.shouldViewTransition=!1,this.load({sync:n==null?void 0:n.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let i=r.url;this.origin&&i.startsWith(this.origin)&&(i=i.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",i)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n==null?void 0:n.filter;r!==void 0?this.__store.setState(i=>({...i,cachedMatches:i.cachedMatches.filter(o=>!r(o))})):this.__store.setState(i=>({...i,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const i=this.looseRoutesById[r.routeId];if(!i.options.loader)return!0;const o=(r.preload?i.options.preloadGcTime??this.options.defaultPreloadGcTime:i.options.gcTime??this.options.defaultGcTime)??5*60*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=o};this.clearCache({filter:n})},this.loadRouteChunk=wq,this.preloadRoute=async n=>{const r=this.buildLocation(n);let i=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const o=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(s=>s.id)),a=new Set([...o,...this.state.cachedMatches.map(s=>s.id)]);Oy(()=>{i.forEach(s=>{a.has(s.id)||this.__store.setState(l=>({...l,cachedMatches:[...l.cachedMatches,s]}))})});try{return i=await xq({router:this,matches:i,location:r,preload:!0,updateMatch:(s,l)=>{o.has(s)?i=i.map(c=>c.id===s?l(c):c):this.updateMatch(s,l)}}),i}catch(s){if(Vu(s))return s.options.reloadDocument?void 0:await this.preloadRoute({...s.options,_fromLocation:r});Wl(s)||console.error(s);return}},this.matchRoute=(n,r)=>{const i={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},o=this.buildLocation(i);if(r!=null&&r.pending&&this.state.status!=="pending")return!1;const a=((r==null?void 0:r.pending)===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,s=aT(a.pathname,{...r,to:o.pathname},this.parsePathnameCache);return!s||n.params&&!Rf(s,n.params,{partial:!0})?!1:s&&((r==null?void 0:r.includeSearch)??!0)?Rf(a.search,o.search,{partial:!0})?s:!1:s},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??$8e,parseSearch:t.parseSearch??N8e}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){var d;const{foundRoute:r,matchedRoutes:i,routeParams:o}=this.getMatchedRoutes(t.pathname,(d=n==null?void 0:n.dest)==null?void 0:d.to);let a=!1;(r?r.path!=="/"&&o["**"]:Pf(t.pathname))&&(this.options.notFoundRoute?i.push(this.options.notFoundRoute):a=!0);const s=(()=>{if(a){if(this.options.notFoundMode!=="root")for(let f=i.length-1;f>=0;f--){const p=i[f];if(p.children)return p.id}return ms}})(),l=[],c=f=>f!=null&&f.id?f.context??this.options.context??void 0:this.options.context??void 0;return i.forEach((f,p)=>{var Z,O,J;const v=l[p-1],[_,y,b]=(()=>{const D=(v==null?void 0:v.search)??t.search,Y=(v==null?void 0:v._strictSearch)??void 0;try{const F=cT(f.options.validateSearch,{...D})??void 0;return[{...D,...F},{...Y,...F},void 0]}catch(F){let H=F;if(F instanceof H4||(H=new H4(F.message,{cause:F})),n==null?void 0:n.throwOnError)throw H;return[D,{},H]}})(),w=((O=(Z=f.options).loaderDeps)==null?void 0:O.call(Z,{search:_}))??"",x=w?JSON.stringify(w):"",{interpolatedPath:S,usedParams:C}=oT({path:f.fullPath,params:o,decodeCharMap:this.pathParamsDecodeCharMap}),j=f.id+S+x,T=this.getMatch(j),E=this.state.matches.find(D=>D.routeId===f.id),$=(T==null?void 0:T._strictParams)??C;let A;if(!T){const D=((J=f.options.params)==null?void 0:J.parse)??f.options.parseParams;if(D)try{Object.assign($,D($))}catch(Y){if(A=new W8e(Y.message,{cause:Y}),n==null?void 0:n.throwOnError)throw A}}Object.assign(o,$);const M=E?"stay":"enter";let P;if(T)P={...T,cause:M,params:E?Ul(E.params,o):o,_strictParams:$,search:Ul(E?E.search:T.search,_),_strictSearch:y};else{const D=f.options.loader||f.options.beforeLoad||f.lazyFn||kq(f)?"pending":"success";P={id:j,index:p,routeId:f.id,params:E?Ul(E.params,o):o,_strictParams:$,pathname:S,updatedAt:Date.now(),search:E?Ul(E.search,_):_,_strictSearch:y,searchError:void 0,status:D,isFetching:!1,error:void 0,paramsError:A,__routeContext:void 0,_nonReactive:{loadPromise:Y0()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:M,loaderDeps:E?Ul(E.loaderDeps,w):w,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:f.options.staticData||{},fullPath:f.fullPath}}n!=null&&n.preload||(P.globalNotFound=s===f.id),P.searchError=b;const te=c(v);P.context={...te,...P.__routeContext,...P.__beforeLoadContext},l.push(P)}),l.forEach((f,p)=>{const v=this.looseRoutesById[f.routeId];if(!this.getMatch(f.id)&&(n==null?void 0:n._buildLocation)!==!0){const _=l[p-1],y=c(_);if(v.options.context){const b={deps:f.loaderDeps,params:f.params,context:y??{},location:t,navigate:w=>this.navigate({...w,_fromLocation:t}),buildLocation:this.buildLocation,cause:f.cause,abortController:f.abortController,preload:!!f.preload,matches:l};f.__routeContext=v.options.context(b)??void 0}f.context={...y,...f.__routeContext,...f.__beforeLoadContext}}}),l}}class H4 extends Error{}class W8e extends Error{}function V8e(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function cT(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new H4("Async validation not supported");if(n.issues)throw new H4(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function H8e({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:i,flatRoutes:o,parseCache:a}){let s={};const l=Pf(e),c=v=>{var _;return aT(l,{to:v.fullPath,caseSensitive:((_=v.options)==null?void 0:_.caseSensitive)??n,fuzzy:!0},a)};let d=t!==void 0?r[t]:void 0;if(d)s=c(d);else{let v;for(const _ of o){const y=c(_);if(y)if(_.path!=="/"&&y["**"])v||(v={foundRoute:_,routeParams:y});else{d=_,s=y;break}}!d&&v&&(d=v.foundRoute,s=v.routeParams)}let f=d||i[ms];const p=[f];for(;f.parentRoute;)f=f.parentRoute,p.push(f);return p.reverse(),{matchedRoutes:p,routeParams:s,foundRoute:d}}function Z8e({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const i=n.reduce((s,l)=>{var d;const c=[];if("search"in l.options)(d=l.options.search)!=null&&d.middlewares&&c.push(...l.options.search.middlewares);else if(l.options.preSearchFilters||l.options.postSearchFilters){const f=({search:p,next:v})=>{let _=p;"preSearchFilters"in l.options&&l.options.preSearchFilters&&(_=l.options.preSearchFilters.reduce((b,w)=>w(b),p));const y=v(_);return"postSearchFilters"in l.options&&l.options.postSearchFilters?l.options.postSearchFilters.reduce((b,w)=>w(b),y):y};c.push(f)}if(r&&l.options.validateSearch){const f=({search:p,next:v})=>{const _=v(p);try{return{..._,...cT(l.options.validateSearch,_)??void 0}}catch{return _}};c.push(f)}return s.concat(c)},[])??[],o=({search:s})=>t.search?t.search===!0?s:op(t.search,s):{};i.push(o);const a=(s,l)=>{if(s>=i.length)return l;const c=i[s];return c({search:l,next:d=>a(s+1,d)})};return a(0,e)}const q8e="Error preloading route! \u261D\uFE0F";class Tq{constructor(t){if(this.init=n=>{var c,d;this.originalIndex=n.originalIndex;const r=this.options,i=!(r!=null&&r.path)&&!(r!=null&&r.id);this.parentRoute=(d=(c=this.options).getParentRoute)==null?void 0:d.call(c),i?this._path=ms:this.parentRoute||Qc(!1);let o=i?ms:r==null?void 0:r.path;o&&o!=="/"&&(o=iT(o));const a=(r==null?void 0:r.id)||o;let s=i?ms:ed([this.parentRoute.id===ms?"":this.parentRoute.id,a]);o===ms&&(o="/"),s!==ms&&(s=ed(["/",s]));const l=s===ms?"/":ed([this.parentRoute.fullPath,o]);this._path=o,this._id=s,this._fullPath=l,this._to=l},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!(t!=null&&t.getParentRoute),(t==null?void 0:t.id)&&(t==null?void 0:t.path))throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class G8e extends Tq{constructor(t){super(t)}}function Y8e(e){return({search:t,next:n})=>{const r=n(t);return e===!0?{...t,...r}:(e.forEach(i=>{i in r||(r[i]=t[i])}),r)}}function K8e(e){return({search:t,next:n})=>{if(e===!0)return{};const r=n(t);return Array.isArray(e)?e.forEach(i=>{delete r[i]}):Object.entries(e).forEach(([i,o])=>{Rf(r[i],o)&&delete r[i]}),r}}function dT(e){const t=e.errorComponent??Z4;return u.jsx(X8e,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?m.createElement(t,{error:n,reset:r}):e.children})}class X8e extends m.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Z4({error:e}){const[t,n]=m.useState(!1);return u.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[u.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[u.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),u.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),u.jsx("div",{style:{height:".25rem"}}),t?u.jsx("div",{children:u.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?u.jsx("code",{children:e.message}):null})}):null]})}function J8e({children:e,fallback:t=null}){return Q8e()?u.jsx(Oe.Fragment,{children:e}):u.jsx(Oe.Fragment,{children:t})}function Q8e(){return Oe.useSyncExternalStore(e9e,()=>!0,()=>!1)}function e9e(){return()=>{}}var Iq={exports:{}},Eq={};/** -* @license React -* use-sync-external-store-shim/with-selector.production.js -* -* Copyright (c) Meta Platforms, Inc. and affiliates. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/var q4=m,t9e=T4e;function n9e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var r9e=typeof Object.is=="function"?Object.is:n9e,i9e=t9e.useSyncExternalStore,o9e=q4.useRef,a9e=q4.useEffect,s9e=q4.useMemo,l9e=q4.useDebugValue;Eq.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var o=o9e(null);if(o.current===null){var a={hasValue:!1,value:null};o.current=a}else a=o.current;o=s9e(function(){function l(v){if(!c){if(c=!0,d=v,v=r(v),i!==void 0&&a.hasValue){var _=a.value;if(i(_,v))return f=_}return f=v}if(_=f,r9e(d,v))return _;var y=r(v);return i!==void 0&&i(_,y)?(d=v,_):(d=v,f=y)}var c=!1,d,f,p=n===void 0?null:n;return[function(){return l(t())},p===null?void 0:function(){return l(p())}]},[t,n,r,i]);var s=i9e(e,o[0],o[1]);return a9e(function(){a.hasValue=!0,a.value=s},[s]),l9e(s),s},Iq.exports=Eq;var u9e=Iq.exports;function c9e(e,t=r=>r,n={}){const r=n.equal??d9e;return u9e.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function d9e(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!t.has(r)||!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=Nq(e);if(n.length!==Nq(t).length)return!1;for(let r=0;r"u"?fT:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=fT,fT)}function gs(e){const t=m.useContext($q());return e==null||e.warn,t}function ua(e){const t=gs({warn:(e==null?void 0:e.router)===void 0}),n=(e==null?void 0:e.router)||t,r=m.useRef(void 0);return c9e(n.__store,i=>{if(e!=null&&e.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const o=Ul(r.current,e.select(i));return r.current=o,o}return e.select(i)}return i})}const G4=m.createContext(void 0),f9e=m.createContext(void 0);function Hu(e){const t=m.useContext(e.from?f9e:G4);return ua({select:n=>{const r=n.matches.find(i=>e.from?e.from===i.routeId:i.id===t);if(Qc(!((e.shouldThrow??!0)&&!r),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),r!==void 0)return e.select?e.select(r):r},structuralSharing:e.structuralSharing})}function hT(e){return Hu({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function pT(e){const{select:t,...n}=e;return Hu({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function mT(e){return Hu({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function gT(e){return Hu({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Q0(e){const t=gs();return m.useCallback(n=>t.navigate({...n,from:n.from??(e==null?void 0:e.from)}),[e==null?void 0:e.from,t])}const Y4=typeof window<"u"?m.useLayoutEffect:m.useEffect;function vT(e){const t=m.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function h9e(e,t,n={},r={}){m.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const i=new IntersectionObserver(([o])=>{t(o)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function p9e(e){const t=m.useRef(null);return m.useImperativeHandle(e,()=>t.current,[]),t}function m9e(e,t){const n=gs(),[r,i]=m.useState(!1),o=m.useRef(!1),a=p9e(t),{activeProps:s,inactiveProps:l,activeOptions:c,to:d,preload:f,preloadDelay:p,hashScrollIntoView:v,replace:_,startTransition:y,resetScroll:b,viewTransition:w,children:x,target:S,disabled:C,style:j,className:T,onClick:E,onFocus:$,onMouseEnter:A,onMouseLeave:M,onTouchStart:P,ignoreBlocker:te,params:Z,search:O,hash:J,state:D,mask:Y,reloadDocument:F,unsafeRelative:H,from:ee,_fromLocation:ce,...U}=e,ae=ua({select:Qe=>Qe.location.search,structuralSharing:!0}),je=e.from,me=m.useMemo(()=>({...e,from:je}),[n,ae,je,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ke=m.useMemo(()=>n.buildLocation({...me}),[n,me]),he=m.useMemo(()=>{if(C)return;let Qe=ke.maskedLocation?ke.maskedLocation.url:ke.url,Ke=!1;return n.origin&&(Qe.startsWith(n.origin)?Qe=n.history.createHref(Qe.replace(n.origin,""))||"/":Ke=!0),{href:Qe,external:Ke}},[C,ke.maskedLocation,ke.url,n.origin,n.history]),ue=m.useMemo(()=>{if(he!=null&&he.external)return he.href;try{return new URL(d),d}catch{}},[d,he]),re=e.reloadDocument||ue?!1:f??n.options.defaultPreload,ge=p??n.options.defaultPreloadDelay??0,$e=ua({select:Qe=>{if(ue)return!1;if(c!=null&&c.exact){if(!Qje(Qe.location.pathname,ke.pathname,n.basepath))return!1}else{const Ke=D4(Qe.location.pathname,n.basepath),De=D4(ke.pathname,n.basepath);if(!(Ke.startsWith(De)&&(Ke.length===De.length||Ke[De.length]==="/")))return!1}return((c==null?void 0:c.includeSearch)??!0)&&!Rf(Qe.location.search,ke.search,{partial:!(c!=null&&c.exact),ignoreUndefined:!(c!=null&&c.explicitUndefined)})?!1:c!=null&&c.includeHash?Qe.location.hash===ke.hash:!0}}),pe=m.useCallback(()=>{n.preloadRoute({...me}).catch(Qe=>{console.warn(Qe),console.warn(q8e)})},[n,me]),ye=m.useCallback(Qe=>{Qe!=null&&Qe.isIntersecting&&pe()},[pe]);h9e(a,ye,_9e,{disabled:!!C||re!=="viewport"}),m.useEffect(()=>{o.current||!C&&re==="render"&&(pe(),o.current=!0)},[C,pe,re]);const Se=Qe=>{const Ke=Qe.currentTarget.getAttribute("target"),De=S!==void 0?S:Ke;if(!C&&!x9e(Qe)&&!Qe.defaultPrevented&&(!De||De==="_self")&&Qe.button===0){Qe.preventDefault(),Kc.flushSync(()=>{i(!0)});const Dt=n.subscribe("onResolved",()=>{Dt(),i(!1)});n.navigate({...me,replace:_,resetScroll:b,hashScrollIntoView:v,startTransition:y,viewTransition:w,ignoreBlocker:te})}};if(ue)return{...U,ref:a,href:ue,...x&&{children:x},...S&&{target:S},...C&&{disabled:C},...j&&{style:j},...T&&{className:T},...E&&{onClick:E},...$&&{onFocus:$},...A&&{onMouseEnter:A},...M&&{onMouseLeave:M},...P&&{onTouchStart:P}};const Ce=Qe=>{C||re&&pe()},Be=Ce,Ge=Qe=>{if(!(C||!re))if(!ge)pe();else{const Ke=Qe.target;if(Dy.has(Ke))return;const De=setTimeout(()=>{Dy.delete(Ke),pe()},ge);Dy.set(Ke,De)}},xt=Qe=>{if(C||!re||!ge)return;const Ke=Qe.target,De=Dy.get(Ke);De&&(clearTimeout(De),Dy.delete(Ke))},St=$e?op(s,{})??g9e:yT,ut=$e?yT:op(l,{})??yT,ct=[T,St.className,ut.className].filter(Boolean).join(" "),bt=(j||St.style||ut.style)&&{...j,...St.style,...ut.style};return{...U,...St,...ut,href:he==null?void 0:he.href,ref:a,onClick:Ay([E,Se]),onFocus:Ay([$,Ce]),onMouseEnter:Ay([A,Ge]),onMouseLeave:Ay([M,xt]),onTouchStart:Ay([P,Be]),disabled:!!C,target:S,...bt&&{style:bt},...ct&&{className:ct},...C&&v9e,...$e&&y9e,...r&&b9e}}const yT={},g9e={className:"active"},v9e={role:"link","aria-disabled":!0},y9e={"data-status":"active","aria-current":"page"},b9e={"data-transitioning":"transitioning"},Dy=new WeakMap,_9e={rootMargin:"100px"},Ay=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},lp=m.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:i,ref:o,...a}=m9e(r,t),s=typeof r.children=="function"?r.children({isActive:a["data-status"]==="active"}):r.children;return n===void 0&&delete a.disabled,m.createElement(n||"a",{...a,ref:o},s)});function x9e(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}let w9e=class extends Tq{constructor(e){super(e),this.useMatch=t=>Hu({select:t==null?void 0:t.select,from:this.id,structuralSharing:t==null?void 0:t.structuralSharing}),this.useRouteContext=t=>Hu({...t,from:this.id,select:n=>t!=null&&t.select?t.select(n.context):n.context}),this.useSearch=t=>gT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useParams=t=>mT({select:t==null?void 0:t.select,structuralSharing:t==null?void 0:t.structuralSharing,from:this.id}),this.useLoaderDeps=t=>pT({...t,from:this.id}),this.useLoaderData=t=>hT({...t,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Oe.forwardRef((t,n)=>u.jsx(lp,{ref:n,from:this.fullPath,...t})),this.$$typeof=Symbol.for("react.memo")}};function k9e(e){return new w9e(e)}class S9e extends G8e{constructor(t){super(t),this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({...n,from:this.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useParams=n=>mT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.id}),this.useLoaderDeps=n=>pT({...n,from:this.id}),this.useLoaderData=n=>hT({...n,from:this.id}),this.useNavigate=()=>Q0({from:this.fullPath}),this.Link=Oe.forwardRef((n,r)=>u.jsx(lp,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function C9e(e){return new S9e(e)}function up(e){return typeof e=="object"?new Mq(e,{silent:!0}).createRoute(e):new Mq(e,{silent:!0}).createRoute}class Mq{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const i=k9e(r);return i.isRoot=!1,i},this.silent=n==null?void 0:n.silent}}class Lq{constructor(t){this.useMatch=n=>Hu({select:n==null?void 0:n.select,from:this.options.id,structuralSharing:n==null?void 0:n.structuralSharing}),this.useRouteContext=n=>Hu({from:this.options.id,select:r=>n!=null&&n.select?n.select(r.context):r.context}),this.useSearch=n=>gT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useParams=n=>mT({select:n==null?void 0:n.select,structuralSharing:n==null?void 0:n.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>pT({...n,from:this.options.id}),this.useLoaderData=n=>hT({...n,from:this.options.id}),this.useNavigate=()=>{const n=gs();return Q0({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function Rq(e){return typeof e=="object"?new Lq(e):t=>new Lq({id:e,...t})}function j9e(){const e=gs(),t=m.useRef({router:e,mounted:!1}),[n,r]=m.useState(!1),{hasPendingMatches:i,isLoading:o}=ua({select:f=>({isLoading:f.isLoading,hasPendingMatches:f.matches.some(p=>p.status==="pending")}),structuralSharing:!0}),a=vT(o),s=o||n||i,l=vT(s),c=o||i,d=vT(c);return e.startTransition=f=>{r(!0),m.startTransition(()=>{f(),r(!1)})},m.useEffect(()=>{const f=e.history.subscribe(e.load),p=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Pf(e.latestLocation.href)!==Pf(p.href)&&e.commitLocation({...p,replace:!0}),()=>{f()}},[e,e.history]),Y4(()=>{typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(f){console.error(f)}})())},[e]),Y4(()=>{a&&!o&&e.emit({type:"onLoad",...sp(e.state)})},[a,e,o]),Y4(()=>{d&&!c&&e.emit({type:"onBeforeRouteMount",...sp(e.state)})},[c,d,e]),Y4(()=>{l&&!s&&(e.emit({type:"onResolved",...sp(e.state)}),e.__store.setState(f=>({...f,status:"idle",resolvedLocation:f.location})),T8e(e))},[s,l,e]),null}function T9e(e){const t=ua({select:n=>`not-found-${n.location.pathname}-${n.status}`});return u.jsx(dT,{getResetKey:()=>t,onCatch:(n,r)=>{var i;if(Wl(n))(i=e.onCatch)==null||i.call(e,n,r);else throw n},errorComponent:({error:n})=>{var r;if(Wl(n))return(r=e.fallback)==null?void 0:r.call(e,n);throw n},children:e.children})}function I9e(){return u.jsx("p",{children:"Not Found"})}function eg(e){return u.jsx(u.Fragment,{children:e.children})}function Oq(e,t,n){return t.options.notFoundComponent?u.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?u.jsx(e.options.defaultNotFoundComponent,{data:n}):u.jsx(I9e,{})}function E9e({children:e}){var n;const t=gs();return t.isServer?u.jsx("script",{nonce:(n=t.options.ssr)==null?void 0:n.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function N9e(){const e=gs();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const t=(e.options.getScrollRestorationKey||sT)(e.latestLocation),n=t!==sT(e.latestLocation)?t:void 0,r={storageKey:A4,shouldScrollRestoration:!0};return n&&(r.key=n),u.jsx(E9e,{children:`(${mq.toString()})(${JSON.stringify(r)})`})}const Pq=m.memo(function({matchId:e}){var b,w;const t=gs(),n=ua({select:x=>{const S=x.matches.find(C=>C.id===e);return Qc(S),{routeId:S.routeId,ssr:S.ssr,_displayPending:S._displayPending}},structuralSharing:!0}),r=t.routesById[n.routeId],i=r.options.pendingComponent??t.options.defaultPendingComponent,o=i?u.jsx(i,{}):null,a=r.options.errorComponent??t.options.defaultErrorComponent,s=r.options.onCatch??t.options.defaultOnCatch,l=r.isRoot?r.options.notFoundComponent??((b=t.options.notFoundRoute)==null?void 0:b.options.component):r.options.notFoundComponent,c=n.ssr===!1||n.ssr==="data-only",d=(!r.isRoot||r.options.wrapInSuspense||c)&&(r.options.wrapInSuspense??i??(((w=r.options.errorComponent)==null?void 0:w.preload)||c))?m.Suspense:eg,f=a?dT:eg,p=l?T9e:eg,v=ua({select:x=>x.loadedAt}),_=ua({select:x=>{var C;const S=x.matches.findIndex(j=>j.id===e);return(C=x.matches[S-1])==null?void 0:C.routeId}}),y=r.isRoot?r.options.shellComponent??eg:eg;return u.jsxs(y,{children:[u.jsx(G4.Provider,{value:e,children:u.jsx(d,{fallback:o,children:u.jsx(f,{getResetKey:()=>v,errorComponent:a||Z4,onCatch:(x,S)=>{if(Wl(x))throw x;s==null||s(x,S)},children:u.jsx(p,{fallback:x=>{if(!l||x.routeId&&x.routeId!==n.routeId||!x.routeId&&!r.isRoot)throw x;return m.createElement(l,x)},children:c||n._displayPending?u.jsx(J8e,{fallback:o,children:u.jsx(zq,{matchId:e})}):u.jsx(zq,{matchId:e})})})})}),_===ms&&t.options.scrollRestoration?u.jsxs(u.Fragment,{children:[u.jsx($9e,{}),u.jsx(N9e,{})]}):null]})});function $9e(){const e=gs(),t=m.useRef(void 0);return u.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...sp(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const zq=m.memo(function({matchId:e}){var s,l,c,d;const t=gs(),{match:n,key:r,routeId:i}=ua({select:f=>{var y;const p=f.matches.find(b=>b.id===e),v=p.routeId,_=(y=t.routesById[v].options.remountDeps??t.options.defaultRemountDeps)==null?void 0:y({routeId:v,loaderDeps:p.loaderDeps,params:p._strictParams,search:p._strictSearch});return{key:_?JSON.stringify(_):void 0,routeId:v,match:{id:p.id,status:p.status,error:p.error,_forcePending:p._forcePending,_displayPending:p._displayPending}}},structuralSharing:!0}),o=t.routesById[i],a=m.useMemo(()=>{const f=o.options.component??t.options.defaultComponent;return f?u.jsx(f,{},r):u.jsx(Dq,{})},[r,o.options.component,t.options.defaultComponent]);if(n._displayPending)throw(s=t.getMatch(n.id))==null?void 0:s._nonReactive.displayPendingPromise;if(n._forcePending)throw(l=t.getMatch(n.id))==null?void 0:l._nonReactive.minPendingPromise;if(n.status==="pending"){const f=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(f){const p=t.getMatch(n.id);if(p&&!p._nonReactive.minPendingPromise&&!t.isServer){const v=Y0();p._nonReactive.minPendingPromise=v,setTimeout(()=>{v.resolve(),p._nonReactive.minPendingPromise=void 0},f)}}throw(c=t.getMatch(n.id))==null?void 0:c._nonReactive.loadPromise}if(n.status==="notFound")return Qc(Wl(n.error)),Oq(t,o,n.error);if(n.status==="redirected")throw Qc(Vu(n.error)),(d=t.getMatch(n.id))==null?void 0:d._nonReactive.loadPromise;if(n.status==="error"){if(t.isServer){const f=(o.options.errorComponent??t.options.defaultErrorComponent)||Z4;return u.jsx(f,{error:n.error,reset:void 0,info:{componentStack:""}})}throw n.error}return a}),Dq=m.memo(function(){const e=gs(),t=m.useContext(G4),n=ua({select:l=>{var c;return(c=l.matches.find(d=>d.id===t))==null?void 0:c.routeId}}),r=e.routesById[n],i=ua({select:l=>{const c=l.matches.find(d=>d.id===t);return Qc(c),c.globalNotFound}}),o=ua({select:l=>{var f;const c=l.matches,d=c.findIndex(p=>p.id===t);return(f=c[d+1])==null?void 0:f.id}}),a=e.options.defaultPendingComponent?u.jsx(e.options.defaultPendingComponent,{}):null;if(i)return Oq(e,r,void 0);if(!o)return null;const s=u.jsx(Pq,{matchId:o});return n===ms?u.jsx(m.Suspense,{fallback:a,children:s}):s});function M9e(){const e=gs(),t=e.routesById[ms].options.pendingComponent??e.options.defaultPendingComponent,n=t?u.jsx(t,{}):null,r=e.isServer||typeof document<"u"&&e.ssr?eg:m.Suspense,i=u.jsxs(r,{fallback:n,children:[!e.isServer&&u.jsx(j9e,{}),u.jsx(L9e,{})]});return e.options.InnerWrap?u.jsx(e.options.InnerWrap,{children:i}):i}function L9e(){const e=gs(),t=ua({select:i=>{var o;return(o=i.matches[0])==null?void 0:o.id}}),n=ua({select:i=>i.loadedAt}),r=t?u.jsx(Pq,{matchId:t}):null;return u.jsx(G4.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:u.jsx(dT,{getResetKey:()=>n,errorComponent:Z4,onCatch:i=>{i.message||i.toString()},children:r})})}const R9e=e=>new O9e(e);class O9e extends U8e{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=up,globalThis.createLazyFileRoute=Rq):typeof window<"u"&&(window.createFileRoute=up,window.createLazyFileRoute=Rq);function P9e({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=$q(),i=u.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?u.jsx(e.options.Wrap,{children:i}):i}function z9e({router:e,...t}){return u.jsx(P9e,{router:e,...t,children:u.jsx(M9e,{})})}function D9e(e){return ua({select:t=>t.location})}const tg={};function Aq(e){return"init"in e}function bT(e){return!!e.write}function Fq(e){return"v"in e||"e"in e}function K4(e){if("e"in e)throw e.e;if((tg?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}const X4=new WeakMap;function Bq(e){var t;return J4(e)&&!!((t=X4.get(e))!=null&&t[0])}function A9e(e){const t=X4.get(e);t!=null&&t[0]&&(t[0]=!1,t[1].forEach(n=>n()))}function _T(e,t){let n=X4.get(e);if(!n){n=[!0,new Set],X4.set(e,n);const r=()=>{n[0]=!1};e.then(r,r)}n[1].add(t)}function J4(e){return typeof(e==null?void 0:e.then)=="function"}function Uq(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function Wq(e,t,n){var r;const i=new Set;for(const o of((r=n.get(e))==null?void 0:r.t)||[])n.has(o)&&i.add(o);for(const o of t.p)i.add(o);return i}const F9e=(e,t,...n)=>t.read(...n),B9e=(e,t,...n)=>t.write(...n),U9e=(e,t)=>{var n;return(n=t.unstable_onInit)==null?void 0:n.call(t,e)},W9e=(e,t,n)=>{var r;return(r=t.onMount)==null?void 0:r.call(t,n)},V9e=(e,t)=>{const n=Fo(e),r=n[0],i=n[9];if((tg?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let o=r.get(t);return o||(o={d:new Map,p:new Set,n:0},r.set(t,o),i==null||i(e,t)),o},H9e=e=>{const t=Fo(e),n=t[1],r=t[3],i=t[4],o=t[5],a=t[6],s=t[13],l=[],c=d=>{try{d()}catch(f){l.push(f)}};do{a.f&&c(a.f);const d=new Set,f=d.add.bind(d);r.forEach(p=>{var v;return(v=n.get(p))==null?void 0:v.l.forEach(f)}),r.clear(),o.forEach(f),o.clear(),i.forEach(f),i.clear(),d.forEach(c),r.size&&s(e)}while(r.size||o.size||i.size);if(l.length)throw new AggregateError(l)},Z9e=e=>{const t=Fo(e),n=t[1],r=t[2],i=t[3],o=t[11],a=t[14],s=t[17],l=[],c=new WeakSet,d=new WeakSet,f=Array.from(i);for(;f.length;){const p=f[f.length-1],v=o(e,p);if(d.has(p)){f.pop();continue}if(c.has(p)){if(r.get(p)===v.n)l.push([p,v]);else if((tg?"production":void 0)!=="production"&&r.has(p))throw new Error("[Bug] invalidated atom exists");d.add(p),f.pop();continue}c.add(p);for(const _ of Wq(p,v,n))c.has(_)||f.push(_)}for(let p=l.length-1;p>=0;--p){const[v,_]=l[p];let y=!1;for(const b of _.d.keys())if(b!==v&&i.has(b)){y=!0;break}y&&(a(e,v),s(e,v)),r.delete(v)}},q9e=(e,t)=>{var n,r;const i=Fo(e),o=i[1],a=i[2],s=i[3],l=i[6],c=i[7],d=i[11],f=i[12],p=i[13],v=i[14],_=i[16],y=i[17],b=d(e,t);if(Fq(b)&&(o.has(t)&&a.get(t)!==b.n||Array.from(b.d).every(([$,A])=>v(e,$).n===A)))return b;b.d.clear();let w=!0;function x(){o.has(t)&&(y(e,t),p(e),f(e))}function S($){var A;if($===t){const P=d(e,$);if(!Fq(P))if(Aq($))Q4(e,$,$.init);else throw new Error("no atom init");return K4(P)}const M=v(e,$);try{return K4(M)}finally{b.d.set($,M.n),Bq(b.v)&&Uq(t,b.v,M),(A=o.get($))==null||A.t.add(t),w||x()}}let C,j;const T={get signal(){return C||(C=new AbortController),C.signal},get setSelf(){return(tg?"production":void 0)!=="production"&&!bT(t)&&console.warn("setSelf function cannot be used with read-only atom"),!j&&bT(t)&&(j=(...$)=>{if((tg?"production":void 0)!=="production"&&w&&console.warn("setSelf function cannot be called in sync"),!w)try{return _(e,t,...$)}finally{p(e),f(e)}}),j}},E=b.n;try{const $=c(e,t,S,T);return Q4(e,t,$),J4($)&&(_T($,()=>C==null?void 0:C.abort()),$.then(x,x)),(n=l.r)==null||n.call(l,t),b}catch($){return delete b.v,b.e=$,++b.n,b}finally{w=!1,E!==b.n&&a.get(t)===E&&(a.set(t,b.n),s.add(t),(r=l.c)==null||r.call(l,t))}},G9e=(e,t)=>{const n=Fo(e),r=n[1],i=n[2],o=n[11],a=[t];for(;a.length;){const s=a.pop(),l=o(e,s);for(const c of Wq(s,l,r)){const d=o(e,c);i.set(c,d.n),a.push(c)}}},Vq=(e,t,...n)=>{const r=Fo(e),i=r[3],o=r[6],a=r[8],s=r[11],l=r[12],c=r[13],d=r[14],f=r[15],p=r[17];let v=!0;const _=b=>K4(d(e,b)),y=(b,...w)=>{var x;const S=s(e,b);try{if(b===t){if(!Aq(b))throw new Error("atom not writable");const C=S.n,j=w[0];Q4(e,b,j),p(e,b),C!==S.n&&(i.add(b),(x=o.c)==null||x.call(o,b),f(e,b));return}else return Vq(e,b,...w)}finally{v||(c(e),l(e))}};try{return a(e,t,_,y,...n)}finally{v=!1}},Y9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[3],a=r[6],s=r[11],l=r[15],c=r[18],d=r[19],f=s(e,t),p=i.get(t);if(p&&!Bq(f.v)){for(const[v,_]of f.d)if(!p.d.has(v)){const y=s(e,v);c(e,v).t.add(t),p.d.add(v),_!==y.n&&(o.add(v),(n=a.c)==null||n.call(a,v),l(e,v))}for(const v of p.d||[])if(!f.d.has(v)){p.d.delete(v);const _=d(e,v);_==null||_.t.delete(t)}}},Hq=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[4],a=r[6],s=r[10],l=r[11],c=r[12],d=r[13],f=r[14],p=r[16],v=l(e,t);let _=i.get(t);if(!_){f(e,t);for(const y of v.d.keys())Hq(e,y).t.add(t);if(_={l:new Set,d:new Set(v.d.keys()),t:new Set},i.set(t,_),(n=a.m)==null||n.call(a,t),bT(t)){const y=()=>{let b=!0;const w=(...x)=>{try{return p(e,t,...x)}finally{b||(d(e),c(e))}};try{const x=s(e,t,w);x&&(_.u=()=>{b=!0;try{x()}finally{b=!1}})}finally{b=!1}};o.add(y)}}return _},K9e=(e,t)=>{var n;const r=Fo(e),i=r[1],o=r[5],a=r[6],s=r[11],l=r[19],c=s(e,t);let d=i.get(t);if(d&&!d.l.size&&!Array.from(d.t).some(f=>{var p;return(p=i.get(f))==null?void 0:p.d.has(t)})){d.u&&o.add(d.u),d=void 0,i.delete(t),(n=a.u)==null||n.call(a,t);for(const f of c.d.keys()){const p=l(e,f);p==null||p.t.delete(t)}return}return d},Q4=(e,t,n)=>{const r=Fo(e)[11],i=r(e,t),o="v"in i,a=i.v;if(J4(n))for(const s of i.d.keys())Uq(t,n,r(e,s));i.v=n,delete i.e,(!o||!Object.is(a,i.v))&&(++i.n,J4(a)&&A9e(a))},X9e=(e,t)=>{const n=Fo(e)[14];return K4(n(e,t))},J9e=(e,t,...n)=>{const r=Fo(e),i=r[12],o=r[13],a=r[16];try{return a(e,t,...n)}finally{o(e),i(e)}},Q9e=(e,t,n)=>{const r=Fo(e),i=r[12],o=r[18],a=r[19],s=o(e,t).l;return s.add(n),i(e),()=>{s.delete(n),a(e,t),i(e)}},Zq=new WeakMap,Fo=e=>{const t=Zq.get(e);if((tg?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function e7e(...e){const t={get(r){const i=Fo(t)[21];return i(t,r)},set(r,...i){const o=Fo(t)[22];return o(t,r,...i)},sub(r,i){const o=Fo(t)[23];return o(t,r,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},F9e,B9e,U9e,W9e,V9e,H9e,Z9e,q9e,G9e,Vq,Y9e,Hq,K9e,Q4,X9e,J9e,Q9e,void 0].map((r,i)=>e[i]||r);return Zq.set(t,Object.freeze(n)),t}const qq={};let t7e=0;function fe(e,t){const n=`atom${++t7e}`,r={toString(){return(qq?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=n7e,r.write=r7e),t&&(r.write=t),r}function n7e(e){return e(this)}function r7e(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function i7e(){return e7e()}let Fy;function ca(){return Fy||(Fy=i7e(),(qq?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Fy),globalThis.__JOTAI_DEFAULT_STORE__!==Fy&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Fy}const o7e={},a7e=m.createContext(void 0);function Gq(e){return m.useContext(a7e)||ca()}const xT=e=>typeof(e==null?void 0:e.then)=="function",wT=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},s7e=Oe.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(wT(e),e)}),kT=new WeakMap,Yq=(e,t)=>{let n=kT.get(e);return n||(n=new Promise((r,i)=>{let o=e;const a=c=>d=>{o===c&&r(d)},s=c=>d=>{o===c&&i(d)},l=()=>{try{const c=t();xT(c)?(kT.set(c,n),o=c,c.then(a(c),s(c)),_T(c,l)):r(c)}catch(c){i(c)}};e.then(a(e),s(e)),_T(e,l)}),kT.set(e,n)),n};function X(e,t){const{delay:n,unstable_promiseStatus:r=!Oe.use}={},i=Gq(),[[o,a,s],l]=m.useReducer(d=>{const f=i.get(e);return Object.is(d[0],f)&&d[1]===i&&d[2]===e?d:[f,i,e]},void 0,()=>[i.get(e),i,e]);let c=o;if((a!==i||s!==e)&&(l(),c=i.get(e)),m.useEffect(()=>{const d=i.sub(e,()=>{if(r)try{const f=i.get(e);xT(f)&&wT(Yq(f,()=>i.get(e)))}catch{}if(typeof n=="number"){setTimeout(l,n);return}l()});return l(),d},[i,e,n,r]),m.useDebugValue(c),xT(c)){const d=Yq(c,()=>i.get(e));return r&&wT(d),s7e(d)}return c}function Ee(e,t){const n=Gq();return m.useCallback((...r)=>{if((o7e?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return n.set(e,...r)},[n,e])}function Vl(e,t){return[X(e),Ee(e)]}var Kq=Symbol.for("immer-nothing"),Xq=Symbol.for("immer-draftable"),Vn=Symbol.for("immer-state");function rl(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var By=Object.getPrototypeOf;function ng(e){return!!e&&!!e[Vn]}function td(e){var t;return e?Qq(e)||Array.isArray(e)||!!e[Xq]||!!((t=e.constructor)!=null&&t[Xq])||Wy(e)||t3(e):!1}var l7e=Object.prototype.constructor.toString(),Jq=new WeakMap;function Qq(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let r=Jq.get(n);return r===void 0&&(r=Function.toString.call(n),Jq.set(n,r)),r===l7e}function Uy(e,t,n=!0){e3(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,i)=>t(i,r,e))}function e3(e){const t=e[Vn];return t?t.type_:Array.isArray(e)?1:Wy(e)?2:t3(e)?3:0}function ST(e,t){return e3(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function eG(e,t,n){const r=e3(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function u7e(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Wy(e){return e instanceof Map}function t3(e){return e instanceof Set}function io(e){return e.copy_||e.base_}function CT(e,t){if(Wy(e))return new Map(e);if(t3(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=Qq(e);if(t===!0||t==="class_only"&&!n){const r=Object.getOwnPropertyDescriptors(e);delete r[Vn];let i=Reflect.ownKeys(r);for(let o=0;o1&&Object.defineProperties(e,{set:n3,add:n3,clear:n3,delete:n3}),Object.freeze(e),t&&Object.values(e).forEach(n=>jT(n,!0))),e}function c7e(){rl(2)}var n3={value:c7e};function r3(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var TT={};function cp(e){const t=TT[e];return t||rl(0,e),t}function d7e(e,t){TT[e]||(TT[e]=t)}var Vy;function i3(){return Vy}function f7e(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function tG(e,t){t&&(cp("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function IT(e){ET(e),e.drafts_.forEach(h7e),e.drafts_=null}function ET(e){e===Vy&&(Vy=e.parent_)}function nG(e){return Vy=f7e(Vy,e)}function h7e(e){const t=e[Vn];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function rG(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[Vn].modified_&&(IT(t),rl(4)),td(e)&&(e=o3(t,e),t.parent_||a3(t,e)),t.patches_&&cp("Patches").generateReplacementPatches_(n[Vn].base_,e,t.patches_,t.inversePatches_)):e=o3(t,n,[]),IT(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Kq?e:void 0}function o3(e,t,n){if(r3(t))return t;const r=e.immer_.shouldUseStrictIteration(),i=t[Vn];if(!i)return Uy(t,(o,a)=>iG(e,i,t,o,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return a3(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let a=o,s=!1;i.type_===3&&(a=new Set(o),o.clear(),s=!0),Uy(a,(l,c)=>iG(e,i,o,l,c,n,s),r),a3(e,o,!1),n&&e.patches_&&cp("Patches").generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function iG(e,t,n,r,i,o,a){if(i==null||typeof i!="object"&&!a)return;const s=r3(i);if(!(s&&!a)){if(ng(i)){const l=o&&t&&t.type_!==3&&!ST(t.assigned_,r)?o.concat(r):void 0,c=o3(e,i,l);if(eG(n,r,c),ng(c))e.canAutoFreeze_=!1;else return}else a&&n.add(i);if(td(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;o3(e,i),(!t||!t.scope_.parent_)&&typeof r!="symbol"&&(Wy(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&a3(e,i)}}}function a3(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&jT(t,n)}function p7e(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:i3(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,o=NT;n&&(i=[r],o=Hy);const{revoke:a,proxy:s}=Proxy.revocable(i,o);return r.draft_=s,r.revoke_=a,s}var NT={get(e,t){if(t===Vn)return e;const n=io(e);if(!ST(n,t))return m7e(e,n,t);const r=n[t];return e.finalized_||!td(r)?r:r===$T(e.base_,t)?(MT(e),e.copy_[t]=Zy(r,e)):r},has(e,t){return t in io(e)},ownKeys(e){return Reflect.ownKeys(io(e))},set(e,t,n){const r=oG(io(e),t);if(r!=null&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const i=$T(io(e),t),o=i==null?void 0:i[Vn];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(u7e(n,i)&&(n!==void 0||ST(e.base_,t)))return!0;MT(e),nd(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return $T(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,MT(e),nd(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=io(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty(){rl(11)},getPrototypeOf(e){return By(e.base_)},setPrototypeOf(){rl(12)}},Hy={};Uy(NT,(e,t)=>{Hy[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),Hy.deleteProperty=function(e,t){return Hy.set.call(this,e,t,void 0)},Hy.set=function(e,t,n){return NT.set.call(this,e[0],t,n,e[0])};function $T(e,t){const n=e[Vn];return(n?io(n):e)[t]}function m7e(e,t,n){var i;const r=oG(t,n);return r?"value"in r?r.value:(i=r.get)==null?void 0:i.call(e.draft_):void 0}function oG(e,t){if(!(t in e))return;let n=By(e);for(;n;){const r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=By(n)}}function nd(e){e.modified_||(e.modified_=!0,e.parent_&&nd(e.parent_))}function MT(e){e.copy_||(e.copy_=CT(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var g7e=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,r)=>{if(typeof t=="function"&&typeof n!="function"){const o=n;n=t;const a=this;return function(s=o,...l){return a.produce(s,c=>n.call(this,c,...l))}}typeof n!="function"&&rl(6),r!==void 0&&typeof r!="function"&&rl(7);let i;if(td(t)){const o=nG(this),a=Zy(t,void 0);let s=!0;try{i=n(a),s=!1}finally{s?IT(o):ET(o)}return tG(o,r),rG(i,o)}else if(!t||typeof t!="object"){if(i=n(t),i===void 0&&(i=t),i===Kq&&(i=void 0),this.autoFreeze_&&jT(i,!0),r){const o=[],a=[];cp("Patches").generateReplacementPatches_(t,i,o,a),r(o,a)}return i}else rl(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(o,...a)=>this.produceWithPatches(o,s=>t(s,...a));let r,i;return[this.produce(t,n,(o,a)=>{r=o,i=a}),r,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){td(e)||rl(8),ng(e)&&(e=v7e(e));const t=nG(this),n=Zy(e,void 0);return n[Vn].isManual_=!0,ET(t),n}finishDraft(e,t){const n=e&&e[Vn];(!n||!n.isManual_)&&rl(9);const{scope_:r}=n;return tG(r,t),rG(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const r=cp("Patches").applyPatches_;return ng(e)?r(e,t):this.produce(e,i=>r(i,t))}};function Zy(e,t){const n=Wy(e)?cp("MapSet").proxyMap_(e,t):t3(e)?cp("MapSet").proxySet_(e,t):p7e(e,t);return(t?t.scope_:i3()).drafts_.push(n),n}function v7e(e){return ng(e)||rl(10,e),aG(e)}function aG(e){if(!td(e)||r3(e))return e;const t=e[Vn];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=CT(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=CT(e,!0);return Uy(n,(i,o)=>{eG(n,i,aG(o))},r),t&&(t.finalized_=!1),n}function y7e(){class e extends Map{constructor(l,c){super(),this[Vn]={type_:2,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:l,draft_:this,isManual_:!1,revoked_:!1}}get size(){return io(this[Vn]).size}has(l){return io(this[Vn]).has(l)}set(l,c){const d=this[Vn];return a(d),(!io(d).has(l)||io(d).get(l)!==c)&&(n(d),nd(d),d.assigned_.set(l,!0),d.copy_.set(l,c),d.assigned_.set(l,!0)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),n(c),nd(c),c.base_.has(l)?c.assigned_.set(l,!1):c.assigned_.delete(l),c.copy_.delete(l),!0}clear(){const l=this[Vn];a(l),io(l).size&&(n(l),nd(l),l.assigned_=new Map,Uy(l.base_,c=>{l.assigned_.set(c,!1)}),l.copy_.clear())}forEach(l,c){const d=this[Vn];io(d).forEach((f,p,v)=>{l.call(c,this.get(p),p,this)})}get(l){const c=this[Vn];a(c);const d=io(c).get(l);if(c.finalized_||!td(d)||d!==c.base_.get(l))return d;const f=Zy(d,c);return n(c),c.copy_.set(l,f),f}keys(){return io(this[Vn]).keys()}values(){const l=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{const c=l.next();return c.done?c:{done:!1,value:this.get(c.value)}}}}entries(){const l=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{const c=l.next();if(c.done)return c;const d=this.get(c.value);return{done:!1,value:[c.value,d]}}}}[Symbol.iterator](){return this.entries()}}function t(s,l){return new e(s,l)}function n(s){s.copy_||(s.assigned_=new Map,s.copy_=new Map(s.base_))}class r extends Set{constructor(l,c){super(),this[Vn]={type_:3,parent_:c,scope_:c?c.scope_:i3(),modified_:!1,finalized_:!1,copy_:void 0,base_:l,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return io(this[Vn]).size}has(l){const c=this[Vn];return a(c),c.copy_?!!(c.copy_.has(l)||c.drafts_.has(l)&&c.copy_.has(c.drafts_.get(l))):c.base_.has(l)}add(l){const c=this[Vn];return a(c),this.has(l)||(o(c),nd(c),c.copy_.add(l)),this}delete(l){if(!this.has(l))return!1;const c=this[Vn];return a(c),o(c),nd(c),c.copy_.delete(l)||(c.drafts_.has(l)?c.copy_.delete(c.drafts_.get(l)):!1)}clear(){const l=this[Vn];a(l),io(l).size&&(o(l),nd(l),l.copy_.clear())}values(){const l=this[Vn];return a(l),o(l),l.copy_.values()}entries(){const l=this[Vn];return a(l),o(l),l.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(l,c){const d=this.values();let f=d.next();for(;!f.done;)l.call(c,f.value,f.value,this),f=d.next()}}function i(s,l){return new r(s,l)}function o(s){s.copy_||(s.copy_=new Set,s.base_.forEach(l=>{if(td(l)){const c=Zy(l,s);s.drafts_.set(l,c),s.copy_.add(c)}else s.copy_.add(l)}))}function a(s){s.revoked_&&rl(3,JSON.stringify(io(s)))}d7e("MapSet",{proxyMap_:t,proxySet_:i})}var b7e=new g7e,sG=b7e.produce;function Co(e){const t=fe(e,(n,r,i)=>r(t,sG(n(t),typeof i=="function"?i:()=>i)));return t}function lG(e){const t=fe(e);let n;return fe(r=>r(t),(r,i,o)=>{n!==void 0&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=void 0,i(t,o)})})}function _7e(e=6e4){const t=Co({});return n=>fe(r=>n==null?!1:!!r(t)[n],(r,i)=>{if(n==null)return;const o=setTimeout(()=>{i(t,a=>{delete a[n]})},e);i(t,a=>{a[n]&&clearTimeout(a[n]),a[n]=o})})}const LT={values:[],history:[]},uG=fe(void 0),qy=fe(void 0),cG=fe(void 0),dp=fe(void 0),dG=fe(void 0),rg=fe(void 0),s3=fe(void 0),fG=fe(void 0),hG=fe(void 0),pG=fe(void 0),mG=fe(void 0),fp=fe(void 0),gG=fe(void 0);fe(void 0);const x7e=fe(void 0),vG=fe(void 0),RT=fe(void 0),yG=fe(void 0),Gy=fe(void 0),bG=fe(void 0),_G=fe(void 0),OT=fe(void 0),PT=fe(void 0),xG=fe(LT),wG=fe(LT),kG=lG(void 0),SG=fe(void 0),CG=fe(void 0),l3=fe(void 0),jG=fe(LT),Hl=fe(void 0),Zu=fe(void 0),TG=lG(void 0),w7e=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"],k7e=Object.fromEntries(w7e.map(e=>[e,0])),IG=fe({value:k7e,history:[]}),EG=fe(void 0),NG=fe(void 0),$G=fe(void 0),MG=fe(void 0),zT=fe(void 0),LG=fe(void 0),u3=fe(void 0),RG=fe(void 0),OG=fe(void 0),c3=fe(void 0),S7e="_outer-container_13cf2_1",C7e="_inner-container_13cf2_12",PG={outerContainer:S7e,innerContainer:C7e},zG=Object.freeze({status:"aborted"});function be(e,t,n){function r(s,l){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:l,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,l);const c=a.prototype,d=Object.keys(c);for(let f=0;f{var l,c;return n!=null&&n.Parent&&s instanceof n.Parent?!0:(c=(l=s==null?void 0:s._zod)==null?void 0:l.traits)==null?void 0:c.has(e)}}),Object.defineProperty(a,"name",{value:e}),a}const DG=Symbol("zod_brand");class hp extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class d3 extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const f3={};function da(e){return e&&Object.assign(f3,e),f3}function j7e(e){return e}function T7e(e){return e}function I7e(e){}function E7e(e){throw new Error}function N7e(e){}function DT(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,r])=>t.indexOf(+n)===-1).map(([n,r])=>r)}function qe(e,t="|"){return e.map(n=>Lt(n)).join(t)}function h3(e,t){return typeof t=="bigint"?t.toString():t}function Yy(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function pp(e){return e==null}function p3(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function AG(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let i=(r.split(".")[1]||"").length;if(i===0&&/\d?e-\d?/.test(r)){const l=r.match(/\d?e-(\d?)/);l!=null&&l[1]&&(i=Number.parseInt(l[1]))}const o=n>i?n:i,a=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(t.toFixed(o).replace(".",""));return a%s/10**o}const FG=Symbol("evaluating");function vn(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==FG)return r===void 0&&(r=FG,r=n()),r},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function $7e(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function Df(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function rd(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function M7e(e){return rd(e._zod.def)}function L7e(e,t){return t?t.reduce((n,r)=>n==null?void 0:n[r],e):e}function R7e(e){const t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{const i={};for(let o=0;o{};function ig(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const UG=Yy(()=>{var e;if(typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function mp(e){if(ig(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ig(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function m3(e){return mp(e)?{...e}:Array.isArray(e)?[...e]:e}function P7e(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}const z7e=e=>{const t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},g3=new Set(["string","number","symbol"]),WG=new Set(["string","number","bigint","boolean","symbol","undefined"]);function id(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function il(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n!=null&&n.parent)&&(r._zod.parent=e),r}function Pe(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function D7e(e){let t;return new Proxy({},{get(n,r,i){return t??(t=e()),Reflect.get(t,r,i)},set(n,r,i,o){return t??(t=e()),Reflect.set(t,r,i,o)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??(t=e()),Reflect.defineProperty(t,r,i)}})}function Lt(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function VG(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const HG={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},ZG={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function qG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(i[o]=n.shape[o])}return Df(this,"shape",i),i},checks:[]});return il(e,r)}function GG(e,t){const n=e._zod.def,r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&delete i[o]}return Df(this,"shape",i),i},checks:[]});return il(e,r)}function YG(e,t){if(!mp(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0)throw new Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");const r=rd(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return Df(this,"shape",i),i},checks:[]});return il(e,r)}function KG(e,t){if(!mp(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n={...e._zod.def,get shape(){const r={...e._zod.def.shape,...t};return Df(this,"shape",r),r},checks:e._zod.def.checks};return il(e,n)}function XG(e,t){const n=rd(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return Df(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return il(e,n)}function JG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in i))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=e?new e({type:"optional",innerType:i[a]}):i[a])}else for(const a in i)o[a]=e?new e({type:"optional",innerType:i[a]}):i[a];return Df(this,"shape",o),o},checks:[]});return il(t,r)}function QG(e,t,n){const r=rd(t._zod.def,{get shape(){const i=t._zod.def.shape,o={...i};if(n)for(const a in n){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);n[a]&&(o[a]=new e({type:"nonoptional",innerType:i[a]}))}else for(const a in i)o[a]=new e({type:"nonoptional",innerType:i[a]});return Df(this,"shape",o),o},checks:[]});return il(t,r)}function gp(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Ky(e){return typeof e=="string"?e:e==null?void 0:e.message}function ql(e,t,n){var i,o,a,s,l,c;const r={...e,path:e.path??[]};if(!e.message){const d=Ky((a=(o=(i=e.inst)==null?void 0:i._zod.def)==null?void 0:o.error)==null?void 0:a.call(o,e))??Ky((s=t==null?void 0:t.error)==null?void 0:s.call(t,e))??Ky((l=n.customError)==null?void 0:l.call(n,e))??Ky((c=n.localeError)==null?void 0:c.call(n,e))??"Invalid input";r.message=d}return delete r.inst,delete r.continue,t!=null&&t.reportInput||delete r.input,r}function v3(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function y3(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function og(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function A7e(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function eY(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;rt.toString(16).padStart(2,"0")).join("")}class V7e{constructor(...t){}}const nY=Object.freeze(Object.defineProperty({__proto__:null,BIGINT_FORMAT_RANGES:ZG,Class:V7e,NUMBER_FORMAT_RANGES:HG,aborted:gp,allowsEval:UG,assert:N7e,assertEqual:j7e,assertIs:I7e,assertNever:E7e,assertNotEqual:T7e,assignProp:Df,base64ToUint8Array:eY,base64urlToUint8Array:F7e,cached:Yy,captureStackTrace:FT,cleanEnum:A7e,cleanRegex:p3,clone:il,cloneDef:M7e,createTransparentProxy:D7e,defineLazy:vn,esc:AT,escapeRegex:id,extend:YG,finalizeIssue:ql,floatSafeRemainder:AG,getElementAtPath:L7e,getEnumValues:DT,getLengthableOrigin:y3,getParsedType:z7e,getSizableOrigin:v3,hexToUint8Array:U7e,isObject:ig,isPlainObject:mp,issue:og,joinValues:qe,jsonStringifyReplacer:h3,merge:XG,mergeDefs:rd,normalizeParams:Pe,nullish:pp,numKeys:P7e,objectClone:$7e,omit:GG,optionalKeys:VG,partial:JG,pick:qG,prefixIssues:Zl,primitiveTypes:WG,promiseAllObject:R7e,propertyKeyTypes:g3,randomString:O7e,required:QG,safeExtend:KG,shallowClone:m3,slugify:BG,stringifyPrimitive:Lt,uint8ArrayToBase64:tY,uint8ArrayToBase64url:B7e,uint8ArrayToHex:W7e,unwrapMessage:Ky},Symbol.toStringTag,{value:"Module"})),rY=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,h3,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},BT=be("$ZodError",rY),vs=be("$ZodError",rY,{Parent:Error});function UT(e,t=n=>n.message){const n={},r=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function WT(e,t=n=>n.message){const n={_errors:[]},r=i=>{for(const o of i.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(a=>r({issues:a}));else if(o.code==="invalid_key")r({issues:o.issues});else if(o.code==="invalid_element")r({issues:o.issues});else if(o.path.length===0)n._errors.push(t(o));else{let a=n,s=0;for(;sn.message){const n={errors:[]},r=(i,o=[])=>{var a,s;for(const l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(c=>r({issues:c},l.path));else if(l.code==="invalid_key")r({issues:l.issues},l.path);else if(l.code==="invalid_element")r({issues:l.issues},l.path);else{const c=[...o,...l.path];if(c.length===0){n.errors.push(t(l));continue}let d=n,f=0;for(;ftypeof r=="object"?r.key:r);for(const r of n)typeof r=="number"?t.push(`[${r}]`):typeof r=="symbol"?t.push(`[${JSON.stringify(String(r))}]`):/[^\w$]/.test(r)?t.push(`[${JSON.stringify(r)}]`):(t.length&&t.push("."),t.push(r));return t.join("")}function aY(e){var r;const t=[],n=[...e.issues].sort((i,o)=>(i.path??[]).length-(o.path??[]).length);for(const i of n)t.push(`\u2716 ${i.message}`),(r=i.path)!=null&&r.length&&t.push(` \u2192 at ${oY(i.path)}`);return t.join(` -`)}const Xy=e=>(t,n,r,i)=>{const o=r?Object.assign(r,{async:!1}):{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new hp;if(a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw FT(s,i==null?void 0:i.callee),s}return a.value},VT=Xy(vs),Jy=e=>async(t,n,r,i)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new((i==null?void 0:i.Err)??e)(a.issues.map(l=>ql(l,o,da())));throw FT(s,i==null?void 0:i.callee),s}return a.value},HT=Jy(vs),Qy=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new hp;return o.issues.length?{success:!1,error:new(e??BT)(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},sY=Qy(vs),eb=e=>async(t,n,r)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(a=>ql(a,i,da())))}:{success:!0,data:o.value}},lY=eb(vs),ZT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Xy(e)(t,n,i)},H7e=ZT(vs),qT=e=>(t,n,r)=>Xy(e)(t,n,r),Z7e=qT(vs),GT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Jy(e)(t,n,i)},q7e=GT(vs),YT=e=>async(t,n,r)=>Jy(e)(t,n,r),G7e=YT(vs),KT=e=>(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Qy(e)(t,n,i)},Y7e=KT(vs),XT=e=>(t,n,r)=>Qy(e)(t,n,r),K7e=XT(vs),JT=e=>async(t,n,r)=>{const i=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return eb(e)(t,n,i)},X7e=JT(vs),QT=e=>async(t,n,r)=>eb(e)(t,n,r),J7e=QT(vs),uY=/^[cC][^\s-]{8,}$/,cY=/^[0-9a-z]+$/,dY=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fY=/^[0-9a-vA-V]{20}$/,hY=/^[A-Za-z0-9]{27}$/,pY=/^[a-zA-Z0-9_-]{21}$/,mY=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Q7e=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,gY=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ag=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,eTe=ag(4),tTe=ag(6),nTe=ag(7),vY=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,rTe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,iTe=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,yY=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,oTe=yY,aTe=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,sTe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function bY(){return new RegExp(sTe,"u")}const _Y=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,wY=e=>{const t=id(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},kY=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,SY=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,CY=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,eI=/^[A-Za-z0-9_-]*$/,jY=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,TY=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,IY=/^\+(?:[0-9]){6,14}[0-9]$/,EY="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",NY=new RegExp(`^${EY}$`);function $Y(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function MY(e){return new RegExp(`^${$Y(e)}$`)}function LY(e){const t=$Y({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${EY}T(?:${r})$`)}const RY=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},OY=/^-?\d+n?$/,PY=/^-?\d+$/,zY=/^-?\d+(?:\.\d+)?/,DY=/^(?:true|false)$/i,AY=/^null$/i,FY=/^undefined$/i,BY=/^[^A-Z]*$/,UY=/^[^a-z]*$/,WY=/^[0-9a-fA-F]*$/;function tb(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function nb(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}const lTe=/^[0-9a-fA-F]{32}$/,uTe=tb(22,"=="),cTe=nb(22),dTe=/^[0-9a-fA-F]{40}$/,fTe=tb(27,"="),hTe=nb(27),pTe=/^[0-9a-fA-F]{64}$/,mTe=tb(43,"="),gTe=nb(43),vTe=/^[0-9a-fA-F]{96}$/,yTe=tb(64,""),bTe=nb(64),_Te=/^[0-9a-fA-F]{128}$/,xTe=tb(86,"=="),wTe=nb(86),tI=Object.freeze(Object.defineProperty({__proto__:null,base64:CY,base64url:eI,bigint:OY,boolean:DY,browserEmail:aTe,cidrv4:kY,cidrv6:SY,cuid:uY,cuid2:cY,date:NY,datetime:LY,domain:TY,duration:mY,e164:IY,email:vY,emoji:bY,extendedDuration:Q7e,guid:gY,hex:WY,hostname:jY,html5Email:rTe,idnEmail:oTe,integer:PY,ipv4:_Y,ipv6:xY,ksuid:hY,lowercase:BY,mac:wY,md5_base64:uTe,md5_base64url:cTe,md5_hex:lTe,nanoid:pY,null:AY,number:zY,rfc5322Email:iTe,sha1_base64:fTe,sha1_base64url:hTe,sha1_hex:dTe,sha256_base64:mTe,sha256_base64url:gTe,sha256_hex:pTe,sha384_base64:yTe,sha384_base64url:bTe,sha384_hex:vTe,sha512_base64:xTe,sha512_base64url:wTe,sha512_hex:_Te,string:RY,time:MY,ulid:dY,undefined:FY,unicodeEmail:yY,uppercase:UY,uuid:ag,uuid4:eTe,uuid6:tTe,uuid7:nTe,xid:fY},Symbol.toStringTag,{value:"Module"})),qr=be("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),VY={number:"number",bigint:"bigint",object:"date"},nI=be("$ZodCheckLessThan",(e,t)=>{qr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?r.value<=t.value:r.value{qr.init(e,t);const n=VY[typeof t.value];e._zod.onattach.push(r=>{const i=r._zod.bag,o=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?i.minimum=t.value:i.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),HY=be("$ZodCheckMultipleOf",(e,t)=>{qr.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):AG(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),ZY=be("$ZodCheckNumberFormat",(e,t)=>{var a;qr.init(e,t),t.format=t.format||"float64";const n=(a=t.format)==null?void 0:a.includes("int"),r=n?"int":"number",[i,o]=HG[t.format];e._zod.onattach.push(s=>{const l=s._zod.bag;l.format=t.format,l.minimum=i,l.maximum=o,n&&(l.pattern=PY)}),e._zod.check=s=>{const l=s.value;if(n){if(!Number.isInteger(l)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,continue:!t.abort});return}}lo&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:o,inst:e})}}),qY=be("$ZodCheckBigIntFormat",(e,t)=>{qr.init(e,t);const[n,r]=ZG[t.format];e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,o.minimum=n,o.maximum=r}),e._zod.check=i=>{const o=i.value;or&&i.issues.push({origin:"bigint",input:o,code:"too_big",maximum:r,inst:e})}}),GY=be("$ZodCheckMaxSize",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;i.size<=t.maximum||r.issues.push({origin:v3(i),code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),YY=be("$ZodCheckMinSize",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;i.size>=t.minimum||r.issues.push({origin:v3(i),code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),KY=be("$ZodCheckSizeEquals",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.size!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.size,i.maximum=t.size,i.size=t.size}),e._zod.check=r=>{const i=r.value,o=i.size;if(o===t.size)return;const a=o>t.size;r.issues.push({origin:v3(i),...a?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),XY=be("$ZodCheckMaxLength",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const i=r.value;if(i.length<=t.maximum)return;const o=y3(i);r.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),JY=be("$ZodCheckMinLength",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>i&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const i=r.value;if(i.length>=t.minimum)return;const o=y3(i);r.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),QY=be("$ZodCheckLengthEquals",(e,t)=>{var n;qr.init(e,t),(n=e._zod.def).when??(n.when=r=>{const i=r.value;return!pp(i)&&i.length!==void 0}),e._zod.onattach.push(r=>{const i=r._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=r=>{const i=r.value,o=i.length;if(o===t.length)return;const a=y3(i),s=o>t.length;r.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),rb=be("$ZodCheckStringFormat",(e,t)=>{var n,r;qr.init(e,t),e._zod.onattach.push(i=>{const o=i._zod.bag;o.format=t.format,t.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=i=>{t.pattern.lastIndex=0,!t.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),eK=be("$ZodCheckRegex",(e,t)=>{rb.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tK=be("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=BY),rb.init(e,t)}),nK=be("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=UY),rb.init(e,t)}),rK=be("$ZodCheckIncludes",(e,t)=>{qr.init(e,t);const n=id(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=i=>{i.value.includes(t.includes,t.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),iK=be("$ZodCheckStartsWith",(e,t)=>{qr.init(e,t);const n=new RegExp(`^${id(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),oK=be("$ZodCheckEndsWith",(e,t)=>{qr.init(e,t);const n=new RegExp(`.*${id(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const i=r._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function aK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues))}const sK=be("$ZodCheckProperty",(e,t)=>{qr.init(e,t),e._zod.check=n=>{const r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(i=>aK(i,n,t.property));aK(r,n,t.property)}}),lK=be("$ZodCheckMimeType",(e,t)=>{qr.init(e,t);const n=new Set(t.mime);e._zod.onattach.push(r=>{r._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),uK=be("$ZodCheckOverwrite",(e,t)=>{qr.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class cK{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(` -`).filter(o=>o),r=Math.min(...n.map(o=>o.length-o.trimStart().length)),i=n.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of i)this.content.push(o)}compile(){const t=Function,n=this==null?void 0:this.args,r=[...((this==null?void 0:this.content)??[""]).map(i=>` ${i}`)];return new t(...n,r.join(` -`))}}const dK={major:4,minor:1,patch:13},Ut=be("$ZodType",(e,t)=>{var i;var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=dK;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const a of o._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),(i=e._zod.deferred)==null||i.push(()=>{e._zod.run=e._zod.parse});else{const o=(s,l,c)=>{let d=gp(s),f;for(const p of l){if(p._zod.def.when){if(!p._zod.def.when(s))continue}else if(d)continue;const v=s.issues.length,_=p._zod.check(s);if(_ instanceof Promise&&(c==null?void 0:c.async)===!1)throw new hp;if(f||_ instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await _,s.issues.length!==v&&(d||(d=gp(s,v)))});else{if(s.issues.length===v)continue;d||(d=gp(s,v))}}return f?f.then(()=>s):s},a=(s,l,c)=>{if(gp(s))return s.aborted=!0,s;const d=o(l,r,c);if(d instanceof Promise){if(c.async===!1)throw new hp;return d.then(f=>e._zod.parse(f,c))}return e._zod.parse(d,c)};e._zod.run=(s,l)=>{if(l.skipChecks)return e._zod.parse(s,l);if(l.direction==="backward"){const d=e._zod.parse({value:s.value,issues:[]},{...l,skipChecks:!0});return d instanceof Promise?d.then(f=>a(f,s,l)):a(d,s,l)}const c=e._zod.parse(s,l);if(c instanceof Promise){if(l.async===!1)throw new hp;return c.then(d=>o(d,r,l))}return o(c,r,l)}}e["~standard"]={validate:o=>{var a;try{const s=sY(e,o);return s.success?{value:s.data}:{issues:(a=s.error)==null?void 0:a.issues}}catch{return lY(e,o).then(s=>{var l;return s.success?{value:s.data}:{issues:(l=s.error)==null?void 0:l.issues}})}},vendor:"zod",version:1}}),ib=be("$ZodString",(e,t)=>{var n;Ut.init(e,t),e._zod.pattern=[...((n=e==null?void 0:e._zod.bag)==null?void 0:n.patterns)??[]].pop()??RY(e._zod.bag),e._zod.parse=(r,i)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),vr=be("$ZodStringFormat",(e,t)=>{rb.init(e,t),ib.init(e,t)}),fK=be("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=gY),vr.init(e,t)}),hK=be("$ZodUUID",(e,t)=>{if(t.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ag(n))}else t.pattern??(t.pattern=ag());vr.init(e,t)}),pK=be("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vY),vr.init(e,t)}),mK=be("$ZodURL",(e,t)=>{vr.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),gK=be("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=bY()),vr.init(e,t)}),vK=be("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=pY),vr.init(e,t)}),yK=be("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=uY),vr.init(e,t)}),bK=be("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=cY),vr.init(e,t)}),_K=be("$ZodULID",(e,t)=>{t.pattern??(t.pattern=dY),vr.init(e,t)}),xK=be("$ZodXID",(e,t)=>{t.pattern??(t.pattern=fY),vr.init(e,t)}),wK=be("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=hY),vr.init(e,t)}),kK=be("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=LY(t)),vr.init(e,t)}),SK=be("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=NY),vr.init(e,t)}),CK=be("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=MY(t)),vr.init(e,t)}),jK=be("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=mY),vr.init(e,t)}),TK=be("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=_Y),vr.init(e,t),e._zod.bag.format="ipv4"}),IK=be("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=xY),vr.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),EK=be("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=wY(t.delimiter)),vr.init(e,t),e._zod.bag.format="mac"}),NK=be("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=kY),vr.init(e,t)}),$K=be("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=SY),vr.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[i,o]=r;if(!o)throw new Error;const a=Number(o);if(`${a}`!==o)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${i}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function iI(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const MK=be("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=CY),vr.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{iI(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function LK(e){if(!eI.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return iI(n)}const RK=be("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=eI),vr.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{LK(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),OK=be("$ZodE164",(e,t)=>{t.pattern??(t.pattern=IY),vr.init(e,t)});function PK(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}}const zK=be("$ZodJWT",(e,t)=>{vr.init(e,t),e._zod.check=n=>{PK(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),DK=be("$ZodCustomStringFormat",(e,t)=>{vr.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),oI=be("$ZodNumber",(e,t)=>{Ut.init(e,t),e._zod.pattern=e._zod.bag.pattern??zY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const i=n.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),AK=be("$ZodNumberFormat",(e,t)=>{ZY.init(e,t),oI.init(e,t)}),aI=be("$ZodBoolean",(e,t)=>{Ut.init(e,t),e._zod.pattern=DY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}const i=n.value;return typeof i=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),sI=be("$ZodBigInt",(e,t)=>{Ut.init(e,t),e._zod.pattern=OY,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),FK=be("$ZodBigIntFormat",(e,t)=>{qY.init(e,t),sI.init(e,t)}),BK=be("$ZodSymbol",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:i,inst:e}),n}}),UK=be("$ZodUndefined",(e,t)=>{Ut.init(e,t),e._zod.pattern=FY,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:i,inst:e}),n}}),WK=be("$ZodNull",(e,t)=>{Ut.init(e,t),e._zod.pattern=AY,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{const i=n.value;return i===null||n.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),n}}),VK=be("$ZodAny",(e,t)=>{Ut.init(e,t),e._zod.parse=n=>n}),HK=be("$ZodUnknown",(e,t)=>{Ut.init(e,t),e._zod.parse=n=>n}),ZK=be("$ZodNever",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),qK=be("$ZodVoid",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return typeof i>"u"||n.issues.push({expected:"void",code:"invalid_type",input:i,inst:e}),n}}),GK=be("$ZodDate",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}const i=n.value,o=i instanceof Date;return o&&!Number.isNaN(i.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:i,...o?{received:"Invalid Date"}:{},inst:e}),n}});function YK(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const KK=be("$ZodArray",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const o=[];for(let a=0;aYK(c,n,a))):YK(l,n,a)}return o.length?Promise.all(o).then(()=>n):n}});function b3(e,t,n,r){e.issues.length&&t.issues.push(...Zl(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function XK(e){var r,i,o,a;const t=Object.keys(e.shape);for(const s of t)if(!((a=(o=(i=(r=e.shape)==null?void 0:r[s])==null?void 0:i._zod)==null?void 0:o.traits)!=null&&a.has("$ZodType")))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const n=VG(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function JK(e,t,n,r,i,o){const a=[],s=i.keySet,l=i.catchall._zod,c=l.def.type;for(const d in t){if(s.has(d))continue;if(c==="never"){a.push(d);continue}const f=l.run({value:t[d],issues:[]},r);f instanceof Promise?e.push(f.then(p=>b3(p,n,d,t))):b3(f,n,d,t)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}const QK=be("$ZodObject",(e,t)=>{var a;if(Ut.init(e,t),!((a=Object.getOwnPropertyDescriptor(t,"shape"))!=null&&a.get)){const s=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...s};return Object.defineProperty(t,"shape",{value:l}),l}})}const n=Yy(()=>XK(t));vn(e._zod,"propValues",()=>{const s=t.shape,l={};for(const c in s){const d=s[c]._zod;if(d.values){l[c]??(l[c]=new Set);for(const f of d.values)l[c].add(f)}}return l});const r=ig,i=t.catchall;let o;e._zod.parse=(s,l)=>{o??(o=n.value);const c=s.value;if(!r(c))return s.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),s;s.value={};const d=[],f=o.shape;for(const p of o.keys){const v=f[p]._zod.run({value:c[p],issues:[]},l);v instanceof Promise?d.push(v.then(_=>b3(_,s,p,c))):b3(v,s,p,c)}return i?JK(d,c,s,l,n.value,e):d.length?Promise.all(d).then(()=>s):s}}),eX=be("$ZodObjectJIT",(e,t)=>{QK.init(e,t);const n=e._zod.parse,r=Yy(()=>XK(t)),i=f=>{const p=new cK(["shape","payload","ctx"]),v=r.value,_=x=>{const S=AT(x);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};p.write("const input = payload.value;");const y=Object.create(null);let b=0;for(const x of v.keys)y[x]=`key_${b++}`;p.write("const newResult = {};");for(const x of v.keys){const S=y[x],C=AT(x);p.write(`const ${S} = ${_(x)};`),p.write(` - if (${S}.issues.length) { - payload.issues = payload.issues.concat(${S}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${C}, ...iss.path] : [${C}] - }))); - } - - - if (${S}.value === undefined) { - if (${C} in input) { - newResult[${C}] = undefined; - } - } else { - newResult[${C}] = ${S}.value; - } - - `)}p.write("payload.value = newResult;"),p.write("return payload;");const w=p.compile();return(x,S)=>w(f,x,S)};let o;const a=ig,s=!f3.jitless,l=s&&UG.value,c=t.catchall;let d;e._zod.parse=(f,p)=>{d??(d=r.value);const v=f.value;return a(v)?s&&l&&(p==null?void 0:p.async)===!1&&p.jitless!==!0?(o||(o=i(t.shape)),f=o(f,p),c?JK([],v,f,p,d,e):f):n(f,p):(f.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),f)}});function tX(e,t,n,r){for(const o of e)if(o.issues.length===0)return t.value=o.value,t;const i=e.filter(o=>!gp(o));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(a=>ql(a,r,da())))}),t)}const lI=be("$ZodUnion",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.options.some(i=>i._zod.optin==="optional")?"optional":void 0),vn(e._zod,"optout",()=>t.options.some(i=>i._zod.optout==="optional")?"optional":void 0),vn(e._zod,"values",()=>{if(t.options.every(i=>i._zod.values))return new Set(t.options.flatMap(i=>Array.from(i._zod.values)))}),vn(e._zod,"pattern",()=>{if(t.options.every(i=>i._zod.pattern)){const i=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>p3(o.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,o)=>{if(n)return r(i,o);let a=!1;const s=[];for(const l of t.options){const c=l._zod.run({value:i.value,issues:[]},o);if(c instanceof Promise)s.push(c),a=!0;else{if(c.issues.length===0)return c;s.push(c)}}return a?Promise.all(s).then(l=>tX(l,i,e,o)):tX(s,i,e,o)}}),nX=be("$ZodDiscriminatedUnion",(e,t)=>{lI.init(e,t);const n=e._zod.parse;vn(e._zod,"propValues",()=>{const i={};for(const o of t.options){const a=o._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const[s,l]of Object.entries(a)){i[s]||(i[s]=new Set);for(const c of l)i[s].add(c)}}return i});const r=Yy(()=>{var a;const i=t.options,o=new Map;for(const s of i){const l=(a=s._zod.propValues)==null?void 0:a[t.discriminator];if(!l||l.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const c of l){if(o.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);o.set(c,s)}}return o});e._zod.parse=(i,o)=>{const a=i.value;if(!ig(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a==null?void 0:a[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:a,path:[t.discriminator],inst:e}),i)}}),rX=be("$ZodIntersection",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value,o=t.left._zod.run({value:i,issues:[]},r),a=t.right._zod.run({value:i,issues:[]},r);return o instanceof Promise||a instanceof Promise?Promise.all([o,a]).then(([s,l])=>iX(n,s,l)):iX(n,o,a)}});function uI(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(mp(e)&&mp(t)){const n=Object.keys(t),r=Object.keys(e).filter(o=>n.indexOf(o)!==-1),i={...e,...t};for(const o of r){const a=uI(e[o],t[o]);if(!a.valid)return{valid:!1,mergeErrorPath:[o,...a.mergeErrorPath]};i[o]=a.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r{Ut.init(e,t);const n=t.items;e._zod.parse=(r,i)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({input:o,inst:e,expected:"tuple",code:"invalid_type"}),r;r.value=[];const a=[],s=[...n].reverse().findIndex(d=>d._zod.optin!=="optional"),l=s===-1?0:n.length-s;if(!t.rest){const d=o.length>n.length,f=o.length=o.length&&c>=l)continue;const f=d._zod.run({value:o[c],issues:[]},i);f instanceof Promise?a.push(f.then(p=>_3(p,r,c))):_3(f,r,c)}if(t.rest){const d=o.slice(n.length);for(const f of d){c++;const p=t.rest._zod.run({value:f,issues:[]},i);p instanceof Promise?a.push(p.then(v=>_3(v,r,c))):_3(p,r,c)}}return a.length?Promise.all(a).then(()=>r):r}});function _3(e,t,n){e.issues.length&&t.issues.push(...Zl(n,e.issues)),t.value[n]=e.value}const oX=be("$ZodRecord",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!mp(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){s.add(typeof c=="number"?c.toString():c);const d=t.valueType._zod.run({value:i[c],issues:[]},r);d instanceof Promise?o.push(d.then(f=>{f.issues.length&&n.issues.push(...Zl(c,f.issues)),n.value[c]=f.value})):(d.issues.length&&n.issues.push(...Zl(c,d.issues)),n.value[c]=d.value)}let l;for(const c in i)s.has(c)||(l=l??[],l.push(c));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:l})}else{n.value={};for(const s of Reflect.ownKeys(i)){if(s==="__proto__")continue;const l=t.keyType._zod.run({value:s,issues:[]},r);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(l.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(d=>ql(d,r,da())),input:s,path:[s],inst:e}),n.value[l.value]=l.value;continue}const c=t.valueType._zod.run({value:i[s],issues:[]},r);c instanceof Promise?o.push(c.then(d=>{d.issues.length&&n.issues.push(...Zl(s,d.issues)),n.value[l.value]=d.value})):(c.issues.length&&n.issues.push(...Zl(s,c.issues)),n.value[l.value]=c.value)}}return o.length?Promise.all(o).then(()=>n):n}}),aX=be("$ZodMap",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:i,inst:e}),n;const o=[];n.value=new Map;for(const[a,s]of i){const l=t.keyType._zod.run({value:a,issues:[]},r),c=t.valueType._zod.run({value:s,issues:[]},r);l instanceof Promise||c instanceof Promise?o.push(Promise.all([l,c]).then(([d,f])=>{sX(d,f,n,a,i,e,r)})):sX(l,c,n,a,i,e,r)}return o.length?Promise.all(o).then(()=>n):n}});function sX(e,t,n,r,i,o,a){e.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,e.issues)):n.issues.push({code:"invalid_key",origin:"map",input:i,inst:o,issues:e.issues.map(s=>ql(s,a,da()))})),t.issues.length&&(g3.has(typeof r)?n.issues.push(...Zl(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:i,inst:o,key:r,issues:t.issues.map(s=>ql(s,a,da()))})),n.value.set(e.value,t.value)}const lX=be("$ZodSet",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:e,expected:"set",code:"invalid_type"}),n;const o=[];n.value=new Set;for(const a of i){const s=t.valueType._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(l=>uX(l,n))):uX(s,n)}return o.length?Promise.all(o).then(()=>n):n}});function uX(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}const cX=be("$ZodEnum",(e,t)=>{Ut.init(e,t);const n=DT(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(i=>g3.has(typeof i)).map(i=>typeof i=="string"?id(i):i.toString()).join("|")})$`),e._zod.parse=(i,o)=>{const a=i.value;return r.has(a)||i.issues.push({code:"invalid_value",values:n,input:a,inst:e}),i}}),dX=be("$ZodLiteral",(e,t)=>{if(Ut.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(r=>typeof r=="string"?id(r):r?id(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),fX=be("$ZodFile",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;return i instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:i,inst:e}),n}}),hX=be("$ZodTransform",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(o=>(n.value=o,n));if(i instanceof Promise)throw new hp;return n.value=i,n}});function pX(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const mX=be("$ZodOptional",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",e._zod.optout="optional",vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>pX(o,n.value)):pX(i,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),gX=be("$ZodNullable",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${p3(n.source)}|null)$`):void 0}),vn(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),vX=be("$ZodDefault",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>yX(o,t)):yX(i,t)}});function yX(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const bX=be("$ZodPrefault",(e,t)=>{Ut.init(e,t),e._zod.optin="optional",vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),_X=be("$ZodNonOptional",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>xX(o,e)):xX(i,e)}});function xX(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const wX=be("$ZodSuccess",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3("ZodSuccess");const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.issues.length===0,n)):(n.value=i.issues.length===0,n)}}),kX=be("$ZodCatch",(e,t)=>{Ut.init(e,t),vn(e._zod,"optin",()=>t.innerType._zod.optin),vn(e._zod,"optout",()=>t.innerType._zod.optout),vn(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(o=>(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(a=>ql(a,r,da()))},input:n.value}),n.issues=[]),n)):(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(o=>ql(o,r,da()))},input:n.value}),n.issues=[]),n)}}),SX=be("$ZodNaN",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),CX=be("$ZodPipe",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const o=t.out._zod.run(n,r);return o instanceof Promise?o.then(a=>x3(a,t.in,r)):x3(o,t.in,r)}const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>x3(o,t.out,r)):x3(i,t.out,r)}});function x3(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const dI=be("$ZodCodec",(e,t)=>{Ut.init(e,t),vn(e._zod,"values",()=>t.in._zod.values),vn(e._zod,"optin",()=>t.in._zod.optin),vn(e._zod,"optout",()=>t.out._zod.optout),vn(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if((r.direction||"forward")==="forward"){const i=t.in._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}else{const i=t.out._zod.run(n,r);return i instanceof Promise?i.then(o=>w3(o,t,r)):w3(i,t,r)}}});function w3(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||"forward")==="forward"){const r=t.transform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.out,n)):k3(e,r,t.out,n)}else{const r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(i=>k3(e,i,t.in,n)):k3(e,r,t.in,n)}}function k3(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}const jX=be("$ZodReadonly",(e,t)=>{Ut.init(e,t),vn(e._zod,"propValues",()=>t.innerType._zod.propValues),vn(e._zod,"values",()=>t.innerType._zod.values),vn(e._zod,"optin",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optin}),vn(e._zod,"optout",()=>{var n,r;return(r=(n=t.innerType)==null?void 0:n._zod)==null?void 0:r.optout}),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(TX):TX(i)}});function TX(e){return e.value=Object.freeze(e.value),e}const IX=be("$ZodTemplateLiteral",(e,t)=>{Ut.init(e,t);const n=[];for(const r of t.parts)if(typeof r=="object"&&r!==null){if(!r._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);const i=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!i)throw new Error(`Invalid template literal part: ${r._zod.traits}`);const o=i.startsWith("^")?1:0,a=i.endsWith("$")?i.length-1:i.length;n.push(i.slice(o,a))}else if(r===null||WG.has(typeof r))n.push(id(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,i)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"template_literal",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),r)}),EX=be("$ZodFunction",(e,t)=>(Ut.init(e,t),e._def=t,e._zod.def=t,e.implement=n=>{if(typeof n!="function")throw new Error("implement() must be called with a function");return function(...r){const i=e._def.input?VT(e._def.input,r):r,o=Reflect.apply(n,this,i);return e._def.output?VT(e._def.output,o):o}},e.implementAsync=n=>{if(typeof n!="function")throw new Error("implementAsync() must be called with a function");return async function(...r){const i=e._def.input?await HT(e._def.input,r):r,o=await Reflect.apply(n,this,i);return e._def.output?await HT(e._def.output,o):o}},e._zod.parse=(n,r)=>typeof n.value!="function"?(n.issues.push({code:"invalid_type",expected:"function",input:n.value,inst:e}),n):(e._def.output&&e._def.output._zod.def.type==="promise"?n.value=e.implementAsync(n.value):n.value=e.implement(n.value),n),e.input=(...n)=>{const r=e.constructor;return Array.isArray(n[0])?new r({type:"function",input:new cI({type:"tuple",items:n[0],rest:n[1]}),output:e._def.output}):new r({type:"function",input:n[0],output:e._def.output})},e.output=n=>{const r=e.constructor;return new r({type:"function",input:e._def.input,output:n})},e)),NX=be("$ZodPromise",(e,t)=>{Ut.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(i=>t.innerType._zod.run({value:i,issues:[]},r))}),$X=be("$ZodLazy",(e,t)=>{Ut.init(e,t),vn(e._zod,"innerType",()=>t.getter()),vn(e._zod,"pattern",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.pattern}),vn(e._zod,"propValues",()=>{var n,r;return(r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.propValues}),vn(e._zod,"optin",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optin)??void 0}),vn(e._zod,"optout",()=>{var n,r;return((r=(n=e._zod.innerType)==null?void 0:n._zod)==null?void 0:r.optout)??void 0}),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),MX=be("$ZodCustom",(e,t)=>{qr.init(e,t),Ut.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(o=>LX(o,n,r,e));LX(i,n,r,e)}});function LX(e,t,n,r){if(!e){const i={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(i.params=r._zod.def.params),t.issues.push(og(i))}}const kTe=()=>{const e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return i=>{switch(i.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${i.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Lt(i.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${i.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${i.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${i.prefix}"`:o.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${o.suffix}"`:o.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${o.includes}"`:o.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${o.pattern}`:`${r[o.format]??i.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${i.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${i.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${i.keys.length>1?"\u0629":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${i.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function STe(){return{localeError:kTe()}}const CTe=()=>{const e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${i.expected}, daxil olan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Lt(i.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${i.origin??"d\u0259y\u0259r"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${o.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:o.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${o.suffix}" il\u0259 bitm\u0259lidir`:o.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${o.includes}" daxil olmal\u0131d\u0131r`:o.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${o.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[o.format]??i.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${i.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${i.keys.length>1?"lar":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${i.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function jTe(){return{localeError:CTe()}}function RX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const TTe=()=>{const e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0456\u045E";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${i.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Lt(i.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=RX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.maximum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=RX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${o}${i.minimum.toString()} ${l}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${i.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${i.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${i.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function ITe(){return{localeError:TTe()}}const ETe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(e))return"\u043C\u0430\u0441\u0438\u0432";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},NTe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},file:{unit:"\u0431\u0430\u0439\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430",verb:"\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430"}};function t(r){return e[r]??null}const n={regex:"\u0432\u0445\u043E\u0434",email:"\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0436\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",base64url:"base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437",json_string:"JSON \u043D\u0438\u0437",e164:"E.164 \u043D\u043E\u043C\u0435\u0440",jwt:"JWT",template_literal:"\u0432\u0445\u043E\u0434"};return r=>{switch(r.code){case"invalid_type":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${r.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${ETe(r.input)}`;case"invalid_value":return r.values.length===1?`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${Lt(r.values[0])}`:`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.maximum.toString()} ${o.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin??"\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${i}${r.minimum.toString()} ${o.unit}`:`\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${r.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;if(i.format==="starts_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${i.prefix}"`;if(i.format==="ends_with")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${i.suffix}"`;if(i.format==="includes")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${i.includes}"`;if(i.format==="regex")return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${i.pattern}`;let o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D";return i.format==="emoji"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="datetime"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="date"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),i.format==="time"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"),i.format==="duration"&&(o="\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"),`${o} ${n[i.format]??r.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${r.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${r.keys.length>1?"\u0438":""} \u043A\u043B\u044E\u0447${r.keys.length>1?"\u043E\u0432\u0435":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${r.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434";case"invalid_element":return`\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${r.origin}`;default:return"\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"}}};function $Te(){return{localeError:NTe()}}const MTe=()=>{const e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${i.expected}, s'ha rebut ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Valor inv\xE0lid: s'esperava ${Lt(i.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${qe(i.values," o ")}`;case"too_big":{const o=i.inclusive?"com a m\xE0xim":"menys de",a=t(i.origin);return a?`Massa gran: s'esperava que ${i.origin??"el valor"} contingu\xE9s ${o} ${i.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${i.origin??"el valor"} fos ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"com a m\xEDnim":"m\xE9s de",a=t(i.origin);return a?`Massa petit: s'esperava que ${i.origin} contingu\xE9s ${o} ${i.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${i.origin} fos ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${o.prefix}"`:o.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${o.suffix}"`:o.format==="includes"?`Format inv\xE0lid: ha d'incloure "${o.includes}"`:o.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${o.pattern}`:`Format inv\xE0lid per a ${r[o.format]??i.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${i.divisor}`;case"unrecognized_keys":return`Clau${i.keys.length>1?"s":""} no reconeguda${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${i.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${i.origin}`;default:return"Entrada inv\xE0lida"}}};function LTe(){return{localeError:MTe()}}const RTe=()=>{const e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(i))return"pole";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return i=>{switch(i.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${i.expected}, obdr\u017Eeno ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Lt(i.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED m\xEDt ${o}${i.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${i.origin??"hodnota"} mus\xED b\xFDt ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${o.prefix}"`:o.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${o.suffix}"`:o.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${o.includes}"`:o.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${o.pattern}`:`Neplatn\xFD form\xE1t ${r[o.format]??i.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${i.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${qe(i.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${i.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${i.origin}`;default:return"Neplatn\xFD vstup"}}};function OTe(){return{localeError:RTe()}}const PTe=()=>{const e={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},t={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"s\xE6t",file:"fil"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"tal";case"object":return Array.isArray(a)?"liste":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype&&a.constructor?a.constructor.name:"objekt"}return s},o={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkesl\xE6t",date:"ISO-dato",time:"ISO-klokkesl\xE6t",duration:"ISO-varighed",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return a=>{switch(a.code){case"invalid_type":return`Ugyldigt input: forventede ${r(a.expected)}, fik ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Ugyldig v\xE6rdi: forventede ${Lt(a.values[0])}`:`Ugyldigt valg: forventede en af f\xF8lgende ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`For stor: forventede ${c??"value"} ${l.verb} ${s} ${a.maximum.toString()} ${l.unit??"elementer"}`:`For stor: forventede ${c??"value"} havde ${s} ${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`For lille: forventede ${c} ${l.verb} ${s} ${a.minimum.toString()} ${l.unit}`:`For lille: forventede ${c} havde ${s} ${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Ugyldig streng: skal starte med "${s.prefix}"`:s.format==="ends_with"?`Ugyldig streng: skal ende med "${s.suffix}"`:s.format==="includes"?`Ugyldig streng: skal indeholde "${s.includes}"`:s.format==="regex"?`Ugyldig streng: skal matche m\xF8nsteret ${s.pattern}`:`Ugyldig ${o[s.format]??a.format}`}case"not_multiple_of":return`Ugyldigt tal: skal v\xE6re deleligt med ${a.divisor}`;case"unrecognized_keys":return`${a.keys.length>1?"Ukendte n\xF8gler":"Ukendt n\xF8gle"}: ${qe(a.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8gle i ${a.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig v\xE6rdi i ${a.origin}`;default:return"Ugyldigt input"}}};function zTe(){return{localeError:PTe()}}const DTe=()=>{const e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"Zahl";case"object":{if(Array.isArray(i))return"Array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return i=>{switch(i.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${i.expected}, erhalten ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Lt(i.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${i.origin??"Wert"} ${o}${i.maximum.toString()} ist`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${i.origin} ${o}${i.minimum.toString()} ist`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ung\xFCltiger String: muss mit "${o.prefix}" beginnen`:o.format==="ends_with"?`Ung\xFCltiger String: muss mit "${o.suffix}" enden`:o.format==="includes"?`Ung\xFCltiger String: muss "${o.includes}" enthalten`:o.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${o.pattern} entsprechen`:`Ung\xFCltig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${i.divisor} sein`;case"unrecognized_keys":return`${i.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${i.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${i.origin}`;default:return"Ung\xFCltige Eingabe"}}};function ATe(){return{localeError:DTe()}}const FTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},BTe=()=>{const e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function t(r){return e[r]??null}const n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${FTe(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${Lt(r.values[0])}`:`Invalid option: expected one of ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Too big: expected ${r.origin??"value"} to have ${i}${r.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Too small: expected ${r.origin} to have ${i}${r.minimum.toString()} ${o.unit}`:`Too small: expected ${r.origin} to be ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${n[i.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};function OX(){return{localeError:BTe()}}const UTe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"nombro";case"object":{if(Array.isArray(e))return"tabelo";if(e===null)return"senvalora";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},WTe=()=>{const e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function t(r){return e[r]??null}const n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return r=>{switch(r.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${r.expected}, ricevi\u011Dis ${UTe(r.input)}`;case"invalid_value":return r.values.length===1?`Nevalida enigo: atendi\u011Dis ${Lt(r.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()} ${o.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Tro malgranda: atendi\u011Dis ke ${r.origin} havu ${i}${r.minimum.toString()} ${o.unit}`:`Tro malgranda: atendi\u011Dis ke ${r.origin} estu ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${i.prefix}"`:i.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${i.suffix}"`:i.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${i.includes}"`:i.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${i.pattern}`:`Nevalida ${n[i.format]??r.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${r.divisor}`;case"unrecognized_keys":return`Nekonata${r.keys.length>1?"j":""} \u015Dlosilo${r.keys.length>1?"j":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${r.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${r.origin}`;default:return"Nevalida enigo"}}};function VTe(){return{localeError:WTe()}}const HTe=()=>{const e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},t={string:"texto",number:"n\xFAmero",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"n\xFAmero grande",symbol:"s\xEDmbolo",undefined:"indefinido",null:"nulo",function:"funci\xF3n",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeraci\xF3n",union:"uni\xF3n",literal:"literal",promise:"promesa",void:"vac\xEDo",never:"nunca",unknown:"desconocido",any:"cualquiera"};function n(a){return e[a]??null}function r(a){return t[a]??a}const i=a=>{const s=typeof a;switch(s){case"number":return Number.isNaN(a)?"NaN":"number";case"object":return Array.isArray(a)?"array":a===null?"null":Object.getPrototypeOf(a)!==Object.prototype?a.constructor.name:"object"}return s},o={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return a=>{switch(a.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${r(a.expected)}, recibido ${r(i(a.input))}`;case"invalid_value":return a.values.length===1?`Entrada inv\xE1lida: se esperaba ${Lt(a.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${qe(a.values,"|")}`;case"too_big":{const s=a.inclusive?"<=":"<",l=n(a.origin),c=r(a.origin);return l?`Demasiado grande: se esperaba que ${c??"valor"} tuviera ${s}${a.maximum.toString()} ${l.unit??"elementos"}`:`Demasiado grande: se esperaba que ${c??"valor"} fuera ${s}${a.maximum.toString()}`}case"too_small":{const s=a.inclusive?">=":">",l=n(a.origin),c=r(a.origin);return l?`Demasiado peque\xF1o: se esperaba que ${c} tuviera ${s}${a.minimum.toString()} ${l.unit}`:`Demasiado peque\xF1o: se esperaba que ${c} fuera ${s}${a.minimum.toString()}`}case"invalid_format":{const s=a;return s.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${s.prefix}"`:s.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${s.suffix}"`:s.format==="includes"?`Cadena inv\xE1lida: debe incluir "${s.includes}"`:s.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${s.pattern}`:`Inv\xE1lido ${o[s.format]??a.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${a.divisor}`;case"unrecognized_keys":return`Llave${a.keys.length>1?"s":""} desconocida${a.keys.length>1?"s":""}: ${qe(a.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${r(a.origin)}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${r(a.origin)}`;default:return"Entrada inv\xE1lida"}}};function ZTe(){return{localeError:HTe()}}const qTe=()=>{const e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0622\u0631\u0627\u06CC\u0647";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return i=>{switch(i.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${i.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${n(i.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return i.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Lt(i.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${qe(i.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${i.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:o.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${o.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:o.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${o.includes}" \u0628\u0627\u0634\u062F`:o.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${o.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[o.format]??i.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${i.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${i.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${qe(i.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${i.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${i.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function GTe(){return{localeError:qTe()}}const YTe=()=>{const e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return i=>{switch(i.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${i.expected}, oli ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Lt(i.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${o}${i.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${o}${i.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${o.prefix}"`:o.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${o.suffix}"`:o.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${o.includes}"`:o.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${o.pattern}`:`Virheellinen ${r[o.format]??i.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${i.divisor} monikerta`;case"unrecognized_keys":return`${i.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${qe(i.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function KTe(){return{localeError:YTe()}}const XTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombre";case"object":{if(Array.isArray(i))return"tableau";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : ${i.expected} attendu, ${n(i.input)} re\xE7u`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : ${Lt(i.values[0])} attendu`:`Option invalide : une valeur parmi ${qe(i.values,"|")} attendue`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Trop grand : ${i.origin??"valeur"} doit ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${i.origin??"valeur"} doit \xEAtre ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Trop petit : ${i.origin} doit ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : ${i.origin} doit \xEAtre ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function JTe(){return{localeError:XTe()}}const QTe=()=>{const e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return i=>{switch(i.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${i.expected}, re\xE7u ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entr\xE9e invalide : attendu ${Lt(i.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u2264":"<",a=t(i.origin);return a?`Trop grand : attendu que ${i.origin??"la valeur"} ait ${o}${i.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${i.origin??"la valeur"} soit ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u2265":">",a=t(i.origin);return a?`Trop petit : attendu que ${i.origin} ait ${o}${i.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${i.origin} soit ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${o.prefix}"`:o.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${o.suffix}"`:o.format==="includes"?`Cha\xEEne invalide : doit inclure "${o.includes}"`:o.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${o.pattern}`:`${r[o.format]??i.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${i.divisor}`;case"unrecognized_keys":return`Cl\xE9${i.keys.length>1?"s":""} non reconnue${i.keys.length>1?"s":""} : ${qe(i.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${i.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${i.origin}`;default:return"Entr\xE9e invalide"}}};function eIe(){return{localeError:QTe()}}const tIe=()=>{const e={string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA",gender:"f"},number:{label:"\u05DE\u05E1\u05E4\u05E8",gender:"m"},boolean:{label:"\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA",gender:"m"},array:{label:"\u05DE\u05E2\u05E8\u05DA",gender:"m"},object:{label:"\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8",gender:"m"},null:{label:"\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)",gender:"m"},undefined:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)",gender:"m"},symbol:{label:"\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)",gender:"m"},function:{label:"\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4",gender:"f"},map:{label:"\u05DE\u05E4\u05D4 (Map)",gender:"f"},set:{label:"\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)",gender:"f"},file:{label:"\u05E7\u05D5\u05D1\u05E5",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2",gender:"m"},value:{label:"\u05E2\u05E8\u05DA",gender:"m"}},t={string:{unit:"\u05EA\u05D5\u05D5\u05D9\u05DD",shortLabel:"\u05E7\u05E6\u05E8",longLabel:"\u05D0\u05E8\u05D5\u05DA"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"},number:{unit:"",shortLabel:"\u05E7\u05D8\u05DF",longLabel:"\u05D2\u05D3\u05D5\u05DC"}},n=c=>c?e[c]:void 0,r=c=>{const d=n(c);return d?d.label:c??e.unknown.label},i=c=>`\u05D4${r(c)}`,o=c=>{var d;return(((d=n(c))==null?void 0:d.gender)??"m")==="f"?"\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA":"\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"},a=c=>c?t[c]??null:null,s=c=>{const d=typeof c;switch(d){case"number":return Number.isNaN(c)?"NaN":"number";case"object":return Array.isArray(c)?"array":c===null?"null":Object.getPrototypeOf(c)!==Object.prototype&&c.constructor?c.constructor.name:"object";default:return d}},l={regex:{label:"\u05E7\u05DC\u05D8",gender:"m"},email:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",gender:"f"},url:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",gender:"f"},emoji:{label:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",gender:"m"},date:{label:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",gender:"m"},time:{label:"\u05D6\u05DE\u05DF ISO",gender:"m"},duration:{label:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",gender:"m"},ipv4:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",gender:"f"},ipv6:{label:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",gender:"f"},cidrv4:{label:"\u05D8\u05D5\u05D5\u05D7 IPv4",gender:"m"},cidrv6:{label:"\u05D8\u05D5\u05D5\u05D7 IPv6",gender:"m"},base64:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",gender:"f"},base64url:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",gender:"f"},json_string:{label:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",gender:"f"},e164:{label:"\u05DE\u05E1\u05E4\u05E8 E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},includes:{label:"\u05E7\u05DC\u05D8",gender:"m"},lowercase:{label:"\u05E7\u05DC\u05D8",gender:"m"},starts_with:{label:"\u05E7\u05DC\u05D8",gender:"m"},uppercase:{label:"\u05E7\u05DC\u05D8",gender:"m"}};return c=>{var d;switch(c.code){case"invalid_type":{const f=c.expected,p=r(f),v=s(c.input),_=((d=e[v])==null?void 0:d.label)??v;return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${p}, \u05D4\u05EA\u05E7\u05D1\u05DC ${_}`}case"invalid_value":{if(c.values.length===1)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${Lt(c.values[0])}`;const f=c.values.map(v=>Lt(v));if(c.values.length===2)return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f[0]} \u05D0\u05D5 ${f[1]}`;const p=f[f.length-1];return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${f.slice(0,-1).join(", ")} \u05D0\u05D5 ${p}`}case"too_big":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.longLabel)??"\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.maximum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA":"\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.maximum}`:`\u05E7\u05D8\u05DF \u05DE-${c.maximum}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA",b=c.inclusive?`${c.maximum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA`:`\u05E4\u05D7\u05D5\u05EA \u05DE-${c.maximum} ${(f==null?void 0:f.unit)??""}`;return`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?"<=":"<",_=o(c.origin??"value");return f!=null&&f.unit?`${f.longLabel} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.maximum.toString()} ${f.unit}`:`${(f==null?void 0:f.longLabel)??"\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.maximum.toString()}`}case"too_small":{const f=a(c.origin),p=i(c.origin??"value");if(c.origin==="string")return`${(f==null?void 0:f.shortLabel)??"\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${c.minimum.toString()} ${(f==null?void 0:f.unit)??""} ${c.inclusive?"\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8":"\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim();if(c.origin==="number"){const y=c.inclusive?`\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${c.minimum}`:`\u05D2\u05D3\u05D5\u05DC \u05DE-${c.minimum}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${y}`}if(c.origin==="array"||c.origin==="set"){const y=c.origin==="set"?"\u05E6\u05E8\u05D9\u05DB\u05D4":"\u05E6\u05E8\u05D9\u05DA";if(c.minimum===1&&c.inclusive){const w=(c.origin,"\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3");return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${w}`}const b=c.inclusive?`${c.minimum} ${(f==null?void 0:f.unit)??""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8`:`\u05D9\u05D5\u05EA\u05E8 \u05DE-${c.minimum} ${(f==null?void 0:f.unit)??""}`;return`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${p} ${y} \u05DC\u05D4\u05DB\u05D9\u05DC ${b}`.trim()}const v=c.inclusive?">=":">",_=o(c.origin??"value");return f!=null&&f.unit?`${f.shortLabel} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.minimum.toString()} ${f.unit}`:`${(f==null?void 0:f.shortLabel)??"\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${p} ${_} ${v}${c.minimum.toString()}`}case"invalid_format":{const f=c;if(f.format==="starts_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${f.prefix}"`;if(f.format==="ends_with")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${f.suffix}"`;if(f.format==="includes")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${f.includes}"`;if(f.format==="regex")return`\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${f.pattern}`;const p=l[f.format],v=(p==null?void 0:p.label)??f.format,_=((p==null?void 0:p.gender)??"m")==="f"?"\u05EA\u05E7\u05D9\u05E0\u05D4":"\u05EA\u05E7\u05D9\u05DF";return`${v} \u05DC\u05D0 ${_}`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${c.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${c.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${c.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${qe(c.keys,", ")}`;case"invalid_key":return"\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8";case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${i(c.origin??"array")}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function nIe(){return{localeError:tIe()}}const rIe=()=>{const e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(i))return"t\xF6mb";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return i=>{switch(i.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${i.expected}, a kapott \xE9rt\xE9k ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Lt(i.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xFAl nagy: ${i.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${o}${i.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${i.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} m\xE9rete t\xFAl kicsi ${o}${i.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${i.origin} t\xFAl kicsi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\xC9rv\xE9nytelen string: "${o.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:o.format==="ends_with"?`\xC9rv\xE9nytelen string: "${o.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:o.format==="includes"?`\xC9rv\xE9nytelen string: "${o.includes}" \xE9rt\xE9ket kell tartalmaznia`:o.format==="regex"?`\xC9rv\xE9nytelen string: ${o.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[o.format]??i.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${i.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${i.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${i.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function iIe(){return{localeError:rIe()}}const oIe=()=>{const e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak valid: diharapkan ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak valid: diharapkan ${Lt(i.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: diharapkan ${i.origin??"value"} memiliki ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${i.origin??"value"} menjadi ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: diharapkan ${i.origin} memiliki ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${i.origin} menjadi ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak valid: harus dimulai dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak valid: harus berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak valid: harus menyertakan "${o.includes}"`:o.format==="regex"?`String tidak valid: harus sesuai pola ${o.pattern}`:`${r[o.format]??i.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${i.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${i.origin}`;default:return"Input tidak valid"}}};function aIe(){return{localeError:oIe()}}const sIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"n\xFAmer";case"object":{if(Array.isArray(e))return"fylki";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},lIe=()=>{const e={string:{unit:"stafi",verb:"a\xF0 hafa"},file:{unit:"b\xE6ti",verb:"a\xF0 hafa"},array:{unit:"hluti",verb:"a\xF0 hafa"},set:{unit:"hluti",verb:"a\xF0 hafa"}};function t(r){return e[r]??null}const n={regex:"gildi",email:"netfang",url:"vefsl\xF3\xF0",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og t\xEDmi",date:"ISO dagsetning",time:"ISO t\xEDmi",duration:"ISO t\xEDmalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 t\xF6lugildi",jwt:"JWT",template_literal:"gildi"};return r=>{switch(r.code){case"invalid_type":return`Rangt gildi: \xDE\xFA sl\xF3st inn ${sIe(r.input)} \xFEar sem \xE1 a\xF0 vera ${r.expected}`;case"invalid_value":return r.values.length===1?`Rangt gildi: gert r\xE1\xF0 fyrir ${Lt(r.values[0])}`:`\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} hafi ${i}${r.maximum.toString()} ${o.unit??"hluti"}`:`Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin??"gildi"} s\xE9 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} hafi ${i}${r.minimum.toString()} ${o.unit}`:`Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${r.origin} s\xE9 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${i.prefix}"`:i.format==="ends_with"?`\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${i.suffix}"`:i.format==="includes"?`\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${i.includes}"`:i.format==="regex"?`\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${i.pattern}`:`Rangt ${n[i.format]??r.format}`}case"not_multiple_of":return`R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${r.divisor}`;case"unrecognized_keys":return`\xD3\xFEekkt ${r.keys.length>1?"ir lyklar":"ur lykill"}: ${qe(r.keys,", ")}`;case"invalid_key":return`Rangur lykill \xED ${r.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi \xED ${r.origin}`;default:return"Rangt gildi"}}};function uIe(){return{localeError:lIe()}}const cIe=()=>{const e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numero";case"object":{if(Array.isArray(i))return"vettore";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input non valido: atteso ${i.expected}, ricevuto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input non valido: atteso ${Lt(i.values[0])}`:`Opzione non valida: atteso uno tra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Troppo grande: ${i.origin??"valore"} deve avere ${o}${i.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${i.origin??"valore"} deve essere ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Troppo piccolo: ${i.origin} deve avere ${o}${i.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${i.origin} deve essere ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Stringa non valida: deve iniziare con "${o.prefix}"`:o.format==="ends_with"?`Stringa non valida: deve terminare con "${o.suffix}"`:o.format==="includes"?`Stringa non valida: deve includere "${o.includes}"`:o.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${i.divisor}`;case"unrecognized_keys":return`Chiav${i.keys.length>1?"i":"e"} non riconosciut${i.keys.length>1?"e":"a"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${i.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${i.origin}`;default:return"Input non valido"}}};function dIe(){return{localeError:cIe()}}const fIe=()=>{const e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(i))return"\u914D\u5217";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${i.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${n(i.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return i.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Lt(i.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${qe(i.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{const o=i.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=t(i.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${a.unit??"\u8981\u7D20"}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${i.origin??"\u5024"}\u306F${i.maximum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{const o=i.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=t(i.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${a.unit}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${i.origin}\u306F${i.minimum.toString()}${o}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${o.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:o.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${o.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${i.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${i.keys.length>1?"\u7FA4":""}: ${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${i.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function hIe(){return{localeError:fIe()}}const pIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8";case"object":{if(Array.isArray(e))return"\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return{string:"\u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",boolean:"\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0"}[t]??t},mIe=()=>{const e={string:{unit:"\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},file:{unit:"\u10D1\u10D0\u10D8\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},array:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"},set:{unit:"\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8",verb:"\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1"}};function t(r){return e[r]??null}const n={regex:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0",email:"\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",url:"URL",emoji:"\u10D4\u10DB\u10DD\u10EF\u10D8",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD",date:"\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8",time:"\u10D3\u10E0\u10DD",duration:"\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0",ipv4:"IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",ipv6:"IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8",cidrv4:"IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",cidrv6:"IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8",base64:"base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",base64url:"base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",json_string:"JSON \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8",e164:"E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8",jwt:"JWT",template_literal:"\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"};return r=>{switch(r.code){case"invalid_type":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${pIe(r.input)}`;case"invalid_value":return r.values.length===1?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${Lt(r.values[0])}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${qe(r.values,"|")}-\u10D3\u10D0\u10DC`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${o.verb} ${i}${r.maximum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin??"\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} ${o.verb} ${i}${r.minimum.toString()} ${o.unit}`:`\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${r.origin} \u10D8\u10E7\u10DD\u10E1 ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.prefix}"-\u10D8\u10D7`:i.format==="ends_with"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${i.suffix}"-\u10D8\u10D7`:i.format==="includes"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${i.includes}"-\u10E1`:i.format==="regex"?`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E1\u10E2\u10E0\u10D8\u10DC\u10D2\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${i.pattern}`:`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${n[i.format]??r.format}`}case"not_multiple_of":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${r.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`;case"unrecognized_keys":return`\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${r.keys.length>1?"\u10D4\u10D1\u10D8":"\u10D8"}: ${qe(r.keys,", ")}`;case"invalid_key":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${r.origin}-\u10E8\u10D8`;case"invalid_union":return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0";case"invalid_element":return`\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${r.origin}-\u10E8\u10D8`;default:return"\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"}}};function gIe(){return{localeError:mIe()}}const vIe=()=>{const e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(i))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(i===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return i=>{switch(i.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Lt(i.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${i.origin} ${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${o.prefix}"`:o.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${o.suffix}"`:o.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${o.includes}"`:o.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${o.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${i.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${qe(i.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${i.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function PX(){return{localeError:vIe()}}function yIe(){return PX()}const bIe=()=>{const e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return i=>{switch(i.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${i.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${n(i.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return i.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Lt(i.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${qe(i.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{const o=i.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=o==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${i.maximum.toString()} ${o}${a}`}case"too_small":{const o=i.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=o==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",s=t(i.origin),l=(s==null?void 0:s.unit)??"\uC694\uC18C";return s?`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()}${l} ${o}${a}`:`${i.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${i.minimum.toString()} ${o}${a}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:o.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${o.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:o.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${o.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[o.format]??i.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${i.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${qe(i.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${i.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${i.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function _Ie(){return{localeError:bIe()}}const xIe=e=>ob(typeof e,e),ob=(e,t=void 0)=>{switch(e){case"number":return Number.isNaN(t)?"NaN":"skai\u010Dius";case"bigint":return"sveikasis skai\u010Dius";case"string":return"eilut\u0117";case"boolean":return"login\u0117 reik\u0161m\u0117";case"undefined":case"void":return"neapibr\u0117\u017Eta reik\u0161m\u0117";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return t===void 0?"ne\u017Einomas objektas":t===null?"nulin\u0117 reik\u0161m\u0117":Array.isArray(t)?"masyvas":Object.getPrototypeOf(t)!==Object.prototype&&t.constructor?t.constructor.name:"objektas";case"null":return"nulin\u0117 reik\u0161m\u0117"}return e},ab=e=>e.charAt(0).toUpperCase()+e.slice(1);function zX(e){const t=Math.abs(e),n=t%10,r=t%100;return r>=11&&r<=19||n===0?"many":n===1?"one":"few"}const wIe=()=>{const e={string:{unit:{one:"simbolis",few:"simboliai",many:"simboli\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne ilgesn\u0117 kaip",notInclusive:"turi b\u016Bti trumpesn\u0117 kaip"},bigger:{inclusive:"turi b\u016Bti ne trumpesn\u0117 kaip",notInclusive:"turi b\u016Bti ilgesn\u0117 kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"bait\u0173"},verb:{smaller:{inclusive:"turi b\u016Bti ne didesnis kaip",notInclusive:"turi b\u016Bti ma\u017Eesnis kaip"},bigger:{inclusive:"turi b\u016Bti ne ma\u017Eesnis kaip",notInclusive:"turi b\u016Bti didesnis kaip"}}},array:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}},set:{unit:{one:"element\u0105",few:"elementus",many:"element\u0173"},verb:{smaller:{inclusive:"turi tur\u0117ti ne daugiau kaip",notInclusive:"turi tur\u0117ti ma\u017Eiau kaip"},bigger:{inclusive:"turi tur\u0117ti ne ma\u017Eiau kaip",notInclusive:"turi tur\u0117ti daugiau kaip"}}}};function t(r,i,o,a){const s=e[r]??null;return s===null?s:{unit:s.unit[i],verb:s.verb[a][o?"inclusive":"notInclusive"]}}const n={regex:"\u012Fvestis",email:"el. pa\u0161to adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukm\u0117",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 u\u017Ekoduota eilut\u0117",base64url:"base64url u\u017Ekoduota eilut\u0117",json_string:"JSON eilut\u0117",e164:"E.164 numeris",jwt:"JWT",template_literal:"\u012Fvestis"};return r=>{switch(r.code){case"invalid_type":return`Gautas tipas ${xIe(r.input)}, o tik\u0117tasi - ${ob(r.expected)}`;case"invalid_value":return r.values.length===1?`Privalo b\u016Bti ${Lt(r.values[0])}`:`Privalo b\u016Bti vienas i\u0161 ${qe(r.values,"|")} pasirinkim\u0173`;case"too_big":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.maximum)),r.inclusive??!1,"smaller");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.maximum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne didesnis kaip":"ma\u017Eesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.maximum.toString()} ${o==null?void 0:o.unit}`}case"too_small":{const i=ob(r.origin),o=t(r.origin,zX(Number(r.minimum)),r.inclusive??!1,"bigger");if(o!=null&&o.verb)return`${ab(i??r.origin??"reik\u0161m\u0117")} ${o.verb} ${r.minimum.toString()} ${o.unit??"element\u0173"}`;const a=r.inclusive?"ne ma\u017Eesnis kaip":"didesnis kaip";return`${ab(i??r.origin??"reik\u0161m\u0117")} turi b\u016Bti ${a} ${r.minimum.toString()} ${o==null?void 0:o.unit}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Eilut\u0117 privalo prasid\u0117ti "${i.prefix}"`:i.format==="ends_with"?`Eilut\u0117 privalo pasibaigti "${i.suffix}"`:i.format==="includes"?`Eilut\u0117 privalo \u012Ftraukti "${i.includes}"`:i.format==="regex"?`Eilut\u0117 privalo atitikti ${i.pattern}`:`Neteisingas ${n[i.format]??r.format}`}case"not_multiple_of":return`Skai\u010Dius privalo b\u016Bti ${r.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpa\u017Eint${r.keys.length>1?"i":"as"} rakt${r.keys.length>1?"ai":"as"}: ${qe(r.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga \u012Fvestis";case"invalid_element":{const i=ob(r.origin);return`${ab(i??r.origin??"reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`}default:return"Klaidinga \u012Fvestis"}}};function kIe(){return{localeError:wIe()}}const SIe=()=>{const e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(i))return"\u043D\u0438\u0437\u0430";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return i=>{switch(i.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Invalid input: expected ${Lt(i.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0438\u043C\u0430 ${o}${i.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${i.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${o.pattern}`:`Invalid ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${i.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${i.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function CIe(){return{localeError:SIe()}}const jIe=()=>{const e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"nombor";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Input tidak sah: dijangka ${i.expected}, diterima ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Input tidak sah: dijangka ${Lt(i.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Terlalu besar: dijangka ${i.origin??"nilai"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${i.origin??"nilai"} adalah ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Terlalu kecil: dijangka ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${i.origin} adalah ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`String tidak sah: mesti bermula dengan "${o.prefix}"`:o.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${o.suffix}"`:o.format==="includes"?`String tidak sah: mesti mengandungi "${o.includes}"`:o.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${o.pattern}`:`${r[o.format]??i.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${i.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${qe(i.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${i.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${i.origin}`;default:return"Input tidak sah"}}};function TIe(){return{localeError:jIe()}}const IIe=()=>{const e={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"getal";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return i=>{switch(i.code){case"invalid_type":return`Ongeldige invoer: verwacht ${i.expected}, ontving ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ongeldige invoer: verwacht ${Lt(i.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Te groot: verwacht dat ${i.origin??"waarde"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"elementen"}`:`Te groot: verwacht dat ${i.origin??"waarde"} ${o}${i.maximum.toString()} is`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Te klein: verwacht dat ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Te klein: verwacht dat ${i.origin} ${o}${i.minimum.toString()} is`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ongeldige tekst: moet met "${o.prefix}" beginnen`:o.format==="ends_with"?`Ongeldige tekst: moet op "${o.suffix}" eindigen`:o.format==="includes"?`Ongeldige tekst: moet "${o.includes}" bevatten`:o.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${o.pattern}`:`Ongeldig: ${r[o.format]??i.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${i.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${i.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${i.origin}`;default:return"Ongeldige invoer"}}};function EIe(){return{localeError:IIe()}}const NIe=()=>{const e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"tall";case"object":{if(Array.isArray(i))return"liste";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`Ugyldig input: forventet ${i.expected}, fikk ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ugyldig verdi: forventet ${Lt(i.values[0])}`:`Ugyldig valg: forventet en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${i.origin??"value"} til \xE5 ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${i.origin} til \xE5 ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${o.prefix}"`:o.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${o.suffix}"`:o.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${o.includes}"`:o.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${o.pattern}`:`Ugyldig ${r[o.format]??i.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${i.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${i.origin}`;default:return"Ugyldig input"}}};function $Ie(){return{localeError:NIe()}}const MIe=()=>{const e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"numara";case"object":{if(Array.isArray(i))return"saf";if(i===null)return"gayb";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return i=>{switch(i.code){case"invalid_type":return`F\xE2sit giren: umulan ${i.expected}, al\u0131nan ${n(i.input)}`;case"invalid_value":return i.values.length===1?`F\xE2sit giren: umulan ${Lt(i.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${i.origin??"value"}, ${o}${i.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${i.origin}, ${o}${i.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{const o=i;return o.format==="starts_with"?`F\xE2sit metin: "${o.prefix}" ile ba\u015Flamal\u0131.`:o.format==="ends_with"?`F\xE2sit metin: "${o.suffix}" ile bitmeli.`:o.format==="includes"?`F\xE2sit metin: "${o.includes}" ihtiv\xE2 etmeli.`:o.format==="regex"?`F\xE2sit metin: ${o.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[o.format]??i.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${i.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${i.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function LIe(){return{localeError:MIe()}}const RIe=()=>{const e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(i))return"\u0627\u0631\u06D0";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return i=>{switch(i.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${i.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${n(i.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return i.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Lt(i.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${qe(i.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${i.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${o}${i.maximum.toString()} \u0648\u064A`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${i.origin} \u0628\u0627\u06CC\u062F ${o}${i.minimum.toString()} \u0648\u064A`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:o.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${o.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:o.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${o.includes}" \u0648\u0644\u0631\u064A`:o.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${o.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[o.format]??i.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${i.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${i.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${i.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${i.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function OIe(){return{localeError:RIe()}}const PIe=()=>{const e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"liczba";case"object":{if(Array.isArray(i))return"tablica";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return i=>{switch(i.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${i.expected}, otrzymano ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Lt(i.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${o}${i.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${i.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${o.prefix}"`:o.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${o.suffix}"`:o.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${o.includes}"`:o.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${o.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[o.format]??i.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${i.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${i.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${i.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function zIe(){return{localeError:PIe()}}const DIe=()=>{const e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(i))return"array";if(i===null)return"nulo";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return i=>{switch(i.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${i.expected}, recebido ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Entrada inv\xE1lida: esperado ${Lt(i.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Muito grande: esperado que ${i.origin??"valor"} tivesse ${o}${i.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${i.origin??"valor"} fosse ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Muito pequeno: esperado que ${i.origin} tivesse ${o}${i.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${i.origin} fosse ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${o.prefix}"`:o.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${o.suffix}"`:o.format==="includes"?`Texto inv\xE1lido: deve incluir "${o.includes}"`:o.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${o.pattern}`:`${r[o.format]??i.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${i.divisor}`;case"unrecognized_keys":return`Chave${i.keys.length>1?"s":""} desconhecida${i.keys.length>1?"s":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${i.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${i.origin}`;default:return"Campo inv\xE1lido"}}};function AIe(){return{localeError:DIe()}}function DX(e,t,n,r){const i=Math.abs(e),o=i%10,a=i%100;return a>=11&&a<=19?r:o===1?t:o>=2&&o<=4?n:r}const FIe=()=>{const e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${i.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Lt(i.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);if(a){const s=Number(i.maximum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.maximum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);if(a){const s=Number(i.minimum),l=DX(s,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${o}${i.minimum.toString()} ${l}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${i.origin} \u0431\u0443\u0434\u0435\u0442 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${i.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0438":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${i.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function BIe(){return{localeError:FIe()}}const UIe=()=>{const e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(i))return"tabela";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return i=>{switch(i.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${i.expected}, prejeto ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Lt(i.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} imelo ${o}${i.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${i.origin??"vrednost"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${i.origin} imelo ${o}${i.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${o.prefix}"`:o.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${o.suffix}"`:o.format==="includes"?`Neveljaven niz: mora vsebovati "${o.includes}"`:o.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${o.pattern}`:`Neveljaven ${r[o.format]??i.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${i.divisor}`;case"unrecognized_keys":return`Neprepoznan${i.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${i.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${i.origin}`;default:return"Neveljaven vnos"}}};function WIe(){return{localeError:UIe()}}const VIe=()=>{const e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"antal";case"object":{if(Array.isArray(i))return"lista";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return i=>{switch(i.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${i.expected}, fick ${n(i.input)}`;case"invalid_value":return i.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Lt(i.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${i.origin??"v\xE4rdet"} att ha ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${i.origin??"v\xE4rdet"} att ha ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${o.prefix}"`:o.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${o.suffix}"`:o.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${o.includes}"`:o.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${o.pattern}"`:`Ogiltig(t) ${r[o.format]??i.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${i.divisor}`;case"unrecognized_keys":return`${i.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${qe(i.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${i.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${i.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function HIe(){return{localeError:VIe()}}const ZIe=()=>{const e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(i))return"\u0B85\u0BA3\u0BBF";if(i===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return i=>{switch(i.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Lt(i.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${qe(i.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${o}${i.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${i.origin} ${o}${i.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${o.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:o.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${o.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${i.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${i.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${i.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function qIe(){return{localeError:ZIe()}}const GIe=()=>{const e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(i))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(i===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return i=>{switch(i.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${i.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Lt(i.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=t(i.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${i.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${o} ${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${o.prefix}"`:o.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${o.suffix}"`:o.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${o.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:o.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${o.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[o.format]??i.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${i.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${qe(i.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${i.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function YIe(){return{localeError:GIe()}}const KIe=e=>{const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},XIe=()=>{const e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function t(r){return e[r]??null}const n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return r=>{switch(r.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${r.expected}, al\u0131nan ${KIe(r.input)}`;case"invalid_value":return r.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Lt(r.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${qe(r.values,"|")}`;case"too_big":{const i=r.inclusive?"<=":"<",o=t(r.origin);return o?`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()} ${o.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${i}${r.maximum.toString()}`}case"too_small":{const i=r.inclusive?">=":">",o=t(r.origin);return o?`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()} ${o.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${i}${r.minimum.toString()}`}case"invalid_format":{const i=r;return i.format==="starts_with"?`Ge\xE7ersiz metin: "${i.prefix}" ile ba\u015Flamal\u0131`:i.format==="ends_with"?`Ge\xE7ersiz metin: "${i.suffix}" ile bitmeli`:i.format==="includes"?`Ge\xE7ersiz metin: "${i.includes}" i\xE7ermeli`:i.format==="regex"?`Ge\xE7ersiz metin: ${i.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${n[i.format]??r.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${r.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${r.keys.length>1?"lar":""}: ${qe(r.keys,", ")}`;case"invalid_key":return`${r.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${r.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function JIe(){return{localeError:XIe()}}const QIe=()=>{const e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(i))return"\u043C\u0430\u0441\u0438\u0432";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return i=>{switch(i.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${i.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Lt(i.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${i.origin} \u0431\u0443\u0434\u0435 ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${o.prefix}"`:o.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${o.suffix}"`:o.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${o.includes}"`:o.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${o.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${i.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${i.keys.length>1?"\u0456":""}: ${qe(i.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${i.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${i.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function AX(){return{localeError:QIe()}}function eEe(){return AX()}const tEe=()=>{const e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(i))return"\u0622\u0631\u06D2";if(i===null)return"\u0646\u0644";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return i=>{switch(i.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${i.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${n(i.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return i.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Lt(i.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${qe(i.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${o}${i.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${i.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${o}${i.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u06D2 ${o}${i.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${i.origin} \u06A9\u0627 ${o}${i.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${o.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:o.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${o.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${i.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${i.keys.length>1?"\u0632":""}: ${qe(i.keys,"\u060C ")}`;case"invalid_key":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${i.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function nEe(){return{localeError:tEe()}}const rEe=()=>{const e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(i))return"m\u1EA3ng";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return i=>{switch(i.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${i.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Lt(i.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${o}${i.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${i.origin??"gi\xE1 tr\u1ECB"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${a.verb} ${o}${i.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${o.prefix}"`:o.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${o.suffix}"`:o.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${o.includes}"`:o.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${o.pattern}`:`${r[o.format]??i.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${i.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${qe(i.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${i.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function iEe(){return{localeError:rEe()}}const oEe=()=>{const e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(i))return"\u6570\u7EC4";if(i===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${i.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Lt(i.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${i.origin??"\u503C"} ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${i.origin} ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.prefix}" \u5F00\u5934`:o.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${o.suffix}" \u7ED3\u5C3E`:o.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${o.pattern}`:`\u65E0\u6548${r[o.format]??i.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${i.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${qe(i.keys,", ")}`;case"invalid_key":return`${i.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${i.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function aEe(){return{localeError:oEe()}}const sEe=()=>{const e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"number";case"object":{if(Array.isArray(i))return"array";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return i=>{switch(i.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${i.expected}\uFF0C\u4F46\u6536\u5230 ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Lt(i.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${i.origin??"\u503C"} \u61C9\u70BA ${o}${i.maximum.toString()}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${i.origin} \u61C9\u70BA ${o}${i.minimum.toString()}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.prefix}" \u958B\u982D`:o.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${o.suffix}" \u7D50\u5C3E`:o.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${o.includes}"`:o.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${o.pattern}`:`\u7121\u6548\u7684 ${r[o.format]??i.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${i.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${i.keys.length>1?"\u5011":""}\uFF1A${qe(i.keys,"\u3001")}`;case"invalid_key":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${i.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function lEe(){return{localeError:sEe()}}const uEe=()=>{const e={string:{unit:"\xE0mi",verb:"n\xED"},file:{unit:"bytes",verb:"n\xED"},array:{unit:"nkan",verb:"n\xED"},set:{unit:"nkan",verb:"n\xED"}};function t(i){return e[i]??null}const n=i=>{const o=typeof i;switch(o){case"number":return Number.isNaN(i)?"NaN":"n\u1ECD\u0301mb\xE0";case"object":{if(Array.isArray(i))return"akop\u1ECD";if(i===null)return"null";if(Object.getPrototypeOf(i)!==Object.prototype&&i.constructor)return i.constructor.name}}return o},r={regex:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9",email:"\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\xE0k\xF3k\xF2 ISO",date:"\u1ECDj\u1ECD\u0301 ISO",time:"\xE0k\xF3k\xF2 ISO",duration:"\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO",ipv4:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv4",ipv6:"\xE0d\xEDr\u1EB9\u0301s\xEC IPv6",cidrv4:"\xE0gb\xE8gb\xE8 IPv4",cidrv6:"\xE0gb\xE8gb\xE8 IPv6",base64:"\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64",base64url:"\u1ECD\u0300r\u1ECD\u0300 base64url",json_string:"\u1ECD\u0300r\u1ECD\u0300 JSON",e164:"n\u1ECD\u0301mb\xE0 E.164",jwt:"JWT",template_literal:"\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9"};return i=>{switch(i.code){case"invalid_type":return`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${i.expected}, \xE0m\u1ECD\u0300 a r\xED ${n(i.input)}`;case"invalid_value":return i.values.length===1?`\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${Lt(i.values[0])}`:`\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${qe(i.values,"|")}`;case"too_big":{const o=i.inclusive?"<=":"<",a=t(i.origin);return a?`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin??"iye"} ${a.verb} ${o}${i.maximum} ${a.unit}`:`T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.maximum}`}case"too_small":{const o=i.inclusive?">=":">",a=t(i.origin);return a?`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${i.origin} ${a.verb} ${o}${i.minimum} ${a.unit}`:`K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${o}${i.minimum}`}case"invalid_format":{const o=i;return o.format==="starts_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${o.prefix}"`:o.format==="ends_with"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${o.suffix}"`:o.format==="includes"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${o.includes}"`:o.format==="regex"?`\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${o.pattern}`:`A\u1E63\xEC\u1E63e: ${r[o.format]??i.format}`}case"not_multiple_of":return`N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${i.divisor}`;case"unrecognized_keys":return`B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${qe(i.keys,", ")}`;case"invalid_key":return`B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;case"invalid_union":return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e";case"invalid_element":return`Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${i.origin}`;default:return"\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"}}};function cEe(){return{localeError:uEe()}}const FX=Object.freeze(Object.defineProperty({__proto__:null,ar:STe,az:jTe,be:ITe,bg:$Te,ca:LTe,cs:OTe,da:zTe,de:ATe,en:OX,eo:VTe,es:ZTe,fa:GTe,fi:KTe,fr:JTe,frCA:eIe,he:nIe,hu:iIe,id:aIe,is:uIe,it:dIe,ja:hIe,ka:gIe,kh:yIe,km:PX,ko:_Ie,lt:kIe,mk:CIe,ms:TIe,nl:EIe,no:$Ie,ota:LIe,pl:zIe,ps:OIe,pt:AIe,ru:BIe,sl:WIe,sv:HIe,ta:qIe,th:YIe,tr:JIe,ua:eEe,uk:AX,ur:nEe,vi:iEe,yo:cEe,zhCN:aEe,zhTW:lEe},Symbol.toStringTag,{value:"Module"}));var BX;const UX=Symbol("ZodOutput"),WX=Symbol("ZodInput");class fI{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const i={...r,...this._map.get(t)};return Object.keys(i).length?i:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function hI(){return new fI}(BX=globalThis).__zod_globalRegistry??(BX.__zod_globalRegistry=hI());const Gl=globalThis.__zod_globalRegistry;function VX(e,t){return new e({type:"string",...Pe(t)})}function HX(e,t){return new e({type:"string",coerce:!0,...Pe(t)})}function pI(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Pe(t)})}function S3(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Pe(t)})}function mI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Pe(t)})}function gI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Pe(t)})}function vI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Pe(t)})}function yI(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Pe(t)})}function C3(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Pe(t)})}function bI(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Pe(t)})}function _I(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Pe(t)})}function xI(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Pe(t)})}function wI(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Pe(t)})}function kI(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Pe(t)})}function SI(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Pe(t)})}function CI(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Pe(t)})}function jI(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Pe(t)})}function TI(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Pe(t)})}function ZX(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...Pe(t)})}function II(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Pe(t)})}function EI(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Pe(t)})}function NI(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Pe(t)})}function $I(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Pe(t)})}function MI(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Pe(t)})}function LI(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Pe(t)})}const qX={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function GX(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Pe(t)})}function YX(e,t){return new e({type:"string",format:"date",check:"string_format",...Pe(t)})}function KX(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Pe(t)})}function XX(e,t){return new e({type:"string",format:"duration",check:"string_format",...Pe(t)})}function JX(e,t){return new e({type:"number",checks:[],...Pe(t)})}function QX(e,t){return new e({type:"number",coerce:!0,checks:[],...Pe(t)})}function eJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Pe(t)})}function tJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...Pe(t)})}function nJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...Pe(t)})}function rJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...Pe(t)})}function iJ(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...Pe(t)})}function oJ(e,t){return new e({type:"boolean",...Pe(t)})}function aJ(e,t){return new e({type:"boolean",coerce:!0,...Pe(t)})}function sJ(e,t){return new e({type:"bigint",...Pe(t)})}function lJ(e,t){return new e({type:"bigint",coerce:!0,...Pe(t)})}function uJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Pe(t)})}function cJ(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Pe(t)})}function dJ(e,t){return new e({type:"symbol",...Pe(t)})}function fJ(e,t){return new e({type:"undefined",...Pe(t)})}function hJ(e,t){return new e({type:"null",...Pe(t)})}function pJ(e){return new e({type:"any"})}function mJ(e){return new e({type:"unknown"})}function gJ(e,t){return new e({type:"never",...Pe(t)})}function vJ(e,t){return new e({type:"void",...Pe(t)})}function yJ(e,t){return new e({type:"date",...Pe(t)})}function bJ(e,t){return new e({type:"date",coerce:!0,...Pe(t)})}function _J(e,t){return new e({type:"nan",...Pe(t)})}function vp(e,t){return new nI({check:"less_than",...Pe(t),value:e,inclusive:!1})}function Yl(e,t){return new nI({check:"less_than",...Pe(t),value:e,inclusive:!0})}function yp(e,t){return new rI({check:"greater_than",...Pe(t),value:e,inclusive:!1})}function ys(e,t){return new rI({check:"greater_than",...Pe(t),value:e,inclusive:!0})}function xJ(e){return yp(0,e)}function wJ(e){return vp(0,e)}function kJ(e){return Yl(0,e)}function SJ(e){return ys(0,e)}function sb(e,t){return new HY({check:"multiple_of",...Pe(t),value:e})}function j3(e,t){return new GY({check:"max_size",...Pe(t),maximum:e})}function lb(e,t){return new YY({check:"min_size",...Pe(t),minimum:e})}function RI(e,t){return new KY({check:"size_equals",...Pe(t),size:e})}function T3(e,t){return new XY({check:"max_length",...Pe(t),maximum:e})}function sg(e,t){return new JY({check:"min_length",...Pe(t),minimum:e})}function I3(e,t){return new QY({check:"length_equals",...Pe(t),length:e})}function OI(e,t){return new eK({check:"string_format",format:"regex",...Pe(t),pattern:e})}function PI(e){return new tK({check:"string_format",format:"lowercase",...Pe(e)})}function zI(e){return new nK({check:"string_format",format:"uppercase",...Pe(e)})}function DI(e,t){return new rK({check:"string_format",format:"includes",...Pe(t),includes:e})}function AI(e,t){return new iK({check:"string_format",format:"starts_with",...Pe(t),prefix:e})}function FI(e,t){return new oK({check:"string_format",format:"ends_with",...Pe(t),suffix:e})}function CJ(e,t,n){return new sK({check:"property",property:e,schema:t,...Pe(n)})}function BI(e,t){return new lK({check:"mime_type",mime:e,...Pe(t)})}function Af(e){return new uK({check:"overwrite",tx:e})}function UI(e){return Af(t=>t.normalize(e))}function WI(){return Af(e=>e.trim())}function VI(){return Af(e=>e.toLowerCase())}function HI(){return Af(e=>e.toUpperCase())}function ZI(){return Af(e=>BG(e))}function jJ(e,t,n){return new e({type:"array",element:t,...Pe(n)})}function dEe(e,t,n){return new e({type:"union",options:t,...Pe(n)})}function fEe(e,t,n,r){return new e({type:"union",options:n,discriminator:t,...Pe(r)})}function hEe(e,t,n){return new e({type:"intersection",left:t,right:n})}function pEe(e,t,n,r){const i=n instanceof Ut,o=i?r:n,a=i?n:null;return new e({type:"tuple",items:t,rest:a,...Pe(o)})}function mEe(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,...Pe(r)})}function gEe(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,...Pe(r)})}function vEe(e,t,n){return new e({type:"set",valueType:t,...Pe(n)})}function yEe(e,t,n){const r=Array.isArray(t)?Object.fromEntries(t.map(i=>[i,i])):t;return new e({type:"enum",entries:r,...Pe(n)})}function bEe(e,t,n){return new e({type:"enum",entries:t,...Pe(n)})}function _Ee(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],...Pe(n)})}function TJ(e,t){return new e({type:"file",...Pe(t)})}function xEe(e,t){return new e({type:"transform",transform:t})}function wEe(e,t){return new e({type:"optional",innerType:t})}function kEe(e,t){return new e({type:"nullable",innerType:t})}function SEe(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():m3(n)}})}function CEe(e,t,n){return new e({type:"nonoptional",innerType:t,...Pe(n)})}function jEe(e,t){return new e({type:"success",innerType:t})}function TEe(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}function IEe(e,t,n){return new e({type:"pipe",in:t,out:n})}function EEe(e,t){return new e({type:"readonly",innerType:t})}function NEe(e,t,n){return new e({type:"template_literal",parts:t,...Pe(n)})}function $Ee(e,t){return new e({type:"lazy",getter:t})}function MEe(e,t){return new e({type:"promise",innerType:t})}function IJ(e,t,n){const r=Pe(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function EJ(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Pe(n)})}function NJ(e){const t=$J(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(og(r,n.value,t._zod.def));else{const i=r;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=t),i.continue??(i.continue=!t._zod.def.abort),n.issues.push(og(i))}},e(n.value,n)));return t}function $J(e,t){const n=new qr({check:"custom",...Pe(t)});return n._zod.check=e,n}function MJ(e){const t=new qr({check:"describe"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,description:e})}],t._zod.check=()=>{},t}function LJ(e){const t=new qr({check:"meta"});return t._zod.onattach=[n=>{const r=Gl.get(n)??{};Gl.add(n,{...r,...e})}],t._zod.check=()=>{},t}function RJ(e,t){const n=Pe(t);let r=n.truthy??["true","1","yes","on","y","enabled"],i=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(v=>typeof v=="string"?v.toLowerCase():v),i=i.map(v=>typeof v=="string"?v.toLowerCase():v));const o=new Set(r),a=new Set(i),s=e.Codec??dI,l=e.Boolean??aI,c=e.String??ib,d=new c({type:"string",error:n.error}),f=new l({type:"boolean",error:n.error}),p=new s({type:"pipe",in:d,out:f,transform:(v,_)=>{let y=v;return n.case!=="sensitive"&&(y=y.toLowerCase()),o.has(y)?!0:a.has(y)?!1:(_.issues.push({code:"invalid_value",expected:"stringbool",values:[...o,...a],input:_.value,inst:p,continue:!1}),{})},reverseTransform:(v,_)=>v===!0?r[0]||"true":i[0]||"false",error:n.error});return p}function ub(e,t,n,r={}){const i=Pe(r),o={...Pe(r),check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:a=>n.test(a),...i};return n instanceof RegExp&&(o.pattern=n),new e(o)}class qI{constructor(t){this.counter=0,this.metadataRegistry=(t==null?void 0:t.metadata)??Gl,this.target=(t==null?void 0:t.target)??"draft-2020-12",this.unrepresentable=(t==null?void 0:t.unrepresentable)??"throw",this.override=(t==null?void 0:t.override)??(()=>{}),this.io=(t==null?void 0:t.io)??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var d,f,p;var r;const i=t._zod.def,o={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(t);if(a)return a.count++,n.schemaPath.includes(t)&&(a.cycle=n.path),a.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,s);const l=(f=(d=t._zod).toJSONSchema)==null?void 0:f.call(d);if(l)s.schema=l;else{const v={...n,schemaPath:[...n.schemaPath,t],path:n.path},_=t._zod.parent;if(_)s.ref=_,this.process(_,v),this.seen.get(_).isParent=!0;else{const y=s.schema;switch(i.type){case"string":{const b=y;b.type="string";const{minimum:w,maximum:x,format:S,patterns:C,contentEncoding:j}=t._zod.bag;if(typeof w=="number"&&(b.minLength=w),typeof x=="number"&&(b.maxLength=x),S&&(b.format=o[S]??S,b.format===""&&delete b.format),j&&(b.contentEncoding=j),C&&C.size>0){const T=[...C];T.length===1?b.pattern=T[0].source:T.length>1&&(s.schema.allOf=[...T.map(E=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:E.source}))])}break}case"number":{const b=y,{minimum:w,maximum:x,format:S,multipleOf:C,exclusiveMaximum:j,exclusiveMinimum:T}=t._zod.bag;typeof S=="string"&&S.includes("int")?b.type="integer":b.type="number",typeof T=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.minimum=T,b.exclusiveMinimum=!0):b.exclusiveMinimum=T),typeof w=="number"&&(b.minimum=w,typeof T=="number"&&this.target!=="draft-4"&&(T>=w?delete b.minimum:delete b.exclusiveMinimum)),typeof j=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(b.maximum=j,b.exclusiveMaximum=!0):b.exclusiveMaximum=j),typeof x=="number"&&(b.maximum=x,typeof j=="number"&&this.target!=="draft-4"&&(j<=x?delete b.maximum:delete b.exclusiveMaximum)),typeof C=="number"&&(b.multipleOf=C);break}case"boolean":{const b=y;b.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(y.type="string",y.nullable=!0,y.enum=[null]):y.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{y.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const b=y,{minimum:w,maximum:x}=t._zod.bag;typeof w=="number"&&(b.minItems=w),typeof x=="number"&&(b.maxItems=x),b.type="array",b.items=this.process(i.element,{...v,path:[...v.path,"items"]});break}case"object":{const b=y;b.type="object",b.properties={};const w=i.shape;for(const C in w)b.properties[C]=this.process(w[C],{...v,path:[...v.path,"properties",C]});const x=new Set(Object.keys(w)),S=new Set([...x].filter(C=>{const j=i.shape[C]._zod;return this.io==="input"?j.optin===void 0:j.optout===void 0}));S.size>0&&(b.required=Array.from(S)),((p=i.catchall)==null?void 0:p._zod.def.type)==="never"?b.additionalProperties=!1:i.catchall?i.catchall&&(b.additionalProperties=this.process(i.catchall,{...v,path:[...v.path,"additionalProperties"]})):this.io==="output"&&(b.additionalProperties=!1);break}case"union":{const b=y,w=i.discriminator!==void 0,x=i.options.map((S,C)=>this.process(S,{...v,path:[...v.path,w?"oneOf":"anyOf",C]}));w?b.oneOf=x:b.anyOf=x;break}case"intersection":{const b=y,w=this.process(i.left,{...v,path:[...v.path,"allOf",0]}),x=this.process(i.right,{...v,path:[...v.path,"allOf",1]}),S=j=>"allOf"in j&&Object.keys(j).length===1,C=[...S(w)?w.allOf:[w],...S(x)?x.allOf:[x]];b.allOf=C;break}case"tuple":{const b=y;b.type="array";const w=this.target==="draft-2020-12"?"prefixItems":"items",x=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",S=i.items.map((E,$)=>this.process(E,{...v,path:[...v.path,w,$]})),C=i.rest?this.process(i.rest,{...v,path:[...v.path,x,...this.target==="openapi-3.0"?[i.items.length]:[]]}):null;this.target==="draft-2020-12"?(b.prefixItems=S,C&&(b.items=C)):this.target==="openapi-3.0"?(b.items={anyOf:S},C&&b.items.anyOf.push(C),b.minItems=S.length,C||(b.maxItems=S.length)):(b.items=S,C&&(b.additionalItems=C));const{minimum:j,maximum:T}=t._zod.bag;typeof j=="number"&&(b.minItems=j),typeof T=="number"&&(b.maxItems=T);break}case"record":{const b=y;b.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(b.propertyNames=this.process(i.keyType,{...v,path:[...v.path,"propertyNames"]})),b.additionalProperties=this.process(i.valueType,{...v,path:[...v.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const b=y,w=DT(i.entries);w.every(x=>typeof x=="number")&&(b.type="number"),w.every(x=>typeof x=="string")&&(b.type="string"),b.enum=w;break}case"literal":{const b=y,w=[];for(const x of i.values)if(x===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof x=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");w.push(Number(x))}else w.push(x);if(w.length!==0)if(w.length===1){const x=w[0];b.type=x===null?"null":typeof x,this.target==="draft-4"||this.target==="openapi-3.0"?b.enum=[x]:b.const=x}else w.every(x=>typeof x=="number")&&(b.type="number"),w.every(x=>typeof x=="string")&&(b.type="string"),w.every(x=>typeof x=="boolean")&&(b.type="string"),w.every(x=>x===null)&&(b.type="null"),b.enum=w;break}case"file":{const b=y,w={type:"string",format:"binary",contentEncoding:"binary"},{minimum:x,maximum:S,mime:C}=t._zod.bag;x!==void 0&&(w.minLength=x),S!==void 0&&(w.maxLength=S),C?C.length===1?(w.contentMediaType=C[0],Object.assign(b,w)):b.anyOf=C.map(j=>({...w,contentMediaType:j})):Object.assign(b,w);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const b=this.process(i.innerType,v);this.target==="openapi-3.0"?(s.ref=i.innerType,y.nullable=!0):y.anyOf=[b,{type:"null"}];break}case"nonoptional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"success":{const b=y;b.type="boolean";break}case"default":{this.process(i.innerType,v),s.ref=i.innerType,y.default=JSON.parse(JSON.stringify(i.defaultValue));break}case"prefault":{this.process(i.innerType,v),s.ref=i.innerType,this.io==="input"&&(y._prefault=JSON.parse(JSON.stringify(i.defaultValue)));break}case"catch":{this.process(i.innerType,v),s.ref=i.innerType;let b;try{b=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}y.default=b;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const b=y,w=t._zod.pattern;if(!w)throw new Error("Pattern not found in template literal");b.type="string",b.pattern=w.source;break}case"pipe":{const b=this.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;this.process(b,v),s.ref=b;break}case"readonly":{this.process(i.innerType,v),s.ref=i.innerType,y.readOnly=!0;break}case"promise":{this.process(i.innerType,v),s.ref=i.innerType;break}case"optional":{this.process(i.innerType,v),s.ref=i.innerType;break}case"lazy":{const b=t._zod.innerType;this.process(b,v),s.ref=b;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const c=this.metadataRegistry.get(t);return c&&Object.assign(s.schema,c),this.io==="input"&&fa(t)&&(delete s.schema.examples,delete s.schema.default),this.io==="input"&&s.schema._prefault&&((r=s.schema).default??(r.default=s.schema._prefault)),delete s.schema._prefault,this.seen.get(t).schema}emit(t,n){var d,f,p,v,_,y;const r={cycles:(n==null?void 0:n.cycles)??"ref",reused:(n==null?void 0:n.reused)??"inline",external:(n==null?void 0:n.external)??void 0},i=this.seen.get(t);if(!i)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=b=>{var C;const w=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){const j=(C=r.external.registry.get(b[0]))==null?void 0:C.id,T=r.external.uri??($=>$);if(j)return{ref:T(j)};const E=b[1].defId??b[1].schema.id??`schema${this.counter++}`;return b[1].defId=E,{defId:E,ref:`${T("__shared")}#/${w}/${E}`}}if(b[1]===i)return{ref:"#"};const x=`#/${w}/`,S=b[1].schema.id??`__schema${this.counter++}`;return{defId:S,ref:x+S}},a=b=>{if(b[1].schema.$ref)return;const w=b[1],{ref:x,defId:S}=o(b);w.def={...w.schema},S&&(w.defId=S);const C=w.schema;for(const j in C)delete C[j];C.$ref=x};if(r.cycles==="throw")for(const b of this.seen.entries()){const w=b[1];if(w.cycle)throw new Error(`Cycle detected: #/${(d=w.cycle)==null?void 0:d.join("/")}/ - -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const b of this.seen.entries()){const w=b[1];if(t===b[0]){a(b);continue}if(r.external){const x=(f=r.external.registry.get(b[0]))==null?void 0:f.id;if(t!==b[0]&&x){a(b);continue}}if((p=this.metadataRegistry.get(b[0]))!=null&&p.id){a(b);continue}if(w.cycle){a(b);continue}if(w.count>1&&r.reused==="ref"){a(b);continue}}const s=(b,w)=>{const x=this.seen.get(b),S=x.def??x.schema,C={...S};if(x.ref===null)return;const j=x.ref;if(x.ref=null,j){s(j,w);const T=this.seen.get(j).schema;T.$ref&&(w.target==="draft-7"||w.target==="draft-4"||w.target==="openapi-3.0")?(S.allOf=S.allOf??[],S.allOf.push(T)):(Object.assign(S,T),Object.assign(S,C))}x.isParent||this.override({zodSchema:b,jsonSchema:S,path:x.path??[]})};for(const b of[...this.seen.entries()].reverse())s(b[0],{target:this.target});const l={};if(this.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?l.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?l.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),(v=r.external)==null?void 0:v.uri){const b=(_=r.external.registry.get(t))==null?void 0:_.id;if(!b)throw new Error("Schema is missing an `id` property");l.$id=r.external.uri(b)}Object.assign(l,i.def);const c=((y=r.external)==null?void 0:y.defs)??{};for(const b of this.seen.entries()){const w=b[1];w.def&&w.defId&&(c[w.defId]=w.def)}r.external||Object.keys(c).length>0&&(this.target==="draft-2020-12"?l.$defs=c:l.definitions=c);try{return JSON.parse(JSON.stringify(l))}catch{throw new Error("Error converting schema to JSON.")}}}function OJ(e,t){if(e instanceof fI){const r=new qI(t),i={};for(const s of e._idmap.entries()){const[l,c]=s;r.process(c)}const o={},a={registry:e,uri:t==null?void 0:t.uri,defs:i};for(const s of e._idmap.entries()){const[l,c]=s;o[l]=r.emit(c,{...t,external:a})}if(Object.keys(i).length>0){const s=r.target==="draft-2020-12"?"$defs":"definitions";o.__shared={[s]:i}}return{schemas:o}}const n=new qI(t);return n.process(e),n.emit(e,t)}function fa(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return fa(r.element,n);if(r.type==="set")return fa(r.valueType,n);if(r.type==="lazy")return fa(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return fa(r.innerType,n);if(r.type==="intersection")return fa(r.left,n)||fa(r.right,n);if(r.type==="record"||r.type==="map")return fa(r.keyType,n)||fa(r.valueType,n);if(r.type==="pipe")return fa(r.in,n)||fa(r.out,n);if(r.type==="object"){for(const i in r.shape)if(fa(r.shape[i],n))return!0;return!1}if(r.type==="union"){for(const i of r.options)if(fa(i,n))return!0;return!1}if(r.type==="tuple"){for(const i of r.items)if(fa(i,n))return!0;return!!(r.rest&&fa(r.rest,n))}return!1}const LEe=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),REe=Object.freeze(Object.defineProperty({__proto__:null,$ZodAny:VK,$ZodArray:KK,$ZodAsyncError:hp,$ZodBase64:MK,$ZodBase64URL:RK,$ZodBigInt:sI,$ZodBigIntFormat:FK,$ZodBoolean:aI,$ZodCIDRv4:NK,$ZodCIDRv6:$K,$ZodCUID:yK,$ZodCUID2:bK,$ZodCatch:kX,$ZodCheck:qr,$ZodCheckBigIntFormat:qY,$ZodCheckEndsWith:oK,$ZodCheckGreaterThan:rI,$ZodCheckIncludes:rK,$ZodCheckLengthEquals:QY,$ZodCheckLessThan:nI,$ZodCheckLowerCase:tK,$ZodCheckMaxLength:XY,$ZodCheckMaxSize:GY,$ZodCheckMimeType:lK,$ZodCheckMinLength:JY,$ZodCheckMinSize:YY,$ZodCheckMultipleOf:HY,$ZodCheckNumberFormat:ZY,$ZodCheckOverwrite:uK,$ZodCheckProperty:sK,$ZodCheckRegex:eK,$ZodCheckSizeEquals:KY,$ZodCheckStartsWith:iK,$ZodCheckStringFormat:rb,$ZodCheckUpperCase:nK,$ZodCodec:dI,$ZodCustom:MX,$ZodCustomStringFormat:DK,$ZodDate:GK,$ZodDefault:vX,$ZodDiscriminatedUnion:nX,$ZodE164:OK,$ZodEmail:pK,$ZodEmoji:gK,$ZodEncodeError:d3,$ZodEnum:cX,$ZodError:BT,$ZodFile:fX,$ZodFunction:EX,$ZodGUID:fK,$ZodIPv4:TK,$ZodIPv6:IK,$ZodISODate:SK,$ZodISODateTime:kK,$ZodISODuration:jK,$ZodISOTime:CK,$ZodIntersection:rX,$ZodJWT:zK,$ZodKSUID:wK,$ZodLazy:$X,$ZodLiteral:dX,$ZodMAC:EK,$ZodMap:aX,$ZodNaN:SX,$ZodNanoID:vK,$ZodNever:ZK,$ZodNonOptional:_X,$ZodNull:WK,$ZodNullable:gX,$ZodNumber:oI,$ZodNumberFormat:AK,$ZodObject:QK,$ZodObjectJIT:eX,$ZodOptional:mX,$ZodPipe:CX,$ZodPrefault:bX,$ZodPromise:NX,$ZodReadonly:jX,$ZodRealError:vs,$ZodRecord:oX,$ZodRegistry:fI,$ZodSet:lX,$ZodString:ib,$ZodStringFormat:vr,$ZodSuccess:wX,$ZodSymbol:BK,$ZodTemplateLiteral:IX,$ZodTransform:hX,$ZodTuple:cI,$ZodType:Ut,$ZodULID:_K,$ZodURL:mK,$ZodUUID:hK,$ZodUndefined:UK,$ZodUnion:lI,$ZodUnknown:HK,$ZodVoid:qK,$ZodXID:xK,$brand:DG,$constructor:be,$input:WX,$output:UX,Doc:cK,JSONSchema:LEe,JSONSchemaGenerator:qI,NEVER:zG,TimePrecision:qX,_any:pJ,_array:jJ,_base64:NI,_base64url:$I,_bigint:sJ,_boolean:oJ,_catch:TEe,_check:$J,_cidrv4:II,_cidrv6:EI,_coercedBigint:lJ,_coercedBoolean:aJ,_coercedDate:bJ,_coercedNumber:QX,_coercedString:HX,_cuid:xI,_cuid2:wI,_custom:IJ,_date:yJ,_decode:qT,_decodeAsync:YT,_default:SEe,_discriminatedUnion:fEe,_e164:MI,_email:pI,_emoji:bI,_encode:ZT,_encodeAsync:GT,_endsWith:FI,_enum:yEe,_file:TJ,_float32:tJ,_float64:nJ,_gt:yp,_gte:ys,_guid:S3,_includes:DI,_int:eJ,_int32:rJ,_int64:uJ,_intersection:hEe,_ipv4:jI,_ipv6:TI,_isoDate:YX,_isoDateTime:GX,_isoDuration:XX,_isoTime:KX,_jwt:LI,_ksuid:CI,_lazy:$Ee,_length:I3,_literal:_Ee,_lowercase:PI,_lt:vp,_lte:Yl,_mac:ZX,_map:gEe,_max:Yl,_maxLength:T3,_maxSize:j3,_mime:BI,_min:ys,_minLength:sg,_minSize:lb,_multipleOf:sb,_nan:_J,_nanoid:_I,_nativeEnum:bEe,_negative:wJ,_never:gJ,_nonnegative:SJ,_nonoptional:CEe,_nonpositive:kJ,_normalize:UI,_null:hJ,_nullable:kEe,_number:JX,_optional:wEe,_overwrite:Af,_parse:Xy,_parseAsync:Jy,_pipe:IEe,_positive:xJ,_promise:MEe,_property:CJ,_readonly:EEe,_record:mEe,_refine:EJ,_regex:OI,_safeDecode:XT,_safeDecodeAsync:QT,_safeEncode:KT,_safeEncodeAsync:JT,_safeParse:Qy,_safeParseAsync:eb,_set:vEe,_size:RI,_slugify:ZI,_startsWith:AI,_string:VX,_stringFormat:ub,_stringbool:RJ,_success:jEe,_superRefine:NJ,_symbol:dJ,_templateLiteral:NEe,_toLowerCase:VI,_toUpperCase:HI,_transform:xEe,_trim:WI,_tuple:pEe,_uint32:iJ,_uint64:cJ,_ulid:kI,_undefined:fJ,_union:dEe,_unknown:mJ,_uppercase:zI,_url:C3,_uuid:mI,_uuidv4:gI,_uuidv6:vI,_uuidv7:yI,_void:vJ,_xid:SI,clone:il,config:da,decode:Z7e,decodeAsync:G7e,describe:MJ,encode:H7e,encodeAsync:q7e,flattenError:UT,formatError:WT,globalConfig:f3,globalRegistry:Gl,isValidBase64:iI,isValidBase64URL:LK,isValidJWT:PK,locales:FX,meta:LJ,parse:VT,parseAsync:HT,prettifyError:aY,regexes:tI,registry:hI,safeDecode:K7e,safeDecodeAsync:J7e,safeEncode:Y7e,safeEncodeAsync:X7e,safeParse:sY,safeParseAsync:lY,toDotPath:oY,toJSONSchema:OJ,treeifyError:iY,util:nY,version:dK},Symbol.toStringTag,{value:"Module"})),GI=be("ZodISODateTime",(e,t)=>{kK.init(e,t),Tr.init(e,t)});function PJ(e){return GX(GI,e)}const YI=be("ZodISODate",(e,t)=>{SK.init(e,t),Tr.init(e,t)});function zJ(e){return YX(YI,e)}const KI=be("ZodISOTime",(e,t)=>{CK.init(e,t),Tr.init(e,t)});function DJ(e){return KX(KI,e)}const XI=be("ZodISODuration",(e,t)=>{jK.init(e,t),Tr.init(e,t)});function AJ(e){return XX(XI,e)}const OEe=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:YI,ZodISODateTime:GI,ZodISODuration:XI,ZodISOTime:KI,date:zJ,datetime:PJ,duration:AJ,time:DJ},Symbol.toStringTag,{value:"Module"})),FJ=(e,t)=>{BT.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>WT(e,n)},flatten:{value:n=>UT(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,h3,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,h3,2)}},isEmpty:{get(){return e.issues.length===0}}})},PEe=be("ZodError",FJ),bs=be("ZodError",FJ,{Parent:Error}),BJ=Xy(bs),UJ=Jy(bs),WJ=Qy(bs),VJ=eb(bs),HJ=ZT(bs),ZJ=qT(bs),qJ=GT(bs),GJ=YT(bs),YJ=KT(bs),KJ=XT(bs),XJ=JT(bs),JJ=QT(bs),rn=be("ZodType",(e,t)=>(Ut.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(rd(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]})),e.clone=(n,r)=>il(e,n,r),e.brand=()=>e,e.register=(n,r)=>(n.add(e,r),e),e.parse=(n,r)=>BJ(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>WJ(e,n,r),e.parseAsync=async(n,r)=>UJ(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>VJ(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>HJ(e,n,r),e.decode=(n,r)=>ZJ(e,n,r),e.encodeAsync=async(n,r)=>qJ(e,n,r),e.decodeAsync=async(n,r)=>GJ(e,n,r),e.safeEncode=(n,r)=>YJ(e,n,r),e.safeDecode=(n,r)=>KJ(e,n,r),e.safeEncodeAsync=async(n,r)=>XJ(e,n,r),e.safeDecodeAsync=async(n,r)=>JJ(e,n,r),e.refine=(n,r)=>e.check(OQ(n,r)),e.superRefine=n=>e.check(PQ(n)),e.overwrite=n=>e.check(Af(n)),e.optional=()=>z3(e),e.nullable=()=>xs(e),e.nullish=()=>z3(xs(e)),e.nonoptional=n=>wQ(e,n),e.array=()=>Pr(e),e.or=n=>P3([e,n]),e.and=n=>cQ(e,n),e.transform=n=>D3(e,kE(n)),e.default=n=>bQ(e,n),e.prefault=n=>xQ(e,n),e.catch=n=>CQ(e,n),e.pipe=n=>D3(e,n),e.readonly=()=>IQ(e),e.describe=n=>{const r=e.clone();return Gl.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){var n;return(n=Gl.get(e))==null?void 0:n.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Gl.get(e);const r=e.clone();return Gl.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),JI=be("_ZodString",(e,t)=>{ib.init(e,t),rn.init(e,t);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(OI(...r)),e.includes=(...r)=>e.check(DI(...r)),e.startsWith=(...r)=>e.check(AI(...r)),e.endsWith=(...r)=>e.check(FI(...r)),e.min=(...r)=>e.check(sg(...r)),e.max=(...r)=>e.check(T3(...r)),e.length=(...r)=>e.check(I3(...r)),e.nonempty=(...r)=>e.check(sg(1,...r)),e.lowercase=r=>e.check(PI(r)),e.uppercase=r=>e.check(zI(r)),e.trim=()=>e.check(WI()),e.normalize=(...r)=>e.check(UI(...r)),e.toLowerCase=()=>e.check(VI()),e.toUpperCase=()=>e.check(HI()),e.slugify=()=>e.check(ZI())}),E3=be("ZodString",(e,t)=>{ib.init(e,t),JI.init(e,t),e.email=n=>e.check(pI(QI,n)),e.url=n=>e.check(C3($3,n)),e.jwt=n=>e.check(LI(pE,n)),e.emoji=n=>e.check(bI(eE,n)),e.guid=n=>e.check(S3(N3,n)),e.uuid=n=>e.check(mI(od,n)),e.uuidv4=n=>e.check(gI(od,n)),e.uuidv6=n=>e.check(vI(od,n)),e.uuidv7=n=>e.check(yI(od,n)),e.nanoid=n=>e.check(_I(tE,n)),e.guid=n=>e.check(S3(N3,n)),e.cuid=n=>e.check(xI(nE,n)),e.cuid2=n=>e.check(wI(rE,n)),e.ulid=n=>e.check(kI(iE,n)),e.base64=n=>e.check(NI(dE,n)),e.base64url=n=>e.check($I(fE,n)),e.xid=n=>e.check(SI(oE,n)),e.ksuid=n=>e.check(CI(aE,n)),e.ipv4=n=>e.check(jI(sE,n)),e.ipv6=n=>e.check(TI(lE,n)),e.cidrv4=n=>e.check(II(uE,n)),e.cidrv6=n=>e.check(EI(cE,n)),e.e164=n=>e.check(MI(hE,n)),e.datetime=n=>e.check(PJ(n)),e.date=n=>e.check(zJ(n)),e.time=n=>e.check(DJ(n)),e.duration=n=>e.check(AJ(n))});function Et(e){return VX(E3,e)}const Tr=be("ZodStringFormat",(e,t)=>{vr.init(e,t),JI.init(e,t)}),QI=be("ZodEmail",(e,t)=>{pK.init(e,t),Tr.init(e,t)});function zEe(e){return pI(QI,e)}const N3=be("ZodGUID",(e,t)=>{fK.init(e,t),Tr.init(e,t)});function DEe(e){return S3(N3,e)}const od=be("ZodUUID",(e,t)=>{hK.init(e,t),Tr.init(e,t)});function AEe(e){return mI(od,e)}function FEe(e){return gI(od,e)}function BEe(e){return vI(od,e)}function UEe(e){return yI(od,e)}const $3=be("ZodURL",(e,t)=>{mK.init(e,t),Tr.init(e,t)});function WEe(e){return C3($3,e)}function VEe(e){return C3($3,{protocol:/^https?$/,hostname:TY,...Pe(e)})}const eE=be("ZodEmoji",(e,t)=>{gK.init(e,t),Tr.init(e,t)});function HEe(e){return bI(eE,e)}const tE=be("ZodNanoID",(e,t)=>{vK.init(e,t),Tr.init(e,t)});function ZEe(e){return _I(tE,e)}const nE=be("ZodCUID",(e,t)=>{yK.init(e,t),Tr.init(e,t)});function qEe(e){return xI(nE,e)}const rE=be("ZodCUID2",(e,t)=>{bK.init(e,t),Tr.init(e,t)});function GEe(e){return wI(rE,e)}const iE=be("ZodULID",(e,t)=>{_K.init(e,t),Tr.init(e,t)});function YEe(e){return kI(iE,e)}const oE=be("ZodXID",(e,t)=>{xK.init(e,t),Tr.init(e,t)});function KEe(e){return SI(oE,e)}const aE=be("ZodKSUID",(e,t)=>{wK.init(e,t),Tr.init(e,t)});function XEe(e){return CI(aE,e)}const sE=be("ZodIPv4",(e,t)=>{TK.init(e,t),Tr.init(e,t)});function JEe(e){return jI(sE,e)}const QJ=be("ZodMAC",(e,t)=>{EK.init(e,t),Tr.init(e,t)});function QEe(e){return ZX(QJ,e)}const lE=be("ZodIPv6",(e,t)=>{IK.init(e,t),Tr.init(e,t)});function eNe(e){return TI(lE,e)}const uE=be("ZodCIDRv4",(e,t)=>{NK.init(e,t),Tr.init(e,t)});function tNe(e){return II(uE,e)}const cE=be("ZodCIDRv6",(e,t)=>{$K.init(e,t),Tr.init(e,t)});function nNe(e){return EI(cE,e)}const dE=be("ZodBase64",(e,t)=>{MK.init(e,t),Tr.init(e,t)});function rNe(e){return NI(dE,e)}const fE=be("ZodBase64URL",(e,t)=>{RK.init(e,t),Tr.init(e,t)});function iNe(e){return $I(fE,e)}const hE=be("ZodE164",(e,t)=>{OK.init(e,t),Tr.init(e,t)});function oNe(e){return MI(hE,e)}const pE=be("ZodJWT",(e,t)=>{zK.init(e,t),Tr.init(e,t)});function aNe(e){return LI(pE,e)}const cb=be("ZodCustomStringFormat",(e,t)=>{DK.init(e,t),Tr.init(e,t)});function sNe(e,t,n={}){return ub(cb,e,t,n)}function lNe(e){return ub(cb,"hostname",jY,e)}function uNe(e){return ub(cb,"hex",WY,e)}function cNe(e,t){const n=(t==null?void 0:t.enc)??"hex",r=`${e}_${n}`,i=tI[r];if(!i)throw new Error(`Unrecognized hash format: ${r}`);return ub(cb,r,i,t)}const M3=be("ZodNumber",(e,t)=>{oI.init(e,t),rn.init(e,t),e.gt=(r,i)=>e.check(yp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(vp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.int=r=>e.check(mE(r)),e.safe=r=>e.check(mE(r)),e.positive=r=>e.check(yp(0,r)),e.nonnegative=r=>e.check(ys(0,r)),e.negative=r=>e.check(vp(0,r)),e.nonpositive=r=>e.check(Yl(0,r)),e.multipleOf=(r,i)=>e.check(sb(r,i)),e.step=(r,i)=>e.check(sb(r,i)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function oe(e){return JX(M3,e)}const lg=be("ZodNumberFormat",(e,t)=>{AK.init(e,t),M3.init(e,t)});function mE(e){return eJ(lg,e)}function dNe(e){return tJ(lg,e)}function fNe(e){return nJ(lg,e)}function hNe(e){return rJ(lg,e)}function pNe(e){return iJ(lg,e)}const L3=be("ZodBoolean",(e,t)=>{aI.init(e,t),rn.init(e,t)});function ad(e){return oJ(L3,e)}const R3=be("ZodBigInt",(e,t)=>{sI.init(e,t),rn.init(e,t),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.gt=(r,i)=>e.check(yp(r,i)),e.gte=(r,i)=>e.check(ys(r,i)),e.min=(r,i)=>e.check(ys(r,i)),e.lt=(r,i)=>e.check(vp(r,i)),e.lte=(r,i)=>e.check(Yl(r,i)),e.max=(r,i)=>e.check(Yl(r,i)),e.positive=r=>e.check(yp(BigInt(0),r)),e.negative=r=>e.check(vp(BigInt(0),r)),e.nonpositive=r=>e.check(Yl(BigInt(0),r)),e.nonnegative=r=>e.check(ys(BigInt(0),r)),e.multipleOf=(r,i)=>e.check(sb(r,i));const n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function mNe(e){return sJ(R3,e)}const gE=be("ZodBigIntFormat",(e,t)=>{FK.init(e,t),R3.init(e,t)});function gNe(e){return uJ(gE,e)}function vNe(e){return cJ(gE,e)}const eQ=be("ZodSymbol",(e,t)=>{BK.init(e,t),rn.init(e,t)});function yNe(e){return dJ(eQ,e)}const tQ=be("ZodUndefined",(e,t)=>{UK.init(e,t),rn.init(e,t)});function bNe(e){return fJ(tQ,e)}const nQ=be("ZodNull",(e,t)=>{WK.init(e,t),rn.init(e,t)});function vE(e){return hJ(nQ,e)}const rQ=be("ZodAny",(e,t)=>{VK.init(e,t),rn.init(e,t)});function _Ne(){return pJ(rQ)}const iQ=be("ZodUnknown",(e,t)=>{HK.init(e,t),rn.init(e,t)});function ug(){return mJ(iQ)}const oQ=be("ZodNever",(e,t)=>{ZK.init(e,t),rn.init(e,t)});function yE(e){return gJ(oQ,e)}const aQ=be("ZodVoid",(e,t)=>{qK.init(e,t),rn.init(e,t)});function xNe(e){return vJ(aQ,e)}const bE=be("ZodDate",(e,t)=>{GK.init(e,t),rn.init(e,t),e.min=(r,i)=>e.check(ys(r,i)),e.max=(r,i)=>e.check(Yl(r,i));const n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function wNe(e){return yJ(bE,e)}const sQ=be("ZodArray",(e,t)=>{KK.init(e,t),rn.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(sg(n,r)),e.nonempty=n=>e.check(sg(1,n)),e.max=(n,r)=>e.check(T3(n,r)),e.length=(n,r)=>e.check(I3(n,r)),e.unwrap=()=>e.element});function Pr(e,t){return jJ(sQ,e,t)}function kNe(e){const t=e._zod.def.shape;return _s(Object.keys(t))}const O3=be("ZodObject",(e,t)=>{eX.init(e,t),rn.init(e,t),vn(e,"shape",()=>t.shape),e.keyof=()=>_s(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:ug()}),e.loose=()=>e.clone({...e._zod.def,catchall:ug()}),e.strict=()=>e.clone({...e._zod.def,catchall:yE()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>YG(e,n),e.safeExtend=n=>KG(e,n),e.merge=n=>XG(e,n),e.pick=n=>qG(e,n),e.omit=n=>GG(e,n),e.partial=(...n)=>JG(SE,e,n[0]),e.required=(...n)=>QG(CE,e,n[0])});function kt(e,t){const n={type:"object",shape:e??{},...Pe(t)};return new O3(n)}function SNe(e,t){return new O3({type:"object",shape:e,catchall:yE(),...Pe(t)})}function CNe(e,t){return new O3({type:"object",shape:e,catchall:ug(),...Pe(t)})}const _E=be("ZodUnion",(e,t)=>{lI.init(e,t),rn.init(e,t),e.options=t.options});function P3(e,t){return new _E({type:"union",options:e,...Pe(t)})}const lQ=be("ZodDiscriminatedUnion",(e,t)=>{_E.init(e,t),nX.init(e,t)});function sd(e,t,n){return new lQ({type:"union",options:t,discriminator:e,...Pe(n)})}const uQ=be("ZodIntersection",(e,t)=>{rX.init(e,t),rn.init(e,t)});function cQ(e,t){return new uQ({type:"intersection",left:e,right:t})}const dQ=be("ZodTuple",(e,t)=>{cI.init(e,t),rn.init(e,t),e.rest=n=>e.clone({...e._zod.def,rest:n})});function xE(e,t,n){const r=t instanceof Ut,i=r?n:t,o=r?t:null;return new dQ({type:"tuple",items:e,rest:o,...Pe(i)})}const wE=be("ZodRecord",(e,t)=>{oX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function db(e,t,n){return new wE({type:"record",keyType:e,valueType:t,...Pe(n)})}function jNe(e,t,n){const r=il(e);return r._zod.values=void 0,new wE({type:"record",keyType:r,valueType:t,...Pe(n)})}const fQ=be("ZodMap",(e,t)=>{aX.init(e,t),rn.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function TNe(e,t,n){return new fQ({type:"map",keyType:e,valueType:t,...Pe(n)})}const hQ=be("ZodSet",(e,t)=>{lX.init(e,t),rn.init(e,t),e.min=(...n)=>e.check(lb(...n)),e.nonempty=n=>e.check(lb(1,n)),e.max=(...n)=>e.check(j3(...n)),e.size=(...n)=>e.check(RI(...n))});function INe(e,t){return new hQ({type:"set",valueType:e,...Pe(t)})}const fb=be("ZodEnum",(e,t)=>{cX.init(e,t),rn.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,i)=>{const o={};for(const a of r)if(n.has(a))o[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Pe(i),entries:o})},e.exclude=(r,i)=>{const o={...t.entries};for(const a of r)if(n.has(a))delete o[a];else throw new Error(`Key ${a} not found in enum`);return new fb({...t,checks:[],...Pe(i),entries:o})}});function _s(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new fb({type:"enum",entries:n,...Pe(t)})}function ENe(e,t){return new fb({type:"enum",entries:e,...Pe(t)})}const pQ=be("ZodLiteral",(e,t)=>{dX.init(e,t),rn.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ft(e,t){return new pQ({type:"literal",values:Array.isArray(e)?e:[e],...Pe(t)})}const mQ=be("ZodFile",(e,t)=>{fX.init(e,t),rn.init(e,t),e.min=(n,r)=>e.check(lb(n,r)),e.max=(n,r)=>e.check(j3(n,r)),e.mime=(n,r)=>e.check(BI(Array.isArray(n)?n:[n],r))});function NNe(e){return TJ(mQ,e)}const gQ=be("ZodTransform",(e,t)=>{hX.init(e,t),rn.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new d3(e.constructor.name);n.addIssue=o=>{if(typeof o=="string")n.issues.push(og(o,n.value,t));else{const a=o;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=e),n.issues.push(og(a))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(o=>(n.value=o,n)):(n.value=i,n)}});function kE(e){return new gQ({type:"transform",transform:e})}const SE=be("ZodOptional",(e,t)=>{mX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function z3(e){return new SE({type:"optional",innerType:e})}const vQ=be("ZodNullable",(e,t)=>{gX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function xs(e){return new vQ({type:"nullable",innerType:e})}function $Ne(e){return z3(xs(e))}const yQ=be("ZodDefault",(e,t)=>{vX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function bQ(e,t){return new yQ({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const _Q=be("ZodPrefault",(e,t)=>{bX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function xQ(e,t){return new _Q({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():m3(t)}})}const CE=be("ZodNonOptional",(e,t)=>{_X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function wQ(e,t){return new CE({type:"nonoptional",innerType:e,...Pe(t)})}const kQ=be("ZodSuccess",(e,t)=>{wX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function MNe(e){return new kQ({type:"success",innerType:e})}const SQ=be("ZodCatch",(e,t)=>{kX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function CQ(e,t){return new SQ({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const jQ=be("ZodNaN",(e,t)=>{SX.init(e,t),rn.init(e,t)});function LNe(e){return _J(jQ,e)}const jE=be("ZodPipe",(e,t)=>{CX.init(e,t),rn.init(e,t),e.in=t.in,e.out=t.out});function D3(e,t){return new jE({type:"pipe",in:e,out:t})}const TE=be("ZodCodec",(e,t)=>{jE.init(e,t),dI.init(e,t)});function RNe(e,t,n){return new TE({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}const TQ=be("ZodReadonly",(e,t)=>{jX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IQ(e){return new TQ({type:"readonly",innerType:e})}const EQ=be("ZodTemplateLiteral",(e,t)=>{IX.init(e,t),rn.init(e,t)});function ONe(e,t){return new EQ({type:"template_literal",parts:e,...Pe(t)})}const NQ=be("ZodLazy",(e,t)=>{$X.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.getter()});function $Q(e){return new NQ({type:"lazy",getter:e})}const MQ=be("ZodPromise",(e,t)=>{NX.init(e,t),rn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function PNe(e){return new MQ({type:"promise",innerType:e})}const LQ=be("ZodFunction",(e,t)=>{EX.init(e,t),rn.init(e,t)});function RQ(e){return new LQ({type:"function",input:Array.isArray(e==null?void 0:e.input)?xE(e==null?void 0:e.input):(e==null?void 0:e.input)??Pr(ug()),output:(e==null?void 0:e.output)??ug()})}const A3=be("ZodCustom",(e,t)=>{MX.init(e,t),rn.init(e,t)});function zNe(e){const t=new qr({check:"custom"});return t._zod.check=e,t}function DNe(e,t){return IJ(A3,e??(()=>!0),t)}function OQ(e,t={}){return EJ(A3,e,t)}function PQ(e){return NJ(e)}const ANe=MJ,FNe=LJ;function BNe(e,t={error:`Input not instance of ${e.name}`}){const n=new A3({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...Pe(t)});return n._zod.bag.Class=e,n}const UNe=(...e)=>RJ({Codec:TE,Boolean:L3,String:E3},...e);function WNe(e){const t=$Q(()=>P3([Et(e),oe(),ad(),vE(),Pr(t),db(Et(),t)]));return t}function zQ(e,t){return D3(kE(e),t)}const VNe={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function HNe(e){da({customError:e})}function ZNe(){return da().customError}var IE;IE||(IE={});function qNe(e){return HX(E3,e)}function jo(e){return QX(M3,e)}function GNe(e){return aJ(L3,e)}function Zt(e){return lJ(R3,e)}function YNe(e){return bJ(bE,e)}const KNe=Object.freeze(Object.defineProperty({__proto__:null,bigint:Zt,boolean:GNe,date:YNe,number:jo,string:qNe},Symbol.toStringTag,{value:"Module"}));da(OX());const XNe=Object.freeze(Object.defineProperty({__proto__:null,$brand:DG,$input:WX,$output:UX,NEVER:zG,TimePrecision:qX,ZodAny:rQ,ZodArray:sQ,ZodBase64:dE,ZodBase64URL:fE,ZodBigInt:R3,ZodBigIntFormat:gE,ZodBoolean:L3,ZodCIDRv4:uE,ZodCIDRv6:cE,ZodCUID:nE,ZodCUID2:rE,ZodCatch:SQ,ZodCodec:TE,ZodCustom:A3,ZodCustomStringFormat:cb,ZodDate:bE,ZodDefault:yQ,ZodDiscriminatedUnion:lQ,ZodE164:hE,ZodEmail:QI,ZodEmoji:eE,ZodEnum:fb,ZodError:PEe,ZodFile:mQ,get ZodFirstPartyTypeKind(){return IE},ZodFunction:LQ,ZodGUID:N3,ZodIPv4:sE,ZodIPv6:lE,ZodISODate:YI,ZodISODateTime:GI,ZodISODuration:XI,ZodISOTime:KI,ZodIntersection:uQ,ZodIssueCode:VNe,ZodJWT:pE,ZodKSUID:aE,ZodLazy:NQ,ZodLiteral:pQ,ZodMAC:QJ,ZodMap:fQ,ZodNaN:jQ,ZodNanoID:tE,ZodNever:oQ,ZodNonOptional:CE,ZodNull:nQ,ZodNullable:vQ,ZodNumber:M3,ZodNumberFormat:lg,ZodObject:O3,ZodOptional:SE,ZodPipe:jE,ZodPrefault:_Q,ZodPromise:MQ,ZodReadonly:TQ,ZodRealError:bs,ZodRecord:wE,ZodSet:hQ,ZodString:E3,ZodStringFormat:Tr,ZodSuccess:kQ,ZodSymbol:eQ,ZodTemplateLiteral:EQ,ZodTransform:gQ,ZodTuple:dQ,ZodType:rn,ZodULID:iE,ZodURL:$3,ZodUUID:od,ZodUndefined:tQ,ZodUnion:_E,ZodUnknown:iQ,ZodVoid:aQ,ZodXID:oE,_ZodString:JI,_default:bQ,_function:RQ,any:_Ne,array:Pr,base64:rNe,base64url:iNe,bigint:mNe,boolean:ad,catch:CQ,check:zNe,cidrv4:tNe,cidrv6:nNe,clone:il,codec:RNe,coerce:KNe,config:da,core:REe,cuid:qEe,cuid2:GEe,custom:DNe,date:wNe,decode:ZJ,decodeAsync:GJ,describe:ANe,discriminatedUnion:sd,e164:oNe,email:zEe,emoji:HEe,encode:HJ,encodeAsync:qJ,endsWith:FI,enum:_s,file:NNe,flattenError:UT,float32:dNe,float64:fNe,formatError:WT,function:RQ,getErrorMap:ZNe,globalRegistry:Gl,gt:yp,gte:ys,guid:DEe,hash:cNe,hex:uNe,hostname:lNe,httpUrl:VEe,includes:DI,instanceof:BNe,int:mE,int32:hNe,int64:gNe,intersection:cQ,ipv4:JEe,ipv6:eNe,iso:OEe,json:WNe,jwt:aNe,keyof:kNe,ksuid:XEe,lazy:$Q,length:I3,literal:ft,locales:FX,looseObject:CNe,lowercase:PI,lt:vp,lte:Yl,mac:QEe,map:TNe,maxLength:T3,maxSize:j3,meta:FNe,mime:BI,minLength:sg,minSize:lb,multipleOf:sb,nan:LNe,nanoid:ZEe,nativeEnum:ENe,negative:wJ,never:yE,nonnegative:SJ,nonoptional:wQ,nonpositive:kJ,normalize:UI,null:vE,nullable:xs,nullish:$Ne,number:oe,object:kt,optional:z3,overwrite:Af,parse:BJ,parseAsync:UJ,partialRecord:jNe,pipe:D3,positive:xJ,prefault:xQ,preprocess:zQ,prettifyError:aY,promise:PNe,property:CJ,readonly:IQ,record:db,refine:OQ,regex:OI,regexes:tI,registry:hI,safeDecode:KJ,safeDecodeAsync:JJ,safeEncode:YJ,safeEncodeAsync:XJ,safeParse:WJ,safeParseAsync:VJ,set:INe,setErrorMap:HNe,size:RI,slugify:ZI,startsWith:AI,strictObject:SNe,string:Et,stringFormat:sNe,stringbool:UNe,success:MNe,superRefine:PQ,symbol:yNe,templateLiteral:ONe,toJSONSchema:OJ,toLowerCase:VI,toUpperCase:HI,transform:kE,treeifyError:iY,trim:WI,tuple:xE,uint32:pNe,uint64:vNe,ulid:YEe,undefined:bNe,union:P3,unknown:ug,uppercase:zI,url:WEe,util:nY,uuid:AEe,uuidv4:FEe,uuidv6:BEe,uuidv7:UEe,void:xNe,xid:KEe},Symbol.toStringTag,{value:"Module"})),DQ=_s(["Frankendancer","Firedancer"]),EE=DQ.enum,ln=kt({topic:ft("summary")}),AQ=kt({topic:ft("epoch")}),cg=kt({topic:ft("gossip")}),FQ=kt({topic:ft("peers")}),qu=kt({topic:ft("slot")}),BQ=kt({topic:ft("block_engine")}),F3=kt({topic:ft("wait_for_supermajority")});sd("topic",[ln,AQ,cg,FQ,qu,BQ,F3]);const JNe=Et(),QNe=_s(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),e$e=Et(),t$e=Et(),n$e=Et(),r$e=Zt(),UQ=_s(["perf","balanced","revenue"]),ld=UQ.enum,NE=_s(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","cswtch","genesi","diag","event"]),i$e=kt({kind:Et(),kind_id:oe()}),WQ=Zt();Zt();const o$e=oe(),a$e=oe(),s$e=oe(),l$e=oe().nullable(),u$e=oe().nullable(),c$e=kt({repair:oe().array(),turbine:oe().array()}),d$e=jo(),f$e=oe(),h$e=oe().nullable(),p$e=oe().nullable(),m$e=oe(),g$e=oe().nullable(),v$e=oe(),y$e=oe(),b$e=kt({total:oe(),vote:oe(),nonvote_success:oe(),nonvote_failed:oe()}),_$e=kt({ingress:Pr(oe()),egress:Pr(oe())}),x$e=kt({pack_cranked:oe(),pack_retained:oe(),resolv_retained:oe(),quic:oe(),udp:oe(),gossip:oe(),block_engine:oe()}),w$e=kt({net_overrun:oe(),quic_overrun:oe(),quic_frag_drop:oe(),quic_abandoned:oe(),tpu_quic_invalid:oe(),tpu_udp_invalid:oe(),verify_overrun:oe(),verify_parse:oe(),verify_failed:oe(),verify_duplicate:oe(),dedup_duplicate:oe(),resolv_lut_failed:oe(),resolv_expired:oe(),resolv_no_ledger:oe(),resolv_ancient:oe(),resolv_retained:oe(),pack_invalid:oe(),pack_already_executed:oe(),pack_invalid_bundle:oe(),pack_retained:oe(),pack_leader_slow:oe(),pack_wait_full:oe(),pack_expired:oe(),bank_invalid:oe(),bank_nonce_already_advanced:oe(),bank_nonce_advance_failed:oe(),bank_nonce_wrong_blockhash:oe(),block_success:oe(),block_fail:oe()}),VQ=kt({in:x$e,out:w$e}),k$e=kt({next_leader_slot:oe().nullable(),waterfall:VQ}),HQ=kt({net_in:oe(),quic:oe(),verify:oe(),bundle_rtt_smoothed_millis:oe(),bundle_rx_delay_millis_p90:oe(),dedup:oe(),pack:oe(),bank:oe(),poh:oe(),shred:oe(),store:oe(),net_out:oe()}),S$e=kt({next_leader_slot:oe().nullable(),tile_primary_metric:HQ}),C$e=kt({timers:Pr(Pr(oe()).nullable()),sched_timers:Pr(Pr(oe()).nullable()),in_backp:Pr(ad().nullable()),backp_msgs:Pr(oe().nullable()),alive:Pr(oe().nullable()),nvcsw:Pr(oe().nullable()),nivcsw:Pr(oe().nullable()),last_cpu:Pr(oe().nullable()),minflt:Pr(oe().nullable()),majflt:Pr(oe().nullable())});kt({tile:Et(),kind_id:oe(),idle:oe()});const j$e=_s(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),T$e=kt({phase:j$e,downloading_full_snapshot_slot:oe().nullable(),downloading_full_snapshot_peer:Et().nullable(),downloading_full_snapshot_elapsed_secs:oe().nullable(),downloading_full_snapshot_remaining_secs:oe().nullable(),downloading_full_snapshot_throughput:oe().nullable(),downloading_full_snapshot_total_bytes:jo().nullable(),downloading_full_snapshot_current_bytes:jo().nullable(),downloading_incremental_snapshot_slot:oe().nullable(),downloading_incremental_snapshot_peer:Et().nullable(),downloading_incremental_snapshot_elapsed_secs:oe().nullable(),downloading_incremental_snapshot_remaining_secs:oe().nullable(),downloading_incremental_snapshot_throughput:oe().nullable(),downloading_incremental_snapshot_total_bytes:jo().nullable(),downloading_incremental_snapshot_current_bytes:jo().nullable(),ledger_slot:oe().nullable(),ledger_max_slot:oe().nullable(),waiting_for_supermajority_slot:oe().nullable(),waiting_for_supermajority_stake_percent:oe().nullable()}),ZQ=_s(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]),wn=ZQ.enum,I$e=kt({phase:ZQ,joining_gossip_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_elapsed_seconds:oe().nullable().optional(),loading_full_snapshot_reset_count:oe().nullable().optional(),loading_full_snapshot_slot:oe().nullable().optional(),loading_full_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_read_path:Et().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_full_snapshot_insert_accounts:oe().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:oe().nullable().optional(),loading_incremental_snapshot_reset_count:oe().nullable().optional(),loading_incremental_snapshot_slot:oe().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_read_path:Et().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:jo().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:jo().nullable().optional(),loading_incremental_snapshot_insert_accounts:oe().nullable().optional(),wait_for_supermajority_bank_hash:Et().nullable().optional(),wait_for_supermajority_shred_version:Et().nullable().optional(),wait_for_supermajority_attempt:oe().nullable().optional(),wait_for_supermajority_total_stake:Zt().nullable().optional(),wait_for_supermajority_connected_stake:Zt().nullable().optional(),wait_for_supermajority_total_peers:oe().nullable().optional(),wait_for_supermajority_connected_peers:oe().nullable().optional(),catching_up_elapsed_seconds:oe().nullable().optional(),catching_up_first_replay_slot:oe().nullable().optional()}),E$e=zQ(e=>{if(!e||typeof e!="object"||Array.isArray(e))return e;const t=e;return{...t,txn_preload_end_timestamps_nanos:t.txn_preload_end_timestamps_nanos??t.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:t.txn_start_timestamps_nanos??t.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:t.txn_load_end_timestamps_nanos??t.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:t.txn_end_timestamps_nanos??t.txn_commit_start_timestamps_nanos}},kt({start_timestamp_nanos:Zt(),target_end_timestamp_nanos:Zt(),txn_mb_start_timestamps_nanos:Zt().array(),txn_mb_end_timestamps_nanos:Zt().array(),txn_compute_units_requested:oe().array(),txn_compute_units_consumed:oe().array(),txn_transaction_fee:Zt().array(),txn_priority_fee:Zt().array(),txn_tips:Zt().array(),txn_error_code:oe().array(),txn_from_bundle:ad().array(),txn_is_simple_vote:ad().array(),txn_bank_idx:oe().array(),txn_preload_end_timestamps_nanos:Zt().array(),txn_start_timestamps_nanos:Zt().array(),txn_load_end_timestamps_nanos:Zt().array(),txn_end_timestamps_nanos:Zt().array(),txn_commit_end_timestamps_nanos:Zt().array().optional(),txn_arrival_timestamps_nanos:Zt().array(),txn_microblock_id:oe().array(),txn_landed:ad().array(),txn_signature:Et().array(),txn_source_ipv4:Et().array(),txn_source_tpu:Et().array()})),N$e=_s(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),$$e=kt({slot:oe(),mine:ad(),skipped:ad(),level:N$e,success_nonvote_transaction_cnt:oe().nullable(),failed_nonvote_transaction_cnt:oe().nullable(),success_vote_transaction_cnt:oe().nullable(),failed_vote_transaction_cnt:oe().nullable(),priority_fee:Zt().nullable(),transaction_fee:Zt().nullable(),tips:Zt().nullable(),max_compute_units:oe().nullable(),compute_units:oe().nullable(),duration_nanos:oe().nullable(),completed_time_nanos:Zt().nullable(),vote_latency:oe().nullable()}),M$e=Pr(xE([oe(),oe(),oe(),oe()])),L$e=_s(["voting","non-voting","delinquent"]),R$e=oe(),O$e=kt({epoch:oe(),skip_rate:oe()}),P$e=kt({hits:oe(),lookups:oe(),insertions:oe(),insertion_bytes:oe(),evictions:oe(),eviction_bytes:oe(),spills:oe(),spill_bytes:oe(),free_bytes:oe(),size_bytes:oe()}),z$e=sd("key",[ln.extend({key:ft("ping"),value:vE(),id:oe()}),ln.extend({key:ft("version"),value:JNe}),ln.extend({key:ft("cluster"),value:QNe}),ln.extend({key:ft("commit_hash"),value:e$e}),ln.extend({key:ft("identity_key"),value:t$e}),ln.extend({key:ft("vote_key"),value:n$e}),ln.extend({key:ft("startup_time_nanos"),value:r$e}),ln.extend({key:ft("schedule_strategy"),value:UQ}),ln.extend({key:ft("tiles"),value:i$e.array()}),ln.extend({key:ft("identity_balance"),value:WQ}),ln.extend({key:ft("vote_balance"),value:WQ}),ln.extend({key:ft("root_slot"),value:o$e}),ln.extend({key:ft("optimistically_confirmed_slot"),value:a$e}),ln.extend({key:ft("completed_slot"),value:s$e}),ln.extend({key:ft("estimated_slot"),value:f$e}),ln.extend({key:ft("reset_slot"),value:h$e}),ln.extend({key:ft("storage_slot"),value:p$e}),ln.extend({key:ft("vote_slot"),value:m$e}),ln.extend({key:ft("slot_caught_up"),value:g$e}),ln.extend({key:ft("active_fork_count"),value:v$e}),ln.extend({key:ft("estimated_slot_duration_nanos"),value:y$e}),ln.extend({key:ft("estimated_tps"),value:b$e}),ln.extend({key:ft("live_network_metrics"),value:_$e}),ln.extend({key:ft("live_txn_waterfall"),value:k$e}),ln.extend({key:ft("live_tile_primary_metric"),value:S$e}),ln.extend({key:ft("live_tile_metrics"),value:C$e}),ln.extend({key:ft("live_tile_timers"),value:oe().array()}),ln.extend({key:ft("startup_progress"),value:T$e}),ln.extend({key:ft("boot_progress"),value:I$e}),ln.extend({key:ft("tps_history"),value:M$e}),ln.extend({key:ft("vote_state"),value:L$e}),ln.extend({key:ft("vote_distance"),value:R$e}),ln.extend({key:ft("skip_rate"),value:O$e}),ln.extend({key:ft("turbine_slot"),value:l$e}),ln.extend({key:ft("repair_slot"),value:u$e}),ln.extend({key:ft("catch_up_history"),value:c$e}),ln.extend({key:ft("server_time_nanos"),value:d$e}),ln.extend({key:ft("live_program_cache"),value:P$e})]),D$e=kt({epoch:oe(),start_time_nanos:Et().nullable(),end_time_nanos:Et().nullable(),start_slot:oe(),end_slot:oe(),excluded_stake_lamports:Zt(),staked_pubkeys:Et().array(),staked_lamports:Zt().array(),leader_slots:oe().array()}),A$e=sd("key",[AQ.extend({key:ft("new"),value:D$e})]),F$e=kt({num_push_messages_rx_success:oe(),num_push_messages_rx_failure:oe(),num_push_entries_rx_success:oe(),num_push_entries_rx_failure:oe(),num_push_entries_rx_duplicate:oe(),num_pull_response_messages_rx_success:oe(),num_pull_response_messages_rx_failure:oe(),num_pull_response_entries_rx_success:oe(),num_pull_response_entries_rx_failure:oe(),num_pull_response_entries_rx_duplicate:oe(),total_peers:oe(),total_stake:Zt(),connected_stake:Zt(),connected_staked_peers:oe(),connected_unstaked_peers:oe()}),qQ=kt({total_throughput:oe(),peer_names:Et().array(),peer_identities:Et().array(),peer_throughput:oe().array()}),B$e=kt({capacity:oe(),expired_count:oe(),evicted_count:oe(),count:oe().array(),count_tx:oe().array(),bytes_tx:oe().array()}),U$e=kt({num_bytes_rx:oe().array(),num_bytes_tx:oe().array(),num_messages_rx:oe().array(),num_messages_tx:oe().array()}),W$e=kt({health:F$e,ingress:qQ,egress:qQ,storage:B$e,messages:U$e}),V$e=oe(),GQ=P3([Et(),oe()]),YQ=db(Et(),db(Et(),GQ)).nullable(),H$e=kt({changes:Pr(kt({row_index:oe(),column_name:Et(),new_value:GQ}))}),Z$e=sd("key",[cg.extend({key:ft("network_stats"),value:W$e}),cg.extend({key:ft("peers_size_update"),value:V$e}),cg.extend({key:ft("query_scroll"),value:YQ}),cg.extend({key:ft("query_sort"),value:YQ}),cg.extend({key:ft("view_update"),value:H$e})]),q$e=kt({client_id:oe().nullable().optional(),wallclock:oe(),shred_version:oe(),version:Et().nullable(),feature_set:oe().nullable(),sockets:db(Et(),Et()),country_code:Et().nullable().optional(),city_name:Et().nullable().optional()}),G$e=kt({vote_account:Et(),activated_stake:Zt(),last_vote:xs(oe()),root_slot:xs(oe()),epoch_credits:oe(),commission:oe(),delinquent:ad()}),KQ=kt({name:xs(Et()),details:xs(Et()),website:xs(Et()),icon_url:xs(Et()),keybase_username:xs(Et())}),XQ=kt({identity_pubkey:Et(),gossip:xs(q$e),vote:Pr(G$e),info:xs(KQ)}),Y$e=kt({identity_pubkey:Et()}),K$e=kt({add:Pr(XQ).optional(),update:Pr(XQ).optional(),remove:Pr(Y$e).optional()}),X$e=sd("key",[FQ.extend({key:ft("update"),value:K$e})]),J$e=kt({timestamp_nanos:Et(),tile_timers:oe().array()}),Q$e=kt({timestamp_nanos:Zt(),regular:oe(),votes:oe(),conflicting:oe(),bundles:oe()}),eMe=kt({account:Et(),cost:oe()}),tMe=kt({used_total_block_cost:oe(),used_total_vote_cost:oe(),used_account_write_costs:eMe.array(),used_total_bytes:oe(),used_total_microblocks:oe(),max_total_block_cost:oe(),max_total_vote_cost:oe(),max_account_write_cost:oe(),max_total_bytes:oe(),max_total_microblocks:oe()}),nMe=kt({block_hash:Et().optional(),end_slot_reason:Et().optional(),slot_schedule_counts:oe().array(),end_slot_schedule_counts:oe().array(),pending_smallest_cost:oe().nullable(),pending_smallest_bytes:oe().nullable(),pending_vote_smallest_cost:oe().nullable(),pending_vote_smallest_bytes:oe().nullable()}),B3=kt({publish:$$e,waterfall:VQ.nullable().optional(),tile_primary_metric:HQ.nullable().optional(),tile_timers:J$e.array().nullable().optional(),scheduler_counts:Q$e.array().nullable().optional(),transactions:E$e.nullable().optional(),limits:tMe.nullable().optional(),scheduler_stats:nMe.nullable().optional()}),rMe=oe().array(),iMe=oe().array(),oMe=kt({slots_largest_tips:oe().array(),vals_largest_tips:Zt().array(),slots_smallest_tips:oe().array(),vals_smallest_tips:Zt().array(),slots_largest_fees:oe().array(),vals_largest_fees:Zt().array(),slots_smallest_fees:oe().array(),vals_smallest_fees:Zt().array(),slots_largest_rewards:oe().array(),vals_largest_rewards:Zt().array(),slots_smallest_rewards:oe().array(),vals_smallest_rewards:Zt().array(),slots_largest_duration:oe().array(),vals_largest_duration:Zt().array(),slots_smallest_duration:oe().array(),vals_smallest_duration:Zt().array(),slots_largest_compute_units:oe().array(),vals_largest_compute_units:Zt().array(),slots_smallest_compute_units:oe().array(),vals_smallest_compute_units:Zt().array(),slots_largest_skipped:oe().array(),vals_largest_skipped:Zt().array(),slots_smallest_skipped:oe().array(),vals_smallest_skipped:Zt().array()});var Ir=(e=>(e[e.shred_repair_request=0]="shred_repair_request",e[e.shred_received_turbine=1]="shred_received_turbine",e[e.shred_received_repair=2]="shred_received_repair",e[e.shred_replayed=3]="shred_replayed",e[e.slot_complete=4]="slot_complete",e[e.shred_published=6]="shred_published",e))(Ir||{});const aMe=kt({reference_slot:oe(),reference_ts:Zt(),slot_delta:oe().array(),shred_idx:oe().nullable().array(),event:oe().array(),event_ts_delta:jo().array()}),sMe=sd("key",[qu.extend({key:ft("skipped_history"),value:rMe}),qu.extend({key:ft("skipped_history_cluster"),value:iMe}),qu.extend({key:ft("update"),value:B3}),qu.extend({key:ft("query"),value:B3.nullable()}),qu.extend({key:ft("query_detailed"),value:B3.nullable()}),qu.extend({key:ft("query_transactions"),value:B3.nullable()}),qu.extend({key:ft("query_rankings"),value:oMe}),qu.extend({key:ft("live_shreds"),value:aMe}),qu.extend({key:ft("late_votes_history"),value:kt({slot:oe().array(),latency:oe().nullable().array()})})]),lMe=_s(["disconnected","connecting","connected"]),uMe=kt({name:Et(),url:Et(),ip:Et().optional(),status:lMe}),cMe=sd("key",[BQ.extend({key:ft("update"),value:uMe})]),dMe=kt({staked_pubkeys:Et().array(),staked_lamports:Zt().array(),infos:Pr(KQ.nullable())}),fMe=Et().array(),hMe=Et().array(),pMe=sd("key",[F3.extend({key:ft("stakes"),value:dMe}),F3.extend({key:ft("peer_add"),value:fMe}),F3.extend({key:ft("peer_remove"),value:hMe})]),JQ=DQ.safeParse("Firedancer".trim()),hb=JQ.error?EE.Frankendancer:JQ.data,_i=hb===EE.Frankendancer,Vi=hb===EE.Firedancer,Gu=fe(e=>{var t;return(t=e(Hl))==null?void 0:t.phase}),QQ=fe(e=>{const t=e(U3),n=e(Gu);return t.find(({phase:r})=>r===n)}),mMe=fe(e=>{const t=e(Hl);return!!(t!=null&&t.wait_for_supermajority_bank_hash)&&!!(t!=null&&t.wait_for_supermajority_shred_version)}),U3=fe(e=>e(mMe)?[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.waiting_for_supermajority,completionFraction:.25},{phase:wn.running,completionFraction:0}]:[{phase:wn.joining_gossip,completionFraction:.1},{phase:wn.loading_full_snapshot,completionFraction:.6},{phase:wn.loading_incremental_snapshot,completionFraction:.05},{phase:wn.catching_up,completionFraction:.25},{phase:wn.running,completionFraction:0}]),eee=fe(e=>{const t=e(U3),n=e(Gu),r=new Set;for(const i of t){if(i.phase===n)break;r.add(i.phase)}return r}),ol=fe(!0),W3=fe(!0),tee=fe(null),V3=fe(e=>{const t=e(ol);return t?_i?t:t&&e(W3):!1}),nee=fe(e=>{var t,n;return((t=e(Hl))==null?void 0:t.loading_incremental_snapshot_slot)??((n=e(Hl))==null?void 0:n.loading_full_snapshot_slot)}),ree="/assets/firedancer-D_J0EzUc.svg",gMe="/assets/frankendancer-0Top5G94.svg",vMe="_text_o41r7_1",yMe="_container_o41r7_6",iee={text:vMe,container:yMe};function bMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsx(V,{gap:"2",align:"center",style:n,className:iee.container,children:u.jsx(q,{className:iee.text,children:e})})}const _Me="_container_1tszc_1",xMe="_text_1tszc_11",oee={container:_Me,text:xMe};function wMe({label:e,hide:t,rightChildren:n,bottomChildren:r}){const i=t?{visibility:"hidden"}:{};return u.jsxs("div",{className:oee.container,style:i,children:[u.jsx(V,{justify:"center",align:"center",children:u.jsx(Iy,{})}),u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(q,{className:oee.text,children:[e,"..."]}),u.jsx(Mt,{flexGrow:"1"}),n]}),r&&u.jsxs(u.Fragment,{children:[u.jsx("div",{}),r]})]})}const kMe="data:image/svg+xml,%3csvg%20width='14'%20height='11'%20viewBox='0%200%2014%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.75%208.6748L12.6953%200.729492L13.75%201.78418L4.75%2010.7842L0.566406%206.60059L1.62109%205.5459L4.75%208.6748Z'%20fill='%231D863B'/%3e%3c/svg%3e",SMe="_text_1ont6_1",CMe="_container_1ont6_7",aee={text:SMe,container:CMe};function jMe({label:e,hide:t}){const n=t?{visibility:"hidden"}:{};return u.jsxs(V,{gap:"2",align:"center",style:n,className:aee.container,children:[u.jsx("img",{src:kMe,alt:"complete"}),u.jsx(q,{className:aee.text,children:e})]})}const TMe="_label_1ojid_1",IMe="_value_1ojid_6",see={label:TMe,value:IMe};function ud({label:e,value:t}){return u.jsxs(V,{gap:"1",flexGrow:"1",children:[u.jsx(q,{className:see.label,children:e}),u.jsx(q,{className:see.value,children:t??"-"})]})}function EMe(){const e=X(Zu);return e?u.jsxs(V,{children:[u.jsx(ud,{label:"Current Slot",value:e.ledger_slot}),u.jsx(ud,{label:"Max Slot",value:e.ledger_max_slot})]}):null}const NMe="_progress_gtr5g_1",$Me="_text_gtr5g_11",H3={progress:NMe,text:$Me};class bp extends Error{}class MMe extends bp{constructor(t){super(`Invalid DateTime: ${t.toMessage()}`)}}class LMe extends bp{constructor(t){super(`Invalid Interval: ${t.toMessage()}`)}}class RMe extends bp{constructor(t){super(`Invalid Duration: ${t.toMessage()}`)}}class dg extends bp{}class lee extends bp{constructor(t){super(`Invalid unit ${t}`)}}class Bo extends bp{}class Ff extends bp{constructor(){super("Zone is an abstract class")}}const nt="numeric",Kl="short",ws="long",Z3={year:nt,month:nt,day:nt},uee={year:nt,month:Kl,day:nt},OMe={year:nt,month:Kl,day:nt,weekday:Kl},cee={year:nt,month:ws,day:nt},dee={year:nt,month:ws,day:nt,weekday:ws},fee={hour:nt,minute:nt},hee={hour:nt,minute:nt,second:nt},pee={hour:nt,minute:nt,second:nt,timeZoneName:Kl},mee={hour:nt,minute:nt,second:nt,timeZoneName:ws},gee={hour:nt,minute:nt,hourCycle:"h23"},vee={hour:nt,minute:nt,second:nt,hourCycle:"h23"},yee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:Kl},bee={hour:nt,minute:nt,second:nt,hourCycle:"h23",timeZoneName:ws},_ee={year:nt,month:nt,day:nt,hour:nt,minute:nt},xee={year:nt,month:nt,day:nt,hour:nt,minute:nt,second:nt},wee={year:nt,month:Kl,day:nt,hour:nt,minute:nt},kee={year:nt,month:Kl,day:nt,hour:nt,minute:nt,second:nt},PMe={year:nt,month:Kl,day:nt,weekday:Kl,hour:nt,minute:nt},See={year:nt,month:ws,day:nt,hour:nt,minute:nt,timeZoneName:Kl},Cee={year:nt,month:ws,day:nt,hour:nt,minute:nt,second:nt,timeZoneName:Kl},jee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,timeZoneName:ws},Tee={year:nt,month:ws,day:nt,weekday:ws,hour:nt,minute:nt,second:nt,timeZoneName:ws};class pb{get type(){throw new Ff}get name(){throw new Ff}get ianaName(){return this.name}get isUniversal(){throw new Ff}offsetName(t,n){throw new Ff}formatOffset(t,n){throw new Ff}offset(t){throw new Ff}equals(t){throw new Ff}get isValid(){throw new Ff}}let $E=null;class hC extends pb{static get instance(){return $E===null&&($E=new hC),$E}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(t,{format:n,locale:r}){return Qee(t,n,r)}formatOffset(t,n){return vb(this.offset(t),n)}offset(t){return-new Date(t).getTimezoneOffset()}equals(t){return t.type==="system"}get isValid(){return!0}}const ME=new Map;function zMe(e){let t=ME.get(e);return t===void 0&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),ME.set(e,t)),t}const DMe={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function AMe(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,i,o,a,s,l,c,d]=r;return[a,i,o,s,l,c,d]}function FMe(e,t){const n=e.formatToParts(t),r=[];for(let i=0;i=0?v:1e3+v,(f-p)/(60*1e3)}equals(t){return t.type==="iana"&&t.name===this.name}get isValid(){return this.valid}}let Iee={};function BMe(e,t={}){const n=JSON.stringify([e,t]);let r=Iee[n];return r||(r=new Intl.ListFormat(e,t),Iee[n]=r),r}const RE=new Map;function OE(e,t={}){const n=JSON.stringify([e,t]);let r=RE.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),RE.set(n,r)),r}const PE=new Map;function UMe(e,t={}){const n=JSON.stringify([e,t]);let r=PE.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),PE.set(n,r)),r}const zE=new Map;function WMe(e,t={}){const{base:n,...r}=t,i=JSON.stringify([e,r]);let o=zE.get(i);return o===void 0&&(o=new Intl.RelativeTimeFormat(e,t),zE.set(i,o)),o}let q3=null;function VMe(){return q3||(q3=new Intl.DateTimeFormat().resolvedOptions().locale,q3)}const DE=new Map;function Eee(e){let t=DE.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),DE.set(e,t)),t}const AE=new Map;function HMe(e){let t=AE.get(e);if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in t||(t={...Nee,...t}),AE.set(e,t)}return t}function ZMe(e){const t=e.indexOf("-x-");t!==-1&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(n===-1)return[e];{let r,i;try{r=OE(e).resolvedOptions(),i=e}catch{const s=e.substring(0,n);r=OE(s).resolvedOptions(),i=s}const{numberingSystem:o,calendar:a}=r;return[i,o,a]}}function qMe(e,t,n){return(n||t)&&(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`)),e}function GMe(e){const t=[];for(let n=1;n<=12;n++){const r=jt.utc(2009,n,1);t.push(e(r))}return t}function YMe(e){const t=[];for(let n=1;n<=7;n++){const r=jt.utc(2016,11,13+n);t.push(e(r))}return t}function G3(e,t,n,r){const i=e.listingMode();return i==="error"?null:i==="en"?n(t):r(t)}function KMe(e){return e.numberingSystem&&e.numberingSystem!=="latn"?!1:e.numberingSystem==="latn"||!e.locale||e.locale.startsWith("en")||Eee(e.locale).numberingSystem==="latn"}class XMe{constructor(t,n,r){this.padTo=r.padTo||0,this.floor=r.floor||!1;const{padTo:i,floor:o,...a}=r;if(!n||Object.keys(a).length>0){const s={useGrouping:!1,...r};r.padTo>0&&(s.minimumIntegerDigits=r.padTo),this.inf=UMe(t,s)}}format(t){if(this.inf){const n=this.floor?Math.floor(t):t;return this.inf.format(n)}else{const n=this.floor?Math.floor(t):GE(t,3);return Li(n,this.padTo)}}}class JMe{constructor(t,n,r){this.opts=r,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=t;else if(t.zone.type==="fixed"){const a=-1*(t.offset/60),s=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;t.offset!==0&&Od.create(s).valid?(i=s,this.dt=t):(i="UTC",this.dt=t.offset===0?t:t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone)}else t.zone.type==="system"?this.dt=t:t.zone.type==="iana"?(this.dt=t,i=t.zone.name):(i="UTC",this.dt=t.setZone("UTC").plus({minutes:t.offset}),this.originalZone=t.zone);const o={...this.opts};o.timeZone=o.timeZone||i,this.dtf=OE(n,o)}format(){return this.originalZone?this.formatToParts().map(({value:t})=>t).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const t=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?t.map(n=>{if(n.type==="timeZoneName"){const r=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...n,value:r}}else return n}):t}resolvedOptions(){return this.dtf.resolvedOptions()}}class QMe{constructor(t,n,r){this.opts={style:"long",...r},!n&&Yee()&&(this.rtf=WMe(t,r))}format(t,n){return this.rtf?this.rtf.format(t,n):xLe(n,t,this.opts.numeric,this.opts.style!=="long")}formatToParts(t,n){return this.rtf?this.rtf.formatToParts(t,n):[]}}const Nee={firstDay:1,minimalDays:4,weekend:[6,7]};class Gn{static fromOpts(t){return Gn.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,o=!1){const a=t||ci.defaultLocale,s=a||(o?"en-US":VMe()),l=n||ci.defaultNumberingSystem,c=r||ci.defaultOutputCalendar,d=ZE(i)||ci.defaultWeekSettings;return new Gn(s,l,c,d,a)}static resetCache(){q3=null,RE.clear(),PE.clear(),zE.clear(),DE.clear(),AE.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return Gn.create(t,n,r,i)}constructor(t,n,r,i,o){const[a,s,l]=ZMe(t);this.locale=a,this.numberingSystem=n||s||null,this.outputCalendar=r||l||null,this.weekSettings=i,this.intl=qMe(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=o,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=KMe(this)),this.fastNumbersCached}listingMode(){const t=this.isEnglish(),n=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return t&&n?"en":"intl"}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:Gn.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,ZE(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(t={}){return this.clone({...t,defaultToEN:!0})}redefaultToSystem(t={}){return this.clone({...t,defaultToEN:!1})}months(t,n=!1){return G3(this,t,nte,()=>{const r=this.intl==="ja"||this.intl.startsWith("ja-");n&=!r;const i=n?{month:t,day:"numeric"}:{month:t},o=n?"format":"standalone";if(!this.monthsCache[o][t]){const a=r?s=>this.dtFormatter(s,i).format():s=>this.extract(s,i,"month");this.monthsCache[o][t]=GMe(a)}return this.monthsCache[o][t]})}weekdays(t,n=!1){return G3(this,t,ote,()=>{const r=n?{weekday:t,year:"numeric",month:"long",day:"numeric"}:{weekday:t},i=n?"format":"standalone";return this.weekdaysCache[i][t]||(this.weekdaysCache[i][t]=YMe(o=>this.extract(o,r,"weekday"))),this.weekdaysCache[i][t]})}meridiems(){return G3(this,void 0,()=>ate,()=>{if(!this.meridiemCache){const t={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[jt.utc(2016,11,13,9),jt.utc(2016,11,13,19)].map(n=>this.extract(n,t,"dayperiod"))}return this.meridiemCache})}eras(t){return G3(this,t,ste,()=>{const n={era:t};return this.eraCache[t]||(this.eraCache[t]=[jt.utc(-40,1,1),jt.utc(2017,1,1)].map(r=>this.extract(r,n,"era"))),this.eraCache[t]})}extract(t,n,r){const i=this.dtFormatter(t,n),o=i.formatToParts(),a=o.find(s=>s.type.toLowerCase()===r);return a?a.value:null}numberFormatter(t={}){return new XMe(this.intl,t.forceSimple||this.fastNumbers,t)}dtFormatter(t,n={}){return new JMe(t,this.intl,n)}relFormatter(t={}){return new QMe(this.intl,this.isEnglish(),t)}listFormatter(t={}){return BMe(this.intl,t)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Eee(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Kee()?HMe(this.locale):Nee}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(t){return this.locale===t.locale&&this.numberingSystem===t.numberingSystem&&this.outputCalendar===t.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let FE=null;class ba extends pb{static get utcInstance(){return FE===null&&(FE=new ba(0)),FE}static instance(t){return t===0?ba.utcInstance:new ba(t)}static parseSpecifier(t){if(t){const n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new ba(Q3(n[1],n[2]))}return null}constructor(t){super(),this.fixed=t}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${vb(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${vb(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(t,n){return vb(this.fixed,n)}get isUniversal(){return!0}offset(){return this.fixed}equals(t){return t.type==="fixed"&&t.fixed===this.fixed}get isValid(){return!0}}class eLe extends pb{constructor(t){super(),this.zoneName=t}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Bf(e,t){if(Pt(e)||e===null)return t;if(e instanceof pb)return e;if(aLe(e)){const n=e.toLowerCase();return n==="default"?t:n==="local"||n==="system"?hC.instance:n==="utc"||n==="gmt"?ba.utcInstance:ba.parseSpecifier(n)||Od.create(e)}else return Uf(e)?ba.instance(e):typeof e=="object"&&"offset"in e&&typeof e.offset=="function"?e:new eLe(e)}const BE={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},$ee={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},tLe=BE.hanidec.replace(/[\[|\]]/g,"").split("");function nLe(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n=o&&r<=a&&(t+=r-o)}}return parseInt(t,10)}else return t}const UE=new Map;function rLe(){UE.clear()}function Xl({numberingSystem:e},t=""){const n=e||"latn";let r=UE.get(n);r===void 0&&(r=new Map,UE.set(n,r));let i=r.get(t);return i===void 0&&(i=new RegExp(`${BE[n]}${t}`),r.set(t,i)),i}let Mee=()=>Date.now(),Lee="system",Ree=null,Oee=null,Pee=null,zee=60,Dee,Aee=null;class ci{static get now(){return Mee}static set now(t){Mee=t}static set defaultZone(t){Lee=t}static get defaultZone(){return Bf(Lee,hC.instance)}static get defaultLocale(){return Ree}static set defaultLocale(t){Ree=t}static get defaultNumberingSystem(){return Oee}static set defaultNumberingSystem(t){Oee=t}static get defaultOutputCalendar(){return Pee}static set defaultOutputCalendar(t){Pee=t}static get defaultWeekSettings(){return Aee}static set defaultWeekSettings(t){Aee=ZE(t)}static get twoDigitCutoffYear(){return zee}static set twoDigitCutoffYear(t){zee=t%100}static get throwOnInvalid(){return Dee}static set throwOnInvalid(t){Dee=t}static resetCaches(){Gn.resetCache(),Od.resetCache(),jt.resetCache(),rLe()}}class Jl{constructor(t,n){this.reason=t,this.explanation=n}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Fee=[0,31,59,90,120,151,181,212,243,273,304,334],Bee=[0,31,60,91,121,152,182,213,244,274,305,335];function al(e,t){return new Jl("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function WE(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const i=r.getUTCDay();return i===0?7:i}function Uee(e,t,n){return n+(mb(e)?Bee:Fee)[t-1]}function Wee(e,t){const n=mb(e)?Bee:Fee,r=n.findIndex(o=>ogb(r,t,n)?(c=r+1,l=1):c=r,{weekYear:c,weekNumber:l,weekday:s,...tk(e)}}function Vee(e,t=4,n=1){const{weekYear:r,weekNumber:i,weekday:o}=e,a=VE(WE(r,1,t),n),s=hg(r);let l=i*7+o-a-7+t,c;l<1?(c=r-1,l+=hg(c)):l>s?(c=r+1,l-=hg(r)):c=r;const{month:d,day:f}=Wee(c,l);return{year:c,month:d,day:f,...tk(e)}}function HE(e){const{year:t,month:n,day:r}=e,i=Uee(t,n,r);return{year:t,ordinal:i,...tk(e)}}function Hee(e){const{year:t,ordinal:n}=e,{month:r,day:i}=Wee(t,n);return{year:t,month:r,day:i,...tk(e)}}function Zee(e,t){if(!Pt(e.localWeekday)||!Pt(e.localWeekNumber)||!Pt(e.localWeekYear)){if(!Pt(e.weekday)||!Pt(e.weekNumber)||!Pt(e.weekYear))throw new dg("Cannot mix locale-based week fields with ISO-based week fields");return Pt(e.localWeekday)||(e.weekday=e.localWeekday),Pt(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),Pt(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function iLe(e,t=4,n=1){const r=K3(e.weekYear),i=sl(e.weekNumber,1,gb(e.weekYear,t,n)),o=sl(e.weekday,1,7);return r?i?o?!1:al("weekday",e.weekday):al("week",e.weekNumber):al("weekYear",e.weekYear)}function oLe(e){const t=K3(e.year),n=sl(e.ordinal,1,hg(e.year));return t?n?!1:al("ordinal",e.ordinal):al("year",e.year)}function qee(e){const t=K3(e.year),n=sl(e.month,1,12),r=sl(e.day,1,X3(e.year,e.month));return t?n?r?!1:al("day",e.day):al("month",e.month):al("year",e.year)}function Gee(e){const{hour:t,minute:n,second:r,millisecond:i}=e,o=sl(t,0,23)||t===24&&n===0&&r===0&&i===0,a=sl(n,0,59),s=sl(r,0,59),l=sl(i,0,999);return o?a?s?l?!1:al("millisecond",i):al("second",r):al("minute",n):al("hour",t)}function Pt(e){return typeof e>"u"}function Uf(e){return typeof e=="number"}function K3(e){return typeof e=="number"&&e%1===0}function aLe(e){return typeof e=="string"}function sLe(e){return Object.prototype.toString.call(e)==="[object Date]"}function Yee(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Kee(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function lLe(e){return Array.isArray(e)?e:[e]}function Xee(e,t,n){if(e.length!==0)return e.reduce((r,i)=>{const o=[t(i),i];return r&&n(r[0],o[0])===r[0]?r:o},null)[1]}function uLe(e,t){return t.reduce((n,r)=>(n[r]=e[r],n),{})}function fg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ZE(e){if(e==null)return null;if(typeof e!="object")throw new Bo("Week settings must be an object");if(!sl(e.firstDay,1,7)||!sl(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(t=>!sl(t,1,7)))throw new Bo("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function sl(e,t,n){return K3(e)&&e>=t&&e<=n}function cLe(e,t){return e-t*Math.floor(e/t)}function Li(e,t=2){const n=e<0;let r;return n?r="-"+(""+-e).padStart(t,"0"):r=(""+e).padStart(t,"0"),r}function Wf(e){if(!(Pt(e)||e===null||e===""))return parseInt(e,10)}function _p(e){if(!(Pt(e)||e===null||e===""))return parseFloat(e)}function qE(e){if(!(Pt(e)||e===null||e==="")){const t=parseFloat("0."+e)*1e3;return Math.floor(t)}}function GE(e,t,n="round"){const r=10**t;switch(n){case"expand":return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case"trunc":return Math.trunc(e*r)/r;case"round":return Math.round(e*r)/r;case"floor":return Math.floor(e*r)/r;case"ceil":return Math.ceil(e*r)/r;default:throw new RangeError(`Value rounding ${n} is out of range`)}}function mb(e){return e%4===0&&(e%100!==0||e%400===0)}function hg(e){return mb(e)?366:365}function X3(e,t){const n=cLe(t-1,12)+1,r=e+(t-n)/12;return n===2?mb(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function J3(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Jee(e,t,n){return-VE(WE(e,1,t),n)+t-1}function gb(e,t=4,n=1){const r=Jee(e,t,n),i=Jee(e+1,t,n);return(hg(e)-r+i)/7}function YE(e){return e>99?e:e>ci.twoDigitCutoffYear?1900+e:2e3+e}function Qee(e,t,n,r=null){const i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(o.timeZone=r);const a={timeZoneName:t,...o},s=new Intl.DateTimeFormat(n,a).formatToParts(i).find(l=>l.type.toLowerCase()==="timezonename");return s?s.value:null}function Q3(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function ete(e){const t=Number(e);if(typeof e=="boolean"||e===""||!Number.isFinite(t))throw new Bo(`Invalid unit value ${e}`);return t}function ek(e,t){const n={};for(const r in e)if(fg(e,r)){const i=e[r];if(i==null)continue;n[t(r)]=ete(i)}return n}function vb(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(t){case"short":return`${i}${Li(n,2)}:${Li(r,2)}`;case"narrow":return`${i}${n}${r>0?`:${r}`:""}`;case"techie":return`${i}${Li(n,2)}${Li(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function tk(e){return uLe(e,["hour","minute","second","millisecond"])}const dLe=["January","February","March","April","May","June","July","August","September","October","November","December"],tte=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fLe=["J","F","M","A","M","J","J","A","S","O","N","D"];function nte(e){switch(e){case"narrow":return[...fLe];case"short":return[...tte];case"long":return[...dLe];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const rte=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ite=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],hLe=["M","T","W","T","F","S","S"];function ote(e){switch(e){case"narrow":return[...hLe];case"short":return[...ite];case"long":return[...rte];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const ate=["AM","PM"],pLe=["Before Christ","Anno Domini"],mLe=["BC","AD"],gLe=["B","A"];function ste(e){switch(e){case"narrow":return[...gLe];case"short":return[...mLe];case"long":return[...pLe];default:return null}}function vLe(e){return ate[e.hour<12?0:1]}function yLe(e,t){return ote(t)[e.weekday-1]}function bLe(e,t){return nte(t)[e.month-1]}function _Le(e,t){return ste(t)[e.year<0?0:1]}function xLe(e,t,n="always",r=!1){const i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},o=["hours","minutes","seconds"].indexOf(e)===-1;if(n==="auto"&&o){const f=e==="days";switch(t){case 1:return f?"tomorrow":`next ${i[e][0]}`;case-1:return f?"yesterday":`last ${i[e][0]}`;case 0:return f?"today":`this ${i[e][0]}`}}const a=Object.is(t,-0)||t<0,s=Math.abs(t),l=s===1,c=i[e],d=r?l?c[1]:c[2]||c[1]:l?i[e][0]:e;return a?`${s} ${d} ago`:`in ${s} ${d}`}function lte(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const wLe={D:Z3,DD:uee,DDD:cee,DDDD:dee,t:fee,tt:hee,ttt:pee,tttt:mee,T:gee,TT:vee,TTT:yee,TTTT:bee,f:_ee,ff:wee,fff:See,ffff:jee,F:xee,FF:kee,FFF:Cee,FFFF:Tee};class Yo{static create(t,n={}){return new Yo(t,n)}static parseFormat(t){let n=null,r="",i=!1;const o=[];for(let a=0;a0||i)&&o.push({literal:i||/^\s+$/.test(r),val:r===""?"'":r}),n=null,r="",i=!i):i||s===n?r+=s:(r.length>0&&o.push({literal:/^\s+$/.test(r),val:r}),r=s,n=s)}return r.length>0&&o.push({literal:i||/^\s+$/.test(r),val:r}),o}static macroTokenToFormatOpts(t){return wLe[t]}constructor(t,n){this.opts=n,this.loc=t,this.systemLoc=null}formatWithSystemDefault(t,n){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(t,{...this.opts,...n}).format()}dtFormatter(t,n={}){return this.loc.dtFormatter(t,{...this.opts,...n})}formatDateTime(t,n){return this.dtFormatter(t,n).format()}formatDateTimeParts(t,n){return this.dtFormatter(t,n).formatToParts()}formatInterval(t,n){return this.dtFormatter(t.start,n).dtf.formatRange(t.start.toJSDate(),t.end.toJSDate())}resolvedOptions(t,n){return this.dtFormatter(t,n).resolvedOptions()}num(t,n=0,r=void 0){if(this.opts.forceSimple)return Li(t,n);const i={...this.opts};return n>0&&(i.padTo=n),r&&(i.signDisplay=r),this.loc.numberFormatter(i).format(t)}formatDateTimeFromString(t,n){const r=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",o=(v,_)=>this.loc.extract(t,v,_),a=v=>t.isOffsetFixed&&t.offset===0&&v.allowZ?"Z":t.isValid?t.zone.formatOffset(t.ts,v.format):"",s=()=>r?vLe(t):o({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(v,_)=>r?bLe(t,v):o(_?{month:v}:{month:v,day:"numeric"},"month"),c=(v,_)=>r?yLe(t,v):o(_?{weekday:v}:{weekday:v,month:"long",day:"numeric"},"weekday"),d=v=>{const _=Yo.macroTokenToFormatOpts(v);return _?this.formatWithSystemDefault(t,_):v},f=v=>r?_Le(t,v):o({era:v},"era"),p=v=>{switch(v){case"S":return this.num(t.millisecond);case"u":case"SSS":return this.num(t.millisecond,3);case"s":return this.num(t.second);case"ss":return this.num(t.second,2);case"uu":return this.num(Math.floor(t.millisecond/10),2);case"uuu":return this.num(Math.floor(t.millisecond/100));case"m":return this.num(t.minute);case"mm":return this.num(t.minute,2);case"h":return this.num(t.hour%12===0?12:t.hour%12);case"hh":return this.num(t.hour%12===0?12:t.hour%12,2);case"H":return this.num(t.hour);case"HH":return this.num(t.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return t.zone.offsetName(t.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return t.zone.offsetName(t.ts,{format:"long",locale:this.loc.locale});case"z":return t.zoneName;case"a":return s();case"d":return i?o({day:"numeric"},"day"):this.num(t.day);case"dd":return i?o({day:"2-digit"},"day"):this.num(t.day,2);case"c":return this.num(t.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(t.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?o({month:"numeric",day:"numeric"},"month"):this.num(t.month);case"LL":return i?o({month:"2-digit",day:"numeric"},"month"):this.num(t.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return i?o({month:"numeric"},"month"):this.num(t.month);case"MM":return i?o({month:"2-digit"},"month"):this.num(t.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return i?o({year:"numeric"},"year"):this.num(t.year);case"yy":return i?o({year:"2-digit"},"year"):this.num(t.year.toString().slice(-2),2);case"yyyy":return i?o({year:"numeric"},"year"):this.num(t.year,4);case"yyyyyy":return i?o({year:"numeric"},"year"):this.num(t.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(t.weekYear.toString().slice(-2),2);case"kkkk":return this.num(t.weekYear,4);case"W":return this.num(t.weekNumber);case"WW":return this.num(t.weekNumber,2);case"n":return this.num(t.localWeekNumber);case"nn":return this.num(t.localWeekNumber,2);case"ii":return this.num(t.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(t.localWeekYear,4);case"o":return this.num(t.ordinal);case"ooo":return this.num(t.ordinal,3);case"q":return this.num(t.quarter);case"qq":return this.num(t.quarter,2);case"X":return this.num(Math.floor(t.ts/1e3));case"x":return this.num(t.ts);default:return d(v)}};return lte(Yo.parseFormat(n),p)}formatDurationFromString(t,n){const r=this.opts.signMode==="negativeLargestOnly"?-1:1,i=d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},o=(d,f)=>p=>{const v=i(p);if(v){const _=f.isNegativeDuration&&v!==f.largestUnit?r:1;let y;return this.opts.signMode==="negativeLargestOnly"&&v!==f.largestUnit?y="never":this.opts.signMode==="all"?y="always":y="auto",this.num(d.get(v)*_,p.length,y)}else return p},a=Yo.parseFormat(n),s=a.reduce((d,{literal:f,val:p})=>f?d:d.concat(p),[]),l=t.shiftTo(...s.map(i).filter(d=>d)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return lte(a,o(l,c))}}const ute=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function pg(...e){const t=e.reduce((n,r)=>n+r.source,"");return RegExp(`^${t}$`)}function mg(...e){return t=>e.reduce(([n,r,i],o)=>{const[a,s,l]=o(t,i);return[{...n,...a},s||r,l]},[{},null,1]).slice(0,2)}function gg(e,...t){if(e==null)return[null,null];for(const[n,r]of t){const i=n.exec(e);if(i)return r(i)}return[null,null]}function cte(...e){return(t,n)=>{const r={};let i;for(i=0;iv!==void 0&&(_||v&&d)?-v:v;return[{years:p(_p(n)),months:p(_p(r)),weeks:p(_p(i)),days:p(_p(o)),hours:p(_p(a)),minutes:p(_p(s)),seconds:p(_p(l),l==="-0"),milliseconds:p(qE(c),f)}]}const OLe={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function JE(e,t,n,r,i,o,a){const s={year:t.length===2?YE(Wf(t)):Wf(t),month:tte.indexOf(n)+1,day:Wf(r),hour:Wf(i),minute:Wf(o)};return a&&(s.second=Wf(a)),e&&(s.weekday=e.length>3?rte.indexOf(e)+1:ite.indexOf(e)+1),s}const PLe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function zLe(e){const[,t,n,r,i,o,a,s,l,c,d,f]=e,p=JE(t,i,r,n,o,a,s);let v;return l?v=OLe[l]:c?v=0:v=Q3(d,f),[p,new ba(v)]}function DLe(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const ALe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,FLe=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,BLe=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function pte(e){const[,t,n,r,i,o,a,s]=e;return[JE(t,i,r,n,o,a,s),ba.utcInstance]}function ULe(e){const[,t,n,r,i,o,a,s]=e;return[JE(t,s,n,r,i,o,a),ba.utcInstance]}const WLe=pg(SLe,XE),VLe=pg(CLe,XE),HLe=pg(jLe,XE),ZLe=pg(fte),mte=mg($Le,yg,yb,bb),qLe=mg(TLe,yg,yb,bb),GLe=mg(ILe,yg,yb,bb),YLe=mg(yg,yb,bb);function KLe(e){return gg(e,[WLe,mte],[VLe,qLe],[HLe,GLe],[ZLe,YLe])}function XLe(e){return gg(DLe(e),[PLe,zLe])}function JLe(e){return gg(e,[ALe,pte],[FLe,pte],[BLe,ULe])}function QLe(e){return gg(e,[LLe,RLe])}const eRe=mg(yg);function tRe(e){return gg(e,[MLe,eRe])}const nRe=pg(ELe,NLe),rRe=pg(hte),iRe=mg(yg,yb,bb);function oRe(e){return gg(e,[nRe,mte],[rRe,iRe])}const gte="Invalid Duration",vte={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},aRe={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...vte},ll=146097/400,bg=146097/4800,sRe={years:{quarters:4,months:12,weeks:ll/7,days:ll,hours:ll*24,minutes:ll*24*60,seconds:ll*24*60*60,milliseconds:ll*24*60*60*1e3},quarters:{months:3,weeks:ll/28,days:ll/4,hours:ll*24/4,minutes:ll*24*60/4,seconds:ll*24*60*60/4,milliseconds:ll*24*60*60*1e3/4},months:{weeks:bg/7,days:bg,hours:bg*24,minutes:bg*24*60,seconds:bg*24*60*60,milliseconds:bg*24*60*60*1e3},...vte},xp=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],lRe=xp.slice(0).reverse();function cd(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new fn(r)}function yte(e,t){let n=t.milliseconds??0;for(const r of lRe.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bte(e,t){const n=yte(e,t)<0?-1:1;xp.reduceRight((r,i)=>{if(Pt(t[i]))return r;if(r){const o=t[r]*n,a=e[i][r],s=Math.floor(o/a);t[i]+=s*n,t[r]-=s*a*n}return i},null),xp.reduce((r,i)=>{if(Pt(t[i]))return r;if(r){const o=t[r]%1;t[r]-=o,t[i]+=o*e[r][i]}return i},null)}function _te(e){const t={};for(const[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}class fn{constructor(t){const n=t.conversionAccuracy==="longterm"||!1;let r=n?sRe:aRe;t.matrix&&(r=t.matrix),this.values=t.values,this.loc=t.loc||Gn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=t.invalid||null,this.matrix=r,this.isLuxonDuration=!0}static fromMillis(t,n){return fn.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(t==null||typeof t!="object")throw new Bo(`Duration.fromObject: argument expected to be an object, got ${t===null?"null":typeof t}`);return new fn({values:ek(t,fn.normalizeUnit),loc:Gn.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(Uf(t))return fn.fromMillis(t);if(fn.isDuration(t))return t;if(typeof t=="object")return fn.fromObject(t);throw new Bo(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){const[r]=QLe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){const[r]=tRe(t);return r?fn.fromObject(r,n):fn.invalid("unparsable",`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new Bo("need to specify a reason the Duration is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(ci.throwOnInvalid)throw new RMe(r);return new fn({invalid:r})}static normalizeUnit(t){const n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[t&&t.toLowerCase()];if(!n)throw new lee(t);return n}static isDuration(t){return t&&t.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(t,n={}){const r={...n,floor:n.round!==!1&&n.floor!==!1};return this.isValid?Yo.create(this.loc,r).formatDurationFromString(this,t):gte}toHuman(t={}){if(!this.isValid)return gte;const n=t.showZeros!==!1,r=xp.map(i=>{const o=this.values[i];return Pt(o)||o===0&&!n?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...t,unit:i.slice(0,-1)}).format(o)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:t.listStyle||"narrow",...t}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let t="P";return this.years!==0&&(t+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(t+=this.months+this.quarters*3+"M"),this.weeks!==0&&(t+=this.weeks+"W"),this.days!==0&&(t+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(t+="T"),this.hours!==0&&(t+=this.hours+"H"),this.minutes!==0&&(t+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(t+=GE(this.seconds+this.milliseconds/1e3,3)+"S"),t==="P"&&(t+="T0S"),t}toISOTime(t={}){if(!this.isValid)return null;const n=this.toMillis();return n<0||n>=864e5?null:(t={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...t,includeOffset:!1},jt.fromMillis(n,{zone:"UTC"}).toISOTime(t))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?yte(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t),r={};for(const i of xp)(fg(n.values,i)||fg(this.values,i))&&(r[i]=n.get(i)+this.get(i));return cd(this,{values:r},!0)}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return this.plus(n.negate())}mapUnits(t){if(!this.isValid)return this;const n={};for(const r of Object.keys(this.values))n[r]=ete(t(this.values[r],r));return cd(this,{values:n},!0)}get(t){return this[fn.normalizeUnit(t)]}set(t){if(!this.isValid)return this;const n={...this.values,...ek(t,fn.normalizeUnit)};return cd(this,{values:n})}reconfigure({locale:t,numberingSystem:n,conversionAccuracy:r,matrix:i}={}){const o={loc:this.loc.clone({locale:t,numberingSystem:n}),matrix:i,conversionAccuracy:r};return cd(this,o)}as(t){return this.isValid?this.shiftTo(t).get(t):NaN}normalize(){if(!this.isValid)return this;const t=this.toObject();return bte(this.matrix,t),cd(this,{values:t},!0)}rescale(){if(!this.isValid)return this;const t=_te(this.normalize().shiftToAll().toObject());return cd(this,{values:t},!0)}shiftTo(...t){if(!this.isValid)return this;if(t.length===0)return this;t=t.map(a=>fn.normalizeUnit(a));const n={},r={},i=this.toObject();let o;for(const a of xp)if(t.indexOf(a)>=0){o=a;let s=0;for(const c in r)s+=this.matrix[c][a]*r[c],r[c]=0;Uf(i[a])&&(s+=i[a]);const l=Math.trunc(s);n[a]=l,r[a]=(s*1e3-l*1e3)/1e3}else Uf(i[a])&&(r[a]=i[a]);for(const a in r)r[a]!==0&&(n[o]+=a===o?r[a]:r[a]/this.matrix[o][a]);return bte(this.matrix,n),cd(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=this.values[n]===0?0:-this.values[n];return cd(this,{values:t},!0)}removeZeros(){if(!this.isValid)return this;const t=_te(this.values);return cd(this,{values:t},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(t){if(!this.isValid||!t.isValid||!this.loc.equals(t.loc))return!1;function n(r,i){return r===void 0||r===0?i===void 0||i===0:r===i}for(const r of xp)if(!n(this.values[r],t.values[r]))return!1;return!0}}const _g="Invalid Interval";function uRe(e,t){return!e||!e.isValid?hi.invalid("missing or invalid start"):!t||!t.isValid?hi.invalid("missing or invalid end"):tt:!1}isBefore(t){return this.isValid?this.e<=t:!1}contains(t){return this.isValid?this.s<=t&&this.e>t:!1}set({start:t,end:n}={}){return this.isValid?hi.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];const n=t.map(wb).filter(a=>this.contains(a)).sort((a,s)=>a.toMillis()-s.toMillis()),r=[];let{s:i}=this,o=0;for(;i+this.e?this.e:a;r.push(hi.fromDateTimes(i,s)),i=s,o+=1}return r}splitBy(t){const n=fn.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as("milliseconds")===0)return[];let{s:r}=this,i=1,o;const a=[];for(;rl*i));o=+s>+this.e?this.e:s,a.push(hi.fromDateTimes(r,o)),r=o,i+=1}return a}divideEqually(t){return this.isValid?this.splitBy(this.length()/t).slice(0,t):[]}overlaps(t){return this.e>t.s&&this.s=t.e:!1}equals(t){return!this.isValid||!t.isValid?!1:this.s.equals(t.s)&&this.e.equals(t.e)}intersection(t){if(!this.isValid)return this;const n=this.s>t.s?this.s:t.s,r=this.e=r?null:hi.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;const n=this.st.e?this.e:t.e;return hi.fromDateTimes(n,r)}static merge(t){const[n,r]=t.sort((i,o)=>i.s-o.s).reduce(([i,o],a)=>o?o.overlaps(a)||o.abutsStart(a)?[i,o.union(a)]:[i.concat([o]),a]:[i,a],[[],null]);return r&&n.push(r),n}static xor(t){let n=null,r=0;const i=[],o=t.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...o),s=a.sort((l,c)=>l.time-c.time);for(const l of s)r+=l.type==="s"?1:-1,r===1?n=l.time:(n&&+n!=+l.time&&i.push(hi.fromDateTimes(n,l.time)),n=null);return hi.merge(i)}difference(...t){return hi.xor([this].concat(t)).map(n=>this.intersection(n)).filter(n=>n&&!n.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:_g}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(t=Z3,n={}){return this.isValid?Yo.create(this.s.loc.clone(n),t).formatInterval(this):_g}toISO(t){return this.isValid?`${this.s.toISO(t)}/${this.e.toISO(t)}`:_g}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:_g}toISOTime(t){return this.isValid?`${this.s.toISOTime(t)}/${this.e.toISOTime(t)}`:_g}toFormat(t,{separator:n=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(t)}${n}${this.e.toFormat(t)}`:_g}toDuration(t,n){return this.isValid?this.e.diff(this.s,t,n):fn.invalid(this.invalidReason)}mapEndpoints(t){return hi.fromDateTimes(t(this.s),t(this.e))}}class nk{static hasDST(t=ci.defaultZone){const n=jt.now().setZone(t).set({month:12});return!t.isUniversal&&n.offset!==n.set({month:6}).offset}static isValidIANAZone(t){return Od.isValidZone(t)}static normalizeZone(t){return Bf(t,ci.defaultZone)}static getStartOfWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:t=null,locObj:n=null}={}){return(n||Gn.create(t)).getWeekendDays().slice()}static months(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t)}static monthsFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null,outputCalendar:o="gregory"}={}){return(i||Gn.create(n,r,o)).months(t,!0)}static weekdays(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t)}static weekdaysFormat(t="long",{locale:n=null,numberingSystem:r=null,locObj:i=null}={}){return(i||Gn.create(n,r,null)).weekdays(t,!0)}static meridiems({locale:t=null}={}){return Gn.create(t).meridiems()}static eras(t="short",{locale:n=null}={}){return Gn.create(n,null,"gregory").eras(t)}static features(){return{relative:Yee(),localeWeek:Kee()}}}function xte(e,t){const n=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(fn.fromMillis(r).as("days"))}function cRe(e,t,n){const r=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{const d=xte(l,c);return(d-d%7)/7}],["days",xte]],i={},o=e;let a,s;for(const[l,c]of r)n.indexOf(l)>=0&&(a=l,i[l]=c(e,t),s=o.plus(i),s>t?(i[l]--,e=o.plus(i),e>t&&(s=e,i[l]--,e=o.plus(i))):e=s);return[e,i,s,a]}function dRe(e,t,n,r){let[i,o,a,s]=cRe(e,t,n);const l=t-i,c=n.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);c.length===0&&(a0?fn.fromMillis(l,r).shiftTo(...c).plus(d):d}const fRe="missing Intl.DateTimeFormat.formatToParts support";function Dn(e,t=n=>n){return{regex:e,deser:([n])=>t(nLe(n))}}const hRe="\xA0",wte=`[ ${hRe}]`,kte=new RegExp(wte,"g");function pRe(e){return e.replace(/\./g,"\\.?").replace(kte,wte)}function Ste(e){return e.replace(/\./g,"").replace(kte," ").toLowerCase()}function Ql(e,t){return e===null?null:{regex:RegExp(e.map(pRe).join("|")),deser:([n])=>e.findIndex(r=>Ste(n)===Ste(r))+t}}function Cte(e,t){return{regex:e,deser:([,n,r])=>Q3(n,r),groups:t}}function rk(e){return{regex:e,deser:([t])=>t}}function mRe(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gRe(e,t){const n=Xl(t),r=Xl(t,"{2}"),i=Xl(t,"{3}"),o=Xl(t,"{4}"),a=Xl(t,"{6}"),s=Xl(t,"{1,2}"),l=Xl(t,"{1,3}"),c=Xl(t,"{1,6}"),d=Xl(t,"{1,9}"),f=Xl(t,"{2,4}"),p=Xl(t,"{4,6}"),v=y=>({regex:RegExp(mRe(y.val)),deser:([b])=>b,literal:!0}),_=(y=>{if(e.literal)return v(y);switch(y.val){case"G":return Ql(t.eras("short"),0);case"GG":return Ql(t.eras("long"),0);case"y":return Dn(c);case"yy":return Dn(f,YE);case"yyyy":return Dn(o);case"yyyyy":return Dn(p);case"yyyyyy":return Dn(a);case"M":return Dn(s);case"MM":return Dn(r);case"MMM":return Ql(t.months("short",!0),1);case"MMMM":return Ql(t.months("long",!0),1);case"L":return Dn(s);case"LL":return Dn(r);case"LLL":return Ql(t.months("short",!1),1);case"LLLL":return Ql(t.months("long",!1),1);case"d":return Dn(s);case"dd":return Dn(r);case"o":return Dn(l);case"ooo":return Dn(i);case"HH":return Dn(r);case"H":return Dn(s);case"hh":return Dn(r);case"h":return Dn(s);case"mm":return Dn(r);case"m":return Dn(s);case"q":return Dn(s);case"qq":return Dn(r);case"s":return Dn(s);case"ss":return Dn(r);case"S":return Dn(l);case"SSS":return Dn(i);case"u":return rk(d);case"uu":return rk(s);case"uuu":return Dn(n);case"a":return Ql(t.meridiems(),0);case"kkkk":return Dn(o);case"kk":return Dn(f,YE);case"W":return Dn(s);case"WW":return Dn(r);case"E":case"c":return Dn(n);case"EEE":return Ql(t.weekdays("short",!1),1);case"EEEE":return Ql(t.weekdays("long",!1),1);case"ccc":return Ql(t.weekdays("short",!0),1);case"cccc":return Ql(t.weekdays("long",!0),1);case"Z":case"ZZ":return Cte(new RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case"ZZZ":return Cte(new RegExp(`([+-]${s.source})(${r.source})?`),2);case"z":return rk(/[a-z_+-/]{1,256}?/i);case" ":return rk(/[^\S\n\r]/);default:return v(y)}})(e)||{invalidReason:fRe};return _.token=e,_}const vRe={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function yRe(e,t,n){const{type:r,value:i}=e;if(r==="literal"){const l=/^\s+$/.test(i);return{literal:!l,val:l?" ":i}}const o=t[r];let a=r;r==="hour"&&(t.hour12!=null?a=t.hour12?"hour12":"hour24":t.hourCycle!=null?t.hourCycle==="h11"||t.hourCycle==="h12"?a="hour12":a="hour24":a=n.hour12?"hour12":"hour24");let s=vRe[a];if(typeof s=="object"&&(s=s[o]),s)return{literal:!1,val:s}}function bRe(e){return[`^${e.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,e]}function _Re(e,t,n){const r=e.match(t);if(r){const i={};let o=1;for(const a in n)if(fg(n,a)){const s=n[a],l=s.groups?s.groups+1:1;!s.literal&&s.token&&(i[s.token.val[0]]=s.deser(r.slice(o,o+l))),o+=l}return[r,i]}else return[r,{}]}function xRe(e){const t=i=>{switch(i){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let n=null,r;return Pt(e.z)||(n=Od.create(e.z)),Pt(e.Z)||(n||(n=new ba(e.Z)),r=e.Z),Pt(e.q)||(e.M=(e.q-1)*3+1),Pt(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),Pt(e.u)||(e.S=qE(e.u)),[Object.keys(e).reduce((i,o)=>{const a=t(o);return a&&(i[a]=e[o]),i},{}),n,r]}let QE=null;function wRe(){return QE||(QE=jt.fromMillis(1555555555555)),QE}function kRe(e,t){if(e.literal)return e;const n=Yo.macroTokenToFormatOpts(e.val),r=Ete(n,t);return r==null||r.includes(void 0)?e:r}function jte(e,t){return Array.prototype.concat(...e.map(n=>kRe(n,t)))}class Tte{constructor(t,n){if(this.locale=t,this.format=n,this.tokens=jte(Yo.parseFormat(n),t),this.units=this.tokens.map(r=>gRe(r,t)),this.disqualifyingUnit=this.units.find(r=>r.invalidReason),!this.disqualifyingUnit){const[r,i]=bRe(this.units);this.regex=RegExp(r,"i"),this.handlers=i}}explainFromTokens(t){if(this.isValid){const[n,r]=_Re(t,this.regex,this.handlers),[i,o,a]=r?xRe(r):[null,null,void 0];if(fg(r,"a")&&fg(r,"H"))throw new dg("Can't include meridiem when specifying 24-hour format");return{input:t,tokens:this.tokens,regex:this.regex,rawMatches:n,matches:r,result:i,zone:o,specificOffset:a}}else return{input:t,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Ite(e,t,n){return new Tte(e,n).explainFromTokens(t)}function SRe(e,t,n){const{result:r,zone:i,specificOffset:o,invalidReason:a}=Ite(e,t,n);return[r,i,o,a]}function Ete(e,t){if(!e)return null;const n=Yo.create(t,e).dtFormatter(wRe()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(o=>yRe(o,e,i))}const eN="Invalid DateTime",Nte=864e13;function _b(e){return new Jl("unsupported zone",`the zone "${e.name}" is not supported`)}function tN(e){return e.weekData===null&&(e.weekData=Y3(e.c)),e.weekData}function nN(e){return e.localWeekData===null&&(e.localWeekData=Y3(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function wp(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new jt({...n,...t,old:n})}function $te(e,t,n){let r=e-t*60*1e3;const i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;const o=n.offset(r);return i===o?[r,i]:[e-Math.min(i,o)*60*1e3,Math.max(i,o)]}function ik(e,t){e+=t*60*1e3;const n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function ok(e,t,n){return $te(J3(e),t,n)}function Mte(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,o={...e.c,year:r,month:i,day:Math.min(e.c.day,X3(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},a=fn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),s=J3(o);let[l,c]=$te(s,n,e.zone);return a!==0&&(l+=a,c=e.zone.offset(l)),{ts:l,o:c}}function xg(e,t,n,r,i,o){const{setZone:a,zone:s}=n;if(e&&Object.keys(e).length!==0||t){const l=t||s,c=jt.fromObject(e,{...n,zone:l,specificOffset:o});return a?c:c.setZone(s)}else return jt.invalid(new Jl("unparsable",`the input "${i}" can't be parsed as ${r}`))}function ak(e,t,n=!0){return e.isValid?Yo.create(Gn.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function rN(e,t,n){const r=e.c.year>9999||e.c.year<0;let i="";if(r&&e.c.year>=0&&(i+="+"),i+=Li(e.c.year,r?6:4),n==="year")return i;if(t){if(i+="-",i+=Li(e.c.month),n==="month")return i;i+="-"}else if(i+=Li(e.c.month),n==="month")return i;return i+=Li(e.c.day),i}function Lte(e,t,n,r,i,o,a){let s=!n||e.c.millisecond!==0||e.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=Li(e.c.hour),a==="hour")break;if(t){if(l+=":",l+=Li(e.c.minute),a==="minute")break;s&&(l+=":",l+=Li(e.c.second))}else{if(l+=Li(e.c.minute),a==="minute")break;s&&(l+=Li(e.c.second))}if(a==="second")break;s&&(!r||e.c.millisecond!==0)&&(l+=".",l+=Li(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!o?l+="Z":e.o<0?(l+="-",l+=Li(Math.trunc(-e.o/60)),l+=":",l+=Li(Math.trunc(-e.o%60))):(l+="+",l+=Li(Math.trunc(e.o/60)),l+=":",l+=Li(Math.trunc(e.o%60)))),o&&(l+="["+e.zone.ianaName+"]"),l}const Rte={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},CRe={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jRe={ordinal:1,hour:0,minute:0,second:0,millisecond:0},sk=["year","month","day","hour","minute","second","millisecond"],TRe=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],IRe=["year","ordinal","hour","minute","second","millisecond"];function lk(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new lee(e);return t}function Ote(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return lk(e)}}function ERe(e){if(xb===void 0&&(xb=ci.now()),e.type!=="iana")return e.offset(xb);const t=e.name;let n=iN.get(t);return n===void 0&&(n=e.offset(xb),iN.set(t,n)),n}function Pte(e,t){const n=Bf(t.zone,ci.defaultZone);if(!n.isValid)return jt.invalid(_b(n));const r=Gn.fromObject(t);let i,o;if(Pt(e.year))i=ci.now();else{for(const l of sk)Pt(e[l])&&(e[l]=Rte[l]);const a=qee(e)||Gee(e);if(a)return jt.invalid(a);const s=ERe(n);[i,o]=ok(e,s,n)}return new jt({ts:i,zone:n,loc:r,o})}function zte(e,t,n){const r=Pt(n.round)?!0:n.round,i=Pt(n.rounding)?"trunc":n.rounding,o=(s,l)=>(s=GE(s,r||n.calendary?0:2,n.calendary?"round":i),t.loc.clone(n).relFormatter(n).format(s,l)),a=s=>n.calendary?t.hasSame(e,s)?0:t.startOf(s).diff(e.startOf(s),s).get(s):t.diff(e,s).get(s);if(n.unit)return o(a(n.unit),n.unit);for(const s of n.units){const l=a(s);if(Math.abs(l)>=1)return o(l,s)}return o(e>t?-0:0,n.units[n.units.length-1])}function Dte(e){let t={},n;return e.length>0&&typeof e[e.length-1]=="object"?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}let xb;const iN=new Map;class jt{constructor(t){const n=t.zone||ci.defaultZone;let r=t.invalid||(Number.isNaN(t.ts)?new Jl("invalid input"):null)||(n.isValid?null:_b(n));this.ts=Pt(t.ts)?ci.now():t.ts;let i=null,o=null;if(!r)if(t.old&&t.old.ts===this.ts&&t.old.zone.equals(n))[i,o]=[t.old.c,t.old.o];else{const a=Uf(t.o)&&!t.old?t.o:n.offset(this.ts);i=ik(this.ts,a),r=Number.isNaN(i.year)?new Jl("invalid input"):null,i=r?null:i,o=r?null:a}this._zone=n,this.loc=t.loc||Gn.create(),this.invalid=r,this.weekData=null,this.localWeekData=null,this.c=i,this.o=o,this.isLuxonDateTime=!0}static now(){return new jt({})}static local(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return Pte({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static utc(){const[t,n]=Dte(arguments),[r,i,o,a,s,l,c]=n;return t.zone=ba.utcInstance,Pte({year:r,month:i,day:o,hour:a,minute:s,second:l,millisecond:c},t)}static fromJSDate(t,n={}){const r=sLe(t)?t.valueOf():NaN;if(Number.isNaN(r))return jt.invalid("invalid input");const i=Bf(n.zone,ci.defaultZone);return i.isValid?new jt({ts:r,zone:i,loc:Gn.fromObject(n)}):jt.invalid(_b(i))}static fromMillis(t,n={}){if(Uf(t))return t<-Nte||t>Nte?jt.invalid("Timestamp out of range"):new jt({ts:t,zone:Bf(n.zone,ci.defaultZone),loc:Gn.fromObject(n)});throw new Bo(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(Uf(t))return new jt({ts:t*1e3,zone:Bf(n.zone,ci.defaultZone),loc:Gn.fromObject(n)});throw new Bo("fromSeconds requires a numerical input")}static fromObject(t,n={}){t=t||{};const r=Bf(n.zone,ci.defaultZone);if(!r.isValid)return jt.invalid(_b(r));const i=Gn.fromObject(n),o=ek(t,Ote),{minDaysInFirstWeek:a,startOfWeek:s}=Zee(o,i),l=ci.now(),c=Pt(n.specificOffset)?r.offset(l):n.specificOffset,d=!Pt(o.ordinal),f=!Pt(o.year),p=!Pt(o.month)||!Pt(o.day),v=f||p,_=o.weekYear||o.weekNumber;if((v||d)&&_)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&d)throw new dg("Can't mix ordinal dates with month/day");const y=_||o.weekday&&!v;let b,w,x=ik(l,c);y?(b=TRe,w=CRe,x=Y3(x,a,s)):d?(b=IRe,w=jRe,x=HE(x)):(b=sk,w=Rte);let S=!1;for(const M of b){const P=o[M];Pt(P)?S?o[M]=w[M]:o[M]=x[M]:S=!0}const C=y?iLe(o,a,s):d?oLe(o):qee(o),j=C||Gee(o);if(j)return jt.invalid(j);const T=y?Vee(o,a,s):d?Hee(o):o,[E,$]=ok(T,c,r),A=new jt({ts:E,zone:r,o:$,loc:i});return o.weekday&&v&&t.weekday!==A.weekday?jt.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${A.toISO()}`):A.isValid?A:jt.invalid(A.invalid)}static fromISO(t,n={}){const[r,i]=KLe(t);return xg(r,i,n,"ISO 8601",t)}static fromRFC2822(t,n={}){const[r,i]=XLe(t);return xg(r,i,n,"RFC 2822",t)}static fromHTTP(t,n={}){const[r,i]=JLe(t);return xg(r,i,n,"HTTP",n)}static fromFormat(t,n,r={}){if(Pt(t)||Pt(n))throw new Bo("fromFormat requires an input string and a format");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0}),[s,l,c,d]=SRe(a,t,n);return d?jt.invalid(d):xg(s,l,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return jt.fromFormat(t,n,r)}static fromSQL(t,n={}){const[r,i]=oRe(t);return xg(r,i,n,"SQL",t)}static invalid(t,n=null){if(!t)throw new Bo("need to specify a reason the DateTime is invalid");const r=t instanceof Jl?t:new Jl(t,n);if(ci.throwOnInvalid)throw new MMe(r);return new jt({invalid:r})}static isDateTime(t){return t&&t.isLuxonDateTime||!1}static parseFormatForOpts(t,n={}){const r=Ete(t,Gn.fromObject(n));return r?r.map(i=>i?i.val:null).join(""):null}static expandFormat(t,n={}){return jte(Yo.parseFormat(t),Gn.fromObject(n)).map(r=>r.val).join("")}static resetCache(){xb=void 0,iN.clear()}get(t){return this[t]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?tN(this).weekYear:NaN}get weekNumber(){return this.isValid?tN(this).weekNumber:NaN}get weekday(){return this.isValid?tN(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?nN(this).weekday:NaN}get localWeekNumber(){return this.isValid?nN(this).weekNumber:NaN}get localWeekYear(){return this.isValid?nN(this).weekYear:NaN}get ordinal(){return this.isValid?HE(this.c).ordinal:NaN}get monthShort(){return this.isValid?nk.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?nk.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?nk.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?nk.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const t=864e5,n=6e4,r=J3(this.c),i=this.zone.offset(r-t),o=this.zone.offset(r+t),a=this.zone.offset(r-i*n),s=this.zone.offset(r-o*n);if(a===s)return[this];const l=r-a*n,c=r-s*n,d=ik(l,a),f=ik(c,s);return d.hour===f.hour&&d.minute===f.minute&&d.second===f.second&&d.millisecond===f.millisecond?[wp(this,{ts:l}),wp(this,{ts:c})]:[this]}get isInLeapYear(){return mb(this.year)}get daysInMonth(){return X3(this.year,this.month)}get daysInYear(){return this.isValid?hg(this.year):NaN}get weeksInWeekYear(){return this.isValid?gb(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?gb(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(t={}){const{locale:n,numberingSystem:r,calendar:i}=Yo.create(this.loc.clone(t),t).resolvedOptions(this);return{locale:n,numberingSystem:r,outputCalendar:i}}toUTC(t=0,n={}){return this.setZone(ba.instance(t),n)}toLocal(){return this.setZone(ci.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Bf(t,ci.defaultZone),t.equals(this.zone))return this;if(t.isValid){let i=this.ts;if(n||r){const o=t.offset(this.ts),a=this.toObject();[i]=ok(a,o,t)}return wp(this,{ts:i,zone:t})}else return jt.invalid(_b(t))}reconfigure({locale:t,numberingSystem:n,outputCalendar:r}={}){const i=this.loc.clone({locale:t,numberingSystem:n,outputCalendar:r});return wp(this,{loc:i})}setLocale(t){return this.reconfigure({locale:t})}set(t){if(!this.isValid)return this;const n=ek(t,Ote),{minDaysInFirstWeek:r,startOfWeek:i}=Zee(n,this.loc),o=!Pt(n.weekYear)||!Pt(n.weekNumber)||!Pt(n.weekday),a=!Pt(n.ordinal),s=!Pt(n.year),l=!Pt(n.month)||!Pt(n.day),c=s||l,d=n.weekYear||n.weekNumber;if((c||a)&&d)throw new dg("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new dg("Can't mix ordinal dates with month/day");let f;o?f=Vee({...Y3(this.c,r,i),...n},r,i):Pt(n.ordinal)?(f={...this.toObject(),...n},Pt(n.day)&&(f.day=Math.min(X3(f.year,f.month),f.day))):f=Hee({...HE(this.c),...n});const[p,v]=ok(f,this.o,this.zone);return wp(this,{ts:p,o:v})}plus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t);return wp(this,Mte(this,n))}minus(t){if(!this.isValid)return this;const n=fn.fromDurationLike(t).negate();return wp(this,Mte(this,n))}startOf(t,{useLocaleWeeks:n=!1}={}){if(!this.isValid)return this;const r={},i=fn.normalizeUnit(t);switch(i){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(i==="weeks")if(n){const o=this.loc.getStartOfWeek(),{weekday:a}=this;a=3&&(l+="T"),l+=Lte(this,s,n,r,i,o,a),l}toISODate({format:t="extended",precision:n="day"}={}){return this.isValid?rN(this,t==="extended",lk(n)):null}toISOWeekDate(){return ak(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:t=!1,suppressSeconds:n=!1,includeOffset:r=!0,includePrefix:i=!1,extendedZone:o=!1,format:a="extended",precision:s="milliseconds"}={}){return this.isValid?(s=lk(s),(i&&sk.indexOf(s)>=3?"T":"")+Lte(this,a==="extended",n,t,r,o,s)):null}toRFC2822(){return ak(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ak(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?rN(this,!0):null}toSQLTime({includeOffset:t=!0,includeZone:n=!1,includeOffsetSpace:r=!0}={}){let i="HH:mm:ss.SSS";return(n||t)&&(r&&(i+=" "),n?i+="z":t&&(i+="ZZ")),ak(this,i,!0)}toSQL(t={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(t)}`:null}toString(){return this.isValid?this.toISO():eN}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(t={}){if(!this.isValid)return{};const n={...this.c};return t.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(t,n="milliseconds",r={}){if(!this.isValid||!t.isValid)return fn.invalid("created by diffing an invalid DateTime");const i={locale:this.locale,numberingSystem:this.numberingSystem,...r},o=lLe(n).map(fn.normalizeUnit),a=t.valueOf()>this.valueOf(),s=a?this:t,l=a?t:this,c=dRe(s,l,o,i);return a?c.negate():c}diffNow(t="milliseconds",n={}){return this.diff(jt.now(),t,n)}until(t){return this.isValid?hi.fromDateTimes(this,t):this}hasSame(t,n,r){if(!this.isValid)return!1;const i=t.valueOf(),o=this.setZone(t.zone,{keepLocalTime:!0});return o.startOf(n,r)<=i&&i<=o.endOf(n,r)}equals(t){return this.isValid&&t.isValid&&this.valueOf()===t.valueOf()&&this.zone.equals(t.zone)&&this.loc.equals(t.loc)}toRelative(t={}){if(!this.isValid)return null;const n=t.base||jt.fromObject({},{zone:this.zone}),r=t.padding?thisn.valueOf(),Math.min)}static max(...t){if(!t.every(jt.isDateTime))throw new Bo("max requires all arguments be DateTimes");return Xee(t,n=>n.valueOf(),Math.max)}static fromFormatExplain(t,n,r={}){const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});return Ite(a,t,n)}static fromStringExplain(t,n,r={}){return jt.fromFormatExplain(t,n,r)}static buildFormatParser(t,n={}){const{locale:r=null,numberingSystem:i=null}=n,o=Gn.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0});return new Tte(o,t)}static fromFormatParser(t,n,r={}){if(Pt(t)||Pt(n))throw new Bo("fromFormatParser requires an input string and a format parser");const{locale:i=null,numberingSystem:o=null}=r,a=Gn.fromOpts({locale:i,numberingSystem:o,defaultToEN:!0});if(!a.equals(n.locale))throw new Bo(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${n.locale}`);const{result:s,zone:l,specificOffset:c,invalidReason:d}=n.explainFromTokens(t);return d?jt.invalid(d):xg(s,l,r,`format ${n.format}`,t,c)}static get DATE_SHORT(){return Z3}static get DATE_MED(){return uee}static get DATE_MED_WITH_WEEKDAY(){return OMe}static get DATE_FULL(){return cee}static get DATE_HUGE(){return dee}static get TIME_SIMPLE(){return fee}static get TIME_WITH_SECONDS(){return hee}static get TIME_WITH_SHORT_OFFSET(){return pee}static get TIME_WITH_LONG_OFFSET(){return mee}static get TIME_24_SIMPLE(){return gee}static get TIME_24_WITH_SECONDS(){return vee}static get TIME_24_WITH_SHORT_OFFSET(){return yee}static get TIME_24_WITH_LONG_OFFSET(){return bee}static get DATETIME_SHORT(){return _ee}static get DATETIME_SHORT_WITH_SECONDS(){return xee}static get DATETIME_MED(){return wee}static get DATETIME_MED_WITH_SECONDS(){return kee}static get DATETIME_MED_WITH_WEEKDAY(){return PMe}static get DATETIME_FULL(){return See}static get DATETIME_FULL_WITH_SECONDS(){return Cee}static get DATETIME_HUGE(){return jee}static get DATETIME_HUGE_WITH_SECONDS(){return Tee}}function wb(e){if(jt.isDateTime(e))return e;if(e&&e.valueOf&&Uf(e.valueOf()))return jt.fromJSDate(e);if(e&&typeof e=="object")return jt.fromObject(e);throw new Bo(`Unknown datetime argument: ${e}, of type ${typeof e}`)}const $n=4,oN=5,Ate=3,Uo=4,Fte=9,dd=1e9,aN=1e6,Bte=6e7,sN={0:"Success",1:"Account In Use",2:"Account Loaded Twice",3:"Account Not Found",4:"Program Account Not Found",5:"Insufficient Funds For Fee",6:"Invalid Account For Fee",7:"Already Processed",8:"Blockhash Not Found",9:"Instruction Error",10:"Call Chain Too Deep",11:"Missing Signature For Fee",12:"Invalid Account Index",13:"Signature Failure",14:"Invalid Program For Execution",15:"Sanitize Failure",16:"Cluster Maintenance",17:"Account Borrow Outstanding",18:"Would Exceed Max Block Cost Limit",19:"Unsupported Version",20:"Invalid Writable Account",21:"Would Exceed Max Account Cost Limit",22:"Would Exceed Account Data Block Limit",23:"Too Many Account Locks",24:"Address Lookup Table Not Found",25:"Invalid Address Lookup Table Owner",26:"Invalid Address Lookup Table Data",27:"Invalid Address Lookup Table Index",28:"Invalid Rent Paying Account",29:"Would Exceed Max Vote Cost Limit",30:"Would Exceed Account Data Total Limit",31:"Duplicate Instruction",32:"Insufficient Funds For Rent",33:"Max Loaded Accounts Data Size Exceeded",34:"Invalid Loaded Accounts Data Size Limit",35:"Resanitization Needed",36:"Program Execution Temporarily Restricted",37:"Unbalanced Transaction",38:"Program Cache Hit Max Limit",39:"Commit Cancelled",40:"Bundle Peer",50:"Blockhash Nonce Already Advanced",51:"Blockhash Advanced Failed",52:"Blockhash Wrong Nonce"},uk="\xA0",kb=5,Ute=30,Sb=48,lN=13,uN=21,NRe=28,Vf=5,cN=21,ck=8,dN=ck,fN=122,Wte=cN+ck,$Re=Wte+fN+Vf,Vte="(max-width: 768px)",Hte="564px",Hf=110,Zte="1920px";var za=(e=>(e.AgaveJito="Agave Jito",e.Frankendancer="Frankendancer",e.Agave="Agave",e.AgavePaladin="Agave Paladin",e.Firedancer="Firedancer",e.AgaveBam="Agave BAM",e.Sig="Sig",e.AgaveRakurai="Agave Rakurai",e.FiredancerHarmonic="Firedancer Harmonic",e.AgaveHarmonic="Agave Harmonic",e.FrankendancerHarmonic="Frankendancer Harmonic",e))(za||{});const qte={1:"Agave Jito",2:"Frankendancer",3:"Agave",4:"Agave Paladin",5:"Firedancer",6:"Agave BAM",7:"Sig",8:"Agave Rakurai",9:"Firedancer Harmonic",10:"Agave Harmonic",11:"Frankendancer Harmonic"};function MRe(){if(typeof window>"u")return!1;const e=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(e)||"ontouchstart"in window&&!!(matchMedia!=null&&matchMedia("(hover: none)").matches)}const LRe=MRe(),fd="#E5484D",hN="#67B873",Gte="#C567EA",Yte="#2A7EDF",dk="#1CE7C2",RRe="#CBCBCB",Kte="#8A8A8A",pN="#B2BCC9",wg="#67696A",mN="#8E909D",Xte="#B4B4B4",Jte="#949494",ORe="rgba(250, 250, 250, 0.12)",PRe="rgba(250, 250, 250, 0.05)",zRe="#24262B",DRe="#F7F8F8",ARe="var(--gray-1, #111)",FRe="var(--gray-12, #eee)",BRe="var(--gray-10, #7b7b7b)",URe="#333333",WRe="#F7F7F7",Qte=Jte,hd="#557AE0",Zf=hN,VRe="#9982f0",HRe="#303134",ZRe="#37a4bc",qRe="#00205F",GRe="#010102",YRe="#03030C",KRe="#A7A7A7",XRe="#121213",JRe=dk,QRe="#3BA158",eOe="#030312",tOe="#020C12",nOe="#020912",rOe="#060E0E",iOe="#120602",oOe="#252D2C",aOe="#175E51",sOe="#2D2B25",lOe="#6A510C",uOe="#E6B11E",cOe="#2D2525",dOe="#5E1717",fOe="#CE3636",hOe="#A2A2A2",pOe="#666",mOe="#C8B3B3",gOe="#686868",vOe="#171765ff",yOe="linear-gradient(270deg, #1414B8 0%, #090952 100%)",bOe="#8F8FED",_Oe="#0E0E8E",xOe="#0C171D",wOe="linear-gradient(270deg, #1481B8 0%, #093952 100%)",kOe="#47B4EB",SOe="#0F3F57",COe="#041225",jOe="linear-gradient(270deg, #0E448B 0%, #090E15 100%)",TOe="#83B3F2",IOe="#0E448B",EOe="#091515",NOe=`linear-gradient(270deg, ${dk} 0%, #0C6B5A 100%)`,$Oe="#2EC9C9",MOe="#0C6B5A",LOe="#231511",ROe="linear-gradient(270deg, #8B2B0E 0%, #150C09 100%)",OOe="#F29D83",POe="#250C04",zOe="rgba(16, 129, 108, 0.53)",DOe="#ffffff1a",AOe="rgba(250, 250, 250, 0.12)",FOe="#cac4c4",BOe="#231f1f",UOe="var(--gray-11)",WOe="var(--gray-10)",VOe="var(--gray-9)",HOe="var(--gray-7)",ene="#3972C9",tne="#74AFEA",nne="#0F1313",rne="#118B74",ine="#871616",one="#163454",ane="#89603E",ZOe="#EF5F00",qOe="#F76B15",GOe="#0D9B8A",YOe="#53B9AB",KOe="#0588F0",XOe="#0090FF",sne=dk,lne="#E7B81C",une="#1C96E7",cne="#E7601C",dne="#9D1CE7",fne="#E71C88",hne="#898989",JOe="#FF7878",QOe="#FF9D0A",ePe="#FFC267",pne="#141720",fk="var(--gray-11)",hk="var(--gray-9)",mne="#56BF8C",gne="#4A7661",vne="#C27B45",yne="#714C32",bne="#DC6869",_ne="#7A3B40",Yu="#BDF3FF",pk="#6F77C0",xne="#363A63",gN="#20788C",tPe="#b1b1b1",wne="#7b837c",kne="#eee",Sne="#006851",Cne="#19307C",jne="#743F4D",nPe="#919191",rPe="#E5B319",iPe="#E55A19",oPe="#E5484D",vN="#55BA83",yN="#D94343",Tne="#232A38",aPe="#676767",sPe="#E13131",lPe="#5F6FA9",uPe="#A2A2A2",cPe="#DB8F38",dPe="#CACACA",bN="#858585",_N="#312D42",xN="#A66759",wN="#597FA6",kN="#A67F59",SN="#366357",CN="#B2904D",jN="#2F3842",TN="#B23232",IN="#82738C",fPe="#FAFAFA",hPe="#3CB4FF",pPe="#142D53",mPe="#FF5353",Ine="#525463",Ene="#23639E",Nne="#5C5555",$ne="#452909",qf="#C6C6C6",EN="#183A5A",Mne="#10273D",gPe="#7CE198",vPe="#A4A3A3",yPe="#1B659933",sr="#777b84",NN="#2C3235",pd="#D19DFF",kg="#4CCCE6",Gf="#1FD8A4",bPe="#6A6A6E",Lne=wg,Rne="rgba(250, 250, 250, 0.05)",$N="#30A46C",MN="#E5484D",mk="#FF8DCC",kp="#9EB1FF",_Pe="#292929",xPe="#9e9e9e",wPe="#1d6fba",kPe="#84858a",LN="rgba(0, 0, 0, .5)",One="rgba(125, 94, 84, .5)",Pne="#A18072",RN="#6C4E62",zne="rgba(158, 108, 0, .5)",Dne="#836A21",Ane="rgba(96, 100, 108, .5)",Fne="#B5B2BC",Bne="rgba(17, 50, 100, .5)",Une="#0090FF",SPe="var(--gray-11)",CPe="var(--gray-10)",jPe="#41B9D3",TPe="#C46BF0",IPe="#6BEFD7",EPe="#C6F06A",NPe="#71EF9B",$Pe="#6AC4F0",MPe="#DDD",LPe="#8FB6FC",RPe="linear-gradient(83.85deg, #024eff 0.22%, #3ce844 102.21%)",OPe="#F5F2EC",ON="#AFB2C2",PPe="rgba(178, 178, 178, 0.12)",zPe="#424242",DPe="rgba(114, 114, 114, 0.15)",APe="#646464",PN="#676767",FPe="var(--gray-11)",BPe="var(--gray-10)",UPe="#cbcbcb",WPe="#1190CF",VPe="#6CB1D3",HPe="#967DC8",gk="#871616",zN="#1d863b",DN="#1d6286",Wne="#1CE7C2",Vne="#076B59",ZPe="#313131",Hne="#666666",Zne=DN,qPe="#19457A",GPe="#FFF",YPe="var(--gray-10)",qne="var(--teal-9)",Gne="var(--cyan-9)",Yne="var(--red-8)",Kne="var(--sky-8)",Xne="var(--green-9)",Jne="var(--indigo-10)",KPe="var(--blue-9)",XPe="#15181e",JPe="#9aabc3",QPe="#250f0f",eze="#283551",tze="#3b0c0c",nze="#e3efff",rze="#484D53B2",ize="var(--gray-11)",oze="var(--gray-10)",aze="var(--gray-12)",sze="#70B8FF",lze="#070A13",uze="#070B14 ",cze="rgba(42, 126, 223, 0.5)",dze="rgba(125, 125, 125, 0.50)",fze="#2A7EDF",hze="#070a13",pze="#0D0D0D",mze="#250f0f",gze="#002163",vze="#3b0c0c",yze="#848484",bze="#A0A0A0",_ze="#ccc",xze="#878787",wze="rgba(191, 135, 253, 0.13)",kze="#283551",vk="#0000001F",Sze=Object.freeze(Object.defineProperty({__proto__:null,appTeal:dk,averageChangedColor:vne,averageUnchangedColor:yne,badChangedColor:bne,badUnchangedColor:_ne,bootProgressCatchupBackgroundColor:rOe,bootProgressFullSnapshotBackgroundColor:tOe,bootProgressGossipBackgroundColor:eOe,bootProgressGossipBarsColor:oOe,bootProgressGossipFilledBarColor:aOe,bootProgressGossipHighBarColor:cOe,bootProgressGossipHighFilledBarColor:dOe,bootProgressGossipHighThresholdBarColor:fOe,bootProgressGossipMidBarColor:sOe,bootProgressGossipMidFilledBarColor:lOe,bootProgressGossipMidThresholdBarColor:uOe,bootProgressIncrSnapshotBackgroundColor:nOe,bootProgressPrimaryTextColor:hOe,bootProgressSecondaryTextColor:pOe,bootProgressSnapshotUnitsColor:gOe,bootProgressSupermajorityBackgroundColor:iOe,bootProgressTertiaryColor:mOe,cardBackgroundColor:pne,chartAxisColor:sr,chartGridColor:NN,chartGridStrokeColor:Rne,circularProgressPathColor:Zne,circularProgressTrailColor:Hne,clusterDevelopmentColor:une,clusterDevnetColor:cne,clusterMainnetBetaColor:sne,clusterPythnetColor:dne,clusterPythtestColor:fne,clusterTestnetColor:lne,clusterUnknownColor:hne,computeUnitsColor:pd,containerBackgroundColor:PRe,containerBorderColor:ORe,dropdownBackgroundColor:zRe,dropdownButtonTextColor:DRe,elapsedTimeColor:bPe,epochNotLiveColor:hPe,epochSkippedSlotColor:mPe,epochSliderProgressColor:pPe,epochTextColor:fPe,errorToggleColor:MN,fadedText:kPe,failureColor:fd,feesColor:kg,firstTurbineSlotColor:ene,focusedBorderColor:wPe,goodChangedColor:mne,goodUnchangedColor:gne,gridLineColor:_N,gridTicksColor:bN,headerColor:Yu,headerLabelTextColor:Jte,highIncrementTextColor:oPe,iconButtonColor:Xte,incomePerCuToggleControlColor:kp,latestTurbineSlotColor:tne,lowIncrementTextColor:rPe,midIncrementTextColor:iPe,missingSlotColor:nne,mySlotsColor:Yte,navButtonInactiveTextColor:Qte,navButtonTextColor:WRe,needsReplaySlotColor:one,nextColor:Gte,nextSlotValueColor:dPe,nonDelinquentChartColor:xne,nonDelinquentColor:pk,nonVoteColor:Zf,popoverBackgroundColor:ARe,popoverPrimaryColor:FRe,popoverSecondaryColor:BRe,primaryTextColor:pN,programCacheColor:kne,progressBackgroundColor:ZRe,progressBarCompleteCatchupColor:MOe,progressBarCompleteFullSnapshotColor:SOe,progressBarCompleteGossipColor:_Oe,progressBarCompleteIncSnapshotColor:IOe,progressBarCompleteSupermajorityColor:POe,progressBarInProgressCatchupBackground:NOe,progressBarInProgressCatchupBorder:$Oe,progressBarInProgressFullSnapshotBackground:wOe,progressBarInProgressFullSnapshotBorder:kOe,progressBarInProgressGossipBackground:yOe,progressBarInProgressGossipBorder:bOe,progressBarInProgressIncSnapshotBackground:jOe,progressBarInProgressIncSnapshotBorder:TOe,progressBarInProgressSupermajorityBackground:ROe,progressBarInProgressSupermajorityBorder:OOe,progressBarIncompleteCatchupColor:EOe,progressBarIncompleteFullSnapshotColor:xOe,progressBarIncompleteGossipColor:vOe,progressBarIncompleteIncSnapshotColor:COe,progressBarIncompleteSupermajorityColor:LOe,progressGutterBackgroundColor:HRe,regularTextColor:mN,repairedNeedsReplaySlotColor:ane,repairedSlotsBoldTextColor:qOe,repairedSlotsTextColor:ZOe,replayedMissingSlotColor:ine,replayedSlotColor:rne,replayedSlotsBoldTextColor:YOe,replayedSlotsTextColor:GOe,requestedToggleControlColor:mk,rowSeparatorBackgroundColor:URe,sankeyBaseLabelColor:qf,sankeyDroppedLinkColor:Nne,sankeyIncomingLinkColor:Ene,sankeyLinkGradientEndColor:EN,sankeyLinkGradientMiddleColor:Mne,sankeyRetainedLinkColor:$ne,sankeyStartEndNodeColor:Ine,sankeySuccessRateColor:gPe,searchDisabledBackgroundColor:DPe,searchDisabledBorderColor:PPe,searchDisabledTextColor:zPe,searchIconColor:ON,secondaryTextColor:wg,shredPublishedColor:IN,shredReceivedRepairColor:kN,shredReceivedTurbineColor:wN,shredRepairRequestedColor:xN,shredReplayedNothingColor:jN,shredReplayedRepairColor:CN,shredReplayedTurbineColor:SN,shredSkippedColor:TN,skipRateLabelColor:APe,slotCardHeaderTextColor:UPe,slotCardSectionBackgroundColor:PN,slotCardSectionPrimaryColor:FPe,slotCardSectionSecondaryColor:BPe,slotDetailsBackgroundColor:XPe,slotDetailsChartControlsTriggered:sze,slotDetailsClickableSlotColor:KPe,slotDetailsColor:JPe,slotDetailsDisabledSlotBorderColor:rze,slotDetailsEarliestSlotColor:qne,slotDetailsFeesSlotColor:Kne,slotDetailsMySlotsNotSelectedColor:qPe,slotDetailsQuickSearchTextColor:YPe,slotDetailsRecentSlotColor:Gne,slotDetailsRewardsSlotColor:Jne,slotDetailsSearchLabelColor:GPe,slotDetailsSelectedBackgroundColor:eze,slotDetailsSelectedColor:nze,slotDetailsSkippedBackgroundColor:QPe,slotDetailsSkippedSelectedBackgroundColor:tze,slotDetailsSkippedSlotColor:Yne,slotDetailsStatsPrimary:ize,slotDetailsStatsSecondary:oze,slotDetailsStatsTertiary:aze,slotDetailsTipsSlotColor:Xne,slotNavBackgroundColor:GRe,slotNavFilterBackgroundColor:qRe,slotSelectorItemBackgroundColor:yPe,slotSelectorTextColor:vPe,slotStatusBlue:DN,slotStatusDullTeal:Vne,slotStatusGray:ZPe,slotStatusGreen:zN,slotStatusRed:gk,slotStatusTeal:Wne,slotTextActiveLinkColor:VPe,slotTextLinkColor:WPe,slotTextVisitedLinkColor:HPe,slotTimelineTextColor:tPe,slotsListBackgroundColor:hze,slotsListCurrentSlotBoxShadowColor:wze,slotsListCurrentSlotNumberBackgroundColor:kze,slotsListFutureSlotBackgroundColor:pze,slotsListFutureSlotColor:xze,slotsListMySlotBackgroundColor:uze,slotsListMySlotsBorderColor:cze,slotsListMySlotsSelectedBorderColor:fze,slotsListNotProcessedMySlotsBorderColor:dze,slotsListPastSlotColor:bze,slotsListPastSlotNumberColor:yze,slotsListSelectedBackgroundColor:gze,slotsListSkippedBackgroundColor:mze,slotsListSkippedSelectedBackgroundColor:vze,slotsListSlotBackgroundColor:lze,slotsListSlotColor:_ze,snapshotAreaChartDark:zOe,snapshotAreaChartGridLineColor:DOe,startLineColor:Lne,startupBackgroundColor:YRe,startupCompleteStepColor:QRe,startupProgressBackgroundColor:XRe,startupProgressTealColor:JRe,startupTextColor:KRe,successColor:hN,successToggleColor:$N,summaryAgaveTextColor:EPe,summaryBamTextColor:MPe,summaryFiredancerTextColor:IPe,summaryFrankendancerTextColor:TPe,summaryHarmonicTextColor:OPe,summaryJitoTextColor:NPe,summaryMySlotsColor:jPe,summaryPaladinTextColor:$Pe,summaryPrimaryTextColor:SPe,summaryRakuraiTextColor:RPe,summarySecondaryTextColor:CPe,summarySigTextColor:LPe,supermajorityPieChartTextColor:FOe,supermajorityPieChartUnfilledColor:BOe,supermajorityTableBorderColor:AOe,supermajorityTableOfflinePrimaryColor:UOe,supermajorityTableOfflineSecondaryColor:WOe,supermajorityTableOnlinePrimaryColor:VOe,supermajorityTableOnlineSecondaryColor:HOe,tableBodyColor:Kte,tableHeaderColor:RRe,tileBackgroundBlueColor:lPe,tileBackgroundRedColor:sPe,tileBusyGreenColor:vN,tileBusyRedColor:yN,tileChartDarkBackground:vk,tilePrimaryStatValueColor:cPe,tileSparklineBackgroundColor:Tne,tileSparklineRangeTextColor:aPe,tileSubHeaderColor:uPe,tipsColor:Gf,toastConnectingEndColor:ePe,toastConnectingStartColor:QOe,toastDisconnectedColor:JOe,toggleItemBackgroundColor:_Pe,toggleItemTextColor:xPe,totalValidatorsColor:gN,transactionAxisTextColor:nPe,transactionDefaultColor:LN,transactionExecuteColor:Ane,transactionExecuteTextColor:Fne,transactionFailedPathColor:jne,transactionLoadingColor:zne,transactionLoadingTextColor:Dne,transactionNonVotePathColor:Sne,transactionPostExecuteColor:Bne,transactionPostExecuteTextColor:Une,transactionPreloadingColor:One,transactionPreloadingTextColor:Pne,transactionValidateColor:RN,transactionVotePathColor:Cne,turbineSlotsBoldTextColor:XOe,turbineSlotsTextColor:KOe,unknownChangedColor:fk,unknownUnchangedColor:hk,voteDistanceColor:wne,voteLatencyColor:VRe,votesColor:hd},Symbol.toStringTag,{value:"Module"}));var Cze={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},jze=Array.prototype.slice;function yk(e){var t=e.length;return t?t===1?[e[0]]:t===2?[e[0],e[1]]:t===3?[e[0],e[1],e[2]]:jze.call(e,0):[]}function Tze(e){var t={};for(var n in e)Cze[n]||(t[n]=e[n]);return t}function Ize(e){return typeof e=="function"&&e.isMemoized}function Eze(e,t){return e===t||e!==e&&t!==t}function Qne(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}var Nze=function(){function e(t){this.keys=[],this.values=[],this.options=t;var n=typeof t.isMatchingKey=="function";n?this.getKeyIndex=this._getKeyIndexFromMatchingKey:t.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof t.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||n,this.shouldUpdateOnAdd=typeof t.onCacheAdd=="function",this.shouldUpdateOnChange=typeof t.onCacheChange=="function",this.shouldUpdateOnHit=typeof t.onCacheHit=="function"}return Object.defineProperty(e.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"snapshot",{get:function(){return{keys:yk(this.keys),size:this.size,values:yk(this.values)}},enumerable:!1,configurable:!0}),e.prototype._getKeyIndexFromMatchingKey=function(t){var n=this.options,r=n.isMatchingKey,i=n.maxSize,o=this.keys,a=o.length;if(!a)return-1;if(r(o[0],t))return 0;if(i>1){for(var s=1;s1){for(var l=0;l1){for(var a=0;a=l&&(i.length=o.length=l)},e.prototype.updateAsyncCache=function(t){var n=this,r=this.options,i=r.onCacheChange,o=r.onCacheHit,a=this.keys[0],s=this.values[0];this.values[0]=s.then(function(l){return n.shouldUpdateOnHit&&o(n,n.options,t),n.shouldUpdateOnChange&&i(n,n.options,t),l},function(l){var c=n.getKeyIndex(a);throw c!==-1&&(n.keys.splice(c,1),n.values.splice(c,1)),l})},e}();function Yf(e,t){if(t===void 0&&(t={}),Ize(e))return Yf(e.fn,Qne(e.options,t));if(typeof e!="function")throw new TypeError("You must pass a function to `memoize`.");var n=t.isEqual,r=n===void 0?Eze:n,i=t.isMatchingKey,o=t.isPromise,a=o===void 0?!1:o,s=t.maxSize,l=s===void 0?1:s,c=t.onCacheAdd,d=t.onCacheChange,f=t.onCacheHit,p=t.transformKey,v=Qne({isEqual:r,isMatchingKey:i,isPromise:a,maxSize:l,onCacheAdd:c,onCacheChange:d,onCacheHit:f,transformKey:p},Tze(t)),_=new Nze(v),y=_.keys,b=_.values,w=_.canTransformKey,x=_.shouldCloneArguments,S=_.shouldUpdateOnAdd,C=_.shouldUpdateOnChange,j=_.shouldUpdateOnHit,T=function(){var E=x?yk(arguments):arguments;w&&(E=p(E));var $=y.length?_.getKeyIndex(E):-1;if($!==-1)j&&f(_,v,T),$&&(_.orderByLru(y[$],b[$],$),C&&d(_,v,T));else{var A=e.apply(this,arguments),M=x?E:yk(arguments);_.orderByLru(M,A,y.length),a&&_.updateAsyncCache(T),S&&c(_,v,T),C&&d(_,v,T)}return b[0]};return T.cache=_,T.fn=e,T.isMemoized=!0,T.options=v,T}function AN(e,t){return e.leader_slots.reduce((n,r,i)=>(e.staked_pubkeys[r]===t&&n.push(i*$n+e.start_slot),n),[])}function xi(e){return e-e%$n}const FN=[{unit:"years",suffix:"y"},{unit:"months",suffix:"m"},{unit:"weeks",suffix:"w"},{unit:"days",suffix:"d"},{unit:"hours",suffix:"h"},{unit:"minutes",suffix:"m"},{unit:"seconds",suffix:"s"}];function $ze(e,t){if(t!=null&&t.showOnlyTwoSignificantUnits){const n=FN.findIndex(({unit:r})=>!!e[r]);return FN.slice(n,n+2).map(({unit:r,suffix:i})=>[e[r],i])}return FN.filter(({unit:n})=>t!=null&&t.omitSeconds&&n==="seconds"?!1:!!e[n]).map(({unit:n,suffix:r})=>[e[n],r])}function ere(e,t){if(!e)return;if(e.toMillis()<1e3)return[[0,"s"]];const n=$ze(e,t);return n.length?n:[[0,"s"]]}function Sp(e,t){const n=ere(e,t);return n?n.map(([r,i])=>`${r}${i}`).join(" "):"Never"}function Mze(e,t={showSeconds:!0}){if(!e)return"Never";if(e.toMillis()<0)return"0s";let n="";return e.years&&(n&&(n+=" "),n+=`${e.years}y`),e.months&&(n&&(n+=" "),n+=`${e.months}m`),e.weeks&&(n&&(n+=" "),n+=`${e.weeks}w`),e.days&&(n&&(n+=" "),n+=`${e.days}d`),e.hours&&(n&&(n+=" "),n+=`${e.hours}h`),e.minutes&&(n&&(n+=" "),n+=`${e.minutes}m`),e.seconds&&t.showSeconds&&(n&&(n+=" "),n+=`${e.seconds}s`),n||(n="0s"),n}let Kf=jt.now();setInterval(()=>{Kf=jt.now()},1e3);function tre(e){return jt.fromMillis(Math.trunc(Number(e/1000000n)))}function Cb(e){return e!==void 0}const jb=e=>e>=18446744073709552e3?0:e;function nre(e){return e.vote.reduce((t,{activated_stake:n})=>t+n,0n)}function Tb(e,t){if(e===void 0)return;const n=Number(e)/dd;return n<1?n.toLocaleString(void 0,{maximumFractionDigits:t}):n<100?n.toLocaleString(void 0,{maximumFractionDigits:2}):n.toLocaleString(void 0,{maximumFractionDigits:0})}function BN(e,t){const n=Tb(e,t);if(n!==void 0)return`${n}\xA0SOL`}const Lze=e=>Array.isArray(e);function UN(e){if(navigator.clipboard){navigator.clipboard.writeText(e);return}const t=document.createElement("textarea");t.value=e,t.style.position="absolute",t.style.left="-999999px",document.body.appendChild(t),t.select();try{document.execCommand("copy")||console.error("Failed to copy text",e)}catch(n){console.error("Failed to copy text",e,n)}finally{document.body.removeChild(t)}}function Rze(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function WN(e,t){return e.txn_landed[t]&&![5,6].includes(e.txn_error_code[t])?e.txn_priority_fee[t]+e.txn_transaction_fee[t]:0n}function VN(e,t){return e.txn_landed[t]&&e.txn_error_code[t]===0?e.txn_tips[t]:0n}function md(e,t){return WN(e,t)+VN(e,t)}function HN(e){return e.split(":")[0]}function bk(e){switch(e){case"mainnet-beta":return sne;case"testnet":return lne;case"development":return une;case"devnet":return cne;case"pythnet":return dne;case"pythtest":return fne;case"unknown":case void 0:return hne}}function Ib(e){const t=e*8;return t<1e3?{value:_k(t),unit:"b"}:t<1e6?{value:_k(t/1e3),unit:"Kb"}:t<1e9?{value:_k(t/1e6),unit:"Mb"}:{value:_k(t/1e9),unit:"Gb"}}const Sg=[{unit:"B",divisor:1,threshold:1e3},{unit:"kB",divisor:1e3,threshold:1e6},{unit:"MB",divisor:1e6,threshold:1e9},{unit:"GB",divisor:1e9,threshold:1/0}];function Da(e,t=1,n,r=!0){if(e===0&&r)return{value:"0",unit:n??"B"};const i=Sg.find(o=>o.unit===n)??Sg.find(o=>e=9.5?Math.round(e):Math.round(e*10)/10}function Eb(e){let t=-1/0;for(let n=0;nt&&(t=r)}return t}function Oze(e){let t=1/0;for(let n=0;n{if(e)return e.toUpperCase().split("").map(t=>String.fromCodePoint(t.charCodeAt(0)-65+127462)).join("")},{maxSize:100}),xk={month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3},wk={local:new Intl.DateTimeFormat(void 0,{...xk,timeZoneName:"short"}),localNoTz:new Intl.DateTimeFormat(void 0,xk),utc:new Intl.DateTimeFormat(void 0,{...xk,timeZone:"UTC",timeZoneName:"short"}),utcNoTz:new Intl.DateTimeFormat(void 0,{...xk,timeZone:"UTC"})};function kk(e,t){const n=Number(e/1000000n),r=Number(e%1000000n),i=new Date(n),o=(t==null?void 0:t.timezone)??"local",a=(t==null?void 0:t.showTimezoneName)??!0,s=(o==="utc"?a?wk.utc:wk.utcNoTz:a?wk.local:wk.localNoTz).formatToParts(i),l=r.toString().padStart(6,"0");let c="",d="";for(const f of s)c+=f.value,d+=f.value,f.type==="fractionalSecond"&&(d+=l);return{inMillis:c,inNanos:d}}function zze(e){return e.level==="rooted"&&(e.vote_latency&&e.vote_latency>1||e.vote_latency===null&&!e.skipped)}function rre(e,t,n){let r=0;for(let i=e;it>=a.from&&t{if(!t)return"";const a=Cp(t,{units:"iec"}),s=e?e/t:0,l=Number(a.value);return`${isNaN(l)?"0":(l*s).toFixed(1)} / ${a.toString()}`};return u.jsx(V,{children:u.jsxs(V,{direction:"column",children:[u.jsx(Mt,{minHeight:"10px"}),u.jsx(N4,{value:r,className:H3.progress}),u.jsxs(V,{minHeight:"10px",children:[u.jsx(q,{className:H3.text,children:o()}),u.jsx(Mt,{flexGrow:"1"}),u.jsxs(q,{className:H3.text,children:["~",Sp(i)]})]})]})})}function Aze(){const e=X(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_full_snapshot_current_bytes,totalBytes:e.downloading_full_snapshot_total_bytes,remainingSecs:e.downloading_full_snapshot_remaining_secs})}var Sk={exports:{}};/** -* @license -* Lodash -* Copyright OpenJS Foundation and other contributors -* Released under MIT license -* Based on Underscore.js 1.8.3 -* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -*/Sk.exports,function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",f=1,p=2,v=4,_=1,y=2,b=1,w=2,x=4,S=8,C=16,j=32,T=64,E=128,$=256,A=512,M=30,P="...",te=800,Z=16,O=1,J=2,D=3,Y=1/0,F=9007199254740991,H=17976931348623157e292,ee=NaN,ce=4294967295,U=ce-1,ae=ce>>>1,je=[["ary",E],["bind",b],["bindKey",w],["curry",S],["curryRight",C],["flip",A],["partial",j],["partialRight",T],["rearg",$]],me="[object Arguments]",ke="[object Array]",he="[object AsyncFunction]",ue="[object Boolean]",re="[object Date]",ge="[object DOMException]",$e="[object Error]",pe="[object Function]",ye="[object GeneratorFunction]",Se="[object Map]",Ce="[object Number]",Be="[object Null]",Ge="[object Object]",xt="[object Promise]",St="[object Proxy]",ut="[object RegExp]",ct="[object Set]",bt="[object String]",Qe="[object Symbol]",Ke="[object Undefined]",De="[object WeakMap]",Dt="[object WeakSet]",pn="[object ArrayBuffer]",Yn="[object DataView]",fr="[object Float32Array]",Kn="[object Float64Array]",wr="[object Int8Array]",Pn="[object Int16Array]",$r="[object Int32Array]",tr="[object Uint8Array]",kr="[object Uint8ClampedArray]",ni="[object Uint16Array]",uo="[object Uint32Array]",Ki=/\b__p \+= '';/g,No=/\b(__p \+=) '' \+/g,Os=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zn=/&(?:amp|lt|gt|quot|#39);/g,co=/[&<>"']/g,_a=RegExp(zn.source),yc=RegExp(co.source),bc=/<%-([\s\S]+?)%>/g,_c=/<%([\s\S]+?)%>/g,qa=/<%=([\s\S]+?)%>/g,kl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,pi=/^\w*$/,Bn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mr=/[\\^$.*+?()[\]{}|]/g,$o=RegExp(Mr.source),fo=/^\s+/,Lr=/\s/,ho=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,xa=/\{\n\/\* \[wrapped with (.+)\] \*/,it=/,? & /,Yt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,nr=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,ri=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ga=/\w*$/,Ya=/^[-+]0x[0-9a-f]+$/i,Ko=/^0b[01]+$/i,mi=/^\[object .+?Constructor\]$/,Un=/^0o[0-7]+$/i,hr=/^(?:0|[1-9]\d*)$/,Sr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ka=/($^)/,po=/['\n\r\u2028\u2029\\]/g,mo="\\ud800-\\udfff",Wr="\\u0300-\\u036f",wa="\\ufe20-\\ufe2f",ji="\\u20d0-\\u20ff",gi=Wr+wa+ji,Ps="\\u2700-\\u27bf",go="a-z\\xdf-\\xf6\\xf8-\\xff",Xo="\\xac\\xb1\\xd7\\xf7",Pd="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",zd="\\u2000-\\u206f",bu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xi="A-Z\\xc0-\\xd6\\xd8-\\xde",ii="\\ufe0e\\ufe0f",xc=Xo+Pd+zd+bu,_u="['\u2019]",wc="["+mo+"]",kc="["+xc+"]",Sl="["+gi+"]",Xa="\\d+",z1="["+Ps+"]",Dd="["+go+"]",Sc="[^"+mo+xc+Xa+Ps+go+Xi+"]",Ad="\\ud83c[\\udffb-\\udfff]",Fm="(?:"+Sl+"|"+Ad+")",Fd="[^"+mo+"]",R="(?:\\ud83c[\\udde6-\\uddff]){2}",G="[\\ud800-\\udbff][\\udc00-\\udfff]",ie="["+Xi+"]",Ie="\\u200d",ze="(?:"+Dd+"|"+Sc+")",vt="(?:"+ie+"|"+Sc+")",Kt="(?:"+_u+"(?:d|ll|m|re|s|t|ve))?",In="(?:"+_u+"(?:D|LL|M|RE|S|T|VE))?",Di=Fm+"?",Ti="["+ii+"]?",Ji="(?:"+Ie+"(?:"+[Fd,R,G].join("|")+")"+Ti+Di+")*",pC="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Bd="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",jx=Ti+Di+Ji,Tx="(?:"+[z1,R,G].join("|")+")"+jx,D1="(?:"+[Fd+Sl+"?",Sl,R,G,wc].join("|")+")",A1=RegExp(_u,"g"),F1=RegExp(Sl,"g"),xu=RegExp(Ad+"(?="+Ad+")|"+D1+jx,"g"),Ud=RegExp([ie+"?"+Dd+"+"+Kt+"(?="+[kc,ie,"$"].join("|")+")",vt+"+"+In+"(?="+[kc,ie+ze,"$"].join("|")+")",ie+"?"+ze+"+"+Kt,ie+"+"+In,Bd,pC,Xa,Tx].join("|"),"g"),Ix=RegExp("["+Ie+mo+gi+ii+"]"),Ex=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wd=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Vd=-1,rr={};rr[fr]=rr[Kn]=rr[wr]=rr[Pn]=rr[$r]=rr[tr]=rr[kr]=rr[ni]=rr[uo]=!0,rr[me]=rr[ke]=rr[pn]=rr[ue]=rr[Yn]=rr[re]=rr[$e]=rr[pe]=rr[Se]=rr[Ce]=rr[Ge]=rr[ut]=rr[ct]=rr[bt]=rr[De]=!1;var Xn={};Xn[me]=Xn[ke]=Xn[pn]=Xn[Yn]=Xn[ue]=Xn[re]=Xn[fr]=Xn[Kn]=Xn[wr]=Xn[Pn]=Xn[$r]=Xn[Se]=Xn[Ce]=Xn[Ge]=Xn[ut]=Xn[ct]=Xn[bt]=Xn[Qe]=Xn[tr]=Xn[kr]=Xn[ni]=Xn[uo]=!0,Xn[$e]=Xn[pe]=Xn[De]=!1;var pr={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Cr={"&":"&","<":"<",">":">",'"':""","'":"'"},wu={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ai={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ii=parseFloat,Ei=parseInt,ir=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Hd=typeof self=="object"&&self&&self.Object===Object&&self,oi=ir||Hd||Function("return this")(),B1=t&&!t.nodeType&&t,Mo=B1&&!0&&e&&!e.nodeType&&e,Ja=Mo&&Mo.exports===B1,U1=Ja&&ir.process,ka=function(){try{var le=Mo&&Mo.require&&Mo.require("util").types;return le||U1&&U1.binding&&U1.binding("util")}catch{}}(),Nx=ka&&ka.isArrayBuffer,$x=ka&&ka.isDate,zs=ka&&ka.isMap,Cl=ka&&ka.isRegExp,ku=ka&&ka.isSet,Cc=ka&&ka.isTypedArray;function Jo(le,Ne,we){switch(we.length){case 0:return le.call(Ne);case 1:return le.call(Ne,we[0]);case 2:return le.call(Ne,we[0],we[1]);case 3:return le.call(Ne,we[0],we[1],we[2])}return le.apply(Ne,we)}function Ds(le,Ne,we,Je){for(var _t=-1,Gt=le==null?0:le.length;++_t-1}function V1(le,Ne,we){for(var Je=-1,_t=le==null?0:le.length;++Je<_t;)if(we(Ne,le[Je]))return!0;return!1}function or(le,Ne){for(var we=-1,Je=le==null?0:le.length,_t=Array(Je);++we-1;);return we}function Px(le,Ne){for(var we=le.length;we--&&Tc(Ne,le[we],0)>-1;);return we}function mC(le,Ne){for(var we=le.length,Je=0;we--;)le[we]===Ne&&++Je;return Je}var J1=Y1(pr),N=Y1(Cr);function z(le){return"\\"+Ai[le]}function K(le,Ne){return le==null?n:le[Ne]}function Q(le){return Ix.test(le)}function de(le){return Ex.test(le)}function xe(le){for(var Ne,we=[];!(Ne=le.next()).done;)we.push(Ne.value);return we}function Me(le){var Ne=-1,we=Array(le.size);return le.forEach(function(Je,_t){we[++Ne]=[_t,Je]}),we}function Fe(le,Ne){return function(we){return le(Ne(we))}}function Ve(le,Ne){for(var we=-1,Je=le.length,_t=0,Gt=[];++we-1}function I0e(h,g){var k=this.__data__,I=Yx(k,h);return I<0?(++this.size,k.push([h,g])):k[I][1]=g,this}Nc.prototype.clear=S0e,Nc.prototype.delete=C0e,Nc.prototype.get=j0e,Nc.prototype.has=T0e,Nc.prototype.set=I0e;function $c(h){var g=-1,k=h==null?0:h.length;for(this.clear();++g=g?h:g)),h}function Bs(h,g,k,I,L,W){var ne,se=g&f,ve=g&p,Le=g&v;if(k&&(ne=L?k(h,I,L,W):k(h)),ne!==n)return ne;if(!Xr(h))return h;var Re=Ht(h);if(Re){if(ne=Mge(h),!se)return ja(h,ne)}else{var Ae=Ro(h),tt=Ae==pe||Ae==ye;if(Qd(h))return hz(h,se);if(Ae==Ge||Ae==me||tt&&!L){if(ne=ve||tt?{}:Mz(h),!se)return ve?xge(h,V0e(ne,h)):_ge(h,WP(ne,h))}else{if(!Xn[Ae])return L?h:{};ne=Lge(h,Ae,se)}}W||(W=new Tl);var pt=W.get(h);if(pt)return pt;W.set(h,ne),sD(h)?h.forEach(function($t){ne.add(Bs($t,g,k,$t,h,W))}):oD(h)&&h.forEach(function($t,mn){ne.set(mn,Bs($t,g,k,mn,h,W))});var Nt=Le?ve?FC:AC:ve?Ia:eo,nn=Re?n:Nt(h);return Sa(nn||h,function($t,mn){nn&&(mn=$t,$t=h[mn]),iv(ne,mn,Bs($t,g,k,mn,h,W))}),ne}function H0e(h){var g=eo(h);return function(k){return VP(k,h,g)}}function VP(h,g,k){var I=k.length;if(h==null)return!I;for(h=tn(h);I--;){var L=k[I],W=g[L],ne=h[L];if(ne===n&&!(L in h)||!W(ne))return!1}return!0}function HP(h,g,k){if(typeof h!="function")throw new ar(a);return dv(function(){h.apply(n,k)},g)}function ov(h,g,k,I){var L=-1,W=Su,ne=!0,se=h.length,ve=[],Le=g.length;if(!se)return ve;k&&(g=or(g,Sn(k))),I?(W=V1,ne=!1):g.length>=i&&(W=Ic,ne=!1,g=new Th(g));e:for(;++LL?0:L+k),I=I===n||I>L?L:Xt(I),I<0&&(I+=L),I=k>I?0:uD(I);k0&&k(se)?g>1?vo(se,g-1,k,I,L):Cu(L,se):I||(L[L.length]=se)}return L}var xC=bz(),GP=bz(!0);function Iu(h,g){return h&&xC(h,g,eo)}function wC(h,g){return h&&GP(h,g,eo)}function Xx(h,g){return Ca(g,function(k){return Pc(h[k])})}function Eh(h,g){g=Xd(g,h);for(var k=0,I=g.length;h!=null&&kg}function G0e(h,g){return h!=null&&Jn.call(h,g)}function Y0e(h,g){return h!=null&&g in tn(h)}function K0e(h,g,k){return h>=Lo(g,k)&&h=120&&Re.length>=120)?new Th(ne&&Re):n}Re=h[0];var Ae=-1,tt=se[0];e:for(;++Ae-1;)se!==h&&Ux.call(se,ve,1),Ux.call(h,ve,1);return h}function oz(h,g){for(var k=h?g.length:0,I=k-1;k--;){var L=g[k];if(k==I||L!==W){var W=L;Oc(L)?Ux.call(h,L,1):MC(h,L)}}return h}function EC(h,g){return h+Hx(AP()*(g-h+1))}function uge(h,g,k,I){for(var L=-1,W=Fi(Vx((g-h)/(k||1)),0),ne=we(W);W--;)ne[I?W:++L]=h,h+=k;return ne}function NC(h,g){var k="";if(!h||g<1||g>F)return k;do g%2&&(k+=h),g=Hx(g/2),g&&(h+=h);while(g);return k}function sn(h,g){return qC(Oz(h,g,Ea),h+"")}function cge(h){return UP(Xm(h))}function dge(h,g){var k=Xm(h);return l2(k,Ih(g,0,k.length))}function lv(h,g,k,I){if(!Xr(h))return h;g=Xd(g,h);for(var L=-1,W=g.length,ne=W-1,se=h;se!=null&&++LL?0:L+g),k=k>L?L:k,k<0&&(k+=L),L=g>k?0:k-g>>>0,g>>>=0;for(var W=we(L);++I>>1,ne=h[W];ne!==null&&!es(ne)&&(k?ne<=g:ne=i){var Le=g?null:Cge(h);if(Le)return et(Le);ne=!1,L=Ic,ve=new Th}else ve=g?[]:se;e:for(;++I=I?h:Us(h,g,k)}var fz=n0e||function(h){return oi.clearTimeout(h)};function hz(h,g){if(g)return h.slice();var k=h.length,I=RP?RP(k):new h.constructor(k);return h.copy(I),I}function PC(h){var g=new h.constructor(h.byteLength);return new Fx(g).set(new Fx(h)),g}function gge(h,g){var k=g?PC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.byteLength)}function vge(h){var g=new h.constructor(h.source,Ga.exec(h));return g.lastIndex=h.lastIndex,g}function yge(h){return rv?tn(rv.call(h)):{}}function pz(h,g){var k=g?PC(h.buffer):h.buffer;return new h.constructor(k,h.byteOffset,h.length)}function mz(h,g){if(h!==g){var k=h!==n,I=h===null,L=h===h,W=es(h),ne=g!==n,se=g===null,ve=g===g,Le=es(g);if(!se&&!Le&&!W&&h>g||W&&ne&&ve&&!se&&!Le||I&&ne&&ve||!k&&ve||!L)return 1;if(!I&&!W&&!Le&&h=se)return ve;var Le=k[I];return ve*(Le=="desc"?-1:1)}}return h.index-g.index}function gz(h,g,k,I){for(var L=-1,W=h.length,ne=k.length,se=-1,ve=g.length,Le=Fi(W-ne,0),Re=we(ve+Le),Ae=!I;++se1?k[L-1]:n,ne=L>2?k[2]:n;for(W=h.length>3&&typeof W=="function"?(L--,W):n,ne&&ta(k[0],k[1],ne)&&(W=L<3?n:W,L=1),g=tn(g);++I-1?L[W?g[ne]:ne]:n}}function wz(h){return Rc(function(g){var k=g.length,I=k,L=Fs.prototype.thru;for(h&&g.reverse();I--;){var W=g[I];if(typeof W!="function")throw new ar(a);if(L&&!ne&&a2(W)=="wrapper")var ne=new Fs([],!0)}for(I=ne?I:k;++I1&&xn.reverse(),Re&&vese))return!1;var Le=W.get(h),Re=W.get(g);if(Le&&Re)return Le==g&&Re==h;var Ae=-1,tt=!0,pt=k&y?new Th:n;for(W.set(h,g),W.set(g,h);++Ae1?"& ":"")+g[I],g=g.join(k>2?", ":" "),h.replace(ho,`{ -/* [wrapped with `+g+`] */ -`)}function Oge(h){return Ht(h)||Mh(h)||!!(zP&&h&&h[zP])}function Oc(h,g){var k=typeof h;return g=g??F,!!g&&(k=="number"||k!="symbol"&&hr.test(h))&&h>-1&&h%1==0&&h0){if(++g>=te)return arguments[0]}else g=0;return h.apply(n,arguments)}}function l2(h,g){var k=-1,I=h.length,L=I-1;for(g=g===n?I:g;++k1?h[g-1]:n;return k=typeof k=="function"?(h.pop(),k):n,qz(h,k)});function Gz(h){var g=B(h);return g.__chain__=!0,g}function Z1e(h,g){return g(h),h}function u2(h,g){return g(h)}var q1e=Rc(function(h){var g=h.length,k=g?h[0]:0,I=this.__wrapped__,L=function(W){return _C(W,h)};return g>1||this.__actions__.length||!(I instanceof yn)||!Oc(k)?this.thru(L):(I=I.slice(k,+k+(g?1:0)),I.__actions__.push({func:u2,args:[L],thisArg:n}),new Fs(I,this.__chain__).thru(function(W){return g&&!W.length&&W.push(n),W}))});function G1e(){return Gz(this)}function Y1e(){return new Fs(this.value(),this.__chain__)}function K1e(){this.__values__===n&&(this.__values__=lD(this.value()));var h=this.__index__>=this.__values__.length,g=h?n:this.__values__[this.__index__++];return{done:h,value:g}}function X1e(){return this}function J1e(h){for(var g,k=this;k instanceof Gx;){var I=Bz(k);I.__index__=0,I.__values__=n,g?L.__wrapped__=I:g=I;var L=I;k=k.__wrapped__}return L.__wrapped__=h,g}function Q1e(){var h=this.__wrapped__;if(h instanceof yn){var g=h;return this.__actions__.length&&(g=new yn(this)),g=g.reverse(),g.__actions__.push({func:u2,args:[GC],thisArg:n}),new Fs(g,this.__chain__)}return this.thru(GC)}function eve(){return cz(this.__wrapped__,this.__actions__)}var tve=t2(function(h,g,k){Jn.call(h,k)?++h[k]:Mc(h,k,1)});function nve(h,g,k){var I=Ht(h)?W1:Z0e;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}function rve(h,g){var k=Ht(h)?Ca:qP;return k(h,It(g,3))}var ive=xz(Uz),ove=xz(Wz);function ave(h,g){return vo(c2(h,g),1)}function sve(h,g){return vo(c2(h,g),Y)}function lve(h,g,k){return k=k===n?1:Xt(k),vo(c2(h,g),k)}function Yz(h,g){var k=Ht(h)?Sa:Yd;return k(h,It(g,3))}function Kz(h,g){var k=Ht(h)?Mx:ZP;return k(h,It(g,3))}var uve=t2(function(h,g,k){Jn.call(h,k)?h[k].push(g):Mc(h,k,[g])});function cve(h,g,k,I){h=Ta(h)?h:Xm(h),k=k&&!I?Xt(k):0;var L=h.length;return k<0&&(k=Fi(L+k,0)),m2(h)?k<=L&&h.indexOf(g,k)>-1:!!L&&Tc(h,g,k)>-1}var dve=sn(function(h,g,k){var I=-1,L=typeof g=="function",W=Ta(h)?we(h.length):[];return Yd(h,function(ne){W[++I]=L?Jo(g,ne,k):av(ne,g,k)}),W}),fve=t2(function(h,g,k){Mc(h,k,g)});function c2(h,g){var k=Ht(h)?or:QP;return k(h,It(g,3))}function hve(h,g,k,I){return h==null?[]:(Ht(g)||(g=g==null?[]:[g]),k=I?n:k,Ht(k)||(k=k==null?[]:[k]),rz(h,g,k))}var pve=t2(function(h,g,k){h[k?0:1].push(g)},function(){return[[],[]]});function mve(h,g,k){var I=Ht(h)?jl:K1,L=arguments.length<3;return I(h,It(g,4),k,L,Yd)}function gve(h,g,k){var I=Ht(h)?ju:K1,L=arguments.length<3;return I(h,It(g,4),k,L,ZP)}function vve(h,g){var k=Ht(h)?Ca:qP;return k(h,h2(It(g,3)))}function yve(h){var g=Ht(h)?UP:cge;return g(h)}function bve(h,g,k){(k?ta(h,g,k):g===n)?g=1:g=Xt(g);var I=Ht(h)?B0e:dge;return I(h,g)}function _ve(h){var g=Ht(h)?U0e:hge;return g(h)}function xve(h){if(h==null)return 0;if(Ta(h))return m2(h)?hn(h):h.length;var g=Ro(h);return g==Se||g==ct?h.size:jC(h).length}function wve(h,g,k){var I=Ht(h)?jc:pge;return k&&ta(h,g,k)&&(g=n),I(h,It(g,3))}var kve=sn(function(h,g){if(h==null)return[];var k=g.length;return k>1&&ta(h,g[0],g[1])?g=[]:k>2&&ta(g[0],g[1],g[2])&&(g=[g[0]]),rz(h,vo(g,1),[])}),d2=r0e||function(){return oi.Date.now()};function Sve(h,g){if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){if(--h<1)return g.apply(this,arguments)}}function Xz(h,g,k){return g=k?n:g,g=h&&g==null?h.length:g,Lc(h,E,n,n,n,n,g)}function Jz(h,g){var k;if(typeof g!="function")throw new ar(a);return h=Xt(h),function(){return--h>0&&(k=g.apply(this,arguments)),h<=1&&(g=n),k}}var KC=sn(function(h,g,k){var I=b;if(k.length){var L=Ve(k,Ym(KC));I|=j}return Lc(h,I,g,k,L)}),Qz=sn(function(h,g,k){var I=b|w;if(k.length){var L=Ve(k,Ym(Qz));I|=j}return Lc(g,I,h,k,L)});function eD(h,g,k){g=k?n:g;var I=Lc(h,S,n,n,n,n,n,g);return I.placeholder=eD.placeholder,I}function tD(h,g,k){g=k?n:g;var I=Lc(h,C,n,n,n,n,n,g);return I.placeholder=tD.placeholder,I}function nD(h,g,k){var I,L,W,ne,se,ve,Le=0,Re=!1,Ae=!1,tt=!0;if(typeof h!="function")throw new ar(a);g=Vs(g)||0,Xr(k)&&(Re=!!k.leading,Ae="maxWait"in k,W=Ae?Fi(Vs(k.maxWait)||0,g):W,tt="trailing"in k?!!k.trailing:tt);function pt(yi){var El=I,Dc=L;return I=L=n,Le=yi,ne=h.apply(Dc,El),ne}function Nt(yi){return Le=yi,se=dv(mn,g),Re?pt(yi):ne}function nn(yi){var El=yi-ve,Dc=yi-Le,xD=g-El;return Ae?Lo(xD,W-Dc):xD}function $t(yi){var El=yi-ve,Dc=yi-Le;return ve===n||El>=g||El<0||Ae&&Dc>=W}function mn(){var yi=d2();if($t(yi))return xn(yi);se=dv(mn,nn(yi))}function xn(yi){return se=n,tt&&I?pt(yi):(I=L=n,ne)}function ts(){se!==n&&fz(se),Le=0,I=ve=L=se=n}function na(){return se===n?ne:xn(d2())}function ns(){var yi=d2(),El=$t(yi);if(I=arguments,L=this,ve=yi,El){if(se===n)return Nt(ve);if(Ae)return fz(se),se=dv(mn,g),pt(ve)}return se===n&&(se=dv(mn,g)),ne}return ns.cancel=ts,ns.flush=na,ns}var Cve=sn(function(h,g){return HP(h,1,g)}),jve=sn(function(h,g,k){return HP(h,Vs(g)||0,k)});function Tve(h){return Lc(h,A)}function f2(h,g){if(typeof h!="function"||g!=null&&typeof g!="function")throw new ar(a);var k=function(){var I=arguments,L=g?g.apply(this,I):I[0],W=k.cache;if(W.has(L))return W.get(L);var ne=h.apply(this,I);return k.cache=W.set(L,ne)||W,ne};return k.cache=new(f2.Cache||$c),k}f2.Cache=$c;function h2(h){if(typeof h!="function")throw new ar(a);return function(){var g=arguments;switch(g.length){case 0:return!h.call(this);case 1:return!h.call(this,g[0]);case 2:return!h.call(this,g[0],g[1]);case 3:return!h.call(this,g[0],g[1],g[2])}return!h.apply(this,g)}}function Ive(h){return Jz(2,h)}var Eve=mge(function(h,g){g=g.length==1&&Ht(g[0])?or(g[0],Sn(It())):or(vo(g,1),Sn(It()));var k=g.length;return sn(function(I){for(var L=-1,W=Lo(I.length,k);++L=g}),Mh=KP(function(){return arguments}())?KP:function(h){return si(h)&&Jn.call(h,"callee")&&!PP.call(h,"callee")},Ht=we.isArray,Vve=Nx?Sn(Nx):J0e;function Ta(h){return h!=null&&p2(h.length)&&!Pc(h)}function vi(h){return si(h)&&Ta(h)}function Hve(h){return h===!0||h===!1||si(h)&&ea(h)==ue}var Qd=o0e||lj,Zve=$x?Sn($x):Q0e;function qve(h){return si(h)&&h.nodeType===1&&!fv(h)}function Gve(h){if(h==null)return!0;if(Ta(h)&&(Ht(h)||typeof h=="string"||typeof h.splice=="function"||Qd(h)||Km(h)||Mh(h)))return!h.length;var g=Ro(h);if(g==Se||g==ct)return!h.size;if(cv(h))return!jC(h).length;for(var k in h)if(Jn.call(h,k))return!1;return!0}function Yve(h,g){return sv(h,g)}function Kve(h,g,k){k=typeof k=="function"?k:n;var I=k?k(h,g):n;return I===n?sv(h,g,n,k):!!I}function JC(h){if(!si(h))return!1;var g=ea(h);return g==$e||g==ge||typeof h.message=="string"&&typeof h.name=="string"&&!fv(h)}function Xve(h){return typeof h=="number"&&DP(h)}function Pc(h){if(!Xr(h))return!1;var g=ea(h);return g==pe||g==ye||g==he||g==St}function iD(h){return typeof h=="number"&&h==Xt(h)}function p2(h){return typeof h=="number"&&h>-1&&h%1==0&&h<=F}function Xr(h){var g=typeof h;return h!=null&&(g=="object"||g=="function")}function si(h){return h!=null&&typeof h=="object"}var oD=zs?Sn(zs):tge;function Jve(h,g){return h===g||CC(h,g,UC(g))}function Qve(h,g,k){return k=typeof k=="function"?k:n,CC(h,g,UC(g),k)}function eye(h){return aD(h)&&h!=+h}function tye(h){if(Dge(h))throw new _t(o);return XP(h)}function nye(h){return h===null}function rye(h){return h==null}function aD(h){return typeof h=="number"||si(h)&&ea(h)==Ce}function fv(h){if(!si(h)||ea(h)!=Ge)return!1;var g=Bx(h);if(g===null)return!0;var k=Jn.call(g,"constructor")&&g.constructor;return typeof k=="function"&&k instanceof k&&zx.call(k)==Qme}var QC=Cl?Sn(Cl):nge;function iye(h){return iD(h)&&h>=-F&&h<=F}var sD=ku?Sn(ku):rge;function m2(h){return typeof h=="string"||!Ht(h)&&si(h)&&ea(h)==bt}function es(h){return typeof h=="symbol"||si(h)&&ea(h)==Qe}var Km=Cc?Sn(Cc):ige;function oye(h){return h===n}function aye(h){return si(h)&&Ro(h)==De}function sye(h){return si(h)&&ea(h)==Dt}var lye=o2(TC),uye=o2(function(h,g){return h<=g});function lD(h){if(!h)return[];if(Ta(h))return m2(h)?Bt(h):ja(h);if(Q1&&h[Q1])return xe(h[Q1]());var g=Ro(h),k=g==Se?Me:g==ct?et:Xm;return k(h)}function zc(h){if(!h)return h===0?h:0;if(h=Vs(h),h===Y||h===-Y){var g=h<0?-1:1;return g*H}return h===h?h:0}function Xt(h){var g=zc(h),k=g%1;return g===g?k?g-k:g:0}function uD(h){return h?Ih(Xt(h),0,ce):0}function Vs(h){if(typeof h=="number")return h;if(es(h))return ee;if(Xr(h)){var g=typeof h.valueOf=="function"?h.valueOf():h;h=Xr(g)?g+"":g}if(typeof h!="string")return h===0?h:+h;h=X1(h);var k=Ko.test(h);return k||Un.test(h)?Ei(h.slice(2),k?2:8):Ya.test(h)?ee:+h}function cD(h){return Eu(h,Ia(h))}function cye(h){return h?Ih(Xt(h),-F,F):h===0?h:0}function Wn(h){return h==null?"":Qa(h)}var dye=qm(function(h,g){if(cv(g)||Ta(g)){Eu(g,eo(g),h);return}for(var k in g)Jn.call(g,k)&&iv(h,k,g[k])}),dD=qm(function(h,g){Eu(g,Ia(g),h)}),g2=qm(function(h,g,k,I){Eu(g,Ia(g),h,I)}),fye=qm(function(h,g,k,I){Eu(g,eo(g),h,I)}),hye=Rc(_C);function pye(h,g){var k=Zm(h);return g==null?k:WP(k,g)}var mye=sn(function(h,g){h=tn(h);var k=-1,I=g.length,L=I>2?g[2]:n;for(L&&ta(g[0],g[1],L)&&(I=1);++k1),W}),Eu(h,FC(h),k),I&&(k=Bs(k,f|p|v,jge));for(var L=g.length;L--;)MC(k,g[L]);return k});function Lye(h,g){return hD(h,h2(It(g)))}var Rye=Rc(function(h,g){return h==null?{}:sge(h,g)});function hD(h,g){if(h==null)return{};var k=or(FC(h),function(I){return[I]});return g=It(g),iz(h,k,function(I,L){return g(I,L[0])})}function Oye(h,g,k){g=Xd(g,h);var I=-1,L=g.length;for(L||(L=1,h=n);++Ig){var I=h;h=g,g=I}if(k||h%1||g%1){var L=AP();return Lo(h+L*(g-h+Ii("1e-"+((L+"").length-1))),g)}return EC(h,g)}var Zye=Gm(function(h,g,k){return g=g.toLowerCase(),h+(k?gD(g):g)});function gD(h){return nj(Wn(h).toLowerCase())}function vD(h){return h=Wn(h),h&&h.replace(Sr,J1).replace(F1,"")}function qye(h,g,k){h=Wn(h),g=Qa(g);var I=h.length;k=k===n?I:Ih(Xt(k),0,I);var L=k;return k-=g.length,k>=0&&h.slice(k,L)==g}function Gye(h){return h=Wn(h),h&&yc.test(h)?h.replace(co,N):h}function Yye(h){return h=Wn(h),h&&$o.test(h)?h.replace(Mr,"\\$&"):h}var Kye=Gm(function(h,g,k){return h+(k?"-":"")+g.toLowerCase()}),Xye=Gm(function(h,g,k){return h+(k?" ":"")+g.toLowerCase()}),Jye=_z("toLowerCase");function Qye(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;if(!g||I>=g)return h;var L=(g-I)/2;return i2(Hx(L),k)+h+i2(Vx(L),k)}function ebe(h,g,k){h=Wn(h),g=Xt(g);var I=g?hn(h):0;return g&&I>>0,k?(h=Wn(h),h&&(typeof g=="string"||g!=null&&!QC(g))&&(g=Qa(g),!g&&Q(h))?Jd(Bt(h),0,k):h.split(g,k)):[]}var sbe=Gm(function(h,g,k){return h+(k?" ":"")+nj(g)});function lbe(h,g,k){return h=Wn(h),k=k==null?0:Ih(Xt(k),0,h.length),g=Qa(g),h.slice(k,k+g.length)==g}function ube(h,g,k){var I=B.templateSettings;k&&ta(h,g,k)&&(g=n),h=Wn(h),g=g2({},g,I,Tz);var L=g2({},g.imports,I.imports,Tz),W=eo(L),ne=Wm(L,W),se,ve,Le=0,Re=g.interpolate||Ka,Ae="__p += '",tt=Qo((g.escape||Ka).source+"|"+Re.source+"|"+(Re===qa?ri:Ka).source+"|"+(g.evaluate||Ka).source+"|$","g"),pt="//# sourceURL="+(Jn.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Vd+"]")+` -`;h.replace(tt,function($t,mn,xn,ts,na,ns){return xn||(xn=ts),Ae+=h.slice(Le,ns).replace(po,z),mn&&(se=!0,Ae+=`' + -__e(`+mn+`) + -'`),na&&(ve=!0,Ae+=`'; -`+na+`; -__p += '`),xn&&(Ae+=`' + -((__t = (`+xn+`)) == null ? '' : __t) + -'`),Le=ns+$t.length,$t}),Ae+=`'; -`;var Nt=Jn.call(g,"variable")&&g.variable;if(!Nt)Ae=`with (obj) { -`+Ae+` -} -`;else if(nr.test(Nt))throw new _t(s);Ae=(ve?Ae.replace(Ki,""):Ae).replace(No,"$1").replace(Os,"$1;"),Ae="function("+(Nt||"obj")+`) { -`+(Nt?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(se?", __e = _.escape":"")+(ve?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+Ae+`return __p -}`;var nn=bD(function(){return Gt(W,pt+"return "+Ae).apply(n,ne)});if(nn.source=Ae,JC(nn))throw nn;return nn}function cbe(h){return Wn(h).toLowerCase()}function dbe(h){return Wn(h).toUpperCase()}function fbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return X1(h);if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=Bt(g),W=qd(I,L),ne=Px(I,L)+1;return Jd(I,W,ne).join("")}function hbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.slice(0,an(h)+1);if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=Px(I,Bt(g))+1;return Jd(I,0,L).join("")}function pbe(h,g,k){if(h=Wn(h),h&&(k||g===n))return h.replace(fo,"");if(!h||!(g=Qa(g)))return h;var I=Bt(h),L=qd(I,Bt(g));return Jd(I,L).join("")}function mbe(h,g){var k=M,I=P;if(Xr(g)){var L="separator"in g?g.separator:L;k="length"in g?Xt(g.length):k,I="omission"in g?Qa(g.omission):I}h=Wn(h);var W=h.length;if(Q(h)){var ne=Bt(h);W=ne.length}if(k>=W)return h;var se=k-hn(I);if(se<1)return I;var ve=ne?Jd(ne,0,se).join(""):h.slice(0,se);if(L===n)return ve+I;if(ne&&(se+=ve.length-se),QC(L)){if(h.slice(se).search(L)){var Le,Re=ve;for(L.global||(L=Qo(L.source,Wn(Ga.exec(L))+"g")),L.lastIndex=0;Le=L.exec(Re);)var Ae=Le.index;ve=ve.slice(0,Ae===n?se:Ae)}}else if(h.indexOf(Qa(L),se)!=se){var tt=ve.lastIndexOf(L);tt>-1&&(ve=ve.slice(0,tt))}return ve+I}function gbe(h){return h=Wn(h),h&&_a.test(h)?h.replace(zn,Tt):h}var vbe=Gm(function(h,g,k){return h+(k?" ":"")+g.toUpperCase()}),nj=_z("toUpperCase");function yD(h,g,k){return h=Wn(h),g=k?n:g,g===n?de(h)?Vr(h):Z1(h):h.match(g)||[]}var bD=sn(function(h,g){try{return Jo(h,n,g)}catch(k){return JC(k)?k:new _t(k)}}),ybe=Rc(function(h,g){return Sa(g,function(k){k=Nu(k),Mc(h,k,KC(h[k],h))}),h});function bbe(h){var g=h==null?0:h.length,k=It();return h=g?or(h,function(I){if(typeof I[1]!="function")throw new ar(a);return[k(I[0]),I[1]]}):[],sn(function(I){for(var L=-1;++LF)return[];var k=ce,I=Lo(h,ce);g=It(g),h-=ce;for(var L=Zd(I,g);++k0||g<0)?new yn(k):(h<0?k=k.takeRight(-h):h&&(k=k.drop(h)),g!==n&&(g=Xt(g),k=g<0?k.dropRight(-g):k.take(g-h)),k)},yn.prototype.takeRightWhile=function(h){return this.reverse().takeWhile(h).reverse()},yn.prototype.toArray=function(){return this.take(ce)},Iu(yn.prototype,function(h,g){var k=/^(?:filter|find|map|reject)|While$/.test(g),I=/^(?:head|last)$/.test(g),L=B[I?"take"+(g=="last"?"Right":""):g],W=I||/^find/.test(g);L&&(B.prototype[g]=function(){var ne=this.__wrapped__,se=I?[1]:arguments,ve=ne instanceof yn,Le=se[0],Re=ve||Ht(ne),Ae=function(mn){var xn=L.apply(B,Cu([mn],se));return I&&tt?xn[0]:xn};Re&&k&&typeof Le=="function"&&Le.length!=1&&(ve=Re=!1);var tt=this.__chain__,pt=!!this.__actions__.length,Nt=W&&!tt,nn=ve&&!pt;if(!W&&Re){ne=nn?ne:new yn(this);var $t=h.apply(ne,se);return $t.__actions__.push({func:u2,args:[Ae],thisArg:n}),new Fs($t,tt)}return Nt&&nn?h.apply(this,se):($t=this.thru(Ae),Nt?I?$t.value()[0]:$t.value():$t)})}),Sa(["pop","push","shift","sort","splice","unshift"],function(h){var g=Qi[h],k=/^(?:push|sort|unshift)$/.test(h)?"tap":"thru",I=/^(?:pop|shift)$/.test(h);B.prototype[h]=function(){var L=arguments;if(I&&!this.__chain__){var W=this.value();return g.apply(Ht(W)?W:[],L)}return this[k](function(ne){return g.apply(Ht(ne)?ne:[],L)})}}),Iu(yn.prototype,function(h,g){var k=B[g];if(k){var I=k.name+"";Jn.call(Hm,I)||(Hm[I]=[]),Hm[I].push({name:g,func:k})}}),Hm[n2(n,w).name]=[{name:"wrapper",func:n}],yn.prototype.clone=g0e,yn.prototype.reverse=v0e,yn.prototype.value=y0e,B.prototype.at=q1e,B.prototype.chain=G1e,B.prototype.commit=Y1e,B.prototype.next=K1e,B.prototype.plant=J1e,B.prototype.reverse=Q1e,B.prototype.toJSON=B.prototype.valueOf=B.prototype.value=eve,B.prototype.first=B.prototype.head,Q1&&(B.prototype[Q1]=X1e),B},_n=$i();Mo?((Mo.exports=_n)._=_n,B1._=_n):oi._=_n}).call(Ac)}(Sk,Sk.exports);var rt=Sk.exports;const Aa=fe(void 0),Fze=fe(null,(e,t,n)=>{var c;const r=e(di);if(!r)return;if(n=n.trim(),!n){t(Aa,void 0),t(An,void 0);return}const i=parseInt(n,10);if(!isNaN(i)&&i>=r.start_slot&&i<=r.end_slot){t(Aa,void 0),t(An,i);return}if(n.length<3){t(Aa,[]),t(An,void 0);return}const o=n.split(",").map(d=>d.trim().toLowerCase()).filter(d=>!!d),a=Object.entries(qte).reduce((d,[f,p])=>(o.some(v=>p.toLowerCase().includes(v))&&d.add(parseInt(f)),d),new Set),s=(c=e(gDe))==null?void 0:c.filter(({name:d,pubkey:f,clientId:p})=>p!=null&&a.has(p)||o.some(v=>(d==null?void 0:d.includes(v))||f.toLowerCase().includes(v))).map(({pubkey:d})=>d);if(!(s!=null&&s.length)){t(Aa,[]),t(An,void 0);return}const l=s.flatMap(d=>AN(r,d)).sort();t(Aa,l)}),Bze=fe(null,(e,t)=>{const n=e(Aa);if(!n)return;const r=e(An),i=e(eu),o=n.map(l=>Math.abs(l-(r??i??0))),a=Math.min(...o),s=Math.max(o.indexOf(a),0);t(An,n[s])}),Uze=fe(null,(e,t,n)=>{const r=e(An),i=e(Aa),o=e(eu);if(o!==void 0)if(i!=null&&i.length)if(r!==void 0){const a=i.map(c=>Math.abs(c-r)),s=Math.min(...a),l=Math.max(a.indexOf(s),0);if(l>=0){const c=Math.min(Math.max(l+Math.trunc(n/4),0),i.length-1);t(An,i[c])}}else t(Bze);else r!==void 0?t(An,r+n):t(An,n+o+$n*3)});var Xf=(e=>(e.Valid="valid",e.NotReady="invalid",e.OutsideEpoch="outside-epoch",e.BeforeFirstProcessed="before-first-processed",e.Future="future",e.NotYou="not-you",e))(Xf||{});function Wze(e,t,n,r,i){return e===void 0?"valid":!t||!n||r===void 0||i===void 0?"invalid":e=i?"future":"valid":"not-you"}const gd=function(){const e=fe(),t=fe(n=>{const r=n(di),i=n(e),o=n(ao),a=n(Jf),s=n(oo);return Wze(i,r,o,a,s)});return{slot:e,state:t,isValid:fe(n=>n(t)==="valid")}}(),Cn=fe(e=>e(gd.isValid)?e(gd.slot):void 0);var Io=(e=>(e.Count="Count",e.Pct="Pct %",e.Rate="Rate",e))(Io||{});const Cg=fe("Count"),Vze=fe(e=>{if(!e(Cn))return e(l3)}),Hze=fe(e=>{const t=e(Vze),n=e(rg);return t==null?void 0:t.reduce((r,i,o)=>{var l;const a=n==null?void 0:n[o];if(!a)return r;const s=NE.safeParse(a.kind);return s.error||(r[l=s.data]??(r[l]=[]),r[s.data].push(i)),r},{})}),Zze=fe(e=>{const t=e(rg),n=["snapld","snapdc","snapin"];if(!t)return;const r=t.reduce((i,o,a)=>{const s=NE.safeParse(o.kind);if(s.error||!n.includes(s.data))return i;const l=i.get(s.data)??[];return l.push(a),i.set(s.data,l),i},new Map);return Array.from(r.entries()).map(([i,o])=>[i,o])}),qze=fe(e=>{const t=e(l3),n=e(Zze);if(!(!t||!n))return n.reduce((r,[i,o])=>(r[i]=o.map(a=>t[a]),r),{})}),Gze=fe(e=>{var t;return e(Cn)?void 0:e(Cg)==="Rate"?e(cre):(t=e(kG))==null?void 0:t.waterfall}),ure=Co([]),cre=fe(e=>{var o;if(e(Cg)!=="Rate")return;const t=e(ure);if(t.length<2)return(o=t[0])==null?void 0:o.waterfall;const n=t[t.length-1],r=t[0],i=(n.ts-r.ts)/1e3;return sG(n.waterfall,a=>{for(const s in a.in)if(Object.prototype.hasOwnProperty.call(a.in,s)){const l=a.in[s]-r.waterfall.in[s];a.in[s]=Math.trunc(l/i)}for(const s in a.out)if(Object.prototype.hasOwnProperty.call(a.out,s)){const l=a.out[s]-r.waterfall.out[s];a.out[s]=Math.trunc(l/i)}})},(e,t,n)=>{t(ure,r=>{const i=performance.now();for(n&&r.push({waterfall:n,ts:i});r.length&&i-r[0].ts>1e3;)r.shift();const o=Object.values(r[r.length-1].waterfall.in);for(;r.length>1&&Object.values(r[0].waterfall.in).some((a,s)=>o[s]-a<0);)r.shift()})}),Nb=fe(e=>{const t=e(rg),n=rt.countBy(t,r=>r.kind);return Object.fromEntries(NE.options.map(r=>[r,n[r]??0]))}),Yze={};function ZN(e,t){let n=null;const r=new Map,i=new Set,o=s=>{let l;if(l=r.get(s),l!==void 0)if(n!=null&&n(l[1],s))o.remove(s);else return l[0];const c=e(s);return r.set(s,[c,Date.now()]),a("CREATE",s,c),c},a=(s,l,c)=>{for(const d of i)d({type:s,param:l,atom:c})};return o.unstable_listen=s=>(i.add(s),()=>{i.delete(s)}),o.getParams=()=>r.keys(),o.remove=s=>{{if(!r.has(s))return;const[l]=r.get(s);r.delete(s),a("REMOVE",s,l)}},o.setShouldRemove=s=>{if(n=s,!!n)for(const[l,[c,d]]of r)n(d,l)&&(r.delete(l),a("REMOVE",l,c))},o}const Kze=e=>typeof(e==null?void 0:e.then)=="function";function Xze(e=()=>{try{return window.localStorage}catch(n){(Yze?"production":void 0)!=="production"&&typeof window<"u"&&console.warn(n);return}},t){var n;let r,i;const o={getItem:(l,c)=>{var d,f;const p=_=>{if(_=_||"",r!==_){try{i=JSON.parse(_,t==null?void 0:t.reviver)}catch{return c}r=_}return i},v=(f=(d=e())==null?void 0:d.getItem(l))!=null?f:null;return Kze(v)?v.then(p):p(v)},setItem:(l,c)=>{var d;return(d=e())==null?void 0:d.setItem(l,JSON.stringify(c,void 0))},removeItem:l=>{var c;return(c=e())==null?void 0:c.removeItem(l)}},a=l=>(c,d,f)=>l(c,p=>{let v;try{v=JSON.parse(p||"")}catch{v=f}d(v)});let s;try{s=(n=e())==null?void 0:n.subscribe}catch{}return!s&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(s=(l,c)=>{if(!(e()instanceof window.Storage))return()=>{};const d=f=>{f.storageArea===e()&&f.key===l&&c(f.newValue)};return window.addEventListener("storage",d),()=>{window.removeEventListener("storage",d)}}),s&&(o.subscribe=a(s)),o}Xze();const qN=3,jg=fe();fe();const Jze=fe(!1),dre=fe(),Ck=Co([]),di=fe(e=>{const t=e(oo),n=e(Ck);if(!n.length||t===void 0)return;const r=n.find(({start_slot:i,end_slot:o})=>t>=i&&t<=o);if(r)return r},(e,t,n)=>{t(Ck,r=>{r.findIndex(i=>i.epoch===n.epoch)===-1&&r.push(n)})}),Qze=fe(null,(e,t,n)=>{t(Ck,r=>r.filter(({epoch:i})=>i>=n))}),eDe=fe(e=>{const t=e(di);return t?e(Ck).find(n=>n.epoch===(t==null?void 0:t.epoch)+1):void 0}),[An,tDe]=function(){const e=fe();return[fe(t=>t(e),(t,n,r)=>{const i=t(di);if(!i)return;const o=r===void 0?void 0:rt.clamp(xi(r),i.start_slot,i.end_slot);n(e,o)}),fe(t=>t(e)===void 0)]}(),GN=Co({}),nDe=Yf(e=>fe(t=>e!==void 0&&t(GN)[e]||"incomplete"),{maxSize:1e3});var $b=(e=>(e.AllSlots="All Slots",e.MySlots="My Slots",e))($b||{});const Tg=function(){const e=fe();return fe(t=>t(e)??"All Slots",(t,n,r)=>{n(e,r);const i=t(Cn);n(An,i??void 0)})}(),rDe=fe(null,(e,t,n,r)=>{(r==="completed"||r==="optimistically_confirmed"||r==="rooted")&&t(oo,n+1),t(GN,i=>{i[n]=r})}),fre=10,iDe=fe(e=>{const t=e(ao),n=e(Cn);if(t===void 0||n===void 0)return;const r=t.indexOf(xi(n));if(r!==-1)return t.slice(Math.max(r-fre,0),r+fre)}),jk=1e3,oDe=fe(null,(e,t)=>{const n=e(An),r=e(iDe),i=e(oo),o=e(Aa),a=e(ao),s=e(Tg),l=n??i;l!==void 0&&t(GN,c=>{const d=l-jk/2,f=l+jk/2,p=Object.keys(c);for(const v of p){const _=Number(v),y=xi(_);o!=null&&o.includes(y)||r!=null&&r.includes(y)||s==="My Slots"&&(a!=null&&a.includes(y))||!isNaN(_)&&(_f)&&delete c[_]}})}),Tk=Co({}),YN=ZN(e=>fe(t=>{var n;return e!==void 0?(n=t(Tk)[e])==null?void 0:n.publish:void 0})),hre=ZN(e=>fe(t=>e!==void 0?t(Tk)[e]:void 0)),aDe=fe(null,(e,t,n)=>{const r=n.publish.slot;t(Tk,i=>{var o,a,s,l,c,d,f;n.transactions??(n.transactions=(o=i[r])==null?void 0:o.transactions),n.tile_primary_metric??(n.tile_primary_metric=(a=i[r])==null?void 0:a.tile_primary_metric),n.tile_timers??(n.tile_timers=(s=i[r])==null?void 0:s.tile_timers),n.waterfall??(n.waterfall=(l=i[r])==null?void 0:l.waterfall),n.scheduler_counts??(n.scheduler_counts=(c=i[r])==null?void 0:c.scheduler_counts),n.limits??(n.limits=(d=i[r])==null?void 0:d.limits),n.scheduler_stats??(n.scheduler_stats=(f=i[r])==null?void 0:f.scheduler_stats),i[r]=n})}),sDe=fe(null,(e,t)=>{const n=e(An),r=e(Cn),i=e(oo),o=e(Aa),a=n??i,s=e(Tg),l=e(ao),{earliestQuickSlots:c,mostRecentQuickSlots:d}=e(Tre);a!==void 0&&t(Tk,f=>{const p=a-jk/2,v=a+jk/2,_=Object.keys(f);for(const y of _){const b=Number(y),w=xi(b);o!=null&&o.length&&o.includes(w)||r!==void 0&&w===xi(r)||s==="My Slots"&&(l!=null&&l.includes(w))||c&&c.includes(b)||d&&d.includes(b)||!isNaN(b)&&(bv)&&(delete f[b],YN.remove(b))}})}),Jf=fe(e=>{var t;if(_i){const n=e(Zu);return(n==null?void 0:n.ledger_max_slot)==null?void 0:n.ledger_max_slot+1}return((t=e(Hl))==null?void 0:t.catching_up_first_replay_slot)??void 0}),pre=fe(e=>{const t=e(ao),n=e(Jf);if(!t||n===void 0)return;const r=t.findIndex(i=>i>=n);return r!==-1?r:void 0});fe(e=>{const t=e(ao),n=e(pre);return n?t==null?void 0:t[n]:void 0});const KN=fe(e=>{const t=e(ao),n=e(Mb);return n?t==null?void 0:t[n-1]:void 0}),mre=fe(void 0),oo=fe(e=>e(mre),(e,t,n)=>{const r=e(Lb);(r===void 0||n>=r)&&t(Lb,n),t(mre,i=>Math.max(n,i??0))}),ao=fe(e=>{const t=e(di),n=e(dp);if(!(!t||!n))return AN(t,n)}),lDe=fe(e=>{const t=e(eDe),n=e(dp);if(!(!t||!n))return AN(t,n)}),Mb=fe(void 0),Lb=fe(e=>{const t=e(ao),n=e(Mb);if(!(!t||n===void 0))return t[n]},(e,t,n)=>{const r=e(ao);r!=null&&t(Mb,i=>{let o=i??0;for((r[o-1]??0)>n&&(o=0);o=r.length))return o})}),uDe=fe(e=>{const t=e(lDe);if(t)return t[0]}),gre=fe(e=>{const t=e(ao),n=e(Mb);if(t)return n===void 0?t[t.length-1]:t[n-1]}),cDe=fe(e=>{const t=e(oo),n=e(gre);return t===void 0||n===void 0?!1:t>=n&&t<=n+$n}),eu=fe(e=>{const t=e(oo);if(t!=null)return xi(t)}),Ku=Co({}),XN=fe(e=>Object.values(e(Ku))),dDe=fe(e=>e(XN).length),vre=ZN(e=>fe(t=>e!==void 0?t(Ku)[e]:void 0)),fDe=fe(null,(e,t,n)=>{n!=null&&n.length&&t(Ku,r=>{for(const i of n)r[i.identity_pubkey]?r[i.identity_pubkey]=rt.merge(r[i.identity_pubkey],i):r[i.identity_pubkey]=i})}),hDe=6e4*5,pDe=fe(null,(e,t,n)=>{n!=null&&n.length&&(t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&(r[i.identity_pubkey].removed=!0,vre.remove(i.identity_pubkey))}),setTimeout(()=>{t(Ku,r=>{for(const i of n)r[i.identity_pubkey]&&delete r[i.identity_pubkey]})},hDe))}),Ig=fe(e=>{const t=e(Ku);if(!t)return;const n=Object.values(t).filter(s=>!s.removed),r=n.filter(s=>s.vote.every(l=>!l.activated_stake)&&!!s.gossip),i=n.filter(s=>s.vote.some(l=>l.activated_stake)),o=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c:c+d.activated_stake,0n)+s,0n),a=n.reduce((s,l)=>l.vote.reduce((c,d)=>d.delinquent?c+d.activated_stake:c,0n)+s,0n);return{rpcCount:r.length,validatorCount:i.length,activeStake:o,delinquentStake:a}}),yre=fe(e=>{const t=e(Ig);if(t&&t.activeStake+t.delinquentStake)return t.activeStake+t.delinquentStake}),bre=fe(e=>{const t=e(Ku),n=e(dp),r=e(Ig);if(!t||!n||!r)return;const i=t[n];if(i)return nre(i)}),mDe=fe(e=>{const t=e(yre),n=e(bre);if(!(n===void 0||!t))return Number(n)/Number(t)*100}),_re=fe(e=>{const t=e(di),n=e(Ku),r=e(dDe);if(!(!t||r===0))return{epoch:t,peers:n}}),gDe=fe(e=>{const t=e(_re);if(!t)return;const{epoch:n,peers:r}=t;return[...new Set(n.leader_slots.map(i=>n.staked_pubkeys[i]))].map(i=>{var o,a,s,l,c;return{pubkey:i,name:(s=(a=(o=r[i])==null?void 0:o.info)==null?void 0:a.name)==null?void 0:s.toLowerCase(),clientId:(c=(l=r[i])==null?void 0:l.gossip)==null?void 0:c.client_id}})}),JN=function(){const e=Co(void 0);return fe(t=>t(e),(t,n,r)=>{const i=new Map;for(let o=0;oi(e)),fe(null,(i,o,a,s)=>{if(o(e,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)}),!i(t))o(t,!0),o(n,l=>{for(const c of a)l.add(c);for(const c of s)l.delete(c)});else if(a.length>0||s.length>0){const l=Date.now(),c={addPeers:a,removePeers:s,timestamp:l};o(r,d=>{d.push(c)})}}),fe(i=>{const o=i(n),a=i(e);let s=0;for(const l of o)a.has(l)||s++;return{online:a.size+s-o.size,offline:s}}),fe(null,(i,o)=>{const a=i(r);if(a.length===0)return;const s=Date.now()-xre,l=a.findIndex(d=>d.timestamp>=s);if(l===0)return;const c=l===-1?a.length:l;o(n,d=>{for(let f=0;fl===-1?[]:d.slice(l))}),fe(null,(i,o)=>{o(e,new Set),o(t,!1),o(n,new Set),o(r,[])})]}(),xDe=fe(e=>{var i;const t=new Set,n=(i=e(JN))==null?void 0:i.keys();if(!n)return t;const r=e(wre);for(const o of n)r.has(o)||t.add(o);return t}),wDe=Yf(e=>fe(t=>{if(e===void 0)return!0;const n=t(oo);return n===void 0||e>=n}),{maxSize:1e3}),Eg=fe(e=>{const t=e(_G);if(!t)return 300;const n=Math.trunc(t/1e6);return Math.max(50,Math.min(n,1e3*10))}),kre=Co({}),Sre=fe(e=>{const t=e(di);if(t)return e(kre)[t.epoch]},(e,t,n)=>{t(kre,r=>{r[n.epoch]=n})}),kDe=fe(e=>{const t=e(oo);if(t===void 0)return null;const n=e(An);return n===void 0?"Live":xi(n)===xi(t)?"Current":n>t?"Future":"Past"}),[Ik,SDe,CDe,jDe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{n(e,i=>{for(const o of r)i.add(o)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r,i)=>{n(e,o=>{const a=new Set;for(const s of o)si||a.add(s);return a})})]}(),Cre=fe(e=>{const t=e(gG);if(t!=null)return Math.round(t/aN)}),[jre,TDe,IDe,EDe,NDe]=function(){const e=Co(new Map);return[fe(t=>{const n=t(e),r=t(Ik),i=new Set;for(const[o,a]of n){if(a===null){i.add(o);continue}rre(o,a,r)>1&&i.add(o)}return i}),fe(null,(t,n,r,i)=>{n(e,o=>{o.set(r,i)})}),fe(null,(t,n,r)=>{n(e,i=>{i.delete(r)})}),fe(null,(t,n,r)=>{n(e,i=>{if(!r){i.clear();return}const o=[];i.forEach((a,s)=>{(si.delete(a))})}),fe(null,(t,n,r)=>{const i=new Map;let o=0;for(let a=0;a{const t=e(ao),n=e(pre),r=e(Mb);if(!t||n===void 0)return{};const i=t.slice(n,r);return{earliestQuickSlots:i.slice(0,qN),mostRecentQuickSlots:i.slice(-qN).toReversed()}});function $De(){const e=X(Zu);if(e)return u.jsx(lre,{currentBytes:e.downloading_incremental_snapshot_current_bytes,totalBytes:e.downloading_incremental_snapshot_total_bytes,remainingSecs:e.downloading_incremental_snapshot_remaining_secs})}var QN=Ob(),qt=e=>Rb(e,QN),e$=Ob();qt.write=e=>Rb(e,e$);var Ek=Ob();qt.onStart=e=>Rb(e,Ek);var t$=Ob();qt.onFrame=e=>Rb(e,t$);var n$=Ob();qt.onFinish=e=>Rb(e,n$);var Ng=[];qt.setTimeout=(e,t)=>{const n=qt.now()+t,r=()=>{const o=Ng.findIndex(a=>a.cancel==r);~o&&Ng.splice(o,1),eh-=~o?1:0},i={time:n,handler:e,cancel:r};return Ng.splice(Ire(n),0,i),eh+=1,Ere(),i};var Ire=e=>~(~Ng.findIndex(t=>t.time>e)||~Ng.length);qt.cancel=e=>{Ek.delete(e),t$.delete(e),n$.delete(e),QN.delete(e),e$.delete(e)},qt.sync=e=>{i$=!0,qt.batchedUpdates(e),i$=!1},qt.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...i){t=i,qt.onStart(n)}return r.handler=e,r.cancel=()=>{Ek.delete(n),t=null},r};var r$=typeof window<"u"?window.requestAnimationFrame:()=>{};qt.use=e=>r$=e,qt.now=typeof performance<"u"?()=>performance.now():Date.now,qt.batchedUpdates=e=>e(),qt.catch=console.error,qt.frameLoop="always",qt.advance=()=>{qt.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):$re()};var Qf=-1,eh=0,i$=!1;function Rb(e,t){i$?(t.delete(e),e(0)):(t.add(e),Ere())}function Ere(){Qf<0&&(Qf=0,qt.frameLoop!=="demand"&&r$(Nre))}function MDe(){Qf=-1}function Nre(){~Qf&&(r$(Nre),qt.batchedUpdates($re))}function $re(){const e=Qf;Qf=qt.now();const t=Ire(Qf);if(t&&(Mre(Ng.splice(0,t),n=>n.handler()),eh-=t),!eh){MDe();return}Ek.flush(),QN.flush(e?Math.min(64,Qf-e):16.667),t$.flush(),e$.flush(),n$.flush()}function Ob(){let e=new Set,t=e;return{add(n){eh+=t==e&&!e.has(n)?1:0,e.add(n)},delete(n){return eh-=t==e&&e.has(n)?1:0,e.delete(n)},flush(n){t.size&&(e=new Set,eh-=t.size,Mre(t,r=>r(n)&&e.add(r)),eh+=e.size,t=e)}}}function Mre(e,t){e.forEach(n=>{try{t(n)}catch(r){qt.catch(r)}})}var LDe=Object.defineProperty,RDe=(e,t)=>{for(var n in t)LDe(e,n,{get:t[n],enumerable:!0})},tu={};RDe(tu,{assign:()=>PDe,colors:()=>th,createStringInterpolator:()=>s$,skipAnimation:()=>Rre,to:()=>Lre,willAdvance:()=>l$});function o$(){}var ODe=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),He={arr:Array.isArray,obj:e=>!!e&&e.constructor.name==="Object",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",und:e=>e===void 0};function vd(e,t){if(He.arr(e)){if(!He.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function Xu(e,t,n){if(He.arr(e)){for(let r=0;rHe.und(e)?[]:He.arr(e)?e:[e];function Pb(e,t){if(e.size){const n=Array.from(e);e.clear(),Ft(n,t)}}var zb=(e,...t)=>Pb(e,n=>n(...t)),a$=()=>typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),s$,Lre,th=null,Rre=!1,l$=o$,PDe=e=>{e.to&&(Lre=e.to),e.now&&(qt.now=e.now),e.colors!==void 0&&(th=e.colors),e.skipAnimation!=null&&(Rre=e.skipAnimation),e.createStringInterpolator&&(s$=e.createStringInterpolator),e.requestAnimationFrame&&qt.use(e.requestAnimationFrame),e.batchedUpdates&&(qt.batchedUpdates=e.batchedUpdates),e.willAdvance&&(l$=e.willAdvance),e.frameLoop&&(qt.frameLoop=e.frameLoop)},Db=new Set,ul=[],u$=[],Nk=0,$k={get idle(){return!Db.size&&!ul.length},start(e){Nk>e.priority?(Db.add(e),qt.onStart(zDe)):(Ore(e),qt(c$))},advance:c$,sort(e){if(Nk)qt.onFrame(()=>$k.sort(e));else{const t=ul.indexOf(e);~t&&(ul.splice(t,1),Pre(e))}},clear(){ul=[],Db.clear()}};function zDe(){Db.forEach(Ore),Db.clear(),qt(c$)}function Ore(e){ul.includes(e)||Pre(e)}function Pre(e){ul.splice(DDe(ul,t=>t.priority>e.priority),0,e)}function c$(e){const t=u$;for(let n=0;n0}function DDe(e,t){const n=e.findIndex(t);return n<0?e.length:n}var ADe={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},nu="[-+]?\\d*\\.?\\d+",Mk=nu+"%";function Lk(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var FDe=new RegExp("rgb"+Lk(nu,nu,nu)),BDe=new RegExp("rgba"+Lk(nu,nu,nu,nu)),UDe=new RegExp("hsl"+Lk(nu,Mk,Mk)),WDe=new RegExp("hsla"+Lk(nu,Mk,Mk,nu)),VDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,HDe=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ZDe=/^#([0-9a-fA-F]{6})$/,qDe=/^#([0-9a-fA-F]{8})$/;function GDe(e){let t;return typeof e=="number"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=ZDe.exec(e))?parseInt(t[1]+"ff",16)>>>0:th&&th[e]!==void 0?th[e]:(t=FDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|255)>>>0:(t=BDe.exec(e))?($g(t[1])<<24|$g(t[2])<<16|$g(t[3])<<8|Are(t[4]))>>>0:(t=VDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=qDe.exec(e))?parseInt(t[1],16)>>>0:(t=HDe.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=UDe.exec(e))?(zre(Dre(t[1]),Rk(t[2]),Rk(t[3]))|255)>>>0:(t=WDe.exec(e))?(zre(Dre(t[1]),Rk(t[2]),Rk(t[3]))|Are(t[4]))>>>0:null}function d$(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function zre(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,o=d$(i,r,e+1/3),a=d$(i,r,e),s=d$(i,r,e-1/3);return Math.round(o*255)<<24|Math.round(a*255)<<16|Math.round(s*255)<<8}function $g(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Dre(e){return(parseFloat(e)%360+360)%360/360}function Are(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function Rk(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Fre(e){let t=GDe(e);if(t===null)return e;t=t||0;const n=(t&4278190080)>>>24,r=(t&16711680)>>>16,i=(t&65280)>>>8,o=(t&255)/255;return`rgba(${n}, ${r}, ${i}, ${o})`}var Ab=(e,t,n)=>{if(He.fun(e))return e;if(He.arr(e))return Ab({range:e,output:t,extrapolate:n});if(He.str(e.output[0]))return s$(e);const r=e,i=r.output,o=r.range||[0,1],a=r.extrapolateLeft||r.extrapolate||"extend",s=r.extrapolateRight||r.extrapolate||"extend",l=r.easing||(c=>c);return c=>{const d=KDe(c,o);return YDe(c,o[d],o[d+1],i[d],i[d+1],l,a,s,r.map)}};function YDe(e,t,n,r,i,o,a,s,l){let c=l?l(e):e;if(cn){if(s==="identity")return c;s==="clamp"&&(c=n)}return r===i?r:t===n?e<=t?r:i:(t===-1/0?c=-c:n===1/0?c=c-t:c=(c-t)/(n-t),c=o(c),r===-1/0?c=-c:i===1/0?c=c+r:c=c*(i-r)+r,c)}function KDe(e,t){for(var n=1;n=e);++n);return n-1}var XDe={linear:e=>e},Fb=Symbol.for("FluidValue.get"),Mg=Symbol.for("FluidValue.observers"),cl=e=>!!(e&&e[Fb]),Fa=e=>e&&e[Fb]?e[Fb]():e,Bre=e=>e[Mg]||null;function JDe(e,t){e.eventObserved?e.eventObserved(t):e(t)}function Bb(e,t){const n=e[Mg];n&&n.forEach(r=>{JDe(r,t)})}var Ure=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");QDe(this,e)}},QDe=(e,t)=>Wre(e,Fb,t);function Lg(e,t){if(e[Fb]){let n=e[Mg];n||Wre(e,Mg,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function Ub(e,t){const n=e[Mg];if(n&&n.has(t)){const r=n.size-1;r?n.delete(t):e[Mg]=null,e.observerRemoved&&e.observerRemoved(r,t)}}var Wre=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Ok=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,eAe=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,Vre=new RegExp(`(${Ok.source})(%|[a-z]+)`,"i"),tAe=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,Pk=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,Hre=e=>{const[t,n]=nAe(e);if(!t||a$())return e;const r=window.getComputedStyle(document.documentElement).getPropertyValue(t);return r?r.trim():n&&n.startsWith("--")?window.getComputedStyle(document.documentElement).getPropertyValue(n)||e:n&&Pk.test(n)?Hre(n):n||e},nAe=e=>{const t=Pk.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]},f$,rAe=(e,t,n,r,i)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(r)}, ${i})`,Zre=e=>{f$||(f$=th?new RegExp(`(${Object.keys(th).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map(i=>Fa(i).replace(Pk,Hre).replace(eAe,Fre).replace(f$,Fre)),n=t.map(i=>i.match(Ok).map(Number)),r=n[0].map((i,o)=>n.map(a=>{if(!(o in a))throw Error('The arity of each "output" value must be equal');return a[o]})).map(i=>Ab({...e,output:i}));return i=>{var s;const o=!Vre.test(t[0])&&((s=t.find(l=>Vre.test(l)))==null?void 0:s.replace(Ok,""));let a=0;return t[0].replace(Ok,()=>`${r[a++](i)}${o||""}`).replace(tAe,rAe)}},h$="react-spring: ",qre=e=>{const t=e;let n=!1;if(typeof t!="function")throw new TypeError(`${h$}once requires a function parameter`);return(...r)=>{n||(t(...r),n=!0)}},iAe=qre(console.warn);function oAe(){iAe(`${h$}The "interpolate" function is deprecated in v9 (use "to" instead)`)}var aAe=qre(console.warn);function sAe(){aAe(`${h$}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function zk(e){return He.str(e)&&(e[0]=="#"||/\d/.test(e)||!a$()&&Pk.test(e)||e in(th||{}))}var jp=a$()?m.useEffect:m.useLayoutEffect,lAe=()=>{const e=m.useRef(!1);return jp(()=>(e.current=!0,()=>{e.current=!1}),[]),e};function p$(){const e=m.useState()[1],t=lAe();return()=>{t.current&&e(Math.random())}}function uAe(e,t){const[n]=m.useState(()=>({inputs:t,result:e()})),r=m.useRef(),i=r.current;let o=i;return o?t&&o.inputs&&cAe(t,o.inputs)||(o={inputs:t,result:e()}):o=n,m.useEffect(()=>{r.current=o,i==n&&(n.inputs=n.result=void 0)},[o]),o.result}function cAe(e,t){if(e.length!==t.length)return!1;for(let n=0;nm.useEffect(e,dAe),dAe=[];function g$(e){const t=m.useRef();return m.useEffect(()=>{t.current=e}),t.current}var Wb=Symbol.for("Animated:node"),fAe=e=>!!e&&e[Wb]===e,Ju=e=>e&&e[Wb],v$=(e,t)=>ODe(e,Wb,t),Dk=e=>e&&e[Wb]&&e[Wb].getPayload(),Gre=class{constructor(){v$(this,this)}getPayload(){return this.payload||[]}},Vb=class extends Gre{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,He.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Vb(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return He.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value===e?!1:(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,He.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Hb=class extends Vb{constructor(e){super(0),this._string=null,this._toString=Ab({output:[e,e]})}static create(e){return new Hb(e)}getValue(){return this._string??(this._string=this._toString(this._value))}setValue(e){if(He.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else if(super.setValue(e))this._string=null;else return!1;return!0}reset(e){e&&(this._toString=Ab({output:[this.getValue(),e]})),this._value=0,super.reset()}},Ak={dependencies:null},Fk=class extends Gre{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return Xu(this.source,(n,r)=>{fAe(n)?t[r]=n.getValue(e):cl(n)?t[r]=Fa(n):e||(t[r]=n)}),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&Ft(this.payload,e=>e.reset())}_makePayload(e){if(e){const t=new Set;return Xu(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Ak.dependencies&&cl(e)&&Ak.dependencies.add(e);const t=Dk(e);t&&Ft(t,n=>this.add(n))}},Yre=class extends Fk{constructor(e){super(e)}static create(e){return new Yre(e)}getValue(){return this.source.map(e=>e.getValue())}setValue(e){const t=this.getPayload();return e.length==t.length?t.map((n,r)=>n.setValue(e[r])).some(Boolean):(super.setValue(e.map(hAe)),!0)}};function hAe(e){return(zk(e)?Hb:Vb).create(e)}function y$(e){const t=Ju(e);return t?t.constructor:He.arr(e)?Yre:zk(e)?Hb:Vb}var Kre=(e,t)=>{const n=!He.fun(e)||e.prototype&&e.prototype.isReactComponent;return m.forwardRef((r,i)=>{const o=m.useRef(null),a=n&&m.useCallback(_=>{o.current=gAe(i,_)},[i]),[s,l]=mAe(r,t),c=p$(),d=()=>{const _=o.current;n&&!_||(_?t.applyAnimatedValues(_,s.getValue(!0)):!1)===!1&&c()},f=new pAe(d,l),p=m.useRef();jp(()=>(p.current=f,Ft(l,_=>Lg(_,f)),()=>{p.current&&(Ft(p.current.deps,_=>Ub(_,p.current)),qt.cancel(p.current.update))})),m.useEffect(d,[]),m$(()=>()=>{const _=p.current;Ft(_.deps,y=>Ub(y,_))});const v=t.getComponentProps(s.getValue());return m.createElement(e,{...v,ref:a})})},pAe=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){e.type=="change"&&qt.write(this.update)}};function mAe(e,t){const n=new Set;return Ak.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)}),e=new Fk(e),Ak.dependencies=null,[e,n]}function gAe(e,t){return e&&(He.fun(e)?e(t):e.current=t),t}var Xre=Symbol.for("AnimatedComponent"),vAe=(e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:n=i=>new Fk(i),getComponentProps:r=i=>i}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:r},o=a=>{const s=Jre(a)||"Anonymous";return He.str(a)?a=o[a]||(o[a]=Kre(a,i)):a=a[Xre]||(a[Xre]=Kre(a,i)),a.displayName=`Animated(${s})`,a};return Xu(e,(a,s)=>{He.arr(e)&&(s=Jre(a)),o[s]=o(a)}),{animated:o}},Jre=e=>He.str(e)?e:e&&He.str(e.displayName)?e.displayName:He.fun(e)&&e.name||null;function Ba(e,...t){return He.fun(e)?e(...t):e}var Zb=(e,t)=>e===!0||!!(t&&e&&(He.fun(e)?e(t):ha(e).includes(t))),Qre=(e,t)=>He.obj(e)?t&&e[t]:e,eie=(e,t)=>e.default===!0?e[t]:e.default?e.default[t]:void 0,yAe=e=>e,Bk=(e,t=yAe)=>{let n=bAe;e.default&&e.default!==!0&&(e=e.default,n=Object.keys(e));const r={};for(const i of n){const o=t(e[i],i);He.und(o)||(r[i]=o)}return r},bAe=["config","onProps","onStart","onChange","onPause","onResume","onRest"],_Ae={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function xAe(e){const t={};let n=0;if(Xu(e,(r,i)=>{_Ae[i]||(t[i]=r,n++)}),n)return t}function b$(e){const t=xAe(e);if(t){const n={to:t};return Xu(e,(r,i)=>i in t||(n[i]=r)),n}return{...e}}function qb(e){return e=Fa(e),He.arr(e)?e.map(qb):zk(e)?tu.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function tie(e){for(const t in e)return!0;return!1}function _$(e){return He.fun(e)||He.arr(e)&&He.obj(e[0])}function x$(e,t){var n;(n=e.ref)==null||n.delete(e),t==null||t.delete(e)}function nie(e,t){var n;t&&e.ref!==t&&((n=e.ref)==null||n.delete(e),t.add(e),e.ref=t)}var w$={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}},k$={...w$.default,mass:1,damping:1,easing:XDe.linear,clamp:!1},wAe=class{constructor(){this.velocity=0,Object.assign(this,k$)}};function kAe(e,t,n){n&&(n={...n},rie(n,t),t={...n,...t}),rie(e,t),Object.assign(e,t);for(const a in k$)e[a]==null&&(e[a]=k$[a]);let{frequency:r,damping:i}=e;const{mass:o}=e;return He.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*o,e.friction=4*Math.PI*i*o/r),e}function rie(e,t){if(!He.und(t.decay))e.duration=void 0;else{const n=!He.und(t.tension)||!He.und(t.friction);(n||!He.und(t.frequency)||!He.und(t.damping)||!He.und(t.mass))&&(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}}var iie=[],SAe=class{constructor(){this.changed=!1,this.values=iie,this.toValues=null,this.fromValues=iie,this.config=new wAe,this.immediate=!1}};function oie(e,{key:t,props:n,defaultProps:r,state:i,actions:o}){return new Promise((a,s)=>{let l,c,d=Zb(n.cancel??(r==null?void 0:r.cancel),t);if(d)v();else{He.und(n.pause)||(i.paused=Zb(n.pause,t));let _=r==null?void 0:r.pause;_!==!0&&(_=i.paused||Zb(_,t)),l=Ba(n.delay||0,t),_?(i.resumeQueue.add(p),o.pause()):(o.resume(),p())}function f(){i.resumeQueue.add(p),i.timeouts.delete(c),c.cancel(),l=c.time-qt.now()}function p(){l>0&&!tu.skipAnimation?(i.delayed=!0,c=qt.setTimeout(v,l),i.pauseQueue.add(f),i.timeouts.add(c)):v()}function v(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(f),i.timeouts.delete(c),e<=(i.cancelId||0)&&(d=!0);try{o.start({...n,callId:e,cancel:d},a)}catch(_){s(_)}}})}var S$=(e,t)=>t.length==1?t[0]:t.some(n=>n.cancelled)?Rg(e.get()):t.every(n=>n.noop)?aie(e.get()):ru(e.get(),t.every(n=>n.finished)),aie=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),ru=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),Rg=e=>({value:e,cancelled:!0,finished:!1});function sie(e,t,n,r){const{callId:i,parentId:o,onRest:a}=t,{asyncTo:s,promise:l}=n;return!o&&e===s&&!t.reset?l:n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const c=Bk(t,(b,w)=>w==="onRest"?void 0:b);let d,f;const p=new Promise((b,w)=>(d=b,f=w)),v=b=>{const w=i<=(n.cancelId||0)&&Rg(r)||i!==n.asyncId&&ru(r,!1);if(w)throw b.result=w,f(b),b},_=(b,w)=>{const x=new lie,S=new uie;return(async()=>{if(tu.skipAnimation)throw Gb(n),S.result=ru(r,!1),f(S),S;v(x);const C=He.obj(b)?{...b}:{...w,to:b};C.parentId=i,Xu(c,(T,E)=>{He.und(C[E])&&(C[E]=T)});const j=await r.start(C);return v(x),n.paused&&await new Promise(T=>{n.resumeQueue.add(T)}),j})()};let y;if(tu.skipAnimation)return Gb(n),ru(r,!1);try{let b;He.arr(e)?b=(async w=>{for(const x of w)await _(x)})(e):b=Promise.resolve(e(_,r.stop.bind(r))),await Promise.all([b.then(d),p]),y=ru(r.get(),!0,!1)}catch(b){if(b instanceof lie)y=b.result;else if(b instanceof uie)y=b.result;else throw b}finally{i==n.asyncId&&(n.asyncId=o,n.asyncTo=o?s:void 0,n.promise=o?l:void 0)}return He.fun(a)&&qt.batchedUpdates(()=>{a(y,r,r.item)}),y})()}function Gb(e,t){Pb(e.timeouts,n=>n.cancel()),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var lie=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},uie=class extends Error{constructor(){super("SkipAnimationSignal")}},C$=e=>e instanceof j$,CAe=1,j$=class extends Ure{constructor(){super(...arguments),this.id=CAe++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Ju(this);return e&&e.getValue()}to(...e){return tu.to(this,e)}interpolate(...e){return oAe(),tu.to(this,e)}toJSON(){return this.get()}observerAdded(e){e==1&&this._attach()}observerRemoved(e){e==0&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){Bb(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||$k.sort(this),Bb(this,{type:"priority",parent:this,priority:e})}},Tp=Symbol.for("SpringPhase"),cie=1,T$=2,I$=4,E$=e=>(e[Tp]&cie)>0,nh=e=>(e[Tp]&T$)>0,Yb=e=>(e[Tp]&I$)>0,die=(e,t)=>t?e[Tp]|=T$|cie:e[Tp]&=~T$,fie=(e,t)=>t?e[Tp]|=I$:e[Tp]&=~I$,jAe=class extends j${constructor(e,t){if(super(),this.animation=new SAe,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!He.und(e)||!He.und(t)){const n=He.obj(e)?{...e}:{...t,from:e};He.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(nh(this)||this._state.asyncTo)||Yb(this)}get goal(){return Fa(this.animation.to)}get velocity(){const e=Ju(this);return e instanceof Vb?e.lastVelocity||0:e.getPayload().map(t=>t.lastVelocity||0)}get hasAnimated(){return E$(this)}get isAnimating(){return nh(this)}get isPaused(){return Yb(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const r=this.animation;let{toValues:i}=r;const{config:o}=r,a=Dk(r.to);!a&&cl(r.to)&&(i=ha(Fa(r.to))),r.values.forEach((c,d)=>{if(c.done)return;const f=c.constructor==Hb?1:a?a[d].lastPosition:i[d];let p=r.immediate,v=f;if(!p){if(v=c.lastPosition,o.tension<=0){c.done=!0;return}let _=c.elapsedTime+=e;const y=r.fromValues[d],b=c.v0!=null?c.v0:c.v0=He.arr(o.velocity)?o.velocity[d]:o.velocity;let w;const x=o.precision||(y==f?.005:Math.min(1,Math.abs(f-y)*.001));if(He.und(o.duration))if(o.decay){const S=o.decay===!0?.998:o.decay,C=Math.exp(-(1-S)*_);v=y+b/(1-S)*(1-C),p=Math.abs(c.lastPosition-v)<=x,w=b*C}else{w=c.lastVelocity==null?b:c.lastVelocity;const S=o.restVelocity||x/10,C=o.clamp?0:o.bounce,j=!He.und(C),T=y==f?c.v0>0:yS,!(!E&&(p=Math.abs(f-v)<=x,p)));++P){j&&($=v==f||v>f==T,$&&(w=-w*C,v=f));const te=-o.tension*1e-6*(v-f),Z=-o.friction*.001*w,O=(te+Z)/o.mass;w=w+O*A,v=v+w*A}}else{let S=1;o.duration>0&&(this._memoizedDuration!==o.duration&&(this._memoizedDuration=o.duration,c.durationProgress>0&&(c.elapsedTime=o.duration*c.durationProgress,_=c.elapsedTime+=e)),S=(o.progress||0)+_/this._memoizedDuration,S=S>1?1:S<0?0:S,c.durationProgress=S),v=y+o.easing(S)*(f-y),w=(v-c.lastPosition)/e,p=S==1}c.lastVelocity=w,Number.isNaN(v)&&(console.warn("Got NaN while animating:",this),p=!0)}a&&!a[d].done&&(p=!1),p?c.done=!0:t=!1,c.setValue(v,o.round)&&(n=!0)});const s=Ju(this),l=s.getValue();if(t){const c=Fa(r.to);(l!==c||n)&&!o.decay?(s.setValue(c),this._onChange(c)):n&&o.decay&&this._onChange(l),this._stop()}else n&&this._onChange(l)}set(e){return qt.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(nh(this)){const{to:e,config:t}=this.animation;qt.batchedUpdates(()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return He.und(e)?(n=this.queue||[],this.queue=[]):n=[He.obj(e)?e:{...t,to:e}],Promise.all(n.map(r=>this._update(r))).then(r=>S$(this,r))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),Gb(this._state,e&&this._lastCallId),qt.batchedUpdates(()=>this._stop(t,e)),this}reset(){this._update({reset:!0})}eventObserved(e){e.type=="change"?this._start():e.type=="priority"&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:r}=e;n=He.obj(n)?n[t]:n,(n==null||_$(n))&&(n=void 0),r=He.obj(r)?r[t]:r,r==null&&(r=void 0);const i={to:n,from:r};return E$(this)||(e.reverse&&([n,r]=[r,n]),r=Fa(r),He.und(r)?Ju(this)||this._set(n):this._set(r)),i}_update({...e},t){const{key:n,defaultProps:r}=this;e.default&&Object.assign(r,Bk(e,(a,s)=>/^on/.test(s)?Qre(a,n):a)),mie(this,e,"onProps"),Jb(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const o=this._state;return oie(++this._lastCallId,{key:n,props:e,defaultProps:r,state:o,actions:{pause:()=>{Yb(this)||(fie(this,!0),zb(o.pauseQueue),Jb(this,"onPause",ru(this,Kb(this,this.animation.to)),this))},resume:()=>{Yb(this)&&(fie(this,!1),nh(this)&&this._resume(),zb(o.resumeQueue),Jb(this,"onResume",ru(this,Kb(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then(a=>{if(e.loop&&a.finished&&!(t&&a.noop)){const s=hie(e);if(s)return this._update(s,!0)}return a})}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(Rg(this));const r=!He.und(e.to),i=!He.und(e.from);if(r||i)if(t.callId>this._lastToId)this._lastToId=t.callId;else return n(Rg(this));const{key:o,defaultProps:a,animation:s}=this,{to:l,from:c}=s;let{to:d=l,from:f=c}=e;i&&!r&&(!t.default||He.und(d))&&(d=f),t.reverse&&([d,f]=[f,d]);const p=!vd(f,c);p&&(s.from=f),f=Fa(f);const v=!vd(d,l);v&&this._focus(d);const _=_$(t.to),{config:y}=s,{decay:b,velocity:w}=y;(r||i)&&(y.velocity=0),t.config&&!_&&kAe(y,Ba(t.config,o),t.config!==a.config?Ba(a.config,o):void 0);let x=Ju(this);if(!x||He.und(d))return n(ru(this,!0));const S=He.und(t.reset)?i&&!t.default:!He.und(f)&&Zb(t.reset,o),C=S?f:this.get(),j=qb(d),T=He.num(j)||He.arr(j)||zk(j),E=!_&&(!T||Zb(a.immediate||t.immediate,o));if(v){const P=y$(d);if(P!==x.constructor)if(E)x=this._set(j);else throw Error(`Cannot animate between ${x.constructor.name} and ${P.name}, as the "to" prop suggests`)}const $=x.constructor;let A=cl(d),M=!1;if(!A){const P=S||!E$(this)&&p;(v||P)&&(M=vd(qb(C),j),A=!M),(!vd(s.immediate,E)&&!E||!vd(y.decay,b)||!vd(y.velocity,w))&&(A=!0)}if(M&&nh(this)&&(s.changed&&!S?A=!0:A||this._stop(l)),!_&&((A||cl(l))&&(s.values=x.getPayload(),s.toValues=cl(d)?null:$==Hb?[1]:ha(j)),s.immediate!=E&&(s.immediate=E,!E&&!S&&this._set(l)),A)){const{onRest:P}=s;Ft(IAe,Z=>mie(this,t,Z));const te=ru(this,Kb(this,l));zb(this._pendingCalls,te),this._pendingCalls.add(n),s.changed&&qt.batchedUpdates(()=>{var Z;s.changed=!S,P==null||P(te,this),S?Ba(a.onRest,te):(Z=s.onStart)==null||Z.call(s,te,this)})}S&&this._set(C),_?n(sie(t.to,t,this._state,this)):A?this._start():nh(this)&&!v?this._pendingCalls.add(n):n(aie(C))}_focus(e){const t=this.animation;e!==t.to&&(Bre(this)&&this._detach(),t.to=e,Bre(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;cl(t)&&(Lg(t,this),C$(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;cl(e)&&Ub(e,this)}_set(e,t=!0){const n=Fa(e);if(!He.und(n)){const r=Ju(this);if(!r||!vd(n,r.getValue())){const i=y$(n);!r||r.constructor!=i?v$(this,i.create(n)):r.setValue(n),r&&qt.batchedUpdates(()=>{this._onChange(n,t)})}}return Ju(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Jb(this,"onStart",ru(this,Kb(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Ba(this.animation.onChange,e,this)),Ba(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Ju(this).reset(Fa(e.to)),e.immediate||(e.fromValues=e.values.map(t=>t.lastPosition)),nh(this)||(die(this,!0),Yb(this)||this._resume())}_resume(){tu.skipAnimation?this.finish():$k.start(this)}_stop(e,t){if(nh(this)){die(this,!1);const n=this.animation;Ft(n.values,i=>{i.done=!0}),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),Bb(this,{type:"idle",parent:this});const r=t?Rg(this.get()):ru(this.get(),Kb(this,e??n.to));zb(this._pendingCalls,r),n.changed&&(n.changed=!1,Jb(this,"onRest",r,this))}}};function Kb(e,t){const n=qb(t),r=qb(e.get());return vd(r,n)}function hie(e,t=e.loop,n=e.to){const r=Ba(t);if(r){const i=r!==!0&&b$(r),o=(i||e).reverse,a=!i||i.reset;return Xb({...e,loop:t,default:!1,pause:void 0,to:!o||_$(n)?n:void 0,from:a?e.from:void 0,reset:a,...i})}}function Xb(e){const{to:t,from:n}=e=b$(e),r=new Set;return He.obj(t)&&pie(t,r),He.obj(n)&&pie(n,r),e.keys=r.size?Array.from(r):null,e}function TAe(e){const t=Xb(e);return He.und(t.default)&&(t.default=Bk(t)),t}function pie(e,t){Xu(e,(n,r)=>n!=null&&t.add(r))}var IAe=["onStart","onRest","onChange","onPause","onResume"];function mie(e,t,n){e.animation[n]=t[n]!==eie(t,n)?Qre(t[n],e.key):void 0}function Jb(e,t,...n){var r,i,o,a;(i=(r=e.animation)[t])==null||i.call(r,...n),(a=(o=e.defaultProps)[t])==null||a.call(o,...n)}var EAe=["onStart","onChange","onRest"],NAe=1,gie=class{constructor(e,t){this.id=NAe++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each((t,n)=>e[n]=t.get()),e}set(e){for(const t in e){const n=e[t];He.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(Xb(e)),this}start(e){let{queue:t}=this;return e?t=ha(e).map(Xb):this.queue=[],this._flush?this._flush(this,t):(xie(this,t),N$(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;Ft(ha(t),r=>n[r].stop(!!e))}else Gb(this._state,this._lastAsyncId),this.each(n=>n.stop(!!e));return this}pause(e){if(He.und(e))this.start({pause:!0});else{const t=this.springs;Ft(ha(e),n=>t[n].pause())}return this}resume(e){if(He.und(e))this.start({pause:!1});else{const t=this.springs;Ft(ha(e),n=>t[n].resume())}return this}each(e){Xu(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,r=this._active.size>0,i=this._changed.size>0;(r&&!this._started||i&&!this._started)&&(this._started=!0,Pb(e,([s,l])=>{l.value=this.get(),s(l,this,this._item)}));const o=!r&&this._started,a=i||o&&n.size?this.get():null;i&&t.size&&Pb(t,([s,l])=>{l.value=a,s(l,this,this._item)}),o&&(this._started=!1,Pb(n,([s,l])=>{l.value=a,s(l,this,this._item)}))}eventObserved(e){if(e.type=="change")this._changed.add(e.parent),e.idle||this._active.add(e.parent);else if(e.type=="idle")this._active.delete(e.parent);else return;qt.onFrame(this._onFrame)}};function N$(e,t){return Promise.all(t.map(n=>vie(e,n))).then(n=>S$(e,n))}async function vie(e,t,n){const{keys:r,to:i,from:o,loop:a,onRest:s,onResolve:l}=t,c=He.obj(t.default)&&t.default;a&&(t.loop=!1),i===!1&&(t.to=null),o===!1&&(t.from=null);const d=He.arr(i)||He.fun(i)?i:void 0;d?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):Ft(EAe,y=>{const b=t[y];if(He.fun(b)){const w=e._events[y];t[y]=({finished:x,cancelled:S})=>{const C=w.get(b);C?(x||(C.finished=!1),S&&(C.cancelled=!0)):w.set(b,{value:null,finished:x||!1,cancelled:S||!1})},c&&(c[y]=t[y])}});const f=e._state;t.pause===!f.paused?(f.paused=t.pause,zb(t.pause?f.pauseQueue:f.resumeQueue)):f.paused&&(t.pause=!0);const p=(r||Object.keys(e.springs)).map(y=>e.springs[y].start(t)),v=t.cancel===!0||eie(t,"cancel")===!0;(d||v&&f.asyncId)&&p.push(oie(++e._lastAsyncId,{props:t,state:f,actions:{pause:o$,resume:o$,start(y,b){v?(Gb(f,e._lastAsyncId),b(Rg(e))):(y.onRest=s,b(sie(d,y,f,e)))}}})),f.paused&&await new Promise(y=>{f.resumeQueue.add(y)});const _=S$(e,await Promise.all(p));if(a&&_.finished&&!(n&&_.noop)){const y=hie(t,a,i);if(y)return xie(e,[y]),vie(e,y,!0)}return l&&qt.batchedUpdates(()=>l(_,e,e.item)),_}function $$(e,t){const n={...e.springs};return t&&Ft(ha(t),r=>{He.und(r.keys)&&(r=Xb(r)),He.obj(r.to)||(r={...r,to:void 0}),_ie(n,r,i=>bie(i))}),yie(e,n),n}function yie(e,t){Xu(t,(n,r)=>{e.springs[r]||(e.springs[r]=n,Lg(n,e))})}function bie(e,t){const n=new jAe;return n.key=e,t&&Lg(n,t),n}function _ie(e,t,n){t.keys&&Ft(t.keys,r=>{(e[r]||(e[r]=n(r)))._prepareNode(t)})}function xie(e,t){Ft(t,n=>{_ie(e.springs,n,r=>bie(r,e))})}var Qb=({children:e,...t})=>{const n=m.useContext(Uk),r=t.pause||!!n.pause,i=t.immediate||!!n.immediate;t=uAe(()=>({pause:r,immediate:i}),[r,i]);const{Provider:o}=Uk;return m.createElement(o,{value:t},e)},Uk=$Ae(Qb,{});Qb.Provider=Uk.Provider,Qb.Consumer=Uk.Consumer;function $Ae(e,t){return Object.assign(e,m.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}var wie=()=>{const e=[],t=function(r){sAe();const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=n(r,o,a);s&&i.push(o.start(s))}}),i};t.current=e,t.add=function(r){e.includes(r)||e.push(r)},t.delete=function(r){const i=e.indexOf(r);~i&&e.splice(i,1)},t.pause=function(){return Ft(e,r=>r.pause(...arguments)),this},t.resume=function(){return Ft(e,r=>r.resume(...arguments)),this},t.set=function(r){Ft(e,(i,o)=>{const a=He.fun(r)?r(o,i):r;a&&i.set(a)})},t.start=function(r){const i=[];return Ft(e,(o,a)=>{if(He.und(r))i.push(o.start());else{const s=this._getProps(r,o,a);s&&i.push(o.start(s))}}),i},t.stop=function(){return Ft(e,r=>r.stop(...arguments)),this},t.update=function(r){return Ft(e,(i,o)=>i.update(this._getProps(r,i,o))),this};const n=function(r,i,o){return He.fun(r)?r(o,i):r};return t._getProps=n,t};function MAe(e,t,n){const r=He.fun(t)&&t;r&&!n&&(n=[]);const i=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),o=m.useRef(0),a=p$(),s=m.useMemo(()=>({ctrls:[],queue:[],flush(w,x){const S=$$(w,x);return o.current>0&&!s.queue.length&&!Object.keys(S).some(C=>!w.springs[C])?N$(w,x):new Promise(C=>{yie(w,S),s.queue.push(()=>{C(N$(w,x))}),a()})}}),[]),l=m.useRef([...s.ctrls]),c=[],d=g$(e)||0;m.useMemo(()=>{Ft(l.current.slice(e,d),w=>{x$(w,i),w.stop(!0)}),l.current.length=e,f(d,e)},[e]),m.useMemo(()=>{f(0,Math.min(d,e))},n);function f(w,x){for(let S=w;S$$(w,c[x])),v=m.useContext(Qb),_=g$(v),y=v!==_&&tie(v);jp(()=>{o.current++,s.ctrls=l.current;const{queue:w}=s;w.length&&(s.queue=[],Ft(w,x=>x())),Ft(l.current,(x,S)=>{i==null||i.add(x),y&&x.start({default:v});const C=c[S];C&&(nie(x,C.ref),x.ref?x.queue.push(C):x.start(C))})}),m$(()=>()=>{Ft(s.ctrls,w=>w.stop(!0))});const b=p.map(w=>({...w}));return i?[b,i]:b}function e_(e,t){const n=He.fun(e),[[r],i]=MAe(1,n?e:[e],n?[]:t);return n||arguments.length==2?[r,i]:r}function M$(e,t,n){const r=He.fun(t)&&t,{reset:i,sort:o,trail:a=0,expires:s=!0,exitBeforeEnter:l=!1,onDestroyed:c,ref:d,config:f}=r?r():t,p=m.useMemo(()=>r||arguments.length==3?wie():void 0,[]),v=ha(e),_=[],y=m.useRef(null),b=i?null:y.current;jp(()=>{y.current=_}),m$(()=>(Ft(_,O=>{p==null||p.add(O.ctrl),O.ctrl.ref=p}),()=>{Ft(y.current,O=>{O.expired&&clearTimeout(O.expirationId),x$(O.ctrl,p),O.ctrl.stop(!0)})}));const w=RAe(v,r?r():t,b),x=i&&y.current||[];jp(()=>Ft(x,({ctrl:O,item:J,key:D})=>{x$(O,p),Ba(c,J,D)}));const S=[];if(b&&Ft(b,(O,J)=>{O.expired?(clearTimeout(O.expirationId),x.push(O)):(J=S[J]=w.indexOf(O.key),~J&&(_[J]=O))}),Ft(v,(O,J)=>{_[J]||(_[J]={key:w[J],item:O,phase:"mount",ctrl:new gie},_[J].ctrl.item=O)}),S.length){let O=-1;const{leave:J}=r?r():t;Ft(S,(D,Y)=>{const F=b[Y];~D?(O=_.indexOf(F),_[O]={...F,item:v[D]}):J&&_.splice(++O,0,F)})}He.fun(o)&&_.sort((O,J)=>o(O.item,J.item));let C=-a;const j=p$(),T=Bk(t),E=new Map,$=m.useRef(new Map),A=m.useRef(!1);Ft(_,(O,J)=>{const D=O.key,Y=O.phase,F=r?r():t;let H,ee;const ce=Ba(F.delay||0,D);if(Y=="mount")H=F.enter,ee="enter";else{const me=w.indexOf(D)<0;if(Y!="leave")if(me)H=F.leave,ee="leave";else if(H=F.update)ee="update";else return;else if(!me)H=F.enter,ee="enter";else return}if(H=Ba(H,O.item,J),H=He.obj(H)?b$(H):{to:H},!H.config){const me=f||T.config;H.config=Ba(me,O.item,J,ee)}C+=a;const U={...T,delay:ce+C,ref:d,immediate:F.immediate,reset:!1,...H};if(ee=="enter"&&He.und(U.from)){const me=r?r():t,ke=He.und(me.initial)||b?me.from:me.initial;U.from=Ba(ke,O.item,J)}const{onResolve:ae}=U;U.onResolve=me=>{Ba(ae,me);const ke=y.current,he=ke.find(ue=>ue.key===D);if(he&&!(me.cancelled&&he.phase!="update")&&he.ctrl.idle){const ue=ke.every(re=>re.ctrl.idle);if(he.phase=="leave"){const re=Ba(s,he.item);if(re!==!1){const ge=re===!0?0:re;if(he.expired=!0,!ue&&ge>0){ge<=2147483647&&(he.expirationId=setTimeout(j,ge));return}}}ue&&ke.some(re=>re.expired)&&($.current.delete(he),l&&(A.current=!0),j())}};const je=$$(O.ctrl,U);ee==="leave"&&l?$.current.set(O,{phase:ee,springs:je,payload:U}):E.set(O,{phase:ee,springs:je,payload:U})});const M=m.useContext(Qb),P=g$(M),te=M!==P&&tie(M);jp(()=>{te&&Ft(_,O=>{O.ctrl.start({default:M})})},[M]),Ft(E,(O,J)=>{if($.current.size){const D=_.findIndex(Y=>Y.key===J.key);_.splice(D,1)}}),jp(()=>{Ft($.current.size?$.current:E,({phase:O,payload:J},D)=>{const{ctrl:Y}=D;D.phase=O,p==null||p.add(Y),te&&O=="enter"&&Y.start({default:M}),J&&(nie(Y,J.ref),(Y.ref||p)&&!A.current?Y.update(J):(Y.start(J),A.current&&(A.current=!1)))})},i?void 0:n);const Z=O=>m.createElement(m.Fragment,null,_.map((J,D)=>{const{springs:Y}=E.get(J)||J.ctrl,F=O({...Y},J.item,J,D);return F&&F.type?m.createElement(F.type,{...F.props,key:He.str(J.key)||He.num(J.key)?J.key:J.ctrl.id,ref:F.ref}):F}));return p?[Z,p]:Z}var LAe=1;function RAe(e,{key:t,keys:n=t},r){if(n===null){const i=new Set;return e.map(o=>{const a=r&&r.find(s=>s.item===o&&s.phase!=="leave"&&!i.has(s));return a?(i.add(a),a.key):LAe++})}return He.und(n)?e:He.fun(n)?e.map(n):ha(n)}var kie=class extends j${constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=Ab(...t);const n=this._get(),r=y$(n);v$(this,r.create(n))}advance(e){const t=this._get(),n=this.get();vd(t,n)||(Ju(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Sie(this._active)&&L$(this)}_get(){const e=He.arr(this.source)?this.source.map(Fa):ha(Fa(this.source));return this.calc(...e)}_start(){this.idle&&!Sie(this._active)&&(this.idle=!1,Ft(Dk(this),e=>{e.done=!1}),tu.skipAnimation?(qt.batchedUpdates(()=>this.advance()),L$(this)):$k.start(this))}_attach(){let e=1;Ft(ha(this.source),t=>{cl(t)&&Lg(t,this),C$(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))}),this.priority=e,this._start()}_detach(){Ft(ha(this.source),e=>{cl(e)&&Ub(e,this)}),this._active.clear(),L$(this)}eventObserved(e){e.type=="change"?e.idle?this.advance():(this._active.add(e.parent),this._start()):e.type=="idle"?this._active.delete(e.parent):e.type=="priority"&&(this.priority=ha(this.source).reduce((t,n)=>Math.max(t,(C$(n)?n.priority:0)+1),0))}};function OAe(e){return e.idle!==!1}function Sie(e){return!e.size||Array.from(e).every(OAe)}function L$(e){e.idle||(e.idle=!0,Ft(Dk(e),t=>{t.done=!0}),Bb(e,{type:"idle",parent:e}))}var t_=(e,...t)=>new kie(e,t);tu.assign({createStringInterpolator:Zre,to:(e,t)=>new kie(e,t)});var Cie=/^--/;function PAe(e,t){return t==null||typeof t=="boolean"||t===""?"":typeof t=="number"&&t!==0&&!Cie.test(e)&&!(n_.hasOwnProperty(e)&&n_[e])?t+"px":(""+t).trim()}var jie={};function zAe(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n=e.nodeName==="filter"||e.parentNode&&e.parentNode.nodeName==="filter",{className:r,style:i,children:o,scrollTop:a,scrollLeft:s,viewBox:l,...c}=t,d=Object.values(c),f=Object.keys(c).map(p=>n||e.hasAttribute(p)?p:jie[p]||(jie[p]=p.replace(/([A-Z])/g,v=>"-"+v.toLowerCase())));o!==void 0&&(e.textContent=o);for(const p in i)if(i.hasOwnProperty(p)){const v=PAe(p,i[p]);Cie.test(p)?e.style.setProperty(p,v):e.style[p]=v}f.forEach((p,v)=>{e.setAttribute(p,d[v])}),r!==void 0&&(e.className=r),a!==void 0&&(e.scrollTop=a),s!==void 0&&(e.scrollLeft=s),l!==void 0&&e.setAttribute("viewBox",l)}var n_={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},DAe=(e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1),AAe=["Webkit","Ms","Moz","O"];n_=Object.keys(n_).reduce((e,t)=>(AAe.forEach(n=>e[DAe(n,t)]=e[t]),e),n_);var FAe=/^(matrix|translate|scale|rotate|skew)/,BAe=/^(translate)/,UAe=/^(rotate|skew)/,R$=(e,t)=>He.num(e)&&e!==0?e+t:e,Wk=(e,t)=>He.arr(e)?e.every(n=>Wk(n,t)):He.num(e)?e===t:parseFloat(e)===t,WAe=class extends Fk{constructor({x:e,y:t,z:n,...r}){const i=[],o=[];(e||t||n)&&(i.push([e||0,t||0,n||0]),o.push(a=>[`translate3d(${a.map(s=>R$(s,"px")).join(",")})`,Wk(a,0)])),Xu(r,(a,s)=>{if(s==="transform")i.push([a||""]),o.push(l=>[l,l===""]);else if(FAe.test(s)){if(delete r[s],He.und(a))return;const l=BAe.test(s)?"px":UAe.test(s)?"deg":"";i.push(ha(a)),o.push(s==="rotate3d"?([c,d,f,p])=>[`rotate3d(${c},${d},${f},${R$(p,l)})`,Wk(p,0)]:c=>[`${s}(${c.map(d=>R$(d,l)).join(",")})`,Wk(c,s.startsWith("scale")?1:0)])}}),i.length&&(r.transform=new VAe(i,o)),super(r)}},VAe=class extends Ure{constructor(e,t){super(),this.inputs=e,this.transforms=t,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let e="",t=!0;return Ft(this.inputs,(n,r)=>{const i=Fa(n[0]),[o,a]=this.transforms[r](He.arr(i)?i:n.map(Fa));e+=" "+o,t=t&&a}),t?"none":e}observerAdded(e){e==1&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Lg(n,this)))}observerRemoved(e){e==0&&Ft(this.inputs,t=>Ft(t,n=>cl(n)&&Ub(n,this)))}eventObserved(e){e.type=="change"&&(this._value=null),Bb(this,e)}},HAe=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"];tu.assign({batchedUpdates:Kc.unstable_batchedUpdates,createStringInterpolator:Zre,colors:ADe});var ZAe=vAe(HAe,{applyAnimatedValues:zAe,createAnimatedStyle:e=>new WAe(e),getComponentProps:({scrollTop:e,scrollLeft:t,...n})=>n}),iu=ZAe.animated;function qAe(){const e=X(Zu);if(!e)return;const t=e.downloading_full_snapshot_throughput?`${Cp(e.downloading_full_snapshot_throughput).toString()}/s`:"-";return u.jsxs(V,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_full_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_full_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}function GAe(){const e=X(Zu);return e?u.jsx(ud,{label:"Slot",value:e.waiting_for_supermajority_slot}):null}function YAe(){const e=X(Zu);return e?u.jsx(N4,{value:e.waiting_for_supermajority_stake_percent||0,className:H3.progress}):null}function KAe(){const e=X(Zu);if(!e)return;const t=e.downloading_incremental_snapshot_throughput?`${Cp(e.downloading_incremental_snapshot_throughput).toString()}/s`:"-";return u.jsxs(V,{children:[u.jsx(ud,{label:"Peer",value:e.downloading_incremental_snapshot_peer}),u.jsx(ud,{label:"Slot",value:e.downloading_incremental_snapshot_slot}),u.jsx(ud,{label:"Throughput",value:t})]})}const Tie=[{step:"initializing"},{step:"searching_for_full_snapshot"},{step:"downloading_full_snapshot",rightChildren:u.jsx(Aze,{}),bottomChildren:u.jsx(qAe,{})},{step:"searching_for_incremental_snapshot"},{step:"downloading_incremental_snapshot",rightChildren:u.jsx($De,{}),bottomChildren:u.jsx(KAe,{})},{step:"cleaning_blockstore"},{step:"cleaning_accounts"},{step:"loading_ledger"},{step:"processing_ledger",bottomChildren:u.jsx(EMe,{})},{step:"starting_services"},{step:"waiting_for_supermajority",rightChildren:u.jsx(YAe,{}),bottomChildren:u.jsx(GAe,{}),optional:!0},{step:"running"}];function XAe(){const e=X(Zu),[t,n]=Vl(ol),r=X(Ku),i=!!Object.values(r).length,[o,a]=m.useState();m.useEffect(()=>{(e==null?void 0:e.phase)!=="running"&&n(!0),a(f=>e?e.phase==="running":f)},[n,e]);const s=o===!0||o===void 0;m.useEffect(()=>{i&&(e==null?void 0:e.phase)==="running"&&n(!1)},[i,n,t,e==null?void 0:e.phase]);const l=Math.max(0,Tie.findIndex(({step:f})=>f===(e==null?void 0:e.phase))),[c,d]=e_(()=>({from:{opacity:t?1:0,zIndex:t?1:-1}}));return m.useEffect(()=>{d.stop(),t?d.start({from:{opacity:1,zIndex:1}}):d.start({from:{opacity:1,zIndex:1},to:{opacity:0,zIndex:-1}})},[d,t]),u.jsx(iu.div,{className:PG.outerContainer,style:c,children:u.jsxs(V,{direction:"column",gap:"4",className:PG.innerContainer,children:[u.jsx(Mt,{flexGrow:"1"}),u.jsx("img",{src:Vi?ree:gMe,alt:"fd",height:"50px",style:{marginBottom:"28px"}}),Tie.map(({step:f,rightChildren:p,bottomChildren:v,optional:_},y)=>{if(_&&f!==(e==null?void 0:e.phase))return null;const b=JAe(f);return y===l?u.jsx(wMe,{label:b,hide:s,rightChildren:p,bottomChildren:v},f):yt!==void 0).map((t,n)=>t==="for"?t:t==="rpc"?"RPC":(n===0?t[0].toUpperCase():t[0])+t.slice(1)).join(" ")}const QAe="_container_e8h4h_1",eFe="_blur_e8h4h_4",Iie={container:QAe,blur:eFe};function Eie(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;tvFe(e||null),{maxSize:1e3}),yFe="_hide_1etvv_1",Mie={hide:yFe};function ks({url:e,size:t,hideFallback:n,hideTooltip:r=!1,isYou:i}){const[o,a]=Vl($ie(e)),[s,l]=m.useState(o),[c,d]=m.useState(!1),f=`${t}px`,p={width:f,height:f,minWidth:f,minHeight:f};if(!e||s){if(n)return u.jsx("div",{style:p});if(i){const _=u.jsx("img",{src:gFe,style:p});return r?_:u.jsx(ui,{content:"Your current validator",children:_})}return u.jsx("img",{src:Nie,alt:"private",style:p})}const v=()=>{a(),l(!0)};return u.jsxs(u.Fragment,{children:[u.jsx("img",{className:Te({[Mie.hide]:!c}),style:p,onError:v,onLoad:()=>d(!0),src:e}),u.jsx("img",{className:Te({[Mie.hide]:c}),style:p,src:Nie,alt:"private"})]})}const O$=Yf((e,t,n)=>new Intl.NumberFormat(void 0,{minimumFractionDigits:n?e:0,maximumFractionDigits:e,minimumSignificantDigits:!n&&t?1:t,maximumSignificantDigits:t}),{maxSize:100});function P$(e,t){const{trailingZeroes:n=!0,decimalsOnZero:r=!1}=t;if(e===0&&!r)return"0";let i;if("decimals"in t){const s=typeof t.decimals=="function"?t.decimals(e):t.decimals;i=O$(s,void 0,n)}else{const{significantDigits:s,exactIntegers:l}=t;l&&Math.abs(e)>Math.pow(10,s)?i=O$(0,void 0,n):i=O$(void 0,s||1,n)}let o="";t.useSuffix&&([e,o]=bFe(e));const a=i.format(e);return a==="-0"?"0":a+o}function bFe(e){if(isFinite(e)){const t=Math.abs(e);if(t>=1e12)return[e/1e12,"T"];if(t>=1e9)return[e/1e9,"B"];if(t>=1e6)return[e/1e6,"M"];if(t>=1e3)return[e/1e3,"K"]}return[e,""]}const Lie=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",maximumFractionDigits:0}),z$=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumFractionDigits:1,maximumFractionDigits:1});function _Fe(e){switch(e){case 1:return"Once";case 2:return"Twice";default:return`${e} times`}}function xFe(){var e=m.useRef(!0);return e.current?(e.current=!1,!0):e.current}var Rie=function(){};function wFe(e){for(var t=[],n=1;ns.preventDefault(),children:t})})]})}function Bie(e){const t=X(dG),n=Oie();if(Qu(n,e),!!t)return Kf.diff(jt.fromMillis(Math.trunc(Number(t.startupTimeNanos)/1e6))).rescale()}function Ip(e,t,n,r){var i=this,o=m.useRef(null),a=m.useRef(0),s=m.useRef(0),l=m.useRef(null),c=m.useRef([]),d=m.useRef(),f=m.useRef(),p=m.useRef(e),v=m.useRef(!0);p.current=e;var _=typeof window<"u",y=!t&&t!==0&&_;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var b=!!(n=n||{}).leading,w=!("trailing"in n)||!!n.trailing,x="maxWait"in n,S="debounceOnServer"in n&&!!n.debounceOnServer,C=x?Math.max(+n.maxWait||0,t):null;m.useEffect(function(){return v.current=!0,function(){v.current=!1}},[]);var j=m.useMemo(function(){var T=function(Z){var O=c.current,J=d.current;return c.current=d.current=null,a.current=Z,s.current=s.current||Z,f.current=p.current.apply(J,O)},E=function(Z,O){y&&cancelAnimationFrame(l.current),l.current=y?requestAnimationFrame(Z):setTimeout(Z,O)},$=function(Z){if(!v.current)return!1;var O=Z-o.current;return!o.current||O>=t||O<0||x&&Z-a.current>=C},A=function(Z){return l.current=null,w&&c.current?T(Z):(c.current=d.current=null,f.current)},M=function Z(){var O=Date.now();if(b&&s.current===a.current&&P(),$(O))return A(O);if(v.current){var J=t-(O-o.current),D=x?Math.min(J,C-(O-a.current)):J;E(Z,D)}},P=function(){r&&r({})},te=function(){if(_||S){var Z=Date.now(),O=$(Z);if(c.current=[].slice.call(arguments),d.current=i,o.current=Z,O){if(!l.current&&v.current)return a.current=o.current,E(M,t),b?T(o.current):f.current;if(x)return E(M,t),T(o.current)}return l.current||E(M,t),f.current}};return te.cancel=function(){var Z=l.current;Z&&(y?cancelAnimationFrame(l.current):clearTimeout(l.current)),a.current=0,c.current=o.current=d.current=l.current=null,Z&&r&&r({})},te.isPending=function(){return!!l.current},te.flush=function(){return l.current?A(Date.now()):f.current},te},[b,x,t,C,w,y,_,S,r]);return j}function DFe(e,t){return e===t}function Uie(e,t,n){var r=n&&n.equalityFn||DFe,i=m.useRef(e),o=m.useState({})[1],a=Ip(m.useCallback(function(l){i.current=l,o({})},[o]),t,n,o),s=m.useRef(e);return r(s.current,e)||(a(e),s.current=e),[i.current,a]}function Ua(e,t,n){var r=n===void 0?{}:n,i=r.leading,o=r.trailing;return Ip(e,t,{maxWait:t,leading:i===void 0||i,trailing:o===void 0||o})}function Gr(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o=0)&&(n[i]=e[i]);return n}var AFe=["color"],Wie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,AFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.5 2C7.77614 2 8 2.22386 8 2.5L8 11.2929L11.1464 8.14645C11.3417 7.95118 11.6583 7.95118 11.8536 8.14645C12.0488 8.34171 12.0488 8.65829 11.8536 8.85355L7.85355 12.8536C7.75979 12.9473 7.63261 13 7.5 13C7.36739 13 7.24021 12.9473 7.14645 12.8536L3.14645 8.85355C2.95118 8.65829 2.95118 8.34171 3.14645 8.14645C3.34171 7.95118 3.65829 7.95118 3.85355 8.14645L7 11.2929L7 2.5C7 2.22386 7.22386 2 7.5 2Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),FFe=["color"],Vie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,FFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.14645 2.14645C7.34171 1.95118 7.65829 1.95118 7.85355 2.14645L11.8536 6.14645C12.0488 6.34171 12.0488 6.65829 11.8536 6.85355C11.6583 7.04882 11.3417 7.04882 11.1464 6.85355L8 3.70711L8 12.5C8 12.7761 7.77614 13 7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.70711L3.85355 6.85355C3.65829 7.04882 3.34171 7.04882 3.14645 6.85355C2.95118 6.65829 2.95118 6.34171 3.14645 6.14645L7.14645 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),BFe=["color"],A$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,BFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 6.18181C4.35753 6.00608 4.64245 6.00608 4.81819 6.18181L7.49999 8.86362L10.1818 6.18181C10.3575 6.00608 10.6424 6.00608 10.8182 6.18181C10.9939 6.35755 10.9939 6.64247 10.8182 6.81821L7.81819 9.81821C7.73379 9.9026 7.61934 9.95001 7.49999 9.95001C7.38064 9.95001 7.26618 9.9026 7.18179 9.81821L4.18179 6.81821C4.00605 6.64247 4.00605 6.35755 4.18179 6.18181Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),UFe=["color"],F$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,UFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.18179 8.81819C4.00605 8.64245 4.00605 8.35753 4.18179 8.18179L7.18179 5.18179C7.26618 5.0974 7.38064 5.04999 7.49999 5.04999C7.61933 5.04999 7.73379 5.0974 7.81819 5.18179L10.8182 8.18179C10.9939 8.35753 10.9939 8.64245 10.8182 8.81819C10.6424 8.99392 10.3575 8.99392 10.1818 8.81819L7.49999 6.13638L4.81819 8.81819C4.64245 8.99392 4.35753 8.99392 4.18179 8.81819Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),WFe=["color"],VFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,WFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),HFe=["color"],Hie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,HFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),ZFe=["color"],qFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,ZFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),GFe=["color"],YFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,GFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.13523 8.84197C3.3241 9.04343 3.64052 9.05363 3.84197 8.86477L7.5 5.43536L11.158 8.86477C11.3595 9.05363 11.6759 9.04343 11.8648 8.84197C12.0536 8.64051 12.0434 8.32409 11.842 8.13523L7.84197 4.38523C7.64964 4.20492 7.35036 4.20492 7.15803 4.38523L3.15803 8.13523C2.95657 8.32409 2.94637 8.64051 3.13523 8.84197Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),KFe=["color"],XFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,KFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1 9.50006C1 10.3285 1.67157 11.0001 2.5 11.0001H4L4 10.0001H2.5C2.22386 10.0001 2 9.7762 2 9.50006L2 2.50006C2 2.22392 2.22386 2.00006 2.5 2.00006L9.5 2.00006C9.77614 2.00006 10 2.22392 10 2.50006V4.00002H5.5C4.67158 4.00002 4 4.67159 4 5.50002V12.5C4 13.3284 4.67158 14 5.5 14H12.5C13.3284 14 14 13.3284 14 12.5V5.50002C14 4.67159 13.3284 4.00002 12.5 4.00002H11V2.50006C11 1.67163 10.3284 1.00006 9.5 1.00006H2.5C1.67157 1.00006 1 1.67163 1 2.50006V9.50006ZM5 5.50002C5 5.22388 5.22386 5.00002 5.5 5.00002H12.5C12.7761 5.00002 13 5.22388 13 5.50002V12.5C13 12.7762 12.7761 13 12.5 13H5.5C5.22386 13 5 12.7762 5 12.5V5.50002Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),JFe=["color"],QFe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,JFe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M13.15 7.49998C13.15 4.66458 10.9402 1.84998 7.50002 1.84998C4.72167 1.84998 3.34849 3.9064 2.76335 5H4.5C4.77614 5 5 5.22386 5 5.5C5 5.77614 4.77614 6 4.5 6H1.5C1.22386 6 1 5.77614 1 5.5V2.5C1 2.22386 1.22386 2 1.5 2C1.77614 2 2 2.22386 2 2.5V4.31318C2.70453 3.07126 4.33406 0.849976 7.50002 0.849976C11.5628 0.849976 14.15 4.18537 14.15 7.49998C14.15 10.8146 11.5628 14.15 7.50002 14.15C5.55618 14.15 3.93778 13.3808 2.78548 12.2084C2.16852 11.5806 1.68668 10.839 1.35816 10.0407C1.25306 9.78536 1.37488 9.49315 1.63024 9.38806C1.8856 9.28296 2.17781 9.40478 2.2829 9.66014C2.56374 10.3425 2.97495 10.9745 3.4987 11.5074C4.47052 12.4963 5.83496 13.15 7.50002 13.15C10.9402 13.15 13.15 10.3354 13.15 7.49998ZM7.5 4.00001C7.77614 4.00001 8 4.22387 8 4.50001V7.29291L9.85355 9.14646C10.0488 9.34172 10.0488 9.65831 9.85355 9.85357C9.65829 10.0488 9.34171 10.0488 9.14645 9.85357L7.14645 7.85357C7.05268 7.7598 7 7.63262 7 7.50001V4.50001C7 4.22387 7.22386 4.00001 7.5 4.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),eBe=["color"],B$=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,eBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),tBe=["color"],nBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,tBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),rBe=["color"],iBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,rBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M11.1464 6.85355C11.3417 7.04882 11.6583 7.04882 11.8536 6.85355C12.0488 6.65829 12.0488 6.34171 11.8536 6.14645L7.85355 2.14645C7.65829 1.95118 7.34171 1.95118 7.14645 2.14645L3.14645 6.14645C2.95118 6.34171 2.95118 6.65829 3.14645 6.85355C3.34171 7.04882 3.65829 7.04882 3.85355 6.85355L7.5 3.20711L11.1464 6.85355ZM11.1464 12.8536C11.3417 13.0488 11.6583 13.0488 11.8536 12.8536C12.0488 12.6583 12.0488 12.3417 11.8536 12.1464L7.85355 8.14645C7.65829 7.95118 7.34171 7.95118 7.14645 8.14645L3.14645 12.1464C2.95118 12.3417 2.95118 12.6583 3.14645 12.8536C3.34171 13.0488 3.65829 13.0488 3.85355 12.8536L7.5 9.20711L11.1464 12.8536Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),oBe=["color"],aBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,oBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M2 2.5C2 2.22386 2.22386 2 2.5 2H5.5C5.77614 2 6 2.22386 6 2.5C6 2.77614 5.77614 3 5.5 3H3V5.5C3 5.77614 2.77614 6 2.5 6C2.22386 6 2 5.77614 2 5.5V2.5ZM9 2.5C9 2.22386 9.22386 2 9.5 2H12.5C12.7761 2 13 2.22386 13 2.5V5.5C13 5.77614 12.7761 6 12.5 6C12.2239 6 12 5.77614 12 5.5V3H9.5C9.22386 3 9 2.77614 9 2.5ZM2.5 9C2.77614 9 3 9.22386 3 9.5V12H5.5C5.77614 12 6 12.2239 6 12.5C6 12.7761 5.77614 13 5.5 13H2.5C2.22386 13 2 12.7761 2 12.5V9.5C2 9.22386 2.22386 9 2.5 9ZM12.5 9C12.7761 9 13 9.22386 13 9.5V12.5C13 12.7761 12.7761 13 12.5 13H9.5C9.22386 13 9 12.7761 9 12.5C9 12.2239 9.22386 12 9.5 12H12V9.5C12 9.22386 12.2239 9 12.5 9Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),sBe=["color"],lBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,sBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M5.5 2C5.77614 2 6 2.22386 6 2.5V5.5C6 5.77614 5.77614 6 5.5 6H2.5C2.22386 6 2 5.77614 2 5.5C2 5.22386 2.22386 5 2.5 5H5V2.5C5 2.22386 5.22386 2 5.5 2ZM9.5 2C9.77614 2 10 2.22386 10 2.5V5H12.5C12.7761 5 13 5.22386 13 5.5C13 5.77614 12.7761 6 12.5 6H9.5C9.22386 6 9 5.77614 9 5.5V2.5C9 2.22386 9.22386 2 9.5 2ZM2 9.5C2 9.22386 2.22386 9 2.5 9H5.5C5.77614 9 6 9.22386 6 9.5V12.5C6 12.7761 5.77614 13 5.5 13C5.22386 13 5 12.7761 5 12.5V10H2.5C2.22386 10 2 9.77614 2 9.5ZM9 9.5C9 9.22386 9.22386 9 9.5 9H12.5C12.7761 9 13 9.22386 13 9.5C13 9.77614 12.7761 10 12.5 10H10V12.5C10 12.7761 9.77614 13 9.5 13C9.22386 13 9 12.7761 9 12.5V9.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),uBe=["color"],Zie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,uBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999ZM6.00003 5.99999H6.50003H7.50003C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H8.50003H9.00003V11H8.50003H7.50003H6.50003H6.00003V9.99999H6.50003H7.00003V6.99999H6.50003H6.00003V5.99999Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),cBe=["color"],qie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,cBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),dBe=["color"],fBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,dBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M1.85001 7.50043C1.85001 4.37975 4.37963 1.85001 7.50001 1.85001C10.6204 1.85001 13.15 4.37975 13.15 7.50043C13.15 10.6211 10.6204 13.1509 7.50001 13.1509C4.37963 13.1509 1.85001 10.6211 1.85001 7.50043ZM7.50001 0.850006C3.82728 0.850006 0.850006 3.82753 0.850006 7.50043C0.850006 11.1733 3.82728 14.1509 7.50001 14.1509C11.1727 14.1509 14.15 11.1733 14.15 7.50043C14.15 3.82753 11.1727 0.850006 7.50001 0.850006ZM7.00001 8.00001V3.12811C7.16411 3.10954 7.33094 3.10001 7.50001 3.10001C9.93006 3.10001 11.9 5.07014 11.9 7.50043C11.9 7.66935 11.8905 7.83604 11.872 8.00001H7.00001Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),hBe=["color"],pBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,hBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM7.50003 4C7.77617 4 8.00003 4.22386 8.00003 4.5V7H10.5C10.7762 7 11 7.22386 11 7.5C11 7.77614 10.7762 8 10.5 8H8.00003V10.5C8.00003 10.7761 7.77617 11 7.50003 11C7.22389 11 7.00003 10.7761 7.00003 10.5V8H4.50003C4.22389 8 4.00003 7.77614 4.00003 7.5C4.00003 7.22386 4.22389 7 4.50003 7H7.00003V4.5C7.00003 4.22386 7.22389 4 7.50003 4Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),mBe=["color"],gBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,mBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M4.85355 2.14645C5.04882 2.34171 5.04882 2.65829 4.85355 2.85355L3.70711 4H9C11.4853 4 13.5 6.01472 13.5 8.5C13.5 10.9853 11.4853 13 9 13H5C4.72386 13 4.5 12.7761 4.5 12.5C4.5 12.2239 4.72386 12 5 12H9C10.933 12 12.5 10.433 12.5 8.5C12.5 6.567 10.933 5 9 5H3.70711L4.85355 6.14645C5.04882 6.34171 5.04882 6.65829 4.85355 6.85355C4.65829 7.04882 4.34171 7.04882 4.14645 6.85355L2.14645 4.85355C1.95118 4.65829 1.95118 4.34171 2.14645 4.14645L4.14645 2.14645C4.34171 1.95118 4.65829 1.95118 4.85355 2.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),vBe=["color"],yBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,vBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M3.89949 9.49998C3.89949 9.72089 3.7204 9.89997 3.49949 9.89997C3.27857 9.89997 3.09949 9.72089 3.09949 9.49998L3.09949 2.46566L1.78233 3.78282C1.62612 3.93903 1.37285 3.93903 1.21664 3.78282C1.06043 3.62661 1.06043 3.37334 1.21664 3.21713L3.21664 1.21713C3.29166 1.14212 3.3934 1.09998 3.49949 1.09998C3.60557 1.09998 3.70732 1.14212 3.78233 1.21713L5.78233 3.21713C5.93854 3.37334 5.93854 3.62661 5.78233 3.78282C5.62612 3.93903 5.37285 3.93903 5.21664 3.78282L3.89949 2.46566L3.89949 9.49998ZM8.49998 1.99998C8.22383 1.99998 7.99998 2.22383 7.99998 2.49998C7.99998 2.77612 8.22383 2.99998 8.49998 2.99998H14.5C14.7761 2.99998 15 2.77612 15 2.49998C15 2.22383 14.7761 1.99998 14.5 1.99998H8.49998ZM8.49998 4.99998C8.22383 4.99998 7.99998 5.22383 7.99998 5.49998C7.99998 5.77612 8.22383 5.99998 8.49998 5.99998H14.5C14.7761 5.99998 15 5.77612 15 5.49998C15 5.22383 14.7761 4.99998 14.5 4.99998H8.49998ZM7.99998 8.49998C7.99998 8.22383 8.22383 7.99998 8.49998 7.99998H14.5C14.7761 7.99998 15 8.22383 15 8.49998C15 8.77612 14.7761 8.99998 14.5 8.99998H8.49998C8.22383 8.99998 7.99998 8.77612 7.99998 8.49998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),bBe=["color"],Gie=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,bBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M7.49998 0.849976C7.22383 0.849976 6.99998 1.07383 6.99998 1.34998V3.52234C6.99998 3.79848 7.22383 4.02234 7.49998 4.02234C7.77612 4.02234 7.99998 3.79848 7.99998 3.52234V1.8718C10.8862 2.12488 13.15 4.54806 13.15 7.49998C13.15 10.6204 10.6204 13.15 7.49998 13.15C4.37957 13.15 1.84998 10.6204 1.84998 7.49998C1.84998 6.10612 2.35407 4.83128 3.19049 3.8459C3.36919 3.63538 3.34339 3.31985 3.13286 3.14115C2.92234 2.96245 2.60681 2.98825 2.42811 3.19877C1.44405 4.35808 0.849976 5.86029 0.849976 7.49998C0.849976 11.1727 3.82728 14.15 7.49998 14.15C11.1727 14.15 14.15 11.1727 14.15 7.49998C14.15 3.82728 11.1727 0.849976 7.49998 0.849976ZM6.74049 8.08072L4.22363 4.57237C4.15231 4.47295 4.16346 4.33652 4.24998 4.25C4.33649 4.16348 4.47293 4.15233 4.57234 4.22365L8.08069 6.74051C8.56227 7.08599 8.61906 7.78091 8.19998 8.2C7.78089 8.61909 7.08597 8.56229 6.74049 8.08072Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),_Be=["color"],xBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,_Be);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159ZM4.25 6.5C4.25 6.22386 4.47386 6 4.75 6H6V4.75C6 4.47386 6.22386 4.25 6.5 4.25C6.77614 4.25 7 4.47386 7 4.75V6H8.25C8.52614 6 8.75 6.22386 8.75 6.5C8.75 6.77614 8.52614 7 8.25 7H7V8.25C7 8.52614 6.77614 8.75 6.5 8.75C6.22386 8.75 6 8.52614 6 8.25V7H4.75C4.47386 7 4.25 6.77614 4.25 6.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),wBe=["color"],kBe=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,i=Gr(e,wBe);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i,{ref:t}),m.createElement("path",{d:"M6.5 10C8.433 10 10 8.433 10 6.5C10 4.567 8.433 3 6.5 3C4.567 3 3 4.567 3 6.5C3 8.433 4.567 10 6.5 10ZM6.5 11C7.56251 11 8.53901 10.6318 9.30884 10.0159L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L10.0159 9.30884C10.6318 8.53901 11 7.56251 11 6.5C11 4.01472 8.98528 2 6.5 2C4.01472 2 2 4.01472 2 6.5C2 8.98528 4.01472 11 6.5 11ZM4.75 6C4.47386 6 4.25 6.22386 4.25 6.5C4.25 6.77614 4.47386 7 4.75 7H8.25C8.52614 7 8.75 6.77614 8.75 6.5C8.75 6.22386 8.52614 6 8.25 6H4.75Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const SBe="_copy-button_1km2g_1",CBe="_icon_1km2g_8",jBe="_hide-icon-until-hover_1km2g_12",Zk={copyButton:SBe,icon:CBe,hideIconUntilHover:jBe};function Dg({value:e,color:t,size:n,hideIconUntilHover:r,className:i,children:o}){const[a,s]=m.useState(!1),l=Ip(()=>s(!1),1e3);return e===void 0?o:u.jsxs(hs,{className:Te(i,Zk.copyButton,r&&Zk.hideIconUntilHover),variant:"ghost",size:"1",onClick:c=>{UN(e),s(!0),l(),c.stopPropagation()},children:[o,a?u.jsx(VFe,{className:Zk.icon,color:"green",height:n}):u.jsx(XFe,{className:Zk.icon,color:t,height:n})]})}function qk({children:e,...t}){return t.content?u.jsx(ui,{...t,children:e}):u.jsx(u.Fragment,{children:e})}function TBe(){var o;const{peer:e,identityKey:t}=a_(),n=Hn(`(min-width: ${Hte})`),r=Hn("(min-width: 798px)"),i=Hn("(min-width: 914px)");return m.useEffect(()=>{var s;const a=((s=e==null?void 0:e.info)==null?void 0:s.name)??t;document.title=a?`${hb} | ${a}`:hb},[t,e]),u.jsx(IBe,{showDropdown:!0,children:u.jsxs("div",{className:Te(rh.container,rh.horizontal,rh.pointer),children:[u.jsx(ks,{url:(o=e==null?void 0:e.info)==null?void 0:o.icon_url,size:28,isYou:!0}),n&&u.jsx(Yie,{shouldShrink:!0}),r&&u.jsxs(u.Fragment,{children:[u.jsx(Jie,{showTooltip:!0}),u.jsx(Xie,{showTooltip:!0})]}),i&&u.jsxs(u.Fragment,{children:[u.jsx(Qie,{}),u.jsx(Kie,{showTooltip:!0}),u.jsx(eoe,{})]})]})})}function IBe({showDropdown:e,children:t}){return e?u.jsx(zg,{content:u.jsx(EBe,{}),align:"end",children:t}):t}function EBe(){var t;const{peer:e}=a_();return u.jsxs(V,{direction:"column",wrap:"wrap",gap:"2",className:Te(rh.container,rh.dropdownMenu),style:{zIndex:Hf},children:[u.jsxs(V,{gap:"2",children:[u.jsx(ks,{url:(t=e==null?void 0:e.info)==null?void 0:t.icon_url,size:24,isYou:!0}),u.jsx(Yie,{})]}),u.jsx(Jie,{}),u.jsx(Xie,{}),u.jsx(Qie,{}),u.jsx(Kie,{}),u.jsx(NBe,{}),u.jsx($Be,{}),u.jsx(eoe,{})]})}function Yie({shouldShrink:e}){const{identityKey:t}=a_();return u.jsx(ih,{label:"Validator Name",copyValue:t,shouldShrink:e,children:t})}function NBe(){var t;const{peer:e}=a_();return u.jsx(ih,{label:"Vote Pubkey",children:(t=e==null?void 0:e.vote[0])==null?void 0:t.vote_account})}function $Be(){const e=X(hG),t=Tb(e);return u.jsx(ih,{label:"Vote Balance",children:u.jsx(Ag,{value:t,suffix:"SOL"})})}function Kie({showTooltip:e}){const t=X(fG),n=Tb(t);return u.jsx(ih,{label:"Identity Balance",tooltip:e?"Account balance of this validators identity account. The balance is on the highest slot of the currently active fork of the validator.":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Xie({showTooltip:e}){const t=X(mDe),n=t===void 0?void 0:P$(t,{significantDigits:4,trailingZeroes:!1});return u.jsx(ih,{label:"Stake %",tooltip:e?"What percentage of total stake is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"%"})})}function Jie({showTooltip:e}){const t=X(bre),n=Tb(t);return u.jsx(ih,{label:"Stake Amount",tooltip:e?"Amount of total stake that is delegated to this validator":void 0,children:u.jsx(Ag,{value:n,suffix:"SOL"})})}function Qie(){var n;const{peer:e}=a_(),t=e==null?void 0:e.vote.reduce((r,i)=>i.activated_stake>r.maxStake?{maxStake:i.activated_stake,commission:i.commission}:r,{maxStake:0n,commission:void 0});return u.jsx(ih,{label:"Commission",children:u.jsx(Ag,{value:(n=t==null?void 0:t.commission)==null?void 0:n.toLocaleString(),suffix:"%"})})}function eoe(){const e=Bie(6e4),t=e?ere(e,{omitSeconds:!0}):void 0;return u.jsx(ih,{label:"Uptime",children:t==null?void 0:t.map(([n,r],i)=>u.jsxs(m.Fragment,{children:[i!==0&&"\xA0",u.jsx(Ag,{value:n,suffix:r,excludeSpace:!0})]},`${n}${r}`))})}function ih({label:e,tooltip:t,shouldShrink:n=!1,children:r,copyValue:i}){return r?u.jsx(qk,{content:t,children:u.jsxs(V,{direction:"column",minWidth:"0",flexShrink:n?"1":"0",children:[u.jsx(q,{truncate:!0,className:rh.label,children:e}),u.jsx(Dg,{value:i,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(q,{truncate:!0,className:rh.value,children:r})})]})}):null}function Ag({value:e,suffix:t,valueColor:n,excludeSpace:r}){return u.jsxs(u.Fragment,{children:[u.jsxs("span",{style:{color:n},children:[e,!r&&"\xA0"]}),u.jsx("span",{className:rh.valueSuffix,children:t})]})}const MBe="_nav-link_tb1ax_1",LBe="_icon_tb1ax_14",RBe="_dropdown-icon_tb1ax_19",OBe="_active_tb1ax_29",PBe="_nav-dropdown-content_tb1ax_41",s_={navLink:MBe,icon:LBe,dropdownIcon:RBe,active:OBe,navDropdownContent:PBe},zBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M21 5.47 12 12 7.62 7.62 3 11V8.52L7.83 5l4.38 4.38L21 3v2.47zM21 15h-4.7l-4.17 3.34L6 12.41l-3 2.13V17l2.8-2 6.2 6 5-4h4v-2z"})),DBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"})),ABe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z"})),FBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z"})),BBe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"})),Gk={Overview:"/","Slot Details":"/slotDetails",Schedule:"/leaderSchedule",Gossip:"/gossip"};function Yk(){const e=D9e();return m.useMemo(()=>{const t=Object.entries(Gk).find(([n,r])=>e.pathname===r);return t?t[0]:"Overview"},[e.pathname])}function UBe(){const e=X(ao),t=X(eu),n=X(An),r=Ee(An),[i,o]=m.useMemo(()=>{if(e===void 0)return[-1,-1];const a=e.findIndex(l=>l>(n??t??0));let s=a-1;return s===e.findIndex(l=>l===(n??t??0))&&s--,[s,a]},[t,e,n]);return m.useMemo(()=>({navPrevLeaderSlot:(a=1)=>{if(i>-1&&a>0){const s=e==null?void 0:e[i-a+1];s!==void 0&&r(s)}},navNextLeaderSlot:(a=1)=>{if(o>-1&&a>0){const s=e==null?void 0:e[o+a-1];s!==void 0&&r(s)}}}),[e,o,i,r])}const WBe={Overview:zBe,Schedule:ABe,Gossip:FBe,"Slot Details":DBe},Kk=m.forwardRef(({label:e,isActive:t,showDropdownIcon:n=!1,isLink:r,...i},o)=>{const a=X(qy),s=bk(a),l=WBe[e],c=Gk[e],d=m.useMemo(()=>{const f=t?s:Qte;return u.jsxs(u.Fragment,{children:[u.jsx(l,{className:s_.icon,fill:f}),u.jsx(q,{truncate:!0,children:e}),n&&u.jsx(BBe,{className:s_.dropdownIcon,fill:f})]})},[l,s,t,e,n]);return u.jsx(hs,{ref:o,...i,size:"2",variant:"soft",color:"gray",className:Te(s_.navLink,{[s_.active]:t}),style:{color:t?s:void 0},asChild:r,children:r?u.jsx(lp,{to:c,children:d}):d})});Kk.displayName="NavButton";function VBe(){const e=Yk();return u.jsx(V,{gap:`${Vf}px`,children:Object.keys(Gk).map(t=>{const n=t;if(!(n==="Gossip"&&_i))return u.jsx(Kk,{label:n,isActive:e===n,isLink:!0},n)})})}function HBe(){const e=X(jg),t=Yk();return u.jsxs(bV,{children:[u.jsx(_V,{asChild:!0,children:u.jsx(Kk,{label:t,isActive:!0,showDropdownIcon:!0,isLink:!1},t)}),u.jsx(a7,{container:e,children:u.jsx(xV,{side:"bottom",sideOffset:5,className:s_.navDropdownContent,style:{zIndex:Hf},children:Object.keys(Gk).map(n=>{const r=n;if(!(r==="Gossip"&&_i))return u.jsx(wV,{asChild:!0,children:u.jsx(Kk,{label:r,isActive:r===t,isLink:!0},r)},r)})})})]})}function ZBe(){const e=UBe();return m.useEffect(()=>{const t=n=>{n.code==="ArrowLeft"?e.navPrevLeaderSlot():n.code==="ArrowRight"&&e.navNextLeaderSlot()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e]),null}const toe="/assets/firedancer_logo-CrgwxzPk.svg",noe="/assets/frankendancer_logo-CHyfJ772.svg",qBe="_logo_1ml9x_1",GBe={logo:qBe};function YBe(){return u.jsx(Z0,{children:u.jsx(lp,{to:"/",children:u.jsx("img",{className:GBe.logo,width:cN,src:Vi?toe:noe,alt:hb})})})}const KBe="_cluster-container_7aa6c_1",XBe="_cluster_7aa6c_1",JBe="_cluster-name_7aa6c_19",U$={clusterContainer:KBe,cluster:XBe,clusterName:JBe},QBe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M6.39844 3.39062V9.89844H11.6484V11.0742H0V9.89844H5.25V3.39062C4.72135 3.20833 4.36589 2.85286 4.18359 2.32422H2.32422L4.07422 6.39844C4.07422 6.72656 3.98307 7.02734 3.80078 7.30078C3.61849 7.55599 3.3724 7.76562 3.0625 7.92969C2.7526 8.07552 2.40625 8.14844 2.02344 8.14844C1.65885 8.14844 1.32161 8.07552 1.01172 7.92969C0.701823 7.76562 0.455729 7.55599 0.273438 7.30078C0.0911458 7.02734 0 6.72656 0 6.39844L1.75 2.32422H0.574219V1.14844H4.18359C4.29297 0.820312 4.49349 0.546875 4.78516 0.328125C5.09505 0.109375 5.44141 0 5.82422 0C6.20703 0 6.54427 0.109375 6.83594 0.328125C7.14583 0.546875 7.35547 0.820312 7.46484 1.14844H11.0742V2.32422H9.89844L11.6484 6.39844C11.6484 6.72656 11.5573 7.02734 11.375 7.30078C11.1927 7.55599 10.9466 7.76562 10.6367 7.92969C10.3268 8.07552 9.98958 8.14844 9.625 8.14844C9.24219 8.14844 8.89583 8.07552 8.58594 7.92969C8.27604 7.76562 8.02995 7.55599 7.84766 7.30078C7.66536 7.02734 7.57422 6.72656 7.57422 6.39844L9.32422 2.32422H7.46484C7.28255 2.85286 6.92708 3.20833 6.39844 3.39062ZM10.7188 6.39844L9.625 3.85547L8.53125 6.39844H10.7188ZM3.11719 6.39844L2.02344 3.85547L0.929688 6.39844H3.11719ZM5.82422 2.32422C5.98828 2.32422 6.125 2.26953 6.23438 2.16016C6.34375 2.03255 6.39844 1.89583 6.39844 1.75C6.39844 1.58594 6.34375 1.44922 6.23438 1.33984C6.125 1.21224 5.98828 1.14844 5.82422 1.14844C5.66016 1.14844 5.52344 1.21224 5.41406 1.33984C5.30469 1.44922 5.25 1.58594 5.25 1.75C5.25 1.89583 5.30469 2.03255 5.41406 2.16016C5.52344 2.26953 5.66016 2.32422 5.82422 2.32422Z"})),eUe=e=>m.createElement("svg",{width:7,height:11,viewBox:"0 0 7 11",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M2.48828 10.5H1.88672L2.48828 6.42578H0.4375C0.145833 6.42578 0.0729167 6.29818 0.21875 6.04297C0.273438 5.95182 0.282552 5.92448 0.246094 5.96094C1.17578 4.33854 2.30599 2.35156 3.63672 0H4.23828L3.63672 4.07422H5.6875C5.94271 4.07422 6.02474 4.20182 5.93359 4.45703L2.48828 10.5Z"})),tUe=e=>m.createElement("svg",{width:12,height:12,viewBox:"0 0 12 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{d:"M4.18359 2.26953L3.41797 2.13281C2.9987 2.04167 2.64323 2.15104 2.35156 2.46094L0 4.8125L2.10547 5.71484C2.1237 5.67839 2.1875 5.54167 2.29688 5.30469C2.40625 5.06771 2.55208 4.77604 2.73438 4.42969C2.91667 4.08333 3.1263 3.72786 3.36328 3.36328C3.61849 2.98047 3.89193 2.61589 4.18359 2.26953ZM5.33203 8.50391L2.89844 6.07031C2.89844 6.07031 2.95312 5.95182 3.0625 5.71484C3.17188 5.47786 3.31771 5.17708 3.5 4.8125C3.70052 4.44792 3.92839 4.07422 4.18359 3.69141C4.45703 3.29036 4.7487 2.9349 5.05859 2.625C5.69661 1.98698 6.29818 1.49479 6.86328 1.14844C7.42839 0.783854 7.94792 0.519531 8.42188 0.355469C8.91406 0.191406 9.35156 0.0911458 9.73438 0.0546875C10.1172 0.0182292 10.4362 0.0182292 10.6914 0.0546875C10.9466 0.0911458 11.1289 0.127604 11.2383 0.164062C11.2747 0.273438 11.3112 0.455729 11.3477 0.710938C11.3841 0.966146 11.3841 1.28516 11.3477 1.66797C11.3112 2.05078 11.2109 2.48828 11.0469 2.98047C10.8828 3.45443 10.6185 3.97396 10.2539 4.53906C9.90755 5.10417 9.41536 5.70573 8.77734 6.34375C8.46745 6.65365 8.11198 6.94531 7.71094 7.21875C7.32812 7.47396 6.95443 7.70182 6.58984 7.90234C6.22526 8.08464 5.92448 8.23047 5.6875 8.33984C5.45052 8.44922 5.33203 8.50391 5.33203 8.50391ZM9.13281 7.21875L9.26953 7.98438C9.36068 8.40365 9.2513 8.75911 8.94141 9.05078L6.58984 11.4023L5.6875 9.29688C5.72396 9.27865 5.86068 9.21484 6.09766 9.10547C6.33464 8.99609 6.6263 8.85026 6.97266 8.66797C7.31901 8.48568 7.67448 8.27604 8.03906 8.03906C8.42188 7.78385 8.78646 7.51042 9.13281 7.21875ZM4.07422 9.07812C4.07422 8.75 3.99219 8.45833 3.82812 8.20312C3.68229 7.92969 3.47266 7.72005 3.19922 7.57422C2.94401 7.41016 2.65234 7.32812 2.32422 7.32812C2.08724 7.32812 1.85938 7.3737 1.64062 7.46484C1.42188 7.55599 1.23958 7.68359 1.09375 7.84766C0.947917 7.97526 0.820312 8.1849 0.710938 8.47656C0.601562 8.75 0.501302 9.0599 0.410156 9.40625C0.31901 9.73438 0.236979 10.0534 0.164062 10.3633C0.109375 10.6732 0.0638021 10.9284 0.0273438 11.1289C0.00911458 11.3112 0 11.4023 0 11.4023C0 11.4023 0.0911458 11.3932 0.273438 11.375C0.473958 11.3385 0.729167 11.293 1.03906 11.2383C1.34896 11.1654 1.66797 11.0833 1.99609 10.9922C2.34245 10.901 2.65234 10.8008 2.92578 10.6914C3.21745 10.582 3.42708 10.4544 3.55469 10.3086C3.71875 10.1628 3.84635 9.98047 3.9375 9.76172C4.02865 9.54297 4.07422 9.3151 4.07422 9.07812ZM6.39844 3.82812C6.39844 4.15625 6.50781 4.4388 6.72656 4.67578C6.96354 4.89453 7.24609 5.00391 7.57422 5.00391C7.90234 5.00391 8.17578 4.89453 8.39453 4.67578C8.63151 4.4388 8.75 4.15625 8.75 3.82812C8.75 3.5 8.63151 3.22656 8.39453 3.00781C8.17578 2.77083 7.90234 2.65234 7.57422 2.65234C7.24609 2.65234 6.96354 2.77083 6.72656 3.00781C6.50781 3.22656 6.39844 3.5 6.39844 3.82812Z"}));function roe({strategy:e,iconSize:t,tooltipContent:n}){const r=X(qy),i=m.useMemo(()=>({width:`${t}px`,height:`${t}px`,color:bk(r)}),[r,t]),o=m.useMemo(()=>{if(e===ld.balanced)return u.jsx(QBe,{...i});if(e===ld.perf)return u.jsx(eUe,{...i});if(e===ld.revenue)return u.jsx(tUe,{...i})},[e,i]);return n?u.jsx(ui,{content:n,children:u.jsx("div",{style:{lineHeight:0},children:o})}):o}const l_=2;function nUe(){const e=X(qy),t=X(uG),n=X(cG);if(!e&&!t)return null;let r=e;return e==="mainnet-beta"&&(r="mainnet"),u.jsxs(V,{width:`${fN+l_}px`,className:U$.clusterContainer,gap:"5px",ml:`-${l_}px`,p:`${l_}px 5px ${l_}px ${l_}px`,children:[u.jsxs(V,{className:U$.cluster,flexGrow:"1",direction:"column",align:"center",style:{background:bk(e)},children:[u.jsx(ui,{content:"Cluster the validator is joined to",children:u.jsx(q,{className:U$.clusterName,children:r})}),u.jsx(ui,{content:`Current validator software version. Commit Hash: ${n||"unknown"}`,children:u.jsxs(q,{children:["v",t]})})]}),u.jsx(iUe,{})]})}function rUe(){const e=X(qy),t=bk(e);return u.jsx("div",{style:{background:t,height:kb,width:"100%"}})}function iUe(){const e=X(s3),t=m.useMemo(()=>{if(e===ld.balanced)return"Transaction scheduler strategy: balanced";if(e===ld.perf)return"Transaction scheduler strategy: performance";if(e===ld.revenue)return"Transaction scheduler strategy: revenue"},[e]);if(e)return u.jsx(roe,{strategy:e,iconSize:12,tooltipContent:t})}const oUe="_nav-filter-toggle-group_148xa_1",aUe="_lg_148xa_47",sUe="_toggle-button_148xa_43",lUe="_floating_148xa_61",uUe="_mirror_148xa_75",cUe="_slot-nav-container_148xa_81",dUe="_nav-background_148xa_85",Ep={navFilterToggleGroup:oUe,lg:aUe,toggleButton:sUe,floating:lUe,mirror:uUe,slotNavContainer:cUe,navBackground:dUe},fUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M13 7h9v2h-9zm0 8h9v2h-9zm3-4h6v2h-6zm-3 1L8 7v4H2v2h6v4z"}));function Fg(){const e=Hn(Vte),[t,n]=Vl(Jze),r=Yk()==="Schedule",i=r||!t,o=r;return{isNarrowScreen:e,showNav:i,setIsNavCollapsed:n,showOnlyEpochBar:o,blurBackground:e&&!t&&!o,occupyRowWidth:o||!e&&!t}}function W$({isFloating:e,isLarge:t}){const{showNav:n,setIsNavCollapsed:r,showOnlyEpochBar:i}=Fg(),o=`${t?NRe:uN}px`;return i?u.jsx("div",{style:{height:o,width:o}}):u.jsx(nl,{size:"1",onClick:()=>r(a=>!a),className:Te(Ep.toggleButton,{[Ep.floating]:e}),style:{height:o,width:o},children:u.jsx(fUe,{className:Te({[Ep.lg]:t,[Ep.mirror]:n})})})}function ioe(){const{setIsNavCollapsed:e}=Fg();return u.jsx("div",{onClick:()=>e(!0),className:"blur",style:{zIndex:Hf-2}})}const hUe="_nav-background_1sjct_1",pUe={navBackground:hUe},mUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 0 0 2-2v-4l-3-3zm-1-5.05-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 0 0 0 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 0 0 0-1.41L14.16 2.3a.975.975 0 0 0-1.4-.01z"})),gUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"m11.99 18.54-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z"})),vUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),m.createElement("path",{d:"M22 7.47V5.35C20.05 4.77 16.56 4 12 4c-2.15 0-4.11.86-5.54 2.24.13-.85.4-2.4 1.01-4.24H5.35C4.77 3.95 4 7.44 4 12c0 2.15.86 4.11 2.24 5.54-.85-.14-2.4-.4-4.24-1.01v2.12C3.95 19.23 7.44 20 12 20c2.15 0 4.11-.86 5.54-2.24-.14.85-.4 2.4-1.01 4.24h2.12c.58-1.95 1.35-5.44 1.35-10 0-2.15-.86-4.11-2.24-5.54.85.13 2.4.4 4.24 1.01zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"})),yUe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{fillRule:"evenodd",d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 10c0 3.31-2.69 6-6 6s-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4v3L8 7l4-4v3c3.31 0 6 2.69 6 6z"})),bUe="_health-pane_hbx15_1",_Ue="_vertical_hbx15_14",xUe="_narrow_hbx15_18",wUe="_health-box_hbx15_22",kUe="_stacked_hbx15_36",SUe="_alerting_hbx15_44",CUe="_popover_hbx15_58",jUe="_title_hbx15_62",TUe="_status_hbx15_67",IUe="_content_hbx15_77",dl={healthPane:bUe,vertical:_Ue,narrow:xUe,healthBox:wUe,stacked:kUe,alerting:SUe,popover:CUe,title:jUe,status:TUe,content:IUe},ooe={forceUpdateIntervalMs:1500,halfLifeMs:5e3,initMinSamples:5};function Bg(e,t){const{forceUpdateIntervalMs:n,halfLifeMs:r,initMinSamples:i}={...ooe,...t},o=m.useMemo(()=>r/Math.log(2),[r]),[a,s]=m.useState(),l=m.useRef(),c=m.useRef(e);c.current=e;const d=m.useRef(),f=m.useRef(0),p=m.useRef(!1);p.current=a!==void 0;const v=m.useCallback(()=>{s(void 0),l.current=void 0,d.current=void 0,f.current=0,y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)},[]),_=m.useCallback(b=>{b??(b=c.current);const w=performance.now();if(l.current===void 0){b!=null&&(l.current={value:b,tsMs:w});return}b??(b=l.current.value);const{value:x,tsMs:S}=l.current,C=w-S;if(!isFinite(C)||C<=0)return;const j=b-x;if(!isFinite(j)||j<0){v();return}if(l.current={value:b,tsMs:w},!p.current&&j>0){if(f.current+=1,!d.current){d.current={value:b,tsMs:w};return}if(f.current{const E=j/C*1e3;if(T===void 0)return E>0?E:T;const $=-Math.expm1(-C/o);return T*(1-$)+E*$})},[i,v,o]),y=m.useRef();return m.useEffect(()=>{if(y.current!==void 0&&(clearTimeout(y.current),y.current=void 0),_(e),n!==void 0){let b=function(){y.current=setTimeout(()=>{_(),b()},n)};b()}return()=>{y.current!==void 0&&(clearTimeout(y.current),y.current=void 0)}},[n,_,e]),{ema:a,reset:v}}function Ug(e,t=ooe){return Bg(e,t).ema??0}const V$=["turbine","gossip","tpu","repair","metrics"],aoe={Ingress:{turbine:64e6/8,gossip:1e9/8,tpu:1e8/8,repair:1e6/8,metrics:1e4/8,Total:118901e4/8},Egress:{turbine:1e9/8,gossip:1e9/8,tpu:1e6/8,repair:1e6/8,metrics:1e4/8,Total:205001e4/8}};function soe(e){return e?"Unhealthy":"Healthy"}function EUe(){const e=Hn("(max-width: 450px)"),t=Hn("(max-width: 390px)"),n=AUe(),r="Health Pane",i=Te(dl.healthPane,{[dl.narrow]:t});return e&&n.length>1?u.jsx(zg,{className:dl.popover,content:u.jsx(V,{direction:"column",gap:"8px",children:n.map(o=>u.jsx(loe,{...o},o.title))}),children:u.jsx("button",{"aria-label":r,className:Te(i,dl.vertical),children:n.map(o=>u.jsx(uoe,{...o,isStacked:!0},o.title))})}):u.jsx("div",{"aria-label":r,className:i,children:n.map(o=>u.jsx(uoe,{...o},o.title))})}function loe({title:e,description:t,isAlerting:n}){return u.jsxs(V,{direction:"column",gap:"4px",children:[u.jsxs(V,{gap:"5px",children:[u.jsx(q,{className:dl.title,children:e}),u.jsx(q,{className:Te(dl.status,{[dl.alerting]:n}),children:soe(n)})]}),u.jsx("div",{className:dl.content,children:u.jsx(q,{children:t})})]})}function uoe({title:e,description:t,Icon:n,isAlerting:r,isStacked:i=!1}){const o=`${e}: ${soe(r)}`,a=Te(dl.healthBox,{[dl.alerting]:r});return i?u.jsx("div",{"aria-label":o,className:Te(a,dl.stacked)}):u.jsx(zg,{className:dl.popover,content:u.jsx(loe,{title:e,description:t,isAlerting:r}),children:u.jsx("button",{"aria-label":o,className:a,children:u.jsx(n,{width:"75%"})})})}function NUe(){const e=X(zT),t=X(RT),n=X(Gy),r=e==="delinquent";return m.useMemo(()=>({title:"Vote Health",Icon:mUe,isAlerting:r,description:r?t==null||n==null?"Missing vote slot or turbine slot data.":`We haven't landed a vote since slot ${t} (${t-n}).`:"Our consensus votes are being received by other nodes normally."}),[r,t,n])}function $Ue(){const e=X(RG);return m.useMemo(()=>e?{title:"Bundle Health",Icon:gUe,isAlerting:e.status!=="connected",description:`Currently ${e.status} ${e.status==="disconnected"?"from":"to"} ${e.name} - ${e.url} (${e.ip})`}:null,[e])}const coe={forceUpdateIntervalMs:void 0},MUe=_i?coe:{forceUpdateIntervalMs:1e3,initMinSamples:2,halfLifeMs:1e3},LUe=.5,doe=_i?coe:{halfLifeMs:1e3};function RUe(){const e=X(Gy),t=e==null,{ema:n}=Bg(_i?null:e,MUe),r=t||n!=null&&n_i?null:{title:"Turbine Health",Icon:vUe,isAlerting:l,description:l?t?"Missing turbine slot data.":"We are receiving little to no block data from other nodes over Turbine.":"Block data is arriving normally over Turbine."},[l,t])}const OUe=V$.indexOf("turbine"),PUe=V$.indexOf("repair"),zUe=12;function DUe(){const e=X(Gy),t=X(fp);return m.useMemo(()=>{if(_i)return null;const n=e==null||t==null||e-t>zUe;return{title:"Replay Health",Icon:yUe,isAlerting:n,description:n?e==null||t==null?"Missing turbine slot or processed slot data.":`Replay is ${e-t} behind the rest of the cluster.`:"Replay is keeping up with the cluster."}},[e,t])}function AUe(){const e=NUe(),t=$Ue(),n=RUe(),r=DUe();return[e,t,n,r].filter(i=>i!=null)}function foe({isStartup:e}){const t=Hn("(max-width: 1218px)"),n=Hn("(max-width: 401px)"),r=Hn(`(max-width: ${Hte})`),{isNarrowScreen:i,blurBackground:o,showNav:a,showOnlyEpochBar:s}=Fg(),l=!a&&n,c="3px";return u.jsxs("div",{className:"sticky",style:{top:0,backgroundColor:"var(--color-background)",zIndex:Hf},children:[u.jsx(rUe,{}),u.jsxs(Mt,{px:"2",className:"app-width-container",children:[u.jsxs(V,{height:`${Sb}px`,align:"center",children:[u.jsxs(V,{className:Te({[pUe.navBackground]:a&&!s}),height:"100%",align:"center",gapX:l?c:`${ck}px`,pr:l?c:`${Vf}px`,ml:`${-dN}px`,pl:`${dN}px`,children:[!e&&i&&!a&&u.jsx(W$,{isLarge:!0}),u.jsx(YBe,{}),u.jsx(nUe,{})]}),u.jsxs(V,{position:"relative",gapX:l?c:`${lN}px`,height:"100%",flexGrow:"1",align:"center",justify:"between",pl:l?c:`${lN-Vf}px`,minWidth:"0",flexShrink:"100",children:[!e&&u.jsxs(V,{flexShrink:r?"1":"0",minWidth:"100px",children:[u.jsx(ZBe,{}),t?u.jsx(HBe,{}):u.jsx(VBe,{})]}),u.jsxs(V,{gap:i?"1":"3",justify:"end",align:"center",minWidth:"50px",flexGrow:"1",children:[u.jsx(TBe,{}),u.jsx(EUe,{}),u.jsxs(V,{gap:"1",direction:i?"column":"row",children:[u.jsx(FUe,{}),e?u.jsx(UUe,{}):u.jsx(BUe,{})]})]}),o&&u.jsx(ioe,{})]})]}),!e&&!i&&u.jsx("div",{style:{position:"relative"},children:u.jsx("div",{style:{position:"absolute",top:0,left:0},children:u.jsx(W$,{isFloating:!a})})})]})]})}function FUe(){return u.jsx(zg,{content:u.jsx(q,{size:"2",wrap:"wrap",children:u.jsx("a",{href:"https://db-ip.com",children:"IP Geolocation by DB-IP"})}),children:u.jsx(Zie,{color:"var(--gray-11)"})})}function BUe(){const e=X(ol),t=Ee(W3),n=Ee(tee);return e?u.jsx(nl,{ref:n,variant:"ghost",color:"gray",onClick:()=>t(!0),children:u.jsx(Gie,{})}):null}function UUe(){const e=X(ol),t=Ee(W3),n=X(tee),r=X(dre),i=m.useCallback(()=>{if(!n||!r)return;const{bottom:o,left:a,width:s,height:l}=n.getBoundingClientRect();r.style.setProperty("--transform-origin",`${Math.round(a+s/2)}px ${Math.round(o-l/2)}px`),t(!1)},[r,n,t]);return e?u.jsx(nl,{variant:"ghost",color:"gray",onClick:i,children:u.jsx(B$,{color:"white"})}):null}const WUe="_logo-container_1po46_1",VUe="_hidden_1po46_30",hoe={logoContainer:WUe,hidden:VUe};function HUe(){const e=X(Gu),[t,n]=m.useState(!0);return e&&t&&n(!1),u.jsx(V,{className:Te(hoe.logoContainer,{[hoe.hidden]:!t}),children:u.jsx("img",{src:ree,alt:"fd"})})}const ZUe="_secondary-color_2x9jp_1",qUe="_ellipsis_2x9jp_5",GUe="_card_2x9jp_11",YUe="_sparkline-card_2x9jp_19",KUe="_snapshot-tile-title_2x9jp_25",XUe="_snapshot-tile-busy_2x9jp_31",JUe="_sparkline-container_2x9jp_36",QUe="_bars-card_2x9jp_54",eWe="_card-header_2x9jp_62",tWe="_title_2x9jp_68",nWe="_accounts-rate_2x9jp_74",rWe="_total_2x9jp_79",iWe="_throughput_2x9jp_84",oWe="_with-prefix_2x9jp_87",aWe="_reading-card_2x9jp_95",sWe="_read-path-container_2x9jp_96",lWe="_read-path_2x9jp_96",uWe="_decompressing-card_2x9jp_124",cWe="_decompressing-card-left_2x9jp_127",dWe="_decompressing-card-right_2x9jp_137",fWe="_inserting-card_2x9jp_146",lr={secondaryColor:ZUe,ellipsis:qUe,card:GUe,sparklineCard:YUe,snapshotTileTitle:KUe,snapshotTileBusy:XUe,sparklineContainer:JUe,barsCard:QUe,cardHeader:eWe,title:tWe,accountsRate:nWe,total:rWe,throughput:iWe,withPrefix:oWe,readingCard:aWe,readPathContainer:sWe,readPath:lWe,decompressingCard:uWe,decompressingCardLeft:cWe,decompressingCardRight:dWe,insertingCard:fWe},hWe="_busy_1fw9w_1",pWe={busy:hWe};function Xk({busy:e,className:t}){const n=e!==void 0?Math.trunc(e*100):void 0;return u.jsx(V,{gap:"1",align:"end",children:u.jsxs(q,{className:t??pWe.busy,style:{color:`color-mix(in srgb, ${vN}, ${yN} ${n}%)`},children:[n??"-","%"]})})}function mWe(e){const t=new Set;let n=null,r=performance.now();function i(){const s=()=>{const l=performance.now();if(l-r>=e){const c=l-r;r=l,t.forEach(d=>d(l,c))}n=requestAnimationFrame(s)};n=requestAnimationFrame(s)}function o(){n!=null&&cancelAnimationFrame(n),n=null}function a(s){return t.add(s),n==null&&i(),()=>{t.delete(s),t.size||o()}}return{subscribeClock:a}}const Jk=2;function poe({isLive:e,tileCount:t,liveIdlePerTile:n,queryIdlePerTile:r}){var c;const i=m.useMemo(()=>new Array(t).fill(0),[t]),o=n==null?void 0:n.map(d=>d===-1?void 0:1-d),a=r==null?void 0:r.map(d=>{const f=d.filter(p=>p!==-1);if(f.length)return 1-rt.mean(f)}).filter(d=>d!==void 0),s=i.map((d,f)=>{const p=r==null?void 0:r.map(v=>1-v[f]).filter(v=>v!==void 0&&v<=1);if(p!=null&&p.length)return rt.mean(p)}),l=(c=e?o:s)==null?void 0:c.filter(d=>d!==void 0&&d<=1);return{avgBusy:l!=null&&l.length?rt.mean(l):void 0,aggQueryBusyPerTs:a,tileCountArr:i,liveBusyPerTile:o,busy:l}}function H$(e){const t=m.useRef();return e!==void 0&&(t.current=e),e??t.current}const moe=[0,1],gWe=150,goe=3,Z$=new Map;function voe(e,t,n){var i;const r=performance.now();for(e.push({value:n,ts:r});(((i=e[1])==null?void 0:i.ts)??0)+t{if(!(t!=null&&t.length))return;if(!vWe(t))return t;const w=performance.now(),x=n/(t.length-1),S=w-n;return t.map((C,j)=>({value:C,ts:S+j*x}))},[n,t]),{pxPerTick:p,width:v,windowMs:_}=m.useMemo(()=>{let w=n,x=i;const S=x/(w/s);return d||(w+=s*goe,x+=S*goe),{pxPerTick:S,width:x,windowMs:w}},[i,n,d,s]),y=m.useRef([{value:void 0,ts:performance.now()-_},{value:void 0,ts:performance.now()}]),b=m.useRef(!1);return m.useEffect(()=>{if(b.current||!(f!=null&&f.length))return;b.current=!0;const w=performance.now(),x=f[f.length-1].ts;y.current=f.map(({ts:S,value:C})=>({value:C,ts:w-(x-S)}))},[f]),m.useEffect(()=>{a||d||voe(y.current,_,e)},[d,_,a,e]),Qu(()=>{var x;if(a||d)return;const w=(x=y.current[y.current.length-1])==null?void 0:x.ts;w!==void 0&&performance.now()-w{function w(x,S){var $,A;const C=x.length;if(C===0){c([]);return}const j=S-_,T=v/_,E=new Array(C);for(let M=0;M({value:T,ts:x-(S-j)}));w(C,x)}else{Z$.has(s)||Z$.set(s,mWe(s));const x=Z$.get(s);if(x)return x.subscribeClock(S=>{w(y.current,S)})}},[r,f,d,s,v,_]),{scaledDataPoints:l,range:moe,pxPerTick:p,chartTickMs:s,isLive:!d}}const yWe="_range-label_14i5c_1",bWe="_top_14i5c_9",_We="_bottom_14i5c_13",xWe="_g-transform_14i5c_17",u_={rangeLabel:yWe,top:bWe,bottom:_We,gTransform:xWe},wWe=400*4,kWe=80;function c_({value:e,history:t,height:n=24,background:r,windowMs:i=wWe,strokeWidth:o=Jk,updateIntervalMs:a=kWe,tickMs:s}){const[l,{width:c}]=Ss(),{scaledDataPoints:d,range:f,pxPerTick:p,chartTickMs:v,isLive:_}=yoe({value:e,history:t,windowMs:i,height:n,width:c,updateIntervalMs:a,tickMs:s});return u.jsx(boe,{svgRef:l,scaledDataPoints:d,range:f,height:n,background:r,pxPerTick:p,tickMs:v,isLive:_,strokeWidth:o})}function boe({svgRef:e,scaledDataPoints:t,range:n=moe,showRange:r=!1,height:i,background:o=Tne,pxPerTick:a,tickMs:s,isLive:l,strokeWidth:c=Jk}){const d=m.useRef(null),f=m.useRef(null),p=m.useRef(null),v=m.useMemo(()=>{const y=n[1]-n[0],b=(i-c*2)/y,w=b*(n[1]-1);return[w+b,w]},[i,n,c]),_=m.useMemo(()=>t.map(({x:y,y:b})=>`${y},${b}`).join(" "),[t]);return m.useLayoutEffect(()=>{var b,w,x;const y=d.current;if(y)if(l){p.current||(p.current=y.animate([{transform:"translate3d(0px, 0, 0)"},{transform:"translate3d(0px, 0, 0)"}],{duration:s,easing:"linear",fill:"forwards"}),p.current.cancel()),p.current.finish(),(b=f.current)==null||b.setAttribute("points",_);const S=p.current.effect;S.setKeyframes([{transform:"translate3d(0px, 0, 0)"},{transform:`translate3d(${-a}px, 0, 0)`}]),S.updateTiming({duration:s,easing:"linear",fill:"forwards"}),p.current.currentTime=0,p.current.play()}else(w=f.current)==null||w.setAttribute("points",_),(x=p.current)==null||x.cancel()},[l,_,a,s]),u.jsxs(u.Fragment,{children:[u.jsxs("svg",{ref:e,xmlns:"http://www.w3.org/2000/svg",width:"100%",height:`${i}px`,fill:"none",style:{background:o},shapeRendering:"optimizeSpeed",children:[u.jsx("g",{ref:d,className:u_.gTransform,children:u.jsx("polyline",{ref:f,stroke:"url(#paint0_linear_2971_11300)",strokeWidth:c,strokeLinecap:"butt",vectorEffect:"non-scaling-stroke",pointerEvents:"none"})}),u.jsx("defs",{children:u.jsxs("linearGradient",{id:"paint0_linear_2971_11300",x1:"59.5",y1:v[0],x2:"59.5",y2:v[1],gradientUnits:"userSpaceOnUse",children:[u.jsx("stop",{stopColor:vN}),u.jsx("stop",{offset:"1",stopColor:yN})]})})]}),r&&u.jsxs(u.Fragment,{children:[u.jsxs("div",{className:Te(u_.rangeLabel,u_.top),children:[Math.round(n[1]*100),"%"]}),u.jsxs("div",{className:Te(u_.rangeLabel,u_.bottom),children:[Math.round(n[0]*100),"%"]})]})]})}const Qk=15,_oe=Qk*6+1,xoe=Qk*15+1,SWe=6e3,CWe=50;function q$({title:e,tileType:t,isComplete:n}){const r=X(Nb),i=X(qze),{avgBusy:o}=poe({isLive:!0,tileCount:r[t],liveIdlePerTile:i==null?void 0:i[t]}),a=H$(o),{scaledDataPoints:s,range:l,pxPerTick:c,chartTickMs:d,isLive:f}=yoe({value:a,windowMs:SWe,height:_oe,width:xoe,updateIntervalMs:CWe,stopShifting:n});return u.jsxs(Ey,{className:Te(lr.card,lr.sparklineCard),children:[u.jsxs(V,{justify:"between",align:"center",children:[u.jsx(q,{className:lr.snapshotTileTitle,children:e}),u.jsx(Xk,{busy:a,className:lr.snapshotTileBusy})]}),u.jsx(V,{className:lr.sparklineContainer,style:{alignSelf:"center",width:`${xoe}px`,backgroundSize:`${Qk}px ${Qk}px`},children:u.jsx(boe,{scaledDataPoints:s,range:l,showRange:!0,height:_oe,background:"transparent",tickMs:d,pxPerTick:c,isLive:f})})]})}const jWe="_bars_1d34t_1",TWe={bars:jWe},IWe=2;function G$({value:e,max:t,barWidth:n=IWe}){const r=!t||!e?0:rt.clamp(e/t,0,1);return u.jsx("div",{className:TWe.bars,style:{"--bar-width":`${n}px`,"--bar-gap":`${n*1.5}px`,"--pct":r}})}function woe(e,t,n){const r=performance.now(),i=[...e,[t,r]];for(;i.length>2&&i[0]&&i[0][1]<=r-n;)i.shift();return i}function koe(e,t=500){const[n,r]=m.useState([]);m.useEffect(()=>{e!=null&&r(o=>woe(o,e,t))},[e,t]),Qu(()=>{r(o=>{const a=performance.now(),s=o[o.length-1];return s&&s[1]{r([])},[]);return{valuePerSecond:m.useMemo(()=>{if(!(n.length<=1))return 1e3*(n[n.length-1][0]-n[0][0])/(n[n.length-1][1]-n[0][1])},[n]),reset:i}}const EWe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"}));function Y$({headerContent:e,footer:t,throughput:n,containerClassName:r,maxThroughput:i}){return u.jsxs(Ey,{className:Te(lr.card,lr.barsCard,r),children:[u.jsx(V,{justify:"between",align:"center",wrap:"wrap",gapX:"4",className:lr.cardHeader,children:e}),u.jsx(G$,{value:n??0,max:i}),t]})}function e6({value:e,unit:t}){return u.jsxs(u.Fragment,{children:[u.jsx(q,{children:e??"--"}),t&&u.jsxs(u.Fragment,{children:[" ",u.jsx(q,{className:lr.secondaryColor,children:t})]})]})}function K$({text:e}){return u.jsx(q,{className:Te(lr.title,lr.ellipsis),children:e})}function NWe({cumulativeAccounts:e}){const t=X(Gu),{valuePerSecond:n,reset:r}=koe(e,1e3);m.useEffect(()=>{r()},[t,r]);const i=m.useMemo(()=>{if(e!=null&&n==null)return"0";if(n!=null)return z$.format(n)},[n,e]);return u.jsx("div",{className:lr.accountsRate,children:u.jsx(e6,{value:i,unit:"Accounts / sec"})})}function X$({completed:e,total:t}){return u.jsxs("div",{className:lr.total,children:[u.jsx(e6,{value:e==null?void 0:e.value,unit:e==null?void 0:e.unit}),u.jsx(q,{children:" / "}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit})]})}function t6({prefix:e,throughput:t}){return u.jsxs("div",{className:Te(lr.throughput,{[lr.withPrefix]:!!e}),children:[e&&u.jsxs(q,{className:lr.secondaryColor,children:[e," "]}),u.jsx(e6,{value:t==null?void 0:t.value,unit:t==null?void 0:t.unit}),u.jsx(q,{className:lr.secondaryColor,children:"/sec"})]})}function $We({readPath:e}){return u.jsxs(V,{align:"center",gap:"10px",wrap:"nowrap",className:lr.readPathContainer,children:[u.jsx(EWe,{}),u.jsx(q,{className:Te(lr.readPath,lr.ellipsis),children:e})]})}function MWe({compressedCompleted:e,compressedTotal:t,readPath:n}){const r=X(Gu),{ema:i,reset:o}=Bg(e);m.useEffect(()=>{o()},[r,o]);const a=i==null?void 0:Da(i),s=e==null?void 0:Da(e),l=t==null?void 0:Da(t),c=m.useMemo(()=>u.jsx($We,{readPath:n}),[n]);return u.jsx(Y$,{containerClassName:lr.readingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(K$,{text:"Reading"}),u.jsx(X$,{completed:s,total:l}),u.jsx(t6,{throughput:a})]}),footer:c,throughput:i,maxThroughput:8e8})}function LWe({compressedCompleted:e,decompressedCompleted:t,compressedTotal:n}){const r=X(Gu),{ema:i,reset:o}=Bg(e),{ema:a,reset:s}=Bg(t);m.useEffect(()=>{o(),s()},[r,o,s]);const l=i==null?void 0:Da(i),c=a==null?void 0:Da(a),d=e==null?void 0:Da(e),f=n==null?void 0:Da(n);return u.jsx(Y$,{containerClassName:lr.decompressingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsxs(V,{flexGrow:"1",justify:"between",align:"center",className:lr.decompressingCardLeft,children:[u.jsx(K$,{text:"Decompressing"}),u.jsx(X$,{completed:d,total:f})]}),u.jsxs(V,{gapX:"30px",justify:"end",flexGrow:"1",className:lr.decompressingCardRight,children:[u.jsx(t6,{prefix:"Input",throughput:l}),u.jsx(t6,{prefix:"Output",throughput:c})]})]}),throughput:i,maxThroughput:8e8})}function RWe({decompressedThroughput:e,decompressedCompleted:t,decompressedTotal:n,cumulativeAccounts:r}){const i=e==null?void 0:Da(e),o=t==null?void 0:Da(t),a=n==null?void 0:Da(n);return u.jsx(Y$,{containerClassName:lr.insertingCard,headerContent:u.jsxs(u.Fragment,{children:[u.jsx(K$,{text:"Inserting"}),u.jsx(NWe,{cumulativeAccounts:r}),u.jsx(X$,{completed:o,total:a}),u.jsx(t6,{throughput:i})]}),throughput:e,maxThroughput:35e8})}const OWe="_secondary-text_1iskf_1",PWe="_phase-header-container_1iskf_5",zWe="_phase-name_1iskf_11",DWe="_no-wrap_1iskf_15",AWe="_complete-pct-container_1iskf_19",oh={secondaryText:OWe,phaseHeaderContainer:PWe,phaseName:zWe,noWrap:DWe,completePctContainer:AWe},FWe="_progress-bar_drgbz_1",BWe="_current_drgbz_14",UWe="_progressing-bar_drgbz_21",WWe="_gossip_drgbz_33",VWe="_complete_drgbz_35",HWe="_full-snapshot_drgbz_46",ZWe="_incr-snapshot_drgbz_59",qWe="_catching-up_drgbz_72",GWe="_supermajority_drgbz_85",bd={progressBar:FWe,current:BWe,progressingBar:UWe,gossip:WWe,complete:VWe,fullSnapshot:HWe,incrSnapshot:ZWe,catchingUp:qWe,supermajority:GWe},YWe={[wn.joining_gossip]:bd.gossip,[wn.loading_full_snapshot]:bd.fullSnapshot,[wn.loading_incremental_snapshot]:bd.incrSnapshot,[wn.catching_up]:bd.catchingUp,[wn.waiting_for_supermajority]:bd.supermajority,[wn.running]:""};function KWe({phaseCompleteFraction:e}){const[t,n]=m.useState(0);m.useEffect(()=>{n(rt.clamp(e,0,1))},[e]);const r=X(Gu),i=X(U3),o=X(eee);return u.jsx(V,{className:bd.progressBar,children:i.map(({phase:a,completionFraction:s})=>{if(a===wn.running)return;const l=a===r,c=`${s*100}%`;return u.jsx("div",{className:Te(YWe[a],{[bd.current]:l,[bd.complete]:o.has(a)}),style:{width:c},children:l&&u.jsx("div",{className:bd.progressingBar,style:{transform:`scaleX(${t})`}})},a)})})}const XWe={[wn.joining_gossip]:"Joining Gossip",[wn.loading_full_snapshot]:"Loading Full Snapshot",[wn.loading_incremental_snapshot]:"Loading Incremental Snapshot",[wn.catching_up]:"Catching Up",[wn.waiting_for_supermajority]:"Waiting for Supermajority",[wn.running]:"Running"};function JWe(){const e=Bie(1e3);return u.jsx(q,{children:e==null?"--":Mze(e)})}function J$({phaseCompleteFraction:e,overallCompleteFraction:t,remainingSeconds:n,showLoadingIcon:r=!1}){const i=X(Gu),[o,a]=m.useState(),s=Ua(d=>{const f=d==null?void 0:Math.max(Math.round(d),0);a(f)},1e3);m.useEffect(()=>{s(n)},[s,n]);const l=m.useMemo(()=>{if(o!=null)return Sp(fn.fromObject({seconds:o}).rescale(),{showOnlyTwoSignificantUnits:!0})},[o]),c=rt.clamp(Math.round(t*100),0,100);return i?u.jsxs(Mt,{flexShrink:"0",className:oh.phaseHeaderContainer,children:[u.jsxs(V,{justify:"between",mt:"7",mb:"2",gapX:"8px",wrap:"wrap",children:[u.jsxs("span",{className:oh.noWrap,children:[u.jsx(q,{className:oh.secondaryText,children:"Elapsed "}),u.jsx(JWe,{})]}),u.jsxs("span",{children:[u.jsxs(q,{className:oh.phaseName,children:[XWe[i],"... "]}),l&&u.jsxs("span",{className:oh.noWrap,children:[u.jsx(q,{className:oh.secondaryText,children:"Remaining "}),u.jsxs(q,{style:{display:"inline-block",minWidth:"120px"},children:["~",l]})]})]}),u.jsxs(q,{className:oh.completePctContainer,children:[u.jsx(q,{className:oh.secondaryText,children:"Complete "}),c,"%",r&&u.jsx(Iy,{size:"3",ml:"8px"})]})]}),u.jsx(KWe,{phaseCompleteFraction:e})]}):null}function Soe(e){const t=X(QQ),n=X(U3),r=X(eee);return m.useMemo(()=>t?rt.sum(n.map(i=>i===t?i.completionFraction*rt.clamp(e,0,1):r.has(i.phase)?i.completionFraction:0)):0,[r,e,t,n])}const QWe="5",Coe="26px";function eVe(e){const{loading_full_snapshot_total_bytes_compressed:t,loading_full_snapshot_read_bytes_compressed:n,loading_full_snapshot_decompress_bytes_compressed:r,loading_full_snapshot_decompress_bytes_decompressed:i,loading_full_snapshot_insert_bytes_decompressed:o,loading_full_snapshot_read_path:a,loading_full_snapshot_insert_accounts:s,loading_incremental_snapshot_total_bytes_compressed:l,loading_incremental_snapshot_read_bytes_compressed:c,loading_incremental_snapshot_decompress_bytes_compressed:d,loading_incremental_snapshot_decompress_bytes_decompressed:f,loading_incremental_snapshot_insert_bytes_decompressed:p,loading_incremental_snapshot_read_path:v,loading_incremental_snapshot_insert_accounts:_}=e,y=e.phase===wn.loading_full_snapshot||!l?{totalCompressedBytes:t,readCompressedBytes:n,readPath:a,decompressCompressedBytes:r,decompressDecompressedBytes:i,insertDecompressedBytes:o,insertAccounts:s}:{totalCompressedBytes:l,readCompressedBytes:c,readPath:v,decompressCompressedBytes:d,decompressDecompressedBytes:f,insertDecompressedBytes:p,insertAccounts:_},b=y.insertDecompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.insertDecompressedBytes*(y.decompressCompressedBytes/y.decompressDecompressedBytes):0,w=y.totalCompressedBytes&&y.decompressCompressedBytes&&y.decompressDecompressedBytes?y.totalCompressedBytes*y.decompressDecompressedBytes/y.decompressCompressedBytes:0;return{...y,insertCompressedBytes:b,totalDecompressedBytes:w}}function tVe(){const e=X(Hl),t=(e==null?void 0:e.phase)===wn.loading_incremental_snapshot,n=Hn("(max-width: 560px)"),r=n?"wrap":"nowrap",i=n?Coe:QWe,o=e?eVe(e):void 0,{ema:a,reset:s}=Bg(o==null?void 0:o.insertDecompressedBytes);m.useEffect(()=>{s()},[e==null?void 0:e.phase,s]);const{totalCompressedBytes:l,readCompressedBytes:c,readPath:d,decompressCompressedBytes:f,decompressDecompressedBytes:p,insertDecompressedBytes:v,insertAccounts:_,insertCompressedBytes:y,totalDecompressedBytes:b}=o??{},w=a==null||b==null||v==null?void 0:Math.round((b-v)/a),x=Math.min(l&&y?y/l:0,1),S=Soe(x);if(!(!e||!o))return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:x,overallCompleteFraction:S,remainingSeconds:w}),u.jsxs(V,{mt:"52px",direction:"column",gap:Coe,className:yd.startupContentIndentation,children:[u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(MWe,{compressedCompleted:c,compressedTotal:l,readPath:d}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapld",isComplete:t&&!!c&&c===l})]}),u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(LWe,{compressedCompleted:f,decompressedCompleted:p,compressedTotal:l}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapdc",isComplete:t&&!!f&&f===l})]}),u.jsxs(V,{className:lr.rowContainer,gap:i,wrap:r,children:[u.jsx(RWe,{decompressedThroughput:a,decompressedCompleted:v,decompressedTotal:b,cumulativeAccounts:_}),u.jsx(q$,{title:"CPU Utilization",tileType:"snapin",isComplete:t&&!!y&&y===l})]})]})]})}const nVe=!0,Hi="u-",rVe="uplot",iVe=Hi+"hz",oVe=Hi+"vt",aVe=Hi+"title",sVe=Hi+"wrap",lVe=Hi+"under",uVe=Hi+"over",cVe=Hi+"axis",Np=Hi+"off",dVe=Hi+"select",fVe=Hi+"cursor-x",hVe=Hi+"cursor-y",pVe=Hi+"cursor-pt",mVe=Hi+"legend",gVe=Hi+"live",vVe=Hi+"inline",yVe=Hi+"series",bVe=Hi+"marker",joe=Hi+"label",_Ve=Hi+"value",d_="width",f_="height",h_="top",Toe="bottom",Wg="left",Q$="right",eM="#000",Ioe=eM+"0",tM="mousemove",Eoe="mousedown",nM="mouseup",Noe="mouseenter",$oe="mouseleave",Moe="dblclick",xVe="resize",wVe="scroll",Loe="change",n6="dppxchange",rM="--",Vg=typeof window<"u",iM=Vg?document:null,Hg=Vg?window:null,kVe=Vg?navigator:null;let Fn,r6;function oM(){let e=devicePixelRatio;Fn!=e&&(Fn=e,r6&&lM(Loe,r6,oM),r6=matchMedia(`(min-resolution: ${Fn-.001}dppx) and (max-resolution: ${Fn+.001}dppx)`),$p(Loe,r6,oM),Hg.dispatchEvent(new CustomEvent(n6)))}function Cs(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function aM(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function zr(e,t,n){e.style[t]=n+"px"}function ou(e,t,n,r){let i=iM.createElement(e);return t!=null&&Cs(i,t),n==null||n.insertBefore(i,r),i}function fl(e,t){return ou("div",e,t)}const Roe=new WeakMap;function ec(e,t,n,r,i){let o="translate("+t+"px,"+n+"px)",a=Roe.get(e);o!=a&&(e.style.transform=o,Roe.set(e,o),t<0||n<0||t>r||n>i?Cs(e,Np):aM(e,Np))}const Ooe=new WeakMap;function Poe(e,t,n){let r=t+n,i=Ooe.get(e);r!=i&&(Ooe.set(e,r),e.style.background=t,e.style.borderColor=n)}const zoe=new WeakMap;function Doe(e,t,n,r){let i=t+""+n,o=zoe.get(e);i!=o&&(zoe.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=r?-t/2+"px":0,e.style.marginTop=r?-n/2+"px":0)}const sM={passive:!0},SVe={...sM,capture:!0};function $p(e,t,n,r){t.addEventListener(e,n,r?SVe:sM)}function lM(e,t,n,r){t.removeEventListener(e,n,sM)}Vg&&oM();function au(e,t,n,r){let i;n=n||0,r=r||t.length-1;let o=r<=2147483647;for(;r-n>1;)i=o?n+r>>1:Ts((n+r)/2),t[i]{let i=-1,o=-1;for(let a=n;a<=r;a++)if(e(t[a])){i=a;break}for(let a=r;a>=n;a--)if(e(t[a])){o=a;break}return[i,o]}}const Foe=e=>e!=null,Boe=e=>e!=null&&e>0,i6=Aoe(Foe),CVe=Aoe(Boe);function jVe(e,t,n,r=0,i=!1){let o=i?CVe:i6,a=i?Boe:Foe;[t,n]=o(e,t,n);let s=e[t],l=e[t];if(t>-1)if(r==1)s=e[t],l=e[n];else if(r==-1)s=e[n],l=e[t];else for(let c=t;c<=n;c++){let d=e[c];a(d)&&(dl&&(l=d))}return[s??yr,l??-yr]}function o6(e,t,n,r){let i=Voe(e),o=Voe(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let a=n==10?_d:Hoe,s=i==1?Ts:hl,l=o==1?hl:Ts,c=s(a(Zi(e))),d=l(a(Zi(t))),f=Zg(n,c),p=Zg(n,d);return n==10&&(c<0&&(f=br(f,-c)),d<0&&(p=br(p,-d))),r||n==2?(e=f*i,t=p*o):(e=Joe(e,f),t=l6(t,p)),[e,t]}function uM(e,t,n,r){let i=o6(e,t,n,r);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}const cM=.1,Uoe={mode:3,pad:cM},p_={pad:0,soft:null,mode:0},TVe={min:p_,max:p_};function a6(e,t,n,r){return u6(n)?Woe(e,t,n):(p_.pad=n,p_.soft=r?0:null,p_.mode=r?3:0,Woe(e,t,TVe))}function Ln(e,t){return e??t}function IVe(e,t,n){for(t=Ln(t,0),n=Ln(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function Woe(e,t,n){let r=n.min,i=n.max,o=Ln(r.pad,0),a=Ln(i.pad,0),s=Ln(r.hard,-yr),l=Ln(i.hard,yr),c=Ln(r.soft,yr),d=Ln(i.soft,-yr),f=Ln(r.mode,0),p=Ln(i.mode,0),v=t-e,_=_d(v),y=pa(Zi(e),Zi(t)),b=_d(y),w=Zi(b-_);(v<1e-24||w>10)&&(v=0,(e==0||t==0)&&(v=1e-24,f==2&&c!=yr&&(o=0),p==2&&d!=-yr&&(a=0)));let x=v||y||1e3,S=_d(x),C=Zg(10,Ts(S)),j=x*(v==0?e==0?.1:1:o),T=br(Joe(e-j,C/10),24),E=e>=c&&(f==1||f==3&&T<=c||f==2&&T>=c)?c:yr,$=pa(s,T=E?E:su(E,T)),A=x*(v==0?t==0?.1:1:a),M=br(l6(t+A,C/10),24),P=t<=d&&(p==1||p==3&&M>=d||p==2&&M<=d)?d:-yr,te=su(l,M>P&&t<=P?P:pa(P,M));return $==te&&$==0&&(te=100),[$,te]}const EVe=new Intl.NumberFormat(Vg?kVe.language:"en-US"),dM=e=>EVe.format(e),js=Math,s6=js.PI,Zi=js.abs,Ts=js.floor,qi=js.round,hl=js.ceil,su=js.min,pa=js.max,Zg=js.pow,Voe=js.sign,_d=js.log10,Hoe=js.log2,NVe=(e,t=1)=>js.sinh(e)*t,fM=(e,t=1)=>js.asinh(e/t),yr=1/0;function Zoe(e){return(_d((e^e>>31)-(e>>31))|0)+1}function hM(e,t,n){return su(pa(e,t),n)}function qoe(e){return typeof e=="function"}function bn(e){return qoe(e)?e:()=>e}const $Ve=()=>{},Goe=e=>e,Yoe=(e,t)=>t,MVe=e=>null,Koe=e=>!0,Xoe=(e,t)=>e==t,LVe=/\.\d*?(?=9{6,}|0{6,})/gm,Mp=e=>{if(eae(e)||ah.has(e))return e;const t=`${e}`,n=t.match(LVe);if(n==null)return e;let r=n[0].length-1;if(t.indexOf("e-")!=-1){let[i,o]=t.split("e");return+`${Mp(i)}e${o}`}return br(e,r)};function Lp(e,t){return Mp(br(Mp(e/t))*t)}function l6(e,t){return Mp(hl(Mp(e/t))*t)}function Joe(e,t){return Mp(Ts(Mp(e/t))*t)}function br(e,t=0){if(eae(e))return e;let n=10**t,r=e*n*(1+Number.EPSILON);return qi(r)/n}const ah=new Map;function Qoe(e){return((""+e).split(".")[1]||"").length}function m_(e,t,n,r){let i=[],o=r.map(Qoe);for(let a=t;a=0?0:s)+(a>=o[c]?0:o[c]),p=e==10?d:br(d,f);i.push(p),ah.set(p,f)}}return i}const g_={},pM=[],qg=[null,null],sh=Array.isArray,eae=Number.isInteger,RVe=e=>e===void 0;function tae(e){return typeof e=="string"}function u6(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function OVe(e){return e!=null&&typeof e=="object"}const PVe=Object.getPrototypeOf(Uint8Array),nae="__proto__";function Gg(e,t=u6){let n;if(sh(e)){let r=e.find(i=>i!=null);if(sh(r)||t(r)){n=Array(e.length);for(let i=0;io){for(i=a-1;i>=0&&e[i]==null;)e[i--]=null;for(i=a+1;ia-s)],i=r[0].length,o=new Map;for(let a=0;a"u"?e=>Promise.resolve().then(e):queueMicrotask;function WVe(e){let t=e[0],n=t.length,r=Array(n);for(let o=0;ot[o]-t[a]);let i=[];for(let o=0;o=r&&e[i]==null;)i--;if(i<=r)return!0;const o=pa(1,Ts((i-r+1)/t));for(let a=e[r],s=r+o;s<=i;s+=o){const l=e[s];if(l!=null){if(l<=a)return!1;a=l}}return!0}const rae=["January","February","March","April","May","June","July","August","September","October","November","December"],iae=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function oae(e){return e.slice(0,3)}const ZVe=iae.map(oae),qVe=rae.map(oae),GVe={MMMM:rae,MMM:qVe,WWWW:iae,WWW:ZVe};function v_(e){return(e<10?"0":"")+e}function YVe(e){return(e<10?"00":e<100?"0":"")+e}const KVe={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>v_(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>v_(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>v_(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>v_(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>v_(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>YVe(e.getMilliseconds())};function mM(e,t){t=t||GVe;let n=[],r=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=r.exec(e);)n.push(i[0][0]=="{"?KVe[i[1]]:i[0]);return o=>{let a="";for(let s=0;se%1==0,c6=[1,2,2.5,5],QVe=m_(10,-32,0,c6),sae=m_(10,0,32,c6),eHe=sae.filter(aae),Rp=QVe.concat(sae),gM=` -`,lae="{YYYY}",uae=gM+lae,cae="{M}/{D}",y_=gM+cae,d6=y_+"/{YY}",dae="{aa}",tHe="{h}:{mm}",Yg=tHe+dae,fae=gM+Yg,hae=":{ss}",Zn=null;function pae(e){let t=e*1e3,n=t*60,r=n*60,i=r*24,o=i*30,a=i*365,s=(e==1?m_(10,0,3,c6).filter(aae):m_(10,-3,0,c6)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,r,r*2,r*3,r*4,r*6,r*8,r*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,o,o*2,o*3,o*4,o*6,a,a*2,a*5,a*10,a*25,a*50,a*100]);const l=[[a,lae,Zn,Zn,Zn,Zn,Zn,Zn,1],[i*28,"{MMM}",uae,Zn,Zn,Zn,Zn,Zn,1],[i,cae,uae,Zn,Zn,Zn,Zn,Zn,1],[r,"{h}"+dae,d6,Zn,y_,Zn,Zn,Zn,1],[n,Yg,d6,Zn,y_,Zn,Zn,Zn,1],[t,hae,d6+" "+Yg,Zn,y_+" "+Yg,Zn,fae,Zn,1],[e,hae+".{fff}",d6+" "+Yg,Zn,y_+" "+Yg,Zn,fae,Zn,1]];function c(d){return(f,p,v,_,y,b)=>{let w=[],x=y>=a,S=y>=o&&y=i?i:y,A=Ts(v)-Ts(j),M=E+A+l6(j-E,$);w.push(M);let P=d(M),te=P.getHours()+P.getMinutes()/n+P.getSeconds()/r,Z=y/r,O=f.axes[p]._space,J=b/O;for(;M=br(M+y,e==1?0:3),!(M>_);)if(Z>1){let D=Ts(br(te+Z,6))%24,Y=d(M).getHours()-D;Y>1&&(Y=-1),M-=Y*r,te=(te+Z)%24;let F=w[w.length-1];br((M-F)/y,3)*J>=.7&&w.push(M)}else w.push(M)}return w}}return[s,l,c]}const[nHe,rHe,iHe]=pae(1),[oHe,aHe,sHe]=pae(.001);m_(2,-53,53,[1]);function mae(e,t){return e.map(n=>n.map((r,i)=>i==0||i==8||r==null?r:t(i==1||n[8]==0?r:n[1]+r)))}function gae(e,t){return(n,r,i,o,a)=>{let s=t.find(_=>a>=_[0])||t[t.length-1],l,c,d,f,p,v;return r.map(_=>{let y=e(_),b=y.getFullYear(),w=y.getMonth(),x=y.getDate(),S=y.getHours(),C=y.getMinutes(),j=y.getSeconds(),T=b!=l&&s[2]||w!=c&&s[3]||x!=d&&s[4]||S!=f&&s[5]||C!=p&&s[6]||j!=v&&s[7]||s[1];return l=b,c=w,d=x,f=S,p=C,v=j,T(y)})}}function lHe(e,t){let n=mM(t);return(r,i,o,a,s)=>i.map(l=>n(e(l)))}function vM(e,t,n){return new Date(e,t,n)}function vae(e,t){return t(e)}const uHe="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function yae(e,t){return(n,r,i,o)=>o==null?rM:t(e(r))}function cHe(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function dHe(e,t){return e.series[t].fill(e,t)}const fHe={show:!0,live:!0,isolate:!1,mount:$Ve,markers:{show:!0,width:2,stroke:cHe,fill:dHe,dash:"solid"},idx:null,idxs:null,values:[]};function hHe(e,t){let n=e.cursor.points,r=fl(),i=n.size(e,t);zr(r,d_,i),zr(r,f_,i);let o=i/-2;zr(r,"marginLeft",o),zr(r,"marginTop",o);let a=n.width(e,t,i);return a&&zr(r,"borderWidth",a),r}function pHe(e,t){let n=e.series[t].points;return n._fill||n._stroke}function mHe(e,t){let n=e.series[t].points;return n._stroke||n._fill}function gHe(e,t){return e.series[t].points.size}const yM=[0,0];function vHe(e,t,n){return yM[0]=t,yM[1]=n,yM}function f6(e,t,n,r=!0){return i=>{i.button==0&&(!r||i.target==t)&&n(i)}}function bM(e,t,n,r=!0){return i=>{(!r||i.target==t)&&n(i)}}const yHe={show:!0,x:!0,y:!0,lock:!1,move:vHe,points:{one:!1,show:hHe,size:gHe,width:0,stroke:mHe,fill:pHe},bind:{mousedown:f6,mouseup:f6,click:f6,dblclick:f6,mousemove:bM,mouseleave:bM,mouseenter:bM},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,r,i)=>r-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},bae={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},_M=Ri({},bae,{filter:Yoe}),_ae=Ri({},_M,{size:10}),xae=Ri({},bae,{show:!1}),xM='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',wae="bold "+xM,kae=1.5,Sae={show:!0,scale:"x",stroke:eM,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:wae,side:2,grid:_M,ticks:_ae,border:xae,font:xM,lineGap:kae,rotate:0},bHe="Value",_He="Time",Cae={show:!0,scale:"x",auto:!1,sorted:1,min:yr,max:-yr,idxs:[]};function xHe(e,t,n,r,i){return t.map(o=>o==null?"":dM(o))}function wHe(e,t,n,r,i,o,a){let s=[],l=ah.get(i)||0;n=a?n:br(l6(n,i),l);for(let c=n;c<=r;c=br(c+i,l))s.push(Object.is(c,-0)?0:c);return s}function wM(e,t,n,r,i,o,a){const s=[],l=e.scales[e.axes[t].scale].log,c=l==10?_d:Hoe,d=Ts(c(n));i=Zg(l,d),l==10&&(i=Rp[au(i,Rp)]);let f=n,p=i*l;l==10&&(p=Rp[au(p,Rp)]);do s.push(f),f=f+i,l==10&&!ah.has(f)&&(f=br(f,ah.get(i))),f>=p&&(i=f,p=i*l,l==10&&(p=Rp[au(p,Rp)]));while(f<=r);return s}function kHe(e,t,n,r,i,o,a){let s=e.scales[e.axes[t].scale].asinh,l=r>s?wM(e,t,pa(s,n),r,i):[s],c=r>=0&&n<=0?[0]:[];return(n<-s?wM(e,t,pa(s,-r),-n,i):[s]).reverse().map(d=>-d).concat(c,l)}const jae=/./,SHe=/[12357]/,CHe=/[125]/,Tae=/1/,kM=(e,t,n,r)=>e.map((i,o)=>t==4&&i==0||o%r==0&&n.test(i.toExponential()[i<0?1:0])?i:null);function jHe(e,t,n,r,i){let o=e.axes[n],a=o.scale,s=e.scales[a],l=e.valToPos,c=o._space,d=l(10,a),f=l(9,a)-d>=c?jae:l(7,a)-d>=c?SHe:l(5,a)-d>=c?CHe:Tae;if(f==Tae){let p=Zi(l(1,a)-d);if(pi,$ae={show:!0,auto:!0,sorted:0,gaps:Nae,alpha:1,facets:[Ri({},Eae,{scale:"x"}),Ri({},Eae,{scale:"y"})]},Mae={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:Nae,alpha:1,points:{show:NHe,filter:null},values:null,min:yr,max:-yr,idxs:[],path:null,clip:null};function $He(e,t,n,r,i){return n/10}const Lae={time:nVe,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},MHe=Ri({},Lae,{time:!1,ori:1}),Rae={};function Oae(e,t){let n=Rae[e];return n||(n={key:e,plots:[],sub(r){n.plots.push(r)},unsub(r){n.plots=n.plots.filter(i=>i!=r)},pub(r,i,o,a,s,l,c){for(let d=0;d{let w=a.pxRound;const x=c.dir*(c.ori==0?1:-1),S=c.ori==0?Xg:Jg;let C,j;x==1?(C=n,j=r):(C=r,j=n);let T=w(f(s[C],c,y,v)),E=w(p(l[C],d,b,_)),$=w(f(s[j],c,y,v)),A=w(p(o==1?d.max:d.min,d,b,_)),M=new Path2D(i);return S(M,$,A),S(M,T,A),S(M,T,E),M})}function h6(e,t,n,r,i,o){let a=null;if(e.length>0){a=new Path2D;const s=t==0?g6:TM;let l=n;for(let f=0;fp[0]){let v=p[0]-l;v>0&&s(a,l,r,v,r+o),l=p[1]}}let c=n+i-l,d=10;c>0&&s(a,l,r-d/2,c,r+o+d)}return a}function RHe(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])}function jM(e,t,n,r,i,o,a){let s=[],l=e.length;for(let c=i==1?n:r;c>=n&&c<=r;c+=i)if(t[c]===null){let d=c,f=c;if(i==1)for(;++c<=r&&t[c]===null;)f=c;else for(;--c>=n&&t[c]===null;)f=c;let p=o(e[d]),v=f==d?p:o(e[f]),_=d-i;p=a<=0&&_>=0&&_=0&&y>=0&&y=p&&s.push([p,v])}return s}function Pae(e){return e==0?Goe:e==1?qi:t=>Lp(t,e)}function zae(e){let t=e==0?p6:m6,n=e==0?(i,o,a,s,l,c)=>{i.arcTo(o,a,s,l,c)}:(i,o,a,s,l,c)=>{i.arcTo(a,o,l,s,c)},r=e==0?(i,o,a,s,l)=>{i.rect(o,a,s,l)}:(i,o,a,s,l)=>{i.rect(a,o,l,s)};return(i,o,a,s,l,c=0,d=0)=>{c==0&&d==0?r(i,o,a,s,l):(c=su(c,s/2,l/2),d=su(d,s/2,l/2),t(i,o+c,a),n(i,o+s,a,o+s,a+l,c),n(i,o+s,a+l,o,a+l,d),n(i,o,a+l,o,a,d),n(i,o,a,o+s,a,c),i.closePath())}}const p6=(e,t,n)=>{e.moveTo(t,n)},m6=(e,t,n)=>{e.moveTo(n,t)},Xg=(e,t,n)=>{e.lineTo(t,n)},Jg=(e,t,n)=>{e.lineTo(n,t)},g6=zae(0),TM=zae(1),Dae=(e,t,n,r,i,o)=>{e.arc(t,n,r,i,o)},Aae=(e,t,n,r,i,o)=>{e.arc(n,t,r,i,o)},Fae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(t,n,r,i,o,a)},Bae=(e,t,n,r,i,o,a)=>{e.bezierCurveTo(n,t,i,r,a,o)};function Uae(e){return(t,n,r,i,o)=>Op(t,n,(a,s,l,c,d,f,p,v,_,y,b)=>{let{pxRound:w,points:x}=a,S,C;c.ori==0?(S=p6,C=Dae):(S=m6,C=Aae);const j=br(x.width*Fn,3);let T=(x.size-x.width)/2*Fn,E=br(T*2,3),$=new Path2D,A=new Path2D,{left:M,top:P,width:te,height:Z}=t.bbox;g6(A,M-E,P-E,te+E*2,Z+E*2);const O=J=>{if(l[J]!=null){let D=w(f(s[J],c,y,v)),Y=w(p(l[J],d,b,_));S($,D+T,Y),C($,D,Y,T,0,s6*2)}};if(o)o.forEach(O);else for(let J=r;J<=i;J++)O(J);return{stroke:j>0?$:null,fill:$,clip:A,flags:Kg|SM}})}function Wae(e){return(t,n,r,i,o,a)=>{r!=i&&(o!=r&&a!=r&&e(t,n,r),o!=i&&a!=i&&e(t,n,i),e(t,n,a))}}const OHe=Wae(Xg),PHe=Wae(Jg);function Vae(e){const t=Ln(e==null?void 0:e.alignGaps,0);return(n,r,i,o)=>Op(n,r,(a,s,l,c,d,f,p,v,_,y,b)=>{[i,o]=i6(l,i,o);let w=a.pxRound,x=te=>w(f(te,c,y,v)),S=te=>w(p(te,d,b,_)),C,j;c.ori==0?(C=Xg,j=OHe):(C=Jg,j=PHe);const T=c.dir*(c.ori==0?1:-1),E={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},$=E.stroke;let A=!1;if(o-i>=y*4){let te=U=>n.posToVal(U,c.key,!0),Z=null,O=null,J,D,Y,F=x(s[T==1?i:o]),H=x(s[i]),ee=x(s[o]),ce=te(T==1?H+1:ee-1);for(let U=T==1?i:o;U>=i&&U<=o;U+=T){let ae=s[U],je=(T==1?aece)?F:x(ae),me=l[U];je==F?me!=null?(D=me,Z==null?(C($,je,S(D)),J=Z=O=D):DO&&(O=D)):me===null&&(A=!0):(Z!=null&&j($,F,S(Z),S(O),S(J),S(D)),me!=null?(D=me,C($,je,S(D)),Z=O=J=D):(Z=O=null,me===null&&(A=!0)),F=je,ce=te(F+T))}Z!=null&&Z!=O&&Y!=F&&j($,F,S(Z),S(O),S(J),S(D))}else for(let te=T==1?i:o;te>=i&&te<=o;te+=T){let Z=l[te];Z===null?A=!0:Z!=null&&C($,x(s[te]),S(Z))}let[M,P]=CM(n,r);if(a.fill!=null||M!=0){let te=E.fill=new Path2D($),Z=a.fillTo(n,r,a.min,a.max,M),O=S(Z),J=x(s[i]),D=x(s[o]);T==-1&&([D,J]=[J,D]),C(te,D,O),C(te,J,O)}if(!a.spanGaps){let te=[];A&&te.push(...jM(s,l,i,o,T,x,t)),E.gaps=te=a.gaps(n,r,i,o,te),E.clip=h6(te,c.ori,v,_,y,b)}return P!=0&&(E.band=P==2?[xd(n,r,i,o,$,-1),xd(n,r,i,o,$,1)]:xd(n,r,i,o,$,P)),E})}function zHe(e){const t=Ln(e.align,1),n=Ln(e.ascDesc,!1),r=Ln(e.alignGaps,0),i=Ln(e.extend,!1);return(o,a,s,l)=>Op(o,a,(c,d,f,p,v,_,y,b,w,x,S)=>{[s,l]=i6(f,s,l);let C=c.pxRound,{left:j,width:T}=o.bbox,E=ee=>C(_(ee,p,x,b)),$=ee=>C(y(ee,v,S,w)),A=p.ori==0?Xg:Jg;const M={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Kg},P=M.stroke,te=p.dir*(p.ori==0?1:-1);let Z=$(f[te==1?s:l]),O=E(d[te==1?s:l]),J=O,D=O;i&&t==-1&&(D=j,A(P,D,Z)),A(P,O,Z);for(let ee=te==1?s:l;ee>=s&&ee<=l;ee+=te){let ce=f[ee];if(ce==null)continue;let U=E(d[ee]),ae=$(ce);t==1?A(P,U,Z):A(P,J,ae),A(P,U,ae),Z=ae,J=U}let Y=J;i&&t==1&&(Y=j+T,A(P,Y,Z));let[F,H]=CM(o,a);if(c.fill!=null||F!=0){let ee=M.fill=new Path2D(P),ce=c.fillTo(o,a,c.min,c.max,F),U=$(ce);A(ee,Y,U),A(ee,D,U)}if(!c.spanGaps){let ee=[];ee.push(...jM(d,f,s,l,te,E,r));let ce=c.width*Fn/2,U=n||t==1?ce:-ce,ae=n||t==-1?-ce:ce;ee.forEach(je=>{je[0]+=U,je[1]+=ae}),M.gaps=ee=c.gaps(o,a,s,l,ee),M.clip=h6(ee,p.ori,b,w,x,S)}return H!=0&&(M.band=H==2?[xd(o,a,s,l,P,-1),xd(o,a,s,l,P,1)]:xd(o,a,s,l,P,H)),M})}function Hae(e,t,n,r,i,o,a=yr){if(e.length>1){let s=null;for(let l=0,c=1/0;l{}),{fill:f,stroke:p}=c;return(v,_,y,b)=>Op(v,_,(w,x,S,C,j,T,E,$,A,M,P)=>{let te=w.pxRound,Z=n,O=r*Fn,J=s*Fn,D=l*Fn,Y,F;C.ori==0?[Y,F]=o(v,_):[F,Y]=o(v,_);const H=C.dir*(C.ori==0?1:-1);let ee=C.ori==0?g6:TM,ce=C.ori==0?d:(De,Dt,pn,Yn,fr,Kn,wr)=>{d(De,Dt,pn,fr,Yn,wr,Kn)},U=Ln(v.bands,pM).find(De=>De.series[0]==_),ae=U!=null?U.dir:0,je=w.fillTo(v,_,w.min,w.max,ae),me=te(E(je,j,P,A)),ke,he,ue,re=M,ge=te(w.width*Fn),$e=!1,pe=null,ye=null,Se=null,Ce=null;f!=null&&(ge==0||p!=null)&&($e=!0,pe=f.values(v,_,y,b),ye=new Map,new Set(pe).forEach(De=>{De!=null&&ye.set(De,new Path2D)}),ge>0&&(Se=p.values(v,_,y,b),Ce=new Map,new Set(Se).forEach(De=>{De!=null&&Ce.set(De,new Path2D)})));let{x0:Be,size:Ge}=c;if(Be!=null&&Ge!=null){Z=1,x=Be.values(v,_,y,b),Be.unit==2&&(x=x.map(Dt=>v.posToVal($+Dt*M,C.key,!0)));let De=Ge.values(v,_,y,b);Ge.unit==2?he=De[0]*M:he=T(De[0],C,M,$)-T(0,C,M,$),re=Hae(x,S,T,C,M,$,re),ue=re-he+O}else re=Hae(x,S,T,C,M,$,re),ue=re*a+O,he=re-ue;ue<1&&(ue=0),ge>=he/2&&(ge=0),ue<5&&(te=Goe);let xt=ue>0,St=re-ue-(xt?ge:0);he=te(hM(St,D,J)),ke=(Z==0?he/2:Z==H?0:he)-Z*H*((Z==0?O/2:0)+(xt?ge/2:0));const ut={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},ct=$e?null:new Path2D;let bt=null;if(U!=null)bt=v.data[U.series[1]];else{let{y0:De,y1:Dt}=c;De!=null&&Dt!=null&&(S=Dt.values(v,_,y,b),bt=De.values(v,_,y,b))}let Qe=Y*he,Ke=F*he;for(let De=H==1?y:b;De>=y&&De<=b;De+=H){let Dt=S[De];if(Dt==null)continue;if(bt!=null){let tr=bt[De]??0;if(Dt-tr==0)continue;me=E(tr,j,P,A)}let pn=C.distr!=2||c!=null?x[De]:De,Yn=T(pn,C,M,$),fr=E(Ln(Dt,je),j,P,A),Kn=te(Yn-ke),wr=te(pa(fr,me)),Pn=te(su(fr,me)),$r=wr-Pn;if(Dt!=null){let tr=Dt<0?Ke:Qe,kr=Dt<0?Qe:Ke;$e?(ge>0&&Se[De]!=null&&ee(Ce.get(Se[De]),Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr),pe[De]!=null&&ee(ye.get(pe[De]),Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr)):ee(ct,Kn,Pn+Ts(ge/2),he,pa(0,$r-ge),tr,kr),ce(v,_,De,Kn-ge/2,Pn,he+ge,$r)}}return ge>0?ut.stroke=$e?Ce:ct:$e||(ut._fill=w.width==0?w._fill:w._stroke??w._fill,ut.width=0),ut.fill=$e?ye:ct,ut})}function AHe(e,t){const n=Ln(t==null?void 0:t.alignGaps,0);return(r,i,o,a)=>Op(r,i,(s,l,c,d,f,p,v,_,y,b,w)=>{[o,a]=i6(c,o,a);let x=s.pxRound,S=Y=>x(p(Y,d,b,_)),C=Y=>x(v(Y,f,w,y)),j,T,E;d.ori==0?(j=p6,E=Xg,T=Fae):(j=m6,E=Jg,T=Bae);const $=d.dir*(d.ori==0?1:-1);let A=S(l[$==1?o:a]),M=A,P=[],te=[];for(let Y=$==1?o:a;Y>=o&&Y<=a;Y+=$)if(c[Y]!=null){let F=l[Y],H=S(F);P.push(M=H),te.push(C(c[Y]))}const Z={stroke:e(P,te,j,E,T,x),fill:null,clip:null,band:null,gaps:null,flags:Kg},O=Z.stroke;let[J,D]=CM(r,i);if(s.fill!=null||J!=0){let Y=Z.fill=new Path2D(O),F=s.fillTo(r,i,s.min,s.max,J),H=C(F);E(Y,M,H),E(Y,A,H)}if(!s.spanGaps){let Y=[];Y.push(...jM(l,c,o,a,$,S,n)),Z.gaps=Y=s.gaps(r,i,o,a,Y),Z.clip=h6(Y,d.ori,_,y,b,w)}return D!=0&&(Z.band=D==2?[xd(r,i,o,a,O,-1),xd(r,i,o,a,O,1)]:xd(r,i,o,a,O,D)),Z})}function FHe(e){return AHe(BHe,e)}function BHe(e,t,n,r,i,o){const a=e.length;if(a<2)return null;const s=new Path2D;if(n(s,e[0],t[0]),a==2)r(s,e[1],t[1]);else{let l=Array(a),c=Array(a-1),d=Array(a-1),f=Array(a-1);for(let p=0;p0!=c[p]>0?l[p]=0:(l[p]=3*(f[p-1]+f[p])/((2*f[p]+f[p-1])/c[p-1]+(f[p]+2*f[p-1])/c[p]),isFinite(l[p])||(l[p]=0));l[a-1]=c[a-2];for(let p=0;p{jn.pxRatio=Fn}));const UHe=Vae(),WHe=Uae();function qae(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((i,o)=>EM(i,o,t,n))}function VHe(e,t){return e.map((n,r)=>r==0?{}:Ri({},t,n))}function EM(e,t,n,r){return Ri({},t==0?n:r,e)}function Gae(e,t,n){return t==null?qg:[t,n]}const HHe=Gae;function ZHe(e,t,n){return t==null?qg:a6(t,n,cM,!0)}function Yae(e,t,n,r){return t==null?qg:o6(t,n,e.scales[r].log,!1)}const qHe=Yae;function Kae(e,t,n,r){return t==null?qg:uM(t,n,e.scales[r].log,!1)}const GHe=Kae;function YHe(e,t,n,r,i){let o=pa(Zoe(e),Zoe(t)),a=t-e,s=au(i/r*a,n);do{let l=n[s],c=r*l/a;if(c>=i&&o+(l<5?ah.get(l):0)<=17)return[l,c]}while(++s(t=qi((n=+i)*Fn))+"px"),[e,t,n]}function KHe(e){e.show&&[e.font,e.labelFont].forEach(t=>{let n=br(t[2]*Fn,1);t[0]=t[0].replace(/[0-9.]+px/,n+"px"),t[1]=n})}function jn(e,t,n){const r={mode:Ln(e.mode,1)},i=r.mode;function o(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?1-de:de)}function a(N,z,K,Q){let de=z.valToPct(N);return Q+K*(z.dir==-1?de:1-de)}function s(N,z,K,Q){return z.ori==0?o(N,z,K,Q):a(N,z,K,Q)}r.valToPosH=o,r.valToPosV=a;let l=!1;r.status=0;const c=r.root=fl(rVe);if(e.id!=null&&(c.id=e.id),Cs(c,e.class),e.title){let N=fl(aVe,c);N.textContent=e.title}const d=ou("canvas"),f=r.ctx=d.getContext("2d"),p=fl(sVe,c);$p("click",p,N=>{N.target===_&&(pr!=Wd||Cr!=Vd)&&Ai.click(r,N)},!0);const v=r.under=fl(lVe,p);p.appendChild(d);const _=r.over=fl(uVe,p);e=Gg(e);const y=+Ln(e.pxAlign,1),b=Pae(y);(e.plugins||[]).forEach(N=>{N.opts&&(e=N.opts(r,e)||e)});const w=e.ms||.001,x=r.series=i==1?qae(e.series||[],Cae,Mae,!1):VHe(e.series||[null],$ae),S=r.axes=qae(e.axes||[],Sae,Iae,!0),C=r.scales={},j=r.bands=e.bands||[];j.forEach(N=>{N.fill=bn(N.fill||null),N.dir=Ln(N.dir,-1)});const T=i==2?x[1].facets[0].scale:x[0].scale,E={axes:Kt,series:z1},$=(e.drawOrder||["axes","series"]).map(N=>E[N]);function A(N){const z=N.distr==3?K=>_d(K>0?K:N.clamp(r,K,N.min,N.max,N.key)):N.distr==4?K=>fM(K,N.asinh):N.distr==100?K=>N.fwd(K):K=>K;return K=>{let Q=z(K),{_min:de,_max:xe}=N,Me=xe-de;return(Q-de)/Me}}function M(N){let z=C[N];if(z==null){let K=(e.scales||g_)[N]||g_;if(K.from!=null){M(K.from);let Q=Ri({},C[K.from],K,{key:N});Q.valToPct=A(Q),C[N]=Q}else{z=C[N]=Ri({},N==T?Lae:MHe,K),z.key=N;let Q=z.time,de=z.range,xe=sh(de);if((N!=T||i==2&&!Q)&&(xe&&(de[0]==null||de[1]==null)&&(de={min:de[0]==null?Uoe:{mode:1,hard:de[0],soft:de[0]},max:de[1]==null?Uoe:{mode:1,hard:de[1],soft:de[1]}},xe=!1),!xe&&u6(de))){let Me=de;de=(Fe,Ve,et)=>Ve==null?qg:a6(Ve,et,Me)}z.range=bn(de||(Q?HHe:N==T?z.distr==3?qHe:z.distr==4?GHe:Gae:z.distr==3?Yae:z.distr==4?Kae:ZHe)),z.auto=bn(xe?!1:z.auto),z.clamp=bn(z.clamp||$He),z._min=z._max=null,z.valToPct=A(z)}}}M("x"),M("y"),i==1&&x.forEach(N=>{M(N.scale)}),S.forEach(N=>{M(N.scale)});for(let N in e.scales)M(N);const P=C[T],te=P.distr;let Z,O;P.ori==0?(Cs(c,iVe),Z=o,O=a):(Cs(c,oVe),Z=a,O=o);const J={};for(let N in C){let z=C[N];(z.min!=null||z.max!=null)&&(J[N]={min:z.min,max:z.max},z.min=z.max=null)}const D=e.tzDate||(N=>new Date(qi(N/w))),Y=e.fmtDate||mM,F=w==1?iHe(D):sHe(D),H=gae(D,mae(w==1?rHe:aHe,Y)),ee=yae(D,vae(uHe,Y)),ce=[],U=r.legend=Ri({},fHe,e.legend),ae=r.cursor=Ri({},yHe,{drag:{y:i==2}},e.cursor),je=U.show,me=ae.show,ke=U.markers;U.idxs=ce,ke.width=bn(ke.width),ke.dash=bn(ke.dash),ke.stroke=bn(ke.stroke),ke.fill=bn(ke.fill);let he,ue,re,ge=[],$e=[],pe,ye=!1,Se={};if(U.live){const N=x[1]?x[1].values:null;ye=N!=null,pe=ye?N(r,1,0):{_:0};for(let z in pe)Se[z]=rM}if(je)if(he=ou("table",mVe,c),re=ou("tbody",null,he),U.mount(r,he),ye){ue=ou("thead",null,he,re);let N=ou("tr",null,ue);ou("th",null,N);for(var Ce in pe)ou("th",joe,N).textContent=Ce}else Cs(he,vVe),U.live&&Cs(he,gVe);const Be={show:!0},Ge={show:!1};function xt(N,z){if(z==0&&(ye||!U.live||i==2))return qg;let K=[],Q=ou("tr",yVe,re,re.childNodes[z]);Cs(Q,N.class),N.show||Cs(Q,Np);let de=ou("th",null,Q);if(ke.show){let Fe=fl(bVe,de);if(z>0){let Ve=ke.width(r,z);Ve&&(Fe.style.border=Ve+"px "+ke.dash(r,z)+" "+ke.stroke(r,z)),Fe.style.background=ke.fill(r,z)}}let xe=fl(joe,de);N.label instanceof HTMLElement?xe.appendChild(N.label):xe.textContent=N.label,z>0&&(ke.show||(xe.style.color=N.width>0?ke.stroke(r,z):ke.fill(r,z)),ut("click",de,Fe=>{if(ae._lock)return;pi(Fe);let Ve=x.indexOf(N);if((Fe.ctrlKey||Fe.metaKey)!=U.isolate){let et=x.some((ot,st)=>st>0&&st!=Ve&&ot.show);x.forEach((ot,st)=>{st>0&&Ja(st,et?st==Ve?Be:Ge:Be,!0,Sn.setSeries)})}else Ja(Ve,{show:!N.show},!0,Sn.setSeries)},!1),$o&&ut(Noe,de,Fe=>{ae._lock||(pi(Fe),Ja(x.indexOf(N),Cc,!0,Sn.setSeries))},!1));for(var Me in pe){let Fe=ou("td",_Ve,Q);Fe.textContent="--",K.push(Fe)}return[Q,K]}const St=new Map;function ut(N,z,K,Q=!0){const de=St.get(z)||{},xe=ae.bind[N](r,z,K,Q);xe&&($p(N,z,de[N]=xe),St.set(z,de))}function ct(N,z,K){const Q=St.get(z)||{};for(let de in Q)(N==null||de==N)&&(lM(de,z,Q[de]),delete Q[de]);N==null&&St.delete(z)}let bt=0,Qe=0,Ke=0,De=0,Dt=0,pn=0,Yn=Dt,fr=pn,Kn=Ke,wr=De,Pn=0,$r=0,tr=0,kr=0;r.bbox={};let ni=!1,uo=!1,Ki=!1,No=!1,Os=!1,zn=!1;function co(N,z,K){(K||N!=r.width||z!=r.height)&&_a(N,z),In(!1),Ki=!0,uo=!0,Bd()}function _a(N,z){r.width=bt=Ke=N,r.height=Qe=De=z,Dt=pn=0,qa(),kl();let K=r.bbox;Pn=K.left=Lp(Dt*Fn,.5),$r=K.top=Lp(pn*Fn,.5),tr=K.width=Lp(Ke*Fn,.5),kr=K.height=Lp(De*Fn,.5)}const yc=3;function bc(){let N=!1,z=0;for(;!N;){z++;let K=ze(z),Q=vt(z);N=z==yc||K&&Q,N||(_a(r.width,r.height),uo=!0)}}function _c({width:N,height:z}){co(N,z)}r.setSize=_c;function qa(){let N=!1,z=!1,K=!1,Q=!1;S.forEach((de,xe)=>{if(de.show&&de._show){let{side:Me,_size:Fe}=de,Ve=Me%2,et=de.label!=null?de.labelSize:0,ot=Fe+et;ot>0&&(Ve?(Ke-=ot,Me==3?(Dt+=ot,Q=!0):K=!0):(De-=ot,Me==0?(pn+=ot,N=!0):z=!0))}}),ri[0]=N,ri[1]=K,ri[2]=z,ri[3]=Q,Ke-=mi[1]+mi[3],Dt+=mi[3],De-=mi[2]+mi[0],pn+=mi[0]}function kl(){let N=Dt+Ke,z=pn+De,K=Dt,Q=pn;function de(xe,Me){switch(xe){case 1:return N+=Me,N-Me;case 2:return z+=Me,z-Me;case 3:return K-=Me,K+Me;case 0:return Q-=Me,Q+Me}}S.forEach((xe,Me)=>{if(xe.show&&xe._show){let Fe=xe.side;xe._pos=de(Fe,xe._size),xe.label!=null&&(xe._lpos=de(Fe,xe.labelSize))}})}if(ae.dataIdx==null){let N=ae.hover,z=N.skip=new Set(N.skip??[]);z.add(void 0);let K=N.prox=bn(N.prox),Q=N.bias??(N.bias=0);ae.dataIdx=(de,xe,Me,Fe)=>{if(xe==0)return Me;let Ve=Me,et=K(de,xe,Me,Fe)??yr,ot=et>=0&&et0;)z.has(Bt[mt])||(an=mt);if(Q==0||Q==1)for(mt=Me;Tt==null&&mt++et&&(Ve=null);return Ve}}const pi=N=>{ae.event=N};ae.idxs=ce,ae._lock=!1;let Bn=ae.points;Bn.show=bn(Bn.show),Bn.size=bn(Bn.size),Bn.stroke=bn(Bn.stroke),Bn.width=bn(Bn.width),Bn.fill=bn(Bn.fill);const Mr=r.focus=Ri({},e.focus||{alpha:.3},ae.focus),$o=Mr.prox>=0,fo=$o&&Bn.one;let Lr=[],ho=[],xa=[];function it(N,z){let K=Bn.show(r,z);if(K instanceof HTMLElement)return Cs(K,pVe),Cs(K,N.class),ec(K,-10,-10,Ke,De),_.insertBefore(K,Lr[z]),K}function Yt(N,z){if(i==1||z>0){let K=i==1&&C[N.scale].time,Q=N.value;N.value=K?tae(Q)?yae(D,vae(Q,Y)):Q||ee:Q||IHe,N.label=N.label||(K?_He:bHe)}if(fo||z>0){N.width=N.width==null?1:N.width,N.paths=N.paths||UHe||MVe,N.fillTo=bn(N.fillTo||LHe),N.pxAlign=+Ln(N.pxAlign,y),N.pxRound=Pae(N.pxAlign),N.stroke=bn(N.stroke||null),N.fill=bn(N.fill||null),N._stroke=N._fill=N._paths=N._focus=null;let K=EHe(pa(1,N.width),1),Q=N.points=Ri({},{size:K,width:pa(1,K*.2),stroke:N.stroke,space:K*2,paths:WHe,_stroke:null,_fill:null},N.points);Q.show=bn(Q.show),Q.filter=bn(Q.filter),Q.fill=bn(Q.fill),Q.stroke=bn(Q.stroke),Q.paths=bn(Q.paths),Q.pxAlign=N.pxAlign}if(je){let K=xt(N,z);ge.splice(z,0,K[0]),$e.splice(z,0,K[1]),U.values.push(null)}if(me){ce.splice(z,0,null);let K=null;fo?z==0&&(K=it(N,z)):z>0&&(K=it(N,z)),Lr.splice(z,0,K),ho.splice(z,0,0),xa.splice(z,0,0)}Ni("addSeries",z)}function nr(N,z){z=z??x.length,N=i==1?EM(N,z,Cae,Mae):EM(N,z,{},$ae),x.splice(z,0,N),Yt(x[z],z)}r.addSeries=nr;function ht(N){if(x.splice(N,1),je){U.values.splice(N,1),$e.splice(N,1);let z=ge.splice(N,1)[0];ct(null,z.firstChild),z.remove()}me&&(ce.splice(N,1),Lr.splice(N,1)[0].remove(),ho.splice(N,1),xa.splice(N,1)),Ni("delSeries",N)}r.delSeries=ht;const ri=[!1,!1,!1,!1];function Ga(N,z){if(N._show=N.show,N.show){let K=N.side%2,Q=C[N.scale];Q==null&&(N.scale=K?x[1].scale:T,Q=C[N.scale]);let de=Q.time;N.size=bn(N.size),N.space=bn(N.space),N.rotate=bn(N.rotate),sh(N.incrs)&&N.incrs.forEach(Me=>{!ah.has(Me)&&ah.set(Me,Qoe(Me))}),N.incrs=bn(N.incrs||(Q.distr==2?eHe:de?w==1?nHe:oHe:Rp)),N.splits=bn(N.splits||(de&&Q.distr==1?F:Q.distr==3?wM:Q.distr==4?kHe:wHe)),N.stroke=bn(N.stroke),N.grid.stroke=bn(N.grid.stroke),N.ticks.stroke=bn(N.ticks.stroke),N.border.stroke=bn(N.border.stroke);let xe=N.values;N.values=sh(xe)&&!sh(xe[0])?bn(xe):de?sh(xe)?gae(D,mae(xe,Y)):tae(xe)?lHe(D,xe):xe||H:xe||xHe,N.filter=bn(N.filter||(Q.distr>=3&&Q.log==10?jHe:Q.distr==3&&Q.log==2?THe:Yoe)),N.font=Xae(N.font),N.labelFont=Xae(N.labelFont),N._size=N.size(r,null,z,0),N._space=N._rotate=N._incrs=N._found=N._splits=N._values=null,N._size>0&&(ri[z]=!0,N._el=fl(cVe,p))}}function Ya(N,z,K,Q){let[de,xe,Me,Fe]=K,Ve=z%2,et=0;return Ve==0&&(Fe||xe)&&(et=z==0&&!de||z==2&&!Me?qi(Sae.size/3):0),Ve==1&&(de||Me)&&(et=z==1&&!xe||z==3&&!Fe?qi(Iae.size/2):0),et}const Ko=r.padding=(e.padding||[Ya,Ya,Ya,Ya]).map(N=>bn(Ln(N,Ya))),mi=r._padding=Ko.map((N,z)=>N(r,z,ri,0));let Un,hr=null,Sr=null;const Ka=i==1?x[0].idxs:null;let po=null,mo=!1;function Wr(N,z){if(t=N??[],r.data=r._data=t,i==2){Un=0;for(let K=1;K=0,zn=!0,Bd()}}r.setData=Wr;function wa(){mo=!0;let N,z;i==1&&(Un>0?(hr=Ka[0]=0,Sr=Ka[1]=Un-1,N=t[0][hr],z=t[0][Sr],te==2?(N=hr,z=Sr):N==z&&(te==3?[N,z]=o6(N,N,P.log,!1):te==4?[N,z]=uM(N,N,P.log,!1):P.time?z=N+qi(86400/w):[N,z]=a6(N,z,cM,!0))):(hr=Ka[0]=N=null,Sr=Ka[1]=z=null)),Mo(T,N,z)}let ji,gi,Ps,go,Xo,Pd,zd,bu,Xi,ii;function xc(N,z,K,Q,de,xe){N??(N=Ioe),K??(K=pM),Q??(Q="butt"),de??(de=Ioe),xe??(xe="round"),N!=ji&&(f.strokeStyle=ji=N),de!=gi&&(f.fillStyle=gi=de),z!=Ps&&(f.lineWidth=Ps=z),xe!=Xo&&(f.lineJoin=Xo=xe),Q!=Pd&&(f.lineCap=Pd=Q),K!=go&&f.setLineDash(go=K)}function _u(N,z,K,Q){z!=gi&&(f.fillStyle=gi=z),N!=zd&&(f.font=zd=N),K!=bu&&(f.textAlign=bu=K),Q!=Xi&&(f.textBaseline=Xi=Q)}function wc(N,z,K,Q,de=0){if(Q.length>0&&N.auto(r,mo)&&(z==null||z.min==null)){let xe=Ln(hr,0),Me=Ln(Sr,Q.length-1),Fe=K.min==null?jVe(Q,xe,Me,de,N.distr==3):[K.min,K.max];N.min=su(N.min,K.min=Fe[0]),N.max=pa(N.max,K.max=Fe[1])}}const kc={min:null,max:null};function Sl(){for(let Q in C){let de=C[Q];J[Q]==null&&(de.min==null||J[T]!=null&&de.auto(r,mo))&&(J[Q]=kc)}for(let Q in C){let de=C[Q];J[Q]==null&&de.from!=null&&J[de.from]!=null&&(J[Q]=kc)}J[T]!=null&&In(!0);let N={};for(let Q in J){let de=J[Q];if(de!=null){let xe=N[Q]=Gg(C[Q],OVe);if(de.min!=null)Ri(xe,de);else if(Q!=T||i==2)if(Un==0&&xe.from==null){let Me=xe.range(r,null,null,Q);xe.min=Me[0],xe.max=Me[1]}else xe.min=yr,xe.max=-yr}}if(Un>0){x.forEach((Q,de)=>{if(i==1){let xe=Q.scale,Me=J[xe];if(Me==null)return;let Fe=N[xe];if(de==0){let Ve=Fe.range(r,Fe.min,Fe.max,xe);Fe.min=Ve[0],Fe.max=Ve[1],hr=au(Fe.min,t[0]),Sr=au(Fe.max,t[0]),Sr-hr>1&&(t[0][hr]Fe.max&&Sr--),Q.min=po[hr],Q.max=po[Sr]}else Q.show&&Q.auto&&wc(Fe,Me,Q,t[de],Q.sorted);Q.idxs[0]=hr,Q.idxs[1]=Sr}else if(de>0&&Q.show&&Q.auto){let[xe,Me]=Q.facets,Fe=xe.scale,Ve=Me.scale,[et,ot]=t[de],st=N[Fe],Ot=N[Ve];st!=null&&wc(st,J[Fe],xe,et,xe.sorted),Ot!=null&&wc(Ot,J[Ve],Me,ot,Me.sorted),Q.min=Me.min,Q.max=Me.max}});for(let Q in N){let de=N[Q],xe=J[Q];if(de.from==null&&(xe==null||xe.min==null)){let Me=de.range(r,de.min==yr?null:de.min,de.max==-yr?null:de.max,Q);de.min=Me[0],de.max=Me[1]}}}for(let Q in N){let de=N[Q];if(de.from!=null){let xe=N[de.from];if(xe.min==null)de.min=de.max=null;else{let Me=de.range(r,xe.min,xe.max,Q);de.min=Me[0],de.max=Me[1]}}}let z={},K=!1;for(let Q in N){let de=N[Q],xe=C[Q];if(xe.min!=de.min||xe.max!=de.max){xe.min=de.min,xe.max=de.max;let Me=xe.distr;xe._min=Me==3?_d(xe.min):Me==4?fM(xe.min,xe.asinh):Me==100?xe.fwd(xe.min):xe.min,xe._max=Me==3?_d(xe.max):Me==4?fM(xe.max,xe.asinh):Me==100?xe.fwd(xe.max):xe.max,z[Q]=K=!0}}if(K){x.forEach((Q,de)=>{i==2?de>0&&z.y&&(Q._paths=null):z[Q.scale]&&(Q._paths=null)});for(let Q in z)Ki=!0,Ni("setScale",Q);me&&ae.left>=0&&(No=zn=!0)}for(let Q in J)J[Q]=null}function Xa(N){let z=hM(hr-1,0,Un-1),K=hM(Sr+1,0,Un-1);for(;N[z]==null&&z>0;)z--;for(;N[K]==null&&K0){let N=x.some(z=>z._focus)&&ii!=Mr.alpha;N&&(f.globalAlpha=ii=Mr.alpha),x.forEach((z,K)=>{if(K>0&&z.show&&(Dd(K,!1),Dd(K,!0),z._paths==null)){let Q=ii;ii!=z.alpha&&(f.globalAlpha=ii=z.alpha);let de=i==2?[0,t[K][0].length-1]:Xa(t[K]);z._paths=z.paths(r,K,de[0],de[1]),ii!=Q&&(f.globalAlpha=ii=Q)}}),x.forEach((z,K)=>{if(K>0&&z.show){let Q=ii;ii!=z.alpha&&(f.globalAlpha=ii=z.alpha),z._paths!=null&&Sc(K,!1);{let de=z._paths!=null?z._paths.gaps:null,xe=z.points.show(r,K,hr,Sr,de),Me=z.points.filter(r,K,xe,de);(xe||Me)&&(z.points._paths=z.points.paths(r,K,hr,Sr,Me),Sc(K,!0))}ii!=Q&&(f.globalAlpha=ii=Q),Ni("drawSeries",K)}}),N&&(f.globalAlpha=ii=1)}}function Dd(N,z){let K=z?x[N].points:x[N];K._stroke=K.stroke(r,N),K._fill=K.fill(r,N)}function Sc(N,z){let K=z?x[N].points:x[N],{stroke:Q,fill:de,clip:xe,flags:Me,_stroke:Fe=K._stroke,_fill:Ve=K._fill,_width:et=K.width}=K._paths;et=br(et*Fn,3);let ot=null,st=et%2/2;z&&Ve==null&&(Ve=et>0?"#fff":Fe);let Ot=K.pxAlign==1&&st>0;if(Ot&&f.translate(st,st),!z){let hn=Pn-et/2,Bt=$r-et/2,an=tr+et,Tt=kr+et;ot=new Path2D,ot.rect(hn,Bt,an,Tt)}z?Fd(Fe,et,K.dash,K.cap,Ve,Q,de,Me,xe):Ad(N,Fe,et,K.dash,K.cap,Ve,Q,de,Me,ot,xe),Ot&&f.translate(-st,-st)}function Ad(N,z,K,Q,de,xe,Me,Fe,Ve,et,ot){let st=!1;Ve!=0&&j.forEach((Ot,hn)=>{if(Ot.series[0]==N){let Bt=x[Ot.series[1]],an=t[Ot.series[1]],Tt=(Bt._paths||g_).band;sh(Tt)&&(Tt=Ot.dir==1?Tt[0]:Tt[1]);let mt,mr=null;Bt.show&&Tt&&IVe(an,hr,Sr)?(mr=Ot.fill(r,hn)||xe,mt=Bt._paths.clip):Tt=null,Fd(z,K,Q,de,mr,Me,Fe,Ve,et,ot,mt,Tt),st=!0}}),st||Fd(z,K,Q,de,xe,Me,Fe,Ve,et,ot)}const Fm=Kg|SM;function Fd(N,z,K,Q,de,xe,Me,Fe,Ve,et,ot,st){xc(N,z,K,Q,de),(Ve||et||st)&&(f.save(),Ve&&f.clip(Ve),et&&f.clip(et)),st?(Fe&Fm)==Fm?(f.clip(st),ot&&f.clip(ot),G(de,Me),R(N,xe,z)):Fe&SM?(G(de,Me),f.clip(st),R(N,xe,z)):Fe&Kg&&(f.save(),f.clip(st),ot&&f.clip(ot),G(de,Me),f.restore(),R(N,xe,z)):(G(de,Me),R(N,xe,z)),(Ve||et||st)&&f.restore()}function R(N,z,K){K>0&&(z instanceof Map?z.forEach((Q,de)=>{f.strokeStyle=ji=de,f.stroke(Q)}):z!=null&&N&&f.stroke(z))}function G(N,z){z instanceof Map?z.forEach((K,Q)=>{f.fillStyle=gi=Q,f.fill(K)}):z!=null&&N&&f.fill(z)}function ie(N,z,K,Q){let de=S[N],xe;if(Q<=0)xe=[0,0];else{let Me=de._space=de.space(r,N,z,K,Q),Fe=de._incrs=de.incrs(r,N,z,K,Q,Me);xe=YHe(z,K,Fe,Q,Me)}return de._found=xe}function Ie(N,z,K,Q,de,xe,Me,Fe,Ve,et){let ot=Me%2/2;y==1&&f.translate(ot,ot),xc(Fe,Me,Ve,et,Fe),f.beginPath();let st,Ot,hn,Bt,an=de+(Q==0||Q==3?-xe:xe);K==0?(Ot=de,Bt=an):(st=de,hn=an);for(let Tt=0;Tt{if(!K.show)return;let de=C[K.scale];if(de.min==null){K._show&&(z=!1,K._show=!1,In(!1));return}else K._show||(z=!1,K._show=!0,In(!1));let xe=K.side,Me=xe%2,{min:Fe,max:Ve}=de,[et,ot]=ie(Q,Fe,Ve,Me==0?Ke:De);if(ot==0)return;let st=de.distr==2,Ot=K._splits=K.splits(r,Q,Fe,Ve,et,ot,st),hn=de.distr==2?Ot.map(mt=>po[mt]):Ot,Bt=de.distr==2?po[Ot[1]]-po[Ot[0]]:et,an=K._values=K.values(r,K.filter(r,hn,Q,ot,Bt),Q,ot,Bt);K._rotate=xe==2?K.rotate(r,an,Q,ot):0;let Tt=K._size;K._size=hl(K.size(r,an,Q,N)),Tt!=null&&K._size!=Tt&&(z=!1)}),z}function vt(N){let z=!0;return Ko.forEach((K,Q)=>{let de=K(r,Q,ri,N);de!=mi[Q]&&(z=!1),mi[Q]=de}),z}function Kt(){for(let N=0;Npo[ar]):hn,an=ot.distr==2?po[hn[1]]-po[hn[0]]:Ve,Tt=z.ticks,mt=z.border,mr=Tt.show?Tt.size:0,Vr=qi(mr*Fn),$i=qi((z.alignTo==2?z._size-mr-z.gap:z.gap)*Fn),_n=z._rotate*-s6/180,le=b(z._pos*Fn),Ne=(Vr+$i)*Fe,we=le+Ne;xe=Q==0?we:0,de=Q==1?we:0;let Je=z.font[0],_t=z.align==1?Wg:z.align==2?Q$:_n>0?Wg:_n<0?Q$:Q==0?"center":K==3?Q$:Wg,Gt=_n||Q==1?"middle":K==2?h_:Toe;_u(Je,Me,_t,Gt);let En=z.font[1]*z.lineGap,tn=hn.map(ar=>b(s(ar,ot,st,Ot))),Qo=z._values;for(let ar=0;ar{K>0&&(z._paths=null,N&&(i==1?(z.min=null,z.max=null):z.facets.forEach(Q=>{Q.min=null,Q.max=null})))})}let Di=!1,Ti=!1,Ji=[];function pC(){Ti=!1;for(let N=0;N0&&queueMicrotask(pC)}r.batch=jx;function Tx(){if(ni&&(Sl(),ni=!1),Ki&&(bc(),Ki=!1),uo){if(zr(v,Wg,Dt),zr(v,h_,pn),zr(v,d_,Ke),zr(v,f_,De),zr(_,Wg,Dt),zr(_,h_,pn),zr(_,d_,Ke),zr(_,f_,De),zr(p,d_,bt),zr(p,f_,Qe),d.width=qi(bt*Fn),d.height=qi(Qe*Fn),S.forEach(({_el:N,_show:z,_size:K,_pos:Q,side:de})=>{if(N!=null)if(z){let xe=de===3||de===0?K:0,Me=de%2==1;zr(N,Me?"left":"top",Q-xe),zr(N,Me?"width":"height",K),zr(N,Me?"top":"left",Me?pn:Dt),zr(N,Me?"height":"width",Me?De:Ke),aM(N,Np)}else Cs(N,Np)}),ji=gi=Ps=Xo=Pd=zd=bu=Xi=go=null,ii=1,jc(!0),Dt!=Yn||pn!=fr||Ke!=Kn||De!=wr){In(!1);let N=Ke/Kn,z=De/wr;if(me&&!No&&ae.left>=0){ae.left*=N,ae.top*=z,xu&&ec(xu,qi(ae.left),0,Ke,De),Ud&&ec(Ud,0,qi(ae.top),Ke,De);for(let K=0;K=0&&ir.width>0){ir.left*=N,ir.width*=N,ir.top*=z,ir.height*=z;for(let K in Z1)zr(Hd,K,ir[K])}Yn=Dt,fr=pn,Kn=Ke,wr=De}Ni("setSize"),uo=!1}bt>0&&Qe>0&&(f.clearRect(0,0,d.width,d.height),Ni("drawClear"),$.forEach(N=>N()),Ni("draw")),ir.show&&Os&&(oi(ir),Os=!1),me&&No&&(jl(null,!0,!1),No=!1),U.show&&U.live&&zn&&(or(),zn=!1),l||(l=!0,r.status=1,Ni("ready")),mo=!1,Di=!1}r.redraw=(N,z)=>{Ki=z||!1,N!==!1?Mo(T,P.min,P.max):Bd()};function D1(N,z){let K=C[N];if(K.from==null){if(Un==0){let Q=K.range(r,z.min,z.max,N);z.min=Q[0],z.max=Q[1]}if(z.min>z.max){let Q=z.min;z.min=z.max,z.max=Q}if(Un>1&&z.min!=null&&z.max!=null&&z.max-z.min<1e-16)return;N==T&&K.distr==2&&Un>0&&(z.min=au(z.min,t[0]),z.max=au(z.max,t[0]),z.min==z.max&&z.max++),J[N]=z,ni=!0,Bd()}}r.setScale=D1;let A1,F1,xu,Ud,Ix,Ex,Wd,Vd,rr,Xn,pr,Cr,wu=!1;const Ai=ae.drag;let Ii=Ai.x,Ei=Ai.y;me&&(ae.x&&(A1=fl(fVe,_)),ae.y&&(F1=fl(hVe,_)),P.ori==0?(xu=A1,Ud=F1):(xu=F1,Ud=A1),pr=ae.left,Cr=ae.top);const ir=r.select=Ri({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),Hd=ir.show?fl(dVe,ir.over?_:v):null;function oi(N,z){if(ir.show){for(let K in N)ir[K]=N[K],K in Z1&&zr(Hd,K,N[K]);z!==!1&&Ni("setSelect")}}r.setSelect=oi;function B1(N){if(x[N].show)je&&aM(ge[N],Np);else if(je&&Cs(ge[N],Np),me){let z=fo?Lr[0]:Lr[N];z!=null&&ec(z,-10,-10,Ke,De)}}function Mo(N,z,K){D1(N,{min:z,max:K})}function Ja(N,z,K,Q){z.focus!=null&&Jo(N),z.show!=null&&x.forEach((de,xe)=>{xe>0&&(N==xe||N==null)&&(de.show=z.show,B1(xe),i==2?(Mo(de.facets[0].scale,null,null),Mo(de.facets[1].scale,null,null)):Mo(de.scale,null,null),Bd())}),K!==!1&&Ni("setSeries",N,z),Q&&qd("setSeries",r,N,z)}r.setSeries=Ja;function U1(N,z){Ri(j[N],z)}function ka(N,z){N.fill=bn(N.fill||null),N.dir=Ln(N.dir,-1),z=z??j.length,j.splice(z,0,N)}function Nx(N){N==null?j.length=0:j.splice(N,1)}r.addBand=ka,r.setBand=U1,r.delBand=Nx;function $x(N,z){x[N].alpha=z,me&&Lr[N]!=null&&(Lr[N].style.opacity=z),je&&ge[N]&&(ge[N].style.opacity=z)}let zs,Cl,ku;const Cc={focus:!0};function Jo(N){if(N!=ku){let z=N==null,K=Mr.alpha!=1;x.forEach((Q,de)=>{if(i==1||de>0){let xe=z||de==0||de==N;Q._focus=z?null:xe,K&&$x(de,xe?1:Mr.alpha)}}),ku=N,K&&Bd()}}je&&$o&&ut($oe,he,N=>{ae._lock||(pi(N),ku!=null&&Ja(null,Cc,!0,Sn.setSeries))});function Ds(N,z,K){let Q=C[z];K&&(N=N/Fn-(Q.ori==1?pn:Dt));let de=Ke;Q.ori==1&&(de=De,N=de-N),Q.dir==-1&&(N=de-N);let xe=Q._min,Me=Q._max,Fe=N/de,Ve=xe+(Me-xe)*Fe,et=Q.distr;return et==3?Zg(10,Ve):et==4?NVe(Ve,Q.asinh):et==100?Q.bwd(Ve):Ve}function Sa(N,z){let K=Ds(N,T,z);return au(K,t[0],hr,Sr)}r.valToIdx=N=>au(N,t[0]),r.posToIdx=Sa,r.posToVal=Ds,r.valToPos=(N,z,K)=>C[z].ori==0?o(N,C[z],K?tr:Ke,K?Pn:0):a(N,C[z],K?kr:De,K?$r:0),r.setCursor=(N,z,K)=>{pr=N.left,Cr=N.top,jl(null,z,K)};function Mx(N,z){zr(Hd,Wg,ir.left=N),zr(Hd,d_,ir.width=z)}function W1(N,z){zr(Hd,h_,ir.top=N),zr(Hd,f_,ir.height=z)}let Ca=P.ori==0?Mx:W1,Su=P.ori==1?Mx:W1;function V1(){if(je&&U.live)for(let N=i==2?1:0;N{ce[Q]=K}):RVe(N.idx)||ce.fill(N.idx),U.idx=ce[0]),je&&U.live){for(let K=0;K0||i==1&&!ye)&&Cu(K,ce[K]);V1()}zn=!1,z!==!1&&Ni("setLegend")}r.setLegend=or;function Cu(N,z){let K=x[N],Q=N==0&&te==2?po:t[N],de;ye?de=K.values(r,N,z)??Se:(de=K.value(r,z==null?null:Q[z],N,z),de=de==null?Se:{_:de}),U.values[N]=de}function jl(N,z,K){rr=pr,Xn=Cr,[pr,Cr]=ae.move(r,pr,Cr),ae.left=pr,ae.top=Cr,me&&(xu&&ec(xu,qi(pr),0,Ke,De),Ud&&ec(Ud,0,qi(Cr),Ke,De));let Q,de=hr>Sr;zs=yr,Cl=null;let xe=P.ori==0?Ke:De,Me=P.ori==1?Ke:De;if(pr<0||Un==0||de){Q=ae.idx=null;for(let Fe=0;Fe0&&mr.show){let Ne=_n==null?-10:_n==Q?et:Z(i==1?t[0][_n]:t[mt][0][_n],P,xe,0),we=le==null?-10:O(le,i==1?C[mr.scale]:C[mr.facets[1].scale],Me,0);if($o&&le!=null){let Je=P.ori==1?pr:Cr,_t=Zi(Mr.dist(r,mt,_n,we,Je));if(_t=0?1:-1,Qo=En>=0?1:-1;Qo==tn&&(Qo==1?Gt==1?le>=En:le<=En:Gt==1?le<=En:le>=En)&&(zs=_t,Cl=mt)}else zs=_t,Cl=mt}}if(zn||fo){let Je,_t;P.ori==0?(Je=Ne,_t=we):(Je=we,_t=Ne);let Gt,En,tn,Qo,As,ar,Qi=!0,Ec=Bn.bbox;if(Ec!=null){Qi=!1;let ai=Ec(r,mt);tn=ai.left,Qo=ai.top,Gt=ai.width,En=ai.height}else tn=Je,Qo=_t,Gt=En=Bn.size(r,mt);if(ar=Bn.fill(r,mt),As=Bn.stroke(r,mt),fo)mt==Cl&&zs<=Mr.prox&&(ot=tn,st=Qo,Ot=Gt,hn=En,Bt=Qi,an=ar,Tt=As);else{let ai=Lr[mt];ai!=null&&(ho[mt]=tn,xa[mt]=Qo,Doe(ai,Gt,En,Qi),Poe(ai,ar,As),ec(ai,hl(tn),hl(Qo),Ke,De))}}}}if(fo){let mt=Mr.prox,mr=ku==null?zs<=mt:zs>mt||Cl!=ku;if(zn||mr){let Vr=Lr[0];Vr!=null&&(ho[0]=ot,xa[0]=st,Doe(Vr,Ot,hn,Bt),Poe(Vr,an,Tt),ec(Vr,hl(ot),hl(st),Ke,De))}}}if(ir.show&&wu)if(N!=null){let[Fe,Ve]=Sn.scales,[et,ot]=Sn.match,[st,Ot]=N.cursor.sync.scales,hn=N.cursor.drag;if(Ii=hn._x,Ei=hn._y,Ii||Ei){let{left:Bt,top:an,width:Tt,height:mt}=N.select,mr=N.scales[st].ori,Vr=N.posToVal,$i,_n,le,Ne,we,Je=Fe!=null&&et(Fe,st),_t=Ve!=null&&ot(Ve,Ot);Je&&Ii?(mr==0?($i=Bt,_n=Tt):($i=an,_n=mt),le=C[Fe],Ne=Z(Vr($i,st),le,xe,0),we=Z(Vr($i+_n,st),le,xe,0),Ca(su(Ne,we),Zi(we-Ne))):Ca(0,xe),_t&&Ei?(mr==1?($i=Bt,_n=Tt):($i=an,_n=mt),le=C[Ve],Ne=O(Vr($i,Ot),le,Me,0),we=O(Vr($i+_n,Ot),le,Me,0),Su(su(Ne,we),Zi(we-Ne))):Su(0,Me)}else Bm()}else{let Fe=Zi(rr-Ix),Ve=Zi(Xn-Ex);if(P.ori==1){let Ot=Fe;Fe=Ve,Ve=Ot}Ii=Ai.x&&Fe>=Ai.dist,Ei=Ai.y&&Ve>=Ai.dist;let et=Ai.uni;et!=null?Ii&&Ei&&(Ii=Fe>=et,Ei=Ve>=et,!Ii&&!Ei&&(Ve>Fe?Ei=!0:Ii=!0)):Ai.x&&Ai.y&&(Ii||Ei)&&(Ii=Ei=!0);let ot,st;Ii&&(P.ori==0?(ot=Wd,st=pr):(ot=Vd,st=Cr),Ca(su(ot,st),Zi(st-ot)),Ei||Su(0,Me)),Ei&&(P.ori==1?(ot=Wd,st=pr):(ot=Vd,st=Cr),Su(su(ot,st),Zi(st-ot)),Ii||Ca(0,xe)),!Ii&&!Ei&&(Ca(0,0),Su(0,0))}if(Ai._x=Ii,Ai._y=Ei,N==null){if(K){if(Wm!=null){let[Fe,Ve]=Sn.scales;Sn.values[0]=Fe!=null?Ds(P.ori==0?pr:Cr,Fe):null,Sn.values[1]=Ve!=null?Ds(P.ori==1?pr:Cr,Ve):null}qd(tM,r,pr,Cr,Ke,De,Q)}if($o){let Fe=K&&Sn.setSeries,Ve=Mr.prox;ku==null?zs<=Ve&&Ja(Cl,Cc,!0,Fe):zs>Ve?Ja(null,Cc,!0,Fe):Cl!=ku&&Ja(Cl,Cc,!0,Fe)}}zn&&(U.idx=Q,or()),z!==!1&&Ni("setCursor")}let ju=null;Object.defineProperty(r,"rect",{get(){return ju==null&&jc(!1),ju}});function jc(N=!1){N?ju=null:(ju=_.getBoundingClientRect(),Ni("syncRect",ju))}function Lx(N,z,K,Q,de,xe,Me){ae._lock||wu&&N!=null&&N.movementX==0&&N.movementY==0||(H1(N,z,K,Q,de,xe,Me,!1,N!=null),N!=null?jl(null,!0,!0):jl(z,!0,!1))}function H1(N,z,K,Q,de,xe,Me,Fe,Ve){if(ju==null&&jc(!1),pi(N),N!=null)K=N.clientX-ju.left,Q=N.clientY-ju.top;else{if(K<0||Q<0){pr=-10,Cr=-10;return}let[et,ot]=Sn.scales,st=z.cursor.sync,[Ot,hn]=st.values,[Bt,an]=st.scales,[Tt,mt]=Sn.match,mr=z.axes[0].side%2==1,Vr=P.ori==0?Ke:De,$i=P.ori==1?Ke:De,_n=mr?xe:de,le=mr?de:xe,Ne=mr?Q:K,we=mr?K:Q;if(Bt!=null?K=Tt(et,Bt)?s(Ot,C[et],Vr,0):-10:K=Vr*(Ne/_n),an!=null?Q=mt(ot,an)?s(hn,C[ot],$i,0):-10:Q=$i*(we/le),P.ori==1){let Je=K;K=Q,Q=Je}}Ve&&(z==null||z.cursor.event.type==tM)&&((K<=1||K>=Ke-1)&&(K=Lp(K,Ke)),(Q<=1||Q>=De-1)&&(Q=Lp(Q,De))),Fe?(Ix=K,Ex=Q,[Wd,Vd]=ae.move(r,K,Q)):(pr=K,Cr=Q)}const Z1={width:0,height:0,left:0,top:0};function Bm(){oi(Z1,!1)}let kh,Tc,Rx,q1;function G1(N,z,K,Q,de,xe,Me){wu=!0,Ii=Ei=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,xe,Me,!0,!1),N!=null&&(ut(nM,iM,Um,!1),qd(Eoe,r,Wd,Vd,Ke,De,null));let{left:Fe,top:Ve,width:et,height:ot}=ir;kh=Fe,Tc=Ve,Rx=et,q1=ot}function Um(N,z,K,Q,de,xe,Me){wu=Ai._x=Ai._y=!1,H1(N,z,K,Q,de,xe,Me,!1,!0);let{left:Fe,top:Ve,width:et,height:ot}=ir,st=et>0||ot>0,Ot=kh!=Fe||Tc!=Ve||Rx!=et||q1!=ot;if(st&&Ot&&oi(ir),Ai.setScale&&st&&Ot){let hn=Fe,Bt=et,an=Ve,Tt=ot;if(P.ori==1&&(hn=Ve,Bt=ot,an=Fe,Tt=et),Ii&&Mo(T,Ds(hn,T),Ds(hn+Bt,T)),Ei)for(let mt in C){let mr=C[mt];mt!=T&&mr.from==null&&mr.min!=yr&&Mo(mt,Ds(an+Tt,mt),Ds(an,mt))}Bm()}else ae.lock&&(ae._lock=!ae._lock,jl(z,!0,N!=null));N!=null&&(ct(nM,iM),qd(nM,r,pr,Cr,Ke,De,null))}function Y1(N,z,K,Q,de,xe,Me){if(ae._lock)return;pi(N);let Fe=wu;if(wu){let Ve=!0,et=!0,ot=10,st,Ot;P.ori==0?(st=Ii,Ot=Ei):(st=Ei,Ot=Ii),st&&Ot&&(Ve=pr<=ot||pr>=Ke-ot,et=Cr<=ot||Cr>=De-ot),st&&Ve&&(pr=pr{let de=Sn.match[2];K=de(r,z,K),K!=-1&&Ja(K,Q,!0,!1)},me&&(ut(Eoe,_,G1),ut(tM,_,Lx),ut(Noe,_,N=>{pi(N),jc(!1)}),ut($oe,_,Y1),ut(Moe,_,K1),IM.add(r),r.syncRect=jc);const Zd=r.hooks=e.hooks||{};function Ni(N,z,K){Ti?Ji.push([N,z,K]):N in Zd&&Zd[N].forEach(Q=>{Q.call(null,r,z,K)})}(e.plugins||[]).forEach(N=>{for(let z in N.hooks)Zd[z]=(Zd[z]||[]).concat(N.hooks[z])});const X1=(N,z,K)=>K,Sn=Ri({key:null,setSeries:!1,filters:{pub:Koe,sub:Koe},scales:[T,x[1]?x[1].scale:null],match:[Xoe,Xoe,X1],values:[null,null]},ae.sync);Sn.match.length==2&&Sn.match.push(X1),ae.sync=Sn;const Wm=Sn.key,Ic=Oae(Wm);function qd(N,z,K,Q,de,xe,Me){Sn.filters.pub(N,z,K,Q,de,xe,Me)&&Ic.pub(N,z,K,Q,de,xe,Me)}Ic.sub(r);function Px(N,z,K,Q,de,xe,Me){Sn.filters.sub(N,z,K,Q,de,xe,Me)&&Tu[N](null,z,K,Q,de,xe,Me)}r.pub=Px;function mC(){Ic.unsub(r),IM.delete(r),St.clear(),lM(n6,Hg,Ox),c.remove(),he==null||he.remove(),Ni("destroy")}r.destroy=mC;function J1(){Ni("init",e,t),Wr(t||e.data,!1),J[T]?D1(T,J[T]):wa(),Os=ir.show&&(ir.width>0||ir.height>0),No=zn=!0,co(e.width,e.height)}return x.forEach(Yt),S.forEach(Ga),n?n instanceof HTMLElement?(n.appendChild(c),J1()):n(r,J1):J1(),r}jn.assign=Ri,jn.fmtNum=dM,jn.rangeNum=a6,jn.rangeLog=o6,jn.rangeAsinh=uM,jn.orient=Op,jn.pxRatio=Fn,jn.join=BVe,jn.fmtDate=mM,jn.tzDate=JVe,jn.sync=Oae;{jn.addGap=RHe,jn.clipGaps=h6;let e=jn.paths={points:Uae};e.linear=Vae,e.stepped=zHe,e.bars=DHe,e.spline=FHe}Object.is||Object.defineProperty(Object,"is",{value:(e,t)=>e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t});const XHe=(e,t)=>{const{width:n,height:r,...i}=e,{width:o,height:a,...s}=t;let l="keep";if((r!==a||n!==o)&&(l="update"),Object.keys(i).length!==Object.keys(s).length)return"create";for(const c of Object.keys(i))if(!Object.is(i[c],s[c])){l="create";break}return l},JHe=(e,t)=>e.length!==t.length?!1:e.every((n,r)=>{const i=t[r];if(n.length!==i.length)return!1;if(Array.isArray(n))return n.every((o,a)=>o===i[a])});function v6(e,t,n,r,i,o){return e>r?(t=i,n=o):to&&(n=o,t=o-e),[t,n]}const Jae=e=>e._size??0,Qae=fe({}),y6=fe(null,(e,t,n,r)=>{const{chartId:i,isMatchingChartId:o}=r||{},a=e(Qae);if(i&&a[i])n(a[i],i);else for(const[s,l]of Object.entries(a))o&&!o(s)||n(l,s)}),QHe="_uplot_1swaw_1",eZe={uplot:QHe};function Pp({id:e,options:t,data:n,target:r,onDelete:i,onCreate:o,resetScales:a=!0,className:s}){var S,C;const l=m.useRef(null),c=m.useRef(null),d=m.useRef(t),f=m.useRef(r),p=m.useRef(n),v=m.useRef(o),_=m.useRef(i),y=Ee(Qae);m.useEffect(()=>{v.current=o,_.current=i});const b=m.useCallback(j=>{var T;j&&((T=_.current)==null||T.call(_,j),j.destroy(),l.current=null,y(E=>{const $={...E};return delete $[e],$}))},[e,y]),w=m.useCallback(()=>{var T;const j=new jn(d.current,p.current,f.current||c.current);l.current=j,y(E=>({...E,[e]:j})),(T=v.current)==null||T.call(v,j)},[e,y]);m.useEffect(()=>(w(),()=>{b(l.current)}),[w,b]),m.useEffect(()=>{if(d.current!==t){const j=XHe(d.current,t);d.current=t,!l.current||j==="create"?(b(l.current),w()):j==="update"&&l.current.setSize({width:t.width,height:t.height})}},[t,w,b]),m.useEffect(()=>{p.current!==n&&(l.current?JHe(p.current,n)||(a?l.current.setData(n,!0):(l.current.setData(n,!1),l.current.redraw())):(p.current=n,w()),p.current=n)},[n,a,w]),m.useEffect(()=>(f.current!==r&&(f.current=r,w()),()=>b(l.current)),[r,w,b]);const x=Ua(()=>{requestAnimationFrame(()=>{var j;return(j=l.current)==null?void 0:j.setSize({width:d.current.width,height:d.current.height})})},500,{leading:!0,trailing:!0});return(t.height!==((S=l.current)==null?void 0:S.height)||t.width!==((C=l.current)==null?void 0:C.width))&&x(),r?null:u.jsx("div",{id:e,ref:c,className:Te(eZe.uplot,s)})}const NM=fe(null),zp=fe(e=>{const t=e(nee);return t==null?void 0:t+1}),tZe=fe(e=>{const t=e(zp),n=e(ese);return t!=null&&!!n.size}),[ese,nZe,tse,b_,rZe]=function(){const e=Co(new Set),t=fe(),n=fe();return[fe(r=>r(e)),fe(null,(r,i,o)=>{r(ol)&&i(e,a=>{o.forEach(s=>{a.add(s),i(t,l=>l?Math.min(l,s):s),i(n,l=>l?Math.max(l,s):s)})})}),fe(r=>r(t)),fe(r=>r(n)),fe(null,(r,i)=>{i(t,void 0),i(n,void 0),i(e,new Set)})]}(),[iZe,oZe,aZe]=function(){const e=Co(new Set);return[fe(t=>t(e)),fe(null,(t,n,r)=>{t(ol)&&n(e,i=>{r.forEach(o=>{i.add(o)})})}),fe(null,(t,n)=>{n(e,new Set)})]}();function nse(e,t,n,r){if(!n)return 0;const i=Math.ceil((e-t+1)/n);return Math.min(i-1,r)}function $M(e,t){return t==null?!1:e<=t}function MM(e,t){return t.has(e)}function LM(e,t){return t.has(e)}function b6(e,t,n){for(let r=t;r>=e;r--)if(n(r))return!0;return!1}function sZe(e,t,n,r,i,o,a){return o?tne:i?ene:b6(e,t,s=>!$M(s,n)&&!MM(s,r)&&!LM(s,a))?nne:b6(e,t,s=>!$M(s,n)&&MM(s,r))?ane:b6(e,t,s=>!$M(s,n)&&LM(s,a))?one:b6(e,t,s=>!MM(s,r)&&!LM(s,a))?ine:rne}const lZe=ca(),rse=4,uZe=rse;function cZe(e,t){return{hooks:{drawSeries:[n=>{const r=e.current.totalSlotsEstimate;if(r==null||!t.current)return;const i=n.ctx;i.save();const o=n.bbox.top,a=n.bbox.height,s=rse*window.devicePixelRatio,l=uZe*window.devicePixelRatio,c=s/2,d=Math.trunc((n.bbox.width+l)/(s+l)),f=r/d,{startSlot:p,repairSlots:v,latestReplaySlot:_,firstTurbineSlot:y,latestTurbineSlot:b,turbineSlots:w}=t.current,x=nse(b,p,f,d-1),S=nse(y,p,f,d-1),C=lZe.get(NM);C==null||C.style.setProperty("--turbine-start-x",`${RM(S,s,l)/window.devicePixelRatio}px`),C==null||C.style.setProperty("--turbine-head-x",`${RM(x,s,l)/window.devicePixelRatio}px`);const j=new Map;for(let T=0;T<=x;T++){const E=T*f,$=p+Math.trunc(E),A=(T+1)*f,M=Math.min(b,p+Math.ceil(A)-1),P=RM(T,s,l),te=sZe($,M,_,v,T===S,T===x,w),Z=j.get(te)??[];Z.push(P),j.set(te,Z)}for(const[T,E]of j.entries()){i.fillStyle=T,i.beginPath();for(const $ of E)i.roundRect($,o,s,a,c);i.fill()}i.restore()}]}}}function RM(e,t,n){return e*(t+n)}const dZe=[[0],[null]];function fZe({catchingUpRatesRef:e}){const[t,n]=Ss(),r=X(zp),i=X(iZe),o=X(ese),a=X(tse),s=X(b_),l=X(fp),c=m.useRef(),d=m.useRef(),f=m.useMemo(()=>({width:0,height:0,scales:{x:{time:!1}},axes:[{show:!1},{show:!1}],series:[{},{points:{show:!1}}],cursor:{x:!1,y:!1},legend:{show:!1},plugins:[cZe(e,c)]}),[c,e]);f.width=n.width,f.height=n.height;const p=m.useCallback(y=>{d.current=y},[]),v=m.useCallback(y=>{var b;c.current=y,(b=d.current)==null||b.redraw()},[]),_=Ua(v,100,{trailing:!0});if(m.useEffect(()=>{r==null||!o.size||a==null||s==null||_({startSlot:r,repairSlots:i,turbineSlots:o,firstTurbineSlot:a,latestTurbineSlot:s,latestReplaySlot:l})},[a,l,s,i,r,_,o]),!(r==null||!o.size||a==null||s==null))return u.jsx(Mt,{height:"77px",ref:t,children:u.jsx(Pp,{id:"catching-up-slot-bars",options:f,data:dZe,onCreate:p})})}const hZe="_card_1yavk_1",pZe="_secondary-color_1yavk_13",mZe="_bold_1yavk_17",gZe="_ellipsis_1yavk_21",vZe="_labels-row_1yavk_27",yZe="_labels-left_1yavk_39",bZe="_turbine-label_1yavk_46",_Ze="_start_1yavk_54",xZe="_head_1yavk_58",wZe="_footer-row_1yavk_64",kZe="_left-footer_1yavk_76",SZe="_footer-title_1yavk_83",CZe="_footer-value_1yavk_88",jZe="_bars-stats-container_1yavk_95",TZe="_bars-stats-row_1yavk_99",IZe="_replayed_1yavk_104",EZe="_speed_1yavk_111",NZe="_to-replay_1yavk_118",ur={card:hZe,secondaryColor:pZe,bold:mZe,ellipsis:gZe,labelsRow:vZe,labelsLeft:yZe,turbineLabel:bZe,start:_Ze,head:xZe,footerRow:wZe,leftFooter:kZe,footerTitle:SZe,footerValue:CZe,barsStatsContainer:jZe,barsStatsRow:TZe,replayed:IZe,speed:EZe,toReplay:NZe};function $Ze(){const e=X(zp);if(e)return u.jsxs(V,{className:ur.footerRow,children:[u.jsxs(V,{className:ur.leftFooter,children:[u.jsxs(q,{className:Te(ur.footerValue,ur.ellipsis),children:[u.jsx(q,{className:ur.secondaryColor,children:"Slot "}),e]}),u.jsx(q,{className:Te(ur.footerTitle,ur.ellipsis),children:"Repair"})]}),u.jsx(q,{className:Te(ur.rightFooter,ur.footerTitle,ur.ellipsis),children:"Turbine"})]})}function MZe(){const e=X(zp),t=X(tse),n=X(b_);if(!(e==null||t==null||n==null))return u.jsxs(V,{className:ur.labelsRow,children:[u.jsx(V,{justify:"end",flexShrink:"0",className:ur.labelsLeft,children:u.jsx(ise,{slot:t})}),u.jsx(V,{justify:"end",flexGrow:"1",minWidth:"0",className:ur.labelsRight,children:u.jsx(ise,{slot:n,isHead:!0})})]})}function ise({isHead:e=!1,slot:t}){const n=X(NM),[r,{width:i}]=Ss();return m.useEffect(()=>{n==null||n.style.setProperty(e?"--turbine-head-label-width":"--turbine-start-label-width",`${i}px`)},[n,e,i]),u.jsxs(V,{ref:r,direction:"column",className:Te(ur.turbineLabel,e?ur.head:ur.start),children:[u.jsx(q,{className:ur.bold,children:e?"Turbine Head":"Turbine Start"}),u.jsx(q,{children:t})]})}const _6=1e4,ose=50,LZe=[Ir.shred_published,Ir.shred_replayed,Ir.shred_received_repair,Ir.shred_received_turbine,Ir.shred_repair_request],RZe=[Ir.shred_received_repair,Ir.shred_published,Ir.shred_replayed,Ir.shred_received_turbine,Ir.shred_repair_request],OZe={"Repair Requested":xN,"Received Turbine":wN,"Received Repair":kN,"Replayed Turbine":SN,"Replayed Repair":CN,"Replayed Nothing":jN,Skipped:TN,Published:IN};function PZe(){const e=fe(),t=fe(),n=fe(),r=fe(i=>{const o=i(n),a=i(bG);if(!(!o||a==null)&&!(a+1>o.max))return{min:Math.max(a+1,o.min),max:o.max}});return{minCompletedSlot:fe(i=>i(e)),range:fe(i=>i(n)),rangeAfterStartup:r,groupLeaderSlots:fe(i=>{const o=i(r);if(!o)return[];const a=[xi(o.min)];for(;a[a.length-1]+$n-1i(t)),addShredEvents:fe(null,(i,o,{reference_slot:a,reference_ts:s,slot_delta:l,shred_idx:c,event:d,event_ts_delta:f})=>{let p=i(n),v=i(e);o(t,_=>{const y=_??{referenceTs:Math.round(Number(s)/aN),slots:new Map};for(let b=0;b{if(a){o(n,void 0),o(e,void 0),o(t,void 0);return}o(t,l=>{const c=i(n),d=i(Cre)??Date.now();if(!l||!c)return l;if(s)for(let p=c.min;p<=c.max;p++){const v=l.slots.get(p);v&&(v.maxEventTsDelta==null||ase(v.maxEventTsDelta,d,l.referenceTs))&&l.slots.delete(p)}else{let p=c.min;if(c.max-c.min>50){for(let _=p;_<=c.max-50;_++)l.slots.get(_)&&l.slots.delete(_);p=c.max-50}let v=!1;for(let _=c.max;_>=p;_--){const y=l.slots.get(_);if((y==null?void 0:y.maxEventTsDelta)!=null){if(!v&&y.completionTsDelta!=null&&ase(y.completionTsDelta,d,l.referenceTs)){v=!0;continue}v&&l.slots.delete(_)}}}const f=l.slots.keys();return o(n,p=>{if(!(!p||!l.slots.size))return{min:Math.min(...f),max:p.max}}),l})})}}function ase(e,t,n){const r=t-n,i=_6+ose;return r-e>i}const __=PZe();function zZe(e,t,n){const r=n??new Array;return r[e]=Math.min(t,r[e]??t),r}function DZe(e,t,n,r){const i=r??{shreds:[]};return i.minEventTsDelta=Math.min(n,i.minEventTsDelta??n),i.maxEventTsDelta=Math.max(n,i.maxEventTsDelta??n),t===Ir.slot_complete?(i.completionTsDelta=Math.min(n,i.completionTsDelta??n),i):e==null?(console.error("Missing shred ID"),i):(i.shreds[e]=zZe(t,n,i.shreds[e]),i)}function sse(e){return`slot-group-label-${xi(e)}`}function lse(e){return`slot-label-${e}`}const lh=ca(),wd="shredsXScaleKey";function AZe(e){const t=[];return{hooks:{draw:[n=>{if(n.ctx.save(),e){n.ctx.strokeStyle=_N,n.ctx.lineWidth=1,n.ctx.beginPath();const P=n.bbox.left,te=n.bbox.left+n.bbox.width;for(let Z=0;Z<3;Z++)n.ctx.moveTo(P,n.bbox.top+n.bbox.height*Z/3),n.ctx.lineTo(te,n.bbox.top+n.bbox.height*Z/3);n.ctx.stroke(),n.ctx.restore()}const r=__,i=lh.get(r.slotsShreds),o=lh.get(r.range),a=lh.get(r.minCompletedSlot),s=lh.get(Ik),l=lh.get(r.rangeAfterStartup),c=Date.now(),d=lh.get(Cre);if(d){const P=c-d;for(t.push(P);t.length>20;)t.shift()}const f=t.length?rt.sum(t)/t.length:void 0,p=f==null?d??c:c-f,v=n.scales[wd].max;if(!i||!o||v==null||!e&&(lh.get(ol)||a==null||!l))return;const _=p-ose-i.referenceTs,y=e?o.min:Math.max(o.min,a??o.min),b=o.max;n.ctx.rect(n.bbox.left,n.bbox.top,n.bbox.width,n.bbox.height),n.ctx.clip();const w=P=>n.valToPos(P,wd,!0),{maxShreds:x,orderedSlotNumbers:S}=FZe(y,b,i,n.scales[wd],_),C=e?Math.trunc(n.bbox.height/3):n.bbox.height,j=e?P=>{switch(P){case Ir.shred_received_turbine:case Ir.shred_published:return 0;case Ir.shred_repair_request:case Ir.shred_received_repair:return C;case Ir.shred_replayed:return C*2}}:void 0,T=rt.clamp(C/x,1,10),E=1,$=Math.max(T,3),A=Math.trunc((C+E)/(T+E)),M=x/A;for(const P of S){const te={},Z=(D,Y)=>{te[D]??(te[D]=[]),te[D].push(Y)},O=i.slots.get(P);if((O==null?void 0:O.minEventTsDelta)==null)continue;const J=s.has(P);for(let D=0;D{const o=[];let a=0;for(let s=e;s<=t;s++){const l=n.slots.get(s);!l||!l.shreds.length||l.minEventTsDelta==null||r.max!=null&&l.minEventTsDelta-i>r.max||r.min!=null&&l.completionTsDelta!=null&&l.completionTsDelta-i=b)continue;const T=(d==null?void 0:d(x))??0;w.set(x,s||l?[j,c+T]:[j,c+T,b-j]),b=j}for(const[x,S]of w.entries()){if(l){e(TN,S);continue}switch(x){case Ir.shred_repair_request:{e(xN,S);break}case Ir.shred_received_turbine:{e(wN,S);break}case Ir.shred_received_repair:{e(kN,S);break}case Ir.shred_replayed:{w.has(Ir.shred_received_repair)?e(CN,S):w.has(Ir.shred_received_turbine)?e(SN,S):e(jN,S);break}case Ir.shred_published:e(IN,S)}}}function UZe(e,t,n){for(const r of RZe){const i=WZe(e,t,n,o=>(o==null?void 0:o[r])!=null);if(i!==-1)return i}return e}function WZe(e,t,n,r){for(let i=e;ir.valToPos(p,wd,!1),f=d(i);for(let p=0;ps+r).reduce((a,s)=>(a.length===0&&!(s in e)||s in e&&e[s]===void 0||a.push(s),a),[]);if(i.length===0)continue;const o=i.reduce((a,s)=>{var d,f;const l=(d=e[s])==null?void 0:d[0],c=(f=e[s])==null?void 0:f[1];return l!=null&&(a[0]=Math.min(a[0],l)),a[1]=a[1]===void 0||c===void 0?void 0:Math.max(c,a[1]),a},[1/0,-1/0]);n[r]=o}return n}function dse(e,t,n){if(!e)return;const r=e[0]-t,i=n(r);if(e[1]==null)return[i,void 0];const o=e[1]-t,a=n(o);return[i,a-i]}function fse(e,t,n,r){const i=e?"--group-x":"--slot-x";if(!t){r.style.setProperty(i,"-100000px");return}const[o,a]=t;r.style.setProperty(i,`${o-(e?1:0)}px`);const s=a??n-o+1;r.style.width=`${s+(e?1*2:0)}px`;const l=a==null;e&&r.style.setProperty("--group-name-opacity",l?"0":"1")}const GZe="_slot-group-label_mfowj_1",YZe="_you_mfowj_13",KZe="_slot-group-top-container_mfowj_17",XZe="_skipped_mfowj_21",JZe="_slot-group-name-container_mfowj_25",QZe="_name_mfowj_30",eqe="_slot-bars-container_mfowj_41",tqe="_slot-bar_mfowj_41",nqe="_legend-color-box_mfowj_72",rqe="_legend-label_mfowj_78",lu={slotGroupLabel:GZe,you:YZe,slotGroupTopContainer:KZe,skipped:XZe,slotGroupNameContainer:JZe,name:QZe,slotBarsContainer:eqe,slotBar:tqe,legendColorBox:nqe,legendLabel:rqe};function OM(e){const t=X(di);if(!t)return;const n=e-t.start_slot,r=Math.trunc(n/4);return t.staked_pubkeys[t.leader_slots[r]]}function PM(e){var s,l,c,d;const t=(s=e==null?void 0:e.gossip)==null?void 0:s.version,n=(l=e==null?void 0:e.gossip)==null?void 0:l.client_id,r=(n?qte[n]:void 0)??(t?t[0]==="0"?za.Frankendancer:za.Agave:void 0),i=(c=e==null?void 0:e.gossip)==null?void 0:c.country_code,o=Pze(i),a=(d=e==null?void 0:e.gossip)==null?void 0:d.city_name;return m.useMemo(()=>({client:r,version:t,countryCode:i,countryFlag:o,cityName:a}),[a,r,i,o,t])}function ma(e){var f;const t=X(dp),n=OM(e),r=Hk(n??""),i=t===n,o=((f=r==null?void 0:r.info)==null?void 0:f.name)??"Private",{version:a,client:s,countryCode:l,countryFlag:c,cityName:d}=PM(r);return{pubkey:n,peer:r,isLeader:i,name:o,client:s,version:a,countryCode:l,countryFlag:c,cityName:d}}function iqe(){const e=X(V3),t=X(__.groupLeaderSlots);if(!e)return u.jsx(V,{flexShrink:"0",overflowX:"hidden",position:"relative",height:"15px",children:t.map(n=>u.jsx(oqe,{firstSlot:n},n))})}function oqe({firstSlot:e}){var s;const{peer:t,name:n,isLeader:r}=ma(e),i=m.useMemo(()=>Array.from({length:$n},(l,c)=>e+c),[e]),o=X(Ik),a=m.useMemo(()=>{const l=new Set;for(const c of i)o.has(c)&&l.add(c);return l},[i,o]);return u.jsxs(V,{height:"100%",minHeight:"0",direction:"column",gap:"2px",position:"absolute",id:sse(e),className:Te(lu.slotGroupLabel,{[lu.you]:r}),children:[u.jsx(V,{justify:"center",flexGrow:"1",minHeight:"0",minWidth:"0",px:"2px",className:Te(lu.slotGroupTopContainer,{[lu.skipped]:a.size>0}),children:u.jsxs(V,{align:"center",gap:"4px",minWidth:"0",className:lu.slotGroupNameContainer,children:[u.jsx(ks,{url:(s=t==null?void 0:t.info)==null?void 0:s.icon_url,size:10,isYou:r,hideTooltip:!0}),u.jsx(q,{className:lu.name,children:n})]})}),u.jsx(V,{height:"2px",position:"relative",className:lu.slotBarsContainer,children:i.map(l=>u.jsx("div",{className:Te(lu.slotBar,{[lu.skipped]:a.has(l)}),id:lse(l)},l))})]})}const aqe=40,zM=15,DM={min:200,max:1600},sqe=e=>{const t=e*DM.max,n=[Math.trunc(t/DM.min)*DM.min];for(;n[n.length-1]<_6*e;)n.push(n[n.length-1]*2);return n};function hse({chartId:e,isOnStartupScreen:t,...n}){const r=Hn("(max-width: 2100px)"),i=Hn("(max-width: 1800px)"),o=Hn("(max-width: 1500px)"),a=Hn("(max-width: 1200px)"),s=Hn("(max-width: 900px)"),l=Hn("(max-width: 600px)")?1/7:s?2/7:a?3/7:o?4/7:i?5/7:r?6/7:1,c=m.useRef(),d=m.useRef(0),[f,p]=Ss(),v=m.useCallback(w=>{c.current=w},[]),[_,y]=m.useMemo(()=>[[[Math.trunc(l*-_6),0],new Array(2)],sqe(l)],[l]);m.useEffect(()=>{c.current&&(c.current.axes[0].incrs=()=>y,c.current.setData(_,!0))},[_,y]);const b=m.useMemo(()=>({padding:[0,zM,0,zM],width:0,height:0,scales:{[wd]:{time:!1},y:{time:!1,range:[0,1]}},series:[{scale:wd},{}],cursor:{show:!1,drag:{[wd]:!1,y:!1}},legend:{show:!1},axes:[{scale:wd,incrs:y,size:30,ticks:{opacity:.2,stroke:sr,size:5,width:1/devicePixelRatio},values:(w,x)=>x.map(S=>S===0?"now":`${(S/1e3).toFixed(1)}s`),grid:{stroke:_N,width:1/devicePixelRatio},stroke:bN},{size:0,grid:{filter:()=>[0],stroke:bN,width:1}}],plugins:[AZe(t)]}),[t,y]);return b.width=p.width,b.height=p.height,Aie(w=>{var x;c&&(d.current==null||w-d.current>=aqe)&&(d.current=w,(x=c.current)==null||x.redraw(!0,!1))}),u.jsxs(V,{direction:"column",gap:"2px",...n,children:[!t&&u.jsx(iqe,{}),u.jsx(Mt,{flexGrow:"1",minHeight:"0",mx:`-${zM}px`,ref:f,children:u.jsx(Pp,{id:e,options:b,data:_,onCreate:v})})]})}const lqe="_card_1vnw5_1",uqe="_narrow_1vnw5_7",pse={card:lqe,narrow:uqe};function so({children:e,hideChildren:t,isNarrow:n=!1,...r}){return u.jsx("div",{...r,className:Te(pse.card,n&&pse.narrow,r.className),children:!t&&e})}const cqe="_header_10qjn_1",dqe="_full-width_10qjn_5",fqe="_dark_10qjn_9",hqe="_subHeader_10qjn_14",pqe="_tile-container_10qjn_20",mqe="_tile_10qjn_20",Dp={header:cqe,fullWidth:dqe,dark:fqe,subHeader:hqe,tileContainer:pqe,tile:mqe},gqe="_stat-container_1hzk8_1",vqe="_label_1hzk8_10",yqe="_value-container_1hzk8_15",bqe="_value_1hzk8_15",x6={statContainer:gqe,label:vqe,valueContainer:yqe,value:bqe};var AM={exports:{}},Qg=typeof Reflect=="object"?Reflect:null,mse=Qg&&typeof Qg.apply=="function"?Qg.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},w6;Qg&&typeof Qg.ownKeys=="function"?w6=Qg.ownKeys:Object.getOwnPropertySymbols?w6=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:w6=function(e){return Object.getOwnPropertyNames(e)};function _qe(e){console&&console.warn&&console.warn(e)}var gse=Number.isNaN||function(e){return e!==e};function cr(){cr.init.call(this)}AM.exports=cr,AM.exports.once=Sqe,cr.EventEmitter=cr,cr.prototype._events=void 0,cr.prototype._eventsCount=0,cr.prototype._maxListeners=void 0;var vse=10;function k6(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(cr,"defaultMaxListeners",{enumerable:!0,get:function(){return vse},set:function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");vse=e}}),cr.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},cr.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||gse(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function yse(e){return e._maxListeners===void 0?cr.defaultMaxListeners:e._maxListeners}cr.prototype.getMaxListeners=function(){return yse(this)},cr.prototype.emit=function(e){for(var t=[],n=1;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var s=i[e];if(s===void 0)return!1;if(typeof s=="function")mse(s,this,t);else for(var l=s.length,c=kse(s,l),n=0;n0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,_qe(s)}return e}cr.prototype.addListener=function(e,t){return bse(this,e,t,!1)},cr.prototype.on=cr.prototype.addListener,cr.prototype.prependListener=function(e,t){return bse(this,e,t,!0)};function xqe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _se(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=xqe.bind(r);return i.listener=n,r.wrapFn=i,i}cr.prototype.once=function(e,t){return k6(t),this.on(e,_se(this,e,t)),this},cr.prototype.prependOnceListener=function(e,t){return k6(t),this.prependListener(e,_se(this,e,t)),this},cr.prototype.removeListener=function(e,t){var n,r,i,o,a;if(k6(t),r=this._events,r===void 0)return this;if(n=r[e],n===void 0)return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if(typeof n!="function"){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;i===0?n.shift():wqe(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit("removeListener",e,a||t)}return this},cr.prototype.off=cr.prototype.removeListener,cr.prototype.removeAllListeners=function(e){var t,n,r;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),o;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function xse(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?kqe(i):kse(i,i.length)}cr.prototype.listeners=function(e){return xse(this,e,!0)},cr.prototype.rawListeners=function(e){return xse(this,e,!1)},cr.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):wse.call(e,t)},cr.prototype.listenerCount=wse;function wse(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}cr.prototype.eventNames=function(){return this._eventsCount>0?w6(this._events):[]};function kse(e,t){for(var n=new Array(t),r=0;r{const r=i=>n.current(i);return t.addListener(FM,r),()=>{t.removeListener(FM,r)}},[t])}const Iqe=Yf((e,t,n)=>rt.throttle(()=>{switch(n){case"publish":{e({topic:"slot",key:"query",id:1,params:{slot:t}});break}case"detailed":{e({topic:"slot",key:"query_detailed",id:2,params:{slot:t}});break}case"transactions":{e({topic:"slot",key:"query_transactions",id:3,params:{slot:t}});break}}},5e3,{trailing:!1}),{maxSize:250});function UM(e,t,n){const r=S6(),i=X(wDe(e)),o=m.useCallback(()=>{!e||i||n||Iqe(r,e,t)()},[t,i,e,n,r]);m.useEffect(()=>{const l=setTimeout(()=>o(),250);return()=>{clearTimeout(l)}},[o]);const[a,s]=m.useState(!0);return i_(()=>{setTimeout(()=>s(!1),3e3)}),{hasWaitedForData:!a}}function Is(e){const t=X(YN(e)),n=!!t,{hasWaitedForData:r}=UM(e,"publish",n);return{publish:t,hasWaitedForData:r}}function tc(e){const t=X(hre(e)),n=!!(t!=null&&t.waterfall)&&!!(t!=null&&t.tile_timers)&&!!(t!=null&&t.tile_primary_metric)&&!!t.scheduler_counts&&!!t.scheduler_stats&&!!t.limits,{hasWaitedForData:r}=UM(e,"detailed",n);return{response:t,hasWaitedForData:r}}function pl(e){const t=X(hre(e)),n=!!(t!=null&&t.transactions),{hasWaitedForData:r}=UM(e,"transactions",n);return{response:t,hasWaitedForData:r}}function Eqe({type:e,label:t}){var l,c,d;const n=X(Cn),r=!n,i=X(SG),o=tc(r?void 0:n),a=r?(l=i==null?void 0:i.tile_primary_metric)==null?void 0:l[e]:(d=(c=o.response)==null?void 0:c.tile_primary_metric)==null?void 0:d[e],s=e==="net_in"||e==="net_out"?{minWidth:"55px"}:void 0;return u.jsxs("div",{className:x6.statContainer,children:[u.jsx(q,{className:x6.label,children:t}),u.jsx("div",{className:x6.valueContainer,style:s,children:u.jsx(q,{className:x6.value,children:Nqe(e,a)})})]})}function Nqe(e,t){if(t===void 0||t===-1)return"-";if(e==="net_in"||e==="net_out"){const n=t*8,r=Cp(t*8,{precision:n>1e9?2:0}),i=Number(r.value);if(!t)return"0";const o=r.unit.replace("B","b");return`${i} ${o}/s`}if(e==="bundle_rx_delay_millis_p90"||e==="bundle_rtt_smoothed_millis")return`${Math.max(1,Math.round(t))} ms`;if(e==="verify"||e==="dedup"||e==="pack"){if(t<.01&&t>0)return`${(t*100).toFixed(2)}%`;{const n=t*100;return`${Math.trunc(n)}%`}}return t.toLocaleString()}const $qe="_btn_1lb0v_1",Mqe={btn:$qe};let WM=!1;function Lqe({children:e,tileCountArr:t,liveBusyPerTile:n,queryIdlePerTile:r,width:i,header:o,isExpanded:a,setIsExpanded:s}){return t.length>1?u.jsxs(QZ,{open:a,onOpenChange:l=>{WM||(s(l),WM=!0,setTimeout(()=>WM=!1,10))},defaultOpen:!1,children:[u.jsx(eq,{children:a?u.jsx("div",{}):u.jsx(hs,{className:Mqe.btn,children:e})}),u.jsx(tq,{width:`${i}px`,size:"1",side:"top",sideOffset:-17,align:"center",children:u.jsxs(V,{gap:"3",direction:"column",children:[o,n?n.map((l,c)=>u.jsx(Rqe,{busy:l},c)):t==null?void 0:t.map((l,c)=>{const d=r==null?void 0:r.map(f=>f[c]!==void 0&&f[c]!==-1?1-f[c]:void 0).filter(Cb);if(d!=null&&d.length)return u.jsxs(V,{children:[u.jsx(c_,{history:d}),u.jsx(Xk,{busy:rt.mean(d)})]},c)})]})})]}):u.jsx(V,{gap:"1",children:e})}function Rqe({busy:e}){const t=H$(e);return u.jsxs(V,{children:[u.jsx(c_,{value:t}),u.jsx(Xk,{busy:t})]})}function Wa({header:e,subHeader:t,tileCount:n,statLabel:r,liveIdlePerTile:i,queryIdlePerTile:o,metricType:a,sparklineHeight:s,isExpanded:l=!1,setIsExpanded:c=()=>{},isDark:d=!1,isNarrow:f}){const[p,{width:v}]=Ss(),_=X(Cn)===void 0,{avgBusy:y,aggQueryBusyPerTs:b,tileCountArr:w,liveBusyPerTile:x,busy:S}=poe({isLive:_,tileCount:n,liveIdlePerTile:i,queryIdlePerTile:o}),C=H$(y);return u.jsx(V,{ref:p,children:u.jsx(so,{className:Te(Dp.fullWidth,d&&Dp.dark),isNarrow:f,children:u.jsxs(V,{direction:"column",justify:"between",height:"100%",gap:"1",children:[u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(c_,{value:b===void 0?C:void 0,history:b,height:s,background:d?vk:void 0}),u.jsxs(Lqe,{tileCountArr:w,liveBusyPerTile:x,queryIdlePerTile:o,width:v,header:u.jsx(Tse,{header:e,subHeader:t,statLabel:r,metricType:a}),isExpanded:l,setIsExpanded:c,children:[u.jsx("div",{className:Dp.tileContainer,children:w.map((j,T)=>{const E=S==null?void 0:S[T];return E===void 0?u.jsx("div",{className:Dp.tile,style:{background:d?"#232A38":"gray"}},T):u.jsx("div",{className:Dp.tile,style:{"--busy":`${E*100}%`}},T)})}),u.jsx(Xk,{busy:C})]})]})})})}function Tse({header:e,subHeader:t,metricType:n,statLabel:r}){return u.jsxs(V,{justify:"between",gap:"1",children:[u.jsxs(V,{direction:"column",gap:"0",children:[u.jsx(q,{className:Dp.header,children:e}),t&&u.jsx(q,{className:Dp.subHeader,children:t})]}),n&&u.jsx(Eqe,{type:n,label:r})]})}function VM(){var s;const e=X(Cn),t=!e,n=X(rg),r=X(Nb),i=X(Hze),o=tc(e),a=m.useMemo(()=>{var l,c;if(!(!((c=(l=o.response)==null?void 0:l.tile_timers)!=null&&c.length)||t||!n))return o.response.tile_timers.reduce((d,f)=>{var v;if(!f.tile_timers.length)return d;const p={};f.tile_timers.length!==n.length&&console.warn("Length mismatch between tiles and time timers",f.tile_timers,n);for(let _=0;_u.jsx(Wa,{header:s,tileCount:r[s],liveIdlePerTile:i==null?void 0:i[s],queryIdlePerTile:o||a==null?void 0:a[s],statLabel:"",sparklineHeight:Oqe,isExpanded:n,setIsExpanded:t},s))})}function Dqe(){const e=m.useRef({}),t=X(zp),n=X(b_),r=X(fp),i=r??(t==null?void 0:t-1),o=Ug(i),a=Ug(n);return e.current.replaySlotsPerSecond=o,e.current.turbineSlotsPerSecond=a,m.useEffect(()=>{if(t==null||n==null||e.current.totalSlotsEstimate!=null)return;const s=Ise(400,100,t,r,n);e.current={totalSlotsEstimate:s}},[r,n,t,e]),Qu(()=>{const s=e.current.totalSlotsEstimate;if(t==null||n==null||s==null||o==null||a==null)return;const l=Ise(o,a,t,r,n),c=r==null||l==null?void 0:l+t-1-r,d=o===0||c==null?void 0:c/o;if(e.current.remainingSeconds=d,!l||l>=s)return;const f=Math.min(.15*s,s-l),p=s-f;e.current.totalSlotsEstimate=p},500),e}function Ise(e,t,n,r,i){const o=r??n-1;if(o===i)return i-n;if(e<=t)return;const a=o-n+1,s=e*(i-o)/(e-t);return a+s}function Aqe({catchingUpRates:e}){const t=X(zp),n=X(b_),r=X(fp),i=e.replaySlotsPerSecond,o=e.turbineSlotsPerSecond,a=i==null||o==null?void 0:Math.round(i-o);return u.jsxs(Mt,{mt:"3px",className:ur.barsStatsContainer,children:[u.jsxs(V,{justify:"between",className:ur.barsStatsRow,children:[u.jsx(C6,{className:ur.replayed,value:r==null||t==null?void 0:r-t+1,label:"Slots Replayed"}),u.jsx(C6,{className:ur.toReplay,value:r==null||n==null?void 0:n-r,label:"Slots Remaining"})]}),u.jsxs(V,{justify:"between",className:ur.barsStatsColumn,children:[u.jsx(C6,{className:ur.speed,value:i,label:"Slots/s Replay Speed"}),u.jsx(C6,{className:ur.speed,value:a,label:"Slots/s Catchup Speed"})]})]})}function C6({value:e,label:t,className:n}){const r=e===void 0?"--":e.toLocaleString(void 0,{maximumFractionDigits:0});return u.jsxs(q,{truncate:!0,className:n,children:[u.jsxs(q,{className:ur.bold,children:[r," "]}),t]})}function Ese(){return u.jsx(V,{gapX:"15px",gapY:"5px",wrap:"wrap",children:Object.entries(OZe).map(([e,t])=>u.jsxs(V,{gap:"5px",flexShrink:"0",children:[u.jsx("div",{className:lu.legendColorBox,style:{backgroundColor:t}}),u.jsx(q,{className:lu.legendLabel,children:e})]},e))})}function Fqe(){const e=Ee(NM),t=X(tZe),n=Dqe(),r=X(zp),i=X(b_),o=X(fp),a=m.useMemo(()=>{if(r==null||i==null||o==null)return 0;const l=i-r+1;if(!l)return 0;const c=o-r+1;return rt.clamp(c/l,0,1)},[o,i,r]),s=Soe(a);return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:a,overallCompleteFraction:s,remainingSeconds:n.current.remainingSeconds}),u.jsxs(V,{direction:"column",mt:"8px",gap:"8px",className:yd.startupContentIndentation,children:[t&&u.jsxs(V,{ref:e,direction:"column",gap:"5px",children:[u.jsx(MZe,{}),u.jsx(fZe,{catchingUpRatesRef:n}),u.jsx($Ze,{}),u.jsx(Aqe,{catchingUpRates:n.current})]}),u.jsxs(V,{direction:"column",className:ur.card,mb:"14px",children:[u.jsxs(V,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(q,{className:ur.title,children:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{flexGrow:"1",minHeight:"280px",chartId:"catching-up-shreds",isOnStartupScreen:!0})]}),u.jsx(zqe,{})]})]})}const Bqe="_secondary-color_1cuvx_1",Uqe="_card_1cuvx_5",Wqe="_pie-chart-title_1cuvx_18",Vqe="_pie-chart-container_1cuvx_24",Hqe="_pie-chart_1cuvx_18",Zqe="_shimmer_1cuvx_58",qqe="_threshold-marker_1cuvx_43",Gqe="_marker-line_1cuvx_47",Yqe="_marker-icon_1cuvx_51",Kqe="_overlay_1cuvx_74",Xqe="_pie-chart-content_1cuvx_86",Jqe="_lg_1cuvx_93",Qqe="_eighty_1cuvx_97",eGe="_details-box_1cuvx_103",tGe="_copyButton_1cuvx_105",nGe="_label_1cuvx_111",rGe="_snapshot-source_1cuvx_116",wi={secondaryColor:Bqe,card:Uqe,pieChartTitle:Wqe,pieChartContainer:Vqe,pieChart:Hqe,shimmer:Zqe,thresholdMarker:qqe,markerLine:Gqe,markerIcon:Yqe,overlay:Kqe,pieChartContent:Xqe,lg:Jqe,eighty:Qqe,detailsBox:eGe,copyButton:tGe,label:nGe,snapshotSource:rGe},iGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("circle",{cx:12,cy:12,r:8})),oGe=e=>m.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...e},m.createElement("path",{d:"M12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6m0-2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8z"})),aGe="_container_1vhtf_1",sGe="_horizontal_1vhtf_4",lGe="_vertical_1vhtf_9",uGe="_table-card_1vhtf_15",cGe="_narrow_1vhtf_21",dGe="_rows-container_1vhtf_26",fGe="_row_1vhtf_26",hGe="_xnarrow_1vhtf_44",pGe="_online_1vhtf_48",mGe="_pubkey-text_1vhtf_51",gGe="_peer_1vhtf_56",vGe="_status_1vhtf_62",yGe="_version_1vhtf_66",bGe="_client-icon_1vhtf_66",_Ge="_client-icon-placeholder_1vhtf_66",xGe="_suffix_1vhtf_70",wGe="_offline_1vhtf_75",kGe="_header-row_1vhtf_92",SGe="_toggle-row_1vhtf_97",CGe="_cell_1vhtf_116",jGe="_header_1vhtf_92",TGe="_pubkey_1vhtf_51",IGe="_stake_1vhtf_174",EGe="_stake-pct_1vhtf_187",un={container:aGe,horizontal:sGe,vertical:lGe,tableCard:uGe,narrow:cGe,rowsContainer:dGe,row:fGe,xnarrow:hGe,online:pGe,pubkeyText:mGe,peer:gGe,status:vGe,version:yGe,clientIcon:bGe,clientIconPlaceholder:_Ge,suffix:xGe,offline:wGe,headerRow:kGe,toggleRow:SGe,cell:CGe,header:jGe,pubkey:TGe,stake:IGe,stakePct:EGe},NGe="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3c/svg%3e",$Ge="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='%23111113'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_474_23049)'%3e%3cpath%20d='M39.3846%2011.9422C39.3846%207.91449%2036.1195%204.64941%2032.0918%204.64941C28.0641%204.64941%2024.7991%207.91449%2024.7991%2011.9422C24.7991%2015.9698%2028.0641%2019.2349%2032.0918%2019.2349C36.1195%2019.2349%2039.3846%2015.9698%2039.3846%2011.9422Z'%20fill='white'/%3e%3cpath%20d='M32.0907%2017.6901C35.3062%2017.6901%2037.9129%2015.0834%2037.9129%2011.8678C37.9129%208.65226%2035.3062%206.04553%2032.0907%206.04553C28.8751%206.04553%2026.2684%208.65226%2026.2684%2011.8678C26.2684%2015.0834%2028.8751%2017.6901%2032.0907%2017.6901Z'%20fill='white'%20stroke='%23000000F2'%20stroke-width='0.540037'/%3e%3cpath%20d='M32.6719%2010.4479C32.2543%2010.7361%2031.8053%2010.8349%2031.3257%2010.7436C30.8452%2010.6529%2030.4636%2010.4018%2030.1799%209.99083L29.7579%209.3793L30.3633%208.96143L30.7854%209.57296C30.9533%209.81627%2031.1774%209.96374%2031.4585%2010.0148C31.7388%2010.0665%2032.0029%2010.0068%2032.249%209.83693L33.3171%209.09511C33.6566%208.85936%2034.123%208.94414%2034.3578%209.2843L32.6719%2010.4479Z'%20fill='%23000000F2'/%3e%3cpath%20d='M33.4893%2012.4798C33.2006%2012.0614%2033.1011%2011.6119%2033.1914%2011.1321C33.2812%2010.6515%2033.5315%2010.27%2033.9417%209.98692L34.552%209.56567L34.9707%2010.1723L34.3603%2010.5935C34.1175%2010.7611%2033.9705%2010.9851%2033.92%2011.2664C33.8688%2011.5468%2033.9289%2011.8111%2034.0991%2012.0577L34.8439%2013.1301C35.0793%2013.469%2034.9946%2013.9345%2034.6551%2014.1689L33.4893%2012.4798Z'%20fill='%23000000F2'/%3e%3cpath%20d='M31.4498%2013.3013C31.8674%2013.013%2032.3164%2012.9143%2032.796%2013.0055C33.2764%2013.0962%2033.6581%2013.3473%2033.9417%2013.7583L34.3638%2014.3698L33.7584%2014.7877L33.3363%2014.1762C33.1684%2013.9329%2032.9442%2013.7854%2032.6631%2013.7343C32.3828%2013.6827%2032.1188%2013.7423%2031.8726%2013.9122L30.8045%2014.654C30.4651%2014.8898%2029.9986%2014.805%2029.7639%2014.4648L31.4498%2013.3013Z'%20fill='%23000000F2'/%3e%3cpath%20d='M30.6689%2011.3224C30.9576%2011.7408%2031.0571%2012.1903%2030.9668%2012.6701C30.877%2013.1507%2030.6267%2013.5321%2030.2165%2013.8152L29.6062%2014.2365L29.1875%2013.6299L29.7979%2013.2086C30.0407%2013.041%2030.1877%2012.817%2030.2383%2012.5358C30.2894%2012.2554%2030.2293%2011.9911%2030.0591%2011.7445L29.3143%2010.672C29.0789%2010.3332%2029.1636%209.86764%2029.5031%209.6333L30.6689%2011.3224Z'%20fill='%23000000F2'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_474_23049'%3e%3crect%20width='15'%20height='15'%20fill='white'%20transform='translate(24.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",MGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cg%20clip-path='url(%23clip0_bam)'%3e%3cg%20transform='translate(25.5%204.5)%20scale(0.1%200.10204)'%3e%3cpath%20d='M124.208%2034.2304C125.338%2034.8826%20125.338%2035.939%20124.208%2036.5912L100.697%2050.1653C99.5673%2050.8175%2097.7375%2050.8175%2096.6079%2050.1653L85.4912%2043.7471C83.8097%2042.7763%2081.0548%2042.6789%2079.3221%2043.6202C77.5894%2044.5616%2077.5025%2046.217%2079.2301%2047.2144L90.4746%2053.7064C91.6041%2054.3586%2091.6041%2055.415%2090.4746%2056.0672L66.9634%2069.6413C65.8338%2070.2935%2064.0041%2070.2935%2062.8745%2069.6413L5.62989%2036.5912C4.50034%2035.939%204.50033%2034.8826%205.62989%2034.2304L62.8694%201.18319C63.9989%200.531042%2065.8338%200.528091%2066.9634%201.18024L124.208%2034.2304ZM58.7805%2037.7745C57.0887%2036.7977%2054.3389%2036.7977%2052.6471%2037.7745L49.5805%2039.545C47.8887%2040.5218%2047.8887%2042.1094%2049.5805%2043.0861C51.2722%2044.0629%2054.022%2044.0629%2055.7138%2043.0861L58.7805%2041.3156C60.4723%2040.3388%2060.4723%2038.7512%2058.7805%2037.7745ZM78.2028%2026.561C76.511%2025.5843%2073.7612%2025.5843%2072.0694%2026.561L69.0027%2028.3316C67.311%2029.3083%2067.3109%2030.8959%2069.0027%2031.8727C70.6945%2032.8494%2073.4443%2032.8494%2075.1361%2031.8727L78.2028%2030.1021C79.8945%2029.1254%2079.8945%2027.5378%2078.2028%2026.561Z'%20fill='white'/%3e%3cpath%20d='M59.2891%2076.1449L2.04445%2043.0947C0.914891%2042.4425%200%2042.9707%200%2044.275V110.375C0%20111.674%200.914891%20113.264%202.04445%20113.916L24.5334%20126.9C25.663%20127.553%2026.5779%20127.024%2026.5779%20125.72V108.162C26.5779%20106.226%2027.871%20105.285%2029.5423%20106.185C31.2136%20107.085%2032.7112%20109.555%2032.7112%20111.556V129.261C32.7112%20130.566%2033.6261%20132.15%2034.7557%20132.802L59.2891%20146.967C60.4135%20147.616%2061.3335%20147.085%2061.3335%20145.786V79.6859C61.3335%2078.3816%2060.4135%2076.7941%2059.2891%2076.1449ZM32.7112%2086.7681C32.7112%2088.7216%2031.3363%2089.5154%2029.6445%2088.5387C27.9527%2087.5619%2026.5779%2085.1805%2026.5779%2083.227V79.6859C26.5779%2077.7265%2027.9476%2076.9357%2029.6445%2077.9154C31.3414%2078.8951%2032.7112%2081.2676%2032.7112%2083.227V86.7681Z'%20fill='white'/%3e%3cpath%20d='M129.768%2044.2782L129.758%20110.384C129.758%20111.683%20128.838%20113.276%20127.714%20113.926L115.447%20121.008C114.318%20121.66%20113.403%20121.126%20113.403%20119.821V102.116C113.403%20100.115%20111.977%2099.3333%20110.239%20100.402C108.501%20101.47%20107.269%20103.869%20107.269%20105.805V123.363C107.269%20124.667%20106.349%20126.254%20105.22%20126.907L92.9531%20133.989C91.8235%20134.641%2090.9086%20134.107%2090.9086%20132.803V115.097C90.9086%20113.096%2089.4826%20112.314%2087.7448%20113.383C86.007%20114.451%2084.7753%20116.85%2084.7753%20118.786V136.344C84.7753%20137.648%2083.8553%20139.235%2082.7257%20139.888L70.459%20146.97C69.3294%20147.622%2068.4146%20147.082%2068.4146%20145.784L68.4248%2079.6773C68.435%2078.373%2069.3499%2076.7884%2070.4794%2076.1362L93.9906%2062.562C95.1202%2061.9099%2096.0351%2062.444%2096.0351%2063.7483V76.7323C96.0351%2078.7212%2097.4508%2079.5091%2099.1835%2078.4556C100.916%2077.4021%20102.163%2074.9883%20102.163%2073.0466V60.2101C102.163%2058.9058%20103.083%2057.3183%20104.213%2056.6661L127.724%2043.0919C128.848%2042.4427%20129.768%2042.9739%20129.768%2044.2782Z'%20fill='white'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_bam'%3e%3crect%20width='13'%20height='15'%20fill='white'%20transform='translate(25.5%204.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",LGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.9666%2013.9482L32%204.5V15.7351H30.4462L29.7889%2016.2729L29.3705%2016.0637V15.6963L30.3462%2014.9648H31.1439L30.9666%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M33.0334%2013.9482L32%204.5V15.7351H33.5538L34.2112%2016.2729L34.6295%2016.0637V15.6963L33.6539%2014.9648H32.8562L33.0334%2013.9482Z'%20fill='white'/%3e%3cpath%20d='M32.7769%2016.0338H31.2231L31.5278%2018.1254C31.9083%2017.9732%2032.1222%2017.9697%2032.5027%2018.1254L32.7769%2016.0338Z'%20fill='white'/%3e%3ccircle%20cx='32'%20cy='18.9024'%20r='0.597609'%20fill='white'/%3e%3c/svg%3e",RGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M11.2689%2014.5409L9.62146%2017.4735H6.60583L5.68396%2014.2343L7.33142%2012.2509L11.2689%2014.5409ZM16.1566%209.23523L18.3627%2017.4735H12.9886L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M30.3732%2012.8333L28.5766%2017.4999H26.5V12.8333H30.3732Z'%20fill='white'/%3e%3cpath%20d='M32.2294%207.25712L26.5%2012.8333V6.5H33.007L32.2294%207.25712Z'%20fill='white'/%3e%3cpath%20d='M37.5001%2017.4997H28.5142L29.2508%2016.7805L35.0308%2011.1317L31.1466%2011.1272L32.9948%206.5H33.7908C36.6966%206.5%2038.0893%2010.2843%2035.9518%2012.3714L34.1024%2014.1786L34.1002%2014.181L37.5001%2017.5V17.4997Z'%20fill='white'/%3e%3c/svg%3e",OGe="data:image/svg+xml,%3csvg%20width='44'%20height='24'%20viewBox='0%200%2044%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='0.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M16.1566%209.23523L18.3627%2017.4735H12.9886L11.3783%2014.6581L9.93787%2017.2225H6.92126L6.00037%2013.9823L7.64783%2011.9999L10.9594%2013.9257L8.64392%209.87781L11.4369%206.52625L16.1566%209.23523Z'%20fill='white'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20fill='black'%20fill-opacity='0.95'/%3e%3crect%20x='20.5'%20y='0.5'%20width='23'%20height='23'%20rx='11.5'%20stroke='%23E0E0E0'/%3e%3cpath%20d='M26.0904%2015.5H24.5V8.5H26.0904V15.5Z'%20fill='white'/%3e%3cpath%20d='M39.5%2015.5H37.9096V8.5H39.5V15.5Z'%20fill='white'/%3e%3cpath%20d='M36.0011%2013.9841H32.8203V12.6465H36.0011V13.9841Z'%20fill='white'/%3e%3cpath%20d='M27.9989%2012.6465H26.3583V11.2049H27.9989V12.6465Z'%20fill='white'/%3e%3cpath%20d='M32.8203%2012.6465H31.1797V11.2049H32.8203V12.6465Z'%20fill='white'/%3e%3cpath%20d='M37.6417%2012.6465H36.0011V11.2049H37.6417V12.6465Z'%20fill='white'/%3e%3cpath%20d='M31.1797%2011.2049H27.9989V9.8673H31.1797V11.2049Z'%20fill='white'/%3e%3c/svg%3e",PGe="/assets/firedancer_circle_logo-D9jlxCje.svg",zGe="/assets/firedancer_harmonic_circle_logo-BDGMe3Wt.svg",DGe="/assets/frankendancer_circle_logo-D5z79vwQ.svg",AGe="/assets/frankendancer_harmonic_circle_logo-RW9Ak0Ky.svg",FGe="data:image/svg+xml,%3csvg%20width='35'%20height='20'%20viewBox='0%200%2035%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='25'%20cy='10'%20r='9.5'%20stroke='%233E332E'/%3e%3cmask%20id='path-2-inside-1_10887_28103'%20fill='white'%3e%3cpath%20d='M10%200C13.2712%200%2016.1755%201.57069%2018%203.99902C16.7442%205.67051%2016%207.74835%2016%2010C16%2012.2514%2016.7445%2014.3286%2018%2016C16.1756%2018.4287%2013.2715%2020%2010%2020C4.47715%2020%200%2015.5228%200%2010C0%204.47715%204.47715%200%2010%200Z'/%3e%3c/mask%3e%3cpath%20d='M18%203.99902L18.7995%204.5997L19.2508%203.99902L18.7995%203.39835L18%203.99902ZM18%2016L18.7995%2016.6006L19.2507%2016L18.7995%2015.3994L18%2016ZM10%200V1C12.9434%201%2015.5568%202.41194%2017.2005%204.5997L18%203.99902L18.7995%203.39835C16.7943%200.729431%2013.599%20-1%2010%20-1V0ZM18%203.99902L17.2005%203.39835C15.819%205.23708%2015%207.52433%2015%2010H16H17C17%207.97237%2017.6693%206.10394%2018.7995%204.5997L18%203.99902ZM16%2010H15C15%2012.4755%2015.8194%2014.7621%2017.2005%2016.6006L18%2016L18.7995%2015.3994C17.6695%2013.8951%2017%2012.0272%2017%2010H16ZM18%2016L17.2005%2015.3994C15.5567%2017.5876%2012.9436%2019%2010%2019V20V21C13.5994%2021%2016.7944%2019.2698%2018.7995%2016.6006L18%2016ZM10%2020V19C5.02944%2019%201%2014.9706%201%2010H0H-1C-1%2016.0751%203.92487%2021%2010%2021V20ZM0%2010H1C1%205.02944%205.02944%201%2010%201V0V-1C3.92487%20-1%20-1%203.92487%20-1%2010H0Z'%20fill='%233E332E'%20mask='url(%23path-2-inside-1_10887_28103)'/%3e%3c/svg%3e",BGe="_small-icon_imn4j_1",UGe="_medium-icon_imn4j_5",WGe="_large-icon_imn4j_9",VGe="_xlarge-icon_imn4j_13",HGe={smallIcon:BGe,mediumIcon:UGe,largeIcon:WGe,xlargeIcon:VGe},ZGe={[za.Frankendancer]:{src:DGe,alt:"Frankendancer Logo"},[za.Firedancer]:{src:PGe,alt:"Firedancer Logo"},[za.Agave]:{src:NGe,alt:"Anza Logo"},[za.AgaveJito]:{src:$Ge,alt:"Anza Jito Logo"},[za.AgavePaladin]:{src:LGe,alt:"Anza Paladin Logo"},[za.AgaveBam]:{src:MGe,alt:"Anza Bam Logo"},[za.AgaveRakurai]:{src:RGe,alt:"Anza Rakurai Logo"},[za.Sig]:null,[za.FiredancerHarmonic]:{src:zGe,alt:"Firedancer Harmonic Logo"},[za.AgaveHarmonic]:{src:OGe,alt:"Anza Harmonic Logo"},[za.FrankendancerHarmonic]:{src:AGe,alt:"Frankendancer Harmonic Logo"}},Nse=m.memo(function({client:e,size:t,showPlaceholder:n,className:r,placeholderClassName:i}){const o=Te(HGe[`${t}Icon`],r),a=e?ZGe[e]:void 0;return a?u.jsx("img",{src:a.src,alt:a.alt,className:o}):n?u.jsx("img",{src:FGe,alt:"Empty clients logo",className:Te(o,i)}):null}),qGe=Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"short",minimumSignificantDigits:3,maximumSignificantDigits:3});function HM(e){if(e==null)return;const t=qGe.formatToParts(Number(e)/dd);let n="",r;for(const{value:i,type:o}of t)o==="compact"?r=i:n+=i;return{formatted:n,suffix:r}}function GGe(e,t,n){if(e==null||!t)return;const r=10**n,i=100n*BigInt(r)*e/t;return Number(i)/r}const j6=0,uh=1,e1=2,$se=4;function Mse(e){return()=>e}function YGe(e){e()}function x_(e,t){return n=>e(t(n))}function Lse(e,t){return()=>e(t)}function KGe(e,t){return n=>e(t,n)}function ZM(e){return e!==void 0}function XGe(...e){return()=>{e.map(YGe)}}function t1(){}function T6(e,t){return t(e),e}function JGe(e,t){return t(e)}function Dr(...e){return e}function qn(e,t){return e(uh,t)}function Jt(e,t){e(j6,t)}function qM(e){e(e1)}function ki(e){return e($se)}function yt(e,t){return qn(e,KGe(t,j6))}function uu(e,t){const n=e(uh,r=>{n(),t(r)});return n}function Rse(e){let t,n;return r=>i=>{t=i,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Ose(e,t){return e===t}function Ar(e=Ose){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function zt(e){return t=>n=>{e(n)&&t(n)}}function lt(e){return t=>x_(t,e)}function nc(e){return t=>()=>{t(e)}}function Ue(e,...t){const n=QGe(...t);return(r,i)=>{switch(r){case e1:qM(e);return;case uh:return qn(e,n(i))}}}function rc(e,t){return n=>r=>{n(t=e(t,r))}}function Ap(e){return t=>n=>{e>0?e--:t(n)}}function kd(e){let t=null,n;return r=>i=>{t=i,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function cn(...e){const t=new Array(e.length);let n=0,r=null;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{const c=n;n=n|s,t[a]=l,c!==i&&n===i&&r&&(r(),r=null)})}),o=>a=>{const s=()=>{o([a].concat(t))};n===i?s():r=s}}function QGe(...e){return t=>e.reduceRight(JGe,t)}function eYe(e){let t,n;const r=()=>t==null?void 0:t();return function(i,o){switch(i){case uh:return o?n===o?void 0:(r(),n=o,t=qn(e,o),t):(r(),t1);case e1:r(),n=null;return}}}function Ye(e){let t=e;const n=kn();return(r,i)=>{switch(r){case j6:t=i;break;case uh:{i(t);break}case $se:return t}return n(r,i)}}function Wo(e,t){return T6(Ye(t),n=>yt(e,n))}function kn(){const e=[];return(t,n)=>{switch(t){case j6:e.slice().forEach(r=>{r(n)});return;case e1:e.splice(0,e.length);return;case uh:return e.push(n),()=>{const r=e.indexOf(n);r>-1&&e.splice(r,1)}}}}function Es(e){return T6(kn(),t=>yt(e,t))}function Rn(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:tYe(),singleton:n}}const tYe=()=>Symbol();function nYe(e){const t=new Map,n=({constructor:r,dependencies:i,id:o,singleton:a})=>{if(a&&t.has(o))return t.get(o);const s=r(i.map(l=>n(l)));return a&&t.set(o,s),s};return n(e)}function Oi(...e){const t=kn(),n=new Array(e.length);let r=0;const i=Math.pow(2,e.length)-1;return e.forEach((o,a)=>{const s=Math.pow(2,a);qn(o,l=>{n[a]=l,r=r|s,r===i&&Jt(t,n)})}),function(o,a){switch(o){case e1:{qM(t);return}case uh:return r===i&&a(n),qn(t,a)}}}function Rt(e,t=Ose){return Ue(e,Ar(t))}function GM(...e){return function(t,n){switch(t){case e1:return;case uh:return XGe(...e.map(r=>qn(r,n)))}}}var Va=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(Va||{});const rYe={0:"debug",3:"error",1:"log",2:"warn"},iYe=()=>typeof globalThis>"u"?window:globalThis,ch=Rn(()=>{const e=Ye(3);return{log:Ye((t,n,r=1)=>{var i;const o=(i=iYe().VIRTUOSO_LOG_LEVEL)!=null?i:ki(e);r>=o&&console[rYe[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function ic(e,t,n){return YM(e,t,n).callbackRef}function YM(e,t,n){const r=Oe.useRef(null);let i=a=>{};const o=Oe.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(a=>{const s=()=>{const l=a[0].target;l.offsetParent!==null&&e(l)};n?s():requestAnimationFrame(s)}):null,[e,n]);return i=a=>{a&&t?(o==null||o.observe(a),r.current=a):(r.current&&(o==null||o.unobserve(r.current)),r.current=null)},{callbackRef:i,ref:r}}function Pse(e,t,n,r,i,o,a,s,l){const c=Oe.useCallback(d=>{const f=oYe(d.children,t,s?"offsetWidth":"offsetHeight",i);let p=d.parentElement;for(;!p.dataset.virtuosoScroller;)p=p.parentElement;const v=p.lastElementChild.dataset.viewportType==="window";let _;v&&(_=p.ownerDocument.defaultView);const y=a?s?a.scrollLeft:a.scrollTop:v?s?_.scrollX||_.document.documentElement.scrollLeft:_.scrollY||_.document.documentElement.scrollTop:s?p.scrollLeft:p.scrollTop,b=a?s?a.scrollWidth:a.scrollHeight:v?s?_.document.documentElement.scrollWidth:_.document.documentElement.scrollHeight:s?p.scrollWidth:p.scrollHeight,w=a?s?a.offsetWidth:a.offsetHeight:v?s?_.innerWidth:_.innerHeight:s?p.offsetWidth:p.offsetHeight;r({scrollHeight:b,scrollTop:Math.max(y,0),viewportHeight:w}),o==null||o(s?zse("column-gap",getComputedStyle(d).columnGap,i):zse("row-gap",getComputedStyle(d).rowGap,i)),f!==null&&e(f)},[e,t,i,o,a,r,s]);return YM(c,n,l)}function oYe(e,t,n,r){const i=e.length;if(i===0)return null;const o=[];for(let a=0;a{if(!(l!=null&&l.offsetParent))return;const c=l.getBoundingClientRect(),d=c.width;let f,p;if(t){const v=t.getBoundingClientRect(),_=c.top-v.top;p=v.height-Math.max(0,_),f=_+t.scrollTop}else{const v=a.current.ownerDocument.defaultView;p=v.innerHeight-Math.max(0,c.top),f=c.top+v.scrollY}r.current={offsetTop:f,visibleHeight:p,visibleWidth:d},e(r.current)},[e,t]),{callbackRef:o,ref:a}=YM(i,!0,n),s=Oe.useCallback(()=>{i(a.current)},[i,a]);return Oe.useEffect(()=>{var l;if(t){t.addEventListener("scroll",s);const c=new ResizeObserver(()=>{requestAnimationFrame(s)});return c.observe(t),()=>{t.removeEventListener("scroll",s),c.unobserve(t)}}else{const c=(l=a.current)==null?void 0:l.ownerDocument.defaultView;return c==null||c.addEventListener("scroll",s),c==null||c.addEventListener("resize",s),()=>{c==null||c.removeEventListener("scroll",s),c==null||c.removeEventListener("resize",s)}}},[s,t,a]),o}const ga=Rn(()=>{const e=kn(),t=kn(),n=Ye(0),r=kn(),i=Ye(0),o=kn(),a=kn(),s=Ye(0),l=Ye(0),c=Ye(0),d=Ye(0),f=kn(),p=kn(),v=Ye(!1),_=Ye(!1),y=Ye(!1);return yt(Ue(e,lt(({scrollTop:b})=>b)),t),yt(Ue(e,lt(({scrollHeight:b})=>b)),a),yt(t,i),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:_,scrollBy:p,scrollContainerState:e,scrollHeight:a,scrollingInProgress:v,scrollTo:f,scrollTop:t,skipAnimationFrameInResizeObserver:y,smoothScrollTargetReached:r,statefulScrollTop:i,viewportHeight:o}},[],{singleton:!0}),w_={lvl:0};function Dse(e,t){const n=e.length;if(n===0)return[];let{index:r,value:i}=t(e[0]);const o=[];for(let a=1;at&&(s=s.concat(JM(i,t,n))),r>=t&&r<=n&&s.push({k:r,v:a}),r<=n&&(s=s.concat(JM(o,t,n))),s}function E6(e){const{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(QM(t))return Wse(Gi(e,{lvl:n-1}));if(!_r(t)&&!_r(t.r))return Gi(t.r,{l:Gi(t,{r:t.r.l}),lvl:n,r:Gi(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(QM(e))return eL(Gi(e,{lvl:n-1}));if(!_r(r)&&!_r(r.l)){const i=r.l,o=QM(i)?r.lvl-1:r.lvl;return Gi(i,{l:Gi(e,{lvl:n-1,r:i.l}),lvl:i.lvl+1,r:eL(Gi(r,{l:i.r,lvl:o}))})}else throw new Error("Unexpected empty nodes")}}function Gi(e,t){return Bse(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function Ase(e){return _r(e.r)?e.l:E6(Gi(e,{r:Ase(e.r)}))}function QM(e){return _r(e)||e.lvl>e.r.lvl}function Fse(e){return _r(e.r)?[e.k,e.v]:Fse(e.r)}function Bse(e,t,n,r=w_,i=w_){return{k:e,l:r,lvl:n,r:i,v:t}}function Use(e){return eL(Wse(e))}function Wse(e){const{l:t}=e;return!_r(t)&&t.lvl===e.lvl?Gi(t,{r:Gi(e,{l:t.r})}):e}function eL(e){const{lvl:t,r:n}=e;return!_r(n)&&!_r(n.r)&&n.lvl===t&&n.r.lvl===t?Gi(n,{l:Gi(e,{r:n.l}),lvl:t+1}):e}function aYe(e){return Dse(e,({k:t,v:n})=>({index:t,value:n}))}function Vse(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function S_(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const tL=Rn(()=>({recalcInProgress:Ye(!1)}),[],{singleton:!0});function Hse(e,t,n){return e[N6(e,t,n)]}function N6(e,t,n,r=0){let i=e.length-1;for(;r<=i;){const o=Math.floor((r+i)/2),a=e[o],s=n(a,t);if(s===0)return o;if(s===-1){if(i-r<2)return o-1;i=o-1}else{if(i===r)return o;r=o+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function sYe(e,t,n,r){const i=N6(e,t,r),o=N6(e,n,r,i);return e.slice(i,o+1)}function du(e,t){return Math.round(e.getBoundingClientRect()[t])}function $6(e){return!_r(e.groupOffsetTree)}function nL({index:e},t){return t===e?0:t=f||o===p)&&(e=XM(e,f)):(c=p!==o,l=!0),d>i&&i>=f&&p!==o&&(e=Ns(e,i+1,p));c&&(e=Ns(e,a,o))}return[e,n]}function cYe(e){return typeof e.groupIndex<"u"}function dYe({offset:e},t){return t===e?0:t0?s+n:s}function Zse(e,t){if(!$6(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function qse(e,t,n){if(cYe(e))return t.groupIndices[e.groupIndex]+1;{const r=e.index==="LAST"?n:e.index;let i=Zse(r,t);return i=Math.max(0,i,Math.min(n,i)),i}}function fYe(e,t,n,r=0){return r>0&&(t=Math.max(t,Hse(e,r,nL).offset)),Dse(sYe(e,t,n,dYe),mYe)}function hYe(e,[t,n,r,i]){t.length>0&&r("received item sizes",t,Va.DEBUG);const o=e.sizeTree;let a=o,s=0;if(n.length>0&&_r(o)&&t.length===2){const p=t[0].size,v=t[1].size;a=n.reduce((_,y)=>Ns(Ns(_,y,p),y+1,v),a)}else[a,s]=uYe(a,t);if(a===o)return e;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f}=rL(e.offsetTree,s,a,i);return{groupIndices:n,groupOffsetTree:n.reduce((p,v)=>Ns(p,v,C_(v,f,i)),n1()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:f,sizeTree:a}}function pYe(e){return Fp(e).map(({k:t,v:n},r,i)=>{const o=i[r+1];return{endIndex:o?o.k-1:1/0,size:n,startIndex:t}})}function Gse(e,t){let n=0,r=0;for(;ni.start===r&&(i.end===t||i.end===1/0)&&i.value===n}const vYe={offsetHeight:"height",offsetWidth:"width"},oc=Rn(([{log:e},{recalcInProgress:t}])=>{const n=kn(),r=kn(),i=Wo(r,0),o=kn(),a=kn(),s=Ye(0),l=Ye([]),c=Ye(void 0),d=Ye(void 0),f=Ye((j,T)=>du(j,vYe[T])),p=Ye(void 0),v=Ye(0),_=lYe(),y=Wo(Ue(n,cn(l,e,v),rc(hYe,_),Ar()),_),b=Wo(Ue(l,Ar(),rc((j,T)=>({current:T,prev:j.current}),{current:[],prev:[]}),lt(({prev:j})=>j)),[]);yt(Ue(l,zt(j=>j.length>0),cn(y,v),lt(([j,T,E])=>{const $=j.reduce((A,M,P)=>Ns(A,M,C_(M,T.offsetTree,E)||P),n1());return{...T,groupIndices:j,groupOffsetTree:$}})),y),yt(Ue(r,cn(y),zt(([j,{lastIndex:T}])=>j[{endIndex:T,size:E,startIndex:j}])),n),yt(c,d);const w=Wo(Ue(c,lt(j=>j===void 0)),!0);yt(Ue(d,zt(j=>j!==void 0&&_r(ki(y).sizeTree)),lt(j=>[{endIndex:0,size:j,startIndex:0}])),n);const x=Es(Ue(n,cn(y),rc(({sizes:j},[T,E])=>({changed:E!==j,sizes:E}),{changed:!1,sizes:_}),lt(j=>j.changed)));qn(Ue(s,rc((j,T)=>({diff:j.prev-T,prev:T}),{diff:0,prev:0}),lt(j=>j.diff)),j=>{const{groupIndices:T}=ki(y);if(j>0)Jt(t,!0),Jt(o,j+Gse(j,T));else if(j<0){const E=ki(b);E.length>0&&(j-=Gse(-j,E)),Jt(a,j)}}),qn(Ue(s,cn(e)),([j,T])=>{j<0&&T("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Va.ERROR)});const S=Es(o);yt(Ue(o,cn(y),lt(([j,T])=>{const E=T.groupIndices.length>0,$=[],A=T.lastSize;if(E){const M=k_(T.sizeTree,0);let P=0,te=0;for(;P{let Y=O.ranges;return O.prevSize!==0&&(Y=[...O.ranges,{endIndex:J+j-1,size:O.prevSize,startIndex:O.prevIndex}]),{prevIndex:J+j,prevSize:D,ranges:Y}},{prevIndex:j,prevSize:0,ranges:$}).ranges}return Fp(T.sizeTree).reduce((M,{k:P,v:te})=>({prevIndex:P+j,prevSize:te,ranges:[...M.ranges,{endIndex:P+j-1,size:M.prevSize,startIndex:M.prevIndex}]}),{prevIndex:0,prevSize:A,ranges:[]}).ranges})),n);const C=Es(Ue(a,cn(y,v),lt(([j,{offsetTree:T},E])=>{const $=-j;return C_($,T,E)})));return yt(Ue(a,cn(y,v),lt(([j,T,E])=>{if(T.groupIndices.length>0){if(_r(T.sizeTree))return T;let $=n1();const A=ki(b);let M=0,P=0,te=0;for(;M<-j;){te=A[P];const Z=A[P+1]-te-1;P++,M+=Z+1}if($=Fp(T.sizeTree).reduce((Z,{k:O,v:J})=>Ns(Z,Math.max(0,O+j),J),$),M!==-j){const Z=k_(T.sizeTree,te);$=Ns($,0,Z);const O=cu(T.sizeTree,-j+1)[1];$=Ns($,1,O)}return{...T,sizeTree:$,...rL(T.offsetTree,0,$,E)}}else{const $=Fp(T.sizeTree).reduce((A,{k:M,v:P})=>Ns(A,Math.max(0,M+j),P),n1());return{...T,sizeTree:$,...rL(T.offsetTree,0,$,E)}}})),y),{beforeUnshiftWith:S,data:p,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:v,groupIndices:l,itemSize:f,listRefresh:x,shiftWith:a,shiftWithOffset:C,sizeRanges:n,sizes:y,statefulTotalCount:i,totalCount:r,trackItemSizes:w,unshiftWith:o}},Dr(ch,tL),{singleton:!0});function yYe(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const Yse=Rn(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:i}])=>{const o=kn(),a=kn(),s=Es(Ue(o,lt(yYe)));return yt(Ue(s,lt(l=>l.totalCount)),n),yt(Ue(s,lt(l=>l.groupIndices)),e),yt(Ue(Oi(i,t,r),zt(([l,c])=>$6(c)),lt(([l,c,d])=>cu(c.groupOffsetTree,Math.max(l-d,0),"v")[0]),Ar(),lt(l=>[l])),a),{groupCounts:o,topItemsIndexes:a}},Dr(oc,ga)),dh=Rn(([{log:e}])=>{const t=Ye(!1),n=Es(Ue(t,zt(r=>r),Ar()));return qn(t,r=>{r&&ki(e)("props updated",{},Va.DEBUG)}),{didMount:n,propsReady:t}},Dr(ch),{singleton:!0}),bYe=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Kse(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!bYe)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const j_=Rn(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:i,fixedHeaderHeight:o,footerHeight:a,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:f},{log:p}])=>{const v=kn(),_=kn(),y=Ye(0);let b=null,w=null,x=null;function S(){b&&(b(),b=null),x&&(x(),x=null),w&&(clearTimeout(w),w=null),Jt(l,!1)}return yt(Ue(v,cn(n,f,r,y,s,a,p),cn(e,o,i),lt(([[C,j,T,E,$,A,M,P],te,Z,O])=>{const J=Kse(C),{align:D,behavior:Y,offset:F}=J,H=E-1,ee=qse(J,j,H);let ce=C_(ee,j.offsetTree,te)+A;D==="end"?(ce+=Z+cu(j.sizeTree,ee)[1]-T+O,ee===H&&(ce+=M)):D==="center"?ce+=(Z+cu(j.sizeTree,ee)[1]-T+O)/2:ce-=$,F&&(ce+=F);const U=ae=>{S(),ae?(P("retrying to scroll to",{location:C},Va.DEBUG),Jt(v,C)):(Jt(_,!0),P("list did not change, scroll successful",{},Va.DEBUG))};if(S(),Y==="smooth"){let ae=!1;x=qn(t,je=>{ae=ae||je}),b=uu(d,()=>{U(ae)})}else b=uu(Ue(t,_Ye(150)),U);return w=setTimeout(()=>{S()},1200),Jt(l,!0),P("scrolling from index to",{behavior:Y,index:ee,top:ce},Va.DEBUG),{behavior:Y,top:ce}})),c),{scrollTargetReached:_,scrollToIndex:v,topListHeight:y}},Dr(oc,ga,ch),{singleton:!0});function _Ye(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return r=>{r&&(t(!0),clearTimeout(n))}}}function iL(e,t){e==0?t():requestAnimationFrame(()=>{iL(e-1,t)})}function oL(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const T_=Rn(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:i,scrollToIndex:o},{didMount:a}])=>{const s=Ye(!0),l=Ye(0),c=Ye(!0);return yt(Ue(a,cn(l),zt(([d,f])=>!!f),nc(!1)),s),yt(Ue(a,cn(l),zt(([d,f])=>!!f),nc(!1)),c),qn(Ue(Oi(t,a),cn(s,n,e,c),zt(([[,d],f,{sizeTree:p},v,_])=>d&&(!_r(p)||ZM(v))&&!f&&!_),cn(l)),([,d])=>{uu(i,()=>{Jt(c,!0)}),iL(4,()=>{uu(r,()=>{Jt(s,!0)}),Jt(o,d)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},Dr(oc,ga,j_,dh),{singleton:!0});function Xse(e,t){return Math.abs(e-t)<1.01}const I_="up",E_="down",xYe="none",wYe={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},kYe=0,N_=Rn(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:i,viewportHeight:o}])=>{const a=Ye(!1),s=Ye(!0),l=kn(),c=kn(),d=Ye(4),f=Ye(kYe),p=Wo(Ue(GM(Ue(Rt(i),Ap(1),nc(!0)),Ue(Rt(i),Ap(1),nc(!1),Rse(100))),Ar()),!1),v=Wo(Ue(GM(Ue(n,nc(!0)),Ue(n,nc(!1),Rse(200))),Ar()),!1);yt(Ue(Oi(Rt(i),Rt(f)),lt(([x,S])=>x<=S),Ar()),s),yt(Ue(s,kd(50)),c);const _=Es(Ue(Oi(r,Rt(o),Rt(t),Rt(e),Rt(d)),rc((x,[{scrollHeight:S,scrollTop:C},j,T,E,$])=>{const A=C+j-S>-$,M={scrollHeight:S,scrollTop:C,viewportHeight:j};if(A){let te,Z;return C>x.state.scrollTop?(te="SCROLLED_DOWN",Z=x.state.scrollTop-C):(te="SIZE_DECREASED",Z=x.state.scrollTop-C||x.scrollTopDelta),{atBottom:!0,atBottomBecause:te,scrollTopDelta:Z,state:M}}let P;return M.scrollHeight>x.state.scrollHeight?P="SIZE_INCREASED":jx&&x.atBottom===S.atBottom))),y=Wo(Ue(r,rc((x,{scrollHeight:S,scrollTop:C,viewportHeight:j})=>{if(Xse(x.scrollHeight,S))return{changed:!1,jump:0,scrollHeight:S,scrollTop:C};{const T=S-(C+j)<1;return x.scrollTop!==C&&T?{changed:!0,jump:x.scrollTop-C,scrollHeight:S,scrollTop:C}:{changed:!0,jump:0,scrollHeight:S,scrollTop:C}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),zt(x=>x.changed),lt(x=>x.jump)),0);yt(Ue(_,lt(x=>x.atBottom)),a),yt(Ue(a,kd(50)),l);const b=Ye(E_);yt(Ue(r,lt(({scrollTop:x})=>x),Ar(),rc((x,S)=>ki(v)?{direction:x.direction,prevScrollTop:S}:{direction:Sx.direction)),b),yt(Ue(r,kd(50),nc(xYe)),b);const w=Ye(0);return yt(Ue(p,zt(x=>!x),nc(0)),w),yt(Ue(i,kd(100),cn(p),zt(([x,S])=>!!S),rc(([x,S],[C])=>[S,C],[0,0]),lt(([x,S])=>S-x)),w),{atBottomState:_,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:f,isAtBottom:a,isAtTop:s,isScrolling:p,lastJumpDueToItemResize:y,scrollDirection:b,scrollVelocity:w}},Dr(ga)),M6="top",L6="bottom",Jse="none";function Qse(e,t,n){return typeof e=="number"?n===I_&&t===M6||n===E_&&t===L6?e:0:n===I_?t===M6?e.main:e.reverse:t===L6?e.main:e.reverse}function ele(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const aL=Rn(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:i}])=>{const o=kn(),a=Ye(0),s=Ye(0),l=Ye(0),c=Wo(Ue(Oi(Rt(r),Rt(i),Rt(n),Rt(o,S_),Rt(l),Rt(a),Rt(t),Rt(e),Rt(s)),lt(([d,f,p,[v,_],y,b,w,x,S])=>{const C=d-x,j=b+w,T=Math.max(p-C,0);let E=Jse;const $=ele(S,M6),A=ele(S,L6);return v-=x,v+=p+w,_+=p+w,_-=x,v>d+j-$&&(E=I_),_d!=null),Ar(S_)),[0,0]);return{increaseViewportBy:s,listBoundary:o,overscan:l,topListHeight:a,visibleRange:c}},Dr(ga),{singleton:!0});function SYe(e,t,n){if($6(t)){const r=Zse(e,t);return[{index:cu(t.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:e,offset:0,size:0}]}const sL={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function R6(e,t,n,r,i,o){const{lastIndex:a,lastOffset:s,lastSize:l}=i;let c=0,d=0;if(e.length>0){c=e[0].offset;const y=e[e.length-1];d=y.offset+y.size}const f=n-a,p=s+f*l+(f-1)*r,v=c,_=p-d;return{bottom:d,firstItemIndex:o,items:nle(e,i,o),offsetBottom:_,offsetTop:c,top:v,topItems:nle(t,i,o),topListHeight:t.reduce((y,b)=>b.size+y,0),totalCount:n}}function tle(e,t,n,r,i,o){let a=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-a>=e)break;a++}const s=e+a,l=oL(t,s),c=Array.from({length:s}).map((d,f)=>({data:o[f+l],index:f+l,offset:0,size:0}));return R6(c,[],s,i,n,r)}function nle(e,t,n){if(e.length===0)return[];if(!$6(t))return e.map(c=>({...c,index:c.index+n,originalIndex:c.index}));const r=e[0].index,i=e[e.length-1].index,o=[],a=I6(t.groupOffsetTree,r,i);let s,l=0;for(const c of e){(!s||s.end{const y=Ye([]),b=Ye(0),w=kn();yt(o.topItemsIndexes,y);const x=Wo(Ue(Oi(v,_,Rt(l,S_),Rt(i),Rt(r),Rt(c),d,Rt(y),Rt(t),Rt(n),e),zt(([T,E,,$,,,,,,,A])=>{const M=A&&A.length!==$;return T&&!E&&!M}),lt(([,,[T,E],$,A,M,P,te,Z,O,J])=>{const D=A,{offsetTree:Y,sizeTree:F}=D,H=ki(b);if($===0)return{...sL,totalCount:$};if(T===0&&E===0)return H===0?{...sL,totalCount:$}:tle(H,M,A,Z,O,J||[]);if(_r(F))return H>0?null:R6(SYe(oL(M,$),D,J),[],$,O,D,Z);const ee=[];if(te.length>0){const me=te[0],ke=te[te.length-1];let he=0;for(const ue of I6(F,me,ke)){const re=ue.value,ge=Math.max(ue.start,me),$e=Math.min(ue.end,ke);for(let pe=ge;pe<=$e;pe++)ee.push({data:J==null?void 0:J[pe],index:pe,offset:he,size:re}),he+=re}}if(!P)return R6([],ee,$,O,D,Z);const ce=te.length>0?te[te.length-1]+1:0,U=fYe(Y,T,E,ce);if(U.length===0)return null;const ae=$-1,je=T6([],me=>{for(const ke of U){const he=ke.value;let ue=he.offset,re=ke.start;const ge=he.size;if(he.offset=E);pe++)me.push({data:J==null?void 0:J[pe],index:pe,offset:ue,size:ge}),ue+=ge+O}});return R6(je,ee,$,O,D,Z)}),zt(T=>T!==null),Ar()),sL);yt(Ue(e,zt(ZM),lt(T=>T==null?void 0:T.length)),i),yt(Ue(x,lt(T=>T.topListHeight)),f),yt(f,s),yt(Ue(x,lt(T=>[T.top,T.bottom])),a),yt(Ue(x,lt(T=>T.items)),w);const S=Es(Ue(x,zt(({items:T})=>T.length>0),cn(i,e),zt(([{items:T},E])=>T[T.length-1].originalIndex===E-1),lt(([,T,E])=>[T-1,E]),Ar(S_),lt(([T])=>T))),C=Es(Ue(x,kd(200),zt(({items:T,topItems:E})=>T.length>0&&T[0].originalIndex===E.length),lt(({items:T})=>T[0].index),Ar())),j=Es(Ue(x,zt(({items:T})=>T.length>0),lt(({items:T})=>{let E=0,$=T.length-1;for(;T[E].type==="group"&&E<$;)E++;for(;T[$].type==="group"&&$>E;)$--;return{endIndex:T[$].index,startIndex:T[E].index}}),Ar(Vse)));return{endReached:S,initialItemCount:b,itemsRendered:w,listState:x,rangeChanged:j,startReached:C,topItemsIndexes:y,...p}},Dr(oc,Yse,aL,T_,j_,N_,dh,tL),{singleton:!0}),rle=Rn(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:i}])=>{const o=kn(),a=Wo(Ue(Oi(n,e,r,t,i),lt(([s,l,c,d,f])=>s+l+c+d+f.offsetBottom+f.bottom)),0);return yt(Rt(a),o),{totalListHeight:a,totalListHeightChanged:o}},Dr(ga,Bp),{singleton:!0}),CYe=Rn(([{viewportHeight:e},{totalListHeight:t}])=>{const n=Ye(!1),r=Wo(Ue(Oi(n,e,t),zt(([i])=>i),lt(([,i,o])=>Math.max(0,i-o)),kd(0),Ar()),0);return{alignToBottom:n,paddingTopAddition:r}},Dr(ga,rle),{singleton:!0}),ile=Rn(()=>({context:Ye(null)})),jYe=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...i},viewportBottom:o,viewportTop:a})=>to?{...i,align:n??"end",behavior:r}:null,ole=Rn(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:i,headerHeight:o,scrollingInProgress:a,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=kn();return yt(Ue(d,cn(t,l,n,o,i,r,s),cn(e),lt(([[f,p,v,_,y,b,w,x],S])=>{const{align:C,behavior:j,calculateViewLocation:T=jYe,done:E,...$}=f,A=qse(f,p,_-1),M=C_(A,p.offsetTree,S)+y+b,P=M+cu(p.sizeTree,A)[1],te=x+b,Z=x+v-w,O=T({itemBottom:P,itemTop:M,locationParams:{align:C,behavior:j,...$},viewportBottom:Z,viewportTop:te});return O?E&&uu(Ue(a,zt(J=>!J),Ap(ki(a)?1:2)),E):E&&E(),O}),zt(f=>f!==null)),c),{scrollIntoView:d}},Dr(oc,ga,j_,Bp,ch),{singleton:!0});function ale(e){return e?e==="smooth"?"smooth":"auto":!1}const TYe=(e,t)=>typeof e=="function"?ale(e(t)):t&&ale(e),IYe=Rn(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:i,isAtBottom:o},{scrollToIndex:a},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:f},{context:p},{scrollIntoView:v}])=>{const _=Ye(!1),y=kn();let b=null;function w(j){Jt(a,{align:"end",behavior:j,index:"LAST"})}qn(Ue(Oi(Ue(Rt(t),Ap(1)),l),cn(Rt(_),o,s,f),lt(([[j,T],E,$,A,M])=>{let P=T&&A,te="auto";return P&&(te=TYe(E,$||M),P=P&&!!te),{followOutputBehavior:te,shouldFollow:P,totalCount:j}}),zt(({shouldFollow:j})=>j)),({followOutputBehavior:j,totalCount:T})=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j)}):b=uu(e,()=>{ki(d)("following output to ",{totalCount:T},Va.DEBUG),w(j),b=null})});function x(j){const T=uu(i,E=>{j&&!E.atBottom&&E.notAtBottomBecause==="SIZE_INCREASED"&&!b&&(ki(d)("scrolling to bottom due to increased size",{},Va.DEBUG),w("auto"))});setTimeout(T,100)}qn(Ue(Oi(Rt(_),t,c),zt(([j,,T])=>j&&T),rc(({value:j},[,T])=>({refreshed:j===T,value:T}),{refreshed:!1,value:0}),zt(({refreshed:j})=>j),cn(_,t)),([,j])=>{ki(s)&&x(j!==!1)}),qn(y,()=>{x(ki(_)!==!1)}),qn(Oi(Rt(_),i),([j,T])=>{j&&!T.atBottom&&T.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&w("auto")});const S=Ye(null),C=kn();return yt(GM(Ue(Rt(r),lt(j=>{var T;return(T=j==null?void 0:j.length)!=null?T:0})),Ue(Rt(t))),C),qn(Ue(Oi(Ue(C,Ap(1)),l),cn(Rt(S),s,f,p),lt(([[j,T],E,$,A,M])=>T&&$&&(E==null?void 0:E({context:M,totalCount:j,scrollingInProgress:A}))),zt(j=>!!j),kd(0)),j=>{b&&(b(),b=null),ki(n)?requestAnimationFrame(()=>{ki(d)("scrolling into view",{}),Jt(v,j)}):b=uu(e,()=>{ki(d)("scrolling into view",{}),Jt(v,j),b=null})}),{autoscrollToBottom:y,followOutput:_,scrollIntoViewOnChange:S}},Dr(oc,N_,j_,T_,dh,ch,ga,ile,ole)),EYe=Rn(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:i},{initialItemCount:o,listState:a},{didMount:s}])=>(yt(Ue(s,cn(o),zt(([,l])=>l!==0),cn(i,r,t,n,e),lt(([[,l],c,d,f,p,v=[]])=>tle(l,c,d,f,p,v))),a),{}),Dr(oc,T_,Bp,dh),{singleton:!0}),NYe=Rn(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=Ye(0);return qn(Ue(e,cn(r),zt(([,i])=>i!==0),lt(([,i])=>({top:i}))),i=>{uu(Ue(n,Ap(1),zt(o=>o.items.length>1)),()=>{requestAnimationFrame(()=>{Jt(t,i)})})}),{initialScrollTop:r}},Dr(dh,ga,Bp),{singleton:!0}),sle=Rn(([{scrollVelocity:e}])=>{const t=Ye(!1),n=kn(),r=Ye(!1);return yt(Ue(e,cn(r,t,n),zt(([i,o])=>!!o),lt(([i,o,a,s])=>{const{enter:l,exit:c}=o;if(a){if(c(i,s))return!1}else if(l(i,s))return!0;return a}),Ar()),t),qn(Ue(Oi(t,e,n),cn(r)),([[i,o,a],s])=>{i&&s&&s.change&&s.change(o,a)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},Dr(N_),{singleton:!0}),lL=Rn(([{scrollContainerState:e,scrollTo:t}])=>{const n=kn(),r=kn(),i=kn(),o=Ye(!1),a=Ye(void 0);return yt(Ue(Oi(n,r),lt(([{scrollHeight:s,scrollTop:l,viewportHeight:c},{offsetTop:d}])=>({scrollHeight:s,scrollTop:Math.max(0,l-d),viewportHeight:c}))),e),yt(Ue(t,cn(r),lt(([s,{offsetTop:l}])=>({...s,top:s.top+l}))),i),{customScrollParent:a,useWindowScroll:o,windowScrollContainerState:n,windowScrollTo:i,windowViewportRect:r}},Dr(ga)),$Ye=Rn(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:i},{didMount:o},{useWindowScroll:a,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=kn(),d=Ye(void 0),f=Ye(null),p=Ye(null);return yt(s,f),yt(l,p),qn(Ue(c,cn(t,r,a,f,p,n)),([v,_,y,b,w,x,S])=>{const C=pYe(_.sizeTree);b&&w!==null&&x!==null&&(y=w.scrollTop-x.offsetTop),y-=S,v({ranges:C,scrollTop:y})}),yt(Ue(d,zt(ZM),lt(MYe)),i),yt(Ue(o,cn(d),zt(([,v])=>v!==void 0),Ar(),lt(([,v])=>v.ranges)),e),{getState:c,restoreStateFrom:d}},Dr(oc,ga,T_,dh,lL));function MYe(e){return{align:"start",index:0,offset:e.scrollTop}}const LYe=Rn(([{topItemsIndexes:e}])=>{const t=Ye(0);return yt(Ue(t,zt(n=>n>=0),lt(n=>Array.from({length:n}).map((r,i)=>i))),e),{topItemCount:t}},Dr(Bp));function lle(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const RYe=lle(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),OYe=Rn(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:i,isScrolling:o,lastJumpDueToItemResize:a,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:f,sizes:p},{log:v},{recalcInProgress:_}])=>{const y=Es(Ue(l,cn(a),rc(([,w,x,S],[{bottom:C,items:j,offsetBottom:T,totalCount:E},$])=>{const A=C+T;let M=0;return x===E&&w.length>0&&j.length>0&&(j[0].originalIndex===0&&w[0].originalIndex===0||(M=A-S,M!==0&&(M+=$))),[M,j,E,A]},[0,[],0,0]),zt(([w])=>w!==0),cn(r,s,n,i,v,_),zt(([,w,x,S,,,C])=>!C&&!S&&w!==0&&x===I_),lt(([[w],,,,,x])=>(x("Upward scrolling compensation",{amount:w},Va.DEBUG),w))));function b(w){w>0?(Jt(t,{behavior:"auto",top:-w}),Jt(e,0)):(Jt(e,0),Jt(t,{behavior:"auto",top:-w}))}return qn(Ue(y,cn(e,o)),([w,x,S])=>{S&&RYe()?Jt(e,x-w):b(-w)}),qn(Ue(Oi(Wo(o,!1),e,_),zt(([w,x,S])=>!w&&!S&&x!==0),lt(([w,x])=>x),kd(1)),b),yt(Ue(f,lt(w=>({top:-w}))),t),qn(Ue(c,cn(p,d),lt(([w,{groupIndices:x,lastSize:S,sizeTree:C},j])=>{function T(E){return E*(S+j)}if(x.length===0)return T(w);{let E=0;const $=k_(C,0);let A=0,M=0;for(;Aw&&(E-=$,P=w-A+1),A+=P,E+=T(P),M++}return E}})),w=>{Jt(e,w),requestAnimationFrame(()=>{Jt(t,{top:w}),requestAnimationFrame(()=>{Jt(e,0),Jt(_,!1)})})}),{deviation:e}},Dr(ga,N_,Bp,oc,ch,tL)),PYe=Rn(([e,t,n,r,i,o,a,s,l,c,d])=>({...e,...t,...n,...r,...i,...o,...a,...s,...l,...c,...d}),Dr(aL,EYe,dh,sle,rle,NYe,CYe,lL,ole,ch,ile)),ule=Rn(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:i,groupIndices:o,itemSize:a,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:f},{initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:_},y,b,w,{listState:x,topItemsIndexes:S,...C},{scrollToIndex:j},T,{topItemCount:E},{groupCounts:$},A])=>(yt(C.rangeChanged,A.scrollSeekRangeChanged),yt(Ue(A.windowViewportRect,lt(M=>M.visibleHeight)),y.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:i,groupCounts:$,initialItemFinalLocationReached:p,initialTopMostItemIndex:v,scrolledToInitialItem:_,sizeRanges:s,topItemCount:E,topItemsIndexes:S,totalCount:d,...w,groupIndices:o,itemSize:a,listState:x,scrollToIndex:j,statefulTotalCount:c,trackItemSizes:f,...C,...A,...y,sizes:l,...b}),Dr(oc,T_,ga,$Ye,IYe,Bp,j_,OYe,LYe,Yse,PYe));function zYe(e,t){const n={},r={};let i=0;const o=e.length;for(;i(w[x]=S=>{const C=b[t.methods[x]];Jt(C,S)},w),{})}function d(b){return a.reduce((w,x)=>(w[x]=eYe(b[t.events[x]]),w),{})}const f=Oe.forwardRef((b,w)=>{const{children:x,...S}=b,[C]=Oe.useState(()=>T6(nYe(e),E=>{l(E,S)})),[j]=Oe.useState(Lse(d,C));O6(()=>{for(const E of a)E in S&&qn(j[E],S[E]);return()=>{Object.values(j).map(qM)}},[S,j,C]),O6(()=>{l(C,S)}),Oe.useImperativeHandle(w,Mse(c(C)));const T=n;return u.jsx(s.Provider,{value:C,children:n?u.jsx(T,{...zYe([...r,...i,...a],S),children:x}):x})}),p=b=>{const w=Oe.useContext(s);return Oe.useCallback(x=>{Jt(w[b],x)},[w,b])},v=b=>{const w=Oe.useContext(s)[b],x=Oe.useCallback(S=>qn(w,S),[w]);return Oe.useSyncExternalStore(x,()=>ki(w),()=>ki(w))},_=b=>{const w=Oe.useContext(s)[b],[x,S]=Oe.useState(Lse(ki,w));return O6(()=>qn(w,C=>{C!==x&&S(Mse(C))}),[w,x]),x},y=Oe.version.startsWith("18")?v:_;return{Component:f,useEmitter:(b,w)=>{const x=Oe.useContext(s)[b];O6(()=>qn(x,w),[w,x])},useEmitterValue:y,usePublisher:p}}const P6=Oe.createContext(void 0),cle=Oe.createContext(void 0),dle=typeof document<"u"?Oe.useLayoutEffect:Oe.useEffect;function cL(e){return"self"in e}function DYe(e){return"body"in e}function fle(e,t,n,r=t1,i,o){const a=Oe.useRef(null),s=Oe.useRef(null),l=Oe.useRef(null),c=Oe.useCallback(p=>{let v,_,y;const b=p.target;if(DYe(b)||cL(b)){const x=cL(b)?b:b.defaultView;y=o?x.scrollX:x.scrollY,v=o?x.document.documentElement.scrollWidth:x.document.documentElement.scrollHeight,_=o?x.innerWidth:x.innerHeight}else y=o?b.scrollLeft:b.scrollTop,v=o?b.scrollWidth:b.scrollHeight,_=o?b.offsetWidth:b.offsetHeight;const w=()=>{e({scrollHeight:v,scrollTop:Math.max(y,0),viewportHeight:_})};p.suppressFlushSync?w():WB.flushSync(w),s.current!==null&&(y===s.current||y<=0||y===v-_)&&(s.current=null,t(!0),l.current&&(clearTimeout(l.current),l.current=null))},[e,t,o]);Oe.useEffect(()=>{const p=i||a.current;return r(i||a.current),c({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",c,{passive:!0}),()=>{r(null),p.removeEventListener("scroll",c)}},[a,c,n,r,i]);function d(p){const v=a.current;if(!v||(o?"offsetWidth"in v&&v.offsetWidth===0:"offsetHeight"in v&&v.offsetHeight===0))return;const _=p.behavior==="smooth";let y,b,w;cL(v)?(b=Math.max(du(v.document.documentElement,o?"width":"height"),o?v.document.documentElement.scrollWidth:v.document.documentElement.scrollHeight),y=o?v.innerWidth:v.innerHeight,w=o?window.scrollX:window.scrollY):(b=v[o?"scrollWidth":"scrollHeight"],y=du(v,o?"width":"height"),w=v[o?"scrollLeft":"scrollTop"]);const x=b-y;if(p.top=Math.ceil(Math.max(Math.min(x,p.top),0)),Xse(y,b)||p.top===w){e({scrollHeight:b,scrollTop:w,viewportHeight:y}),_&&t(!0);return}_?(s.current=p.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,t(!0)},1e3)):s.current=null,o&&(p={behavior:p.behavior,left:p.top}),v.scrollTo(p)}function f(p){o&&(p={behavior:p.behavior,left:p.top}),a.current.scrollBy(p)}return{scrollByCallback:f,scrollerRef:a,scrollToCallback:d}}const dL="-webkit-sticky",hle="sticky",fL=lle(()=>{if(typeof document>"u")return hle;const e=document.createElement("div");return e.style.position=dL,e.style.position===dL?dL:hle});function hL(e){return e}const AYe=Rn(()=>{const e=Ye(s=>`Item ${s}`),t=Ye(s=>`Group ${s}`),n=Ye({}),r=Ye(hL),i=Ye("div"),o=Ye(t1),a=(s,l=null)=>Wo(Ue(n,lt(c=>c[s]),Ar()),l);return{components:n,computeItemKey:r,EmptyPlaceholder:a("EmptyPlaceholder"),FooterComponent:a("Footer"),GroupComponent:a("Group","div"),groupContent:t,HeaderComponent:a("Header"),HeaderFooterTag:i,ItemComponent:a("Item","div"),itemContent:e,ListComponent:a("List","div"),ScrollerComponent:a("Scroller","div"),scrollerRef:o,ScrollSeekPlaceholder:a("ScrollSeekPlaceholder"),TopItemListComponent:a("TopItemList")}}),FYe=Rn(([e,t])=>({...e,...t}),Dr(ule,AYe)),BYe=({height:e})=>u.jsx("div",{style:{height:e}}),UYe={overflowAnchor:"none",position:fL(),zIndex:1},ple={overflowAnchor:"none"},WYe={...ple,display:"inline-block",height:"100%"},mle=Oe.memo(function({showTopList:e=!1}){const t=Wt("listState"),n=ml("sizeRanges"),r=Wt("useWindowScroll"),i=Wt("customScrollParent"),o=ml("windowScrollContainerState"),a=ml("scrollContainerState"),s=i||r?o:a,l=Wt("itemContent"),c=Wt("context"),d=Wt("groupContent"),f=Wt("trackItemSizes"),p=Wt("itemSize"),v=Wt("log"),_=ml("gap"),y=Wt("horizontalDirection"),{callbackRef:b}=Pse(n,p,f,e?t1:s,v,_,i,y,Wt("skipAnimationFrameInResizeObserver")),[w,x]=Oe.useState(0);gL("deviation",O=>{w!==O&&x(O)});const S=Wt("EmptyPlaceholder"),C=Wt("ScrollSeekPlaceholder")||BYe,j=Wt("ListComponent"),T=Wt("ItemComponent"),E=Wt("GroupComponent"),$=Wt("computeItemKey"),A=Wt("isSeeking"),M=Wt("groupIndices").length>0,P=Wt("alignToBottom"),te=Wt("initialItemFinalLocationReached"),Z=e?{}:{boxSizing:"border-box",...y?{display:"inline-block",height:"100%",marginLeft:w!==0?w:P?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:w!==0?w:P?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...te?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&S?u.jsx(S,{...Fr(S,c)}):u.jsx(j,{...Fr(j,c),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:b,style:Z,children:(e?t.topItems:t.items).map(O=>{const J=O.originalIndex,D=$(J+t.firstItemIndex,O.data,c);return A?m.createElement(C,{...Fr(C,c),height:O.size,index:O.index,key:D,type:O.type||"item",...O.type==="group"?{}:{groupIndex:O.groupIndex}}):O.type==="group"?m.createElement(E,{...Fr(E,c),"data-index":J,"data-item-index":O.index,"data-known-size":O.size,key:D,style:UYe},d(O.index,c)):m.createElement(T,{...Fr(T,c),...gle(T,O.data),"data-index":J,"data-item-group-index":O.groupIndex,"data-item-index":O.index,"data-known-size":O.size,key:D,style:y?WYe:ple},M?l(O.index,O.groupIndex,O.data,c):l(O.index,O.data,c))})})}),VYe={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},HYe={outline:"none",overflowX:"auto",position:"relative"},r1=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),ZYe={position:fL(),top:0,width:"100%",zIndex:1};function Fr(e,t){if(typeof e!="string")return{context:t}}function gle(e,t){return{item:typeof e=="string"?void 0:t}}const qYe=Oe.memo(function(){const e=Wt("HeaderComponent"),t=ml("headerHeight"),n=Wt("HeaderFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),GYe=Oe.memo(function(){const e=Wt("FooterComponent"),t=ml("footerHeight"),n=Wt("HeaderFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,Wt("skipAnimationFrameInResizeObserver")),i=Wt("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null});function pL({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Oe.memo(function({children:r,style:i,context:o,...a}){const s=n("scrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("scrollerRef"),f=t("horizontalDirection")||!1,{scrollByCallback:p,scrollerRef:v,scrollToCallback:_}=fle(s,c,l,d,void 0,f);return e("scrollTo",_),e("scrollBy",p),u.jsx(l,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:v,style:{...f?HYe:VYe,...i},tabIndex:0,...a,...Fr(l,o),children:r})})}function mL({useEmitter:e,useEmitterValue:t,usePublisher:n}){return Oe.memo(function({children:r,style:i,context:o,...a}){const s=n("windowScrollContainerState"),l=t("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=t("totalListHeight"),f=t("deviation"),p=t("customScrollParent"),v=Oe.useRef(null),_=t("scrollerRef"),{scrollByCallback:y,scrollerRef:b,scrollToCallback:w}=fle(s,c,l,_,p);return dle(()=>{var x;return b.current=p||((x=v.current)==null?void 0:x.ownerDocument.defaultView),()=>{b.current=null}},[b,p]),e("windowScrollTo",w),e("scrollBy",y),u.jsx(l,{ref:v,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...d!==0?{height:d+f}:{}},...a,...Fr(l,o),children:r})})}const YYe=({children:e})=>{const t=Oe.useContext(P6),n=ml("viewportHeight"),r=ml("fixedItemHeight"),i=Wt("alignToBottom"),o=Wt("horizontalDirection"),a=Oe.useMemo(()=>x_(n,l=>du(l,o?"width":"height")),[n,o]),s=ic(a,!0,Wt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:s,style:r1(i),children:e})},KYe=({children:e})=>{const t=Oe.useContext(P6),n=ml("windowViewportRect"),r=ml("fixedItemHeight"),i=Wt("customScrollParent"),o=KM(n,i,Wt("skipAnimationFrameInResizeObserver")),a=Wt("alignToBottom");return Oe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(a),children:e})},XYe=({children:e})=>{const t=Wt("TopItemListComponent")||"div",n=Wt("headerHeight"),r={...ZYe,marginTop:`${n}px`},i=Wt("context");return u.jsx(t,{style:r,...Fr(t,i),children:e})},JYe=Oe.memo(function(e){const t=Wt("useWindowScroll"),n=Wt("topItemsIndexes").length>0,r=Wt("customScrollParent"),i=Wt("context");return u.jsxs(r||t?tKe:eKe,{...e,context:i,children:[n&&u.jsx(XYe,{children:u.jsx(mle,{showTopList:!0})}),u.jsxs(r||t?KYe:YYe,{children:[u.jsx(qYe,{}),u.jsx(mle,{}),u.jsx(GYe,{})]})]})}),{Component:QYe,useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}=uL(FYe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},JYe),eKe=pL({useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}),tKe=mL({useEmitter:gL,useEmitterValue:Wt,usePublisher:ml}),vL=QYe,nKe=Rn(()=>{const e=Ye(c=>u.jsxs("td",{children:["Item $",c]})),t=Ye(null),n=Ye(c=>u.jsxs("td",{colSpan:1e3,children:["Group ",c]})),r=Ye(null),i=Ye(null),o=Ye({}),a=Ye(hL),s=Ye(t1),l=(c,d=null)=>Wo(Ue(o,lt(f=>f[c]),Ar()),d);return{components:o,computeItemKey:a,context:t,EmptyPlaceholder:l("EmptyPlaceholder"),FillerRow:l("FillerRow"),fixedFooterContent:i,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TableBodyComponent:l("TableBody","tbody"),TableComponent:l("Table","table"),TableFooterComponent:l("TableFoot","tfoot"),TableHeadComponent:l("TableHead","thead"),TableRowComponent:l("TableRow","tr"),GroupComponent:l("Group","tr")}}),rKe=Rn(([e,t])=>({...e,...t}),Dr(ule,nKe)),iKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{height:e}})}),oKe=({height:e})=>u.jsx("tr",{children:u.jsx("td",{style:{border:0,height:e,padding:0}})}),aKe={overflowAnchor:"none"},vle={position:fL(),zIndex:2,overflowAnchor:"none"},yle=Oe.memo(function({showTopList:e=!1}){const t=Qt("listState"),n=Qt("computeItemKey"),r=Qt("firstItemIndex"),i=Qt("context"),o=Qt("isSeeking"),a=Qt("fixedHeaderHeight"),s=Qt("groupIndices").length>0,l=Qt("itemContent"),c=Qt("groupContent"),d=Qt("ScrollSeekPlaceholder")||iKe,f=Qt("GroupComponent"),p=Qt("TableRowComponent"),v=(e?t.topItems:[]).reduce((y,b,w)=>(w===0?y.push(b.size):y.push(y[w-1]+b.size),y),[]),_=(e?t.topItems:t.items).map(y=>{const b=y.originalIndex,w=n(b+r,y.data,i),x=e?b===0?0:v[b-1]:0;return o?m.createElement(d,{...Fr(d,i),height:y.size,index:y.index,key:w,type:y.type||"item"}):y.type==="group"?m.createElement(f,{...Fr(f,i),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,key:w,style:{...vle,top:a}},c(y.index,i)):m.createElement(p,{...Fr(p,i),...gle(p,y.data),"data-index":b,"data-item-index":y.index,"data-known-size":y.size,"data-item-group-index":y.groupIndex,key:w,style:e?{...vle,top:a+x}:aKe},s?l(y.index,y.groupIndex,y.data,i):l(y.index,y.data,i))});return u.jsx(u.Fragment,{children:_})}),sKe=Oe.memo(function(){const e=Qt("listState"),t=Qt("topItemsIndexes").length>0,n=fu("sizeRanges"),r=Qt("useWindowScroll"),i=Qt("customScrollParent"),o=fu("windowScrollContainerState"),a=fu("scrollContainerState"),s=i||r?o:a,l=Qt("trackItemSizes"),c=Qt("itemSize"),d=Qt("log"),{callbackRef:f,ref:p}=Pse(n,c,l,s,d,void 0,i,!1,Qt("skipAnimationFrameInResizeObserver")),[v,_]=Oe.useState(0);yL("deviation",M=>{v!==M&&(p.current.style.marginTop=`${M}px`,_(M))});const y=Qt("EmptyPlaceholder"),b=Qt("FillerRow")||oKe,w=Qt("TableBodyComponent"),x=Qt("paddingTopAddition"),S=Qt("statefulTotalCount"),C=Qt("context");if(S===0&&y)return u.jsx(y,{...Fr(y,C)});const j=(t?e.topItems:[]).reduce((M,P)=>M+P.size,0),T=e.offsetTop+x+v-j,E=e.offsetBottom,$=T>0?u.jsx(b,{context:C,height:T},"padding-top"):null,A=E>0?u.jsx(b,{context:C,height:E},"padding-bottom"):null;return u.jsxs(w,{"data-testid":"virtuoso-item-list",ref:f,...Fr(w,C),children:[$,t&&u.jsx(yle,{showTopList:!0}),u.jsx(yle,{}),A]})}),lKe=({children:e})=>{const t=Oe.useContext(P6),n=fu("viewportHeight"),r=fu("fixedItemHeight"),i=ic(Oe.useMemo(()=>x_(n,o=>du(o,"height")),[n]),!0,Qt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),u.jsx("div",{"data-viewport-type":"element",ref:i,style:r1(!1),children:e})},uKe=({children:e})=>{const t=Oe.useContext(P6),n=fu("windowViewportRect"),r=fu("fixedItemHeight"),i=Qt("customScrollParent"),o=KM(n,i,Qt("skipAnimationFrameInResizeObserver"));return Oe.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),u.jsx("div",{"data-viewport-type":"window",ref:o,style:r1(!1),children:e})},cKe=Oe.memo(function(e){const t=Qt("useWindowScroll"),n=Qt("customScrollParent"),r=fu("fixedHeaderHeight"),i=fu("fixedFooterHeight"),o=Qt("fixedHeaderContent"),a=Qt("fixedFooterContent"),s=Qt("context"),l=ic(Oe.useMemo(()=>x_(r,w=>du(w,"height")),[r]),!0,Qt("skipAnimationFrameInResizeObserver")),c=ic(Oe.useMemo(()=>x_(i,w=>du(w,"height")),[i]),!0,Qt("skipAnimationFrameInResizeObserver")),d=n||t?hKe:fKe,f=n||t?uKe:lKe,p=Qt("TableComponent"),v=Qt("TableHeadComponent"),_=Qt("TableFooterComponent"),y=o?u.jsx(v,{ref:l,style:{position:"sticky",top:0,zIndex:2},...Fr(v,s),children:o()},"TableHead"):null,b=a?u.jsx(_,{ref:c,style:{bottom:0,position:"sticky",zIndex:1},...Fr(_,s),children:a()},"TableFoot"):null;return u.jsx(d,{...e,...Fr(d,s),children:u.jsx(f,{children:u.jsxs(p,{style:{borderSpacing:0,overflowAnchor:"none"},...Fr(p,s),children:[y,u.jsx(sKe,{},"TableBody"),b]})})})}),{Component:dKe,useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}=uL(rKe,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},cKe),fKe=pL({useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}),hKe=mL({useEmitter:yL,useEmitterValue:Qt,usePublisher:fu}),pKe=dKe,ble={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},mKe={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:_le,floor:z6,max:$_,min:bL,round:xle}=Math;function wle(e,t,n){return Array.from({length:t-e+1}).map((r,i)=>({data:n===null?null:n[i+e],index:i+e}))}function gKe(e){return{...mKe,items:e}}function D6(e,t){return e&&e.width===t.width&&e.height===t.height}function vKe(e,t){return e&&e.column===t.column&&e.row===t.row}const yKe=Rn(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:i,headerHeight:o,scrollBy:a,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:f},p,v,{didMount:_,propsReady:y},{customScrollParent:b,useWindowScroll:w,windowScrollContainerState:x,windowScrollTo:S,windowViewportRect:C},j])=>{const T=Ye(0),E=Ye(0),$=Ye(ble),A=Ye({height:0,width:0}),M=Ye({height:0,width:0}),P=kn(),te=kn(),Z=Ye(0),O=Ye(null),J=Ye({column:0,row:0}),D=kn(),Y=kn(),F=Ye(!1),H=Ye(0),ee=Ye(!0),ce=Ye(!1),U=Ye(!1);qn(Ue(_,cn(H),zt(([ue,re])=>!!re)),()=>{Jt(ee,!1)}),qn(Ue(Oi(_,ee,M,A,H,ce),zt(([ue,re,ge,$e,,pe])=>ue&&!re&&ge.height!==0&&$e.height!==0&&!pe)),([,,,,ue])=>{Jt(ce,!0),iL(1,()=>{Jt(P,ue)}),uu(Ue(c),()=>{Jt(t,[0,0]),Jt(ee,!0)})}),yt(Ue(Y,zt(ue=>ue!=null&&ue.scrollTop>0),nc(0)),E),qn(Ue(_,cn(Y),zt(([,ue])=>ue!=null)),([,ue])=>{ue&&(Jt(A,ue.viewport),Jt(M,ue.item),Jt(J,ue.gap),ue.scrollTop>0&&(Jt(F,!0),uu(Ue(c,Ap(1)),re=>{Jt(F,!1)}),Jt(l,{top:ue.scrollTop})))}),yt(Ue(A,lt(({height:ue})=>ue)),f),yt(Ue(Oi(Rt(A,D6),Rt(M,D6),Rt(J,(ue,re)=>ue&&ue.column===re.column&&ue.row===re.row),Rt(c)),lt(([ue,re,ge,$e])=>({gap:ge,item:re,scrollTop:$e,viewport:ue}))),D),yt(Ue(Oi(Rt(T),r,Rt(J,vKe),Rt(M,D6),Rt(A,D6),Rt(O),Rt(E),Rt(F),Rt(ee),Rt(H)),zt(([,,,,,,,ue])=>!ue),lt(([ue,[re,ge],$e,pe,ye,Se,Ce,,Be,Ge])=>{const{column:xt,row:St}=$e,{height:ut,width:ct}=pe,{width:bt}=ye;if(Ce===0&&(ue===0||bt===0))return ble;if(ct===0){const wr=oL(Ge,ue),Pn=wr+Math.max(Ce-1,0);return gKe(wle(wr,Pn,Se))}const Qe=kle(bt,ct,xt);let Ke,De;Be?re===0&&ge===0&&Ce>0?(Ke=0,De=Ce-1):(Ke=Qe*z6((re+St)/(ut+St)),De=Qe*_le((ge+St)/(ut+St))-1,De=bL(ue-1,$_(De,Qe-1)),Ke=bL(De,$_(0,Ke))):(Ke=0,De=-1);const Dt=wle(Ke,De,Se),{bottom:pn,top:Yn}=Sle(ye,$e,pe,Dt),fr=_le(ue/Qe),Kn=fr*ut+(fr-1)*St-pn;return{bottom:pn,itemHeight:ut,items:Dt,itemWidth:ct,offsetBottom:Kn,offsetTop:Yn,top:Yn}})),$),yt(Ue(O,zt(ue=>ue!==null),lt(ue=>ue.length)),T),yt(Ue(Oi(A,M,$,J),zt(([ue,re,{items:ge}])=>ge.length>0&&re.height!==0&&ue.height!==0),lt(([ue,re,{items:ge},$e])=>{const{bottom:pe,top:ye}=Sle(ue,$e,re,ge);return[ye,pe]}),Ar(S_)),t);const ae=Ye(!1);yt(Ue(c,cn(ae),lt(([ue,re])=>re||ue!==0)),ae);const je=Es(Ue(Oi($,T),zt(([{items:ue}])=>ue.length>0),cn(ae),zt(([[ue,re],ge])=>{const $e=ue.items[ue.items.length-1].index===re-1;return(ge||ue.bottom>0&&ue.itemHeight>0&&ue.offsetBottom===0&&ue.items.length===re)&&$e}),lt(([[,ue]])=>ue-1),Ar())),me=Es(Ue(Rt($),zt(({items:ue})=>ue.length>0&&ue[0].index===0),nc(0),Ar())),ke=Es(Ue(Rt($),cn(F),zt(([{items:ue},re])=>ue.length>0&&!re),lt(([{items:ue}])=>({endIndex:ue[ue.length-1].index,startIndex:ue[0].index})),Ar(Vse),kd(0)));yt(ke,v.scrollSeekRangeChanged),yt(Ue(P,cn(A,M,T,J),lt(([ue,re,ge,$e,pe])=>{const ye=Kse(ue),{align:Se,behavior:Ce,offset:Be}=ye;let Ge=ye.index;Ge==="LAST"&&(Ge=$e-1),Ge=$_(0,Ge,bL($e-1,Ge));let xt=_L(re,pe,ge,Ge);return Se==="end"?xt=xle(xt-re.height+ge.height):Se==="center"&&(xt=xle(xt-re.height/2+ge.height/2)),Be&&(xt+=Be),{behavior:Ce,top:xt}})),l);const he=Wo(Ue($,lt(ue=>ue.offsetBottom+ue.bottom)),0);return yt(Ue(C,lt(ue=>({height:ue.visibleHeight,width:ue.visibleWidth}))),A),{customScrollParent:b,data:O,deviation:Z,footerHeight:i,gap:J,headerHeight:o,increaseViewportBy:e,initialItemCount:E,itemDimensions:M,overscan:n,restoreStateFrom:Y,scrollBy:a,scrollContainerState:s,scrollHeight:te,scrollTo:l,scrollToIndex:P,scrollTop:c,smoothScrollTargetReached:d,totalCount:T,useWindowScroll:w,viewportDimensions:A,windowScrollContainerState:x,windowScrollTo:S,windowViewportRect:C,...v,gridState:$,horizontalDirection:U,initialTopMostItemIndex:H,totalListHeight:he,...p,endReached:je,propsReady:y,rangeChanged:ke,startReached:me,stateChanged:D,stateRestoreInProgress:F,...j}},Dr(aL,ga,N_,sle,dh,lL,ch));function kle(e,t,n){return $_(1,z6((e+n)/(z6(t)+n)))}function Sle(e,t,n,r){const{height:i}=n;if(i===void 0||r.length===0)return{bottom:0,top:0};const o=_L(e,t,n,r[0].index);return{bottom:_L(e,t,n,r[r.length-1].index)+i,top:o}}function _L(e,t,n,r){const i=kle(e.width,n.width,t.column),o=z6(r/i),a=o*n.height+$_(0,o-1)*t.row;return a>0?a+t.row:a}const bKe=Rn(()=>{const e=Ye(f=>`Item ${f}`),t=Ye({}),n=Ye(null),r=Ye("virtuoso-grid-item"),i=Ye("virtuoso-grid-list"),o=Ye(hL),a=Ye("div"),s=Ye(t1),l=(f,p=null)=>Wo(Ue(t,lt(v=>v[f]),Ar()),p),c=Ye(!1),d=Ye(!1);return yt(Rt(d),c),{components:t,computeItemKey:o,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:a,itemClassName:r,ItemComponent:l("Item","div"),itemContent:e,listClassName:i,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),_Ke=Rn(([e,t])=>({...e,...t}),Dr(yKe,bKe)),xKe=Oe.memo(function(){const e=Yr("gridState"),t=Yr("listClassName"),n=Yr("itemClassName"),r=Yr("itemContent"),i=Yr("computeItemKey"),o=Yr("isSeeking"),a=gl("scrollHeight"),s=Yr("ItemComponent"),l=Yr("ListComponent"),c=Yr("ScrollSeekPlaceholder"),d=Yr("context"),f=gl("itemDimensions"),p=gl("gap"),v=Yr("log"),_=Yr("stateRestoreInProgress"),y=gl("reportReadyState"),b=ic(Oe.useMemo(()=>w=>{const x=w.parentElement.parentElement.scrollHeight;a(x);const S=w.firstChild;if(S){const{height:C,width:j}=S.getBoundingClientRect();f({height:C,width:j})}p({column:jle("column-gap",getComputedStyle(w).columnGap,v),row:jle("row-gap",getComputedStyle(w).rowGap,v)})},[a,f,p,v]),!0,!1);return dle(()=>{e.itemHeight>0&&e.itemWidth>0&&y(!0)},[e]),_?null:u.jsx(l,{className:t,ref:b,...Fr(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(w=>{const x=i(w.index,w.data,d);return o?u.jsx(c,{...Fr(c,d),height:e.itemHeight,index:w.index,width:e.itemWidth},x):m.createElement(s,{...Fr(s,d),className:n,"data-index":w.index,key:x},r(w.index,w.data,d))})})}),wKe=Oe.memo(function(){const e=Yr("HeaderComponent"),t=gl("headerHeight"),n=Yr("headerFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Yr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),kKe=Oe.memo(function(){const e=Yr("FooterComponent"),t=gl("footerHeight"),n=Yr("headerFooterTag"),r=ic(Oe.useMemo(()=>o=>{t(du(o,"height"))},[t]),!0,!1),i=Yr("context");return e?u.jsx(n,{ref:r,children:u.jsx(e,{...Fr(e,i)})}):null}),SKe=({children:e})=>{const t=Oe.useContext(cle),n=gl("itemDimensions"),r=gl("viewportDimensions"),i=ic(Oe.useMemo(()=>o=>{r(o.getBoundingClientRect())},[r]),!0,!1);return Oe.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),u.jsx("div",{ref:i,style:r1(!1),children:e})},CKe=({children:e})=>{const t=Oe.useContext(cle),n=gl("windowViewportRect"),r=gl("itemDimensions"),i=Yr("customScrollParent"),o=KM(n,i,!1);return Oe.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),u.jsx("div",{ref:o,style:r1(!1),children:e})},jKe=Oe.memo(function({...e}){const t=Yr("useWindowScroll"),n=Yr("customScrollParent"),r=n||t?IKe:TKe,i=n||t?CKe:SKe,o=Yr("context");return u.jsx(r,{...e,...Fr(r,o),children:u.jsxs(i,{children:[u.jsx(wKe,{}),u.jsx(xKe,{}),u.jsx(kKe,{})]})})}),{useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl}=uL(_Ke,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},jKe),TKe=pL({useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl}),IKe=mL({useEmitter:Cle,useEmitterValue:Yr,usePublisher:gl});function jle(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Va.WARN),t==="normal"?0:parseInt(t??"0",10)}const EKe="_digit_1rfzd_1",NKe="_hidden_1rfzd_5",$Ke="_selection-text_1rfzd_10",xL={digit:EKe,hidden:NKe,selectionText:$Ke};function MKe(){const[e,t]=m.useState(()=>document.visibilityState==="visible");return m.useEffect(()=>{const n=()=>{t(document.visibilityState==="visible")};return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}const LKe=20;function M_(e){return MKe()?u.jsx(OKe,{...e}):null}function RKe(e,t){const{start:n,target:r}=t;return{start:n,target:r,maxDigitsSeen:Math.max(e.maxDigitsSeen,wL(n),wL(r))}}function OKe({value:e,animationDurationMs:t=150,height:n,className:r,containerRowJustify:i}){const[o,a]=m.useReducer(RKe,{start:e,target:e,maxDigitsSeen:wL(e)}),{start:s,target:l,maxDigitsSeen:c}=o,[d,f]=m.useState(e),[p,v]=m.useState(()=>{const T=Ile(e).reverse(),E=Array.from({length:T.length});return{digits:T,animations:E}}),_=l>s?"incr":"decr",{stepDurationMs:y,shouldJumpToTarget:b}=m.useMemo(()=>{const T=Math.abs(l-s),E=Math.trunc(t/T);return E{const T=d===l||b?l:_==="incr"?d+1:d-1;return{number:T,paddedDigits:Ile(T,c)}},[d,_,c,b,l]),x=m.useCallback((T,E)=>{v($=>{const A=[...$.animations];return A[E]=T,{...$,animations:A}})},[]),S=m.useCallback((T,E)=>{v($=>{const A=[...$.digits],M=[...$.animations];A[E]=T,M[E]=void 0;const P={digits:A,animations:M};return parseInt([...P.digits].reverse().join(""),10)===Math.abs(w.number)&&f(w.number),P})},[w.number]),C=m.useMemo(()=>p.animations.some(T=>!!T),[p.animations]);m.useLayoutEffect(()=>{e===l||C||a({start:d,target:e})},[d,C,w.number,l,e]);const j=m.useMemo(()=>{if(n!=null)return{height:`${n}px`}},[n]);return u.jsxs(V,{position:"relative",justify:i,children:[u.jsx(q,{className:Te(r,xL.selectionText),style:j,children:d}),u.jsxs(V,{height:"100%",position:"absolute",inert:"true",children:[w.number<0&&u.jsx(q,{className:r,children:"-"}),w.paddedDigits.map((T,E)=>{const $=w.paddedDigits.length-1-E;return u.jsx(PKe,{idxFromBack:$,currentDigit:p.digits[$],nextDigit:T,direction:_,animation:p.animations[$],pauseNextAnimation:l!==e,animationDurationMs:y,onAnimationStart:x,onAnimationCompleted:S,className:r},$)})]})]})}function PKe({idxFromBack:e,currentDigit:t,nextDigit:n,direction:r,animation:i,pauseNextAnimation:o,onAnimationStart:a,onAnimationCompleted:s,animationDurationMs:l,className:c}){const d=m.useRef(null),f=m.useRef(null);return m.useLayoutEffect(()=>{if(i||o||t===n)return;const p=d.current;if(!p)return;const v=p.animate(r==="incr"?[{transform:"translateY(-50%)"},{transform:"translateY(0px)"}]:[{transform:"translateY(0px)"},{transform:"translateY(-50%)"}],{duration:l,easing:"ease-in-out",fill:"forwards"});f.current=v,a(v,e),v.finished.catch(()=>{}).finally(()=>{f.current=null,s(n,e)})},[l,t,n,r,e,o,s,i,a]),Pg(()=>{var p;(p=f.current)==null||p.cancel()}),u.jsx(Mt,{height:"100%",overflowY:"hidden",children:u.jsxs(V,{ref:d,height:"200%",direction:"column",children:[u.jsx(Tle,{className:c,digit:r==="incr"?n:t}),u.jsx(Tle,{className:c,digit:r==="incr"?t:n})]})})}function Tle({digit:e,className:t}){return u.jsx(q,{className:Te(t,xL.digit,{[xL.hidden]:e==null}),children:e})}function Ile(e,t){const n=Math.abs(e).toString().split("").map(i=>parseInt(i,10));if(t==null)return n;const r=Math.max(0,t-n.length);return[...Array(r).fill(null),...n]}function wL(e){return Math.abs(e).toString().length}const zKe="_container_zkl3s_1",DKe="_added_zkl3s_6",AKe="_removed_zkl3s_10",kL={container:zKe,added:DKe,removed:AKe},FKe=`Last ${xre/6e4}m`;function Ele({isOffline:e}){const t=X(yDe);return u.jsxs(V,{className:kL.container,align:"center",gap:"5px",children:[u.jsx(q,{children:FKe}),u.jsxs(q,{className:kL.added,children:["+",e?t.offline:t.online]}),u.jsxs(q,{className:kL.removed,children:["-",e?t.online:t.offline]})]})}const Nle="16px",SL=33,$le="15px";function BKe({isStacked:e}){var j;const[t,{width:n}]=Ss(),r=n<496,i=!r&&n<642,o=r?"xnarrow":i?"narrow":"wide",[a,s]=m.useState(!0),[l,c]=m.useState(!0),d=X(JN),f=X(wre),p=X(xDe),v=m.useCallback((T,E)=>{var M,P;const $=(M=d==null?void 0:d.get(T))==null?void 0:M[0],A=(P=d==null?void 0:d.get(E))==null?void 0:P[0];return $==null&&A==null?0:$==null?1:A==null?-1:$===A?0:$[...p].sort(v),[p,v]),y=m.useMemo(()=>[...f].sort(v),[f,v]),b=(j=X(Hl))==null?void 0:j.wait_for_supermajority_total_stake,w=m.useCallback(T=>_[T],[_]),x=m.useCallback(T=>{const E=w(T),[$,A]=(d==null?void 0:d.get(E))??[];return u.jsx(Lle,{pubkey:E,lamportsStake:$,info:A,totalStake:b,isOffline:!0,size:o})},[w,o,d,b]),S=m.useCallback(T=>y[T],[y]),C=m.useCallback(T=>{const E=S(T),[$,A]=(d==null?void 0:d.get(E))??[];return u.jsx(Lle,{pubkey:E,lamportsStake:$,info:A,totalStake:b,size:o})},[S,o,d,b]);return u.jsx(V,{ref:t,className:Te(un.container,e?un.vertical:un.horizontal),style:{"--row-height":`${SL}px`},children:u.jsxs(so,{className:Te(wi.card,un.tableCard,{[un.narrow]:i,[un.xnarrow]:r}),children:[u.jsxs(A6,{size:o,flexShrink:"0",className:un.headerRow,children:[u.jsx(o1,{size:o,className:un.peer,children:"Peer"}),u.jsx(o1,{size:o,className:un.status,children:"Status"}),u.jsx(o1,{size:o,className:un.pubkey,children:"Pubkey"}),u.jsx(o1,{size:o,className:un.version,children:"Version"}),u.jsx(o1,{size:o,className:un.stake,children:"Stake (SOL)"}),u.jsx(o1,{size:o,className:un.stakePct,children:"Stake %"})]}),u.jsx(A6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.offline),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":a,"aria-controls":"supermajority-offline-rows",onClick:()=>s(T=>!T),children:[u.jsx(Mle,{isExpanded:a}),u.jsxs(V,{align:"center",gap:$le,children:[u.jsxs(V,{align:"center",gap:"1",children:[u.jsx(M_,{value:p.size}),u.jsx(q,{children:"Nodes Offline"})]}),u.jsx(Ele,{isOffline:!0})]})]})}),u.jsx(Mt,{display:a?void 0:"none",className:un.rowsContainer,id:"supermajority-offline-rows",children:u.jsx(vL,{totalCount:_.length,fixedItemHeight:SL,computeItemKey:w,itemContent:x})}),u.jsx(A6,{size:o,flexShrink:"0",gapX:"8px",align:"center",className:Te(un.toggleRow,un.online),asChild:!0,children:u.jsxs("button",{type:"button","aria-expanded":l,"aria-controls":"supermajority-online-rows",onClick:()=>c(T=>!T),children:[u.jsx(Mle,{isExpanded:l}),u.jsxs(V,{align:"center",gap:$le,children:[u.jsxs(V,{align:"center",gap:"1",children:[u.jsx(M_,{value:f.size}),u.jsx(q,{children:"Nodes Online"})]}),u.jsx(Ele,{})]})]})}),u.jsx(Mt,{id:"supermajority-online-rows",display:l?void 0:"none",className:un.rowsContainer,children:u.jsx(vL,{totalCount:y.length,fixedItemHeight:SL,computeItemKey:S,itemContent:C})})]})})}function Mle({isExpanded:e}){const t=e?Hie:qFe;return u.jsx(t,{height:Nle,width:Nle,color:"white"})}const A6=m.forwardRef(function({size:e,className:t,...n},r){return u.jsx(V,{ref:r,className:Te(un.row,un[e],t),...n})});function Lle({pubkey:e,lamportsStake:t,info:n,totalStake:r,isOffline:i=!1,size:o}){return u.jsxs(A6,{size:o,className:i?un.offline:un.online,children:[u.jsx(UKe,{name:n==null?void 0:n.name,iconUrl:ire(n),size:o}),u.jsx(WKe,{isOffline:i,size:o}),u.jsx(VKe,{pubkey:e,size:o}),u.jsx(HKe,{pubkey:e,size:o}),u.jsx(ZKe,{lamportsStake:t,size:o}),u.jsx(qKe,{lamportsStake:t,totalStake:r,size:o})]})}function i1({children:e,className:t,size:n}){return u.jsx(V,{align:"center",className:Te(un.cell,un[n],t),children:e})}function o1({children:e,className:t,size:n}){return u.jsx(V,{align:"center",className:Te(un.cell,un.header,un[n],t),children:u.jsx(q,{truncate:!0,children:e})})}function UKe({name:e,iconUrl:t,size:n}){return u.jsxs(i1,{size:n,className:un.peer,children:[u.jsx(ks,{url:t,size:16}),u.jsx(q,{truncate:!0,children:e??"-"})]})}function WKe({isOffline:e=!1,size:t}){const n=e?oGe:iGe;return u.jsxs(i1,{size:t,className:Te(un.status),children:[u.jsx(n,{height:12,width:12,fill:"currentColor"}),t==="wide"&&u.jsx(q,{truncate:!0,children:e?"Offline":"Online"})]})}function VKe({pubkey:e,size:t}){return u.jsx(i1,{size:t,className:un.pubkey,children:u.jsx(Dg,{value:e,color:"white",size:"10px",hideIconUntilHover:!0,children:u.jsx(q,{truncate:!0,className:un.pubkeyText,children:e})})})}function HKe({pubkey:e,size:t}){const n=Hk(e),{version:r,client:i}=PM(n);return u.jsxs(i1,{size:t,className:Te(un.version),children:[u.jsx(V,{width:"37px",flexShrink:"0",children:u.jsx(Nse,{client:i,size:"xlarge",showPlaceholder:!0,className:un.clientIcon,placeholderClassName:un.clientIconPlaceholder})}),t!=="xnarrow"&&u.jsx(q,{truncate:!0,children:r?`v${r}`:"-"})]})}function ZKe({lamportsStake:e,size:t}){const n=HM(e);return u.jsx(i1,{size:t,className:un.stake,children:u.jsxs(q,{children:[u.jsx(q,{children:(n==null?void 0:n.formatted)??"-"}),(n==null?void 0:n.suffix)&&u.jsxs(q,{className:un.suffix,children:[" ",n.suffix]})]})})}const Rle=2;function qKe({lamportsStake:e,totalStake:t,size:n}){const r=GGe(e,t,Rle);return u.jsx(i1,{size:n,className:un.stakePct,children:u.jsxs(q,{children:[u.jsx(q,{children:r===void 0?"-":r.toFixed(Rle)}),r!==void 0&&u.jsx(q,{className:un.suffix,children:" %"})]})})}const GKe="data:image/svg+xml,%3csvg%20width='12'%20height='11'%20viewBox='0%200%2012%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2011H12L6.0482%200L0%2011Z'%20fill='%23F29D83'/%3e%3c/svg%3e";function YKe(){const e=X(Hl),t=e==null?void 0:e.wait_for_supermajority_total_stake,n=e==null?void 0:e.wait_for_supermajority_connected_stake,r=t&&n?rt.clamp(Number(n)/Number(t),0,1):0,i=m.useMemo(()=>HM(t),[t]),o=HM(n);return e?u.jsxs(V,{height:"100%",maxWidth:"100%",position:"relative",align:"center",justify:"center",className:wi.pieChart,children:[u.jsx("div",{className:wi.shimmer}),u.jsx("div",{className:wi.overlay,style:{"--progress-pct":`${Math.round(r*100)}%`}}),u.jsxs(V,{direction:"column",position:"absolute",height:"50%",width:"0px",bottom:"0",left:"50%",align:"center",className:wi.thresholdMarker,gap:"1px",children:[u.jsx(Mt,{className:wi.markerLine,height:"100%",flexShrink:"0"}),u.jsx("img",{className:wi.markerIcon,src:GKe,alt:"80% supermajority pointer"})]}),u.jsxs(V,{direction:"column",position:"relative",height:"70%",width:"70%",align:"center",justify:"center",gapY:"4%",className:wi.pieChartContent,children:[u.jsxs(q,{children:[u.jsx(q,{weight:"bold",className:wi.lg,children:(r*100).toFixed(2)}),u.jsx(q,{weight:"bold",className:wi.secondaryColor,children:" %"}),u.jsx(q,{className:wi.lg,children:" / "}),u.jsx(q,{weight:"bold",className:Te(wi.lg,wi.eighty),children:"80"}),u.jsx(q,{weight:"bold",color:"bronze",children:" %"})]}),u.jsxs(q,{children:[(o==null?void 0:o.formatted)??"--",(o==null?void 0:o.suffix)&&u.jsxs(q,{className:wi.secondaryColor,children:[" ",o.suffix]})," / ",u.jsx(q,{children:(i==null?void 0:i.formatted)??"--"}),(i==null?void 0:i.suffix)&&u.jsxs(q,{className:wi.secondaryColor,children:[" ",i.suffix]})]})]})]}):null}function KKe(){const e=X(Hl),t=X(nee);if(!e)return null;const n=e.wait_for_supermajority_attempt,r=e.loading_incremental_snapshot_read_path??e.loading_full_snapshot_read_path;return u.jsxs(V,{flexShrink:"0",direction:"column",width:"100%",className:wi.detailsBox,gapY:"10px",children:[u.jsxs(V,{gapX:"8px",justify:"between",children:[u.jsx(L_,{label:"Slot",value:t==null?void 0:t.toString()}),u.jsx(L_,{label:"Shred Version",value:e.wait_for_supermajority_shred_version}),u.jsx(L_,{label:"Forked",value:n==null?void 0:_Fe(n)})]}),u.jsx(L_,{label:"Bank Hash",value:e.wait_for_supermajority_bank_hash,allowCopy:!0}),u.jsx(L_,{label:"Snapshot Source",value:r,wrap:!0,valueClassName:wi.snapshotSource,allowCopy:!0})]})}function L_({label:e,value:t,wrap:n=!1,valueClassName:r,allowCopy:i=!1}){return u.jsxs(V,{direction:"column",gap:"3px",children:[u.jsx(q,{className:wi.label,children:e}),u.jsx(Dg,{className:wi.copyButton,value:i&&t?t:void 0,color:"white",size:"12px",hideIconUntilHover:!0,children:u.jsx(q,{className:r,truncate:!n,children:t??"--"})})]})}const Ole="400px",CL="24px",Ple="50px";function XKe(){var i;const e=Hn("(max-width: 1025px)"),t=X(Hl),n=(i=X(QQ))==null?void 0:i.completionFraction;if(!t||!n)return null;const r=1-.01/n;return u.jsxs(u.Fragment,{children:[u.jsx(J$,{phaseCompleteFraction:r,overallCompleteFraction:.99,showLoadingIcon:!0}),u.jsxs(V,{flexGrow:"1",mt:e?"18px":"36px",direction:e?"column-reverse":"row",justify:e?"end":"center",align:"stretch",gap:e?CL:Ple,minHeight:"0",children:[u.jsx(BKe,{isStacked:e}),u.jsxs(V,{direction:"column",align:"center",width:e?"100%":void 0,minWidth:"300px",maxWidth:e?void 0:Ole,flexBasis:"30%",flexGrow:e?"0":"1",flexShrink:"1",children:[u.jsx(q,{className:wi.pieChartTitle,children:"Stake Online"}),u.jsx(V,{className:wi.pieChartContainer,mt:e?"4px":"8px",maxHeight:Ole,justify:"center",children:u.jsx(YKe,{})}),u.jsx(Mt,{height:e?CL:void 0,minHeight:CL,maxHeight:Ple,flexGrow:"1"}),u.jsx(KKe,{})]})]})]})}const JKe={[wn.joining_gossip]:yd.gossip,[wn.loading_full_snapshot]:yd.fullSnapshot,[wn.loading_incremental_snapshot]:yd.incrSnapshot,[wn.catching_up]:yd.catchingUp,[wn.waiting_for_supermajority]:yd.supermajority};function QKe(){const e=Ee(ol),t=X(Gu);return m.useEffect(()=>{e(t!=="running")},[e,t]),u.jsxs(u.Fragment,{children:[t&&u.jsx(eXe,{phase:t}),u.jsx(HUe,{})]})}function eXe({phase:e}){const t=Ee(dre),n=X(ol),r=X(W3),i=e?JKe[e]:"",o=Hn("(max-width: 750px)");return u.jsxs(V,{direction:"column",ref:a=>t(a),overflowY:"auto",className:Te(yd.container,i,{[yd.collapsed]:!n||!r}),children:[u.jsx(foe,{isStartup:!0}),u.jsxs(V,{flexGrow:"1",direction:"column",width:"100%",maxWidth:Zte,minHeight:"0",mx:"auto",px:o?"20px":"89px",children:[(e===wn.loading_full_snapshot||e===wn.loading_incremental_snapshot)&&u.jsx(tVe,{}),e===wn.catching_up&&u.jsx(Fqe,{}),e===wn.waiting_for_supermajority&&u.jsx(XKe,{}),u.jsx(Mt,{pb:"20px"})]})]})}function tXe({children:e}){const t=X(ol);return Vi?u.jsxs(u.Fragment,{children:[u.jsx(QKe,{}),u.jsx("div",{children:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(XAe,{}),u.jsx("div",{className:Te(Iie.container,{[Iie.blur]:t}),children:e})]})}const nXe="_container_1i8oq_1",rXe="_toast_1i8oq_10",iXe="_disconnected_1i8oq_19",oXe="_connecting_1i8oq_29",aXe="_text_1i8oq_39",R_={container:nXe,toast:rXe,disconnected:iXe,connecting:oXe,text:aXe};var ac=(e=>(e.Disconnected="disconnected",e.Connecting="connecting",e.Connected="connected",e))(ac||{});const jL=fe(ac.Disconnected),zle={opacity:0,top:-100},sXe={opacity:1,top:18};function Dle(e,t){if(e)return e===ac.Disconnected?{className:R_.disconnected,text:"validator disconnected."}:e===ac.Connecting?{className:R_.connecting,text:"validator connecting..."}:Dle(t)}function lXe(){const e=X(jL),t=o_(e),[n,r]=m.useState(!0);i_(()=>{setTimeout(()=>r(!1),3e3)});const[i,o]=e_(()=>({from:zle}));m.useEffect(()=>{n||(e===ac.Connecting||e===ac.Disconnected?o.start({to:sXe}):o.start({to:zle}))},[o,n,e]);const a=Dle(e,t);if(a)return u.jsx(iu.div,{className:R_.container,style:i,children:u.jsx("div",{className:`${R_.toast} ${a.className}`,children:u.jsx(q,{className:R_.text,children:a.text})})})}const uXe="_slots-list_1sk8v_1",cXe="_hidden_1sk8v_3",dXe="_no-slots-text_1sk8v_8",TL={slotsList:uXe,hidden:cXe,noSlotsText:dXe},fXe="_slot-group-container_1sejw_1",hXe="_slot-group_1sejw_1",pXe="_left-column_1sejw_14",mXe="_future_1sejw_20",gXe="_you_1sejw_28",vXe="_current_1sejw_36",yXe="_slot-name_1sejw_43",bXe="_skipped_1sejw_47",_Xe="_current-slot-row_1sejw_57",xXe="_past_1sejw_63",wXe="_processed_1sejw_74",kXe="_selected_1sejw_87",SXe="_ellipsis_1sejw_105",CXe="_slot-item-content_1sejw_111",jXe="_placeholder_1sejw_119",TXe="_slot-statuses_1sejw_123",IXe="_slot-status_1sejw_123",EXe="_slot-status-progress_1sejw_132",NXe="_tall_1sejw_142",$Xe="_short_1sejw_149",MXe="_scroll-slots-placeholder_1sejw_173",LXe="_shimmer_1sejw_184",RXe="_absolute-full-size_1sejw_176",OXe="_scroll-placeholder-item_1sejw_197",on={slotGroupContainer:fXe,slotGroup:hXe,leftColumn:pXe,future:mXe,you:gXe,current:vXe,slotName:yXe,skipped:bXe,currentSlotRow:_Xe,past:xXe,processed:wXe,selected:kXe,ellipsis:SXe,slotItemContent:CXe,placeholder:jXe,slotStatuses:TXe,slotStatus:IXe,slotStatusProgress:EXe,tall:NXe,short:$Xe,scrollSlotsPlaceholder:MXe,shimmer:LXe,absoluteFullSize:RXe,scrollPlaceholderItem:OXe},O_=m.memo(function({slot:e,size:t}){const{client:n}=ma(e);return u.jsx(Nse,{client:n,size:t})}),PXe=Yf(e=>fe(t=>{var r;const n=xi(e);for(let i=0;i<$n;i++)if((r=t(YN(n+i)))!=null&&r.skipped)return!0;return!1}),{maxSize:500});function IL(e){return X(PXe(e))}const Ale=fe(!1);function P_({showNowIfCurrent:e,durationOptions:t}){const n=X(gre),r=X(Lb),i=X(uDe),o=r??i,a=X(oo),s=X(cDe),l=X(Eg),[c,d]=m.useState(a);r_(()=>{d(v=>{if(!a)return v;if(!v)return a;const _=v-a;return _>10?v-Math.trunc(_/2):_>4?v:_<-4?v-Math.trunc(_/2):v+1})},l);const f=m.useMemo(()=>{if(!(o==null||c==null))return fn.fromMillis(l*(o-c)).rescale()},[c,o,l]),p=m.useMemo(()=>{if(n==null||o==null||c==null)return;const v=o-n,_=(c-n)/v*100;return _<0||_>100?0:_},[c,o,n]);return e&&s?{progressSinceLastLeader:100,nextSlotText:"Now",nextLeaderSlot:a}:{progressSinceLastLeader:p??0,nextSlotText:Sp(f,t),nextLeaderSlot:o}}const zXe="_progress_51hag_1",DXe={progress:zXe};function a1({width:e="100%",height:t="3px",style:n,className:r,variant:i="soft",...o}){return u.jsx(N4,{className:Te(DXe.progress,r),style:{width:e,height:t,...n},variant:i,...o})}function AXe(e){return X(Ale)?u.jsx("div",{className:on.placeholder}):u.jsx(FXe,{...e})}const Fle=fe(e=>{const t=e(eu),n=e(Jf);if(!e(ao)||t===void 0||n===void 0)return;const r=e(Lb);return function(i){return{isCurrentSlotGroup:t<=i&&iMath.ceil(t/46),[t]);return u.jsxs(Mt,{position:"absolute",width:`${e-1}px`,height:`${t}px`,overflow:"hidden",className:on.scrollSlotsPlaceholder,children:[u.jsx("div",{className:Te(on.absoluteFullSize,on.shimmer)}),u.jsx("div",{className:on.absoluteFullSize,children:Array.from({length:n},(r,i)=>u.jsx("div",{className:on.scrollPlaceholderItem},i))})]})});function F6({slot:e,iconSize:t=15}){var o;const{peer:n,isLeader:r,name:i}=ma(e);return u.jsxs(V,{gap:"4px",minWidth:"0",children:[u.jsx(ks,{url:(o=n==null?void 0:n.info)==null?void 0:o.icon_url,size:t,isYou:r,hideTooltip:!0}),u.jsx(q,{className:Te(on.slotName,on.ellipsis),children:i})]})}function Ule({flag:e,width:t}){return u.jsx(V,{width:t,children:e&&u.jsx(q,{children:e})})}function z_({firstSlot:e,isCurrentSlot:t=!1,isPastSlot:n=!1}){return u.jsx(V,{className:Te(on.slotStatuses,{[on.tall]:t,[on.short]:!t&&!n}),direction:"column",justify:"between",children:Array.from({length:$n}).map((r,i)=>{const o=e+($n-1)-i;return t?u.jsx(qXe,{slot:o},i):n?u.jsx(GXe,{slot:o},i):u.jsx(EL,{},i)})})}function EL({borderColor:e,backgroundColor:t,slotDuration:n}){return u.jsx(V,{className:on.slotStatus,style:{borderColor:e,backgroundColor:t},children:n&&u.jsx("div",{style:{"--slot-duration":`${n}ms`},className:on.slotStatusProgress})})}function Wle(e){if(!e)return{};if(e.skipped)return{backgroundColor:gk};switch(e.level){case"incomplete":return{};case"completed":return{borderColor:zN};case"optimistically_confirmed":return{backgroundColor:zN};case"finalized":case"rooted":return{backgroundColor:Wne}}}function qXe({slot:e}){const t=X(oo),n=Is(e),r=X(Eg),i=m.useMemo(()=>e===t,[e,t]),o=m.useMemo(()=>i?{borderColor:DN}:Wle(n.publish),[i,n.publish]);return u.jsx(EL,{borderColor:o.borderColor,backgroundColor:o.backgroundColor,slotDuration:i?r:void 0})}function GXe({slot:e}){const t=Is(e),n=X(Cn),r=m.useMemo(()=>{var o,a;const i=Wle(t.publish);return((o=t==null?void 0:t.publish)==null?void 0:o.level)==="rooted"&&!((a=t.publish)!=null&&a.skipped)&&(n===void 0||xi(e)!==xi(n))&&(i.backgroundColor=Vne),i},[t.publish,n,e]);return u.jsx(EL,{borderColor:r.borderColor,backgroundColor:r.backgroundColor})}const YXe="_container_1l1zm_1",KXe="_button_1l1zm_5",Vle={container:YXe,button:KXe};function XXe(){const e=Ee(An),t=X(kDe);return t==="Live"?null:u.jsx("div",{className:Vle.container,children:u.jsxs(hs,{className:Vle.button,style:{zIndex:3},onClick:()=>{e(void 0)},children:[u.jsx(q,{children:"Skip to RT"}),t==="Past"?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const JXe=m.memo(XXe);function QXe(e){if(!e)return;const t=e.end_slot-e.start_slot+1,n=Math.ceil(t/$n);return{getSlotAtIndex:r=>{if(!(r<0||r>=n))return xi(e.end_slot-r*$n)},getIndexForSlot:r=>{if(!(re.end_slot))return Math.trunc((e.end_slot-r)/$n)},itemsCount:n}}function eJe(e){if(e==null)return;const t=e.reduce((n,r,i)=>(n[r]=e.length-i-1,n),{});return{getSlotAtIndex:n=>e[e.length-n-1],getIndexForSlot:n=>n>=e[e.length-1]?0:t[xi(n)]??e.length-rt.sortedIndex(e,n)-1,itemsCount:e.length}}const tJe=e=>e,nJe={top:24,bottom:0};function rJe({width:e,height:t}){const n=X(Tg),r=X(di);return r?n===$b.MySlots?u.jsx(lJe,{width:e,height:t},r.epoch):u.jsx(sJe,{width:e,height:t},r.epoch):null}function Hle({width:e,height:t,itemsCount:n,getSlotAtIndex:r,getIndexForSlot:i}){const o=m.useRef(null),a=m.useRef(null),s=m.useRef(null),[l,c]=m.useState(!0),[d,f]=m.useState(!0);m.useEffect(()=>{const x=setTimeout(()=>{c(!1)},100);return()=>clearTimeout(x)},[]);const p=Ee(An),v=Ip(()=>{},100),{rangeChanged:_,scrollSeekConfiguration:y}=m.useMemo(()=>{const x=({startIndex:S})=>{s.current=S+1};return{rangeChanged:x,scrollSeekConfiguration:{enter:S=>Math.abs(S)>1500,exit:S=>Math.abs(S)<500,change:(S,C)=>x(C)}}},[s]);m.useEffect(()=>{if(!o.current)return;const x=o.current,S=rt.throttle(()=>{if(s.current===null)return;v();const j=Math.min(s.current+oN,n-1),T=r(j);p(T)},50,{leading:!0,trailing:!0}),C=()=>{S()};return x.addEventListener("wheel",C),x.addEventListener("touchmove",C),()=>{x.removeEventListener("wheel",C),x.removeEventListener("touchmove",C)}},[r,v,p,n,s]);const b=m.useCallback(x=>{const S=r(x);return S==null?null:u.jsx(AXe,{leaderSlotForGroup:S})},[r]),w=m.useCallback(x=>f(x>=t),[t]);return u.jsxs(Mt,{ref:o,position:"relative",width:`${e}px`,height:`${t}px`,children:[u.jsx(oJe,{listRef:a,getIndexForSlot:i}),u.jsx(aJe,{listRef:a,getIndexForSlot:i,debouncedScroll:v}),d&&u.jsx(ZXe,{width:e,height:t}),u.jsx(JXe,{}),u.jsx(vL,{ref:a,className:Te(TL.slotsList,{[TL.hidden]:l}),width:e,height:t,totalCount:n,increaseViewportBy:nJe,defaultItemHeight:42,skipAnimationFrameInResizeObserver:!0,computeItemKey:tJe,itemContent:b,rangeChanged:_,components:{ScrollSeekPlaceholder:iJe},scrollSeekConfiguration:y,totalListHeightChanged:w})]})}const iJe=m.memo(function(){return null}),oJe=m.memo(function({listRef:e,getIndexForSlot:t}){const n=X(eu),r=X(tDe);return m.useEffect(()=>{if(!r||n===void 0||!e.current)return;const i=t(n),o=i?Math.max(0,i-oN):0;e.current.scrollToIndex({index:o,align:"start"})},[r,n,t,e]),null}),aJe=m.memo(function({listRef:e,getIndexForSlot:t,debouncedScroll:n}){const r=m.useRef(null),i=X(An);return m.useEffect(()=>{if(i===void 0||!e.current||n.isPending())return;const o=t(i),a=o?Math.max(0,o-oN):0,s=r.current;return r.current=requestAnimationFrame(()=>{var l;s!==null&&cancelAnimationFrame(s),(l=e.current)==null||l.scrollToIndex({index:a,align:"start"})}),()=>{r.current!==null&&(cancelAnimationFrame(r.current),r.current=null)}},[t,i,e,n]),null});function sJe({width:e,height:t}){const n=X(di),r=m.useMemo(()=>QXe(n),[n]);return r?u.jsx(Hle,{width:e,height:t,...r}):null}function lJe({width:e,height:t}){const n=X(ao),r=m.useMemo(()=>eJe(n),[n]);return r?r.itemsCount===0?u.jsx(V,{width:`${e}px`,height:`${t}px`,justify:"center",align:"center",children:u.jsxs(q,{className:TL.noSlotsText,children:["No Slots",u.jsx("br",{}),"Available"]})}):u.jsx(Hle,{width:e,height:t,...r}):null}let vl;typeof window<"u"?vl=window:typeof self<"u"?vl=self:vl=global;let NL=null,$L=null;const Zle=20,ML=vl.clearTimeout,qle=vl.setTimeout,LL=vl.cancelAnimationFrame||vl.mozCancelAnimationFrame||vl.webkitCancelAnimationFrame,Gle=vl.requestAnimationFrame||vl.mozRequestAnimationFrame||vl.webkitRequestAnimationFrame;LL==null||Gle==null?(NL=ML,$L=function(e){return qle(e,Zle)}):(NL=function([e,t]){LL(e),ML(t)},$L=function(e){const t=Gle(function(){ML(n),e()}),n=qle(function(){LL(t),e()},Zle);return[t,n]});function uJe(e){let t,n,r,i,o,a,s;const l=typeof document<"u"&&document.attachEvent;if(!l){a=function(y){const b=y.__resizeTriggers__,w=b.firstElementChild,x=b.lastElementChild,S=w.firstElementChild;x.scrollLeft=x.scrollWidth,x.scrollTop=x.scrollHeight,S.style.width=w.offsetWidth+1+"px",S.style.height=w.offsetHeight+1+"px",w.scrollLeft=w.scrollWidth,w.scrollTop=w.scrollHeight},o=function(y){return y.offsetWidth!==y.__resizeLast__.width||y.offsetHeight!==y.__resizeLast__.height},s=function(y){if(y.target.className&&typeof y.target.className.indexOf=="function"&&y.target.className.indexOf("contract-trigger")<0&&y.target.className.indexOf("expand-trigger")<0)return;const b=this;a(this),this.__resizeRAF__&&NL(this.__resizeRAF__),this.__resizeRAF__=$L(function(){o(b)&&(b.__resizeLast__.width=b.offsetWidth,b.__resizeLast__.height=b.offsetHeight,b.__resizeListeners__.forEach(function(w){w.call(b,y)}))})};let d=!1,f="";r="animationstart";const p="Webkit Moz O ms".split(" ");let v="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),_="";{const y=document.createElement("fakeelement");if(y.style.animationName!==void 0&&(d=!0),d===!1){for(let b=0;b div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',p=d.head||d.getElementsByTagName("head")[0],v=d.createElement("style");v.id="detectElementResize",v.type="text/css",e!=null&&v.setAttribute("nonce",e),v.styleSheet?v.styleSheet.cssText=f:v.appendChild(d.createTextNode(f)),p.appendChild(v)}};return{addResizeListener:function(d,f){if(l)d.attachEvent("onresize",f);else{if(!d.__resizeTriggers__){const p=d.ownerDocument,v=vl.getComputedStyle(d);v&&v.position==="static"&&(d.style.position="relative"),c(p),d.__resizeLast__={},d.__resizeListeners__=[],(d.__resizeTriggers__=p.createElement("div")).className="resize-triggers";const _=p.createElement("div");_.className="expand-trigger",_.appendChild(p.createElement("div"));const y=p.createElement("div");y.className="contract-trigger",d.__resizeTriggers__.appendChild(_),d.__resizeTriggers__.appendChild(y),d.appendChild(d.__resizeTriggers__),a(d),d.addEventListener("scroll",s,!0),r&&(d.__resizeTriggers__.__animationListener__=function(b){b.animationName===n&&a(d)},d.__resizeTriggers__.addEventListener(r,d.__resizeTriggers__.__animationListener__))}d.__resizeListeners__.push(f)}},removeResizeListener:function(d,f){if(l)d.detachEvent("onresize",f);else if(d.__resizeListeners__.splice(d.__resizeListeners__.indexOf(f),1),!d.__resizeListeners__.length){d.removeEventListener("scroll",s,!0),d.__resizeTriggers__.__animationListener__&&(d.__resizeTriggers__.removeEventListener(r,d.__resizeTriggers__.__animationListener__),d.__resizeTriggers__.__animationListener__=null);try{d.__resizeTriggers__=!d.removeChild(d.__resizeTriggers__)}catch{}}}}}class $s extends m.Component{constructor(...t){super(...t),this.state={height:this.props.defaultHeight||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._didLogDeprecationWarning=!1,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:n,disableWidth:r,onResize:i}=this.props;if(this._parentNode){const o=window.getComputedStyle(this._parentNode)||{},a=parseFloat(o.paddingLeft||"0"),s=parseFloat(o.paddingRight||"0"),l=parseFloat(o.paddingTop||"0"),c=parseFloat(o.paddingBottom||"0"),d=this._parentNode.getBoundingClientRect(),f=d.height-l-c,p=d.width-a-s;if(!n&&this.state.height!==f||!r&&this.state.width!==p){this.setState({height:f,width:p});const v=()=>{this._didLogDeprecationWarning||(this._didLogDeprecationWarning=!0,console.warn("scaledWidth and scaledHeight parameters have been deprecated; use width and height instead"))};typeof i=="function"&&i({height:f,width:p,get scaledHeight(){return v(),f},get scaledWidth(){return v(),p}})}}},this._setRef=n=>{this._autoSizer=n}}componentDidMount(){const{nonce:t}=this.props,n=this._autoSizer?this._autoSizer.parentNode:null;if(n!=null&&n.ownerDocument&&n.ownerDocument.defaultView&&n instanceof n.ownerDocument.defaultView.HTMLElement){this._parentNode=n;const r=n.ownerDocument.defaultView.ResizeObserver;r!=null?(this._resizeObserver=new r(()=>{this._timeoutId=setTimeout(this._onResize,0)}),this._resizeObserver.observe(n)):(this._detectElementResize=uJe(t),this._detectElementResize.addResizeListener(n,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),this._timeoutId!==null&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:t,defaultHeight:n,defaultWidth:r,disableHeight:i=!1,disableWidth:o=!1,doNotBailOutOnEmptyChildren:a=!1,nonce:s,onResize:l,style:c={},tagName:d="div",...f}=this.props,{height:p,width:v}=this.state,_={overflow:"visible"},y={};let b=!1;return i||(p===0&&(b=!0),_.height=0,y.height=p,y.scaledHeight=p),o||(v===0&&(b=!0),_.width=0,y.width=v,y.scaledWidth=v),a&&(b=!1),m.createElement(d,{ref:this._setRef,style:{..._,...c},...f},!b&&t(y))}}function cJe(){const[e,t]=Vl(Tg),n=m.useCallback(r=>{r&&t(r)},[t]);return u.jsx(V,{height:`${uN}px`,width:"100%",children:u.jsxs($7,{type:"single",value:e,"aria-label":"Slots List Toggle",onValueChange:n,className:Ep.navFilterToggleGroup,children:[u.jsx(U0,{value:$b.AllSlots,"aria-label":"All Slots toggle",tabIndex:0,children:u.jsx(q,{children:"All Slots"})}),u.jsx(U0,{value:$b.MySlots,"aria-label":"My Slots toggle",tabIndex:0,children:u.jsx(q,{children:"My Slots"})})]})})}const dJe="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='20px'%20viewBox='0%20-960%20960%20960'%20width='20px'%20fill='%23FF5353'%3e%3cpath%20d='m48-144%20432-720%20432%20720H48Zm431.79-120q15.21%200%2025.71-10.29t10.5-25.5q0-15.21-10.29-25.71t-25.5-10.5q-15.21%200-25.71%2010.29t-10.5%2025.5q0%2015.21%2010.29%2025.71t25.5%2010.5ZM444-384h72v-192h-72v192Z'/%3e%3c/svg%3e",fJe="data:image/svg+xml,%3csvg%20width='10'%20height='11'%20viewBox='0%200%2010%2011'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.39453%201.5H9.67578V7.32422H5.57422L5.35547%206.17578H2.07422V10.25H0.925781V0.324219H6.17578L6.39453%201.5Z'%20fill='%231DB247'/%3e%3c/svg%3e",hJe="_epoch-progress_niwu5_1",pJe="_clickable_niwu5_8",mJe="_leader-slot_niwu5_12",gJe="_before-start_niwu5_21",vJe="_skipped-slot_niwu5_26",yJe="_skipped-slot-icon_niwu5_36",bJe="_first-processed-slot_niwu5_45",_Je="_first-processed-slot-icon_niwu5_56",xJe="_slider-root_niwu5_65",wJe="_slider-track_niwu5_76",kJe="_slider-thumb_niwu5_82",SJe="_collapsed_niwu5_92",CJe="_tooltip_niwu5_106",jJe="_hide_niwu5_114",TJe="_show_niwu5_123",Yi={epochProgress:hJe,clickable:pJe,leaderSlot:mJe,beforeStart:gJe,skippedSlot:vJe,skippedSlotIcon:yJe,firstProcessedSlot:bJe,firstProcessedSlotIcon:_Je,sliderRoot:xJe,sliderTrack:wJe,sliderThumb:kJe,collapsed:SJe,tooltip:CJe,hide:jJe,show:TJe};function IJe(e,t,n=window){const r=m.useRef(t);m.useEffect(()=>{r.current=t});const i=Lze(e)?e:[e];m.useEffect(()=>{if(!r.current||!n||!n.addEventListener||i.length===0)return;const o=a=>{var s;return(s=r.current)==null?void 0:s.call(r,a)};return i.forEach(a=>n.addEventListener(a,o,{passive:!1})),()=>{i.forEach(a=>n.removeEventListener(a,o,!1))}},[...i,n])}const RL=10800;function Up({slot:e,epochStartSlot:t,epochEndSlot:n}){if(!e||t===void 0||n===void 0||t===n)return 0;e=Math.min(Math.max(e,t),n);const r=n-t;return(e-t)/r}function EJe(e){return Math.trunc(e*RL)}function NJe(e,t,n){if(e===void 0||t===void 0||n===void 0)return;const r=e/RL,i=n-t;return Math.trunc(i*r)+t}function $Je(e,t){return Up(t)}function MJe(e,t){if(!e||!t)return 3e3;const n=e.end_slot-e.start_slot;return n<1e4?300:n<5e4?1e3:n<1e5?3e3:n<2e5?5e3:n<3e5?1e4:n<4e5?15e3:3e4}function Yle(e,t){return e.length?e.reduce((n,r,i)=>{if(i===0)return n;const o=n[n.length-1];return Math.abs(r.pct-o.pct)clearTimeout(f.current));const p=m.useCallback(y=>{t(y),d(!0),clearTimeout(f.current),f.current=setTimeout(()=>d(!1),100)},[t]),v=m.useCallback(y=>{const b=NJe(y[0],e==null?void 0:e.start_slot,e==null?void 0:e.end_slot);b!==void 0&&p(b)},[e==null?void 0:e.end_slot,e==null?void 0:e.start_slot,p]),_=Ua(v,100,{trailing:!0});return IJe("pointerup",()=>{i.current=!1,o(!1)}),u.jsx(V,{direction:"column",width:"100%",flexGrow:"1",align:"center",ref:a,children:u.jsxs(KH,{orientation:"vertical",className:Yi.sliderRoot,style:{zIndex:Hf},value:n,onValueChange:y=>{i.current=!0,r(y),_(y),o(!0)},onValueCommit:()=>{i.current=!1,_.flush(),o(!1)},max:RL,children:[u.jsxs(XH,{className:Yi.sliderTrack,children:[u.jsx(PJe,{isSliderChangingValueRef:i,setSliderValue:r},e==null?void 0:e.epoch),u.jsx(UJe,{updateSlot:p,slotHeight:l}),u.jsx(HJe,{updateSlot:p}),u.jsx(GJe,{updateSlot:p})]}),u.jsx(zJe,{isOpen:c})]})})}function OJe({isSliderChangingValueRef:e,setSliderValue:t}){const n=X(di),r=X(KN),i=X(eu),o=X(An),a=X(Tg),[s,l]=m.useReducer($Je,{slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot},Up),c=m.useMemo(()=>MJe(n,s),[n,s]);return Qu(()=>{m.startTransition(()=>{l({slot:i,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot})})},c),m.useEffect(()=>{if(e.current)return;const d=o?Up({slot:o,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):a===$b.MySlots?Up({slot:r,epochStartSlot:n==null?void 0:n.start_slot,epochEndSlot:n==null?void 0:n.end_slot}):s,f=EJe(d);t(p=>p[0]===f?p:[f])},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,s,e,t,o,a,r]),u.jsx(Mt,{className:Yi.epochProgress,height:`${s*100}%`})}const PJe=m.memo(OJe);function zJe({isOpen:e}){const t=X(An),{showNav:n}=Fg();return u.jsx(JH,{className:Te(Yi.sliderThumb,{[Yi.collapsed]:!n}),children:u.jsx(q,{size:"1",className:Te("rt-TooltipContent","rt-TooltipText",Yi.tooltip,e?Yi.show:Yi.hide),children:t})})}const DJe=e=>fe(t=>{const n=t(eu);return e>(n??0)});function AJe({slot:e,pct:t,height:n,updateSlot:r}){const i=X(Jf),o=X(m.useMemo(()=>DJe(e),[e])),a=l=>c=>{c.stopPropagation(),c.preventDefault(),r(l)},s=i?e{if(!n||!(r!=null&&r.length))return;const o=r.map(a=>({slot:a,pct:Up({slot:a,epochStartSlot:n.start_slot,epochEndSlot:n.end_slot})}));return Yle(o,.005)},[n,r]);return u.jsx(u.Fragment,{children:i==null?void 0:i.map(({slot:o,pct:a})=>u.jsx(FJe,{slot:o,pct:a,height:t,updateSlot:e},o))})}const UJe=m.memo(BJe);function WJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsx(u.Fragment,{children:u.jsx("div",{className:Te(Yi.skippedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e),children:u.jsx("img",{src:dJe,alt:"skipped slot",className:Te(Yi.skippedSlotIcon,Yi.clickable),style:{bottom:"-3px"},onPointerDown:r(e)})})})}function VJe({updateSlot:e}){const t=X(di),n=X(u3),r=m.useMemo(()=>{if(!t||!(n!=null&&n.length))return;const i=n.map(o=>({slot:o,pct:Up({slot:o,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})}));return Yle(i,.005)},[t,n]);return u.jsx(u.Fragment,{children:r==null?void 0:r.map(({slot:i,pct:o})=>u.jsx(WJe,{slot:i,pct:o,updateSlot:e},i))})}const HJe=m.memo(VJe);function ZJe({slot:e,pct:t,updateSlot:n}){const r=i=>o=>{o.stopPropagation(),o.preventDefault(),n(i)};return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{className:Te(Yi.firstProcessedSlot,Yi.clickable),style:{bottom:`${t*100}%`},onPointerDown:r(e)}),u.jsx("img",{src:fJe,alt:"first processed slot",className:Te(Yi.firstProcessedSlotIcon,Yi.clickable),style:{bottom:`calc(${t*100}%)`},onPointerDown:r(e)})]})}function qJe({updateSlot:e}){const t=X(di),n=X(Jf),r=m.useMemo(()=>{if(!(!n||!t))return Up({slot:n,epochStartSlot:t.start_slot,epochEndSlot:t.end_slot})},[t,n]);return!r||!n?null:u.jsx(ZJe,{slot:n,pct:r,updateSlot:e})}const GJe=m.memo(qJe),Kle=kb+Sb;function YJe(){const e=Hn(Vte),{showNav:t,occupyRowWidth:n,showOnlyEpochBar:r}=Fg(),i=t?dN:0,o=m.useMemo(()=>r?Wte:$Re,[r]);return u.jsxs(u.Fragment,{children:[u.jsx(KJe,{}),u.jsx("div",{style:{flexShrink:0,width:n?`${o}px`:"0"},children:u.jsxs(V,{width:t?`${o+i}px`:"0",overflow:t?"visible":"hidden",className:Te("sticky",Ep.slotNavContainer,{[Ep.navBackground]:!r}),style:{zIndex:Hf-1},top:`${Kle}px`,height:`calc(100vh - ${Kle}px)`,ml:`${-i}px`,pl:`${i}px`,pb:"2",children:[u.jsxs(V,{flexShrink:"0",direction:"column",width:`${cN}px`,pt:e?"0":`${uN+Vf}px`,children:[e&&u.jsx("div",{style:{marginBottom:`${Vf}px`},children:u.jsx(W$,{})}),u.jsx(LJe,{})]}),!r&&u.jsxs(V,{ml:`${ck}px`,direction:"column",width:`${fN}px`,flexShrink:"0",gap:`${Vf}px`,children:[u.jsx(cJe,{}),u.jsx(V,{flexGrow:"1",children:u.jsx($s,{children:({height:a,width:s})=>u.jsx(rJe,{width:s,height:a})})})]})]})})]})}function KJe(){const e=Ee(An),t=X(Cn);return m.useEffect(()=>{t!==void 0&&e(t)},[t,e]),null}const XJe=ca(),s1=C9e({component:JJe,beforeLoad:()=>XJe.set(gd.slot,void 0)});function JJe(){const e=X(V3);return u.jsxs(u.Fragment,{children:[u.jsx(lXe,{}),u.jsx(tXe,{children:u.jsxs("div",{id:"scroll-container",style:{position:"relative",height:"100dvh",maxHeight:e?"100vh":"unset",overflowY:e?"hidden":"auto",willChange:"scroll-position",contain:"paint",isolation:"isolate"},children:[u.jsx(foe,{}),u.jsxs(V,{className:"app-width-container",px:"2",position:"relative",children:[u.jsx(YJe,{}),u.jsx(QJe,{})]})]})})]})}function QJe(){const e=Yk()==="Schedule",{setIsNavCollapsed:t,isNarrowScreen:n,occupyRowWidth:r,blurBackground:i}=Fg();return m.useEffect(()=>{t(n)},[n,t]),u.jsxs(Mt,{position:"relative",flexGrow:"1",minWidth:"0",pb:"2",pl:e||!r?"0px":`${lN-Vf}px`,children:[u.jsx(Dq,{}),i&&u.jsx(ioe,{})]})}const eQe="_text_nk1yn_1",tQe={text:eQe};function Sd({text:e}){return u.jsx(q,{className:tQe.text,children:e})}var nQe=typeof Ac=="object"&&Ac&&Ac.Object===Object&&Ac,Xle=nQe,rQe=Xle,iQe=typeof self=="object"&&self&&self.Object===Object&&self,oQe=rQe||iQe||Function("return this")(),sc=oQe,aQe=sc,sQe=aQe.Symbol,l1=sQe,Jle=l1,Qle=Object.prototype,lQe=Qle.hasOwnProperty,uQe=Qle.toString,D_=Jle?Jle.toStringTag:void 0;function cQe(e){var t=lQe.call(e,D_),n=e[D_];try{e[D_]=void 0;var r=!0}catch{}var i=uQe.call(e);return r&&(t?e[D_]=n:delete e[D_]),i}var dQe=cQe,fQe=Object.prototype,hQe=fQe.toString;function pQe(e){return hQe.call(e)}var mQe=pQe,eue=l1,gQe=dQe,vQe=mQe,yQe="[object Null]",bQe="[object Undefined]",tue=eue?eue.toStringTag:void 0;function _Qe(e){return e==null?e===void 0?bQe:yQe:tue&&tue in Object(e)?gQe(e):vQe(e)}var Wp=_Qe;function xQe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Cd=xQe,wQe=Wp,kQe=Cd,SQe="[object AsyncFunction]",CQe="[object Function]",jQe="[object GeneratorFunction]",TQe="[object Proxy]";function IQe(e){if(!kQe(e))return!1;var t=wQe(e);return t==CQe||t==jQe||t==SQe||t==TQe}var B6=IQe;const nue=to(B6);var EQe=sc,NQe=EQe["__core-js_shared__"],$Qe=NQe,OL=$Qe,rue=function(){var e=/[^.]+$/.exec(OL&&OL.keys&&OL.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function MQe(e){return!!rue&&rue in e}var LQe=MQe,RQe=Function.prototype,OQe=RQe.toString;function PQe(e){if(e!=null){try{return OQe.call(e)}catch{}try{return e+""}catch{}}return""}var iue=PQe,zQe=B6,DQe=LQe,AQe=Cd,FQe=iue,BQe=/[\\^$.*+?()[\]{}|]/g,UQe=/^\[object .+?Constructor\]$/,WQe=Function.prototype,VQe=Object.prototype,HQe=WQe.toString,ZQe=VQe.hasOwnProperty,qQe=RegExp("^"+HQe.call(ZQe).replace(BQe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function GQe(e){if(!AQe(e)||DQe(e))return!1;var t=zQe(e)?qQe:UQe;return t.test(FQe(e))}var YQe=GQe;function KQe(e,t){return e==null?void 0:e[t]}var XQe=KQe,JQe=YQe,QQe=XQe;function eet(e,t){var n=QQe(e,t);return JQe(n)?n:void 0}var Vp=eet,tet=Vp,net=tet(Object,"create"),U6=net,oue=U6;function ret(){this.__data__=oue?oue(null):{},this.size=0}var iet=ret;function oet(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var aet=oet,set=U6,uet="__lodash_hash_undefined__",cet=Object.prototype,det=cet.hasOwnProperty;function fet(e){var t=this.__data__;if(set){var n=t[e];return n===uet?void 0:n}return det.call(t,e)?t[e]:void 0}var het=fet,pet=U6,met=Object.prototype,get=met.hasOwnProperty;function vet(e){var t=this.__data__;return pet?t[e]!==void 0:get.call(t,e)}var yet=vet,bet=U6,_et="__lodash_hash_undefined__";function xet(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=bet&&t===void 0?_et:t,this}var wet=xet,ket=iet,Cet=aet,jet=het,Tet=yet,Iet=wet;function u1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Het=Vet,Zet=W6;function qet(e,t){var n=this.__data__,r=Zet(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Get=qet,Yet=$et,Ket=Aet,Xet=Uet,Jet=Het,Qet=Get;function c1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var sue=Gtt;function Ytt(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=pnt){var c=t?null:fnt(e);if(c)return hnt(c);a=!1,i=dnt,l=new lnt}else l=t?[]:s;e:for(;++r0&&f.height>0,b=Math.round(n[0]),w=Math.round(n[1]);y&&(r==="top"?(b-=f.width/2,w-=f.height+14):r==="right"?(b+=14,w-=f.height/2):r==="bottom"?(b-=f.width/2,w+=14):r==="left"?(b-=f.width+14,w-=f.height/2):r==="center"&&(b-=f.width/2,w-=f.height/2),v={transform:hue(b,w)},p.current||(_=!0),p.current=[b,w]);var x=e_({to:v,config:l,immediate:!s||_}),S=Hp({},jnt,o.tooltip.wrapper,{transform:(t=x.transform)!=null?t:hue(b,w),opacity:x.transform?1:0});return u.jsx(iu.div,{ref:d,style:S,children:i})});pue.displayName="TooltipWrapper";var UL=m.memo(function(e){var t=e.size,n=t===void 0?12:t,r=e.color,i=e.style;return u.jsx("span",{style:Hp({display:"block",width:n,height:n,background:r},i===void 0?{}:i)})}),WL=m.memo(function(e){var t,n=e.id,r=e.value,i=e.format,o=e.enableChip,a=o!==void 0&&o,s=e.color,l=e.renderContent,c=Ms(),d=WR(i);if(typeof l=="function")t=l();else{var f=r;d!==void 0&&f!==void 0&&(f=d(f)),t=u.jsxs("div",{style:c.tooltip.basic,children:[a&&u.jsx(UL,{color:s,style:c.tooltip.chip}),f!==void 0?u.jsxs("span",{children:[n,": ",u.jsx("strong",{children:""+f})]}):n]})}return u.jsx("div",{style:c.tooltip.container,children:t})}),Tnt={width:"100%",borderCollapse:"collapse"},Int=m.memo(function(e){var t,n=e.title,r=e.rows,i=r===void 0?[]:r,o=e.renderContent,a=Ms();return i.length?(t=typeof o=="function"?o():u.jsxs("div",{children:[n&&n,u.jsx("table",{style:Hp({},Tnt,a.tooltip.table),children:u.jsx("tbody",{children:i.map(function(s,l){return u.jsx("tr",{children:s.map(function(c,d){return u.jsx("td",{style:a.tooltip.tableCell,children:c},d)})},l)})})})]}),u.jsx("div",{style:a.tooltip.container,children:t})):null});Int.displayName="TableTooltip";var VL=m.memo(function(e){var t=e.x0,n=e.x1,r=e.y0,i=e.y1,o=Ms(),a=w1(),s=a.animate,l=a.config,c=m.useMemo(function(){return Hp({},o.crosshair.line,{pointerEvents:"none"})},[o.crosshair.line]),d=e_({x1:t,x2:n,y1:r,y2:i,config:l,immediate:!s});return u.jsx(iu.line,Hp({},d,{fill:"none",style:c}))});VL.displayName="CrosshairLine";var Ent=m.memo(function(e){var t,n,r=e.width,i=e.height,o=e.type,a=e.x,s=e.y;return o==="cross"?(t={x0:a,x1:a,y0:0,y1:i},n={x0:0,x1:r,y0:s,y1:s}):o==="top-left"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:0,x1:a,y0:s,y1:s}):o==="top"?t={x0:a,x1:a,y0:0,y1:s}:o==="top-right"?(t={x0:a,x1:a,y0:0,y1:s},n={x0:a,x1:r,y0:s,y1:s}):o==="right"?n={x0:a,x1:r,y0:s,y1:s}:o==="bottom-right"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:a,x1:r,y0:s,y1:s}):o==="bottom"?t={x0:a,x1:a,y0:s,y1:i}:o==="bottom-left"?(t={x0:a,x1:a,y0:s,y1:i},n={x0:0,x1:a,y0:s,y1:s}):o==="left"?n={x0:0,x1:a,y0:s,y1:s}:o==="x"?t={x0:a,x1:a,y0:0,y1:i}:o==="y"&&(n={x0:0,x1:r,y0:s,y1:s}),u.jsxs(u.Fragment,{children:[t&&u.jsx(VL,{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}),n&&u.jsx(VL,{x0:n.x0,x1:n.x1,y0:n.y0,y1:n.y1})]})});Ent.displayName="Crosshair";var mue=m.createContext({showTooltipAt:function(){},showTooltipFromEvent:function(){},hideTooltip:function(){}}),HL={isVisible:!1,position:[null,null],content:null,anchor:null},gue=m.createContext(HL),Nnt=function(e){var t=m.useState(HL),n=t[0],r=t[1],i=m.useCallback(function(s,l,c){var d=l[0],f=l[1];c===void 0&&(c="top"),r({isVisible:!0,position:[d,f],anchor:c,content:s})},[r]),o=m.useCallback(function(s,l,c){c===void 0&&(c="top");var d=e.current.getBoundingClientRect(),f=e.current.offsetWidth,p=f===d.width?1:f/d.width,v="touches"in l?l.touches[0]:l,_=v.clientX,y=v.clientY,b=(_-d.left)*p,w=(y-d.top)*p;c!=="left"&&c!=="right"||(c=b-1&&e%1==0&&e<=Wrt}var XL=Vrt,Hrt=B6,Zrt=XL;function qrt(e){return e!=null&&Zrt(e.length)&&!Hrt(e)}var Y6=qrt,Grt=Y6,Yrt=lc;function Krt(e){return Yrt(e)&&Grt(e)}var Nue=Krt,K6={exports:{}};function Xrt(){return!1}var Jrt=Xrt;K6.exports,function(e,t){var n=sc,r=Jrt,i=t&&!t.nodeType&&t,o=i&&!0&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a?n.Buffer:void 0,l=s?s.isBuffer:void 0,c=l||r;e.exports=c}(K6,K6.exports);var X6=K6.exports,Qrt=Wp,eit=YL,tit=lc,nit="[object Object]",rit=Function.prototype,iit=Object.prototype,$ue=rit.toString,oit=iit.hasOwnProperty,ait=$ue.call(Object);function sit(e){if(!tit(e)||Qrt(e)!=nit)return!1;var t=eit(e);if(t===null)return!0;var n=oit.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&$ue.call(n)==ait}var Mue=sit;const F_=to(Mue);var lit=Wp,uit=XL,cit=lc,dit="[object Arguments]",fit="[object Array]",hit="[object Boolean]",pit="[object Date]",mit="[object Error]",git="[object Function]",vit="[object Map]",yit="[object Number]",bit="[object Object]",_it="[object RegExp]",xit="[object Set]",wit="[object String]",kit="[object WeakMap]",Sit="[object ArrayBuffer]",Cit="[object DataView]",jit="[object Float32Array]",Tit="[object Float64Array]",Iit="[object Int8Array]",Eit="[object Int16Array]",Nit="[object Int32Array]",$it="[object Uint8Array]",Mit="[object Uint8ClampedArray]",Lit="[object Uint16Array]",Rit="[object Uint32Array]",Br={};Br[jit]=Br[Tit]=Br[Iit]=Br[Eit]=Br[Nit]=Br[$it]=Br[Mit]=Br[Lit]=Br[Rit]=!0,Br[dit]=Br[fit]=Br[Sit]=Br[hit]=Br[Cit]=Br[pit]=Br[mit]=Br[git]=Br[vit]=Br[yit]=Br[bit]=Br[_it]=Br[xit]=Br[wit]=Br[kit]=!1;function Oit(e){return cit(e)&&uit(e.length)&&!!Br[lit(e)]}var Pit=Oit;function zit(e){return function(t){return e(t)}}var J6=zit,Q6={exports:{}};Q6.exports,function(e,t){var n=Xle,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,a=o&&n.process,s=function(){try{var l=i&&i.require&&i.require("util").types;return l||a&&a.binding&&a.binding("util")}catch{}}();e.exports=s}(Q6,Q6.exports);var JL=Q6.exports,Dit=Pit,Ait=J6,Lue=JL,Rue=Lue&&Lue.isTypedArray,Fit=Rue?Ait(Rue):Dit,QL=Fit;function Bit(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Oue=Bit,Uit=qL,Wit=A_,Vit=Object.prototype,Hit=Vit.hasOwnProperty;function Zit(e,t,n){var r=e[t];(!(Hit.call(e,t)&&Wit(r,n))||n===void 0&&!(t in e))&&Uit(e,t,n)}var eR=Zit,qit=eR,Git=qL;function Yit(e,t,n,r){var i=!n;n||(n={});for(var o=-1,a=t.length;++o-1&&e%1==0&&e0){if(++t>=oat)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var uat=lat,cat=iat,dat=uat,fat=dat(cat),Zue=fat,hat=Uue,pat=Vue,mat=Zue;function gat(e,t){return mat(pat(e,t,hat),e+"")}var que=gat,vat=A_,yat=Y6,bat=e5,_at=Cd;function xat(e,t,n){if(!_at(n))return!1;var r=typeof t;return(r=="number"?yat(n)&&bat(t,n.length):r=="string"&&t in n)?vat(n[t],e):!1}var wat=xat,kat=que,Sat=wat;function Cat(e){return kat(function(t,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&typeof o=="function"?(i--,o):void 0,a&&Sat(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?r5(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?r5(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Est.exec(e))?new Vo(t[1],t[2],t[3],1):(t=Nst.exec(e))?new Vo(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=$st.exec(e))?r5(t[1],t[2],t[3],t[4]):(t=Mst.exec(e))?r5(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Lst.exec(e))?cce(t[1],t[2]/100,t[3]/100,1):(t=Rst.exec(e))?cce(t[1],t[2]/100,t[3]/100,t[4]):rce.hasOwnProperty(e)?ace(rce[e]):e==="transparent"?new Vo(NaN,NaN,NaN,0):null}function ace(e){return new Vo(e>>16&255,e>>8&255,e&255,1)}function r5(e,t,n,r){return r<=0&&(e=t=n=NaN),new Vo(e,t,n,r)}function sce(e){return e instanceof h1||(e=oR(e)),e?(e=e.rgb(),new Vo(e.r,e.g,e.b,e.opacity)):new Vo}function qp(e,t,n,r){return arguments.length===1?sce(e):new Vo(e,t,n,r??1)}function Vo(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}n5(Vo,qp,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Vo(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Vo(Gp(this.r),Gp(this.g),Gp(this.b),i5(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:lce,formatHex:lce,formatHex8:zst,formatRgb:uce,toString:uce}));function lce(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}`}function zst(){return`#${Yp(this.r)}${Yp(this.g)}${Yp(this.b)}${Yp((isNaN(this.opacity)?1:this.opacity)*255)}`}function uce(){const e=i5(this.opacity);return`${e===1?"rgb(":"rgba("}${Gp(this.r)}, ${Gp(this.g)}, ${Gp(this.b)}${e===1?")":`, ${e})`}`}function i5(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Gp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yp(e){return e=Gp(e),(e<16?"0":"")+e.toString(16)}function cce(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new pu(e,t,n,r)}function dce(e){if(e instanceof pu)return new pu(e.h,e.s,e.l,e.opacity);if(e instanceof h1||(e=oR(e)),!e)return new pu;if(e instanceof pu)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(t===o?a=(n-r)/s+(n0&&l<1?0:a,new pu(a,s,l,e.opacity)}function Dst(e,t,n,r){return arguments.length===1?dce(e):new pu(e,t,n,r??1)}function pu(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}n5(pu,Dst,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new pu(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new pu(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Vo(aR(e>=240?e-240:e+120,i,r),aR(e,i,r),aR(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new pu(fce(this.h),o5(this.s),o5(this.l),i5(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=i5(this.opacity);return`${e===1?"hsl(":"hsla("}${fce(this.h)}, ${o5(this.s)*100}%, ${o5(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fce(e){return e=(e||0)%360,e<0?e+360:e}function o5(e){return Math.max(0,Math.min(1,e||0))}function aR(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Ast=Math.PI/180,Fst=180/Math.PI;var hce=-.14861,sR=1.78277,lR=-.29227,a5=-.90649,H_=1.97294,pce=H_*a5,mce=H_*sR,gce=sR*lR-a5*hce;function Bst(e){if(e instanceof Kp)return new Kp(e.h,e.s,e.l,e.opacity);e instanceof Vo||(e=sce(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(gce*r+pce*t-mce*n)/(gce+pce-mce),o=r-i,a=(H_*(n-i)-lR*o)/a5,s=Math.sqrt(a*a+o*o)/(H_*i*(1-i)),l=s?Math.atan2(a,o)*Fst-120:NaN;return new Kp(l<0?l+360:l,s,i,e.opacity)}function cc(e,t,n,r){return arguments.length===1?Bst(e):new Kp(e,t,n,r??1)}function Kp(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}n5(Kp,cc,iR(h1,{brighter(e){return e=e==null?p1:Math.pow(p1,e),new Kp(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zp:Math.pow(Zp,e),new Kp(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Ast,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Vo(255*(t+n*(hce*r+sR*i)),255*(t+n*(lR*r+a5*i)),255*(t+n*(H_*r)),this.opacity)}}));function Ust(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}function Wst(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=r()=>e;function vce(e,t){return function(n){return e+n*t}}function Vst(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Hst(e,t){var n=t-e;return n?vce(e,n>180||n<-180?n-360*Math.round(n/360):n):uR(isNaN(e)?t:e)}function Zst(e){return(e=+e)==1?g1:function(t,n){return n-t?Vst(t,n,e):uR(isNaN(t)?n:t)}}function g1(e,t){var n=t-e;return n?vce(e,n):uR(isNaN(e)?t:e)}(function e(t){var n=Zst(t);function r(i,o){var a=n((i=qp(i)).r,(o=qp(o)).r),s=n(i.g,o.g),l=n(i.b,o.b),c=g1(i.opacity,o.opacity);return function(d){return i.r=a(d),i.g=s(d),i.b=l(d),i.opacity=c(d),i+""}}return r.gamma=e,r})(1);function qst(e){return function(t){var n=t.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function wce(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function dR(e,t){let n=0;if(t===void 0)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function slt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}const kce=Symbol("implicit");function dc(){var e=new bce,t=[],n=[],r=kce;function i(o){let a=e.get(o);if(a===void 0){if(r!==kce)return r;e.set(o,a=t.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new bce;for(const a of o)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return dc(t,n).unknown(r)},slt.apply(i,arguments),i}function llt(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function s5(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function ult(e){return e=s5(Math.abs(e)),e?e[1]:NaN}function clt(e,t){return function(n,r){for(var i=n.length,o=[],a=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(n.substring(i-=s,i+s)),!((l+=s+1)>r));)s=e[a=(a+1)%e.length];return o.reverse().join(t)}}function dlt(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var flt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function fR(e){if(!(t=flt.exec(e)))throw new Error("invalid format: "+e);var t;return new hR({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}fR.prototype=hR.prototype;function hR(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}hR.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function hlt(e){e:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Sce;function plt(e,t){var n=s5(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(Sce=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+s5(e,Math.max(0,t+o-1))[0]}function Cce(e,t){var n=s5(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const jce={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:llt,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return Cce(e*100,t)},r:Cce,s:plt,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function Tce(e){return e}var Ice=Array.prototype.map,Ece=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function mlt(e){var t=e.grouping===void 0||e.thousands===void 0?Tce:clt(Ice.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal+"",o=e.numerals===void 0?Tce:dlt(Ice.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",s=e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f){f=fR(f);var p=f.fill,v=f.align,_=f.sign,y=f.symbol,b=f.zero,w=f.width,x=f.comma,S=f.precision,C=f.trim,j=f.type;j==="n"?(x=!0,j="g"):jce[j]||(S===void 0&&(S=12),C=!0,j="g"),(b||p==="0"&&v==="=")&&(b=!0,p="0",v="=");var T=y==="$"?n:y==="#"&&/[boxX]/.test(j)?"0"+j.toLowerCase():"",E=y==="$"?r:/[%p]/.test(j)?a:"",$=jce[j],A=/[defgprs%]/.test(j);S=S===void 0?6:/[gprs]/.test(j)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function M(P){var te=T,Z=E,O,J,D;if(j==="c")Z=$(P)+Z,P="";else{P=+P;var Y=P<0||1/P<0;if(P=isNaN(P)?l:$(Math.abs(P),S),C&&(P=hlt(P)),Y&&+P==0&&_!=="+"&&(Y=!1),te=(Y?_==="("?_:s:_==="-"||_==="("?"":_)+te,Z=(j==="s"?Ece[8+Sce/3]:"")+Z+(Y&&_==="("?")":""),A){for(O=-1,J=P.length;++OD||D>57){Z=(D===46?i+P.slice(O+1):P.slice(O))+Z,P=P.slice(0,O);break}}}x&&!b&&(P=t(P,1/0));var F=te.length+P.length+Z.length,H=F>1)+te+P+Z+H.slice(F);break;default:P=H+te+P+Z;break}return o(P)}return M.toString=function(){return f+""},M}function d(f,p){var v=c((f=fR(f),f.type="f",f)),_=Math.max(-8,Math.min(8,Math.floor(ult(p)/3)))*3,y=Math.pow(10,-_),b=Ece[8+_/3];return function(w){return v(y*w)+b}}return{format:c,formatPrefix:d}}var l5,Nce;glt({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function glt(e){return l5=mlt(e),Nce=l5.format,l5.formatPrefix,l5}var pR=new Date,mR=new Date;function jd(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return e(o=new Date(+o)),o},i.ceil=function(o){return e(o=new Date(o-1)),t(o,1),e(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a0))return l;do l.push(c=new Date(+o)),t(o,s),e(o);while(c=a)for(;e(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;t(a,-1),!o(a););else for(;--s>=0;)for(;t(a,1),!o(a););})},n&&(i.count=function(o,a){return pR.setTime(+o),mR.setTime(+a),e(pR),e(mR),Math.floor(n(pR,mR))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}const vlt=1e3,gR=vlt*60,ylt=gR*60,vR=ylt*24,$ce=vR*7;var yR=jd(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*gR)/vR,e=>e.getDate()-1);yR.range;function Xp(e){return jd(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n*7)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*gR)/$ce})}var Mce=Xp(0),u5=Xp(1),blt=Xp(2),_lt=Xp(3),v1=Xp(4),xlt=Xp(5),wlt=Xp(6);Mce.range,u5.range,blt.range,_lt.range,v1.range,xlt.range,wlt.range;var Jp=jd(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Jp.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:jd(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n*e)})},Jp.range;var bR=jd(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/vR},function(e){return e.getUTCDate()-1});bR.range;function Qp(e){return jd(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n*7)},function(t,n){return(n-t)/$ce})}var Lce=Qp(0),c5=Qp(1),klt=Qp(2),Slt=Qp(3),y1=Qp(4),Clt=Qp(5),jlt=Qp(6);Lce.range,c5.range,klt.range,Slt.range,y1.range,Clt.range,jlt.range;var em=jd(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});em.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:jd(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})},em.range;function _R(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function xR(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Z_(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Tlt(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,c=q_(i),d=G_(i),f=q_(o),p=G_(o),v=q_(a),_=G_(a),y=q_(s),b=G_(s),w=q_(l),x=G_(l),S={a:Y,A:F,b:H,B:ee,c:null,d:Ace,e:Ace,f:Klt,g:aut,G:lut,H:qlt,I:Glt,j:Ylt,L:Fce,m:Xlt,M:Jlt,p:ce,q:U,Q:Zce,s:qce,S:Qlt,u:eut,U:tut,V:nut,w:rut,W:iut,x:null,X:null,y:out,Y:sut,Z:uut,"%":Hce},C={a:ae,A:je,b:me,B:ke,c:null,d:Uce,e:Uce,f:hut,g:kut,G:Cut,H:cut,I:dut,j:fut,L:Wce,m:put,M:mut,p:he,q:ue,Q:Zce,s:qce,S:gut,u:vut,U:yut,V:but,w:_ut,W:xut,x:null,X:null,y:wut,Y:Sut,Z:jut,"%":Hce},j={a:M,A:P,b:te,B:Z,c:O,d:zce,e:zce,f:Wlt,g:Pce,G:Oce,H:Dce,I:Dce,j:Alt,L:Ult,m:Dlt,M:Flt,p:A,q:zlt,Q:Hlt,s:Zlt,S:Blt,u:Mlt,U:Llt,V:Rlt,w:$lt,W:Olt,x:J,X:D,y:Pce,Y:Oce,Z:Plt,"%":Vlt};S.x=T(n,S),S.X=T(r,S),S.c=T(t,S),C.x=T(n,C),C.X=T(r,C),C.c=T(t,C);function T(re,ge){return function($e){var pe=[],ye=-1,Se=0,Ce=re.length,Be,Ge,xt;for($e instanceof Date||($e=new Date(+$e));++ye53)return null;"w"in pe||(pe.w=1),"Z"in pe?(Se=xR(Z_(pe.y,0,1)),Ce=Se.getUTCDay(),Se=Ce>4||Ce===0?c5.ceil(Se):c5(Se),Se=bR.offset(Se,(pe.V-1)*7),pe.y=Se.getUTCFullYear(),pe.m=Se.getUTCMonth(),pe.d=Se.getUTCDate()+(pe.w+6)%7):(Se=_R(Z_(pe.y,0,1)),Ce=Se.getDay(),Se=Ce>4||Ce===0?u5.ceil(Se):u5(Se),Se=yR.offset(Se,(pe.V-1)*7),pe.y=Se.getFullYear(),pe.m=Se.getMonth(),pe.d=Se.getDate()+(pe.w+6)%7)}else("W"in pe||"U"in pe)&&("w"in pe||(pe.w="u"in pe?pe.u%7:"W"in pe?1:0),Ce="Z"in pe?xR(Z_(pe.y,0,1)).getUTCDay():_R(Z_(pe.y,0,1)).getDay(),pe.m=0,pe.d="W"in pe?(pe.w+6)%7+pe.W*7-(Ce+5)%7:pe.w+pe.U*7-(Ce+6)%7);return"Z"in pe?(pe.H+=pe.Z/100|0,pe.M+=pe.Z%100,xR(pe)):_R(pe)}}function $(re,ge,$e,pe){for(var ye=0,Se=ge.length,Ce=$e.length,Be,Ge;ye=Ce)return-1;if(Be=ge.charCodeAt(ye++),Be===37){if(Be=ge.charAt(ye++),Ge=j[Be in Rce?ge.charAt(ye++):Be],!Ge||(pe=Ge(re,$e,pe))<0)return-1}else if(Be!=$e.charCodeAt(pe++))return-1}return pe}function A(re,ge,$e){var pe=c.exec(ge.slice($e));return pe?(re.p=d.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function M(re,ge,$e){var pe=v.exec(ge.slice($e));return pe?(re.w=_.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function P(re,ge,$e){var pe=f.exec(ge.slice($e));return pe?(re.w=p.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function te(re,ge,$e){var pe=w.exec(ge.slice($e));return pe?(re.m=x.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function Z(re,ge,$e){var pe=y.exec(ge.slice($e));return pe?(re.m=b.get(pe[0].toLowerCase()),$e+pe[0].length):-1}function O(re,ge,$e){return $(re,t,ge,$e)}function J(re,ge,$e){return $(re,n,ge,$e)}function D(re,ge,$e){return $(re,r,ge,$e)}function Y(re){return a[re.getDay()]}function F(re){return o[re.getDay()]}function H(re){return l[re.getMonth()]}function ee(re){return s[re.getMonth()]}function ce(re){return i[+(re.getHours()>=12)]}function U(re){return 1+~~(re.getMonth()/3)}function ae(re){return a[re.getUTCDay()]}function je(re){return o[re.getUTCDay()]}function me(re){return l[re.getUTCMonth()]}function ke(re){return s[re.getUTCMonth()]}function he(re){return i[+(re.getUTCHours()>=12)]}function ue(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var ge=T(re+="",S);return ge.toString=function(){return re},ge},parse:function(re){var ge=E(re+="",!1);return ge.toString=function(){return re},ge},utcFormat:function(re){var ge=T(re+="",C);return ge.toString=function(){return re},ge},utcParse:function(re){var ge=E(re+="",!0);return ge.toString=function(){return re},ge}}}var Rce={"-":"",_:" ",0:"0"},lo=/^\s*\d+/,Ilt=/^%/,Elt=/[\\^$*+?|[\]().{}]/g;function On(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o[t.toLowerCase(),n]))}function $lt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Mlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Llt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Rlt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Olt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Oce(e,t,n){var r=lo.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Pce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Plt(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function zlt(e,t,n){var r=lo.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Dlt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function zce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Alt(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Dce(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Flt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Blt(e,t,n){var r=lo.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Ult(e,t,n){var r=lo.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Wlt(e,t,n){var r=lo.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Vlt(e,t,n){var r=Ilt.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Hlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Zlt(e,t,n){var r=lo.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Ace(e,t){return On(e.getDate(),t,2)}function qlt(e,t){return On(e.getHours(),t,2)}function Glt(e,t){return On(e.getHours()%12||12,t,2)}function Ylt(e,t){return On(1+yR.count(Jp(e),e),t,3)}function Fce(e,t){return On(e.getMilliseconds(),t,3)}function Klt(e,t){return Fce(e,t)+"000"}function Xlt(e,t){return On(e.getMonth()+1,t,2)}function Jlt(e,t){return On(e.getMinutes(),t,2)}function Qlt(e,t){return On(e.getSeconds(),t,2)}function eut(e){var t=e.getDay();return t===0?7:t}function tut(e,t){return On(Mce.count(Jp(e)-1,e),t,2)}function Bce(e){var t=e.getDay();return t>=4||t===0?v1(e):v1.ceil(e)}function nut(e,t){return e=Bce(e),On(v1.count(Jp(e),e)+(Jp(e).getDay()===4),t,2)}function rut(e){return e.getDay()}function iut(e,t){return On(u5.count(Jp(e)-1,e),t,2)}function out(e,t){return On(e.getFullYear()%100,t,2)}function aut(e,t){return e=Bce(e),On(e.getFullYear()%100,t,2)}function sut(e,t){return On(e.getFullYear()%1e4,t,4)}function lut(e,t){var n=e.getDay();return e=n>=4||n===0?v1(e):v1.ceil(e),On(e.getFullYear()%1e4,t,4)}function uut(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+On(t/60|0,"0",2)+On(t%60,"0",2)}function Uce(e,t){return On(e.getUTCDate(),t,2)}function cut(e,t){return On(e.getUTCHours(),t,2)}function dut(e,t){return On(e.getUTCHours()%12||12,t,2)}function fut(e,t){return On(1+bR.count(em(e),e),t,3)}function Wce(e,t){return On(e.getUTCMilliseconds(),t,3)}function hut(e,t){return Wce(e,t)+"000"}function put(e,t){return On(e.getUTCMonth()+1,t,2)}function mut(e,t){return On(e.getUTCMinutes(),t,2)}function gut(e,t){return On(e.getUTCSeconds(),t,2)}function vut(e){var t=e.getUTCDay();return t===0?7:t}function yut(e,t){return On(Lce.count(em(e)-1,e),t,2)}function Vce(e){var t=e.getUTCDay();return t>=4||t===0?y1(e):y1.ceil(e)}function but(e,t){return e=Vce(e),On(y1.count(em(e),e)+(em(e).getUTCDay()===4),t,2)}function _ut(e){return e.getUTCDay()}function xut(e,t){return On(c5.count(em(e)-1,e),t,2)}function wut(e,t){return On(e.getUTCFullYear()%100,t,2)}function kut(e,t){return e=Vce(e),On(e.getUTCFullYear()%100,t,2)}function Sut(e,t){return On(e.getUTCFullYear()%1e4,t,4)}function Cut(e,t){var n=e.getUTCDay();return e=n>=4||n===0?y1(e):y1.ceil(e),On(e.getUTCFullYear()%1e4,t,4)}function jut(){return"+0000"}function Hce(){return"%"}function Zce(e){return+e}function qce(e){return Math.floor(+e/1e3)}var b1,Gce;Tut({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Tut(e){return b1=Tlt(e),Gce=b1.format,b1.parse,b1.utcFormat,b1.utcParse,b1}function en(e){for(var t=e.length/6|0,n=new Array(t),r=0;rGst(e[e.length-1]);var tm=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(en);const _5=xr(tm);var nm=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(en);const x5=xr(nm);var rm=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(en);const w5=xr(rm);var im=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(en);const k5=xr(im);var om=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(en);const S5=xr(om);var am=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(en);const C5=xr(am);var sm=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(en);const j5=xr(sm);var lm=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(en);const T5=xr(lm);var um=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(en);const I5=xr(um);var cm=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(en);const E5=xr(cm);var dm=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(en);const N5=xr(dm);var fm=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(en);const $5=xr(fm);var hm=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(en);const M5=xr(hm);var pm=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(en);const L5=xr(pm);var mm=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(en);const R5=xr(mm);var gm=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(en);const O5=xr(gm);var vm=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(en);const P5=xr(vm);var ym=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(en);const z5=xr(ym);var bm=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(en);const D5=xr(bm);var _m=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(en);const A5=xr(_m);var xm=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(en);const F5=xr(xm);var wm=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(en);const B5=xr(wm);var km=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(en);const U5=xr(km);var Sm=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(en);const W5=xr(Sm);var Cm=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(en);const V5=xr(Cm);var jm=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(en);const H5=xr(jm);var Tm=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(en);const Z5=xr(Tm);function q5(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-e*2710.57)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-e*67.37)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-e*2475.67)))))))+")"}const G5=cR(cc(300,.5,0),cc(-240,.5,1));var Y5=cR(cc(-100,.75,.35),cc(80,1.5,.8)),K5=cR(cc(260,.75,.35),cc(80,1.5,.8)),X5=cc();function J5(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return X5.h=360*e-100,X5.s=1.5-1.5*t,X5.l=.8-.9*t,X5+""}var Q5=qp(),Iut=Math.PI/3,Eut=Math.PI*2/3;function eS(e){var t;return e=(.5-e)*Math.PI,Q5.r=255*(t=Math.sin(e))*t,Q5.g=255*(t=Math.sin(e+Iut))*t,Q5.b=255*(t=Math.sin(e+Eut))*t,Q5+""}function tS(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-e*14825.05)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+e*707.56)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-e*6838.66)))))))+")"}function nS(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}const rS=nS(en("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var iS=nS(en("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),oS=nS(en("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),aS=nS(en("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),Nut=DL,$ut=sue,Mut=lue,Lut=Yue,Rut=J6,Out=AL,Put=200;function zut(e,t,n,r){var i=-1,o=$ut,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=Lut(t,Rut(n))),r?(o=Mut,a=!1):t.length>=Put&&(o=Out,a=!1,t=new Nut(t));e:for(;++i1?0:e<-1?K_:Math.acos(e)}function Xce(e){return e>=1?sS:e<=-1?-sS:Math.asin(e)}const kR=Math.PI,SR=2*kR,Em=1e-6,Zut=SR-Em;function Jce(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Jce;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;iEm)if(!(Math.abs(d*s-l*c)>Em)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let p=n-o,v=r-a,_=s*s+l*l,y=p*p+v*v,b=Math.sqrt(_),w=Math.sqrt(f),x=i*Math.tan((kR-Math.acos((_+f-y)/(2*b*w)))/2),S=x/w,C=x/b;Math.abs(S-1)>Em&&this._append`L${e+S*c},${t+S*d}`,this._append`A${i},${i},0,0,${+(d*p>c*v)},${this._x1=e+C*s},${this._y1=t+C*l}`}}arc(e,t,n,r,i,o){if(e=+e,t=+t,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,c=t+s,d=1^o,f=o?r-i:i-r;this._x1===null?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Em||Math.abs(this._y1-c)>Em)&&this._append`L${l},${c}`,n&&(f<0&&(f=f%SR+SR),f>Zut?this._append`A${n},${n},0,1,${d},${e-a},${t-s}A${n},${n},0,1,${d},${this._x1=l},${this._y1=c}`:f>Em&&this._append`A${n},${n},0,${+(f>=kR)},${d},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function Qce(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new Gut(t)}function Yut(e){return e.innerRadius}function Kut(e){return e.outerRadius}function Xut(e){return e.startAngle}function Jut(e){return e.endAngle}function Qut(e){return e&&e.padAngle}function ect(e,t,n,r,i,o,a,s){var l=n-e,c=r-t,d=a-i,f=s-o,p=f*l-d*c;if(!(p*pO*O+J*J&&($=M,A=P),{cx:$,cy:A,x01:-d,y01:-f,x11:$*(i/j-1),y11:A*(i/j-1)}}function tct(){var e=Yut,t=Kut,n=Si(0),r=null,i=Xut,o=Jut,a=Qut,s=null,l=Qce(c);function c(){var d,f,p=+e.apply(this,arguments),v=+t.apply(this,arguments),_=i.apply(this,arguments)-sS,y=o.apply(this,arguments)-sS,b=Kce(y-_),w=y>_;if(s||(s=d=l()),vZo))s.moveTo(0,0);else if(b>lS-Zo)s.moveTo(v*Im(_),v*fc(_)),s.arc(0,0,v,_,y,!w),p>Zo&&(s.moveTo(p*Im(y),p*fc(y)),s.arc(0,0,p,y,_,w));else{var x=_,S=y,C=_,j=y,T=b,E=b,$=a.apply(this,arguments)/2,A=$>Zo&&(r?+r.apply(this,arguments):_1(p*p+v*v)),M=wR(Kce(v-p)/2,+n.apply(this,arguments)),P=M,te=M,Z,O;if(A>Zo){var J=Xce(A/p*fc($)),D=Xce(A/v*fc($));(T-=J*2)>Zo?(J*=w?1:-1,C+=J,j-=J):(T=0,C=j=(_+y)/2),(E-=D*2)>Zo?(D*=w?1:-1,x+=D,S-=D):(E=0,x=S=(_+y)/2)}var Y=v*Im(x),F=v*fc(x),H=p*Im(j),ee=p*fc(j);if(M>Zo){var ce=v*Im(S),U=v*fc(S),ae=p*Im(C),je=p*fc(C),me;if(bZo?te>Zo?(Z=uS(ae,je,Y,F,v,te,w),O=uS(ce,U,H,ee,v,te,w),s.moveTo(Z.cx+Z.x01,Z.cy+Z.y01),teZo)||!(T>Zo)?s.lineTo(H,ee):P>Zo?(Z=uS(H,ee,ce,U,p,-P,w),O=uS(Y,F,ae,je,p,-P,w),s.lineTo(Z.cx+Z.x01,Z.cy+Z.y01),Pe?1:t>=e?0:NaN}function oct(e){return e}function act(){var e=oct,t=ict,n=null,r=Si(0),i=Si(lS),o=Si(0);function a(s){var l,c=(s=ede(s)).length,d,f,p=0,v=new Array(c),_=new Array(c),y=+r.apply(this,arguments),b=Math.min(lS,Math.max(-lS,i.apply(this,arguments)-y)),w,x=Math.min(Math.abs(b)/c,o.apply(this,arguments)),S=x*(b<0?-1:1),C;for(l=0;l0&&(p+=C);for(t!=null?v.sort(function(j,T){return t(_[j],_[T])}):n!=null&&v.sort(function(j,T){return n(s[j],s[T])}),l=0,f=p?(b-c*S)/p:0;l0?C*f:0)+S,_[d]={data:s[d],index:l,value:C,startAngle:y,endAngle:w,padAngle:x};return _}return a.value=function(s){return arguments.length?(e=typeof s=="function"?s:Si(+s),a):e},a.sortValues=function(s){return arguments.length?(t=s,n=null,a):t},a.sort=function(s){return arguments.length?(n=s,t=null,a):n},a.startAngle=function(s){return arguments.length?(r=typeof s=="function"?s:Si(+s),a):r},a.endAngle=function(s){return arguments.length?(i=typeof s=="function"?s:Si(+s),a):i},a.padAngle=function(s){return arguments.length?(o=typeof s=="function"?s:Si(+s),a):o},a}function fh(){}function cS(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function dS(e){this._context=e}dS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:cS(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function sct(e){return new dS(e)}function rde(e){this._context=e}rde.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lct(e){return new rde(e)}function ide(e){this._context=e}ide.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:cS(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function uct(e){return new ide(e)}function ode(e,t){this._basis=new dS(e),this._beta=t}ode.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r=e[0],i=t[0],o=e[n]-r,a=t[n]-i,s=-1,l;++s<=n;)l=s/n,this._basis.point(this._beta*e[s]+(1-this._beta)*(r+l*o),this._beta*t[s]+(1-this._beta)*(i+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const cct=function e(t){function n(r){return t===1?new dS(r):new ode(r,t)}return n.beta=function(r){return e(+r)},n}(.85);function fS(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function jR(e,t){this._context=e,this._k=(1-t)/6}jR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:fS(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const dct=function e(t){function n(r){return new jR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function TR(e,t){this._context=e,this._k=(1-t)/6}TR.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const fct=function e(t){function n(r){return new TR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function IR(e,t){this._context=e,this._k=(1-t)/6}IR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:fS(this,e,t);break}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const hct=function e(t){function n(r){return new IR(r,t)}return n.tension=function(r){return e(+r)},n}(0);function ER(e,t,n){var r=e._x1,i=e._y1,o=e._x2,a=e._y2;if(e._l01_a>Zo){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Zo){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,d=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*c+e._x1*e._l23_2a-t*e._l12_2a)/d,a=(a*c+e._y1*e._l23_2a-n*e._l12_2a)/d}e._context.bezierCurveTo(r,i,o,a,e._x2,e._y2)}function ade(e,t){this._context=e,this._alpha=t}ade.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const pct=function e(t){function n(r){return t?new ade(r,t):new jR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function sde(e,t){this._context=e,this._alpha=t}sde.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const mct=function e(t){function n(r){return t?new sde(r,t):new TR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function lde(e,t){this._context=e,this._alpha=t}lde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ER(this,e,t);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const gct=function e(t){function n(r){return t?new lde(r,t):new IR(r,0)}return n.alpha=function(r){return e(+r)},n}(.5);function ude(e){this._context=e}ude.prototype={areaStart:fh,areaEnd:fh,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function vct(e){return new ude(e)}function cde(e){return e<0?-1:1}function dde(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),a=(n-e._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(cde(o)+cde(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function fde(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function NR(e,t,n){var r=e._x0,i=e._y0,o=e._x1,a=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,i+s*t,o-s,a-s*n,o,a)}function hS(e){this._context=e}hS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:NR(this,this._t0,fde(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,NR(this,fde(this,n=dde(this,e,t)),n);break;default:NR(this,this._t0,n=dde(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function hde(e){this._context=new pde(e)}(hde.prototype=Object.create(hS.prototype)).point=function(e,t){hS.prototype.point.call(this,t,e)};function pde(e){this._context=e}pde.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,o){this._context.bezierCurveTo(t,e,r,n,o,i)}};function mde(e){return new hS(e)}function gde(e){return new hde(e)}function vde(e){this._context=e}vde.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=yde(e),i=yde(t),o=0,a=1;a=0;--t)i[t]=(a[t]-i[t+1])/o[t];for(o[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function bct(e){return new pS(e,.5)}function _ct(e){return new pS(e,0)}function xct(e){return new pS(e,1)}var wct=ece,kct=nce,Sct=t5;function Cct(e,t,n){for(var r=-1,i=t.length,o={};++r0&&n(s)?t>1?xde(s,t-1,n,r,i):Kct(i,s):r||(i[i.length]=s)}return i}var Jct=xde,Qct=Jct;function edt(e){var t=e==null?0:e.length;return t?Qct(e,1):[]}var tdt=edt,ndt=tdt,rdt=Vue,idt=Zue;function odt(e){return idt(rdt(e,void 0,ndt),e+"")}var adt=odt,sdt=Vct,ldt=adt,udt=ldt(function(e,t){return e==null?{}:sdt(e,t)}),cdt=udt;const ddt=to(cdt);function fdt(e,t){for(var n=-1,r=e==null?0:e.length;++ns))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var f=-1,p=!0,v=n&ydt?new pdt:void 0;for(o.set(e,t),o.set(t,e);++f=0||(i[n]=e[n]);return i}var Qft=["axis.ticks.text","axis.legend.text","legends.title.text","legends.text","legends.ticks.text","legends.title.text","labels.text","dots.text","markers.text","annotations.text"],eht=function(e,t){return mu({},t,e)},tht=function(e,t){var n=$at({},e,t);return Qft.forEach(function(r){W_(n,r,eht(yl(n,r),n.text))}),n},Hde=m.createContext(),Zde=function(e){var t=e.children,n=e.animate,r=n===void 0||n,i=e.config,o=i===void 0?"default":i,a=m.useMemo(function(){var s=tlt(o)?w$[o]:o;return{animate:r,config:s}},[r,o]);return u.jsx(Hde.Provider,{value:a,children:t})},vS={animate:_e.bool,motionConfig:_e.oneOfType([_e.oneOf(Object.keys(w$)),_e.shape({mass:_e.number,tension:_e.number,friction:_e.number,clamp:_e.bool,precision:_e.number,velocity:_e.number,duration:_e.number,easing:_e.func})])};Zde.propTypes={children:_e.node.isRequired,animate:vS.animate,config:vS.motionConfig};var w1=function(){return m.useContext(Hde)},nht={nivo:["#d76445","#f47560","#e8c1a0","#97e3d5","#61cdbb","#00b0a7"],BrBG:wt(tm),PRGn:wt(nm),PiYG:wt(rm),PuOr:wt(im),RdBu:wt(om),RdGy:wt(am),RdYlBu:wt(sm),RdYlGn:wt(lm),spectral:wt(um),blues:wt(wm),greens:wt(km),greys:wt(Sm),oranges:wt(Tm),purples:wt(Cm),reds:wt(jm),BuGn:wt(cm),BuPu:wt(dm),GnBu:wt(fm),OrRd:wt(hm),PuBuGn:wt(pm),PuBu:wt(mm),PuRd:wt(gm),RdPu:wt(vm),YlGnBu:wt(ym),YlGn:wt(bm),YlOrBr:wt(_m),YlOrRd:wt(xm)},rht=Object.keys(nht);wt(tm),wt(nm),wt(rm),wt(im),wt(om),wt(am),wt(sm),wt(lm),wt(um),wt(wm),wt(km),wt(Sm),wt(Tm),wt(Cm),wt(jm),wt(cm),wt(dm),wt(fm),wt(hm),wt(pm),wt(mm),wt(gm),wt(vm),wt(ym),wt(bm),wt(_m),wt(xm),_e.oneOfType([_e.oneOf(rht),_e.func,_e.arrayOf(_e.string)]);var iht={basis:sct,basisClosed:lct,basisOpen:uct,bundle:cct,cardinal:dct,cardinalClosed:fct,cardinalOpen:hct,catmullRom:pct,catmullRomClosed:mct,catmullRomOpen:gct,linear:nde,linearClosed:vct,monotoneX:mde,monotoneY:gde,natural:yct,step:bct,stepAfter:xct,stepBefore:_ct},UR=Object.keys(iht);UR.filter(function(e){return e.endsWith("Closed")}),Yce(UR,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),Yce(UR,"bundle","basisClosed","basisOpen","cardinalClosed","cardinalOpen","catmullRomClosed","catmullRomOpen","linearClosed"),_e.shape({top:_e.number,right:_e.number,bottom:_e.number,left:_e.number}).isRequired;var oht=["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"];_e.oneOf(oht),dc(Y_);var aht={top:0,right:0,bottom:0,left:0},qde=function(e,t,n){return n===void 0&&(n={}),m.useMemo(function(){var r=mu({},aht,n);return{margin:r,innerWidth:e-r.left-r.right,innerHeight:t-r.top-r.bottom,outerWidth:e,outerHeight:t}},[e,t,n.top,n.right,n.bottom,n.left])},sht=function(){var e=m.useRef(null),t=m.useState({left:0,top:0,width:0,height:0}),n=t[0],r=t[1],i=m.useState(function(){return typeof ResizeObserver>"u"?null:new ResizeObserver(function(o){var a=o[0];return r(a.contentRect)})})[0];return m.useEffect(function(){return e.current&&i!==null&&i.observe(e.current),function(){i!==null&&i.disconnect()}},[]),[e,n]},lht=function(e){return m.useMemo(function(){return tht(Jft,e)},[e])},uht=function(e){return typeof e=="function"?e:typeof e=="string"?e.indexOf("time:")===0?Gce(e.slice("5")):Nce(e):function(t){return""+t}},WR=function(e){return m.useMemo(function(){return uht(e)},[e])},Gde=m.createContext(),cht={},Yde=function(e){var t=e.theme,n=t===void 0?cht:t,r=e.children,i=lht(n);return u.jsx(Gde.Provider,{value:i,children:r})};Yde.propTypes={children:_e.node.isRequired,theme:_e.object};var Ms=function(){return m.useContext(Gde)},dht=["outlineWidth","outlineColor","outlineOpacity"],Kde=function(e){return e.outlineWidth,e.outlineColor,e.outlineOpacity,BR(e,dht)},Xde=function(e){var t=e.children,n=e.condition,r=e.wrapper;return n?m.cloneElement(r,{},t):t};Xde.propTypes={children:_e.node.isRequired,condition:_e.bool.isRequired,wrapper:_e.element.isRequired};var fht={position:"relative"},VR=function(e){var t=e.children,n=e.theme,r=e.renderWrapper,i=r===void 0||r,o=e.isInteractive,a=o===void 0||o,s=e.animate,l=e.motionConfig,c=m.useRef(null);return u.jsx(Yde,{theme:n,children:u.jsx(Zde,{animate:s,config:l,children:u.jsx(Ont,{container:c,children:u.jsxs(Xde,{condition:i,wrapper:u.jsx("div",{style:fht,ref:c}),children:[t,a&&u.jsx(Rnt,{})]})})})})};VR.propTypes={children:_e.element.isRequired,isInteractive:_e.bool,renderWrapper:_e.bool,theme:_e.object,animate:_e.bool,motionConfig:_e.oneOfType([_e.string,vS.motionConfig])},_e.func.isRequired,_e.bool,_e.bool,_e.object.isRequired,_e.bool.isRequired,_e.oneOfType([_e.string,vS.motionConfig]),_e.func.isRequired;var hht=["id","colors"],Jde=function(e){var t=e.id,n=e.colors,r=BR(e,hht);return u.jsx("linearGradient",mu({id:t,x1:0,x2:0,y1:0,y2:1},r,{children:n.map(function(i){var o=i.offset,a=i.color,s=i.opacity;return u.jsx("stop",{offset:o+"%",stopColor:a,stopOpacity:s!==void 0?s:1},o)})}))};Jde.propTypes={id:_e.string.isRequired,colors:_e.arrayOf(_e.shape({offset:_e.number.isRequired,color:_e.string.isRequired,opacity:_e.number})).isRequired,gradientTransform:_e.string};var Qde={linearGradient:Jde},X_={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},HR=m.memo(function(e){var t=e.id,n=e.background,r=n===void 0?X_.background:n,i=e.color,o=i===void 0?X_.color:i,a=e.size,s=a===void 0?X_.size:a,l=e.padding,c=l===void 0?X_.padding:l,d=e.stagger,f=d===void 0?X_.stagger:d,p=s+c,v=s/2,_=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:r}),u.jsx("circle",{cx:_+v,cy:_+v,r:v,fill:o}),f&&u.jsx("circle",{cx:1.5*c+s+v,cy:1.5*c+s+v,r:v,fill:o})]})});HR.displayName="PatternDots",HR.propTypes={id:_e.string.isRequired,color:_e.string.isRequired,background:_e.string.isRequired,size:_e.number.isRequired,padding:_e.number.isRequired,stagger:_e.bool.isRequired};var Td=function(e){return e*Math.PI/180},ZR=function(e){return 180*e/Math.PI},pht=function(e){return e.startAngle+(e.endAngle-e.startAngle)/2},k1=function(e,t){return{x:Math.cos(e)*t,y:Math.sin(e)*t}},J_={spacing:5,rotation:0,background:"#000000",color:"#ffffff",lineWidth:2},qR=m.memo(function(e){var t=e.id,n=e.spacing,r=n===void 0?J_.spacing:n,i=e.rotation,o=i===void 0?J_.rotation:i,a=e.background,s=a===void 0?J_.background:a,l=e.color,c=l===void 0?J_.color:l,d=e.lineWidth,f=d===void 0?J_.lineWidth:d,p=Math.round(o)%360,v=Math.abs(r);p>180?p-=360:p>90?p-=180:p<-180?p+=360:p<-90&&(p+=180);var _,y=v,b=v;return p===0?_=` - M 0 0 L `+y+` 0 - M 0 `+b+" L "+y+" "+b+` - `:p===90?_=` - M 0 0 L 0 `+b+` - M `+y+" 0 L "+y+" "+b+` - `:(y=Math.abs(v/Math.sin(Td(p))),b=v/Math.sin(Td(90-p)),_=p>0?` - M 0 `+-b+" L "+2*y+" "+b+` - M `+-y+" "+-b+" L "+y+" "+b+` - M `+-y+" 0 L "+y+" "+2*b+` - `:` - M `+-y+" "+b+" L "+y+" "+-b+` - M `+-y+" "+2*b+" L "+2*y+" "+-b+` - M 0 `+2*b+" L "+2*y+` 0 - `),u.jsxs("pattern",{id:t,width:y,height:b,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:y,height:b,fill:s,stroke:"rgba(255, 0, 0, 0.1)",strokeWidth:0}),u.jsx("path",{d:_,strokeWidth:f,stroke:c,strokeLinecap:"square"})]})});qR.displayName="PatternLines",qR.propTypes={id:_e.string.isRequired,spacing:_e.number.isRequired,rotation:_e.number.isRequired,background:_e.string.isRequired,color:_e.string.isRequired,lineWidth:_e.number.isRequired};var Q_={color:"#000000",background:"#ffffff",size:4,padding:4,stagger:!1},GR=m.memo(function(e){var t=e.id,n=e.color,r=n===void 0?Q_.color:n,i=e.background,o=i===void 0?Q_.background:i,a=e.size,s=a===void 0?Q_.size:a,l=e.padding,c=l===void 0?Q_.padding:l,d=e.stagger,f=d===void 0?Q_.stagger:d,p=s+c,v=c/2;return f===!0&&(p=2*s+2*c),u.jsxs("pattern",{id:t,width:p,height:p,patternUnits:"userSpaceOnUse",children:[u.jsx("rect",{width:p,height:p,fill:o}),u.jsx("rect",{x:v,y:v,width:s,height:s,fill:r}),f&&u.jsx("rect",{x:1.5*c+s,y:1.5*c+s,width:s,height:s,fill:r})]})});GR.displayName="PatternSquares",GR.propTypes={id:_e.string.isRequired,color:_e.string.isRequired,background:_e.string.isRequired,size:_e.number.isRequired,padding:_e.number.isRequired,stagger:_e.bool.isRequired};var efe={patternDots:HR,patternLines:qR,patternSquares:GR},mht=["type"],YR=mu({},Qde,efe),tfe=function(e){var t=e.defs;return!t||t.length<1?null:u.jsx("defs",{"aria-hidden":!0,children:t.map(function(n){var r=n.type,i=BR(n,mht);return YR[r]?m.createElement(YR[r],mu({key:i.id},i)):null})})};tfe.propTypes={defs:_e.arrayOf(_e.shape({type:_e.oneOf(Object.keys(YR)).isRequired,id:_e.string.isRequired}))};var ght=m.memo(tfe),KR=function(e){var t=e.width,n=e.height,r=e.margin,i=e.defs,o=e.children,a=e.role,s=e.ariaLabel,l=e.ariaLabelledBy,c=e.ariaDescribedBy,d=e.isFocusable,f=Ms();return u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,role:a,"aria-label":s,"aria-labelledby":l,"aria-describedby":c,focusable:d,tabIndex:d?0:void 0,children:[u.jsx(ght,{defs:i}),u.jsx("rect",{width:t,height:n,fill:f.background}),u.jsx("g",{transform:"translate("+r.left+","+r.top+")",children:o})]})};KR.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,margin:_e.shape({top:_e.number.isRequired,left:_e.number.isRequired}).isRequired,defs:_e.array,children:_e.oneOfType([_e.arrayOf(_e.node),_e.node]).isRequired,role:_e.string,isFocusable:_e.bool,ariaLabel:_e.string,ariaLabelledBy:_e.string,ariaDescribedBy:_e.string};var nfe=function(e){var t=e.size,n=e.color,r=e.borderWidth,i=e.borderColor;return u.jsx("circle",{r:t/2,fill:n,stroke:i,strokeWidth:r,style:{pointerEvents:"none"}})};nfe.propTypes={size:_e.number.isRequired,color:_e.string.isRequired,borderWidth:_e.number.isRequired,borderColor:_e.string.isRequired};var vht=m.memo(nfe),rfe=function(e){var t=e.x,n=e.y,r=e.symbol,i=r===void 0?vht:r,o=e.size,a=e.datum,s=e.color,l=e.borderWidth,c=e.borderColor,d=e.label,f=e.labelTextAnchor,p=f===void 0?"middle":f,v=e.labelYOffset,_=v===void 0?-12:v,y=Ms(),b=w1(),w=b.animate,x=b.config,S=e_({transform:"translate("+t+", "+n+")",config:x,immediate:!w});return u.jsxs(iu.g,{transform:S.transform,style:{pointerEvents:"none"},children:[m.createElement(i,{size:o,color:s,datum:a,borderWidth:l,borderColor:c}),d&&u.jsx("text",{textAnchor:p,y:_,style:Kde(y.dots.text),children:d})]})};rfe.propTypes={x:_e.number.isRequired,y:_e.number.isRequired,datum:_e.object.isRequired,size:_e.number.isRequired,color:_e.string.isRequired,borderWidth:_e.number.isRequired,borderColor:_e.string.isRequired,symbol:_e.oneOfType([_e.func,_e.object]),label:_e.oneOfType([_e.string,_e.number]),labelTextAnchor:_e.oneOf(["start","middle","end"]),labelYOffset:_e.number},m.memo(rfe);var ife=function(e){var t=e.width,n=e.height,r=e.axis,i=e.scale,o=e.value,a=e.lineStyle,s=e.textStyle,l=e.legend,c=e.legendNode,d=e.legendPosition,f=d===void 0?"top-right":d,p=e.legendOffsetX,v=p===void 0?14:p,_=e.legendOffsetY,y=_===void 0?14:_,b=e.legendOrientation,w=b===void 0?"horizontal":b,x=Ms(),S=0,C=0,j=0,T=0;if(r==="y"?(j=i(o),C=t):(S=i(o),T=n),l&&!c){var E=function($){var A=$.axis,M=$.width,P=$.height,te=$.position,Z=$.offsetX,O=$.offsetY,J=$.orientation,D=0,Y=0,F=J==="vertical"?-90:0,H="start";if(A==="x")switch(te){case"top-left":D=-Z,Y=O,H="end";break;case"top":Y=-O,H=J==="horizontal"?"middle":"start";break;case"top-right":D=Z,Y=O,H=J==="horizontal"?"start":"end";break;case"right":D=Z,Y=P/2,H=J==="horizontal"?"start":"middle";break;case"bottom-right":D=Z,Y=P-O,H="start";break;case"bottom":Y=P+O,H=J==="horizontal"?"middle":"end";break;case"bottom-left":Y=P-O,D=-Z,H=J==="horizontal"?"end":"start";break;case"left":D=-Z,Y=P/2,H=J==="horizontal"?"end":"middle"}else switch(te){case"top-left":D=Z,Y=-O,H="start";break;case"top":D=M/2,Y=-O,H=J==="horizontal"?"middle":"start";break;case"top-right":D=M-Z,Y=-O,H=J==="horizontal"?"end":"start";break;case"right":D=M+Z,H=J==="horizontal"?"start":"middle";break;case"bottom-right":D=M-Z,Y=O,H="end";break;case"bottom":D=M/2,Y=O,H=J==="horizontal"?"middle":"end";break;case"bottom-left":D=Z,Y=O,H=J==="horizontal"?"start":"end";break;case"left":D=-Z,H=J==="horizontal"?"end":"middle"}return{x:D,y:Y,rotation:F,textAnchor:H}}({axis:r,width:t,height:n,position:f,offsetX:v,offsetY:y,orientation:w});c=u.jsx("text",{transform:"translate("+E.x+", "+E.y+") rotate("+E.rotation+")",textAnchor:E.textAnchor,dominantBaseline:"central",style:s,children:l})}return u.jsxs("g",{transform:"translate("+S+", "+j+")",children:[u.jsx("line",{x1:0,x2:C,y1:0,y2:T,stroke:x.markers.lineColor,strokeWidth:x.markers.lineStrokeWidth,style:a}),c]})};ife.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,axis:_e.oneOf(["x","y"]).isRequired,scale:_e.func.isRequired,value:_e.oneOfType([_e.number,_e.string,_e.instanceOf(Date)]).isRequired,lineStyle:_e.object,textStyle:_e.object,legend:_e.string,legendPosition:_e.oneOf(["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"]),legendOffsetX:_e.number.isRequired,legendOffsetY:_e.number.isRequired,legendOrientation:_e.oneOf(["horizontal","vertical"]).isRequired};var yht=m.memo(ife),ofe=function(e){var t=e.markers,n=e.width,r=e.height,i=e.xScale,o=e.yScale;return t&&t.length!==0?t.map(function(a,s){return u.jsx(yht,mu({},a,{width:n,height:r,scale:a.axis==="y"?o:i}),s)}):null};ofe.propTypes={width:_e.number.isRequired,height:_e.number.isRequired,xScale:_e.func.isRequired,yScale:_e.func.isRequired,markers:_e.arrayOf(_e.shape({axis:_e.oneOf(["x","y"]).isRequired,value:_e.oneOfType([_e.number,_e.string,_e.instanceOf(Date)]).isRequired,lineStyle:_e.object,textStyle:_e.object}))},m.memo(ofe);var bht=function(e){return nue(e)?e:function(t){return yl(t,e)}},ex=function(e){return m.useMemo(function(){return bht(e)},[e])},_ht=Object.keys(Qde),xht=Object.keys(efe),wht=function(e,t,n){if(e==="*")return!0;if(nue(e))return e(t);if(F_(e)){var r=n?yl(t,n):t;return Xft(ddt(r,Object.keys(e)),e)}return!1},kht=function(e,t,n,r){var i={},o=i.dataKey,a=i.colorKey,s=a===void 0?"color":a,l=i.targetKey,c=l===void 0?"fill":l,d=[],f={};return e.length&&t.length&&(d=[].concat(e),t.forEach(function(p){for(var v=function(){var y=n[_],b=y.id,w=y.match;if(wht(w,p,o)){var x=e.find(function(M){return M.id===b});if(x){if(xht.includes(x.type))if(x.background==="inherit"||x.color==="inherit"){var S=yl(p,s),C=x.background,j=x.color,T=b;x.background==="inherit"&&(T=T+".bg."+S,C=S),x.color==="inherit"&&(T=T+".fg."+S,j=S),W_(p,c,"url(#"+T+")"),f[T]||(d.push(mu({},x,{id:T,background:C,color:j})),f[T]=1)}else W_(p,c,"url(#"+b+")");else if(_ht.includes(x.type))if(x.colors.map(function(M){return M.color}).includes("inherit")){var E=yl(p,s),$=b,A=mu({},x,{colors:x.colors.map(function(M,P){return M.color!=="inherit"?M:($=$+"."+P+"."+E,mu({},M,{color:M.color==="inherit"?E:M.color}))})});A.id=$,W_(p,c,"url(#"+$+")"),f[$]||(d.push(A),f[$]=1)}else W_(p,c,"url(#"+b+")")}return"break"}},_=0;_u.jsx(WL,{id:e.label,enableChip:!0,color:e.color}),XR={container:{display:"flex",alignItems:"center"},sourceChip:{marginRight:7},targetChip:{marginLeft:7,marginRight:7}},Bht=({link:e})=>u.jsx(WL,{id:u.jsxs("span",{style:XR.container,children:[u.jsx(UL,{color:e.source.color,style:XR.sourceChip}),u.jsx("strong",{children:e.source.label})," > ",u.jsx("strong",{children:e.target.label}),u.jsx(UL,{color:e.target.color,style:XR.targetChip}),u.jsx("strong",{children:e.formattedValue})]})});function Uht(e){return e.target.depth}function Wht(e){return e.depth}function Vht(e,t){return t-1-e.height}function lfe(e,t){return e.sourceLinks.length?e.depth:t-1}function Hht(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?wce(e.sourceLinks,Uht)-1:0}function bS(e){return function(){return e}}var We=(e=>(e.IncPackCranked="Crank:inc",e.IncPackRetained="Buffered:inc",e.IncResolvRetained="Unresolved:inc",e.IncQuic="QUIC",e.IncUdp="UDP",e.IncGossip="Gossip",e.IncBlockEngine="Jito",e.SlotStart="Received",e.SlotEnd="Packed",e.End="End",e.Networking="networking:tile",e.QUIC="QUIC:tile",e.Verification="verify:tile",e.Dedup="dedup:tile",e.Resolv="resolv:tile",e.Pack="pack:tile",e.Execle="execle:tile",e.NetOverrun="Too slow:net",e.QUICOverrun="Too slow:quic",e.QUICInvalid="Malformed:quic",e.QUICTooManyFrags="Out of buffers:quic",e.QUICAbandoned="Abandoned:quic",e.VerifyOverrun="Too slow:verify",e.VerifyParse="Unparseable",e.VerifyFailed="Bad signature",e.VerifyDuplicate="Duplicate:verify",e.DedupDeuplicate="Duplicate:dedup",e.ResolvFailed="Bad LUT",e.ResolvExpired="Expired:resolv",e.ResolvNoLedger="No ledger",e.ResolvRetained="Unresolved:resolv",e.PackInvalid="Unpackable",e.PackInvalidBundle="Bad Bundle",e.PackExpired="Expired:pack",e.PackAlreadyExecuted="AlreadyExecuted:pack",e.PackRetained="Buffered:pack",e.PackLeaderSlow="Buffer full",e.PackWaitFull="Storage full",e.BankInvalid="Unexecutable",e.BankNonceAlreadyAdvanced="NonceAlreadyAdvanced",e.BankNonceAdvanceFailed="NonceAdvanceFailed",e.BankNonceWrongBlockhash="NonceWrongBlockhash",e.BlockSuccess="Success",e.BlockFailure="Failure",e.Votes="Votes",e.NonVoteSuccess="Non-vote Success",e.NonVoteFailure="Non-vote Failure",e))(We||{});const Zht=["Received","Packed"],ufe=["networking:tile","QUIC:tile","verify:tile","dedup:tile","resolv:tile","pack:tile","execle:tile"],cfe=["Too slow:net","Too slow:quic","Malformed:quic","Out of buffers:quic","Abandoned:quic","Too slow:verify","Unparseable","Bad signature","Duplicate:verify","Duplicate:dedup","Bad LUT","Expired:resolv","No ledger","Unresolved:resolv","Unpackable","Bad Bundle","Expired:pack","AlreadyExecuted:pack","Buffered:pack","Buffer full","Storage full","Unexecutable","NonceAlreadyAdvanced","NonceAdvanceFailed","NonceWrongBlockhash"],dfe=["QUIC","UDP"],JR=["Buffered:inc","Buffered:pack","Unresolved:inc","Unresolved:resolv"],ffe=["Success","Non-vote Success"],hfe=["Failure","Non-vote Failure"],qht=[{id:"QUIC"},{id:"UDP"},{id:"Buffered:pack",labelPositionOverride:"right"},{id:"Unresolved:resolv",labelPositionOverride:"right"},{id:"Too slow:net",labelPositionOverride:"right"},{id:"Too slow:quic",labelPositionOverride:"right"},{id:"Malformed:quic",labelPositionOverride:"right"},{id:"Out of buffers:quic",labelPositionOverride:"right"},{id:"Abandoned:quic",labelPositionOverride:"right"},{id:"Too slow:verify",labelPositionOverride:"right"},{id:"Unparseable",labelPositionOverride:"right"},{id:"Bad signature",labelPositionOverride:"right"},{id:"Duplicate:verify",labelPositionOverride:"right"},{id:"Duplicate:dedup",labelPositionOverride:"right"},{id:"Bad LUT",labelPositionOverride:"right"},{id:"Expired:resolv",labelPositionOverride:"right"},{id:"No ledger",labelPositionOverride:"right"},{id:"Unpackable",labelPositionOverride:"right"},{id:"Bad Bundle",labelPositionOverride:"right"},{id:"Expired:pack",labelPositionOverride:"right"},{id:"AlreadyExecuted:pack",labelPositionOverride:"right"},{id:"Buffer full",labelPositionOverride:"right"},{id:"Storage full",labelPositionOverride:"right"},{id:"Unexecutable",labelPositionOverride:"right"},{id:"NonceAlreadyAdvanced",labelPositionOverride:"right"},{id:"NonceAdvanceFailed",labelPositionOverride:"right"},{id:"NonceWrongBlockhash",labelPositionOverride:"right"},{id:"Received",alignLabelBottom:!0,labelPositionOverride:"right"},{id:"QUIC:tile",alignLabelBottom:!0},{id:"verify:tile",alignLabelBottom:!0},{id:"dedup:tile",alignLabelBottom:!0},{id:"resolv:tile",alignLabelBottom:!0},{id:"Gossip"},{id:"Jito"},{id:"Unresolved:inc",labelPositionOverride:"left"},{id:"Crank:inc",labelPositionOverride:"left"},{id:"Buffered:inc",labelPositionOverride:"left"},{id:"pack:tile",alignLabelBottom:!0},{id:"execle:tile",alignLabelBottom:!0},{id:"End",hideLabel:!0},{id:"Packed",alignLabelBottom:!0,labelPositionOverride:"left"},{id:"Failure"},{id:"Success"},{id:"Votes"},{id:"Non-vote Failure"},{id:"Non-vote Success"}],Ght=ca(),Yht=1,pfe=-1e3,mfe=12,Kht=30,Xht=3e3,Jht=2;function gfe(e,t){return _S(e.source,t.source)||e.index-t.index}function vfe(e,t){return _S(e.target,t.target)||e.index-t.index}function _S(e,t){return e.y0-t.y0}function yfe(e){return e.value}function Qht(e){return e.index}function ept(e){return e.nodes}function tpt(e){return e.links}function bfe(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function _fe({nodes:e}){for(const t of e){let n=t.y0,r=n;for(const i of t.sourceLinks)i.y0=n+i.width/2,n+=i.width;for(const i of t.targetLinks)i.y1=r+i.width/2,r+=i.width}}function npt(){let e=0,t=0,n=1,r=1,i=24,o=8,a,s=Qht,l=lfe,c,d,f=ept,p=tpt,v=6;function _(){const D={nodes:f.apply(null,arguments),links:p.apply(null,arguments)};return y(D),b(D),w(D),x(D),j(D),_fe(D),J(D),D}_.update=function(D){return _fe(D),D},_.nodeId=function(D){return arguments.length?(s=typeof D=="function"?D:bS(D),_):s},_.nodeAlign=function(D){return arguments.length?(l=typeof D=="function"?D:bS(D),_):l},_.nodeSort=function(D){return arguments.length?(c=D,_):c},_.nodeWidth=function(D){return arguments.length?(i=+D,_):i},_.nodePadding=function(D){return arguments.length?(o=a=+D,_):o},_.nodes=function(D){return arguments.length?(f=typeof D=="function"?D:bS(D),_):f},_.links=function(D){return arguments.length?(p=typeof D=="function"?D:bS(D),_):p},_.linkSort=function(D){return arguments.length?(d=D,_):d},_.size=function(D){return arguments.length?(e=t=0,n=+D[0],r=+D[1],_):[n-e,r-t]},_.extent=function(D){return arguments.length?(e=+D[0][0],n=+D[1][0],t=+D[0][1],r=+D[1][1],_):[[e,t],[n,r]]},_.iterations=function(D){return arguments.length?(v=+D,_):v};function y({nodes:D,links:Y}){for(const[H,ee]of D.entries())ee.index=H,ee.sourceLinks=[],ee.targetLinks=[];const F=new Map(D.map((H,ee)=>[s(H,ee,D),H]));for(const[H,ee]of Y.entries()){ee.index=H;let{source:ce,target:U}=ee;typeof ce!="object"&&(ce=ee.source=bfe(F,ce)),typeof U!="object"&&(U=ee.target=bfe(F,U)),ce.sourceLinks.push(ee),U.targetLinks.push(ee)}if(d!=null)for(const{sourceLinks:H,targetLinks:ee}of D)H.sort(d),ee.sort(d)}function b({nodes:D}){for(const Y of D)if(Y.fixedValue===void 0){let F=-1/0;Y.sourceLinks.length&&(F=Math.max(dR(Y.sourceLinks,yfe))),Y.targetLinks.length&&(F=Math.max(dR(Y.targetLinks,yfe))),F===-1/0&&(F=0),Y.value=F}else Y.value=Y.fixedValue}function w({nodes:D}){const Y=D.length;let F=new Set(D),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.depth=ee;for(const{target:U}of ce.sourceLinks)H.add(U)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function x({nodes:D}){const Y=D.length;let F=new Set(D),H=new Set,ee=0;for(;F.size;){for(const ce of F){ce.height=ee;for(const{source:U}of ce.targetLinks)H.add(U)}if(++ee>Y)throw new Error("circular link");F=H,H=new Set}}function S({nodes:D}){const Y=xce(D,ae=>ae.depth)+1;let F=(n-e-i)/(Y-1);const H=F/Jht,ee=new Array(Y),ce=e+H,U=n-H;F=(U-ce-i)/(Y-1-2);for(const ae of D){let je=l.call(null,ae,Y);const me=Math.max(0,Math.min(Y-1,Math.floor(je)));ae.layer=me,me===1?ae.x0=e+H:me<1?ae.x0=e+me*H:me===Y-1?ae.x0=U+H:ae.x0=ce+(me-1)*F,ae.x1=ae.x0+Yht,ee[me]?ee[me].push(ae):ee[me]=[ae]}if(c)for(const ae of ee)ae.sort(c);return ee}function C(D){const Y=Ght.get(Cg)===Io.Pct,F=wce(D,H=>(r-t-(H.length-1)*a)/dR(H,ee=>Math.max(ee.value,Y?1:Xht)));for(let H=0;HF.length)-1)),C(Y);for(let F=0;F0))continue;let me=(ae/je-U.y0)*Y+mfe;U.y0+=me,U.y1+=me,U.id===We.SlotStart&&(U.y0=t+(r-t)/6,U.y1=U.y0+U.height),U.id===We.SlotEnd&&(U.y1=r-(r-t)/6,U.y0=U.y1-U.height),P(U)}c===void 0&&ce.sort(_S),$(ce,F)}}function E(D,Y,F){for(let H=D.length,ee=H-2;ee>=0;--ee){const ce=D[ee];for(const U of ce){let ae=0,je=0;for(const{target:ke,value:he}of U.sourceLinks){let ue=(he?Math.abs(he):1)*(ke.layer-U.layer);ae+=O(U,ke)*ue,je+=ue}if(!(je>0))continue;let me=(ae/je-U.y0)*Y-mfe;U.y0+=me,U.y1+=me,U.id===We.SlotStart&&(U.y0=t+(r-t)/6,U.y1=U.y0+U.height),U.id===We.SlotEnd&&(U.y1=r-(r-t)/6,U.y0=U.y1-U.height),P(U)}c===void 0&&ce.sort(_S),$(ce,F)}}function $(D,Y){const F=D.length>>1,H=D[F];M(D,H.y0-a,F-1,Y),A(D,H.y1+a,F+1,Y),M(D,r,D.length-1,Y),A(D,t,0,Y)}function A(D,Y,F,H){for(;F1e-6&&(ee.y0+=ce,ee.y1+=ce),Y=ee.y1+a}}function M(D,Y,F,H){for(;F>=0;--F){const ee=D[F],ce=(ee.y1-Y)*H;ce>1e-6&&(ee.y0-=ce,ee.y1-=ce),Y=ee.y0-a}}function P({sourceLinks:D,targetLinks:Y}){if(d===void 0){for(const{source:{sourceLinks:F}}of Y)F.sort(vfe);for(const{target:{targetLinks:F}}of D)F.sort(gfe)}}function te(D){if(d===void 0)for(const{sourceLinks:Y,targetLinks:F}of D)Y.sort(vfe),F.sort(gfe)}function Z(D,Y){let F=D.y0-(D.sourceLinks.length-1)*a/2;for(const{target:H,width:ee}of D.sourceLinks){if(H===Y)break;F+=ee+a}for(const{source:H,width:ee,target:{id:ce}}of Y.targetLinks){if(ce.includes("Dropped")&&(F-=Kht),H===D)break;F-=ee}return F}function O(D,Y){let F=Y.y0-(Y.targetLinks.length-1)*a/2;for(const{source:H,width:ee}of Y.targetLinks){if(H===D)break;F+=ee+a}for(const{target:H,width:ee}of D.sourceLinks){if(H===Y)break;F-=ee}return F}function J(D){const Y=D.nodes.reduce((F,H)=>Math.max(F,H.y1),0);D.nodes.forEach(F=>{Zht.includes(F.id)&&(F.y0=0,F.y1=Y,F.height=Y)})}return _}const rpt={center:Hht,justify:lfe,start:Wht,end:Vht},ipt=e=>rpt[e],Tn={layout:"horizontal",align:"center",sort:"auto",colors:{scheme:"nivo"},nodeOpacity:.75,nodeHoverOpacity:1,nodeHoverOthersOpacity:.15,nodeThickness:12,nodeInnerPadding:0,nodeBorderWidth:1,nodeBorderColor:{from:"color",modifiers:[["darker",.5]]},nodeBorderRadius:0,linkOpacity:.25,linkHoverOpacity:.6,linkHoverOthersOpacity:.15,linkContract:0,linkBlendMode:"multiply",enableLinkGradient:!1,enableLabels:!0,label:"id",labelPosition:"inside",labelPadding:9,labelOrientation:"horizontal",labelTextColor:{from:"color",modifiers:[["darker",.8]]},isInteractive:!1,nodeTooltip:Fht,linkTooltip:Bht,legends:[],layers:["links","nodes","labels"],role:"img",animate:!1,motionConfig:"gentle"};function opt(e,t){for(var n=-1,r=e==null?0:e.length;++ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wS(){return wS=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(QR[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(H0t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(QR[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},X0t=function(e,t){return m.useMemo(function(){return K0t(e,t)},[e,t])};const J0t=e=>e.id,Q0t=({data:e,formatValue:t,layout:n,alignFunction:r,sortFunction:i,linkSortMode:o,nodeThickness:a,nodeSpacing:s,nodeInnerPadding:l,width:c,height:d,getColor:f,getLabel:p})=>{const v=npt().nodeAlign(r).nodeSort(i).linkSort(o).nodeWidth(a).nodePadding(s).size(n==="horizontal"?[c,d]:[d,c]).nodeId(J0t),_=P0t(e);return v(_),_.nodes.forEach(y=>{if(y.color=f(y),y.label=p(y),y.formattedValue=t(y.value),n==="horizontal")y.x=y.x0+l,y.y=y.y0,y.width=Math.max(y.x1-y.x0-l*2,0),y.height=Math.max(y.y1-y.y0,0);else{y.x=y.y0,y.y=y.x0+l,y.width=Math.max(y.y1-y.y0,0),y.height=Math.max(y.x1-y.x0-l*2,0);const b=y.x0,w=y.x1;y.x0=y.y0,y.x1=y.y1,y.y0=b,y.y1=w}}),_.links.forEach(y=>{y.formattedValue=t(y.value),y.color=y.source.color,y.pos0=y.y0,y.pos1=y.y1,y.thickness=y.width,delete y.y0,delete y.y1,delete y.width}),_},egt=({data:e,valueFormat:t,layout:n,width:r,height:i,sort:o,align:a,colors:s,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,nodeBorderColor:f,label:p,labelTextColor:v})=>{const[_,y]=m.useState(null),[b,w]=m.useState(null),x=m.useMemo(()=>{if(o!=="auto")return o==="input"?null:o==="ascending"?(Z,O)=>Z.value-O.value:o==="descending"?(Z,O)=>O.value-Z.value:o},[o]),S=o==="input"?null:void 0,C=m.useMemo(()=>typeof a=="function"?a:ipt(a),[a]),j=X0t(s,"id"),T=Pfe(f),E=ex(p),$=Pfe(v),A=WR(t),{nodes:M,links:P}=m.useMemo(()=>Q0t({data:e,formatValue:A,layout:n,alignFunction:C,sortFunction:x,linkSortMode:S,nodeThickness:l,nodeSpacing:c,nodeInnerPadding:d,width:r,height:i,getColor:j,getLabel:E}),[e,A,n,C,x,S,l,c,d,r,i,j,E]),te=m.useMemo(()=>M.map(Z=>({id:Z.id,label:Z.label,color:Z.color})),[M]);return{nodes:M,links:P,legendData:te,getNodeBorderColor:T,currentNode:_,setCurrentNode:y,currentLink:b,setCurrentLink:w,getLabelTextColor:$}},tgt=({node:e,x:t,y:n,width:r,height:i,color:o,opacity:a,borderWidth:s,borderRadius:l,setCurrent:c,isInteractive:d,onClick:f,tooltip:p})=>u.jsx("rect",{x:t,y:n,width:r,height:i,fill:Ine}),ngt=({nodes:e,nodeOpacity:t,nodeHoverOpacity:n,nodeHoverOthersOpacity:r,borderWidth:i,getBorderColor:o,borderRadius:a,setCurrentNode:s,currentNode:l,currentLink:c,isCurrentNode:d,isInteractive:f,onClick:p,tooltip:v})=>u.jsx(u.Fragment,{children:e.map(_=>u.jsx(tgt,{node:_,x:_.x,y:_.y,width:_.width,height:_.height,color:_.color,opacity:1,borderWidth:i,borderColor:o(_),borderRadius:a,setCurrent:s,isInteractive:f,onClick:p,tooltip:v},_.id))}),rgt=()=>{const e=CR().curve(mde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2),i=Math.max(1,r/2),o=(t.target.x0-t.source.x1)*.12,a=[[t.source.x1,t.pos0-i],[t.source.x1+o,t.pos0-i],[t.target.x0-o,t.pos1-i],[t.target.x0,t.pos1-i],[t.target.x0,t.pos1+i],[t.target.x0-o,t.pos1+i],[t.source.x1+o,t.pos0+i],[t.source.x1,t.pos0+i],[t.source.x1,t.pos0-i]];return e(a)+"Z"}},igt=()=>{const e=CR().curve(gde);return(t,n)=>{const r=Math.max(1,t.thickness-n*2)/2,i=(t.target.y0-t.source.y1)*.12,o=[[t.pos0+r,t.source.y1],[t.pos0+r,t.source.y1+i],[t.pos1+r,t.target.y0-i],[t.pos1+r,t.target.y0],[t.pos1-r,t.target.y0],[t.pos1-r,t.target.y0-i],[t.pos0-r,t.source.y1+i],[t.pos0-r,t.source.y1],[t.pos0+r,t.source.y1]];return e(o)+"Z"}},ogt=({id:e,layout:t})=>{let n;return t==="horizontal"?n={x1:"0%",x2:"100%",y1:"0%",y2:"0%"}:n={x1:"0%",x2:"0%",y1:"0%",y2:"100%"},u.jsxs("linearGradient",{id:e,spreadMethod:"pad",...n,children:[u.jsx("stop",{stopColor:EN}),u.jsx("stop",{offset:"0.24",stopColor:Mne}),u.jsx("stop",{offset:"1",stopColor:EN})]})};function zfe(e,t){const[n,r]=m.useState(!1),i=m.useRef();return m.useEffect(()=>{[...dfe,We.SlotStart].includes(e)||(t?(i.current&&(clearTimeout(i.current),i.current=void 0),r(!0)):i.current||(i.current=setTimeout(()=>{r(!1),i.current=void 0},3e3)))},[e,r,t]),!!t||n}const agt=({link:e,layout:t,path:n,color:r,opacity:i,enableGradient:o,setCurrent:a,tooltip:s,isInteractive:l,onClick:c})=>{const d=`${e.source.id}.${e.target.id}.${e.index}`;let f;return dfe.includes(e.source.id)?f=Ene:JR.includes(e.source.id)||JR.includes(e.target.id)?f=$ne:ffe.includes(e.target.id)?f=Zf:hfe.includes(e.target.id)?f=fd:e.target.id===We.Votes?f=hd:cfe.includes(e.target.id)&&(f=Nne),zfe(e.target.id,e.value)?u.jsxs(u.Fragment,{children:[o&&u.jsx(ogt,{id:d,layout:t,startColor:e.startColor||e.source.color,endColor:e.endColor||e.target.color}),u.jsx("path",{fill:f??(o?`url("#${encodeURI(d)}")`:r),d:n})]}):null},sgt=({links:e,layout:t,linkOpacity:n,linkHoverOpacity:r,linkHoverOthersOpacity:i,linkContract:o,linkBlendMode:a,enableLinkGradient:s,setCurrentLink:l,currentLink:c,currentNode:d,isCurrentLink:f,isInteractive:p,onClick:v,tooltip:_})=>{const y=m.useMemo(()=>t==="horizontal"?rgt():igt(),[t]);return u.jsx(u.Fragment,{children:e.map(b=>u.jsx(agt,{link:b,layout:t,path:y(b,o),color:b.color,opacity:1,blendMode:a,enableGradient:s,setCurrent:l,isInteractive:p,onClick:v,tooltip:_},`${b.source.id}.${b.target.id}.${b.index}`))})};function lgt({children:e,node:t,value:n}){return zfe(t,n)?e:null}const ugt=ca();function cgt(){switch(ugt.get(Cg)){case Io.Pct:return"%";case Io.Rate:return"/s";case Io.Count:return""}}const dgt=({nodes:e,layout:t,width:n,height:r,labelPosition:i,labelPadding:o,labelOrientation:a})=>{const s=a==="vertical"?-90:0,l=e.filter(c=>!c.hideLabel).map(c=>{let d,f,p;return t==="horizontal"?(f=c.y+c.height/2-5,c.alignLabelBottom&&(f=c.y1),ufe.includes(c.id)?(d=c.x0+(c.x1-c.x0)/2,f=f+10,p="middle"):c.labelPositionOverride==="right"?(d=c.x1+o,p=a==="vertical"?"middle":"start"):c.labelPositionOverride==="left"?(d=c.x-o,p=a==="vertical"?"middle":"end"):c.x{var v,_;const[d,f]=fgt(c.label,c.value),p=(v=c.label.split(":")[0])==null?void 0:v.trim();return u.jsx(lgt,{node:c.label,value:c.value,children:u.jsxs("text",{dominantBaseline:"central",textAnchor:c.textAnchor,transform:`translate(${c.x}, ${c.y}) rotate(${s})`,className:"sankey-label",children:[hgt(p).map((y,b)=>u.jsx("tspan",{x:"0",dy:b===0?"0em":"1em",style:{fill:d},children:y},y)),u.jsxs("tspan",{x:"0",dy:"1em",style:{fill:f},children:[(_=c.value)==null?void 0:_.toLocaleString(),cgt()]})]},c.id)},c.id)})})};function fgt(e,t){return t?JR.includes(e)?[qf,qf]:ffe.includes(e)?[qf,Zf]:ufe.includes(e)?[wg,wg]:cfe.includes(e)||hfe.includes(e)?[qf,fd]:e===We.Votes?[qf,hd]:[qf,qf]:[wg,wg]}function hgt(e){if(e.length<17||!e.includes(" "))return[e];const t=Math.trunc(e.length/2),n=e.lastIndexOf(" ",t),r=e.indexOf(" ",t+1),i=t-n{const{margin:je,innerWidth:me,innerHeight:ke,outerWidth:he,outerHeight:ue}=qde(o,a,s),{nodes:re,links:ge,legendData:$e,getNodeBorderColor:pe,currentNode:ye,setCurrentNode:Se,currentLink:Ce,setCurrentLink:Be,getLabelTextColor:Ge}=egt({data:e,valueFormat:t,layout:n,width:me,height:ke,sort:r,align:i,colors:l,nodeThickness:c,nodeSpacing:d,nodeInnerPadding:f,nodeBorderColor:p,label:te,labelTextColor:Z});let xt=()=>!1,St=()=>!1;if(Ce&&(xt=({id:bt})=>bt===Ce.source.id||bt===Ce.target.id,St=({source:bt,target:Qe})=>bt.id===Ce.source.id&&Qe.id===Ce.target.id),ye){let bt=[ye.id];ge.filter(({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id).forEach(({source:Qe,target:Ke})=>{bt.push(Qe.id),bt.push(Ke.id)}),bt=_nt(bt),xt=({id:Qe})=>bt.includes(Qe),St=({source:Qe,target:Ke})=>Qe.id===ye.id||Ke.id===ye.id}const ut={links:ge,nodes:re,margin:je,width:o,height:a,outerWidth:he,outerHeight:ue},ct={links:null,nodes:null,labels:null,legends:null};return H.includes("links")&&(ct.links=u.jsx(sgt,{links:ge,layout:n,linkContract:j,linkOpacity:x,linkHoverOpacity:S,linkHoverOthersOpacity:C,linkBlendMode:T,enableLinkGradient:E,setCurrentLink:Be,currentNode:ye,currentLink:Ce,isCurrentLink:St,isInteractive:D,onClick:Y,tooltip:J},"links")),H.includes("nodes")&&(ct.nodes=u.jsx(ngt,{nodes:re,nodeOpacity:v,nodeHoverOpacity:_,nodeHoverOthersOpacity:y,borderWidth:b,borderRadius:w,getBorderColor:pe,setCurrentNode:Se,currentNode:ye,currentLink:Ce,isCurrentNode:xt,isInteractive:D,onClick:Y,tooltip:O},"nodes")),H.includes("labels")&&$&&(ct.labels=u.jsx(dgt,{nodes:re,layout:n,width:me,height:ke,labelPosition:A,labelPadding:M,labelOrientation:P,getLabelTextColor:Ge},"labels")),H.includes("legends")&&(ct.legends=u.jsx(m.Fragment,{children:F.map((bt,Qe)=>u.jsx(sfe,{...bt,containerWidth:me,containerHeight:ke,data:$e},`legend${Qe}`))},"legends")),u.jsx(KR,{width:he,height:ue,margin:je,role:ee,ariaLabel:ce,ariaLabelledBy:U,ariaDescribedBy:ae,children:H.map((bt,Qe)=>typeof bt=="function"?u.jsx(m.Fragment,{children:m.createElement(bt,ut)},Qe):(ct==null?void 0:ct[bt])??null)})},mgt=({isInteractive:e=Tn.isInteractive,animate:t=Tn.animate,motionConfig:n=Tn.motionConfig,theme:r,renderWrapper:i,...o})=>u.jsx(VR,{animate:t,isInteractive:e,motionConfig:n,renderWrapper:i,theme:r,children:u.jsx(pgt,{isInteractive:e,...o})});function Dfe({displayType:e,durationNanos:t,totalIncoming:n}){return function(r){switch(e){case Io.Count:return r;case Io.Pct:{let i=Math.max(0,Math.round(r/n*1e4)/100);return!i&&r&&(i=.01),i}case Io.Rate:{if(!t)return r;const i=t/1e9;return Math.trunc(r/i)}}}}function ggt(e){return e.net_overrun}function vgt(e){return e.quic_overrun+e.quic_frag_drop+e.quic_abandoned+e.tpu_quic_invalid+e.tpu_udp_invalid}function ygt(e){return e.verify_overrun+e.verify_parse+e.verify_failed+e.verify_duplicate}function bgt(e){return e.dedup_duplicate}function _gt(e,t){return e.resolv_expired+e.resolv_lut_failed+e.resolv_no_ledger+e.resolv_ancient+t}function xgt(e){return e.pack_invalid+e.pack_already_executed+e.pack_invalid_bundle+e.pack_expired+e.pack_leader_slow+e.pack_retained+e.pack_wait_full}function Afe(e,t){const n=Math.min(e.in.resolv_retained,e.out.resolv_retained),r=e.in.resolv_retained-n,i=e.out.resolv_retained-n,o=e.in.quic+e.in.udp-ggt(e.out),a=o-vgt(e.out),s=e.in.block_engine+e.in.gossip+a-ygt(e.out),l=s-bgt(e.out),c=r+l-_gt(e.out,i),d=e.in.pack_retained+e.in.pack_cranked+c-xgt(e.out),f=d-e.out.bank_invalid-e.out.bank_nonce_already_advanced-e.out.bank_nonce_advance_failed-e.out.bank_nonce_wrong_blockhash;return[{source:We.IncQuic,target:We.SlotStart,value:t(e.in.quic)},{source:We.IncUdp,target:We.SlotStart,value:t(e.in.udp)},{source:We.SlotStart,target:We.NetOverrun,value:t(e.out.net_overrun)},{source:We.SlotStart,target:We.QUIC,value:t(o)},{source:We.QUIC,target:We.QUICOverrun,value:t(e.out.quic_overrun)},{source:We.QUIC,target:We.QUICInvalid,value:t(e.out.tpu_quic_invalid+e.out.tpu_udp_invalid)},{source:We.QUIC,target:We.QUICTooManyFrags,value:t(e.out.quic_frag_drop)},{source:We.QUIC,target:We.QUICAbandoned,value:t(e.out.quic_abandoned)},{source:We.QUIC,target:We.Verification,value:t(a)},{source:We.IncGossip,target:We.Verification,value:t(e.in.gossip)},{source:We.IncBlockEngine,target:We.Verification,value:t(e.in.block_engine)},{source:We.Verification,target:We.VerifyOverrun,value:t(e.out.verify_overrun)},{source:We.Verification,target:We.VerifyParse,value:t(e.out.verify_parse)},{source:We.Verification,target:We.VerifyFailed,value:t(e.out.verify_failed)},{source:We.Verification,target:We.VerifyDuplicate,value:t(e.out.verify_duplicate)},{source:We.Verification,target:We.Dedup,value:t(s)},{source:We.Dedup,target:We.DedupDeuplicate,value:t(e.out.dedup_duplicate)},{source:We.Dedup,target:We.Resolv,value:t(l)},{source:We.IncResolvRetained,target:We.Resolv,value:t(r)},{source:We.Resolv,target:We.ResolvRetained,value:t(i)},{source:We.Resolv,target:We.ResolvFailed,value:t(e.out.resolv_lut_failed)},{source:We.Resolv,target:We.ResolvExpired,value:t(e.out.resolv_expired+e.out.resolv_ancient)},{source:We.Resolv,target:We.ResolvNoLedger,value:t(e.out.resolv_no_ledger)},{source:We.Resolv,target:We.Pack,value:t(c)},{source:We.IncPackCranked,target:We.Pack,value:t(e.in.pack_cranked)},{source:We.IncPackRetained,target:We.Pack,value:t(e.in.pack_retained)},{source:We.Pack,target:We.PackRetained,value:t(e.out.pack_retained)},{source:We.Pack,target:We.PackInvalid,value:t(e.out.pack_invalid)},{source:We.Pack,target:We.PackInvalidBundle,value:t(e.out.pack_invalid_bundle)},{source:We.Pack,target:We.PackExpired,value:t(e.out.pack_expired)},{source:We.Pack,target:We.PackAlreadyExecuted,value:t(e.out.pack_already_executed)},{source:We.Pack,target:We.PackLeaderSlow,value:t(e.out.pack_leader_slow)},{source:We.Pack,target:We.PackWaitFull,value:t(e.out.pack_wait_full)},{source:We.Pack,target:We.Execle,value:t(d)},{source:We.Execle,target:We.BankInvalid,value:t(e.out.bank_invalid)},{source:We.Execle,target:We.BankNonceAlreadyAdvanced,value:t(e.out.bank_nonce_already_advanced)},{source:We.Execle,target:We.BankNonceAdvanceFailed,value:t(e.out.bank_nonce_advance_failed)},{source:We.Execle,target:We.BankNonceWrongBlockhash,value:t(e.out.bank_nonce_wrong_blockhash)},{source:We.Execle,target:We.End,value:t(f)},{source:We.End,target:We.SlotEnd,value:t(f)}]}function wgt(e,t){const n=rt.sum(Object.values(e.in)),r=Dfe({displayType:t,durationNanos:void 0,totalIncoming:n});return[...Afe(e,r),{source:We.SlotEnd,target:We.BlockFailure,value:r(e.out.block_fail)},{source:We.SlotEnd,target:We.BlockSuccess,value:r(e.out.block_success)}]}function kgt(e,t,n,r,i,o,a){const s=rt.sum(Object.values(e.in)),l=Dfe({displayType:t,durationNanos:n,totalIncoming:s}),c=(r??0)+(i??0);return[...Afe(e,l),{source:We.SlotEnd,target:We.Votes,value:l(c)},{source:We.SlotEnd,target:We.NonVoteFailure,value:l(a??0)},{source:We.SlotEnd,target:We.NonVoteSuccess,value:l(o??0)}]}function Sgt(){const e=X(Cn);return u.jsx(Cgt,{slot:e},e)}function Cgt({slot:e}){var o,a,s,l,c,d;const t=X(Cg),n=X(Gze),r=tc(e),i=m.useMemo(()=>{var _,y,b,w,x,S;const f=n??((_=r.response)==null?void 0:_.waterfall);if(!f)return;const p=n?wgt(f,t):kgt(f,t,(y=r.response)==null?void 0:y.publish.duration_nanos,(b=r.response)==null?void 0:b.publish.success_vote_transaction_cnt,(w=r.response)==null?void 0:w.publish.failed_vote_transaction_cnt,(x=r.response)==null?void 0:x.publish.success_nonvote_transaction_cnt,(S=r.response)==null?void 0:S.publish.failed_nonvote_transaction_cnt),v=p.flatMap(C=>[C.source,C.target]);return{nodes:qht.filter(C=>v.includes(C.id)),links:p}},[t,n,(o=r.response)==null?void 0:o.publish.duration_nanos,(a=r.response)==null?void 0:a.publish.failed_nonvote_transaction_cnt,(s=r.response)==null?void 0:s.publish.failed_vote_transaction_cnt,(l=r.response)==null?void 0:l.publish.success_nonvote_transaction_cnt,(c=r.response)==null?void 0:c.publish.success_vote_transaction_cnt,(d=r.response)==null?void 0:d.waterfall]);return!i||!i.links.length?r.hasWaitedForData?u.jsx(V,{justify:"center",align:"center",height:"100%",children:u.jsx(q,{children:"No waterfall avaliable for this slot"})}):u.jsx(V,{justify:"center",align:"center",height:"100%",children:u.jsx(Iy,{style:{height:50,width:50}})}):u.jsx($s,{children:({height:f,width:p})=>{const v=p<600;if(v){const _=f;f=p,p=_}return u.jsx(mgt,{height:f,width:p,data:i,margin:{top:10,right:n?100:v?145:130,bottom:35,left:85},align:"center",isInteractive:!1,nodeThickness:0,nodeSpacing:jgt(f),nodeBorderWidth:0,sort:"input",nodeBorderRadius:0,linkOpacity:1,enableLinkGradient:!0,labelPosition:"outside",labelPadding:16,animate:!1,nodeTooltip:Ffe,linkTooltip:Ffe})}})}function Ffe(){return null}function jgt(e){return e<275?32:e<300?36:e<325?40:e<350?48:52}const Tgt="_container_k3j09_1",Igt={container:Tgt};function Egt(){const[e,t]=m.useState(!1),n=X(V3),r=e&&!n,{tileCounts:i,groupedLiveIdlePerTile:o,showLive:a,queryIdleData:s}=VM(),l=i.net?"net":"sock";return u.jsxs("div",{className:Igt.container,children:[u.jsx(Wa,{header:l,subHeader:"(in)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Ingress",metricType:"net_in",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"QUIC",tileCount:i.quic,liveIdlePerTile:o==null?void 0:o.quic,queryIdlePerTile:a||s==null?void 0:s.quic,statLabel:"Conns",metricType:"quic",isExpanded:r,setIsExpanded:t}),"bundle"in i&&u.jsx(Wa,{header:"bundle",tileCount:i.bundle,liveIdlePerTile:o==null?void 0:o.bundle,queryIdlePerTile:a||s==null?void 0:s.bundle,...a?{statLabel:"RTT",metricType:"bundle_rtt_smoothed_millis"}:{statLabel:"Lat p90",metricType:"bundle_rx_delay_millis_p90"},isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"verify",tileCount:i.verify,liveIdlePerTile:o==null?void 0:o.verify,queryIdlePerTile:a||s==null?void 0:s.verify,statLabel:"Failed",metricType:"verify",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"dedup",tileCount:i.dedup,liveIdlePerTile:o==null?void 0:o.dedup,queryIdlePerTile:a||s==null?void 0:s.dedup,statLabel:"Dupes",metricType:"dedup",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.resolv,tileCount:i[To.resolv],liveIdlePerTile:o==null?void 0:o[To.resolv],queryIdlePerTile:a||s==null?void 0:s[To.resolv],statLabel:"Resolv",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"pack",tileCount:i.pack,liveIdlePerTile:o==null?void 0:o.pack,queryIdlePerTile:a||s==null?void 0:s.pack,statLabel:"Full",metricType:"pack",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.bank,tileCount:i[To.bank],liveIdlePerTile:o==null?void 0:o[To.bank],queryIdlePerTile:a||s==null?void 0:s[To.bank],statLabel:"TPS",metricType:"bank",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:To.poh,tileCount:i[To.poh],liveIdlePerTile:o==null?void 0:o[To.poh],queryIdlePerTile:a||s==null?void 0:s[To.poh],statLabel:"Hash",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:"shred",tileCount:i.shred,liveIdlePerTile:o==null?void 0:o.shred,queryIdlePerTile:a||s==null?void 0:s.shred,statLabel:"Shreds",isExpanded:r,setIsExpanded:t}),u.jsx(Wa,{header:l,subHeader:"(out)",tileCount:i[l],liveIdlePerTile:o==null?void 0:o[l],queryIdlePerTile:a||s==null?void 0:s[l],statLabel:"Egress",metricType:"net_out",isExpanded:r,setIsExpanded:t})]})}const Ngt="_container_k6h1w_1",$gt="_toggle-group_k6h1w_46",Mgt="_toggle-group-item_k6h1w_53",tx={container:Ngt,toggleGroup:$gt,toggleGroupItem:Mgt};function Lgt(){const[e,t]=Vl(Cg);return u.jsx("div",{className:tx.container,children:u.jsxs($7,{className:tx.toggleGroup,type:"single","aria-label":"Dropped Type",value:e,children:[u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Count,"aria-label":Io.Count,onClick:()=>t(Io.Count),children:"Count"}),u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Pct,"aria-label":Io.Pct,onClick:()=>t(Io.Pct),children:"Pct %"}),u.jsx(U0,{className:tx.toggleGroupItem,value:Io.Rate,"aria-label":Io.Rate,onClick:()=>t(Io.Rate),children:"Rate"})]})})}const Rgt="_slot-performance-container_6u4bp_1",Ogt="_sankey-container_6u4bp_5",Pgt="_slot-sankey-container_6u4bp_11",eO={slotPerformanceContainer:Rgt,sankeyContainer:Ogt,slotSankeyContainer:Pgt};function Bfe(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",gap:"1",className:eO.slotPerformanceContainer,children:[u.jsx(V,{gap:"3",children:u.jsx(Sd,{text:"TPU Waterfall"})}),u.jsx(zgt,{}),u.jsx(Egt,{})]})})}function zgt(){return u.jsxs("div",{className:eO.sankeyContainer,children:[u.jsx(Lgt,{}),u.jsx("div",{className:eO.slotSankeyContainer,children:u.jsx(Sgt,{})})]})}const Dgt="_chart_102uq_43",Agt={chart:Dgt},Fgt="_chart_1hpd4_1",Bgt="_focused_1hpd4_32",tO={chart:Fgt,focused:Bgt};function nO(){return{hooks:{init:[e=>{const t=e.root.querySelectorAll(".u-axis")[0];t&&t.addEventListener("mousedown",n=>{const r=n.clientX,i=e.axes[0].scale;if(i===void 0)return;const o=e.scales[i],{min:a,max:s}=o,l=((s??0)-(a??0))/(e.bbox.width/jn.pxRatio),c=f=>{const p=(f.clientX-r)*l;if(!e.data[0].length)return;const v=e.data[0][0]??0,_=e.data[0][e.data[0].length-1]??0;e.setScale(i,{min:Math.max(v,f.shiftKey?(a??0)-p:(a??0)+p),max:Math.min(_,(s??0)+p)})},d=()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mousemove",d)};document.addEventListener("mousemove",c),document.addEventListener("mouseup",d)})}]}}}const Ufe="banks",Id="lamports",hh="computeUnits",Vt="banksXScale",Ugt="txnExecutionDuration",Wfe="txnExecutionDurationTooltip",Vfe=fe(),Hfe=fe(0),Zfe=fe(0),qfe=fe(!0),Gfe=fe(void 0),Yfe=fe(e=>{const t=e(Gfe);return t===void 0?e(s3)===ld.balanced:t},(e,t,n)=>{t(Gfe,n)}),Wgt=ca(),rO=1/9,iO=[{color:"42 126 223"},{color:"30 156 80"},{color:"30 156 80",opacity:.05},{color:"174 85 17",opacity:.05},{color:"244 5 5",opacity:.05},{color:"244 5 5",opacity:.1}],oO=e=>iO[e]??iO[iO.length-1];function Kfe({computeUnits:e,bankCount:t,tEnd:n,maxComputeUnits:r}){return Math.round((e-r)/t/rO+n)}function Vgt(e,t,n){const r=[];function i(o,a,s,l){const c=(o.x-a.x)*(s.y-l.y)-(o.y-a.y)*(s.x-l.x);if(c===0)return;const d=((o.x-s.x)*(s.y-l.y)-(o.y-s.y)*(s.x-l.x))/c,f=((o.x-s.x)*(o.y-a.y)-(o.y-s.y)*(o.x-a.x))/c;if(!(d<0||d>1||f<0||f>1))return{x:o.x+d*(a.x-o.x),y:o.y+d*(a.y-o.y)}}for(const o of e){const a=i(t,n,o[0],o[1]);a&&r.push(a)}if(r.length)return r.length!==2&&console.debug(r),r.sort((o,a)=>o.x-a.x)}function Hgt(e,t,n,r,i){const o=Number(n.target_end_timestamp_nanos-n.start_timestamp_nanos),a=e.min??0,s=e.max??o,l=t.max??r,c=t.min??0,d=[[{x:a,y:l},{x:s,y:l}],[{x:a,y:l},{x:a,y:c}],[{x:a,y:c},{x:s,y:c}],[{x:s,y:l},{x:s,y:c}]],f=[];for(let p=1;p<=i;p++){const v=Kfe({computeUnits:0,tEnd:o,maxComputeUnits:r,bankCount:p}),_=Kfe({computeUnits:r,tEnd:o,maxComputeUnits:r,bankCount:p}),y=Vgt(d,{x:v,y:0},{x:_,y:r});y&&f.push({line:y,bankCount:p})}return f}function Xfe(e){return[{x:e.left,y:e.top+e.height},{x:e.left+e.width,y:e.top+e.height},{x:e.left+e.width,y:e.top},{x:e.left,y:e.top}]}function bl(e,t){return Math.abs(e-t)<2}function Zgt(e,t,n){const r=Xfe(e),i=[...t,...n];for(const a of r)((a.x>=t[0].x||bl(a.x,t[0].x))&&(a.x<=n[0].x||bl(a.x,n[0].x))&&(a.y>=t[0].y||bl(a.y,t[0].y))&&(a.y<=n[0].y||bl(a.y,n[0].y))||(a.x>=t[1].x||bl(a.x,t[1].x))&&(a.x<=n[1].x||bl(a.x,n[1].x))&&(a.y>=t[1].y||bl(a.y,t[1].y))&&(a.y<=n[1].y||bl(a.y,n[1].y)))&&i.push(a);const o={x:i.reduce((a,s)=>a+s.x,0)/i.length,y:i.reduce((a,s)=>a+s.y,0)/i.length};return i.sort((a,s)=>{const l=Math.atan2(a.y-o.y,a.x-o.x),c=Math.atan2(s.y-o.y,s.x-o.x);return l-c}),i}function qgt(e,t,n,r,i){if(!i.opacity)return;const o=Zgt(t,n,r);if(o.length>1){e.beginPath(),e.moveTo(o[0].x,o[0].y);for(let a=1;a{window.addEventListener("dppxchange",aO)},destroy:()=>{window.removeEventListener("dppxchange",aO)},drawSeries:[(r,i)=>{if(r.series[i].label!=="Active Bank")return;const o=e.current,a=t.current,s=n.current;if(o===null||a===null||s===null)return;const l=r.ctx;l.save();const c=!Wgt.get(Yfe),d=Number(o.target_end_timestamp_nanos-o.start_timestamp_nanos),f=Math.trunc(a+.05*d*rO),p=c?[]:Hgt(r.scales[Vt],r.scales[hh],o,f,s);p.unshift({line:[{x:r.scales[Vt].min??0,y:a},{x:r.scales[Vt].max??45e7,y:a}],bankCount:0});const v=[];aO(),l.font=Jfe;const _={x:-100,y:30};for(let y=0;yjn.pxRatio*50||bl(x,r.bbox.left)&&Math.abs(S-_.y)>jn.pxRatio*20){l.save();const E=Math.atan2(j-S,C-x);l.translate(x,S),l.rotate(E),l.fillStyle=l.strokeStyle;const $=`${w-1} Bank${w===2?"":"s"} Active`;l.measureText($).width<=r.bbox.left+r.bbox.width-x&&l.fillText($,4*jn.pxRatio,-8*jn.pxRatio),l.restore()}_.x=x,_.y=S}}if(v.length>0){v.unshift({line:[{x:r.bbox.left,y:bl(v[0].line[0].x,r.bbox.left)?v[0].line[0].y:r.bbox.top+r.bbox.height},{x:r.bbox.left,y:r.bbox.top}],bankCount:v[0].bankCount-1}),v.push({line:[{x:r.bbox.left+r.bbox.width,y:r.bbox.top+r.bbox.height},{x:r.bbox.left+r.bbox.width,y:bl(v[v.length-1].line[1].x,r.bbox.left+r.bbox.width)?v[v.length-1].line[1].y:r.bbox.top}],bankCount:v[v.length-1].bankCount+1});for(let y=1;yS||i===d.after&&n[d.offsetSize]>C)&&(i=S>C?d.before:d.after);var j=i===d.before?S:C,T=parseInt(c[d.maxSize]);(!T||j{const n=document.getElementById(Qfe);n&&(nx=n)},drawSeries:[(t,n)=>{if(t.series[n].label!=="Active Bank"||(nx.style.display="none",e!==ld.revenue))return;const r=t.scales[Vt],i=Math.round(t.valToPos(kS,Vt,!0));if(r.min!==void 0&&kSr.max)return;const o=t.ctx;if(o.save(),o.beginPath(),o.strokeStyle=Lne,o.lineWidth=3,o.setLineDash([5,5]),o.moveTo(i,t.bbox.top),o.lineTo(i,t.bbox.top+t.bbox.height),o.stroke(),o.restore(),nx){const a={left:Math.round(t.valToPos(kS,Vt,!1))+t.over.offsetLeft-sO/2,top:t.over.offsetTop-sO};ehe(nx,a,"center","bottom"),nx.style.display="block"}}]}}}const the=1;let rx=!1;function nhe(){return document.getElementById("scroll-container")??document.body}function ix({elId:e,showOnCursor:t,showPointer:n,closeTooltipElId:r,getClosestIdx:i}){let o,a,s,l,c=!1;function d(){const x=o.getBoundingClientRect();s=x.left,l=x.top}function f(){rx=!0,w.style.pointerEvents="auto",y(),setTimeout(()=>{var x;document.addEventListener("click",b),r&&((x=document.getElementById(r))==null||x.addEventListener("click",p))},0)}function p(){var x;rx=!1,w.style.pointerEvents="none",w.style.display="none",document.removeEventListener("click",b),r&&((x=document.getElementById(r))==null||x.removeEventListener("click",p))}const v=rt.throttle(p,100,{leading:!0,trailing:!0});function _(){n&&(document.body.style.cursor="pointer",document.body.addEventListener("click",f))}function y(){n&&(document.body.style.cursor="unset",document.body.removeEventListener("click",f))}function b(x){const S=document.getElementById(e);x.target&&(S!=null&&S.contains(x.target))||(p(),y())}let w;return{opts:(x,S)=>{i&&(S.cursor??(S.cursor={}),S.cursor.dataIdx=(C,j,T)=>j===the?i(C):T)},hooks:{init:x=>{const S=document.getElementById(e);S?w=S:(w=document.createElement("div"),w.id=e,document.body.appendChild(w)),w&&(w.style.display="none",w.style.pointerEvents="none",o=x.over,a=document.body,o.onmouseenter=()=>{c=!0},o.onmouseleave=()=>{c=!1,!rx&&(w.style.display="none",y(),rx=!1)},nhe().addEventListener("scroll",v))},destroy:()=>{o.onmouseenter=null,o.onmouseleave=null,y(),p(),nhe().removeEventListener("scroll",v)},setSize:()=>{d()},syncRect:()=>{d()},setCursor:x=>{var E;if(!c||rx)return;const{left:S,top:C}=x.cursor,j=(E=x.cursor.idxs)==null?void 0:E[i?the:0];if(S===void 0||C===void 0||j===void 0)return;const T=x.posToVal(S,x.series[0].scale??"x");if(j!==null&&t(x,T,j)){const $={left:S+s+5,top:C+l};w.style.display="block",w.style.pointerEvents="none",_(),ehe(w,$,"right","start",{bound:a})}else w.style.display="none",y()},setScale:()=>{y(),p()}}}}function t1t(e){function t(n,r,i){const o=r>=n.data[0][i]?i:i-1;return e({elapsedTime:r,activeBanks:n.data[1][o],computeUnits:n.data[2][o],fees:n.data[3][o],tips:n.data[4][o]}),!0}return ix({elId:"cu-chart-tooltip",showOnCursor:t})}function lO(e){const t=e.factor||.75,n=.1;let r,i,o,a,s,l,c;return{hooks:{ready(d){var y;const f=d.series[0].scale??"x",p=((y=d.series.find((b,w)=>w>0&&b.show!==!1))==null?void 0:y.scale)??"y";r=d.scales[f].min??0,i=d.scales[f].max??0,o=d.scales[p].min??0,a=d.scales[p].max??0,s=i-r,l=a-o;const v=d.over;let _=v.getBoundingClientRect();c=new ResizeObserver(()=>{_=v.getBoundingClientRect()}),c.observe(v),v.addEventListener("wheel",b=>{if(b.ctrlKey||b.metaKey||b.shiftKey){if(b.preventDefault(),b.ctrlKey||b.metaKey){let{left:w,top:x}=d.cursor;w??(w=0),x??(x=0);const S=w/_.width,C=1-x/_.height,j=d.posToVal(w,Vt),T=d.posToVal(x,"y"),E=(d.scales[f].max??0)-(d.scales[f].min??0),$=(d.scales[p].max??0)-(d.scales[p].min??0),A=b.deltaY<0?E*t:E/t;let M=j-S*A,P=M+A;[M,P]=v6(A,M,P,s,r??0,i??0);const te=b.deltaY<0?$*t:$/t;let Z=T-C*te,O=Z+te;[Z,O]=v6(te,Z,O,l,o??0,a??0),requestAnimationFrame(()=>d.batch(()=>{d.setScale(Vt,{min:M,max:P})}))}else if(b.shiftKey){const w=(d.scales[f].max??0)-(d.scales[f].min??0);let x=w*n;b.deltaY>=0&&(x*=-1);const[S,C]=v6(w,(d.scales[f].min??0)+x,(d.scales[f].max??0)+x,w,r??0,i??0);requestAnimationFrame(()=>d.setScale(Vt,{min:S,max:C}))}}})},destroy(d){c==null||c.disconnect()}}}}const n1t=ca();let uO=!1;function cO(e){const t=(e==null?void 0:e.minRange)??0;return{hooks:{setScale:(n,r)=>{const i=n.series[0].scale??"x";if(uO||r!==i)return;const o=n.scales[i];uO=!0;let a=o.min??0,s=o.max??0;if(s-a{i===(l.series[0].scale??"x")&&l.setScale(i,{min:a,max:s})}),uO=!1}}}}var dn=(e=>(e.DEFAULT="All",e.PRELOADING="Pre-Loading",e.VALIDATE="Validate",e.LOADING="Loading",e.EXECUTE="Execute",e.POST_EXECUTE="Post-Execute",e))(dn||{});const r1t={All:LN,"Pre-Loading":One,Validate:RN,Loading:zne,Execute:Ane,"Post-Execute":Bne},va={All:LN,"Pre-Loading":Pne,Validate:RN,Loading:Dne,Execute:Fne,"Post-Execute":Une};var Ci=(e=>(e[e.ERROR=0]="ERROR",e[e.MICROBLOCK=1]="MICROBLOCK",e[e.BUNDLE=2]="BUNDLE",e[e.LANDED=3]="LANDED",e[e.SIMPLE=4]="SIMPLE",e[e.FEES=5]="FEES",e[e.TIPS=6]="TIPS",e[e.CUS_CONSUMED=7]="CUS_CONSUMED",e[e.CUS_REQUESTED=8]="CUS_REQUESTED",e[e.INCOME_CUS=9]="INCOME_CUS",e))(Ci||{});const rhe="bank-",dO=2e6;function fO(e,t=!1){if(!e)return 0;const n=e.txn_mb_end_timestamps_nanos.map(i=>Number(i-e.start_timestamp_nanos));n.push(Number(e.target_end_timestamp_nanos-e.start_timestamp_nanos));const r=rt.max(n)??0;return t?r+dO:r}function hO(e,t,n){if(t<0)return{preLoading:0n,validating:0n,loading:0n,execute:0n,postExecute:0n};let r=e.txn_mb_start_timestamps_nanos[t],i=e.txn_mb_end_timestamps_nanos[t];const o=Vi?e.txn_start_timestamps_nanos:e.txn_preload_end_timestamps_nanos;if(e.txn_from_bundle[t]&&(n!=null&&n.length)){const _=n.indexOf(t)??-1;n[_-1]>0&&(r=o[t]);const y=_!==-1?n[_+1]:-1;y>0&&(i=o[y])}const a=e.txn_preload_end_timestamps_nanos[t],s=e.txn_start_timestamps_nanos[t],l=e.txn_load_end_timestamps_nanos[t];let c,d,f;Vi?(c=s-r,d=a-s,f=l-a):(c=a-r,f=s-a,d=l-s);let p,v;if(_i||!e.txn_from_bundle[t]||!(n!=null&&n.length))p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t];else{const _=n.indexOf(t)??-1,y=_!==-1?n[_+1]:-1;y>0?(p=o[y]-e.txn_load_end_timestamps_nanos[t],v=e.txn_end_timestamps_nanos[y]-e.txn_end_timestamps_nanos[t]):(p=e.txn_end_timestamps_nanos[t]-e.txn_load_end_timestamps_nanos[t],v=i-e.txn_end_timestamps_nanos[t])}return{preLoading:c,validating:f,loading:d,execute:p,postExecute:v}}function SS(e,t){const n=e.txn_microblock_id[t],r=[];for(let i=0;iNumber(o-t.start_timestamp_nanos);if(Vi){if(e0){if(e{const d=c.series[0].scale??"x";r=c.scales[d].min??0,i=c.scales[d].max??0,n=i-r;function f(){const v=a.dx/s.dx,_=s.x/e.width,y=t*v;let b=o-_*y,w=b+y;[b,w]=v6(y,b,w,n,r,i),c.batch(()=>{c.setScale(d,{min:b,max:w})}),l=!1}function p(v){ohe(v,s,e),l||(l=!0,requestAnimationFrame(f))}c.over.addEventListener("touchstart",function(v){c.scales[d].max===void 0||c.scales[d].min===void 0||(e=c.over.getBoundingClientRect(),t=c.scales[d].max-c.scales[d].min,o=c.posToVal(a.x,d),ohe(v,a,e),document.addEventListener("touchmove",p,{passive:!0}))}),c.over.addEventListener("touchend",function(v){document.removeEventListener("touchmove",p)})}}}}function a1t(e){const t=[...e.txn_mb_start_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!0})),...e.txn_mb_end_timestamps_nanos.map((l,c)=>({timestampNanos:Number(l-e.start_timestamp_nanos),txn_idx:c,isTxnStart:!1}))].sort((l,c)=>l.timestampNanos-c.timestampNanos),n=[];let r=0,i=0,o=0;const a=t.reduce((l,c,d)=>{const f=c.txn_idx,p=e.txn_landed[f]?c.isTxnStart?e.txn_compute_units_requested[f]:-e.txn_compute_units_requested[f]+e.txn_compute_units_consumed[f]:0,v=c.isTxnStart?0:Number(WN(e,f)),_=c.isTxnStart?0:Number(VN(e,f));n[e.txn_bank_idx[f]]=c.isTxnStart;const y=n.filter(C=>C).length,b=l[0].length-1,w=(l[2][b]||0)+p,x=(l[3][b]||0)+v,S=(l[4][b]||0)+_;return y>o&&(o=y),w>i&&(i=w),x>r&&(r=x),S>r&&(r=S),d>0&&t[d-1].timestampNanos===c.timestampNanos?(l[1][b]=y,l[2][b]=w,l[3][b]=x,l[4][b]=S):(l[0].push(c.timestampNanos),l[1].push(y),l[2].push(w),l[3].push(x),l[4].push(S)),l},[[-dO],[0],[0],[0],[0]]),s=fO(e,!0);return a.forEach(l=>{l.push(null)}),a[0][a[0].length-1]=s,{chartData:a,maxBankCount:o,maxComputeUnits:i,maxLamports:r}}const{stepped:mO}=jn.paths,gO=mO==null?void 0:mO({align:1}),CS=(e,t,n,r)=>(gO==null?void 0:gO(e,t,n,r))??null,s1t="cu-chart";function l1t({slotTransactions:e,maxComputeUnits:t,bankTileCount:n,onCreate:r}){const i=Ee(Vfe),o=Ee(Hfe),a=Ee(Zfe),s=m.useRef(e);s.current=e;const l=m.useRef(t);l.current=t;const c=m.useRef(n);c.current=n;const{chartData:d,maxBankCount:f,maxComputeUnits:p,maxLamports:v}=m.useMemo(()=>a1t(e),[e]),_=m.useCallback((b,w)=>!(b>0||w({width:0,height:0,class:tO.chart,drawOrder:["axes","series"],cursor:{sync:{key:Vt},points:{show:!1}},scales:{[Vt]:{time:!1},[hh]:{range:(b,w,x)=>{if(_(w,x))return[0,t+1e6];const S=Math.max(x-w,5e4);return[Math.max(w-S,0),Math.min(x+S,t+1e6)]}},[Ufe]:{range:[0,f+1]},[Id]:{range:[0,v*1.1]}},axes:[{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:NN},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},size:30,values:(b,w)=>w.map(x=>x/1e6+"ms"),space:100,scale:Vt},{scale:hh,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio,stroke:NN},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(x=>x/1e6+"M"),space:50,size(b,w,x,S){var $,A;const C=b.axes[x];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,P)=>P.length>M.length?P:M,"");T!==""&&(b.ctx.font=((A=C.font)==null?void 0:A[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return o(E),E}},{scale:Id,stroke:sr,border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(b,w)=>w.map(x=>x/dd+" SOL"),side:1,space:50,size(b,w,x,S){var $,A;const C=b.axes[x];if(S>1)return C._size;let j=(($=C.ticks)==null?void 0:$.size)??0+(C.gap??0);j+=5;const T=(w??[]).reduce((M,P)=>P.length>M.length?P:M,"");T!==""&&(b.ctx.font=((A=C.font)==null?void 0:A[0])??"Inter Tight",j+=b.ctx.measureText(T).width/devicePixelRatio);const E=Math.ceil(j);return a(E),E}}],series:[{scale:Vt},{label:"Active Bank",stroke:"rgba(117, 77, 18, 1)",paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Ufe},{label:"Compute Units",stroke:pd,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:hh},{label:"Fees",stroke:kg,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Id},{label:"Tips",stroke:Gf,paths:CS,points:{show:!1},width:2/devicePixelRatio,scale:Id}],legend:{show:!1},plugins:[e1t(),Ygt({slotTransactionsRef:s,maxComputeUnitsRef:l,bankTileCountRef:c}),nO(),lO({factor:.75}),t1t(i),cO(),o1t(),pO()]}),[f,v,i,_,t,o,a]);return u.jsx("div",{style:{height:"100%"},children:u.jsx($s,{children:({height:b,width:w})=>(y.width=w,y.height=b,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:s1t,options:y,data:d,onCreate:r})}))})})}const u1t="_tooltip_h8khk_1",c1t={tooltip:u1t};function ox({elId:e,children:t}){const n=X(jg);return u.jsx(lU,{container:n,id:e,className:c1t.tooltip,children:t})}const d1t="_tooltip_11ays_1",f1t="_active-banks_11ays_14",h1t="_compute-units_11ays_18",p1t="_elapsed-time_11ays_22",m1t="_fees_11ays_26",g1t="_tips_11ays_30",v1t="_label_11ays_34",qo={tooltip:d1t,activeBanks:f1t,computeUnits:h1t,elapsedTime:p1t,fees:m1t,tips:g1t,label:v1t};function y1t(){var t;const e=X(Vfe);return u.jsx(ox,{elId:"cu-chart-tooltip",children:e&&u.jsxs("div",{className:qo.tooltip,children:[u.jsx(q,{className:Te(qo.activeBanks,qo.label),children:"Active\xA0banks"}),u.jsx(q,{className:qo.activeBanks,children:e.activeBanks??"-"}),u.jsx(q,{className:Te(qo.computeUnits,qo.label),children:"Compute\xA0units"}),u.jsxs(q,{className:qo.computeUnits,children:[((t=e.computeUnits)==null?void 0:t.toLocaleString())??"-","\xA0CUs"]}),u.jsx(q,{className:Te(qo.elapsedTime,qo.label),children:"Time\xA0elapsed"}),u.jsx(q,{className:qo.elapsedTime,children:e.elapsedTime!=null?`${(e.elapsedTime/1e6).toLocaleString(void 0,{maximumFractionDigits:6})} ms`:"-"}),u.jsx(q,{className:Te(qo.tips,qo.label),children:"Tips"}),u.jsx(q,{className:qo.tips,children:BN(BigInt(e.tips||0),Uo)}),u.jsx(q,{className:Te(qo.fees,qo.label),children:"Fees"}),u.jsx(q,{className:qo.fees,children:BN(BigInt(e.fees||0),Uo)})]})})}const b1t="_button_1b3a4_1",vO={button:b1t};function _1t({onUplot:e}){const t=X(qfe);return u.jsxs(V,{gap:"3",align:"center",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsxs(V,{gap:"1px",children:[u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.scales[Vt].min??0,i=n.scales[Vt].max??0,o=i-r;if(o<=0)return;const a=o*.2;n.setScale(Vt,{min:r+a,max:i-a})}),className:vO.button,children:u.jsx(xBe,{width:"18",height:"18"})}),u.jsx(nl,{variant:"soft",onClick:()=>e(n=>{const r=n.data[0][0],i=n.data[0].at(-1)??r,o=n.scales[Vt].min??0,a=n.scales[Vt].max??0,s=a-o;if(s<=0)return;const l=s*.2;n.setScale(Vt,{min:Math.max(o-l,r),max:Math.min(a+l,i)})}),disabled:t,className:vO.button,children:u.jsx(kBe,{width:"18",height:"18"})}),u.jsx(hs,{variant:"soft",onClick:()=>e(n=>n.setScale(Vt,{min:n.data[0][0],max:n.data[0].at(-1)??0})),disabled:t,className:vO.button,children:u.jsx(gBe,{width:"18",height:"18"})})]})]})}const x1t="_label_1q3ew_1",w1t={label:x1t};function k1t({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(V,{align:"center",gap:"2",children:u.jsx(q,{as:"label",className:w1t.label,style:{color:r},children:u.jsxs(V,{gap:"2",children:[u.jsx(Y7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}function S1t({onUplot:e}){const[t,n]=Vl(Yfe),r=i=>{n(i),e(o=>{o.redraw(!1,!1)})};return u.jsx(k1t,{label:"Show Projections",checked:t,onCheckedChange:r,color:pN})}const ahe="500px";function C1t(){var a;const e=X(Cn),t=pl(e),n=m.useRef(),r=X(Nb)[To.bank],i=m.useCallback(s=>{n.current=s},[]),o=m.useCallback(s=>n.current&&s(n.current),[]);return!e||!((a=t.response)!=null&&a.transactions)?u.jsx(j1t,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{children:u.jsxs(V,{direction:"column",height:ahe,gap:"2",children:[u.jsxs(V,{gap:"3",children:[u.jsx(Sd,{text:"Slot Progression"}),u.jsx(_1t,{onUplot:o}),u.jsx(S1t,{onUplot:o})]}),u.jsxs("div",{className:Agt.chart,children:[u.jsx(l1t,{slotTransactions:t.response.transactions,maxComputeUnits:t.response.publish.max_compute_units??Bte,bankTileCount:r,onCreate:i}),u.jsx(Jgt,{})]})]})}),u.jsx(y1t,{})]})}function j1t(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:ahe,justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Slot Progress..."})})}function she(e,t){return Math.round(e*(t=10**t))/t}const T1t=1,lhe=(e,t,n,r,i)=>she(t+e*(n+i),6);function I1t(e,t,n,r,i){let o=(1-t)/(e-1);(isNaN(o)||o===1/0)&&(o=0);const a=0,s=t/e,l=she(s,6),c=l,d=l;if(r==null)for(let f=0;f=n&&e<=i&&t>=r&&t<=o}const vc=class vc{constructor(t,n,r,i,o=0){$u(this,"x");$u(this,"y");$u(this,"w");$u(this,"h");$u(this,"l");$u(this,"o");$u(this,"q");this.x=t,this.y=n,this.w=r,this.h=i,this.l=o,this.o=[],this.q=null}split(){const t=this.w/2,n=this.h/2,r=this.l+1;this.q=[new vc(this.x+t,this.y,t,n,r),new vc(this.x,this.y,t,n,r),new vc(this.x,this.y+n,t,n,r),new vc(this.x+t,this.y+n,t,n,r)]}quads(t,n,r,i,o){if(!this.q)return;const a=this.x+this.w/2,s=this.y+this.h/2,l=na,f=n+i>s;l&&d&&o(this.q[0]),c&&l&&o(this.q[1]),c&&f&&o(this.q[2]),d&&f&&o(this.q[3])}add(t){if(this.q)this.quads(t.x,t.y,t.w,t.h,n=>n.add(t));else if(this.o.push(t),this.o.length>vc.MAX_OBJECTS&&this.lr.add(n));this.o.length=0}}get(t,n,r,i,o){for(const a of this.o)o(a);this.q&&this.quads(t,n,r,i,a=>a.get(t,n,r,i,o))}clear(){this.o.length=0,this.q=null}};$u(vc,"MAX_OBJECTS",10),$u(vc,"MAX_LEVELS",4);let yO=vc;function uhe(e,t,n=Math.E){return e===0||t===0?0:((e<=0||t<=0)&&(console.error(e,t),console.error("Logarithms are only defined for positive numbers.")),n===Math.E?Math.log(e)-Math.log(t):Math.log(e)/Math.log(n)-Math.log(t)/Math.log(n))}function N1t(e,t){if(Math.trunc(e)!==e){let n=0;for(;Math.trunc(e)!==e;)e*=10,n++;return e/(Math.pow(10,n)*t)}else return e/t}function bO(e){return`${rhe}${e}`}function $1t(e,t){if(t<0||e.txn_mb_start_timestamps_nanos[t]===void 0)return;const n=e.start_timestamp_nanos,r=Number(e.txn_mb_start_timestamps_nanos[t]-n),i=Number(e.txn_preload_end_timestamps_nanos[t]-n),o=Number(e.txn_start_timestamps_nanos[t]-n),a=Number(e.txn_load_end_timestamps_nanos[t]-n),s=Number(e.txn_end_timestamps_nanos[t]-n),l=Number(e.txn_mb_end_timestamps_nanos[t]-n);return{mbStartTs:r,preloadTs:i,txnStartTs:o,loadEndTs:a,txnEndTs:s,mbEndTs:l}}function jS(e,t,n,r){const i={};for(let s=0;s+s).sort((s,l)=>s-l),a=[[-dO],[null],[null]];for(let s=0;s!d(e,c)))a[1].push(null),a[2].push(null);else if(a[1].push(c),c===null)a[2].push(null);else{const d=e.txn_microblock_id[c];a[2][a[2].length-1]===d||a[2][a[2].length-1]===void 0?a[2].push(void 0):a[2].push(d)}}a[0].push(n);for(let s=1;srt.round(o,n);let i=Number(e);return t||(i=Math.abs(i)),Math.abs(i)<1e3?{value:r(i),unit:"ns"}:(i/=1e3,Math.abs(i)<1e3?{value:r(i),unit:"\xB5s"}:(i/=1e3,Math.abs(i)<1e5?{value:r(i),unit:"ms"}:(i/=1e3,Math.abs(i)<120?{value:r(i),unit:"s"}:(i/=60,Math.abs(i)<120?{value:r(i),unit:"m"}:(i/=60,{value:r(i),unit:"h"})))))}const Ls=fe(null,(e,t,n)=>{function r(o){return o.startsWith("bank-")}function i(o,a){const s=Number(a.replace(rhe,""));isNaN(s)||n(o,s)}t(y6,i,{isMatchingChartId:r})}),M1t="landed";function L1t(e,t){return e.txn_landed[t]}const che=fe([]),dhe={},[ax,_O]=function(){const e=fe({...dhe}),t=fe();return[fe(n=>n(e),(n,r,i)=>{if(r(e,i),Object.keys(i).length){const o=new Set;r(Ls,a=>{var s;if((s=a.data[1])!=null&&s.length)for(let l=0;ln(t))]}();function R1t({baseChartData:e,transactions:t,value:n,filterEnum:r,filterFunc:i,mergeMatchingPoints:o}){const a=[null];let s=null;for(let l=1;l{const c={...n(ax)};l===void 0?delete c[e]:c[e]=(f,p)=>t(f,p,l);const d=jS(o,a,s,Object.values(c));i.data.splice(1,1,d[1]),i.data.splice(2,1,d[2]),i.setData(i.data,!1),r(ax,c),i.redraw(!0,!0)})}function TS(e,t){function n(r,i,o){switch(o){case"All":return!0;case"Yes":return t(r,i);case"No":return!t(r,i)}}return fhe(e,n)}const O1t=TS("error",(e,t)=>e.txn_error_code[t]!==0),P1t=TS("bundle",(e,t)=>e.txn_from_bundle[t]),z1t=TS(M1t,L1t),D1t=TS("simple",(e,t)=>e.txn_is_simple_vote[t]),A1t=fhe("arrival",(e,t,{min:n,max:r})=>{const i=Number(e.txn_arrival_timestamps_nanos[t]-e.start_timestamp_nanos);return(n===void 0||i>=n)&&i<=r});let IS={};function F1t(e,t){Object.values(IS).forEach(n=>n(e,t))}function B1t(){IS={}}function sx(e,t,n){return fe(null,(r,i,o,a,s,l)=>{function c(d,f){const p=d.data.length,v=r(che),_=R1t({filterEnum:e,filterFunc:t,transactions:a,baseChartData:v[f],value:l,mergeMatchingPoints:n});d.data.splice(p,0,_),d.addSeries({...d.series[1],label:`${e}`},p),whe(d.series.filter(y=>y.show).length-1),d.setData(d.data,!1),r(ES)===void 0&&d.redraw(!0,!0)}IS[e]=c,c(o,s)})}const U1t=sx(Ci.FEES,(e,t)=>!!Number(e.txn_priority_fee[t]+e.txn_transaction_fee[t])),W1t=sx(Ci.TIPS,(e,t)=>!!Number(e.txn_tips[t])),V1t=sx(Ci.CUS_CONSUMED,(e,t)=>!!e.txn_compute_units_consumed[t]),H1t=sx(Ci.CUS_REQUESTED,(e,t,n)=>!!e.txn_compute_units_requested[t]),Z1t=sx(Ci.INCOME_CUS,(e,t)=>e.txn_compute_units_consumed[t]>0&&Number(md(e,t))/e.txn_compute_units_consumed[t]>0),lx=fe(null,(e,t,n,r)=>{const i=n.series.findIndex(o=>o.label===`${r}`);i!==-1&&(n.delSeries(i),n.data.splice(i,1),whe(n.data.length-1),n.setData(n.data,!1),e(ES)===void 0&&n.redraw(!0,!0),delete IS[r])}),xO=fe(1),ES=fe(),q1t=0,Ed=1,hhe=2;function ux(e){return e===q1t}function NS(e){return e===Ed}function $S(e){return e===hhe}function phe(e){return e>hhe}function mhe(e,t,n=2){const r=10n**BigInt(n),i=e*r/t;return Number(i)/Number(r)}function MS(e,t){return function(n){return n.current?e(n.current).reduce((r,i,o)=>i>r?i:r,t):t}}const G1t=MS(e=>e.txn_priority_fee.map((t,n)=>t+e.txn_transaction_fee[n]),0n),Y1t=MS(e=>e.txn_tips,0n),K1t=MS(e=>e.txn_compute_units_consumed,0),X1t=MS(e=>e.txn_compute_units_requested,0);function ghe(e,t){if(!e.txn_landed[t])return 0;const n=e.txn_compute_units_consumed[t];return n?Number(md(e,t))/n:0}function vhe(e){const t=e.txn_priority_fee.reduce((r,i,o)=>{if(!e)return r;const a=ghe(e,o);return r[a]??(r[a]=[]),r[a].push(o),r},{}),n=Object.keys(t).sort((r,i)=>Number(i)-Number(r));return{rankings:n.reduce((r,i,o)=>{const a=t[i];for(const s of a)r.set(s,o+1);return r},new Map),totalRanks:n.length}}function J1t(e){if(!e.current)return new Map;const{rankings:t,totalRanks:n}=vhe(e.current);for(const[r,i]of t)t.set(r,(n-i+1)/n);return t}const Q1t=1,evt=T1t;let yhe=0;const bhe=.5,tvt=1.3;let S1;function wO(e){S1=e}let C1="";function _he(e){C1=e}let kO;function xhe(e){kO=e}let Nd=0;const whe=e=>{Nd=e-1,ca().set(xO,Nd)};function nvt(e,t){let n=0n,r=0n,i=0,o=0,a=new Map;function s(){n=G1t(e)}function l(){r=Y1t(e)}function c(){i=K1t(e)}function d(){o=X1t(e)}function f(){a=J1t(e)}Nd=1;const p={mode:1,fill:(O,J,D,Y)=>{var F,H,ee,ce;if(!e.current)return{fill:""};if(ux(J))return{fill:""};if(NS(J))return{fill:r1t[!O||!e.current?dn.DEFAULT:ihe(O[0][D],e.current,Y,(F=t[Y])==null?void 0:F.bundleTxnIdx)],brightness:kO===O[Ed][D]?tvt:void 0};if($S(J))return{fill:""};if(Y===Ci.FEES){const U=O[Ed][D]??-1,ae=e.current.txn_priority_fee[U]+e.current.txn_transaction_fee[U];if(!ae)return{fill:""};const je=mhe(ae,n,4);return{fill:`rgba(76, 204, 230, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.TIPS){const U=O[Ed][D]??-1,ae=(H=e.current)==null?void 0:H.txn_tips[U];if(!ae)return{fill:""};const je=mhe(ae,r,4);return{fill:`rgba(31, 216, 164, ${Math.max(Math.min(.8,je*4),.3)})`}}if(Y===Ci.CUS_REQUESTED){const U=O[Ed][D]??-1,ae=(ee=e.current)==null?void 0:ee.txn_compute_units_requested[U];if(!ae)return{fill:""};const je=ae/o;return{fill:`rgba(255, 141, 204, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.CUS_CONSUMED){const U=O[Ed][D]??-1,ae=(ce=e.current)==null?void 0:ce.txn_compute_units_consumed[U];if(!ae)return{fill:""};const je=ae/i;return{fill:`rgba(209, 157, 255, ${Math.max(Math.min(.85,je),.2)})`}}if(Y===Ci.INCOME_CUS){const U=O[Ed][D]??-1,ae=a.get(U)??0;return{fill:`rgba(158, 177, 255, ${Math.max(Math.min(.8,ae),.3)})`}}return{fill:""}},stroke:(O,J,D,Y)=>{var F,H,ee;if(ux(J)||NS(J))return"";if($S(J)){const ce=O[Ed][D]??-1,U=(F=e.current)==null?void 0:F.txn_error_code[ce];return S1?U===S1&&(!C1||((H=e.current)==null?void 0:H.txn_source_tpu[ce])===C1)?"rgba(162,5,8, .8)":U?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":C1?((ee=e.current)==null?void 0:ee.txn_source_tpu[ce])===C1&&(!S1||U===S1)?U?"rgba(162,5,8, .8)":"rgba(19,173,79, .8)":U?"rgba(162,5,8, .1)":"rgba(19,173,79, .1)":U?"rgba(162,5,8, .5)":"rgba(19,173,79, .5)"}return""}},{mode:v,fill:_,stroke:y}=p;function b(O,J,D,Y){I1t(J,Q1t,evt,O,(F,H,ee)=>{const ce=D*H,U=D*ee;Y(F,ce,U)})}const w=[.6,1/0];1-w[0];function x(){(w[1]??1/0)*jn.pxRatio}x();const S=new Map,C=new Map;function j(O){let J;const D=kO!==void 0;D&&(O.filter=`brightness(${bhe})`),S.forEach(({path:Y,brightness:F,fill:H})=>{H&&(D&&F!==J&&(O.filter=`brightness(${F??bhe})`,J=F),O.fillStyle=H,O.fill(Y))}),O.filter="",C.forEach((Y,F)=>{F&&(O.strokeStyle=F,O.stroke(Y))}),S.clear(),C.clear()}function T(O,J,D,Y,F,H,ee,ce,U,ae,je,me,ke){var $e,pe,ye;if(!e.current)return;const he=je+1,ue=_(O,he,me,ke);let re=S.get(ue.fill+ue.brightness);const ge=O[Ed][me];if(ge!=null){if(phe(he)){if(ke===Ci.FEES){const Se=e.current.txn_priority_fee[ge]+e.current.txn_transaction_fee[ge];if(Se!==void 0){let Ce=1/uhe(Number(n),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.TIPS){const Se=($e=e.current)==null?void 0:$e.txn_tips[ge];if(Se!==void 0){let Ce=1/uhe(Number(r),Number(Se),1.7);Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.CUS_CONSUMED){const Se=(pe=e.current)==null?void 0:pe.txn_compute_units_consumed[ge];if(Se!==void 0){let Ce=Se/i;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.CUS_REQUESTED){const Se=(ye=e.current)==null?void 0:ye.txn_compute_units_requested[ge];if(Se!==void 0){let Ce=Se/o;Ce>.9&&(Ce=.9),Ce<.1&&(Ce=.1);const Be=U*Ce,Ge=U-Be;U-=Ge,ee+=Ge}}if(ke===Ci.INCOME_CUS){let Se=a.get(ge)??0;Se>.9&&(Se=.95),Se<.1&&(Se=.1);const Ce=U*Se,Be=U-Ce;U-=Be,ee+=Be}}if(re==null&&S.set(ue.fill+ue.brightness,re={path:new Path2D,fill:ue.fill,brightness:ue.brightness}),D(re.path,H,ee,ce,U),ae){const Se=y(O,he,me,ke);let Ce=C.get(Se);Ce==null&&C.set(Se,Ce=new Path2D),D(Ce,H+ae/2,ee+ae/2,ce-ae,U-ae)}$S(he)||$.add({x:rt.round(H-Y),y:rt.round(ee-F),w:ce,h:U,sidx:je+(je>1?2:1),didx:me})}}function E(O,J,D,Y){return jn.orient(O,J,(F,H,ee,ce,U,ae,je,me,ke,he,ue,re,ge,$e)=>{const pe=rt.round((F.width||0)*jn.pxRatio);O.ctx.save(),$e(O.ctx,O.bbox.left,O.bbox.top,O.bbox.width,O.bbox.height),O.ctx.clip(),b(J-1,Nd,ue,(ye,Se,Ce)=>{(ux(J)||NS(J))&&Ce&&(yhe=Ce),ux(J)||NS(J)||(Se-=yhe);for(let Be=0;Be=O.bbox.left&&Ge<=O.bbox.left+O.bbox.width){const ut=O.scales[Vt].min!=null&&O.scales[Vt].max!=null?4e8/(O.scales[Vt].max-O.scales[Vt].min):void 0;T(O.data,O.ctx,$e,me,ke,Ge,rt.round(ke+Se)+10,phe(J)?Math.max(3,Math.min(St-Ge,ut??1)):St-Ge,rt.round(Ce)-20,pe,ye,Be,ee[Be]??0)}Be=xt-1}}),O.ctx.lineWidth=pe,j(O.ctx),O.ctx.restore()}),null}let $;const A=Array(Nd).fill(null),M=Array(Nd).fill(0),P=Array(Nd).fill(0),te=jn.fmtDate("{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}");let Z=null;return{hooks:{init:O=>{Z=O.root.querySelector(".u-series:first-child .u-value"),window.addEventListener("dppxchange",x),s(),l(),c(),d(),f()},destroy:O=>{window.removeEventListener("dppxchange",x)},drawClear:O=>{$=$||new yO(0,0,O.bbox.width,O.bbox.height),$.clear(),O.series.forEach(J=>{J._paths=null})},setCursor:O=>{{const J=O.posToVal(O.cursor.left??0,Vt);Z&&(Z.textContent=O.scales[Vt].time?te(new Date(J*1e3)):J.toFixed(2))}}},opts:(O,J)=>{jn.assign(J,{cursor:{sync:{key:Vt},y:!1,dataIdx:(D,Y,F,H)=>{var ce;if(ux(Y)||$S(Y))return F;const ee=rt.round(D.cursor.left*jn.pxRatio);if(ee>=0){const U=M[Y-1];A[Y-1]=null,$.get(ee,U,1,1,ae=>{E1t(ee,U,ae.x,ae.y,ae.x+ae.w,ae.y+ae.h)&&(A[Y-1]=ae)})}return(ce=A[Y-1])==null?void 0:ce.didx},points:{fill:"rgba(255,255,255,0.2)",bbox:(D,Y)=>{const F=A[Y-1],H={left:F?rt.round(F.x/devicePixelRatio):-10,top:F?rt.round(F.y/devicePixelRatio):-10,width:F?rt.round(F.w/devicePixelRatio):0,height:F?rt.round(F.h/devicePixelRatio):0},ee=rt.round((D.bbox.left+D.bbox.width)/devicePixelRatio)-H.left-10;return H.width>ee&&(H.width=ee),H}}},scales:{[Vt]:{range(D,Y,F){return[Y,F]}},y:{range:[0,1]}}}),J.axes&&jn.assign(J.axes[0],{splits:null,grid:{show:v!==2}}),J.axes&&jn.assign(J.axes[1],{splits:(D,Y)=>(b(null,Nd,D.bbox.height,(F,H,ee)=>{M[F]=rt.round(H+ee/2),P[F]=D.posToVal(M[F]/jn.pxRatio,"y")}),P),values:()=>Array(Nd).fill(null).map((D,Y)=>O.series[Y+1].label),gap:5,size:0,grid:{show:!1},ticks:{show:!1},side:3}),J.series.forEach((D,Y)=>{Y>0&&jn.assign(D,{paths:E,points:{show:!1}})})}}}const rvt="_group-label_1cg9k_1",ivt="_min-text-width_1cg9k_4",ovt="_group_1cg9k_1",avt="_tooltip-open_1cg9k_15",svt="_item_1cg9k_18",lvt="_item-color_1cg9k_65",j1={groupLabel:rvt,minTextWidth:ivt,group:ovt,tooltipOpen:avt,item:svt,itemColor:lvt},uvt="_slider_zs58s_1",cvt="_arrival-label_zs58s_68",dvt="_minimize-button_zs58s_77",fvt="_chart-control-tooltip_zs58s_83",cx={slider:uvt,arrivalLabel:cvt,minimizeButton:dvt,chartControlTooltip:fvt},LS=m.forwardRef(hvt);function hvt({label:e,options:t,value:n,onChange:r,isTooltipOpen:i,closeTooltip:o,optionColors:a,hasMinTextWidth:s},l){const c=m.useRef(new Map);return m.useImperativeHandle(l,()=>({focus:d=>{var f;(f=c.current.get(d))==null||f.focus()}}),[]),u.jsxs(V,{align:"center",children:[e&&u.jsx(q,{className:Te(j1.groupLabel,{[j1.minTextWidth]:s}),children:e}),u.jsx(ui,{className:cx.chartControlTooltip,content:`Applied "${n}"`,open:!!i,side:"bottom",children:u.jsx($7,{className:Te(j1.group,i&&j1.tooltipOpen),type:"single",value:n,"aria-label":e,onValueChange:d=>d&&r(d),children:t.map(d=>u.jsxs(U0,{ref:f=>{f?c.current.set(d,f):c.current.delete(d)},className:j1.item,value:d,"aria-label":d,onBlur:o,children:[(a==null?void 0:a[d])&&u.jsx("div",{className:j1.itemColor,style:{background:a[d]}}),d]},d))})})]})}const pvt="_label_1q3ew_1",SO={label:pvt};function dx({checked:e,onCheckedChange:t,label:n,color:r}){return u.jsx(V,{align:"center",gap:"2",children:u.jsx(q,{as:"label",className:SO.label,style:{color:r},children:u.jsxs(V,{gap:"2",children:[u.jsx(Y7,{checked:e,onCheckedChange:t,size:"1"}),n]})})})}const CO=fe(-1),jO=fe(dn.DEFAULT);var khe=1,mvt=.9,gvt=.8,vvt=.17,TO=.1,IO=.999,yvt=.9999,bvt=.99,_vt=/[\\\/_+.#"@\[\(\{&]/,xvt=/[\\\/_+.#"@\[\(\{&]/g,wvt=/[\s-]/,She=/[\s-]/g;function EO(e,t,n,r,i,o,a){if(o===t.length)return i===e.length?khe:bvt;var s=`${i},${o}`;if(a[s]!==void 0)return a[s];for(var l=r.charAt(o),c=n.indexOf(l,i),d=0,f,p,v,_;c>=0;)f=EO(e,t,n,r,c+1,o+1,a),f>d&&(c===i?f*=khe:_vt.test(e.charAt(c-1))?(f*=gvt,v=e.slice(i,c-1).match(xvt),v&&i>0&&(f*=Math.pow(IO,v.length))):wvt.test(e.charAt(c-1))?(f*=mvt,_=e.slice(i,c-1).match(She),_&&i>0&&(f*=Math.pow(IO,_.length))):(f*=vvt,i>0&&(f*=Math.pow(IO,c-i))),e.charAt(c)!==t.charAt(o)&&(f*=yvt)),(ff&&(f=p*TO)),f>d&&(d=f),c=n.indexOf(l,c+1);return a[s]=d,d}function Che(e){return e.toLowerCase().replace(She," ")}function kvt(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,EO(e,t,Che(e),Che(t),0,0,{})}var Svt=Symbol.for("react.lazy"),RS=pj[" use ".trim().toString()];function Cvt(e){return typeof e=="object"&&e!==null&&"then"in e}function jhe(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Svt&&"_payload"in e&&Cvt(e._payload)}function jvt(e){const t=Tvt(e),n=m.forwardRef((r,i)=>{let{children:o,...a}=r;jhe(o)&&typeof RS=="function"&&(o=RS(o._payload));const s=m.Children.toArray(o),l=s.find(Evt);if(l){const c=l.props.children,d=s.map(f=>f===l?m.Children.count(c)>1?m.Children.only(null):m.isValidElement(c)?c.props.children:null:f);return u.jsx(t,{...a,ref:i,children:m.isValidElement(c)?m.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}function Tvt(e){const t=m.forwardRef((n,r)=>{let{children:i,...o}=n;if(jhe(i)&&typeof RS=="function"&&(i=RS(i._payload)),m.isValidElement(i)){const a=$vt(i),s=Nvt(o,i.props);return i.type!==m.Fragment&&(s.ref=r?zl(r,a):a),m.cloneElement(i,s)}return m.Children.count(i)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ivt=Symbol("radix.slottable");function Evt(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ivt}function Nvt(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...a)=>{const s=o(...a);return i(...a),s}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function $vt(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Mvt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ph=Mvt.reduce((e,t)=>{const n=jvt(`Primitive.${t}`),r=m.forwardRef((i,o)=>{const{asChild:a,...s}=i,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),fx='[cmdk-group=""]',NO='[cmdk-group-items=""]',Lvt='[cmdk-group-heading=""]',The='[cmdk-item=""]',Ihe=`${The}:not([aria-disabled="true"])`,$O="cmdk-item-select",T1="data-value",Rvt=(e,t,n)=>kvt(e,t,n),Ehe=m.createContext(void 0),hx=()=>m.useContext(Ehe),Nhe=m.createContext(void 0),MO=()=>m.useContext(Nhe),$he=m.createContext(void 0),Mhe=m.forwardRef((e,t)=>{let n=I1(()=>{var U,ae;return{search:"",value:(ae=(U=e.value)!=null?U:e.defaultValue)!=null?ae:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=I1(()=>new Set),i=I1(()=>new Map),o=I1(()=>new Map),a=I1(()=>new Set),s=Lhe(e),{label:l,children:c,value:d,onValueChange:f,filter:p,shouldFilter:v,loop:_,disablePointerSelection:y=!1,vimBindings:b=!0,...w}=e,x=wo(),S=wo(),C=wo(),j=m.useRef(null),T=Hvt();Mm(()=>{if(d!==void 0){let U=d.trim();n.current.value=U,E.emit()}},[d]),Mm(()=>{T(6,Z)},[]);let E=m.useMemo(()=>({subscribe:U=>(a.current.add(U),()=>a.current.delete(U)),snapshot:()=>n.current,setState:(U,ae,je)=>{var me,ke,he,ue;if(!Object.is(n.current[U],ae)){if(n.current[U]=ae,U==="search")te(),M(),T(1,P);else if(U==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(C);re?re.focus():(me=document.getElementById(x))==null||me.focus()}if(T(7,()=>{var re;n.current.selectedItemId=(re=O())==null?void 0:re.id,E.emit()}),je||T(5,Z),((ke=s.current)==null?void 0:ke.value)!==void 0){let re=ae??"";(ue=(he=s.current).onValueChange)==null||ue.call(he,re);return}}E.emit()}},emit:()=>{a.current.forEach(U=>U())}}),[]),$=m.useMemo(()=>({value:(U,ae,je)=>{var me;ae!==((me=o.current.get(U))==null?void 0:me.value)&&(o.current.set(U,{value:ae,keywords:je}),n.current.filtered.items.set(U,A(ae,je)),T(2,()=>{M(),E.emit()}))},item:(U,ae)=>(r.current.add(U),ae&&(i.current.has(ae)?i.current.get(ae).add(U):i.current.set(ae,new Set([U]))),T(3,()=>{te(),M(),n.current.value||P(),E.emit()}),()=>{o.current.delete(U),r.current.delete(U),n.current.filtered.items.delete(U);let je=O();T(4,()=>{te(),(je==null?void 0:je.getAttribute("id"))===U&&P(),E.emit()})}),group:U=>(i.current.has(U)||i.current.set(U,new Set),()=>{o.current.delete(U),i.current.delete(U)}),filter:()=>s.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:x,inputId:C,labelId:S,listInnerRef:j}),[]);function A(U,ae){var je,me;let ke=(me=(je=s.current)==null?void 0:je.filter)!=null?me:Rvt;return U?ke(U,n.current.search,ae):0}function M(){if(!n.current.search||s.current.shouldFilter===!1)return;let U=n.current.filtered.items,ae=[];n.current.filtered.groups.forEach(me=>{let ke=i.current.get(me),he=0;ke.forEach(ue=>{let re=U.get(ue);he=Math.max(re,he)}),ae.push([me,he])});let je=j.current;J().sort((me,ke)=>{var he,ue;let re=me.getAttribute("id"),ge=ke.getAttribute("id");return((he=U.get(ge))!=null?he:0)-((ue=U.get(re))!=null?ue:0)}).forEach(me=>{let ke=me.closest(NO);ke?ke.appendChild(me.parentElement===ke?me:me.closest(`${NO} > *`)):je.appendChild(me.parentElement===je?me:me.closest(`${NO} > *`))}),ae.sort((me,ke)=>ke[1]-me[1]).forEach(me=>{var ke;let he=(ke=j.current)==null?void 0:ke.querySelector(`${fx}[${T1}="${encodeURIComponent(me[0])}"]`);he==null||he.parentElement.appendChild(he)})}function P(){let U=J().find(je=>je.getAttribute("aria-disabled")!=="true"),ae=U==null?void 0:U.getAttribute(T1);E.setState("value",ae||void 0)}function te(){var U,ae,je,me;if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ke=0;for(let he of r.current){let ue=(ae=(U=o.current.get(he))==null?void 0:U.value)!=null?ae:"",re=(me=(je=o.current.get(he))==null?void 0:je.keywords)!=null?me:[],ge=A(ue,re);n.current.filtered.items.set(he,ge),ge>0&&ke++}for(let[he,ue]of i.current)for(let re of ue)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(he);break}n.current.filtered.count=ke}function Z(){var U,ae,je;let me=O();me&&(((U=me.parentElement)==null?void 0:U.firstChild)===me&&((je=(ae=me.closest(fx))==null?void 0:ae.querySelector(Lvt))==null||je.scrollIntoView({block:"nearest"})),me.scrollIntoView({block:"nearest"}))}function O(){var U;return(U=j.current)==null?void 0:U.querySelector(`${The}[aria-selected="true"]`)}function J(){var U;return Array.from(((U=j.current)==null?void 0:U.querySelectorAll(Ihe))||[])}function D(U){let ae=J()[U];ae&&E.setState("value",ae.getAttribute(T1))}function Y(U){var ae;let je=O(),me=J(),ke=me.findIndex(ue=>ue===je),he=me[ke+U];(ae=s.current)!=null&&ae.loop&&(he=ke+U<0?me[me.length-1]:ke+U===me.length?me[0]:me[ke+U]),he&&E.setState("value",he.getAttribute(T1))}function F(U){let ae=O(),je=ae==null?void 0:ae.closest(fx),me;for(;je&&!me;)je=U>0?Wvt(je,fx):Vvt(je,fx),me=je==null?void 0:je.querySelector(Ihe);me?E.setState("value",me.getAttribute(T1)):Y(U)}let H=()=>D(J().length-1),ee=U=>{U.preventDefault(),U.metaKey?H():U.altKey?F(1):Y(1)},ce=U=>{U.preventDefault(),U.metaKey?D(0):U.altKey?F(-1):Y(-1)};return m.createElement(ph.div,{ref:t,tabIndex:-1,...w,"cmdk-root":"",onKeyDown:U=>{var ae;(ae=w.onKeyDown)==null||ae.call(w,U);let je=U.nativeEvent.isComposing||U.keyCode===229;if(!(U.defaultPrevented||je))switch(U.key){case"n":case"j":{b&&U.ctrlKey&&ee(U);break}case"ArrowDown":{ee(U);break}case"p":case"k":{b&&U.ctrlKey&&ce(U);break}case"ArrowUp":{ce(U);break}case"Home":{U.preventDefault(),D(0);break}case"End":{U.preventDefault(),H();break}case"Enter":{U.preventDefault();let me=O();if(me){let ke=new Event($O);me.dispatchEvent(ke)}}}}},m.createElement("label",{"cmdk-label":"",htmlFor:$.inputId,id:$.labelId,style:qvt},l),OS(e,U=>m.createElement(Nhe.Provider,{value:E},m.createElement(Ehe.Provider,{value:$},U))))}),Ovt=m.forwardRef((e,t)=>{var n,r;let i=wo(),o=m.useRef(null),a=m.useContext($he),s=hx(),l=Lhe(e),c=(r=(n=l.current)==null?void 0:n.forceMount)!=null?r:a==null?void 0:a.forceMount;Mm(()=>{if(!c)return s.item(i,a==null?void 0:a.id)},[c]);let d=Rhe(i,o,[e.value,e.children,o],e.keywords),f=MO(),p=mh(T=>T.value&&T.value===d.current),v=mh(T=>c||s.filter()===!1?!0:T.search?T.filtered.items.get(i)>0:!0);m.useEffect(()=>{let T=o.current;if(!(!T||e.disabled))return T.addEventListener($O,_),()=>T.removeEventListener($O,_)},[v,e.onSelect,e.disabled]);function _(){var T,E;y(),(E=(T=l.current).onSelect)==null||E.call(T,d.current)}function y(){f.setState("value",d.current,!0)}if(!v)return null;let{disabled:b,value:w,onSelect:x,forceMount:S,keywords:C,...j}=e;return m.createElement(ph.div,{ref:zl(o,t),...j,id:i,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!p,"data-disabled":!!b,"data-selected":!!p,onPointerMove:b||s.getDisablePointerSelection()?void 0:y,onClick:b?void 0:_},e.children)}),Pvt=m.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...o}=e,a=wo(),s=m.useRef(null),l=m.useRef(null),c=wo(),d=hx(),f=mh(v=>i||d.filter()===!1?!0:v.search?v.filtered.groups.has(a):!0);Mm(()=>d.group(a),[]),Rhe(a,s,[e.value,e.heading,l]);let p=m.useMemo(()=>({id:a,forceMount:i}),[i]);return m.createElement(ph.div,{ref:zl(s,t),...o,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},n&&m.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),OS(e,v=>m.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},m.createElement($he.Provider,{value:p},v))))}),zvt=m.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=m.useRef(null),o=mh(a=>!a.search);return!n&&!o?null:m.createElement(ph.div,{ref:zl(i,t),...r,"cmdk-separator":"",role:"separator"})}),Dvt=m.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,o=MO(),a=mh(c=>c.search),s=mh(c=>c.selectedItemId),l=hx();return m.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),m.createElement(ph.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":s,id:l.inputId,type:"text",value:i?e.value:a,onChange:c=>{i||o.setState("search",c.target.value),n==null||n(c.target.value)}})}),Avt=m.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...i}=e,o=m.useRef(null),a=m.useRef(null),s=mh(c=>c.selectedItemId),l=hx();return m.useEffect(()=>{if(a.current&&o.current){let c=a.current,d=o.current,f,p=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let v=c.offsetHeight;d.style.setProperty("--cmdk-list-height",v.toFixed(1)+"px")})});return p.observe(c),()=>{cancelAnimationFrame(f),p.unobserve(c)}}},[]),m.createElement(ph.div,{ref:zl(o,t),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:l.listId},OS(e,c=>m.createElement("div",{ref:zl(a,l.listInnerRef),"cmdk-list-sizer":""},c)))}),Fvt=m.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:o,container:a,...s}=e;return m.createElement(AU,{open:n,onOpenChange:r},m.createElement(FU,{container:a},m.createElement(BU,{"cmdk-overlay":"",className:i}),m.createElement(UU,{"aria-label":e.label,"cmdk-dialog":"",className:o},m.createElement(Mhe,{ref:t,...s}))))}),Bvt=m.forwardRef((e,t)=>mh(n=>n.filtered.count===0)?m.createElement(ph.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Uvt=m.forwardRef((e,t)=>{let{progress:n,children:r,label:i="Loading...",...o}=e;return m.createElement(ph.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},OS(e,a=>m.createElement("div",{"aria-hidden":!0},a)))}),gu=Object.assign(Mhe,{List:Avt,Item:Ovt,Input:Dvt,Group:Pvt,Separator:zvt,Dialog:Fvt,Empty:Bvt,Loading:Uvt});function Wvt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Vvt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Lhe(e){let t=m.useRef(e);return Mm(()=>{t.current=e}),t}var Mm=typeof window>"u"?m.useEffect:m.useLayoutEffect;function I1(e){let t=m.useRef();return t.current===void 0&&(t.current=e()),t}function mh(e){let t=MO(),n=()=>e(t.snapshot());return m.useSyncExternalStore(t.subscribe,n,n)}function Rhe(e,t,n,r=[]){let i=m.useRef(),o=hx();return Mm(()=>{var a;let s=(()=>{var c;for(let d of n){if(typeof d=="string")return d.trim();if(typeof d=="object"&&"current"in d)return d.current?(c=d.current.textContent)==null?void 0:c.trim():i.current}})(),l=r.map(c=>c.trim());o.value(e,s,l),(a=t.current)==null||a.setAttribute(T1,s),i.current=s}),i}var Hvt=()=>{let[e,t]=m.useState(),n=I1(()=>new Map);return Mm(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,i)=>{n.current.set(r,i),t({})}};function Zvt(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function OS({asChild:e,children:t},n){return e&&m.isValidElement(t)?m.cloneElement(Zvt(t),{ref:t.ref},n(t.props.children)):n(t)}var qvt={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Gvt="_dropdownButton_1yasw_1",Yvt="_input-container_1yasw_6",Kvt="_sm_1yasw_20",Xvt="_content_1yasw_68",Jvt="_tooltip-open_1yasw_135",E1={dropdownButton:Gvt,inputContainer:Yvt,sm:Kvt,content:Xvt,tooltipOpen:Jvt},Qvt="_text_1k6sv_1",eyt="_faded_1k6sv_7",tyt="_ellipsis_1k6sv_11",LO={text:Qvt,faded:eyt,ellipsis:tyt};function Ohe({textSegments:e,truncateLastSegment:t}){return u.jsx(V,{flexGrow:"1",minWidth:"0",maxWidth:"100%",wrap:"nowrap",className:LO.text,"aria-label":e.map(({text:n})=>n).join(""),children:e.map(({text:n,faded:r},i)=>n?u.jsx(q,{className:Te({[LO.faded]:r,[LO.ellipsis]:i===e.length-1&&t}),children:n},i):null)})}const px=8,nyt=2,Phe=2;function ryt(e,{signature:t,optionValue:n,txnIdxCount:r}){const i=r>1,o=e.trim().toLowerCase(),a=n.toLowerCase(),s=v=>{i&&v.push({text:`${uk}(${r})`,faded:!0})};if(o.length===a.length||o.length>px){const v=[{text:`${t.substring(0,px)}...${t.substring(t.length-px)}`}];return s(v),v}const l=a.indexOf(o),c=l+o.length,d=[{start:0,end:Math.min(px,t.length)},{start:Math.max(0,Math.min(l-Phe,t.length)),end:Math.min(t.length,Math.min(c+Phe,t.length))},{start:Math.max(0,t.length-px),end:t.length}].filter(v=>v.end>v.start).sort((v,_)=>v.start-_.start),f=[];for(const v of d){if(!f.length){f.push({...v});continue}const _=f[f.length-1],y=v.start-_.end;y<=0||y<=nyt?_.end=Math.max(_.end,v.end):f.push({...v})}const p=[];for(let v=0;v0&&p.push({text:"...",faded:!0});const y=Math.max(_.start,Math.min(l,_.end)),b=Math.max(_.start,Math.min(c,_.end));b>y?(_.startv)}function iyt(e){return function(t){return u.jsx(Ohe,{textSegments:ryt(t,e)})}}function zhe(e,t){if(t=t.trim(),!t)return;if(t.includes(".")){const s=e.indexOf(t);return s<0?void 0:{startIdx:s,endIdx:s+t.length}}const n=[];let r="";for(let s=0;s="0"&&l<="9"&&(r+=l,n.push(s))}const i=r.indexOf(t);if(i<0)return;const o=n[i],a=n[i+t.length-1]+1;return{startIdx:o,endIdx:a}}function oyt(e,t,n){return function(r){const i=zhe(e,r),o=t>1,a=(i==null?void 0:i.startIdx)??-1,s=(i==null?void 0:i.endIdx)??-1,l=[{text:e.substring(0,a),faded:!0},{text:e.substring(a,s)},{text:e.substring(s),faded:!0},{text:o?`${uk}(${t})`:"",faded:!0},{text:n?`${uk}${n}`:""}];return u.jsx(Ohe,{textSegments:l,truncateLastSegment:!0})}}const ayt=["All","Success","Errors"],RO=["All","Yes","No"];var Mn=(e=>(e.TxnSignature="Txn Sig",e.Error="Error",e.Income="Income",e.Ip="IPv4",e.Tpu="TPU",e))(Mn||{});const syt="errorState",OO="bundle",lyt="landed",uyt="vote",PO="focusBank",mx="search",Dhe="arrival",cyt={triggerControl:()=>{},registerControl:()=>()=>{},resetControl:()=>{},resetAllControls:()=>{}},N1=m.createContext(cyt);function PS(e,t,n){const{registerControl:r}=m.useContext(N1),i=m.useRef(t);i.current=t;const o=m.useRef(n);o.current=n;const[a,s]=m.useState(!1),l=m.useCallback(()=>s(!1),[]);return m.useEffect(()=>r(e,c=>{i.current(c),s(!0)},()=>{o.current(),s(!1)}),[e,r]),{isTooltipOpen:a,closeTooltip:l}}const dyt=30,fyt=20,Ahe=[Mn.TxnSignature,Mn.Ip],Fhe=[Mn.Income],Bhe=[Mn.TxnSignature,Mn.Error,Mn.Income,Mn.Ip,Mn.Tpu],hyt={[Mn.TxnSignature]:"2ZwHLf3Qw7ZE8s3PWW81ELCmGiVhaDS9LWMK4McGL9ySmqvTZSZf3S9EWks4TFbyJt7U6i5RPuLk7PgWVBdy9HY5",[Mn.Error]:"",[Mn.Income]:"Rank #",[Mn.Ip]:"192.0.2.1",[Mn.Tpu]:"udp"};function Uhe({transactions:e,size:t="lg"}){const n=m.useRef(null),[r,i]=m.useState(!1),[o,a]=m.useState(!1),[s,l]=m.useState(""),[c,d]=Uie(s,500),[f,p]=m.useState(),[v,_]=m.useState(Mn.TxnSignature),y=X(_O),b=X(XN),w=X(jg),x=Ee(Ls),S=m.useRef(null),C=m.useRef(null),j=m.useRef(!1),{triggerControl:T,resetControl:E}=m.useContext(N1),$=m.useCallback(ye=>{const Se=ye.mode===Mn.TxnSignature?e.txn_signature:ye.mode===Mn.Ip?e.txn_source_ipv4:void 0;return Se?Se.reduce((Ce,Be,Ge)=>(Be===ye.text&&Ce.push(Ge),Ce),[]):[]},[e.txn_signature,e.txn_source_ipv4]),A=m.useCallback(ye=>{var Ge,xt,St;const Se=e.txn_bank_idx[ye],Ce=document.getElementById(bO(Se)),Be=(Ge=Ce==null?void 0:Ce.getElementsByTagName("canvas"))==null?void 0:Ge[0];if(Ce&&Be){if(!Rze(Be)){Be.scrollIntoView({block:"nearest"});const ut=Be.getBoundingClientRect(),ct=(xt=document.getElementById("transaction-bars-controls"))==null?void 0:xt.getBoundingClientRect();ct&&ct.top-epe<=0&&ut.top{if(Se!==ct){ut.redraw();return}const bt=ut.scales[Vt],Qe=bt.min??-1/0,Ke=bt.max??1/0,De=Ke-Qe,Dt=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye-1]!==e.txn_microblock_id[ye],pn=e.txn_from_bundle[ye]&&e.txn_microblock_id[ye+1]!==e.txn_microblock_id[ye],Yn=Number((Dt||!e.txn_from_bundle[ye]?e.txn_mb_start_timestamps_nanos[ye]:e.txn_preload_end_timestamps_nanos[ye])-e.start_timestamp_nanos),fr=Number((pn||!e.txn_from_bundle[ye]?e.txn_mb_end_timestamps_nanos[ye]:e.txn_end_timestamps_nanos[ye])-e.start_timestamp_nanos),Kn=(fr-Yn)*dyt,wr=(fr-Yn)*fyt,Pn=frKe,$r=De>Kn,tr=De{if(Pn||$r||tr){let kr=Math.max(ut.data[0][0],Yn-Kn/2);const ni=kr+Kn;ni>ut.data[0][ut.data[0].length-1]&&(kr=ni-Kn),ut.setScale(Vt,{min:kr,max:ni})}xhe(ye)})})},[e,T,x]),M=m.useCallback(ye=>{const Se={current:0,total:ye.length-1,txnIdxs:ye};p(Se);const Ce=ye[Se.current];A(Ce)},[A]),P=m.useCallback(ye=>{var Ce;const Se=$(ye);Se.length&&(l(ye.text),_(ye.mode),M(Se),j.current=!0,(Ce=n.current)==null||Ce.focus())},[$,M]),te=m.useCallback(()=>{E(PO),E(Dhe),xhe(void 0),p(void 0),a(!1)},[E]),Z=m.useCallback(()=>{te(),l(""),d(""),x((ye,Se)=>{ye.setScale(Vt,{min:ye.data[0][0],max:ye.data[0][ye.data[0].length-1]})})},[te,d,x]),{isTooltipOpen:O,closeTooltip:J}=PS(mx,P,Z);m.useEffect(()=>{y&&(f!=null&&f.txnIdxs.some(ye=>!y.has(ye)))&&Z()},[y,Z,f==null?void 0:f.txnIdxs]),m.useEffect(()=>{f===void 0&&Fhe.includes(v)&&_(Bhe[0])},[f,v]);const D=m.useCallback((ye,Se,Ce)=>ye.reduce((Be,Ge,xt)=>{var ct;if(y&&!y.has(xt)||Ce!=null&&Ce(Ge))return Be;const St=((ct=Be[Ge])==null?void 0:ct.txnIdxs)??[];St.push(xt);const ut=Se(Ge,St);return Be[Ge]=ut,Be},{}),[y]),Y=m.useMemo(()=>D(e.txn_signature,(ye,Se)=>{const Ce=ye.toLowerCase();return{getLabelEl:iyt({signature:ye,optionValue:Ce,txnIdxCount:Se.length}),txnIdxs:Se,signatureLower:Ce,signature:ye}}),[D,e.txn_signature]),F=m.useMemo(()=>D(e.txn_error_code,(ye,Se)=>({txnIdxs:Se,label:sN[ye]}),ye=>ye===0),[D,e.txn_error_code]),H=m.useMemo(()=>{const ye=b.reduce((Se,Ce)=>{var Ge,xt;if(!Ce.gossip||!((Ge=Ce.info)!=null&&Ge.name))return Se;const Be=Object.values(Ce.gossip.sockets);for(const St of Be)Se.set(HN(St),(xt=Ce.info)==null?void 0:xt.name);return Se},new Map);return D(e.txn_source_ipv4,(Se,Ce)=>{var Be;return{getLabelEl:oyt(Se,Ce.length,ye.get(Se)),txnIdxs:Ce,label:`${Se} ${ye.get(Se)??""}`,queryValue:`${Se}${(Be=ye.get(Se)??"")==null?void 0:Be.toLowerCase()}`}})},[D,b,e.txn_source_ipv4]),ee=m.useMemo(()=>D(e.txn_source_tpu,(ye,Se)=>({txnIdxs:Se,label:ye})),[D,e.txn_source_tpu]),ce=m.useMemo(()=>e.txn_transaction_fee.reduce((ye,Se,Ce)=>(y&&!y.has(Ce)||ye.push({txnIdx:Ce,income:Number(md(e,Ce))}),ye),[]).sort(({income:ye},{income:Se})=>Se-ye),[y,e]),U=m.useCallback((ye,Se)=>{switch(l(ye),d(ye),i(!1),a(!0),v){case Mn.TxnSignature:{const Ce=Y[ye].txnIdxs;M(Ce);break}case Mn.Error:{if(Se!==void 0){const Ce=F[Number(Se)].txnIdxs;M(Ce)}break}case Mn.Ip:{const Ce=H[Se??ye];if(Ce){const Be=Ce.txnIdxs;M(Be)}break}case Mn.Tpu:{if(Se!==void 0){const Ce=ee[Se].txnIdxs;M(Ce)}break}case Mn.Income:break}},[d,v,Y,M,F,H,ee]),ae=ye=>()=>{p(Se=>{if(!Se)return;let{current:Ce,total:Be,txnIdxs:Ge}=Se;ye==="prev"?Ce--:ye==="next"&&Ce++,Ce>Be&&(Ce=0),Ce<0&&(Ce=Be);const xt=Ge[Ce];return A(xt),{current:Ce,total:Be,txnIdxs:Ge}})},je=ye=>()=>{switch(_(ye),Z(),ye){case Mn.TxnSignature:case Mn.Ip:case Mn.Error:case Mn.Tpu:{pe.current=!0,i(!0),setTimeout(()=>{var Se;(Se=n.current)==null||Se.focus()},250);break}case Mn.Income:{const Se=ce.map(({txnIdx:Be})=>Be);p({current:0,total:Se.length,txnIdxs:Se});const Ce=Se[0];A(Ce);break}}},me=Ahe.includes(v),ke=me&&s!==c,he=r&&!me||!ke,ue=f&&f.total>0,re=s||Fhe.includes(v),ge=!Ahe.includes(v),$e=m.useRef(ge);$e.current=ge;const pe=m.useRef(!1);return u.jsxs(V,{children:[u.jsxs(GZ,{children:[u.jsx(YZ,{children:u.jsxs(hs,{variant:"surface",className:E1.dropdownButton,onFocusCapture:ye=>ye.preventDefault(),onFocus:ye=>{ye.preventDefault()},children:[v,u.jsx(U7,{})]})}),u.jsx(XZ,{onCloseAutoFocus:ye=>ye.preventDefault(),children:Bhe.map(ye=>u.jsx(JZ,{onSelect:je(ye),children:ye},ye))})]}),u.jsx(gu,{loop:!0,className:E1.root,shouldFilter:!1,ref:S,children:u.jsxs(l7,{open:r,onOpenChange:ye=>i(ye),children:[u.jsx(DV,{asChild:!0,children:u.jsx(V,{children:u.jsx(ui,{className:cx.chartControlTooltip,content:`Applied: ${v}`,open:O,side:"bottom",children:u.jsxs(V,{align:"center",className:Te(E1.inputContainer,"rt-TextFieldRoot","rt-variant-surface",{[E1.sm]:t==="sm",[E1.tooltipOpen]:O}),children:[u.jsx(gu.Input,{placeholder:hyt[v],onFocus:()=>{j.current?j.current=!1:i(!0)},onKeyDown:ye=>{ye.key==="Enter"&&i(!0)},value:s,onValueChange:ye=>{l(ye),te(),i(!0)},onBlur:J,readOnly:ge,ref:n}),(ue||re)&&u.jsxs(V,{align:"center",children:[ue&&u.jsxs(u.Fragment,{children:[u.jsxs(q,{style:{paddingRight:"var(--space-2)",cursor:"default"},children:[f.current+1,"\xA0of\xA0",f.total+1]}),u.jsx(nl,{onClick:ae("prev"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("prev")()},children:u.jsx(YFe,{})}),u.jsx(nl,{onClick:ae("next"),variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&ae("next")()},children:u.jsx(Hie,{})})]}),re&&u.jsx(nl,{onClick:Z,variant:"ghost",onKeyDown:ye=>{ye.key==="Enter"&&Z()},children:u.jsx(B$,{})})]})]})})})}),u.jsx(u7,{container:w,children:u.jsx(c7,{className:E1.content,onOpenAutoFocus:ye=>{pe.current?setTimeout(()=>{pe.current=!1},250):ye.preventDefault()},onInteractOutside:ye=>{(ye.target===n.current||pe.current)&&ye.preventDefault()},style:{outline:"unset"},children:u.jsxs(gu.List,{ref:C,style:{maxHeight:"min(300px, var(--radix-popover-content-available-height))"},children:[s.length>1&&ke&&u.jsx(gu.Loading,{children:u.jsx(q,{children:"Loading..."})}),he&&u.jsxs(u.Fragment,{children:[v===Mn.TxnSignature&&u.jsx(pyt,{optionMap:Y,inputValue:c,onSelect:U,showAllOptions:o}),v===Mn.Error&&u.jsx(Whe,{onSelect:U,optionMap:F}),v===Mn.Ip&&u.jsx(myt,{onSelect:U,optionMap:H,inputValue:c,showAllOptions:o}),v===Mn.Tpu&&u.jsx(Whe,{onSelect:U,optionMap:ee})]})]})})})]})})]})}const pyt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.toLowerCase();function a([,{signatureLower:c}]){return r||c.includes(o)}function s([,{signatureLower:c}]){return c===o?3:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([,{getLabelEl:c,signatureLower:d,signature:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:d,onSelect:()=>{n(f)},children:c(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),myt=m.memo(function({optionMap:e,inputValue:t,onSelect:n,showAllOptions:r}){const i=m.useMemo(()=>Object.entries(e),[e]),o=t.trim().toLowerCase();function a([,{label:c,queryValue:d}]){return r||!!zhe(c,o)||d.includes(o)}function s([,{label:c,txnIdxs:d}]){return c===o?1/0:d.length>1?3+d.length:c.startsWith(o)||c.endsWith(o)?2:c.includes(o)?1:0}function l(c,d){return s(d)-s(c)}return u.jsxs(u.Fragment,{children:[!!i.length&&u.jsx(gu.Group,{heading:"Results",children:i.filter(a).sort(l).map(([c,{getLabelEl:d,label:f}],p)=>{if(!(p>100))return u.jsx(gu.Item,{value:f,onSelect:()=>{n(f,c)},children:d(r?"":t)},f)})}),u.jsx(gu.Empty,{children:"No results found."})]})}),Whe=m.memo(function({onSelect:e,optionMap:t}){return m.useMemo(()=>Object.entries(t),[t]).map(([n,{label:r,txnIdxs:i}],o)=>u.jsx(gu.Item,{onSelect:()=>{e(r,n)},children:u.jsxs(q,{children:[r," (",i.length,")"]})},n))});function zS(e,t,n){const r=m.useRef(null),i=m.useCallback(s=>{var l,c;t(s),(l=r.current)==null||l.focus(s),(c=document.getElementById(bO(0)))==null||c.scrollIntoView({behavior:"smooth",block:"nearest"})},[t]),{isTooltipOpen:o,closeTooltip:a}=PS(e,i,n);return{isTooltipOpen:o,closeTooltip:a,toggleGroupRef:r}}function gyt(e){const[t,n]=m.useState(!1);return u.jsxs(u.Fragment,{children:[u.jsx("div",{className:cx.minimizeButton,children:u.jsx(nl,{variant:"ghost",onClick:()=>n(r=>!r),children:t?u.jsx(A$,{}):u.jsx(F$,{})})}),!t&&u.jsx(vyt,{...e})]})}function vyt(e){const{transactions:t,maxTs:n}=e,r=Ee(ax),i=Ee(xO),o=Ee(ES),a=Ee(CO),s=Ee(jO);return Pg(()=>{r(dhe),B1t(),i(1),o(void 0),wO(0),a(-1),s(dn.DEFAULT)}),Hn("(max-width: 500px)")?u.jsx(yyt,{...e}):u.jsxs(V,{gap:"2",align:"center",wrap:"wrap",children:[u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Vhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Zhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(qhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Ghe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Yhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Khe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Jhe,{transactions:t}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Hhe,{transactions:t,maxTs:n}),u.jsx(ps,{orientation:"vertical",size:"2"}),u.jsx(Uhe,{transactions:t})]})}function yyt({transactions:e,maxTs:t}){return u.jsxs(V,{direction:"column",gap:"3",children:[u.jsx(Vhe,{transactions:e,maxTs:t}),u.jsx(Zhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(qhe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Ghe,{transactions:e,maxTs:t,isMobileView:!0}),u.jsx(Yhe,{transactions:e}),u.jsx(Khe,{transactions:e}),u.jsx("div",{style:{marginBottom:"8px"},children:u.jsx(Jhe,{transactions:e})}),u.jsx(Hhe,{transactions:e,maxTs:t}),u.jsx(Uhe,{transactions:e,size:"sm"})]})}function Vhe({transactions:e,maxTs:t}){const n=Ee(Ls),r=Ee(O1t),[i,o]=m.useState("All"),a=m.useCallback(d=>{if(!e)return;o(d);const f=d==="Success"?"No":d==="Errors"?"Yes":"All";n((p,v)=>r(p,e,v,t,f))},[r,t,e,n]),{isTooltipOpen:s,closeTooltip:l,toggleGroupRef:c}=zS(syt,a,()=>a("All"));return u.jsxs(V,{gap:"2",children:[u.jsx(LS,{ref:c,options:ayt,optionColors:{Success:$N,Errors:MN},value:i,onChange:d=>d&&a(d),isTooltipOpen:s,closeTooltip:l}),u.jsx(byt,{transactions:e,isDisabled:i==="Success"})]})}function byt({transactions:e,isDisabled:t}){const n=Ee(y6),r=X(_O),[i,o]=m.useState("0"),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_error_code.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_error_code)},[r,e.txn_error_code]);return m.useEffect(()=>{a[S1]||(o("0"),wO(0))},[a]),u.jsxs(H7,{onValueChange:s=>{o(s),wO(Number(s)),n(l=>l.redraw())},size:"1",value:i,disabled:t,children:[u.jsx(Z7,{placeholder:"Txn State",style:{height:"22px",width:"90px"}}),u.jsx(q7,{children:u.jsxs(G7,{children:[u.jsx(My,{value:"0",children:"None"}),Object.keys(a).map(s=>s==="0"?null:u.jsxs(My,{value:`${s}`,children:[sN[s]," (",a[s].length,")"]},s))]})})]})}const zO="none";function Hhe({transactions:e,maxTs:t}){const n=Ee(y6),r=X(_O),[i,o]=m.useState(zO),a=m.useMemo(()=>{if(r!=null&&r.size){const s=e.txn_source_tpu.filter((l,c)=>r.has(c));return rt.groupBy(s)}return rt.groupBy(e.txn_source_tpu)},[r,e.txn_source_tpu]);return m.useEffect(()=>{a[C1]||(o(""),_he(""))},[a]),u.jsxs(V,{gap:"2",align:"center",children:[u.jsx(q,{className:SO.label,children:"TPU"}),u.jsxs(H7,{onValueChange:s=>{o(s),_he(s===zO?"":s),n(l=>l.redraw())},size:"1",value:i,children:[u.jsx(Z7,{placeholder:"TPU",style:{height:"22px",width:"90px"}}),u.jsx(q7,{children:u.jsxs(G7,{children:[u.jsx(My,{value:zO,children:"None"}),Object.keys(a).map(s=>u.jsxs(My,{value:s,children:[s," (",a[s].length,")"]},s))]})})]})]})}function Zhe({transactions:e,maxTs:t,isMobileView:n}){const[r,i]=m.useState("All"),o=Ee(Ls),a=Ee(P1t),s=m.useCallback(f=>{e&&(i(f),o((p,v)=>a(p,e,v,t,f)))},[a,t,e,o]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(OO,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Bundle",options:RO,value:r,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function qhe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Ls),i=Ee(z1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(lyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Landed",options:RO,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Ghe({transactions:e,maxTs:t,isMobileView:n}){const r=Ee(Ls),i=Ee(D1t),[o,a]=m.useState("All"),s=m.useCallback(f=>{e&&(a(f),r((p,v)=>i(p,e,v,t,f)))},[i,t,e,r]),{isTooltipOpen:l,closeTooltip:c,toggleGroupRef:d}=zS(uyt,s,()=>s("All"));return u.jsx(LS,{ref:d,label:"Vote",options:RO,value:o,onChange:f=>f&&s(f),isTooltipOpen:l,closeTooltip:c,hasMinTextWidth:n})}function Yhe({transactions:e}){return u.jsxs(V,{gap:"2",children:[u.jsx(_yt,{transactions:e}),u.jsx(xyt,{transactions:e}),u.jsx(Syt,{transactions:e})]})}function _yt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(U1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.FEES)})};return u.jsx(dx,{label:"Fees",checked:t,onCheckedChange:a,color:kg})}function xyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(W1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.TIPS)})};return u.jsx(dx,{label:"Tips",checked:t,onCheckedChange:a,color:Gf})}function Khe({transactions:e}){return u.jsxs(V,{gap:"2",children:[u.jsx(q,{className:SO.label,children:"CU"}),u.jsx(wyt,{transactions:e}),u.jsx(kyt,{transactions:e})]})}function wyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(V1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_CONSUMED)})};return u.jsx(dx,{label:"Consumed",checked:t,onCheckedChange:a,color:pd})}function kyt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(H1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.CUS_REQUESTED)})};return u.jsx(dx,{label:"Requested",checked:t,onCheckedChange:a,color:mk})}function Syt({transactions:e}){const[t,n]=m.useState(!1),r=Ee(Ls),i=Ee(Z1t),o=Ee(lx),a=s=>{n(s),r((l,c)=>{s?i(l,e,c):o(l,Ci.INCOME_CUS)})};return u.jsx(dx,{label:"Income per CU",checked:t,onCheckedChange:a,color:kp})}const Lm=12,Xhe=100;function Cyt({transactions:e,sliderMin:t,sliderMax:n,beforeZeroMulti:r,bboxWidth:i}){const o=m.useMemo(()=>{if(t>=n||!e.txn_arrival_timestamps_nanos.length)return;const a=n-t;function s(f){return f>=0?f:f/r}const l=e.txn_arrival_timestamps_nanos.reduce((f,p)=>{const v=(s(Number(p-e.start_timestamp_nanos))-t)/a,_=Math.trunc(v*Xhe);return f[_]+=1,f},new Array(Xhe).fill(0)),c=rt.max(l)??1,d=l.reduce((f,p,v)=>{const _=i*((v+1)/l.length),y=Lm-Lm*(p/c);return f+`${_},${y} `},"");return`0,${Lm}, ${d}, ${i},${Lm}`},[i,r,n,t,e.start_timestamp_nanos,e.txn_arrival_timestamps_nanos]);return u.jsx("svg",{height:`${Lm}px`,width:"100%",viewBox:`0 0 ${i} ${Lm}`,xmlns:"http://www.w3.org/2000/svg",style:{marginBottom:"-5px",borderRadius:"4px"},children:u.jsx("polyline",{points:o,fill:"rgba(186, 167, 255, 0.5)",stroke:"rgb(186, 167, 255)",strokeWidth:".5"})})}const DO=.3,jyt=.025;function Jhe({transactions:e}){const t=m.useMemo(()=>fO(e),[e]),n=m.useMemo(()=>-Math.ceil(t*DO),[t]),[r,i]=m.useState([n,t]),o=Ee(Ls),a=Ee(A1t),[s,{width:l}]=Ss(),c=`${Math.ceil(DO/(1+DO)*100)}%`,d=m.useMemo(()=>{if(!e.txn_arrival_timestamps_nanos.length)return 0;const j=e.txn_arrival_timestamps_nanos.reduce((T,E)=>Ej<0?p*j:j,[p]),_=m.useCallback(j=>{if(!(j.length<2))return{min:v(j[0]),max:v(j[1])}},[v]),y=m.useCallback(j=>`${Math.round(v(j)/1e6).toLocaleString()} ms`,[v]),b=y(r[0]),w=y(r[1]),x=m.useCallback(j=>{o((T,E)=>a(T,e,E,t,_(j)))},[a,_,e,t,o]),S=Ua(j=>{requestAnimationFrame(()=>x(j))},100,{leading:!1,trailing:!0}),C=m.useCallback(j=>{i(j),x(j)},[x]);return m.useEffect(()=>{C([n,t])},[n,t,C]),PS(Dhe,C,()=>C([n,t])),u.jsxs(V,{align:"center",gap:"2",children:[u.jsx(q,{className:cx.arrivalLabel,children:"Arrival"}),u.jsxs("div",{className:cx.slider,ref:s,style:{"--slot-start-pct":c,marginTop:`-${Lm+6}px`,"--min-value-label":`"${b}"`,"--max-value-label":`"${w}"`},children:[u.jsx(Cyt,{transactions:e,sliderMin:n,sliderMax:t,beforeZeroMulti:p,bboxWidth:l}),u.jsx(nq,{style:{"--slider-track-size":"4px"},value:r,min:n,max:t,onValueChange:j=>{const T=j[0]!==r[0]?0:1;Math.abs(j[T]){const $=E.valToPos(j[T],Vt);E.setCursor({left:$,top:0})}),S(j)}})]})]})}function Tyt({transactionsRef:e,setTxnIdx:t,setTxnState:n,transactionsBundleStats:r}){function i(o,a,s){var d,f;let l=o.data[1][s];o.data[0][s]>a&&(l=o.data[1][s-1]),l==null&&o.data[1][s-1]!=null&&(l=o.data[1][s-1]);const c=((d=o.cursor.idxs)==null?void 0:d.length)&&o.cursor.idxs[1]===void 0;if(l==null||!e.current||c)return!1;{const p=ihe(a,e.current,l,(f=r[l])==null?void 0:f.bundleTxnIdx);return n(p),t(l),!0}}return ix({elId:"txn-bars-tooltip",closeTooltipElId:"txn-bars-tooltip-close",showOnCursor:i,showPointer:!0})}const DS=20;function Iyt({bankIdx:e,transactions:t,maxTs:n,isFirstChart:r,isLastChart:i,hide:o,isSelected:a,isFocused:s}){const l=r||i,c=X(Hfe)-DS,d=X(Zfe)-DS,f=Ee(CO),p=Ee(jO),v=m.useRef(null),_=m.useRef(t);_.current=t;const y=m.useMemo(()=>jS(t,e,n,Object.values(ca().get(ax))),[e,n,t]),b=m.useCallback(C=>{C.setData(jS(t,e,n,Object.values(ca().get(ax))),!1)},[e,n,t]),w=m.useMemo(()=>t.txn_from_bundle.map((C,j)=>{if(C)return SS(t,j)}),[t]),x=m.useMemo(()=>{if(y!=null&&y.length)return{width:0,height:0,class:tO.chart,drawOrder:["series","axes"],scales:{[Vt]:{time:!1}},axes:[{scale:Vt,stroke:sr,values:(C,j)=>l?j.map(T=>N1t(T,1e6)+"ms"):[],size:l?40:0,space:100,grid:{stroke:Rne},border:{show:!0,width:1/devicePixelRatio,stroke:sr},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},side:r?0:2},{border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:"rgba(0,0,0,0)"}],legend:{markers:{width:0},show:!1},padding:[0,DS,0,DS],series:[{scale:Vt},{label:`Bank ${e}`},{}],plugins:[nvt(_,w),Tyt({transactionsRef:_,setTxnIdx:f,setTxnState:p,transactionsBundleStats:w}),nO(),lO({factor:.75}),cO(),pO()],hooks:{ready:[C=>{requestAnimationFrame(()=>{F1t(C,e)})}]}}},[e,y==null?void 0:y.length,r,l,f,p,w]),S=X(xO);return!y||!x||o?null:u.jsx("div",{style:{flex:1,marginLeft:`${c}px`,marginRight:`${d}px`,display:o?"none":"block",height:a?`${Math.max(2,S)*90+40}px`:l?"170px":"130px"},ref:v,children:u.jsx($s,{children:({height:C,width:j})=>(x.width=j,x.height=C,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:bO(e),className:Te(s&&tO.focused),options:x,data:y,onCreate:b})}))})})}const Eyt="_container_14qh6_1",Nyt="_label_14qh6_10",Qhe={container:Eyt,label:Nyt};function $yt({setSelected:e,bankIdx:t,isSelected:n}){return u.jsxs("div",{className:Qhe.container,children:[u.jsxs(q,{className:Qhe.label,children:["Bank ",t]}),u.jsx(hs,{variant:"ghost",size:"1",onClick:()=>e(),children:n?u.jsx(lBe,{color:"grey"}):u.jsx(aBe,{color:"grey"})})]})}const Myt=kb+Sb,epe=Myt+Ute;function Lyt(){var d,f,p,v,_;const[e,t]=m.useState();PS(PO,y=>t(y),()=>t(void 0));const n=X(Cn),r=pl(n),i=m.useRef((d=r.response)==null?void 0:d.transactions);i.current=(f=r.response)==null?void 0:f.transactions;const o=X(Nb)[To.bank],a=Ee(che),s=m.useMemo(()=>{var y;return(y=r.response)!=null&&y.transactions?fO(r.response.transactions,!0):0},[(p=r.response)==null?void 0:p.transactions]);m.useMemo(()=>{var b;if(!((b=r.response)!=null&&b.transactions))return;const y=[];for(let w=0;w{var w;if((w=r.response)!=null&&w.transactions&&!(l!==void 0&&l!==b))return u.jsxs("div",{style:{position:"relative"},children:[(l===void 0||l===b)&&u.jsx($yt,{bankIdx:b,setSelected:()=>c(x=>x===void 0?b:void 0),isSelected:l===b}),u.jsx(Iyt,{bankIdx:b,transactions:r.response.transactions,maxTs:s,isFirstChart:b===0&&o>1,isLastChart:b===o-1||l!==void 0,isSelected:l===b,hide:l!==void 0&&l!==b,isFocused:e===b},`${b}`)]},b)})]}):null}const Ryt="_state_1bdpv_11",Oyt="_cu-bars_1bdpv_24",Pyt="_duration-container_1bdpv_30",zyt="_value-text_1bdpv_38",Dyt="_unit_1bdpv_42",gx={state:Ryt,cuBars:Oyt,durationContainer:Pyt,valueText:zyt,unit:Dyt},Ayt="_separator_1pgc5_1",Fyt={separator:Ayt};function Rm({my:e,mb:t}){return u.jsx(ps,{size:"4",my:e??"1",mb:t,className:Fyt.separator})}function Byt(){var s,l;const e=X(Cn),t=pl(e),n=X(CO),r=X(jO),i=(s=t.response)==null?void 0:s.transactions,o=m.useMemo(()=>{if(i&&!(n<0)&&i.txn_from_bundle[n])return SS(i,n)},[i,n]),a=i!=null&&i.txn_arrival_timestamps_nanos[n]?kk(i.txn_arrival_timestamps_nanos[n]):void 0;return u.jsx(ox,{elId:"txn-bars-tooltip",children:(i==null?void 0:i.txn_bank_idx[n])!=null&&u.jsxs(V,{direction:"column",children:[u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:gx.state,style:{color:va[r]},children:r}),u.jsx(hs,{variant:"ghost",size:"1",id:"txn-bars-tooltip-close",children:u.jsx(nBe,{color:sr})})]}),u.jsx(Rm,{}),u.jsxs(V,{direction:"column",children:[u.jsx(Zyt,{txnIdx:n,transactions:i}),u.jsx(AO,{label:"Bundle",value:i.txn_from_bundle[n],append:o?`(${o.order} of ${o.totalCount})`:void 0}),u.jsx(AO,{label:"Vote",value:i.txn_is_simple_vote[n]}),u.jsx(AO,{label:"Landed",value:i.txn_landed[n]}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Fees",value:`${(i.txn_priority_fee[n]+i.txn_transaction_fee[n]).toLocaleString()}`,color:kg}),u.jsx(Ur,{label:"Tips",value:`${(l=i.txn_tips[n])==null?void 0:l.toLocaleString()}`,color:Gf}),u.jsx(Rm,{}),u.jsx(Vyt,{transactions:i,txnIdx:n}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Txn Index",value:`${n}`}),u.jsx(Ur,{label:"Microblock ID",value:`${i.txn_microblock_id[n]}`}),u.jsx(Ur,{label:"Bank ID",value:`${i.txn_bank_idx[n]}`}),u.jsx(Ur,{label:"Slot to Arrival",value:(Number(i.txn_arrival_timestamps_nanos[n]-i.start_timestamp_nanos)/1e6).toLocaleString(),unit:"ms"}),u.jsx(Ur,{label:"Arrival to Scheduled",value:(Number(i.txn_start_timestamps_nanos[n]-i.txn_arrival_timestamps_nanos[n])/1e6).toLocaleString(),unit:"ms"}),a&&u.jsx(Ur,{label:"Arrival Time",value:a.inNanos}),u.jsx(Uyt,{transactions:i,txnIdx:n}),u.jsx(Hyt,{transactions:i,txnIdx:n,bundleTxnIdx:o==null?void 0:o.bundleTxnIdx}),u.jsx(Rm,{}),u.jsx(Ur,{label:"Txn Sig",value:i.txn_signature[n],copyValue:i.txn_signature[n],truncateValue:!0})]})]})})}function Uyt({transactions:e,txnIdx:t}){const n=X(XN),r=e.txn_source_ipv4[t],i=m.useMemo(()=>{var a;const o=n.find(s=>s.gossip?Object.values(s.gossip.sockets).some(l=>HN(l)===r):!1);return o?(a=o.info)!=null&&a.name?o.info.name:o.identity_pubkey:void 0},[r,n]);return u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:"IPv4 (tpu)",value:`${r} (${e.txn_source_tpu[t]})`}),i&&u.jsx(Ur,{label:"Validator",value:i,truncateValue:!0})]})}function Wyt({transactions:e,txnIdx:t}){var o;const{rankings:n,totalRanks:r}=m.useMemo(()=>vhe(e),[e]),i=n.has(t)?` (${n.get(t)} of ${r})`:"";return u.jsx(Ur,{label:"CU Income",value:`${(o=ghe(e,t))==null?void 0:o.toLocaleString(void 0,{maximumFractionDigits:Uo})}${i}`,color:kp})}function Vyt({transactions:e,txnIdx:t}){var r,i;const n=e.txn_compute_units_requested[t]?Math.trunc(e.txn_compute_units_consumed[t]/e.txn_compute_units_requested[t]*100):100;return u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:"CU Consumed",value:`${(r=e.txn_compute_units_consumed[t])==null?void 0:r.toLocaleString()}`,color:pd}),u.jsx(Ur,{label:"CU Requested",value:`${(i=e.txn_compute_units_requested[t])==null?void 0:i.toLocaleString()}`,color:mk}),u.jsx(Wyt,{transactions:e,txnIdx:t}),u.jsx(V,{children:u.jsxs("svg",{height:"8",fill:"none",className:gx.cuBars,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${n}%`,opacity:.6,fill:pd}),u.jsx("rect",{height:"8",width:`${100-n}%`,x:`${n}%`,opacity:.2,fill:mk})]})})]})}function Hyt({transactions:e,txnIdx:t,bundleTxnIdx:n}){const r=m.useMemo(()=>hO(e,t,n),[n,e,t]),i=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(p=>Number(p))),s=Math.max(0,Number(r.preLoading)/a*100),l=Math.max(0,Number(r.validating)/a*100),c=Math.max(0,Number(r.loading)/a*100),d=Math.max(0,Number(r.execute)/a*100),f=Math.max(0,Number(r.postExecute)/a*100);return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f}},[r]),o=m.useMemo(()=>{if(!r)return;const a=rt.sum(rt.values(r).map(b=>Number(b))),s=Ha(r.preLoading),l=Ha(r.validating),c=Ha(r.loading),d=Ha(r.execute),f=Ha(r.postExecute),p=Ha(a),v=e.txn_mb_start_timestamps_nanos[t],_=e.txn_mb_end_timestamps_nanos[t],y=n!=null&&n.length&&e.txn_from_bundle[t]?Ha(_-v):null;return{preLoading:s,validating:l,loading:c,execute:d,postExecute:f,total:p,bundleTotal:y}},[e,r,t,n]);if(!(!r||!i||!o))return u.jsxs(u.Fragment,{children:[u.jsx(Rm,{}),u.jsx(V,{children:u.jsxs("svg",{height:"36",className:gx.durationContainer,xmlns:"http://www.w3.org/2000/svg",children:[u.jsx("rect",{height:"8",width:`${i.preLoading}%`,fill:va[dn.PRELOADING]}),Vi?u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading+i.loading}%`,y:"40%"})]}):u.jsxs(u.Fragment,{children:[u.jsx("rect",{height:"8",width:`${i.validating}%`,fill:va[dn.VALIDATE],x:`${i.preLoading}%`,y:"20%"}),u.jsx("rect",{height:"8",width:`${i.loading}%`,fill:va[dn.LOADING],x:`${i.preLoading+i.validating}%`,y:"40%"})]}),u.jsx("rect",{height:"8",width:`${i.execute}%`,fill:va[dn.EXECUTE],x:`${i.preLoading+i.validating+i.loading}%`,y:"60%"}),u.jsx("rect",{height:"8",width:`${i.postExecute}%`,fill:va[dn.POST_EXECUTE],x:`${i.preLoading+i.validating+i.loading+i.execute}%`,y:"80%"})]})}),u.jsx(Ur,{label:dn.PRELOADING,color:va[dn.PRELOADING],value:o.preLoading.value,unit:o.preLoading.unit}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit}),u.jsx(Ur,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit})]}):u.jsxs(u.Fragment,{children:[u.jsx(Ur,{label:dn.VALIDATE,color:va[dn.VALIDATE],value:o.validating.value,unit:o.validating.unit}),u.jsx(Ur,{label:dn.LOADING,color:va[dn.LOADING],value:o.loading.value,unit:o.loading.unit})]}),u.jsx(Ur,{label:dn.EXECUTE,color:va[dn.EXECUTE],value:o.execute.value,unit:o.execute.unit}),u.jsx(Ur,{label:dn.POST_EXECUTE,color:va[dn.POST_EXECUTE],value:o.postExecute.value,unit:o.postExecute.unit}),u.jsx(Ur,{label:"Total",value:o.total.value,unit:o.total.unit}),o.bundleTotal&&u.jsx(Ur,{label:"Total (Bundle)",value:o.bundleTotal.value,unit:o.bundleTotal.unit})]})}function Zyt({txnIdx:e,transactions:t}){const n=t.txn_error_code[e],r=n!==0;return u.jsx(Ur,{label:r?"Error":"Success",value:r?`${sN[n]}`:"Yes",color:r?MN:$N})}function Ur({label:e,value:t,color:n,unit:r,copyValue:i,truncateValue:o}){const a=typeof t=="number"?t.toLocaleString():t;return u.jsxs(V,{justify:"between",gap:"4",style:{"--color-override":n},children:[u.jsx(V,{minWidth:"105px",children:u.jsx(q,{wrap:"nowrap",children:e})}),u.jsx(V,{minWidth:"0",maxWidth:"210px",align:"center",children:u.jsxs(Dg,{value:i,color:Xte,size:"14px",children:[u.jsx(q,{className:gx.valueText,align:"right",truncate:o,children:a}),r&&u.jsx(q,{className:gx.unit,children:r})]})})]})}function AO({value:e,append:t,...n}){let r=e?"Yes":"No";return t&&(r+=` ${t}`),u.jsx(Ur,{...n,value:r})}function qyt(){var n;const e=X(Cn),t=pl(e);return!e||!((n=t.response)!=null&&n.transactions)?u.jsx(Gyt,{}):u.jsxs(u.Fragment,{children:[u.jsx(so,{id:"txn-bars-card",children:u.jsx(Lyt,{},e)}),u.jsx(Byt,{})]})}function Gyt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"400px",justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Banks..."})})}const Yyt="_search-grid_gudx6_1",Kyt="_search-label_gudx6_5",Xyt="_search-field_gudx6_11",Jyt="_error-text_gudx6_15",Qyt="_quick-search-card_gudx6_19",ebt="_quick-search-header_gudx6_26",tbt="_quick-search-slot_gudx6_37",nbt="_clickable_gudx6_40",rbt="_quick-search-metric_gudx6_51",hc={searchGrid:Yyt,searchLabel:Kyt,searchField:Xyt,errorText:Jyt,quickSearchCard:Qyt,quickSearchHeader:ebt,quickSearchSlot:tbt,clickable:nbt,quickSearchMetric:rbt},ibt=e=>m.createElement("svg",{width:18,height:18,viewBox:"0 0 18 18",fill:"#D86363",xmlns:"http://www.w3.org/2000/svg",...e},m.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.01469 6.00051C5.58562 6.03619 3 7.94365 3 12C3 12.5523 2.55228 13 2 13C1.44772 13 1 12.5523 1 12C1 6.90007 4.41438 4.05318 7.98531 4.00073C9.74494 3.97489 11.5153 4.63461 12.8432 6.00502C13.8812 7.07635 14.6101 8.5405 14.8821 10.3602L15.8896 8.9389C16.209 8.48833 16.8331 8.38198 17.2837 8.70137C17.7343 9.02075 17.8406 9.64492 17.5213 10.0955L15.0678 13.5568C14.7484 14.0073 14.1242 14.1137 13.6737 13.7943L10.2124 11.3408C9.76181 11.0214 9.65546 10.3973 9.97484 9.9467C10.2942 9.49613 10.9184 9.38978 11.369 9.70916L12.9263 10.8131C12.7275 9.27771 12.1449 8.15845 11.4068 7.39676C10.4847 6.44507 9.25506 5.9823 8.01469 6.00051ZM6.5 13C7.32843 13 8 12.3284 8 11.5C8 10.6716 7.32843 10 6.5 10C5.67157 10 5 10.6716 5 11.5C5 12.3284 5.67157 13 6.5 13Z"}));function obt(e=!1){const t=S6(),n=m.useCallback(()=>t({topic:"slot",key:"query_rankings",id:32,params:{mine:e}}),[e,t]);m.useEffect(()=>{n();const r=setInterval(n,5e3);return()=>clearInterval(r)},[n])}function tpe(e,t){const n=Oie();if(r_(n,1e3),!e)return;const r=Kf>=e,i=(r?Kf.diff(e):e.diff(Kf)).rescale(),o=Sp(i,t);return r?`${o} ago`:o}function npe(e,t){var a;const n=Is(e),r=m.useMemo(()=>{var s;return((s=n.publish)==null?void 0:s.completed_time_nanos)??void 0},[(a=n.publish)==null?void 0:a.completed_time_nanos]),i=m.useMemo(()=>{if(r!==void 0)return tre(r)},[r]),o=tpe(i,t);return{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}}function rpe(){const e=Q0({from:$pe.fullPath});return m.useCallback(t=>{e({search:{slot:t},replace:!0})},[e])}const ipe=3,ope=226,ape=40,spe=20,abt=2*spe+ipe*ope+(ipe-1)*ape;function sbt(){const e=X(gd.slot),t=rpe(),[n,r]=m.useState(e===void 0?"":String(e)),i=X(di),o=X(gd.isValid),a=m.useCallback(()=>{t(n===""?void 0:Number(n))},[n,t]);return u.jsxs(Zr,{height:"100%",maxWidth:`${abt}px`,justify:"center",m:"auto",gap:`${ape}px`,p:`${spe}px`,columns:`repeat(auto-fit, ${ope}px)`,className:hc.searchGrid,children:[u.jsx(V,{direction:"column",gap:"8px",gridColumn:"1 / -1",asChild:!0,children:u.jsxs("form",{onSubmit:s=>{s.preventDefault(),a()},children:[u.jsx(C6e,{htmlFor:"searchSlotId",className:hc.searchLabel,children:"Search Slot ID"}),u.jsx(J7,{id:"searchSlotId",className:hc.searchField,placeholder:`e.g. ${(i==null?void 0:i.start_slot)??0}`,type:"number",step:"1",value:n,onChange:s=>r(s.target.value),size:"3",color:o?"teal":"red",autoFocus:!0,children:u.jsx(M4,{side:"right",children:u.jsx(nl,{variant:"ghost",color:"gray",onClick:a,children:u.jsx(qie,{height:"16",width:"16"})})})}),!o&&u.jsx(fbt,{})]})}),u.jsx(lbt,{})]})}function FO(e){return`${Tb(e,4)} SOL`}function lbt(){obt(!0);const e=X(OG),{earliestQuickSlots:t,mostRecentQuickSlots:n}=X(Tre);return u.jsxs(u.Fragment,{children:[u.jsx($1,{icon:u.jsx(QFe,{}),label:"Earliest Slots",color:qne,slots:t}),u.jsx($1,{icon:u.jsx(Gie,{}),label:"Most Recent Slots",color:Gne,slots:n}),u.jsx($1,{icon:u.jsx(ibt,{}),label:"Last Skipped Slots",color:Yne,slots:e==null?void 0:e.slots_largest_skipped}),u.jsx($1,{icon:u.jsx(iBe,{}),label:"Highest Fees",color:Kne,slots:e==null?void 0:e.slots_largest_fees,metricOptions:{metrics:e==null?void 0:e.vals_largest_fees,metricsFmt:FO}}),u.jsx($1,{icon:u.jsx(pBe,{}),label:"Highest Tips",color:Xne,slots:e==null?void 0:e.slots_largest_tips,metricOptions:{metrics:e==null?void 0:e.vals_largest_tips,metricsFmt:FO}}),u.jsx($1,{icon:u.jsx(yBe,{}),label:"Highest Rewards",color:Jne,slots:e==null?void 0:e.slots_largest_rewards,metricOptions:{metrics:e==null?void 0:e.vals_largest_rewards,metricsFmt:FO}})]})}function $1({icon:e,label:t,color:n,slots:r,metricOptions:i}){return u.jsxs(V,{direction:"column",className:hc.quickSearchCard,p:"20px",gap:"20px",children:[u.jsxs(V,{direction:"column",gap:"10px",className:hc.quickSearchHeader,style:{"--quick-search-color":n},children:[e,u.jsx(q,{align:"left",children:t})]}),u.jsx(ubt,{slots:r,metricOptions:i})]})}function ubt({slots:e,metricOptions:t}){const n=rpe();return u.jsx(V,{direction:"column",gap:"5px",children:Array.from({length:qN}).map((r,i)=>{var a;const o=e==null?void 0:e[i];return u.jsxs(V,{justify:"between",children:[o===void 0?u.jsx(q,{className:hc.quickSearchSlot,children:"--"}):u.jsx(q,{className:Te(hc.quickSearchSlot,hc.clickable),onClick:()=>n(o),children:o}),u.jsx(q,{className:hc.quickSearchMetric,children:u.jsx(cbt,{slot:o,metric:(a=t==null?void 0:t.metrics)==null?void 0:a[i],metricsFmt:t==null?void 0:t.metricsFmt})})]},i)})})}function cbt({slot:e,metric:t,metricsFmt:n}){return e===void 0?"--":n?t===void 0?"--":n(t)??"--":u.jsx(dbt,{slot:e})}function dbt({slot:e}){const{timeAgoText:t}=npe(e,{showOnlyTwoSignificantUnits:!0});return t}function fbt(){const e=X(gd.slot),t=X(gd.state),n=X(di),r=m.useMemo(()=>{switch(t){case Xf.NotReady:return`Slot ${e} validity cannot be determined because epoch and leader slot data is not available yet.`;case Xf.OutsideEpoch:return`Slot ${e} is outside this epoch. Please try again with a different ID between ${n==null?void 0:n.start_slot} - ${n==null?void 0:n.end_slot}.`;case Xf.NotYou:return`Slot ${e} belongs to another validator. Please try again with a slot number processed by you.`;case Xf.BeforeFirstProcessed:return`Slot ${e} is in this epoch but its details are unavailable because it was processed before the restart.`;case Xf.Future:return`Slot ${e} is valid but in the future. To view details, check again after it has been processed.`;case Xf.Valid:return""}},[n==null?void 0:n.end_slot,n==null?void 0:n.start_slot,e,t]);return u.jsx(q,{size:"3",className:hc.errorText,children:r})}const hbt="_slot-item-group_p1cnp_1",pbt="_disabled_p1cnp_8",mbt="_is-selected_p1cnp_13",gbt="_slot-item_p1cnp_1",vbt="_selected-slot_p1cnp_35",ybt="_skipped-slot_p1cnp_41",bbt="_fade_p1cnp_50",_bt="_fade-left_p1cnp_57",xbt="_fade-right_p1cnp_62",pc={slotItemGroup:hbt,disabled:pbt,isSelected:mbt,slotItem:gbt,selectedSlot:vbt,skippedSlot:ybt,fade:bbt,fadeLeft:_bt,fadeRight:xbt};function lpe({onMeasured:e,children:t}){const n=X(jg),[r,i]=Ss();return m.useEffect(()=>e(i),[i,e]),u.jsx(lU,{container:n,style:{position:"fixed",left:"-100000px",top:"-100000px",visibility:"hidden"},ref:r,"aria-hidden":"true",children:t})}/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */var BO=function(e,t){return BO=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},BO(e,t)};function wbt(e,t){BO(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var kbt=100,Sbt=100,upe=50,UO=50,WO=50;function cpe(e){var t=e.className,n=e.counterClockwise,r=e.dashRatio,i=e.pathRadius,o=e.strokeWidth,a=e.style;return m.createElement("path",{className:t,style:Object.assign({},a,jbt({pathRadius:i,dashRatio:r,counterClockwise:n})),d:Cbt({pathRadius:i,counterClockwise:n}),strokeWidth:o,fillOpacity:0})}function Cbt(e){var t=e.pathRadius,n=e.counterClockwise,r=t,i=n?1:0;return` - M `+UO+","+WO+` - m 0,-`+r+` - a `+r+","+r+" "+i+" 1 1 0,"+2*r+` - a `+r+","+r+" "+i+" 1 1 0,-"+2*r+` - `}function jbt(e){var t=e.counterClockwise,n=e.dashRatio,r=e.pathRadius,i=Math.PI*2*r,o=(1-n)*i;return{strokeDasharray:i+"px "+i+"px",strokeDashoffset:(t?-o:o)+"px"}}var Tbt=function(e){wbt(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getBackgroundPadding=function(){return this.props.background?this.props.backgroundPadding:0},t.prototype.getPathRadius=function(){return upe-this.props.strokeWidth/2-this.getBackgroundPadding()},t.prototype.getPathRatio=function(){var n=this.props,r=n.value,i=n.minValue,o=n.maxValue,a=Math.min(Math.max(r,i),o);return(a-i)/(o-i)},t.prototype.render=function(){var n=this.props,r=n.circleRatio,i=n.className,o=n.classes,a=n.counterClockwise,s=n.styles,l=n.strokeWidth,c=n.text,d=this.getPathRadius(),f=this.getPathRatio();return m.createElement("svg",{className:o.root+" "+i,style:s.root,viewBox:"0 0 "+kbt+" "+Sbt,"data-test-id":"CircularProgressbar"},this.props.background?m.createElement("circle",{className:o.background,style:s.background,cx:UO,cy:WO,r:upe}):null,m.createElement(cpe,{className:o.trail,counterClockwise:a,dashRatio:r,pathRadius:d,strokeWidth:l,style:s.trail}),m.createElement(cpe,{className:o.path,counterClockwise:a,dashRatio:f*r,pathRadius:d,strokeWidth:l,style:s.path}),c?m.createElement("text",{className:o.text,style:s.text,x:UO,y:WO},c):null)},t.defaultProps={background:!1,backgroundPadding:0,circleRatio:1,classes:{root:"CircularProgressbar",trail:"CircularProgressbar-trail",path:"CircularProgressbar-path",text:"CircularProgressbar-text",background:"CircularProgressbar-background"},counterClockwise:!1,className:"",maxValue:100,minValue:0,strokeWidth:8,styles:{root:{},trail:{},path:{},text:{},background:{}},text:""},t}(m.Component);function Ibt(e){var t=e.rotation,n=e.strokeLinecap,r=e.textColor,i=e.textSize,o=e.pathColor,a=e.pathTransition,s=e.pathTransitionDuration,l=e.trailColor,c=e.backgroundColor,d=t==null?void 0:"rotate("+t+"turn)",f=t==null?void 0:"center center";return{root:{},path:AS({stroke:o,strokeLinecap:n,transform:d,transformOrigin:f,transition:a,transitionDuration:s==null?void 0:s+"s"}),trail:AS({stroke:l,strokeLinecap:n,transform:d,transformOrigin:f}),text:AS({fill:r,fontSize:i}),background:AS({fill:c})}}function AS(e){return Object.keys(e).forEach(function(t){e[t]==null&&delete e[t]}),e}const Ebt="data:image/svg+xml,%3csvg%20width='12'%20height='13'%20viewBox='0%200%2012%2013'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6%200.675781C9.22656%200.675781%2011.8242%203.27344%2011.8242%206.5C11.8242%209.72656%209.22656%2012.3242%206%2012.3242C2.77344%2012.3242%200.175781%209.72656%200.175781%206.5C0.175781%203.27344%202.77344%200.675781%206%200.675781ZM6%2011.1758C8.57031%2011.1758%2010.6758%209.07031%2010.6758%206.5C10.6758%203.92969%208.57031%201.82422%206%201.82422C3.42969%201.82422%201.32422%203.92969%201.32422%206.5C1.32422%209.07031%203.42969%2011.1758%206%2011.1758ZM8.67969%203.92969L9.5%204.75L4.82422%209.42578L2.5%207.07422L3.32031%206.25391L4.82422%207.75781L8.67969%203.92969Z'%20fill='%231D863B'/%3e%3c/svg%3e",Nbt="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='%231D863B'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.82422%208.92578L10.0742%203.67578L9.25391%202.82812L4.82422%207.25781L2.74609%205.17969L1.92578%206L4.82422%208.92578ZM1.87109%201.89844C3.01953%200.75%204.39583%200.175781%206%200.175781C7.60417%200.175781%208.97135%200.75%2010.1016%201.89844C11.25%203.02865%2011.8242%204.39583%2011.8242%206C11.8242%207.60417%2011.25%208.98047%2010.1016%2010.1289C8.97135%2011.2591%207.60417%2011.8242%206%2011.8242C4.39583%2011.8242%203.01953%2011.2591%201.87109%2010.1289C0.740885%208.98047%200.175781%207.60417%200.175781%206C0.175781%204.39583%200.740885%203.02865%201.87109%201.89844Z'/%3e%3c/svg%3e",$bt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='8.5'%20cy='2.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='4.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='11.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='2.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='6.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='10.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='14.5'%20cy='15.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3ccircle%20cx='12.5'%20cy='6.5'%20r='1.5'%20fill='%231CE7C2'/%3e%3cline%20x1='8.35355'%20y1='1.64645'%20x2='13.3536'%20y2='6.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='3.64645'%20y1='6.64645'%20x2='8.64645'%20y2='1.64645'%20stroke='%231CE7C2'/%3e%3cline%20x1='12.4642'%20y1='6.8143'%20x2='14.4642'%20y2='11.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5358'%20y1='11.8143'%20x2='12.5356'%20y2='6.81427'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.53576'%20y1='11.8143'%20x2='4.53576'%20y2='6.8143'%20stroke='%231CE7C2'/%3e%3cline%20x1='4.46424'%20y1='6.81432'%20x2='6.46412'%20y2='11.8144'%20stroke='%231CE7C2'/%3e%3cline%20x1='2.5'%20y1='11'%20x2='2.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='6.5'%20y1='11'%20x2='6.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='10.5'%20y1='11'%20x2='10.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3cline%20x1='14.5'%20y1='11'%20x2='14.5'%20y2='16'%20stroke='%231CE7C2'/%3e%3c/svg%3e",Mbt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='%23D86363'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.01469%206.00051C5.58562%206.03619%203%207.94365%203%2012C3%2012.5523%202.55228%2013%202%2013C1.44772%2013%201%2012.5523%201%2012C1%206.90007%204.41438%204.05318%207.98531%204.00073C9.74494%203.97489%2011.5153%204.63461%2012.8432%206.00502C13.8812%207.07635%2014.6101%208.5405%2014.8821%2010.3602L15.8896%208.9389C16.209%208.48833%2016.8331%208.38198%2017.2837%208.70137C17.7343%209.02075%2017.8406%209.64492%2017.5213%2010.0955L15.0678%2013.5568C14.7484%2014.0073%2014.1242%2014.1137%2013.6737%2013.7943L10.2124%2011.3408C9.76181%2011.0214%209.65546%2010.3973%209.97484%209.9467C10.2942%209.49613%2010.9184%209.38978%2011.369%209.70916L12.9263%2010.8131C12.7275%209.27771%2012.1449%208.15845%2011.4068%207.39676C10.4847%206.44507%209.25506%205.9823%208.01469%206.00051ZM6.5%2013C7.32843%2013%208%2012.3284%208%2011.5C8%2010.6716%207.32843%2010%206.5%2010C5.67157%2010%205%2010.6716%205%2011.5C5%2012.3284%205.67157%2013%206.5%2013Z'/%3e%3c/svg%3e",Lbt="_small-icon_1vpxu_1",Rbt="_large-icon_1vpxu_6",FS={smallIcon:Lbt,largeIcon:Rbt};function dpe({slot:e,isCurrent:t,size:n}){const r=X(nDe(e)),i=Te(FS[`${n}Icon`]);return t?u.jsx(Obt,{size:n}):r==="incomplete"?u.jsx(fpe,{size:n}):r==="optimistically_confirmed"?u.jsx(ui,{content:"Slot was optimistically confirmed",children:u.jsx("img",{src:Nbt,alt:"optimistically_confirmed",className:i})}):r==="rooted"||r==="finalized"?u.jsx(ui,{content:"Slot was rooted",children:u.jsx("img",{src:$bt,alt:"rooted",className:i})}):u.jsx(ui,{content:"Slot was processed",children:u.jsx("img",{src:Ebt,alt:"processed",className:i})})}function fpe({size:e}){return u.jsx("div",{className:Te(FS[`${e}Icon`])})}function Obt({size:e}){const t=m.useRef(performance.now()),n=X(Eg),[r,i]=m.useState(0);return Aie(()=>{if(r>=100)return;const o=performance.now()-t.current,a=Math.min(Math.floor(o/n*100),100);i(a)}),u.jsx(V,{className:Te(FS[`${e}Icon`]),children:u.jsx(Tbt,{value:r,styles:Ibt({trailColor:Hne,pathColor:Zne,pathTransition:"none"}),strokeWidth:25,maxValue:100})})}function hpe({size:e}){return u.jsx(ui,{content:"Slot was skipped",children:u.jsx("img",{src:Mbt,alt:"skipped",className:Te(FS[`${e}Icon`])})})}const Pbt=kb+Sb,ppe=4;function mpe(e,t){return e*t+Math.max(0,e-1)*ppe}function zbt(){const e=X(Cn),t=X(ao),[n,r]=m.useState(0),[i,o]=m.useState(0),[a,{width:s}]=Ss(),l=m.useRef(null),[c,d]=m.useState(0),f=m.useCallback(w=>{w&&requestAnimationFrame(()=>{var S;const x=s/2-(w.offsetLeft+w.offsetWidth/2);(S=l.current)==null||S.style.setProperty("--offset",`${x}px`),d(x)})},[s]),p=m.useMemo(()=>e===void 0||!t?-1:t.indexOf(xi(e)),[t,e]),v=m.useMemo(()=>{if(p<0||!t)return;const w=Math.max(1,Math.ceil(s/2/i)),x=rt.clamp(w,1,10),S=w+x,C=t.length,j=Math.max(0,p-S),T=Math.min(C-1,p+S),E=C-1-T;return{leftSpacerWidth:mpe(j,i),rightSpacerWidth:mpe(E,i),startItemGroupIdx:j,endItemGroupIdx:T}},[s,i,t,p]),{showFadeLeft:_,showFadeRight:y}=m.useMemo(()=>{var S;const w=c<0,x=(((S=l.current)==null?void 0:S.offsetWidth)??0)-s+c>0;return{showFadeLeft:w,showFadeRight:x}},[s,c]);if(!t||!v||e===void 0)return;const b=[];if(i&&n)for(let w=v.startItemGroupIdx;w<=v.endItemGroupIdx;w++){const x=[],S=t[w];for(let j=0;j<$n;j++){const T=S+j,E=T===e;x.push(u.jsx(VO,{slot:T,isSelected:E,onSelectedSlotRef:E?f:void 0},T))}const C=S<=e&&et(i.width),children:u.jsx(VO,{slot:e[e.length-1],isSelected:!0})}),u.jsx(lpe,{onMeasured:i=>n(i.width),children:u.jsx(gpe,{slot:r,children:new Array($n).fill(0).map((i,o)=>u.jsx(VO,{slot:r-o,isSelected:!0},o))})})]})}function gpe({slot:e,isSelected:t,children:n}){const r=e<(X(Jf)??-1),i=e>(X(KN)??1/0),o=r||i;return u.jsx(V,{className:Te(pc.slotItemGroup,{[pc.disabled]:o,[pc.isSelected]:t}),children:n})}function VO({slot:e,isSelected:t,onSelectedSlotRef:n}){var s;Is(e);const r=(s=X(u3))==null?void 0:s.includes(e),i=e<(X(Jf)??-1),o=e>=(X(KN)??1/0)+$n,a=i||o;return u.jsxs(lp,{to:"/slotDetails",search:{slot:e},className:Te(pc.slotItem,{[pc.selectedSlot]:t,[pc.skippedSlot]:r}),ref:n,disabled:a,children:[u.jsx(q,{children:e}),r?u.jsx(hpe,{size:"large"}):u.jsx(dpe,{isCurrent:!1,slot:e,size:"large"})]},e)}const Abt="_header_1s5d9_1",Fbt="_subheader_1s5d9_7",Bbt="_label_1s5d9_12",Ubt="_value_1s5d9_18",Wbt="_table-header_1s5d9_26",Vbt="_table-row-label_1s5d9_32",Hbt="_total_1s5d9_37",Zbt="_table-cell-value_1s5d9_42",qbt="_grid_1s5d9_52",Gbt="_name_1s5d9_67",Ybt="_lg_1s5d9_70",Kbt="_copy-button_1s5d9_79",Xbt="_time-popover_1s5d9_85",at={header:Abt,subheader:Fbt,label:Bbt,value:Ubt,tableHeader:Wbt,tableRowLabel:Vbt,total:Hbt,tableCellValue:Zbt,grid:qbt,name:Gbt,lg:Ybt,copyButton:Kbt,timePopover:Xbt},vpe="20px",BS="15px",Jbt="15px",_l="5px",$d="1",ype=2.5;function HO({title:e,children:t,...n}){return u.jsxs(V,{direction:"column",flexBasis:"0",flexGrow:"1",gap:BS,...n,children:[u.jsxs(Mt,{children:[u.jsx(q,{className:at.header,children:e}),u.jsx(Rm,{my:"0"})]}),t]})}function Pi({title:e,children:t,...n}){return u.jsxs(V,{direction:"column",...n,children:[u.jsx(q,{className:at.subheader,mb:"5px",children:e}),t]})}const Qbt=Yu;function e_t(){const e=X(Cn),t=pl(e),n=m.useMemo(()=>{var o;if((o=t==null?void 0:t.response)!=null&&o.transactions)return t.response.transactions.txn_compute_units_consumed.reduce((a,s,l)=>{var f,p,v,_;const c=!!((p=(f=t.response)==null?void 0:f.transactions)!=null&&p.txn_is_simple_vote[l]),d=(_=(v=t.response)==null?void 0:v.transactions)==null?void 0:_.txn_from_bundle[l];return c?a.vote+=s:d?a.bundle+=s:a.other+=s,a},{vote:0,bundle:0,other:0})},[t]);if(!n)return;const r=n.vote+n.bundle+n.other,i=Math.max(n.vote,n.bundle,n.other);return u.jsx(Pi,{title:"Consumed Compute Units",children:u.jsxs(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:[u.jsx(ZO,{label:"Vote",cus:n.vote,totalCus:r,maxCus:i,pctColor:hd}),u.jsx(ZO,{label:"Bundle",cus:n.bundle,totalCus:r,maxCus:i,pctColor:Qbt}),u.jsx(ZO,{label:"Other",cus:n.other,totalCus:r,maxCus:i,pctColor:Zf})]})})}function ZO({label:e,cus:t,totalCus:n,maxCus:r,pctColor:i}){const o=Math.round(n?t/n*100:0),a=Math.round(r?t/r*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:i},align:"right",children:t.toLocaleString()}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:pd},align:"right",children:n.toLocaleString()}),u.jsxs(q,{className:at.value,align:"right",children:[o,"%"]}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${a}%`,opacity:.6,fill:i})})]})}function US({value:e,total:t,valueColor:n,showBackground:r}){const i=Math.round(t?e/t*100:0);return u.jsx(u.Fragment,{children:u.jsxs("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:n}),r&&u.jsx("rect",{height:"8",width:`${100-i}%`,x:`${i}%`,opacity:.2,fill:n})]})})}function vx({label:e,value:t,total:n,valueColor:r,labelWidth:i,numeratorColor:o=!0,pctColor:a=!1}){const s=Math.round(n?t/n*100:0);return u.jsxs(u.Fragment,{children:[u.jsx(qk,{content:i?e:void 0,children:u.jsx(q,{className:at.label,truncate:!0,style:{width:i},children:e})}),u.jsx(q,{className:at.value,style:{color:o?r:void 0},align:"right",children:t.toLocaleString()}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,align:"right",children:n.toLocaleString()}),u.jsxs(q,{className:at.value,style:{color:a?r:void 0},align:"right",children:[s,"%"]}),u.jsx(US,{value:t,total:n,valueColor:r,showBackground:!0})]})}function t_t(){const e=X(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Pi,{title:"Protocol Limit Utilization",children:u.jsxs(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:[u.jsx(vx,{label:"Block cost",value:n.used_total_block_cost??0,total:n.max_total_block_cost??0,valueColor:pd}),u.jsx(vx,{label:"Vote cost",value:n.used_total_vote_cost??0,total:n.max_total_vote_cost??0,valueColor:hd}),u.jsx(vx,{label:"Bytes",value:n.used_total_bytes??0,total:n.max_total_bytes??0,valueColor:"#A35829"}),u.jsx(vx,{label:"Microblocks",value:n.used_total_microblocks??0,total:n.max_total_microblocks??0,valueColor:"#9EB1FF"})]})})}function n_t(){const e=X(Cn),t=tc(e).response;if(!t)return;const{limits:n}=t;if(n)return u.jsx(Pi,{title:"Top 5 Busy Accounts",children:u.jsx(Zr,{columns:"repeat(5, auto) minmax(80px, 100%)",gapX:_l,gapY:$d,children:n.used_account_write_costs.map(({account:r,cost:i})=>u.jsx(vx,{label:r,labelWidth:"80px",value:i,total:n.max_account_write_cost,valueColor:"#30A46C",numeratorColor:!1,pctColor:!0},r))})})}function Za({children:e,...t}){return u.jsx(q,{...t,className:Te("mono-text",t.className),children:e})}const qO={preLoading:0,validating:0,loading:0,execute:0,postExecute:0,total:0};function GO(e){return Object.values(e).reduce((t,n)=>t+n,0)}function r_t(){var s;const e=X(Cn),t=(s=pl(e).response)==null?void 0:s.transactions,n=m.useMemo(()=>{if(!t)return;const l={...qO},c={...qO},d={...qO};for(let f=0;f{y.preLoading+=Number(b.preLoading),y.validating+=Number(b.validating),y.loading+=Number(b.loading),y.execute+=Number(b.execute),y.postExecute+=Number(b.postExecute)};t.txn_landed[f]?t.txn_error_code[f]===0?_(c,v):_(d,v):_(l,v)}return l.total=GO(l),c.total=GO(c),d.total=GO(d),{unlanded:l,landedSuccess:c,landedFailed:d,max:Math.max(l.total,c.total,d.total)}},[t]);if(!n)return;const{unlanded:r,landedSuccess:i,landedFailed:o,max:a}=n;return u.jsx(Pi,{title:"Cumulative Execution Time",children:u.jsxs(Zr,{columns:"repeat(7, auto)",gapX:_l,gapY:$d,children:[u.jsx("div",{}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Success+Landed"}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Failed+Landed"}),u.jsx(q,{className:at.tableHeader,style:{gridColumn:"span 2"},children:"Unlanded"}),u.jsx(gh,{label:"Preloading",landedSuccess:i.preLoading,landedFailed:o.preLoading,unlanded:r.preLoading,max:a}),Vi?u.jsxs(u.Fragment,{children:[u.jsx(gh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a}),u.jsx(gh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a})]}):u.jsxs(u.Fragment,{children:[u.jsx(gh,{label:dn.VALIDATE,landedSuccess:i.validating,landedFailed:o.validating,unlanded:r.validating,max:a}),u.jsx(gh,{label:dn.LOADING,landedSuccess:i.loading,landedFailed:o.loading,unlanded:r.loading,max:a})]}),u.jsx(gh,{label:"Execute",landedSuccess:i.execute,landedFailed:o.execute,unlanded:r.execute,max:a}),u.jsx(gh,{label:"Post-Execute",landedSuccess:i.postExecute,landedFailed:o.postExecute,unlanded:r.postExecute,max:a}),u.jsx(gh,{label:"Total",landedSuccess:i.total,landedFailed:o.total,unlanded:r.total,max:a,isTotal:!0})]})})}function gh({label:e,landedSuccess:t,landedFailed:n,unlanded:r,max:i,isTotal:o}){const a=o?"#28684A":"#174933",s=o?"#8C333A":"#611623",l=o?"#12677E":"#004558",c=Ha(t),d=Ha(n),f=Ha(r);return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:Te(at.tableRowLabel,o&&at.total),children:e}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[c.value,u.jsx(Za,{children:c.unit})]}),u.jsx(US,{value:t,total:i,valueColor:a}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[d.value,u.jsx(Za,{children:d.unit})]}),u.jsx(US,{value:n,total:i,valueColor:s}),u.jsxs(q,{className:Te(at.tableCellValue,o&&at.total),align:"right",children:[f.value,u.jsx(Za,{children:f.unit})]}),u.jsx(US,{value:r,total:i,valueColor:l})]})}function i_t(){var i;const e=X(Cn),t=(i=pl(e).response)==null?void 0:i.transactions,n=m.useMemo(()=>{if(!t)return;const{vote:o,nonVote:a,bundle:s}={vote:{count:0,total:0,min:1/0,max:-1/0},nonVote:{count:0,total:0,min:1/0,max:-1/0},bundle:{count:0,total:0,min:1/0,max:-1/0}};for(let l=0;lNumber(p)));t.txn_is_simple_vote[l]?(o.total+=f,o.count++,o.min=Math.min(o.min,f),o.max=Math.max(o.max,f)):(a.total+=f,a.count++,a.min=Math.min(a.min,f),a.max=Math.max(a.max,f)),t.txn_from_bundle[l]&&(s.total+=f,s.count++,s.min=Math.min(s.min,f),s.max=Math.max(s.max,f))}return{vote:o.total/o.count,nonVote:a.total/a.count,bundle:s.total/s.count,voteMin:o.min,voteMax:o.max,nonVoteMin:a.min,nonVoteMax:a.max,bundleMin:s.min,bundleMax:s.max}},[t]);if(!n)return;const r=Math.max(n.voteMax,n.nonVoteMax,n.bundleMax);return u.jsx(Pi,{title:"Execution Time (min / avg / max)",children:u.jsxs(Zr,{columns:"repeat(7, auto)",gapX:_l,gapY:$d,children:[u.jsx(KO,{label:"Vote",value:n.vote,color:hd,max:r,minValue:n.voteMin,maxValue:n.voteMax}),u.jsx(KO,{label:"Non-vote",value:n.nonVote,color:Zf,max:r,minValue:n.nonVoteMin,maxValue:n.nonVoteMax}),u.jsx(KO,{label:"Bundle",value:n.bundle,color:"var(--purple-9)",max:r,minValue:n.bundleMin,maxValue:n.bundleMax})]})})}const bpe=4,WS=`${bpe}px`;function YO(e){return`clamp(0px, calc(${e}% - ${bpe/2}px), calc(100% - ${WS}))`}function KO({label:e,value:t,max:n,minValue:r,maxValue:i}){const o=isFinite(t)&&isFinite(r)&&isFinite(i),a=o?t/n*100:0,s=o?r/n*100:0,l=o?i/n*100:0,c=o?Ha(t):null,d=o?Ha(r):null,f=o?Ha(i):null;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:"#6E56CF"},align:"right",children:d?u.jsxs(u.Fragment,{children:[d.value,u.jsx(Za,{children:d.unit})]}):"-"}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:"#BAA7FF"},align:"right",children:c?u.jsxs(u.Fragment,{children:[c.value,u.jsx(Za,{children:c.unit})]}):"-"}),u.jsx(q,{className:at.value,children:"/"}),u.jsx(q,{className:at.value,style:{color:"#6E56CF"},align:"right",children:f?u.jsxs(u.Fragment,{children:[f.value,u.jsx(Za,{children:f.unit})]}):"-"}),u.jsxs("svg",{height:"13",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center",width:"100%"},children:[u.jsx("rect",{height:"10%",y:"45%",width:"100%",opacity:.6,fill:"#313131"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(s),width:WS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(l),width:WS,fill:"#56468B"}),u.jsx("rect",{height:"80%",y:"10%",x:YO(a),width:WS,fill:"#BAA7FF"})]})]})}function o_t(){return u.jsxs(HO,{title:"Compute",flexGrow:"2",children:[u.jsx(t_t,{}),u.jsx(e_t,{}),u.jsx(n_t,{}),u.jsx(r_t,{}),u.jsx(i_t,{})]})}function Rs(e,t=Uo,n){if(!e)return"0";const r=Number(e)/dd;return r<1?r.toFixed(t):P$(r,n??{useSuffix:!0,significantDigits:4,trailingZeroes:!1,decimalsOnZero:!1})}const XO=1e8;function a_t(){const e=X(Cn),t=pl(e),n=m.useMemo(()=>{var f;const a=(f=t==null?void 0:t.response)==null?void 0:f.transactions;if(!a)return;const{tips:s,fees:l}=a.txn_transaction_fee.reduce((p,v,_)=>(p.fees+=Number(WN(a,_)),p.tips+=Number(VN(a,_)),p),{tips:0,fees:0}),c=s+l,d=s*.06;return{tips:s,fees:l,maxValue:c>XO?c+d:XO}},[t]);if(!n)return;const{tips:r,fees:i,maxValue:o}=n;return u.jsx(Pi,{title:"Fee Breakdown",children:u.jsxs(Zr,{columns:"repeat(3, auto)",gapX:_l,gapY:$d,children:[u.jsx(s_t,{label:"Tips",value:r,total:o,color:Gf}),u.jsx(l_t,{label:"Fees",value:i,total:o,color:kg}),u.jsx(u_t,{tips:r,fees:i})]})})}function s_t({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0,o=t*.06,a=n>0?o/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:r},align:"right",children:`${Rs(t??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsxs(V,{children:[u.jsxs("svg",{height:"8",width:`${i+a}%`,fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"8",width:`${100/106*100}%`,opacity:.6,fill:r}),u.jsx("rect",{height:"8",x:`${100/106*100}%`,width:`${6/106*100}%`,opacity:.6,fill:"#FFC53D"})]}),u.jsx(q,{className:at.label,style:{marginLeft:_l},children:"Commission\xA0"}),u.jsxs(q,{className:at.value,style:{color:"#FFC53D"},children:["-",`${Rs(o??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`]})]})]})}function l_t({label:e,value:t,total:n,color:r}){const i=n>0?t/n*100:0;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:e}),u.jsx(q,{className:at.value,style:{color:r},align:"right",children:`${Rs(t??0n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsx("svg",{height:"8",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:u.jsx("rect",{height:"8",width:`${i}%`,opacity:.6,fill:r})})]})}function u_t({tips:e,fees:t}){const n=e+t,r=Math.max(XO,n),i=n/r*100,o=e/r*100,a=t/r*100;return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:"Income"}),u.jsx(q,{className:at.value,style:{color:kp},align:"right",children:`${Rs(n,Uo,{decimals:Uo,trailingZeroes:!0})} SOL`}),u.jsxs("svg",{height:"10",width:"100%",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{alignSelf:"center"},children:[u.jsx("rect",{height:"100%",width:`${o}%`,opacity:.6,fill:Gf}),u.jsx("rect",{height:"100%",x:`${o}%`,width:`${a}%`,opacity:.6,fill:kg}),u.jsx("rect",{height:"100%",x:`${o}%`,width:1,opacity:.6,fill:"black"}),u.jsx("rect",{height:"9",width:`${i}%`,x:.5,y:.5,opacity:1,stroke:kp,strokeWidth:1})]})]})}const c_t="_container_1w2fb_1",d_t="_label_1w2fb_5",f_t="_clickable_1w2fb_12",JO={container:c_t,label:d_t,clickable:f_t},_pe=["#003362","#113B29","#3F2700","#202248","#33255B"],QO=5e3;function VS({data:e,showPct:t,sort:n,onItemClick:r}){const i=e.reduce((s,{value:l})=>s+l,0);let o=n?e.toSorted((s,l)=>l.value-s.value):e,a=0;if(o.length>QO){for(let s=QO;su.jsx(V,{width:`${l}px`,height:`${s}px`,children:o.map(({value:c,label:d},f)=>{const p=_pe[f%_pe.length],v=c/i,_=v*100,y=_>1?`${Math.round(_)}%`:`${_.toFixed(2)}%`,b=v*l>30;return u.jsx(ui,{content:u.jsxs(u.Fragment,{children:[u.jsx(q,{weight:"bold",children:d}),u.jsx("br",{}),u.jsx(q,{children:`Income: ${Rs(c,Fte)} SOL (${y})`})]}),side:"bottom",disableHoverableContent:!0,children:r?u.jsx(V,{asChild:!0,className:JO.clickable,minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:u.jsx("button",{"aria-label":`Filter by ${d} (${y})`,onClick:()=>r({label:d,value:c}),children:b&&u.jsx(xpe,{label:d,showPct:t,formattedPct:y})})}):u.jsx(V,{minWidth:"0",align:"center",justify:"center",flexBasis:"0",style:{background:p,flexGrow:c},children:b&&u.jsx(xpe,{label:d,showPct:t,formattedPct:y})})},d)})})})})}function xpe({label:e,showPct:t,formattedPct:n}){return u.jsxs(q,{mx:"2",className:JO.label,truncate:!0,children:[e,t&&` ${n}`]})}function h_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_signature.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([mx]),t(mx,{mode:Mn.TxnSignature,text:o})},[n,t]);return u.jsx(Pi,{title:"Income Distribution by Txn",children:u.jsx(VS,{data:r,sort:!0,onItemClick:i})})}function p_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=m.useMemo(()=>{const o=e.txn_source_ipv4.map((a,s)=>({value:Number(md(e,s)),label:a}));return Object.values(rt.groupBy(o,({label:a})=>a)).map(a=>({label:a[0].label,value:rt.sum(a.map(({value:s})=>s))}))},[e]),i=m.useCallback(({label:o})=>{n([mx]),t(mx,{mode:Mn.Ip,text:o})},[n,t]);return u.jsx(Pi,{title:"Income Distribution by IP Address",children:u.jsx(VS,{data:r,sort:!0,onItemClick:i})})}const eP="Bundle";function m_t({transactions:e}){const{triggerControl:t,resetAllControls:n}=m.useContext(N1),r=Ee(Ls),i=m.useMemo(()=>{const a=e.txn_from_bundle.map((s,l)=>({value:Number(md(e,l)),label:s?eP:"Other"}));return Object.values(rt.groupBy(a,({label:s})=>s)).map(s=>({label:s[0].label,value:rt.sum(s.map(({value:l})=>l))})).sort((s,l)=>s.label===eP?-1:1)},[e]),o=m.useCallback(({label:a})=>{n([OO]),t(OO,a===eP?"Yes":"No"),r(s=>{s.setScale(Vt,{min:s.data[0][0],max:s.data[0][s.data[0].length-1]})})},[n,t,r]);return u.jsx(Pi,{title:"Income Distribution by Bundle",children:u.jsx(VS,{data:i,showPct:!0,onItemClick:o})})}function g_t(e,t=[1,10]){const n=e.length;if(n===0)return;e=e.toSorted((c,d)=>d-c);const r=new Array(n+1);r[0]=0;for(let c=0;crt.clamp(c,0,100)))).sort((c,d)=>c-d),a=c=>c<=0?0:c>=100?n:rt.clamp(Math.ceil(c/100*n),0,n),s={},l=[0,...o,100];for(let c=1;cNumber(md(e,i)),[]),n=g_t(t);if(n!==void 0)return Object.entries(n).map(([r,i])=>({value:i,label:r}))}function y_t({transactions:e}){const t=m.useMemo(()=>v_t(e),[e]);if(t)return u.jsx(Pi,{title:"Income Distribution by Percent Txns",children:u.jsx(VS,{data:t})})}function b_t(){var n;const e=X(Cn),t=(n=pl(e).response)==null?void 0:n.transactions;if(t)return u.jsxs(u.Fragment,{children:[u.jsx(y_t,{transactions:t}),u.jsx(m_t,{transactions:t}),u.jsx(h_t,{transactions:t}),u.jsx(p_t,{transactions:t})]})}function __t(e,t){const n=parseInt(e.substring(1,3),16),r=parseInt(e.substring(3,5),16),i=parseInt(e.substring(5,7),16);return`rgba(${n}, ${r}, ${i}, ${t})`}const x_t=(ype+2)**2;function w_t(e,t,n,r){function i(a){const{left:s,top:l}=a.cursor;if(s==null||l==null)return null;const c=a.data[0],d=a.data[1];let f=null,p=1/0;for(let v=0;v({width:0,height:0,padding:[10,15,0,15],scales:{[HS]:{time:!1,distr:n?3:void 0},[Id]:{time:!1,distr:3}},axes:[{scale:HS,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{show:!1},values:(f,p)=>p.map(v=>{if(r){const{scaledToX:_,negMin:y,posMax:b}=r;return Math.round(_(v,y,b)).toLocaleString()}return v&&Lie.format(v)}),size:20,gap:0,font:"8px Inter Tight"},{scale:Id,stroke:sr,grid:{show:!1},border:{show:!0,width:1/devicePixelRatio,stroke:sr},show:!1}],series:[{scale:HS},{scale:Id,stroke:void 0,points:{show:!0,size:ype*2,fill:__t(kp,.3),space:0}}],legend:{show:!1},hooks:{draw:[f=>{var p;f.ctx.save(),f.ctx.fillStyle=sr,f.ctx.font="18px Inter Tight",f.ctx.textAlign="left",f.ctx.fillText(`${(((p=f.scales[Id])==null?void 0:p.max)??0)/dd} SOL`,0,0),f.ctx.restore()}]},plugins:[w_t(s,HS,Id,c)]}),[s,n,r]);return u.jsxs(u.Fragment,{children:[u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:f,width:p})=>(d.width=p,d.height=f,u.jsx(Pp,{id:t,options:d,data:e}))})}),u.jsx(k_t,{elId:s,data:l,xLabel:i,xColor:o,tooltipFormatX:a})]})}function S_t(e){return e==null?void 0:e.txn_compute_units_consumed.map((t,n)=>({cu:t,i:n})).sort((t,n)=>t.cu-n.cu).reduce((t,{cu:n,i:r})=>{const i=Number(md(e,r));return!i||!n||(t[0].push(n),t[1].push(i)),t},[[],[]])}function C_t(e,t,n){return e<=0?.5*(e-t)/-t:.5+.5*(e/n)}function kpe(e,t,n){return e<=.5?t+e/.5*-t:(e-.5)/.5*n}function j_t(e){if(!e)return;const t=e.txn_arrival_timestamps_nanos.map((i,o)=>({tsNanos:i,i:o})).sort((i,o)=>Number(i.tsNanos-o.tsNanos)).reduce((i,{tsNanos:o,i:a})=>{const s=Number(o-e.start_timestamp_nanos)/1e6,l=Number(md(e,a));return l&&(i[0].push(s),i[1].push(l??0)),i},[[],[]]),n=t[0][0],r=t[0][t[0].length-1];return t[0]=t[0].map(i=>C_t(i,n,r)),{min:n,max:r,chartData:t}}function T_t(){var a,s;const e=X(Cn),t=(a=pl(e).response)==null?void 0:a.transactions,n=pl(e),r=m.useMemo(()=>S_t(t),[t]),i=m.useMemo(()=>j_t(t),[t]),o=m.useMemo(()=>{if(i)return{scaledToX:kpe,negMin:i.min,posMax:i.max}},[i]);if(!(!((s=n.response)!=null&&s.transactions)||!r||!i))return u.jsxs(V,{flexGrow:"1",minWidth:"300px",minHeight:"150px",gap:Jbt,children:[u.jsx(Pi,{title:"Compute Units vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"cuIncomeScatterChart",data:r,xLogScale:!0,xLabel:"CU",xColor:pd,formatX:l=>Lie.format(l)})}),u.jsx(Pi,{title:"Arrival Time vs Income",flexGrow:"1",children:u.jsx(wpe,{id:"arrivalIncomeScatterChart",data:i.chartData,xScaleOptions:o,xLabel:"Arrival",formatX:l=>`${Math.round(kpe(l,i.min,i.max)).toLocaleString()}ms`})})]})}function I_t(){return u.jsxs(HO,{title:"Fees",flexGrow:"2",children:[u.jsx(a_t,{}),u.jsx(b_t,{}),u.jsx(T_t,{})]})}function E_t(e){function t(n,r,i){return e(i),!0}return ix({elId:Wfe,showOnCursor:t})}const M1=new Map,Spe=e=>{const t=M1.get(e);if(!t||t.pendingSync!==null)return;const n=Math.max(0,...t.naturalSizes.values());n!==t.maxSize&&(t.maxSize=n,t.pendingSync=requestAnimationFrame(()=>{for(const r of t.charts.values())r.redraw(!1,!0);t.pendingSync=null}))};function N_t(e,t,n=1){return{opts:(r,i)=>{var s;const o=(s=i.axes)==null?void 0:s[n];if(!o)return;const a=o.size;o.size=(l,c,d,f)=>{const p=typeof a=="function"?a(l,c,d,f):a??Jae(l.axes[d]),v=M1.get(t);return v?(v.naturalSizes.set(e,p),Math.max(p,v.maxSize)):p}},hooks:{ready:r=>{const i=M1.get(t);i?i.charts.set(e,r):M1.set(t,{charts:new Map([[e,r]]),naturalSizes:new Map,maxSize:0,pendingSync:null})},destroy:r=>{const i=M1.get(t);i&&i.charts.get(e)===r&&(i.charts.delete(e),i.naturalSizes.delete(e),i.charts.size===0?(i.pendingSync!==null&&cancelAnimationFrame(i.pendingSync),M1.delete(t)):Spe(t))},draw:r=>Spe(t)}}}function $_t({data:e,formatBucketRange:t}){return u.jsx(ox,{elId:Wfe,children:e&&u.jsxs(Zr,{columns:"auto auto",gapX:"2",children:[u.jsx(Md,{label:"Duration",value:t(e.bucketIdx)}),u.jsx(Md,{label:"Avg CUs",value:e.cuYVal?Math.round(e.cuYVal).toLocaleString():"0",color:pd}),u.jsx(Md,{label:"Count",value:e.countYVal?e.countYVal.toLocaleString():"0"})]})})}const ZS=20,Cpe=Array.from({length:ZS},(e,t)=>t),M_t=(e,t)=>Math.trunc(e/t*ZS),tP=(e,t)=>e/ZS*t,qS="8px Inter Tight",L_t="#3C2E69",nP=1,R_t=((Yme=(fC=jn.paths)==null?void 0:fC.bars)==null?void 0:Yme.call(fC,{size:[.8]}))??(()=>({stroke:new Path2D,fill:new Path2D})),jpe={cuData:[[],[]],countData:[[],[]],maxDuration:0},rP=(e,t)=>{const{value:n,unit:r}=Ha(e,!1,t);return`${n} ${r}`};function O_t(){var c;const e=X(Cn),t=(c=pl(e).response)==null?void 0:c.transactions,[n,r]=m.useState(),{cuData:i,countData:o,maxDuration:a}=m.useMemo(()=>{if(!t)return jpe;const d=t.txn_landed.map((y,b)=>({duration:Number(t.txn_mb_end_timestamps_nanos[b]-t.txn_mb_start_timestamps_nanos[b]),cu:t.txn_compute_units_consumed[b]})).filter(({duration:y})=>y>0);if(d.length===0)return jpe;const f=Eb(d.map(({duration:y})=>y))+1,p=Array.from({length:ZS},()=>({count:0,cus:0}));for(const{duration:y,cu:b}of d){const w=M_t(y,f);p[w].count++,p[w].cus+=b}const v=p.map(({count:y})=>y),_=p.map(({count:y,cus:b})=>y?b/y:0);return{countData:[Cpe,v],cuData:[Cpe,_],maxDuration:f}},[t]),s=m.useCallback(d=>`${rP(tP(d,a),2)} - ${rP(tP(d+1,a),2)}`,[a]),l=m.useMemo(()=>n!==void 0?{bucketIdx:n,cuYVal:i[nP][n],countYVal:o[nP][n]}:void 0,[o,i,n]);if(t)return u.jsxs(u.Fragment,{children:[u.jsx(Pi,{title:"CUs vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:i,id:"txnExecutionDurationCu",maxDuration:a,setTooltipDataIdx:r})}),u.jsx(Pi,{title:"Transaction Count vs Txn Execution Duration",minWidth:"200px",minHeight:"100px",flexGrow:"1",children:u.jsx(Tpe,{data:o,id:"txnExecutionDurationCount",log:!0,maxDuration:a,setTooltipDataIdx:r})}),u.jsx($_t,{data:l,formatBucketRange:s})]})}function Tpe({data:e,log:t,id:n,maxDuration:r,setTooltipDataIdx:i}){const o=m.useMemo(()=>t?[e[0],e[nP].map(l=>Math.log((l??0)+1))]:e,[e,t]),a=Math.max(0,e[0].length-1),s=m.useMemo(()=>({width:0,height:0,cursor:{sync:{key:Ugt}},scales:{duration:{time:!1},y:{auto:!0,range:(l,c,d)=>t?[0,Math.max(d,Math.log(3))]:[0,Math.max(d,2)]}},series:[{scale:"duration"},{label:"Count",points:{show:!1},fill:L_t,paths:R_t}],axes:[{scale:"duration",splits:[0,a],values:(l,c)=>c.map(d=>rP(tP(d,r))),label:"Txn Execution Duration",stroke:sr,grid:{show:!1},size:10,gap:0,font:qS,labelFont:qS,labelGap:0,labelSize:10},{stroke:sr,splits:(l,c,d,f)=>[d,(d+f)/2,f],values:(l,c)=>(t?c.map(d=>Math.round(Math.exp(d)-1)):c.map(Math.round)).map(d=>d.toLocaleString()),gap:0,font:qS,size(l,c,d,f){var b,w;const p=l.axes[d];if(f>1)return Jae(p);const v=(((b=p.ticks)==null?void 0:b.size)??0)+(p.gap??0),_=(c??[]).reduce((x,S)=>S.length>x.length?S:x,"");if(_==="")return Math.ceil(v);l.ctx.font=((w=p.font)==null?void 0:w[0])??qS;const y=l.ctx.measureText(_).width/devicePixelRatio;return Math.ceil(v+y)}}],legend:{show:!1},plugins:[E_t(i),cO({minRange:0}),N_t(n,"txnExecutionDurationYAxis")]}),[a,i,n,t,r]);return u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:l,width:c})=>(s.width=c,s.height=l,u.jsx(Pp,{id:n,options:s,data:o}))})})}function P_t(){var a;const e=X(Eg),t=X(Cn),n=X(ao),r=(a=tc(t).response)==null?void 0:a.scheduler_stats,i=m.useMemo(()=>{if(t===void 0||!n)return;const s=xi(t),l=n.indexOf(s)-1;if(!(l<0))return n[l]+$n-1},[n,t]);if(t===void 0)return;const o=i?fn.fromMillis(e*(t-i)).rescale():void 0;return u.jsx(Pi,{title:"Scheduler",children:u.jsxs(V,{direction:"column",gap:$d,children:[u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"Time Since Last Leader Group"}),u.jsx(q,{className:at.value,children:Sp(o)})]}),Vi&&u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"End slot reason"}),u.jsx(q,{className:at.value,children:r==null?void 0:r.end_slot_reason})]})]})})}function z_t(){const e=X(Nb),{queryIdleData:t}=VM();return u.jsx(Pi,{title:"CPU Utilization",children:u.jsxs(V,{direction:"column",gap:"5px",children:[u.jsx(Wa,{header:"pack",tileCount:e.pack,queryIdlePerTile:t==null?void 0:t.pack,statLabel:"Full",metricType:"pack",isDark:!0,isNarrow:!0}),u.jsx(Wa,{header:To.bank,tileCount:e[To.bank],queryIdlePerTile:t==null?void 0:t[To.bank],statLabel:"TPS",metricType:"bank",isDark:!0,isNarrow:!0})]})})}function D_t(e){function t(n,r,i){return e(i),!0}return ix({elId:"pack-buffer-chart-tooltip",showOnCursor:t})}function A_t({data:e}){return u.jsx(ox,{elId:"pack-buffer-chart-tooltip",children:e&&u.jsxs(Zr,{columns:"auto auto",gapX:"2",children:[u.jsx(Md,{label:"Regular",value:e.regular.toLocaleString(),color:Zf}),u.jsx(Md,{label:"Votes",value:e.votes.toLocaleString(),color:hd}),u.jsx(Md,{label:"Conflicting",value:e.conflicting.toLocaleString(),color:gk}),u.jsx(Md,{label:"Bundles",value:e.bundles.toLocaleString(),color:Gf})]})})}const iP="packX",L1="packTxnsY";function F_t(){var l;const e=X(Cn),t=tc(e).response,[n,r]=m.useState(),i=t==null?void 0:t.scheduler_counts,o=m.useMemo(()=>{var f;const c=(f=t==null?void 0:t.transactions)==null?void 0:f.start_timestamp_nanos;if(!i||!c)return;const d=[[],[],[],[],[]];for(let p=0;p({width:0,height:0,padding:[0,0,0,0],drawOrder:["axes","series"],cursor:{},scales:{[iP]:{time:!1},[L1]:{}},axes:[{scale:iP,border:{show:!0,width:1/devicePixelRatio},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},values:(c,d)=>d.map(f=>f/1e6+"ms"),space:100,size:20,font:"8px Inter Tight"},{scale:L1,border:{show:!0,width:1/devicePixelRatio,stroke:sr},stroke:sr,grid:{width:1/devicePixelRatio},ticks:{width:1/devicePixelRatio,stroke:sr,size:5},space:50,font:"8px Inter Tight",size(c,d,f,p){var b,w;const v=c.axes[f];if(p>1)return v._size;let _=((b=v.ticks)==null?void 0:b.size)??0+(v.gap??0);_+=5;const y=(d??[]).reduce((x,S)=>S.length>x.length?S:x,"");return y!==""&&(c.ctx.font=((w=v.font)==null?void 0:w[0])??"Inter Tight",_+=c.ctx.measureText(y).width/devicePixelRatio),Math.ceil(_)}}],series:[{scale:iP},{label:"Regular",stroke:Zf,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Votes",stroke:hd,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Conflicting",stroke:gk,points:{show:!1},width:2/devicePixelRatio,scale:L1},{label:"Bundles",stroke:Gf,points:{show:!1},width:2/devicePixelRatio,scale:L1}],legend:{show:!1},plugins:[nO(),lO({factor:.75}),D_t(r),pO()]}),[]);if(!o)return;const s=n!==void 0?i==null?void 0:i[n]:void 0;return u.jsxs(Pi,{title:"Pack Txns Buffer Utilization",flexGrow:"1",minWidth:"150px",minHeight:"150px",children:[u.jsx(Mt,{height:"100%",children:u.jsx($s,{children:({height:c,width:d})=>(a.width=d,a.height=c,u.jsx(u.Fragment,{children:u.jsx(Pp,{id:"packBufferChart",options:a,data:o})}))})}),u.jsx(A_t,{data:s})]})}function B_t(){var n;const e=X(Cn),t=(n=Is(e).publish)==null?void 0:n.duration_nanos;return u.jsx(Pi,{title:"Slot Duration",children:u.jsxs(V,{gap:_l,children:[u.jsx(q,{className:at.label,children:"Actual"}),t!=null&&u.jsx(q,{className:at.value,children:`${(t/1e6).toFixed(2)}ms`})]})})}const U_t=["success","fail_taken","fail_fast_path","fail_byte_limit","fail_alloc_limit","fail_write_cost","fail_slow_path","fail_defer_skip"];function W_t(){var l,c,d;const e=X(Cn),t=(l=tc(e).response)==null?void 0:l.scheduler_stats;if(!t)return;const{slot_schedule_counts:n,end_slot_schedule_counts:r,pending_smallest_bytes:i,pending_smallest_cost:o,pending_vote_smallest_bytes:a,pending_vote_smallest_cost:s}=t;return u.jsxs(u.Fragment,{children:[u.jsx(Pi,{title:"Txn Schedule Outcomes",children:u.jsxs(Zr,{columns:"repeat(3, 1fr)",gapX:_l,gapY:$d,children:[u.jsx(q,{className:at.label,children:"Outcome"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Txn Count"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Txn Count (End)"}),n.map((f,p)=>{const v=U_t[p];return u.jsxs(u.Fragment,{children:[u.jsx(q,{className:at.label,children:v}),u.jsx(q,{className:at.value,align:"right",children:f.toLocaleString()}),u.jsx(q,{className:at.value,align:"right",children:r[p].toLocaleString()})]},v)})]})}),u.jsx(Pi,{title:"Smallest Pending Txn",children:u.jsxs(Zr,{columns:"repeat(3, 1fr)",gapX:_l,gapY:$d,children:[u.jsx("div",{}),u.jsx(q,{className:at.tableHeader,align:"right",children:"CU Cost"}),u.jsx(q,{className:at.tableHeader,align:"right",children:"Size"}),u.jsx(q,{className:at.label,children:"Non-vote"}),u.jsx(q,{className:at.value,align:"right",children:(o==null?void 0:o.toLocaleString())??0}),u.jsx(q,{className:at.value,align:"right",children:i!=null?(c=Cp(i))==null?void 0:c.toString():0}),u.jsx(q,{className:at.label,children:"Vote"}),u.jsx(q,{className:at.value,align:"right",children:(s==null?void 0:s.toLocaleString())??0}),u.jsx(q,{className:at.value,align:"right",children:a!=null?(d=Cp(a))==null?void 0:d.toString():0})]})})]})}function V_t(){return u.jsx(HO,{title:"Performance",flexGrow:"3",children:u.jsxs(V,{direction:{sm:"row",initial:"column"},gapX:vpe,gapY:BS,flexGrow:"1",children:[u.jsxs(V,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(P_t,{}),u.jsx(W_t,{}),u.jsx(F_t,{})]}),u.jsxs(V,{direction:"column",gap:BS,flexBasis:"0",flexGrow:"1",children:[u.jsx(B_t,{}),u.jsx(O_t,{}),u.jsx(z_t,{})]})]})})}const H_t="_container_id19r_1",Z_t="_label_id19r_6",q_t="_value_id19r_10",G_t="_popover-trigger_id19r_15",Y_t="_popover-underline-overlay_id19r_23",K_t="_popover-text-underline_id19r_27",xl={container:H_t,label:Z_t,value:q_t,popoverTrigger:G_t,popoverUnderlineOverlay:Y_t,popoverTextUnderline:K_t},X_t=Intl.DateTimeFormat().resolvedOptions().timeZone;function oP({nanoTs:e,lines:t,textClassName:n,triggerClassName:r}){const i=m.useMemo(()=>tre(e),[e]),o=tpe(i),a=m.useMemo(()=>{const s=kk(e,{timezone:"local",showTimezoneName:!1}),l=kk(e,{timezone:"utc",showTimezoneName:!1});return{local:s.inNanos,utc:l.inNanos,ts:e.toString()}},[e]);return u.jsx(zg,{content:u.jsxs(Zr,{columns:"max-content max-content",gapX:"10px",gapY:"5px",rows:"4",className:xl.container,children:[u.jsx(q,{className:xl.label,children:X_t}),u.jsx(Za,{className:xl.value,children:a.local}),u.jsx(q,{className:xl.label,children:"UTC"}),u.jsx(Za,{className:xl.value,children:a.utc}),u.jsx(q,{className:xl.label,children:"Relative"}),u.jsx(Za,{className:xl.value,children:o}),u.jsx(q,{className:xl.label,children:"Timestamp"}),u.jsx(Za,{className:xl.value,children:a.ts})]}),align:"start",children:u.jsx(hs,{variant:"ghost",className:Te(xl.popoverTrigger,r),children:u.jsxs(V,{minWidth:"0",position:"relative",children:[u.jsx(V,{direction:"column",minWidth:"0",width:"100%",children:t.map((s,l)=>u.jsx(q,{truncate:!0,className:n,children:s},l))}),u.jsx(V,{direction:"column","aria-hidden":"true",className:xl.popoverUnderlineOverlay,children:t.map((s,l)=>u.jsx(q,{truncate:!0,className:Te(n,xl.popoverTextUnderline),children:s},l))})]})})})}const vh="5px";function J_t(){var c,d,f,p;const e=X(Cn),{countryCode:t,countryFlag:n,cityName:r}=ma(e??0),i=X(di),o=Is(e).publish,a=Hn("(min-width: 1420px)"),s=Hn("(min-width: 600px)"),l=m.useMemo(()=>a?"minmax(300px, max-content) minmax(228px, max-content) minmax(200px, max-content) minmax(150px, max-content) minmax(160px, max-content)":s?"minmax(0px, max-content) 1fr":"1",[a,s]);return e===void 0?null:u.jsxs(Zr,{className:at.grid,align:a?"center":"start",justify:"between",columns:l,gapX:a?"12px":"30px",gapY:vh,children:[u.jsx(Q_t,{slot:e,isLgScreen:a}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"City",value:r&&t?`${r}, ${t}`:"Unknown",icon:n,vertical:!a}),u.jsx(yh,{label:"Epoch",value:i==null?void 0:i.epoch,vertical:!a})]}),a?u.jsxs(V,{direction:"column",gapX:vh,gapY:vh,children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos}),u.jsx(Npe,{slot:e})]}):u.jsxs(u.Fragment,{children:[u.jsx(Epe,{slotCompletedTimeNanos:o==null?void 0:o.completed_time_nanos,vertical:!0}),u.jsx(Npe,{slot:e,vertical:!0})]}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"Votes",value:(c=o==null?void 0:o.success_vote_transaction_cnt)==null?void 0:c.toLocaleString()}),u.jsx(yh,{label:"Vote Failures",value:(d=o==null?void 0:o.failed_vote_transaction_cnt)==null?void 0:d.toLocaleString()})]}),u.jsxs(V,{direction:"column",gap:vh,children:[u.jsx(yh,{label:"Non-votes",value:(f=o==null?void 0:o.success_nonvote_transaction_cnt)==null?void 0:f.toLocaleString()}),u.jsx(yh,{label:"Non-vote Failures",value:(p=o==null?void 0:o.failed_nonvote_transaction_cnt)==null?void 0:p.toLocaleString()})]})]})}function yh({label:e,value:t,popoverDropdown:n,icon:r,vertical:i=!1,allowCopy:o=!1}){return u.jsxs(V,{gapX:"2",direction:i?"column":"row",children:[u.jsx(Za,{className:at.label,children:e}),n===void 0?u.jsx(Dg,{className:at.copyButton,size:14,value:o?t==null?void 0:t.toString():void 0,hideIconUntilHover:!0,children:u.jsxs(Za,{truncate:!0,className:at.value,children:[t,r&&` ${r}`]})}):n]})}function Q_t({slot:e,isLgScreen:t}){var a,s;const{peer:n,isLeader:r,name:i,pubkey:o}=ma(e??0);return t?u.jsxs(V,{gapX:"10px",align:"center",children:[u.jsx(ks,{url:(a=n==null?void 0:n.info)==null?void 0:a.icon_url,size:42,isYou:r}),u.jsxs(V,{direction:"column",gapY:"1px",minWidth:"0",children:[u.jsx(qk,{content:i,children:u.jsx(q,{truncate:!0,className:Te(at.name,at.lg),children:i})}),u.jsx(Ipe,{slot:e,pubkey:o})]})]}):u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gapX:vh,align:"center",children:[u.jsx(ks,{url:(s=n==null?void 0:n.info)==null?void 0:s.icon_url,size:15,isYou:r}),u.jsx(qk,{content:i,children:u.jsx(q,{truncate:!0,className:at.name,children:i})})]}),u.jsx(Ipe,{slot:e,pubkey:o})]})}function Ipe({slot:e,pubkey:t}){return u.jsxs(V,{gapX:vh,align:"center",children:[u.jsx(Dg,{className:at.copyButton,size:14,value:t,hideIconUntilHover:!0,children:u.jsx(Za,{truncate:!0,className:at.value,children:t})}),u.jsx(O_,{slot:e,size:"large"})]})}function Epe({vertical:e=!1,slotCompletedTimeNanos:t}){const n=m.useMemo(()=>{if(t!=null)return kk(t)},[t]);return u.jsx(yh,{label:"Slot Time",popoverDropdown:t&&n?u.jsx(oP,{nanoTs:t,lines:[n.inMillis],textClassName:Te("mono-text",at.value),triggerClassName:at.timePopover}):void 0,vertical:e})}function Npe({slot:e,vertical:t=!1}){var r;const n=(r=tc(e).response)==null?void 0:r.scheduler_stats;return u.jsx(yh,{label:"Block Hash",value:_i?"Not available for Frankendancer":n==null?void 0:n.block_hash,vertical:t,allowCopy:!_i&&(n==null?void 0:n.block_hash)!=null})}function ext(){var t;const e=X(Cn);return(t=tc(e).response)!=null&&t.limits?u.jsxs(u.Fragment,{children:[u.jsx(J_t,{}),u.jsx(so,{children:u.jsxs(V,{gap:vpe,wrap:"wrap",flexBasis:"0",children:[u.jsx(o_t,{}),u.jsx(I_t,{}),u.jsx(V_t,{})]})})]}):u.jsx(txt,{})}function txt(){return u.jsx(so,{style:{display:"flex",flexGrow:"1",height:"550px",justifyContent:"center",alignItems:"center"},children:u.jsx(q,{children:"Loading Slot Statistics..."})})}function nxt({children:e}){const t=m.useRef(new Map),n=m.useRef(new Map),r=m.useMemo(()=>({registerControl:(i,o,a)=>(t.current.set(i,o),n.current.set(i,a),()=>{t.current.delete(i),n.current.delete(i)}),triggerControl:(i,o)=>{var a;(a=t.current.get(i))==null||a(o)},resetControl:i=>{var o;(o=n.current.get(i))==null||o()},resetAllControls:i=>{for(const[o,a]of n.current)i!=null&&i.includes(o)||a()}}),[]);return u.jsx(N1.Provider,{value:r,children:e})}function rxt(){const e=X(Cn),[t,n]=m.useState(!1),r=X(gd.state)===Xf.NotReady;return m.useEffect(()=>{if(r&&!t){const i=setTimeout(()=>n(!0),2500);return()=>clearTimeout(i)}},[r,n,t]),r&&!t?null:e===void 0?u.jsx(sbt,{}):u.jsx(ixt,{})}function ixt(){if(X(Cn)!==void 0)return u.jsxs(V,{direction:"column",gap:"2",flexGrow:"1",children:[u.jsx(zbt,{}),u.jsxs(nxt,{children:[u.jsx(ext,{}),u.jsx(Bfe,{}),u.jsx(C1t,{}),u.jsx(qyt,{})]})]})}const oxt=ca(),axt=kt({slot:oe().optional().catch(void 0)}),$pe=up("/slotDetails")({validateSearch:axt,component:rxt,beforeLoad:({search:{slot:e}})=>oxt.set(gd.slot,e)}),sxt="_card_ybszl_1",lxt="_name-text_ybszl_8",uxt="_pubkey-text_ybszl_14",cxt="_narrow-screen_ybszl_21",dxt="_two-away_ybszl_27",fxt="_one-away_ybszl_33",hxt="_time-till_ybszl_38",mc={card:sxt,nameText:lxt,pubkeyText:uxt,narrowScreen:cxt,twoAway:dxt,oneAway:fxt,timeTill:hxt},pxt="_my-slots_kxi8u_1",mxt="_scroll_kxi8u_7",GS={mySlots:pxt,scroll:mxt};var Om=(e=>(e.Past="Past",e.Now="Now",e.Upcoming="Upcoming",e))(Om||{});function gxt(e,t){return et?Om.Upcoming:Om.Now}function vxt({currentLeaderSlot:e,searchLeaderSlots:t,slotOverride:n,curCardCount:r=0,cardCount:i=1}){const o=t.toReversed();if(n===void 0){if(o.length<=i)return o[r];{const a=o.findIndex(l=>lMath.abs(c-n)),s=Math.min(...a),l=Math.max(a.indexOf(s)-3,0);return o[r+l]}}function yxt({cardCount:e,currentLeaderSlot:t,epoch:n,searchLeaderSlots:r,slotOverride:i,topSlot:o}){const a=[],s=[],l=[];if(t===void 0)return{upcoming:a,now:s,past:l};for(let c=0;cn.end_slot))continue;const f=gxt(d,t);f===Om.Upcoming&&a.push(d),f===Om.Now&&s.push(d),f===Om.Past&&l.push(d)}return{upcoming:a,now:s,past:l}}function Mpe(e){const{year:t,...n}=jt.DATETIME_MED_WITH_SECONDS;return e.toLocaleString({...n,timeZoneName:"short"})}function bxt({slot:e}){var c,d;const t=X(eu),{pubkey:n,peer:r,isLeader:i,name:o}=ma(e),a=t!==void 0&&e===t+$n,s=t!==void 0&&e===t+$n*2,l=Hn("(min-width: 1250px)");return u.jsx("div",{className:Te(mc.card,{[mc.oneAway]:a,[mc.twoAway]:s,[GS.mySlots]:i}),children:l?u.jsx(_xt,{iconUrl:(c=r==null?void 0:r.info)==null?void 0:c.icon_url,isLeader:i,name:o,pubkey:n,slot:e}):u.jsx(xxt,{iconUrl:(d=r==null?void 0:r.info)==null?void 0:d.icon_url,isLeader:i,name:o,pubkey:n,slot:e})})}function _xt({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(V,{gap:"2",minWidth:"300px",width:"505px",align:"center",pr:"20px",children:[u.jsx(ks,{url:e,size:24,isYou:t}),u.jsx(q,{className:mc.nameText,children:n})]}),u.jsx(q,{className:mc.pubkeyText,children:r}),u.jsx(V,{justify:"center",minWidth:"190px",children:u.jsx(q,{children:i})}),u.jsx(Lpe,{slot:i})]})}function xxt({iconUrl:e,isLeader:t,name:n,pubkey:r,slot:i}){return u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gap:"2",align:"center",children:[u.jsx(ks,{url:e,size:16,isYou:t}),u.jsx(q,{className:mc.nameText,children:n}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(q,{className:Te(mc.pubkeyText,mc.narrowScreen),children:r})]}),u.jsxs(V,{justify:"between",children:[u.jsx(q,{children:i}),u.jsx(Lpe,{slot:i,isNarrowScreen:!0})]})]})}function Lpe({slot:e,isNarrowScreen:t}){const n=X(oo),r=X(Eg),i=n?fn.fromMillis(r*(e-n)).rescale():void 0,[o,a]=m.useReducer(Rpe,i,s=>Rpe(void 0,s));if(r_(()=>a(i),1e3),o!==void 0)return u.jsx(V,{className:Te(mc.timeTill,{[mc.narrowScreen]:t}),children:u.jsx(oP,{nanoTs:o.predictedTsNanos,lines:[`${o.dtText} (${o.timeTillText})`]})})}function Rpe(e,t){if(t!==void 0)return{timeTillText:Sp(t),dtText:kxt(t),predictedTsNanos:wxt(t)}}function wxt(e){const t=Kf.plus(e);return BigInt(Math.trunc(t.toSeconds()))*1000000000n}function kxt(e){const t=Kf.plus(e);return Mpe(t)}const Sxt="_card_zlaiw_1",Cxt="_late-vote_zlaiw_7",jxt="_skipped_zlaiw_12",aP={card:Sxt,lateVote:Cxt,skipped:jxt},Txt="_grid_1feao_1",Ixt="_firedancer-grid_1feao_16",Ext="_header-text_1feao_24",Nxt="_vote-latency-header_1feao_30",$xt="_votes-header_1feao_33",Mxt="_non-votes-header_1feao_36",Lxt="_fees-header_1feao_39",Rxt="_tips-header_1feao_42",Oxt="_compute-units-header_1feao_45",Pxt="_compute-units-pct_1feao_50",zxt="_row-text_1feao_55",Dxt="_active_1feao_62",Axt="_slot-text_1feao_68",Kr={grid:Txt,firedancerGrid:Ixt,headerText:Ext,voteLatencyHeader:Nxt,votesHeader:$xt,nonVotesHeader:Mxt,feesHeader:Lxt,tipsHeader:Rxt,computeUnitsHeader:Oxt,computeUnitsPct:Pxt,rowText:zxt,active:Dxt,slotText:Axt},[Fxt,Bxt,Uxt,Wxt]=function(){const e=Co({}),t=fe(0);return[fe(null,(n,r,i,o)=>{const a=n(t);a&&o(a),r(e,s=>{s[i]=o})}),fe(null,(n,r,i)=>{r(e,o=>{delete o[i]})}),fe(null,(n,r,i,o)=>{for(const[a,s]of Object.entries(n(e)))Number(a)!==i&&s(o);r(t,o)}),fe(null,(n,r)=>{r(e,{}),r(t,0)})]}(),Vxt="_slot-text_j49it_1",Hxt={slotText:Vxt};function Zxt({slot:e,isLeader:t,className:n}){const r=Te(n,Hxt.slotText);return t?u.jsx(q,{className:r,children:u.jsx(lp,{to:"/slotDetails",search:{slot:e},children:e})}):u.jsx(q,{className:r,children:e})}function R1({slot:e,currentSlot:t}){const n=m.useRef(null),r=Ee(Fxt),i=Ee(Bxt),o=Ee(Uxt);return m.useEffect(()=>(r(e,a=>{var s;(s=n.current)==null||s.scrollTo(a,0)}),()=>i(e)),[i,r,e]),u.jsxs(V,{minWidth:"0",flexGrow:"1",children:[u.jsx(qxt,{slot:e,currentSlot:t}),u.jsxs("div",{className:Te(Kr.grid,{[Kr.firedancerGrid]:Vi}),ref:n,onScroll:a=>{o(e,a.currentTarget.scrollLeft)},children:[Vi&&u.jsx(q,{className:Te(Kr.headerText,Kr.voteLatencyHeader),align:"right",children:"Vote\xA0Latency"}),u.jsx(q,{className:Te(Kr.headerText,Kr.votesHeader),align:"right",children:"Votes"}),u.jsx(q,{className:Te(Kr.headerText,Kr.nonVotesHeader),align:"right",children:"Non-votes"}),u.jsx(q,{className:Te(Kr.headerText,Kr.feesHeader),align:"right",children:"Fees"}),u.jsx(q,{className:Te(Kr.headerText,Kr.tipsHeader),align:"right",children:"Tips"}),u.jsx(q,{className:Te(Kr.headerText,Kr.durationHeader),align:"right",children:"Duration"}),u.jsx(q,{className:Te(Kr.headerText,Kr.computeUnitsHeader),align:"right",children:"Compute\xA0Units"}),new Array(4).fill(0).map((a,s)=>{const l=e+3-s;return u.jsx(Yxt,{slot:l,active:l===t},l)})]})]})}function qxt({slot:e,currentSlot:t}){return u.jsxs(V,{direction:"column",children:[u.jsx(q,{className:Te(Kr.headerText,Kr.slotText),children:"Slot"}),new Array(4).fill(0).map((n,r)=>{const i=e+3-r,o=i===t;return u.jsx(Gxt,{slot:i,isCurrent:o},i)})]})}function Gxt({slot:e,isCurrent:t}){var o;const n=Is(e),r=OM(e),i=X(dp)===r;return u.jsxs(V,{className:Te(Kr.rowText,Kr.slotText,t&&Kr.active),align:"center",gap:"2",children:[u.jsx(Zxt,{slot:e,isLeader:i}),u.jsx(dpe,{slot:e,isCurrent:t,size:"small"}),(o=n.publish)!=null&&o.skipped?u.jsx(hpe,{size:"small"}):u.jsx(fpe,{size:"small"})]})}function Ope(e,t){const n=jb(e.success_vote_transaction_cnt??0),r=jb(e.success_nonvote_transaction_cnt??0),i=jb(e.failed_vote_transaction_cnt??0),o=jb(e.failed_nonvote_transaction_cnt??0),a=Rs((e.transaction_fee??0n)+(e.priority_fee??0n),Uo,{decimals:Uo,trailingZeroes:!0}),s=e.transaction_fee!=null?(Number(e.transaction_fee)/dd).toString():"0",l=e.priority_fee!=null?(Number(e.priority_fee)/dd).toString():"0",c=Rs(e.tips??0n,Uo,{decimals:Uo,trailingZeroes:!0}),d=e.tips!=null?(Number(e.tips)/dd).toString():"0",f=e.duration_nanos!==null?`${Math.trunc(e.duration_nanos/1e6)} ms`:"-",p=jb((e==null?void 0:e.compute_units)??0),v=e.compute_units!=null?e.compute_units/(e.max_compute_units??Bte)*100:0,_=e.vote_latency!=null?{text:rre(e.slot,e.vote_latency,t).toLocaleString()}:e.skipped?{text:""}:e.level==="rooted"?{text:"\u2715",color:"#FF3C3C"}:{text:"-"};return{voteTxns:(n+i).toLocaleString(),nonVoteTxns:(r+o).toLocaleString(),totalFees:a,transactionFeeFull:s,priorityFeeFull:l,tips:c,tipsFull:d,durationText:f,computeUnits:p,computeUnitsPct:v,voteLatency:_}}function Yxt({slot:e,active:t}){var b;const n=X(Jf),r=X(oo),i=X(Ik),o=Is(e),[a,s]=m.useState(()=>{if(o.publish)return Ope(o.publish,i)});m.useEffect(()=>{o.publish&&s(Ope(o.publish,i))},[o.publish,i,e]);const l=e>(r??1/0),c=e===r,d=m.useRef(),[f,p]=m.useState(!1);o_(c)&&!c&&!f&&(clearTimeout(d.current),d.current=setTimeout(()=>{p(!1)},50),p(!0)),Pg(()=>{clearTimeout(d.current)});const v=e<(n??0),_=(w,x)=>l||c||v?"-":!a&&!o.hasWaitedForData&&!f?"Loading...":a?(typeof w=="number"&&(w=Math.round(w)),`${w}`):"-",y=Te(Kr.rowText,{[Kr.active]:t});return u.jsxs(u.Fragment,{children:[Vi&&u.jsx(q,{className:y,align:"right",style:{color:(b=a==null?void 0:a.voteLatency)==null?void 0:b.color},children:_(a==null?void 0:a.voteLatency.text)}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.voteTxns)}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.nonVoteTxns)}),u.jsx(ui,{content:u.jsxs(Zr,{columns:"auto auto",rows:"2",gapX:"3",children:[u.jsx(q,{children:"Transaction"}),u.jsx(q,{children:"Priority"}),u.jsxs(q,{children:[a==null?void 0:a.transactionFeeFull," SOL"]}),u.jsxs(q,{children:[a==null?void 0:a.priorityFeeFull," SOL"]})]}),children:u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.totalFees)})}),u.jsx(ui,{content:`${a==null?void 0:a.tipsFull} SOL`,children:u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.tips)})}),u.jsx(q,{className:y,align:"right",children:_(a==null?void 0:a.durationText)}),(a==null?void 0:a.computeUnits)!==void 0?u.jsx(q,{className:y,align:"right",style:{padding:0},children:u.jsxs(u.Fragment,{children:[_(a==null?void 0:a.computeUnits.toLocaleString()),u.jsx("span",{className:Kr.computeUnitsPct,children:(a==null?void 0:a.computeUnitsPct)!==void 0?`${uk}(${_(a==null?void 0:a.computeUnitsPct)}%)`:null})]})}):u.jsx(q,{className:y,align:"right",children:_()})]})}const Kxt="_my-slots_476vd_1",Xxt="_summary-container_476vd_8",Jxt="_name_476vd_13",Qxt="_you_476vd_22",e2t="_mobile_476vd_26",t2t="_primary-text_476vd_32",n2t="_secondary-text_476vd_40",r2t="_divider_476vd_47",i2t="_firedancer_476vd_55",o2t="_frankendancer_476vd_59",a2t="_agave_476vd_63",s2t="_jito_476vd_67",l2t="_paladin_476vd_71",u2t="_bam_476vd_75",c2t="_sig_476vd_79",d2t="_rakurai_476vd_83",f2t="_harmonic_476vd_89",h2t="_major-minor-version-text_476vd_93",p2t="_remaining-version-text_476vd_97",m2t="_time-ago_476vd_102",g2t="_right-aligned_476vd_105",Go={mySlots:Kxt,summaryContainer:Xxt,name:Jxt,you:Qxt,mobile:e2t,primaryText:t2t,secondaryText:n2t,divider:r2t,firedancer:i2t,frankendancer:o2t,agave:a2t,jito:s2t,paladin:l2t,bam:u2t,sig:c2t,rakurai:d2t,harmonic:f2t,majorMinorVersionText:h2t,remainingVersionText:p2t,timeAgo:m2t,rightAligned:g2t},v2t="_arrow-dropdown_mvcj2_1",y2t={arrowDropdown:v2t};function b2t({align:e,children:t}){const[n,r]=m.useState(!1);return u.jsx(zg,{align:e,content:t,isOpen:n,onOpenChange:r,children:u.jsx(hs,{variant:"ghost",size:"1",className:y2t.arrowDropdown,children:n?u.jsx(F$,{}):u.jsx(A$,{})})})}function Ppe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{direction:"column",className:Go.summaryContainer,gap:"2",mr:"2",children:[u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:30,isYou:i}),u.jsx(q,{className:Te(Go.name,{[Go.you]:i}),children:o})]}),u.jsx(q,{className:Go.primaryText,children:n}),u.jsx(Fpe,{slot:e,peer:r,showTime:t})]})}function zpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{direction:"column",gap:"1",children:[u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(q,{className:Te(Go.name,Go.mobile),children:o}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(q,{className:Go.primaryText,children:n})]}),u.jsx(Fpe,{slot:e,peer:r,showTime:t,full:!0})]})}function Dpe({slot:e,showTime:t}){var a;const{pubkey:n,peer:r,isLeader:i,name:o}=ma(e);return u.jsxs(V,{gap:"1",children:[u.jsx(ks,{url:(a=r==null?void 0:r.info)==null?void 0:a.icon_url,size:16,isYou:i}),u.jsx(q,{className:Go.primaryText,children:o}),u.jsx(b2t,{align:"start",children:u.jsxs(V,{p:"1",direction:"column",gap:"2",className:Go.mobile,children:[u.jsx(q,{children:n}),u.jsx(_2t,{slot:e,peer:r,showTime:t})]})})]})}function Ape(e){var p;const t=X(Ig),{client:n,version:r,countryCode:i,countryFlag:o,cityName:a}=PM(e),s=e?nre(e):void 0,l=t?t.activeStake+t.delinquentStake:0n,c=l>0n?Number(s)/Number(l)*100:void 0,d=s!==void 0?`${BN(s)}${c!==void 0?` \u2022 ${P$(c,{significantDigits:4,trailingZeroes:!1})}%`:""}`:void 0,f=HN(((p=e==null?void 0:e.gossip)==null?void 0:p.sockets.tvu)??"");return!Cb(n)&&!Cb(d)&&!f?null:{client:n,version:r,countryCode:i,countryFlag:o,cityName:a,stakeText:d??"",ipText:f||"Offline"}}function Fpe({slot:e,peer:t,showTime:n,full:r}){const i=Ape(t);if(!i)return null;const{client:o,version:a,countryCode:s,countryFlag:l,cityName:c,stakeText:d,ipText:f}=i;return u.jsxs(V,{gap:"4",minWidth:"0",justify:"between",className:Go.secondaryText,children:[u.jsxs(V,{direction:"column",minWidth:"0",children:[u.jsx(ui,{content:`${o??"Unknown"}${a!=null?` v${a}`:""}`,children:u.jsxs(V,{gap:"1",children:[u.jsx(V,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(O_,{slot:e,size:"medium"})}),u.jsx(Upe,{client:o,version:a})]})}),c&&s&&u.jsx(ui,{content:`${c}, ${s}`,children:u.jsxs(V,{gap:"1",children:[u.jsx(V,{width:"26px",align:"center",flexShrink:"0",children:u.jsx(q,{children:l})}),u.jsx(Bpe,{cityName:c,countryCode:s})]})})]}),u.jsxs(V,{gap:"4",children:[u.jsxs(V,{direction:"column",width:"180px",align:r?"end":"start",children:[u.jsx(q,{children:d}),u.jsx(q,{children:f})]}),u.jsx(V,{width:"165px",justify:r?"end":"start",children:n&&u.jsx(Wpe,{slot:e,align:r?"right":"left",multiline:!0})})]})]})}function _2t({slot:e,peer:t,showTime:n}){const r=Ape(t);if(!r)return null;const{client:i,version:o,countryCode:a,countryFlag:s,cityName:l,stakeText:c,ipText:d}=r;return u.jsxs(V,{gap:"2",minWidth:"0",justify:"between",direction:"column",children:[u.jsxs(V,{gap:"1",children:[u.jsx(O_,{slot:e,size:"small"}),u.jsx(Upe,{client:i,version:o})]}),l&&a&&u.jsxs(V,{gap:"1",children:[u.jsx(q,{children:s}),u.jsx(Bpe,{cityName:l,countryCode:a})]}),u.jsx(q,{children:c}),u.jsx(q,{children:d}),n&&u.jsx(Mt,{children:u.jsx(Wpe,{slot:e,align:"left"})})]})}function Bpe({cityName:e,countryCode:t}){return u.jsxs(V,{minWidth:"0",children:[u.jsx(q,{truncate:!0,children:e}),u.jsxs(q,{children:["\xA0",t]})]})}function Upe({client:e,version:t}){const n=(e??"Unknown").split(" "),r=n[0],i=n[1],o=Go[r.toLowerCase()],a=t==null?void 0:t.match(/^(\d+\.\d+)(\..+)$/),s=a?a[1]:t??"",l=a?a[2]:"";return u.jsxs(V,{minWidth:"0",children:[u.jsxs(q,{truncate:!0,children:[u.jsx(q,{className:o,children:r}),i&&u.jsxs(q,{className:Go[i.toLowerCase()],children:["\xA0",i]}),t&&u.jsx(q,{children:"\xA0"})]}),t&&u.jsxs(q,{className:Te(Go.majorMinorVersionText,o),children:["v",s]}),l&&u.jsx(q,{truncate:!0,className:Te(Go.remainingVersionText,o),children:l})]})}function Wpe({slot:e,align:t,multiline:n=!1}){const{slotTimestampNanos:r,slotDateTime:i,timeAgoText:o}=npe(e);if(r===void 0)return;const a=i?Mpe(i):"",s=o?n?[a,o]:[`${a} (${o})`]:[a];return u.jsx(oP,{nanoTs:r,lines:s,textClassName:Te(Go.timeAgo,{[Go.rightAligned]:t==="right"})})}const Vpe="(min-width: 900px)",sP="(min-width: 600px)";function x2t({slot:e}){var f,p,v,_;const{isLeader:t}=ma(e),n=X(jre),r=Is(e),i=Is(e+1),o=Is(e+2),a=Is(e+3),s=[0,1,2,3].some(y=>n.has(e+y)),l=((f=r.publish)==null?void 0:f.skipped)||((p=i.publish)==null?void 0:p.skipped)||((v=o.publish)==null?void 0:v.skipped)||((_=a.publish)==null?void 0:_.skipped),c=Hn(Vpe),d=Hn(sP);return u.jsx("div",{className:Te(aP.card,{[GS.mySlots]:t,[aP.lateVote]:s,[aP.skipped]:l}),children:c?u.jsxs(V,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ppe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]}):d?u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]}):u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e,showTime:!0}),u.jsx(R1,{slot:e})]})})}const w2t="_card_wweyx_1",k2t={card:w2t};function S2t({slot:e}){const t=X(oo),{isLeader:n}=ma(e),r=Hn(Vpe),i=Hn(sP);return u.jsx("div",{className:Te(k2t.card,{[GS.mySlots]:n}),children:r?u.jsxs(V,{gap:"1",align:"start",justify:"between",children:[u.jsx(Ppe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]}):i?u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(zpe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]}):u.jsxs(V,{direction:"column",gap:"1",children:[u.jsx(Dpe,{slot:e}),u.jsx(R1,{slot:e,currentSlot:t})]})})}var C2t=Object.defineProperty,j2t=(e,t,n)=>t in e?C2t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,YS=(e,t,n)=>j2t(e,typeof t!="symbol"?t+"":t,n),lP=new Map,uP=new WeakMap,Hpe=0,T2t=void 0;function I2t(e){return e?(uP.has(e)||(Hpe+=1,uP.set(e,Hpe.toString())),uP.get(e)):"0"}function E2t(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?I2t(e.root):e[t]}`).toString()}function N2t(e){const t=E2t(e);let n=lP.get(t);if(!n){const r=new Map;let i;const o=new IntersectionObserver(a=>{a.forEach(s=>{var l;const c=s.isIntersecting&&i.some(d=>s.intersectionRatio>=d);e.trackVisibility&&typeof s.isVisible>"u"&&(s.isVisible=c),(l=r.get(s.target))==null||l.forEach(d=>{d(c,s)})})},e);i=o.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:o,elements:r},lP.set(t,n)}return n}function $2t(e,t,n={},r=T2t){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const l=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:i,observer:o,elements:a}=N2t(n),s=a.get(e)||[];return a.has(e)||a.set(e,s),s.push(t),o.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(a.delete(e),o.unobserve(e)),a.size===0&&(o.disconnect(),lP.delete(i))}}function M2t(e){return typeof e.children!="function"}var Zpe=class extends m.Component{constructor(e){super(e),YS(this,"node",null),YS(this,"_unobserveCb",null),YS(this,"handleNode",t=>{this.node&&(this.unobserve(),!t&&!this.props.triggerOnce&&!this.props.skip&&this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=t||null,this.observeNode()}),YS(this,"handleChange",(t,n)=>{t&&this.props.triggerOnce&&this.unobserve(),M2t(this.props)||this.setState({inView:t,entry:n}),this.props.onChange&&this.props.onChange(t,n)}),this.state={inView:!!e.initialInView,entry:void 0}}componentDidMount(){this.unobserve(),this.observeNode()}componentDidUpdate(e){(e.rootMargin!==this.props.rootMargin||e.root!==this.props.root||e.threshold!==this.props.threshold||e.skip!==this.props.skip||e.trackVisibility!==this.props.trackVisibility||e.delay!==this.props.delay)&&(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve()}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i,fallbackInView:o}=this.props;this._unobserveCb=$2t(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:i},o)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if(typeof e=="function"){const{inView:v,entry:_}=this.state;return e({inView:v,entry:_,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:i,rootMargin:o,onChange:a,skip:s,trackVisibility:l,delay:c,initialInView:d,fallbackInView:f,...p}=this.props;return m.createElement(t||"div",{ref:this.handleNode,...p},e)}};function cP({slot:e,lastCardSlot:t,setCardCount:n,children:r}){return e!==t?r:u.jsxs(u.Fragment,{children:[u.jsx(Zpe,{onChange:i=>{i||n("decrease")},children:r}),u.jsx(Zpe,{onChange:i=>{i&&n("increase")}})]})}const L2t="_preload_1uziq_1",R2t={preload:L2t};function O2t({slot:e}){var a,s;Is(e);const t=OM(e),n=Hk(t),[r,i]=Vl($ie((a=n==null?void 0:n.info)==null?void 0:a.icon_url)),o=!r&&((s=n==null?void 0:n.info)!=null&&s.icon_url)?n.info.icon_url:void 0;return u.jsx("div",{className:R2t.preload,children:u.jsx("img",{src:o,onError:()=>i()})})}const KS=$n*5;function P2t({topCardSlotLeader:e,bottomCardSlotLeader:t,searchLeaderSlots:n}){if(n){const r=[],i=n.indexOf(t),o=n.indexOf(e);if(i>0)for(let a=1;a<=KS&&i-a>=0;a++){const s=n[i-a];for(let l=0;l<$n;l++)r.push(s+l)}if(o>0)for(let a=1;a<=KS&&o+a0)for(let a=r;a>r-KS;a--)o.push(a);if(i>0)for(let a=i;au.jsx(O2t,{slot:i},i))})}const D2t=10,A2t=2,F2t=1;function B2t(e,t){switch(t){case"increase":return e+A2t;case"decrease":return Math.max(1,e-F2t)}}function U2t(){const e=X(eu),t=X(An),n=X(Aa),r=X(di),[i,o]=m.useReducer(B2t,D2t),a=t??(e??0)+Ate*$n,{upcoming:s,now:l,past:c}=m.useMemo(()=>yxt({cardCount:i,currentLeaderSlot:e,epoch:r,searchLeaderSlots:n,slotOverride:t,topSlot:a}),[i,e,r,n,t,a]);if(e===void 0)return;if((n==null?void 0:n.length)===0)return u.jsx(V,{justify:"center",align:"center",style:{color:pN,fontSize:"24px",letterSpacing:"-0.96px",minHeight:"300px"},children:u.jsx(q,{children:"No slots found."})});const d=s[0]??l[0]??c[0]??-1,f=c[c.length-1]??l[l.length-1]??s[s.length-1]??-1;return u.jsxs(u.Fragment,{children:[!!s.length&&u.jsx(dP,{sectionName:"Upcoming",children:s.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(bxt,{slot:p},p)},p))}),!!l.length&&u.jsx(dP,{sectionName:"Now",children:l.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(S2t,{slot:p},p)},p))}),!!c.length&&u.jsx(dP,{sectionName:"Past",children:c.map(p=>u.jsx(cP,{slot:p,lastCardSlot:f,setCardCount:o,children:u.jsx(x2t,{slot:p})},p))}),u.jsx(z2t,{topCardSlotLeader:d,bottomCardSlotLeader:f})]})}function dP({children:e,sectionName:t}){const n=Hn(sP);return u.jsxs(V,{gap:"2",align:"stretch",children:[n&&u.jsxs(V,{direction:"column",gap:"2",align:"center",children:[u.jsx("div",{style:{width:"1px",flex:1,background:PN,height:"10px"}}),u.jsx(q,{style:{transform:"rotate(180deg)",writingMode:"vertical-rl",color:Kte},size:"2",children:t}),u.jsx("div",{style:{width:"1px",flex:1,background:PN,height:"10px"}})]}),u.jsx(V,{direction:"column",flexGrow:"1",gap:"2",minWidth:"0",children:e})]})}const W2t="_container_1hof6_1",V2t="_button_1hof6_5",qpe={container:W2t,button:V2t};function H2t(){const[e,t]=Vl(An),n=X(eu);if(e===void 0||n===void 0)return null;const r=e<=n+Ate*$n;return u.jsx("div",{className:qpe.container,children:u.jsxs(hs,{className:qpe.button,style:{bottom:r?void 0:"8px"},onClick:()=>t(void 0),children:[u.jsx(q,{children:"Skip to Realtime"}),r?u.jsx(Vie,{}):u.jsx(Wie,{})]})})}const Z2t="_label_14v9a_1",q2t="_value_14v9a_5",Gpe={label:Z2t,value:q2t};function G2t(){const{progressSinceLastLeader:e,nextSlotText:t,nextLeaderSlot:n}=P_({showNowIfCurrent:!0}),r=n!==void 0?` (${n})`:"";return u.jsxs(V,{align:"center",gap:"2",children:[u.jsxs(q,{className:Gpe.label,children:["Next leader slot",r]}),u.jsx(a1,{width:"60px",height:"8px",value:e}),u.jsx(q,{className:Gpe.value,children:t})]})}const Y2t="_container_bc437_1",K2t="_search-box_bc437_18",X2t="_label_bc437_29",J2t="_search-button_bc437_33",Q2t="_disabled_bc437_56",ewt="_my-slots_bc437_64",twt="_late-vote-slots_bc437_84",nwt="_skipped-slots_bc437_102",rwt="_skip-rate-label_bc437_130",iwt="_skip-rate-value_bc437_135",Eo={container:Y2t,searchBox:K2t,label:X2t,searchButton:J2t,disabled:Q2t,mySlots:ewt,lateVoteSlots:twt,skippedSlots:nwt,skipRateLabel:rwt,skipRateValue:iwt};function XS(){const{searchType:e}=yx.useSearch(),t=Q0({from:yx.fullPath}),n=m.useCallback(r=>{t({search:{searchType:r},replace:!0})},[t]);return{searchType:e,setSearchType:n}}function owt(){const{searchText:e}=yx.useSearch(),t=Q0({from:yx.fullPath}),n=m.useCallback(r=>{t({search:{searchText:r,searchType:zi.text},replace:!0})},[t]);return{searchText:e,setSearchText:n}}function awt(){const e=Ee(Fze),t=Ee(An),{searchType:n}=XS(),{searchText:r,setSearchText:i}=owt(),[o,a]=m.useState(r),s=Ip(c=>{e(c),i(c)},1e3);m.useEffect(()=>{!s.isPending()&&o!==r&&a(r)},[s,o,r]);const l=()=>{i(""),t(void 0),e("")};return i_(()=>{n===zi.text&&e(r)}),u.jsxs(V,{className:Eo.container,gap:"2",wrap:"wrap",children:[u.jsx(Mt,{className:Eo.searchBox,children:u.jsxs(J7,{placeholder:"Name, Client Id, Pubkey, or Slot (use , for multiple)",variant:"soft",color:"gray",onChange:c=>{a(c.currentTarget.value),s(c.currentTarget.value)},value:o,children:[u.jsx(M4,{children:u.jsx(qie,{height:"16",width:"16",style:{color:ON}})}),o&&u.jsx(M4,{children:u.jsx(nl,{size:"1",variant:"ghost",children:u.jsx(B$,{height:"14",width:"14",style:{color:ON},onClick:l})})})]})}),u.jsx(lwt,{resetSearchText:l}),Vi&&u.jsx(cwt,{resetSearchText:l}),u.jsx(uwt,{resetSearchText:l}),u.jsx(swt,{}),u.jsx(Mt,{flexGrow:"1"}),u.jsx(G2t,{})]})}function swt(){const e=X(Sre),t=m.useMemo(()=>e?`${(e.skip_rate*100).toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:2})}%`:"-",[e]);return u.jsxs(V,{justify:"center",align:"center",gap:"1",children:[u.jsx(q,{className:Eo.skipRateLabel,children:"Skip Rate"}),u.jsx(q,{className:e!=null&&e.skip_rate?Eo.skipRateValue:Eo.skipRateLabel,children:t})]})}function lwt({resetSearchText:e}){const t=X(ao),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=((t==null?void 0:t.length)??0)*4,s=m.useCallback(()=>{n(t)},[n,t]);m.useEffect(()=>{i===zi.mySlots&&n(t)},[t,n]);const l=()=>{e(),r(void 0),i===zi.mySlots?o(zi.text):(o(zi.mySlots),s())},c=i===zi.mySlots,d=!(t!=null&&t.length);return u.jsx(ui,{content:"Number of slots this validator is leader in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.mySlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle my slots",pressed:c,disabled:d,children:[u.jsx(q,{className:Eo.label,children:"My Slots"}),u.jsx(q,{children:a})]})})})})}function uwt({resetSearchText:e}){const t=X(u3),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=(t==null?void 0:t.length)??0,s=m.useCallback(()=>{const f=t==null?void 0:t.map(p=>p-p%4);n([...new Set(f)])},[n,t]);m.useEffect(()=>{i===zi.skippedSlots&&s()},[s]);const l=()=>{e(),r(void 0),i===zi.skippedSlots?o(zi.text):t!=null&&t.length&&(o(zi.skippedSlots),s())},c=i===zi.skippedSlots,d=!(t!=null&&t.length);return u.jsx(ui,{content:"Number of slots this validator has skipped in the current epoch since it was last restarted. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.skippedSlots,d&&Eo.disabled),onClick:l,"aria-label":"Toggle skipped slots",pressed:c,disabled:!c&&d,children:[u.jsx(q,{className:Eo.label,children:"My Skipped Slots"}),u.jsx(q,{children:a})]})})})})}function cwt({resetSearchText:e}){const t=X(jre),n=Ee(Aa),r=Ee(An),{searchType:i,setSearchType:o}=XS(),a=t.size,s=m.useMemo(()=>Array.from(new Set([...t].map(p=>xi(p)))),[t]),l=m.useCallback(()=>{n(s)},[n,s]);m.useEffect(()=>{i===zi.lateVoteSlots&&n(s)},[s,n]);const c=()=>{e(),r(void 0),i===zi.lateVoteSlots?o(zi.text):(o(zi.lateVoteSlots),l())},d=i===zi.lateVoteSlots,f=!t.size;return u.jsx(ui,{content:"Number of slots this validator has voted late in the current epoch. Toggle to filter",children:u.jsx("div",{children:u.jsx(Z0,{children:u.jsxs(E7,{className:Te(Eo.searchButton,Eo.lateVoteSlots,f&&Eo.disabled),onClick:c,"aria-label":"Toggle late vote slots",pressed:d,disabled:f,children:[u.jsx(q,{className:Eo.label,children:"My Late Votes"}),u.jsx(q,{children:a})]})})})})}var Ype={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 -* http://hammerjs.github.io/ -* -* Copyright (c) 2016 Jorik Tangelder; -* Licensed under the MIT license */(function(e){(function(t,n,r,i){var o=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),s="function",l=Math.round,c=Math.abs,d=Date.now;function f(R,G,ie){return setTimeout(S(R,ie),G)}function p(R,G,ie){return Array.isArray(R)?(v(R,ie[G],ie),!0):!1}function v(R,G,ie){var Ie;if(R)if(R.forEach)R.forEach(G,ie);else if(R.length!==i)for(Ie=0;Ie\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Kt=t.console&&(t.console.warn||t.console.log);return Kt&&Kt.call(t.console,Ie,vt),R.apply(this,arguments)}}var y;typeof Object.assign!="function"?y=function(R){if(R===i||R===null)throw new TypeError("Cannot convert undefined or null to object");for(var G=Object(R),ie=1;ie-1}function M(R){return R.trim().split(/\s+/g)}function P(R,G,ie){if(R.indexOf&&!ie)return R.indexOf(G);for(var Ie=0;IeDi[G]}),Ie}function O(R,G){for(var ie,Ie,ze=G[0].toUpperCase()+G.slice(1),vt=0;vt1&&!ie.firstMultiple?ie.firstMultiple=pn(G):ze===1&&(ie.firstMultiple=!1);var vt=ie.firstInput,Kt=ie.firstMultiple,In=Kt?Kt.center:vt.center,Di=G.center=Yn(Ie);G.timeStamp=d(),G.deltaTime=G.timeStamp-vt.timeStamp,G.angle=Pn(In,Di),G.distance=wr(In,Di),De(ie,G),G.offsetDirection=Kn(G.deltaX,G.deltaY);var Ti=fr(G.deltaTime,G.deltaX,G.deltaY);G.overallVelocityX=Ti.x,G.overallVelocityY=Ti.y,G.overallVelocity=c(Ti.x)>c(Ti.y)?Ti.x:Ti.y,G.scale=Kt?tr(Kt.pointers,Ie):1,G.rotation=Kt?$r(Kt.pointers,Ie):0,G.maxPointers=ie.prevInput?G.pointers.length>ie.prevInput.maxPointers?G.pointers.length:ie.prevInput.maxPointers:G.pointers.length,Dt(ie,G);var Ji=R.element;$(G.srcEvent.target,Ji)&&(Ji=G.srcEvent.target),G.target=Ji}function De(R,G){var ie=G.center,Ie=R.offsetDelta||{},ze=R.prevDelta||{},vt=R.prevInput||{};(G.eventType===he||vt.eventType===re)&&(ze=R.prevDelta={x:vt.deltaX||0,y:vt.deltaY||0},Ie=R.offsetDelta={x:ie.x,y:ie.y}),G.deltaX=ze.x+(ie.x-Ie.x),G.deltaY=ze.y+(ie.y-Ie.y)}function Dt(R,G){var ie=R.lastInterval||G,Ie=G.timeStamp-ie.timeStamp,ze,vt,Kt,In;if(G.eventType!=ge&&(Ie>ke||ie.velocity===i)){var Di=G.deltaX-ie.deltaX,Ti=G.deltaY-ie.deltaY,Ji=fr(Ie,Di,Ti);vt=Ji.x,Kt=Ji.y,ze=c(Ji.x)>c(Ji.y)?Ji.x:Ji.y,In=Kn(Di,Ti),R.lastInterval=G}else ze=ie.velocity,vt=ie.velocityX,Kt=ie.velocityY,In=ie.direction;G.velocity=ze,G.velocityX=vt,G.velocityY=Kt,G.direction=In}function pn(R){for(var G=[],ie=0;ie=c(G)?R<0?pe:ye:G<0?Se:Ce}function wr(R,G,ie){ie||(ie=St);var Ie=G[ie[0]]-R[ie[0]],ze=G[ie[1]]-R[ie[1]];return Math.sqrt(Ie*Ie+ze*ze)}function Pn(R,G,ie){ie||(ie=St);var Ie=G[ie[0]]-R[ie[0]],ze=G[ie[1]]-R[ie[1]];return Math.atan2(ze,Ie)*180/Math.PI}function $r(R,G){return Pn(G[1],G[0],ut)+Pn(R[1],R[0],ut)}function tr(R,G){return wr(G[0],G[1],ut)/wr(R[0],R[1],ut)}var kr={mousedown:he,mousemove:ue,mouseup:re},ni="mousedown",uo="mousemove mouseup";function Ki(){this.evEl=ni,this.evWin=uo,this.pressed=!1,ct.apply(this,arguments)}x(Ki,ct,{handler:function(R){var G=kr[R.type];G&he&&R.button===0&&(this.pressed=!0),G&ue&&R.which!==1&&(G=re),this.pressed&&(G&re&&(this.pressed=!1),this.callback(this.manager,G,{pointers:[R],changedPointers:[R],pointerType:je,srcEvent:R}))}});var No={pointerdown:he,pointermove:ue,pointerup:re,pointercancel:ge,pointerout:ge},Os={2:U,3:ae,4:je,5:me},zn="pointerdown",co="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(zn="MSPointerDown",co="MSPointerMove MSPointerUp MSPointerCancel");function _a(){this.evEl=zn,this.evWin=co,ct.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}x(_a,ct,{handler:function(R){var G=this.store,ie=!1,Ie=R.type.toLowerCase().replace("ms",""),ze=No[Ie],vt=Os[R.pointerType]||R.pointerType,Kt=vt==U,In=P(G,R.pointerId,"pointerId");ze&he&&(R.button===0||Kt)?In<0&&(G.push(R),In=G.length-1):ze&(re|ge)&&(ie=!0),!(In<0)&&(G[In]=R,this.callback(this.manager,ze,{pointers:G,changedPointers:[R],pointerType:vt,srcEvent:R}),ie&&G.splice(In,1))}});var yc={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},bc="touchstart",_c="touchstart touchmove touchend touchcancel";function qa(){this.evTarget=bc,this.evWin=_c,this.started=!1,ct.apply(this,arguments)}x(qa,ct,{handler:function(R){var G=yc[R.type];if(G===he&&(this.started=!0),!!this.started){var ie=kl.call(this,R,G);G&(re|ge)&&ie[0].length-ie[1].length===0&&(this.started=!1),this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:U,srcEvent:R})}}});function kl(R,G){var ie=te(R.touches),Ie=te(R.changedTouches);return G&(re|ge)&&(ie=Z(ie.concat(Ie),"identifier")),[ie,Ie]}var pi={touchstart:he,touchmove:ue,touchend:re,touchcancel:ge},Bn="touchstart touchmove touchend touchcancel";function Mr(){this.evTarget=Bn,this.targetIds={},ct.apply(this,arguments)}x(Mr,ct,{handler:function(R){var G=pi[R.type],ie=$o.call(this,R,G);ie&&this.callback(this.manager,G,{pointers:ie[0],changedPointers:ie[1],pointerType:U,srcEvent:R})}});function $o(R,G){var ie=te(R.touches),Ie=this.targetIds;if(G&(he|ue)&&ie.length===1)return Ie[ie[0].identifier]=!0,[ie,ie];var ze,vt,Kt=te(R.changedTouches),In=[],Di=this.target;if(vt=ie.filter(function(Ti){return $(Ti.target,Di)}),G===he)for(ze=0;ze-1&&Ie.splice(vt,1)};setTimeout(ze,fo)}}function Yt(R){for(var G=R.srcEvent.clientX,ie=R.srcEvent.clientY,Ie=0;Ie-1&&this.requireFail.splice(G,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(R){return!!this.simultaneous[R.id]},emit:function(R){var G=this,ie=this.state;function Ie(ze){G.manager.emit(ze,R)}ie=ji&&Ie(G.options.event+Pd(ie))},tryEmit:function(R){if(this.canEmit())return this.emit(R);this.state=go},canEmit:function(){for(var R=0;RG.threshold&&ze&G.direction},attrTest:function(R){return Xi.prototype.attrTest.call(this,R)&&(this.state&Wr||!(this.state&Wr)&&this.directionTest(R))},emit:function(R){this.pX=R.deltaX,this.pY=R.deltaY;var G=zd(R.direction);G&&(R.additionalEvent=this.options.event+G),this._super.emit.call(this,R)}});function xc(){Xi.apply(this,arguments)}x(xc,Xi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(R){return this._super.attrTest.call(this,R)&&(Math.abs(R.scale-1)>this.options.threshold||this.state&Wr)},emit:function(R){if(R.scale!==1){var G=R.scale<1?"in":"out";R.additionalEvent=this.options.event+G}this._super.emit.call(this,R)}});function _u(){Xo.apply(this,arguments),this._timer=null,this._input=null}x(_u,Xo,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ga]},process:function(R){var G=this.options,ie=R.pointers.length===G.pointers,Ie=R.distanceG.time;if(this._input=R,!Ie||!ie||R.eventType&(re|ge)&&!ze)this.reset();else if(R.eventType&he)this.reset(),this._timer=f(function(){this.state=gi,this.tryEmit()},G.time,this);else if(R.eventType&re)return gi;return go},reset:function(){clearTimeout(this._timer)},emit:function(R){this.state===gi&&(R&&R.eventType&re?this.manager.emit(this.options.event+"up",R):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}});function wc(){Xi.apply(this,arguments)}x(wc,Xi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Ko]},attrTest:function(R){return this._super.attrTest.call(this,R)&&(Math.abs(R.rotation)>this.options.threshold||this.state&Wr)}});function kc(){Xi.apply(this,arguments)}x(kc,Xi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Be|Ge,pointers:1},getTouchAction:function(){return ii.prototype.getTouchAction.call(this)},attrTest:function(R){var G=this.options.direction,ie;return G&(Be|Ge)?ie=R.overallVelocity:G&Be?ie=R.overallVelocityX:G&Ge&&(ie=R.overallVelocityY),this._super.attrTest.call(this,R)&&G&R.offsetDirection&&R.distance>this.options.threshold&&R.maxPointers==this.options.pointers&&c(ie)>this.options.velocity&&R.eventType&re},emit:function(R){var G=zd(R.offsetDirection);G&&this.manager.emit(this.options.event+G,R),this.manager.emit(this.options.event,R)}});function Sl(){Xo.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}x(Sl,Xo,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ya]},process:function(R){var G=this.options,ie=R.pointers.length===G.pointers,Ie=R.distance0?-1:1)}const hwt=function(){let e=0,t=null;return fe(null,(n,r,i)=>{t&&clearTimeout(t),i*e<0&&(e=0);const o=n(oo);if(o===void 0)return;const a=n(An),s=a&&a=s){const l=e%100;r(Uze,fwt(e/s)),e=l}t=setTimeout(()=>e=0,100)})}();function pwt(){const e=Ee(hwt),t=Ee(Wxt),n=m.useRef(null),r=i=>{i.altKey||i.ctrlKey||i.metaKey||i.shiftKey||!i.deltaY||e(i.deltaY)};return Pg(()=>t()),m.useEffect(()=>{if(!n.current)return;const i=new Kpe(n.current);return i.get("pan").set({direction:Kpe.DIRECTION_VERTICAL}),i.on("panup pandown",o=>{var a;o.pointerType.includes("touch")&&e(-(((a=o.changedPointers[0])==null?void 0:a.movementY)??0)*5)}),()=>{i.destroy()}},[e]),u.jsxs(UZ,{overflow:"hidden",flexShrink:"1",onWheel:r,maxWidth:"100%",className:GS.scroll,ref:n,children:[u.jsx(awt,{}),u.jsx(H2t,{}),u.jsx(V,{direction:"column",gap:"4",children:u.jsx(U2t,{})})]})}const mwt=fe(e=>e(eu)!=null&&!!e(_re));function gwt(){const e=X(mwt),t=Ee(An),n=Ee(Tg);i_(()=>{t(void 0),n(void 0)});const r=i=>{i.button===1&&t(void 0)};if(e)return u.jsx(V,{direction:"column",gap:"4",width:"100%",maxHeight:`calc(100vh - ${kb+Sb+12}px)`,onMouseDown:r,children:u.jsx(pwt,{})})}const Xpe=_s(["mySlots","skippedSlots","lateVoteSlots","text"]),zi=Xpe.enum,vwt={searchType:zi.text,searchText:""},ywt=kt({searchType:Xpe.default(zi.text).catch(zi.text),searchText:Et().default("").catch("")}),yx=up("/leaderSchedule")({component:gwt,validateSearch:ywt,search:{middlewares:[K8e(vwt),Y8e(["searchType","searchText"])]},beforeLoad:({search:e})=>{if(e.searchText.includes(";"))throw uT({to:"/leaderSchedule",search:{...e,searchText:e.searchText.replaceAll(";",",")}})}});function O1({inBytes:e,value:t}){const n=Ug(t)??0;let r="-";if(n!==void 0)if(e){const{value:i,unit:o}=Ib(n);r=`${i.toLocaleString()} ${o}`}else r=Math.trunc(n).toLocaleString();return u.jsx(ti,{align:"right",children:r})}const JS=["ContactInfoV1","Vote","LowestSlot","SnapshotHashes","AccountsHashes","EpochSlots","VersionV1","VersionV2","NodeInstance","DuplicateShred","IncrementalSnapshotHashes","ContactInfoV2","RestartLastVotedForkSlots","RestartHeaviestFork"],bwt=["pull_request","pull_response","push","ping","pong","prune"],fP="30px",gc="10px",hP="160px",Jpe="10px",Qpe=`repeat(auto-fill, minmax(${hP}, 1fr)`,eme="44px",QS="200px",eC="320px",_wt="_header-text_n52ov_1",xwt="_storage-stats-container_n52ov_6",wwt="_root_n52ov_11",Ld={headerText:_wt,storageStatsContainer:xwt,root:wwt};function kwt({storage:e}){const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((n,r)=>{var i,o,a;return{type:JS[r],activeEntries:(i=e.count)==null?void 0:i[r],egressCount:(o=e.count_tx)==null?void 0:o[r],egressBytes:(a=e.bytes_tx)==null?void 0:a[r]}}).sort((n,r)=>r.activeEntries-n.activeEntries)},[e]);if(t)return u.jsxs(V,{className:Ld.storageStatsContainer,direction:"column",gap:gc,minWidth:eC,height:"100%",minHeight:"250px",children:[u.jsx(q,{className:Ld.headerText,children:"Storage Stats"}),u.jsxs(q0,{variant:"surface",className:Ld.root,size:"1",children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Entry Type"}),u.jsx(Wi,{align:"right",children:"Total Entries"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map(n=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(ti,{align:"right",children:n.activeEntries.toLocaleString()}),u.jsx(O1,{value:n.egressCount??0}),u.jsx(O1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}function tC(){return tC=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Cwt={nivo:["#e8c1a0","#f47560","#f1e15b","#e8a838","#61cdbb","#97e3d5"],category10:d5,accent:f5,dark2:h5,paired:p5,pastel1:m5,pastel2:g5,set1:v5,set2:y5,set3:Y_,tableau10:b5},jwt={brown_blueGreen:tm,purpleRed_green:nm,pink_yellowGreen:rm,purple_orange:im,red_blue:om,red_grey:am,red_yellow_blue:sm,red_yellow_green:lm,spectral:um},Twt={brown_blueGreen:_5,purpleRed_green:x5,pink_yellowGreen:w5,purple_orange:k5,red_blue:S5,red_grey:C5,red_yellow_blue:j5,red_yellow_green:T5,spectral:I5},Iwt={blues:wm,greens:km,greys:Sm,oranges:Tm,purples:Cm,reds:jm,blue_green:cm,blue_purple:dm,green_blue:fm,orange_red:hm,purple_blue_green:pm,purple_blue:mm,purple_red:gm,red_purple:vm,yellow_green_blue:ym,yellow_green:bm,yellow_orange_brown:_m,yellow_orange_red:xm},Ewt={blues:B5,greens:U5,greys:W5,oranges:Z5,purples:V5,reds:H5,turbo:tS,viridis:rS,inferno:oS,magma:iS,plasma:aS,cividis:q5,warm:Y5,cool:K5,cubehelixDefault:G5,blue_green:E5,blue_purple:N5,green_blue:$5,orange_red:M5,purple_blue_green:L5,purple_blue:R5,purple_red:O5,red_purple:P5,yellow_green_blue:z5,yellow_green:D5,yellow_orange_brown:A5,yellow_orange_red:F5};tC({},Cwt,jwt,Iwt);var Nwt={rainbow:J5,sinebow:eS};tC({},Twt,Ewt,Nwt);var $wt=function(e,t){if(typeof e=="function")return e;if(F_(e)){if(function(l){return l.theme!==void 0}(e)){if(t===void 0)throw new Error("Unable to use color from theme as no theme was provided");var n=yl(t,e.theme);if(n===void 0)throw new Error("Color from theme is undefined at path: '"+e.theme+"'");return function(){return n}}if(function(l){return l.from!==void 0}(e)){var r=function(l){return yl(l,e.from)};if(Array.isArray(e.modifiers)){for(var i,o=[],a=function(){var l=i.value,c=l[0],d=l[1];if(c==="brighter")o.push(function(f){return f.brighter(d)});else if(c==="darker")o.push(function(f){return f.darker(d)});else{if(c!=="opacity")throw new Error("Invalid color modifier: '"+c+"', must be one of: 'brighter', 'darker', 'opacity'");o.push(function(f){return f.opacity=d,f})}},s=Swt(e.modifiers);!(i=s()).done;)a();return o.length===0?r:function(l){return o.reduce(function(c,d){return d(c)},qp(r(l))).toString()}}return r}throw new Error("Invalid color spec, you should either specify 'theme' or 'from' when using a config object")}return function(){return e}},nC=function(e,t){return m.useMemo(function(){return $wt(e,t)},[e,t])};_e.oneOfType([_e.string,_e.func,_e.shape({theme:_e.string.isRequired}),_e.shape({from:_e.string.isRequired,modifiers:_e.arrayOf(_e.array)})]);function Nr(){return Nr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=t})},Owt={startAngle:{enter:function(e){return Nr({},e,{endAngle:e.startAngle})},update:function(e){return e},leave:function(e){return Nr({},e,{startAngle:e.endAngle})}},middleAngle:{enter:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return Nr({},e,{startAngle:t,endAngle:t})},update:function(e){return e},leave:function(e){var t=e.startAngle+(e.endAngle-e.startAngle)/2;return Nr({},e,{startAngle:t,endAngle:t})}},endAngle:{enter:function(e){return Nr({},e,{startAngle:e.endAngle})},update:function(e){return e},leave:function(e){return Nr({},e,{endAngle:e.startAngle})}},innerRadius:{enter:function(e){return Nr({},e,{outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.outerRadius})}},centerRadius:{enter:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return Nr({},e,{innerRadius:t,outerRadius:t})},update:function(e){return e},leave:function(e){var t=e.innerRadius+(e.outerRadius-e.innerRadius)/2;return Nr({},e,{innerRadius:t,outerRadius:t})}},outerRadius:{enter:function(e){return Nr({},e,{innerRadius:e.outerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{outerRadius:e.innerRadius})}},pushIn:{enter:function(e){return Nr({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})}},pushOut:{enter:function(e){return Nr({},e,{innerRadius:e.outerRadius,outerRadius:e.outerRadius+e.outerRadius-e.innerRadius})},update:function(e){return e},leave:function(e){return Nr({},e,{innerRadius:e.innerRadius-e.outerRadius+e.innerRadius,outerRadius:e.innerRadius})}}},rme=function(e,t){return m.useMemo(function(){var n=Owt[e];return{enter:function(r){return Nr({progress:0},n.enter(r.arc),t?t.enter(r):{})},update:function(r){return Nr({progress:1},n.update(r.arc),t?t.update(r):{})},leave:function(r){return Nr({progress:0},n.leave(r.arc),t?t.leave(r):{})}}},[e,t])},Pwt=function(e,t){var n=pht(e)-Math.PI/2,r=e.innerRadius+(e.outerRadius-e.innerRadius)*t;return k1(n,r)},zwt=function(e){return function(t,n,r,i){return t_([t,n,r,i],function(o,a,s,l){var c=Pwt({startAngle:o,endAngle:a,innerRadius:s,outerRadius:l},e);return"translate("+c.x+","+c.y+")"})}},Dwt=function(e,t,n,r){t===void 0&&(t=.5),n===void 0&&(n="innerRadius");var i=w1(),o=i.animate,a=i.config,s=rme(n,r);return{transition:M$(e,{keys:function(l){return l.id},initial:s.update,from:s.enter,enter:s.update,update:s.update,leave:s.leave,config:a,immediate:!o}),interpolate:zwt(t)}},Awt=function(e){var t=e.center,n=e.data,r=e.transitionMode,i=e.label,o=e.radiusOffset,a=e.skipAngle,s=e.textColor,l=e.component,c=l===void 0?Lwt:l,d=ex(i),f=Ms(),p=nC(s,f),v=m.useMemo(function(){return n.filter(function(x){return Math.abs(ZR(x.arc.endAngle-x.arc.startAngle))>=a})},[n,a]),_=Dwt(v,o,r),y=_.transition,b=_.interpolate,w=c;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:y(function(x,S){return m.createElement(w,{key:S.id,datum:S,label:d(S),style:Nr({},x,{transform:b(x.startAngle,x.endAngle,x.innerRadius,x.outerRadius),textColor:p(S)})})})})},Fwt=function(e){var t=e.label,n=e.style,r=Ms();return u.jsxs(iu.g,{opacity:n.opacity,children:[u.jsx(iu.path,{fill:"none",stroke:n.linkColor,strokeWidth:n.thickness,d:n.path}),u.jsx(iu.text,{transform:n.textPosition,textAnchor:n.textAnchor,dominantBaseline:"central",style:Nr({},r.labels.text,{fill:n.textColor}),children:t})]})},Bwt=function(e){var t=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2);return t1.5*Math.PI?"start":"end"},ime=function(e,t,n,r){var i,o,a=nme(e.startAngle+(e.endAngle-e.startAngle)/2-Math.PI/2),s=k1(a,e.outerRadius+t),l=k1(a,e.outerRadius+t+n);return a1.5*Math.PI?(i="after",o={x:l.x+r,y:l.y}):(i="before",o={x:l.x-r,y:l.y}),{side:i,points:[s,l,o]}},Uwt=CR().x(function(e){return e.x}).y(function(e){return e.y}),Wwt=function(e,t,n,r,i,o,a){return t_([e,t,n,r,i,o,a],function(s,l,c,d,f,p,v){var _=ime({startAngle:s,endAngle:l,outerRadius:d},f,p,v).points;return Uwt(_)})},Vwt=function(e,t,n,r){return t_([e,t,n,r],function(i,o,a,s){return Bwt({startAngle:i,endAngle:o})})},Hwt=function(e,t,n,r,i,o,a,s){return t_([e,t,n,r,i,o,a,s],function(l,c,d,f,p,v,_,y){var b=ime({startAngle:l,endAngle:c,outerRadius:f},p,v,_),w=b.points,x=b.side,S=w[2];return x==="before"?S.x-=y:S.x+=y,"translate("+S.x+","+S.y+")"})},Zwt=function(e){var t=e.data,n=e.offset,r=n===void 0?0:n,i=e.diagonalLength,o=e.straightLength,a=e.skipAngle,s=a===void 0?0:a,l=e.textOffset,c=e.linkColor,d=e.textColor,f=w1(),p=f.animate,v=f.config,_=Ms(),y=nC(c,_),b=nC(d,_),w=function(S,C){return m.useMemo(function(){return Rwt(S,C)},[S,C])}(t,s),x=function(S){var C=S.offset,j=S.diagonalLength,T=S.straightLength,E=S.textOffset,$=S.getLinkColor,A=S.getTextColor;return m.useMemo(function(){return{enter:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:A(M),opacity:0}},update:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:j,straightLength:T,textOffset:E,linkColor:$(M),textColor:A(M),opacity:1}},leave:function(M){return{startAngle:M.arc.startAngle,endAngle:M.arc.endAngle,innerRadius:M.arc.innerRadius,outerRadius:M.arc.outerRadius,offset:C,diagonalLength:0,straightLength:0,textOffset:E,linkColor:$(M),textColor:A(M),opacity:0}}}},[j,T,E,$,A,C])}({offset:r,diagonalLength:i,straightLength:o,textOffset:l,getLinkColor:y,getTextColor:b});return{transition:M$(w,{keys:function(S){return S.id},initial:x.update,from:x.enter,enter:x.update,update:x.update,leave:x.leave,config:v,immediate:!p}),interpolateLink:Wwt,interpolateTextAnchor:Vwt,interpolateTextPosition:Hwt}},qwt=function(e){var t=e.center,n=e.data,r=e.label,i=e.skipAngle,o=e.offset,a=e.diagonalLength,s=e.straightLength,l=e.strokeWidth,c=e.textOffset,d=e.textColor,f=e.linkColor,p=e.component,v=p===void 0?Fwt:p,_=ex(r),y=Zwt({data:n,skipAngle:i,offset:o,diagonalLength:a,straightLength:s,textOffset:c,linkColor:f,textColor:d}),b=y.transition,w=y.interpolateLink,x=y.interpolateTextAnchor,S=y.interpolateTextPosition,C=v;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(j,T){return m.createElement(C,{key:T.id,datum:T,label:_(T),style:Nr({},j,{thickness:l,path:w(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength),textAnchor:x(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius),textPosition:S(j.startAngle,j.endAngle,j.innerRadius,j.outerRadius,j.offset,j.diagonalLength,j.straightLength,j.textOffset)})})})})},Gwt=function(e){var t=e.datum,n=e.style,r=e.onClick,i=e.onMouseEnter,o=e.onMouseMove,a=e.onMouseLeave,s=m.useCallback(function(f){return r==null?void 0:r(t,f)},[r,t]),l=m.useCallback(function(f){return i==null?void 0:i(t,f)},[i,t]),c=m.useCallback(function(f){return o==null?void 0:o(t,f)},[o,t]),d=m.useCallback(function(f){return a==null?void 0:a(t,f)},[a,t]);return u.jsx(iu.path,{d:n.path,opacity:n.opacity,fill:t.fill||n.color,stroke:n.borderColor,strokeWidth:n.borderWidth,onClick:r?s:void 0,onMouseEnter:i?l:void 0,onMouseMove:o?c:void 0,onMouseLeave:a?d:void 0})},Ywt=function(e,t,n,r,i){return t_([e,t,n,r],function(o,a,s,l){return i({startAngle:o,endAngle:a,innerRadius:Math.max(0,s),outerRadius:Math.max(0,l)})})},Kwt=function(e,t,n){t===void 0&&(t="innerRadius");var r=w1(),i=r.animate,o=r.config,a=rme(t,n);return{transition:M$(e,{keys:function(s){return s.id},initial:a.update,from:a.enter,enter:a.update,update:a.update,leave:a.leave,config:o,immediate:!i}),interpolate:Ywt}},Xwt=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.onClick,s=e.onMouseEnter,l=e.onMouseMove,c=e.onMouseLeave,d=e.transitionMode,f=e.component,p=f===void 0?Gwt:f,v=Ms(),_=nC(o,v),y=Kwt(n,d,{enter:function(S){return{opacity:0,color:S.color,borderColor:_(S)}},update:function(S){return{opacity:1,color:S.color,borderColor:_(S)}},leave:function(S){return{opacity:0,color:S.color,borderColor:_(S)}}}),b=y.transition,w=y.interpolate,x=p;return u.jsx("g",{transform:"translate("+t[0]+","+t[1]+")",children:b(function(S,C){return m.createElement(x,{key:C.id,datum:C,style:Nr({},S,{borderWidth:i,path:w(S.startAngle,S.endAngle,S.innerRadius,S.outerRadius,r)}),onClick:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:c})})})},Jwt=function(e,t,n,r,i,o){o===void 0&&(o=!0);var a=[],s=k1(Td(r),n);a.push([s.x,s.y]);var l=k1(Td(i),n);a.push([l.x,l.y]);for(var c=Math.round(Math.min(r,i));c<=Math.round(Math.max(r,i));c++)if(c%90==0){var d=k1(Td(c),n);a.push([d.x,d.y])}a=a.map(function(b){var w=b[0],x=b[1];return[e+w,t+x]}),o&&a.push([e,t]);var f=a.map(function(b){return b[0]}),p=a.map(function(b){return b[1]}),v=Math.min.apply(Math,f),_=Math.max.apply(Math,f),y=Math.min.apply(Math,p);return{points:a,x:v,y,width:_-v,height:Math.max.apply(Math,p)-y}},Qwt=function(e){var t=e===void 0?{}:e,n=t.cornerRadius,r=n===void 0?0:n,i=t.padAngle,o=i===void 0?0:i;return m.useMemo(function(){return tct().innerRadius(function(a){return a.innerRadius}).outerRadius(function(a){return a.outerRadius}).cornerRadius(r).padAngle(o)},[r,o])};function rC(){return rC=Object.assign?Object.assign.bind():function(e){for(var t=1;t11))throw new Error("Invalid size '"+e.size+"' for diverging color scheme '"+e.scheme+"', must be between 3~11");var s=dc(pP[e.scheme][e.size||11]),l=function(f){return s(n(f))};return l.scale=s,l}if(s4t(e.scheme)){if(e.size!==void 0&&(e.size<3||e.size>9))throw new Error("Invalid size '"+e.size+"' for sequential color scheme '"+e.scheme+"', must be between 3~9");var c=dc(pP[e.scheme][e.size||9]),d=function(f){return c(n(f))};return d.scale=c,d}}throw new Error("Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property")}return function(){return e}},c4t=function(e,t){return m.useMemo(function(){return u4t(e,t)},[e,t])};function Pm(){return Pm=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(i[n]=e[n]);return i}var d4t=function(e){var t=e.width,n=e.height,r=e.legends,i=e.data,o=e.toggleSerie;return u.jsx(u.Fragment,{children:r.map(function(a,s){var l;return u.jsx(sfe,Pm({},a,{containerWidth:t,containerHeight:n,data:(l=a.data)!=null?l:i,toggleSerie:a.toggleSerie?o:void 0}),s)})})},Ct={id:"id",value:"value",sortByValue:!1,innerRadius:0,padAngle:0,cornerRadius:0,layers:["arcs","arcLinkLabels","arcLabels","legends"],startAngle:0,endAngle:360,fit:!0,activeInnerRadiusOffset:0,activeOuterRadiusOffset:0,borderWidth:0,borderColor:{from:"color",modifiers:[["darker",1]]},enableArcLabels:!0,arcLabel:"formattedValue",arcLabelsSkipAngle:0,arcLabelsRadiusOffset:.5,arcLabelsTextColor:{theme:"labels.text.fill"},enableArcLinkLabels:!0,arcLinkLabel:"id",arcLinkLabelsSkipAngle:0,arcLinkLabelsOffset:0,arcLinkLabelsDiagonalLength:16,arcLinkLabelsStraightLength:24,arcLinkLabelsThickness:1,arcLinkLabelsTextOffset:6,arcLinkLabelsTextColor:{theme:"labels.text.fill"},arcLinkLabelsColor:{theme:"axis.ticks.line.stroke"},colors:{scheme:"nivo"},defs:[],fill:[],isInteractive:!0,animate:!0,motionConfig:"gentle",transitionMode:"innerRadius",tooltip:function(e){var t=e.datum;return u.jsx(WL,{id:t.id,value:t.formattedValue,enableChip:!0,color:t.color})},legends:[],role:"img"},f4t=["points"],h4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.colors,l=s===void 0?Ct.colors:s,c=ex(r),d=ex(o),f=WR(a),p=c4t(l,"id");return m.useMemo(function(){return t.map(function(v){var _,y=c(v),b=d(v),w={id:y,label:(_=v.label)!=null?_:y,hidden:!1,value:b,formattedValue:f(b),data:v};return Pm({},w,{color:p(w)})})},[t,c,d,f,p])},p4t=function(e){var t=e.data,n=e.startAngle,r=e.endAngle,i=e.innerRadius,o=e.outerRadius,a=e.padAngle,s=e.sortByValue,l=e.activeId,c=e.activeInnerRadiusOffset,d=e.activeOuterRadiusOffset,f=e.hiddenIds,p=e.forwardLegendData,v=m.useMemo(function(){var w=act().value(function(x){return x.value}).startAngle(Td(n)).endAngle(Td(r)).padAngle(Td(a));return s||w.sortValues(null),w},[n,r,a,s]),_=m.useMemo(function(){var w=t.filter(function(x){return!f.includes(x.id)});return{dataWithArc:v(w).map(function(x){var S=Math.abs(x.endAngle-x.startAngle);return Pm({},x.data,{arc:{index:x.index,startAngle:x.startAngle,endAngle:x.endAngle,innerRadius:l===x.data.id?i-c:i,outerRadius:l===x.data.id?o+d:o,thickness:o-i,padAngle:x.padAngle,angle:S,angleDeg:ZR(S)}})}),legendData:t.map(function(x){return{id:x.id,label:x.label,color:x.color,hidden:f.includes(x.id),data:x}})}},[v,t,f,l,i,c,o,d]),y=_.legendData,b=m.useRef(p);return m.useEffect(function(){typeof b.current=="function"&&b.current(y)},[b,y]),_},m4t=function(e){var t=e.activeId,n=e.onActiveIdChange,r=e.defaultActiveId,i=t!==void 0,o=m.useState(i||r===void 0?null:r),a=o[0],s=o[1];return{activeId:i?t:a,setActiveId:m.useCallback(function(l){n&&n(l),i||s(l)},[i,n,s])}},g4t=function(e){var t=e.data,n=e.width,r=e.height,i=e.innerRadius,o=i===void 0?Ct.innerRadius:i,a=e.startAngle,s=a===void 0?Ct.startAngle:a,l=e.endAngle,c=l===void 0?Ct.endAngle:l,d=e.padAngle,f=d===void 0?Ct.padAngle:d,p=e.sortByValue,v=p===void 0?Ct.sortByValue:p,_=e.cornerRadius,y=_===void 0?Ct.cornerRadius:_,b=e.fit,w=b===void 0?Ct.fit:b,x=e.activeInnerRadiusOffset,S=x===void 0?Ct.activeInnerRadiusOffset:x,C=e.activeOuterRadiusOffset,j=C===void 0?Ct.activeOuterRadiusOffset:C,T=e.activeId,E=e.onActiveIdChange,$=e.defaultActiveId,A=e.forwardLegendData,M=m4t({activeId:T,onActiveIdChange:E,defaultActiveId:$}),P=M.activeId,te=M.setActiveId,Z=m.useState([]),O=Z[0],J=Z[1],D=m.useMemo(function(){var H,ee=Math.min(n,r)/2,ce=ee*Math.min(o,1),U=n/2,ae=r/2;if(w){var je=Jwt(U,ae,ee,s-90,c-90),me=je.points,ke=lme(je,f4t),he=Math.min(n/ke.width,r/ke.height),ue={width:ke.width*he,height:ke.height*he};ue.x=(n-ue.width)/2,ue.y=(r-ue.height)/2,U=(U-ke.x)/ke.width*ke.width*he+ue.x,ae=(ae-ke.y)/ke.height*ke.height*he+ue.y,H={box:ke,ratio:he,points:me},ee*=he,ce*=he}return{centerX:U,centerY:ae,radius:ee,innerRadius:ce,debug:H}},[n,r,o,s,c,w]),Y=p4t({data:t,startAngle:s,endAngle:c,innerRadius:D.innerRadius,outerRadius:D.radius,padAngle:f,sortByValue:v,activeId:P,activeInnerRadiusOffset:S,activeOuterRadiusOffset:j,hiddenIds:O,forwardLegendData:A}),F=m.useCallback(function(H){J(function(ee){return ee.indexOf(H)>-1?ee.filter(function(ce){return ce!==H}):[].concat(ee,[H])})},[]);return Pm({arcGenerator:Qwt({cornerRadius:y,padAngle:Td(f)}),activeId:P,setActiveId:te,toggleSerie:F},Y,D)},v4t=function(e){var t=e.dataWithArc,n=e.arcGenerator,r=e.centerX,i=e.centerY,o=e.radius,a=e.innerRadius;return m.useMemo(function(){return{dataWithArc:t,arcGenerator:n,centerX:r,centerY:i,radius:o,innerRadius:a}},[t,n,r,i,o,a])},y4t=function(e){var t=e.center,n=e.data,r=e.arcGenerator,i=e.borderWidth,o=e.borderColor,a=e.isInteractive,s=e.onClick,l=e.onMouseEnter,c=e.onMouseMove,d=e.onMouseLeave,f=e.setActiveId,p=e.tooltip,v=e.transitionMode,_=$nt(),y=_.showTooltipFromEvent,b=_.hideTooltip,w=m.useMemo(function(){if(a)return function(j,T){s==null||s(j,T)}},[a,s]),x=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),f(j.id),l==null||l(j,T)}},[a,y,f,l,p]),S=m.useMemo(function(){if(a)return function(j,T){y(m.createElement(p,{datum:j}),T),c==null||c(j,T)}},[a,y,c,p]),C=m.useMemo(function(){if(a)return function(j,T){b(),f(null),d==null||d(j,T)}},[a,b,f,d]);return u.jsx(Xwt,{center:t,data:n,arcGenerator:r,borderWidth:i,borderColor:o,transitionMode:v,onClick:w,onMouseEnter:x,onMouseMove:S,onMouseLeave:C})},b4t=["isInteractive","animate","motionConfig","theme","renderWrapper"],_4t=function(e){var t=e.data,n=e.id,r=n===void 0?Ct.id:n,i=e.value,o=i===void 0?Ct.value:i,a=e.valueFormat,s=e.sortByValue,l=s===void 0?Ct.sortByValue:s,c=e.layers,d=c===void 0?Ct.layers:c,f=e.startAngle,p=f===void 0?Ct.startAngle:f,v=e.endAngle,_=v===void 0?Ct.endAngle:v,y=e.padAngle,b=y===void 0?Ct.padAngle:y,w=e.fit,x=w===void 0?Ct.fit:w,S=e.innerRadius,C=S===void 0?Ct.innerRadius:S,j=e.cornerRadius,T=j===void 0?Ct.cornerRadius:j,E=e.activeInnerRadiusOffset,$=E===void 0?Ct.activeInnerRadiusOffset:E,A=e.activeOuterRadiusOffset,M=A===void 0?Ct.activeOuterRadiusOffset:A,P=e.width,te=e.height,Z=e.margin,O=e.colors,J=O===void 0?Ct.colors:O,D=e.borderWidth,Y=D===void 0?Ct.borderWidth:D,F=e.borderColor,H=F===void 0?Ct.borderColor:F,ee=e.enableArcLabels,ce=ee===void 0?Ct.enableArcLabels:ee,U=e.arcLabel,ae=U===void 0?Ct.arcLabel:U,je=e.arcLabelsSkipAngle,me=je===void 0?Ct.arcLabelsSkipAngle:je,ke=e.arcLabelsTextColor,he=ke===void 0?Ct.arcLabelsTextColor:ke,ue=e.arcLabelsRadiusOffset,re=ue===void 0?Ct.arcLabelsRadiusOffset:ue,ge=e.arcLabelsComponent,$e=e.enableArcLinkLabels,pe=$e===void 0?Ct.enableArcLinkLabels:$e,ye=e.arcLinkLabel,Se=ye===void 0?Ct.arcLinkLabel:ye,Ce=e.arcLinkLabelsSkipAngle,Be=Ce===void 0?Ct.arcLinkLabelsSkipAngle:Ce,Ge=e.arcLinkLabelsOffset,xt=Ge===void 0?Ct.arcLinkLabelsOffset:Ge,St=e.arcLinkLabelsDiagonalLength,ut=St===void 0?Ct.arcLinkLabelsDiagonalLength:St,ct=e.arcLinkLabelsStraightLength,bt=ct===void 0?Ct.arcLinkLabelsStraightLength:ct,Qe=e.arcLinkLabelsThickness,Ke=Qe===void 0?Ct.arcLinkLabelsThickness:Qe,De=e.arcLinkLabelsTextOffset,Dt=De===void 0?Ct.arcLinkLabelsTextOffset:De,pn=e.arcLinkLabelsTextColor,Yn=pn===void 0?Ct.arcLinkLabelsTextColor:pn,fr=e.arcLinkLabelsColor,Kn=fr===void 0?Ct.arcLinkLabelsColor:fr,wr=e.arcLinkLabelComponent,Pn=e.defs,$r=Pn===void 0?Ct.defs:Pn,tr=e.fill,kr=tr===void 0?Ct.fill:tr,ni=e.isInteractive,uo=ni===void 0?Ct.isInteractive:ni,Ki=e.onClick,No=e.onMouseEnter,Os=e.onMouseMove,zn=e.onMouseLeave,co=e.tooltip,_a=co===void 0?Ct.tooltip:co,yc=e.activeId,bc=e.onActiveIdChange,_c=e.defaultActiveId,qa=e.transitionMode,kl=qa===void 0?Ct.transitionMode:qa,pi=e.legends,Bn=pi===void 0?Ct.legends:pi,Mr=e.forwardLegendData,$o=e.role,fo=$o===void 0?Ct.role:$o,Lr=qde(P,te,Z),ho=Lr.outerWidth,xa=Lr.outerHeight,it=Lr.margin,Yt=Lr.innerWidth,nr=Lr.innerHeight,ht=h4t({data:t,id:r,value:o,valueFormat:a,colors:J}),ri=g4t({data:ht,width:Yt,height:nr,fit:x,innerRadius:C,startAngle:p,endAngle:_,padAngle:b,sortByValue:l,cornerRadius:T,activeInnerRadiusOffset:$,activeOuterRadiusOffset:M,activeId:yc,onActiveIdChange:bc,defaultActiveId:_c,forwardLegendData:Mr}),Ga=ri.dataWithArc,Ya=ri.legendData,Ko=ri.arcGenerator,mi=ri.centerX,Un=ri.centerY,hr=ri.radius,Sr=ri.innerRadius,Ka=ri.setActiveId,po=ri.toggleSerie,mo=kht($r,Ga,kr),Wr={arcs:null,arcLinkLabels:null,arcLabels:null,legends:null};d.includes("arcs")&&(Wr.arcs=u.jsx(y4t,{center:[mi,Un],data:Ga,arcGenerator:Ko,borderWidth:Y,borderColor:H,isInteractive:uo,onClick:Ki,onMouseEnter:No,onMouseMove:Os,onMouseLeave:zn,setActiveId:Ka,tooltip:_a,transitionMode:kl},"arcs")),pe&&d.includes("arcLinkLabels")&&(Wr.arcLinkLabels=u.jsx(qwt,{center:[mi,Un],data:Ga,label:Se,skipAngle:Be,offset:xt,diagonalLength:ut,straightLength:bt,strokeWidth:Ke,textOffset:Dt,textColor:Yn,linkColor:Kn,component:wr},"arcLinkLabels")),ce&&d.includes("arcLabels")&&(Wr.arcLabels=u.jsx(Awt,{center:[mi,Un],data:Ga,label:ae,radiusOffset:re,skipAngle:me,textColor:he,transitionMode:kl,component:ge},"arcLabels")),Bn.length>0&&d.includes("legends")&&(Wr.legends=u.jsx(d4t,{width:Yt,height:nr,data:Ya,legends:Bn,toggleSerie:po},"legends"));var wa=v4t({dataWithArc:Ga,arcGenerator:Ko,centerX:mi,centerY:Un,radius:hr,innerRadius:Sr});return u.jsx(KR,{width:ho,height:xa,margin:it,defs:mo,role:fo,children:d.map(function(ji,gi){return Wr[ji]!==void 0?Wr[ji]:typeof ji=="function"?u.jsx(m.Fragment,{children:m.createElement(ji,wa)},gi):null})})},ume=function(e){var t=e.isInteractive,n=t===void 0?Ct.isInteractive:t,r=e.animate,i=r===void 0?Ct.animate:r,o=e.motionConfig,a=o===void 0?Ct.motionConfig:o,s=e.theme,l=e.renderWrapper,c=lme(e,b4t);return u.jsx(VR,{animate:i,isInteractive:n,motionConfig:a,renderWrapper:l,theme:s,children:u.jsx(_4t,Pm({isInteractive:n},c))})};const x4t="_label_1nl74_1",w4t="_value_1nl74_6",cme={label:x4t,value:w4t};function bh(e){return u.jsx(Ey,{children:u.jsx(k4t,{...e})})}function k4t({value:e,label:t,valueColor:n}){const r=typeof e=="string"?e:e.toLocaleString();return u.jsxs(V,{direction:"column",minWidth:"0",gap:"10px",children:[u.jsx(q,{className:cme.label,children:t}),u.jsx(q,{className:cme.value,style:n?{color:n}:void 0,children:r})]})}const S4t="_header-text_uidb2_1",C4t="_tooltip_uidb2_8",iC={headerText:S4t,tooltip:C4t};function j4t({storage:e}){var a;const t=m.useMemo(()=>{if(e!=null&&e.count)return e.count.map((s,l)=>{var c,d,f;return{type:JS[l],activeEntries:(c=e.count)==null?void 0:c[l],egressCount:(d=e.count_tx)==null?void 0:d[l],egressBytes:(f=e.bytes_tx)==null?void 0:f[l]}})},[e]),n=m.useMemo(()=>{const s=rt.sum(e.count),l=e.capacity-s;return`${Math.round(s/l*100)}%`},[e.capacity,e.count]),r=koe(e.expired_count,1e4),i=m.useRef([]);m.useMemo(()=>{i.current.push({ts:performance.now(),value:e.expired_count})},[e.expired_count]),r_(()=>{const s=performance.now();for(;i.current.length>1&&s-i.current[0].ts>6e4;)i.current.shift()},1e3);const o=e.expired_count-(((a=i.current[0])==null?void 0:a.value)??0);if(t)return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{className:iC.headerText,children:"Storage Stats"}),u.jsxs(V,{gap:eme,wrap:"wrap",children:[u.jsxs(Zr,{columns:Qpe,minWidth:hP,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(bh,{label:"Expired (/s)",value:`${Math.trunc(r.valuePerSecond??0)}`}),u.jsx(bh,{label:"Expired (Last Min)",value:`${o.toLocaleString()}`}),u.jsx(bh,{label:"Total Evicted",value:e.evicted_count}),u.jsx(bh,{label:"Capacity Used",value:n})]}),u.jsx(Mt,{minWidth:QS,minHeight:QS,flexGrow:"1",flexBasis:"0",children:u.jsx(I4t,{storage:e,usedCapacity:n})})]})]})}const dme=["#48295C","#562800","#132D21"],T4t=e=>dme[e%dme.length];function I4t({storage:e,usedCapacity:t}){const n=m.useMemo(()=>{const r=rt.sum(e.count);return[{id:"unused",label:"Unused",value:e.capacity-r,color:"#222"},...e.count.map((i,o)=>({id:JS[o]+o,label:JS[o],value:i})).sort((i,o)=>o.value-i.value).map((i,o)=>({...i,color:T4t(o)}))]},[e]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:o=>o.data.color,arcLabelsSkipAngle:10,arcLinkLabelsSkipAngle:10,arcLabelsTextColor:"#9F9F9F",enableArcLinkLabels:!1,layers:["arcs","arcLabels",E4t(t)],tooltip:N4t,animate:!1,innerRadius:.7,arcLabel:o=>o.data.label})})}function E4t(e){return function({dataWithArc:t,centerX:n,centerY:r}){return u.jsx("text",{y:r-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"28px",fill:"#9F9F9F"},children:u.jsx("tspan",{x:n,dy:5,children:e})})}}function N4t(e){const t=e.datum.value;return u.jsx("div",{className:iC.tooltip,children:u.jsxs(q,{style:{whiteSpace:"nowrap"},children:[e.datum.label,":\xA0",t]})})}function $4t({messages:e}){const t=m.useMemo(()=>e.num_bytes_rx.map((n,r)=>{var i,o,a,s;return{type:bwt[r],ingressBytes:(i=e.num_bytes_rx)==null?void 0:i[r],egressBytes:(o=e.num_bytes_tx)==null?void 0:o[r],ingressMessages:(a=e.num_messages_rx)==null?void 0:a[r],egressMessages:(s=e.num_messages_tx)==null?void 0:s[r]}}),[e]);if(t)return u.jsxs(V,{direction:"column",gap:gc,minWidth:eC,children:[u.jsx(q,{className:Ld.headerText,children:"Message Stats"}),u.jsxs(q0,{variant:"surface",className:Ld.root,size:"1",children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{children:"Message Type"}),u.jsx(Wi,{align:"right",children:"Ingress /s"}),u.jsx(Wi,{align:"right",children:"Egress /s"}),u.jsx(Wi,{align:"right",children:"Ingress Throughput /s"}),u.jsx(Wi,{align:"right",children:"Egress Throughput /s"})]})}),u.jsx(G0,{children:t==null?void 0:t.map((n,r)=>u.jsxs(la,{children:[u.jsx($4,{children:n.type}),u.jsx(O1,{value:n.ingressMessages??0}),u.jsx(O1,{value:n.egressMessages??0}),u.jsx(O1,{value:n.ingressBytes??0,inBytes:!0}),u.jsx(O1,{value:n.egressBytes??0,inBytes:!0})]},n.type))})]})]})}const fme={id:"Stake",direction:-1};function M4t(){const e=S6(),t=X(NG),n=X($G),r=m.useRef(new Map),[i,o]=m.useState([]),[a,s]=m.useState(fme);m.useEffect(()=>{var f;if(!t)return;const d=Object.entries(t);if(!i.length&&((f=d[0])!=null&&f[1])){const p=Object.keys(d[0][1]);o(p),s(fme)}for(const[p,v]of d)r.current.set(p,v)},[i,t]),m.useEffect(()=>{if(n)for(const d of n.changes){const f=r.current.get(d.row_index.toString());f&&(f[d.column_name]=d.new_value)}},[n]);const l=m.useCallback((d,f)=>{if(f{(i==null?void 0:i.indexOf(d))!==void 0&&s(f=>{let p=-1;f.id===d&&(p=-f.direction);const v=i.filter(b=>b!==d),_=new Array(v.length).fill(0),y={col:[d,...v],dir:[p,..._]};return e({topic:"gossip",key:"query_sort",id:32,params:y}),{id:d,direction:p}})},[i,e]);return{query:l,sort:c,colIds:i,rowsCacheRef:r,colSorting:a}}const L4t="_header-text_1ozln_1",R4t="_peer-table_1ozln_6",O4t="_header-cell_1ozln_22",P4t="_header-separator_1ozln_26",oC={headerText:L4t,peerTable:R4t,headerCell:O4t,headerSeparator:P4t},z4t=1e3,mP=0,aC=e=>{if(typeof e=="number"){const t=Ib(e);return`${t.value} ${t.unit}`}return e},D4t={Stake:{width:80,align:"right",format:e=>typeof e=="number"?Math.abs(Math.trunc(e/dd)).toLocaleString():e},Pubkey:{width:200},Name:{width:160},Country:{width:80},"IP Addr":{width:80},"Ingress Pull":{width:80,align:"right",format:aC},"Ingress Push":{width:80,align:"right",format:aC},"Egress Pull":{width:80,align:"right",format:aC},"Egress Push":{width:80,align:"right",format:aC}},sC={width:150};function bx(e){return D4t[e]??sC}function A4t(){const e=X(EG)??z4t,{query:t,sort:n,colIds:r,rowsCacheRef:i,colSorting:o}=M4t(),[a,s]=m.useState(()=>({row:-1,colId:""})),[l,c]=m.useState(!1),[d,f]=m.useState(Object.fromEntries(r.map(b=>[b,bx(b).width??sC.width])));m.useEffect(()=>{f(Object.fromEntries(r.map(b=>[b,bx(b).width??sC.width])))},[r]);const p=m.useCallback(({startIndex:b,endIndex:w})=>{const x=Math.max(0,b-mP),S=Math.min(w+mP,e>0?e-1:w+mP);t(x,S)},[t,e]),v=m.useMemo(()=>F4t(r,d),[r,d]),_=m.useRef(a);_.current=a,MFe("c",b=>{var w,x;if(b.ctrlKey){const S=(x=(w=i.current)==null?void 0:w.get(_.current.row.toString()))==null?void 0:x[_.current.colId];S&&(UN(S.toString()),c(!0),setTimeout(()=>{c(!1)},500))}});const y=m.useCallback((b,w)=>{f(x=>({...x,[b]:Math.max(w,bx(b).width??sC.width)}))},[]);return u.jsxs(V,{direction:"column",gap:gc,flexGrow:"1",children:[u.jsx(q,{className:oC.headerText,children:"Peers"}),u.jsx(Mt,{flexGrow:"1",minHeight:"300px",asChild:!0,children:u.jsx(pKe,{className:Te("rt-TableRoot","rt-r-size-1","rt-variant-surface",oC.peerTable),totalCount:e,increaseViewportBy:200,rangeChanged:p,components:v,itemContent:b=>{var x;const w=(x=i.current)==null?void 0:x.get(b.toString());return w?r.map(S=>{const C=bx(S),j=C.align,T=C.format,E=w==null?void 0:w[S],$=a.row===b&&a.colId===S;return u.jsx(ti,{align:j,onClick:()=>s({row:b,colId:S}),style:{outline:$?`1px dashed var(--gray-${l?11:10})`:"none",outlineOffset:-2},children:u.jsx(q,{truncate:!0,as:"div",children:T?T(E):E})},S)}):r!=null&&r.length?u.jsx(u.Fragment,{children:r.map(S=>u.jsx(ti,{children:"\xA0"},S))}):u.jsx(u.Fragment,{children:u.jsx(ti,{children:"&nsbsp;"})})},fixedHeaderContent:()=>u.jsx(la,{children:r.map(b=>{const{align:w}=bx(b),x=o.id===b?o.direction:void 0,S=C=>{C.preventDefault();const j=C.clientX,T=d[b],E=A=>y(b,T+(A.clientX-j)),$=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",$)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",$)};return u.jsx(Wi,{align:w,p:"0",children:u.jsxs(V,{align:"center",height:"100%",children:[u.jsx(Z0,{children:u.jsx(Mt,{flexGrow:"1",className:oC.headerCell,asChild:!0,children:u.jsx("button",{onClick:()=>n(b),children:u.jsxs(V,{align:"center",gap:"1",justify:w==="right"?"end":"start",children:[w==="right"&&u.jsx(hme,{direction:x}),u.jsx(q,{truncate:!0,title:b,as:"div",children:b}),w!=="right"&&u.jsx(hme,{direction:x})]})})})}),u.jsx("div",{style:{paddingLeft:"8px",paddingRight:"2px",cursor:"col-resize"},onPointerDown:S,children:u.jsx(ps,{orientation:"vertical",size:"2",className:oC.headerSeparator})})]})},b)})})})})]})}function hme({direction:e}){return u.jsxs(u.Fragment,{children:[e===-1&&u.jsx(A$,{height:12,width:12}),e===1&&u.jsx(F$,{height:12,width:12})]})}function F4t(e,t){return{Table:n=>u.jsxs("table",{...n,className:"rt-TableRootTable",style:{...n.style,overflow:"inherit",tableLayout:"fixed"},children:[u.jsx("colgroup",{children:e.map(r=>u.jsx("col",{style:{width:t[r]}},r))}),n.children]}),TableHead:n=>u.jsx(ip,{...n,style:{...n.style,background:"#0e131c"}}),TableRow:n=>u.jsx(la,{...n})}}function pme({activeStake:e,delinquentStake:t}){const n=m.useMemo(()=>[{id:"non-delinquent",label:"Non-delinquent",value:Number(e),color:xne,textColor:pk},{id:"delinquent",label:"Delinquent",value:Number(t),color:fd,textColor:fd}],[e,t]);return u.jsx($s,{children:({height:r,width:i})=>u.jsx(ume,{height:r,width:i,data:n,colors:{datum:"data.color"},enableArcLabels:!1,enableArcLinkLabels:!1,layers:["arcs",B4t],tooltip:U4t,animate:!1,innerRadius:.7})})}const B4t=({dataWithArc:e,centerX:t,centerY:n})=>{const r=rt.sum(e.map(({value:i})=>i));return u.jsx("text",{y:n-6,textAnchor:"middle",dominantBaseline:"central",style:{fontSize:"12px",fill:"red"},children:e.map(({value:i,data:o,id:a},s)=>u.jsxs("tspan",{x:t,dy:`${s}em`,style:{fill:o.textColor},children:[(i/r*100).toFixed(2),"%"]},a))})};function U4t(e){const t=e.datum.value,n=Rs(BigInt(t));return u.jsx("div",{className:iC.tooltip,children:u.jsxs(q,{children:[e.datum.label,":\xA0",n]})})}function W4t(){{const e=X(Ig);if(!e)return null;const t=Rs(e.activeStake),n=Rs(e.delinquentStake);return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{className:iC.headerText,children:"Validator Stats"}),u.jsxs(V,{gap:eme,wrap:"wrap",children:[u.jsxs(Zr,{columns:Qpe,minWidth:hP,gap:Jpe,flexGrow:"1",flexBasis:"0",children:[u.jsx(bh,{label:"Total Validators",value:e.validatorCount.toLocaleString(),valueColor:gN}),u.jsx(bh,{label:"Non-delinquent Stake",value:t,valueColor:pk}),u.jsx(bh,{label:"RPC Nodes",value:e.rpcCount.toLocaleString(),valueColor:Yu}),u.jsx(bh,{label:"Delinquent Stake",value:n,valueColor:fd})]}),u.jsx(Mt,{minWidth:QS,minHeight:QS,flexGrow:"1",flexBasis:"0",children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})]})}}const gP=2;function mme({colors:e,maxValue:t,history:n,capacity:r}){const i=m.useRef(),o=m.useRef(t);o.current=t;const a=m.useMemo(()=>{var y;if(!i.current||!n.length)return;const{height:s,width:l}=i.current;if(s<0||l<0)return;const c=r??n.length,d=c>1?l/(c-1):0,f=c-n.length,p=Math.max(o.current,Math.max(...n.flatMap(b=>b.filter(Cb))),1),v=n[n.length-1].length,_=Array.from({length:v}).map(()=>new Array);for(let b=0;bb.map(({x:w,y:x})=>`${w},${x}`).join(" "))},[n,r]);return u.jsx(Mt,{flexGrow:"1",minHeight:"80px",children:u.jsx($s,{children:({height:s,width:l})=>{if(i.current={height:s,width:l},!!a&&(a==null?void 0:a.length)===e.length)return u.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:s,style:{background:"#222222"},children:a.map((c,d)=>u.jsx("polyline",{points:c,stroke:e[d],strokeWidth:gP,fill:"none",strokeLinecap:"round",strokeOpacity:.8},e[d]))})}})})}const V4t=100,H4t=3e4,vP="#197CAE",yP="var(--amber-8)",gme="#CBD4D6",vme=[vP,yP],yme=Math.ceil(H4t/V4t);function Z4t(){const{value:e,history:t}=X(IG);return u.jsxs(Zr,{columns:{initial:"1",sm:"2",lg:"4"},gapY:"3",gapX:"7",children:[u.jsx(G4t,{health:e,history:t}),u.jsx(q4t,{health:e,history:t}),u.jsx(Y4t,{health:e,history:t}),u.jsx(K4t,{health:e,history:t})]})}function bme({title:e,children:t}){return u.jsxs(V,{direction:"column",gap:gc,children:[u.jsx(q,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:e}),u.jsx(Ey,{style:{flex:1},children:t})]})}function _me({value:e,label:t,valueColor:n,pct:r}){return u.jsxs(V,{direction:"column",children:[u.jsxs(V,{gap:"2",children:[u.jsx(q,{style:{color:"var(--gray-11)"},children:t}),u.jsxs(q,{style:{color:"var(--gray-10)"},children:[z$.format(r*100),"%"]})]}),u.jsx(q,{style:{color:n},size:"8",children:Math.round(e).toLocaleString()})]})}function bP({value:e,label:t,valueColor:n,pct:r,size:i}){return u.jsxs(V,{direction:"column",children:[u.jsx(q,{style:{color:"var(--gray-11)"},children:t}),u.jsx(q,{style:{color:n},size:i==="lg"?"8":"6",children:Math.round(e).toLocaleString()}),r!==void 0&&u.jsxs(q,{style:{color:"var(--gray-10)"},size:"2",children:[z$.format(r*100),"%"]})]})}function lC(e,t){const n=m.useRef(t);return n.current=t,m.useMemo(()=>e.map(r=>n.current(r.value)),[e])}function q4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_success,o=e.num_pull_response_entries_rx_success,a=i+o,s=Math.max(n,r,a),l=rt.clamp(i/n,0,1),c=rt.clamp(o/r,0,1),d=[gme,...vme],f=lC(t,p=>[p.num_push_entries_rx_success+p.num_pull_response_entries_rx_success,p.num_push_entries_rx_success,p.num_pull_response_entries_rx_success]);return u.jsx(bme,{title:"Entries Success /s",children:u.jsxs(V,{gap:"6",children:[u.jsxs(V,{direction:"column",gap:"3",children:[u.jsx(bP,{label:"Total",value:a,valueColor:gme,size:"lg"}),u.jsxs(V,{gap:"3",children:[u.jsx(bP,{label:"Push",value:i,valueColor:vP,pct:l}),u.jsx(bP,{label:"Pull",value:o,valueColor:yP,pct:c})]})]}),u.jsx(mme,{colors:d,maxValue:s,history:f,capacity:yme})]})})}function _P({title:e,valueA:t,valueB:n,totalA:r,totalB:i,labelA:o,labelB:a,history:s}){const l=t/r,c=n/i,d=Math.max(r,i);return u.jsx(bme,{title:e,children:u.jsxs(V,{gap:"6",height:"100%",children:[u.jsxs(V,{direction:"column",gap:"3",minWidth:"120px",children:[u.jsx(_me,{label:o,value:t,valueColor:vP,pct:rt.clamp(l,0,1)}),u.jsx(_me,{label:a,value:n,valueColor:yP,pct:rt.clamp(c,0,1)})]}),u.jsx(mme,{colors:vme,maxValue:d,history:s,capacity:yme})]})})}function G4t({health:e,history:t}){const n=e.num_push_messages_rx_success+e.num_push_messages_rx_failure,r=e.num_pull_response_messages_rx_success+e.num_pull_response_messages_rx_failure,i=e.num_push_messages_rx_failure,o=e.num_pull_response_messages_rx_failure,a=lC(t,s=>[s.num_push_messages_rx_failure,s.num_pull_response_messages_rx_failure]);return u.jsx(_P,{title:"Message Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function Y4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_duplicate,a=lC(t,s=>[s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_duplicate]);return u.jsx(_P,{title:"Entry Duplicates /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function K4t({health:e,history:t}){const n=e.num_push_entries_rx_success+e.num_push_entries_rx_failure,r=e.num_pull_response_entries_rx_success+e.num_pull_response_entries_rx_failure,i=e.num_push_entries_rx_failure-e.num_push_entries_rx_duplicate,o=e.num_pull_response_entries_rx_failure-e.num_pull_response_entries_rx_duplicate,a=lC(t,s=>[s.num_push_entries_rx_failure-s.num_push_entries_rx_duplicate,s.num_pull_response_entries_rx_failure-s.num_pull_response_entries_rx_duplicate]);return u.jsx(_P,{title:"Entry Failures /s",valueA:i,valueB:o,totalA:n,totalB:r,labelA:"Push",labelB:"Pull",history:a})}function X4t(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function J4t(){return this.eachAfter(X4t)}function Q4t(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this}function e3t(e,t){for(var n=this,r=[n],i,o,a=-1;n=r.pop();)if(e.call(t,n,++a,this),i=n.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function t3t(e,t){for(var n=this,r=[n],i=[],o,a,s,l=-1;n=r.pop();)if(i.push(n),o=n.children)for(a=0,s=o.length;a=0;)n+=r[i].value;t.value=n})}function i3t(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function o3t(e){for(var t=this,n=a3t(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function a3t(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function s3t(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function l3t(){return Array.from(this)}function u3t(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function c3t(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*d3t(){var e=this,t,n=[e],r,i,o;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,o=r.length;i=0;--s)i.push(o=a[s]=new uC(a[s])),o.parent=r,o.depth=r.depth+1;return n.eachBefore(g3t)}function f3t(){return xP(this).eachBefore(m3t)}function h3t(e){return e.children}function p3t(e){return Array.isArray(e)?e[1]:null}function m3t(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function g3t(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function uC(e){this.data=e,this.depth=this.height=0,this.parent=null}uC.prototype=xP.prototype={constructor:uC,count:J4t,each:Q4t,eachAfter:t3t,eachBefore:e3t,find:n3t,sum:r3t,sort:i3t,path:o3t,ancestors:s3t,descendants:l3t,leaves:u3t,links:c3t,copy:f3t,[Symbol.iterator]:d3t};function v3t(e){if(typeof e!="function")throw new Error;return e}function _x(){return 0}function xx(e){return function(){return e}}function y3t(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function b3t(e,t,n,r,i){for(var o=e.children,a,s=-1,l=o.length,c=e.value&&(r-t)/e.value;++sx&&(x=c),T=b*b*j,S=Math.max(x/T,T/w),S>C){b-=c;break}C=S}a.push(l={value:b,dice:v<_,children:s.slice(d,f)}),l.dice?b3t(l,n,r,i,y?r+=_*b/y:o):_3t(l,n,r,y?n+=v*b/y:i,o),y-=b,d=f}return a}const xme=function e(t){function n(r,i,o,a,s){w3t(t,r,i,o,a,s)}return n.ratio=function(r){return e((r=+r)>1?r:1)},n}(x3t);function k3t(){var e=xme,t=!1,n=1,r=1,i=[0],o=_x,a=_x,s=_x,l=_x,c=_x;function d(p){return p.x0=p.y0=0,p.x1=n,p.y1=r,p.eachBefore(f),i=[0],t&&p.eachBefore(y3t),p}function f(p){var v=i[p.depth],_=p.x0+v,y=p.y0+v,b=p.x1-v,w=p.y1-v;b<_&&(_=b=(_+b)/2),w{let s=0,l=0;const c=[];for(;l{var p;const l=n[s];if(!l)return;const c=rt.sum(l.vote.map(v=>v.delinquent?0:Number(v.activated_stake))),d=ire(l.info),f=((p=l.info)==null?void 0:p.name)??void 0;return{stake:c,iconUrl:d,name:f}},[n]),o=X(yre);if(!r)return;const a=Ib(e.total_throughput);return u.jsxs(V,{direction:"column",gap:gc,minHeight:"300px",minWidth:"300px",flexGrow:"1",children:[u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:Rd.headerText,children:t}),u.jsxs("span",{children:[u.jsx(q,{className:Rd.totalText,children:"Total"}),u.jsxs(q,{className:Rd.throughputText,children:["\xA0",`${a.value} ${a.unit}`,"/s"]})]})]}),u.jsx(Mt,{flexGrow:"1",children:u.jsx($s,{children:({height:s,width:l})=>u.jsx(R3t,{sortedData:r,width:l,height:s,getPeerValues:i,totalActivePeersStake:o})})})]})}function R3t({sortedData:e,width:t,height:n,totalActivePeersStake:r,getPeerValues:i}){const[o,a]=m.useState(),[s,l]=m.useState(!1),c=m.useRef(),d=m.useCallback(y=>{a(b=>(y!==b&&l(!1),y))},[]),f=m.useCallback(y=>{UN(y),l(!0),clearTimeout(c.current),c.current=setTimeout(()=>l(!1),1e3)},[l]);Pg(()=>{clearTimeout(c.current)});const p=m.useMemo(()=>LRe||s?"ID copied to clipboard":"Click to copy ID",[s]),v=m.useMemo(()=>{const y=xP(e).sum(w=>w.value??0),b=k3t();return b.tile(L3t),b.size([t,n]),b.round(!0),b.paddingInner(2),b(y).leaves()},[t,n,e]),_=m.useMemo(()=>{let y=[];const b=Math.ceil(e.children.length/wme.length);for(let w=0;wd(void 0),children:v.map((y,b)=>{const w=`${y.data.id}-${y.x0}-${y.x1}-${y.y0}-${y.y1}`,x=o===w;return u.jsx(O3t,{leaf:y,color:_[b],totalActivePeersStake:r,getPeerValues:i,tooltipText:x?p:void 0,openTooltip:()=>d(w),copyId:()=>f(y.data.id)},y.data.id)})})}function O3t({leaf:e,color:t,totalActivePeersStake:n,getPeerValues:r,tooltipText:i,openTooltip:o,copyId:a}){const s=e.x1-e.x0,l=e.y1-e.y0;return u.jsx(ui,{open:!!i,className:Rd.tooltip,content:i,disableHoverableContent:!0,side:"bottom",onOpenChange:c=>{c&&o()},children:u.jsx(Mt,{onClick:a,onMouseEnter:()=>{o()},className:Rd.leaf,position:"absolute",width:`${s}px`,height:`${l}px`,style:{transform:`translate(${e.x0}px, ${e.y0}px)`,"--leaf-color":t},children:u.jsx(P3t,{width:s,height:l,leaf:e,totalActivePeersStake:n,getPeerValues:r})})})}function P3t({width:e,height:t,leaf:n,totalActivePeersStake:r,getPeerValues:i}){const o=n.data.id,a=i(o),s=(a==null?void 0:a.name)||"Private",l=e>=20&&t>=20,c=e>=100&&t>=100?14:e>=55&&t>=55?12:e>=32&&t>=32?8:4,d=e>=30&&t>=38,f=t>=150,p=t>=60,v=e>=82;return u.jsxs(V,{className:Rd.leafContent,height:"100%",direction:"column",align:"center",justify:"center",overflow:"hidden",p:l?"8px":"0",gap:"4px",children:[l&&u.jsx(ks,{url:a==null?void 0:a.iconUrl,size:c}),d&&u.jsx(q,{className:Te(Rd.name,{[Rd.large]:f}),truncate:!0,align:"center",children:s}),p&&u.jsxs(V,{className:Rd.stats,align:"center",justify:"center",gap:"5px",children:[u.jsx(z3t,{value:n.value}),v&&(a==null?void 0:a.stake)!==void 0&&u.jsx(D3t,{stake:a.stake,totalActivePeersStake:r})]})]})}function z3t({value:e}){const t=Ib(e??0);return u.jsxs(q,{truncate:!0,children:[t.value," ",t.unit]})}function D3t({stake:e,totalActivePeersStake:t}){const n=m.useMemo(()=>{if(e===0)return"0";const r=100*e/Number(t);return r<.01?"<.01":r.toFixed(2)},[e,t]);return u.jsxs(V,{align:"center",justify:"center",gap:"3px",children:[u.jsx(fBe,{width:8,height:8}),u.jsxs(q,{truncate:!0,children:[n,"%"]})]})}function A3t(){const e=X(TG),[t]=Uie(e,5e3,{leading:!0,maxWait:5e3}),n=e==null?void 0:e.storage;if(!_i&&!(!n||!t))return u.jsxs(V,{gap:"30px",direction:"column",align:"stretch",justify:"center",height:"100%",children:[u.jsxs(V,{gapX:"30px",gapY:fP,wrap:"wrap",children:[u.jsx(kme,{networkTraffic:t.ingress,label:"Ingress"}),u.jsx(kme,{networkTraffic:t.egress,label:"Egress"})]}),u.jsxs(V,{gap:"30px",wrap:"wrap",children:[u.jsxs(V,{direction:"column",flexGrow:"1",flexBasis:"0",gap:fP,minWidth:eC,children:[u.jsx(j4t,{storage:n}),u.jsx(kwt,{storage:n})]}),u.jsxs(V,{direction:"column",flexGrow:"1",flexBasis:"0",gap:fP,minWidth:eC,children:[u.jsx(W4t,{}),u.jsx($4t,{messages:e.messages})]})]}),u.jsx(Z4t,{}),u.jsx(A4t,{})]})}const F3t=up("/gossip")({component:A3t,beforeLoad:({context:e,location:t})=>{if(_i)throw uT({to:"/"})}}),B3t=up("/about")({component:U3t});function U3t(){return u.jsx("div",{className:"p-2",children:u.jsx("h3",{children:"About"})})}const cC=600,Sme=Co(new Array(cC).fill(void 0)),wP=(e,t)=>e.length?"M"+e.map(({x:n,y:r})=>`L ${n} ${t-r}`).join(" ").slice(1)+`L ${e[e.length-1].x} ${t} L ${e[0].x} ${t}, L ${e[0].x} ${e[0].y}`:"";function W3t(){const e=X(Sme),t=m.useRef(),n=Math.max(...e.map(i=>(i==null?void 0:i.total)??0)),r=m.useMemo(()=>{if(!t.current||!e.length)return;const{height:i,width:o}=t.current,a=e.length,s=(o+2)/a,l=(i-10)/(n||1),c=e.map((f,p)=>{if(f!==void 0)return{x:p*s,voteY:f.vote*l,nonvoteFailedY:(f.nonvote_failed+f.vote)*l,nonvoteY:(f.nonvote_success+f.nonvote_failed+f.vote)*l}}).filter(Cb),d=i-n*l;return{votePath:wP(c.map(f=>({x:f.x,y:f.voteY})),i),failedPath:wP(c.map(f=>({x:f.x,y:f.nonvoteFailedY})),i),nonvotePath:wP(c.map(f=>({x:f.x,y:f.nonvoteY})),i),totalTpsY:isNaN(d)?void 0:d}},[n,e]);return u.jsx(u.Fragment,{children:u.jsx($s,{children:({height:i,width:o})=>(t.current={height:i,width:o},r?u.jsx(u.Fragment,{children:u.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:o,height:i,fill:"none",children:[u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:r.nonvotePath,fill:Sne}),u.jsx("path",{d:r.failedPath,fill:jne}),u.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",fill:Cne,d:r.votePath}),r.totalTpsY&&u.jsxs(u.Fragment,{children:[u.jsx("line",{x1:"0",y1:r.totalTpsY,x2:o,y2:r.totalTpsY,strokeDasharray:"4",stroke:"rgba(255, 255, 255, 0.30)"}),u.jsx("text",{x:"0",y:r.totalTpsY-3,fill:mN,fontSize:"8",fontFamily:"Inter Tight",children:n.toLocaleString()})]})]})}):null)})})}const V3t="_axis-text_juf3d_1",Cme={axisText:V3t},H3t="_container_muoex_1",Z3t="_label_muoex_6",q3t="_value_muoex_12",G3t="_small_muoex_17",Y3t="_medium_muoex_21",K3t="_large_muoex_25",X3t="_append-value_muoex_31",fi={container:H3t,label:Z3t,value:q3t,small:G3t,medium:Y3t,large:K3t,appendValue:X3t};function ya({label:e,value:t,valueColor:n,valueSize:r,animateInteger:i=!1,appendValue:o,appendValueColor:a,className:s}){const l=m.useMemo(()=>Te(fi.value,{[fi.small]:r==="small",[fi.medium]:r==="medium",[fi.large]:r==="large"}),[r]);return u.jsxs(V,{direction:"column",align:"start",className:Te(fi.container,s),style:{"--value-color":n},children:[u.jsx(q,{className:fi.label,children:e}),u.jsxs(V,{align:"baseline",gap:"1",width:"100%",children:[typeof t=="number"&&i?u.jsx(M_,{value:t,className:l}):u.jsx(q,{className:l,children:t}),o&&u.jsx(q,{className:fi.appendValue,style:{"--append-value-color":a},children:o})]})]})}const J3t="_vote-tps_kqvrt_1",Q3t={voteTps:J3t};function ekt(){const e=X(OT);return u.jsxs(V,{direction:"column",gap:"2",minWidth:"100px",children:[u.jsx(ya,{label:"Total TPS",value:(e==null?void 0:e.total.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Yu,valueSize:"medium"}),u.jsxs(V,{gap:"4",wrap:"wrap",children:[u.jsx(ya,{label:"Non-vote TPS Success",value:(e==null?void 0:e.nonvote_success.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:Zf,valueSize:"small"}),u.jsx(ya,{label:"Non-vote TPS Fail",value:(e==null?void 0:e.nonvote_failed.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:fd,valueSize:"small"}),u.jsx(ya,{label:"Vote TPS",value:(e==null?void 0:e.vote.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}))??"-",valueColor:hd,valueSize:"small",className:Q3t.voteTps})]})]})}function tkt({className:e}){return u.jsx(so,{className:e,children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",children:[u.jsx(Sd,{text:"Transactions"}),u.jsxs(V,{gap:"4",flexGrow:"1",children:[u.jsx(ekt,{}),u.jsxs(V,{direction:"column",flexGrow:"1",children:[u.jsx(Mt,{flexGrow:"1",minWidth:"180px",overflow:"hidden",children:u.jsx(W3t,{})}),u.jsxs(V,{justify:"between",children:[u.jsx(q,{className:Cme.axisText,children:"~ 1min ago"}),u.jsx(q,{className:Cme.axisText,children:"Now"})]})]})]})]})})}const nkt="_stat-row_1ia1g_1",jme={statRow:nkt};function rkt(){const e=X(Ig);if(!e)return null;const t=Rs(e.activeStake),n=Rs(e.delinquentStake);return u.jsxs(V,{gap:"2",flexGrow:"1",children:[u.jsxs(V,{direction:"column",gap:"2",minWidth:"0",children:[u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"Total Validators",value:e.validatorCount.toString(),valueColor:gN,valueSize:"medium"}),u.jsx(ya,{label:"Non-delinquent Stake",value:t,valueColor:pk,appendValue:"SOL",valueSize:"medium"})]}),u.jsxs("div",{className:jme.statRow,children:[u.jsx(ya,{label:"RPC Nodes",value:e.rpcCount.toString(),valueColor:Yu,valueSize:"small"}),u.jsx(ya,{label:"Delinquent Stake",value:n,valueColor:fd,appendValue:"SOL",valueSize:"small"})]})]}),u.jsx(Mt,{style:{minWidth:"200px"},children:u.jsx(pme,{activeStake:e.activeStake,delinquentStake:e.delinquentStake})})]})}function ikt(){return X(Ig)?u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",children:[u.jsx(Sd,{text:"Validators"}),u.jsx(rkt,{})]})}):null}const okt="_stat-row_11bim_1",Tme={statRow:okt};function akt(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Status"}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(skt,{}),u.jsx(ukt,{})]}),u.jsxs("div",{className:Tme.statRow,children:[u.jsx(ckt,{}),u.jsx(lkt,{})]})]})})}function skt(){const e=X(oo);return u.jsx(Mt,{children:u.jsx(ya,{label:"Slot",value:e??"",valueColor:Yu,valueSize:"medium",animateInteger:!0})})}function lkt(){const{nextLeaderSlot:e}=P_({showNowIfCurrent:!0});return u.jsx(ya,{label:"Next leader slot",value:(e==null?void 0:e.toString())??"\u221E",valueColor:Gte,valueSize:e===void 0?"large":"small"})}function ukt(){const{progressSinceLastLeader:e,nextSlotText:t}=P_({showNowIfCurrent:!0});return u.jsxs(V,{direction:"column",children:[u.jsx(ya,{label:"Time until leader",value:t,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{value:e})]})}function ckt(){const e=X(zT),t=X(LG),n=m.useMemo(()=>e==="voting"?hN:e==="non-voting"?Yte:e==="delinquent"?fd:mN,[e]),r=m.useMemo(()=>t==null||e==="delinquent"?void 0:`${t>150?"> 150":t} behind`,[t,e]);return u.jsx(ya,{label:"Vote Status",value:e??"Unknown",valueColor:n,valueSize:"small",appendValue:r,appendValueColor:wne})}const dkt="_stat-row_kmlhn_1",fkt="_progress_kmlhn_13",kP={statRow:dkt,progress:fkt};function hkt(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Epoch"}),u.jsx("div",{className:kP.statRow,children:u.jsx(pkt,{})}),u.jsx("div",{className:kP.statRow,children:u.jsx(mkt,{})})]})})}function pkt(){var t;const e=X(di);return u.jsx(Mt,{children:u.jsx(ya,{label:"Current Epoch",value:((t=e==null?void 0:e.epoch)==null?void 0:t.toString())??"",valueColor:Yu,valueSize:"medium"})})}function mkt(){const e=X(oo),t=X(di),n=X(Eg),r=m.useMemo(()=>{if(t===void 0||e===void 0)return"";const o=(t.end_slot-e)*n,a=fn.fromMillis(o).rescale();return Sp(a)},[t,e,n]),i=m.useMemo(()=>{if(t===void 0||e===void 0)return 0;const o=e-t.start_slot,a=t.end_slot-t.start_slot,s=o/a*100;return s<0||s>100?0:s},[t,e]);return u.jsxs(V,{direction:"column",children:[u.jsx(ya,{label:"Time to Next Epoch",value:r,valueColor:Yu,valueSize:"medium"}),u.jsx(a1,{className:kP.progress,value:i})]})}function gkt(){if(!_i)return u.jsx(so,{style:{padding:"10px 13px 10px 10px"},children:u.jsxs(V,{direction:"column",gap:"4",children:[u.jsxs(V,{gapX:"15px",gapY:"2",align:"center",wrap:"wrap",children:[u.jsx(Sd,{text:"Shreds"}),u.jsx(Ese,{})]}),u.jsx(hse,{height:"400px",chartId:"overview-shreds-chart",isOnStartupScreen:!1})]})})}const vkt="_chart_7b67t_1",ykt="_table_7b67t_7",bkt="_row_7b67t_7",_kt="_total-row_7b67t_8",wx={chart:vkt,table:ykt,row:bkt,totalRow:_kt},Ime=18;function xkt(){const e=X(PT),t=X(xG),n=X(wG);if(e)return u.jsxs(V,{wrap:"wrap",gap:"4",children:[u.jsx(Eme,{metrics:e.ingress,history:t.history,type:"Ingress"}),u.jsx(Eme,{metrics:e.egress,history:n.history,type:"Egress"})]})}function Eme({metrics:e,history:t,type:n}){return u.jsx(so,{style:{flexGrow:1},children:u.jsxs(V,{direction:"column",height:"100%",gap:gc,children:[u.jsxs(q,{className:Ld.headerText,children:["Network ",n]}),u.jsxs(q0,{variant:"ghost",className:Te(Ld.root,wx.table),size:"1",style:{"--bar-height":`${Ime}px`},children:[u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{width:"60px",children:"Protocol"}),u.jsx(Wi,{align:"right",width:"80px",children:"Current"}),u.jsx(Wi,{minWidth:{xl:"250px",lg:"160px",md:"100px",initial:"60px"},children:"Utilization"}),u.jsx(Wi,{align:"right",width:{xl:"240px",lg:"200px",md:"100px",initial:"200px"},children:"History (1m)"})]})}),u.jsxs(G0,{children:[e.map((r,i)=>{const o=V$[i];if(!(_i&&(o==="gossip"||o==="repair")))return u.jsx($me,{label:o,value:r,maxValue:aoe[n][o],history:t,mapHistory:a=>a[i]??0},i)}),u.jsx($me,{label:"Total",value:rt.sum(e),maxValue:aoe[n].Total,history:t,mapHistory:rt.sum,className:wx.totalRow})]})]})]})})}const wkt=1e8;function Nme(e,t){return Math.min(1,e/t)}const kkt={halfLifeMs:1e3};function $me({label:e,value:t,maxValue:n=wkt,history:r,mapHistory:i,className:o}){const a=Ug(t,kkt),s=Ib(a),l=Nme(a,n),c=m.useRef(i);c.current=i;const d=m.useMemo(()=>r.map(f=>({ts:f.ts,value:Nme(c.current(f.values),n)})),[r,n]);return u.jsxs(la,{className:Te(wx.row,o),children:[u.jsx($4,{children:e}),u.jsxs(ti,{align:"right",children:[s.value," ",s.unit]}),u.jsx(ti,{className:wx.chart,children:u.jsx(V,{align:"center",children:u.jsx(G$,{value:a,max:n,barWidth:2})})}),u.jsx(ti,{className:wx.chart,children:u.jsx(c_,{value:l,history:d,background:vk,windowMs:6e4,height:Ime,updateIntervalMs:500,tickMs:1e3})})]})}const Skt="_group-header_1lbrc_1",Ckt="_header_1lbrc_6",jkt="_wrap_1lbrc_9",Tkt="_table_1lbrc_15",Ikt="_data-row_1lbrc_19",Ekt="_green_1lbrc_20",Nkt="_red_1lbrc_24",$kt="_pct-gradient_1lbrc_43",Mkt="_no-padding_1lbrc_51",Lkt="_increment-text_1lbrc_56",Rkt="_low-increment_1lbrc_61",Okt="_mid-increment_1lbrc_64",Pkt="_high-increment_1lbrc_67",zkt="_light-border-bottom_1lbrc_79",Dkt="_right-border_1lbrc_83",dr={groupHeader:Skt,header:Ckt,wrap:jkt,table:Tkt,dataRow:Ikt,green:Ekt,red:Nkt,pctGradient:$kt,noPadding:Mkt,incrementText:Lkt,lowIncrement:Rkt,midIncrement:Okt,highIncrement:Pkt,lightBorderBottom:zkt,rightBorder:Dkt},Akt="_table-description-dialog_1shm8_1",Fkt="_table_1shm8_1",Bkt="_th_1shm8_8",Ukt="_tr_1shm8_14",Wkt="_name_1shm8_22",Vkt="_close-button_1shm8_28",_h={tableDescriptionDialog:Akt,table:Fkt,th:Bkt,tr:Ukt,name:Wkt,closeButton:Vkt},SP=[{name:"",pinned:!0,metrics:[{uniqueName:"Name",description:"The name and index of each tile. A tile represents a sandboxed process or individual thread that communicates with other tiles using message passing queues.",headerColWidth:70}]},{name:"Liveness",metrics:[{uniqueName:"CPU",description:"The CPU index on which the tile was last recorded executing.",headerColWidth:50,headerColAlign:"right"},{uniqueName:"Heartbeat",description:"Liveness indicator based on a periodic heartbeat timestamp written by tiles to a chunk of shared memory.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"Backp",description:"If a tile is backpressured, at least one outgoing message queue is at-capacity which can prevent the tile from moving forward with useful work.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Backp Count",description:"The number of cumulative | immediate (10ms) times a CPU transitioned into a backpressured state.",headerColWidth:120,headerColAlign:"right"}]},{name:"Utilization",metrics:[{uniqueName:"Utilization",description:"Visualized the percentage of the tile's CPU time spent doing useful work. Time spent in a context switch is not included.",headerColWidth:150},{uniqueName:"History (1m)",description:"A historical, low-pass-filtered view of CPU utilization.",headerColWidth:150}]},{name:"System",metrics:[{uniqueName:"% Hkeep",description:"The percentage of CPU time spent on housekeeping tasks, which are meant to be infrequent and generally more expensive than tasks on the critical path.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Wait",description:"The percentage of CPU time spent waiting for useful work to do.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Backp",description:"The percentage of CPU time during which the tile was backpressured, excluding housekeeping time.",headerColWidth:70,headerColAlign:"right"},{uniqueName:"% Work",description:"The percentage of CPU time spent performing useful work, excluding housekeeping and backpressured time.",headerColWidth:70,headerColAlign:"right"}]},{name:"Scheduler",metrics:[{uniqueName:"% Wait (scheduler)",columnName:"% Wait",description:"The percentage of CPU time spent waiting in the runqueue before being dispatched.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% User (scheduler)",columnName:"% User",description:"The percentage of CPU time spent executing in user mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% System (scheduler)",columnName:"% System",description:"The percentage of CPU time spent executing in kernel mode.",headerColWidth:70,headerColAlign:"right",wrap:!0},{uniqueName:"% Idle (scheduler)",columnName:"% Idle",description:"The percentage of CPU time unaccounted for by the other 3 regimes.",headerColWidth:70,headerColAlign:"right",wrap:!0}]},{name:"Exceptions",metrics:[{uniqueName:"Minflt",description:"The number of cumulative minor page faults. Minor page faults occur for pages in RAM not indexed by the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Majflt",description:"The number of cumulative major page faults. Major page faults occur for pages that are neither in RAM nor the page table.",headerColWidth:60,headerColAlign:"right"},{uniqueName:"Nivcsw",description:"The number of cumulative | immediate (10ms) involuntary context switches.",headerColWidth:150,headerColAlign:"right"},{uniqueName:"Nvcsw",description:"The number of cumulative | immediate (10ms) voluntary context switches.",headerColWidth:150,headerColAlign:"right"}]}],Mme=SP.filter(({pinned:e})=>e),Hkt=SP.filter(({pinned:e})=>!e),Lme=Mme.reduce((e,t)=>{for(const n of t.metrics)e+=n.headerColWidth;return e},1);function Zkt(){return u.jsxs(WZ,{children:[u.jsx(VZ,{children:u.jsx(V,{children:u.jsx(ui,{content:"Click to view column definitions.",children:u.jsx(Zie,{color:"var(--gray-11)",cursor:"pointer"})})})}),u.jsxs(HZ,{maxHeight:"85dvh",maxWidth:`min(80dvw, calc(0.8 * ${Zte}))`,size:"1",className:_h.tableDescriptionDialog,children:[u.jsx(ZZ,{size:"2",className:_h.title,mb:"0px",children:"Column Definitions"}),u.jsxs(q0,{size:"1",className:_h.table,children:[u.jsx("colgroup",{children:u.jsx("col",{style:{width:"110px"}})}),u.jsx(ip,{children:u.jsxs(la,{children:[u.jsx(Wi,{className:_h.th,children:"Column"}),u.jsx(Wi,{className:_h.th,children:"Definition"})]})}),u.jsx(G0,{children:SP.map(e=>e.metrics.map(t=>u.jsxs(la,{className:_h.tr,children:[u.jsx(ti,{className:_h.name,children:t.uniqueName}),u.jsx(ti,{children:t.description})]},t.uniqueName)))})]}),u.jsx(V,{justify:"end",children:u.jsx(qZ,{children:u.jsx(hs,{className:_h.closeButton,children:"Close"})})})]})]})}const Rme=18,qkt=m.memo(function(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",gap:gc,width:"100%",children:[u.jsxs(V,{align:"center",gap:"2",children:[u.jsx(q,{className:Ld.headerText,children:"Tiles"}),u.jsx(Zkt,{})]}),u.jsx(Gkt,{})]})})});function Gkt(){return u.jsxs(V,{children:[u.jsx(Ome,{isPinned:!0}),u.jsx(Ome,{isPinned:!1})]})}function Ome({isPinned:e}){const t=X(rg),n=X(CG),r=e?Mme:Hkt,i=m.useMemo(()=>({"--bar-height":`${Rme}px`,minWidth:e?`${Lme}px`:"0px",flexBasis:e?`${Lme}px`:void 0}),[e]);if(!(!t||!n))return u.jsxs(q0,{variant:"ghost",className:Te(Ld.root,dr.table),size:"1",style:i,children:[u.jsx("colgroup",{children:r.map(o=>o.metrics.map(a=>u.jsx("col",{style:{width:a.headerColWidth}},a.uniqueName)))}),u.jsxs(ip,{className:dr.header,children:[u.jsx(la,{children:r.map((o,a)=>u.jsx(Wi,{colSpan:o.metrics.length,className:Te(dr.groupHeader,{[dr.rightBorder]:e||a!==r.length-1}),children:o.name},o.name))}),u.jsx(la,{className:dr.lightBorderBottom,children:r.map((o,a)=>o.metrics.map((s,l)=>u.jsx(Wi,{align:s.headerColAlign,className:Te({[dr.wrap]:!!s.wrap,[dr.rightBorder]:e||a!==r.length-1&&l===o.metrics.length-1}),children:s.columnName??s.uniqueName},s.uniqueName)))})]}),u.jsx(G0,{children:t.map((o,a)=>u.jsx(Ykt,{tile:o,liveTileMetrics:n,idx:a,isPinned:e},`${o.kind}${o.kind_id}`))})]})}function Ykt({tile:e,liveTileMetrics:t,idx:n,isPinned:r}){const i=D$(t,(s,l)=>s?l?Object.keys(l).every(c=>{var d,f;return rt.isEqual((d=s[c])==null?void 0:d[n],(f=l[c])==null?void 0:f[n])}):!0:!1),o=t.alive[n]??(i==null?void 0:i.alive[n]);if(o===2)return;const a=t.timers[n]||(i==null?void 0:i.timers[n]);if(a)return r?u.jsx(la,{className:dr.dataRow,children:u.jsxs(ti,{className:dr.rightBorder,children:[e.kind,":",e.kind_id]})}):u.jsx(Kkt,{alive:o,timers:a,liveTileMetrics:t,prevLiveTileMetricsIdx:i,idx:n})}function Kkt({alive:e,timers:t,liveTileMetrics:n,prevLiveTileMetricsIdx:r,idx:i}){const o=D$(n.sched_timers[i]),a=n.sched_timers[i]||o||[],[s,l,c,d]=a.map(A=>A===-1?0:A),f=n.nivcsw[i]??(r==null?void 0:r.nivcsw[i]),p=n.nvcsw[i]??(r==null?void 0:r.nvcsw[i]),v=n.in_backp[i]??(r==null?void 0:r.in_backp[i]),_=n.backp_msgs[i]??(r==null?void 0:r.backp_msgs[i]),y=n.last_cpu[i]??(r==null?void 0:r.last_cpu[i]),b=n.minflt[i]??(r==null?void 0:r.minflt[i]),w=n.majflt[i]??(r==null?void 0:r.majflt[i]),x=o_(f),S=o_(p),C=o_(_);for(let A=0;A1})}),u.jsx(xh,{pct:T}),u.jsx(xh,{pct:E,className:Te({[dr.red]:E>0})}),u.jsx(xh,{pct:$,className:Te(dr.pctGradient,dr.rightBorder),style:{"--pct":`${$}%`}}),u.jsx(xh,{pct:s}),u.jsx(xh,{pct:c}),u.jsx(xh,{pct:d}),u.jsx(xh,{pct:l,className:dr.rightBorder}),u.jsx(ti,{align:"right",children:(b==null?void 0:b.toLocaleString())??"-"}),u.jsx(ti,{align:"right",children:(w==null?void 0:w.toLocaleString())??"-"}),u.jsxs(ti,{align:"right",children:[(f==null?void 0:f.toLocaleString())??"-"," |",u.jsx(Pme,{value:f!=null&&x!=null?f-x:0})]}),u.jsxs(ti,{align:"right",children:[(p==null?void 0:p.toLocaleString())??"-"," |",u.jsx(Pme,{value:p!=null&&S!=null?p-S:0})]})]})}function Pme({value:e}){const t=e.toLocaleString();return u.jsxs(q,{className:Te(dr.incrementText,{[dr.lowIncrement]:1<=e&&e<=10,[dr.midIncrement]:11<=e&&e<=100,[dr.highIncrement]:e>=101}),children:["+",t]})}function xh({pct:e,...t}){return u.jsx(ti,{align:"right",...t,children:e==null?"--":`${e.toFixed(2)}%`})}const zme=300,Xkt=m.memo(function({idx:e}){const t=X(l3),n=X(jG),r=t!=null&&t[e]&&t[e]>=0?1-Math.max(0,t[e]):-1,i=D$(r,(c,d)=>!(d!=null&&c!=null&&d>=0&&c>=0&&d!==c)),o=m.useRef({count:0,sum:0}),[a,s]=m.useState(r);m.useEffect(()=>{r>=0&&(o.current.count++,o.current.sum+=r)},[r]),r_(()=>{o.current.count!==0&&(s(o.current.sum/o.current.count),o.current={count:0,sum:0})},zme);const l=m.useMemo(()=>n.history.map(c=>{const d=c.values[e]??0;return{ts:c.ts,value:d>=0?1-Math.max(0,d):0}}),[n.history,e]);return u.jsxs(u.Fragment,{children:[u.jsx(ti,{className:dr.noPadding,children:u.jsx(V,{align:"center",children:u.jsx(G$,{value:r>=0?r:i??0,max:1,barWidth:2})})}),u.jsx(ti,{className:Te(dr.noPadding,dr.rightBorder),children:u.jsx(c_,{value:a,history:l,background:vk,windowMs:6e4,height:Rme,updateIntervalMs:zme,tickMs:1e3})})]})}),Jkt="_slot-label-card_1pson_1",Qkt="_slot-label-name_1pson_13",e6t="_slot-label-dt_1pson_16",t6t="_dt-sign_1pson_19",n6t="_slot-bar_1pson_24",r6t="_dim_1pson_29",i6t="_slot-bar-track_1pson_34",o6t="_next-leader-container_1pson_38",a6t="_next-leader-timer-label_1pson_44",s6t="_next-leader-timer-container_1pson_50",wl={slotLabelCard:Jkt,slotLabelName:Qkt,slotLabelDt:e6t,dtSign:t6t,slotBar:n6t,dim:r6t,slotBarTrack:i6t,nextLeaderContainer:o6t,nextLeaderTimerLabel:a6t,nextLeaderTimerContainer:s6t};function Dme(e){return m.useMemo(()=>{const t=new Map,n=r=>{var i;r.slot!=null&&(t.has(r.slot)?(i=t.get(r.slot))==null||i.push(r):t.set(r.slot,[r]))};for(const r of e)n(r);return t},[e])}const CP=2,P1=`${CP}px`,zm="5px",Ame=2,Fme=34,kx=Fme-Fme%2,l6t="#A09000",u6t="#0ABF9E",c6t="#4AA7C1",d6t="#08A24D",f6t="#AC4902",h6t="#3F7BF4",p6t="#AF49F2",m6t="#2497EE",g6t="#A09000",v6t="#0ABF9E",y6t="#4AA7C1",b6t="#08A24D",_6t="#AC4902",x6t="#3F7BF4",w6t="#AF49F2",k6t="#2497EE";function S6t(){if(!X(ol))return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:gc,children:[u.jsx(q,{style:{color:"var(--primary-text-color)",fontSize:"18px"},children:"Slots"}),u.jsx(j6t,{})]})})}function C6t(e,t){if(!(t==null||e==null))return e-t}function wh(e,t,n,r,i){return{label:e,slot:t,slotDt:C6t(t,n),labelColor:r,barColor:i}}const Bme=14,Sx=m.createContext({barWidth:Bme,shrinkSlotsLabel:!1,useLabelGrid:!1});function j6t(){const[e,t]=m.useState(Bme),n=X(vG),r=X(pG),i=X(RT),o=X(yG),a=X(Gy),s=X(fp),l=X(mG),c=X(Lb),d=Hn("(max-width: 1300px)"),f=Hn("(max-width: 1000px)"),{storageSlotBar:p,rootSlotBar:v,voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,optimisticallyConfirmedBar:x,nextLeaderSlotBar:S}=m.useMemo(()=>{const $=wh("Storage",n,s,l6t,g6t),A=wh("Root",r,s,u6t,v6t),M=wh("Voted",i,s,c6t,y6t),P=wh("Repair",o,s,f6t,_6t),te=wh("Turbine",a,s,h6t,x6t),Z=wh("Processed",s,s,d6t,b6t),O=wh("Confirmed",l,s,p6t,w6t),J=wh("Next Leader",c,s,m6t,k6t);return{storageSlotBar:$,rootSlotBar:A,voteSlotBar:M,repairSlotBar:P,turbineSlotBar:te,replaySlotBar:Z,optimisticallyConfirmedBar:O,nextLeaderSlotBar:J}},[c,l,o,s,r,n,a,i]),C=m.useMemo(()=>({barWidth:e,shrinkSlotsLabel:d,useLabelGrid:f}),[e,d,f]);if(!s)return;const j=Eb([_.slot,y.slot,b.slot,w.slot,x.slot]),T=r!=null||n!=null?Math.max(kx,Eb([s,a])-Eb([r,n])):kx,E=Math.max(T/8,kx/2+(kx-T));return u.jsxs(Sx.Provider,{value:C,children:[f&&u.jsx(N6t,{storageSlotBar:p,rootSlotBar:v,voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,confirmedSlotBar:x,replaySlotBar:w,nextLeaderSlotBar:S}),u.jsxs(V,{gap:P1,children:[u.jsx(T6t,{storageSlotBar:p,rootSlotBar:v,repairSlotBar:y}),u.jsxs(Zr,{columns:`${T}fr ${E}fr`,gapX:P1,flexGrow:"1",children:[u.jsx(I6t,{voteSlotBar:_,repairSlotBar:y,turbineSlotBar:b,replaySlotBar:w,confirmedSlotBar:x,minSlot:r??s-32,maxSlot:j,setBarWidth:t}),u.jsx(E6t,{nextLeaderSlotBar:S,minSlot:j})]})]})]})}const Ume=20;function T6t({storageSlotBar:e,rootSlotBar:t,repairSlotBar:n}){const{barWidth:r,useLabelGrid:i}=m.useContext(Sx),[o,a]=Ss(),s=m.useMemo(()=>[e,t],[t,e]),l=m.useMemo(()=>[...s,n],[n,s]),c=Dme(l),d=m.useMemo(()=>{if(!r)return 0;const x=a.width-(r*3-CP*2),S=Math.max(Ame,r/2);return Math.min(20,Math.trunc(x/S))},[r,a.width]),f=Eb([e.slot,t.slot]),p=Oze([e.slot,t.slot,n.slot])-1,v=f-p,_=v<7?r:void 0,y=v>Ume,b=y?Ume:v,w=f-b;return u.jsxs(V,{direction:"column",gap:zm,minWidth:i?"30px":void 0,children:[!i&&u.jsx(V,{gap:zm,justify:"end",children:s.map(x=>u.jsx(vu,{slotBarInfo:x},x.label))}),u.jsxs(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,ref:o,children:[u.jsx(Vme,{count:d}),Array.from({length:b}).map((x,S)=>{const C=w+S+1,j=y&&S===0?c.get(n.slot??0):c.get(C);return j?u.jsx(jP,{colors:j.map(({barColor:T})=>T),barWidth:_},C):u.jsx(dC,{barWidth:_},C)})]})]})}function I6t({voteSlotBar:e,repairSlotBar:t,turbineSlotBar:n,replaySlotBar:r,confirmedSlotBar:i,maxSlot:o,minSlot:a,setBarWidth:s}){const[l,{width:c}]=Ss(),{useLabelGrid:d}=m.useContext(Sx),f=m.useMemo(()=>[e,i,r,t,n],[i,t,r,n,e]),p=Dme(f),v=rt.clamp(o-a,kx,100),_=m.useRef(v);return _.current=v,m.useEffect(()=>{if(c){const y=Math.trunc((c-CP*(v-1))/v);s(y)}},[v,s,c]),u.jsxs(V,{direction:"column",gap:zm,ref:l,minWidth:"100px",children:[!d&&u.jsx(V,{gap:zm,justify:"end",children:f.map(y=>u.jsx(vu,{slotBarInfo:y},y.label))}),u.jsx(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,children:Array.from({length:v}).map((y,b)=>{const w=a+b+1,x=p.get(w);return x?u.jsx(jP,{colors:x.map(({barColor:S})=>S)},w):u.jsx(dC,{},w)})})]})}function E6t({nextLeaderSlotBar:e,minSlot:t}){const{barWidth:n,useLabelGrid:r}=m.useContext(Sx),[i,o]=Ss(),a=m.useMemo(()=>{if(!n)return 0;const l=o.width-n,c=Math.max(Ame,n/2);return Math.trunc(l/c)},[n,o.width]),s=e.slot!=null?Math.min(a,e.slot-t):a;return u.jsxs(V,{direction:"column",gap:zm,minWidth:"0",className:wl.nextLeaderContainer,justify:"between",children:[!r&&u.jsxs(V,{justify:"end",gap:zm,children:[u.jsx(Wme,{}),u.jsx(vu,{slotBarInfo:e},e.label)]}),u.jsxs(V,{style:{opacity:.6},className:wl.slotBarTrack,align:"stretch",justify:"end",gap:P1,ref:i,children:[u.jsx(Vme,{count:s}),e.slot&&u.jsx(jP,{colors:[e.barColor],barWidth:n/2})]})]})}function Wme(){const{progressSinceLastLeader:e,nextSlotText:t}=P_({showNowIfCurrent:!1});return u.jsxs(V,{direction:"column",flexGrow:"1",p:"5px",align:"stretch",justify:"between",minWidth:"70px",className:wl.nextLeaderTimerContainer,children:[u.jsxs(q,{align:"center",wrap:"nowrap",children:[u.jsx(q,{style:{color:"#919191"},className:wl.nextLeaderTimerLabel,children:"Time Until Leader"}),u.jsxs(q,{style:{color:"#BCBCBC"},children:["\xA0",t]})]}),u.jsx("div",{children:u.jsx(a1,{value:e,height:"2px",duration:"500ms"})})]})}const vu=m.memo(function({slotBarInfo:e}){const{shrinkSlotsLabel:t}=m.useContext(Sx),{slot:n,slotDt:r,labelColor:i,label:o}=e;if(n==null||r==null)return;const a=`${o}${t?"":" Slot"}`,s=`${Math.abs(r)}`;return u.jsxs(V,{direction:"column",align:"stretch",className:wl.slotLabelCard,minWidth:"50px",children:[u.jsxs(V,{gap:"5px",justify:"between",align:"stretch",style:{color:i},children:[u.jsx(q,{className:wl.slotLabelName,weight:"bold",wrap:"nowrap",truncate:!0,dir:"rtl",children:a}),e.label==="Processed"?u.jsx(q,{style:{fontSize:"10px",lineHeight:"14px"},children:"\u{1F4CD}"}):u.jsxs(q,{truncate:!0,className:wl.slotLabelDt,weight:"bold",children:[e.label!=="Next Leader"&&u.jsx(Za,{className:wl.dtSign,children:r===0?" ":r>0?"+":"-"}),u.jsx(q,{truncate:!0,children:s})]})]}),u.jsx(M_,{value:n,containerRowJustify:"center"})]})});function jP({colors:e,barWidth:t}){const n=t?void 0:"1";return u.jsx(Zr,{rows:"repeat(auto-fill, 1fr)",gap:P1,flexGrow:n,children:e.map(r=>u.jsx(dC,{barWidth:t,color:r},r))})}const dC=m.memo(function({isDim:e,color:t,barWidth:n}){const r=n?void 0:"1";return u.jsx(Mt,{width:`${n}px`,flexGrow:r,className:Te(wl.slotBar,{[wl.dim]:e}),style:{"--bar-color":t}})}),Vme=function({count:e}){return Array.from({length:e}).map((t,n)=>u.jsx(dC,{isDim:!0},n))};function N6t({storageSlotBar:e,rootSlotBar:t,voteSlotBar:n,repairSlotBar:r,turbineSlotBar:i,replaySlotBar:o,confirmedSlotBar:a,nextLeaderSlotBar:s}){return u.jsxs(Zr,{columns:{xs:"4",initial:"2"},gap:zm,children:[u.jsx(vu,{slotBarInfo:e}),u.jsx(vu,{slotBarInfo:t}),u.jsx(vu,{slotBarInfo:n}),u.jsx(vu,{slotBarInfo:a}),u.jsx(vu,{slotBarInfo:o}),u.jsx(vu,{slotBarInfo:r}),u.jsx(vu,{slotBarInfo:i}),u.jsx(vu,{slotBarInfo:s}),u.jsx(Mt,{gridColumn:{xs:"span 4",initial:"span 2"},children:u.jsx(Wme,{})})]})}const $6t="_stat-row_1xsdi_1",M6t="_storage-stat-container_1xsdi_10",TP={statRow:$6t,storageStatContainer:M6t},L6t="_trailing_1bhfc_1",R6t="_fraction_1bhfc_5",O6t="_fraction-line_1bhfc_10",IP={trailing:L6t,fraction:R6t,fractionLine:O6t};function P6t(e,t,n){const r=t.indexOf("."),i=n.indexOf("."),o=r!==-1?r:t.length,a=i!==-1?i:n.length,s=e-o,l=a+s;return l<0||l>=n.length||t[e]!==n[l]}function EP({value:e,changedColor:t,unchangedColor:n,className:r}){const i=m.useRef(void 0);return m.useEffect(()=>{i.current=e},[e]),u.jsx(q,{className:r,children:e.split("").map((o,a)=>{const s=i.current===void 0||P6t(a,e,i.current);return u.jsx("span",{style:{color:s?t:n},children:o},a)})})}const NP={Unknown:{changed:fk,unchanged:hk},Good:{changed:mne,unchanged:gne},Average:{changed:vne,unchanged:yne},Bad:{changed:bne,unchanged:_ne}};function z6t(){const e=X(c3),{percentage:t,numerator:n,denominator:r,showFraction:i,status:o}=m.useMemo(()=>{if(!e)return{percentage:"-",numerator:"-",denominator:"-",showFraction:!1,status:"Unknown"};const{hits:a,lookups:s}=e,l=s===0?0:a/s*100,c=s===0?"Unknown":l<99.95?"Bad":l<99.999?"Average":"Good";return{percentage:l===100?"100":l.toFixed(20),numerator:a.toLocaleString(),denominator:s.toLocaleString(),showFraction:!!s,status:c}},[e]);return u.jsxs(V,{className:Te(fi.container),direction:"column",align:"start",gap:"1",children:[u.jsxs(q,{className:fi.label,children:[u.jsx(q,{children:"Hit Rate"})," ",u.jsx(q,{className:IP.trailing,children:"Trailing 1m"})," ",u.jsx(q,{style:{color:NP[o].unchanged},children:o})]}),u.jsxs(V,{gap:"2",align:"center",children:[u.jsxs(V,{align:"baseline",gap:"1",children:[u.jsx(EP,{value:t,changedColor:NP[o].changed,unchangedColor:NP[o].unchanged,className:Te(fi.value,fi.small)}),u.jsx(q,{className:fi.appendValue,children:"%"})]}),i&&u.jsxs(V,{direction:"column",className:IP.fraction,children:[u.jsx(EP,{value:n,changedColor:fk,unchangedColor:hk}),u.jsx("hr",{className:IP.fractionLine}),u.jsx(EP,{value:r,changedColor:fk,unchangedColor:hk})]})]})]})}function D6t(){const e=X(c3),{progress:t,numerator:n,denominator:r}=m.useMemo(()=>{if(!e)return{progress:0,numerator:{value:"-",unit:"B"},denominator:{value:"-",unit:"B"}};const{size_bytes:i,free_bytes:o}=e,a=i-o,s=Da(a,2),l=Da(i,2),c=i?rt.clamp(a/i*100,0,100):0,d=Sg.findIndex(f=>f.unit===s.unit);return Sg.findIndex(f=>f.unit===l.unit)===d+1?{numerator:Da(a,3,l.unit),denominator:l,progress:c}:{numerator:s,denominator:l,progress:c}},[e]);return u.jsxs(V,{direction:"column",className:TP.storageStatContainer,children:[u.jsxs(V,{className:fi.container,direction:"column",align:"start",children:[u.jsx(q,{className:fi.label,children:"Storage"}),u.jsxs(V,{align:"baseline",gap:"1",children:[u.jsx(q,{className:Te(fi.value,fi.small),style:{color:Yu},children:n.value}),n.unit!==r.unit&&u.jsx(q,{className:fi.appendValue,children:n.unit}),u.jsx(q,{className:Te(fi.value,fi.small),children:"/"}),u.jsx(q,{className:Te(fi.value,fi.small),children:r.value}),u.jsx(q,{className:fi.appendValue,children:r.unit})]})]}),u.jsx(a1,{value:t})]})}function A6t(){return u.jsx(so,{children:u.jsxs(V,{direction:"column",height:"100%",gap:"2",align:"start",children:[u.jsx(Sd,{text:"Program Cache"}),u.jsxs("div",{className:TP.statRow,children:[u.jsx(z6t,{}),u.jsx(D6t,{})]}),u.jsx("div",{className:TP.statRow,children:u.jsx(F6t,{})})]})})}function F6t(){const e=X(c3);return u.jsxs(u.Fragment,{children:[u.jsx($P,{label:"Insertions",numTimes:e==null?void 0:e.insertions,bytes:e==null?void 0:e.insertion_bytes}),u.jsx($P,{label:"Evictions",numTimes:e==null?void 0:e.evictions,bytes:e==null?void 0:e.eviction_bytes}),u.jsx($P,{label:"Spills",numTimes:e==null?void 0:e.spills,bytes:e==null?void 0:e.spill_bytes})]})}function $P({label:e,numTimes:t,bytes:n}){const{value:r,appendValue:i}=m.useMemo(()=>{const o=n!==void 0?Da(n):void 0;return{value:t!==void 0?t.toLocaleString():"-",appendValue:o?` (${o.value} ${o.unit})`:void 0}},[n,t]);return u.jsx(ya,{label:e,value:r,valueColor:kne,valueSize:"small",appendValue:i})}const B6t="_cards_hn4o1_1",U6t="_txns-card_hn4o1_5",W6t="_frankendancer_hn4o1_18",MP={cards:B6t,txnsCard:U6t,frankendancer:W6t};function V6t(){return u.jsxs(V,{direction:"column",gap:"4",flexGrow:"1",children:[u.jsx(S6t,{}),u.jsxs(Zr,{className:Te(MP.cards,{[MP.frankendancer]:_i}),gap:"4",children:[u.jsx(hkt,{}),u.jsx(akt,{}),u.jsx(ikt,{}),!_i&&u.jsx(A6t,{}),u.jsx(tkt,{className:MP.txnsCard})]}),u.jsx(gkt,{}),u.jsx(Bfe,{}),u.jsx(xkt,{}),u.jsx(qkt,{})]})}const H6t=up("/")({component:V6t}),Z6t=$pe.update({id:"/slotDetails",path:"/slotDetails",getParentRoute:()=>s1}),q6t=yx.update({id:"/leaderSchedule",path:"/leaderSchedule",getParentRoute:()=>s1}),G6t=F3t.update({id:"/gossip",path:"/gossip",getParentRoute:()=>s1}),Y6t=B3t.update({id:"/about",path:"/about",getParentRoute:()=>s1}),K6t=H6t.update({id:"/",path:"/",getParentRoute:()=>s1}),X6t={IndexRoute:K6t,AboutRoute:Y6t,GossipRoute:G6t,LeaderScheduleRoute:q6t,SlotDetailsRoute:Z6t},J6t=s1._addFileChildren(X6t)._addFileTypes(),Q6t=ca();function e5t(){const e=X(MG),t=Ee(Sme);m.useEffect(()=>{if(!e)return;const i=[...new Array(cC).fill(void 0),...e.flatMap(([o,a,s,l])=>[{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l},{total:o,vote:a,nonvote_success:s,nonvote_failed:l}])];t(i.slice(i.length-cC))},[t,e]);const n=()=>{if(!e)return;const i=Q6t.get(OT);i!==void 0&&t(o=>{o.push(i),o.length>cC&&o.shift()})},r=m.useRef(n);r.current=n,m.useEffect(()=>{let i;function o(){r.current(),i=setTimeout(o,100)}return o(),()=>clearTimeout(i)},[])}function t5t(){const e=S6();Qu(()=>{e({topic:"summary",key:"ping",id:1})},2e3)}XNe.discriminatedUnion("topic",[z$e,A$e,Z$e,X$e,sMe,cMe,pMe]);function n5t(e,t){return e.key===t}const r5t=400,i5t=100,o5t=130,a5t=100,s5t=100,l5t=25,u5t=300,c5t=1e3,d5t=`${window.location.protocol.startsWith("https")?"wss":"ws"}://${window.location.hostname}:${window.location.port}/websocket`,f5t=!0;function h5t(){const e=Ee(jL),t=p5t(),n=Ee(xG),r=Ee(wG),i=Ee(jG),o=Ee(IG),a=m.useCallback(d=>{n5t(d,"gossipHealth")&&o({value:d.value,history:d.history})},[o]),s=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"ingress":n({values:f,history:p});break;case"egress":r({values:f,history:p});break}},[n,r]),l=m.useCallback(({key:d,values:f,history:p})=>{switch(d){case"tileTimers":i({values:f,history:p});break}},[i]),c=m.useCallback(d=>{switch(d.type){case"connected":e(ac.Connected);break;case"connecting":e(ac.Connecting);break;case"disconnected":e(ac.Disconnected);break;case"kvb":for(const f of d.items)t(f);break;case"kv":t(d);break;case"ema":break;case"emaHistoryArray":for(const f of d.items)s(f);break;case"historyArray":for(const f of d.items)l(f);break;case"emaHistoryObject":for(const f of d.items)a(f);break}},[e,t,s,l,a]);Tqe(c)}function p5t(){const e=Ee(uG),t=Ee(qy),n=Ee(cG),r=Ee(dp),i=Ee(rg),o=Ee(fG),a=Ee(hG),s=Ee(s3),[l,c]=Vl(dG),[d,f]=m.useReducer(()=>{const it=l!==void 0?Kf.diff(jt.fromMillis(Math.floor(Number(l.startupTimeNanos)/1e6))):void 0,Yt=it!==void 0?it.as("minutes"):void 0;return Yt!==void 0&&Yt>5?1e3*60:1e3},1e3);Qu(f,1e3);const p=Ee(_G),v=Ua(it=>p(it),d),_=Ee(OT),y=Ua(it=>{_(it)},r5t),b=Ee(PT),w=Ua(it=>{b(it)},a5t),x=Ee(CG),S=Ua(it=>{x(it)},o5t),C=Ee(SG),j=Ua(it=>{C(it)},i5t),T=Ee(cre),E=Ee(kG),$=Ua(it=>{E(it),T(it==null?void 0:it.waterfall)},s5t),A=Ee(l3),M=Ua(it=>{A(it)},l5t),P=Ee(Hl),te=Ee(Zu),Z=Ee(JN),O=Ee(MG),J=Ee(zT),D=Ee(LG),Y=Ee(Sre),F=Ee(u3),H=Ee(aDe),ee=Ee(OG),[ce,U]=Vl(di),ae=Ee(rDe),je=Ee(TG),me=Ua(it=>{je(it)},u5t),ke=Ee(EG),he=Ua(it=>{ke(it)},c5t),ue=Ee(NG),re=Ee($G),ge=Ee(fDe),$e=Ee(pDe),pe=Ee(RG),ye=Ee(fp),Se=Ee(gG),Ce=Ee(SDe),Be=Ee(CDe),Ge=Ee(TDe),xt=Ee(IDe),St=Ee(EDe),ut=Ee(NDe),ct=m.useCallback(it=>{ae(it.publish.slot,it.publish.level),it.publish.skipped?Ce([it.publish.slot]):Be(it.publish.slot),it.publish.level==="rooted"&&(zze(it.publish)?Ge(it.publish.slot,it.publish.vote_latency):xt(it.publish.slot)),it.publish.mine&&(it.publish.skipped?F(Yt=>[...(Yt??[]).filter(nr=>nr!==it.publish.slot),it.publish.slot].sort()):F(Yt=>Yt!=null&&Yt.some(nr=>nr===it.publish.slot)?Yt==null?void 0:Yt.filter(nr=>nr!==it.publish.slot):Yt))},[Ge,Ce,xt,Be,F,ae]),bt=Ee(Gy),Qe=Ee(nZe),Ke=m.useCallback(it=>{bt(it),it!=null&&Qe([it])},[Qe,bt]),De=Ee(yG),Dt=Ee(oZe),pn=m.useCallback(it=>{De(it),it!=null&&Dt([it])},[Dt,De]),Yn=Ee(x7e),fr=Ee(vG),Kn=Ee(RT),wr=Ee(pG),Pn=Ee(mG),$r=Ee(bG),tr=Ee(__.addShredEvents),kr=Ee(c3),ni=m.useRef(new Map),uo=m.useRef(new Map),Ki=Ip(()=>{ge([...ni.current.values()]),$e([...uo.current.values()]),ni.current.clear(),uo.current.clear()},1e3,{maxWait:1e3}),No=m.useCallback(it=>{if(it.add)for(const Yt of it.add)ni.current.set(Yt.identity_pubkey,Yt),uo.current.delete(Yt.identity_pubkey);if(it.update)for(const Yt of it.update)ni.current.set(Yt.identity_pubkey,Yt);if(it.remove)for(const Yt of it.remove)ni.current.delete(Yt.identity_pubkey),uo.current.set(Yt.identity_pubkey,Yt);Ki()},[Ki]),Os=Ee(vDe),zn=m.useRef({toAdd:new Set,toRemove:new Set}),co=Ip(()=>{Os([...zn.current.toAdd],[...zn.current.toRemove]),zn.current.toAdd.clear(),zn.current.toRemove.clear()},1e3,{maxWait:1e3}),_a=m.useCallback((it,Yt)=>{if(it)for(const nr of Yt)zn.current.toAdd.add(nr),zn.current.toRemove.delete(nr);else for(const nr of Yt)zn.current.toAdd.delete(nr),zn.current.toRemove.add(nr);co()},[co]),yc=m.useCallback(it=>{const{topic:Yt,key:nr,value:ht}=it;switch(Yt){case"summary":switch(nr){case"version":{e(ht);break}case"cluster":{t(ht);break}case"commit_hash":{n(ht);break}case"identity_key":{r(ht);break}case"vote_balance":{a(ht);break}case"startup_time_nanos":{c({startupTimeNanos:ht});break}case"tiles":{i(ht);break}case"schedule_strategy":{s(ht);break}case"identity_balance":{o(ht);break}case"estimated_slot_duration_nanos":{v(ht);break}case"estimated_tps":{y(ht);break}case"live_tile_primary_metric":{j(ht);break}case"live_txn_waterfall":{$(ht);break}case"live_tile_timers":{M(ht);break}case"boot_progress":{P(ht);break}case"startup_progress":{te(ht);break}case"tps_history":{O(ht);break}case"vote_state":{J(ht);break}case"vote_distance":{D(ht);break}case"skip_rate":{Y(ht);break}case"completed_slot":{ye(ht);break}case"turbine_slot":{Ke(ht);break}case"repair_slot":{pn(ht);break}case"reset_slot":{Yn(ht);break}case"storage_slot":{fr(ht);break}case"vote_slot":{Kn(ht);break}case"root_slot":{wr(ht);break}case"optimistically_confirmed_slot":{Pn(ht);break}case"slot_caught_up":$r(ht);break;case"catch_up_history":{Qe(ht.turbine),Dt(ht.repair);break}case"server_time_nanos":{Se(ht);break}case"live_network_metrics":{w(ht);break}case"live_tile_metrics":S(ht);break;case"live_program_cache":kr(ht);break}break;case"epoch":switch(nr){case"new":U(ht);break}break;case"gossip":switch(nr){case"network_stats":{me(ht);break}case"peers_size_update":{he(ht);break}case"query_scroll":case"query_sort":{ue(ht);break}case"view_update":{re(ht);break}}break;case"peers":No(ht);break;case"slot":switch(nr){case"skipped_history":{F(ht.sort());break}case"skipped_history_cluster":{Ce(ht);break}case"update":case"query":case"query_detailed":case"query_transactions":{ht&&(H(ht),ct(ht));break}case"query_rankings":{ee(ht);break}case"live_shreds":{tr(ht);break}case"late_votes_history":{ut(ht);break}}break;case"block_engine":{switch(nr){case"update":{pe(ht);break}}break}case"wait_for_supermajority":{switch(nr){case"stakes":{Z(ht);break}case"peer_add":{_a(!0,ht);break}case"peer_remove":{_a(!1,ht);break}}break}}},[tr,pn,Dt,Ce,No,_a,Ke,Qe,ct,pe,P,t,n,ye,v,y,me,he,w,j,S,$,M,U,re,ue,o,r,ut,kr,Pn,Yn,wr,s,Se,Y,F,$r,ee,H,te,c,fr,Z,i,O,e,a,D,Kn,J]),bc=Ee(oDe),_c=Ee(sDe),qa=Ee(jDe),kl=Ee(Qze);Qu(()=>{bc(),_c(),ce&&F(it=>it==null?void 0:it.filter(Yt=>Yt>=ce.start_slot&&Yt<=ce.end_slot))},5e3),m.useEffect(()=>{ce&&(qa(ce.start_slot,ce.end_slot),kl(ce.epoch))},[qa,kl,ce]),m.useEffect(()=>{ce&&St({startSlot:ce.start_slot,endSlot:ce.end_slot})},[St,ce]);const pi=X(ol),Bn=X(jL)===ac.Disconnected,Mr=Ee(__.deleteSlots);m.useEffect(()=>{Bn&&Mr(Bn,pi)},[Mr,Bn,pi]);const $o=Ee(rZe),fo=Ee(aZe);m.useEffect(()=>{pi||($o(),fo())},[pi,fo,$o]),Qu(()=>{Mr(Bn,pi)},pi?1e3:_6/4);const Lr=Ee(bDe),ho=Ee(_De),xa=X(Gu);return m.useEffect(()=>{Bn&&(co.cancel(),zn.current.toAdd.clear(),zn.current.toRemove.clear(),ho())},[co,Bn,ho]),Qu(Lr,xa===wn.waiting_for_supermajority?1e3:null),yc}function m5t(){return h5t(),e5t(),t5t(),null}function g5t(e){return new e}function v5t(e){return new Worker("/assets/wsWorker-D3WzW2i7.js",{name:e==null?void 0:e.name})}function y5t(e){return(t,...n)=>{console[e](`(${jt.now().toISO({includeOffset:!1})??""}) [${t}]`,...n)}}const b5t=y5t("error");let yu=null;const Hme=new Cse().setMaxListeners(1e3);let Cx=[],Dm=null,Am=null;function Zme(){Dm=null,Am=null;const e=Cx;Cx=[];for(const t of e)try{Hme.emit(FM,t)}catch(n){b5t("useWsWorker","Error processing worker message:",t.type,n)}}function qme(){Dm!==null&&(cancelAnimationFrame(Dm),Dm=null),Am!==null&&(clearTimeout(Am),Am=null)}function Gme(){Dm!==null||Am!==null||Cx.length&&(document.visibilityState==="visible"?Dm=requestAnimationFrame(Zme):Am=window.setTimeout(Zme,0))}function _5t(){(Dm!==null||Am!==null)&&(qme(),Gme())}document.addEventListener("visibilitychange",_5t);function x5t(e){Cx.push(e.data),Gme()}function w5t(e,t){yu||e.trim()&&(yu=g5t(v5t),yu.onmessage=x5t,yu.postMessage({type:"connect",websocketUrl:e,compress:t}))}function k5t(){qme(),Cx=[],yu&&(yu.postMessage({type:"disconnect"}),yu.terminate(),yu=null)}function S5t({websocketUrl:e,compress:t}){return m.useEffect(()=>(w5t(e,t),()=>k5t()),[e,t]),{sendMessage:m.useCallback(n=>{yu==null||yu.postMessage({type:"send",value:n})},[]),emitter:Hme}}function C5t({children:e}){const{sendMessage:t,emitter:n}=S5t({websocketUrl:d5t,compress:f5t}),r=m.useMemo(()=>({...jse,sendMessage:t,emitter:n}),[t,n]);return u.jsxs(BM.Provider,{value:r,children:[u.jsx(m5t,{}),e]})}const j5t=R9e({routeTree:J6t});y7e(),Vi?(Kme=document.getElementById("favicon"))==null||Kme.setAttribute("href",toe):(Xme=document.getElementById("favicon"))==null||Xme.setAttribute("href",noe);function T5t(){const e=Ee(jg),t=m.useCallback(n=>{e(n),Object.entries(Sze).forEach(([r,i])=>{n.style.setProperty(`--${rt.kebabCase(r)}`,i)})},[e]);return i_(()=>{"fonts"in document&&new FontFace("NotoFlagsOnly","url(assets/NotoFlagsOnly.woff2)",{weight:"normal",style:"normal",display:"swap"}).load().then(n=>{document.fonts.add(n)}).catch(console.error)}),u.jsx(Mf,{id:"app",appearance:"dark",ref:t,scaling:"90%",children:u.jsx(C5t,{children:u.jsx(z9e,{router:j5t})})})}mj.createRoot(document.getElementById("root")).render(u.jsx(Oe.StrictMode,{children:u.jsx(T5t,{})})); diff --git a/src/disco/gui/dist_dev/assets/index-ColMY7Rf.css b/src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css similarity index 99% rename from src/disco/gui/dist_dev/assets/index-ColMY7Rf.css rename to src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css index 0ecc67734e3..02624b14be7 100644 --- a/src/disco/gui/dist_dev/assets/index-ColMY7Rf.css +++ b/src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css @@ -1 +1 @@ -@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2) format("woff2"),url(/assets/inter-tight-latin-400-normal-BLrFJfvD.woff) format("woff")}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-latin-400-normal-GekRknry.woff2) format("woff2"),url(/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff) format("woff")}:root,.light,.light-theme{--gray-1: #fcfcfc;--gray-2: #f9f9f9;--gray-3: #f0f0f0;--gray-4: #e8e8e8;--gray-5: #e0e0e0;--gray-6: #d9d9d9;--gray-7: #cecece;--gray-8: #bbbbbb;--gray-9: #8d8d8d;--gray-10: #838383;--gray-11: #646464;--gray-12: #202020;--gray-a1: #00000003;--gray-a2: #00000006;--gray-a3: #0000000f;--gray-a4: #00000017;--gray-a5: #0000001f;--gray-a6: #00000026;--gray-a7: #00000031;--gray-a8: #00000044;--gray-a9: #00000072;--gray-a10: #0000007c;--gray-a11: #0000009b;--gray-a12: #000000df;--mauve-1: #fdfcfd;--mauve-2: #faf9fb;--mauve-3: #f2eff3;--mauve-4: #eae7ec;--mauve-5: #e3dfe6;--mauve-6: #dbd8e0;--mauve-7: #d0cdd7;--mauve-8: #bcbac7;--mauve-9: #8e8c99;--mauve-10: #84828e;--mauve-11: #65636d;--mauve-12: #211f26;--mauve-a1: #55005503;--mauve-a2: #2b005506;--mauve-a3: #30004010;--mauve-a4: #20003618;--mauve-a5: #20003820;--mauve-a6: #14003527;--mauve-a7: #10003332;--mauve-a8: #08003145;--mauve-a9: #05001d73;--mauve-a10: #0500197d;--mauve-a11: #0400119c;--mauve-a12: #020008e0;--slate-1: #fcfcfd;--slate-2: #f9f9fb;--slate-3: #f0f0f3;--slate-4: #e8e8ec;--slate-5: #e0e1e6;--slate-6: #d9d9e0;--slate-7: #cdced6;--slate-8: #b9bbc6;--slate-9: #8b8d98;--slate-10: #80838d;--slate-11: #60646c;--slate-12: #1c2024;--slate-a1: #00005503;--slate-a2: #00005506;--slate-a3: #0000330f;--slate-a4: #00002d17;--slate-a5: #0009321f;--slate-a6: #00002f26;--slate-a7: #00062e32;--slate-a8: #00083046;--slate-a9: #00051d74;--slate-a10: #00071b7f;--slate-a11: #0007149f;--slate-a12: #000509e3;--sage-1: #fbfdfc;--sage-2: #f7f9f8;--sage-3: #eef1f0;--sage-4: #e6e9e8;--sage-5: #dfe2e0;--sage-6: #d7dad9;--sage-7: #cbcfcd;--sage-8: #b8bcba;--sage-9: #868e8b;--sage-10: #7c8481;--sage-11: #5f6563;--sage-12: #1a211e;--sage-a1: #00804004;--sage-a2: #00402008;--sage-a3: #002d1e11;--sage-a4: #001f1519;--sage-a5: #00180820;--sage-a6: #00140d28;--sage-a7: #00140a34;--sage-a8: #000f0847;--sage-a9: #00110b79;--sage-a10: #00100a83;--sage-a11: #000a07a0;--sage-a12: #000805e5;--olive-1: #fcfdfc;--olive-2: #f8faf8;--olive-3: #eff1ef;--olive-4: #e7e9e7;--olive-5: #dfe2df;--olive-6: #d7dad7;--olive-7: #cccfcc;--olive-8: #b9bcb8;--olive-9: #898e87;--olive-10: #7f847d;--olive-11: #60655f;--olive-12: #1d211c;--olive-a1: #00550003;--olive-a2: #00490007;--olive-a3: #00200010;--olive-a4: #00160018;--olive-a5: #00180020;--olive-a6: #00140028;--olive-a7: #000f0033;--olive-a8: #040f0047;--olive-a9: #050f0078;--olive-a10: #040e0082;--olive-a11: #020a00a0;--olive-a12: #010600e3;--sand-1: #fdfdfc;--sand-2: #f9f9f8;--sand-3: #f1f0ef;--sand-4: #e9e8e6;--sand-5: #e2e1de;--sand-6: #dad9d6;--sand-7: #cfceca;--sand-8: #bcbbb5;--sand-9: #8d8d86;--sand-10: #82827c;--sand-11: #63635e;--sand-12: #21201c;--sand-a1: #55550003;--sand-a2: #25250007;--sand-a3: #20100010;--sand-a4: #1f150019;--sand-a5: #1f180021;--sand-a6: #19130029;--sand-a7: #19140035;--sand-a8: #1915014a;--sand-a9: #0f0f0079;--sand-a10: #0c0c0083;--sand-a11: #080800a1;--sand-a12: #060500e3;--amber-1: #fefdfb;--amber-2: #fefbe9;--amber-3: #fff7c2;--amber-4: #ffee9c;--amber-5: #fbe577;--amber-6: #f3d673;--amber-7: #e9c162;--amber-8: #e2a336;--amber-9: #ffc53d;--amber-10: #ffba18;--amber-11: #ab6400;--amber-12: #4f3422;--amber-a1: #c0800004;--amber-a2: #f4d10016;--amber-a3: #ffde003d;--amber-a4: #ffd40063;--amber-a5: #f8cf0088;--amber-a6: #eab5008c;--amber-a7: #dc9b009d;--amber-a8: #da8a00c9;--amber-a9: #ffb300c2;--amber-a10: #ffb300e7;--amber-a11: #ab6400;--amber-a12: #341500dd;--blue-1: #fbfdff;--blue-2: #f4faff;--blue-3: #e6f4fe;--blue-4: #d5efff;--blue-5: #c2e5ff;--blue-6: #acd8fc;--blue-7: #8ec8f6;--blue-8: #5eb1ef;--blue-9: #0090ff;--blue-10: #0588f0;--blue-11: #0d74ce;--blue-12: #113264;--blue-a1: #0080ff04;--blue-a2: #008cff0b;--blue-a3: #008ff519;--blue-a4: #009eff2a;--blue-a5: #0093ff3d;--blue-a6: #0088f653;--blue-a7: #0083eb71;--blue-a8: #0084e6a1;--blue-a9: #0090ff;--blue-a10: #0086f0fa;--blue-a11: #006dcbf2;--blue-a12: #002359ee;--bronze-1: #fdfcfc;--bronze-2: #fdf7f5;--bronze-3: #f6edea;--bronze-4: #efe4df;--bronze-5: #e7d9d3;--bronze-6: #dfcdc5;--bronze-7: #d3bcb3;--bronze-8: #c2a499;--bronze-9: #a18072;--bronze-10: #957468;--bronze-11: #7d5e54;--bronze-12: #43302b;--bronze-a1: #55000003;--bronze-a2: #cc33000a;--bronze-a3: #92250015;--bronze-a4: #80280020;--bronze-a5: #7423002c;--bronze-a6: #7324003a;--bronze-a7: #6c1f004c;--bronze-a8: #671c0066;--bronze-a9: #551a008d;--bronze-a10: #4c150097;--bronze-a11: #3d0f00ab;--bronze-a12: #1d0600d4;--brown-1: #fefdfc;--brown-2: #fcf9f6;--brown-3: #f6eee7;--brown-4: #f0e4d9;--brown-5: #ebdaca;--brown-6: #e4cdb7;--brown-7: #dcbc9f;--brown-8: #cea37e;--brown-9: #ad7f58;--brown-10: #a07553;--brown-11: #815e46;--brown-12: #3e332e;--brown-a1: #aa550003;--brown-a2: #aa550009;--brown-a3: #a04b0018;--brown-a4: #9b4a0026;--brown-a5: #9f4d0035;--brown-a6: #a04e0048;--brown-a7: #a34e0060;--brown-a8: #9f4a0081;--brown-a9: #823c00a7;--brown-a10: #723300ac;--brown-a11: #522100b9;--brown-a12: #140600d1;--crimson-1: #fffcfd;--crimson-2: #fef7f9;--crimson-3: #ffe9f0;--crimson-4: #fedce7;--crimson-5: #facedd;--crimson-6: #f3bed1;--crimson-7: #eaacc3;--crimson-8: #e093b2;--crimson-9: #e93d82;--crimson-10: #df3478;--crimson-11: #cb1d63;--crimson-12: #621639;--crimson-a1: #ff005503;--crimson-a2: #e0004008;--crimson-a3: #ff005216;--crimson-a4: #f8005123;--crimson-a5: #e5004f31;--crimson-a6: #d0004b41;--crimson-a7: #bf004753;--crimson-a8: #b6004a6c;--crimson-a9: #e2005bc2;--crimson-a10: #d70056cb;--crimson-a11: #c4004fe2;--crimson-a12: #530026e9;--cyan-1: #fafdfe;--cyan-2: #f2fafb;--cyan-3: #def7f9;--cyan-4: #caf1f6;--cyan-5: #b5e9f0;--cyan-6: #9ddde7;--cyan-7: #7dcedc;--cyan-8: #3db9cf;--cyan-9: #00a2c7;--cyan-10: #0797b9;--cyan-11: #107d98;--cyan-12: #0d3c48;--cyan-a1: #0099cc05;--cyan-a2: #009db10d;--cyan-a3: #00c2d121;--cyan-a4: #00bcd435;--cyan-a5: #01b4cc4a;--cyan-a6: #00a7c162;--cyan-a7: #009fbb82;--cyan-a8: #00a3c0c2;--cyan-a9: #00a2c7;--cyan-a10: #0094b7f8;--cyan-a11: #007491ef;--cyan-a12: #00323ef2;--gold-1: #fdfdfc;--gold-2: #faf9f2;--gold-3: #f2f0e7;--gold-4: #eae6db;--gold-5: #e1dccf;--gold-6: #d8d0bf;--gold-7: #cbc0aa;--gold-8: #b9a88d;--gold-9: #978365;--gold-10: #8c7a5e;--gold-11: #71624b;--gold-12: #3b352b;--gold-a1: #55550003;--gold-a2: #9d8a000d;--gold-a3: #75600018;--gold-a4: #6b4e0024;--gold-a5: #60460030;--gold-a6: #64440040;--gold-a7: #63420055;--gold-a8: #633d0072;--gold-a9: #5332009a;--gold-a10: #492d00a1;--gold-a11: #362100b4;--gold-a12: #130c00d4;--grass-1: #fbfefb;--grass-2: #f5fbf5;--grass-3: #e9f6e9;--grass-4: #daf1db;--grass-5: #c9e8ca;--grass-6: #b2ddb5;--grass-7: #94ce9a;--grass-8: #65ba74;--grass-9: #46a758;--grass-10: #3e9b4f;--grass-11: #2a7e3b;--grass-12: #203c25;--grass-a1: #00c00004;--grass-a2: #0099000a;--grass-a3: #00970016;--grass-a4: #009f0725;--grass-a5: #00930536;--grass-a6: #008f0a4d;--grass-a7: #018b0f6b;--grass-a8: #008d199a;--grass-a9: #008619b9;--grass-a10: #007b17c1;--grass-a11: #006514d5;--grass-a12: #002006df;--green-1: #fbfefc;--green-2: #f4fbf6;--green-3: #e6f6eb;--green-4: #d6f1df;--green-5: #c4e8d1;--green-6: #adddc0;--green-7: #8eceaa;--green-8: #5bb98b;--green-9: #30a46c;--green-10: #2b9a66;--green-11: #218358;--green-12: #193b2d;--green-a1: #00c04004;--green-a2: #00a32f0b;--green-a3: #00a43319;--green-a4: #00a83829;--green-a5: #019c393b;--green-a6: #00963c52;--green-a7: #00914071;--green-a8: #00924ba4;--green-a9: #008f4acf;--green-a10: #008647d4;--green-a11: #00713fde;--green-a12: #002616e6;--indigo-1: #fdfdfe;--indigo-2: #f7f9ff;--indigo-3: #edf2fe;--indigo-4: #e1e9ff;--indigo-5: #d2deff;--indigo-6: #c1d0ff;--indigo-7: #abbdf9;--indigo-8: #8da4ef;--indigo-9: #3e63dd;--indigo-10: #3358d4;--indigo-11: #3a5bc7;--indigo-12: #1f2d5c;--indigo-a1: #00008002;--indigo-a2: #0040ff08;--indigo-a3: #0047f112;--indigo-a4: #0044ff1e;--indigo-a5: #0044ff2d;--indigo-a6: #003eff3e;--indigo-a7: #0037ed54;--indigo-a8: #0034dc72;--indigo-a9: #0031d2c1;--indigo-a10: #002ec9cc;--indigo-a11: #002bb7c5;--indigo-a12: #001046e0;--iris-1: #fdfdff;--iris-2: #f8f8ff;--iris-3: #f0f1fe;--iris-4: #e6e7ff;--iris-5: #dadcff;--iris-6: #cbcdff;--iris-7: #b8baf8;--iris-8: #9b9ef0;--iris-9: #5b5bd6;--iris-10: #5151cd;--iris-11: #5753c6;--iris-12: #272962;--iris-a1: #0000ff02;--iris-a2: #0000ff07;--iris-a3: #0011ee0f;--iris-a4: #000bff19;--iris-a5: #000eff25;--iris-a6: #000aff34;--iris-a7: #0008e647;--iris-a8: #0008d964;--iris-a9: #0000c0a4;--iris-a10: #0000b6ae;--iris-a11: #0600abac;--iris-a12: #000246d8;--jade-1: #fbfefd;--jade-2: #f4fbf7;--jade-3: #e6f7ed;--jade-4: #d6f1e3;--jade-5: #c3e9d7;--jade-6: #acdec8;--jade-7: #8bceb6;--jade-8: #56ba9f;--jade-9: #29a383;--jade-10: #26997b;--jade-11: #208368;--jade-12: #1d3b31;--jade-a1: #00c08004;--jade-a2: #00a3460b;--jade-a3: #00ae4819;--jade-a4: #00a85129;--jade-a5: #00a2553c;--jade-a6: #009a5753;--jade-a7: #00945f74;--jade-a8: #00976ea9;--jade-a9: #00916bd6;--jade-a10: #008764d9;--jade-a11: #007152df;--jade-a12: #002217e2;--lime-1: #fcfdfa;--lime-2: #f8faf3;--lime-3: #eef6d6;--lime-4: #e2f0bd;--lime-5: #d3e7a6;--lime-6: #c2da91;--lime-7: #abc978;--lime-8: #8db654;--lime-9: #bdee63;--lime-10: #b0e64c;--lime-11: #5c7c2f;--lime-12: #37401c;--lime-a1: #66990005;--lime-a2: #6b95000c;--lime-a3: #96c80029;--lime-a4: #8fc60042;--lime-a5: #81bb0059;--lime-a6: #72aa006e;--lime-a7: #61990087;--lime-a8: #559200ab;--lime-a9: #93e4009c;--lime-a10: #8fdc00b3;--lime-a11: #375f00d0;--lime-a12: #1e2900e3;--mint-1: #f9fefd;--mint-2: #f2fbf9;--mint-3: #ddf9f2;--mint-4: #c8f4e9;--mint-5: #b3ecde;--mint-6: #9ce0d0;--mint-7: #7ecfbd;--mint-8: #4cbba5;--mint-9: #86ead4;--mint-10: #7de0cb;--mint-11: #027864;--mint-12: #16433c;--mint-a1: #00d5aa06;--mint-a2: #00b18a0d;--mint-a3: #00d29e22;--mint-a4: #00cc9937;--mint-a5: #00c0914c;--mint-a6: #00b08663;--mint-a7: #00a17d81;--mint-a8: #009e7fb3;--mint-a9: #00d3a579;--mint-a10: #00c39982;--mint-a11: #007763fd;--mint-a12: #00312ae9;--orange-1: #fefcfb;--orange-2: #fff7ed;--orange-3: #ffefd6;--orange-4: #ffdfb5;--orange-5: #ffd19a;--orange-6: #ffc182;--orange-7: #f5ae73;--orange-8: #ec9455;--orange-9: #f76b15;--orange-10: #ef5f00;--orange-11: #cc4e00;--orange-12: #582d1d;--orange-a1: #c0400004;--orange-a2: #ff8e0012;--orange-a3: #ff9c0029;--orange-a4: #ff91014a;--orange-a5: #ff8b0065;--orange-a6: #ff81007d;--orange-a7: #ed6c008c;--orange-a8: #e35f00aa;--orange-a9: #f65e00ea;--orange-a10: #ef5f00;--orange-a11: #cc4e00;--orange-a12: #431200e2;--pink-1: #fffcfe;--pink-2: #fef7fb;--pink-3: #fee9f5;--pink-4: #fbdcef;--pink-5: #f6cee7;--pink-6: #efbfdd;--pink-7: #e7acd0;--pink-8: #dd93c2;--pink-9: #d6409f;--pink-10: #cf3897;--pink-11: #c2298a;--pink-12: #651249;--pink-a1: #ff00aa03;--pink-a2: #e0008008;--pink-a3: #f4008c16;--pink-a4: #e2008b23;--pink-a5: #d1008331;--pink-a6: #c0007840;--pink-a7: #b6006f53;--pink-a8: #af006f6c;--pink-a9: #c8007fbf;--pink-a10: #c2007ac7;--pink-a11: #b60074d6;--pink-a12: #59003bed;--plum-1: #fefcff;--plum-2: #fdf7fd;--plum-3: #fbebfb;--plum-4: #f7def8;--plum-5: #f2d1f3;--plum-6: #e9c2ec;--plum-7: #deade3;--plum-8: #cf91d8;--plum-9: #ab4aba;--plum-10: #a144af;--plum-11: #953ea3;--plum-12: #53195d;--plum-a1: #aa00ff03;--plum-a2: #c000c008;--plum-a3: #cc00cc14;--plum-a4: #c200c921;--plum-a5: #b700bd2e;--plum-a6: #a400b03d;--plum-a7: #9900a852;--plum-a8: #9000a56e;--plum-a9: #89009eb5;--plum-a10: #7f0092bb;--plum-a11: #730086c1;--plum-a12: #40004be6;--purple-1: #fefcfe;--purple-2: #fbf7fe;--purple-3: #f7edfe;--purple-4: #f2e2fc;--purple-5: #ead5f9;--purple-6: #e0c4f4;--purple-7: #d1afec;--purple-8: #be93e4;--purple-9: #8e4ec6;--purple-10: #8347b9;--purple-11: #8145b5;--purple-12: #402060;--purple-a1: #aa00aa03;--purple-a2: #8000e008;--purple-a3: #8e00f112;--purple-a4: #8d00e51d;--purple-a5: #8000db2a;--purple-a6: #7a01d03b;--purple-a7: #6d00c350;--purple-a8: #6600c06c;--purple-a9: #5c00adb1;--purple-a10: #53009eb8;--purple-a11: #52009aba;--purple-a12: #250049df;--red-1: #fffcfc;--red-2: #fff7f7;--red-3: #feebec;--red-4: #ffdbdc;--red-5: #ffcdce;--red-6: #fdbdbe;--red-7: #f4a9aa;--red-8: #eb8e90;--red-9: #e5484d;--red-10: #dc3e42;--red-11: #ce2c31;--red-12: #641723;--red-a1: #ff000003;--red-a2: #ff000008;--red-a3: #f3000d14;--red-a4: #ff000824;--red-a5: #ff000632;--red-a6: #f8000442;--red-a7: #df000356;--red-a8: #d2000571;--red-a9: #db0007b7;--red-a10: #d10005c1;--red-a11: #c40006d3;--red-a12: #55000de8;--ruby-1: #fffcfd;--ruby-2: #fff7f8;--ruby-3: #feeaed;--ruby-4: #ffdce1;--ruby-5: #ffced6;--ruby-6: #f8bfc8;--ruby-7: #efacb8;--ruby-8: #e592a3;--ruby-9: #e54666;--ruby-10: #dc3b5d;--ruby-11: #ca244d;--ruby-12: #64172b;--ruby-a1: #ff005503;--ruby-a2: #ff002008;--ruby-a3: #f3002515;--ruby-a4: #ff002523;--ruby-a5: #ff002a31;--ruby-a6: #e4002440;--ruby-a7: #ce002553;--ruby-a8: #c300286d;--ruby-a9: #db002cb9;--ruby-a10: #d2002cc4;--ruby-a11: #c10030db;--ruby-a12: #550016e8;--sky-1: #f9feff;--sky-2: #f1fafd;--sky-3: #e1f6fd;--sky-4: #d1f0fa;--sky-5: #bee7f5;--sky-6: #a9daed;--sky-7: #8dcae3;--sky-8: #60b3d7;--sky-9: #7ce2fe;--sky-10: #74daf8;--sky-11: #00749e;--sky-12: #1d3e56;--sky-a1: #00d5ff06;--sky-a2: #00a4db0e;--sky-a3: #00b3ee1e;--sky-a4: #00ace42e;--sky-a5: #00a1d841;--sky-a6: #0092ca56;--sky-a7: #0089c172;--sky-a8: #0085bf9f;--sky-a9: #00c7fe83;--sky-a10: #00bcf38b;--sky-a11: #00749e;--sky-a12: #002540e2;--teal-1: #fafefd;--teal-2: #f3fbf9;--teal-3: #e0f8f3;--teal-4: #ccf3ea;--teal-5: #b8eae0;--teal-6: #a1ded2;--teal-7: #83cdc1;--teal-8: #53b9ab;--teal-9: #12a594;--teal-10: #0d9b8a;--teal-11: #008573;--teal-12: #0d3d38;--teal-a1: #00cc9905;--teal-a2: #00aa800c;--teal-a3: #00c69d1f;--teal-a4: #00c39633;--teal-a5: #00b49047;--teal-a6: #00a6855e;--teal-a7: #0099807c;--teal-a8: #009783ac;--teal-a9: #009e8ced;--teal-a10: #009684f2;--teal-a11: #008573;--teal-a12: #00332df2;--tomato-1: #fffcfc;--tomato-2: #fff8f7;--tomato-3: #feebe7;--tomato-4: #ffdcd3;--tomato-5: #ffcdc2;--tomato-6: #fdbdaf;--tomato-7: #f5a898;--tomato-8: #ec8e7b;--tomato-9: #e54d2e;--tomato-10: #dd4425;--tomato-11: #d13415;--tomato-12: #5c271f;--tomato-a1: #ff000003;--tomato-a2: #ff200008;--tomato-a3: #f52b0018;--tomato-a4: #ff35002c;--tomato-a5: #ff2e003d;--tomato-a6: #f92d0050;--tomato-a7: #e7280067;--tomato-a8: #db250084;--tomato-a9: #df2600d1;--tomato-a10: #d72400da;--tomato-a11: #cd2200ea;--tomato-a12: #460900e0;--violet-1: #fdfcfe;--violet-2: #faf8ff;--violet-3: #f4f0fe;--violet-4: #ebe4ff;--violet-5: #e1d9ff;--violet-6: #d4cafe;--violet-7: #c2b5f5;--violet-8: #aa99ec;--violet-9: #6e56cf;--violet-10: #654dc4;--violet-11: #6550b9;--violet-12: #2f265f;--violet-a1: #5500aa03;--violet-a2: #4900ff07;--violet-a3: #4400ee0f;--violet-a4: #4300ff1b;--violet-a5: #3600ff26;--violet-a6: #3100fb35;--violet-a7: #2d01dd4a;--violet-a8: #2b00d066;--violet-a9: #2400b7a9;--violet-a10: #2300abb2;--violet-a11: #1f0099af;--violet-a12: #0b0043d9;--yellow-1: #fdfdf9;--yellow-2: #fefce9;--yellow-3: #fffab8;--yellow-4: #fff394;--yellow-5: #ffe770;--yellow-6: #f3d768;--yellow-7: #e4c767;--yellow-8: #d5ae39;--yellow-9: #ffe629;--yellow-10: #ffdc00;--yellow-11: #9e6c00;--yellow-12: #473b1f;--yellow-a1: #aaaa0006;--yellow-a2: #f4dd0016;--yellow-a3: #ffee0047;--yellow-a4: #ffe3016b;--yellow-a5: #ffd5008f;--yellow-a6: #ebbc0097;--yellow-a7: #d2a10098;--yellow-a8: #c99700c6;--yellow-a9: #ffe100d6;--yellow-a10: #ffdc00;--yellow-a11: #9e6c00;--yellow-a12: #2e2000e0;--gray-surface: #ffffffcc;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #ffffffcc;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #ffffffcc;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #ffffffcc;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #ffffffcc;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #ffffffcc;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #fefae4cc;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #f1f9ffcc;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #fdf5f3cc;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #fbf8f4cc;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #fef5f8cc;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #eff9facc;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #f9f8efcc;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #f3faf3cc;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #f1faf4cc;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #f5f8ffcc;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #f6f6ffcc;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #f1faf5cc;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #f6f9f0cc;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #effaf8cc;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #fff5e9cc;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #fef5facc;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #fdf5fdcc;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #faf5fecc;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #fff5f5cc;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #fff5f6cc;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #eef9fdcc;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #f0faf8cc;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #fff6f5cc;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #f9f6ffcc;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #fefbe4cc;--yellow-indicator: var(--yellow-10);--yellow-track: var(--yellow-10)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root,.light,.light-theme{--gray-1: color(display-p3 .988 .988 .988);--gray-2: color(display-p3 .975 .975 .975);--gray-3: color(display-p3 .939 .939 .939);--gray-4: color(display-p3 .908 .908 .908);--gray-5: color(display-p3 .88 .88 .88);--gray-6: color(display-p3 .849 .849 .849);--gray-7: color(display-p3 .807 .807 .807);--gray-8: color(display-p3 .732 .732 .732);--gray-9: color(display-p3 .553 .553 .553);--gray-10: color(display-p3 .512 .512 .512);--gray-11: color(display-p3 .392 .392 .392);--gray-12: color(display-p3 .125 .125 .125);--gray-a1: color(display-p3 0 0 0 / .012);--gray-a2: color(display-p3 0 0 0 / .024);--gray-a3: color(display-p3 0 0 0 / .063);--gray-a4: color(display-p3 0 0 0 / .09);--gray-a5: color(display-p3 0 0 0 / .122);--gray-a6: color(display-p3 0 0 0 / .153);--gray-a7: color(display-p3 0 0 0 / .192);--gray-a8: color(display-p3 0 0 0 / .267);--gray-a9: color(display-p3 0 0 0 / .447);--gray-a10: color(display-p3 0 0 0 / .486);--gray-a11: color(display-p3 0 0 0 / .608);--gray-a12: color(display-p3 0 0 0 / .875);--mauve-1: color(display-p3 .991 .988 .992);--mauve-2: color(display-p3 .98 .976 .984);--mauve-3: color(display-p3 .946 .938 .952);--mauve-4: color(display-p3 .915 .906 .925);--mauve-5: color(display-p3 .886 .876 .901);--mauve-6: color(display-p3 .856 .846 .875);--mauve-7: color(display-p3 .814 .804 .84);--mauve-8: color(display-p3 .735 .728 .777);--mauve-9: color(display-p3 .555 .549 .596);--mauve-10: color(display-p3 .514 .508 .552);--mauve-11: color(display-p3 .395 .388 .424);--mauve-12: color(display-p3 .128 .122 .147);--mauve-a1: color(display-p3 .349 .024 .349 / .012);--mauve-a2: color(display-p3 .184 .024 .349 / .024);--mauve-a3: color(display-p3 .129 .008 .255 / .063);--mauve-a4: color(display-p3 .094 .012 .216 / .095);--mauve-a5: color(display-p3 .098 .008 .224 / .126);--mauve-a6: color(display-p3 .055 .004 .18 / .153);--mauve-a7: color(display-p3 .067 .008 .184 / .197);--mauve-a8: color(display-p3 .02 .004 .176 / .271);--mauve-a9: color(display-p3 .02 .004 .106 / .451);--mauve-a10: color(display-p3 .012 .004 .09 / .491);--mauve-a11: color(display-p3 .016 0 .059 / .612);--mauve-a12: color(display-p3 .008 0 .027 / .879);--slate-1: color(display-p3 .988 .988 .992);--slate-2: color(display-p3 .976 .976 .984);--slate-3: color(display-p3 .94 .941 .953);--slate-4: color(display-p3 .908 .909 .925);--slate-5: color(display-p3 .88 .881 .901);--slate-6: color(display-p3 .85 .852 .876);--slate-7: color(display-p3 .805 .808 .838);--slate-8: color(display-p3 .727 .733 .773);--slate-9: color(display-p3 .547 .553 .592);--slate-10: color(display-p3 .503 .512 .549);--slate-11: color(display-p3 .379 .392 .421);--slate-12: color(display-p3 .113 .125 .14);--slate-a1: color(display-p3 .024 .024 .349 / .012);--slate-a2: color(display-p3 .024 .024 .349 / .024);--slate-a3: color(display-p3 .004 .004 .204 / .059);--slate-a4: color(display-p3 .012 .012 .184 / .091);--slate-a5: color(display-p3 .004 .039 .2 / .122);--slate-a6: color(display-p3 .008 .008 .165 / .15);--slate-a7: color(display-p3 .008 .027 .184 / .197);--slate-a8: color(display-p3 .004 .031 .176 / .275);--slate-a9: color(display-p3 .004 .02 .106 / .455);--slate-a10: color(display-p3 .004 .027 .098 / .499);--slate-a11: color(display-p3 0 .02 .063 / .62);--slate-a12: color(display-p3 0 .012 .031 / .887);--sage-1: color(display-p3 .986 .992 .988);--sage-2: color(display-p3 .97 .977 .974);--sage-3: color(display-p3 .935 .944 .94);--sage-4: color(display-p3 .904 .913 .909);--sage-5: color(display-p3 .875 .885 .88);--sage-6: color(display-p3 .844 .854 .849);--sage-7: color(display-p3 .8 .811 .806);--sage-8: color(display-p3 .725 .738 .732);--sage-9: color(display-p3 .531 .556 .546);--sage-10: color(display-p3 .492 .515 .506);--sage-11: color(display-p3 .377 .395 .389);--sage-12: color(display-p3 .107 .129 .118);--sage-a1: color(display-p3 .024 .514 .267 / .016);--sage-a2: color(display-p3 .02 .267 .145 / .032);--sage-a3: color(display-p3 .008 .184 .125 / .067);--sage-a4: color(display-p3 .012 .094 .051 / .095);--sage-a5: color(display-p3 .008 .098 .035 / .126);--sage-a6: color(display-p3 .004 .078 .027 / .157);--sage-a7: color(display-p3 0 .059 .039 / .2);--sage-a8: color(display-p3 .004 .047 .031 / .275);--sage-a9: color(display-p3 .004 .059 .035 / .471);--sage-a10: color(display-p3 0 .047 .031 / .51);--sage-a11: color(display-p3 0 .031 .02 / .624);--sage-a12: color(display-p3 0 .027 .012 / .895);--olive-1: color(display-p3 .989 .992 .989);--olive-2: color(display-p3 .974 .98 .973);--olive-3: color(display-p3 .939 .945 .937);--olive-4: color(display-p3 .907 .914 .905);--olive-5: color(display-p3 .878 .885 .875);--olive-6: color(display-p3 .846 .855 .843);--olive-7: color(display-p3 .803 .812 .8);--olive-8: color(display-p3 .727 .738 .723);--olive-9: color(display-p3 .541 .556 .532);--olive-10: color(display-p3 .5 .515 .491);--olive-11: color(display-p3 .38 .395 .374);--olive-12: color(display-p3 .117 .129 .111);--olive-a1: color(display-p3 .024 .349 .024 / .012);--olive-a2: color(display-p3 .024 .302 .024 / .028);--olive-a3: color(display-p3 .008 .129 .008 / .063);--olive-a4: color(display-p3 .012 .094 .012 / .095);--olive-a5: color(display-p3 .035 .098 .008 / .126);--olive-a6: color(display-p3 .027 .078 .004 / .157);--olive-a7: color(display-p3 .02 .059 0 / .2);--olive-a8: color(display-p3 .02 .059 .004 / .279);--olive-a9: color(display-p3 .02 .051 .004 / .467);--olive-a10: color(display-p3 .024 .047 0 / .51);--olive-a11: color(display-p3 .012 .039 0 / .628);--olive-a12: color(display-p3 .008 .024 0 / .891);--sand-1: color(display-p3 .992 .992 .989);--sand-2: color(display-p3 .977 .977 .973);--sand-3: color(display-p3 .943 .942 .936);--sand-4: color(display-p3 .913 .912 .903);--sand-5: color(display-p3 .885 .883 .873);--sand-6: color(display-p3 .854 .852 .839);--sand-7: color(display-p3 .813 .81 .794);--sand-8: color(display-p3 .738 .734 .713);--sand-9: color(display-p3 .553 .553 .528);--sand-10: color(display-p3 .511 .511 .488);--sand-11: color(display-p3 .388 .388 .37);--sand-12: color(display-p3 .129 .126 .111);--sand-a1: color(display-p3 .349 .349 .024 / .012);--sand-a2: color(display-p3 .161 .161 .024 / .028);--sand-a3: color(display-p3 .067 .067 .008 / .063);--sand-a4: color(display-p3 .129 .129 .012 / .099);--sand-a5: color(display-p3 .098 .067 .008 / .126);--sand-a6: color(display-p3 .102 .075 .004 / .161);--sand-a7: color(display-p3 .098 .098 .004 / .208);--sand-a8: color(display-p3 .086 .075 .004 / .287);--sand-a9: color(display-p3 .051 .051 .004 / .471);--sand-a10: color(display-p3 .047 .047 0 / .514);--sand-a11: color(display-p3 .031 .031 0 / .632);--sand-a12: color(display-p3 .024 .02 0 / .891);--amber-1: color(display-p3 .995 .992 .985);--amber-2: color(display-p3 .994 .986 .921);--amber-3: color(display-p3 .994 .969 .782);--amber-4: color(display-p3 .989 .937 .65);--amber-5: color(display-p3 .97 .902 .527);--amber-6: color(display-p3 .936 .844 .506);--amber-7: color(display-p3 .89 .762 .443);--amber-8: color(display-p3 .85 .65 .3);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 .959 .741 .274);--amber-11: color(display-p3 .64 .4 0);--amber-12: color(display-p3 .294 .208 .145);--amber-a1: color(display-p3 .757 .514 .024 / .016);--amber-a2: color(display-p3 .902 .804 .008 / .079);--amber-a3: color(display-p3 .965 .859 .004 / .22);--amber-a4: color(display-p3 .969 .82 .004 / .35);--amber-a5: color(display-p3 .933 .796 .004 / .475);--amber-a6: color(display-p3 .875 .682 .004 / .495);--amber-a7: color(display-p3 .804 .573 0 / .557);--amber-a8: color(display-p3 .788 .502 0 / .699);--amber-a9: color(display-p3 1 .686 0 / .742);--amber-a10: color(display-p3 .945 .643 0 / .726);--amber-a11: color(display-p3 .64 .4 0);--amber-a12: color(display-p3 .294 .208 .145);--blue-1: color(display-p3 .986 .992 .999);--blue-2: color(display-p3 .96 .979 .998);--blue-3: color(display-p3 .912 .956 .991);--blue-4: color(display-p3 .853 .932 1);--blue-5: color(display-p3 .788 .894 .998);--blue-6: color(display-p3 .709 .843 .976);--blue-7: color(display-p3 .606 .777 .947);--blue-8: color(display-p3 .451 .688 .917);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .234 .523 .912);--blue-11: color(display-p3 .15 .44 .84);--blue-12: color(display-p3 .102 .193 .379);--blue-a1: color(display-p3 .024 .514 1 / .016);--blue-a2: color(display-p3 .024 .514 .906 / .04);--blue-a3: color(display-p3 .012 .506 .914 / .087);--blue-a4: color(display-p3 .008 .545 1 / .146);--blue-a5: color(display-p3 .004 .502 .984 / .212);--blue-a6: color(display-p3 .004 .463 .922 / .291);--blue-a7: color(display-p3 .004 .431 .863 / .393);--blue-a8: color(display-p3 0 .427 .851 / .55);--blue-a9: color(display-p3 0 .412 .961 / .753);--blue-a10: color(display-p3 0 .376 .886 / .765);--blue-a11: color(display-p3 .15 .44 .84);--blue-a12: color(display-p3 .102 .193 .379);--bronze-1: color(display-p3 .991 .988 .988);--bronze-2: color(display-p3 .989 .97 .961);--bronze-3: color(display-p3 .958 .932 .919);--bronze-4: color(display-p3 .929 .894 .877);--bronze-5: color(display-p3 .898 .853 .832);--bronze-6: color(display-p3 .861 .805 .778);--bronze-7: color(display-p3 .812 .739 .706);--bronze-8: color(display-p3 .741 .647 .606);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .563 .461 .414);--bronze-11: color(display-p3 .471 .373 .336);--bronze-12: color(display-p3 .251 .191 .172);--bronze-a1: color(display-p3 .349 .024 .024 / .012);--bronze-a2: color(display-p3 .71 .22 .024 / .04);--bronze-a3: color(display-p3 .482 .2 .008 / .083);--bronze-a4: color(display-p3 .424 .133 .004 / .122);--bronze-a5: color(display-p3 .4 .145 .004 / .169);--bronze-a6: color(display-p3 .388 .125 .004 / .224);--bronze-a7: color(display-p3 .365 .11 .004 / .295);--bronze-a8: color(display-p3 .341 .102 .004 / .393);--bronze-a9: color(display-p3 .29 .094 0 / .546);--bronze-a10: color(display-p3 .255 .082 0 / .585);--bronze-a11: color(display-p3 .471 .373 .336);--bronze-a12: color(display-p3 .251 .191 .172);--brown-1: color(display-p3 .995 .992 .989);--brown-2: color(display-p3 .987 .976 .964);--brown-3: color(display-p3 .959 .936 .909);--brown-4: color(display-p3 .934 .897 .855);--brown-5: color(display-p3 .909 .856 .798);--brown-6: color(display-p3 .88 .808 .73);--brown-7: color(display-p3 .841 .742 .639);--brown-8: color(display-p3 .782 .647 .514);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .601 .465 .344);--brown-11: color(display-p3 .485 .374 .288);--brown-12: color(display-p3 .236 .202 .183);--brown-a1: color(display-p3 .675 .349 .024 / .012);--brown-a2: color(display-p3 .675 .349 .024 / .036);--brown-a3: color(display-p3 .573 .314 .012 / .091);--brown-a4: color(display-p3 .545 .302 .008 / .146);--brown-a5: color(display-p3 .561 .29 .004 / .204);--brown-a6: color(display-p3 .553 .294 .004 / .271);--brown-a7: color(display-p3 .557 .286 .004 / .361);--brown-a8: color(display-p3 .549 .275 .004 / .487);--brown-a9: color(display-p3 .447 .22 0 / .632);--brown-a10: color(display-p3 .388 .188 0 / .655);--brown-a11: color(display-p3 .485 .374 .288);--brown-a12: color(display-p3 .236 .202 .183);--crimson-1: color(display-p3 .998 .989 .992);--crimson-2: color(display-p3 .991 .969 .976);--crimson-3: color(display-p3 .987 .917 .941);--crimson-4: color(display-p3 .975 .866 .904);--crimson-5: color(display-p3 .953 .813 .864);--crimson-6: color(display-p3 .921 .755 .817);--crimson-7: color(display-p3 .88 .683 .761);--crimson-8: color(display-p3 .834 .592 .694);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .807 .266 .468);--crimson-11: color(display-p3 .731 .195 .388);--crimson-12: color(display-p3 .352 .111 .221);--crimson-a1: color(display-p3 .675 .024 .349 / .012);--crimson-a2: color(display-p3 .757 .02 .267 / .032);--crimson-a3: color(display-p3 .859 .008 .294 / .083);--crimson-a4: color(display-p3 .827 .008 .298 / .134);--crimson-a5: color(display-p3 .753 .008 .275 / .189);--crimson-a6: color(display-p3 .682 .004 .247 / .244);--crimson-a7: color(display-p3 .62 .004 .251 / .318);--crimson-a8: color(display-p3 .6 .004 .251 / .408);--crimson-a9: color(display-p3 .776 0 .298 / .702);--crimson-a10: color(display-p3 .737 0 .275 / .734);--crimson-a11: color(display-p3 .731 .195 .388);--crimson-a12: color(display-p3 .352 .111 .221);--cyan-1: color(display-p3 .982 .992 .996);--cyan-2: color(display-p3 .955 .981 .984);--cyan-3: color(display-p3 .888 .965 .975);--cyan-4: color(display-p3 .821 .941 .959);--cyan-5: color(display-p3 .751 .907 .935);--cyan-6: color(display-p3 .671 .862 .9);--cyan-7: color(display-p3 .564 .8 .854);--cyan-8: color(display-p3 .388 .715 .798);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .264 .583 .71);--cyan-11: color(display-p3 .08 .48 .63);--cyan-12: color(display-p3 .108 .232 .277);--cyan-a1: color(display-p3 .02 .608 .804 / .02);--cyan-a2: color(display-p3 .02 .557 .647 / .044);--cyan-a3: color(display-p3 .004 .694 .796 / .114);--cyan-a4: color(display-p3 .004 .678 .784 / .181);--cyan-a5: color(display-p3 .004 .624 .733 / .248);--cyan-a6: color(display-p3 .004 .584 .706 / .33);--cyan-a7: color(display-p3 .004 .541 .667 / .436);--cyan-a8: color(display-p3 0 .533 .667 / .612);--cyan-a9: color(display-p3 0 .482 .675 / .718);--cyan-a10: color(display-p3 0 .435 .608 / .738);--cyan-a11: color(display-p3 .08 .48 .63);--cyan-a12: color(display-p3 .108 .232 .277);--gold-1: color(display-p3 .992 .992 .989);--gold-2: color(display-p3 .98 .976 .953);--gold-3: color(display-p3 .947 .94 .909);--gold-4: color(display-p3 .914 .904 .865);--gold-5: color(display-p3 .88 .865 .816);--gold-6: color(display-p3 .84 .818 .756);--gold-7: color(display-p3 .788 .753 .677);--gold-8: color(display-p3 .715 .66 .565);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .538 .479 .38);--gold-11: color(display-p3 .433 .386 .305);--gold-12: color(display-p3 .227 .209 .173);--gold-a1: color(display-p3 .349 .349 .024 / .012);--gold-a2: color(display-p3 .592 .514 .024 / .048);--gold-a3: color(display-p3 .4 .357 .012 / .091);--gold-a4: color(display-p3 .357 .298 .008 / .134);--gold-a5: color(display-p3 .345 .282 .004 / .185);--gold-a6: color(display-p3 .341 .263 .004 / .244);--gold-a7: color(display-p3 .345 .235 .004 / .322);--gold-a8: color(display-p3 .345 .22 .004 / .436);--gold-a9: color(display-p3 .286 .18 0 / .589);--gold-a10: color(display-p3 .255 .161 0 / .62);--gold-a11: color(display-p3 .433 .386 .305);--gold-a12: color(display-p3 .227 .209 .173);--grass-1: color(display-p3 .986 .996 .985);--grass-2: color(display-p3 .966 .983 .964);--grass-3: color(display-p3 .923 .965 .917);--grass-4: color(display-p3 .872 .94 .865);--grass-5: color(display-p3 .811 .908 .802);--grass-6: color(display-p3 .733 .864 .724);--grass-7: color(display-p3 .628 .803 .622);--grass-8: color(display-p3 .477 .72 .482);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .344 .598 .342);--grass-11: color(display-p3 .263 .488 .261);--grass-12: color(display-p3 .151 .233 .153);--grass-a1: color(display-p3 .024 .757 .024 / .016);--grass-a2: color(display-p3 .024 .565 .024 / .036);--grass-a3: color(display-p3 .059 .576 .008 / .083);--grass-a4: color(display-p3 .035 .565 .008 / .134);--grass-a5: color(display-p3 .047 .545 .008 / .197);--grass-a6: color(display-p3 .031 .502 .004 / .275);--grass-a7: color(display-p3 .012 .482 .004 / .377);--grass-a8: color(display-p3 0 .467 .008 / .522);--grass-a9: color(display-p3 .008 .435 0 / .624);--grass-a10: color(display-p3 .008 .388 0 / .659);--grass-a11: color(display-p3 .263 .488 .261);--grass-a12: color(display-p3 .151 .233 .153);--green-1: color(display-p3 .986 .996 .989);--green-2: color(display-p3 .963 .983 .967);--green-3: color(display-p3 .913 .964 .925);--green-4: color(display-p3 .859 .94 .879);--green-5: color(display-p3 .796 .907 .826);--green-6: color(display-p3 .718 .863 .761);--green-7: color(display-p3 .61 .801 .675);--green-8: color(display-p3 .451 .715 .559);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .308 .595 .417);--green-11: color(display-p3 .19 .5 .32);--green-12: color(display-p3 .132 .228 .18);--green-a1: color(display-p3 .024 .757 .267 / .016);--green-a2: color(display-p3 .024 .565 .129 / .036);--green-a3: color(display-p3 .012 .596 .145 / .087);--green-a4: color(display-p3 .008 .588 .145 / .142);--green-a5: color(display-p3 .004 .541 .157 / .204);--green-a6: color(display-p3 .004 .518 .157 / .283);--green-a7: color(display-p3 .004 .486 .165 / .389);--green-a8: color(display-p3 0 .478 .2 / .55);--green-a9: color(display-p3 0 .455 .165 / .667);--green-a10: color(display-p3 0 .416 .153 / .691);--green-a11: color(display-p3 .19 .5 .32);--green-a12: color(display-p3 .132 .228 .18);--indigo-1: color(display-p3 .992 .992 .996);--indigo-2: color(display-p3 .971 .977 .998);--indigo-3: color(display-p3 .933 .948 .992);--indigo-4: color(display-p3 .885 .914 1);--indigo-5: color(display-p3 .831 .87 1);--indigo-6: color(display-p3 .767 .814 .995);--indigo-7: color(display-p3 .685 .74 .957);--indigo-8: color(display-p3 .569 .639 .916);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .234 .343 .801);--indigo-11: color(display-p3 .256 .354 .755);--indigo-12: color(display-p3 .133 .175 .348);--indigo-a1: color(display-p3 .02 .02 .51 / .008);--indigo-a2: color(display-p3 .024 .161 .863 / .028);--indigo-a3: color(display-p3 .008 .239 .886 / .067);--indigo-a4: color(display-p3 .004 .247 1 / .114);--indigo-a5: color(display-p3 .004 .235 1 / .169);--indigo-a6: color(display-p3 .004 .208 .984 / .232);--indigo-a7: color(display-p3 .004 .176 .863 / .314);--indigo-a8: color(display-p3 .004 .165 .812 / .432);--indigo-a9: color(display-p3 0 .153 .773 / .726);--indigo-a10: color(display-p3 0 .137 .737 / .765);--indigo-a11: color(display-p3 .256 .354 .755);--indigo-a12: color(display-p3 .133 .175 .348);--iris-1: color(display-p3 .992 .992 .999);--iris-2: color(display-p3 .972 .973 .998);--iris-3: color(display-p3 .943 .945 .992);--iris-4: color(display-p3 .902 .906 1);--iris-5: color(display-p3 .857 .861 1);--iris-6: color(display-p3 .799 .805 .987);--iris-7: color(display-p3 .721 .727 .955);--iris-8: color(display-p3 .61 .619 .918);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .318 .318 .774);--iris-11: color(display-p3 .337 .326 .748);--iris-12: color(display-p3 .154 .161 .371);--iris-a1: color(display-p3 .02 .02 1 / .008);--iris-a2: color(display-p3 .024 .024 .863 / .028);--iris-a3: color(display-p3 .004 .071 .871 / .059);--iris-a4: color(display-p3 .012 .051 1 / .099);--iris-a5: color(display-p3 .008 .035 1 / .142);--iris-a6: color(display-p3 0 .02 .941 / .2);--iris-a7: color(display-p3 .004 .02 .847 / .279);--iris-a8: color(display-p3 .004 .024 .788 / .389);--iris-a9: color(display-p3 0 0 .706 / .644);--iris-a10: color(display-p3 0 0 .667 / .683);--iris-a11: color(display-p3 .337 .326 .748);--iris-a12: color(display-p3 .154 .161 .371);--jade-1: color(display-p3 .986 .996 .992);--jade-2: color(display-p3 .962 .983 .969);--jade-3: color(display-p3 .912 .965 .932);--jade-4: color(display-p3 .858 .941 .893);--jade-5: color(display-p3 .795 .909 .847);--jade-6: color(display-p3 .715 .864 .791);--jade-7: color(display-p3 .603 .802 .718);--jade-8: color(display-p3 .44 .72 .629);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .299 .592 .488);--jade-11: color(display-p3 .15 .5 .37);--jade-12: color(display-p3 .142 .229 .194);--jade-a1: color(display-p3 .024 .757 .514 / .016);--jade-a2: color(display-p3 .024 .612 .22 / .04);--jade-a3: color(display-p3 .012 .596 .235 / .087);--jade-a4: color(display-p3 .008 .588 .255 / .142);--jade-a5: color(display-p3 .004 .561 .251 / .204);--jade-a6: color(display-p3 .004 .525 .278 / .287);--jade-a7: color(display-p3 .004 .506 .29 / .397);--jade-a8: color(display-p3 0 .506 .337 / .561);--jade-a9: color(display-p3 0 .459 .298 / .683);--jade-a10: color(display-p3 0 .42 .271 / .702);--jade-a11: color(display-p3 .15 .5 .37);--jade-a12: color(display-p3 .142 .229 .194);--lime-1: color(display-p3 .989 .992 .981);--lime-2: color(display-p3 .975 .98 .954);--lime-3: color(display-p3 .939 .965 .851);--lime-4: color(display-p3 .896 .94 .76);--lime-5: color(display-p3 .843 .903 .678);--lime-6: color(display-p3 .778 .852 .599);--lime-7: color(display-p3 .694 .784 .508);--lime-8: color(display-p3 .585 .707 .378);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .734 .896 .397);--lime-11: color(display-p3 .386 .482 .227);--lime-12: color(display-p3 .222 .25 .128);--lime-a1: color(display-p3 .412 .608 .02 / .02);--lime-a2: color(display-p3 .514 .592 .024 / .048);--lime-a3: color(display-p3 .584 .765 .008 / .15);--lime-a4: color(display-p3 .561 .757 .004 / .24);--lime-a5: color(display-p3 .514 .698 .004 / .322);--lime-a6: color(display-p3 .443 .627 0 / .4);--lime-a7: color(display-p3 .376 .561 .004 / .491);--lime-a8: color(display-p3 .333 .529 0 / .624);--lime-a9: color(display-p3 .588 .867 0 / .534);--lime-a10: color(display-p3 .561 .827 0 / .604);--lime-a11: color(display-p3 .386 .482 .227);--lime-a12: color(display-p3 .222 .25 .128);--mint-1: color(display-p3 .98 .995 .992);--mint-2: color(display-p3 .957 .985 .977);--mint-3: color(display-p3 .888 .972 .95);--mint-4: color(display-p3 .819 .951 .916);--mint-5: color(display-p3 .747 .918 .873);--mint-6: color(display-p3 .668 .87 .818);--mint-7: color(display-p3 .567 .805 .744);--mint-8: color(display-p3 .42 .724 .649);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .585 .871 .797);--mint-11: color(display-p3 .203 .463 .397);--mint-12: color(display-p3 .136 .259 .236);--mint-a1: color(display-p3 .02 .804 .608 / .02);--mint-a2: color(display-p3 .02 .647 .467 / .044);--mint-a3: color(display-p3 .004 .761 .553 / .114);--mint-a4: color(display-p3 .004 .741 .545 / .181);--mint-a5: color(display-p3 .004 .678 .51 / .255);--mint-a6: color(display-p3 .004 .616 .463 / .334);--mint-a7: color(display-p3 .004 .549 .412 / .432);--mint-a8: color(display-p3 0 .529 .392 / .581);--mint-a9: color(display-p3 .004 .765 .569 / .381);--mint-a10: color(display-p3 .004 .69 .51 / .416);--mint-a11: color(display-p3 .203 .463 .397);--mint-a12: color(display-p3 .136 .259 .236);--orange-1: color(display-p3 .995 .988 .985);--orange-2: color(display-p3 .994 .968 .934);--orange-3: color(display-p3 .989 .938 .85);--orange-4: color(display-p3 1 .874 .687);--orange-5: color(display-p3 1 .821 .583);--orange-6: color(display-p3 .975 .767 .545);--orange-7: color(display-p3 .919 .693 .486);--orange-8: color(display-p3 .877 .597 .379);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .87 .409 .164);--orange-11: color(display-p3 .76 .34 0);--orange-12: color(display-p3 .323 .185 .127);--orange-a1: color(display-p3 .757 .267 .024 / .016);--orange-a2: color(display-p3 .886 .533 .008 / .067);--orange-a3: color(display-p3 .922 .584 .008 / .15);--orange-a4: color(display-p3 1 .604 .004 / .314);--orange-a5: color(display-p3 1 .569 .004 / .416);--orange-a6: color(display-p3 .949 .494 .004 / .455);--orange-a7: color(display-p3 .839 .408 0 / .514);--orange-a8: color(display-p3 .804 .349 0 / .62);--orange-a9: color(display-p3 .878 .314 0 / .8);--orange-a10: color(display-p3 .843 .29 0 / .836);--orange-a11: color(display-p3 .76 .34 0);--orange-a12: color(display-p3 .323 .185 .127);--pink-1: color(display-p3 .998 .989 .996);--pink-2: color(display-p3 .992 .97 .985);--pink-3: color(display-p3 .981 .917 .96);--pink-4: color(display-p3 .963 .867 .932);--pink-5: color(display-p3 .939 .815 .899);--pink-6: color(display-p3 .907 .756 .859);--pink-7: color(display-p3 .869 .683 .81);--pink-8: color(display-p3 .825 .59 .751);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .748 .27 .581);--pink-11: color(display-p3 .698 .219 .528);--pink-12: color(display-p3 .363 .101 .279);--pink-a1: color(display-p3 .675 .024 .675 / .012);--pink-a2: color(display-p3 .757 .02 .51 / .032);--pink-a3: color(display-p3 .765 .008 .529 / .083);--pink-a4: color(display-p3 .737 .008 .506 / .134);--pink-a5: color(display-p3 .663 .004 .451 / .185);--pink-a6: color(display-p3 .616 .004 .424 / .244);--pink-a7: color(display-p3 .596 .004 .412 / .318);--pink-a8: color(display-p3 .573 .004 .404 / .412);--pink-a9: color(display-p3 .682 0 .447 / .702);--pink-a10: color(display-p3 .655 0 .424 / .73);--pink-a11: color(display-p3 .698 .219 .528);--pink-a12: color(display-p3 .363 .101 .279);--plum-1: color(display-p3 .995 .988 .999);--plum-2: color(display-p3 .988 .971 .99);--plum-3: color(display-p3 .973 .923 .98);--plum-4: color(display-p3 .953 .875 .966);--plum-5: color(display-p3 .926 .825 .945);--plum-6: color(display-p3 .89 .765 .916);--plum-7: color(display-p3 .84 .686 .877);--plum-8: color(display-p3 .775 .58 .832);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .587 .29 .667);--plum-11: color(display-p3 .543 .263 .619);--plum-12: color(display-p3 .299 .114 .352);--plum-a1: color(display-p3 .675 .024 1 / .012);--plum-a2: color(display-p3 .58 .024 .58 / .028);--plum-a3: color(display-p3 .655 .008 .753 / .079);--plum-a4: color(display-p3 .627 .008 .722 / .126);--plum-a5: color(display-p3 .58 .004 .69 / .177);--plum-a6: color(display-p3 .537 .004 .655 / .236);--plum-a7: color(display-p3 .49 .004 .616 / .314);--plum-a8: color(display-p3 .471 .004 .6 / .42);--plum-a9: color(display-p3 .451 0 .576 / .687);--plum-a10: color(display-p3 .42 0 .529 / .71);--plum-a11: color(display-p3 .543 .263 .619);--plum-a12: color(display-p3 .299 .114 .352);--purple-1: color(display-p3 .995 .988 .996);--purple-2: color(display-p3 .983 .971 .993);--purple-3: color(display-p3 .963 .931 .989);--purple-4: color(display-p3 .937 .888 .981);--purple-5: color(display-p3 .904 .837 .966);--purple-6: color(display-p3 .86 .774 .942);--purple-7: color(display-p3 .799 .69 .91);--purple-8: color(display-p3 .719 .583 .874);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .483 .289 .7);--purple-11: color(display-p3 .473 .281 .687);--purple-12: color(display-p3 .234 .132 .363);--purple-a1: color(display-p3 .675 .024 .675 / .012);--purple-a2: color(display-p3 .443 .024 .722 / .028);--purple-a3: color(display-p3 .506 .008 .835 / .071);--purple-a4: color(display-p3 .451 .004 .831 / .114);--purple-a5: color(display-p3 .431 .004 .788 / .165);--purple-a6: color(display-p3 .384 .004 .745 / .228);--purple-a7: color(display-p3 .357 .004 .71 / .31);--purple-a8: color(display-p3 .322 .004 .702 / .416);--purple-a9: color(display-p3 .298 0 .639 / .683);--purple-a10: color(display-p3 .271 0 .58 / .71);--purple-a11: color(display-p3 .473 .281 .687);--purple-a12: color(display-p3 .234 .132 .363);--red-1: color(display-p3 .998 .989 .988);--red-2: color(display-p3 .995 .971 .971);--red-3: color(display-p3 .985 .925 .925);--red-4: color(display-p3 .999 .866 .866);--red-5: color(display-p3 .984 .812 .811);--red-6: color(display-p3 .955 .751 .749);--red-7: color(display-p3 .915 .675 .672);--red-8: color(display-p3 .872 .575 .572);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .798 .294 .285);--red-11: color(display-p3 .744 .234 .222);--red-12: color(display-p3 .36 .115 .143);--red-a1: color(display-p3 .675 .024 .024 / .012);--red-a2: color(display-p3 .863 .024 .024 / .028);--red-a3: color(display-p3 .792 .008 .008 / .075);--red-a4: color(display-p3 1 .008 .008 / .134);--red-a5: color(display-p3 .918 .008 .008 / .189);--red-a6: color(display-p3 .831 .02 .004 / .251);--red-a7: color(display-p3 .741 .016 .004 / .33);--red-a8: color(display-p3 .698 .012 .004 / .428);--red-a9: color(display-p3 .749 .008 0 / .675);--red-a10: color(display-p3 .714 .012 0 / .714);--red-a11: color(display-p3 .744 .234 .222);--red-a12: color(display-p3 .36 .115 .143);--ruby-1: color(display-p3 .998 .989 .992);--ruby-2: color(display-p3 .995 .971 .974);--ruby-3: color(display-p3 .983 .92 .928);--ruby-4: color(display-p3 .987 .869 .885);--ruby-5: color(display-p3 .968 .817 .839);--ruby-6: color(display-p3 .937 .758 .786);--ruby-7: color(display-p3 .897 .685 .721);--ruby-8: color(display-p3 .851 .588 .639);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .795 .286 .375);--ruby-11: color(display-p3 .728 .211 .311);--ruby-12: color(display-p3 .36 .115 .171);--ruby-a1: color(display-p3 .675 .024 .349 / .012);--ruby-a2: color(display-p3 .863 .024 .024 / .028);--ruby-a3: color(display-p3 .804 .008 .11 / .079);--ruby-a4: color(display-p3 .91 .008 .125 / .13);--ruby-a5: color(display-p3 .831 .004 .133 / .185);--ruby-a6: color(display-p3 .745 .004 .118 / .244);--ruby-a7: color(display-p3 .678 .004 .114 / .314);--ruby-a8: color(display-p3 .639 .004 .125 / .412);--ruby-a9: color(display-p3 .753 0 .129 / .679);--ruby-a10: color(display-p3 .714 0 .125 / .714);--ruby-a11: color(display-p3 .728 .211 .311);--ruby-a12: color(display-p3 .36 .115 .171);--sky-1: color(display-p3 .98 .995 .999);--sky-2: color(display-p3 .953 .98 .99);--sky-3: color(display-p3 .899 .963 .989);--sky-4: color(display-p3 .842 .937 .977);--sky-5: color(display-p3 .777 .9 .954);--sky-6: color(display-p3 .701 .851 .921);--sky-7: color(display-p3 .604 .785 .879);--sky-8: color(display-p3 .457 .696 .829);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .555 .845 .959);--sky-11: color(display-p3 .193 .448 .605);--sky-12: color(display-p3 .145 .241 .329);--sky-a1: color(display-p3 .02 .804 1 / .02);--sky-a2: color(display-p3 .024 .592 .757 / .048);--sky-a3: color(display-p3 .004 .655 .886 / .102);--sky-a4: color(display-p3 .004 .604 .851 / .157);--sky-a5: color(display-p3 .004 .565 .792 / .224);--sky-a6: color(display-p3 .004 .502 .737 / .299);--sky-a7: color(display-p3 .004 .459 .694 / .397);--sky-a8: color(display-p3 0 .435 .682 / .542);--sky-a9: color(display-p3 .004 .71 .965 / .416);--sky-a10: color(display-p3 .004 .647 .914 / .444);--sky-a11: color(display-p3 .193 .448 .605);--sky-a12: color(display-p3 .145 .241 .329);--teal-1: color(display-p3 .983 .996 .992);--teal-2: color(display-p3 .958 .983 .976);--teal-3: color(display-p3 .895 .971 .952);--teal-4: color(display-p3 .831 .949 .92);--teal-5: color(display-p3 .761 .914 .878);--teal-6: color(display-p3 .682 .864 .825);--teal-7: color(display-p3 .581 .798 .756);--teal-8: color(display-p3 .433 .716 .671);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .275 .599 .542);--teal-11: color(display-p3 .08 .5 .43);--teal-12: color(display-p3 .11 .235 .219);--teal-a1: color(display-p3 .024 .757 .514 / .016);--teal-a2: color(display-p3 .02 .647 .467 / .044);--teal-a3: color(display-p3 .004 .741 .557 / .106);--teal-a4: color(display-p3 .004 .702 .537 / .169);--teal-a5: color(display-p3 .004 .643 .494 / .24);--teal-a6: color(display-p3 .004 .569 .447 / .318);--teal-a7: color(display-p3 .004 .518 .424 / .42);--teal-a8: color(display-p3 0 .506 .424 / .569);--teal-a9: color(display-p3 0 .482 .404 / .702);--teal-a10: color(display-p3 0 .451 .369 / .726);--teal-a11: color(display-p3 .08 .5 .43);--teal-a12: color(display-p3 .11 .235 .219);--tomato-1: color(display-p3 .998 .989 .988);--tomato-2: color(display-p3 .994 .974 .969);--tomato-3: color(display-p3 .985 .924 .909);--tomato-4: color(display-p3 .996 .868 .835);--tomato-5: color(display-p3 .98 .812 .77);--tomato-6: color(display-p3 .953 .75 .698);--tomato-7: color(display-p3 .917 .673 .611);--tomato-8: color(display-p3 .875 .575 .502);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .802 .313 .2);--tomato-11: color(display-p3 .755 .259 .152);--tomato-12: color(display-p3 .335 .165 .132);--tomato-a1: color(display-p3 .675 .024 .024 / .012);--tomato-a2: color(display-p3 .757 .145 .02 / .032);--tomato-a3: color(display-p3 .831 .184 .012 / .091);--tomato-a4: color(display-p3 .976 .192 .004 / .165);--tomato-a5: color(display-p3 .918 .192 .004 / .232);--tomato-a6: color(display-p3 .847 .173 .004 / .302);--tomato-a7: color(display-p3 .788 .165 .004 / .389);--tomato-a8: color(display-p3 .749 .153 .004 / .499);--tomato-a9: color(display-p3 .78 .149 0 / .769);--tomato-a10: color(display-p3 .757 .141 0 / .8);--tomato-a11: color(display-p3 .755 .259 .152);--tomato-a12: color(display-p3 .335 .165 .132);--violet-1: color(display-p3 .991 .988 .995);--violet-2: color(display-p3 .978 .974 .998);--violet-3: color(display-p3 .953 .943 .993);--violet-4: color(display-p3 .916 .897 1);--violet-5: color(display-p3 .876 .851 1);--violet-6: color(display-p3 .825 .793 .981);--violet-7: color(display-p3 .752 .712 .943);--violet-8: color(display-p3 .654 .602 .902);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .381 .306 .741);--violet-11: color(display-p3 .383 .317 .702);--violet-12: color(display-p3 .179 .15 .359);--violet-a1: color(display-p3 .349 .024 .675 / .012);--violet-a2: color(display-p3 .161 .024 .863 / .028);--violet-a3: color(display-p3 .204 .004 .871 / .059);--violet-a4: color(display-p3 .196 .004 1 / .102);--violet-a5: color(display-p3 .165 .008 1 / .15);--violet-a6: color(display-p3 .153 .004 .906 / .208);--violet-a7: color(display-p3 .141 .004 .796 / .287);--violet-a8: color(display-p3 .133 .004 .753 / .397);--violet-a9: color(display-p3 .114 0 .675 / .659);--violet-a10: color(display-p3 .11 0 .627 / .695);--violet-a11: color(display-p3 .383 .317 .702);--violet-a12: color(display-p3 .179 .15 .359);--yellow-1: color(display-p3 .992 .992 .978);--yellow-2: color(display-p3 .995 .99 .922);--yellow-3: color(display-p3 .997 .982 .749);--yellow-4: color(display-p3 .992 .953 .627);--yellow-5: color(display-p3 .984 .91 .51);--yellow-6: color(display-p3 .934 .847 .474);--yellow-7: color(display-p3 .876 .785 .46);--yellow-8: color(display-p3 .811 .689 .313);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 .977 .868 .291);--yellow-11: color(display-p3 .6 .44 0);--yellow-12: color(display-p3 .271 .233 .137);--yellow-a1: color(display-p3 .675 .675 .024 / .024);--yellow-a2: color(display-p3 .953 .855 .008 / .079);--yellow-a3: color(display-p3 .988 .925 .004 / .251);--yellow-a4: color(display-p3 .98 .875 .004 / .373);--yellow-a5: color(display-p3 .969 .816 .004 / .491);--yellow-a6: color(display-p3 .875 .71 0 / .526);--yellow-a7: color(display-p3 .769 .604 0 / .542);--yellow-a8: color(display-p3 .725 .549 0 / .687);--yellow-a9: color(display-p3 1 .898 0 / .781);--yellow-a10: color(display-p3 .969 .812 0 / .71);--yellow-a11: color(display-p3 .6 .44 0);--yellow-a12: color(display-p3 .271 .233 .137);--gray-surface: color(display-p3 1 1 1 / .8);--mauve-surface: color(display-p3 1 1 1 / .8);--slate-surface: color(display-p3 1 1 1 / .8);--sage-surface: color(display-p3 1 1 1 / .8);--olive-surface: color(display-p3 1 1 1 / .8);--sand-surface: color(display-p3 1 1 1 / .8);--amber-surface: color(display-p3 .9922 .9843 .902 / .8);--blue-surface: color(display-p3 .9529 .9765 .9961 / .8);--bronze-surface: color(display-p3 .9843 .9608 .9529 / .8);--brown-surface: color(display-p3 .9843 .9725 .9569 / .8);--crimson-surface: color(display-p3 .9922 .9608 .9725 / .8);--cyan-surface: color(display-p3 .9412 .9765 .9804 / .8);--gold-surface: color(display-p3 .9765 .9725 .9412 / .8);--grass-surface: color(display-p3 .9569 .9804 .9569 / .8);--green-surface: color(display-p3 .9569 .9804 .9608 / .8);--indigo-surface: color(display-p3 .9647 .9725 .9961 / .8);--iris-surface: color(display-p3 .9647 .9647 .9961 / .8);--jade-surface: color(display-p3 .9529 .9804 .9608 / .8);--lime-surface: color(display-p3 .9725 .9765 .9412 / .8);--mint-surface: color(display-p3 .9451 .9804 .9725 / .8);--orange-surface: color(display-p3 .9961 .9608 .9176 / .8);--pink-surface: color(display-p3 .9922 .9608 .9804 / .8);--plum-surface: color(display-p3 .9843 .9647 .9843 / .8);--purple-surface: color(display-p3 .9804 .9647 .9922 / .8);--red-surface: color(display-p3 .9961 .9647 .9647 / .8);--ruby-surface: color(display-p3 .9961 .9647 .9647 / .8);--sky-surface: color(display-p3 .9412 .9765 .9843 / .8);--teal-surface: color(display-p3 .9451 .9804 .9725 / .8);--tomato-surface: color(display-p3 .9922 .9647 .9608 / .8);--violet-surface: color(display-p3 .9725 .9647 .9961 / .8);--yellow-surface: color(display-p3 .9961 .9922 .902 / .8)}}}.dark,.dark-theme{--gray-1: #111111;--gray-2: #191919;--gray-3: #222222;--gray-4: #2a2a2a;--gray-5: #313131;--gray-6: #3a3a3a;--gray-7: #484848;--gray-8: #606060;--gray-9: #6e6e6e;--gray-10: #7b7b7b;--gray-11: #b4b4b4;--gray-12: #eeeeee;--gray-a1: #00000000;--gray-a2: #ffffff09;--gray-a3: #ffffff12;--gray-a4: #ffffff1b;--gray-a5: #ffffff22;--gray-a6: #ffffff2c;--gray-a7: #ffffff3b;--gray-a8: #ffffff55;--gray-a9: #ffffff64;--gray-a10: #ffffff72;--gray-a11: #ffffffaf;--gray-a12: #ffffffed;--mauve-1: #121113;--mauve-2: #1a191b;--mauve-3: #232225;--mauve-4: #2b292d;--mauve-5: #323035;--mauve-6: #3c393f;--mauve-7: #49474e;--mauve-8: #625f69;--mauve-9: #6f6d78;--mauve-10: #7c7a85;--mauve-11: #b5b2bc;--mauve-12: #eeeef0;--mauve-a1: #00000000;--mauve-a2: #f5f4f609;--mauve-a3: #ebeaf814;--mauve-a4: #eee5f81d;--mauve-a5: #efe6fe25;--mauve-a6: #f1e6fd30;--mauve-a7: #eee9ff40;--mauve-a8: #eee7ff5d;--mauve-a9: #eae6fd6e;--mauve-a10: #ece9fd7c;--mauve-a11: #f5f1ffb7;--mauve-a12: #fdfdffef;--slate-1: #111113;--slate-2: #18191b;--slate-3: #212225;--slate-4: #272a2d;--slate-5: #2e3135;--slate-6: #363a3f;--slate-7: #43484e;--slate-8: #5a6169;--slate-9: #696e77;--slate-10: #777b84;--slate-11: #b0b4ba;--slate-12: #edeef0;--slate-a1: #00000000;--slate-a2: #d8f4f609;--slate-a3: #ddeaf814;--slate-a4: #d3edf81d;--slate-a5: #d9edfe25;--slate-a6: #d6ebfd30;--slate-a7: #d9edff40;--slate-a8: #d9edff5d;--slate-a9: #dfebfd6d;--slate-a10: #e5edfd7b;--slate-a11: #f1f7feb5;--slate-a12: #fcfdffef;--sage-1: #101211;--sage-2: #171918;--sage-3: #202221;--sage-4: #272a29;--sage-5: #2e3130;--sage-6: #373b39;--sage-7: #444947;--sage-8: #5b625f;--sage-9: #63706b;--sage-10: #717d79;--sage-11: #adb5b2;--sage-12: #eceeed;--sage-a1: #00000000;--sage-a2: #f0f2f108;--sage-a3: #f3f5f412;--sage-a4: #f2fefd1a;--sage-a5: #f1fbfa22;--sage-a6: #edfbf42d;--sage-a7: #edfcf73c;--sage-a8: #ebfdf657;--sage-a9: #dffdf266;--sage-a10: #e5fdf674;--sage-a11: #f4fefbb0;--sage-a12: #fdfffeed;--olive-1: #111210;--olive-2: #181917;--olive-3: #212220;--olive-4: #282a27;--olive-5: #2f312e;--olive-6: #383a36;--olive-7: #454843;--olive-8: #5c625b;--olive-9: #687066;--olive-10: #767d74;--olive-11: #afb5ad;--olive-12: #eceeec;--olive-a1: #00000000;--olive-a2: #f1f2f008;--olive-a3: #f4f5f312;--olive-a4: #f3fef21a;--olive-a5: #f2fbf122;--olive-a6: #f4faed2c;--olive-a7: #f2fced3b;--olive-a8: #edfdeb57;--olive-a9: #ebfde766;--olive-a10: #f0fdec74;--olive-a11: #f6fef4b0;--olive-a12: #fdfffded;--sand-1: #111110;--sand-2: #191918;--sand-3: #222221;--sand-4: #2a2a28;--sand-5: #31312e;--sand-6: #3b3a37;--sand-7: #494844;--sand-8: #62605b;--sand-9: #6f6d66;--sand-10: #7c7b74;--sand-11: #b5b3ad;--sand-12: #eeeeec;--sand-a1: #00000000;--sand-a2: #f4f4f309;--sand-a3: #f6f6f513;--sand-a4: #fefef31b;--sand-a5: #fbfbeb23;--sand-a6: #fffaed2d;--sand-a7: #fffbed3c;--sand-a8: #fff9eb57;--sand-a9: #fffae965;--sand-a10: #fffdee73;--sand-a11: #fffcf4b0;--sand-a12: #fffffded;--amber-1: #16120c;--amber-2: #1d180f;--amber-3: #302008;--amber-4: #3f2700;--amber-5: #4d3000;--amber-6: #5c3d05;--amber-7: #714f19;--amber-8: #8f6424;--amber-9: #ffc53d;--amber-10: #ffd60a;--amber-11: #ffca16;--amber-12: #ffe7b3;--amber-a1: #e63c0006;--amber-a2: #fd9b000d;--amber-a3: #fa820022;--amber-a4: #fc820032;--amber-a5: #fd8b0041;--amber-a6: #fd9b0051;--amber-a7: #ffab2567;--amber-a8: #ffae3587;--amber-a9: #ffc53d;--amber-a10: #ffd60a;--amber-a11: #ffca16;--amber-a12: #ffe7b3;--blue-1: #0d1520;--blue-2: #111927;--blue-3: #0d2847;--blue-4: #003362;--blue-5: #004074;--blue-6: #104d87;--blue-7: #205d9e;--blue-8: #2870bd;--blue-9: #0090ff;--blue-10: #3b9eff;--blue-11: #70b8ff;--blue-12: #c2e6ff;--blue-a1: #004df211;--blue-a2: #1166fb18;--blue-a3: #0077ff3a;--blue-a4: #0075ff57;--blue-a5: #0081fd6b;--blue-a6: #0f89fd7f;--blue-a7: #2a91fe98;--blue-a8: #3094feb9;--blue-a9: #0090ff;--blue-a10: #3b9eff;--blue-a11: #70b8ff;--blue-a12: #c2e6ff;--bronze-1: #141110;--bronze-2: #1c1917;--bronze-3: #262220;--bronze-4: #302a27;--bronze-5: #3b3330;--bronze-6: #493e3a;--bronze-7: #5a4c47;--bronze-8: #6f5f58;--bronze-9: #a18072;--bronze-10: #ae8c7e;--bronze-11: #d4b3a5;--bronze-12: #ede0d9;--bronze-a1: #d1110004;--bronze-a2: #fbbc910c;--bronze-a3: #faceb817;--bronze-a4: #facdb622;--bronze-a5: #ffd2c12d;--bronze-a6: #ffd1c03c;--bronze-a7: #fdd0c04f;--bronze-a8: #ffd6c565;--bronze-a9: #fec7b09b;--bronze-a10: #fecab5a9;--bronze-a11: #ffd7c6d1;--bronze-a12: #fff1e9ec;--brown-1: #12110f;--brown-2: #1c1816;--brown-3: #28211d;--brown-4: #322922;--brown-5: #3e3128;--brown-6: #4d3c2f;--brown-7: #614a39;--brown-8: #7c5f46;--brown-9: #ad7f58;--brown-10: #b88c67;--brown-11: #dbb594;--brown-12: #f2e1ca;--brown-a1: #91110002;--brown-a2: #fba67c0c;--brown-a3: #fcb58c19;--brown-a4: #fbbb8a24;--brown-a5: #fcb88931;--brown-a6: #fdba8741;--brown-a7: #ffbb8856;--brown-a8: #ffbe8773;--brown-a9: #feb87da8;--brown-a10: #ffc18cb3;--brown-a11: #fed1aad9;--brown-a12: #feecd4f2;--crimson-1: #191114;--crimson-2: #201318;--crimson-3: #381525;--crimson-4: #4d122f;--crimson-5: #5c1839;--crimson-6: #6d2545;--crimson-7: #873356;--crimson-8: #b0436e;--crimson-9: #e93d82;--crimson-10: #ee518a;--crimson-11: #ff92ad;--crimson-12: #fdd3e8;--crimson-a1: #f4126709;--crimson-a2: #f22f7a11;--crimson-a3: #fe2a8b2a;--crimson-a4: #fd158741;--crimson-a5: #fd278f51;--crimson-a6: #fe459763;--crimson-a7: #fd559b7f;--crimson-a8: #fe5b9bab;--crimson-a9: #fe418de8;--crimson-a10: #ff5693ed;--crimson-a11: #ff92ad;--crimson-a12: #ffd5eafd;--cyan-1: #0b161a;--cyan-2: #101b20;--cyan-3: #082c36;--cyan-4: #003848;--cyan-5: #004558;--cyan-6: #045468;--cyan-7: #12677e;--cyan-8: #11809c;--cyan-9: #00a2c7;--cyan-10: #23afd0;--cyan-11: #4ccce6;--cyan-12: #b6ecf7;--cyan-a1: #0091f70a;--cyan-a2: #02a7f211;--cyan-a3: #00befd28;--cyan-a4: #00baff3b;--cyan-a5: #00befd4d;--cyan-a6: #00c7fd5e;--cyan-a7: #14cdff75;--cyan-a8: #11cfff95;--cyan-a9: #00cfffc3;--cyan-a10: #28d6ffcd;--cyan-a11: #52e1fee5;--cyan-a12: #bbf3fef7;--gold-1: #121211;--gold-2: #1b1a17;--gold-3: #24231f;--gold-4: #2d2b26;--gold-5: #38352e;--gold-6: #444039;--gold-7: #544f46;--gold-8: #696256;--gold-9: #978365;--gold-10: #a39073;--gold-11: #cbb99f;--gold-12: #e8e2d9;--gold-a1: #91911102;--gold-a2: #f9e29d0b;--gold-a3: #f8ecbb15;--gold-a4: #ffeec41e;--gold-a5: #feecc22a;--gold-a6: #feebcb37;--gold-a7: #ffedcd48;--gold-a8: #fdeaca5f;--gold-a9: #ffdba690;--gold-a10: #fedfb09d;--gold-a11: #fee7c6c8;--gold-a12: #fef7ede7;--grass-1: #0e1511;--grass-2: #141a15;--grass-3: #1b2a1e;--grass-4: #1d3a24;--grass-5: #25482d;--grass-6: #2d5736;--grass-7: #366740;--grass-8: #3e7949;--grass-9: #46a758;--grass-10: #53b365;--grass-11: #71d083;--grass-12: #c2f0c2;--grass-a1: #00de1205;--grass-a2: #5ef7780a;--grass-a3: #70fe8c1b;--grass-a4: #57ff802c;--grass-a5: #68ff8b3b;--grass-a6: #71ff8f4b;--grass-a7: #77fd925d;--grass-a8: #77fd9070;--grass-a9: #65ff82a1;--grass-a10: #72ff8dae;--grass-a11: #89ff9fcd;--grass-a12: #ceffceef;--green-1: #0e1512;--green-2: #121b17;--green-3: #132d21;--green-4: #113b29;--green-5: #174933;--green-6: #20573e;--green-7: #28684a;--green-8: #2f7c57;--green-9: #30a46c;--green-10: #33b074;--green-11: #3dd68c;--green-12: #b1f1cb;--green-a1: #00de4505;--green-a2: #29f99d0b;--green-a3: #22ff991e;--green-a4: #11ff992d;--green-a5: #2bffa23c;--green-a6: #44ffaa4b;--green-a7: #50fdac5e;--green-a8: #54ffad73;--green-a9: #44ffa49e;--green-a10: #43fea4ab;--green-a11: #46fea5d4;--green-a12: #bbffd7f0;--indigo-1: #11131f;--indigo-2: #141726;--indigo-3: #182449;--indigo-4: #1d2e62;--indigo-5: #253974;--indigo-6: #304384;--indigo-7: #3a4f97;--indigo-8: #435db1;--indigo-9: #3e63dd;--indigo-10: #5472e4;--indigo-11: #9eb1ff;--indigo-12: #d6e1ff;--indigo-a1: #1133ff0f;--indigo-a2: #3354fa17;--indigo-a3: #2f62ff3c;--indigo-a4: #3566ff57;--indigo-a5: #4171fd6b;--indigo-a6: #5178fd7c;--indigo-a7: #5a7fff90;--indigo-a8: #5b81feac;--indigo-a9: #4671ffdb;--indigo-a10: #5c7efee3;--indigo-a11: #9eb1ff;--indigo-a12: #d6e1ff;--iris-1: #13131e;--iris-2: #171625;--iris-3: #202248;--iris-4: #262a65;--iris-5: #303374;--iris-6: #3d3e82;--iris-7: #4a4a95;--iris-8: #5958b1;--iris-9: #5b5bd6;--iris-10: #6e6ade;--iris-11: #b1a9ff;--iris-12: #e0dffe;--iris-a1: #3636fe0e;--iris-a2: #564bf916;--iris-a3: #525bff3b;--iris-a4: #4d58ff5a;--iris-a5: #5b62fd6b;--iris-a6: #6d6ffd7a;--iris-a7: #7777fe8e;--iris-a8: #7b7afeac;--iris-a9: #6a6afed4;--iris-a10: #7d79ffdc;--iris-a11: #b1a9ff;--iris-a12: #e1e0fffe;--jade-1: #0d1512;--jade-2: #121c18;--jade-3: #0f2e22;--jade-4: #0b3b2c;--jade-5: #114837;--jade-6: #1b5745;--jade-7: #246854;--jade-8: #2a7e68;--jade-9: #29a383;--jade-10: #27b08b;--jade-11: #1fd8a4;--jade-12: #adf0d4;--jade-a1: #00de4505;--jade-a2: #27fba60c;--jade-a3: #02f99920;--jade-a4: #00ffaa2d;--jade-a5: #11ffb63b;--jade-a6: #34ffc24b;--jade-a7: #45fdc75e;--jade-a8: #48ffcf75;--jade-a9: #38feca9d;--jade-a10: #31fec7ab;--jade-a11: #21fec0d6;--jade-a12: #b8ffe1ef;--lime-1: #11130c;--lime-2: #151a10;--lime-3: #1f2917;--lime-4: #29371d;--lime-5: #334423;--lime-6: #3d522a;--lime-7: #496231;--lime-8: #577538;--lime-9: #bdee63;--lime-10: #d4ff70;--lime-11: #bde56c;--lime-12: #e3f7ba;--lime-a1: #11bb0003;--lime-a2: #78f7000a;--lime-a3: #9bfd4c1a;--lime-a4: #a7fe5c29;--lime-a5: #affe6537;--lime-a6: #b2fe6d46;--lime-a7: #b6ff6f57;--lime-a8: #b6fd6d6c;--lime-a9: #caff69ed;--lime-a10: #d4ff70;--lime-a11: #d1fe77e4;--lime-a12: #e9febff7;--mint-1: #0e1515;--mint-2: #0f1b1b;--mint-3: #092c2b;--mint-4: #003a38;--mint-5: #004744;--mint-6: #105650;--mint-7: #1e685f;--mint-8: #277f70;--mint-9: #86ead4;--mint-10: #a8f5e5;--mint-11: #58d5ba;--mint-12: #c4f5e1;--mint-a1: #00dede05;--mint-a2: #00f9f90b;--mint-a3: #00fff61d;--mint-a4: #00fff42c;--mint-a5: #00fff23a;--mint-a6: #0effeb4a;--mint-a7: #34fde55e;--mint-a8: #41ffdf76;--mint-a9: #92ffe7e9;--mint-a10: #aefeedf5;--mint-a11: #67ffded2;--mint-a12: #cbfee9f5;--orange-1: #17120e;--orange-2: #1e160f;--orange-3: #331e0b;--orange-4: #462100;--orange-5: #562800;--orange-6: #66350c;--orange-7: #7e451d;--orange-8: #a35829;--orange-9: #f76b15;--orange-10: #ff801f;--orange-11: #ffa057;--orange-12: #ffe0c2;--orange-a1: #ec360007;--orange-a2: #fe6d000e;--orange-a3: #fb6a0025;--orange-a4: #ff590039;--orange-a5: #ff61004a;--orange-a6: #fd75045c;--orange-a7: #ff832c75;--orange-a8: #fe84389d;--orange-a9: #fe6d15f7;--orange-a10: #ff801f;--orange-a11: #ffa057;--orange-a12: #ffe0c2;--pink-1: #191117;--pink-2: #21121d;--pink-3: #37172f;--pink-4: #4b143d;--pink-5: #591c47;--pink-6: #692955;--pink-7: #833869;--pink-8: #a84885;--pink-9: #d6409f;--pink-10: #de51a8;--pink-11: #ff8dcc;--pink-12: #fdd1ea;--pink-a1: #f412bc09;--pink-a2: #f420bb12;--pink-a3: #fe37cc29;--pink-a4: #fc1ec43f;--pink-a5: #fd35c24e;--pink-a6: #fd51c75f;--pink-a7: #fd62c87b;--pink-a8: #ff68c8a2;--pink-a9: #fe49bcd4;--pink-a10: #ff5cc0dc;--pink-a11: #ff8dcc;--pink-a12: #ffd3ecfd;--plum-1: #181118;--plum-2: #201320;--plum-3: #351a35;--plum-4: #451d47;--plum-5: #512454;--plum-6: #5e3061;--plum-7: #734079;--plum-8: #92549c;--plum-9: #ab4aba;--plum-10: #b658c4;--plum-11: #e796f3;--plum-12: #f4d4f4;--plum-a1: #f112f108;--plum-a2: #f22ff211;--plum-a3: #fd4cfd27;--plum-a4: #f646ff3a;--plum-a5: #f455ff48;--plum-a6: #f66dff56;--plum-a7: #f07cfd70;--plum-a8: #ee84ff95;--plum-a9: #e961feb6;--plum-a10: #ed70ffc0;--plum-a11: #f19cfef3;--plum-a12: #feddfef4;--purple-1: #18111b;--purple-2: #1e1523;--purple-3: #301c3b;--purple-4: #3d224e;--purple-5: #48295c;--purple-6: #54346b;--purple-7: #664282;--purple-8: #8457aa;--purple-9: #8e4ec6;--purple-10: #9a5cd0;--purple-11: #d19dff;--purple-12: #ecd9fa;--purple-a1: #b412f90b;--purple-a2: #b744f714;--purple-a3: #c150ff2d;--purple-a4: #bb53fd42;--purple-a5: #be5cfd51;--purple-a6: #c16dfd61;--purple-a7: #c378fd7a;--purple-a8: #c47effa4;--purple-a9: #b661ffc2;--purple-a10: #bc6fffcd;--purple-a11: #d19dff;--purple-a12: #f1ddfffa;--red-1: #191111;--red-2: #201314;--red-3: #3b1219;--red-4: #500f1c;--red-5: #611623;--red-6: #72232d;--red-7: #8c333a;--red-8: #b54548;--red-9: #e5484d;--red-10: #ec5d5e;--red-11: #ff9592;--red-12: #ffd1d9;--red-a1: #f4121209;--red-a2: #f22f3e11;--red-a3: #ff173f2d;--red-a4: #fe0a3b44;--red-a5: #ff204756;--red-a6: #ff3e5668;--red-a7: #ff536184;--red-a8: #ff5d61b0;--red-a9: #fe4e54e4;--red-a10: #ff6465eb;--red-a11: #ff9592;--red-a12: #ffd1d9;--ruby-1: #191113;--ruby-2: #1e1517;--ruby-3: #3a141e;--ruby-4: #4e1325;--ruby-5: #5e1a2e;--ruby-6: #6f2539;--ruby-7: #883447;--ruby-8: #b3445a;--ruby-9: #e54666;--ruby-10: #ec5a72;--ruby-11: #ff949d;--ruby-12: #fed2e1;--ruby-a1: #f4124a09;--ruby-a2: #fe5a7f0e;--ruby-a3: #ff235d2c;--ruby-a4: #fd195e42;--ruby-a5: #fe2d6b53;--ruby-a6: #ff447665;--ruby-a7: #ff577d80;--ruby-a8: #ff5c7cae;--ruby-a9: #fe4c70e4;--ruby-a10: #ff617beb;--ruby-a11: #ff949d;--ruby-a12: #ffd3e2fe;--sky-1: #0d141f;--sky-2: #111a27;--sky-3: #112840;--sky-4: #113555;--sky-5: #154467;--sky-6: #1b537b;--sky-7: #1f6692;--sky-8: #197cae;--sky-9: #7ce2fe;--sky-10: #a8eeff;--sky-11: #75c7f0;--sky-12: #c2f3ff;--sky-a1: #0044ff0f;--sky-a2: #1171fb18;--sky-a3: #1184fc33;--sky-a4: #128fff49;--sky-a5: #1c9dfd5d;--sky-a6: #28a5ff72;--sky-a7: #2badfe8b;--sky-a8: #1db2fea9;--sky-a9: #7ce3fffe;--sky-a10: #a8eeff;--sky-a11: #7cd3ffef;--sky-a12: #c2f3ff;--teal-1: #0d1514;--teal-2: #111c1b;--teal-3: #0d2d2a;--teal-4: #023b37;--teal-5: #084843;--teal-6: #145750;--teal-7: #1c6961;--teal-8: #207e73;--teal-9: #12a594;--teal-10: #0eb39e;--teal-11: #0bd8b6;--teal-12: #adf0dd;--teal-a1: #00deab05;--teal-a2: #12fbe60c;--teal-a3: #00ffe61e;--teal-a4: #00ffe92d;--teal-a5: #00ffea3b;--teal-a6: #1cffe84b;--teal-a7: #2efde85f;--teal-a8: #32ffe775;--teal-a9: #13ffe49f;--teal-a10: #0dffe0ae;--teal-a11: #0afed5d6;--teal-a12: #b8ffebef;--tomato-1: #181111;--tomato-2: #1f1513;--tomato-3: #391714;--tomato-4: #4e1511;--tomato-5: #5e1c16;--tomato-6: #6e2920;--tomato-7: #853a2d;--tomato-8: #ac4d39;--tomato-9: #e54d2e;--tomato-10: #ec6142;--tomato-11: #ff977d;--tomato-12: #fbd3cb;--tomato-a1: #f1121208;--tomato-a2: #ff55330f;--tomato-a3: #ff35232b;--tomato-a4: #fd201142;--tomato-a5: #fe332153;--tomato-a6: #ff4f3864;--tomato-a7: #fd644a7d;--tomato-a8: #fe6d4ea7;--tomato-a9: #fe5431e4;--tomato-a10: #ff6847eb;--tomato-a11: #ff977d;--tomato-a12: #ffd6cefb;--violet-1: #14121f;--violet-2: #1b1525;--violet-3: #291f43;--violet-4: #33255b;--violet-5: #3c2e69;--violet-6: #473876;--violet-7: #56468b;--violet-8: #6958ad;--violet-9: #6e56cf;--violet-10: #7d66d9;--violet-11: #baa7ff;--violet-12: #e2ddfe;--violet-a1: #4422ff0f;--violet-a2: #853ff916;--violet-a3: #8354fe36;--violet-a4: #7d51fd50;--violet-a5: #845ffd5f;--violet-a6: #8f6cfd6d;--violet-a7: #9879ff83;--violet-a8: #977dfea8;--violet-a9: #8668ffcc;--violet-a10: #9176fed7;--violet-a11: #baa7ff;--violet-a12: #e3defffe;--yellow-1: #14120b;--yellow-2: #1b180f;--yellow-3: #2d2305;--yellow-4: #362b00;--yellow-5: #433500;--yellow-6: #524202;--yellow-7: #665417;--yellow-8: #836a21;--yellow-9: #ffe629;--yellow-10: #ffff57;--yellow-11: #f5e147;--yellow-12: #f6eeb4;--yellow-a1: #d1510004;--yellow-a2: #f9b4000b;--yellow-a3: #ffaa001e;--yellow-a4: #fdb70028;--yellow-a5: #febb0036;--yellow-a6: #fec40046;--yellow-a7: #fdcb225c;--yellow-a8: #fdca327b;--yellow-a9: #ffe629;--yellow-a10: #ffff57;--yellow-a11: #fee949f5;--yellow-a12: #fef6baf6;--gray-surface: #21212180;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #22212380;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #1f212380;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #1e201f80;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #1f201e80;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #21212080;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #271f1380;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #11213d80;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #27211d80;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #271f1b80;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #2f151f80;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #11252d80;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #25231d80;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #19231b80;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #15251d80;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #171d3b80;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #1d1b3980;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #13271f80;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #1b211580;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #15272780;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #271d1380;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #31132980;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #2f152f80;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #2b173580;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #2f151780;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #2b191d80;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #13233b80;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #13272580;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #2d191580;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #25193980;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #231f1380;--yellow-indicator: var(--yellow-9);--yellow-track: var(--yellow-9)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.dark,.dark-theme{--gray-1: color(display-p3 .067 .067 .067);--gray-2: color(display-p3 .098 .098 .098);--gray-3: color(display-p3 .135 .135 .135);--gray-4: color(display-p3 .163 .163 .163);--gray-5: color(display-p3 .192 .192 .192);--gray-6: color(display-p3 .228 .228 .228);--gray-7: color(display-p3 .283 .283 .283);--gray-8: color(display-p3 .375 .375 .375);--gray-9: color(display-p3 .431 .431 .431);--gray-10: color(display-p3 .484 .484 .484);--gray-11: color(display-p3 .706 .706 .706);--gray-12: color(display-p3 .933 .933 .933);--gray-a1: color(display-p3 0 0 0 / 0);--gray-a2: color(display-p3 1 1 1 / .034);--gray-a3: color(display-p3 1 1 1 / .071);--gray-a4: color(display-p3 1 1 1 / .105);--gray-a5: color(display-p3 1 1 1 / .134);--gray-a6: color(display-p3 1 1 1 / .172);--gray-a7: color(display-p3 1 1 1 / .231);--gray-a8: color(display-p3 1 1 1 / .332);--gray-a9: color(display-p3 1 1 1 / .391);--gray-a10: color(display-p3 1 1 1 / .445);--gray-a11: color(display-p3 1 1 1 / .685);--gray-a12: color(display-p3 1 1 1 / .929);--mauve-1: color(display-p3 .07 .067 .074);--mauve-2: color(display-p3 .101 .098 .105);--mauve-3: color(display-p3 .138 .134 .144);--mauve-4: color(display-p3 .167 .161 .175);--mauve-5: color(display-p3 .196 .189 .206);--mauve-6: color(display-p3 .232 .225 .245);--mauve-7: color(display-p3 .286 .277 .302);--mauve-8: color(display-p3 .383 .373 .408);--mauve-9: color(display-p3 .434 .428 .467);--mauve-10: color(display-p3 .487 .48 .519);--mauve-11: color(display-p3 .707 .7 .735);--mauve-12: color(display-p3 .933 .933 .94);--mauve-a1: color(display-p3 0 0 0 / 0);--mauve-a2: color(display-p3 .996 .992 1 / .034);--mauve-a3: color(display-p3 .937 .933 .992 / .077);--mauve-a4: color(display-p3 .957 .918 .996 / .111);--mauve-a5: color(display-p3 .937 .906 .996 / .145);--mauve-a6: color(display-p3 .953 .925 .996 / .183);--mauve-a7: color(display-p3 .945 .929 1 / .246);--mauve-a8: color(display-p3 .937 .918 1 / .361);--mauve-a9: color(display-p3 .933 .918 1 / .424);--mauve-a10: color(display-p3 .941 .925 1 / .479);--mauve-a11: color(display-p3 .965 .961 1 / .712);--mauve-a12: color(display-p3 .992 .992 1 / .937);--slate-1: color(display-p3 .067 .067 .074);--slate-2: color(display-p3 .095 .098 .105);--slate-3: color(display-p3 .13 .135 .145);--slate-4: color(display-p3 .156 .163 .176);--slate-5: color(display-p3 .183 .191 .206);--slate-6: color(display-p3 .215 .226 .244);--slate-7: color(display-p3 .265 .28 .302);--slate-8: color(display-p3 .357 .381 .409);--slate-9: color(display-p3 .415 .431 .463);--slate-10: color(display-p3 .469 .483 .514);--slate-11: color(display-p3 .692 .704 .728);--slate-12: color(display-p3 .93 .933 .94);--slate-a1: color(display-p3 0 0 0 / 0);--slate-a2: color(display-p3 .875 .992 1 / .034);--slate-a3: color(display-p3 .882 .933 .992 / .077);--slate-a4: color(display-p3 .882 .953 .996 / .111);--slate-a5: color(display-p3 .878 .929 .996 / .145);--slate-a6: color(display-p3 .882 .949 .996 / .183);--slate-a7: color(display-p3 .882 .929 1 / .246);--slate-a8: color(display-p3 .871 .937 1 / .361);--slate-a9: color(display-p3 .898 .937 1 / .42);--slate-a10: color(display-p3 .918 .945 1 / .475);--slate-a11: color(display-p3 .949 .969 .996 / .708);--slate-a12: color(display-p3 .988 .992 1 / .937);--sage-1: color(display-p3 .064 .07 .067);--sage-2: color(display-p3 .092 .098 .094);--sage-3: color(display-p3 .128 .135 .131);--sage-4: color(display-p3 .155 .164 .159);--sage-5: color(display-p3 .183 .193 .188);--sage-6: color(display-p3 .218 .23 .224);--sage-7: color(display-p3 .269 .285 .277);--sage-8: color(display-p3 .362 .382 .373);--sage-9: color(display-p3 .398 .438 .421);--sage-10: color(display-p3 .453 .49 .474);--sage-11: color(display-p3 .685 .709 .697);--sage-12: color(display-p3 .927 .933 .93);--sage-a1: color(display-p3 0 0 0 / 0);--sage-a2: color(display-p3 .976 .988 .984 / .03);--sage-a3: color(display-p3 .992 .945 .941 / .072);--sage-a4: color(display-p3 .988 .996 .992 / .102);--sage-a5: color(display-p3 .992 1 .996 / .131);--sage-a6: color(display-p3 .973 1 .976 / .173);--sage-a7: color(display-p3 .957 1 .976 / .233);--sage-a8: color(display-p3 .957 1 .984 / .334);--sage-a9: color(display-p3 .902 1 .957 / .397);--sage-a10: color(display-p3 .929 1 .973 / .452);--sage-a11: color(display-p3 .969 1 .988 / .688);--sage-a12: color(display-p3 .992 1 .996 / .929);--olive-1: color(display-p3 .067 .07 .063);--olive-2: color(display-p3 .095 .098 .091);--olive-3: color(display-p3 .131 .135 .126);--olive-4: color(display-p3 .158 .163 .153);--olive-5: color(display-p3 .186 .192 .18);--olive-6: color(display-p3 .221 .229 .215);--olive-7: color(display-p3 .273 .284 .266);--olive-8: color(display-p3 .365 .382 .359);--olive-9: color(display-p3 .414 .438 .404);--olive-10: color(display-p3 .467 .49 .458);--olive-11: color(display-p3 .69 .709 .682);--olive-12: color(display-p3 .927 .933 .926);--olive-a1: color(display-p3 0 0 0 / 0);--olive-a2: color(display-p3 .984 .988 .976 / .03);--olive-a3: color(display-p3 .992 .996 .988 / .068);--olive-a4: color(display-p3 .953 .996 .949 / .102);--olive-a5: color(display-p3 .969 1 .965 / .131);--olive-a6: color(display-p3 .973 1 .969 / .169);--olive-a7: color(display-p3 .98 1 .961 / .228);--olive-a8: color(display-p3 .961 1 .957 / .334);--olive-a9: color(display-p3 .949 1 .922 / .397);--olive-a10: color(display-p3 .953 1 .941 / .452);--olive-a11: color(display-p3 .976 1 .965 / .688);--olive-a12: color(display-p3 .992 1 .992 / .929);--sand-1: color(display-p3 .067 .067 .063);--sand-2: color(display-p3 .098 .098 .094);--sand-3: color(display-p3 .135 .135 .129);--sand-4: color(display-p3 .164 .163 .156);--sand-5: color(display-p3 .193 .192 .183);--sand-6: color(display-p3 .23 .229 .217);--sand-7: color(display-p3 .285 .282 .267);--sand-8: color(display-p3 .384 .378 .357);--sand-9: color(display-p3 .434 .428 .403);--sand-10: color(display-p3 .487 .481 .456);--sand-11: color(display-p3 .707 .703 .68);--sand-12: color(display-p3 .933 .933 .926);--sand-a1: color(display-p3 0 0 0 / 0);--sand-a2: color(display-p3 .992 .992 .988 / .034);--sand-a3: color(display-p3 .996 .996 .992 / .072);--sand-a4: color(display-p3 .992 .992 .953 / .106);--sand-a5: color(display-p3 1 1 .965 / .135);--sand-a6: color(display-p3 1 .976 .929 / .177);--sand-a7: color(display-p3 1 .984 .929 / .236);--sand-a8: color(display-p3 1 .976 .925 / .341);--sand-a9: color(display-p3 1 .98 .925 / .395);--sand-a10: color(display-p3 1 .992 .933 / .45);--sand-a11: color(display-p3 1 .996 .961 / .685);--sand-a12: color(display-p3 1 1 .992 / .929);--amber-1: color(display-p3 .082 .07 .05);--amber-2: color(display-p3 .111 .094 .064);--amber-3: color(display-p3 .178 .128 .049);--amber-4: color(display-p3 .239 .156 0);--amber-5: color(display-p3 .29 .193 0);--amber-6: color(display-p3 .344 .245 .076);--amber-7: color(display-p3 .422 .314 .141);--amber-8: color(display-p3 .535 .399 .189);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 1 .87 .15);--amber-11: color(display-p3 1 .8 .29);--amber-12: color(display-p3 .984 .909 .726);--amber-a1: color(display-p3 .992 .298 0 / .017);--amber-a2: color(display-p3 .988 .651 0 / .047);--amber-a3: color(display-p3 1 .6 0 / .118);--amber-a4: color(display-p3 1 .557 0 / .185);--amber-a5: color(display-p3 1 .592 0 / .24);--amber-a6: color(display-p3 1 .659 .094 / .299);--amber-a7: color(display-p3 1 .714 .263 / .383);--amber-a8: color(display-p3 .996 .729 .306 / .5);--amber-a9: color(display-p3 1 .769 .259);--amber-a10: color(display-p3 1 .871 .149);--amber-a11: color(display-p3 1 .8 .29);--amber-a12: color(display-p3 .984 .909 .726);--blue-1: color(display-p3 .057 .081 .122);--blue-2: color(display-p3 .072 .098 .147);--blue-3: color(display-p3 .078 .154 .27);--blue-4: color(display-p3 .033 .197 .37);--blue-5: color(display-p3 .08 .245 .441);--blue-6: color(display-p3 .14 .298 .511);--blue-7: color(display-p3 .195 .361 .6);--blue-8: color(display-p3 .239 .434 .72);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .344 .612 .973);--blue-11: color(display-p3 .49 .72 1);--blue-12: color(display-p3 .788 .898 .99);--blue-a1: color(display-p3 0 .333 1 / .059);--blue-a2: color(display-p3 .114 .435 .988 / .085);--blue-a3: color(display-p3 .122 .463 1 / .219);--blue-a4: color(display-p3 0 .467 1 / .324);--blue-a5: color(display-p3 .098 .51 1 / .4);--blue-a6: color(display-p3 .224 .557 1 / .475);--blue-a7: color(display-p3 .294 .584 1 / .572);--blue-a8: color(display-p3 .314 .592 1 / .702);--blue-a9: color(display-p3 .251 .573 .996 / .967);--blue-a10: color(display-p3 .357 .631 1 / .971);--blue-a11: color(display-p3 .49 .72 1);--blue-a12: color(display-p3 .788 .898 .99);--bronze-1: color(display-p3 .076 .067 .063);--bronze-2: color(display-p3 .106 .097 .093);--bronze-3: color(display-p3 .147 .132 .125);--bronze-4: color(display-p3 .185 .166 .156);--bronze-5: color(display-p3 .227 .202 .19);--bronze-6: color(display-p3 .278 .246 .23);--bronze-7: color(display-p3 .343 .302 .281);--bronze-8: color(display-p3 .426 .374 .347);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .66 .556 .504);--bronze-11: color(display-p3 .81 .707 .655);--bronze-12: color(display-p3 .921 .88 .854);--bronze-a1: color(display-p3 .941 .067 0 / .009);--bronze-a2: color(display-p3 .98 .8 .706 / .043);--bronze-a3: color(display-p3 .988 .851 .761 / .085);--bronze-a4: color(display-p3 .996 .839 .78 / .127);--bronze-a5: color(display-p3 .996 .863 .773 / .173);--bronze-a6: color(display-p3 1 .863 .796 / .227);--bronze-a7: color(display-p3 1 .867 .8 / .295);--bronze-a8: color(display-p3 1 .859 .788 / .387);--bronze-a9: color(display-p3 1 .82 .733 / .585);--bronze-a10: color(display-p3 1 .839 .761 / .635);--bronze-a11: color(display-p3 .81 .707 .655);--bronze-a12: color(display-p3 .921 .88 .854);--brown-1: color(display-p3 .071 .067 .059);--brown-2: color(display-p3 .107 .095 .087);--brown-3: color(display-p3 .151 .13 .115);--brown-4: color(display-p3 .191 .161 .138);--brown-5: color(display-p3 .235 .194 .162);--brown-6: color(display-p3 .291 .237 .192);--brown-7: color(display-p3 .365 .295 .232);--brown-8: color(display-p3 .469 .377 .287);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .697 .557 .423);--brown-11: color(display-p3 .835 .715 .597);--brown-12: color(display-p3 .938 .885 .802);--brown-a1: color(display-p3 .855 .071 0 / .005);--brown-a2: color(display-p3 .98 .706 .525 / .043);--brown-a3: color(display-p3 .996 .745 .576 / .093);--brown-a4: color(display-p3 1 .765 .592 / .135);--brown-a5: color(display-p3 1 .761 .588 / .181);--brown-a6: color(display-p3 1 .773 .592 / .24);--brown-a7: color(display-p3 .996 .776 .58 / .32);--brown-a8: color(display-p3 1 .78 .573 / .433);--brown-a9: color(display-p3 1 .769 .549 / .627);--brown-a10: color(display-p3 1 .792 .596 / .677);--brown-a11: color(display-p3 .835 .715 .597);--brown-a12: color(display-p3 .938 .885 .802);--crimson-1: color(display-p3 .093 .068 .078);--crimson-2: color(display-p3 .117 .078 .095);--crimson-3: color(display-p3 .203 .091 .143);--crimson-4: color(display-p3 .277 .087 .182);--crimson-5: color(display-p3 .332 .115 .22);--crimson-6: color(display-p3 .394 .162 .268);--crimson-7: color(display-p3 .489 .222 .336);--crimson-8: color(display-p3 .638 .289 .429);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .864 .364 .539);--crimson-11: color(display-p3 1 .56 .66);--crimson-12: color(display-p3 .966 .834 .906);--crimson-a1: color(display-p3 .984 .071 .463 / .03);--crimson-a2: color(display-p3 .996 .282 .569 / .055);--crimson-a3: color(display-p3 .996 .227 .573 / .148);--crimson-a4: color(display-p3 1 .157 .569 / .227);--crimson-a5: color(display-p3 1 .231 .604 / .286);--crimson-a6: color(display-p3 1 .337 .643 / .349);--crimson-a7: color(display-p3 1 .416 .663 / .454);--crimson-a8: color(display-p3 .996 .427 .651 / .614);--crimson-a9: color(display-p3 1 .345 .596 / .832);--crimson-a10: color(display-p3 1 .42 .62 / .853);--crimson-a11: color(display-p3 1 .56 .66);--crimson-a12: color(display-p3 .966 .834 .906);--cyan-1: color(display-p3 .053 .085 .098);--cyan-2: color(display-p3 .072 .105 .122);--cyan-3: color(display-p3 .073 .168 .209);--cyan-4: color(display-p3 .063 .216 .277);--cyan-5: color(display-p3 .091 .267 .336);--cyan-6: color(display-p3 .137 .324 .4);--cyan-7: color(display-p3 .186 .398 .484);--cyan-8: color(display-p3 .23 .496 .6);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .331 .675 .801);--cyan-11: color(display-p3 .446 .79 .887);--cyan-12: color(display-p3 .757 .919 .962);--cyan-a1: color(display-p3 0 .647 .992 / .034);--cyan-a2: color(display-p3 .133 .733 1 / .059);--cyan-a3: color(display-p3 .122 .741 .996 / .152);--cyan-a4: color(display-p3 .051 .725 1 / .227);--cyan-a5: color(display-p3 .149 .757 1 / .29);--cyan-a6: color(display-p3 .267 .792 1 / .358);--cyan-a7: color(display-p3 .333 .808 1 / .446);--cyan-a8: color(display-p3 .357 .816 1 / .572);--cyan-a9: color(display-p3 .357 .82 1 / .748);--cyan-a10: color(display-p3 .4 .839 1 / .786);--cyan-a11: color(display-p3 .446 .79 .887);--cyan-a12: color(display-p3 .757 .919 .962);--gold-1: color(display-p3 .071 .071 .067);--gold-2: color(display-p3 .104 .101 .09);--gold-3: color(display-p3 .141 .136 .122);--gold-4: color(display-p3 .177 .17 .152);--gold-5: color(display-p3 .217 .207 .185);--gold-6: color(display-p3 .265 .252 .225);--gold-7: color(display-p3 .327 .31 .277);--gold-8: color(display-p3 .407 .384 .342);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .628 .566 .463);--gold-11: color(display-p3 .784 .728 .635);--gold-12: color(display-p3 .906 .887 .855);--gold-a1: color(display-p3 .855 .855 .071 / .005);--gold-a2: color(display-p3 .98 .89 .616 / .043);--gold-a3: color(display-p3 1 .949 .753 / .08);--gold-a4: color(display-p3 1 .933 .8 / .118);--gold-a5: color(display-p3 1 .949 .804 / .16);--gold-a6: color(display-p3 1 .925 .8 / .215);--gold-a7: color(display-p3 1 .945 .831 / .278);--gold-a8: color(display-p3 1 .937 .82 / .366);--gold-a9: color(display-p3 .996 .882 .69 / .551);--gold-a10: color(display-p3 1 .894 .725 / .601);--gold-a11: color(display-p3 .784 .728 .635);--gold-a12: color(display-p3 .906 .887 .855);--grass-1: color(display-p3 .062 .083 .067);--grass-2: color(display-p3 .083 .103 .085);--grass-3: color(display-p3 .118 .163 .122);--grass-4: color(display-p3 .142 .225 .15);--grass-5: color(display-p3 .178 .279 .186);--grass-6: color(display-p3 .217 .337 .224);--grass-7: color(display-p3 .258 .4 .264);--grass-8: color(display-p3 .302 .47 .305);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .426 .694 .426);--grass-11: color(display-p3 .535 .807 .542);--grass-12: color(display-p3 .797 .936 .776);--grass-a1: color(display-p3 0 .992 .071 / .017);--grass-a2: color(display-p3 .482 .996 .584 / .038);--grass-a3: color(display-p3 .549 .992 .588 / .106);--grass-a4: color(display-p3 .51 .996 .557 / .169);--grass-a5: color(display-p3 .553 1 .588 / .227);--grass-a6: color(display-p3 .584 1 .608 / .29);--grass-a7: color(display-p3 .604 1 .616 / .358);--grass-a8: color(display-p3 .608 1 .62 / .433);--grass-a9: color(display-p3 .573 1 .569 / .622);--grass-a10: color(display-p3 .6 .996 .6 / .673);--grass-a11: color(display-p3 .535 .807 .542);--grass-a12: color(display-p3 .797 .936 .776);--green-1: color(display-p3 .062 .083 .071);--green-2: color(display-p3 .079 .106 .09);--green-3: color(display-p3 .1 .173 .133);--green-4: color(display-p3 .115 .229 .166);--green-5: color(display-p3 .147 .282 .206);--green-6: color(display-p3 .185 .338 .25);--green-7: color(display-p3 .227 .403 .298);--green-8: color(display-p3 .27 .479 .351);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .357 .682 .474);--green-11: color(display-p3 .434 .828 .573);--green-12: color(display-p3 .747 .938 .807);--green-a1: color(display-p3 0 .992 .298 / .017);--green-a2: color(display-p3 .341 .98 .616 / .043);--green-a3: color(display-p3 .376 .996 .655 / .114);--green-a4: color(display-p3 .341 .996 .635 / .173);--green-a5: color(display-p3 .408 1 .678 / .232);--green-a6: color(display-p3 .475 1 .706 / .29);--green-a7: color(display-p3 .514 1 .706 / .362);--green-a8: color(display-p3 .529 1 .718 / .442);--green-a9: color(display-p3 .502 .996 .682 / .61);--green-a10: color(display-p3 .506 1 .682 / .66);--green-a11: color(display-p3 .434 .828 .573);--green-a12: color(display-p3 .747 .938 .807);--indigo-1: color(display-p3 .068 .074 .118);--indigo-2: color(display-p3 .081 .089 .144);--indigo-3: color(display-p3 .105 .141 .275);--indigo-4: color(display-p3 .129 .18 .369);--indigo-5: color(display-p3 .163 .22 .439);--indigo-6: color(display-p3 .203 .262 .5);--indigo-7: color(display-p3 .245 .309 .575);--indigo-8: color(display-p3 .285 .362 .674);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .354 .445 .866);--indigo-11: color(display-p3 .63 .69 1);--indigo-12: color(display-p3 .848 .881 .99);--indigo-a1: color(display-p3 .071 .212 .996 / .055);--indigo-a2: color(display-p3 .251 .345 .988 / .085);--indigo-a3: color(display-p3 .243 .404 1 / .223);--indigo-a4: color(display-p3 .263 .42 1 / .324);--indigo-a5: color(display-p3 .314 .451 1 / .4);--indigo-a6: color(display-p3 .361 .49 1 / .467);--indigo-a7: color(display-p3 .388 .51 1 / .547);--indigo-a8: color(display-p3 .404 .518 1 / .652);--indigo-a9: color(display-p3 .318 .451 1 / .824);--indigo-a10: color(display-p3 .404 .506 1 / .858);--indigo-a11: color(display-p3 .63 .69 1);--indigo-a12: color(display-p3 .848 .881 .99);--iris-1: color(display-p3 .075 .075 .114);--iris-2: color(display-p3 .089 .086 .14);--iris-3: color(display-p3 .128 .134 .272);--iris-4: color(display-p3 .153 .165 .382);--iris-5: color(display-p3 .192 .201 .44);--iris-6: color(display-p3 .239 .241 .491);--iris-7: color(display-p3 .291 .289 .565);--iris-8: color(display-p3 .35 .345 .673);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .428 .416 .843);--iris-11: color(display-p3 .685 .662 1);--iris-12: color(display-p3 .878 .875 .986);--iris-a1: color(display-p3 .224 .224 .992 / .051);--iris-a2: color(display-p3 .361 .314 1 / .08);--iris-a3: color(display-p3 .357 .373 1 / .219);--iris-a4: color(display-p3 .325 .361 1 / .337);--iris-a5: color(display-p3 .38 .4 1 / .4);--iris-a6: color(display-p3 .447 .447 1 / .454);--iris-a7: color(display-p3 .486 .486 1 / .534);--iris-a8: color(display-p3 .502 .494 1 / .652);--iris-a9: color(display-p3 .431 .431 1 / .799);--iris-a10: color(display-p3 .502 .486 1 / .832);--iris-a11: color(display-p3 .685 .662 1);--iris-a12: color(display-p3 .878 .875 .986);--jade-1: color(display-p3 .059 .083 .071);--jade-2: color(display-p3 .078 .11 .094);--jade-3: color(display-p3 .091 .176 .138);--jade-4: color(display-p3 .102 .228 .177);--jade-5: color(display-p3 .133 .279 .221);--jade-6: color(display-p3 .174 .334 .273);--jade-7: color(display-p3 .219 .402 .335);--jade-8: color(display-p3 .263 .488 .411);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .338 .68 .555);--jade-11: color(display-p3 .4 .835 .656);--jade-12: color(display-p3 .734 .934 .838);--jade-a1: color(display-p3 0 .992 .298 / .017);--jade-a2: color(display-p3 .318 .988 .651 / .047);--jade-a3: color(display-p3 .267 1 .667 / .118);--jade-a4: color(display-p3 .275 .996 .702 / .173);--jade-a5: color(display-p3 .361 1 .741 / .227);--jade-a6: color(display-p3 .439 1 .796 / .286);--jade-a7: color(display-p3 .49 1 .804 / .362);--jade-a8: color(display-p3 .506 1 .835 / .45);--jade-a9: color(display-p3 .478 .996 .816 / .606);--jade-a10: color(display-p3 .478 1 .816 / .656);--jade-a11: color(display-p3 .4 .835 .656);--jade-a12: color(display-p3 .734 .934 .838);--lime-1: color(display-p3 .067 .073 .048);--lime-2: color(display-p3 .086 .1 .067);--lime-3: color(display-p3 .13 .16 .099);--lime-4: color(display-p3 .172 .214 .126);--lime-5: color(display-p3 .213 .266 .153);--lime-6: color(display-p3 .257 .321 .182);--lime-7: color(display-p3 .307 .383 .215);--lime-8: color(display-p3 .365 .456 .25);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .865 .995 .519);--lime-11: color(display-p3 .771 .893 .485);--lime-12: color(display-p3 .905 .966 .753);--lime-a1: color(display-p3 .067 .941 0 / .009);--lime-a2: color(display-p3 .584 .996 .071 / .038);--lime-a3: color(display-p3 .69 1 .38 / .101);--lime-a4: color(display-p3 .729 1 .435 / .16);--lime-a5: color(display-p3 .745 1 .471 / .215);--lime-a6: color(display-p3 .769 1 .482 / .274);--lime-a7: color(display-p3 .769 1 .506 / .341);--lime-a8: color(display-p3 .784 1 .51 / .416);--lime-a9: color(display-p3 .839 1 .502 / .925);--lime-a10: color(display-p3 .871 1 .522 / .996);--lime-a11: color(display-p3 .771 .893 .485);--lime-a12: color(display-p3 .905 .966 .753);--mint-1: color(display-p3 .059 .082 .081);--mint-2: color(display-p3 .068 .104 .105);--mint-3: color(display-p3 .077 .17 .168);--mint-4: color(display-p3 .068 .224 .22);--mint-5: color(display-p3 .104 .275 .264);--mint-6: color(display-p3 .154 .332 .313);--mint-7: color(display-p3 .207 .403 .373);--mint-8: color(display-p3 .258 .49 .441);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .725 .954 .898);--mint-11: color(display-p3 .482 .825 .733);--mint-12: color(display-p3 .807 .955 .887);--mint-a1: color(display-p3 0 .992 .992 / .017);--mint-a2: color(display-p3 .071 .98 .98 / .043);--mint-a3: color(display-p3 .176 .996 .996 / .11);--mint-a4: color(display-p3 .071 .996 .973 / .169);--mint-a5: color(display-p3 .243 1 .949 / .223);--mint-a6: color(display-p3 .369 1 .933 / .286);--mint-a7: color(display-p3 .459 1 .914 / .362);--mint-a8: color(display-p3 .49 1 .89 / .454);--mint-a9: color(display-p3 .678 .996 .914 / .904);--mint-a10: color(display-p3 .761 1 .941 / .95);--mint-a11: color(display-p3 .482 .825 .733);--mint-a12: color(display-p3 .807 .955 .887);--orange-1: color(display-p3 .088 .07 .057);--orange-2: color(display-p3 .113 .089 .061);--orange-3: color(display-p3 .189 .12 .056);--orange-4: color(display-p3 .262 .132 0);--orange-5: color(display-p3 .315 .168 .016);--orange-6: color(display-p3 .376 .219 .088);--orange-7: color(display-p3 .465 .283 .147);--orange-8: color(display-p3 .601 .359 .201);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .98 .51 .23);--orange-11: color(display-p3 1 .63 .38);--orange-12: color(display-p3 .98 .883 .775);--orange-a1: color(display-p3 .961 .247 0 / .022);--orange-a2: color(display-p3 .992 .529 0 / .051);--orange-a3: color(display-p3 .996 .486 0 / .131);--orange-a4: color(display-p3 .996 .384 0 / .211);--orange-a5: color(display-p3 1 .455 0 / .265);--orange-a6: color(display-p3 1 .529 .129 / .332);--orange-a7: color(display-p3 1 .569 .251 / .429);--orange-a8: color(display-p3 1 .584 .302 / .572);--orange-a9: color(display-p3 1 .494 .216 / .895);--orange-a10: color(display-p3 1 .522 .235 / .979);--orange-a11: color(display-p3 1 .63 .38);--orange-a12: color(display-p3 .98 .883 .775);--pink-1: color(display-p3 .093 .068 .089);--pink-2: color(display-p3 .121 .073 .11);--pink-3: color(display-p3 .198 .098 .179);--pink-4: color(display-p3 .271 .095 .231);--pink-5: color(display-p3 .32 .127 .273);--pink-6: color(display-p3 .382 .177 .326);--pink-7: color(display-p3 .477 .238 .405);--pink-8: color(display-p3 .612 .304 .51);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .808 .356 .645);--pink-11: color(display-p3 1 .535 .78);--pink-12: color(display-p3 .964 .826 .912);--pink-a1: color(display-p3 .984 .071 .855 / .03);--pink-a2: color(display-p3 1 .2 .8 / .059);--pink-a3: color(display-p3 1 .294 .886 / .139);--pink-a4: color(display-p3 1 .192 .82 / .219);--pink-a5: color(display-p3 1 .282 .827 / .274);--pink-a6: color(display-p3 1 .396 .835 / .337);--pink-a7: color(display-p3 1 .459 .831 / .442);--pink-a8: color(display-p3 1 .478 .827 / .585);--pink-a9: color(display-p3 1 .373 .784 / .761);--pink-a10: color(display-p3 1 .435 .792 / .795);--pink-a11: color(display-p3 1 .535 .78);--pink-a12: color(display-p3 .964 .826 .912);--plum-1: color(display-p3 .09 .068 .092);--plum-2: color(display-p3 .118 .077 .121);--plum-3: color(display-p3 .192 .105 .202);--plum-4: color(display-p3 .25 .121 .271);--plum-5: color(display-p3 .293 .152 .319);--plum-6: color(display-p3 .343 .198 .372);--plum-7: color(display-p3 .424 .262 .461);--plum-8: color(display-p3 .54 .341 .595);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .666 .365 .748);--plum-11: color(display-p3 .86 .602 .933);--plum-12: color(display-p3 .936 .836 .949);--plum-a1: color(display-p3 .973 .071 .973 / .026);--plum-a2: color(display-p3 .933 .267 1 / .059);--plum-a3: color(display-p3 .918 .333 .996 / .148);--plum-a4: color(display-p3 .91 .318 1 / .219);--plum-a5: color(display-p3 .914 .388 1 / .269);--plum-a6: color(display-p3 .906 .463 1 / .328);--plum-a7: color(display-p3 .906 .529 1 / .425);--plum-a8: color(display-p3 .906 .553 1 / .568);--plum-a9: color(display-p3 .875 .427 1 / .69);--plum-a10: color(display-p3 .886 .471 .996 / .732);--plum-a11: color(display-p3 .86 .602 .933);--plum-a12: color(display-p3 .936 .836 .949);--purple-1: color(display-p3 .09 .068 .103);--purple-2: color(display-p3 .113 .082 .134);--purple-3: color(display-p3 .175 .112 .224);--purple-4: color(display-p3 .224 .137 .297);--purple-5: color(display-p3 .264 .167 .349);--purple-6: color(display-p3 .311 .208 .406);--purple-7: color(display-p3 .381 .266 .496);--purple-8: color(display-p3 .49 .349 .649);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .57 .373 .791);--purple-11: color(display-p3 .8 .62 1);--purple-12: color(display-p3 .913 .854 .971);--purple-a1: color(display-p3 .686 .071 .996 / .038);--purple-a2: color(display-p3 .722 .286 .996 / .072);--purple-a3: color(display-p3 .718 .349 .996 / .169);--purple-a4: color(display-p3 .702 .353 1 / .248);--purple-a5: color(display-p3 .718 .404 1 / .303);--purple-a6: color(display-p3 .733 .455 1 / .366);--purple-a7: color(display-p3 .753 .506 1 / .458);--purple-a8: color(display-p3 .749 .522 1 / .622);--purple-a9: color(display-p3 .686 .408 1 / .736);--purple-a10: color(display-p3 .71 .459 1 / .778);--purple-a11: color(display-p3 .8 .62 1);--purple-a12: color(display-p3 .913 .854 .971);--red-1: color(display-p3 .093 .068 .067);--red-2: color(display-p3 .118 .077 .079);--red-3: color(display-p3 .211 .081 .099);--red-4: color(display-p3 .287 .079 .113);--red-5: color(display-p3 .348 .11 .142);--red-6: color(display-p3 .414 .16 .183);--red-7: color(display-p3 .508 .224 .236);--red-8: color(display-p3 .659 .298 .297);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .861 .403 .387);--red-11: color(display-p3 1 .57 .55);--red-12: color(display-p3 .971 .826 .852);--red-a1: color(display-p3 .984 .071 .071 / .03);--red-a2: color(display-p3 .996 .282 .282 / .055);--red-a3: color(display-p3 1 .169 .271 / .156);--red-a4: color(display-p3 1 .118 .267 / .236);--red-a5: color(display-p3 1 .212 .314 / .303);--red-a6: color(display-p3 1 .318 .38 / .374);--red-a7: color(display-p3 1 .4 .424 / .475);--red-a8: color(display-p3 1 .431 .431 / .635);--red-a9: color(display-p3 1 .388 .384 / .82);--red-a10: color(display-p3 1 .463 .447 / .853);--red-a11: color(display-p3 1 .57 .55);--red-a12: color(display-p3 .971 .826 .852);--ruby-1: color(display-p3 .093 .068 .074);--ruby-2: color(display-p3 .113 .083 .089);--ruby-3: color(display-p3 .208 .088 .117);--ruby-4: color(display-p3 .279 .092 .147);--ruby-5: color(display-p3 .337 .12 .18);--ruby-6: color(display-p3 .401 .166 .223);--ruby-7: color(display-p3 .495 .224 .281);--ruby-8: color(display-p3 .652 .295 .359);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .857 .392 .455);--ruby-11: color(display-p3 1 .57 .59);--ruby-12: color(display-p3 .968 .83 .88);--ruby-a1: color(display-p3 .984 .071 .329 / .03);--ruby-a2: color(display-p3 .992 .376 .529 / .051);--ruby-a3: color(display-p3 .996 .196 .404 / .152);--ruby-a4: color(display-p3 1 .173 .416 / .227);--ruby-a5: color(display-p3 1 .259 .459 / .29);--ruby-a6: color(display-p3 1 .341 .506 / .358);--ruby-a7: color(display-p3 1 .412 .541 / .458);--ruby-a8: color(display-p3 1 .431 .537 / .627);--ruby-a9: color(display-p3 1 .376 .482 / .82);--ruby-a10: color(display-p3 1 .447 .522 / .849);--ruby-a11: color(display-p3 1 .57 .59);--ruby-a12: color(display-p3 .968 .83 .88);--sky-1: color(display-p3 .056 .078 .116);--sky-2: color(display-p3 .075 .101 .149);--sky-3: color(display-p3 .089 .154 .244);--sky-4: color(display-p3 .106 .207 .323);--sky-5: color(display-p3 .135 .261 .394);--sky-6: color(display-p3 .17 .322 .469);--sky-7: color(display-p3 .205 .394 .557);--sky-8: color(display-p3 .232 .48 .665);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .718 .925 .991);--sky-11: color(display-p3 .536 .772 .924);--sky-12: color(display-p3 .799 .947 .993);--sky-a1: color(display-p3 0 .282 .996 / .055);--sky-a2: color(display-p3 .157 .467 .992 / .089);--sky-a3: color(display-p3 .192 .522 .996 / .19);--sky-a4: color(display-p3 .212 .584 1 / .274);--sky-a5: color(display-p3 .259 .631 1 / .349);--sky-a6: color(display-p3 .302 .655 1 / .433);--sky-a7: color(display-p3 .329 .686 1 / .526);--sky-a8: color(display-p3 .325 .71 1 / .643);--sky-a9: color(display-p3 .592 .894 1 / .984);--sky-a10: color(display-p3 .722 .933 1 / .992);--sky-a11: color(display-p3 .536 .772 .924);--sky-a12: color(display-p3 .799 .947 .993);--teal-1: color(display-p3 .059 .083 .079);--teal-2: color(display-p3 .075 .11 .107);--teal-3: color(display-p3 .087 .175 .165);--teal-4: color(display-p3 .087 .227 .214);--teal-5: color(display-p3 .12 .277 .261);--teal-6: color(display-p3 .162 .335 .314);--teal-7: color(display-p3 .205 .406 .379);--teal-8: color(display-p3 .245 .489 .453);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .319 .69 .62);--teal-11: color(display-p3 .388 .835 .719);--teal-12: color(display-p3 .734 .934 .87);--teal-a1: color(display-p3 0 .992 .761 / .017);--teal-a2: color(display-p3 .235 .988 .902 / .047);--teal-a3: color(display-p3 .235 1 .898 / .118);--teal-a4: color(display-p3 .18 .996 .929 / .173);--teal-a5: color(display-p3 .31 1 .933 / .227);--teal-a6: color(display-p3 .396 1 .933 / .286);--teal-a7: color(display-p3 .443 1 .925 / .366);--teal-a8: color(display-p3 .459 1 .925 / .454);--teal-a9: color(display-p3 .443 .996 .906 / .61);--teal-a10: color(display-p3 .439 .996 .89 / .669);--teal-a11: color(display-p3 .388 .835 .719);--teal-a12: color(display-p3 .734 .934 .87);--tomato-1: color(display-p3 .09 .068 .067);--tomato-2: color(display-p3 .115 .084 .076);--tomato-3: color(display-p3 .205 .097 .083);--tomato-4: color(display-p3 .282 .099 .077);--tomato-5: color(display-p3 .339 .129 .101);--tomato-6: color(display-p3 .398 .179 .141);--tomato-7: color(display-p3 .487 .245 .194);--tomato-8: color(display-p3 .629 .322 .248);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .862 .415 .298);--tomato-11: color(display-p3 1 .585 .455);--tomato-12: color(display-p3 .959 .833 .802);--tomato-a1: color(display-p3 .973 .071 .071 / .026);--tomato-a2: color(display-p3 .992 .376 .224 / .051);--tomato-a3: color(display-p3 .996 .282 .176 / .148);--tomato-a4: color(display-p3 1 .204 .118 / .232);--tomato-a5: color(display-p3 1 .286 .192 / .29);--tomato-a6: color(display-p3 1 .392 .278 / .353);--tomato-a7: color(display-p3 1 .459 .349 / .45);--tomato-a8: color(display-p3 1 .49 .369 / .601);--tomato-a9: color(display-p3 1 .408 .267 / .82);--tomato-a10: color(display-p3 1 .478 .341 / .853);--tomato-a11: color(display-p3 1 .585 .455);--tomato-a12: color(display-p3 .959 .833 .802);--violet-1: color(display-p3 .077 .071 .118);--violet-2: color(display-p3 .101 .084 .141);--violet-3: color(display-p3 .154 .123 .256);--violet-4: color(display-p3 .191 .148 .345);--violet-5: color(display-p3 .226 .182 .396);--violet-6: color(display-p3 .269 .223 .449);--violet-7: color(display-p3 .326 .277 .53);--violet-8: color(display-p3 .399 .346 .656);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .477 .402 .823);--violet-11: color(display-p3 .72 .65 1);--violet-12: color(display-p3 .883 .867 .986);--violet-a1: color(display-p3 .282 .141 .996 / .055);--violet-a2: color(display-p3 .51 .263 1 / .08);--violet-a3: color(display-p3 .494 .337 .996 / .202);--violet-a4: color(display-p3 .49 .345 1 / .299);--violet-a5: color(display-p3 .525 .392 1 / .353);--violet-a6: color(display-p3 .569 .455 1 / .408);--violet-a7: color(display-p3 .588 .494 1 / .496);--violet-a8: color(display-p3 .596 .51 1 / .631);--violet-a9: color(display-p3 .522 .424 1 / .769);--violet-a10: color(display-p3 .576 .482 1 / .811);--violet-a11: color(display-p3 .72 .65 1);--violet-a12: color(display-p3 .883 .867 .986);--yellow-1: color(display-p3 .078 .069 .047);--yellow-2: color(display-p3 .103 .094 .063);--yellow-3: color(display-p3 .168 .137 .039);--yellow-4: color(display-p3 .209 .169 0);--yellow-5: color(display-p3 .255 .209 0);--yellow-6: color(display-p3 .31 .261 .07);--yellow-7: color(display-p3 .389 .331 .135);--yellow-8: color(display-p3 .497 .42 .182);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 1 1 .456);--yellow-11: color(display-p3 .948 .885 .392);--yellow-12: color(display-p3 .959 .934 .731);--yellow-a1: color(display-p3 .973 .369 0 / .013);--yellow-a2: color(display-p3 .996 .792 0 / .038);--yellow-a3: color(display-p3 .996 .71 0 / .11);--yellow-a4: color(display-p3 .996 .741 0 / .152);--yellow-a5: color(display-p3 .996 .765 0 / .202);--yellow-a6: color(display-p3 .996 .816 .082 / .261);--yellow-a7: color(display-p3 1 .831 .263 / .345);--yellow-a8: color(display-p3 1 .831 .314 / .463);--yellow-a9: color(display-p3 1 .922 .22);--yellow-a10: color(display-p3 1 1 .455);--yellow-a11: color(display-p3 .948 .885 .392);--yellow-a12: color(display-p3 .959 .934 .731);--gray-surface: color(display-p3 .1255 .1255 .1255 / .5);--mauve-surface: color(display-p3 .1333 .1255 .1333 / .5);--slate-surface: color(display-p3 .1176 .1255 .1333 / .5);--sage-surface: color(display-p3 .1176 .1255 .1176 / .5);--olive-surface: color(display-p3 .1176 .1255 .1176 / .5);--sand-surface: color(display-p3 .1255 .1255 .1255 / .5);--amber-surface: color(display-p3 .1412 .1176 .0784 / .5);--blue-surface: color(display-p3 .0706 .1255 .2196 / .5);--bronze-surface: color(display-p3 .1412 .1255 .1176 / .5);--brown-surface: color(display-p3 .1412 .1176 .102 / .5);--crimson-surface: color(display-p3 .1647 .0863 .1176 / .5);--cyan-surface: color(display-p3 .0784 .1412 .1725 / .5);--gold-surface: color(display-p3 .1412 .1333 .1098 / .5);--grass-surface: color(display-p3 .102 .1333 .102 / .5);--green-surface: color(display-p3 .0941 .1412 .1098 / .5);--indigo-surface: color(display-p3 .0941 .1098 .2196 / .5);--iris-surface: color(display-p3 .1098 .102 .2118 / .5);--jade-surface: color(display-p3 .0863 .149 .1176 / .5);--lime-surface: color(display-p3 .1098 .1255 .0784 / .5);--mint-surface: color(display-p3 .0941 .149 .1412 / .5);--orange-surface: color(display-p3 .1412 .1098 .0706 / .5);--pink-surface: color(display-p3 .1725 .0784 .149 / .5);--plum-surface: color(display-p3 .1647 .0863 .1725 / .5);--purple-surface: color(display-p3 .149 .0941 .1961 / .5);--red-surface: color(display-p3 .1647 .0863 .0863 / .5);--ruby-surface: color(display-p3 .1569 .0941 .1098 / .5);--sky-surface: color(display-p3 .0863 .1333 .2196 / .5);--teal-surface: color(display-p3 .0863 .149 .1412 / .5);--tomato-surface: color(display-p3 .1569 .0941 .0784 / .5);--violet-surface: color(display-p3 .1333 .102 .2118 / .5);--yellow-surface: color(display-p3 .1333 .1176 .0706 / .5)}}}:root{--gray-contrast: white;--mauve-contrast: white;--slate-contrast: white;--sage-contrast: white;--olive-contrast: white;--sand-contrast: white;--amber-contrast: #21201c;--blue-contrast: white;--bronze-contrast: white;--brown-contrast: white;--crimson-contrast: white;--cyan-contrast: white;--gold-contrast: white;--grass-contrast: white;--green-contrast: white;--indigo-contrast: white;--iris-contrast: white;--jade-contrast: white;--lime-contrast: #1d211c;--mint-contrast: #1a211e;--orange-contrast: white;--pink-contrast: white;--plum-contrast: white;--purple-contrast: white;--red-contrast: white;--ruby-contrast: white;--sky-contrast: #1c2024;--teal-contrast: white;--tomato-contrast: white;--violet-contrast: white;--yellow-contrast: #21201c;--black-a1: rgba(0, 0, 0, .05);--black-a2: rgba(0, 0, 0, .1);--black-a3: rgba(0, 0, 0, .15);--black-a4: rgba(0, 0, 0, .2);--black-a5: rgba(0, 0, 0, .3);--black-a6: rgba(0, 0, 0, .4);--black-a7: rgba(0, 0, 0, .5);--black-a8: rgba(0, 0, 0, .6);--black-a9: rgba(0, 0, 0, .7);--black-a10: rgba(0, 0, 0, .8);--black-a11: rgba(0, 0, 0, .9);--black-a12: rgba(0, 0, 0, .95);--white-a1: rgba(255, 255, 255, .05);--white-a2: rgba(255, 255, 255, .1);--white-a3: rgba(255, 255, 255, .15);--white-a4: rgba(255, 255, 255, .2);--white-a5: rgba(255, 255, 255, .3);--white-a6: rgba(255, 255, 255, .4);--white-a7: rgba(255, 255, 255, .5);--white-a8: rgba(255, 255, 255, .6);--white-a9: rgba(255, 255, 255, .7);--white-a10: rgba(255, 255, 255, .8);--white-a11: rgba(255, 255, 255, .9);--white-a12: rgba(255, 255, 255, .95)}@supports (color: color-mix(in oklab,white,black)){.dark,.dark-theme{--amber-track: color-mix(in oklab, var(--amber-8), var(--amber-9) 75%);--lime-track: color-mix(in oklab, var(--lime-8), var(--lime-9) 65%);--mint-track: color-mix(in oklab, var(--mint-8), var(--mint-9) 65%);--sky-track: color-mix(in oklab, var(--sky-8), var(--sky-9) 65%);--yellow-track: color-mix(in oklab, var(--yellow-8), var(--yellow-9) 65%)}}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root{--black-a1: color(display-p3 0 0 0 / .05);--black-a2: color(display-p3 0 0 0 / .1);--black-a3: color(display-p3 0 0 0 / .15);--black-a4: color(display-p3 0 0 0 / .2);--black-a5: color(display-p3 0 0 0 / .3);--black-a6: color(display-p3 0 0 0 / .4);--black-a7: color(display-p3 0 0 0 / .5);--black-a8: color(display-p3 0 0 0 / .6);--black-a9: color(display-p3 0 0 0 / .7);--black-a10: color(display-p3 0 0 0 / .8);--black-a11: color(display-p3 0 0 0 / .9);--black-a12: color(display-p3 0 0 0 / .95);--white-a1: color(display-p3 1 1 1 / .05);--white-a2: color(display-p3 1 1 1 / .1);--white-a3: color(display-p3 1 1 1 / .15);--white-a4: color(display-p3 1 1 1 / .2);--white-a5: color(display-p3 1 1 1 / .3);--white-a6: color(display-p3 1 1 1 / .4);--white-a7: color(display-p3 1 1 1 / .5);--white-a8: color(display-p3 1 1 1 / .6);--white-a9: color(display-p3 1 1 1 / .7);--white-a10: color(display-p3 1 1 1 / .8);--white-a11: color(display-p3 1 1 1 / .9);--white-a12: color(display-p3 1 1 1 / .95)}}}:where(.radix-themes){--color-background: white;--color-overlay: var(--black-a6);--color-panel-solid: white;--color-panel-translucent: rgba(255, 255, 255, .7);--color-surface: rgba(255, 255, 255, .85);--color-transparent: rgb(0 0 0 / 0);--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px var(--gray-a3), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px var(--gray-a3), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px var(--gray-a3), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-button-classic-after-inset: 2px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--gray-a4), inset 0 -2px 1px var(--gray-a3);--base-button-classic-box-shadow-bottom: inset 0 4px 2px -2px var(--white-a9), inset 0 2px 1px -1px var(--white-a9);--base-button-classic-disabled-box-shadow: var(--base-button-classic-box-shadow-top), var(--base-button-classic-box-shadow-bottom);--base-button-classic-active-filter: brightness(.92) saturate(1.1);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-classic-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--base-button-solid-active-filter: brightness(.92) saturate(1.1);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-solid-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a2), inset 0 .05em var(--white-a12), inset 0 .25em .5em var(--gray-a2), inset 0 -.05em var(--gray-a6), 0 0 0 .05em var(--gray-a5), 0 .08em .17em var(--gray-a7);--progress-indicator-after-linear-gradient: var(--white-a5), var(--white-a9), var(--white-a5);--segmented-control-indicator-background-color: var(--color-background);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 2px 1px var(--white-a11), inset 0 -2px 1px var(--gray-a4) ;--slider-range-high-contrast-background-image: linear-gradient(var(--black-a8), var(--black-a8));--slider-disabled-blend-mode: multiply;--switch-disabled-blend-mode: multiply;--switch-high-contrast-checked-color-overlay: var(--black-a8);--switch-high-contrast-checked-active-before-filter: contrast(.82) saturate(1.2) brightness(1.16);--switch-surface-checked-active-filter: brightness(.92) saturate(1.1);--base-card-surface-box-shadow: 0 0 0 1px var(--gray-a5);--base-card-surface-hover-box-shadow: 0 0 0 1px var(--gray-a7);--base-card-surface-active-box-shadow: 0 0 0 1px var(--gray-a6);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a2), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 1px 1px 1px var(--black-a1), 0 2px 1px -1px var(--gray-a3), 0 2px 3px -2px var(--black-a1), 0 3px 12px -4px var(--gray-a3), 0 4px 16px -8px var(--black-a1);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 1px 1px 0 var(--black-a1), 0 2px 1px -2px var(--gray-a3), 0 2px 3px -3px var(--black-a1), 0 3px 12px -5px var(--gray-a3), 0 4px 16px -9px var(--black-a1);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a4), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a4), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-border-color: var(--gray-a3);--base-card-classic-hover-border-color: var(--gray-a3);--base-card-classic-active-border-color: var(--gray-a4)}:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--color-background: var(--gray-1);--color-overlay: var(--black-a8);--color-panel-solid: var(--gray-2);--color-panel-translucent: var(--gray-a2);--color-surface: rgba(0, 0, 0, .25);--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px var(--gray-a6), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px var(--gray-a6), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px var(--gray-a6), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-button-classic-after-inset: 1px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--white-a2), inset 0 4px 2px -2px var(--white-a3), inset 0 1px 1px var(--white-a6), inset 0 -1px 1px var(--black-a6);--base-button-classic-box-shadow-bottom: 0 0 transparent;--base-button-classic-disabled-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 4px 2px -2px var(--gray-a2), inset 0 1px 1px var(--gray-a5), inset 0 -1px 1px var(--black-a3), inset 0 0 0 1px var(--gray-a2);--base-button-classic-active-filter: brightness(1.08);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.14);--base-button-classic-high-contrast-active-filter: brightness(.95) saturate(1.2);--base-button-solid-active-filter: brightness(1.08);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.18);--base-button-solid-high-contrast-active-filter: brightness(.95) saturate(1.2);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a3), inset 0 .05em var(--gray-a11), inset 0 .25em .5em var(--gray-a2), inset 0 -.1em var(--black-a11), 0 0 0 .075em var(--gray-a7), 0 .08em .17em var(--black-a12);--progress-indicator-after-linear-gradient: var(--white-a3), var(--white-a6), var(--white-a3);--segmented-control-indicator-background-color: var(--gray-a3);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--white-a4), inset 0 1px 1px var(--white-a4), inset 0 -1px 1px var(--black-a9) ;--slider-range-high-contrast-background-image: none;--slider-disabled-blend-mode: screen;--switch-disabled-blend-mode: screen;--switch-high-contrast-checked-color-overlay: transparent;--switch-high-contrast-checked-active-before-filter: brightness(1.08);--switch-surface-checked-active-filter: brightness(1.08);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 0 1px 1px var(--gray-a4), 0 0 1px -1px var(--gray-a4), 0 0 3px -2px var(--gray-a3), 0 0 12px -2px var(--gray-a3), 0 0 16px -8px var(--gray-a7);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 0 1px 0 var(--gray-a4), 0 0 1px -2px var(--gray-a4), 0 0 3px -3px var(--gray-a3), 0 0 12px -3px var(--gray-a3), 0 0 16px -9px var(--gray-a7);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-border-color: var(--gray-a6);--base-card-classic-hover-border-color: var(--gray-a6);--base-card-classic-active-border-color: var(--gray-a6)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.radix-themes{--color-transparent: color(display-p3 0 0 0 / 0)}}}.radix-themes:where(.light,.light-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.light,.light-theme))){color-scheme:light}.radix-themes:where(.dark,.dark-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.dark,.dark-theme))){color-scheme:dark}.radix-themes,[data-accent-color]:where(:not([data-accent-color=""],[data-accent-color=gray])){--focus-1: var(--accent-1);--focus-2: var(--accent-2);--focus-3: var(--accent-3);--focus-4: var(--accent-4);--focus-5: var(--accent-5);--focus-6: var(--accent-6);--focus-7: var(--accent-7);--focus-8: var(--accent-8);--focus-9: var(--accent-9);--focus-10: var(--accent-10);--focus-11: var(--accent-11);--focus-12: var(--accent-12);--focus-a1: var(--accent-a1);--focus-a2: var(--accent-a2);--focus-a3: var(--accent-a3);--focus-a4: var(--accent-a4);--focus-a5: var(--accent-a5);--focus-a6: var(--accent-a6);--focus-a7: var(--accent-a7);--focus-a8: var(--accent-a8);--focus-a9: var(--accent-a9);--focus-a10: var(--accent-a10);--focus-a11: var(--accent-a11);--focus-a12: var(--accent-a12)}.radix-themes ::selection{background-color:var(--focus-a5)}.radix-themes:where([data-has-background=true]){background-color:var(--color-background)}.radix-themes:where([data-panel-background=solid]){--color-panel: var(--color-panel-solid);--backdrop-filter-panel: none}.radix-themes:where([data-panel-background=translucent]){--color-panel: var(--color-panel-translucent);--backdrop-filter-panel: blur(64px)}[data-accent-color=amber]{--accent-1: var(--amber-1);--accent-2: var(--amber-2);--accent-3: var(--amber-3);--accent-4: var(--amber-4);--accent-5: var(--amber-5);--accent-6: var(--amber-6);--accent-7: var(--amber-7);--accent-8: var(--amber-8);--accent-9: var(--amber-9);--accent-10: var(--amber-10);--accent-11: var(--amber-11);--accent-12: var(--amber-12);--accent-a1: var(--amber-a1);--accent-a2: var(--amber-a2);--accent-a3: var(--amber-a3);--accent-a4: var(--amber-a4);--accent-a5: var(--amber-a5);--accent-a6: var(--amber-a6);--accent-a7: var(--amber-a7);--accent-a8: var(--amber-a8);--accent-a9: var(--amber-a9);--accent-a10: var(--amber-a10);--accent-a11: var(--amber-a11);--accent-a12: var(--amber-a12);--accent-contrast: var(--amber-contrast);--accent-surface: var(--amber-surface);--accent-indicator: var(--amber-indicator);--accent-track: var(--amber-track)}[data-accent-color=blue]{--accent-1: var(--blue-1);--accent-2: var(--blue-2);--accent-3: var(--blue-3);--accent-4: var(--blue-4);--accent-5: var(--blue-5);--accent-6: var(--blue-6);--accent-7: var(--blue-7);--accent-8: var(--blue-8);--accent-9: var(--blue-9);--accent-10: var(--blue-10);--accent-11: var(--blue-11);--accent-12: var(--blue-12);--accent-a1: var(--blue-a1);--accent-a2: var(--blue-a2);--accent-a3: var(--blue-a3);--accent-a4: var(--blue-a4);--accent-a5: var(--blue-a5);--accent-a6: var(--blue-a6);--accent-a7: var(--blue-a7);--accent-a8: var(--blue-a8);--accent-a9: var(--blue-a9);--accent-a10: var(--blue-a10);--accent-a11: var(--blue-a11);--accent-a12: var(--blue-a12);--accent-contrast: var(--blue-contrast);--accent-surface: var(--blue-surface);--accent-indicator: var(--blue-indicator);--accent-track: var(--blue-track)}[data-accent-color=bronze]{--accent-1: var(--bronze-1);--accent-2: var(--bronze-2);--accent-3: var(--bronze-3);--accent-4: var(--bronze-4);--accent-5: var(--bronze-5);--accent-6: var(--bronze-6);--accent-7: var(--bronze-7);--accent-8: var(--bronze-8);--accent-9: var(--bronze-9);--accent-10: var(--bronze-10);--accent-11: var(--bronze-11);--accent-12: var(--bronze-12);--accent-a1: var(--bronze-a1);--accent-a2: var(--bronze-a2);--accent-a3: var(--bronze-a3);--accent-a4: var(--bronze-a4);--accent-a5: var(--bronze-a5);--accent-a6: var(--bronze-a6);--accent-a7: var(--bronze-a7);--accent-a8: var(--bronze-a8);--accent-a9: var(--bronze-a9);--accent-a10: var(--bronze-a10);--accent-a11: var(--bronze-a11);--accent-a12: var(--bronze-a12);--accent-contrast: var(--bronze-contrast);--accent-surface: var(--bronze-surface);--accent-indicator: var(--bronze-indicator);--accent-track: var(--bronze-track)}[data-accent-color=brown]{--accent-1: var(--brown-1);--accent-2: var(--brown-2);--accent-3: var(--brown-3);--accent-4: var(--brown-4);--accent-5: var(--brown-5);--accent-6: var(--brown-6);--accent-7: var(--brown-7);--accent-8: var(--brown-8);--accent-9: var(--brown-9);--accent-10: var(--brown-10);--accent-11: var(--brown-11);--accent-12: var(--brown-12);--accent-a1: var(--brown-a1);--accent-a2: var(--brown-a2);--accent-a3: var(--brown-a3);--accent-a4: var(--brown-a4);--accent-a5: var(--brown-a5);--accent-a6: var(--brown-a6);--accent-a7: var(--brown-a7);--accent-a8: var(--brown-a8);--accent-a9: var(--brown-a9);--accent-a10: var(--brown-a10);--accent-a11: var(--brown-a11);--accent-a12: var(--brown-a12);--accent-contrast: var(--brown-contrast);--accent-surface: var(--brown-surface);--accent-indicator: var(--brown-indicator);--accent-track: var(--brown-track)}[data-accent-color=crimson]{--accent-1: var(--crimson-1);--accent-2: var(--crimson-2);--accent-3: var(--crimson-3);--accent-4: var(--crimson-4);--accent-5: var(--crimson-5);--accent-6: var(--crimson-6);--accent-7: var(--crimson-7);--accent-8: var(--crimson-8);--accent-9: var(--crimson-9);--accent-10: var(--crimson-10);--accent-11: var(--crimson-11);--accent-12: var(--crimson-12);--accent-a1: var(--crimson-a1);--accent-a2: var(--crimson-a2);--accent-a3: var(--crimson-a3);--accent-a4: var(--crimson-a4);--accent-a5: var(--crimson-a5);--accent-a6: var(--crimson-a6);--accent-a7: var(--crimson-a7);--accent-a8: var(--crimson-a8);--accent-a9: var(--crimson-a9);--accent-a10: var(--crimson-a10);--accent-a11: var(--crimson-a11);--accent-a12: var(--crimson-a12);--accent-contrast: var(--crimson-contrast);--accent-surface: var(--crimson-surface);--accent-indicator: var(--crimson-indicator);--accent-track: var(--crimson-track)}[data-accent-color=cyan]{--accent-1: var(--cyan-1);--accent-2: var(--cyan-2);--accent-3: var(--cyan-3);--accent-4: var(--cyan-4);--accent-5: var(--cyan-5);--accent-6: var(--cyan-6);--accent-7: var(--cyan-7);--accent-8: var(--cyan-8);--accent-9: var(--cyan-9);--accent-10: var(--cyan-10);--accent-11: var(--cyan-11);--accent-12: var(--cyan-12);--accent-a1: var(--cyan-a1);--accent-a2: var(--cyan-a2);--accent-a3: var(--cyan-a3);--accent-a4: var(--cyan-a4);--accent-a5: var(--cyan-a5);--accent-a6: var(--cyan-a6);--accent-a7: var(--cyan-a7);--accent-a8: var(--cyan-a8);--accent-a9: var(--cyan-a9);--accent-a10: var(--cyan-a10);--accent-a11: var(--cyan-a11);--accent-a12: var(--cyan-a12);--accent-contrast: var(--cyan-contrast);--accent-surface: var(--cyan-surface);--accent-indicator: var(--cyan-indicator);--accent-track: var(--cyan-track)}[data-accent-color=gold]{--accent-1: var(--gold-1);--accent-2: var(--gold-2);--accent-3: var(--gold-3);--accent-4: var(--gold-4);--accent-5: var(--gold-5);--accent-6: var(--gold-6);--accent-7: var(--gold-7);--accent-8: var(--gold-8);--accent-9: var(--gold-9);--accent-10: var(--gold-10);--accent-11: var(--gold-11);--accent-12: var(--gold-12);--accent-a1: var(--gold-a1);--accent-a2: var(--gold-a2);--accent-a3: var(--gold-a3);--accent-a4: var(--gold-a4);--accent-a5: var(--gold-a5);--accent-a6: var(--gold-a6);--accent-a7: var(--gold-a7);--accent-a8: var(--gold-a8);--accent-a9: var(--gold-a9);--accent-a10: var(--gold-a10);--accent-a11: var(--gold-a11);--accent-a12: var(--gold-a12);--accent-contrast: var(--gold-contrast);--accent-surface: var(--gold-surface);--accent-indicator: var(--gold-indicator);--accent-track: var(--gold-track)}[data-accent-color=grass]{--accent-1: var(--grass-1);--accent-2: var(--grass-2);--accent-3: var(--grass-3);--accent-4: var(--grass-4);--accent-5: var(--grass-5);--accent-6: var(--grass-6);--accent-7: var(--grass-7);--accent-8: var(--grass-8);--accent-9: var(--grass-9);--accent-10: var(--grass-10);--accent-11: var(--grass-11);--accent-12: var(--grass-12);--accent-a1: var(--grass-a1);--accent-a2: var(--grass-a2);--accent-a3: var(--grass-a3);--accent-a4: var(--grass-a4);--accent-a5: var(--grass-a5);--accent-a6: var(--grass-a6);--accent-a7: var(--grass-a7);--accent-a8: var(--grass-a8);--accent-a9: var(--grass-a9);--accent-a10: var(--grass-a10);--accent-a11: var(--grass-a11);--accent-a12: var(--grass-a12);--accent-contrast: var(--grass-contrast);--accent-surface: var(--grass-surface);--accent-indicator: var(--grass-indicator);--accent-track: var(--grass-track)}[data-accent-color=gray]{--accent-1: var(--gray-1);--accent-2: var(--gray-2);--accent-3: var(--gray-3);--accent-4: var(--gray-4);--accent-5: var(--gray-5);--accent-6: var(--gray-6);--accent-7: var(--gray-7);--accent-8: var(--gray-8);--accent-9: var(--gray-9);--accent-10: var(--gray-10);--accent-11: var(--gray-11);--accent-12: var(--gray-12);--accent-a1: var(--gray-a1);--accent-a2: var(--gray-a2);--accent-a3: var(--gray-a3);--accent-a4: var(--gray-a4);--accent-a5: var(--gray-a5);--accent-a6: var(--gray-a6);--accent-a7: var(--gray-a7);--accent-a8: var(--gray-a8);--accent-a9: var(--gray-a9);--accent-a10: var(--gray-a10);--accent-a11: var(--gray-a11);--accent-a12: var(--gray-a12);--accent-contrast: var(--gray-contrast);--accent-surface: var(--gray-surface);--accent-indicator: var(--gray-indicator);--accent-track: var(--gray-track)}[data-accent-color=green]{--accent-1: var(--green-1);--accent-2: var(--green-2);--accent-3: var(--green-3);--accent-4: var(--green-4);--accent-5: var(--green-5);--accent-6: var(--green-6);--accent-7: var(--green-7);--accent-8: var(--green-8);--accent-9: var(--green-9);--accent-10: var(--green-10);--accent-11: var(--green-11);--accent-12: var(--green-12);--accent-a1: var(--green-a1);--accent-a2: var(--green-a2);--accent-a3: var(--green-a3);--accent-a4: var(--green-a4);--accent-a5: var(--green-a5);--accent-a6: var(--green-a6);--accent-a7: var(--green-a7);--accent-a8: var(--green-a8);--accent-a9: var(--green-a9);--accent-a10: var(--green-a10);--accent-a11: var(--green-a11);--accent-a12: var(--green-a12);--accent-contrast: var(--green-contrast);--accent-surface: var(--green-surface);--accent-indicator: var(--green-indicator);--accent-track: var(--green-track)}[data-accent-color=indigo]{--accent-1: var(--indigo-1);--accent-2: var(--indigo-2);--accent-3: var(--indigo-3);--accent-4: var(--indigo-4);--accent-5: var(--indigo-5);--accent-6: var(--indigo-6);--accent-7: var(--indigo-7);--accent-8: var(--indigo-8);--accent-9: var(--indigo-9);--accent-10: var(--indigo-10);--accent-11: var(--indigo-11);--accent-12: var(--indigo-12);--accent-a1: var(--indigo-a1);--accent-a2: var(--indigo-a2);--accent-a3: var(--indigo-a3);--accent-a4: var(--indigo-a4);--accent-a5: var(--indigo-a5);--accent-a6: var(--indigo-a6);--accent-a7: var(--indigo-a7);--accent-a8: var(--indigo-a8);--accent-a9: var(--indigo-a9);--accent-a10: var(--indigo-a10);--accent-a11: var(--indigo-a11);--accent-a12: var(--indigo-a12);--accent-contrast: var(--indigo-contrast);--accent-surface: var(--indigo-surface);--accent-indicator: var(--indigo-indicator);--accent-track: var(--indigo-track)}[data-accent-color=iris]{--accent-1: var(--iris-1);--accent-2: var(--iris-2);--accent-3: var(--iris-3);--accent-4: var(--iris-4);--accent-5: var(--iris-5);--accent-6: var(--iris-6);--accent-7: var(--iris-7);--accent-8: var(--iris-8);--accent-9: var(--iris-9);--accent-10: var(--iris-10);--accent-11: var(--iris-11);--accent-12: var(--iris-12);--accent-a1: var(--iris-a1);--accent-a2: var(--iris-a2);--accent-a3: var(--iris-a3);--accent-a4: var(--iris-a4);--accent-a5: var(--iris-a5);--accent-a6: var(--iris-a6);--accent-a7: var(--iris-a7);--accent-a8: var(--iris-a8);--accent-a9: var(--iris-a9);--accent-a10: var(--iris-a10);--accent-a11: var(--iris-a11);--accent-a12: var(--iris-a12);--accent-contrast: var(--iris-contrast);--accent-surface: var(--iris-surface);--accent-indicator: var(--iris-indicator);--accent-track: var(--iris-track)}[data-accent-color=jade]{--accent-1: var(--jade-1);--accent-2: var(--jade-2);--accent-3: var(--jade-3);--accent-4: var(--jade-4);--accent-5: var(--jade-5);--accent-6: var(--jade-6);--accent-7: var(--jade-7);--accent-8: var(--jade-8);--accent-9: var(--jade-9);--accent-10: var(--jade-10);--accent-11: var(--jade-11);--accent-12: var(--jade-12);--accent-a1: var(--jade-a1);--accent-a2: var(--jade-a2);--accent-a3: var(--jade-a3);--accent-a4: var(--jade-a4);--accent-a5: var(--jade-a5);--accent-a6: var(--jade-a6);--accent-a7: var(--jade-a7);--accent-a8: var(--jade-a8);--accent-a9: var(--jade-a9);--accent-a10: var(--jade-a10);--accent-a11: var(--jade-a11);--accent-a12: var(--jade-a12);--accent-contrast: var(--jade-contrast);--accent-surface: var(--jade-surface);--accent-indicator: var(--jade-indicator);--accent-track: var(--jade-track)}[data-accent-color=lime]{--accent-1: var(--lime-1);--accent-2: var(--lime-2);--accent-3: var(--lime-3);--accent-4: var(--lime-4);--accent-5: var(--lime-5);--accent-6: var(--lime-6);--accent-7: var(--lime-7);--accent-8: var(--lime-8);--accent-9: var(--lime-9);--accent-10: var(--lime-10);--accent-11: var(--lime-11);--accent-12: var(--lime-12);--accent-a1: var(--lime-a1);--accent-a2: var(--lime-a2);--accent-a3: var(--lime-a3);--accent-a4: var(--lime-a4);--accent-a5: var(--lime-a5);--accent-a6: var(--lime-a6);--accent-a7: var(--lime-a7);--accent-a8: var(--lime-a8);--accent-a9: var(--lime-a9);--accent-a10: var(--lime-a10);--accent-a11: var(--lime-a11);--accent-a12: var(--lime-a12);--accent-contrast: var(--lime-contrast);--accent-surface: var(--lime-surface);--accent-indicator: var(--lime-indicator);--accent-track: var(--lime-track)}[data-accent-color=mint]{--accent-1: var(--mint-1);--accent-2: var(--mint-2);--accent-3: var(--mint-3);--accent-4: var(--mint-4);--accent-5: var(--mint-5);--accent-6: var(--mint-6);--accent-7: var(--mint-7);--accent-8: var(--mint-8);--accent-9: var(--mint-9);--accent-10: var(--mint-10);--accent-11: var(--mint-11);--accent-12: var(--mint-12);--accent-a1: var(--mint-a1);--accent-a2: var(--mint-a2);--accent-a3: var(--mint-a3);--accent-a4: var(--mint-a4);--accent-a5: var(--mint-a5);--accent-a6: var(--mint-a6);--accent-a7: var(--mint-a7);--accent-a8: var(--mint-a8);--accent-a9: var(--mint-a9);--accent-a10: var(--mint-a10);--accent-a11: var(--mint-a11);--accent-a12: var(--mint-a12);--accent-contrast: var(--mint-contrast);--accent-surface: var(--mint-surface);--accent-indicator: var(--mint-indicator);--accent-track: var(--mint-track)}[data-accent-color=orange]{--accent-1: var(--orange-1);--accent-2: var(--orange-2);--accent-3: var(--orange-3);--accent-4: var(--orange-4);--accent-5: var(--orange-5);--accent-6: var(--orange-6);--accent-7: var(--orange-7);--accent-8: var(--orange-8);--accent-9: var(--orange-9);--accent-10: var(--orange-10);--accent-11: var(--orange-11);--accent-12: var(--orange-12);--accent-a1: var(--orange-a1);--accent-a2: var(--orange-a2);--accent-a3: var(--orange-a3);--accent-a4: var(--orange-a4);--accent-a5: var(--orange-a5);--accent-a6: var(--orange-a6);--accent-a7: var(--orange-a7);--accent-a8: var(--orange-a8);--accent-a9: var(--orange-a9);--accent-a10: var(--orange-a10);--accent-a11: var(--orange-a11);--accent-a12: var(--orange-a12);--accent-contrast: var(--orange-contrast);--accent-surface: var(--orange-surface);--accent-indicator: var(--orange-indicator);--accent-track: var(--orange-track)}[data-accent-color=pink]{--accent-1: var(--pink-1);--accent-2: var(--pink-2);--accent-3: var(--pink-3);--accent-4: var(--pink-4);--accent-5: var(--pink-5);--accent-6: var(--pink-6);--accent-7: var(--pink-7);--accent-8: var(--pink-8);--accent-9: var(--pink-9);--accent-10: var(--pink-10);--accent-11: var(--pink-11);--accent-12: var(--pink-12);--accent-a1: var(--pink-a1);--accent-a2: var(--pink-a2);--accent-a3: var(--pink-a3);--accent-a4: var(--pink-a4);--accent-a5: var(--pink-a5);--accent-a6: var(--pink-a6);--accent-a7: var(--pink-a7);--accent-a8: var(--pink-a8);--accent-a9: var(--pink-a9);--accent-a10: var(--pink-a10);--accent-a11: var(--pink-a11);--accent-a12: var(--pink-a12);--accent-contrast: var(--pink-contrast);--accent-surface: var(--pink-surface);--accent-indicator: var(--pink-indicator);--accent-track: var(--pink-track)}[data-accent-color=plum]{--accent-1: var(--plum-1);--accent-2: var(--plum-2);--accent-3: var(--plum-3);--accent-4: var(--plum-4);--accent-5: var(--plum-5);--accent-6: var(--plum-6);--accent-7: var(--plum-7);--accent-8: var(--plum-8);--accent-9: var(--plum-9);--accent-10: var(--plum-10);--accent-11: var(--plum-11);--accent-12: var(--plum-12);--accent-a1: var(--plum-a1);--accent-a2: var(--plum-a2);--accent-a3: var(--plum-a3);--accent-a4: var(--plum-a4);--accent-a5: var(--plum-a5);--accent-a6: var(--plum-a6);--accent-a7: var(--plum-a7);--accent-a8: var(--plum-a8);--accent-a9: var(--plum-a9);--accent-a10: var(--plum-a10);--accent-a11: var(--plum-a11);--accent-a12: var(--plum-a12);--accent-contrast: var(--plum-contrast);--accent-surface: var(--plum-surface);--accent-indicator: var(--plum-indicator);--accent-track: var(--plum-track)}[data-accent-color=purple]{--accent-1: var(--purple-1);--accent-2: var(--purple-2);--accent-3: var(--purple-3);--accent-4: var(--purple-4);--accent-5: var(--purple-5);--accent-6: var(--purple-6);--accent-7: var(--purple-7);--accent-8: var(--purple-8);--accent-9: var(--purple-9);--accent-10: var(--purple-10);--accent-11: var(--purple-11);--accent-12: var(--purple-12);--accent-a1: var(--purple-a1);--accent-a2: var(--purple-a2);--accent-a3: var(--purple-a3);--accent-a4: var(--purple-a4);--accent-a5: var(--purple-a5);--accent-a6: var(--purple-a6);--accent-a7: var(--purple-a7);--accent-a8: var(--purple-a8);--accent-a9: var(--purple-a9);--accent-a10: var(--purple-a10);--accent-a11: var(--purple-a11);--accent-a12: var(--purple-a12);--accent-contrast: var(--purple-contrast);--accent-surface: var(--purple-surface);--accent-indicator: var(--purple-indicator);--accent-track: var(--purple-track)}[data-accent-color=red]{--accent-1: var(--red-1);--accent-2: var(--red-2);--accent-3: var(--red-3);--accent-4: var(--red-4);--accent-5: var(--red-5);--accent-6: var(--red-6);--accent-7: var(--red-7);--accent-8: var(--red-8);--accent-9: var(--red-9);--accent-10: var(--red-10);--accent-11: var(--red-11);--accent-12: var(--red-12);--accent-a1: var(--red-a1);--accent-a2: var(--red-a2);--accent-a3: var(--red-a3);--accent-a4: var(--red-a4);--accent-a5: var(--red-a5);--accent-a6: var(--red-a6);--accent-a7: var(--red-a7);--accent-a8: var(--red-a8);--accent-a9: var(--red-a9);--accent-a10: var(--red-a10);--accent-a11: var(--red-a11);--accent-a12: var(--red-a12);--accent-contrast: var(--red-contrast);--accent-surface: var(--red-surface);--accent-indicator: var(--red-indicator);--accent-track: var(--red-track)}[data-accent-color=ruby]{--accent-1: var(--ruby-1);--accent-2: var(--ruby-2);--accent-3: var(--ruby-3);--accent-4: var(--ruby-4);--accent-5: var(--ruby-5);--accent-6: var(--ruby-6);--accent-7: var(--ruby-7);--accent-8: var(--ruby-8);--accent-9: var(--ruby-9);--accent-10: var(--ruby-10);--accent-11: var(--ruby-11);--accent-12: var(--ruby-12);--accent-a1: var(--ruby-a1);--accent-a2: var(--ruby-a2);--accent-a3: var(--ruby-a3);--accent-a4: var(--ruby-a4);--accent-a5: var(--ruby-a5);--accent-a6: var(--ruby-a6);--accent-a7: var(--ruby-a7);--accent-a8: var(--ruby-a8);--accent-a9: var(--ruby-a9);--accent-a10: var(--ruby-a10);--accent-a11: var(--ruby-a11);--accent-a12: var(--ruby-a12);--accent-contrast: var(--ruby-contrast);--accent-surface: var(--ruby-surface);--accent-indicator: var(--ruby-indicator);--accent-track: var(--ruby-track)}[data-accent-color=sky]{--accent-1: var(--sky-1);--accent-2: var(--sky-2);--accent-3: var(--sky-3);--accent-4: var(--sky-4);--accent-5: var(--sky-5);--accent-6: var(--sky-6);--accent-7: var(--sky-7);--accent-8: var(--sky-8);--accent-9: var(--sky-9);--accent-10: var(--sky-10);--accent-11: var(--sky-11);--accent-12: var(--sky-12);--accent-a1: var(--sky-a1);--accent-a2: var(--sky-a2);--accent-a3: var(--sky-a3);--accent-a4: var(--sky-a4);--accent-a5: var(--sky-a5);--accent-a6: var(--sky-a6);--accent-a7: var(--sky-a7);--accent-a8: var(--sky-a8);--accent-a9: var(--sky-a9);--accent-a10: var(--sky-a10);--accent-a11: var(--sky-a11);--accent-a12: var(--sky-a12);--accent-contrast: var(--sky-contrast);--accent-surface: var(--sky-surface);--accent-indicator: var(--sky-indicator);--accent-track: var(--sky-track)}[data-accent-color=teal]{--accent-1: var(--teal-1);--accent-2: var(--teal-2);--accent-3: var(--teal-3);--accent-4: var(--teal-4);--accent-5: var(--teal-5);--accent-6: var(--teal-6);--accent-7: var(--teal-7);--accent-8: var(--teal-8);--accent-9: var(--teal-9);--accent-10: var(--teal-10);--accent-11: var(--teal-11);--accent-12: var(--teal-12);--accent-a1: var(--teal-a1);--accent-a2: var(--teal-a2);--accent-a3: var(--teal-a3);--accent-a4: var(--teal-a4);--accent-a5: var(--teal-a5);--accent-a6: var(--teal-a6);--accent-a7: var(--teal-a7);--accent-a8: var(--teal-a8);--accent-a9: var(--teal-a9);--accent-a10: var(--teal-a10);--accent-a11: var(--teal-a11);--accent-a12: var(--teal-a12);--accent-contrast: var(--teal-contrast);--accent-surface: var(--teal-surface);--accent-indicator: var(--teal-indicator);--accent-track: var(--teal-track)}[data-accent-color=tomato]{--accent-1: var(--tomato-1);--accent-2: var(--tomato-2);--accent-3: var(--tomato-3);--accent-4: var(--tomato-4);--accent-5: var(--tomato-5);--accent-6: var(--tomato-6);--accent-7: var(--tomato-7);--accent-8: var(--tomato-8);--accent-9: var(--tomato-9);--accent-10: var(--tomato-10);--accent-11: var(--tomato-11);--accent-12: var(--tomato-12);--accent-a1: var(--tomato-a1);--accent-a2: var(--tomato-a2);--accent-a3: var(--tomato-a3);--accent-a4: var(--tomato-a4);--accent-a5: var(--tomato-a5);--accent-a6: var(--tomato-a6);--accent-a7: var(--tomato-a7);--accent-a8: var(--tomato-a8);--accent-a9: var(--tomato-a9);--accent-a10: var(--tomato-a10);--accent-a11: var(--tomato-a11);--accent-a12: var(--tomato-a12);--accent-contrast: var(--tomato-contrast);--accent-surface: var(--tomato-surface);--accent-indicator: var(--tomato-indicator);--accent-track: var(--tomato-track)}[data-accent-color=violet]{--accent-1: var(--violet-1);--accent-2: var(--violet-2);--accent-3: var(--violet-3);--accent-4: var(--violet-4);--accent-5: var(--violet-5);--accent-6: var(--violet-6);--accent-7: var(--violet-7);--accent-8: var(--violet-8);--accent-9: var(--violet-9);--accent-10: var(--violet-10);--accent-11: var(--violet-11);--accent-12: var(--violet-12);--accent-a1: var(--violet-a1);--accent-a2: var(--violet-a2);--accent-a3: var(--violet-a3);--accent-a4: var(--violet-a4);--accent-a5: var(--violet-a5);--accent-a6: var(--violet-a6);--accent-a7: var(--violet-a7);--accent-a8: var(--violet-a8);--accent-a9: var(--violet-a9);--accent-a10: var(--violet-a10);--accent-a11: var(--violet-a11);--accent-a12: var(--violet-a12);--accent-contrast: var(--violet-contrast);--accent-surface: var(--violet-surface);--accent-indicator: var(--violet-indicator);--accent-track: var(--violet-track)}[data-accent-color=yellow]{--accent-1: var(--yellow-1);--accent-2: var(--yellow-2);--accent-3: var(--yellow-3);--accent-4: var(--yellow-4);--accent-5: var(--yellow-5);--accent-6: var(--yellow-6);--accent-7: var(--yellow-7);--accent-8: var(--yellow-8);--accent-9: var(--yellow-9);--accent-10: var(--yellow-10);--accent-11: var(--yellow-11);--accent-12: var(--yellow-12);--accent-a1: var(--yellow-a1);--accent-a2: var(--yellow-a2);--accent-a3: var(--yellow-a3);--accent-a4: var(--yellow-a4);--accent-a5: var(--yellow-a5);--accent-a6: var(--yellow-a6);--accent-a7: var(--yellow-a7);--accent-a8: var(--yellow-a8);--accent-a9: var(--yellow-a9);--accent-a10: var(--yellow-a10);--accent-a11: var(--yellow-a11);--accent-a12: var(--yellow-a12);--accent-contrast: var(--yellow-contrast);--accent-surface: var(--yellow-surface);--accent-indicator: var(--yellow-indicator);--accent-track: var(--yellow-track)}.radix-themes:where([data-gray-color=mauve]){--gray-1: var(--mauve-1);--gray-2: var(--mauve-2);--gray-3: var(--mauve-3);--gray-4: var(--mauve-4);--gray-5: var(--mauve-5);--gray-6: var(--mauve-6);--gray-7: var(--mauve-7);--gray-8: var(--mauve-8);--gray-9: var(--mauve-9);--gray-10: var(--mauve-10);--gray-11: var(--mauve-11);--gray-12: var(--mauve-12);--gray-a1: var(--mauve-a1);--gray-a2: var(--mauve-a2);--gray-a3: var(--mauve-a3);--gray-a4: var(--mauve-a4);--gray-a5: var(--mauve-a5);--gray-a6: var(--mauve-a6);--gray-a7: var(--mauve-a7);--gray-a8: var(--mauve-a8);--gray-a9: var(--mauve-a9);--gray-a10: var(--mauve-a10);--gray-a11: var(--mauve-a11);--gray-a12: var(--mauve-a12);--gray-contrast: var(--mauve-contrast);--gray-surface: var(--mauve-surface);--gray-indicator: var(--mauve-indicator);--gray-track: var(--mauve-track)}.radix-themes:where([data-gray-color=olive]){--gray-1: var(--olive-1);--gray-2: var(--olive-2);--gray-3: var(--olive-3);--gray-4: var(--olive-4);--gray-5: var(--olive-5);--gray-6: var(--olive-6);--gray-7: var(--olive-7);--gray-8: var(--olive-8);--gray-9: var(--olive-9);--gray-10: var(--olive-10);--gray-11: var(--olive-11);--gray-12: var(--olive-12);--gray-a1: var(--olive-a1);--gray-a2: var(--olive-a2);--gray-a3: var(--olive-a3);--gray-a4: var(--olive-a4);--gray-a5: var(--olive-a5);--gray-a6: var(--olive-a6);--gray-a7: var(--olive-a7);--gray-a8: var(--olive-a8);--gray-a9: var(--olive-a9);--gray-a10: var(--olive-a10);--gray-a11: var(--olive-a11);--gray-a12: var(--olive-a12);--gray-contrast: var(--olive-contrast);--gray-surface: var(--olive-surface);--gray-indicator: var(--olive-indicator);--gray-track: var(--olive-track)}.radix-themes:where([data-gray-color=sage]){--gray-1: var(--sage-1);--gray-2: var(--sage-2);--gray-3: var(--sage-3);--gray-4: var(--sage-4);--gray-5: var(--sage-5);--gray-6: var(--sage-6);--gray-7: var(--sage-7);--gray-8: var(--sage-8);--gray-9: var(--sage-9);--gray-10: var(--sage-10);--gray-11: var(--sage-11);--gray-12: var(--sage-12);--gray-a1: var(--sage-a1);--gray-a2: var(--sage-a2);--gray-a3: var(--sage-a3);--gray-a4: var(--sage-a4);--gray-a5: var(--sage-a5);--gray-a6: var(--sage-a6);--gray-a7: var(--sage-a7);--gray-a8: var(--sage-a8);--gray-a9: var(--sage-a9);--gray-a10: var(--sage-a10);--gray-a11: var(--sage-a11);--gray-a12: var(--sage-a12);--gray-contrast: var(--sage-contrast);--gray-surface: var(--sage-surface);--gray-indicator: var(--sage-indicator);--gray-track: var(--sage-track)}.radix-themes:where([data-gray-color=sand]){--gray-1: var(--sand-1);--gray-2: var(--sand-2);--gray-3: var(--sand-3);--gray-4: var(--sand-4);--gray-5: var(--sand-5);--gray-6: var(--sand-6);--gray-7: var(--sand-7);--gray-8: var(--sand-8);--gray-9: var(--sand-9);--gray-10: var(--sand-10);--gray-11: var(--sand-11);--gray-12: var(--sand-12);--gray-a1: var(--sand-a1);--gray-a2: var(--sand-a2);--gray-a3: var(--sand-a3);--gray-a4: var(--sand-a4);--gray-a5: var(--sand-a5);--gray-a6: var(--sand-a6);--gray-a7: var(--sand-a7);--gray-a8: var(--sand-a8);--gray-a9: var(--sand-a9);--gray-a10: var(--sand-a10);--gray-a11: var(--sand-a11);--gray-a12: var(--sand-a12);--gray-contrast: var(--sand-contrast);--gray-surface: var(--sand-surface);--gray-indicator: var(--sand-indicator);--gray-track: var(--sand-track)}.radix-themes:where([data-gray-color=slate]){--gray-1: var(--slate-1);--gray-2: var(--slate-2);--gray-3: var(--slate-3);--gray-4: var(--slate-4);--gray-5: var(--slate-5);--gray-6: var(--slate-6);--gray-7: var(--slate-7);--gray-8: var(--slate-8);--gray-9: var(--slate-9);--gray-10: var(--slate-10);--gray-11: var(--slate-11);--gray-12: var(--slate-12);--gray-a1: var(--slate-a1);--gray-a2: var(--slate-a2);--gray-a3: var(--slate-a3);--gray-a4: var(--slate-a4);--gray-a5: var(--slate-a5);--gray-a6: var(--slate-a6);--gray-a7: var(--slate-a7);--gray-a8: var(--slate-a8);--gray-a9: var(--slate-a9);--gray-a10: var(--slate-a10);--gray-a11: var(--slate-a11);--gray-a12: var(--slate-a12);--gray-contrast: var(--slate-contrast);--gray-surface: var(--slate-surface);--gray-indicator: var(--slate-indicator);--gray-track: var(--slate-track)}.radix-themes{--cursor-button: default;--cursor-checkbox: default;--cursor-disabled: not-allowed;--cursor-link: pointer;--cursor-menu-item: default;--cursor-radio: default;--cursor-slider-thumb: default;--cursor-slider-thumb-active: default;--cursor-switch: default;--space-1: calc(4px * var(--scaling));--space-2: calc(8px * var(--scaling));--space-3: calc(12px * var(--scaling));--space-4: calc(16px * var(--scaling));--space-5: calc(24px * var(--scaling));--space-6: calc(32px * var(--scaling));--space-7: calc(40px * var(--scaling));--space-8: calc(48px * var(--scaling));--space-9: calc(64px * var(--scaling));--font-size-1: calc(12px * var(--scaling));--font-size-2: calc(14px * var(--scaling));--font-size-3: calc(16px * var(--scaling));--font-size-4: calc(18px * var(--scaling));--font-size-5: calc(20px * var(--scaling));--font-size-6: calc(24px * var(--scaling));--font-size-7: calc(28px * var(--scaling));--font-size-8: calc(35px * var(--scaling));--font-size-9: calc(60px * var(--scaling));--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-1: calc(16px * var(--scaling));--line-height-2: calc(20px * var(--scaling));--line-height-3: calc(24px * var(--scaling));--line-height-4: calc(26px * var(--scaling));--line-height-5: calc(28px * var(--scaling));--line-height-6: calc(30px * var(--scaling));--line-height-7: calc(36px * var(--scaling));--line-height-8: calc(40px * var(--scaling));--line-height-9: calc(60px * var(--scaling));--letter-spacing-1: .0025em;--letter-spacing-2: 0em;--letter-spacing-3: 0em;--letter-spacing-4: -.0025em;--letter-spacing-5: -.005em;--letter-spacing-6: -.00625em;--letter-spacing-7: -.0075em;--letter-spacing-8: -.01em;--letter-spacing-9: -.025em;--default-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI (Custom)", Roboto, "Helvetica Neue", "Open Sans (Custom)", system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--default-font-size: var(--font-size-3);--default-font-style: normal;--default-font-weight: var(--font-weight-regular);--default-line-height: 1.5;--default-letter-spacing: 0em;--default-leading-trim-start: .42em;--default-leading-trim-end: .36em;--heading-font-family: var(--default-font-family);--heading-font-size-adjust: 1;--heading-font-style: normal;--heading-leading-trim-start: var(--default-leading-trim-start);--heading-leading-trim-end: var(--default-leading-trim-end);--heading-letter-spacing: 0em;--heading-line-height-1: calc(16px * var(--scaling));--heading-line-height-2: calc(18px * var(--scaling));--heading-line-height-3: calc(22px * var(--scaling));--heading-line-height-4: calc(24px * var(--scaling));--heading-line-height-5: calc(26px * var(--scaling));--heading-line-height-6: calc(30px * var(--scaling));--heading-line-height-7: calc(36px * var(--scaling));--heading-line-height-8: calc(40px * var(--scaling));--heading-line-height-9: calc(60px * var(--scaling));--code-font-family: "Menlo", "Consolas (Custom)", "Bitstream Vera Sans Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji";--code-font-size-adjust: .95;--code-font-style: normal;--code-font-weight: inherit;--code-letter-spacing: -.007em;--code-padding-top: .1em;--code-padding-bottom: .1em;--code-padding-left: .25em;--code-padding-right: .25em;--strong-font-family: var(--default-font-family);--strong-font-size-adjust: 1;--strong-font-style: inherit;--strong-font-weight: var(--font-weight-bold);--strong-letter-spacing: 0em;--em-font-family: "Times New Roman", "Times", serif;--em-font-size-adjust: 1.18;--em-font-style: italic;--em-font-weight: inherit;--em-letter-spacing: -.025em;--quote-font-family: "Times New Roman", "Times", serif;--quote-font-size-adjust: 1.18;--quote-font-style: italic;--quote-font-weight: inherit;--quote-letter-spacing: -.025em;--tab-active-letter-spacing: -.01em;--tab-active-word-spacing: 0em;--tab-inactive-letter-spacing: 0em;--tab-inactive-word-spacing: 0em;overflow-wrap:break-word;font-family:var(--default-font-family);font-size:var(--default-font-size);font-weight:var(--default-font-weight);font-style:var(--default-font-style);line-height:var(--default-line-height);letter-spacing:var(--default-letter-spacing);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--container-1: 448px;--container-2: 688px;--container-3: 880px;--container-4: 1136px;--scrollarea-scrollbar-horizontal-margin-top: var(--space-1);--scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);--scrollarea-scrollbar-horizontal-margin-left: var(--space-1);--scrollarea-scrollbar-horizontal-margin-right: var(--space-1);--scrollarea-scrollbar-vertical-margin-top: var(--space-1);--scrollarea-scrollbar-vertical-margin-bottom: var(--space-1);--scrollarea-scrollbar-vertical-margin-left: var(--space-1);--scrollarea-scrollbar-vertical-margin-right: var(--space-1);--segmented-control-transition-duration: .1s;--spinner-animation-duration: .8s;--spinner-opacity: .65;color:var(--gray-12)}.radix-themes:where([data-scaling="90%"]){--scaling: .9}.radix-themes:where([data-scaling="95%"]){--scaling: .95}.radix-themes:where([data-scaling="100%"]){--scaling: 1}.radix-themes:where([data-scaling="105%"]){--scaling: 1.05}.radix-themes:where([data-scaling="110%"]){--scaling: 1.1}[data-radius]{--radius-1: calc(3px * var(--scaling) * var(--radius-factor));--radius-2: calc(4px * var(--scaling) * var(--radius-factor));--radius-3: calc(6px * var(--scaling) * var(--radius-factor));--radius-4: calc(8px * var(--scaling) * var(--radius-factor));--radius-5: calc(12px * var(--scaling) * var(--radius-factor));--radius-6: calc(16px * var(--scaling) * var(--radius-factor))}[data-radius=none]{--radius-factor: 0;--radius-full: 0px;--radius-thumb: .5px}[data-radius=small]{--radius-factor: .75;--radius-full: 0px;--radius-thumb: .5px}[data-radius=medium]{--radius-factor: 1;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=large]{--radius-factor: 1.5;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=full]{--radius-factor: 1.5;--radius-full: 9999px;--radius-thumb: 9999px}@supports (color: color-mix(in oklab,white,black)){:where(.radix-themes){--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-card-surface-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a5), var(--gray-5) 25%);--base-card-surface-hover-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a7), var(--gray-7) 25%);--base-card-surface-active-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a4), var(--gray-4) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%)}}@supports (color: color-mix(in oklab,white,black)){:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%)}}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;descent-override:35%;src:local("Open Sans Light"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;font-style:italic;descent-override:35%;src:local("Open Sans Light Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;descent-override:35%;src:local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;font-style:italic;descent-override:35%;src:local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;descent-override:35%;src:local("Open Sans Medium"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;font-style:italic;descent-override:35%;src:local("Open Sans Medium Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;descent-override:35%;src:local("Open Sans Bold")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;font-style:italic;descent-override:35%;src:local("Open Sans Bold Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:400;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas")}@font-face{font-family:"Consolas (Custom)";font-weight:400;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:700;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold")}@font-face{font-family:"Consolas (Custom)";font-weight:700;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold Italic")}.rt-reset:where(body,blockquote,dl,dd,figure,p){margin:0}.rt-reset:where(address,b,cite,code,dfn,em,i,kbd,q,samp,small,strong,var){font:unset}.rt-reset:where(h1,h2,h3,h4,h5,h6){font:unset;margin:0}.rt-reset:where(a){all:unset;-webkit-tap-highlight-color:transparent}.rt-reset:where(button,select,[type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range]){all:unset;display:inline-block;font-weight:400;font-style:normal;text-indent:initial;-webkit-tap-highlight-color:transparent}.rt-reset:where(label){-webkit-tap-highlight-color:transparent}.rt-reset:where(select){font-weight:400;font-style:normal;text-align:start}.rt-reset:where(textarea,input:not([type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range])){all:unset;display:block;width:-webkit-fill-available;width:-moz-available;width:stretch;font-weight:400;font-style:normal;text-align:start;text-indent:initial;-webkit-tap-highlight-color:transparent;cursor:text;white-space:pre-wrap}.rt-reset:where(:focus){outline:none}.rt-reset::placeholder{color:unset;opacity:unset;-webkit-user-select:none;user-select:none}.rt-reset:where(table){all:unset;display:table;text-indent:initial}.rt-reset:where(caption){text-align:inherit}.rt-reset:where(td){padding:0}.rt-reset:where(th){font-weight:unset;text-align:inherit;padding:0}.rt-reset:where(abbr,acronym){text-decoration:none}.rt-reset:where(canvas,object,picture,summary){display:block}.rt-reset:where(del,s){text-decoration:unset}.rt-reset:where(fieldset,hr){all:unset;display:block}.rt-reset:where(legend){padding:0;border:none;cursor:default}.rt-reset:where(li){display:block;text-align:unset}.rt-reset:where(ol,ul){list-style:none;margin:0;padding:0}.rt-reset:where(iframe){display:block;border:none;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(ins,u){text-decoration:none}.rt-reset:where(img){display:block;max-width:100%}.rt-reset:where(svg){display:block;max-width:100%;flex-shrink:0}.rt-reset:where(mark){all:unset}.rt-reset:where(pre){font:unset;margin:unset}.rt-reset:where(q):before,.rt-reset:where(q):after{content:""}.rt-reset:where(sub,sup){font:unset;vertical-align:unset}.rt-reset:where(details) ::marker,.rt-reset:where(summary)::marker{content:none}.rt-reset:where(video){display:block;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(:any-link){cursor:var(--cursor-link)}.rt-reset:where(button){cursor:var(--cursor-button)}.rt-reset:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-reset:where(input[type=checkbox]){cursor:var(--cursor-checkbox)}.rt-reset:where(input[type=radio]){cursor:var(--cursor-radio)}.rt-reset,.rt-reset:before,.rt-reset:after{box-sizing:border-box}@keyframes rt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rt-fade-out{0%{opacity:1}to{opacity:0}}@keyframes rt-slide-from-top{0%{transform:translateY(4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-top{0%{transform:translateY(0) scale(1)}to{transform:translateY(4px) scale(.97)}}@keyframes rt-slide-from-bottom{0%{transform:translateY(-4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-bottom{0%{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(.97)}}@keyframes rt-slide-from-left{0%{transform:translate(4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-left{0%{transform:translate(0) scale(1)}to{transform:translate(4px) scale(.97)}}@keyframes rt-slide-from-right{0%{transform:translate(-4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-right{0%{transform:translate(0) scale(1)}to{transform:translate(-4px) scale(.97)}}@media (prefers-reduced-motion: no-preference){.rt-PopperContent{animation-timing-function:cubic-bezier(.16,1,.3,1)}.rt-PopperContent:where([data-state=open]){animation-duration:.16s}.rt-PopperContent:where([data-state=open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}.rt-PopperContent:where([data-state=closed]){animation-duration:.1s}.rt-PopperContent:where([data-state=closed]):where([data-side=top]){animation-name:rt-slide-to-top,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=bottom]){animation-name:rt-slide-to-bottom,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=left]){animation-name:rt-slide-to-left,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=right]){animation-name:rt-slide-to-right,rt-fade-out}}.rt-Box{box-sizing:border-box;display:block}.rt-Flex{box-sizing:border-box;display:flex;justify-content:flex-start}.rt-Grid{box-sizing:border-box;display:grid;align-items:stretch;justify-content:flex-start;grid-template-columns:minmax(0,1fr);grid-template-rows:none}.rt-Section{box-sizing:border-box;flex-shrink:0}.rt-Section:where(.rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}@media (min-width: 520px){.rt-Section:where(.xs\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xs\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xs\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xs\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 768px){.rt-Section:where(.sm\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.sm\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.sm\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.sm\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1024px){.rt-Section:where(.md\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.md\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.md\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.md\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1280px){.rt-Section:where(.lg\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.lg\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.lg\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.lg\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1640px){.rt-Section:where(.xl\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xl\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xl\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xl\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}.rt-Container{display:flex;box-sizing:border-box;flex-direction:column;align-items:center;flex-shrink:0;flex-grow:1}.rt-ContainerInner{width:100%}:where(.rt-Container.rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}@media (min-width: 520px){:where(.rt-Container.xs\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xs\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xs\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xs\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 768px){:where(.rt-Container.sm\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.sm\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.sm\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.sm\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1024px){:where(.rt-Container.md\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.md\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.md\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.md\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1280px){:where(.rt-Container.lg\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.lg\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.lg\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.lg\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1640px){:where(.rt-Container.xl\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xl\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xl\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xl\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}.rt-Skeleton{--skeleton-radius: var(--skeleton-radius-override);--skeleton-height: var(--skeleton-height-override);border-radius:var(--radius-1);animation:rt-skeleton-pulse 1s infinite alternate-reverse!important;background-image:none!important;background-clip:border-box!important;border:none!important;box-shadow:none!important;-webkit-box-decoration-break:clone!important;box-decoration-break:clone!important;color:transparent!important;outline:none!important;pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important;cursor:default!important}.rt-Skeleton:where([data-inline-skeleton]){line-height:0;font-family:Arial,sans-serif!important}:where(.rt-Skeleton:empty){display:block;height:var(--space-3)}.rt-Skeleton>*,.rt-Skeleton:after,.rt-Skeleton:before{visibility:hidden!important}@keyframes rt-skeleton-pulse{0%{background-color:var(--gray-a3)}to{background-color:var(--gray-a4)}}.rt-Text{line-height:var(--line-height, var(--default-line-height));letter-spacing:var(--letter-spacing, inherit)}:where(.rt-Text){margin:0}.rt-Text:where([data-accent-color]){color:var(--accent-a11)}.rt-Text:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Text:where(.rt-high-contrast){color:var(--accent-12)}@media (pointer: coarse){.rt-Text:where(label){-webkit-tap-highlight-color:transparent}.rt-Text:where(label):where(:active){outline:.75em solid var(--gray-a4);outline-offset:-.6em}}.rt-Text:where(.rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Text:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xs\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xs\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xs\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xs\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xs\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xs\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Text:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.sm\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.sm\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.sm\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.sm\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.sm\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.sm\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Text:where(.md\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.md\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.md\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.md\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.md\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.md\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.md\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Text:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.lg\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.lg\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.lg\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.lg\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.lg\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.lg\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Text:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xl\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xl\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xl\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xl\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xl\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xl\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-BaseDialogOverlay{position:fixed;inset:0}.rt-BaseDialogOverlay:before{position:fixed;content:"";inset:0;background-color:var(--color-overlay)}.rt-BaseDialogScroll{display:flex;overflow:auto;position:absolute;inset:0}.rt-BaseDialogScrollPadding{flex-grow:1;margin:auto;padding-top:var(--space-6);padding-bottom:max(var(--space-6),6vh);padding-left:var(--space-4);padding-right:var(--space-4)}.rt-BaseDialogScrollPadding:where(.rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.rt-r-align-center){margin-top:auto}@media (min-width: 520px){.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-center){margin-top:auto}}@media (min-width: 768px){.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-center){margin-top:auto}}@media (min-width: 1024px){.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-center){margin-top:auto}}@media (min-width: 1280px){.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-center){margin-top:auto}}@media (min-width: 1640px){.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-center){margin-top:auto}}.rt-BaseDialogContent{margin:auto;width:100%;z-index:1;position:relative;overflow:auto;--inset-padding-top: var(--dialog-content-padding);--inset-padding-right: var(--dialog-content-padding);--inset-padding-bottom: var(--dialog-content-padding);--inset-padding-left: var(--dialog-content-padding);padding:var(--dialog-content-padding);box-sizing:border-box;background-color:var(--color-panel-solid);box-shadow:var(--shadow-6);outline:none}.rt-BaseDialogContent:where(.rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-BaseDialogContent:where(.xs\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xs\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-BaseDialogContent:where(.sm\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.sm\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-BaseDialogContent:where(.md\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.md\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-BaseDialogContent:where(.lg\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.lg\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-BaseDialogContent:where(.xl\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xl\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (prefers-reduced-motion: no-preference){@keyframes rt-dialog-overlay-no-op{0%{opacity:1}to{opacity:1}}@keyframes rt-dialog-content-show{0%{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rt-dialog-content-hide{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(5px) scale(.99)}}.rt-BaseDialogOverlay:where([data-state=closed]){animation:rt-dialog-overlay-no-op .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=open]):before{animation:rt-fade-in .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=closed]):before{opacity:0;animation:rt-fade-out .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=open]){animation:rt-dialog-content-show .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=closed]){opacity:0;animation:rt-dialog-content-hide .1s cubic-bezier(.16,1,.3,1)}}.rt-AvatarRoot{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;-webkit-user-select:none;user-select:none;width:var(--avatar-size);height:var(--avatar-size);flex-shrink:0}.rt-AvatarImage{width:100%;height:100%;object-fit:cover;border-radius:inherit}.rt-AvatarFallback{font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;z-index:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:inherit;text-transform:uppercase}.rt-AvatarFallback:where(.rt-one-letter){font-size:var(--avatar-fallback-one-letter-font-size)}.rt-AvatarFallback:where(.rt-two-letters){font-size:var(--avatar-fallback-two-letters-font-size, var(--avatar-fallback-one-letter-font-size))}.rt-AvatarRoot:where(.rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}@media (min-width: 520px){.rt-AvatarRoot:where(.xs\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xs\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xs\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xs\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xs\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xs\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xs\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 768px){.rt-AvatarRoot:where(.sm\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.sm\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.sm\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.sm\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.sm\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.sm\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.sm\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-AvatarRoot:where(.md\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.md\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.md\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.md\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.md\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.md\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.md\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-AvatarRoot:where(.lg\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.lg\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.lg\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.lg\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.lg\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.lg\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.lg\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-AvatarRoot:where(.xl\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xl\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xl\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xl\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xl\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xl\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xl\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}.rt-AvatarRoot:where(.rt-variant-solid) :where(.rt-AvatarFallback){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-AvatarRoot:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-AvatarFallback){background-color:var(--accent-12);color:var(--accent-1)}.rt-AvatarRoot:where(.rt-variant-soft) :where(.rt-AvatarFallback){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-AvatarRoot:where(.rt-variant-soft):where(.rt-high-contrast) :where(.rt-AvatarFallback){color:var(--accent-12)}.rt-Badge{display:inline-flex;align-items:center;white-space:nowrap;font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;flex-shrink:0;line-height:1;height:-moz-fit-content;height:fit-content}.rt-Badge:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}@media (min-width: 520px){.rt-Badge:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 768px){.rt-Badge:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1024px){.rt-Badge:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1280px){.rt-Badge:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1640px){.rt-Badge:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}.rt-Badge:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-Badge:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}.rt-Badge:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a6);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-Blockquote{box-sizing:border-box;border-left:max(var(--space-1),.25em) solid var(--accent-a6);padding-left:min(var(--space-5),max(var(--space-3),.5em))}.rt-BaseButton{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;font-family:var(--default-font-family);font-style:normal;text-align:center}.rt-BaseButton:where([data-disabled]){--spinner-opacity: 1}.rt-BaseButton:where(.rt-loading){position:relative}.rt-BaseButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height)}.rt-BaseButton:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content}.rt-BaseButton:where(.rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}@media (min-width: 520px){.rt-BaseButton:where(.xs\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 768px){.rt-BaseButton:where(.sm\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1024px){.rt-BaseButton:where(.md\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1280px){.rt-BaseButton:where(.lg\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1640px){.rt-BaseButton:where(.xl\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}.rt-BaseButton:where(.rt-variant-classic){background-color:var(--accent-9);color:var(--accent-contrast);position:relative;z-index:0;background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-9) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-9),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):after{content:"";position:absolute;border-radius:inherit;pointer-events:none;inset:0;z-index:-1;border:var(--base-button-classic-after-inset) solid transparent;background-clip:content-box;background-color:inherit;background-image:linear-gradient(var(--black-a1),transparent,var(--white-a2));box-shadow:inset 0 2px 3px -1px var(--white-a4)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1);background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-12) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-12),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a3),transparent,var(--white-a2))}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-classic):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-classic):where(:hover):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])){background-color:var(--accent-9);background-image:linear-gradient(var(--black-a1),transparent);padding-top:var(--base-button-classic-active-padding-top);box-shadow:inset 0 4px 2px -2px var(--gray-a4),inset 0 1px 1px var(--gray-a7),inset 0 0 0 1px var(--gray-a5),inset 0 0 0 1px var(--accent-9),inset 0 3px 2px var(--gray-a3),inset 0 0 0 1px var(--white-a7),inset 0 -2px 1px var(--white-a5)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):after{box-shadow:none;background-color:inherit;background-image:linear-gradient(var(--black-a2),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast){background-color:var(--accent-12);filter:var(--base-button-classic-high-contrast-active-filter);box-shadow:var(--base-button__classic-active__shadow-front-layer),inset 0 0 0 1px var(--accent-12),var(--base-button__classic-active__shadow-bottom-layer)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a5),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]):after{box-shadow:none;background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-BaseButton:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(:hover){background-color:var(--accent-10)}}.rt-BaseButton:where(.rt-variant-solid):where([data-state=open]){background-color:var(--accent-10)}.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){background-color:var(--accent-10);filter:var(--base-button-solid-active-filter)}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-solid):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where([data-state=open]){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:active:not([data-state=open])){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-active-filter)}.rt-BaseButton:where(.rt-variant-solid):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost){color:var(--accent-a11)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}.rt-BaseButton:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-soft):where(:focus-visible){outline:2px solid var(--accent-8);outline-offset:-1px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-BaseButton:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-soft):where(:active:not([data-state=open])){background-color:var(--accent-a5)}.rt-BaseButton:where(.rt-variant-soft):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-BaseButton:where(.rt-variant-ghost):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-ghost):where(:active:not([data-state=open])){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:transparent}.rt-BaseButton:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-outline):where(:hover){background-color:var(--accent-a2)}}.rt-BaseButton:where(.rt-variant-outline):where([data-state=open]){background-color:var(--accent-a2)}.rt-BaseButton:where(.rt-variant-outline):where(:active:not([data-state=open])){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-outline):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-outline):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a7);background-color:transparent}.rt-BaseButton:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a7);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--accent-a8)}}.rt-BaseButton:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:active:not([data-state=open])){background-color:var(--accent-a3);box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-surface):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a2)}.rt-Button:where(:not(.rt-variant-ghost)) :where(svg){opacity:.9}.rt-Button:where(.rt-variant-ghost){padding:var(--button-ghost-padding-y) var(--button-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--button-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--button-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--button-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--button-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-Button:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Button:where(.rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}@media (min-width: 520px){.rt-Button:where(.xs\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xs\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xs\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xs\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 768px){.rt-Button:where(.sm\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.sm\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.sm\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.sm\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1024px){.rt-Button:where(.md\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.md\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.md\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.md\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.md\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.md\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.md\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1280px){.rt-Button:where(.lg\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.lg\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.lg\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.lg\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1640px){.rt-Button:where(.xl\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xl\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xl\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xl\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}.rt-Button:where(:not(.rt-variant-ghost)){font-weight:var(--font-weight-medium)}.rt-CalloutRoot{box-sizing:border-box;display:grid;align-items:flex-start;justify-content:flex-start;text-align:left;color:var(--accent-a11)}.rt-CalloutRoot:where(.rt-high-contrast){color:var(--accent-12)}.rt-CalloutIcon{display:flex;align-items:center;grid-column-start:-2;height:var(--callout-icon-height)}.rt-CalloutRoot>:where(:not(.rt-CalloutIcon)){grid-column-start:-1}.rt-CalloutRoot:where(.rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}@media (min-width: 520px){.rt-CalloutRoot:where(.xs\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 768px){.rt-CalloutRoot:where(.sm\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1024px){.rt-CalloutRoot:where(.md\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1280px){.rt-CalloutRoot:where(.lg\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1640px){.rt-CalloutRoot:where(.xl\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}.rt-CalloutRoot:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-CalloutRoot:where(.rt-variant-surface){box-shadow:inset 0 0 0 1px var(--accent-a6);background-color:var(--accent-a2)}.rt-CalloutRoot:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a7)}.rt-BaseCard{display:block;position:relative;overflow:hidden;border-radius:var(--base-card-border-radius);font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--inset-border-width: var(--base-card-border-width);--inset-border-radius: var(--base-card-border-radius);padding-top:var(--base-card-padding-top);padding-right:var(--base-card-padding-right);padding-bottom:var(--base-card-padding-bottom);padding-left:var(--base-card-padding-left);box-sizing:border-box;--inset-padding-top: calc(var(--base-card-padding-top) - var(--base-card-border-width));--inset-padding-right: calc(var(--base-card-padding-right) - var(--base-card-border-width));--inset-padding-bottom: calc(var(--base-card-padding-bottom) - var(--base-card-border-width));--inset-padding-left: calc(var(--base-card-padding-left) - var(--base-card-border-width));contain:paint}.rt-BaseCard:before,.rt-BaseCard:after{content:"";position:absolute;pointer-events:none;transition:inherit;border-radius:calc(var(--base-card-border-radius) - var(--base-card-border-width));inset:var(--base-card-border-width)}.rt-BaseCard:before{z-index:-1}.rt-Card{--base-card-padding-top: var(--card-padding);--base-card-padding-right: var(--card-padding);--base-card-padding-bottom: var(--card-padding);--base-card-padding-left: var(--card-padding);--base-card-border-radius: var(--card-border-radius);--base-card-border-width: var(--card-border-width)}.rt-Card:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-Card:where(:focus-visible):after{outline:inherit}.rt-Card:where(:focus-visible):where(:active:not([data-state=open])):before{background-image:linear-gradient(var(--focus-a2),var(--focus-a2))}.rt-Card:where(.rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}@media (min-width: 520px){.rt-Card:where(.xs\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 768px){.rt-Card:where(.sm\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1024px){.rt-Card:where(.md\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1280px){.rt-Card:where(.lg\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1640px){.rt-Card:where(.xl\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}.rt-Card:where(.rt-variant-surface){--card-border-width: 1px;--card-background-color: var(--color-panel)}.rt-Card:where(.rt-variant-surface):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-surface):after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-surface-hover-box-shadow)}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-surface-active-box-shadow)}.rt-Card:where(.rt-variant-classic){--card-border-width: 1px;--card-background-color: var(--color-panel);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-classic):after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])){transition-duration:40ms;box-shadow:var(--base-card-classic-active-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-classic-active-box-shadow-inner)}.rt-Card:where(.rt-variant-ghost){--card-border-width: 0px;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--card-padding));--margin-right-override: calc(var(--margin-right) - var(--card-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--card-padding));--margin-left-override: calc(var(--margin-left) - var(--card-padding));margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Card:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}@media (hover: hover){.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover):where(:focus-visible){background-color:var(--focus-a2)}}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]):where(:focus-visible){background-color:var(--focus-a2)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])){background-color:var(--gray-a4)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])):where(:focus-visible){background-color:var(--focus-a2)}@media (pointer: coarse){.rt-Card:where(:any-link,button,label):where(:active:not(:focus-visible,[data-state=open])):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-BaseCheckboxRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-checkbox);height:var(--skeleton-height, var(--line-height, var(--checkbox-size)));--skeleton-height-override: var(--checkbox-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--checkbox-border-radius)}.rt-BaseCheckboxRoot:before{content:"";display:block;height:var(--checkbox-size);width:var(--checkbox-size);border-radius:var(--checkbox-border-radius)}.rt-BaseCheckboxIndicator{position:absolute;width:var(--checkbox-indicator-size);height:var(--checkbox-indicator-size);transform:translate(-50%,-50%);top:50%;left:50%}.rt-BaseCheckboxRoot:where(.rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}@media (min-width: 520px){.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 768px){.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1024px){.rt-BaseCheckboxRoot:where(.md\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1280px){.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1640px){.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a3),var(--shadow-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a1));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled):before{box-shadow:var(--shadow-1);background-color:transparent;background-image:none}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):before{background-color:var(--accent-a5)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-a11)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled):before{background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-CheckboxCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-CheckboxCardsItem:where(:has(:focus-visible)){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-CheckboxCardsItem:where(:has(:focus-visible)):after{outline:inherit}.rt-CheckboxCardsItem>*{pointer-events:none}.rt-CheckboxCardsItem>:where(svg){flex-shrink:0}.rt-CheckboxCardCheckbox{position:absolute;right:var(--checkbox-cards-item-padding-left)}.rt-CheckboxCardsItem{--checkbox-cards-item-padding-right: calc(var(--checkbox-cards-item-padding-left) * 2 + var(--checkbox-cards-item-checkbox-size));--base-card-padding-top: var(--checkbox-cards-item-padding-top);--base-card-padding-right: var(--checkbox-cards-item-padding-right);--base-card-padding-bottom: var(--checkbox-cards-item-padding-bottom);--base-card-padding-left: var(--checkbox-cards-item-padding-left);--base-card-border-radius: var(--checkbox-cards-item-border-radius);--base-card-border-width: var(--checkbox-cards-item-border-width);display:flex;align-items:center;gap:var(--space-2);cursor:var(--cursor-button);-webkit-tap-highlight-color:transparent}.rt-CheckboxCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-CheckboxCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}@media (pointer: coarse){.rt-CheckboxCardsItem:where(:active:not(:focus-visible)):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-CheckboxCardsItem:where(:has(:disabled)){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-CheckboxCardsItem:where(:has(:disabled)):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-CheckboxCardsItem:where(:has(:disabled))::selection{background-color:var(--gray-a5)}.rt-CheckboxGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-CheckboxGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-CheckboxGroupItemCheckbox:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxGroupItemCheckbox:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxGroupItemCheckbox:where(:disabled):before{background-color:var(--gray-a3)}.rt-CheckboxGroupItemInner{min-width:0}.rt-CheckboxRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxRoot:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxRoot:where(:disabled):before{background-color:var(--gray-a3)}.rt-Code{--code-variant-font-size-adjust: calc(var(--code-font-size-adjust) * .95);font-family:var(--code-font-family);font-size:calc(var(--code-variant-font-size-adjust) * 1em);font-style:var(--code-font-style);font-weight:var(--code-font-weight);line-height:1.25;letter-spacing:calc(var(--code-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));border-radius:calc((.5px + .2em) * var(--radius-factor));box-sizing:border-box;padding-top:var(--code-padding-top);padding-left:var(--code-padding-left);padding-bottom:var(--code-padding-bottom);padding-right:var(--code-padding-right);height:-moz-fit-content;height:fit-content}.rt-Code :where(.rt-Code){font-size:inherit}.rt-Code:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Code:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Code:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Code:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Code:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Code:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-Code:where(.rt-variant-ghost){--code-variant-font-size-adjust: var(--code-font-size-adjust);padding:0}.rt-Code:where(.rt-variant-ghost):where([data-accent-color]){color:var(--accent-a11)}.rt-Code:where(.rt-variant-ghost):where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Code:where(.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-Code:where(.rt-variant-solid){background-color:var(--accent-a9);color:var(--accent-contrast)}.rt-Code:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid),.rt-Code:where(.rt-variant-solid):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(:hover){background-color:var(--accent-10)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(.rt-high-contrast:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(.rt-high-contrast:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-Code:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Code:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-soft),.rt-Code:where(.rt-variant-soft):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-soft):where(:hover),.rt-Code:where(.rt-variant-soft):where(:any-link,button):where(:hover){background-color:var(--accent-a4)}}.rt-Code:where(.rt-variant-outline){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a8);color:var(--accent-a11)}.rt-Code:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a7),inset 0 0 0 max(1px,.033em) var(--gray-a11);color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-outline),.rt-Code:where(.rt-variant-outline):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-outline):where(:hover),.rt-Code:where(.rt-variant-outline):where(:any-link,button):where(:hover){background-color:var(--accent-a2)}}.rt-BaseMenuContent{--scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--base-menu-content-padding);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background-color:var(--base-menu-bg);--base-menu-bg: var(--color-panel-solid);box-shadow:var(--shadow-5)}.rt-BaseMenuViewport{flex:1 1 0%;display:flex;flex-direction:column;overflow:auto;padding:var(--base-menu-content-padding);box-sizing:border-box}:where(.rt-BaseMenuContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-BaseMenuViewport{padding-right:var(--space-3)}.rt-BaseMenuItem{display:flex;align-items:center;gap:var(--space-2);height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;position:relative;outline:none;scroll-margin:var(--base-menu-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-BaseMenuShortcut{display:flex;align-items:center;margin-left:auto;padding-left:var(--space-4);color:var(--gray-a11)}.rt-BaseMenuSubTriggerIcon{color:var(--gray-12);margin-right:calc(-2px * var(--scaling))}.rt-BaseMenuItemIndicator{position:absolute;left:0;width:var(--base-menu-item-padding-left);display:inline-flex;align-items:center;justify-content:center}.rt-BaseMenuSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--base-menu-item-padding-left);margin-right:var(--base-menu-item-padding-right);background-color:var(--gray-a6)}.rt-BaseMenuLabel{display:flex;align-items:center;height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-BaseMenuItem)+.rt-BaseMenuLabel{margin-top:var(--space-2)}.rt-BaseMenuArrow{fill:var(--base-menu-bg)}.rt-BaseMenuContent:where(.rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}@media (min-width: 520px){.rt-BaseMenuContent:where(.xs\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 768px){.rt-BaseMenuContent:where(.sm\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1024px){.rt-BaseMenuContent:where(.md\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1280px){.rt-BaseMenuContent:where(.lg\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1640px){.rt-BaseMenuContent:where(.xl\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}.rt-BaseMenuItem:where([data-accent-color]){color:var(--accent-a11)}.rt-BaseMenuItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-BaseMenuItem:where([data-disabled],[data-highlighted]) :where(.rt-BaseMenuShortcut),.rt-BaseMenuSubTrigger:where([data-state=open]) :where(.rt-BaseMenuShortcut){color:inherit}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--gray-a3)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]):where([data-accent-color]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--accent-a3)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-a4)}.rt-ContextMenuContent{max-height:var(--radix-context-menu-content-available-height);transform-origin:var(--radix-context-menu-content-transform-origin)}.rt-DataListRoot{overflow-wrap:anywhere;font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--data-list-leading-trim-start: calc(var(--default-leading-trim-start) - var(--line-height) / 2);--data-list-leading-trim-end: calc(var(--default-leading-trim-end) - var(--line-height) / 2)}.rt-DataListLabel{display:flex;color:var(--gray-a11)}.rt-DataListLabel:where(.rt-high-contrast){color:var(--gray-12)}.rt-DataListLabel:where([data-accent-color]){color:var(--accent-a11)}.rt-DataListLabel:where([data-accent-color]):where(.rt-high-contrast){color:var(--accent-12)}.rt-DataListValue{display:flex;margin:0;min-width:0px;margin-top:var(--data-list-value-margin-top);margin-bottom:var(--data-list-value-margin-bottom)}.rt-DataListItem{--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}:where(.rt-DataListItem:first-child) .rt-DataListValue{margin-top:var(--data-list-first-item-value-margin-top)}:where(.rt-DataListItem:last-child) .rt-DataListValue{margin-bottom:var(--data-list-last-item-value-margin-bottom)}.rt-DataListRoot:where(.rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.rt-r-size-3){gap:calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xs\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xs\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.sm\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.sm\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.md\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.md\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.lg\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.lg\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xl\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xl\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}.rt-DataListRoot:where(.rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}.rt-DataListLabel:before,.rt-DataListValue:before{content:"‍"}.rt-DataListItem:where(.rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}@media (min-width: 520px){.rt-DataListItem:where(.xs\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xs\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 768px){.rt-DataListItem:where(.sm\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.sm\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1024px){.rt-DataListItem:where(.md\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.md\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1280px){.rt-DataListItem:where(.lg\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.lg\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1640px){.rt-DataListItem:where(.xl\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xl\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}.rt-DataListItem:where(:first-child){margin-top:var(--leading-trim-start)}.rt-DataListItem:where(:last-child){margin-bottom:var(--leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xs\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.sm\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.md\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.lg\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xl\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}.rt-DropdownMenuContent{max-height:var(--radix-dropdown-menu-content-available-height);transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.rt-Em{box-sizing:border-box;font-family:var(--em-font-family);font-size:calc(var(--em-font-size-adjust) * 1em);font-style:var(--em-font-style);font-weight:var(--em-font-weight);line-height:1.25;letter-spacing:calc(var(--em-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Em :where(.rt-Em){font-size:inherit}.rt-Heading{--leading-trim-start: var(--heading-leading-trim-start);--leading-trim-end: var(--heading-leading-trim-end);font-family:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--font-weight-bold);line-height:var(--line-height)}:where(.rt-Heading){margin:0}.rt-Heading:where([data-accent-color]){color:var(--accent-a11)}.rt-Heading:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Heading:where(.rt-high-contrast){color:var(--accent-12)}.rt-Heading:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}@media (min-width: 520px){.rt-Heading:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 768px){.rt-Heading:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1024px){.rt-Heading:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1280px){.rt-Heading:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1640px){.rt-Heading:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}.rt-HoverCardContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-4);overflow:auto;position:relative;--inset-padding-top: var(--hover-card-content-padding);--inset-padding-right: var(--hover-card-content-padding);--inset-padding-bottom: var(--hover-card-content-padding);--inset-padding-left: var(--hover-card-content-padding);padding:var(--hover-card-content-padding);box-sizing:border-box;transform-origin:var(--radix-hover-card-content-transform-origin)}.rt-HoverCardContent:where(.rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-HoverCardContent:where(.xs\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-HoverCardContent:where(.sm\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-HoverCardContent:where(.md\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-HoverCardContent:where(.lg\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-HoverCardContent:where(.xl\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}.rt-IconButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height);width:var(--base-button-height)}.rt-IconButton:where(.rt-variant-ghost){padding:var(--icon-button-ghost-padding);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--icon-button-ghost-padding));--margin-right-override: calc(var(--margin-right) - var(--icon-button-ghost-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--icon-button-ghost-padding));--margin-left-override: calc(var(--margin-left) - var(--icon-button-ghost-padding));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-IconButton:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}@media (min-width: 520px){.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 768px){.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1024px){.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1280px){.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1640px){.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}.rt-Inset{box-sizing:border-box;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;overflow:hidden;margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Inset)>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Inset:where(.rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}@media (min-width: 520px){.rt-Inset:where(.xs\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xs\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xs\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xs\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xs\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 768px){.rt-Inset:where(.sm\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.sm\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.sm\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.sm\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.sm\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1024px){.rt-Inset:where(.md\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.md\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.md\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.md\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.md\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1280px){.rt-Inset:where(.lg\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.lg\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.lg\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.lg\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.lg\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1640px){.rt-Inset:where(.xl\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xl\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xl\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xl\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xl\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}.rt-Kbd{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--default-font-family);font-weight:400;vertical-align:text-top;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;top:-.03em;font-size:.75em;min-width:1.75em;line-height:1.7em;box-sizing:border-box;padding-left:.5em;padding-right:.5em;padding-bottom:.05em;word-spacing:-.1em;border-radius:calc(var(--radius-factor) * .35em);letter-spacing:var(--letter-spacing, var(--default-letter-spacing));height:-moz-fit-content;height:fit-content;color:var(--gray-12);background-color:var(--gray-1);box-shadow:var(--kbd-box-shadow);transition:box-shadow .12s,background-color .12s}@media (hover: hover){.rt-Kbd:where(:any-link,button):where(:hover){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}}.rt-Kbd:where(:any-link,button):where([data-state=open]){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}.rt-Kbd:where(:any-link,button):where(:active:not([data-state=open])){padding-top:.05em;padding-bottom:0;transition-duration:40ms,40ms;background-color:var(--gray-2);box-shadow:inset 0 .05em var(--black-a3),0 0 0 .05em var(--gray-a7)}.rt-Kbd:where(:any-link,button):where(:focus-visible){outline:2px solid var(--focus-8)}.rt-Kbd:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Kbd:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Kbd:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Kbd:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Kbd:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Kbd:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}.rt-Link:where(:any-link,button){cursor:var(--cursor-link);text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:min(2px,max(1px,.05em));text-underline-offset:calc(.025em + 2px);text-decoration-color:var(--accent-a5)}.rt-Link:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where([data-accent-color=""]){color:var(--accent-12)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button){text-decoration-color:color-mix(in oklab,var(--accent-a5),var(--gray-a6))}}@media (pointer: coarse){.rt-Link:where(:any-link,button):where(:active:not(:focus-visible,[data-state=open])){outline:.75em solid var(--accent-a4);outline-offset:-.6em}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-line:underline;text-decoration-color:var(--accent-a6)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-color:color-mix(in oklab,var(--accent-a6),var(--gray-a6))}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-hover):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-always){text-decoration-line:underline}.rt-Link:where(:focus-visible){text-decoration-line:none;border-radius:calc(.07em * var(--radius-factor));outline-color:var(--focus-8);outline-width:2px;outline-style:solid;outline-offset:2px}.rt-Link:where(:has(.rt-Code:not(.rt-variant-ghost):only-child)){text-decoration-color:transparent}.rt-PopoverContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-5);min-width:var(--radix-popover-trigger-width);outline:0;overflow:auto;position:relative;--inset-padding-top: var(--popover-content-padding);--inset-padding-right: var(--popover-content-padding);--inset-padding-bottom: var(--popover-content-padding);--inset-padding-left: var(--popover-content-padding);padding:var(--popover-content-padding);box-sizing:border-box;transform-origin:var(--radix-popover-content-transform-origin)}.rt-PopoverContent:where(.rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-PopoverContent:where(.xs\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xs\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-PopoverContent:where(.sm\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.sm\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-PopoverContent:where(.md\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.md\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-PopoverContent:where(.lg\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.lg\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-PopoverContent:where(.xl\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xl\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}.rt-ProgressRoot{--progress-value: 0;--progress-max: 100;--progress-duration: 5s;pointer-events:none;position:relative;overflow:hidden;flex-grow:1;height:var(--progress-height);border-radius:max(calc(var(--radius-factor) * var(--progress-height) / 3),calc(var(--radius-factor) * var(--radius-thumb)))}.rt-ProgressRoot:after{position:absolute;inset:0;content:"";border-radius:inherit}.rt-ProgressIndicator{display:block;height:100%;width:100%;transform:scaleX(calc(var(--progress-value) / var(--progress-max)));transform-origin:left center;transition:transform .12s}.rt-ProgressIndicator:where([data-state=indeterminate]){animation-name:rt-progress-indicator-indeterminate-grow,var(--progress-indicator-indeterminate-animation-start),var(--progress-indicator-indeterminate-animation-repeat);animation-delay:0s,calc(var(--progress-duration) + 5s),calc(var(--progress-duration) + 7.5s);animation-duration:var(--progress-duration),2.5s,5s;animation-iteration-count:1,1,infinite;animation-fill-mode:both,none,none;animation-direction:normal,normal,alternate}.rt-ProgressIndicator:where([data-state=indeterminate]):after{position:absolute;inset:0;content:"";width:400%;animation-name:rt-progress-indicator-indeterminate-shine-from-left;animation-delay:calc(var(--progress-duration) + 5s);animation-duration:5s;animation-fill-mode:backwards;animation-iteration-count:infinite;background-image:linear-gradient(to right,transparent 25%,var(--progress-indicator-after-linear-gradient),transparent 75%)}@keyframes rt-progress-indicator-indeterminate-grow{0%{transform:scaleX(.01)}20%{transform:scaleX(.1)}30%{transform:scaleX(.6)}40%,50%{transform:scaleX(.9)}to{transform:scaleX(1)}}@keyframes rt-progress-indicator-indeterminate-shine-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.rt-ProgressRoot:where(.rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.rt-r-size-3){--progress-height: var(--space-2)}@media (min-width: 520px){.rt-ProgressRoot:where(.xs\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xs\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xs\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 768px){.rt-ProgressRoot:where(.sm\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.sm\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.sm\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1024px){.rt-ProgressRoot:where(.md\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.md\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.md\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1280px){.rt-ProgressRoot:where(.lg\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.lg\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.lg\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1640px){.rt-ProgressRoot:where(.xl\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xl\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xl\:rt-r-size-3){--progress-height: var(--space-2)}}.rt-ProgressRoot:where(.rt-variant-surface){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-surface-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-surface-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-surface):after{box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-ProgressRoot:where(.rt-variant-surface) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-surface-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-surface-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-classic){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-classic-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-classic-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-classic):after{box-shadow:var(--shadow-1)}.rt-ProgressRoot:where(.rt-variant-classic) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-classic-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-classic-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-soft){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-soft-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-soft-indeterminate-pulse;background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator){background-image:linear-gradient(var(--accent-a5),var(--accent-a5));background-color:var(--accent-8)}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-soft-indeterminate-fade{to{background-color:var(--accent-5)}}@keyframes rt-progress-indicator-soft-indeterminate-pulse{0%{background-color:var(--accent-5)}to{background-color:var(--accent-7)}}.rt-ProgressRoot:where(.rt-high-contrast){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-high-contrast-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-high-contrast-indeterminate-pulse}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator){background-color:var(--accent-12)}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-high-contrast-indeterminate-fade{to{opacity:.8}}@keyframes rt-progress-indicator-high-contrast-indeterminate-pulse{0%{opacity:.8}to{opacity:1}}.rt-Quote{box-sizing:border-box;font-family:var(--quote-font-family);font-size:calc(var(--quote-font-size-adjust) * 1em);font-style:var(--quote-font-style);font-weight:var(--quote-font-weight);line-height:1.25;letter-spacing:calc(var(--quote-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Quote :where(.rt-Quote){font-size:inherit}.rt-RadioCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-RadioCardsItem{--base-card-padding-top: var(--radio-cards-item-padding-y);--base-card-padding-right: var(--radio-cards-item-padding-x);--base-card-padding-bottom: var(--radio-cards-item-padding-y);--base-card-padding-left: var(--radio-cards-item-padding-x);--base-card-border-radius: var(--radio-cards-item-border-radius);--base-card-border-width: var(--radio-cards-item-border-width);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.rt-RadioCardsItem>*{pointer-events:none}.rt-RadioCardsItem>:where(svg){flex-shrink:0}.rt-RadioCardsItem:after{outline-offset:-1px}.rt-RadioCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}@media (min-width: 520px){.rt-RadioCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 768px){.rt-RadioCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1024px){.rt-RadioCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1280px){.rt-RadioCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1640px){.rt-RadioCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-RadioCardsItem:where([data-state=checked]):after{outline:2px solid var(--accent-indicator)}:where(.rt-RadioCardsRoot.rt-high-contrast) .rt-RadioCardsItem:where([data-state=checked]):after{outline-color:var(--accent-12)}.rt-RadioCardsItem:where(:focus-visible):after{outline:2px solid var(--focus-8)}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):before{background-image:linear-gradient(var(--focus-a3),var(--focus-a3))}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):after{outline-color:var(--focus-10)}.rt-RadioCardsItem:where(:disabled){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-RadioCardsItem:where(:disabled)::selection{background-color:var(--gray-a5)}.rt-RadioCardsItem:where(:disabled):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-RadioCardsItem:where(:disabled):after{outline-color:var(--gray-8)}.rt-RadioGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-RadioGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-RadioGroupItemInner{min-width:0}.rt-BaseRadioRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-radio);height:var(--skeleton-height, var(--line-height, var(--radio-size)));--skeleton-height-override: var(--radio-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: 100%}.rt-BaseRadioRoot:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-BaseRadioRoot:before{content:"";display:block;height:var(--radio-size);width:var(--radio-size);border-radius:100%}.rt-BaseRadioRoot:after{pointer-events:none;position:absolute;height:var(--radio-size);width:var(--radio-size);border-radius:100%;transform:scale(.4)}.rt-BaseRadioRoot:where(:checked,[data-state=checked]):after{content:""}.rt-BaseRadioRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseRadioRoot:where(.rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-BaseRadioRoot:where(.xs\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-BaseRadioRoot:where(.sm\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-BaseRadioRoot:where(.md\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.md\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.md\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-BaseRadioRoot:where(.lg\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-BaseRadioRoot:where(.xl\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator)}.rt-BaseRadioRoot:where(.rt-variant-surface):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-7),var(--shadow-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a3));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseRadioRoot:where(.rt-variant-classic):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):before{box-shadow:var(--shadow-1);background-color:var(--gray-a3);background-image:none}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):before{background-color:var(--accent-a4)}.rt-BaseRadioRoot:where(.rt-variant-soft):after{background-color:var(--accent-a11)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(.rt-high-contrast):after{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:focus-visible):before{outline-color:var(--accent-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):before{background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-ScrollAreaRoot{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%}.rt-ScrollAreaViewport{display:flex;flex-direction:column;width:100%;height:100%}.rt-ScrollAreaViewport:where(:focus-visible)+:where(.rt-ScrollAreaViewportFocusRing){position:absolute;inset:0;pointer-events:none;outline:2px solid var(--focus-8);outline-offset:-2px}.rt-ScrollAreaViewport:where(:has(.rt-ScrollAreaScrollbar[data-orientation=horizontal])){overscroll-behavior-x:contain}.rt-ScrollAreaViewport>*{display:block!important;width:-moz-fit-content;width:fit-content;flex-grow:1}.rt-ScrollAreaScrollbar{display:flex;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--gray-a3);border-radius:var(--scrollarea-scrollbar-border-radius);animation-duration:.12s;animation-timing-function:ease-out}.rt-ScrollAreaScrollbar:where([data-orientation=vertical]){flex-direction:column;width:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-vertical-margin-top);margin-bottom:var(--scrollarea-scrollbar-vertical-margin-bottom);margin-left:var(--scrollarea-scrollbar-vertical-margin-left);margin-right:var(--scrollarea-scrollbar-vertical-margin-right)}.rt-ScrollAreaScrollbar:where([data-orientation=horizontal]){flex-direction:row;height:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-horizontal-margin-top);margin-bottom:var(--scrollarea-scrollbar-horizontal-margin-bottom);margin-left:var(--scrollarea-scrollbar-horizontal-margin-left);margin-right:var(--scrollarea-scrollbar-horizontal-margin-right)}.rt-ScrollAreaThumb{position:relative;background-color:var(--gray-a8);border-radius:inherit;transition:background-color .1s}.rt-ScrollAreaThumb:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:var(--space-4);min-height:var(--space-4)}.rt-ScrollAreaScrollbar:where(.rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}@media (min-width: 520px){.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 768px){.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1024px){.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1280px){.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1640px){.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}.rt-ScrollAreaScrollbar:where([data-state=visible]){animation-name:rt-fade-in}.rt-ScrollAreaScrollbar:where([data-state=hidden]){animation-name:rt-fade-out}@media (hover: hover){.rt-ScrollAreaThumb:where(:hover){background-color:var(--gray-a9)}}.rt-SegmentedControlRoot{display:inline-grid;vertical-align:top;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch;color:var(--gray-12);background-color:var(--color-surface);background-image:linear-gradient(var(--gray-a3),var(--gray-a3));position:relative;min-width:max-content;font-family:var(--default-font-family);font-style:normal;text-align:center;isolation:isolate;border-radius:var(--segmented-control-border-radius)}.rt-SegmentedControlRoot:where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-3)}.rt-SegmentedControlItem{display:flex;align-items:stretch;-webkit-user-select:none;user-select:none}.rt-SegmentedControlItem:where(:first-child){border-top-left-radius:inherit;border-bottom-left-radius:inherit}.rt-SegmentedControlItem:where(:nth-last-child(2)){border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rt-SegmentedControlItem:where(:focus-visible){border-radius:inherit;outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SegmentedControlItemLabel :where(svg){flex-shrink:0}@media (hover: hover){:where(.rt-SegmentedControlItem[data-state=off]:not([disabled]):hover) .rt-SegmentedControlItemLabel{background-color:var(--gray-a2)}}.rt-SegmentedControlItemLabelInactive{position:absolute;transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-regular);letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing);opacity:1;transition-timing-function:ease-out}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelInactive{opacity:0;transition-timing-function:ease-in}.rt-SegmentedControlItemLabelActive{transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing);opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelActive{opacity:1;transition-timing-function:ease-out}.rt-SegmentedControlItemSeparator{z-index:-1;margin:3px -.5px;width:1px;background-color:var(--gray-a4);transition:opacity calc(.8 * var(--segmented-control-transition-duration));transition-timing-function:ease-out}:where(.rt-SegmentedControlItem:first-child) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible)) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible))+* .rt-SegmentedControlItemSeparator{opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlRoot:has(:focus-visible)) .rt-SegmentedControlItemSeparator{transition-duration:0ms}.rt-SegmentedControlIndicator{display:none;position:absolute;z-index:-1;top:0;left:0;height:100%;pointer-events:none;transition-property:transform;transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-duration:var(--segmented-control-transition-duration)}.rt-SegmentedControlIndicator:before{inset:1px;position:absolute;border-radius:max(.5px,calc(var(--segmented-control-border-radius) - 1px));background-color:var(--segmented-control-indicator-background-color);content:""}:where(.rt-SegmentedControlItem[data-state=on])~.rt-SegmentedControlIndicator{display:block}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator{--segmented-control-indicator-background-color: var(--gray-a3)}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator:before{inset:0;box-shadow:none}.rt-SegmentedControlIndicator:where(:nth-child(2)){width:100%}.rt-SegmentedControlIndicator:where(:nth-child(3)){width:50%}.rt-SegmentedControlIndicator:where(:nth-child(4)){width:calc(100% / 3)}.rt-SegmentedControlIndicator:where(:nth-child(5)){width:25%}.rt-SegmentedControlIndicator:where(:nth-child(6)){width:20%}.rt-SegmentedControlIndicator:where(:nth-child(7)){width:calc(100% / 6)}.rt-SegmentedControlIndicator:where(:nth-child(8)){width:calc(100% / 7)}.rt-SegmentedControlIndicator:where(:nth-child(9)){width:12.5%}.rt-SegmentedControlIndicator:where(:nth-child(10)){width:calc(100% / 9)}.rt-SegmentedControlIndicator:where(:nth-child(11)){width:10%}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(1))~.rt-SegmentedControlIndicator{transform:translate(0)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(2))~.rt-SegmentedControlIndicator{transform:translate(100%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(3))~.rt-SegmentedControlIndicator{transform:translate(200%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(4))~.rt-SegmentedControlIndicator{transform:translate(300%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(5))~.rt-SegmentedControlIndicator{transform:translate(400%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(6))~.rt-SegmentedControlIndicator{transform:translate(500%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(7))~.rt-SegmentedControlIndicator{transform:translate(600%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(8))~.rt-SegmentedControlIndicator{transform:translate(700%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(9))~.rt-SegmentedControlIndicator{transform:translate(800%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(10))~.rt-SegmentedControlIndicator{transform:translate(900%)}.rt-SegmentedControlItemLabel{box-sizing:border-box;display:flex;flex-grow:1;align-items:center;justify-content:center;border-radius:inherit}.rt-SegmentedControlRoot:where(.rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}@media (min-width: 520px){.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 768px){.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1024px){.rt-SegmentedControlRoot:where(.md\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1280px){.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1640px){.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}.rt-SegmentedControlRoot:where(.rt-variant-surface) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:0 0 0 1px var(--gray-a4)}.rt-SegmentedControlRoot:where(.rt-variant-classic) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:var(--shadow-2)}.rt-SelectTrigger{display:inline-flex;align-items:center;justify-content:space-between;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;line-height:var(--height);font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;color:var(--gray-12)}.rt-SelectTrigger:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SelectTriggerInner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-SelectIcon{flex-shrink:0}:where(.rt-SelectTrigger:not(.rt-variant-ghost)) .rt-SelectIcon{opacity:.9}.rt-SelectContent:where([data-side]){min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);transform-origin:var(--radix-select-content-transform-origin)}.rt-SelectViewport{box-sizing:border-box;padding:var(--select-content-padding)}:where(.rt-SelectContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-SelectViewport{padding-right:var(--space-3)}.rt-SelectItem{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);position:relative;box-sizing:border-box;outline:none;scroll-margin:var(--select-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-SelectItemIndicator{position:absolute;left:0;width:var(--select-item-indicator-width);display:inline-flex;align-items:center;justify-content:center}.rt-SelectSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--select-item-indicator-width);margin-right:var(--select-separator-margin-right);background-color:var(--gray-a6)}.rt-SelectLabel{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-SelectItem)+.rt-SelectLabel{margin-top:var(--space-2)}.rt-SelectTrigger:where(:not(.rt-variant-ghost)){box-sizing:border-box;height:var(--select-trigger-height)}.rt-SelectTrigger:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content;padding:var(--select-trigger-ghost-padding-y) var(--select-trigger-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--select-trigger-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--select-trigger-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--select-trigger-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--select-trigger-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-SelectTrigger:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-SelectTrigger:where(.rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}@media (min-width: 520px){.rt-SelectTrigger:where(.xs\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xs\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 768px){.rt-SelectTrigger:where(.sm\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.sm\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1024px){.rt-SelectTrigger:where(.md\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.md\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1280px){.rt-SelectTrigger:where(.lg\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.lg\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1640px){.rt-SelectTrigger:where(.xl\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xl\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}.rt-SelectContent:where(.rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}@media (min-width: 520px){.rt-SelectContent:where(.xs\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 768px){.rt-SelectContent:where(.sm\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1024px){.rt-SelectContent:where(.md\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1280px){.rt-SelectContent:where(.lg\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1640px){.rt-SelectContent:where(.xl\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}.rt-SelectTrigger:where(.rt-variant-surface){color:var(--gray-12);background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a8)}}.rt-SelectTrigger:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a8)}.rt-SelectTrigger:where(.rt-variant-surface):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a2);box-shadow:inset 0 0 0 1px var(--gray-a6)}.rt-SelectTrigger:where(.rt-variant-surface):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-classic){color:var(--gray-12);background-image:linear-gradient(var(--gray-2),var(--gray-1));box-shadow:var(--select-trigger-classic-box-shadow);position:relative;z-index:0}.rt-SelectTrigger:where(.rt-variant-classic):before{content:"";position:absolute;z-index:-1;inset:0;border:2px solid transparent;background-clip:content-box;border-radius:inherit;pointer-events:none;background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1) 130%),linear-gradient(var(--color-surface),transparent)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-classic):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:hover):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled){color:var(--gray-a11);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled):before{background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-SelectTrigger:where(.rt-variant-classic):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-soft),.rt-SelectTrigger:where(.rt-variant-ghost){color:var(--accent-12)}.rt-SelectTrigger:where(.rt-variant-soft):where([data-placeholder]) :where(.rt-SelectTriggerInner),.rt-SelectTrigger:where(.rt-variant-ghost):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--accent-12);opacity:.6}.rt-SelectTrigger:where(.rt-variant-soft){background-color:var(--accent-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-SelectTrigger:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-SelectTrigger:where(.rt-variant-soft):where(:focus-visible){outline-color:var(--accent-8)}.rt-SelectTrigger:where(.rt-variant-soft):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-SelectTrigger:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-SelectTrigger:where(.rt-variant-ghost):where(:disabled){color:var(--gray-a11);background-color:transparent}.rt-SelectTrigger:where(:disabled) :where(.rt-SelectIcon){color:var(--gray-a9)}.rt-SelectContent{box-shadow:var(--shadow-5);--scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--select-content-padding);overflow:hidden;background-color:var(--color-panel-solid)}.rt-SelectItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-SelectContent:where(.rt-variant-solid) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-SelectContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-SelectContent:where(.rt-variant-soft) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-a4)}.rt-Separator{display:block;background-color:var(--accent-a6)}.rt-Separator:where(.rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.rt-r-orientation-vertical){width:1px;height:var(--separator-size)}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xs\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.sm\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.md\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.lg\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xl\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}.rt-Separator:where(.rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.rt-r-size-4){--separator-size: 100%}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xs\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xs\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xs\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.sm\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.sm\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.sm\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.md\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.md\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.md\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.lg\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.lg\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.lg\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xl\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xl\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xl\:rt-r-size-4){--separator-size: 100%}}.rt-SliderRoot{--slider-thumb-size: calc(var(--slider-track-size) + var(--space-1));position:relative;display:flex;align-items:center;flex-grow:1;border-radius:max(calc(var(--radius-factor) * var(--slider-track-size) / 3),calc(var(--radius-factor) * var(--radius-thumb)));-webkit-user-select:none;user-select:none;touch-action:none}.rt-SliderRoot:where([data-orientation=horizontal]){width:-webkit-fill-available;width:-moz-available;width:stretch;height:var(--slider-track-size)}.rt-SliderRoot:where([data-orientation=vertical]){height:-webkit-fill-available;height:-moz-available;height:stretch;flex-direction:column;width:var(--slider-track-size)}.rt-SliderTrack{overflow:hidden;position:relative;flex-grow:1;border-radius:inherit}.rt-SliderTrack:where([data-orientation=horizontal]){height:var(--slider-track-size)}.rt-SliderTrack:where([data-orientation=vertical]){width:var(--slider-track-size)}.rt-SliderRange{position:absolute;border-radius:inherit}.rt-SliderRange:where([data-orientation=horizontal]){height:100%}.rt-SliderRange:where([data-orientation=vertical]){width:100%}.rt-SliderThumb{display:block;width:var(--slider-thumb-size);height:var(--slider-thumb-size);outline:0}.rt-SliderThumb:before{content:"";position:absolute;z-index:-1;width:calc(var(--slider-thumb-size) * 3);height:calc(var(--slider-thumb-size) * 3);top:50%;left:50%;transform:translate(-50%,-50%)}.rt-SliderThumb:after{content:"";position:absolute;inset:calc(-.25 * var(--slider-track-size));background-color:#fff;border-radius:max(var(--radius-1),var(--radius-thumb));box-shadow:var(--slider-thumb-box-shadow);cursor:var(--cursor-slider-thumb)}.rt-SliderThumb:where(:focus-visible):after{box-shadow:var(--slider-thumb-box-shadow),0 0 0 3px var(--accent-3),0 0 0 5px var(--focus-8)}.rt-SliderThumb:where(:active){cursor:var(--cursor-slider-thumb-active)}.rt-SliderRoot:where(.rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}@media (min-width: 520px){.rt-SliderRoot:where(.xs\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xs\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xs\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 768px){.rt-SliderRoot:where(.sm\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.sm\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.sm\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1024px){.rt-SliderRoot:where(.md\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.md\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.md\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1280px){.rt-SliderRoot:where(.lg\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.lg\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.lg\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1640px){.rt-SliderRoot:where(.xl\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xl\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xl\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack){background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack):where([data-disabled]){box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack){background-color:var(--gray-a3);position:relative}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):before{content:"";inset:0;position:absolute;border-radius:inherit;box-shadow:var(--shadow-1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):where([data-disabled]):before{opacity:.5}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 1px 3px var(--black-a1), 0 2px 4px -1px var(--black-a1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack){background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack):where([data-disabled]){background-color:var(--gray-a4);background-image:none}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderRange){background-image:linear-gradient(var(--accent-a5),var(--accent-a5)),var(--slider-range-high-contrast-background-image);background-color:var(--accent-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 0 0 1px var(--gray-a2), 0 0 0 1px var(--accent-a2), 0 1px 2px var(--gray-a4), 0 1px 3px -.5px var(--gray-a3)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-5)}.rt-SliderRoot:where(:not(.rt-high-contrast)){--slider-range-high-contrast-background-image: none}.rt-SliderRoot:where([data-disabled]){cursor:var(--cursor-disabled);mix-blend-mode:var(--slider-disabled-blend-mode)}.rt-SliderRange:where([data-disabled]){background-color:transparent;background-image:none;box-shadow:none}.rt-SliderThumb:where([data-disabled]),.rt-SliderThumb:where([data-disabled]):after{cursor:var(--cursor-disabled)}.rt-Spinner{display:block;position:relative;opacity:var(--spinner-opacity)}.rt-SpinnerLeaf{position:absolute;top:0;left:43.75%;width:12.5%;height:100%;animation:rt-spinner-leaf-fade var(--spinner-animation-duration) linear infinite}.rt-SpinnerLeaf:before{content:"";display:block;width:100%;height:30%;border-radius:var(--radius-1);background-color:currentColor}.rt-SpinnerLeaf:where(:nth-child(1)){transform:rotate(0);animation-delay:calc(-8 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(2)){transform:rotate(45deg);animation-delay:calc(-7 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(3)){transform:rotate(90deg);animation-delay:calc(-6 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(4)){transform:rotate(135deg);animation-delay:calc(-5 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(5)){transform:rotate(180deg);animation-delay:calc(-4 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(6)){transform:rotate(225deg);animation-delay:calc(-3 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(7)){transform:rotate(270deg);animation-delay:calc(-2 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(8)){transform:rotate(315deg);animation-delay:calc(-1 / 8 * var(--spinner-animation-duration))}@keyframes rt-spinner-leaf-fade{0%{opacity:1}to{opacity:.25}}.rt-Spinner:where(.rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}@media (min-width: 520px){.rt-Spinner:where(.xs\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xs\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xs\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 768px){.rt-Spinner:where(.sm\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.sm\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.sm\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1024px){.rt-Spinner:where(.md\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.md\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.md\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1280px){.rt-Spinner:where(.lg\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.lg\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.lg\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1640px){.rt-Spinner:where(.xl\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xl\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xl\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}.rt-Strong{font-family:var(--strong-font-family);font-size:calc(var(--strong-font-size-adjust) * 1em);font-style:var(--strong-font-style);font-weight:var(--strong-font-weight);letter-spacing:calc(var(--strong-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)))}.rt-Strong :where(.rt-Strong){font-size:inherit}.rt-SwitchRoot{position:relative;display:inline-flex;align-items:center;vertical-align:top;flex-shrink:0;height:var(--skeleton-height, var(--line-height, var(--switch-height)));--skeleton-height-override: var(--switch-height);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--switch-border-radius);--switch-width: calc(var(--switch-height) * 1.75);--switch-thumb-inset: 1px;--switch-thumb-size: calc(var(--switch-height) - var(--switch-thumb-inset) * 2);--switch-thumb-translate-x: calc(var(--switch-width) - var(--switch-height))}.rt-SwitchRoot:before{content:"";display:block;width:var(--switch-width);height:var(--switch-height);border-radius:var(--switch-border-radius);transition:background-position,background-color,box-shadow,filter;transition-timing-function:linear,ease-in-out,ease-in-out,ease-in-out;background-repeat:no-repeat;background-size:calc(var(--switch-width) * 2 + var(--switch-height)) 100%;cursor:var(--cursor-switch)}.rt-SwitchRoot:where([data-state=unchecked]):before{transition-duration:.12s,.14s,.14s,.14s;background-position-x:100%}.rt-SwitchRoot:where([data-state=checked]):before{transition-duration:.16s,.14s,.14s,.14s;background-position:0%}.rt-SwitchRoot:where(:active):before{transition-duration:30ms}.rt-SwitchRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-SwitchRoot:where([data-disabled]):before{cursor:var(--cursor-disabled)}.rt-SwitchThumb{background-color:#fff;position:absolute;left:var(--switch-thumb-inset);width:var(--switch-thumb-size);height:var(--switch-thumb-size);border-radius:calc(var(--switch-border-radius) - var(--switch-thumb-inset));transition:transform .14s cubic-bezier(.45,.05,.55,.95),box-shadow .14s ease-in-out}.rt-SwitchThumb:where([data-state=checked]){transform:translate(var(--switch-thumb-translate-x))}.rt-SwitchRoot:where(.rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}@media (min-width: 520px){.rt-SwitchRoot:where(.xs\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 768px){.rt-SwitchRoot:where(.sm\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1024px){.rt-SwitchRoot:where(.md\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1280px){.rt-SwitchRoot:where(.lg\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1640px){.rt-SwitchRoot:where(.xl\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}.rt-SwitchRoot:where(.rt-variant-surface):before{background-color:var(--gray-a3);background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-surface):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 1px 1px var(--black-a2),0 1px 1px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-classic):before{background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);background-color:var(--gray-a4);box-shadow:var(--shadow-1)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=unchecked]:active):before{background-color:var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2);background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a5);box-shadow:var(--shadow-1);opacity:.5}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 1px 3px var(--black-a3),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-soft):before{background-image:linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--gray-a2) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-state=unchecked]):before{background-color:var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-soft):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--accent-a3) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb){filter:saturate(.45)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a1),0 1px 3px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a2),0 1px 3px var(--accent-a3),0 2px 4px -1px var(--accent-a3)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-disabled]){filter:none;background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-BaseTabList::-webkit-scrollbar{display:none}.rt-BaseTabListTrigger{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;-webkit-user-select:none;user-select:none;box-sizing:border-box;height:var(--tab-height);padding-left:var(--tab-padding-x);padding-right:var(--tab-padding-x);color:var(--gray-a11)}.rt-BaseTabListTriggerInner,.rt-BaseTabListTriggerInnerHidden{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--tab-inner-padding-y) var(--tab-inner-padding-x);border-radius:var(--tab-inner-border-radius)}.rt-BaseTabListTriggerInner{position:absolute}:where(.rt-BaseTabListTrigger[data-state=inactive],.rt-TabNavLink:not([data-active])) .rt-BaseTabListTriggerInner{letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing)}:where(.rt-BaseTabListTrigger[data-state=active],.rt-TabNavLink[data-active]) .rt-BaseTabListTriggerInner{font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabListTriggerInnerHidden{visibility:hidden;font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabList:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}@media (min-width: 520px){.rt-BaseTabList:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 768px){.rt-BaseTabList:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1024px){.rt-BaseTabList:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.md\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1280px){.rt-BaseTabList:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1640px){.rt-BaseTabList:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}.rt-BaseTabList{box-shadow:inset 0 -1px 0 0 var(--gray-a5);display:flex;justify-content:flex-start;overflow-x:auto;white-space:nowrap;font-family:var(--default-font-family);font-style:normal;scrollbar-width:none}@media (hover: hover){.rt-BaseTabListTrigger:where(:hover){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--gray-a3)}.rt-BaseTabListTrigger:where(:focus-visible:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--accent-a3)}}.rt-BaseTabListTrigger:where([data-state=active],[data-active]){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:focus-visible) :where(.rt-BaseTabListTriggerInner){outline:2px solid var(--focus-8);outline-offset:-2px}.rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{box-sizing:border-box;content:"";height:2px;position:absolute;bottom:0;left:0;right:0;background-color:var(--accent-indicator)}:where(.rt-BaseTabList.rt-high-contrast) .rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{background-color:var(--accent-12)}.rt-TabNavItem{display:flex}.rt-TableRootTable{--table-row-background-color: transparent;--table-row-box-shadow: inset 0 -1px var(--gray-a5);width:100%;text-align:left;vertical-align:top;border-collapse:collapse;border-radius:calc(var(--table-border-radius) - 1px);border-spacing:0;box-sizing:border-box;height:0}.rt-TableHeader,.rt-TableBody{vertical-align:inherit}.rt-TableRow{vertical-align:inherit;color:var(--gray-12)}.rt-TableCell{background-color:var(--table-row-background-color);box-shadow:var(--table-row-box-shadow);box-sizing:border-box;vertical-align:inherit;padding:var(--table-cell-padding);height:var(--table-cell-min-height)}.rt-Inset :where(.rt-TableCell:first-child){padding-left:var(--inset-padding-left, var(--table-cell-padding))}.rt-Inset :where(.rt-TableCell:last-child){padding-right:var(--inset-padding-right, var(--table-cell-padding))}.rt-TableColumnHeaderCell{font-weight:700}.rt-TableRowHeaderCell{font-weight:400}.rt-TableRoot:where(.rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}@media (min-width: 520px){.rt-TableRoot:where(.xs\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xs\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 768px){.rt-TableRoot:where(.sm\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.sm\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1024px){.rt-TableRoot:where(.md\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.md\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1280px){.rt-TableRoot:where(.lg\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.lg\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1640px){.rt-TableRoot:where(.xl\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xl\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}.rt-TableRoot:where(.rt-variant-surface){box-sizing:border-box;border:1px solid var(--gray-a5);border-radius:var(--table-border-radius);background-color:var(--color-panel);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel);background-clip:padding-box;position:relative}@supports (box-shadow: 0 0 0 1px color-mix(in oklab,white,black)){.rt-TableRoot:where(.rt-variant-surface){border-color:color-mix(in oklab,var(--gray-a5),var(--gray-6))}}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable){overflow:hidden}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableHeader){--table-row-background-color: var(--gray-a2)}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableBody) :where(.rt-TableRow:last-child){--table-row-box-shadow: none}.rt-TableRoot:where(.rt-variant-ghost){--scrollarea-scrollbar-horizontal-margin-left: 0;--scrollarea-scrollbar-horizontal-margin-right: 0}.rt-TabsContent{position:relative;outline:0}.rt-TabsContent:where(:focus-visible){outline:2px solid var(--focus-8)}.rt-TextAreaRoot:where(:focus-within){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-TextAreaInput::-webkit-scrollbar{width:var(--space-3);height:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track,.rt-TextAreaInput::-webkit-scrollbar-thumb{background-clip:content-box;border:var(--space-1) solid transparent;border-radius:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track{background-color:var(--gray-a3)}.rt-TextAreaInput::-webkit-scrollbar-thumb{background-color:var(--gray-a8)}@media (hover: hover){:where(.rt-TextAreaInput:not(:disabled))::-webkit-scrollbar-thumb:hover{background-color:var(--gray-a9)}}.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}.rt-TextAreaRoot{padding:var(--text-area-border-width);display:flex;flex-direction:column;box-sizing:border-box;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;overflow:hidden}.rt-TextAreaInput{padding:var(--text-area-padding-y) var(--text-area-padding-x);border-radius:inherit;resize:none;display:block;width:100%;flex-grow:1;cursor:auto}.rt-TextAreaRoot:where(.rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}@media (min-width: 520px){.rt-TextAreaRoot:where(.xs\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 768px){.rt-TextAreaRoot:where(.sm\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1024px){.rt-TextAreaRoot:where(.md\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.md\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.md\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1280px){.rt-TextAreaRoot:where(.lg\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1640px){.rt-TextAreaRoot:where(.xl\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}.rt-TextAreaRoot:where(.rt-variant-surface){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-surface) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a6)}.rt-TextAreaRoot:where(.rt-variant-classic){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-classic) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextAreaRoot:where(.rt-variant-soft){--text-area-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::selection{background-color:var(--accent-a5)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::placeholder{color:var(--accent-12);opacity:.65}.rt-TextAreaRoot:where(.rt-variant-soft):where(:focus-within){outline-color:var(--accent-8)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextAreaInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextAreaInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextAreaInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextAreaInput:where(:disabled,:read-only)::selection{background-color:var(--gray-a5)}.rt-TextAreaRoot:where(:focus-within:has(.rt-TextAreaInput:where(:disabled,:read-only))){outline-color:var(--gray-8)}@supports selector(:has(*)){.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:focus)){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){.rt-TextFieldRoot:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}.rt-TextFieldRoot::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput{width:100%;display:flex;align-items:center;text-align:inherit;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));text-indent:var(--text-field-padding)}.rt-TextFieldInput:where([type=number]){-moz-appearance:textfield}.rt-TextFieldInput::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput::-webkit-calendar-picker-indicator{box-sizing:content-box;width:var(--text-field-native-icon-size);height:var(--text-field-native-icon-size);padding:var(--space-1);margin-left:0;margin-right:calc(var(--space-1) * -1);border-radius:calc(var(--text-field-border-radius) - 2px)}.rt-TextFieldInput:where(:not([type=time]))::-webkit-calendar-picker-indicator{margin-left:var(--space-1)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:hover){background-color:var(--gray-a3)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:focus-visible){outline:2px solid var(--text-field-focus-color)}.rt-TextFieldInput::-webkit-datetime-edit-ampm-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-day-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-hour-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-millisecond-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-minute-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-month-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-second-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-week-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-year-field:where(:focus){background-color:var(--text-field-selection-color);color:inherit;outline:none}@supports selector(:has(*)){.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}}.rt-TextFieldSlot{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;cursor:text}.rt-TextFieldSlot:where(:not([data-side=right])){order:-1;margin-left:calc(var(--text-field-border-width) * -1);margin-right:0}.rt-TextFieldSlot:where([data-side=right]),:where(.rt-TextFieldSlot:not([data-side=right]))~.rt-TextFieldSlot:where(:not([data-side=left])){order:0;margin-left:0;margin-right:calc(var(--text-field-border-width) * -1)}.rt-TextFieldRoot{box-sizing:border-box;height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:var(--text-field-border-radius);display:flex;align-items:stretch;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start}.rt-TextFieldInput:where([type=date],[type=datetime-local],[type=time],[type=week],[type=month]){text-indent:0;padding-left:var(--text-field-padding);padding-right:var(--text-field-padding)}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot:not([data-side=right]))){text-indent:0;padding-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot[data-side=right],~.rt-TextFieldSlot:not([data-side=right])~.rt-TextFieldSlot:not([data-side=left]))){padding-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.rt-TextFieldRoot:where(.rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}@media (min-width: 520px){.rt-TextFieldRoot:where(.xs\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 768px){.rt-TextFieldRoot:where(.sm\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1024px){.rt-TextFieldRoot:where(.md\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.md\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1280px){.rt-TextFieldRoot:where(.lg\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1640px){.rt-TextFieldRoot:where(.xl\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}.rt-TextFieldRoot:where(.rt-variant-surface){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a6)}.rt-TextFieldRoot:where(.rt-variant-classic){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextFieldRoot:where(.rt-variant-soft){--text-field-selection-color: var(--accent-a5);--text-field-focus-color: var(--accent-8);--text-field-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldInput)::placeholder{color:var(--accent-12);opacity:.6}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot){color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextFieldInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextFieldInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown)~:where(.rt-TextFieldSlot){cursor:var(--cursor-disabled)}.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){--text-field-selection-color: var(--gray-a5);--text-field-focus-color: var(--gray-8)}.rt-ThemePanelShortcut:where(:focus-visible){outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--accent-9)}.rt-ThemePanelSwatch,.rt-ThemePanelRadioCard{position:relative}.rt-ThemePanelSwatchInput,.rt-ThemePanelRadioCardInput{-webkit-appearance:none;appearance:none;margin:0;outline:none;outline-width:2px;position:absolute;inset:0;border-radius:inherit;width:100%;height:100%}.rt-ThemePanelSwatch{width:var(--space-5);height:var(--space-5);border-radius:100%}.rt-ThemePanelSwatchInput{outline-offset:2px}.rt-ThemePanelSwatchInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelSwatchInput:where(:focus-visible){outline-style:solid;outline-color:var(--accent-9)}.rt-ThemePanelRadioCard{border-radius:var(--radius-1);box-shadow:0 0 0 1px var(--gray-7)}.rt-ThemePanelRadioCardInput{outline-offset:-1px}.rt-ThemePanelRadioCardInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelRadioCardInput:where(:focus-visible){background-color:var(--accent-a3);outline-style:solid;outline-color:var(--accent-9)}.rt-TooltipContent{box-sizing:border-box;padding:var(--space-1) var(--space-2);background-color:var(--gray-12);border-radius:var(--radius-2);transform-origin:var(--radix-tooltip-content-transform-origin);animation-duration:.14s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion: no-preference){.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}}.rt-TooltipText{color:var(--gray-1);-webkit-user-select:none;user-select:none;cursor:default}.rt-TooltipArrow{fill:var(--gray-12)}.radix-themes:where([data-is-root-theme=true]){position:relative;z-index:0;min-height:100vh}@supports (min-height: 100dvh){.radix-themes:where([data-is-root-theme=true]){min-height:100dvh}}.rt-r-ai-start{align-items:flex-start}.rt-r-ai-center{align-items:center}.rt-r-ai-end{align-items:flex-end}.rt-r-ai-baseline{align-items:baseline}.rt-r-ai-stretch{align-items:stretch}@media (min-width: 520px){.xs\:rt-r-ai-start{align-items:flex-start}.xs\:rt-r-ai-center{align-items:center}.xs\:rt-r-ai-end{align-items:flex-end}.xs\:rt-r-ai-baseline{align-items:baseline}.xs\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 768px){.sm\:rt-r-ai-start{align-items:flex-start}.sm\:rt-r-ai-center{align-items:center}.sm\:rt-r-ai-end{align-items:flex-end}.sm\:rt-r-ai-baseline{align-items:baseline}.sm\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1024px){.md\:rt-r-ai-start{align-items:flex-start}.md\:rt-r-ai-center{align-items:center}.md\:rt-r-ai-end{align-items:flex-end}.md\:rt-r-ai-baseline{align-items:baseline}.md\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1280px){.lg\:rt-r-ai-start{align-items:flex-start}.lg\:rt-r-ai-center{align-items:center}.lg\:rt-r-ai-end{align-items:flex-end}.lg\:rt-r-ai-baseline{align-items:baseline}.lg\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1640px){.xl\:rt-r-ai-start{align-items:flex-start}.xl\:rt-r-ai-center{align-items:center}.xl\:rt-r-ai-end{align-items:flex-end}.xl\:rt-r-ai-baseline{align-items:baseline}.xl\:rt-r-ai-stretch{align-items:stretch}}.rt-r-as-start{align-self:flex-start}.rt-r-as-center{align-self:center}.rt-r-as-end{align-self:flex-end}.rt-r-as-baseline{align-self:baseline}.rt-r-as-stretch{align-self:stretch}@media (min-width: 520px){.xs\:rt-r-as-start{align-self:flex-start}.xs\:rt-r-as-center{align-self:center}.xs\:rt-r-as-end{align-self:flex-end}.xs\:rt-r-as-baseline{align-self:baseline}.xs\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 768px){.sm\:rt-r-as-start{align-self:flex-start}.sm\:rt-r-as-center{align-self:center}.sm\:rt-r-as-end{align-self:flex-end}.sm\:rt-r-as-baseline{align-self:baseline}.sm\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1024px){.md\:rt-r-as-start{align-self:flex-start}.md\:rt-r-as-center{align-self:center}.md\:rt-r-as-end{align-self:flex-end}.md\:rt-r-as-baseline{align-self:baseline}.md\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1280px){.lg\:rt-r-as-start{align-self:flex-start}.lg\:rt-r-as-center{align-self:center}.lg\:rt-r-as-end{align-self:flex-end}.lg\:rt-r-as-baseline{align-self:baseline}.lg\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1640px){.xl\:rt-r-as-start{align-self:flex-start}.xl\:rt-r-as-center{align-self:center}.xl\:rt-r-as-end{align-self:flex-end}.xl\:rt-r-as-baseline{align-self:baseline}.xl\:rt-r-as-stretch{align-self:stretch}}.rt-r-display-block{display:block}.rt-r-display-inline{display:inline}.rt-r-display-inline-block{display:inline-block}.rt-r-display-flex{display:flex}.rt-r-display-inline-flex{display:inline-flex}.rt-r-display-grid{display:grid}.rt-r-display-inline-grid{display:inline-grid}.rt-r-display-none{display:none}.rt-r-display-contents{display:contents}@media (min-width: 520px){.xs\:rt-r-display-block{display:block}.xs\:rt-r-display-inline{display:inline}.xs\:rt-r-display-inline-block{display:inline-block}.xs\:rt-r-display-flex{display:flex}.xs\:rt-r-display-inline-flex{display:inline-flex}.xs\:rt-r-display-grid{display:grid}.xs\:rt-r-display-inline-grid{display:inline-grid}.xs\:rt-r-display-none{display:none}.xs\:rt-r-display-contents{display:contents}}@media (min-width: 768px){.sm\:rt-r-display-block{display:block}.sm\:rt-r-display-inline{display:inline}.sm\:rt-r-display-inline-block{display:inline-block}.sm\:rt-r-display-flex{display:flex}.sm\:rt-r-display-inline-flex{display:inline-flex}.sm\:rt-r-display-grid{display:grid}.sm\:rt-r-display-inline-grid{display:inline-grid}.sm\:rt-r-display-none{display:none}.sm\:rt-r-display-contents{display:contents}}@media (min-width: 1024px){.md\:rt-r-display-block{display:block}.md\:rt-r-display-inline{display:inline}.md\:rt-r-display-inline-block{display:inline-block}.md\:rt-r-display-flex{display:flex}.md\:rt-r-display-inline-flex{display:inline-flex}.md\:rt-r-display-grid{display:grid}.md\:rt-r-display-inline-grid{display:inline-grid}.md\:rt-r-display-none{display:none}.md\:rt-r-display-contents{display:contents}}@media (min-width: 1280px){.lg\:rt-r-display-block{display:block}.lg\:rt-r-display-inline{display:inline}.lg\:rt-r-display-inline-block{display:inline-block}.lg\:rt-r-display-flex{display:flex}.lg\:rt-r-display-inline-flex{display:inline-flex}.lg\:rt-r-display-grid{display:grid}.lg\:rt-r-display-inline-grid{display:inline-grid}.lg\:rt-r-display-none{display:none}.lg\:rt-r-display-contents{display:contents}}@media (min-width: 1640px){.xl\:rt-r-display-block{display:block}.xl\:rt-r-display-inline{display:inline}.xl\:rt-r-display-inline-block{display:inline-block}.xl\:rt-r-display-flex{display:flex}.xl\:rt-r-display-inline-flex{display:inline-flex}.xl\:rt-r-display-grid{display:grid}.xl\:rt-r-display-inline-grid{display:inline-grid}.xl\:rt-r-display-none{display:none}.xl\:rt-r-display-contents{display:contents}}.rt-r-fb{flex-basis:var(--flex-basis)}@media (min-width: 520px){.xs\:rt-r-fb{flex-basis:var(--flex-basis-xs)}}@media (min-width: 768px){.sm\:rt-r-fb{flex-basis:var(--flex-basis-sm)}}@media (min-width: 1024px){.md\:rt-r-fb{flex-basis:var(--flex-basis-md)}}@media (min-width: 1280px){.lg\:rt-r-fb{flex-basis:var(--flex-basis-lg)}}@media (min-width: 1640px){.xl\:rt-r-fb{flex-basis:var(--flex-basis-xl)}}.rt-r-fd-row{flex-direction:row}.rt-r-fd-column{flex-direction:column}.rt-r-fd-row-reverse{flex-direction:row-reverse}.rt-r-fd-column-reverse{flex-direction:column-reverse}@media (min-width: 520px){.xs\:rt-r-fd-row{flex-direction:row}.xs\:rt-r-fd-column{flex-direction:column}.xs\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xs\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 768px){.sm\:rt-r-fd-row{flex-direction:row}.sm\:rt-r-fd-column{flex-direction:column}.sm\:rt-r-fd-row-reverse{flex-direction:row-reverse}.sm\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1024px){.md\:rt-r-fd-row{flex-direction:row}.md\:rt-r-fd-column{flex-direction:column}.md\:rt-r-fd-row-reverse{flex-direction:row-reverse}.md\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1280px){.lg\:rt-r-fd-row{flex-direction:row}.lg\:rt-r-fd-column{flex-direction:column}.lg\:rt-r-fd-row-reverse{flex-direction:row-reverse}.lg\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1640px){.xl\:rt-r-fd-row{flex-direction:row}.xl\:rt-r-fd-column{flex-direction:column}.xl\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xl\:rt-r-fd-column-reverse{flex-direction:column-reverse}}.rt-r-fg{flex-grow:var(--flex-grow)}.rt-r-fg-0{flex-grow:0}.rt-r-fg-1{flex-grow:1}@media (min-width: 520px){.xs\:rt-r-fg{flex-grow:var(--flex-grow-xs)}.xs\:rt-r-fg-0{flex-grow:0}.xs\:rt-r-fg-1{flex-grow:1}}@media (min-width: 768px){.sm\:rt-r-fg{flex-grow:var(--flex-grow-sm)}.sm\:rt-r-fg-0{flex-grow:0}.sm\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1024px){.md\:rt-r-fg{flex-grow:var(--flex-grow-md)}.md\:rt-r-fg-0{flex-grow:0}.md\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1280px){.lg\:rt-r-fg{flex-grow:var(--flex-grow-lg)}.lg\:rt-r-fg-0{flex-grow:0}.lg\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1640px){.xl\:rt-r-fg{flex-grow:var(--flex-grow-xl)}.xl\:rt-r-fg-0{flex-grow:0}.xl\:rt-r-fg-1{flex-grow:1}}.rt-r-fs{flex-shrink:var(--flex-shrink)}.rt-r-fs-0{flex-shrink:0}.rt-r-fs-1{flex-shrink:1}@media (min-width: 520px){.xs\:rt-r-fs{flex-shrink:var(--flex-shrink-xs)}.xs\:rt-r-fs-0{flex-shrink:0}.xs\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 768px){.sm\:rt-r-fs{flex-shrink:var(--flex-shrink-sm)}.sm\:rt-r-fs-0{flex-shrink:0}.sm\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1024px){.md\:rt-r-fs{flex-shrink:var(--flex-shrink-md)}.md\:rt-r-fs-0{flex-shrink:0}.md\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1280px){.lg\:rt-r-fs{flex-shrink:var(--flex-shrink-lg)}.lg\:rt-r-fs-0{flex-shrink:0}.lg\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1640px){.xl\:rt-r-fs{flex-shrink:var(--flex-shrink-xl)}.xl\:rt-r-fs-0{flex-shrink:0}.xl\:rt-r-fs-1{flex-shrink:1}}.rt-r-fw-nowrap{flex-wrap:nowrap}.rt-r-fw-wrap{flex-wrap:wrap}.rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}@media (min-width: 520px){.xs\:rt-r-fw-nowrap{flex-wrap:nowrap}.xs\:rt-r-fw-wrap{flex-wrap:wrap}.xs\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 768px){.sm\:rt-r-fw-nowrap{flex-wrap:nowrap}.sm\:rt-r-fw-wrap{flex-wrap:wrap}.sm\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1024px){.md\:rt-r-fw-nowrap{flex-wrap:nowrap}.md\:rt-r-fw-wrap{flex-wrap:wrap}.md\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1280px){.lg\:rt-r-fw-nowrap{flex-wrap:nowrap}.lg\:rt-r-fw-wrap{flex-wrap:wrap}.lg\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1640px){.xl\:rt-r-fw-nowrap{flex-wrap:nowrap}.xl\:rt-r-fw-wrap{flex-wrap:wrap}.xl\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}.rt-r-gap{gap:var(--gap)}.rt-r-gap-0{gap:0}.rt-r-gap-1{gap:var(--space-1)}.rt-r-gap-2{gap:var(--space-2)}.rt-r-gap-3{gap:var(--space-3)}.rt-r-gap-4{gap:var(--space-4)}.rt-r-gap-5{gap:var(--space-5)}.rt-r-gap-6{gap:var(--space-6)}.rt-r-gap-7{gap:var(--space-7)}.rt-r-gap-8{gap:var(--space-8)}.rt-r-gap-9{gap:var(--space-9)}.rt-r-cg{column-gap:var(--column-gap)}.rt-r-cg-0{column-gap:0}.rt-r-cg-1{column-gap:var(--space-1)}.rt-r-cg-2{column-gap:var(--space-2)}.rt-r-cg-3{column-gap:var(--space-3)}.rt-r-cg-4{column-gap:var(--space-4)}.rt-r-cg-5{column-gap:var(--space-5)}.rt-r-cg-6{column-gap:var(--space-6)}.rt-r-cg-7{column-gap:var(--space-7)}.rt-r-cg-8{column-gap:var(--space-8)}.rt-r-cg-9{column-gap:var(--space-9)}.rt-r-rg{row-gap:var(--row-gap)}.rt-r-rg-0{row-gap:0}.rt-r-rg-1{row-gap:var(--space-1)}.rt-r-rg-2{row-gap:var(--space-2)}.rt-r-rg-3{row-gap:var(--space-3)}.rt-r-rg-4{row-gap:var(--space-4)}.rt-r-rg-5{row-gap:var(--space-5)}.rt-r-rg-6{row-gap:var(--space-6)}.rt-r-rg-7{row-gap:var(--space-7)}.rt-r-rg-8{row-gap:var(--space-8)}.rt-r-rg-9{row-gap:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-gap{gap:var(--gap-xs)}.xs\:rt-r-gap-0{gap:0}.xs\:rt-r-gap-1{gap:var(--space-1)}.xs\:rt-r-gap-2{gap:var(--space-2)}.xs\:rt-r-gap-3{gap:var(--space-3)}.xs\:rt-r-gap-4{gap:var(--space-4)}.xs\:rt-r-gap-5{gap:var(--space-5)}.xs\:rt-r-gap-6{gap:var(--space-6)}.xs\:rt-r-gap-7{gap:var(--space-7)}.xs\:rt-r-gap-8{gap:var(--space-8)}.xs\:rt-r-gap-9{gap:var(--space-9)}.xs\:rt-r-cg{column-gap:var(--column-gap-xs)}.xs\:rt-r-cg-0{column-gap:0}.xs\:rt-r-cg-1{column-gap:var(--space-1)}.xs\:rt-r-cg-2{column-gap:var(--space-2)}.xs\:rt-r-cg-3{column-gap:var(--space-3)}.xs\:rt-r-cg-4{column-gap:var(--space-4)}.xs\:rt-r-cg-5{column-gap:var(--space-5)}.xs\:rt-r-cg-6{column-gap:var(--space-6)}.xs\:rt-r-cg-7{column-gap:var(--space-7)}.xs\:rt-r-cg-8{column-gap:var(--space-8)}.xs\:rt-r-cg-9{column-gap:var(--space-9)}.xs\:rt-r-rg{row-gap:var(--row-gap-xs)}.xs\:rt-r-rg-0{row-gap:0}.xs\:rt-r-rg-1{row-gap:var(--space-1)}.xs\:rt-r-rg-2{row-gap:var(--space-2)}.xs\:rt-r-rg-3{row-gap:var(--space-3)}.xs\:rt-r-rg-4{row-gap:var(--space-4)}.xs\:rt-r-rg-5{row-gap:var(--space-5)}.xs\:rt-r-rg-6{row-gap:var(--space-6)}.xs\:rt-r-rg-7{row-gap:var(--space-7)}.xs\:rt-r-rg-8{row-gap:var(--space-8)}.xs\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-gap{gap:var(--gap-sm)}.sm\:rt-r-gap-0{gap:0}.sm\:rt-r-gap-1{gap:var(--space-1)}.sm\:rt-r-gap-2{gap:var(--space-2)}.sm\:rt-r-gap-3{gap:var(--space-3)}.sm\:rt-r-gap-4{gap:var(--space-4)}.sm\:rt-r-gap-5{gap:var(--space-5)}.sm\:rt-r-gap-6{gap:var(--space-6)}.sm\:rt-r-gap-7{gap:var(--space-7)}.sm\:rt-r-gap-8{gap:var(--space-8)}.sm\:rt-r-gap-9{gap:var(--space-9)}.sm\:rt-r-cg{column-gap:var(--column-gap-sm)}.sm\:rt-r-cg-0{column-gap:0}.sm\:rt-r-cg-1{column-gap:var(--space-1)}.sm\:rt-r-cg-2{column-gap:var(--space-2)}.sm\:rt-r-cg-3{column-gap:var(--space-3)}.sm\:rt-r-cg-4{column-gap:var(--space-4)}.sm\:rt-r-cg-5{column-gap:var(--space-5)}.sm\:rt-r-cg-6{column-gap:var(--space-6)}.sm\:rt-r-cg-7{column-gap:var(--space-7)}.sm\:rt-r-cg-8{column-gap:var(--space-8)}.sm\:rt-r-cg-9{column-gap:var(--space-9)}.sm\:rt-r-rg{row-gap:var(--row-gap-sm)}.sm\:rt-r-rg-0{row-gap:0}.sm\:rt-r-rg-1{row-gap:var(--space-1)}.sm\:rt-r-rg-2{row-gap:var(--space-2)}.sm\:rt-r-rg-3{row-gap:var(--space-3)}.sm\:rt-r-rg-4{row-gap:var(--space-4)}.sm\:rt-r-rg-5{row-gap:var(--space-5)}.sm\:rt-r-rg-6{row-gap:var(--space-6)}.sm\:rt-r-rg-7{row-gap:var(--space-7)}.sm\:rt-r-rg-8{row-gap:var(--space-8)}.sm\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-gap{gap:var(--gap-md)}.md\:rt-r-gap-0{gap:0}.md\:rt-r-gap-1{gap:var(--space-1)}.md\:rt-r-gap-2{gap:var(--space-2)}.md\:rt-r-gap-3{gap:var(--space-3)}.md\:rt-r-gap-4{gap:var(--space-4)}.md\:rt-r-gap-5{gap:var(--space-5)}.md\:rt-r-gap-6{gap:var(--space-6)}.md\:rt-r-gap-7{gap:var(--space-7)}.md\:rt-r-gap-8{gap:var(--space-8)}.md\:rt-r-gap-9{gap:var(--space-9)}.md\:rt-r-cg{column-gap:var(--column-gap-md)}.md\:rt-r-cg-0{column-gap:0}.md\:rt-r-cg-1{column-gap:var(--space-1)}.md\:rt-r-cg-2{column-gap:var(--space-2)}.md\:rt-r-cg-3{column-gap:var(--space-3)}.md\:rt-r-cg-4{column-gap:var(--space-4)}.md\:rt-r-cg-5{column-gap:var(--space-5)}.md\:rt-r-cg-6{column-gap:var(--space-6)}.md\:rt-r-cg-7{column-gap:var(--space-7)}.md\:rt-r-cg-8{column-gap:var(--space-8)}.md\:rt-r-cg-9{column-gap:var(--space-9)}.md\:rt-r-rg{row-gap:var(--row-gap-md)}.md\:rt-r-rg-0{row-gap:0}.md\:rt-r-rg-1{row-gap:var(--space-1)}.md\:rt-r-rg-2{row-gap:var(--space-2)}.md\:rt-r-rg-3{row-gap:var(--space-3)}.md\:rt-r-rg-4{row-gap:var(--space-4)}.md\:rt-r-rg-5{row-gap:var(--space-5)}.md\:rt-r-rg-6{row-gap:var(--space-6)}.md\:rt-r-rg-7{row-gap:var(--space-7)}.md\:rt-r-rg-8{row-gap:var(--space-8)}.md\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-gap{gap:var(--gap-lg)}.lg\:rt-r-gap-0{gap:0}.lg\:rt-r-gap-1{gap:var(--space-1)}.lg\:rt-r-gap-2{gap:var(--space-2)}.lg\:rt-r-gap-3{gap:var(--space-3)}.lg\:rt-r-gap-4{gap:var(--space-4)}.lg\:rt-r-gap-5{gap:var(--space-5)}.lg\:rt-r-gap-6{gap:var(--space-6)}.lg\:rt-r-gap-7{gap:var(--space-7)}.lg\:rt-r-gap-8{gap:var(--space-8)}.lg\:rt-r-gap-9{gap:var(--space-9)}.lg\:rt-r-cg{column-gap:var(--column-gap-lg)}.lg\:rt-r-cg-0{column-gap:0}.lg\:rt-r-cg-1{column-gap:var(--space-1)}.lg\:rt-r-cg-2{column-gap:var(--space-2)}.lg\:rt-r-cg-3{column-gap:var(--space-3)}.lg\:rt-r-cg-4{column-gap:var(--space-4)}.lg\:rt-r-cg-5{column-gap:var(--space-5)}.lg\:rt-r-cg-6{column-gap:var(--space-6)}.lg\:rt-r-cg-7{column-gap:var(--space-7)}.lg\:rt-r-cg-8{column-gap:var(--space-8)}.lg\:rt-r-cg-9{column-gap:var(--space-9)}.lg\:rt-r-rg{row-gap:var(--row-gap-lg)}.lg\:rt-r-rg-0{row-gap:0}.lg\:rt-r-rg-1{row-gap:var(--space-1)}.lg\:rt-r-rg-2{row-gap:var(--space-2)}.lg\:rt-r-rg-3{row-gap:var(--space-3)}.lg\:rt-r-rg-4{row-gap:var(--space-4)}.lg\:rt-r-rg-5{row-gap:var(--space-5)}.lg\:rt-r-rg-6{row-gap:var(--space-6)}.lg\:rt-r-rg-7{row-gap:var(--space-7)}.lg\:rt-r-rg-8{row-gap:var(--space-8)}.lg\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-gap{gap:var(--gap-xl)}.xl\:rt-r-gap-0{gap:0}.xl\:rt-r-gap-1{gap:var(--space-1)}.xl\:rt-r-gap-2{gap:var(--space-2)}.xl\:rt-r-gap-3{gap:var(--space-3)}.xl\:rt-r-gap-4{gap:var(--space-4)}.xl\:rt-r-gap-5{gap:var(--space-5)}.xl\:rt-r-gap-6{gap:var(--space-6)}.xl\:rt-r-gap-7{gap:var(--space-7)}.xl\:rt-r-gap-8{gap:var(--space-8)}.xl\:rt-r-gap-9{gap:var(--space-9)}.xl\:rt-r-cg{column-gap:var(--column-gap-xl)}.xl\:rt-r-cg-0{column-gap:0}.xl\:rt-r-cg-1{column-gap:var(--space-1)}.xl\:rt-r-cg-2{column-gap:var(--space-2)}.xl\:rt-r-cg-3{column-gap:var(--space-3)}.xl\:rt-r-cg-4{column-gap:var(--space-4)}.xl\:rt-r-cg-5{column-gap:var(--space-5)}.xl\:rt-r-cg-6{column-gap:var(--space-6)}.xl\:rt-r-cg-7{column-gap:var(--space-7)}.xl\:rt-r-cg-8{column-gap:var(--space-8)}.xl\:rt-r-cg-9{column-gap:var(--space-9)}.xl\:rt-r-rg{row-gap:var(--row-gap-xl)}.xl\:rt-r-rg-0{row-gap:0}.xl\:rt-r-rg-1{row-gap:var(--space-1)}.xl\:rt-r-rg-2{row-gap:var(--space-2)}.xl\:rt-r-rg-3{row-gap:var(--space-3)}.xl\:rt-r-rg-4{row-gap:var(--space-4)}.xl\:rt-r-rg-5{row-gap:var(--space-5)}.xl\:rt-r-rg-6{row-gap:var(--space-6)}.xl\:rt-r-rg-7{row-gap:var(--space-7)}.xl\:rt-r-rg-8{row-gap:var(--space-8)}.xl\:rt-r-rg-9{row-gap:var(--space-9)}}.rt-r-ga{grid-area:var(--grid-area)}@media (min-width: 520px){.xs\:rt-r-ga{grid-area:var(--grid-area-xs)}}@media (min-width: 768px){.sm\:rt-r-ga{grid-area:var(--grid-area-sm)}}@media (min-width: 1024px){.md\:rt-r-ga{grid-area:var(--grid-area-md)}}@media (min-width: 1280px){.lg\:rt-r-ga{grid-area:var(--grid-area-lg)}}@media (min-width: 1640px){.xl\:rt-r-ga{grid-area:var(--grid-area-xl)}}.rt-r-gaf-row{grid-auto-flow:row}.rt-r-gaf-column{grid-auto-flow:column}.rt-r-gaf-dense{grid-auto-flow:dense}.rt-r-gaf-row-dense{grid-auto-flow:row dense}.rt-r-gaf-column-dense{grid-auto-flow:column dense}@media (min-width: 520px){.xs\:rt-r-gaf-row{grid-auto-flow:row}.xs\:rt-r-gaf-column{grid-auto-flow:column}.xs\:rt-r-gaf-dense{grid-auto-flow:dense}.xs\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xs\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 768px){.sm\:rt-r-gaf-row{grid-auto-flow:row}.sm\:rt-r-gaf-column{grid-auto-flow:column}.sm\:rt-r-gaf-dense{grid-auto-flow:dense}.sm\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.sm\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1024px){.md\:rt-r-gaf-row{grid-auto-flow:row}.md\:rt-r-gaf-column{grid-auto-flow:column}.md\:rt-r-gaf-dense{grid-auto-flow:dense}.md\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.md\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1280px){.lg\:rt-r-gaf-row{grid-auto-flow:row}.lg\:rt-r-gaf-column{grid-auto-flow:column}.lg\:rt-r-gaf-dense{grid-auto-flow:dense}.lg\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.lg\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1640px){.xl\:rt-r-gaf-row{grid-auto-flow:row}.xl\:rt-r-gaf-column{grid-auto-flow:column}.xl\:rt-r-gaf-dense{grid-auto-flow:dense}.xl\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xl\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}.rt-r-gc{grid-column:var(--grid-column)}.rt-r-gc-1{grid-column:1}.rt-r-gc-2{grid-column:2}.rt-r-gc-3{grid-column:3}.rt-r-gc-4{grid-column:4}.rt-r-gc-5{grid-column:5}.rt-r-gc-6{grid-column:6}.rt-r-gc-7{grid-column:7}.rt-r-gc-8{grid-column:8}.rt-r-gc-9{grid-column:9}@media (min-width: 520px){.xs\:rt-r-gc{grid-column:var(--grid-column-xs)}.xs\:rt-r-gc-1{grid-column:1}.xs\:rt-r-gc-2{grid-column:2}.xs\:rt-r-gc-3{grid-column:3}.xs\:rt-r-gc-4{grid-column:4}.xs\:rt-r-gc-5{grid-column:5}.xs\:rt-r-gc-6{grid-column:6}.xs\:rt-r-gc-7{grid-column:7}.xs\:rt-r-gc-8{grid-column:8}.xs\:rt-r-gc-9{grid-column:9}}@media (min-width: 768px){.sm\:rt-r-gc{grid-column:var(--grid-column-sm)}.sm\:rt-r-gc-1{grid-column:1}.sm\:rt-r-gc-2{grid-column:2}.sm\:rt-r-gc-3{grid-column:3}.sm\:rt-r-gc-4{grid-column:4}.sm\:rt-r-gc-5{grid-column:5}.sm\:rt-r-gc-6{grid-column:6}.sm\:rt-r-gc-7{grid-column:7}.sm\:rt-r-gc-8{grid-column:8}.sm\:rt-r-gc-9{grid-column:9}}@media (min-width: 1024px){.md\:rt-r-gc{grid-column:var(--grid-column-md)}.md\:rt-r-gc-1{grid-column:1}.md\:rt-r-gc-2{grid-column:2}.md\:rt-r-gc-3{grid-column:3}.md\:rt-r-gc-4{grid-column:4}.md\:rt-r-gc-5{grid-column:5}.md\:rt-r-gc-6{grid-column:6}.md\:rt-r-gc-7{grid-column:7}.md\:rt-r-gc-8{grid-column:8}.md\:rt-r-gc-9{grid-column:9}}@media (min-width: 1280px){.lg\:rt-r-gc{grid-column:var(--grid-column-lg)}.lg\:rt-r-gc-1{grid-column:1}.lg\:rt-r-gc-2{grid-column:2}.lg\:rt-r-gc-3{grid-column:3}.lg\:rt-r-gc-4{grid-column:4}.lg\:rt-r-gc-5{grid-column:5}.lg\:rt-r-gc-6{grid-column:6}.lg\:rt-r-gc-7{grid-column:7}.lg\:rt-r-gc-8{grid-column:8}.lg\:rt-r-gc-9{grid-column:9}}@media (min-width: 1640px){.xl\:rt-r-gc{grid-column:var(--grid-column-xl)}.xl\:rt-r-gc-1{grid-column:1}.xl\:rt-r-gc-2{grid-column:2}.xl\:rt-r-gc-3{grid-column:3}.xl\:rt-r-gc-4{grid-column:4}.xl\:rt-r-gc-5{grid-column:5}.xl\:rt-r-gc-6{grid-column:6}.xl\:rt-r-gc-7{grid-column:7}.xl\:rt-r-gc-8{grid-column:8}.xl\:rt-r-gc-9{grid-column:9}}.rt-r-gcs{grid-column-start:var(--grid-column-start)}.rt-r-gcs-1{grid-column-start:1}.rt-r-gcs-2{grid-column-start:2}.rt-r-gcs-3{grid-column-start:3}.rt-r-gcs-4{grid-column-start:4}.rt-r-gcs-5{grid-column-start:5}.rt-r-gcs-6{grid-column-start:6}.rt-r-gcs-7{grid-column-start:7}.rt-r-gcs-8{grid-column-start:8}.rt-r-gcs-9{grid-column-start:9}@media (min-width: 520px){.xs\:rt-r-gcs{grid-column-start:var(--grid-column-start-xs)}.xs\:rt-r-gcs-1{grid-column-start:1}.xs\:rt-r-gcs-2{grid-column-start:2}.xs\:rt-r-gcs-3{grid-column-start:3}.xs\:rt-r-gcs-4{grid-column-start:4}.xs\:rt-r-gcs-5{grid-column-start:5}.xs\:rt-r-gcs-6{grid-column-start:6}.xs\:rt-r-gcs-7{grid-column-start:7}.xs\:rt-r-gcs-8{grid-column-start:8}.xs\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 768px){.sm\:rt-r-gcs{grid-column-start:var(--grid-column-start-sm)}.sm\:rt-r-gcs-1{grid-column-start:1}.sm\:rt-r-gcs-2{grid-column-start:2}.sm\:rt-r-gcs-3{grid-column-start:3}.sm\:rt-r-gcs-4{grid-column-start:4}.sm\:rt-r-gcs-5{grid-column-start:5}.sm\:rt-r-gcs-6{grid-column-start:6}.sm\:rt-r-gcs-7{grid-column-start:7}.sm\:rt-r-gcs-8{grid-column-start:8}.sm\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1024px){.md\:rt-r-gcs{grid-column-start:var(--grid-column-start-md)}.md\:rt-r-gcs-1{grid-column-start:1}.md\:rt-r-gcs-2{grid-column-start:2}.md\:rt-r-gcs-3{grid-column-start:3}.md\:rt-r-gcs-4{grid-column-start:4}.md\:rt-r-gcs-5{grid-column-start:5}.md\:rt-r-gcs-6{grid-column-start:6}.md\:rt-r-gcs-7{grid-column-start:7}.md\:rt-r-gcs-8{grid-column-start:8}.md\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1280px){.lg\:rt-r-gcs{grid-column-start:var(--grid-column-start-lg)}.lg\:rt-r-gcs-1{grid-column-start:1}.lg\:rt-r-gcs-2{grid-column-start:2}.lg\:rt-r-gcs-3{grid-column-start:3}.lg\:rt-r-gcs-4{grid-column-start:4}.lg\:rt-r-gcs-5{grid-column-start:5}.lg\:rt-r-gcs-6{grid-column-start:6}.lg\:rt-r-gcs-7{grid-column-start:7}.lg\:rt-r-gcs-8{grid-column-start:8}.lg\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1640px){.xl\:rt-r-gcs{grid-column-start:var(--grid-column-start-xl)}.xl\:rt-r-gcs-1{grid-column-start:1}.xl\:rt-r-gcs-2{grid-column-start:2}.xl\:rt-r-gcs-3{grid-column-start:3}.xl\:rt-r-gcs-4{grid-column-start:4}.xl\:rt-r-gcs-5{grid-column-start:5}.xl\:rt-r-gcs-6{grid-column-start:6}.xl\:rt-r-gcs-7{grid-column-start:7}.xl\:rt-r-gcs-8{grid-column-start:8}.xl\:rt-r-gcs-9{grid-column-start:9}}.rt-r-gce{grid-column-end:var(--grid-column-end)}.rt-r-gce-1{grid-column-end:1}.rt-r-gce-2{grid-column-end:2}.rt-r-gce-3{grid-column-end:3}.rt-r-gce-4{grid-column-end:4}.rt-r-gce-5{grid-column-end:5}.rt-r-gce-6{grid-column-end:6}.rt-r-gce-7{grid-column-end:7}.rt-r-gce-8{grid-column-end:8}.rt-r-gce-9{grid-column-end:9}@media (min-width: 520px){.xs\:rt-r-gce{grid-column-end:var(--grid-column-end-xs)}.xs\:rt-r-gce-1{grid-column-end:1}.xs\:rt-r-gce-2{grid-column-end:2}.xs\:rt-r-gce-3{grid-column-end:3}.xs\:rt-r-gce-4{grid-column-end:4}.xs\:rt-r-gce-5{grid-column-end:5}.xs\:rt-r-gce-6{grid-column-end:6}.xs\:rt-r-gce-7{grid-column-end:7}.xs\:rt-r-gce-8{grid-column-end:8}.xs\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 768px){.sm\:rt-r-gce{grid-column-end:var(--grid-column-end-sm)}.sm\:rt-r-gce-1{grid-column-end:1}.sm\:rt-r-gce-2{grid-column-end:2}.sm\:rt-r-gce-3{grid-column-end:3}.sm\:rt-r-gce-4{grid-column-end:4}.sm\:rt-r-gce-5{grid-column-end:5}.sm\:rt-r-gce-6{grid-column-end:6}.sm\:rt-r-gce-7{grid-column-end:7}.sm\:rt-r-gce-8{grid-column-end:8}.sm\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1024px){.md\:rt-r-gce{grid-column-end:var(--grid-column-end-md)}.md\:rt-r-gce-1{grid-column-end:1}.md\:rt-r-gce-2{grid-column-end:2}.md\:rt-r-gce-3{grid-column-end:3}.md\:rt-r-gce-4{grid-column-end:4}.md\:rt-r-gce-5{grid-column-end:5}.md\:rt-r-gce-6{grid-column-end:6}.md\:rt-r-gce-7{grid-column-end:7}.md\:rt-r-gce-8{grid-column-end:8}.md\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1280px){.lg\:rt-r-gce{grid-column-end:var(--grid-column-end-lg)}.lg\:rt-r-gce-1{grid-column-end:1}.lg\:rt-r-gce-2{grid-column-end:2}.lg\:rt-r-gce-3{grid-column-end:3}.lg\:rt-r-gce-4{grid-column-end:4}.lg\:rt-r-gce-5{grid-column-end:5}.lg\:rt-r-gce-6{grid-column-end:6}.lg\:rt-r-gce-7{grid-column-end:7}.lg\:rt-r-gce-8{grid-column-end:8}.lg\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1640px){.xl\:rt-r-gce{grid-column-end:var(--grid-column-end-xl)}.xl\:rt-r-gce-1{grid-column-end:1}.xl\:rt-r-gce-2{grid-column-end:2}.xl\:rt-r-gce-3{grid-column-end:3}.xl\:rt-r-gce-4{grid-column-end:4}.xl\:rt-r-gce-5{grid-column-end:5}.xl\:rt-r-gce-6{grid-column-end:6}.xl\:rt-r-gce-7{grid-column-end:7}.xl\:rt-r-gce-8{grid-column-end:8}.xl\:rt-r-gce-9{grid-column-end:9}}.rt-r-gr{grid-row:var(--grid-row)}.rt-r-gr-1{grid-row:1}.rt-r-gr-2{grid-row:2}.rt-r-gr-3{grid-row:3}.rt-r-gr-4{grid-row:4}.rt-r-gr-5{grid-row:5}.rt-r-gr-6{grid-row:6}.rt-r-gr-7{grid-row:7}.rt-r-gr-8{grid-row:8}.rt-r-gr-9{grid-row:9}@media (min-width: 520px){.xs\:rt-r-gr{grid-row:var(--grid-row-xs)}.xs\:rt-r-gr-1{grid-row:1}.xs\:rt-r-gr-2{grid-row:2}.xs\:rt-r-gr-3{grid-row:3}.xs\:rt-r-gr-4{grid-row:4}.xs\:rt-r-gr-5{grid-row:5}.xs\:rt-r-gr-6{grid-row:6}.xs\:rt-r-gr-7{grid-row:7}.xs\:rt-r-gr-8{grid-row:8}.xs\:rt-r-gr-9{grid-row:9}}@media (min-width: 768px){.sm\:rt-r-gr{grid-row:var(--grid-row-sm)}.sm\:rt-r-gr-1{grid-row:1}.sm\:rt-r-gr-2{grid-row:2}.sm\:rt-r-gr-3{grid-row:3}.sm\:rt-r-gr-4{grid-row:4}.sm\:rt-r-gr-5{grid-row:5}.sm\:rt-r-gr-6{grid-row:6}.sm\:rt-r-gr-7{grid-row:7}.sm\:rt-r-gr-8{grid-row:8}.sm\:rt-r-gr-9{grid-row:9}}@media (min-width: 1024px){.md\:rt-r-gr{grid-row:var(--grid-row-md)}.md\:rt-r-gr-1{grid-row:1}.md\:rt-r-gr-2{grid-row:2}.md\:rt-r-gr-3{grid-row:3}.md\:rt-r-gr-4{grid-row:4}.md\:rt-r-gr-5{grid-row:5}.md\:rt-r-gr-6{grid-row:6}.md\:rt-r-gr-7{grid-row:7}.md\:rt-r-gr-8{grid-row:8}.md\:rt-r-gr-9{grid-row:9}}@media (min-width: 1280px){.lg\:rt-r-gr{grid-row:var(--grid-row-lg)}.lg\:rt-r-gr-1{grid-row:1}.lg\:rt-r-gr-2{grid-row:2}.lg\:rt-r-gr-3{grid-row:3}.lg\:rt-r-gr-4{grid-row:4}.lg\:rt-r-gr-5{grid-row:5}.lg\:rt-r-gr-6{grid-row:6}.lg\:rt-r-gr-7{grid-row:7}.lg\:rt-r-gr-8{grid-row:8}.lg\:rt-r-gr-9{grid-row:9}}@media (min-width: 1640px){.xl\:rt-r-gr{grid-row:var(--grid-row-xl)}.xl\:rt-r-gr-1{grid-row:1}.xl\:rt-r-gr-2{grid-row:2}.xl\:rt-r-gr-3{grid-row:3}.xl\:rt-r-gr-4{grid-row:4}.xl\:rt-r-gr-5{grid-row:5}.xl\:rt-r-gr-6{grid-row:6}.xl\:rt-r-gr-7{grid-row:7}.xl\:rt-r-gr-8{grid-row:8}.xl\:rt-r-gr-9{grid-row:9}}.rt-r-grs{grid-row-start:var(--grid-row-start)}.rt-r-grs-1{grid-row-start:1}.rt-r-grs-2{grid-row-start:2}.rt-r-grs-3{grid-row-start:3}.rt-r-grs-4{grid-row-start:4}.rt-r-grs-5{grid-row-start:5}.rt-r-grs-6{grid-row-start:6}.rt-r-grs-7{grid-row-start:7}.rt-r-grs-8{grid-row-start:8}.rt-r-grs-9{grid-row-start:9}@media (min-width: 520px){.xs\:rt-r-grs{grid-row-start:var(--grid-row-start-xs)}.xs\:rt-r-grs-1{grid-row-start:1}.xs\:rt-r-grs-2{grid-row-start:2}.xs\:rt-r-grs-3{grid-row-start:3}.xs\:rt-r-grs-4{grid-row-start:4}.xs\:rt-r-grs-5{grid-row-start:5}.xs\:rt-r-grs-6{grid-row-start:6}.xs\:rt-r-grs-7{grid-row-start:7}.xs\:rt-r-grs-8{grid-row-start:8}.xs\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 768px){.sm\:rt-r-grs{grid-row-start:var(--grid-row-start-sm)}.sm\:rt-r-grs-1{grid-row-start:1}.sm\:rt-r-grs-2{grid-row-start:2}.sm\:rt-r-grs-3{grid-row-start:3}.sm\:rt-r-grs-4{grid-row-start:4}.sm\:rt-r-grs-5{grid-row-start:5}.sm\:rt-r-grs-6{grid-row-start:6}.sm\:rt-r-grs-7{grid-row-start:7}.sm\:rt-r-grs-8{grid-row-start:8}.sm\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1024px){.md\:rt-r-grs{grid-row-start:var(--grid-row-start-md)}.md\:rt-r-grs-1{grid-row-start:1}.md\:rt-r-grs-2{grid-row-start:2}.md\:rt-r-grs-3{grid-row-start:3}.md\:rt-r-grs-4{grid-row-start:4}.md\:rt-r-grs-5{grid-row-start:5}.md\:rt-r-grs-6{grid-row-start:6}.md\:rt-r-grs-7{grid-row-start:7}.md\:rt-r-grs-8{grid-row-start:8}.md\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1280px){.lg\:rt-r-grs{grid-row-start:var(--grid-row-start-lg)}.lg\:rt-r-grs-1{grid-row-start:1}.lg\:rt-r-grs-2{grid-row-start:2}.lg\:rt-r-grs-3{grid-row-start:3}.lg\:rt-r-grs-4{grid-row-start:4}.lg\:rt-r-grs-5{grid-row-start:5}.lg\:rt-r-grs-6{grid-row-start:6}.lg\:rt-r-grs-7{grid-row-start:7}.lg\:rt-r-grs-8{grid-row-start:8}.lg\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1640px){.xl\:rt-r-grs{grid-row-start:var(--grid-row-start-xl)}.xl\:rt-r-grs-1{grid-row-start:1}.xl\:rt-r-grs-2{grid-row-start:2}.xl\:rt-r-grs-3{grid-row-start:3}.xl\:rt-r-grs-4{grid-row-start:4}.xl\:rt-r-grs-5{grid-row-start:5}.xl\:rt-r-grs-6{grid-row-start:6}.xl\:rt-r-grs-7{grid-row-start:7}.xl\:rt-r-grs-8{grid-row-start:8}.xl\:rt-r-grs-9{grid-row-start:9}}.rt-r-gre{grid-row-end:var(--grid-row-end)}.rt-r-gre-1{grid-row-end:1}.rt-r-gre-2{grid-row-end:2}.rt-r-gre-3{grid-row-end:3}.rt-r-gre-4{grid-row-end:4}.rt-r-gre-5{grid-row-end:5}.rt-r-gre-6{grid-row-end:6}.rt-r-gre-7{grid-row-end:7}.rt-r-gre-8{grid-row-end:8}.rt-r-gre-9{grid-row-end:9}@media (min-width: 520px){.xs\:rt-r-gre{grid-row-end:var(--grid-row-end-xs)}.xs\:rt-r-gre-1{grid-row-end:1}.xs\:rt-r-gre-2{grid-row-end:2}.xs\:rt-r-gre-3{grid-row-end:3}.xs\:rt-r-gre-4{grid-row-end:4}.xs\:rt-r-gre-5{grid-row-end:5}.xs\:rt-r-gre-6{grid-row-end:6}.xs\:rt-r-gre-7{grid-row-end:7}.xs\:rt-r-gre-8{grid-row-end:8}.xs\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 768px){.sm\:rt-r-gre{grid-row-end:var(--grid-row-end-sm)}.sm\:rt-r-gre-1{grid-row-end:1}.sm\:rt-r-gre-2{grid-row-end:2}.sm\:rt-r-gre-3{grid-row-end:3}.sm\:rt-r-gre-4{grid-row-end:4}.sm\:rt-r-gre-5{grid-row-end:5}.sm\:rt-r-gre-6{grid-row-end:6}.sm\:rt-r-gre-7{grid-row-end:7}.sm\:rt-r-gre-8{grid-row-end:8}.sm\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1024px){.md\:rt-r-gre{grid-row-end:var(--grid-row-end-md)}.md\:rt-r-gre-1{grid-row-end:1}.md\:rt-r-gre-2{grid-row-end:2}.md\:rt-r-gre-3{grid-row-end:3}.md\:rt-r-gre-4{grid-row-end:4}.md\:rt-r-gre-5{grid-row-end:5}.md\:rt-r-gre-6{grid-row-end:6}.md\:rt-r-gre-7{grid-row-end:7}.md\:rt-r-gre-8{grid-row-end:8}.md\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1280px){.lg\:rt-r-gre{grid-row-end:var(--grid-row-end-lg)}.lg\:rt-r-gre-1{grid-row-end:1}.lg\:rt-r-gre-2{grid-row-end:2}.lg\:rt-r-gre-3{grid-row-end:3}.lg\:rt-r-gre-4{grid-row-end:4}.lg\:rt-r-gre-5{grid-row-end:5}.lg\:rt-r-gre-6{grid-row-end:6}.lg\:rt-r-gre-7{grid-row-end:7}.lg\:rt-r-gre-8{grid-row-end:8}.lg\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1640px){.xl\:rt-r-gre{grid-row-end:var(--grid-row-end-xl)}.xl\:rt-r-gre-1{grid-row-end:1}.xl\:rt-r-gre-2{grid-row-end:2}.xl\:rt-r-gre-3{grid-row-end:3}.xl\:rt-r-gre-4{grid-row-end:4}.xl\:rt-r-gre-5{grid-row-end:5}.xl\:rt-r-gre-6{grid-row-end:6}.xl\:rt-r-gre-7{grid-row-end:7}.xl\:rt-r-gre-8{grid-row-end:8}.xl\:rt-r-gre-9{grid-row-end:9}}.rt-r-gta{grid-template-areas:var(--grid-template-areas)}@media (min-width: 520px){.xs\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xs)}}@media (min-width: 768px){.sm\:rt-r-gta{grid-template-areas:var(--grid-template-areas-sm)}}@media (min-width: 1024px){.md\:rt-r-gta{grid-template-areas:var(--grid-template-areas-md)}}@media (min-width: 1280px){.lg\:rt-r-gta{grid-template-areas:var(--grid-template-areas-lg)}}@media (min-width: 1640px){.xl\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xl)}}.rt-r-gtc{grid-template-columns:var(--grid-template-columns)}.rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xs)}.xs\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xs\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-sm)}.sm\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.sm\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-md)}.md\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.md\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-lg)}.lg\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.lg\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xl)}.xl\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xl\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}.rt-r-gtr{grid-template-rows:var(--grid-template-rows)}.rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xs)}.xs\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xs\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-sm)}.sm\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.sm\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-md)}.md\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.md\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.md\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.md\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.md\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.md\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-lg)}.lg\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.lg\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xl)}.xl\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xl\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}.rt-r-h{height:var(--height)}@media (min-width: 520px){.xs\:rt-r-h{height:var(--height-xs)}}@media (min-width: 768px){.sm\:rt-r-h{height:var(--height-sm)}}@media (min-width: 1024px){.md\:rt-r-h{height:var(--height-md)}}@media (min-width: 1280px){.lg\:rt-r-h{height:var(--height-lg)}}@media (min-width: 1640px){.xl\:rt-r-h{height:var(--height-xl)}}.rt-r-min-h{min-height:var(--min-height)}@media (min-width: 520px){.xs\:rt-r-min-h{min-height:var(--min-height-xs)}}@media (min-width: 768px){.sm\:rt-r-min-h{min-height:var(--min-height-sm)}}@media (min-width: 1024px){.md\:rt-r-min-h{min-height:var(--min-height-md)}}@media (min-width: 1280px){.lg\:rt-r-min-h{min-height:var(--min-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-h{min-height:var(--min-height-xl)}}.rt-r-max-h{max-height:var(--max-height)}@media (min-width: 520px){.xs\:rt-r-max-h{max-height:var(--max-height-xs)}}@media (min-width: 768px){.sm\:rt-r-max-h{max-height:var(--max-height-sm)}}@media (min-width: 1024px){.md\:rt-r-max-h{max-height:var(--max-height-md)}}@media (min-width: 1280px){.lg\:rt-r-max-h{max-height:var(--max-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-h{max-height:var(--max-height-xl)}}.rt-r-inset{inset:var(--inset)}.rt-r-inset-0{inset:0}.rt-r-inset-1{inset:var(--space-1)}.rt-r-inset-2{inset:var(--space-2)}.rt-r-inset-3{inset:var(--space-3)}.rt-r-inset-4{inset:var(--space-4)}.rt-r-inset-5{inset:var(--space-5)}.rt-r-inset-6{inset:var(--space-6)}.rt-r-inset-7{inset:var(--space-7)}.rt-r-inset-8{inset:var(--space-8)}.rt-r-inset-9{inset:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-inset{inset:var(--inset-xs)}.xs\:rt-r-inset-0{inset:0}.xs\:rt-r-inset-1{inset:var(--space-1)}.xs\:rt-r-inset-2{inset:var(--space-2)}.xs\:rt-r-inset-3{inset:var(--space-3)}.xs\:rt-r-inset-4{inset:var(--space-4)}.xs\:rt-r-inset-5{inset:var(--space-5)}.xs\:rt-r-inset-6{inset:var(--space-6)}.xs\:rt-r-inset-7{inset:var(--space-7)}.xs\:rt-r-inset-8{inset:var(--space-8)}.xs\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-inset{inset:var(--inset-sm)}.sm\:rt-r-inset-0{inset:0}.sm\:rt-r-inset-1{inset:var(--space-1)}.sm\:rt-r-inset-2{inset:var(--space-2)}.sm\:rt-r-inset-3{inset:var(--space-3)}.sm\:rt-r-inset-4{inset:var(--space-4)}.sm\:rt-r-inset-5{inset:var(--space-5)}.sm\:rt-r-inset-6{inset:var(--space-6)}.sm\:rt-r-inset-7{inset:var(--space-7)}.sm\:rt-r-inset-8{inset:var(--space-8)}.sm\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-inset{inset:var(--inset-md)}.md\:rt-r-inset-0{inset:0}.md\:rt-r-inset-1{inset:var(--space-1)}.md\:rt-r-inset-2{inset:var(--space-2)}.md\:rt-r-inset-3{inset:var(--space-3)}.md\:rt-r-inset-4{inset:var(--space-4)}.md\:rt-r-inset-5{inset:var(--space-5)}.md\:rt-r-inset-6{inset:var(--space-6)}.md\:rt-r-inset-7{inset:var(--space-7)}.md\:rt-r-inset-8{inset:var(--space-8)}.md\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-inset{inset:var(--inset-lg)}.lg\:rt-r-inset-0{inset:0}.lg\:rt-r-inset-1{inset:var(--space-1)}.lg\:rt-r-inset-2{inset:var(--space-2)}.lg\:rt-r-inset-3{inset:var(--space-3)}.lg\:rt-r-inset-4{inset:var(--space-4)}.lg\:rt-r-inset-5{inset:var(--space-5)}.lg\:rt-r-inset-6{inset:var(--space-6)}.lg\:rt-r-inset-7{inset:var(--space-7)}.lg\:rt-r-inset-8{inset:var(--space-8)}.lg\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-inset{inset:var(--inset-xl)}.xl\:rt-r-inset-0{inset:0}.xl\:rt-r-inset-1{inset:var(--space-1)}.xl\:rt-r-inset-2{inset:var(--space-2)}.xl\:rt-r-inset-3{inset:var(--space-3)}.xl\:rt-r-inset-4{inset:var(--space-4)}.xl\:rt-r-inset-5{inset:var(--space-5)}.xl\:rt-r-inset-6{inset:var(--space-6)}.xl\:rt-r-inset-7{inset:var(--space-7)}.xl\:rt-r-inset-8{inset:var(--space-8)}.xl\:rt-r-inset-9{inset:var(--space-9)}}.rt-r-top{top:var(--top)}.rt-r-top-0{top:0}.rt-r-top-1{top:var(--space-1)}.rt-r-top-2{top:var(--space-2)}.rt-r-top-3{top:var(--space-3)}.rt-r-top-4{top:var(--space-4)}.rt-r-top-5{top:var(--space-5)}.rt-r-top-6{top:var(--space-6)}.rt-r-top-7{top:var(--space-7)}.rt-r-top-8{top:var(--space-8)}.rt-r-top-9{top:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-top{top:var(--top-xs)}.xs\:rt-r-top-0{top:0}.xs\:rt-r-top-1{top:var(--space-1)}.xs\:rt-r-top-2{top:var(--space-2)}.xs\:rt-r-top-3{top:var(--space-3)}.xs\:rt-r-top-4{top:var(--space-4)}.xs\:rt-r-top-5{top:var(--space-5)}.xs\:rt-r-top-6{top:var(--space-6)}.xs\:rt-r-top-7{top:var(--space-7)}.xs\:rt-r-top-8{top:var(--space-8)}.xs\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-top{top:var(--top-sm)}.sm\:rt-r-top-0{top:0}.sm\:rt-r-top-1{top:var(--space-1)}.sm\:rt-r-top-2{top:var(--space-2)}.sm\:rt-r-top-3{top:var(--space-3)}.sm\:rt-r-top-4{top:var(--space-4)}.sm\:rt-r-top-5{top:var(--space-5)}.sm\:rt-r-top-6{top:var(--space-6)}.sm\:rt-r-top-7{top:var(--space-7)}.sm\:rt-r-top-8{top:var(--space-8)}.sm\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-top{top:var(--top-md)}.md\:rt-r-top-0{top:0}.md\:rt-r-top-1{top:var(--space-1)}.md\:rt-r-top-2{top:var(--space-2)}.md\:rt-r-top-3{top:var(--space-3)}.md\:rt-r-top-4{top:var(--space-4)}.md\:rt-r-top-5{top:var(--space-5)}.md\:rt-r-top-6{top:var(--space-6)}.md\:rt-r-top-7{top:var(--space-7)}.md\:rt-r-top-8{top:var(--space-8)}.md\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-top{top:var(--top-lg)}.lg\:rt-r-top-0{top:0}.lg\:rt-r-top-1{top:var(--space-1)}.lg\:rt-r-top-2{top:var(--space-2)}.lg\:rt-r-top-3{top:var(--space-3)}.lg\:rt-r-top-4{top:var(--space-4)}.lg\:rt-r-top-5{top:var(--space-5)}.lg\:rt-r-top-6{top:var(--space-6)}.lg\:rt-r-top-7{top:var(--space-7)}.lg\:rt-r-top-8{top:var(--space-8)}.lg\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-top{top:var(--top-xl)}.xl\:rt-r-top-0{top:0}.xl\:rt-r-top-1{top:var(--space-1)}.xl\:rt-r-top-2{top:var(--space-2)}.xl\:rt-r-top-3{top:var(--space-3)}.xl\:rt-r-top-4{top:var(--space-4)}.xl\:rt-r-top-5{top:var(--space-5)}.xl\:rt-r-top-6{top:var(--space-6)}.xl\:rt-r-top-7{top:var(--space-7)}.xl\:rt-r-top-8{top:var(--space-8)}.xl\:rt-r-top-9{top:var(--space-9)}}.rt-r-right{right:var(--right)}.rt-r-right-0{right:0}.rt-r-right-1{right:var(--space-1)}.rt-r-right-2{right:var(--space-2)}.rt-r-right-3{right:var(--space-3)}.rt-r-right-4{right:var(--space-4)}.rt-r-right-5{right:var(--space-5)}.rt-r-right-6{right:var(--space-6)}.rt-r-right-7{right:var(--space-7)}.rt-r-right-8{right:var(--space-8)}.rt-r-right-9{right:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-right{right:var(--right-xs)}.xs\:rt-r-right-0{right:0}.xs\:rt-r-right-1{right:var(--space-1)}.xs\:rt-r-right-2{right:var(--space-2)}.xs\:rt-r-right-3{right:var(--space-3)}.xs\:rt-r-right-4{right:var(--space-4)}.xs\:rt-r-right-5{right:var(--space-5)}.xs\:rt-r-right-6{right:var(--space-6)}.xs\:rt-r-right-7{right:var(--space-7)}.xs\:rt-r-right-8{right:var(--space-8)}.xs\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-right{right:var(--right-sm)}.sm\:rt-r-right-0{right:0}.sm\:rt-r-right-1{right:var(--space-1)}.sm\:rt-r-right-2{right:var(--space-2)}.sm\:rt-r-right-3{right:var(--space-3)}.sm\:rt-r-right-4{right:var(--space-4)}.sm\:rt-r-right-5{right:var(--space-5)}.sm\:rt-r-right-6{right:var(--space-6)}.sm\:rt-r-right-7{right:var(--space-7)}.sm\:rt-r-right-8{right:var(--space-8)}.sm\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-right{right:var(--right-md)}.md\:rt-r-right-0{right:0}.md\:rt-r-right-1{right:var(--space-1)}.md\:rt-r-right-2{right:var(--space-2)}.md\:rt-r-right-3{right:var(--space-3)}.md\:rt-r-right-4{right:var(--space-4)}.md\:rt-r-right-5{right:var(--space-5)}.md\:rt-r-right-6{right:var(--space-6)}.md\:rt-r-right-7{right:var(--space-7)}.md\:rt-r-right-8{right:var(--space-8)}.md\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-right{right:var(--right-lg)}.lg\:rt-r-right-0{right:0}.lg\:rt-r-right-1{right:var(--space-1)}.lg\:rt-r-right-2{right:var(--space-2)}.lg\:rt-r-right-3{right:var(--space-3)}.lg\:rt-r-right-4{right:var(--space-4)}.lg\:rt-r-right-5{right:var(--space-5)}.lg\:rt-r-right-6{right:var(--space-6)}.lg\:rt-r-right-7{right:var(--space-7)}.lg\:rt-r-right-8{right:var(--space-8)}.lg\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-right{right:var(--right-xl)}.xl\:rt-r-right-0{right:0}.xl\:rt-r-right-1{right:var(--space-1)}.xl\:rt-r-right-2{right:var(--space-2)}.xl\:rt-r-right-3{right:var(--space-3)}.xl\:rt-r-right-4{right:var(--space-4)}.xl\:rt-r-right-5{right:var(--space-5)}.xl\:rt-r-right-6{right:var(--space-6)}.xl\:rt-r-right-7{right:var(--space-7)}.xl\:rt-r-right-8{right:var(--space-8)}.xl\:rt-r-right-9{right:var(--space-9)}}.rt-r-bottom{bottom:var(--bottom)}.rt-r-bottom-0{bottom:0}.rt-r-bottom-1{bottom:var(--space-1)}.rt-r-bottom-2{bottom:var(--space-2)}.rt-r-bottom-3{bottom:var(--space-3)}.rt-r-bottom-4{bottom:var(--space-4)}.rt-r-bottom-5{bottom:var(--space-5)}.rt-r-bottom-6{bottom:var(--space-6)}.rt-r-bottom-7{bottom:var(--space-7)}.rt-r-bottom-8{bottom:var(--space-8)}.rt-r-bottom-9{bottom:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-bottom{bottom:var(--bottom-xs)}.xs\:rt-r-bottom-0{bottom:0}.xs\:rt-r-bottom-1{bottom:var(--space-1)}.xs\:rt-r-bottom-2{bottom:var(--space-2)}.xs\:rt-r-bottom-3{bottom:var(--space-3)}.xs\:rt-r-bottom-4{bottom:var(--space-4)}.xs\:rt-r-bottom-5{bottom:var(--space-5)}.xs\:rt-r-bottom-6{bottom:var(--space-6)}.xs\:rt-r-bottom-7{bottom:var(--space-7)}.xs\:rt-r-bottom-8{bottom:var(--space-8)}.xs\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-bottom{bottom:var(--bottom-sm)}.sm\:rt-r-bottom-0{bottom:0}.sm\:rt-r-bottom-1{bottom:var(--space-1)}.sm\:rt-r-bottom-2{bottom:var(--space-2)}.sm\:rt-r-bottom-3{bottom:var(--space-3)}.sm\:rt-r-bottom-4{bottom:var(--space-4)}.sm\:rt-r-bottom-5{bottom:var(--space-5)}.sm\:rt-r-bottom-6{bottom:var(--space-6)}.sm\:rt-r-bottom-7{bottom:var(--space-7)}.sm\:rt-r-bottom-8{bottom:var(--space-8)}.sm\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-bottom{bottom:var(--bottom-md)}.md\:rt-r-bottom-0{bottom:0}.md\:rt-r-bottom-1{bottom:var(--space-1)}.md\:rt-r-bottom-2{bottom:var(--space-2)}.md\:rt-r-bottom-3{bottom:var(--space-3)}.md\:rt-r-bottom-4{bottom:var(--space-4)}.md\:rt-r-bottom-5{bottom:var(--space-5)}.md\:rt-r-bottom-6{bottom:var(--space-6)}.md\:rt-r-bottom-7{bottom:var(--space-7)}.md\:rt-r-bottom-8{bottom:var(--space-8)}.md\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-bottom{bottom:var(--bottom-lg)}.lg\:rt-r-bottom-0{bottom:0}.lg\:rt-r-bottom-1{bottom:var(--space-1)}.lg\:rt-r-bottom-2{bottom:var(--space-2)}.lg\:rt-r-bottom-3{bottom:var(--space-3)}.lg\:rt-r-bottom-4{bottom:var(--space-4)}.lg\:rt-r-bottom-5{bottom:var(--space-5)}.lg\:rt-r-bottom-6{bottom:var(--space-6)}.lg\:rt-r-bottom-7{bottom:var(--space-7)}.lg\:rt-r-bottom-8{bottom:var(--space-8)}.lg\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-bottom{bottom:var(--bottom-xl)}.xl\:rt-r-bottom-0{bottom:0}.xl\:rt-r-bottom-1{bottom:var(--space-1)}.xl\:rt-r-bottom-2{bottom:var(--space-2)}.xl\:rt-r-bottom-3{bottom:var(--space-3)}.xl\:rt-r-bottom-4{bottom:var(--space-4)}.xl\:rt-r-bottom-5{bottom:var(--space-5)}.xl\:rt-r-bottom-6{bottom:var(--space-6)}.xl\:rt-r-bottom-7{bottom:var(--space-7)}.xl\:rt-r-bottom-8{bottom:var(--space-8)}.xl\:rt-r-bottom-9{bottom:var(--space-9)}}.rt-r-left{left:var(--left)}.rt-r-left-0{left:0}.rt-r-left-1{left:var(--space-1)}.rt-r-left-2{left:var(--space-2)}.rt-r-left-3{left:var(--space-3)}.rt-r-left-4{left:var(--space-4)}.rt-r-left-5{left:var(--space-5)}.rt-r-left-6{left:var(--space-6)}.rt-r-left-7{left:var(--space-7)}.rt-r-left-8{left:var(--space-8)}.rt-r-left-9{left:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-left{left:var(--left-xs)}.xs\:rt-r-left-0{left:0}.xs\:rt-r-left-1{left:var(--space-1)}.xs\:rt-r-left-2{left:var(--space-2)}.xs\:rt-r-left-3{left:var(--space-3)}.xs\:rt-r-left-4{left:var(--space-4)}.xs\:rt-r-left-5{left:var(--space-5)}.xs\:rt-r-left-6{left:var(--space-6)}.xs\:rt-r-left-7{left:var(--space-7)}.xs\:rt-r-left-8{left:var(--space-8)}.xs\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-left{left:var(--left-sm)}.sm\:rt-r-left-0{left:0}.sm\:rt-r-left-1{left:var(--space-1)}.sm\:rt-r-left-2{left:var(--space-2)}.sm\:rt-r-left-3{left:var(--space-3)}.sm\:rt-r-left-4{left:var(--space-4)}.sm\:rt-r-left-5{left:var(--space-5)}.sm\:rt-r-left-6{left:var(--space-6)}.sm\:rt-r-left-7{left:var(--space-7)}.sm\:rt-r-left-8{left:var(--space-8)}.sm\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-left{left:var(--left-md)}.md\:rt-r-left-0{left:0}.md\:rt-r-left-1{left:var(--space-1)}.md\:rt-r-left-2{left:var(--space-2)}.md\:rt-r-left-3{left:var(--space-3)}.md\:rt-r-left-4{left:var(--space-4)}.md\:rt-r-left-5{left:var(--space-5)}.md\:rt-r-left-6{left:var(--space-6)}.md\:rt-r-left-7{left:var(--space-7)}.md\:rt-r-left-8{left:var(--space-8)}.md\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-left{left:var(--left-lg)}.lg\:rt-r-left-0{left:0}.lg\:rt-r-left-1{left:var(--space-1)}.lg\:rt-r-left-2{left:var(--space-2)}.lg\:rt-r-left-3{left:var(--space-3)}.lg\:rt-r-left-4{left:var(--space-4)}.lg\:rt-r-left-5{left:var(--space-5)}.lg\:rt-r-left-6{left:var(--space-6)}.lg\:rt-r-left-7{left:var(--space-7)}.lg\:rt-r-left-8{left:var(--space-8)}.lg\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-left{left:var(--left-xl)}.xl\:rt-r-left-0{left:0}.xl\:rt-r-left-1{left:var(--space-1)}.xl\:rt-r-left-2{left:var(--space-2)}.xl\:rt-r-left-3{left:var(--space-3)}.xl\:rt-r-left-4{left:var(--space-4)}.xl\:rt-r-left-5{left:var(--space-5)}.xl\:rt-r-left-6{left:var(--space-6)}.xl\:rt-r-left-7{left:var(--space-7)}.xl\:rt-r-left-8{left:var(--space-8)}.xl\:rt-r-left-9{left:var(--space-9)}}.rt-r-jc-start{justify-content:flex-start}.rt-r-jc-center{justify-content:center}.rt-r-jc-end{justify-content:flex-end}.rt-r-jc-space-between{justify-content:space-between}@media (min-width: 520px){.xs\:rt-r-jc-start{justify-content:flex-start}.xs\:rt-r-jc-center{justify-content:center}.xs\:rt-r-jc-end{justify-content:flex-end}.xs\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 768px){.sm\:rt-r-jc-start{justify-content:flex-start}.sm\:rt-r-jc-center{justify-content:center}.sm\:rt-r-jc-end{justify-content:flex-end}.sm\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1024px){.md\:rt-r-jc-start{justify-content:flex-start}.md\:rt-r-jc-center{justify-content:center}.md\:rt-r-jc-end{justify-content:flex-end}.md\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1280px){.lg\:rt-r-jc-start{justify-content:flex-start}.lg\:rt-r-jc-center{justify-content:center}.lg\:rt-r-jc-end{justify-content:flex-end}.lg\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1640px){.xl\:rt-r-jc-start{justify-content:flex-start}.xl\:rt-r-jc-center{justify-content:center}.xl\:rt-r-jc-end{justify-content:flex-end}.xl\:rt-r-jc-space-between{justify-content:space-between}}.rt-r-m,.rt-r-m-0,.rt-r-m-1,.rt-r-m-2,.rt-r-m-3,.rt-r-m-4,.rt-r-m-5,.rt-r-m-6,.rt-r-m-7,.rt-r-m-8,.rt-r-m-9,.-rt-r-m-1,.-rt-r-m-2,.-rt-r-m-3,.-rt-r-m-4,.-rt-r-m-5,.-rt-r-m-6,.-rt-r-m-7,.-rt-r-m-8,.-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-m{--margin-top: var(--m);--margin-right: var(--m);--margin-bottom: var(--m);--margin-left: var(--m) }.rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-m,.xs\:rt-r-m-0,.xs\:rt-r-m-1,.xs\:rt-r-m-2,.xs\:rt-r-m-3,.xs\:rt-r-m-4,.xs\:rt-r-m-5,.xs\:rt-r-m-6,.xs\:rt-r-m-7,.xs\:rt-r-m-8,.xs\:rt-r-m-9,.xs\:-rt-r-m-1,.xs\:-rt-r-m-2,.xs\:-rt-r-m-3,.xs\:-rt-r-m-4,.xs\:-rt-r-m-5,.xs\:-rt-r-m-6,.xs\:-rt-r-m-7,.xs\:-rt-r-m-8,.xs\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-m{--margin-top: var(--m-xs);--margin-right: var(--m-xs);--margin-bottom: var(--m-xs);--margin-left: var(--m-xs) }.xs\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xs\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xs\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xs\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xs\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xs\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xs\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xs\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xs\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xs\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xs\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-m,.sm\:rt-r-m-0,.sm\:rt-r-m-1,.sm\:rt-r-m-2,.sm\:rt-r-m-3,.sm\:rt-r-m-4,.sm\:rt-r-m-5,.sm\:rt-r-m-6,.sm\:rt-r-m-7,.sm\:rt-r-m-8,.sm\:rt-r-m-9,.sm\:-rt-r-m-1,.sm\:-rt-r-m-2,.sm\:-rt-r-m-3,.sm\:-rt-r-m-4,.sm\:-rt-r-m-5,.sm\:-rt-r-m-6,.sm\:-rt-r-m-7,.sm\:-rt-r-m-8,.sm\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-m{--margin-top: var(--m-sm);--margin-right: var(--m-sm);--margin-bottom: var(--m-sm);--margin-left: var(--m-sm) }.sm\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.sm\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.sm\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.sm\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.sm\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.sm\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.sm\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.sm\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.sm\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.sm\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.sm\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-m,.md\:rt-r-m-0,.md\:rt-r-m-1,.md\:rt-r-m-2,.md\:rt-r-m-3,.md\:rt-r-m-4,.md\:rt-r-m-5,.md\:rt-r-m-6,.md\:rt-r-m-7,.md\:rt-r-m-8,.md\:rt-r-m-9,.md\:-rt-r-m-1,.md\:-rt-r-m-2,.md\:-rt-r-m-3,.md\:-rt-r-m-4,.md\:-rt-r-m-5,.md\:-rt-r-m-6,.md\:-rt-r-m-7,.md\:-rt-r-m-8,.md\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-m{--margin-top: var(--m-md);--margin-right: var(--m-md);--margin-bottom: var(--m-md);--margin-left: var(--m-md) }.md\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.md\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.md\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.md\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.md\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.md\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.md\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.md\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.md\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.md\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.md\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-m,.lg\:rt-r-m-0,.lg\:rt-r-m-1,.lg\:rt-r-m-2,.lg\:rt-r-m-3,.lg\:rt-r-m-4,.lg\:rt-r-m-5,.lg\:rt-r-m-6,.lg\:rt-r-m-7,.lg\:rt-r-m-8,.lg\:rt-r-m-9,.lg\:-rt-r-m-1,.lg\:-rt-r-m-2,.lg\:-rt-r-m-3,.lg\:-rt-r-m-4,.lg\:-rt-r-m-5,.lg\:-rt-r-m-6,.lg\:-rt-r-m-7,.lg\:-rt-r-m-8,.lg\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-m{--margin-top: var(--m-lg);--margin-right: var(--m-lg);--margin-bottom: var(--m-lg);--margin-left: var(--m-lg) }.lg\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.lg\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.lg\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.lg\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.lg\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.lg\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.lg\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.lg\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.lg\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.lg\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.lg\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-m,.xl\:rt-r-m-0,.xl\:rt-r-m-1,.xl\:rt-r-m-2,.xl\:rt-r-m-3,.xl\:rt-r-m-4,.xl\:rt-r-m-5,.xl\:rt-r-m-6,.xl\:rt-r-m-7,.xl\:rt-r-m-8,.xl\:rt-r-m-9,.xl\:-rt-r-m-1,.xl\:-rt-r-m-2,.xl\:-rt-r-m-3,.xl\:-rt-r-m-4,.xl\:-rt-r-m-5,.xl\:-rt-r-m-6,.xl\:-rt-r-m-7,.xl\:-rt-r-m-8,.xl\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-m{--margin-top: var(--m-xl);--margin-right: var(--m-xl);--margin-bottom: var(--m-xl);--margin-left: var(--m-xl) }.xl\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xl\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xl\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xl\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xl\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xl\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xl\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xl\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xl\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xl\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xl\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}.rt-r-mx,.rt-r-mx-0,.rt-r-mx-1,.rt-r-mx-2,.rt-r-mx-3,.rt-r-mx-4,.rt-r-mx-5,.rt-r-mx-6,.rt-r-mx-7,.rt-r-mx-8,.rt-r-mx-9,.-rt-r-mx-1,.-rt-r-mx-2,.-rt-r-mx-3,.-rt-r-mx-4,.-rt-r-mx-5,.-rt-r-mx-6,.-rt-r-mx-7,.-rt-r-mx-8,.-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mx{--margin-left: var(--ml);--margin-right: var(--mr) }.rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mx,.xs\:rt-r-mx-0,.xs\:rt-r-mx-1,.xs\:rt-r-mx-2,.xs\:rt-r-mx-3,.xs\:rt-r-mx-4,.xs\:rt-r-mx-5,.xs\:rt-r-mx-6,.xs\:rt-r-mx-7,.xs\:rt-r-mx-8,.xs\:rt-r-mx-9,.xs\:-rt-r-mx-1,.xs\:-rt-r-mx-2,.xs\:-rt-r-mx-3,.xs\:-rt-r-mx-4,.xs\:-rt-r-mx-5,.xs\:-rt-r-mx-6,.xs\:-rt-r-mx-7,.xs\:-rt-r-mx-8,.xs\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mx{--margin-left: var(--ml-xs);--margin-right: var(--mr-xs) }.xs\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xs\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xs\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xs\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xs\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xs\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xs\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xs\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xs\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xs\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xs\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mx,.sm\:rt-r-mx-0,.sm\:rt-r-mx-1,.sm\:rt-r-mx-2,.sm\:rt-r-mx-3,.sm\:rt-r-mx-4,.sm\:rt-r-mx-5,.sm\:rt-r-mx-6,.sm\:rt-r-mx-7,.sm\:rt-r-mx-8,.sm\:rt-r-mx-9,.sm\:-rt-r-mx-1,.sm\:-rt-r-mx-2,.sm\:-rt-r-mx-3,.sm\:-rt-r-mx-4,.sm\:-rt-r-mx-5,.sm\:-rt-r-mx-6,.sm\:-rt-r-mx-7,.sm\:-rt-r-mx-8,.sm\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.sm\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.sm\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.sm\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.sm\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.sm\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.sm\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.sm\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.sm\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.sm\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.sm\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.sm\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mx,.md\:rt-r-mx-0,.md\:rt-r-mx-1,.md\:rt-r-mx-2,.md\:rt-r-mx-3,.md\:rt-r-mx-4,.md\:rt-r-mx-5,.md\:rt-r-mx-6,.md\:rt-r-mx-7,.md\:rt-r-mx-8,.md\:rt-r-mx-9,.md\:-rt-r-mx-1,.md\:-rt-r-mx-2,.md\:-rt-r-mx-3,.md\:-rt-r-mx-4,.md\:-rt-r-mx-5,.md\:-rt-r-mx-6,.md\:-rt-r-mx-7,.md\:-rt-r-mx-8,.md\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.md\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.md\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.md\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.md\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.md\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.md\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.md\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.md\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.md\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.md\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.md\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mx,.lg\:rt-r-mx-0,.lg\:rt-r-mx-1,.lg\:rt-r-mx-2,.lg\:rt-r-mx-3,.lg\:rt-r-mx-4,.lg\:rt-r-mx-5,.lg\:rt-r-mx-6,.lg\:rt-r-mx-7,.lg\:rt-r-mx-8,.lg\:rt-r-mx-9,.lg\:-rt-r-mx-1,.lg\:-rt-r-mx-2,.lg\:-rt-r-mx-3,.lg\:-rt-r-mx-4,.lg\:-rt-r-mx-5,.lg\:-rt-r-mx-6,.lg\:-rt-r-mx-7,.lg\:-rt-r-mx-8,.lg\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mx{--margin-left: var(--ml-lg);--margin-right: var(--mr-lg) }.lg\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.lg\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.lg\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.lg\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.lg\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.lg\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.lg\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.lg\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.lg\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.lg\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.lg\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mx,.xl\:rt-r-mx-0,.xl\:rt-r-mx-1,.xl\:rt-r-mx-2,.xl\:rt-r-mx-3,.xl\:rt-r-mx-4,.xl\:rt-r-mx-5,.xl\:rt-r-mx-6,.xl\:rt-r-mx-7,.xl\:rt-r-mx-8,.xl\:rt-r-mx-9,.xl\:-rt-r-mx-1,.xl\:-rt-r-mx-2,.xl\:-rt-r-mx-3,.xl\:-rt-r-mx-4,.xl\:-rt-r-mx-5,.xl\:-rt-r-mx-6,.xl\:-rt-r-mx-7,.xl\:-rt-r-mx-8,.xl\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mx{--margin-left: var(--ml-xl);--margin-right: var(--mr-xl) }.xl\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xl\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xl\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xl\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xl\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xl\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xl\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xl\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xl\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xl\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xl\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}.rt-r-my,.rt-r-my-0,.rt-r-my-1,.rt-r-my-2,.rt-r-my-3,.rt-r-my-4,.rt-r-my-5,.rt-r-my-6,.rt-r-my-7,.rt-r-my-8,.rt-r-my-9,.-rt-r-my-1,.-rt-r-my-2,.-rt-r-my-3,.-rt-r-my-4,.-rt-r-my-5,.-rt-r-my-6,.-rt-r-my-7,.-rt-r-my-8,.-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-my{--margin-top: var(--mt);--margin-bottom: var(--mb) }.rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-my,.xs\:rt-r-my-0,.xs\:rt-r-my-1,.xs\:rt-r-my-2,.xs\:rt-r-my-3,.xs\:rt-r-my-4,.xs\:rt-r-my-5,.xs\:rt-r-my-6,.xs\:rt-r-my-7,.xs\:rt-r-my-8,.xs\:rt-r-my-9,.xs\:-rt-r-my-1,.xs\:-rt-r-my-2,.xs\:-rt-r-my-3,.xs\:-rt-r-my-4,.xs\:-rt-r-my-5,.xs\:-rt-r-my-6,.xs\:-rt-r-my-7,.xs\:-rt-r-my-8,.xs\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-my{--margin-top: var(--mt-xs);--margin-bottom: var(--mb-xs) }.xs\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xs\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xs\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xs\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xs\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xs\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xs\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xs\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xs\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xs\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xs\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-my,.sm\:rt-r-my-0,.sm\:rt-r-my-1,.sm\:rt-r-my-2,.sm\:rt-r-my-3,.sm\:rt-r-my-4,.sm\:rt-r-my-5,.sm\:rt-r-my-6,.sm\:rt-r-my-7,.sm\:rt-r-my-8,.sm\:rt-r-my-9,.sm\:-rt-r-my-1,.sm\:-rt-r-my-2,.sm\:-rt-r-my-3,.sm\:-rt-r-my-4,.sm\:-rt-r-my-5,.sm\:-rt-r-my-6,.sm\:-rt-r-my-7,.sm\:-rt-r-my-8,.sm\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-my{--margin-top: var(--mt-sm);--margin-bottom: var(--mb-sm) }.sm\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.sm\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.sm\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.sm\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.sm\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.sm\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.sm\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.sm\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.sm\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.sm\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.sm\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-my,.md\:rt-r-my-0,.md\:rt-r-my-1,.md\:rt-r-my-2,.md\:rt-r-my-3,.md\:rt-r-my-4,.md\:rt-r-my-5,.md\:rt-r-my-6,.md\:rt-r-my-7,.md\:rt-r-my-8,.md\:rt-r-my-9,.md\:-rt-r-my-1,.md\:-rt-r-my-2,.md\:-rt-r-my-3,.md\:-rt-r-my-4,.md\:-rt-r-my-5,.md\:-rt-r-my-6,.md\:-rt-r-my-7,.md\:-rt-r-my-8,.md\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-my{--margin-top: var(--mt-md);--margin-bottom: var(--mb-md) }.md\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.md\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.md\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.md\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.md\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.md\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.md\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.md\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.md\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.md\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.md\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-my,.lg\:rt-r-my-0,.lg\:rt-r-my-1,.lg\:rt-r-my-2,.lg\:rt-r-my-3,.lg\:rt-r-my-4,.lg\:rt-r-my-5,.lg\:rt-r-my-6,.lg\:rt-r-my-7,.lg\:rt-r-my-8,.lg\:rt-r-my-9,.lg\:-rt-r-my-1,.lg\:-rt-r-my-2,.lg\:-rt-r-my-3,.lg\:-rt-r-my-4,.lg\:-rt-r-my-5,.lg\:-rt-r-my-6,.lg\:-rt-r-my-7,.lg\:-rt-r-my-8,.lg\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-my{--margin-top: var(--mt-lg);--margin-bottom: var(--mb-lg) }.lg\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.lg\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.lg\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.lg\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.lg\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.lg\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.lg\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.lg\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.lg\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.lg\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.lg\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-my,.xl\:rt-r-my-0,.xl\:rt-r-my-1,.xl\:rt-r-my-2,.xl\:rt-r-my-3,.xl\:rt-r-my-4,.xl\:rt-r-my-5,.xl\:rt-r-my-6,.xl\:rt-r-my-7,.xl\:rt-r-my-8,.xl\:rt-r-my-9,.xl\:-rt-r-my-1,.xl\:-rt-r-my-2,.xl\:-rt-r-my-3,.xl\:-rt-r-my-4,.xl\:-rt-r-my-5,.xl\:-rt-r-my-6,.xl\:-rt-r-my-7,.xl\:-rt-r-my-8,.xl\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-my{--margin-top: var(--mt-xl);--margin-bottom: var(--mb-xl) }.xl\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xl\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xl\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xl\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xl\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xl\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xl\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xl\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xl\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xl\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xl\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-mt,.rt-r-mt-0,.rt-r-mt-1,.rt-r-mt-2,.rt-r-mt-3,.rt-r-mt-4,.rt-r-mt-5,.rt-r-mt-6,.rt-r-mt-7,.rt-r-mt-8,.rt-r-mt-9,.-rt-r-mt-1,.-rt-r-mt-2,.-rt-r-mt-3,.-rt-r-mt-4,.-rt-r-mt-5,.-rt-r-mt-6,.-rt-r-mt-7,.-rt-r-mt-8,.-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.rt-r-mt{--margin-top: var(--mt) }.rt-r-mt-0{--margin-top: 0px}.rt-r-mt-1{--margin-top: var(--space-1)}.rt-r-mt-2{--margin-top: var(--space-2)}.rt-r-mt-3{--margin-top: var(--space-3)}.rt-r-mt-4{--margin-top: var(--space-4)}.rt-r-mt-5{--margin-top: var(--space-5)}.rt-r-mt-6{--margin-top: var(--space-6)}.rt-r-mt-7{--margin-top: var(--space-7)}.rt-r-mt-8{--margin-top: var(--space-8)}.rt-r-mt-9{--margin-top: var(--space-9)}.-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mt,.xs\:rt-r-mt-0,.xs\:rt-r-mt-1,.xs\:rt-r-mt-2,.xs\:rt-r-mt-3,.xs\:rt-r-mt-4,.xs\:rt-r-mt-5,.xs\:rt-r-mt-6,.xs\:rt-r-mt-7,.xs\:rt-r-mt-8,.xs\:rt-r-mt-9,.xs\:-rt-r-mt-1,.xs\:-rt-r-mt-2,.xs\:-rt-r-mt-3,.xs\:-rt-r-mt-4,.xs\:-rt-r-mt-5,.xs\:-rt-r-mt-6,.xs\:-rt-r-mt-7,.xs\:-rt-r-mt-8,.xs\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xs\:rt-r-mt{--margin-top: var(--mt-xs) }.xs\:rt-r-mt-0{--margin-top: 0px}.xs\:rt-r-mt-1{--margin-top: var(--space-1)}.xs\:rt-r-mt-2{--margin-top: var(--space-2)}.xs\:rt-r-mt-3{--margin-top: var(--space-3)}.xs\:rt-r-mt-4{--margin-top: var(--space-4)}.xs\:rt-r-mt-5{--margin-top: var(--space-5)}.xs\:rt-r-mt-6{--margin-top: var(--space-6)}.xs\:rt-r-mt-7{--margin-top: var(--space-7)}.xs\:rt-r-mt-8{--margin-top: var(--space-8)}.xs\:rt-r-mt-9{--margin-top: var(--space-9)}.xs\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xs\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xs\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xs\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xs\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xs\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xs\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xs\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xs\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mt,.sm\:rt-r-mt-0,.sm\:rt-r-mt-1,.sm\:rt-r-mt-2,.sm\:rt-r-mt-3,.sm\:rt-r-mt-4,.sm\:rt-r-mt-5,.sm\:rt-r-mt-6,.sm\:rt-r-mt-7,.sm\:rt-r-mt-8,.sm\:rt-r-mt-9,.sm\:-rt-r-mt-1,.sm\:-rt-r-mt-2,.sm\:-rt-r-mt-3,.sm\:-rt-r-mt-4,.sm\:-rt-r-mt-5,.sm\:-rt-r-mt-6,.sm\:-rt-r-mt-7,.sm\:-rt-r-mt-8,.sm\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.sm\:rt-r-mt{--margin-top: var(--mt-sm) }.sm\:rt-r-mt-0{--margin-top: 0px}.sm\:rt-r-mt-1{--margin-top: var(--space-1)}.sm\:rt-r-mt-2{--margin-top: var(--space-2)}.sm\:rt-r-mt-3{--margin-top: var(--space-3)}.sm\:rt-r-mt-4{--margin-top: var(--space-4)}.sm\:rt-r-mt-5{--margin-top: var(--space-5)}.sm\:rt-r-mt-6{--margin-top: var(--space-6)}.sm\:rt-r-mt-7{--margin-top: var(--space-7)}.sm\:rt-r-mt-8{--margin-top: var(--space-8)}.sm\:rt-r-mt-9{--margin-top: var(--space-9)}.sm\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.sm\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.sm\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.sm\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.sm\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.sm\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.sm\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.sm\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.sm\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mt,.md\:rt-r-mt-0,.md\:rt-r-mt-1,.md\:rt-r-mt-2,.md\:rt-r-mt-3,.md\:rt-r-mt-4,.md\:rt-r-mt-5,.md\:rt-r-mt-6,.md\:rt-r-mt-7,.md\:rt-r-mt-8,.md\:rt-r-mt-9,.md\:-rt-r-mt-1,.md\:-rt-r-mt-2,.md\:-rt-r-mt-3,.md\:-rt-r-mt-4,.md\:-rt-r-mt-5,.md\:-rt-r-mt-6,.md\:-rt-r-mt-7,.md\:-rt-r-mt-8,.md\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.md\:rt-r-mt{--margin-top: var(--mt-md) }.md\:rt-r-mt-0{--margin-top: 0px}.md\:rt-r-mt-1{--margin-top: var(--space-1)}.md\:rt-r-mt-2{--margin-top: var(--space-2)}.md\:rt-r-mt-3{--margin-top: var(--space-3)}.md\:rt-r-mt-4{--margin-top: var(--space-4)}.md\:rt-r-mt-5{--margin-top: var(--space-5)}.md\:rt-r-mt-6{--margin-top: var(--space-6)}.md\:rt-r-mt-7{--margin-top: var(--space-7)}.md\:rt-r-mt-8{--margin-top: var(--space-8)}.md\:rt-r-mt-9{--margin-top: var(--space-9)}.md\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.md\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.md\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.md\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.md\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.md\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.md\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.md\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.md\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mt,.lg\:rt-r-mt-0,.lg\:rt-r-mt-1,.lg\:rt-r-mt-2,.lg\:rt-r-mt-3,.lg\:rt-r-mt-4,.lg\:rt-r-mt-5,.lg\:rt-r-mt-6,.lg\:rt-r-mt-7,.lg\:rt-r-mt-8,.lg\:rt-r-mt-9,.lg\:-rt-r-mt-1,.lg\:-rt-r-mt-2,.lg\:-rt-r-mt-3,.lg\:-rt-r-mt-4,.lg\:-rt-r-mt-5,.lg\:-rt-r-mt-6,.lg\:-rt-r-mt-7,.lg\:-rt-r-mt-8,.lg\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.lg\:rt-r-mt{--margin-top: var(--mt-lg) }.lg\:rt-r-mt-0{--margin-top: 0px}.lg\:rt-r-mt-1{--margin-top: var(--space-1)}.lg\:rt-r-mt-2{--margin-top: var(--space-2)}.lg\:rt-r-mt-3{--margin-top: var(--space-3)}.lg\:rt-r-mt-4{--margin-top: var(--space-4)}.lg\:rt-r-mt-5{--margin-top: var(--space-5)}.lg\:rt-r-mt-6{--margin-top: var(--space-6)}.lg\:rt-r-mt-7{--margin-top: var(--space-7)}.lg\:rt-r-mt-8{--margin-top: var(--space-8)}.lg\:rt-r-mt-9{--margin-top: var(--space-9)}.lg\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.lg\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.lg\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.lg\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.lg\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.lg\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.lg\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.lg\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.lg\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mt,.xl\:rt-r-mt-0,.xl\:rt-r-mt-1,.xl\:rt-r-mt-2,.xl\:rt-r-mt-3,.xl\:rt-r-mt-4,.xl\:rt-r-mt-5,.xl\:rt-r-mt-6,.xl\:rt-r-mt-7,.xl\:rt-r-mt-8,.xl\:rt-r-mt-9,.xl\:-rt-r-mt-1,.xl\:-rt-r-mt-2,.xl\:-rt-r-mt-3,.xl\:-rt-r-mt-4,.xl\:-rt-r-mt-5,.xl\:-rt-r-mt-6,.xl\:-rt-r-mt-7,.xl\:-rt-r-mt-8,.xl\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xl\:rt-r-mt{--margin-top: var(--mt-xl) }.xl\:rt-r-mt-0{--margin-top: 0px}.xl\:rt-r-mt-1{--margin-top: var(--space-1)}.xl\:rt-r-mt-2{--margin-top: var(--space-2)}.xl\:rt-r-mt-3{--margin-top: var(--space-3)}.xl\:rt-r-mt-4{--margin-top: var(--space-4)}.xl\:rt-r-mt-5{--margin-top: var(--space-5)}.xl\:rt-r-mt-6{--margin-top: var(--space-6)}.xl\:rt-r-mt-7{--margin-top: var(--space-7)}.xl\:rt-r-mt-8{--margin-top: var(--space-8)}.xl\:rt-r-mt-9{--margin-top: var(--space-9)}.xl\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xl\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xl\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xl\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xl\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xl\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xl\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xl\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xl\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}.rt-r-mr,.rt-r-mr-0,.rt-r-mr-1,.rt-r-mr-2,.rt-r-mr-3,.rt-r-mr-4,.rt-r-mr-5,.rt-r-mr-6,.rt-r-mr-7,.rt-r-mr-8,.rt-r-mr-9,.-rt-r-mr-1,.-rt-r-mr-2,.-rt-r-mr-3,.-rt-r-mr-4,.-rt-r-mr-5,.-rt-r-mr-6,.-rt-r-mr-7,.-rt-r-mr-8,.-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mr{--margin-right: var(--mr) }.rt-r-mr-0{--margin-right: 0px}.rt-r-mr-1{--margin-right: var(--space-1)}.rt-r-mr-2{--margin-right: var(--space-2)}.rt-r-mr-3{--margin-right: var(--space-3)}.rt-r-mr-4{--margin-right: var(--space-4)}.rt-r-mr-5{--margin-right: var(--space-5)}.rt-r-mr-6{--margin-right: var(--space-6)}.rt-r-mr-7{--margin-right: var(--space-7)}.rt-r-mr-8{--margin-right: var(--space-8)}.rt-r-mr-9{--margin-right: var(--space-9)}.-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mr,.xs\:rt-r-mr-0,.xs\:rt-r-mr-1,.xs\:rt-r-mr-2,.xs\:rt-r-mr-3,.xs\:rt-r-mr-4,.xs\:rt-r-mr-5,.xs\:rt-r-mr-6,.xs\:rt-r-mr-7,.xs\:rt-r-mr-8,.xs\:rt-r-mr-9,.xs\:-rt-r-mr-1,.xs\:-rt-r-mr-2,.xs\:-rt-r-mr-3,.xs\:-rt-r-mr-4,.xs\:-rt-r-mr-5,.xs\:-rt-r-mr-6,.xs\:-rt-r-mr-7,.xs\:-rt-r-mr-8,.xs\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mr{--margin-right: var(--mr-xs) }.xs\:rt-r-mr-0{--margin-right: 0px}.xs\:rt-r-mr-1{--margin-right: var(--space-1)}.xs\:rt-r-mr-2{--margin-right: var(--space-2)}.xs\:rt-r-mr-3{--margin-right: var(--space-3)}.xs\:rt-r-mr-4{--margin-right: var(--space-4)}.xs\:rt-r-mr-5{--margin-right: var(--space-5)}.xs\:rt-r-mr-6{--margin-right: var(--space-6)}.xs\:rt-r-mr-7{--margin-right: var(--space-7)}.xs\:rt-r-mr-8{--margin-right: var(--space-8)}.xs\:rt-r-mr-9{--margin-right: var(--space-9)}.xs\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mr,.sm\:rt-r-mr-0,.sm\:rt-r-mr-1,.sm\:rt-r-mr-2,.sm\:rt-r-mr-3,.sm\:rt-r-mr-4,.sm\:rt-r-mr-5,.sm\:rt-r-mr-6,.sm\:rt-r-mr-7,.sm\:rt-r-mr-8,.sm\:rt-r-mr-9,.sm\:-rt-r-mr-1,.sm\:-rt-r-mr-2,.sm\:-rt-r-mr-3,.sm\:-rt-r-mr-4,.sm\:-rt-r-mr-5,.sm\:-rt-r-mr-6,.sm\:-rt-r-mr-7,.sm\:-rt-r-mr-8,.sm\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mr{--margin-right: var(--mr-sm) }.sm\:rt-r-mr-0{--margin-right: 0px}.sm\:rt-r-mr-1{--margin-right: var(--space-1)}.sm\:rt-r-mr-2{--margin-right: var(--space-2)}.sm\:rt-r-mr-3{--margin-right: var(--space-3)}.sm\:rt-r-mr-4{--margin-right: var(--space-4)}.sm\:rt-r-mr-5{--margin-right: var(--space-5)}.sm\:rt-r-mr-6{--margin-right: var(--space-6)}.sm\:rt-r-mr-7{--margin-right: var(--space-7)}.sm\:rt-r-mr-8{--margin-right: var(--space-8)}.sm\:rt-r-mr-9{--margin-right: var(--space-9)}.sm\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mr,.md\:rt-r-mr-0,.md\:rt-r-mr-1,.md\:rt-r-mr-2,.md\:rt-r-mr-3,.md\:rt-r-mr-4,.md\:rt-r-mr-5,.md\:rt-r-mr-6,.md\:rt-r-mr-7,.md\:rt-r-mr-8,.md\:rt-r-mr-9,.md\:-rt-r-mr-1,.md\:-rt-r-mr-2,.md\:-rt-r-mr-3,.md\:-rt-r-mr-4,.md\:-rt-r-mr-5,.md\:-rt-r-mr-6,.md\:-rt-r-mr-7,.md\:-rt-r-mr-8,.md\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mr{--margin-right: var(--mr-md) }.md\:rt-r-mr-0{--margin-right: 0px}.md\:rt-r-mr-1{--margin-right: var(--space-1)}.md\:rt-r-mr-2{--margin-right: var(--space-2)}.md\:rt-r-mr-3{--margin-right: var(--space-3)}.md\:rt-r-mr-4{--margin-right: var(--space-4)}.md\:rt-r-mr-5{--margin-right: var(--space-5)}.md\:rt-r-mr-6{--margin-right: var(--space-6)}.md\:rt-r-mr-7{--margin-right: var(--space-7)}.md\:rt-r-mr-8{--margin-right: var(--space-8)}.md\:rt-r-mr-9{--margin-right: var(--space-9)}.md\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mr,.lg\:rt-r-mr-0,.lg\:rt-r-mr-1,.lg\:rt-r-mr-2,.lg\:rt-r-mr-3,.lg\:rt-r-mr-4,.lg\:rt-r-mr-5,.lg\:rt-r-mr-6,.lg\:rt-r-mr-7,.lg\:rt-r-mr-8,.lg\:rt-r-mr-9,.lg\:-rt-r-mr-1,.lg\:-rt-r-mr-2,.lg\:-rt-r-mr-3,.lg\:-rt-r-mr-4,.lg\:-rt-r-mr-5,.lg\:-rt-r-mr-6,.lg\:-rt-r-mr-7,.lg\:-rt-r-mr-8,.lg\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mr{--margin-right: var(--mr-lg) }.lg\:rt-r-mr-0{--margin-right: 0px}.lg\:rt-r-mr-1{--margin-right: var(--space-1)}.lg\:rt-r-mr-2{--margin-right: var(--space-2)}.lg\:rt-r-mr-3{--margin-right: var(--space-3)}.lg\:rt-r-mr-4{--margin-right: var(--space-4)}.lg\:rt-r-mr-5{--margin-right: var(--space-5)}.lg\:rt-r-mr-6{--margin-right: var(--space-6)}.lg\:rt-r-mr-7{--margin-right: var(--space-7)}.lg\:rt-r-mr-8{--margin-right: var(--space-8)}.lg\:rt-r-mr-9{--margin-right: var(--space-9)}.lg\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mr,.xl\:rt-r-mr-0,.xl\:rt-r-mr-1,.xl\:rt-r-mr-2,.xl\:rt-r-mr-3,.xl\:rt-r-mr-4,.xl\:rt-r-mr-5,.xl\:rt-r-mr-6,.xl\:rt-r-mr-7,.xl\:rt-r-mr-8,.xl\:rt-r-mr-9,.xl\:-rt-r-mr-1,.xl\:-rt-r-mr-2,.xl\:-rt-r-mr-3,.xl\:-rt-r-mr-4,.xl\:-rt-r-mr-5,.xl\:-rt-r-mr-6,.xl\:-rt-r-mr-7,.xl\:-rt-r-mr-8,.xl\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mr{--margin-right: var(--mr-xl) }.xl\:rt-r-mr-0{--margin-right: 0px}.xl\:rt-r-mr-1{--margin-right: var(--space-1)}.xl\:rt-r-mr-2{--margin-right: var(--space-2)}.xl\:rt-r-mr-3{--margin-right: var(--space-3)}.xl\:rt-r-mr-4{--margin-right: var(--space-4)}.xl\:rt-r-mr-5{--margin-right: var(--space-5)}.xl\:rt-r-mr-6{--margin-right: var(--space-6)}.xl\:rt-r-mr-7{--margin-right: var(--space-7)}.xl\:rt-r-mr-8{--margin-right: var(--space-8)}.xl\:rt-r-mr-9{--margin-right: var(--space-9)}.xl\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}.rt-r-mb,.rt-r-mb-0,.rt-r-mb-1,.rt-r-mb-2,.rt-r-mb-3,.rt-r-mb-4,.rt-r-mb-5,.rt-r-mb-6,.rt-r-mb-7,.rt-r-mb-8,.rt-r-mb-9,.-rt-r-mb-1,.-rt-r-mb-2,.-rt-r-mb-3,.-rt-r-mb-4,.-rt-r-mb-5,.-rt-r-mb-6,.-rt-r-mb-7,.-rt-r-mb-8,.-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-mb{--margin-bottom: var(--mb) }.rt-r-mb-0{--margin-bottom: 0px}.rt-r-mb-1{--margin-bottom: var(--space-1)}.rt-r-mb-2{--margin-bottom: var(--space-2)}.rt-r-mb-3{--margin-bottom: var(--space-3)}.rt-r-mb-4{--margin-bottom: var(--space-4)}.rt-r-mb-5{--margin-bottom: var(--space-5)}.rt-r-mb-6{--margin-bottom: var(--space-6)}.rt-r-mb-7{--margin-bottom: var(--space-7)}.rt-r-mb-8{--margin-bottom: var(--space-8)}.rt-r-mb-9{--margin-bottom: var(--space-9)}.-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mb,.xs\:rt-r-mb-0,.xs\:rt-r-mb-1,.xs\:rt-r-mb-2,.xs\:rt-r-mb-3,.xs\:rt-r-mb-4,.xs\:rt-r-mb-5,.xs\:rt-r-mb-6,.xs\:rt-r-mb-7,.xs\:rt-r-mb-8,.xs\:rt-r-mb-9,.xs\:-rt-r-mb-1,.xs\:-rt-r-mb-2,.xs\:-rt-r-mb-3,.xs\:-rt-r-mb-4,.xs\:-rt-r-mb-5,.xs\:-rt-r-mb-6,.xs\:-rt-r-mb-7,.xs\:-rt-r-mb-8,.xs\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-mb{--margin-bottom: var(--mb-xs) }.xs\:rt-r-mb-0{--margin-bottom: 0px}.xs\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xs\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xs\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xs\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xs\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xs\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xs\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xs\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xs\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xs\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mb,.sm\:rt-r-mb-0,.sm\:rt-r-mb-1,.sm\:rt-r-mb-2,.sm\:rt-r-mb-3,.sm\:rt-r-mb-4,.sm\:rt-r-mb-5,.sm\:rt-r-mb-6,.sm\:rt-r-mb-7,.sm\:rt-r-mb-8,.sm\:rt-r-mb-9,.sm\:-rt-r-mb-1,.sm\:-rt-r-mb-2,.sm\:-rt-r-mb-3,.sm\:-rt-r-mb-4,.sm\:-rt-r-mb-5,.sm\:-rt-r-mb-6,.sm\:-rt-r-mb-7,.sm\:-rt-r-mb-8,.sm\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-mb{--margin-bottom: var(--mb-sm) }.sm\:rt-r-mb-0{--margin-bottom: 0px}.sm\:rt-r-mb-1{--margin-bottom: var(--space-1)}.sm\:rt-r-mb-2{--margin-bottom: var(--space-2)}.sm\:rt-r-mb-3{--margin-bottom: var(--space-3)}.sm\:rt-r-mb-4{--margin-bottom: var(--space-4)}.sm\:rt-r-mb-5{--margin-bottom: var(--space-5)}.sm\:rt-r-mb-6{--margin-bottom: var(--space-6)}.sm\:rt-r-mb-7{--margin-bottom: var(--space-7)}.sm\:rt-r-mb-8{--margin-bottom: var(--space-8)}.sm\:rt-r-mb-9{--margin-bottom: var(--space-9)}.sm\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mb,.md\:rt-r-mb-0,.md\:rt-r-mb-1,.md\:rt-r-mb-2,.md\:rt-r-mb-3,.md\:rt-r-mb-4,.md\:rt-r-mb-5,.md\:rt-r-mb-6,.md\:rt-r-mb-7,.md\:rt-r-mb-8,.md\:rt-r-mb-9,.md\:-rt-r-mb-1,.md\:-rt-r-mb-2,.md\:-rt-r-mb-3,.md\:-rt-r-mb-4,.md\:-rt-r-mb-5,.md\:-rt-r-mb-6,.md\:-rt-r-mb-7,.md\:-rt-r-mb-8,.md\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-mb{--margin-bottom: var(--mb-md) }.md\:rt-r-mb-0{--margin-bottom: 0px}.md\:rt-r-mb-1{--margin-bottom: var(--space-1)}.md\:rt-r-mb-2{--margin-bottom: var(--space-2)}.md\:rt-r-mb-3{--margin-bottom: var(--space-3)}.md\:rt-r-mb-4{--margin-bottom: var(--space-4)}.md\:rt-r-mb-5{--margin-bottom: var(--space-5)}.md\:rt-r-mb-6{--margin-bottom: var(--space-6)}.md\:rt-r-mb-7{--margin-bottom: var(--space-7)}.md\:rt-r-mb-8{--margin-bottom: var(--space-8)}.md\:rt-r-mb-9{--margin-bottom: var(--space-9)}.md\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mb,.lg\:rt-r-mb-0,.lg\:rt-r-mb-1,.lg\:rt-r-mb-2,.lg\:rt-r-mb-3,.lg\:rt-r-mb-4,.lg\:rt-r-mb-5,.lg\:rt-r-mb-6,.lg\:rt-r-mb-7,.lg\:rt-r-mb-8,.lg\:rt-r-mb-9,.lg\:-rt-r-mb-1,.lg\:-rt-r-mb-2,.lg\:-rt-r-mb-3,.lg\:-rt-r-mb-4,.lg\:-rt-r-mb-5,.lg\:-rt-r-mb-6,.lg\:-rt-r-mb-7,.lg\:-rt-r-mb-8,.lg\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-mb{--margin-bottom: var(--mb-lg) }.lg\:rt-r-mb-0{--margin-bottom: 0px}.lg\:rt-r-mb-1{--margin-bottom: var(--space-1)}.lg\:rt-r-mb-2{--margin-bottom: var(--space-2)}.lg\:rt-r-mb-3{--margin-bottom: var(--space-3)}.lg\:rt-r-mb-4{--margin-bottom: var(--space-4)}.lg\:rt-r-mb-5{--margin-bottom: var(--space-5)}.lg\:rt-r-mb-6{--margin-bottom: var(--space-6)}.lg\:rt-r-mb-7{--margin-bottom: var(--space-7)}.lg\:rt-r-mb-8{--margin-bottom: var(--space-8)}.lg\:rt-r-mb-9{--margin-bottom: var(--space-9)}.lg\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mb,.xl\:rt-r-mb-0,.xl\:rt-r-mb-1,.xl\:rt-r-mb-2,.xl\:rt-r-mb-3,.xl\:rt-r-mb-4,.xl\:rt-r-mb-5,.xl\:rt-r-mb-6,.xl\:rt-r-mb-7,.xl\:rt-r-mb-8,.xl\:rt-r-mb-9,.xl\:-rt-r-mb-1,.xl\:-rt-r-mb-2,.xl\:-rt-r-mb-3,.xl\:-rt-r-mb-4,.xl\:-rt-r-mb-5,.xl\:-rt-r-mb-6,.xl\:-rt-r-mb-7,.xl\:-rt-r-mb-8,.xl\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-mb{--margin-bottom: var(--mb-xl) }.xl\:rt-r-mb-0{--margin-bottom: 0px}.xl\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xl\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xl\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xl\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xl\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xl\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xl\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xl\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xl\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xl\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-ml,.rt-r-ml-0,.rt-r-ml-1,.rt-r-ml-2,.rt-r-ml-3,.rt-r-ml-4,.rt-r-ml-5,.rt-r-ml-6,.rt-r-ml-7,.rt-r-ml-8,.rt-r-ml-9,.-rt-r-ml-1,.-rt-r-ml-2,.-rt-r-ml-3,.-rt-r-ml-4,.-rt-r-ml-5,.-rt-r-ml-6,.-rt-r-ml-7,.-rt-r-ml-8,.-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-ml{--margin-left: var(--ml) }.rt-r-ml-0{--margin-left: 0px}.rt-r-ml-1{--margin-left: var(--space-1)}.rt-r-ml-2{--margin-left: var(--space-2)}.rt-r-ml-3{--margin-left: var(--space-3)}.rt-r-ml-4{--margin-left: var(--space-4)}.rt-r-ml-5{--margin-left: var(--space-5)}.rt-r-ml-6{--margin-left: var(--space-6)}.rt-r-ml-7{--margin-left: var(--space-7)}.rt-r-ml-8{--margin-left: var(--space-8)}.rt-r-ml-9{--margin-left: var(--space-9)}.-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-ml,.xs\:rt-r-ml-0,.xs\:rt-r-ml-1,.xs\:rt-r-ml-2,.xs\:rt-r-ml-3,.xs\:rt-r-ml-4,.xs\:rt-r-ml-5,.xs\:rt-r-ml-6,.xs\:rt-r-ml-7,.xs\:rt-r-ml-8,.xs\:rt-r-ml-9,.xs\:-rt-r-ml-1,.xs\:-rt-r-ml-2,.xs\:-rt-r-ml-3,.xs\:-rt-r-ml-4,.xs\:-rt-r-ml-5,.xs\:-rt-r-ml-6,.xs\:-rt-r-ml-7,.xs\:-rt-r-ml-8,.xs\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-ml{--margin-left: var(--ml-xs) }.xs\:rt-r-ml-0{--margin-left: 0px}.xs\:rt-r-ml-1{--margin-left: var(--space-1)}.xs\:rt-r-ml-2{--margin-left: var(--space-2)}.xs\:rt-r-ml-3{--margin-left: var(--space-3)}.xs\:rt-r-ml-4{--margin-left: var(--space-4)}.xs\:rt-r-ml-5{--margin-left: var(--space-5)}.xs\:rt-r-ml-6{--margin-left: var(--space-6)}.xs\:rt-r-ml-7{--margin-left: var(--space-7)}.xs\:rt-r-ml-8{--margin-left: var(--space-8)}.xs\:rt-r-ml-9{--margin-left: var(--space-9)}.xs\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-ml,.sm\:rt-r-ml-0,.sm\:rt-r-ml-1,.sm\:rt-r-ml-2,.sm\:rt-r-ml-3,.sm\:rt-r-ml-4,.sm\:rt-r-ml-5,.sm\:rt-r-ml-6,.sm\:rt-r-ml-7,.sm\:rt-r-ml-8,.sm\:rt-r-ml-9,.sm\:-rt-r-ml-1,.sm\:-rt-r-ml-2,.sm\:-rt-r-ml-3,.sm\:-rt-r-ml-4,.sm\:-rt-r-ml-5,.sm\:-rt-r-ml-6,.sm\:-rt-r-ml-7,.sm\:-rt-r-ml-8,.sm\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-ml{--margin-left: var(--ml-sm) }.sm\:rt-r-ml-0{--margin-left: 0px}.sm\:rt-r-ml-1{--margin-left: var(--space-1)}.sm\:rt-r-ml-2{--margin-left: var(--space-2)}.sm\:rt-r-ml-3{--margin-left: var(--space-3)}.sm\:rt-r-ml-4{--margin-left: var(--space-4)}.sm\:rt-r-ml-5{--margin-left: var(--space-5)}.sm\:rt-r-ml-6{--margin-left: var(--space-6)}.sm\:rt-r-ml-7{--margin-left: var(--space-7)}.sm\:rt-r-ml-8{--margin-left: var(--space-8)}.sm\:rt-r-ml-9{--margin-left: var(--space-9)}.sm\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-ml,.md\:rt-r-ml-0,.md\:rt-r-ml-1,.md\:rt-r-ml-2,.md\:rt-r-ml-3,.md\:rt-r-ml-4,.md\:rt-r-ml-5,.md\:rt-r-ml-6,.md\:rt-r-ml-7,.md\:rt-r-ml-8,.md\:rt-r-ml-9,.md\:-rt-r-ml-1,.md\:-rt-r-ml-2,.md\:-rt-r-ml-3,.md\:-rt-r-ml-4,.md\:-rt-r-ml-5,.md\:-rt-r-ml-6,.md\:-rt-r-ml-7,.md\:-rt-r-ml-8,.md\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-ml{--margin-left: var(--ml-md) }.md\:rt-r-ml-0{--margin-left: 0px}.md\:rt-r-ml-1{--margin-left: var(--space-1)}.md\:rt-r-ml-2{--margin-left: var(--space-2)}.md\:rt-r-ml-3{--margin-left: var(--space-3)}.md\:rt-r-ml-4{--margin-left: var(--space-4)}.md\:rt-r-ml-5{--margin-left: var(--space-5)}.md\:rt-r-ml-6{--margin-left: var(--space-6)}.md\:rt-r-ml-7{--margin-left: var(--space-7)}.md\:rt-r-ml-8{--margin-left: var(--space-8)}.md\:rt-r-ml-9{--margin-left: var(--space-9)}.md\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-ml,.lg\:rt-r-ml-0,.lg\:rt-r-ml-1,.lg\:rt-r-ml-2,.lg\:rt-r-ml-3,.lg\:rt-r-ml-4,.lg\:rt-r-ml-5,.lg\:rt-r-ml-6,.lg\:rt-r-ml-7,.lg\:rt-r-ml-8,.lg\:rt-r-ml-9,.lg\:-rt-r-ml-1,.lg\:-rt-r-ml-2,.lg\:-rt-r-ml-3,.lg\:-rt-r-ml-4,.lg\:-rt-r-ml-5,.lg\:-rt-r-ml-6,.lg\:-rt-r-ml-7,.lg\:-rt-r-ml-8,.lg\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-ml{--margin-left: var(--ml-lg) }.lg\:rt-r-ml-0{--margin-left: 0px}.lg\:rt-r-ml-1{--margin-left: var(--space-1)}.lg\:rt-r-ml-2{--margin-left: var(--space-2)}.lg\:rt-r-ml-3{--margin-left: var(--space-3)}.lg\:rt-r-ml-4{--margin-left: var(--space-4)}.lg\:rt-r-ml-5{--margin-left: var(--space-5)}.lg\:rt-r-ml-6{--margin-left: var(--space-6)}.lg\:rt-r-ml-7{--margin-left: var(--space-7)}.lg\:rt-r-ml-8{--margin-left: var(--space-8)}.lg\:rt-r-ml-9{--margin-left: var(--space-9)}.lg\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-ml,.xl\:rt-r-ml-0,.xl\:rt-r-ml-1,.xl\:rt-r-ml-2,.xl\:rt-r-ml-3,.xl\:rt-r-ml-4,.xl\:rt-r-ml-5,.xl\:rt-r-ml-6,.xl\:rt-r-ml-7,.xl\:rt-r-ml-8,.xl\:rt-r-ml-9,.xl\:-rt-r-ml-1,.xl\:-rt-r-ml-2,.xl\:-rt-r-ml-3,.xl\:-rt-r-ml-4,.xl\:-rt-r-ml-5,.xl\:-rt-r-ml-6,.xl\:-rt-r-ml-7,.xl\:-rt-r-ml-8,.xl\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-ml{--margin-left: var(--ml-xl) }.xl\:rt-r-ml-0{--margin-left: 0px}.xl\:rt-r-ml-1{--margin-left: var(--space-1)}.xl\:rt-r-ml-2{--margin-left: var(--space-2)}.xl\:rt-r-ml-3{--margin-left: var(--space-3)}.xl\:rt-r-ml-4{--margin-left: var(--space-4)}.xl\:rt-r-ml-5{--margin-left: var(--space-5)}.xl\:rt-r-ml-6{--margin-left: var(--space-6)}.xl\:rt-r-ml-7{--margin-left: var(--space-7)}.xl\:rt-r-ml-8{--margin-left: var(--space-8)}.xl\:rt-r-ml-9{--margin-left: var(--space-9)}.xl\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}.rt-r-overflow-visible{overflow:visible}.rt-r-overflow-hidden{overflow:hidden}.rt-r-overflow-clip{overflow:clip}.rt-r-overflow-scroll{overflow:scroll}.rt-r-overflow-auto{overflow:auto}.rt-r-ox-visible{overflow-x:visible}.rt-r-ox-hidden{overflow-x:hidden}.rt-r-ox-clip{overflow-x:clip}.rt-r-ox-scroll{overflow-x:scroll}.rt-r-ox-auto{overflow-x:auto}.rt-r-oy-visible{overflow-y:visible}.rt-r-oy-hidden{overflow-y:hidden}.rt-r-oy-clip{overflow-y:clip}.rt-r-oy-scroll{overflow-y:scroll}.rt-r-oy-auto{overflow-y:auto}@media (min-width: 520px){.xs\:rt-r-overflow-visible{overflow:visible}.xs\:rt-r-overflow-hidden{overflow:hidden}.xs\:rt-r-overflow-clip{overflow:clip}.xs\:rt-r-overflow-scroll{overflow:scroll}.xs\:rt-r-overflow-auto{overflow:auto}.xs\:rt-r-ox-visible{overflow-x:visible}.xs\:rt-r-ox-hidden{overflow-x:hidden}.xs\:rt-r-ox-clip{overflow-x:clip}.xs\:rt-r-ox-scroll{overflow-x:scroll}.xs\:rt-r-ox-auto{overflow-x:auto}.xs\:rt-r-oy-visible{overflow-y:visible}.xs\:rt-r-oy-hidden{overflow-y:hidden}.xs\:rt-r-oy-clip{overflow-y:clip}.xs\:rt-r-oy-scroll{overflow-y:scroll}.xs\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 768px){.sm\:rt-r-overflow-visible{overflow:visible}.sm\:rt-r-overflow-hidden{overflow:hidden}.sm\:rt-r-overflow-clip{overflow:clip}.sm\:rt-r-overflow-scroll{overflow:scroll}.sm\:rt-r-overflow-auto{overflow:auto}.sm\:rt-r-ox-visible{overflow-x:visible}.sm\:rt-r-ox-hidden{overflow-x:hidden}.sm\:rt-r-ox-clip{overflow-x:clip}.sm\:rt-r-ox-scroll{overflow-x:scroll}.sm\:rt-r-ox-auto{overflow-x:auto}.sm\:rt-r-oy-visible{overflow-y:visible}.sm\:rt-r-oy-hidden{overflow-y:hidden}.sm\:rt-r-oy-clip{overflow-y:clip}.sm\:rt-r-oy-scroll{overflow-y:scroll}.sm\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1024px){.md\:rt-r-overflow-visible{overflow:visible}.md\:rt-r-overflow-hidden{overflow:hidden}.md\:rt-r-overflow-clip{overflow:clip}.md\:rt-r-overflow-scroll{overflow:scroll}.md\:rt-r-overflow-auto{overflow:auto}.md\:rt-r-ox-visible{overflow-x:visible}.md\:rt-r-ox-hidden{overflow-x:hidden}.md\:rt-r-ox-clip{overflow-x:clip}.md\:rt-r-ox-scroll{overflow-x:scroll}.md\:rt-r-ox-auto{overflow-x:auto}.md\:rt-r-oy-visible{overflow-y:visible}.md\:rt-r-oy-hidden{overflow-y:hidden}.md\:rt-r-oy-clip{overflow-y:clip}.md\:rt-r-oy-scroll{overflow-y:scroll}.md\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1280px){.lg\:rt-r-overflow-visible{overflow:visible}.lg\:rt-r-overflow-hidden{overflow:hidden}.lg\:rt-r-overflow-clip{overflow:clip}.lg\:rt-r-overflow-scroll{overflow:scroll}.lg\:rt-r-overflow-auto{overflow:auto}.lg\:rt-r-ox-visible{overflow-x:visible}.lg\:rt-r-ox-hidden{overflow-x:hidden}.lg\:rt-r-ox-clip{overflow-x:clip}.lg\:rt-r-ox-scroll{overflow-x:scroll}.lg\:rt-r-ox-auto{overflow-x:auto}.lg\:rt-r-oy-visible{overflow-y:visible}.lg\:rt-r-oy-hidden{overflow-y:hidden}.lg\:rt-r-oy-clip{overflow-y:clip}.lg\:rt-r-oy-scroll{overflow-y:scroll}.lg\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1640px){.xl\:rt-r-overflow-visible{overflow:visible}.xl\:rt-r-overflow-hidden{overflow:hidden}.xl\:rt-r-overflow-clip{overflow:clip}.xl\:rt-r-overflow-scroll{overflow:scroll}.xl\:rt-r-overflow-auto{overflow:auto}.xl\:rt-r-ox-visible{overflow-x:visible}.xl\:rt-r-ox-hidden{overflow-x:hidden}.xl\:rt-r-ox-clip{overflow-x:clip}.xl\:rt-r-ox-scroll{overflow-x:scroll}.xl\:rt-r-ox-auto{overflow-x:auto}.xl\:rt-r-oy-visible{overflow-y:visible}.xl\:rt-r-oy-hidden{overflow-y:hidden}.xl\:rt-r-oy-clip{overflow-y:clip}.xl\:rt-r-oy-scroll{overflow-y:scroll}.xl\:rt-r-oy-auto{overflow-y:auto}}.rt-r-p{padding:var(--p)}.rt-r-p-0{padding:0}.rt-r-p-1{padding:var(--space-1)}.rt-r-p-2{padding:var(--space-2)}.rt-r-p-3{padding:var(--space-3)}.rt-r-p-4{padding:var(--space-4)}.rt-r-p-5{padding:var(--space-5)}.rt-r-p-6{padding:var(--space-6)}.rt-r-p-7{padding:var(--space-7)}.rt-r-p-8{padding:var(--space-8)}.rt-r-p-9{padding:var(--space-9)}.rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-p{padding:var(--p-xs)}.xs\:rt-r-p-0{padding:0}.xs\:rt-r-p-1{padding:var(--space-1)}.xs\:rt-r-p-2{padding:var(--space-2)}.xs\:rt-r-p-3{padding:var(--space-3)}.xs\:rt-r-p-4{padding:var(--space-4)}.xs\:rt-r-p-5{padding:var(--space-5)}.xs\:rt-r-p-6{padding:var(--space-6)}.xs\:rt-r-p-7{padding:var(--space-7)}.xs\:rt-r-p-8{padding:var(--space-8)}.xs\:rt-r-p-9{padding:var(--space-9)}.xs\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-p{padding:var(--p-sm)}.sm\:rt-r-p-0{padding:0}.sm\:rt-r-p-1{padding:var(--space-1)}.sm\:rt-r-p-2{padding:var(--space-2)}.sm\:rt-r-p-3{padding:var(--space-3)}.sm\:rt-r-p-4{padding:var(--space-4)}.sm\:rt-r-p-5{padding:var(--space-5)}.sm\:rt-r-p-6{padding:var(--space-6)}.sm\:rt-r-p-7{padding:var(--space-7)}.sm\:rt-r-p-8{padding:var(--space-8)}.sm\:rt-r-p-9{padding:var(--space-9)}.sm\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-p{padding:var(--p-md)}.md\:rt-r-p-0{padding:0}.md\:rt-r-p-1{padding:var(--space-1)}.md\:rt-r-p-2{padding:var(--space-2)}.md\:rt-r-p-3{padding:var(--space-3)}.md\:rt-r-p-4{padding:var(--space-4)}.md\:rt-r-p-5{padding:var(--space-5)}.md\:rt-r-p-6{padding:var(--space-6)}.md\:rt-r-p-7{padding:var(--space-7)}.md\:rt-r-p-8{padding:var(--space-8)}.md\:rt-r-p-9{padding:var(--space-9)}.md\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-p{padding:var(--p-lg)}.lg\:rt-r-p-0{padding:0}.lg\:rt-r-p-1{padding:var(--space-1)}.lg\:rt-r-p-2{padding:var(--space-2)}.lg\:rt-r-p-3{padding:var(--space-3)}.lg\:rt-r-p-4{padding:var(--space-4)}.lg\:rt-r-p-5{padding:var(--space-5)}.lg\:rt-r-p-6{padding:var(--space-6)}.lg\:rt-r-p-7{padding:var(--space-7)}.lg\:rt-r-p-8{padding:var(--space-8)}.lg\:rt-r-p-9{padding:var(--space-9)}.lg\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-p{padding:var(--p-xl)}.xl\:rt-r-p-0{padding:0}.xl\:rt-r-p-1{padding:var(--space-1)}.xl\:rt-r-p-2{padding:var(--space-2)}.xl\:rt-r-p-3{padding:var(--space-3)}.xl\:rt-r-p-4{padding:var(--space-4)}.xl\:rt-r-p-5{padding:var(--space-5)}.xl\:rt-r-p-6{padding:var(--space-6)}.xl\:rt-r-p-7{padding:var(--space-7)}.xl\:rt-r-p-8{padding:var(--space-8)}.xl\:rt-r-p-9{padding:var(--space-9)}.xl\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}.rt-r-px{padding-left:var(--pl);padding-right:var(--pr)}.rt-r-px-0{padding-left:0;padding-right:0}.rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-px{padding-left:var(--pl-xs);padding-right:var(--pr-xs)}.xs\:rt-r-px-0{padding-left:0;padding-right:0}.xs\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xs\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xs\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xs\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xs\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xs\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xs\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xs\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xs\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xs\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-px{padding-left:var(--pl-sm);padding-right:var(--pr-sm)}.sm\:rt-r-px-0{padding-left:0;padding-right:0}.sm\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.sm\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.sm\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.sm\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.sm\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.sm\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.sm\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.sm\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.sm\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.sm\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-px{padding-left:var(--pl-md);padding-right:var(--pr-md)}.md\:rt-r-px-0{padding-left:0;padding-right:0}.md\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.md\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.md\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.md\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.md\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.md\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.md\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.md\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.md\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.md\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-px{padding-left:var(--pl-lg);padding-right:var(--pr-lg)}.lg\:rt-r-px-0{padding-left:0;padding-right:0}.lg\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.lg\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.lg\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.lg\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.lg\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.lg\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.lg\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.lg\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.lg\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.lg\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-px{padding-left:var(--pl-xl);padding-right:var(--pr-xl)}.xl\:rt-r-px-0{padding-left:0;padding-right:0}.xl\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xl\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xl\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xl\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xl\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xl\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xl\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xl\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xl\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xl\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}.rt-r-py{padding-top:var(--pt);padding-bottom:var(--pb)}.rt-r-py-0{padding-top:0;padding-bottom:0}.rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-py{padding-top:var(--pt-xs);padding-bottom:var(--pb-xs)}.xs\:rt-r-py-0{padding-top:0;padding-bottom:0}.xs\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xs\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xs\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xs\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xs\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xs\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xs\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xs\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xs\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xs\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-py{padding-top:var(--pt-sm);padding-bottom:var(--pb-sm)}.sm\:rt-r-py-0{padding-top:0;padding-bottom:0}.sm\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.sm\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.sm\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.sm\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.sm\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.sm\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.sm\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.sm\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.sm\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.sm\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-py{padding-top:var(--pt-md);padding-bottom:var(--pb-md)}.md\:rt-r-py-0{padding-top:0;padding-bottom:0}.md\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.md\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.md\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.md\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.md\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.md\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.md\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.md\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.md\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.md\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-py{padding-top:var(--pt-lg);padding-bottom:var(--pb-lg)}.lg\:rt-r-py-0{padding-top:0;padding-bottom:0}.lg\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.lg\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.lg\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.lg\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.lg\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.lg\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.lg\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.lg\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.lg\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.lg\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-py{padding-top:var(--pt-xl);padding-bottom:var(--pb-xl)}.xl\:rt-r-py-0{padding-top:0;padding-bottom:0}.xl\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xl\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xl\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xl\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xl\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xl\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xl\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xl\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xl\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xl\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}.rt-r-pt{padding-top:var(--pt)}.rt-r-pt-0{padding-top:0}.rt-r-pt-1{padding-top:var(--space-1)}.rt-r-pt-2{padding-top:var(--space-2)}.rt-r-pt-3{padding-top:var(--space-3)}.rt-r-pt-4{padding-top:var(--space-4)}.rt-r-pt-5{padding-top:var(--space-5)}.rt-r-pt-6{padding-top:var(--space-6)}.rt-r-pt-7{padding-top:var(--space-7)}.rt-r-pt-8{padding-top:var(--space-8)}.rt-r-pt-9{padding-top:var(--space-9)}.rt-r-pt-inset{padding-top:var(--inset-padding-top)}@media (min-width: 520px){.xs\:rt-r-pt{padding-top:var(--pt-xs)}.xs\:rt-r-pt-0{padding-top:0}.xs\:rt-r-pt-1{padding-top:var(--space-1)}.xs\:rt-r-pt-2{padding-top:var(--space-2)}.xs\:rt-r-pt-3{padding-top:var(--space-3)}.xs\:rt-r-pt-4{padding-top:var(--space-4)}.xs\:rt-r-pt-5{padding-top:var(--space-5)}.xs\:rt-r-pt-6{padding-top:var(--space-6)}.xs\:rt-r-pt-7{padding-top:var(--space-7)}.xs\:rt-r-pt-8{padding-top:var(--space-8)}.xs\:rt-r-pt-9{padding-top:var(--space-9)}.xs\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 768px){.sm\:rt-r-pt{padding-top:var(--pt-sm)}.sm\:rt-r-pt-0{padding-top:0}.sm\:rt-r-pt-1{padding-top:var(--space-1)}.sm\:rt-r-pt-2{padding-top:var(--space-2)}.sm\:rt-r-pt-3{padding-top:var(--space-3)}.sm\:rt-r-pt-4{padding-top:var(--space-4)}.sm\:rt-r-pt-5{padding-top:var(--space-5)}.sm\:rt-r-pt-6{padding-top:var(--space-6)}.sm\:rt-r-pt-7{padding-top:var(--space-7)}.sm\:rt-r-pt-8{padding-top:var(--space-8)}.sm\:rt-r-pt-9{padding-top:var(--space-9)}.sm\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1024px){.md\:rt-r-pt{padding-top:var(--pt-md)}.md\:rt-r-pt-0{padding-top:0}.md\:rt-r-pt-1{padding-top:var(--space-1)}.md\:rt-r-pt-2{padding-top:var(--space-2)}.md\:rt-r-pt-3{padding-top:var(--space-3)}.md\:rt-r-pt-4{padding-top:var(--space-4)}.md\:rt-r-pt-5{padding-top:var(--space-5)}.md\:rt-r-pt-6{padding-top:var(--space-6)}.md\:rt-r-pt-7{padding-top:var(--space-7)}.md\:rt-r-pt-8{padding-top:var(--space-8)}.md\:rt-r-pt-9{padding-top:var(--space-9)}.md\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1280px){.lg\:rt-r-pt{padding-top:var(--pt-lg)}.lg\:rt-r-pt-0{padding-top:0}.lg\:rt-r-pt-1{padding-top:var(--space-1)}.lg\:rt-r-pt-2{padding-top:var(--space-2)}.lg\:rt-r-pt-3{padding-top:var(--space-3)}.lg\:rt-r-pt-4{padding-top:var(--space-4)}.lg\:rt-r-pt-5{padding-top:var(--space-5)}.lg\:rt-r-pt-6{padding-top:var(--space-6)}.lg\:rt-r-pt-7{padding-top:var(--space-7)}.lg\:rt-r-pt-8{padding-top:var(--space-8)}.lg\:rt-r-pt-9{padding-top:var(--space-9)}.lg\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1640px){.xl\:rt-r-pt{padding-top:var(--pt-xl)}.xl\:rt-r-pt-0{padding-top:0}.xl\:rt-r-pt-1{padding-top:var(--space-1)}.xl\:rt-r-pt-2{padding-top:var(--space-2)}.xl\:rt-r-pt-3{padding-top:var(--space-3)}.xl\:rt-r-pt-4{padding-top:var(--space-4)}.xl\:rt-r-pt-5{padding-top:var(--space-5)}.xl\:rt-r-pt-6{padding-top:var(--space-6)}.xl\:rt-r-pt-7{padding-top:var(--space-7)}.xl\:rt-r-pt-8{padding-top:var(--space-8)}.xl\:rt-r-pt-9{padding-top:var(--space-9)}.xl\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}.rt-r-pr{padding-right:var(--pr)}.rt-r-pr-0{padding-right:0}.rt-r-pr-1{padding-right:var(--space-1)}.rt-r-pr-2{padding-right:var(--space-2)}.rt-r-pr-3{padding-right:var(--space-3)}.rt-r-pr-4{padding-right:var(--space-4)}.rt-r-pr-5{padding-right:var(--space-5)}.rt-r-pr-6{padding-right:var(--space-6)}.rt-r-pr-7{padding-right:var(--space-7)}.rt-r-pr-8{padding-right:var(--space-8)}.rt-r-pr-9{padding-right:var(--space-9)}.rt-r-pr-inset{padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-pr{padding-right:var(--pr-xs)}.xs\:rt-r-pr-0{padding-right:0}.xs\:rt-r-pr-1{padding-right:var(--space-1)}.xs\:rt-r-pr-2{padding-right:var(--space-2)}.xs\:rt-r-pr-3{padding-right:var(--space-3)}.xs\:rt-r-pr-4{padding-right:var(--space-4)}.xs\:rt-r-pr-5{padding-right:var(--space-5)}.xs\:rt-r-pr-6{padding-right:var(--space-6)}.xs\:rt-r-pr-7{padding-right:var(--space-7)}.xs\:rt-r-pr-8{padding-right:var(--space-8)}.xs\:rt-r-pr-9{padding-right:var(--space-9)}.xs\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-pr{padding-right:var(--pr-sm)}.sm\:rt-r-pr-0{padding-right:0}.sm\:rt-r-pr-1{padding-right:var(--space-1)}.sm\:rt-r-pr-2{padding-right:var(--space-2)}.sm\:rt-r-pr-3{padding-right:var(--space-3)}.sm\:rt-r-pr-4{padding-right:var(--space-4)}.sm\:rt-r-pr-5{padding-right:var(--space-5)}.sm\:rt-r-pr-6{padding-right:var(--space-6)}.sm\:rt-r-pr-7{padding-right:var(--space-7)}.sm\:rt-r-pr-8{padding-right:var(--space-8)}.sm\:rt-r-pr-9{padding-right:var(--space-9)}.sm\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-pr{padding-right:var(--pr-md)}.md\:rt-r-pr-0{padding-right:0}.md\:rt-r-pr-1{padding-right:var(--space-1)}.md\:rt-r-pr-2{padding-right:var(--space-2)}.md\:rt-r-pr-3{padding-right:var(--space-3)}.md\:rt-r-pr-4{padding-right:var(--space-4)}.md\:rt-r-pr-5{padding-right:var(--space-5)}.md\:rt-r-pr-6{padding-right:var(--space-6)}.md\:rt-r-pr-7{padding-right:var(--space-7)}.md\:rt-r-pr-8{padding-right:var(--space-8)}.md\:rt-r-pr-9{padding-right:var(--space-9)}.md\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-pr{padding-right:var(--pr-lg)}.lg\:rt-r-pr-0{padding-right:0}.lg\:rt-r-pr-1{padding-right:var(--space-1)}.lg\:rt-r-pr-2{padding-right:var(--space-2)}.lg\:rt-r-pr-3{padding-right:var(--space-3)}.lg\:rt-r-pr-4{padding-right:var(--space-4)}.lg\:rt-r-pr-5{padding-right:var(--space-5)}.lg\:rt-r-pr-6{padding-right:var(--space-6)}.lg\:rt-r-pr-7{padding-right:var(--space-7)}.lg\:rt-r-pr-8{padding-right:var(--space-8)}.lg\:rt-r-pr-9{padding-right:var(--space-9)}.lg\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-pr{padding-right:var(--pr-xl)}.xl\:rt-r-pr-0{padding-right:0}.xl\:rt-r-pr-1{padding-right:var(--space-1)}.xl\:rt-r-pr-2{padding-right:var(--space-2)}.xl\:rt-r-pr-3{padding-right:var(--space-3)}.xl\:rt-r-pr-4{padding-right:var(--space-4)}.xl\:rt-r-pr-5{padding-right:var(--space-5)}.xl\:rt-r-pr-6{padding-right:var(--space-6)}.xl\:rt-r-pr-7{padding-right:var(--space-7)}.xl\:rt-r-pr-8{padding-right:var(--space-8)}.xl\:rt-r-pr-9{padding-right:var(--space-9)}.xl\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}.rt-r-pb{padding-bottom:var(--pb)}.rt-r-pb-0{padding-bottom:0}.rt-r-pb-1{padding-bottom:var(--space-1)}.rt-r-pb-2{padding-bottom:var(--space-2)}.rt-r-pb-3{padding-bottom:var(--space-3)}.rt-r-pb-4{padding-bottom:var(--space-4)}.rt-r-pb-5{padding-bottom:var(--space-5)}.rt-r-pb-6{padding-bottom:var(--space-6)}.rt-r-pb-7{padding-bottom:var(--space-7)}.rt-r-pb-8{padding-bottom:var(--space-8)}.rt-r-pb-9{padding-bottom:var(--space-9)}.rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-pb{padding-bottom:var(--pb-xs)}.xs\:rt-r-pb-0{padding-bottom:0}.xs\:rt-r-pb-1{padding-bottom:var(--space-1)}.xs\:rt-r-pb-2{padding-bottom:var(--space-2)}.xs\:rt-r-pb-3{padding-bottom:var(--space-3)}.xs\:rt-r-pb-4{padding-bottom:var(--space-4)}.xs\:rt-r-pb-5{padding-bottom:var(--space-5)}.xs\:rt-r-pb-6{padding-bottom:var(--space-6)}.xs\:rt-r-pb-7{padding-bottom:var(--space-7)}.xs\:rt-r-pb-8{padding-bottom:var(--space-8)}.xs\:rt-r-pb-9{padding-bottom:var(--space-9)}.xs\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-pb{padding-bottom:var(--pb-sm)}.sm\:rt-r-pb-0{padding-bottom:0}.sm\:rt-r-pb-1{padding-bottom:var(--space-1)}.sm\:rt-r-pb-2{padding-bottom:var(--space-2)}.sm\:rt-r-pb-3{padding-bottom:var(--space-3)}.sm\:rt-r-pb-4{padding-bottom:var(--space-4)}.sm\:rt-r-pb-5{padding-bottom:var(--space-5)}.sm\:rt-r-pb-6{padding-bottom:var(--space-6)}.sm\:rt-r-pb-7{padding-bottom:var(--space-7)}.sm\:rt-r-pb-8{padding-bottom:var(--space-8)}.sm\:rt-r-pb-9{padding-bottom:var(--space-9)}.sm\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-pb{padding-bottom:var(--pb-md)}.md\:rt-r-pb-0{padding-bottom:0}.md\:rt-r-pb-1{padding-bottom:var(--space-1)}.md\:rt-r-pb-2{padding-bottom:var(--space-2)}.md\:rt-r-pb-3{padding-bottom:var(--space-3)}.md\:rt-r-pb-4{padding-bottom:var(--space-4)}.md\:rt-r-pb-5{padding-bottom:var(--space-5)}.md\:rt-r-pb-6{padding-bottom:var(--space-6)}.md\:rt-r-pb-7{padding-bottom:var(--space-7)}.md\:rt-r-pb-8{padding-bottom:var(--space-8)}.md\:rt-r-pb-9{padding-bottom:var(--space-9)}.md\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-pb{padding-bottom:var(--pb-lg)}.lg\:rt-r-pb-0{padding-bottom:0}.lg\:rt-r-pb-1{padding-bottom:var(--space-1)}.lg\:rt-r-pb-2{padding-bottom:var(--space-2)}.lg\:rt-r-pb-3{padding-bottom:var(--space-3)}.lg\:rt-r-pb-4{padding-bottom:var(--space-4)}.lg\:rt-r-pb-5{padding-bottom:var(--space-5)}.lg\:rt-r-pb-6{padding-bottom:var(--space-6)}.lg\:rt-r-pb-7{padding-bottom:var(--space-7)}.lg\:rt-r-pb-8{padding-bottom:var(--space-8)}.lg\:rt-r-pb-9{padding-bottom:var(--space-9)}.lg\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-pb{padding-bottom:var(--pb-xl)}.xl\:rt-r-pb-0{padding-bottom:0}.xl\:rt-r-pb-1{padding-bottom:var(--space-1)}.xl\:rt-r-pb-2{padding-bottom:var(--space-2)}.xl\:rt-r-pb-3{padding-bottom:var(--space-3)}.xl\:rt-r-pb-4{padding-bottom:var(--space-4)}.xl\:rt-r-pb-5{padding-bottom:var(--space-5)}.xl\:rt-r-pb-6{padding-bottom:var(--space-6)}.xl\:rt-r-pb-7{padding-bottom:var(--space-7)}.xl\:rt-r-pb-8{padding-bottom:var(--space-8)}.xl\:rt-r-pb-9{padding-bottom:var(--space-9)}.xl\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}.rt-r-pl{padding-left:var(--pl)}.rt-r-pl-0{padding-left:0}.rt-r-pl-1{padding-left:var(--space-1)}.rt-r-pl-2{padding-left:var(--space-2)}.rt-r-pl-3{padding-left:var(--space-3)}.rt-r-pl-4{padding-left:var(--space-4)}.rt-r-pl-5{padding-left:var(--space-5)}.rt-r-pl-6{padding-left:var(--space-6)}.rt-r-pl-7{padding-left:var(--space-7)}.rt-r-pl-8{padding-left:var(--space-8)}.rt-r-pl-9{padding-left:var(--space-9)}.rt-r-pl-inset{padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-pl{padding-left:var(--pl-xs)}.xs\:rt-r-pl-0{padding-left:0}.xs\:rt-r-pl-1{padding-left:var(--space-1)}.xs\:rt-r-pl-2{padding-left:var(--space-2)}.xs\:rt-r-pl-3{padding-left:var(--space-3)}.xs\:rt-r-pl-4{padding-left:var(--space-4)}.xs\:rt-r-pl-5{padding-left:var(--space-5)}.xs\:rt-r-pl-6{padding-left:var(--space-6)}.xs\:rt-r-pl-7{padding-left:var(--space-7)}.xs\:rt-r-pl-8{padding-left:var(--space-8)}.xs\:rt-r-pl-9{padding-left:var(--space-9)}.xs\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-pl{padding-left:var(--pl-sm)}.sm\:rt-r-pl-0{padding-left:0}.sm\:rt-r-pl-1{padding-left:var(--space-1)}.sm\:rt-r-pl-2{padding-left:var(--space-2)}.sm\:rt-r-pl-3{padding-left:var(--space-3)}.sm\:rt-r-pl-4{padding-left:var(--space-4)}.sm\:rt-r-pl-5{padding-left:var(--space-5)}.sm\:rt-r-pl-6{padding-left:var(--space-6)}.sm\:rt-r-pl-7{padding-left:var(--space-7)}.sm\:rt-r-pl-8{padding-left:var(--space-8)}.sm\:rt-r-pl-9{padding-left:var(--space-9)}.sm\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-pl{padding-left:var(--pl-md)}.md\:rt-r-pl-0{padding-left:0}.md\:rt-r-pl-1{padding-left:var(--space-1)}.md\:rt-r-pl-2{padding-left:var(--space-2)}.md\:rt-r-pl-3{padding-left:var(--space-3)}.md\:rt-r-pl-4{padding-left:var(--space-4)}.md\:rt-r-pl-5{padding-left:var(--space-5)}.md\:rt-r-pl-6{padding-left:var(--space-6)}.md\:rt-r-pl-7{padding-left:var(--space-7)}.md\:rt-r-pl-8{padding-left:var(--space-8)}.md\:rt-r-pl-9{padding-left:var(--space-9)}.md\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-pl{padding-left:var(--pl-lg)}.lg\:rt-r-pl-0{padding-left:0}.lg\:rt-r-pl-1{padding-left:var(--space-1)}.lg\:rt-r-pl-2{padding-left:var(--space-2)}.lg\:rt-r-pl-3{padding-left:var(--space-3)}.lg\:rt-r-pl-4{padding-left:var(--space-4)}.lg\:rt-r-pl-5{padding-left:var(--space-5)}.lg\:rt-r-pl-6{padding-left:var(--space-6)}.lg\:rt-r-pl-7{padding-left:var(--space-7)}.lg\:rt-r-pl-8{padding-left:var(--space-8)}.lg\:rt-r-pl-9{padding-left:var(--space-9)}.lg\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-pl{padding-left:var(--pl-xl)}.xl\:rt-r-pl-0{padding-left:0}.xl\:rt-r-pl-1{padding-left:var(--space-1)}.xl\:rt-r-pl-2{padding-left:var(--space-2)}.xl\:rt-r-pl-3{padding-left:var(--space-3)}.xl\:rt-r-pl-4{padding-left:var(--space-4)}.xl\:rt-r-pl-5{padding-left:var(--space-5)}.xl\:rt-r-pl-6{padding-left:var(--space-6)}.xl\:rt-r-pl-7{padding-left:var(--space-7)}.xl\:rt-r-pl-8{padding-left:var(--space-8)}.xl\:rt-r-pl-9{padding-left:var(--space-9)}.xl\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}.rt-r-position-static{position:static}.rt-r-position-absolute{position:absolute}.rt-r-position-relative{position:relative}.rt-r-position-fixed{position:fixed}.rt-r-position-sticky{position:sticky}@media (min-width: 520px){.xs\:rt-r-position-static{position:static}.xs\:rt-r-position-absolute{position:absolute}.xs\:rt-r-position-relative{position:relative}.xs\:rt-r-position-fixed{position:fixed}.xs\:rt-r-position-sticky{position:sticky}}@media (min-width: 768px){.sm\:rt-r-position-static{position:static}.sm\:rt-r-position-absolute{position:absolute}.sm\:rt-r-position-relative{position:relative}.sm\:rt-r-position-fixed{position:fixed}.sm\:rt-r-position-sticky{position:sticky}}@media (min-width: 1024px){.md\:rt-r-position-static{position:static}.md\:rt-r-position-absolute{position:absolute}.md\:rt-r-position-relative{position:relative}.md\:rt-r-position-fixed{position:fixed}.md\:rt-r-position-sticky{position:sticky}}@media (min-width: 1280px){.lg\:rt-r-position-static{position:static}.lg\:rt-r-position-absolute{position:absolute}.lg\:rt-r-position-relative{position:relative}.lg\:rt-r-position-fixed{position:fixed}.lg\:rt-r-position-sticky{position:sticky}}@media (min-width: 1640px){.xl\:rt-r-position-static{position:static}.xl\:rt-r-position-absolute{position:absolute}.xl\:rt-r-position-relative{position:relative}.xl\:rt-r-position-fixed{position:fixed}.xl\:rt-r-position-sticky{position:sticky}}.rt-r-w{width:var(--width)}@media (min-width: 520px){.xs\:rt-r-w{width:var(--width-xs)}}@media (min-width: 768px){.sm\:rt-r-w{width:var(--width-sm)}}@media (min-width: 1024px){.md\:rt-r-w{width:var(--width-md)}}@media (min-width: 1280px){.lg\:rt-r-w{width:var(--width-lg)}}@media (min-width: 1640px){.xl\:rt-r-w{width:var(--width-xl)}}.rt-r-min-w{min-width:var(--min-width)}@media (min-width: 520px){.xs\:rt-r-min-w{min-width:var(--min-width-xs)}}@media (min-width: 768px){.sm\:rt-r-min-w{min-width:var(--min-width-sm)}}@media (min-width: 1024px){.md\:rt-r-min-w{min-width:var(--min-width-md)}}@media (min-width: 1280px){.lg\:rt-r-min-w{min-width:var(--min-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-w{min-width:var(--min-width-xl)}}.rt-r-max-w{max-width:var(--max-width)}@media (min-width: 520px){.xs\:rt-r-max-w{max-width:var(--max-width-xs)}}@media (min-width: 768px){.sm\:rt-r-max-w{max-width:var(--max-width-sm)}}@media (min-width: 1024px){.md\:rt-r-max-w{max-width:var(--max-width-md)}}@media (min-width: 1280px){.lg\:rt-r-max-w{max-width:var(--max-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-w{max-width:var(--max-width-xl)}}.rt-r-weight-light{font-weight:var(--font-weight-light)}.rt-r-weight-regular{font-weight:var(--font-weight-regular)}.rt-r-weight-medium{font-weight:var(--font-weight-medium)}.rt-r-weight-bold{font-weight:var(--font-weight-bold)}@media (min-width: 520px){.xs\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xs\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xs\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xs\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 768px){.sm\:rt-r-weight-light{font-weight:var(--font-weight-light)}.sm\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.sm\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.sm\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1024px){.md\:rt-r-weight-light{font-weight:var(--font-weight-light)}.md\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.md\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.md\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1280px){.lg\:rt-r-weight-light{font-weight:var(--font-weight-light)}.lg\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.lg\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.lg\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1640px){.xl\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xl\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xl\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xl\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}.rt-r-lt-normal:before,.rt-r-lt-end:before,.rt-r-lt-normal:after,.rt-r-lt-start:after{content:none}.rt-r-lt-start:before,.rt-r-lt-both:before,.rt-r-lt-end:after,.rt-r-lt-both:after{content:"";display:table}.rt-r-lt-start:before,.rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.rt-r-lt-end:after,.rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}@media (min-width: 520px){.xs\:rt-r-lt-normal:before,.xs\:rt-r-lt-end:before,.xs\:rt-r-lt-normal:after,.xs\:rt-r-lt-start:after{content:none}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before,.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{content:"";display:table}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 768px){.sm\:rt-r-lt-normal:before,.sm\:rt-r-lt-end:before,.sm\:rt-r-lt-normal:after,.sm\:rt-r-lt-start:after{content:none}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before,.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{content:"";display:table}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1024px){.md\:rt-r-lt-normal:before,.md\:rt-r-lt-end:before,.md\:rt-r-lt-normal:after,.md\:rt-r-lt-start:after{content:none}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before,.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{content:"";display:table}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1280px){.lg\:rt-r-lt-normal:before,.lg\:rt-r-lt-end:before,.lg\:rt-r-lt-normal:after,.lg\:rt-r-lt-start:after{content:none}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before,.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{content:"";display:table}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1640px){.xl\:rt-r-lt-normal:before,.xl\:rt-r-lt-end:before,.xl\:rt-r-lt-normal:after,.xl\:rt-r-lt-start:after{content:none}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before,.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{content:"";display:table}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}.rt-r-resize-none{resize:none}.rt-r-resize-vertical{resize:vertical}.rt-r-resize-horizontal{resize:horizontal}.rt-r-resize-both{resize:both}@media (min-width: 520px){.xs\:rt-r-resize-none{resize:none}.xs\:rt-r-resize-vertical{resize:vertical}.xs\:rt-r-resize-horizontal{resize:horizontal}.xs\:rt-r-resize-both{resize:both}}@media (min-width: 768px){.sm\:rt-r-resize-none{resize:none}.sm\:rt-r-resize-vertical{resize:vertical}.sm\:rt-r-resize-horizontal{resize:horizontal}.sm\:rt-r-resize-both{resize:both}}@media (min-width: 1024px){.md\:rt-r-resize-none{resize:none}.md\:rt-r-resize-vertical{resize:vertical}.md\:rt-r-resize-horizontal{resize:horizontal}.md\:rt-r-resize-both{resize:both}}@media (min-width: 1280px){.lg\:rt-r-resize-none{resize:none}.lg\:rt-r-resize-vertical{resize:vertical}.lg\:rt-r-resize-horizontal{resize:horizontal}.lg\:rt-r-resize-both{resize:both}}@media (min-width: 1640px){.xl\:rt-r-resize-none{resize:none}.xl\:rt-r-resize-vertical{resize:vertical}.xl\:rt-r-resize-horizontal{resize:horizontal}.xl\:rt-r-resize-both{resize:both}}.rt-r-tl-auto{table-layout:auto}.rt-r-tl-fixed{table-layout:fixed}@media (min-width: 520px){.xs\:rt-r-tl-auto{table-layout:auto}.xs\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 768px){.sm\:rt-r-tl-auto{table-layout:auto}.sm\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1024px){.md\:rt-r-tl-auto{table-layout:auto}.md\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1280px){.lg\:rt-r-tl-auto{table-layout:auto}.lg\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1640px){.xl\:rt-r-tl-auto{table-layout:auto}.xl\:rt-r-tl-fixed{table-layout:fixed}}.rt-r-ta-left{text-align:left}.rt-r-ta-center{text-align:center}.rt-r-ta-right{text-align:right}@media (min-width: 520px){.xs\:rt-r-ta-left{text-align:left}.xs\:rt-r-ta-center{text-align:center}.xs\:rt-r-ta-right{text-align:right}}@media (min-width: 768px){.sm\:rt-r-ta-left{text-align:left}.sm\:rt-r-ta-center{text-align:center}.sm\:rt-r-ta-right{text-align:right}}@media (min-width: 1024px){.md\:rt-r-ta-left{text-align:left}.md\:rt-r-ta-center{text-align:center}.md\:rt-r-ta-right{text-align:right}}@media (min-width: 1280px){.lg\:rt-r-ta-left{text-align:left}.lg\:rt-r-ta-center{text-align:center}.lg\:rt-r-ta-right{text-align:right}}@media (min-width: 1640px){.xl\:rt-r-ta-left{text-align:left}.xl\:rt-r-ta-center{text-align:center}.xl\:rt-r-ta-right{text-align:right}}.rt-r-tw-wrap{white-space:normal}.rt-r-tw-nowrap{white-space:nowrap}.rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.rt-r-tw-balance{white-space:normal;text-wrap:balance}@media (min-width: 520px){.xs\:rt-r-tw-wrap{white-space:normal}.xs\:rt-r-tw-nowrap{white-space:nowrap}.xs\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xs\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 768px){.sm\:rt-r-tw-wrap{white-space:normal}.sm\:rt-r-tw-nowrap{white-space:nowrap}.sm\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.sm\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1024px){.md\:rt-r-tw-wrap{white-space:normal}.md\:rt-r-tw-nowrap{white-space:nowrap}.md\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.md\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1280px){.lg\:rt-r-tw-wrap{white-space:normal}.lg\:rt-r-tw-nowrap{white-space:nowrap}.lg\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.lg\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1640px){.xl\:rt-r-tw-wrap{white-space:normal}.xl\:rt-r-tw-nowrap{white-space:nowrap}.xl\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xl\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}.rt-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-r-va-baseline{vertical-align:baseline}.rt-r-va-top{vertical-align:top}.rt-r-va-middle{vertical-align:middle}.rt-r-va-bottom{vertical-align:bottom}@media (min-width: 520px){.xs\:rt-r-va-baseline{vertical-align:baseline}.xs\:rt-r-va-top{vertical-align:top}.xs\:rt-r-va-middle{vertical-align:middle}.xs\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 768px){.sm\:rt-r-va-baseline{vertical-align:baseline}.sm\:rt-r-va-top{vertical-align:top}.sm\:rt-r-va-middle{vertical-align:middle}.sm\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1024px){.md\:rt-r-va-baseline{vertical-align:baseline}.md\:rt-r-va-top{vertical-align:top}.md\:rt-r-va-middle{vertical-align:middle}.md\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1280px){.lg\:rt-r-va-baseline{vertical-align:baseline}.lg\:rt-r-va-top{vertical-align:top}.lg\:rt-r-va-middle{vertical-align:middle}.lg\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1640px){.xl\:rt-r-va-baseline{vertical-align:baseline}.xl\:rt-r-va-top{vertical-align:top}.xl\:rt-r-va-middle{vertical-align:middle}.xl\:rt-r-va-bottom{vertical-align:bottom}}#app{--color-background: #070b14;--default-font-family: "Inter Tight", sans-serif;font-family:Inter Tight,NotoFlagsOnly,sans-serif;font-display:optional;--scaling: .875;--cursor-button: pointer;--line-height: 1.2;--white-heading: #f7f8f8;--green-live: #3cff73;font-variant-numeric:tabular-nums;overflow:hidden}.rt-TooltipContent{background:#131923;border:1px solid #2e343e;border-radius:8px}.rt-TooltipText{color:var(--regular-text-color);user-select:auto}.rt-TooltipArrow{fill:#131923}.rt-Separator{background:#65677a}.sticky{position:sticky;background:var(--color-background)}.app-width-container{max-width:1920px;margin:0 auto}.blur{position:absolute;inset:0;background:#0000008a;backdrop-filter:blur(2px)}.sankey-label{pointer-events:none;white-space:pre-line;font-size:14px;font-family:Inter Tight}.mono-text{font-family:Roboto Mono,monospace}._outer-container_13cf2_1{height:100vh;width:100%;position:absolute;z-index:100;display:flex;justify-content:center;align-items:center;container:outer-container / inline-size}._inner-container_13cf2_12{min-width:410px}@container outer-container (width < 430px){._inner-container_13cf2_12{min-width:310px}}._text_o41r7_1{color:var(--startup-text-color);line-height:normal}._container_o41r7_6{padding-left:40px}._container_1tszc_1{padding:8px 14px;border-radius:12px;border:1px solid var(--container-border-color);background:var(--container-background-color);display:grid;grid:auto-flow / auto 1fr;column-gap:10px;row-gap:6px;._text_1tszc_11{color:#dedede;font-weight:500;line-height:normal}}._text_1ont6_1{color:var(--startup-complete-step-color);font-weight:500;line-height:normal}._container_1ont6_7{padding:0 20px}._label_1ojid_1{color:#686868;font-size:12px}._value_1ojid_6{color:var(--startup-text-color);font-size:12px}._progress_gtr5g_1{height:9px;width:120px;background:var(--startup-progress-background-color);div{background:var(--startup-progress-teal-color)}}._text_gtr5g_11{color:var(--startup-text-color);font-size:8px;line-height:normal}._container_e8h4h_1{transition:filter .5s;&._blur_e8h4h_4{filter:blur(10px)}}._container_1z0wf_1{--collapse-duration: .3s;--collapse-location-time: .2s;--transform-origin: top right;position:fixed;inset:0;overscroll-behavior:none;z-index:20;background-color:var(--startup-background-color);--color-background: var(--startup-background-color);--slot-nav-background-color: var(--startup-background-color);transform-origin:var(--transform-origin);transition:opacity var(--collapse-duration) linear,transform var(--collapse-duration) linear,background-color .2s linear;&._collapsed_1z0wf_22{transform:scale(0);opacity:.5;overflow:hidden}&._gossip_1z0wf_28{--startup-background-color: var(--boot-progress-gossip-background-color)}&._full-snapshot_1z0wf_32{--startup-background-color: var( --boot-progress-full-snapshot-background-color )}&._incr-snapshot_1z0wf_38{--startup-background-color: var( --boot-progress-incr-snapshot-background-color )}&._catching-up_1z0wf_44{--startup-background-color: var(--boot-progress-catchup-background-color)}&._supermajority_1z0wf_48{background-color:var(--boot-progress-supermajority-background-color)}}@media (min-width: 800px){._startup-content-indentation_1z0wf_54{margin-left:67px;margin-right:67px}}._container_j432f_1{min-width:28px;&._pointer_j432f_4{cursor:pointer}._label_j432f_8{color:var(--header-label-text-color);font-size:10px}._value_j432f_13{color:var(--dropdown-button-text-color);font-size:12px;._value-suffix_j432f_17{color:var(--header-label-text-color)}}&._dropdown-menu_j432f_22{._label_j432f_8{color:var(--popover-secondary-color)}._value_j432f_13{color:var(--popover-primary-color);._value-suffix_j432f_17{color:var(--popover-secondary-color)}}}}._horizontal_j432f_37{display:flex;justify-content:space-between;align-items:center;gap:8px;background-color:var(--color-background);._value_j432f_13{font-weight:600}}._hide_1etvv_1{display:none}._popover-content_e49l0_1{box-sizing:border-box;max-width:var(--radix-popover-content-available-width);background:var(--popover-background-color);color:var(--popover-primary-color);padding:10px;border:1px solid var(--gray-4, #2a2a2a);border-radius:5px;box-shadow:0 4px 4px #00000040;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity;--popover-trigger-color: var(--popover-secondary-color);--popover-trigger-hover-color: var(--popover-primary-color)}._popover-content_e49l0_1:focus{box-shadow:0 0 0 2px var(--violet-7)}._popover-content_e49l0_1[data-state=open][data-side=top]{animation-name:_slideDownAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=right]{animation-name:_slideLeftAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=bottom]{animation-name:_slideUpAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=left]{animation-name:_slideRightAndFade_e49l0_1}._popover-arrow_e49l0_41{fill:var(--popover-background-color)}@keyframes _slideUpAndFade_e49l0_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideRightAndFade_e49l0_1{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes _slideDownAndFade_e49l0_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideLeftAndFade_e49l0_1{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}._copy-button_1km2g_1{position:relative;width:fit-content;max-width:100%;--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;._icon_1km2g_8{flex-shrink:0}&._hide-icon-until-hover_1km2g_12{._icon_1km2g_8{display:none}&:hover ._icon_1km2g_8{display:inherit;position:absolute;right:0;background:#1b3150bf;padding:4px 2px;border-radius:2px;box-shadow:-4px 0 8px #1e3a5fcc,0 2px 8px #0000004d}}}._nav-link_tb1ax_1{font-size:14px;font-weight:400;color:var(--nav-button-inactive-text-color);border-radius:5px;background-color:transparent;gap:5px;padding:0 15px;flex-shrink:1;min-width:50px;._icon_tb1ax_14{height:14px;width:14px}._dropdown-icon_tb1ax_19{height:18px;width:18px}&:hover,&._focus_tb1ax_25{filter:brightness(1.2)}&._active_tb1ax_29{font-weight:600;background-color:#ffffff14}}@media (max-width: 416px){._nav-link_tb1ax_1{padding:0 4px}}._nav-dropdown-content_tb1ax_41{display:flex;flex-direction:column;background-color:#1c2129;border:1px solid rgba(250,250,250,.08);border-radius:5px;min-width:var(--radix-dropdown-menu-trigger-width)}._logo_1ml9x_1{height:27px}._cluster-container_7aa6c_1{height:28px;justify-content:space-between;align-items:center;flex-grow:1;border-radius:5px;background:#fafafa1a;._cluster_7aa6c_1{padding:0 3px;border-radius:3px;color:#000;font-size:10px;font-weight:500}._cluster-name_7aa6c_19{font-size:12px;font-weight:700;margin-bottom:-3px}}._nav-filter-toggle-group_148xa_1{display:flex;flex-wrap:nowrap;width:100%;button{cursor:pointer;flex-grow:1;height:21px;border:none;padding:3px 5px;color:var(--nav-button-inactive-text-color);background-color:#ffffff1a;&:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}&:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}&[data-state=on]{background-color:var(--slot-nav-filter-background-color);color:var(--nav-button-text-color)}&:hover{filter:brightness(1.2)}span{cursor:inherit;font-size:12px;font-style:normal;font-weight:400;line-height:normal}}}._toggle-button-size_148xa_43{height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}}._toggle-button_148xa_43{border-radius:5px;background-color:var(--epoch-slider-progress-color);&:hover{filter:brightness(1.2)}&._floating_148xa_61{box-shadow:0 4px 4px #000000bf}svg{fill:var(--nav-button-text-color);height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}&._mirror_148xa_75{transform:scaleX(-1)}}}._slot-nav-container_148xa_81{transition:width .3s;box-sizing:border-box;&._nav-background_148xa_85{background-color:var(--slot-nav-background-color)}}._nav-background_1sjct_1{background-color:var(--slot-nav-background-color)}._health-pane_hbx15_1{background:none;margin:0;padding:0;border:0;height:28px;display:flex;justify-content:space-between;align-items:center;row-gap:2px;column-gap:3px;&._vertical_hbx15_14{flex-direction:column;max-width:24px;min-width:24px;&._narrow_hbx15_18{min-width:14px}}._health-box_hbx15_22{height:100%;padding:0;margin:0;display:flex;justify-content:center;align-items:center;max-width:24px;min-width:14px;background:var(--green-5);border-radius:3px;border:1px solid transparent;cursor:pointer;&._stacked_hbx15_36{width:100%}svg{fill:var(--green-11)}&._alerting_hbx15_44{background:var(--red-8);border-color:var(--red-11);svg{fill:var(--red-12)}}&:hover{filter:brightness(1.2)}}}._popover_hbx15_58{max-width:160px;padding:6px;._title_hbx15_62{font-size:12px;color:var(--gray-12)}._status_hbx15_67{font-size:12px;font-weight:600;color:var(--green-10);&._alerting_hbx15_44{color:var(--red-10)}}._content_hbx15_77{font-size:10px;color:var(--gray-9)}}._logo-container_1po46_1{--logo-transition-time: 1.5s;z-index:20;position:fixed;inset:0;justify-content:center;align-items:center;background-color:var(--startup-background-color);background-image:url("data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2024.9971C13.4992%2024.8907%2024.4505%2014.0877%2024.791%200.645508L24.7988%200C24.7988%2013.7398%2035.8824%2024.8887%2049.5967%2024.9971C36.0977%2025.1037%2025.1471%2035.9075%2024.8066%2049.3496L24.7988%2049.9951C24.7988%2036.2551%2013.7145%2025.1052%200%2024.9971Z'%20fill='%2303030C'/%3e%3c/svg%3e"),radial-gradient(160.38% 98.82% at 50% 50%,#1ce7c229,#1ce7c203 41.16%,#1ce7c200);background-position:center;background-repeat:repeat;transition:opacity var(--logo-transition-time) linear;img{height:76px}&._hidden_1po46_30{opacity:0;pointer-events:none;user-select:none}}._secondary-color_2x9jp_1{color:var(--boot-progress-snapshot-units-color)}._ellipsis_2x9jp_5{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._card_2x9jp_11{min-height:150px;padding:10px;border:1px solid rgba(255,255,255,.1);background:#ea67670d;color:var(--boot-progress-primary-text-color)}._sparkline-card_2x9jp_19{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;._snapshot-tile-title_2x9jp_25{color:var(--boot-progress-primary-text-color);font-size:18px;font-weight:400}._snapshot-tile-busy_2x9jp_31{font-size:18px;font-weight:400}._sparkline-container_2x9jp_36{position:relative;flex-shrink:0;background-image:linear-gradient(to right,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px),linear-gradient(to bottom,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px)}}._bars-card_2x9jp_54{flex-grow:1;display:flex;min-width:250px;flex-direction:column;justify-content:space-between;gap:10px;._card-header_2x9jp_62{font-size:18px;line-height:normal;font-weight:400}._title_2x9jp_68{font-size:28px;font-weight:400;min-width:0}._accounts-rate_2x9jp_74{min-width:165px;text-align:center}._total_2x9jp_79{min-width:170px;text-align:center}._throughput_2x9jp_84{min-width:114px;text-align:right;&._with-prefix_2x9jp_87{min-width:140px;white-space:nowrap;flex-wrap:wrap}}}._reading-card_2x9jp_95{._read-path-container_2x9jp_96{color:var(--app-teal);font-size:16px;svg{flex-shrink:0;width:16px;height:16px;fill:var(--app-teal)}._read-path_2x9jp_96{min-width:0}}}@media (max-width: 876px){._reading-card_2x9jp_95{._total_2x9jp_79{text-align:right}._throughput_2x9jp_84{text-align:left}}}@media (max-width: 1190px){._decompressing-card_2x9jp_124{justify-content:space-between;._decompressing-card-left_2x9jp_127{flex-direction:column;flex-grow:0;align-items:flex-start;._title_2x9jp_68,._total_2x9jp_79{text-align:left}}._decompressing-card-right_2x9jp_137{flex-direction:column;flex-grow:0;text-align:right}}}@media (max-width: 1063px){._inserting-card_2x9jp_146{._throughput_2x9jp_84{text-align:left}}}@media (max-width: 936px){._inserting-card_2x9jp_146{._total_2x9jp_79{text-align:left}._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:right}}}@media (max-width: 846px){._reading-card_2x9jp_95,._decompressing-card_2x9jp_124,._inserting-card_2x9jp_146{._card-header_2x9jp_62,._decompressing-card-left_2x9jp_127,._decompressing-card-right_2x9jp_137{flex-direction:column;align-items:flex-start}._total_2x9jp_79,._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:left}}}@media (max-width: 560px){._sparkline-card_2x9jp_19{width:100%}}._busy_1fw9w_1{color:#c8cacd;font-size:10px;min-width:27px;text-align:end;line-height:10px}._range-label_14i5c_1{position:absolute;right:2px;font-size:10px;font-weight:400;color:var(--tile-sparkline-range-text-color)}._top_14i5c_9{top:0}._bottom_14i5c_13{bottom:0}._g-transform_14i5c_17{will-change:transform}._bars_1d34t_1{--container-width: 100%;position:relative;width:var(--container-width);height:var(--bar-height, 50px);--step: calc(var(--bar-width) + var(--bar-gap));--used-width: max( 0px, calc( round(down, var(--container-width) + var(--bar-gap), var(--step)) - var(--bar-gap) ) );--threshold-start: max( 0px, calc( round( nearest, var(--pct) * (var(--used-width) + var(--bar-gap)), var(--step) ) - var(--step) ) );--threshold-visible: sign(var(--pct));mask-image:repeating-linear-gradient(to right,black 0 var(--bar-width),transparent var(--bar-width) var(--step));mask-size:var(--used-width) 100%;mask-repeat:no-repeat;background:linear-gradient(to right,var(--boot-progress-gossip-bars-color) 85%,var(--boot-progress-gossip-mid-bar-color) 85% 95%,var(--boot-progress-gossip-high-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat;&:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) + var(--bar-width)) 0 0);background:linear-gradient(to right,var(--boot-progress-gossip-filled-bar-color) 85%,var(--boot-progress-gossip-mid-filled-bar-color) 85% 95%,var(--boot-progress-gossip-high-filled-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}&:after{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) - var(--bar-width)) 0 var(--threshold-start));opacity:var(--threshold-visible, 0);background:linear-gradient(to right,var(--app-teal) 85%,var(--boot-progress-gossip-mid-threshold-bar-color) 85% 95%,var(--boot-progress-gossip-high-threshold-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}}._secondary-text_1iskf_1{color:var(--boot-progress-secondary-text-color)}._phase-header-container_1iskf_5{color:var(--boot-progress-primary-text-color);font-size:28px;font-weight:400;line-height:normal;._phase-name_1iskf_11{font-weight:600}._no-wrap_1iskf_15{white-space:nowrap}._complete-pct-container_1iskf_19{white-space:pre;display:inline-flex;align-items:center}}._progress-bar_drgbz_1{align-items:center;width:100%;>*:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}>*:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}._current_drgbz_14{height:40px;border-width:1px;border-style:solid;border-radius:5px;overflow:hidden;._progressing-bar_drgbz_21{width:100%;height:100%;transform-origin:left;transition:transform .2s linear}}div{height:25px}._gossip_drgbz_33{background:var(--progress-bar-incomplete-gossip-color);&._complete_drgbz_35{background:var(--progress-bar-complete-gossip-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-gossip-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-gossip-background)}}}._full-snapshot_drgbz_46{background:var(--progress-bar-incomplete-full-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-full-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-full-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-full-snapshot-background)}}}._incr-snapshot_drgbz_59{background:var(--progress-bar-incomplete-inc-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-inc-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-inc-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-inc-snapshot-background)}}}._catching-up_drgbz_72{background:var(--progress-bar-incomplete-catchup-color);&._complete_drgbz_35{background:var(--progress-bar-complete-catchup-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-catchup-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-catchup-background)}}}._supermajority_drgbz_85{background:var(--progress-bar-incomplete-supermajority-color);&._complete_drgbz_35{background:var(--progress-bar-complete-supermajority-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-supermajority-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-supermajority-background)}}}}._uplot_1swaw_1{.u-over{touch-action:pan-y}}._card_1yavk_1{flex-grow:1;display:flex;flex-direction:column;padding:14px;gap:14px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#fafafa0d;color:var(--boot-progress-primary-text-color)}._secondary-color_1yavk_13{color:#858585}._bold_1yavk_17{font-weight:700}._ellipsis_1yavk_21{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._labels-row_1yavk_27{flex-wrap:nowrap;font-size:14px;width:calc(var(--turbine-head-x, 0px) + var(--turbine-head-label-width, 0px) / 2);min-width:max(var(--turbine-start-label-width, 0px),var(--turbine-head-label-width, 0px));max-width:100%;._labels-left_1yavk_39{width:calc(var(--turbine-start-x, 0px) + var(--turbine-start-label-width, 0px) / 2);min-width:calc(var(--turbine-start-label-width, 0px) + 4px)}._turbine-label_1yavk_46{white-space:nowrap;flex-shrink:0;border-radius:3px;padding:2px;text-align:center;color:#000;&._start_1yavk_54{background-color:var(--first-turbine-slot-color)}&._head_1yavk_58{background-color:var(--latest-turbine-slot-color)}}}._footer-row_1yavk_64{gap:4px;font-size:14px;color:#ccc;>*{flex-wrap:nowrap;background-color:#2c2c2c;border-radius:3px;padding:4px;text-align:center;&._left-footer_1yavk_76{width:var(--turbine-start-x, 0px);gap:4px;flex-shrink:0}}._footer-title_1yavk_83{flex-grow:1;font-weight:700}._footer-value_1yavk_88{color:#bcbcbc;flex-shrink:10000;direction:rtl}}._bars-stats-container_1yavk_95{font-size:14px;line-height:normal;._bars-stats-row_1yavk_99{>*{min-width:0}._replayed_1yavk_104{color:var(--replayed-slots-text-color);._bold_1yavk_17{color:var(--replayed-slots-bold-text-color)}}._speed_1yavk_111{color:var(--gray-10);._bold_1yavk_17{color:var(--gray-8)}}._to-replay_1yavk_118{color:var(--turbine-slots-text-color);._bold_1yavk_17{color:var(--turbine-slots-bold-text-color)}}}}._slot-group-label_mfowj_1{--group-x: -100000px;--group-name-opacity: 0;opacity:.8;background-color:#080b13;border-radius:2px;border:1px solid #3c4652;border-top-width:0;will-change:transform;transform:translate(var(--group-x));&._you_mfowj_13{border:1px solid #2a7edf}._slot-group-top-container_mfowj_17{width:100%;background-color:#101318;&._skipped_mfowj_21{background-color:var(--red-2)}._slot-group-name-container_mfowj_25{opacity:var(--group-name-opacity);transition:opacity .6s;will-change:opacity;._name_mfowj_30{font-size:10px;line-height:normal;color:#949494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}}._slot-bars-container_mfowj_41{flex-shrink:0;._slot-bar_mfowj_41{--slot-x: 0;position:absolute;will-change:transform;transform:translate(var(--slot-x));height:100%;border-radius:3px;&:nth-child(1){background-color:var(--blue-7)}&:nth-child(2){background-color:var(--blue-6)}&:nth-child(3){background-color:var(--blue-5)}&:nth-child(4){background-color:var(--blue-4)}&._skipped_mfowj_21{background-color:var(--red-7)}}}}._legend-color-box_mfowj_72{width:10px;height:10px;border-radius:1px}._legend-label_mfowj_78{font-size:10px;color:var(--header-label-text-color)}._card_1vnw5_1{padding:10px;border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);&._narrow_1vnw5_7{padding:4px}}._header_10qjn_1{color:var(--dropdown-button-text-color)}._full-width_10qjn_5{width:100%}._dark_10qjn_9{background:#171b24;border-color:transparent}._subHeader_10qjn_14{color:var(--tile-sub-header-color);font-size:12px;line-height:12px}._tile-container_10qjn_20{display:flex;flex-wrap:wrap;flex-flow:wrap-reverse;gap:2px;flex-grow:1;._tile_10qjn_20{width:6px;height:6px;border-radius:1px;background:color-mix(in oklab,var(--tile-background-red-color) var(--busy),var(--tile-background-blue-color))}}._stat-container_1hzk8_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;border-radius:3px;background:#141528;._label_1hzk8_10{color:#dddee0;font-size:10px}._value-container_1hzk8_15{display:flex;align-items:baseline;justify-content:center;gap:1px;min-width:35px;._value_1hzk8_15{color:var(--tile-primary-stat-value-color);font-size:12px;text-align:center}._pct_1hzk8_29{color:var(--tile-primary-stat-value-color);font-size:8px}}}._btn_1lb0v_1{all:unset;cursor:var(--cursor-button);display:flex;gap:var(--space-1);&:hover{filter:brightness(1.4)}}._secondary-color_1cuvx_1{color:var(--gray-11)}._card_1cuvx_5{padding:20px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d}@property --progress-pct{syntax: ""; initial-value: 0%; inherits: false;}._pie-chart-title_1cuvx_18{white-space:nowrap;font-size:28px;color:var(--gray-8)}._pie-chart-container_1cuvx_24{width:100%;min-height:0;aspect-ratio:1/1}@keyframes _shimmer_1cuvx_58{to{transform:rotate(360deg)}}._pie-chart_1cuvx_18{aspect-ratio:1/1;container-type:size;background:conic-gradient(#4d4d4d 0,#8b2e11 80%);border-radius:50%;._threshold-marker_1cuvx_43{transform:rotate(108deg);transform-origin:center top;._marker-line_1cuvx_47{border-left:3px solid #4c4c4c}._marker-icon_1cuvx_51{height:5%;aspect-ratio:1/1}}._shimmer_1cuvx_58{position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 145deg,rgba(255,255,255,.05) 158deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.05) 202deg,transparent 215deg);will-change:transform;animation:_shimmer_1cuvx_58 2s linear infinite}._overlay_1cuvx_74{--progress-pct: 0%;transition:--progress-pct .2s linear;position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0 var(--progress-pct),var(--supermajority-pie-chart-unfilled-color) var(--progress-pct) 100%)}._pie-chart-content_1cuvx_86{background:var(--boot-progress-supermajority-background-color);border-radius:50%;font-size:4.5cqi;color:var(--supermajority-pie-chart-text-color);._lg_1cuvx_93{font-size:9cqi}._eighty_1cuvx_97{color:var(--progress-bar-in-progress-supermajority-border)}}}._details-box_1cuvx_103{&,._copyButton_1cuvx_105{text-align:start;font-size:12px;color:var(--gray-9)}._label_1cuvx_111{font-size:10px;color:var(--gray-7)}._snapshot-source_1cuvx_116{color:var(--blue-7);font-size:12px;word-break:break-all}}._container_1vhtf_1{max-width:100%;flex-grow:1;&._horizontal_1vhtf_4{flex-basis:70%;min-height:188px;min-width:475px}&._vertical_1vhtf_9{flex-shrink:0;height:516px}}._table-card_1vhtf_15{width:100%;display:flex;flex-direction:column;overflow:hidden;&._narrow_1vhtf_21{padding:10px}}._rows-container_1vhtf_26{overflow-x:hidden;overflow-y:auto;flex-basis:50%;flex-grow:1}._row_1vhtf_26{box-sizing:border-box;height:var(--row-height);border:0px solid var(--supermajority-table-border-color);border-bottom-width:1px;column-gap:20px;padding:0 20px 0 5px;&._narrow_1vhtf_21{column-gap:15px}&._xnarrow_1vhtf_44{column-gap:5px}&._online_1vhtf_48{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-online-primary-color);font-size:14px}._peer_1vhtf_56{img{opacity:.5}}._status_1vhtf_62{color:var(--green-8)}._version_1vhtf_66 ._client-icon_1vhtf_66:not(._client-icon-placeholder_1vhtf_66){opacity:.5}._suffix_1vhtf_70{color:var(--supermajority-table-online-secondary-color)}}&._offline_1vhtf_75{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-offline-primary-color);font-size:14px}._status_1vhtf_62{color:var(--red-9)}._suffix_1vhtf_70{color:var(--supermajority-table-offline-secondary-color)}}&._header-row_1vhtf_92{height:auto;border:0}&._toggle-row_1vhtf_97{border-width:1px 0;display:flex;column-gap:8px;cursor:pointer;&:hover{filter:brightness(1.1)}&._offline_1vhtf_75{color:var(--red-9);background:#e5484d0d}&._online_1vhtf_48{color:var(--green-9);background:#30a46c0d}}}._cell_1vhtf_116{height:100%;&._header_1vhtf_92{height:22px;color:var(--table-header-color)}}._peer_1vhtf_56{column-gap:4px;min-width:108px;flex:10 1 170px;&._narrow_1vhtf_21{min-width:80px;flex:10 1 80px}&._xnarrow_1vhtf_44{min-width:70px;flex:10 1 70px}}._status_1vhtf_62{column-gap:8px;min-width:62px;flex:1 1 62px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{min-width:12px;flex:0 1 12px}}._pubkey_1vhtf_51{min-width:50px;flex:1 20 370px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:10 1 50px}}._version_1vhtf_66{column-gap:8px;min-width:100px;flex:1 1 134px;&._narrow_1vhtf_21{min-width:80px;flex:1 10 80px}&._xnarrow_1vhtf_44{min-width:35px;flex:0 10 35px}}._stake_1vhtf_174{justify-content:flex-end;min-width:72px;flex:1 1 72px;&._narrow_1vhtf_21{min-width:52px;flex:0 1 52px}&._xnarrow_1vhtf_44{display:none}}._stake-pct_1vhtf_187{min-width:62px;flex:1 1 62px;justify-content:flex-end;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:0 1 52px}}._small-icon_imn4j_1{height:12px}._medium-icon_imn4j_5{height:14px}._large-icon_imn4j_9{height:16px}._xlarge-icon_imn4j_13{height:20px}._digit_1rfzd_1{height:50%;display:flex;align-items:center;&._hidden_1rfzd_5{visibility:hidden}}._selection-text_1rfzd_10{color:transparent!important;background:transparent!important}._container_zkl3s_1{font-size:10px;color:var(--gray-8)}._added_zkl3s_6{color:#436c48}._removed_zkl3s_10{color:#925959}._container_1i8oq_1{position:absolute;top:14px;transform:translate(round(down,-50%,1px));left:50%;display:flex;justify-content:center;z-index:100;._toast_1i8oq_10{border-radius:10px;padding:8px;min-width:180px;display:flex;justify-content:center;align-items:center;z-index:100;&._disconnected_1i8oq_19{background:repeating-linear-gradient(115deg,var(--failure-color),var(--failure-color) 7px,var(--toast-disconnected-color) 7px,var(--toast-disconnected-color) 8px)}&._connecting_1i8oq_29{background:repeating-linear-gradient(115deg,var(--toast-connecting-start-color),var(--toast-connecting-start-color) 7px,var(--toast-connecting-end-color) 7px,var(--toast-connecting-end-color) 8px)}._text_1i8oq_39{color:#000;font-size:18px;font-style:normal;font-weight:600;text-align:center}}}._slots-list_1sk8v_1{scrollbar-width:none;&._hidden_1sk8v_3{visibility:hidden}}._no-slots-text_1sk8v_8{font-size:12px;color:var(--regular-text-color);text-align:center}._slot-group-container_1sejw_1{padding-bottom:5px;background:var(--slot-nav-background-color)}._slot-group_1sejw_1{column-gap:4px;row-gap:3px;border-radius:5px;background:var(--slots-list-slot-background-color);font-size:10px}._left-column_1sejw_14{flex-grow:1;min-width:0;gap:4px}._future_1sejw_20{padding:3px;background:var(--slots-list-future-slot-background-color);color:var(--slots-list-future-slot-color);img{filter:grayscale(100%)}&._you_1sejw_28{border:solid var(--slots-list-not-processed-my-slots-border-color);border-width:2px 1px 1px 1px;padding:2px 3px 3px;background:var(--slots-list-my-slot-background-color)}}._current_1sejw_36{padding:2px;border:1px solid var(--container-border-color);background-color:var(--container-background-color);color:var(--slots-list-slot-color);box-shadow:0 0 16px 0 var(--slots-list-current-slot-box-shadow-color) inset;._slot-name_1sejw_43{font-size:18px}&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{border-width:3px 1px 1px 1px;border-color:var(--slots-list-my-slots-selected-border-color)}}._current-slot-row_1sejw_57{background-color:var(--slots-list-current-slot-number-background-color);border-radius:5px;padding:3px}._past_1sejw_63{padding:3px;color:var(--slots-list-past-slot-color);&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{background:var(--slots-list-my-slot-background-color);&._processed_1sejw_74{text-decoration:none;padding:2px;border:solid var(--slots-list-my-slots-border-color);border-width:3px 1px 1px 1px;background:var(--slots-list-my-slot-background-color);color:var(--slots-list-past-slot-color);&:hover,&:active{border-color:var(--slots-list-my-slots-selected-border-color)}&._selected_1sejw_87{background:var(--slots-list-selected-background-color);border-color:var(--slots-list-my-slots-selected-border-color)}&._skipped_1sejw_47,&._selected_1sejw_87._skipped_1sejw_47{background:var(--slots-list-skipped-selected-background-color)}}}}._slot-name_1sejw_43{font-size:12px;font-weight:400}._ellipsis_1sejw_105{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._slot-item-content_1sejw_111{align-items:center;gap:4px;font-size:10px;font-weight:400;color:var(--slots-list-past-slot-number-color)}._placeholder_1sejw_119{height:42px}._slot-statuses_1sejw_123{._slot-status_1sejw_123{width:4px;height:6px;background:var(--slot-status-gray);border:1px solid transparent;border-radius:2px;align-items:flex-end;._slot-status-progress_1sejw_132{width:100%;height:100%;transform-origin:bottom;will-change:transform;animation:_fillProgress_1sejw_1 var(--slot-duration) ease-in-out forwards;background-color:var(--slot-status-blue)}}&._tall_1sejw_142{gap:3px;._slot-status_1sejw_123{flex-grow:1}}&._short_1sejw_149 ._slot-status_1sejw_123{height:3px;border-radius:1px}}@keyframes _fillProgress_1sejw_1{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes _shimmer_1sejw_184{0%{transform:translate(0)}to{transform:translate(200%)}}._scroll-slots-placeholder_1sejw_173{background:var(--slots-list-slot-background-color);._absolute-full-size_1sejw_176{position:absolute;top:0;left:0;width:100%;height:100%}._shimmer_1sejw_184{margin-left:-100%;will-change:transform;background:linear-gradient(to right,#fff0,#fff6f60d,#fff0);animation:_shimmer_1sejw_184 1.5s infinite}}._scroll-placeholder-item_1sejw_197{height:46px;margin-bottom:5px;border-radius:5px;box-shadow:0 0 0 4px var(--slot-nav-background-color)}._progress_51hag_1{background:var(--progress-gutter-background-color);flex-grow:0;div{background:var(--progress-background-color)}}._container_1l1zm_1{display:flex;justify-content:center;._button_1l1zm_5{position:absolute;width:100px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._epoch-progress_niwu5_1{width:100%;background:var(--epoch-slider-progress-color);position:absolute;bottom:0}._clickable_niwu5_8{cursor:pointer}._leader-slot_niwu5_12{width:100%;background:#2a7edf;height:5px;position:absolute;opacity:.5;&:hover{filter:brightness(1.5)}&._before-start_niwu5_21{filter:brightness(.5)}}._skipped-slot_niwu5_26{width:100%;background:#ff5353;height:3px;position:absolute;&:hover{filter:brightness(1.5)}}._skipped-slot-icon_niwu5_36{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._first-processed-slot_niwu5_45{width:100%;background:#bdf3ff;height:3px;position:absolute;right:0;&:hover{filter:brightness(1.5)}}._first-processed-slot-icon_niwu5_56{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._slider-root_niwu5_65{position:relative;flex-grow:1;width:10px;display:flex;flex-direction:column;align-items:center;user-select:none;touch-action:none}._slider-track_niwu5_76{background:#24262b;flex-grow:1;width:100%}._slider-thumb_niwu5_82{display:block;position:relative;height:10px;width:20px;background:#64656580;border:1px solid #a4a4a4;border-radius:2px;cursor:grab;&._collapsed_niwu5_92{border-left-width:0;transition:border-width 0s linear .2s}}._slider-thumb_niwu5_82:hover{background:#6465654d}._slider-thumb_niwu5_82:focus{outline:none;box-shadow:0 0 0 2px var(--gray-a8)}._tooltip_niwu5_106{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap}._hide_niwu5_114{opacity:0;display:none;transition:opacity .5s ease-out 1s,display 0s 1.5s;transition-behavior:allow-discrete}._show_niwu5_123{opacity:1;display:block}._text_nk1yn_1{color:var(--primary-text-color);font-size:18px;font-weight:500}._container_k3j09_1{gap:var(--space-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}._container_k6h1w_1{position:absolute;right:0;top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:1;._stats-container_k6h1w_12{padding:5px 5px 5px 7px;border-radius:8px;background:#111111e6;._slot-stats-toggle-button_k6h1w_17{margin:-2px -4px;align-self:flex-end;display:flex;padding:0 4px;box-shadow:unset;color:var(--icon-button-color);gap:4px;height:16px}._stats_k6h1w_12{display:grid;grid:auto auto / auto auto;column-gap:10px;row-gap:4px;min-width:203px;font-variant-numeric:tabular-nums;color:var(--sankey-base-label-color);font-size:12px;line-height:normal;._success-rate_k6h1w_40{color:var(--sankey-success-rate-color)}}}._toggle-group_k6h1w_46{display:inline-flex;button{all:unset}._toggle-group-item_k6h1w_53{background:var(--toggle-item-background-color);color:#747575;padding:2px 4px;align-items:center;justify-content:center;margin-left:1px;cursor:pointer}._toggle-group-item_k6h1w_53:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}._toggle-group-item_k6h1w_53:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}._toggle-group-item_k6h1w_53:hover{filter:brightness(1.2)}._toggle-group-item_k6h1w_53[data-state=on]{background-color:#6184a4;color:#1f1f1f}}}._slot-performance-container_6u4bp_1{container:slot-performance / inline-size}._sankey-container_6u4bp_5{position:relative;aspect-ratio:4;min-height:450px;overflow:hidden;._slot-sankey-container_6u4bp_11{height:100%}}@container slot-performance (width < 600px){._sankey-container_6u4bp_5{aspect-ratio:1 / 3;overflow-x:clip;._slot-sankey-container_6u4bp_11 svg{transform:rotate(90deg) translateY(-100%) translate(15px);transform-origin:top left}}}._tooltip_102uq_1{padding:4px;border-radius:5px;background:#121212;display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_102uq_17{color:#754d12}._compute-units_102uq_21{color:var(--compute-units-color)}._elapsed-time_102uq_25{color:var(--elapsed-time-color)}._prio-fee_102uq_29{color:var(--fees-color)}._tips_102uq_33{color:var(--tips-color)}._label_102uq_37{font-weight:600;text-align:left}}._chart_102uq_43{flex-grow:1;height:25vw;min-height:250px;max-height:600px;position:relative;margin-left:-8px;margin-right:-8px}._chart_1hpd4_1{.uplot .legend .series:first-child,.uplot .legend .series th:after,.uplot .legend .series td{display:none}.lib-toggles{margin-top:20px;text-align:center}.u-select{background:#ffffff1a}.hidden{color:silver}.u-cursor-pt{border-radius:0}.uplot{margin-bottom:20px;padding:10px;box-shadow:0 0 10px #0000004d}}._focused_1hpd4_32{.u-over{border:1px solid var(--focused-border-color)}}._icon-container_1i4gu_1{display:none}._tooltip_h8khk_1{z-index:1;position:absolute;background:var(--Colors-Gray-1, #111);padding:6px 8px;border-radius:8px;max-height:none!important;max-width:none!important}._tooltip_11ays_1{display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_11ays_14{color:#754d12}._compute-units_11ays_18{color:var(--compute-units-color)}._elapsed-time_11ays_22{color:var(--elapsed-time-color)}._fees_11ays_26{color:var(--fees-color)}._tips_11ays_30{color:var(--tips-color)}._label_11ays_34{font-weight:600;text-align:left}}._button_1b3a4_1{all:unset;background:var(--toggle-item-background-color);color:var(--toggle-item-text-color);font-weight:510;height:23px;padding:0 8px;display:flex;font-size:12px;line-height:16px;align-items:center;justify-content:center;user-select:none;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:not([data-disabled]):hover{background:#3e62bd52}&[data-disabled]{cursor:not-allowed;font-weight:400;filter:brightness(.7)}}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}._group-label_1cg9k_1{margin-right:8px;&._min-text-width_1cg9k_4{min-width:50px}}._group_1cg9k_1{display:inline-flex;background-color:var(--mauve-6);border-radius:4px;box-shadow:0 2px 10px var(--black-a7);&._tooltip-open_1cg9k_15{box-shadow:0 0 0 2px var(--slot-details-chart-controls-triggered);._item_1cg9k_18:focus-visible{box-shadow:unset}}}._item_1cg9k_18{all:unset;background-color:var(--toggle-item-background-color);color:var(--toggle-item-text-color);height:22px;padding:0 8px;display:flex;font-size:12px;align-items:center;justify-content:center;margin-left:1px;user-select:none;font-weight:400;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:hover{background:#3e62bd52}&[data-state=on]{background-color:#4a4a4a;color:#f0f0f0;font-weight:510}&:focus-visible{position:relative;box-shadow:0 0 0 2px var(--focus-8)}._item-color_1cg9k_65{width:4px;height:16px;margin-right:4px}}._slider_zs58s_1{width:190px;flex-grow:1;position:relative;.rt-SliderRoot{&:before{position:absolute;content:"";height:calc(100% + 4px);top:-2px;left:calc(var(--slot-start-pct) - .5px);width:1px;background:var(--toggle-item-text-color);z-index:1}&:after{position:absolute;content:"0ms";font-size:10px;height:12px;bottom:-16px;left:calc(var(--slot-start-pct) - .5px);transform:translate(-50%);color:#fff;z-index:1}span:has(>.rt-SliderThumb){z-index:2}span:has(>[aria-label=Minimum]):after{content:var(--min-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}span:has(>[aria-label=Maximum]):after{content:var(--max-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}}}._arrival-label_zs58s_68{color:#fff}._slider-label_zs58s_72{color:#fff;font-size:12px}._minimize-button_zs58s_77{position:absolute;top:4px;right:4px}._chart-control-tooltip_zs58s_83{background:var(--blue-11);color:#111113;.rt-TooltipText{font-size:12px;overflow-wrap:break-word}.rt-TooltipArrow{fill:var(--blue-11)}}._label_1q3ew_1{font-size:14px;color:#fff}._dropdownButton_1yasw_1{border-top-right-radius:0;border-bottom-right-radius:0}._input-container_1yasw_6{box-sizing:border-box;--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:0 var(--text-field-border-radius) var(--text-field-border-radius) 0;font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);width:240px;&._sm_1yasw_20{width:180px}button{box-sizing:content-box;--margin-left-override: 0px;--margin-right-override: 0px}@supports selector(:has(*)){&:has(input:focus){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){&:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}[cmdk-input]{flex:1;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));border:none;outline:none;width:100%;padding:0 var(--space-2);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);background:#0000;border-radius:0;caret-color:#6e5ed2;margin:0;&::placeholder{color:var(--gray-a10)}}}._content_1yasw_68{background:var(--gray-4);width:var(--radix-popover-trigger-width);max-height:400px;&:has(>[cmdk-list]>[cmdk-list-sizer]:not(:empty)){padding-bottom:var(--space-1)}[cmdk-list]{height:min(300px,var(--cmdk-list-height));max-height:400px;overflow:auto;overscroll-behavior:contain}[cmdk-group-heading]{user-select:none;font-size:14px;color:var(--slate-11);padding:0 8px;display:flex;align-items:center;padding:var(--space-1) var(--space-3)}[cmdk-empty],[cmdk-loading]{color:#f1f7feb5;padding-bottom:0!important}[cmdk-item],[cmdk-empty],[cmdk-loading]{content-visibility:auto;cursor:pointer;font-size:var(--font-size-2);text-wrap:nowrap;display:flex;align-items:center;gap:12px;padding:var(--space-1) var(--space-3);border-radius:4px;user-select:none;position:relative;&[data-selected=true]{background:var(--teal-5)}&[data-disabled=true]{color:var(--gray-8);cursor:not-allowed}&:active{background:var(--gray-4)}+[cmdk-item]{margin-top:4px}}}._tooltip-open_1yasw_135{outline-offset:-1px;outline:2px solid var(--slot-details-chart-controls-triggered)!important}._text_1k6sv_1{span{color:var(--gray-12);font-size:var(--font-size-2);text-wrap:nowrap;&._faded_1k6sv_7{color:var(--faded-text)}&._ellipsis_1k6sv_11{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}}._container_14qh6_1{position:absolute;z-index:3;right:5px;top:5px;display:flex;align-items:center;gap:8px;._label_14qh6_10{user-select:none;color:#60646c;font-size:12px}}#txn-bars-tooltip{z-index:3;position:absolute;background:var(--Colors-Gray-1, #111);border-radius:8px;max-height:none!important;max-width:none!important;margin:6px 8px;._state_1bdpv_11{font-weight:700;color:var(--Colors-Neutral-Neutral-10, #777b84)}span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;color:var(--color-override, #777b84)}._cu-bars_1bdpv_24{flex:1;width:0;padding:4px 0}._duration-container_1bdpv_30{flex:1;background:#363a3f80;padding:4px 0;margin:4px 0;width:0}._value-text_1bdpv_38{overflow-wrap:anywhere}._unit_1bdpv_42{font-family:Roboto Mono,monospace;margin-left:2px;flex-shrink:0;white-space:nowrap}}._separator_1pgc5_1{background:var(--row-separator-background-color)}._search-grid_gudx6_1{align-content:center}._search-label_gudx6_5{font-size:16px;font-weight:500;color:var(--slot-details-search-label-color)}._search-field_gudx6_11{width:100%}._error-text_gudx6_15{color:var(--failure-color)}._quick-search-card_gudx6_19{border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);color:var(--slot-details-quick-search-text-color)}._quick-search-header_gudx6_26{color:var(--quick-search-color);font-size:18px;svg{width:32px;height:32px;fill:var(--quick-search-color)}}._quick-search-slot_gudx6_37{font-size:12px;&._clickable_gudx6_40{cursor:pointer;color:var(--slot-details-clickable-slot-color)}&:not(._clickable_gudx6_40){cursor:not-allowed;pointer-events:none}}._quick-search-metric_gudx6_51{font-size:12px}._slot-item-group_p1cnp_1{gap:4px;padding:2px;border-radius:5px;border:1px solid var(--slot-details-my-slots-not-selected-color);border-top-width:3px;&._disabled_p1cnp_8{border:1px solid var(--slot-details-disabled-slot-border-color);border-top-width:3px}&._is-selected_p1cnp_13{border:1px solid var(--slots-list-my-slots-selected-border-color);border-top-width:3px}}._slot-item_p1cnp_1{text-decoration:none;display:flex;justify-content:center;align-items:center;padding:3px 10px;gap:10px;font-size:12px;font-weight:400;border-radius:3px;box-sizing:border-box;width:var(--item-width);background:var(--slot-details-background-color);color:var(--slot-details-color);&._selected-slot_p1cnp_35{font-weight:600;background:var(--slot-details-selected-background-color);color:var(--slot-details-selected-color)}&._skipped-slot_p1cnp_41{background:var(--slot-details-skipped-background-color)}&._skipped-slot_p1cnp_41._selected-slot_p1cnp_35{background:var(--slot-details-skipped-selected-background-color)}}._fade_p1cnp_50{position:absolute;top:0;bottom:0;width:clamp(32px,8vw,96px);pointer-events:none;&._fade-left_p1cnp_57{left:0;background:linear-gradient(to left,transparent 0%,black 100%)}&._fade-right_p1cnp_62{right:0;background:linear-gradient(to right,transparent 0%,black 100%)}}._small-icon_1vpxu_1{width:14px;height:14px}._large-icon_1vpxu_6{width:15px;height:15px}._header_1s5d9_1{font-size:14px;font-weight:600;color:var(--slot-details-stats-tertiary)}._subheader_1s5d9_7{font-size:12px;color:var(--slot-details-stats-tertiary)}._label_1s5d9_12{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap}._value_1s5d9_18{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;--popover-trigger-color: var(--slot-details-stats-secondary);--popover-trigger-hover-color: var(--slot-details-stats-primary)}._table-header_1s5d9_26{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap}._table-row-label_1s5d9_32{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-tertiary)}}._table-cell-value_1s5d9_42{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-primary)}}._grid_1s5d9_52{padding:5px 10px;border-radius:8px;border-bottom:1px solid rgba(250,250,250,.12);background:linear-gradient(0deg,#fafafa0d,#fafafa00);._label_1s5d9_12,._value_1s5d9_18{font-size:14px}._name_1s5d9_67{font-weight:600;color:#ccc;&._lg_1s5d9_70{font-size:18px;contain:inline-size;width:100%}}}._copy-button_1s5d9_79{flex-shrink:1;min-width:0;color:var(--slot-details-stats-primary)}._time-popover_1s5d9_85{flex-shrink:1;min-width:0;max-width:fit-content}._container_1w2fb_1{height:13px;border-radius:4px;._label_1w2fb_5{font-size:10px;color:var(--slot-details-stats-primary);pointer-events:none}}._clickable_1w2fb_12{appearance:none;border:none;padding:0;cursor:pointer;transition:all .3s ease;&:hover{height:15px;transform:translateY(-2px);filter:brightness(1.2);box-shadow:0 4px 8px #0006;outline:.5px solid #e5e7eb;z-index:1}}._container_id19r_1{font-size:12px;padding:0 5px}._label_id19r_6{color:var(--popover-secondary-color)}._value_id19r_10{color:var(--popover-primary-color);text-align:end}._popover-trigger_id19r_15{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;font:inherit;color:inherit}._popover-underline-overlay_id19r_23{position:absolute;inset:0;&:hover ._popover-text-underline_id19r_27{text-decoration-color:var( --popover-trigger-hover-color, var(--primary-text-color) )}}._popover-text-underline_id19r_27{color:transparent!important;text-overflow:clip;transition:text-decoration-color .2s ease;text-decoration:underline dotted var(--popover-trigger-color, var(--secondary-text-color))}._card_ybszl_1{padding:10px;border-radius:8px;border:1px solid #1c1e2b;background:#101123;color:var(--primary-text-color);._name-text_ybszl_8{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._pubkey-text_ybszl_14{flex-grow:1;min-width:390px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._narrow-screen_ybszl_21{flex-grow:0;min-width:inherit}}&._two-away_ybszl_27{border:1px solid #2a2c38;background:#131524;opacity:1.6}&._one-away_ybszl_33{border:1px solid #295060;background:#142432}._time-till_ybszl_38{min-width:250px;&._narrow-screen_ybszl_21{min-width:inherit}}}._my-slots_kxi8u_1{border-color:#2a7edfa6!important;box-shadow:inset 0 4px #2a7edfa6;background:#2a7edf33}._scroll_kxi8u_7{touch-action:none;& *{touch-action:none}span{user-select:text}}._card_zlaiw_1{border-radius:8px;border:1px solid #30323a;background:#151b25;padding:9px 10px 5px;&._late-vote_zlaiw_7{border:1px solid #2f1e7c;background:#120f2e}&._skipped_zlaiw_12{border:1px solid rgba(255,71,71,.38);background:#bd3e3e26}}._grid_1feao_1{display:grid;grid:auto-flow / minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto);overflow-x:auto;min-width:80px;touch-action:pan-x;& *{touch-action:pan-x}scrollbar-width:thin;scrollbar-color:#cbcbcb20 #cbcbcb01;width:100%;&._firedancer-grid_1feao_16{grid:auto-flow / minMax(80px,auto) minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto)}}._header-text_1feao_24{font-size:12px;color:var(--slot-card-header-text-color);padding:3px 0}._vote-latency-header_1feao_30{color:var(--vote-latency-color)}._votes-header_1feao_33{color:var(--votes-color)}._non-votes-header_1feao_36{color:var(--success-color)}._fees-header_1feao_39{color:var(--fees-color)}._tips-header_1feao_42{color:var(--tips-color)}._compute-units-header_1feao_45{color:var(--compute-units-color);padding:0}._compute-units-pct_1feao_50{width:50px;display:inline-block}._row-text_1feao_55{white-space:nowrap;color:var(--slot-card-section-secondary-color);font-variant-numeric:tabular-nums;border-top:1px solid rgba(250,250,250,.12);padding:1px 0 0;&._active_1feao_62{background:var(--container-background-color);color:var(--slot-card-section-primary-color)}}._slot-text_1feao_68{color:var(--slot-card-section-primary-color);border-right:1px solid rgba(250,250,250,.12);padding-right:5px}.CircularProgressbar{width:100%;vertical-align:middle}.CircularProgressbar .CircularProgressbar-path{stroke:#3e98c7;stroke-linecap:round;-webkit-transition:stroke-dashoffset .5s ease 0s;transition:stroke-dashoffset .5s ease 0s}.CircularProgressbar .CircularProgressbar-trail{stroke:#d6d6d6;stroke-linecap:round}.CircularProgressbar .CircularProgressbar-text{fill:#3e98c7;font-size:20px;dominant-baseline:middle;text-anchor:middle}.CircularProgressbar .CircularProgressbar-background{fill:#d6d6d6}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background{fill:#3e98c7}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text{fill:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path{stroke:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail{stroke:transparent}._slot-text_j49it_1{user-select:text;a:link{text-decoration:none;color:var(--slot-text-link-color)}a:visited{text-decoration:none;color:var(--slot-text-visited-link-color)}a:active,a:hover{text-decoration:none;color:var(--slot-text-active-link-color)}}._my-slots_476vd_1{color:var(--summary-my-slots-color);border-radius:10px;background:var(--container-background-color);padding:2px 5px}._summary-container_476vd_8{width:40%;min-width:500px}._name_476vd_13{color:var(--summary-primary-text-color);font-size:24px;min-width:30px;line-height:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._you_476vd_22{color:var(--gray-12)}&._mobile_476vd_26{font-size:inherit;line-height:16px}}._primary-text_476vd_32{font-style:normal;color:var(--summary-primary-text-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._secondary-text_476vd_40{color:var(--summary-secondary-text-color);>span{line-height:normal}}._divider_476vd_47{color:var(--summary-primary-text-color)}._mobile_476vd_26{font-size:12px}._firedancer_476vd_55{color:var(--summary-firedancer-text-color)}._frankendancer_476vd_59{color:var(--summary-frankendancer-text-color)}._agave_476vd_63{color:var(--summary-agave-text-color)}._jito_476vd_67{color:var(--summary-jito-text-color)}._paladin_476vd_71{color:var(--summary-paladin-text-color)}._bam_476vd_75{color:var(--summary-bam-text-color)}._sig_476vd_79{color:var(--summary-sig-text-color)}._rakurai_476vd_83{background:var(--summary-rakurai-text-color);background-clip:text;color:transparent}._harmonic_476vd_89{color:var(--summary-harmonic-text-color)}._major-minor-version-text_476vd_93{flex-shrink:0}._remaining-version-text_476vd_97{min-width:1em;flex-shrink:2}._time-ago_476vd_102{text-align:left;&._right-aligned_476vd_105{text-align:right}}._arrow-dropdown_mvcj2_1{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px}._card_wweyx_1{border-radius:8px;border:2px solid rgba(96,215,193,.65);background:#1b2432;box-shadow:0 0 4px #1ce7c291;padding:10px}._preload_1uziq_1{display:none}._container_1hof6_1{display:flex;justify-content:center;._button_1hof6_5{position:absolute;width:115px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._label_14v9a_1{color:#737373}._value_14v9a_5{color:var(--next-slot-value-color);min-width:50px}._container_bc437_1{margin-bottom:16px;margin-left:24px;container:search / inline-size;input:placeholder-shown{text-overflow:ellipsis}}@media (max-width: 700px){._container_bc437_1{margin-bottom:8px;margin-left:0}}._search-box_bc437_18{justify-self:"center";min-width:400px}@container search (width < 600px){._search-box_bc437_18{min-width:100%}}._label_bc437_29{color:"#766A6A"}._search-button_bc437_33{display:flex;height:100%;padding:4px 10px;align-items:center;gap:8px;align-self:stretch;border-radius:8px;&:focus{box-shadow:0 0 0 2px #000}._label_bc437_29{color:#717171}&:hover,&[data-state=on]{._label_bc437_29{color:#a1a1a1}&._disabled_bc437_56{._label_bc437_29{color:#717171}}}}._my-slots_bc437_64{border-radius:8px;border:1px solid #1c4f8f;border-top-width:3px;background:#0d1c36;color:#4497f7;&:hover{border-color:#2a7edf;background:#0d3059;color:#2a7edf}&[data-state=on]{border-color:#2a7edf;background:#073c7b;color:#2a7edf}}._late-vote-slots_bc437_84{border:1px solid #2f1e7c;background:#130f33;color:#896fec;&:hover{border-color:#341f92;background:#1b1450;color:#896fec}&[data-state=on]{border-color:#5530e4;background:#38218f;color:#896fec}}._skipped-slots_bc437_102{border:1px solid #461e1f;background:#1f0a0b;color:var(--failure-color);&:hover{border-color:#752626;background:#321112}&[data-state=on]{border-color:#823737;background:#501717}}._disabled_bc437_56{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color);&:hover{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color)}}._skip-rate-label_bc437_130{color:var(--skip-rate-label-color);line-height:normal}._skip-rate-value_bc437_135{color:var(--failure-color);line-height:normal}._header-text_n52ov_1{color:var(--primary-text-color);font-size:18px}._storage-stats-container_n52ov_6{contain:size}._root_n52ov_11{min-height:0;thead{th{font-size:12px;font-weight:400;color:var(--gossip-table-header-color)}}tbody{th,td{font-size:14px;color:var(--gossip-table-body-color)}}td,th{white-space:nowrap}td{text-align:right}}._align-right_n52ov_39{text-align:right}._label_1nl74_1{color:#a2a2a2;font-size:14px}._value_1nl74_6{color:#9f9f9f;font-size:28px}._header-text_uidb2_1{color:var(--primary-text-color);font-size:18px}div:has(>._tooltip_uidb2_8){width:1px;height:1px}._tooltip_uidb2_8{width:fit-content;transform:translate(calc(-100% - 5px));padding:4px;background:#131923;border:1px solid #2e343e;border-radius:4px 8px;color:var(--regular-text-color);span{white-space:nowrap}}._header-text_1ozln_1{color:var(--primary-text-color);font-size:18px}._peer-table_1ozln_6{thead{tr{font-size:12px;color:var(--gossip-table-header-color)}}tbody{tr{font-size:14px;color:var(--gossip-table-body-color)}}}._header-cell_1ozln_22{padding:var(--table-cell-padding)}._header-separator_1ozln_26{background:var(--gray-7)}._body-cell_1ozln_30{outline-offset:-2px;&._selected_1ozln_33{outline:1px dashed var(--gray-10);&._copied_1ozln_36{outline:1px dashed var(--gray-11)}}}._header-text_skmjj_1{color:var(--primary-text-color);font-size:18px}._total-text_skmjj_6{color:var(--gray-7);font-size:18px}._throughput-text_skmjj_11{color:var(--gray-10);font-size:18px}._leaf_skmjj_16{border-radius:2px;cursor:pointer;background-color:var(--leaf-color);&:hover{background-color:color-mix(in hsl,var(--leaf-color),#ffffff1a)}._leaf-content_skmjj_24{font-size:10px;._name_skmjj_27{color:#ccc;align-self:stretch;&._large_skmjj_30{font-size:12px}}._stats_skmjj_34{color:var(--table-body-color)}}}._tooltip_skmjj_40{.rt-TooltipArrow{display:none!important}}._axis-text_juf3d_1{color:var(--transaction-axis-text-color);font-size:8px;line-height:normal}._container_muoex_1{font-size:10px;color:var(--regular-text-color)}._label_muoex_6{font-size:12px;line-height:normal;text-wrap:nowrap}._value_muoex_12{line-height:normal;color:var(--value-color, var(--regular-text-color));overflow:hidden;&._small_muoex_17{font-size:18px;font-weight:500}&._medium_muoex_21{font-size:28px;letter-spacing:-1.12px}&._large_muoex_25{font-size:32px;line-height:16px}}._append-value_muoex_31{line-height:normal;color:var(--append-value-color)}._vote-tps_kqvrt_1{min-width:90px}._stat-row_1ia1g_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;&:first-child{flex-grow:0;min-width:80px}}}._stat-row_11bim_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1;min-width:180px}}._stat-row_kmlhn_1{display:flex;flex-wrap:wrap;gap:8px;width:100%;>div{flex:1 1 auto;min-width:180px}}._progress_kmlhn_13{min-width:140px}._chart_7b67t_1{padding-top:0;padding-bottom:0;vertical-align:middle}._table_7b67t_7 table tbody ._row_7b67t_7{&._total-row_7b67t_8{border-top:1px solid rgba(250,250,250,.5)}th,td{color:var(--table-body-color)}}._group-header_1lbrc_1{text-align:center;padding:5px}._header_1lbrc_6{th{vertical-align:bottom;&._wrap_1lbrc_9{white-space:normal}}}._table_1lbrc_15{table{table-layout:fixed;._data-row_1lbrc_19{._green_1lbrc_20{color:var(--green-9)}._red_1lbrc_24{color:var(--red-9)}td{.rt-Text{line-height:inherit}color:var(--table-body-color);text-align:left;&[align=right]{text-align:right}vertical-align:middle;&._pct-gradient_1lbrc_43{color:color-mix(in srgb,var(--tile-busy-green-color),var(--tile-busy-red-color) var(--pct))}&._no-padding_1lbrc_51{padding-top:0;padding-bottom:0}._increment-text_1lbrc_56{min-width:5ch;display:inline-block;font-variant-numeric:tabular-nums;&._low-increment_1lbrc_61{color:var(--low-increment-text-color)}&._mid-increment_1lbrc_64{color:var(--mid-increment-text-color)}&._high-increment_1lbrc_67{color:var(--high-increment-text-color)}}}}tr{border:solid rgba(250,250,250,.12);border-width:1px 0px}._light-border-bottom_1lbrc_79{border-bottom:1px solid rgba(250,250,250,.36)}._right-border_1lbrc_83{border-right:1px solid rgba(250,250,250,.36)}td._right-border_1lbrc_83{padding-right:10px}td,th{box-shadow:none}}}._table-description-dialog_1shm8_1{overflow-y:auto;._table_1shm8_1{padding:var(--space-3) 8px;--table-cell-padding: 5px;._th_1shm8_8{font-size:12px;font-weight:400;color:var(--table-header-color)}._tr_1shm8_14{font-size:14px;color:var(--table-body-color);&:last-child td{box-shadow:none}._name_1shm8_22{white-space:nowrap}}}._close-button_1shm8_28{cursor:pointer}}._slot-label-card_1pson_1{border-radius:3px;padding:2px 3px;background-color:var(--gray-3);color:var(--slot-timeline-text-color);.rt-Text{font-size:12px;line-height:normal}}._slot-label-name_1pson_13{flex-shrink:100000000}._slot-label-dt_1pson_16{display:flex;white-space:pre;._dt-sign_1pson_19{line-height:14px}}._slot-bar_1pson_24{border-radius:2px;background:var(--bar-color, #3f434b);pointer-events:none;&._dim_1pson_29{background:#2d3138}}._slot-bar-track_1pson_34{height:90px}._next-leader-container_1pson_38{container-type:inline-size;container-name:next-leader-container}@container next-leader-container (width < 300px){._next-leader-timer-label_1pson_44{display:none}}@container next-leader-container (width < 130px){._next-leader-timer-container_1pson_50{display:none}}._stat-row_1xsdi_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;min-width:100px;&._storage-stat-container_1xsdi_10{min-width:160px}}}._trailing_1bhfc_1{color:var(--gray-9)}._fraction_1bhfc_5{color:var(--gray-9);text-align:center}._fraction-line_1bhfc_10{align-self:stretch;border-color:var(--gray-9);margin:0}._cards_hn4o1_1{grid-template-columns:minmax(300px,1fr)}._txns-card_hn4o1_5{grid-column:1 / -1}@media (min-width: 900px){._cards_hn4o1_1{grid-template-columns:1fr 1fr}._txns-card_hn4o1_5{grid-column:1 / -1}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:2}}}@media (min-width: 1512px){._cards_hn4o1_1{grid-template-columns:1fr 1fr 1fr}._txns-card_hn4o1_5{grid-column:span 2}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:span 3}}}@media (min-width: 1850px){._cards_hn4o1_1{grid-template-columns:1fr 1.5fr 1.7fr 2fr;&._frankendancer_hn4o1_18{grid-template-columns:1fr 1fr 1fr}}._txns-card_hn4o1_5{grid-column:1 / -1}}body{margin:0;min-width:320px;min-height:100vh} +@font-face{font-family:Inter Tight;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2) format("woff2"),url(/assets/inter-tight-latin-400-normal-BLrFJfvD.woff) format("woff")}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-latin-400-normal-GekRknry.woff2) format("woff2"),url(/assets/roboto-mono-latin-400-normal-DBZPkcnn.woff) format("woff")}:root,.light,.light-theme{--gray-1: #fcfcfc;--gray-2: #f9f9f9;--gray-3: #f0f0f0;--gray-4: #e8e8e8;--gray-5: #e0e0e0;--gray-6: #d9d9d9;--gray-7: #cecece;--gray-8: #bbbbbb;--gray-9: #8d8d8d;--gray-10: #838383;--gray-11: #646464;--gray-12: #202020;--gray-a1: #00000003;--gray-a2: #00000006;--gray-a3: #0000000f;--gray-a4: #00000017;--gray-a5: #0000001f;--gray-a6: #00000026;--gray-a7: #00000031;--gray-a8: #00000044;--gray-a9: #00000072;--gray-a10: #0000007c;--gray-a11: #0000009b;--gray-a12: #000000df;--mauve-1: #fdfcfd;--mauve-2: #faf9fb;--mauve-3: #f2eff3;--mauve-4: #eae7ec;--mauve-5: #e3dfe6;--mauve-6: #dbd8e0;--mauve-7: #d0cdd7;--mauve-8: #bcbac7;--mauve-9: #8e8c99;--mauve-10: #84828e;--mauve-11: #65636d;--mauve-12: #211f26;--mauve-a1: #55005503;--mauve-a2: #2b005506;--mauve-a3: #30004010;--mauve-a4: #20003618;--mauve-a5: #20003820;--mauve-a6: #14003527;--mauve-a7: #10003332;--mauve-a8: #08003145;--mauve-a9: #05001d73;--mauve-a10: #0500197d;--mauve-a11: #0400119c;--mauve-a12: #020008e0;--slate-1: #fcfcfd;--slate-2: #f9f9fb;--slate-3: #f0f0f3;--slate-4: #e8e8ec;--slate-5: #e0e1e6;--slate-6: #d9d9e0;--slate-7: #cdced6;--slate-8: #b9bbc6;--slate-9: #8b8d98;--slate-10: #80838d;--slate-11: #60646c;--slate-12: #1c2024;--slate-a1: #00005503;--slate-a2: #00005506;--slate-a3: #0000330f;--slate-a4: #00002d17;--slate-a5: #0009321f;--slate-a6: #00002f26;--slate-a7: #00062e32;--slate-a8: #00083046;--slate-a9: #00051d74;--slate-a10: #00071b7f;--slate-a11: #0007149f;--slate-a12: #000509e3;--sage-1: #fbfdfc;--sage-2: #f7f9f8;--sage-3: #eef1f0;--sage-4: #e6e9e8;--sage-5: #dfe2e0;--sage-6: #d7dad9;--sage-7: #cbcfcd;--sage-8: #b8bcba;--sage-9: #868e8b;--sage-10: #7c8481;--sage-11: #5f6563;--sage-12: #1a211e;--sage-a1: #00804004;--sage-a2: #00402008;--sage-a3: #002d1e11;--sage-a4: #001f1519;--sage-a5: #00180820;--sage-a6: #00140d28;--sage-a7: #00140a34;--sage-a8: #000f0847;--sage-a9: #00110b79;--sage-a10: #00100a83;--sage-a11: #000a07a0;--sage-a12: #000805e5;--olive-1: #fcfdfc;--olive-2: #f8faf8;--olive-3: #eff1ef;--olive-4: #e7e9e7;--olive-5: #dfe2df;--olive-6: #d7dad7;--olive-7: #cccfcc;--olive-8: #b9bcb8;--olive-9: #898e87;--olive-10: #7f847d;--olive-11: #60655f;--olive-12: #1d211c;--olive-a1: #00550003;--olive-a2: #00490007;--olive-a3: #00200010;--olive-a4: #00160018;--olive-a5: #00180020;--olive-a6: #00140028;--olive-a7: #000f0033;--olive-a8: #040f0047;--olive-a9: #050f0078;--olive-a10: #040e0082;--olive-a11: #020a00a0;--olive-a12: #010600e3;--sand-1: #fdfdfc;--sand-2: #f9f9f8;--sand-3: #f1f0ef;--sand-4: #e9e8e6;--sand-5: #e2e1de;--sand-6: #dad9d6;--sand-7: #cfceca;--sand-8: #bcbbb5;--sand-9: #8d8d86;--sand-10: #82827c;--sand-11: #63635e;--sand-12: #21201c;--sand-a1: #55550003;--sand-a2: #25250007;--sand-a3: #20100010;--sand-a4: #1f150019;--sand-a5: #1f180021;--sand-a6: #19130029;--sand-a7: #19140035;--sand-a8: #1915014a;--sand-a9: #0f0f0079;--sand-a10: #0c0c0083;--sand-a11: #080800a1;--sand-a12: #060500e3;--amber-1: #fefdfb;--amber-2: #fefbe9;--amber-3: #fff7c2;--amber-4: #ffee9c;--amber-5: #fbe577;--amber-6: #f3d673;--amber-7: #e9c162;--amber-8: #e2a336;--amber-9: #ffc53d;--amber-10: #ffba18;--amber-11: #ab6400;--amber-12: #4f3422;--amber-a1: #c0800004;--amber-a2: #f4d10016;--amber-a3: #ffde003d;--amber-a4: #ffd40063;--amber-a5: #f8cf0088;--amber-a6: #eab5008c;--amber-a7: #dc9b009d;--amber-a8: #da8a00c9;--amber-a9: #ffb300c2;--amber-a10: #ffb300e7;--amber-a11: #ab6400;--amber-a12: #341500dd;--blue-1: #fbfdff;--blue-2: #f4faff;--blue-3: #e6f4fe;--blue-4: #d5efff;--blue-5: #c2e5ff;--blue-6: #acd8fc;--blue-7: #8ec8f6;--blue-8: #5eb1ef;--blue-9: #0090ff;--blue-10: #0588f0;--blue-11: #0d74ce;--blue-12: #113264;--blue-a1: #0080ff04;--blue-a2: #008cff0b;--blue-a3: #008ff519;--blue-a4: #009eff2a;--blue-a5: #0093ff3d;--blue-a6: #0088f653;--blue-a7: #0083eb71;--blue-a8: #0084e6a1;--blue-a9: #0090ff;--blue-a10: #0086f0fa;--blue-a11: #006dcbf2;--blue-a12: #002359ee;--bronze-1: #fdfcfc;--bronze-2: #fdf7f5;--bronze-3: #f6edea;--bronze-4: #efe4df;--bronze-5: #e7d9d3;--bronze-6: #dfcdc5;--bronze-7: #d3bcb3;--bronze-8: #c2a499;--bronze-9: #a18072;--bronze-10: #957468;--bronze-11: #7d5e54;--bronze-12: #43302b;--bronze-a1: #55000003;--bronze-a2: #cc33000a;--bronze-a3: #92250015;--bronze-a4: #80280020;--bronze-a5: #7423002c;--bronze-a6: #7324003a;--bronze-a7: #6c1f004c;--bronze-a8: #671c0066;--bronze-a9: #551a008d;--bronze-a10: #4c150097;--bronze-a11: #3d0f00ab;--bronze-a12: #1d0600d4;--brown-1: #fefdfc;--brown-2: #fcf9f6;--brown-3: #f6eee7;--brown-4: #f0e4d9;--brown-5: #ebdaca;--brown-6: #e4cdb7;--brown-7: #dcbc9f;--brown-8: #cea37e;--brown-9: #ad7f58;--brown-10: #a07553;--brown-11: #815e46;--brown-12: #3e332e;--brown-a1: #aa550003;--brown-a2: #aa550009;--brown-a3: #a04b0018;--brown-a4: #9b4a0026;--brown-a5: #9f4d0035;--brown-a6: #a04e0048;--brown-a7: #a34e0060;--brown-a8: #9f4a0081;--brown-a9: #823c00a7;--brown-a10: #723300ac;--brown-a11: #522100b9;--brown-a12: #140600d1;--crimson-1: #fffcfd;--crimson-2: #fef7f9;--crimson-3: #ffe9f0;--crimson-4: #fedce7;--crimson-5: #facedd;--crimson-6: #f3bed1;--crimson-7: #eaacc3;--crimson-8: #e093b2;--crimson-9: #e93d82;--crimson-10: #df3478;--crimson-11: #cb1d63;--crimson-12: #621639;--crimson-a1: #ff005503;--crimson-a2: #e0004008;--crimson-a3: #ff005216;--crimson-a4: #f8005123;--crimson-a5: #e5004f31;--crimson-a6: #d0004b41;--crimson-a7: #bf004753;--crimson-a8: #b6004a6c;--crimson-a9: #e2005bc2;--crimson-a10: #d70056cb;--crimson-a11: #c4004fe2;--crimson-a12: #530026e9;--cyan-1: #fafdfe;--cyan-2: #f2fafb;--cyan-3: #def7f9;--cyan-4: #caf1f6;--cyan-5: #b5e9f0;--cyan-6: #9ddde7;--cyan-7: #7dcedc;--cyan-8: #3db9cf;--cyan-9: #00a2c7;--cyan-10: #0797b9;--cyan-11: #107d98;--cyan-12: #0d3c48;--cyan-a1: #0099cc05;--cyan-a2: #009db10d;--cyan-a3: #00c2d121;--cyan-a4: #00bcd435;--cyan-a5: #01b4cc4a;--cyan-a6: #00a7c162;--cyan-a7: #009fbb82;--cyan-a8: #00a3c0c2;--cyan-a9: #00a2c7;--cyan-a10: #0094b7f8;--cyan-a11: #007491ef;--cyan-a12: #00323ef2;--gold-1: #fdfdfc;--gold-2: #faf9f2;--gold-3: #f2f0e7;--gold-4: #eae6db;--gold-5: #e1dccf;--gold-6: #d8d0bf;--gold-7: #cbc0aa;--gold-8: #b9a88d;--gold-9: #978365;--gold-10: #8c7a5e;--gold-11: #71624b;--gold-12: #3b352b;--gold-a1: #55550003;--gold-a2: #9d8a000d;--gold-a3: #75600018;--gold-a4: #6b4e0024;--gold-a5: #60460030;--gold-a6: #64440040;--gold-a7: #63420055;--gold-a8: #633d0072;--gold-a9: #5332009a;--gold-a10: #492d00a1;--gold-a11: #362100b4;--gold-a12: #130c00d4;--grass-1: #fbfefb;--grass-2: #f5fbf5;--grass-3: #e9f6e9;--grass-4: #daf1db;--grass-5: #c9e8ca;--grass-6: #b2ddb5;--grass-7: #94ce9a;--grass-8: #65ba74;--grass-9: #46a758;--grass-10: #3e9b4f;--grass-11: #2a7e3b;--grass-12: #203c25;--grass-a1: #00c00004;--grass-a2: #0099000a;--grass-a3: #00970016;--grass-a4: #009f0725;--grass-a5: #00930536;--grass-a6: #008f0a4d;--grass-a7: #018b0f6b;--grass-a8: #008d199a;--grass-a9: #008619b9;--grass-a10: #007b17c1;--grass-a11: #006514d5;--grass-a12: #002006df;--green-1: #fbfefc;--green-2: #f4fbf6;--green-3: #e6f6eb;--green-4: #d6f1df;--green-5: #c4e8d1;--green-6: #adddc0;--green-7: #8eceaa;--green-8: #5bb98b;--green-9: #30a46c;--green-10: #2b9a66;--green-11: #218358;--green-12: #193b2d;--green-a1: #00c04004;--green-a2: #00a32f0b;--green-a3: #00a43319;--green-a4: #00a83829;--green-a5: #019c393b;--green-a6: #00963c52;--green-a7: #00914071;--green-a8: #00924ba4;--green-a9: #008f4acf;--green-a10: #008647d4;--green-a11: #00713fde;--green-a12: #002616e6;--indigo-1: #fdfdfe;--indigo-2: #f7f9ff;--indigo-3: #edf2fe;--indigo-4: #e1e9ff;--indigo-5: #d2deff;--indigo-6: #c1d0ff;--indigo-7: #abbdf9;--indigo-8: #8da4ef;--indigo-9: #3e63dd;--indigo-10: #3358d4;--indigo-11: #3a5bc7;--indigo-12: #1f2d5c;--indigo-a1: #00008002;--indigo-a2: #0040ff08;--indigo-a3: #0047f112;--indigo-a4: #0044ff1e;--indigo-a5: #0044ff2d;--indigo-a6: #003eff3e;--indigo-a7: #0037ed54;--indigo-a8: #0034dc72;--indigo-a9: #0031d2c1;--indigo-a10: #002ec9cc;--indigo-a11: #002bb7c5;--indigo-a12: #001046e0;--iris-1: #fdfdff;--iris-2: #f8f8ff;--iris-3: #f0f1fe;--iris-4: #e6e7ff;--iris-5: #dadcff;--iris-6: #cbcdff;--iris-7: #b8baf8;--iris-8: #9b9ef0;--iris-9: #5b5bd6;--iris-10: #5151cd;--iris-11: #5753c6;--iris-12: #272962;--iris-a1: #0000ff02;--iris-a2: #0000ff07;--iris-a3: #0011ee0f;--iris-a4: #000bff19;--iris-a5: #000eff25;--iris-a6: #000aff34;--iris-a7: #0008e647;--iris-a8: #0008d964;--iris-a9: #0000c0a4;--iris-a10: #0000b6ae;--iris-a11: #0600abac;--iris-a12: #000246d8;--jade-1: #fbfefd;--jade-2: #f4fbf7;--jade-3: #e6f7ed;--jade-4: #d6f1e3;--jade-5: #c3e9d7;--jade-6: #acdec8;--jade-7: #8bceb6;--jade-8: #56ba9f;--jade-9: #29a383;--jade-10: #26997b;--jade-11: #208368;--jade-12: #1d3b31;--jade-a1: #00c08004;--jade-a2: #00a3460b;--jade-a3: #00ae4819;--jade-a4: #00a85129;--jade-a5: #00a2553c;--jade-a6: #009a5753;--jade-a7: #00945f74;--jade-a8: #00976ea9;--jade-a9: #00916bd6;--jade-a10: #008764d9;--jade-a11: #007152df;--jade-a12: #002217e2;--lime-1: #fcfdfa;--lime-2: #f8faf3;--lime-3: #eef6d6;--lime-4: #e2f0bd;--lime-5: #d3e7a6;--lime-6: #c2da91;--lime-7: #abc978;--lime-8: #8db654;--lime-9: #bdee63;--lime-10: #b0e64c;--lime-11: #5c7c2f;--lime-12: #37401c;--lime-a1: #66990005;--lime-a2: #6b95000c;--lime-a3: #96c80029;--lime-a4: #8fc60042;--lime-a5: #81bb0059;--lime-a6: #72aa006e;--lime-a7: #61990087;--lime-a8: #559200ab;--lime-a9: #93e4009c;--lime-a10: #8fdc00b3;--lime-a11: #375f00d0;--lime-a12: #1e2900e3;--mint-1: #f9fefd;--mint-2: #f2fbf9;--mint-3: #ddf9f2;--mint-4: #c8f4e9;--mint-5: #b3ecde;--mint-6: #9ce0d0;--mint-7: #7ecfbd;--mint-8: #4cbba5;--mint-9: #86ead4;--mint-10: #7de0cb;--mint-11: #027864;--mint-12: #16433c;--mint-a1: #00d5aa06;--mint-a2: #00b18a0d;--mint-a3: #00d29e22;--mint-a4: #00cc9937;--mint-a5: #00c0914c;--mint-a6: #00b08663;--mint-a7: #00a17d81;--mint-a8: #009e7fb3;--mint-a9: #00d3a579;--mint-a10: #00c39982;--mint-a11: #007763fd;--mint-a12: #00312ae9;--orange-1: #fefcfb;--orange-2: #fff7ed;--orange-3: #ffefd6;--orange-4: #ffdfb5;--orange-5: #ffd19a;--orange-6: #ffc182;--orange-7: #f5ae73;--orange-8: #ec9455;--orange-9: #f76b15;--orange-10: #ef5f00;--orange-11: #cc4e00;--orange-12: #582d1d;--orange-a1: #c0400004;--orange-a2: #ff8e0012;--orange-a3: #ff9c0029;--orange-a4: #ff91014a;--orange-a5: #ff8b0065;--orange-a6: #ff81007d;--orange-a7: #ed6c008c;--orange-a8: #e35f00aa;--orange-a9: #f65e00ea;--orange-a10: #ef5f00;--orange-a11: #cc4e00;--orange-a12: #431200e2;--pink-1: #fffcfe;--pink-2: #fef7fb;--pink-3: #fee9f5;--pink-4: #fbdcef;--pink-5: #f6cee7;--pink-6: #efbfdd;--pink-7: #e7acd0;--pink-8: #dd93c2;--pink-9: #d6409f;--pink-10: #cf3897;--pink-11: #c2298a;--pink-12: #651249;--pink-a1: #ff00aa03;--pink-a2: #e0008008;--pink-a3: #f4008c16;--pink-a4: #e2008b23;--pink-a5: #d1008331;--pink-a6: #c0007840;--pink-a7: #b6006f53;--pink-a8: #af006f6c;--pink-a9: #c8007fbf;--pink-a10: #c2007ac7;--pink-a11: #b60074d6;--pink-a12: #59003bed;--plum-1: #fefcff;--plum-2: #fdf7fd;--plum-3: #fbebfb;--plum-4: #f7def8;--plum-5: #f2d1f3;--plum-6: #e9c2ec;--plum-7: #deade3;--plum-8: #cf91d8;--plum-9: #ab4aba;--plum-10: #a144af;--plum-11: #953ea3;--plum-12: #53195d;--plum-a1: #aa00ff03;--plum-a2: #c000c008;--plum-a3: #cc00cc14;--plum-a4: #c200c921;--plum-a5: #b700bd2e;--plum-a6: #a400b03d;--plum-a7: #9900a852;--plum-a8: #9000a56e;--plum-a9: #89009eb5;--plum-a10: #7f0092bb;--plum-a11: #730086c1;--plum-a12: #40004be6;--purple-1: #fefcfe;--purple-2: #fbf7fe;--purple-3: #f7edfe;--purple-4: #f2e2fc;--purple-5: #ead5f9;--purple-6: #e0c4f4;--purple-7: #d1afec;--purple-8: #be93e4;--purple-9: #8e4ec6;--purple-10: #8347b9;--purple-11: #8145b5;--purple-12: #402060;--purple-a1: #aa00aa03;--purple-a2: #8000e008;--purple-a3: #8e00f112;--purple-a4: #8d00e51d;--purple-a5: #8000db2a;--purple-a6: #7a01d03b;--purple-a7: #6d00c350;--purple-a8: #6600c06c;--purple-a9: #5c00adb1;--purple-a10: #53009eb8;--purple-a11: #52009aba;--purple-a12: #250049df;--red-1: #fffcfc;--red-2: #fff7f7;--red-3: #feebec;--red-4: #ffdbdc;--red-5: #ffcdce;--red-6: #fdbdbe;--red-7: #f4a9aa;--red-8: #eb8e90;--red-9: #e5484d;--red-10: #dc3e42;--red-11: #ce2c31;--red-12: #641723;--red-a1: #ff000003;--red-a2: #ff000008;--red-a3: #f3000d14;--red-a4: #ff000824;--red-a5: #ff000632;--red-a6: #f8000442;--red-a7: #df000356;--red-a8: #d2000571;--red-a9: #db0007b7;--red-a10: #d10005c1;--red-a11: #c40006d3;--red-a12: #55000de8;--ruby-1: #fffcfd;--ruby-2: #fff7f8;--ruby-3: #feeaed;--ruby-4: #ffdce1;--ruby-5: #ffced6;--ruby-6: #f8bfc8;--ruby-7: #efacb8;--ruby-8: #e592a3;--ruby-9: #e54666;--ruby-10: #dc3b5d;--ruby-11: #ca244d;--ruby-12: #64172b;--ruby-a1: #ff005503;--ruby-a2: #ff002008;--ruby-a3: #f3002515;--ruby-a4: #ff002523;--ruby-a5: #ff002a31;--ruby-a6: #e4002440;--ruby-a7: #ce002553;--ruby-a8: #c300286d;--ruby-a9: #db002cb9;--ruby-a10: #d2002cc4;--ruby-a11: #c10030db;--ruby-a12: #550016e8;--sky-1: #f9feff;--sky-2: #f1fafd;--sky-3: #e1f6fd;--sky-4: #d1f0fa;--sky-5: #bee7f5;--sky-6: #a9daed;--sky-7: #8dcae3;--sky-8: #60b3d7;--sky-9: #7ce2fe;--sky-10: #74daf8;--sky-11: #00749e;--sky-12: #1d3e56;--sky-a1: #00d5ff06;--sky-a2: #00a4db0e;--sky-a3: #00b3ee1e;--sky-a4: #00ace42e;--sky-a5: #00a1d841;--sky-a6: #0092ca56;--sky-a7: #0089c172;--sky-a8: #0085bf9f;--sky-a9: #00c7fe83;--sky-a10: #00bcf38b;--sky-a11: #00749e;--sky-a12: #002540e2;--teal-1: #fafefd;--teal-2: #f3fbf9;--teal-3: #e0f8f3;--teal-4: #ccf3ea;--teal-5: #b8eae0;--teal-6: #a1ded2;--teal-7: #83cdc1;--teal-8: #53b9ab;--teal-9: #12a594;--teal-10: #0d9b8a;--teal-11: #008573;--teal-12: #0d3d38;--teal-a1: #00cc9905;--teal-a2: #00aa800c;--teal-a3: #00c69d1f;--teal-a4: #00c39633;--teal-a5: #00b49047;--teal-a6: #00a6855e;--teal-a7: #0099807c;--teal-a8: #009783ac;--teal-a9: #009e8ced;--teal-a10: #009684f2;--teal-a11: #008573;--teal-a12: #00332df2;--tomato-1: #fffcfc;--tomato-2: #fff8f7;--tomato-3: #feebe7;--tomato-4: #ffdcd3;--tomato-5: #ffcdc2;--tomato-6: #fdbdaf;--tomato-7: #f5a898;--tomato-8: #ec8e7b;--tomato-9: #e54d2e;--tomato-10: #dd4425;--tomato-11: #d13415;--tomato-12: #5c271f;--tomato-a1: #ff000003;--tomato-a2: #ff200008;--tomato-a3: #f52b0018;--tomato-a4: #ff35002c;--tomato-a5: #ff2e003d;--tomato-a6: #f92d0050;--tomato-a7: #e7280067;--tomato-a8: #db250084;--tomato-a9: #df2600d1;--tomato-a10: #d72400da;--tomato-a11: #cd2200ea;--tomato-a12: #460900e0;--violet-1: #fdfcfe;--violet-2: #faf8ff;--violet-3: #f4f0fe;--violet-4: #ebe4ff;--violet-5: #e1d9ff;--violet-6: #d4cafe;--violet-7: #c2b5f5;--violet-8: #aa99ec;--violet-9: #6e56cf;--violet-10: #654dc4;--violet-11: #6550b9;--violet-12: #2f265f;--violet-a1: #5500aa03;--violet-a2: #4900ff07;--violet-a3: #4400ee0f;--violet-a4: #4300ff1b;--violet-a5: #3600ff26;--violet-a6: #3100fb35;--violet-a7: #2d01dd4a;--violet-a8: #2b00d066;--violet-a9: #2400b7a9;--violet-a10: #2300abb2;--violet-a11: #1f0099af;--violet-a12: #0b0043d9;--yellow-1: #fdfdf9;--yellow-2: #fefce9;--yellow-3: #fffab8;--yellow-4: #fff394;--yellow-5: #ffe770;--yellow-6: #f3d768;--yellow-7: #e4c767;--yellow-8: #d5ae39;--yellow-9: #ffe629;--yellow-10: #ffdc00;--yellow-11: #9e6c00;--yellow-12: #473b1f;--yellow-a1: #aaaa0006;--yellow-a2: #f4dd0016;--yellow-a3: #ffee0047;--yellow-a4: #ffe3016b;--yellow-a5: #ffd5008f;--yellow-a6: #ebbc0097;--yellow-a7: #d2a10098;--yellow-a8: #c99700c6;--yellow-a9: #ffe100d6;--yellow-a10: #ffdc00;--yellow-a11: #9e6c00;--yellow-a12: #2e2000e0;--gray-surface: #ffffffcc;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #ffffffcc;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #ffffffcc;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #ffffffcc;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #ffffffcc;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #ffffffcc;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #fefae4cc;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #f1f9ffcc;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #fdf5f3cc;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #fbf8f4cc;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #fef5f8cc;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #eff9facc;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #f9f8efcc;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #f3faf3cc;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #f1faf4cc;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #f5f8ffcc;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #f6f6ffcc;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #f1faf5cc;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #f6f9f0cc;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #effaf8cc;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #fff5e9cc;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #fef5facc;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #fdf5fdcc;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #faf5fecc;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #fff5f5cc;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #fff5f6cc;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #eef9fdcc;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #f0faf8cc;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #fff6f5cc;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #f9f6ffcc;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #fefbe4cc;--yellow-indicator: var(--yellow-10);--yellow-track: var(--yellow-10)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root,.light,.light-theme{--gray-1: color(display-p3 .988 .988 .988);--gray-2: color(display-p3 .975 .975 .975);--gray-3: color(display-p3 .939 .939 .939);--gray-4: color(display-p3 .908 .908 .908);--gray-5: color(display-p3 .88 .88 .88);--gray-6: color(display-p3 .849 .849 .849);--gray-7: color(display-p3 .807 .807 .807);--gray-8: color(display-p3 .732 .732 .732);--gray-9: color(display-p3 .553 .553 .553);--gray-10: color(display-p3 .512 .512 .512);--gray-11: color(display-p3 .392 .392 .392);--gray-12: color(display-p3 .125 .125 .125);--gray-a1: color(display-p3 0 0 0 / .012);--gray-a2: color(display-p3 0 0 0 / .024);--gray-a3: color(display-p3 0 0 0 / .063);--gray-a4: color(display-p3 0 0 0 / .09);--gray-a5: color(display-p3 0 0 0 / .122);--gray-a6: color(display-p3 0 0 0 / .153);--gray-a7: color(display-p3 0 0 0 / .192);--gray-a8: color(display-p3 0 0 0 / .267);--gray-a9: color(display-p3 0 0 0 / .447);--gray-a10: color(display-p3 0 0 0 / .486);--gray-a11: color(display-p3 0 0 0 / .608);--gray-a12: color(display-p3 0 0 0 / .875);--mauve-1: color(display-p3 .991 .988 .992);--mauve-2: color(display-p3 .98 .976 .984);--mauve-3: color(display-p3 .946 .938 .952);--mauve-4: color(display-p3 .915 .906 .925);--mauve-5: color(display-p3 .886 .876 .901);--mauve-6: color(display-p3 .856 .846 .875);--mauve-7: color(display-p3 .814 .804 .84);--mauve-8: color(display-p3 .735 .728 .777);--mauve-9: color(display-p3 .555 .549 .596);--mauve-10: color(display-p3 .514 .508 .552);--mauve-11: color(display-p3 .395 .388 .424);--mauve-12: color(display-p3 .128 .122 .147);--mauve-a1: color(display-p3 .349 .024 .349 / .012);--mauve-a2: color(display-p3 .184 .024 .349 / .024);--mauve-a3: color(display-p3 .129 .008 .255 / .063);--mauve-a4: color(display-p3 .094 .012 .216 / .095);--mauve-a5: color(display-p3 .098 .008 .224 / .126);--mauve-a6: color(display-p3 .055 .004 .18 / .153);--mauve-a7: color(display-p3 .067 .008 .184 / .197);--mauve-a8: color(display-p3 .02 .004 .176 / .271);--mauve-a9: color(display-p3 .02 .004 .106 / .451);--mauve-a10: color(display-p3 .012 .004 .09 / .491);--mauve-a11: color(display-p3 .016 0 .059 / .612);--mauve-a12: color(display-p3 .008 0 .027 / .879);--slate-1: color(display-p3 .988 .988 .992);--slate-2: color(display-p3 .976 .976 .984);--slate-3: color(display-p3 .94 .941 .953);--slate-4: color(display-p3 .908 .909 .925);--slate-5: color(display-p3 .88 .881 .901);--slate-6: color(display-p3 .85 .852 .876);--slate-7: color(display-p3 .805 .808 .838);--slate-8: color(display-p3 .727 .733 .773);--slate-9: color(display-p3 .547 .553 .592);--slate-10: color(display-p3 .503 .512 .549);--slate-11: color(display-p3 .379 .392 .421);--slate-12: color(display-p3 .113 .125 .14);--slate-a1: color(display-p3 .024 .024 .349 / .012);--slate-a2: color(display-p3 .024 .024 .349 / .024);--slate-a3: color(display-p3 .004 .004 .204 / .059);--slate-a4: color(display-p3 .012 .012 .184 / .091);--slate-a5: color(display-p3 .004 .039 .2 / .122);--slate-a6: color(display-p3 .008 .008 .165 / .15);--slate-a7: color(display-p3 .008 .027 .184 / .197);--slate-a8: color(display-p3 .004 .031 .176 / .275);--slate-a9: color(display-p3 .004 .02 .106 / .455);--slate-a10: color(display-p3 .004 .027 .098 / .499);--slate-a11: color(display-p3 0 .02 .063 / .62);--slate-a12: color(display-p3 0 .012 .031 / .887);--sage-1: color(display-p3 .986 .992 .988);--sage-2: color(display-p3 .97 .977 .974);--sage-3: color(display-p3 .935 .944 .94);--sage-4: color(display-p3 .904 .913 .909);--sage-5: color(display-p3 .875 .885 .88);--sage-6: color(display-p3 .844 .854 .849);--sage-7: color(display-p3 .8 .811 .806);--sage-8: color(display-p3 .725 .738 .732);--sage-9: color(display-p3 .531 .556 .546);--sage-10: color(display-p3 .492 .515 .506);--sage-11: color(display-p3 .377 .395 .389);--sage-12: color(display-p3 .107 .129 .118);--sage-a1: color(display-p3 .024 .514 .267 / .016);--sage-a2: color(display-p3 .02 .267 .145 / .032);--sage-a3: color(display-p3 .008 .184 .125 / .067);--sage-a4: color(display-p3 .012 .094 .051 / .095);--sage-a5: color(display-p3 .008 .098 .035 / .126);--sage-a6: color(display-p3 .004 .078 .027 / .157);--sage-a7: color(display-p3 0 .059 .039 / .2);--sage-a8: color(display-p3 .004 .047 .031 / .275);--sage-a9: color(display-p3 .004 .059 .035 / .471);--sage-a10: color(display-p3 0 .047 .031 / .51);--sage-a11: color(display-p3 0 .031 .02 / .624);--sage-a12: color(display-p3 0 .027 .012 / .895);--olive-1: color(display-p3 .989 .992 .989);--olive-2: color(display-p3 .974 .98 .973);--olive-3: color(display-p3 .939 .945 .937);--olive-4: color(display-p3 .907 .914 .905);--olive-5: color(display-p3 .878 .885 .875);--olive-6: color(display-p3 .846 .855 .843);--olive-7: color(display-p3 .803 .812 .8);--olive-8: color(display-p3 .727 .738 .723);--olive-9: color(display-p3 .541 .556 .532);--olive-10: color(display-p3 .5 .515 .491);--olive-11: color(display-p3 .38 .395 .374);--olive-12: color(display-p3 .117 .129 .111);--olive-a1: color(display-p3 .024 .349 .024 / .012);--olive-a2: color(display-p3 .024 .302 .024 / .028);--olive-a3: color(display-p3 .008 .129 .008 / .063);--olive-a4: color(display-p3 .012 .094 .012 / .095);--olive-a5: color(display-p3 .035 .098 .008 / .126);--olive-a6: color(display-p3 .027 .078 .004 / .157);--olive-a7: color(display-p3 .02 .059 0 / .2);--olive-a8: color(display-p3 .02 .059 .004 / .279);--olive-a9: color(display-p3 .02 .051 .004 / .467);--olive-a10: color(display-p3 .024 .047 0 / .51);--olive-a11: color(display-p3 .012 .039 0 / .628);--olive-a12: color(display-p3 .008 .024 0 / .891);--sand-1: color(display-p3 .992 .992 .989);--sand-2: color(display-p3 .977 .977 .973);--sand-3: color(display-p3 .943 .942 .936);--sand-4: color(display-p3 .913 .912 .903);--sand-5: color(display-p3 .885 .883 .873);--sand-6: color(display-p3 .854 .852 .839);--sand-7: color(display-p3 .813 .81 .794);--sand-8: color(display-p3 .738 .734 .713);--sand-9: color(display-p3 .553 .553 .528);--sand-10: color(display-p3 .511 .511 .488);--sand-11: color(display-p3 .388 .388 .37);--sand-12: color(display-p3 .129 .126 .111);--sand-a1: color(display-p3 .349 .349 .024 / .012);--sand-a2: color(display-p3 .161 .161 .024 / .028);--sand-a3: color(display-p3 .067 .067 .008 / .063);--sand-a4: color(display-p3 .129 .129 .012 / .099);--sand-a5: color(display-p3 .098 .067 .008 / .126);--sand-a6: color(display-p3 .102 .075 .004 / .161);--sand-a7: color(display-p3 .098 .098 .004 / .208);--sand-a8: color(display-p3 .086 .075 .004 / .287);--sand-a9: color(display-p3 .051 .051 .004 / .471);--sand-a10: color(display-p3 .047 .047 0 / .514);--sand-a11: color(display-p3 .031 .031 0 / .632);--sand-a12: color(display-p3 .024 .02 0 / .891);--amber-1: color(display-p3 .995 .992 .985);--amber-2: color(display-p3 .994 .986 .921);--amber-3: color(display-p3 .994 .969 .782);--amber-4: color(display-p3 .989 .937 .65);--amber-5: color(display-p3 .97 .902 .527);--amber-6: color(display-p3 .936 .844 .506);--amber-7: color(display-p3 .89 .762 .443);--amber-8: color(display-p3 .85 .65 .3);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 .959 .741 .274);--amber-11: color(display-p3 .64 .4 0);--amber-12: color(display-p3 .294 .208 .145);--amber-a1: color(display-p3 .757 .514 .024 / .016);--amber-a2: color(display-p3 .902 .804 .008 / .079);--amber-a3: color(display-p3 .965 .859 .004 / .22);--amber-a4: color(display-p3 .969 .82 .004 / .35);--amber-a5: color(display-p3 .933 .796 .004 / .475);--amber-a6: color(display-p3 .875 .682 .004 / .495);--amber-a7: color(display-p3 .804 .573 0 / .557);--amber-a8: color(display-p3 .788 .502 0 / .699);--amber-a9: color(display-p3 1 .686 0 / .742);--amber-a10: color(display-p3 .945 .643 0 / .726);--amber-a11: color(display-p3 .64 .4 0);--amber-a12: color(display-p3 .294 .208 .145);--blue-1: color(display-p3 .986 .992 .999);--blue-2: color(display-p3 .96 .979 .998);--blue-3: color(display-p3 .912 .956 .991);--blue-4: color(display-p3 .853 .932 1);--blue-5: color(display-p3 .788 .894 .998);--blue-6: color(display-p3 .709 .843 .976);--blue-7: color(display-p3 .606 .777 .947);--blue-8: color(display-p3 .451 .688 .917);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .234 .523 .912);--blue-11: color(display-p3 .15 .44 .84);--blue-12: color(display-p3 .102 .193 .379);--blue-a1: color(display-p3 .024 .514 1 / .016);--blue-a2: color(display-p3 .024 .514 .906 / .04);--blue-a3: color(display-p3 .012 .506 .914 / .087);--blue-a4: color(display-p3 .008 .545 1 / .146);--blue-a5: color(display-p3 .004 .502 .984 / .212);--blue-a6: color(display-p3 .004 .463 .922 / .291);--blue-a7: color(display-p3 .004 .431 .863 / .393);--blue-a8: color(display-p3 0 .427 .851 / .55);--blue-a9: color(display-p3 0 .412 .961 / .753);--blue-a10: color(display-p3 0 .376 .886 / .765);--blue-a11: color(display-p3 .15 .44 .84);--blue-a12: color(display-p3 .102 .193 .379);--bronze-1: color(display-p3 .991 .988 .988);--bronze-2: color(display-p3 .989 .97 .961);--bronze-3: color(display-p3 .958 .932 .919);--bronze-4: color(display-p3 .929 .894 .877);--bronze-5: color(display-p3 .898 .853 .832);--bronze-6: color(display-p3 .861 .805 .778);--bronze-7: color(display-p3 .812 .739 .706);--bronze-8: color(display-p3 .741 .647 .606);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .563 .461 .414);--bronze-11: color(display-p3 .471 .373 .336);--bronze-12: color(display-p3 .251 .191 .172);--bronze-a1: color(display-p3 .349 .024 .024 / .012);--bronze-a2: color(display-p3 .71 .22 .024 / .04);--bronze-a3: color(display-p3 .482 .2 .008 / .083);--bronze-a4: color(display-p3 .424 .133 .004 / .122);--bronze-a5: color(display-p3 .4 .145 .004 / .169);--bronze-a6: color(display-p3 .388 .125 .004 / .224);--bronze-a7: color(display-p3 .365 .11 .004 / .295);--bronze-a8: color(display-p3 .341 .102 .004 / .393);--bronze-a9: color(display-p3 .29 .094 0 / .546);--bronze-a10: color(display-p3 .255 .082 0 / .585);--bronze-a11: color(display-p3 .471 .373 .336);--bronze-a12: color(display-p3 .251 .191 .172);--brown-1: color(display-p3 .995 .992 .989);--brown-2: color(display-p3 .987 .976 .964);--brown-3: color(display-p3 .959 .936 .909);--brown-4: color(display-p3 .934 .897 .855);--brown-5: color(display-p3 .909 .856 .798);--brown-6: color(display-p3 .88 .808 .73);--brown-7: color(display-p3 .841 .742 .639);--brown-8: color(display-p3 .782 .647 .514);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .601 .465 .344);--brown-11: color(display-p3 .485 .374 .288);--brown-12: color(display-p3 .236 .202 .183);--brown-a1: color(display-p3 .675 .349 .024 / .012);--brown-a2: color(display-p3 .675 .349 .024 / .036);--brown-a3: color(display-p3 .573 .314 .012 / .091);--brown-a4: color(display-p3 .545 .302 .008 / .146);--brown-a5: color(display-p3 .561 .29 .004 / .204);--brown-a6: color(display-p3 .553 .294 .004 / .271);--brown-a7: color(display-p3 .557 .286 .004 / .361);--brown-a8: color(display-p3 .549 .275 .004 / .487);--brown-a9: color(display-p3 .447 .22 0 / .632);--brown-a10: color(display-p3 .388 .188 0 / .655);--brown-a11: color(display-p3 .485 .374 .288);--brown-a12: color(display-p3 .236 .202 .183);--crimson-1: color(display-p3 .998 .989 .992);--crimson-2: color(display-p3 .991 .969 .976);--crimson-3: color(display-p3 .987 .917 .941);--crimson-4: color(display-p3 .975 .866 .904);--crimson-5: color(display-p3 .953 .813 .864);--crimson-6: color(display-p3 .921 .755 .817);--crimson-7: color(display-p3 .88 .683 .761);--crimson-8: color(display-p3 .834 .592 .694);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .807 .266 .468);--crimson-11: color(display-p3 .731 .195 .388);--crimson-12: color(display-p3 .352 .111 .221);--crimson-a1: color(display-p3 .675 .024 .349 / .012);--crimson-a2: color(display-p3 .757 .02 .267 / .032);--crimson-a3: color(display-p3 .859 .008 .294 / .083);--crimson-a4: color(display-p3 .827 .008 .298 / .134);--crimson-a5: color(display-p3 .753 .008 .275 / .189);--crimson-a6: color(display-p3 .682 .004 .247 / .244);--crimson-a7: color(display-p3 .62 .004 .251 / .318);--crimson-a8: color(display-p3 .6 .004 .251 / .408);--crimson-a9: color(display-p3 .776 0 .298 / .702);--crimson-a10: color(display-p3 .737 0 .275 / .734);--crimson-a11: color(display-p3 .731 .195 .388);--crimson-a12: color(display-p3 .352 .111 .221);--cyan-1: color(display-p3 .982 .992 .996);--cyan-2: color(display-p3 .955 .981 .984);--cyan-3: color(display-p3 .888 .965 .975);--cyan-4: color(display-p3 .821 .941 .959);--cyan-5: color(display-p3 .751 .907 .935);--cyan-6: color(display-p3 .671 .862 .9);--cyan-7: color(display-p3 .564 .8 .854);--cyan-8: color(display-p3 .388 .715 .798);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .264 .583 .71);--cyan-11: color(display-p3 .08 .48 .63);--cyan-12: color(display-p3 .108 .232 .277);--cyan-a1: color(display-p3 .02 .608 .804 / .02);--cyan-a2: color(display-p3 .02 .557 .647 / .044);--cyan-a3: color(display-p3 .004 .694 .796 / .114);--cyan-a4: color(display-p3 .004 .678 .784 / .181);--cyan-a5: color(display-p3 .004 .624 .733 / .248);--cyan-a6: color(display-p3 .004 .584 .706 / .33);--cyan-a7: color(display-p3 .004 .541 .667 / .436);--cyan-a8: color(display-p3 0 .533 .667 / .612);--cyan-a9: color(display-p3 0 .482 .675 / .718);--cyan-a10: color(display-p3 0 .435 .608 / .738);--cyan-a11: color(display-p3 .08 .48 .63);--cyan-a12: color(display-p3 .108 .232 .277);--gold-1: color(display-p3 .992 .992 .989);--gold-2: color(display-p3 .98 .976 .953);--gold-3: color(display-p3 .947 .94 .909);--gold-4: color(display-p3 .914 .904 .865);--gold-5: color(display-p3 .88 .865 .816);--gold-6: color(display-p3 .84 .818 .756);--gold-7: color(display-p3 .788 .753 .677);--gold-8: color(display-p3 .715 .66 .565);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .538 .479 .38);--gold-11: color(display-p3 .433 .386 .305);--gold-12: color(display-p3 .227 .209 .173);--gold-a1: color(display-p3 .349 .349 .024 / .012);--gold-a2: color(display-p3 .592 .514 .024 / .048);--gold-a3: color(display-p3 .4 .357 .012 / .091);--gold-a4: color(display-p3 .357 .298 .008 / .134);--gold-a5: color(display-p3 .345 .282 .004 / .185);--gold-a6: color(display-p3 .341 .263 .004 / .244);--gold-a7: color(display-p3 .345 .235 .004 / .322);--gold-a8: color(display-p3 .345 .22 .004 / .436);--gold-a9: color(display-p3 .286 .18 0 / .589);--gold-a10: color(display-p3 .255 .161 0 / .62);--gold-a11: color(display-p3 .433 .386 .305);--gold-a12: color(display-p3 .227 .209 .173);--grass-1: color(display-p3 .986 .996 .985);--grass-2: color(display-p3 .966 .983 .964);--grass-3: color(display-p3 .923 .965 .917);--grass-4: color(display-p3 .872 .94 .865);--grass-5: color(display-p3 .811 .908 .802);--grass-6: color(display-p3 .733 .864 .724);--grass-7: color(display-p3 .628 .803 .622);--grass-8: color(display-p3 .477 .72 .482);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .344 .598 .342);--grass-11: color(display-p3 .263 .488 .261);--grass-12: color(display-p3 .151 .233 .153);--grass-a1: color(display-p3 .024 .757 .024 / .016);--grass-a2: color(display-p3 .024 .565 .024 / .036);--grass-a3: color(display-p3 .059 .576 .008 / .083);--grass-a4: color(display-p3 .035 .565 .008 / .134);--grass-a5: color(display-p3 .047 .545 .008 / .197);--grass-a6: color(display-p3 .031 .502 .004 / .275);--grass-a7: color(display-p3 .012 .482 .004 / .377);--grass-a8: color(display-p3 0 .467 .008 / .522);--grass-a9: color(display-p3 .008 .435 0 / .624);--grass-a10: color(display-p3 .008 .388 0 / .659);--grass-a11: color(display-p3 .263 .488 .261);--grass-a12: color(display-p3 .151 .233 .153);--green-1: color(display-p3 .986 .996 .989);--green-2: color(display-p3 .963 .983 .967);--green-3: color(display-p3 .913 .964 .925);--green-4: color(display-p3 .859 .94 .879);--green-5: color(display-p3 .796 .907 .826);--green-6: color(display-p3 .718 .863 .761);--green-7: color(display-p3 .61 .801 .675);--green-8: color(display-p3 .451 .715 .559);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .308 .595 .417);--green-11: color(display-p3 .19 .5 .32);--green-12: color(display-p3 .132 .228 .18);--green-a1: color(display-p3 .024 .757 .267 / .016);--green-a2: color(display-p3 .024 .565 .129 / .036);--green-a3: color(display-p3 .012 .596 .145 / .087);--green-a4: color(display-p3 .008 .588 .145 / .142);--green-a5: color(display-p3 .004 .541 .157 / .204);--green-a6: color(display-p3 .004 .518 .157 / .283);--green-a7: color(display-p3 .004 .486 .165 / .389);--green-a8: color(display-p3 0 .478 .2 / .55);--green-a9: color(display-p3 0 .455 .165 / .667);--green-a10: color(display-p3 0 .416 .153 / .691);--green-a11: color(display-p3 .19 .5 .32);--green-a12: color(display-p3 .132 .228 .18);--indigo-1: color(display-p3 .992 .992 .996);--indigo-2: color(display-p3 .971 .977 .998);--indigo-3: color(display-p3 .933 .948 .992);--indigo-4: color(display-p3 .885 .914 1);--indigo-5: color(display-p3 .831 .87 1);--indigo-6: color(display-p3 .767 .814 .995);--indigo-7: color(display-p3 .685 .74 .957);--indigo-8: color(display-p3 .569 .639 .916);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .234 .343 .801);--indigo-11: color(display-p3 .256 .354 .755);--indigo-12: color(display-p3 .133 .175 .348);--indigo-a1: color(display-p3 .02 .02 .51 / .008);--indigo-a2: color(display-p3 .024 .161 .863 / .028);--indigo-a3: color(display-p3 .008 .239 .886 / .067);--indigo-a4: color(display-p3 .004 .247 1 / .114);--indigo-a5: color(display-p3 .004 .235 1 / .169);--indigo-a6: color(display-p3 .004 .208 .984 / .232);--indigo-a7: color(display-p3 .004 .176 .863 / .314);--indigo-a8: color(display-p3 .004 .165 .812 / .432);--indigo-a9: color(display-p3 0 .153 .773 / .726);--indigo-a10: color(display-p3 0 .137 .737 / .765);--indigo-a11: color(display-p3 .256 .354 .755);--indigo-a12: color(display-p3 .133 .175 .348);--iris-1: color(display-p3 .992 .992 .999);--iris-2: color(display-p3 .972 .973 .998);--iris-3: color(display-p3 .943 .945 .992);--iris-4: color(display-p3 .902 .906 1);--iris-5: color(display-p3 .857 .861 1);--iris-6: color(display-p3 .799 .805 .987);--iris-7: color(display-p3 .721 .727 .955);--iris-8: color(display-p3 .61 .619 .918);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .318 .318 .774);--iris-11: color(display-p3 .337 .326 .748);--iris-12: color(display-p3 .154 .161 .371);--iris-a1: color(display-p3 .02 .02 1 / .008);--iris-a2: color(display-p3 .024 .024 .863 / .028);--iris-a3: color(display-p3 .004 .071 .871 / .059);--iris-a4: color(display-p3 .012 .051 1 / .099);--iris-a5: color(display-p3 .008 .035 1 / .142);--iris-a6: color(display-p3 0 .02 .941 / .2);--iris-a7: color(display-p3 .004 .02 .847 / .279);--iris-a8: color(display-p3 .004 .024 .788 / .389);--iris-a9: color(display-p3 0 0 .706 / .644);--iris-a10: color(display-p3 0 0 .667 / .683);--iris-a11: color(display-p3 .337 .326 .748);--iris-a12: color(display-p3 .154 .161 .371);--jade-1: color(display-p3 .986 .996 .992);--jade-2: color(display-p3 .962 .983 .969);--jade-3: color(display-p3 .912 .965 .932);--jade-4: color(display-p3 .858 .941 .893);--jade-5: color(display-p3 .795 .909 .847);--jade-6: color(display-p3 .715 .864 .791);--jade-7: color(display-p3 .603 .802 .718);--jade-8: color(display-p3 .44 .72 .629);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .299 .592 .488);--jade-11: color(display-p3 .15 .5 .37);--jade-12: color(display-p3 .142 .229 .194);--jade-a1: color(display-p3 .024 .757 .514 / .016);--jade-a2: color(display-p3 .024 .612 .22 / .04);--jade-a3: color(display-p3 .012 .596 .235 / .087);--jade-a4: color(display-p3 .008 .588 .255 / .142);--jade-a5: color(display-p3 .004 .561 .251 / .204);--jade-a6: color(display-p3 .004 .525 .278 / .287);--jade-a7: color(display-p3 .004 .506 .29 / .397);--jade-a8: color(display-p3 0 .506 .337 / .561);--jade-a9: color(display-p3 0 .459 .298 / .683);--jade-a10: color(display-p3 0 .42 .271 / .702);--jade-a11: color(display-p3 .15 .5 .37);--jade-a12: color(display-p3 .142 .229 .194);--lime-1: color(display-p3 .989 .992 .981);--lime-2: color(display-p3 .975 .98 .954);--lime-3: color(display-p3 .939 .965 .851);--lime-4: color(display-p3 .896 .94 .76);--lime-5: color(display-p3 .843 .903 .678);--lime-6: color(display-p3 .778 .852 .599);--lime-7: color(display-p3 .694 .784 .508);--lime-8: color(display-p3 .585 .707 .378);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .734 .896 .397);--lime-11: color(display-p3 .386 .482 .227);--lime-12: color(display-p3 .222 .25 .128);--lime-a1: color(display-p3 .412 .608 .02 / .02);--lime-a2: color(display-p3 .514 .592 .024 / .048);--lime-a3: color(display-p3 .584 .765 .008 / .15);--lime-a4: color(display-p3 .561 .757 .004 / .24);--lime-a5: color(display-p3 .514 .698 .004 / .322);--lime-a6: color(display-p3 .443 .627 0 / .4);--lime-a7: color(display-p3 .376 .561 .004 / .491);--lime-a8: color(display-p3 .333 .529 0 / .624);--lime-a9: color(display-p3 .588 .867 0 / .534);--lime-a10: color(display-p3 .561 .827 0 / .604);--lime-a11: color(display-p3 .386 .482 .227);--lime-a12: color(display-p3 .222 .25 .128);--mint-1: color(display-p3 .98 .995 .992);--mint-2: color(display-p3 .957 .985 .977);--mint-3: color(display-p3 .888 .972 .95);--mint-4: color(display-p3 .819 .951 .916);--mint-5: color(display-p3 .747 .918 .873);--mint-6: color(display-p3 .668 .87 .818);--mint-7: color(display-p3 .567 .805 .744);--mint-8: color(display-p3 .42 .724 .649);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .585 .871 .797);--mint-11: color(display-p3 .203 .463 .397);--mint-12: color(display-p3 .136 .259 .236);--mint-a1: color(display-p3 .02 .804 .608 / .02);--mint-a2: color(display-p3 .02 .647 .467 / .044);--mint-a3: color(display-p3 .004 .761 .553 / .114);--mint-a4: color(display-p3 .004 .741 .545 / .181);--mint-a5: color(display-p3 .004 .678 .51 / .255);--mint-a6: color(display-p3 .004 .616 .463 / .334);--mint-a7: color(display-p3 .004 .549 .412 / .432);--mint-a8: color(display-p3 0 .529 .392 / .581);--mint-a9: color(display-p3 .004 .765 .569 / .381);--mint-a10: color(display-p3 .004 .69 .51 / .416);--mint-a11: color(display-p3 .203 .463 .397);--mint-a12: color(display-p3 .136 .259 .236);--orange-1: color(display-p3 .995 .988 .985);--orange-2: color(display-p3 .994 .968 .934);--orange-3: color(display-p3 .989 .938 .85);--orange-4: color(display-p3 1 .874 .687);--orange-5: color(display-p3 1 .821 .583);--orange-6: color(display-p3 .975 .767 .545);--orange-7: color(display-p3 .919 .693 .486);--orange-8: color(display-p3 .877 .597 .379);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .87 .409 .164);--orange-11: color(display-p3 .76 .34 0);--orange-12: color(display-p3 .323 .185 .127);--orange-a1: color(display-p3 .757 .267 .024 / .016);--orange-a2: color(display-p3 .886 .533 .008 / .067);--orange-a3: color(display-p3 .922 .584 .008 / .15);--orange-a4: color(display-p3 1 .604 .004 / .314);--orange-a5: color(display-p3 1 .569 .004 / .416);--orange-a6: color(display-p3 .949 .494 .004 / .455);--orange-a7: color(display-p3 .839 .408 0 / .514);--orange-a8: color(display-p3 .804 .349 0 / .62);--orange-a9: color(display-p3 .878 .314 0 / .8);--orange-a10: color(display-p3 .843 .29 0 / .836);--orange-a11: color(display-p3 .76 .34 0);--orange-a12: color(display-p3 .323 .185 .127);--pink-1: color(display-p3 .998 .989 .996);--pink-2: color(display-p3 .992 .97 .985);--pink-3: color(display-p3 .981 .917 .96);--pink-4: color(display-p3 .963 .867 .932);--pink-5: color(display-p3 .939 .815 .899);--pink-6: color(display-p3 .907 .756 .859);--pink-7: color(display-p3 .869 .683 .81);--pink-8: color(display-p3 .825 .59 .751);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .748 .27 .581);--pink-11: color(display-p3 .698 .219 .528);--pink-12: color(display-p3 .363 .101 .279);--pink-a1: color(display-p3 .675 .024 .675 / .012);--pink-a2: color(display-p3 .757 .02 .51 / .032);--pink-a3: color(display-p3 .765 .008 .529 / .083);--pink-a4: color(display-p3 .737 .008 .506 / .134);--pink-a5: color(display-p3 .663 .004 .451 / .185);--pink-a6: color(display-p3 .616 .004 .424 / .244);--pink-a7: color(display-p3 .596 .004 .412 / .318);--pink-a8: color(display-p3 .573 .004 .404 / .412);--pink-a9: color(display-p3 .682 0 .447 / .702);--pink-a10: color(display-p3 .655 0 .424 / .73);--pink-a11: color(display-p3 .698 .219 .528);--pink-a12: color(display-p3 .363 .101 .279);--plum-1: color(display-p3 .995 .988 .999);--plum-2: color(display-p3 .988 .971 .99);--plum-3: color(display-p3 .973 .923 .98);--plum-4: color(display-p3 .953 .875 .966);--plum-5: color(display-p3 .926 .825 .945);--plum-6: color(display-p3 .89 .765 .916);--plum-7: color(display-p3 .84 .686 .877);--plum-8: color(display-p3 .775 .58 .832);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .587 .29 .667);--plum-11: color(display-p3 .543 .263 .619);--plum-12: color(display-p3 .299 .114 .352);--plum-a1: color(display-p3 .675 .024 1 / .012);--plum-a2: color(display-p3 .58 .024 .58 / .028);--plum-a3: color(display-p3 .655 .008 .753 / .079);--plum-a4: color(display-p3 .627 .008 .722 / .126);--plum-a5: color(display-p3 .58 .004 .69 / .177);--plum-a6: color(display-p3 .537 .004 .655 / .236);--plum-a7: color(display-p3 .49 .004 .616 / .314);--plum-a8: color(display-p3 .471 .004 .6 / .42);--plum-a9: color(display-p3 .451 0 .576 / .687);--plum-a10: color(display-p3 .42 0 .529 / .71);--plum-a11: color(display-p3 .543 .263 .619);--plum-a12: color(display-p3 .299 .114 .352);--purple-1: color(display-p3 .995 .988 .996);--purple-2: color(display-p3 .983 .971 .993);--purple-3: color(display-p3 .963 .931 .989);--purple-4: color(display-p3 .937 .888 .981);--purple-5: color(display-p3 .904 .837 .966);--purple-6: color(display-p3 .86 .774 .942);--purple-7: color(display-p3 .799 .69 .91);--purple-8: color(display-p3 .719 .583 .874);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .483 .289 .7);--purple-11: color(display-p3 .473 .281 .687);--purple-12: color(display-p3 .234 .132 .363);--purple-a1: color(display-p3 .675 .024 .675 / .012);--purple-a2: color(display-p3 .443 .024 .722 / .028);--purple-a3: color(display-p3 .506 .008 .835 / .071);--purple-a4: color(display-p3 .451 .004 .831 / .114);--purple-a5: color(display-p3 .431 .004 .788 / .165);--purple-a6: color(display-p3 .384 .004 .745 / .228);--purple-a7: color(display-p3 .357 .004 .71 / .31);--purple-a8: color(display-p3 .322 .004 .702 / .416);--purple-a9: color(display-p3 .298 0 .639 / .683);--purple-a10: color(display-p3 .271 0 .58 / .71);--purple-a11: color(display-p3 .473 .281 .687);--purple-a12: color(display-p3 .234 .132 .363);--red-1: color(display-p3 .998 .989 .988);--red-2: color(display-p3 .995 .971 .971);--red-3: color(display-p3 .985 .925 .925);--red-4: color(display-p3 .999 .866 .866);--red-5: color(display-p3 .984 .812 .811);--red-6: color(display-p3 .955 .751 .749);--red-7: color(display-p3 .915 .675 .672);--red-8: color(display-p3 .872 .575 .572);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .798 .294 .285);--red-11: color(display-p3 .744 .234 .222);--red-12: color(display-p3 .36 .115 .143);--red-a1: color(display-p3 .675 .024 .024 / .012);--red-a2: color(display-p3 .863 .024 .024 / .028);--red-a3: color(display-p3 .792 .008 .008 / .075);--red-a4: color(display-p3 1 .008 .008 / .134);--red-a5: color(display-p3 .918 .008 .008 / .189);--red-a6: color(display-p3 .831 .02 .004 / .251);--red-a7: color(display-p3 .741 .016 .004 / .33);--red-a8: color(display-p3 .698 .012 .004 / .428);--red-a9: color(display-p3 .749 .008 0 / .675);--red-a10: color(display-p3 .714 .012 0 / .714);--red-a11: color(display-p3 .744 .234 .222);--red-a12: color(display-p3 .36 .115 .143);--ruby-1: color(display-p3 .998 .989 .992);--ruby-2: color(display-p3 .995 .971 .974);--ruby-3: color(display-p3 .983 .92 .928);--ruby-4: color(display-p3 .987 .869 .885);--ruby-5: color(display-p3 .968 .817 .839);--ruby-6: color(display-p3 .937 .758 .786);--ruby-7: color(display-p3 .897 .685 .721);--ruby-8: color(display-p3 .851 .588 .639);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .795 .286 .375);--ruby-11: color(display-p3 .728 .211 .311);--ruby-12: color(display-p3 .36 .115 .171);--ruby-a1: color(display-p3 .675 .024 .349 / .012);--ruby-a2: color(display-p3 .863 .024 .024 / .028);--ruby-a3: color(display-p3 .804 .008 .11 / .079);--ruby-a4: color(display-p3 .91 .008 .125 / .13);--ruby-a5: color(display-p3 .831 .004 .133 / .185);--ruby-a6: color(display-p3 .745 .004 .118 / .244);--ruby-a7: color(display-p3 .678 .004 .114 / .314);--ruby-a8: color(display-p3 .639 .004 .125 / .412);--ruby-a9: color(display-p3 .753 0 .129 / .679);--ruby-a10: color(display-p3 .714 0 .125 / .714);--ruby-a11: color(display-p3 .728 .211 .311);--ruby-a12: color(display-p3 .36 .115 .171);--sky-1: color(display-p3 .98 .995 .999);--sky-2: color(display-p3 .953 .98 .99);--sky-3: color(display-p3 .899 .963 .989);--sky-4: color(display-p3 .842 .937 .977);--sky-5: color(display-p3 .777 .9 .954);--sky-6: color(display-p3 .701 .851 .921);--sky-7: color(display-p3 .604 .785 .879);--sky-8: color(display-p3 .457 .696 .829);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .555 .845 .959);--sky-11: color(display-p3 .193 .448 .605);--sky-12: color(display-p3 .145 .241 .329);--sky-a1: color(display-p3 .02 .804 1 / .02);--sky-a2: color(display-p3 .024 .592 .757 / .048);--sky-a3: color(display-p3 .004 .655 .886 / .102);--sky-a4: color(display-p3 .004 .604 .851 / .157);--sky-a5: color(display-p3 .004 .565 .792 / .224);--sky-a6: color(display-p3 .004 .502 .737 / .299);--sky-a7: color(display-p3 .004 .459 .694 / .397);--sky-a8: color(display-p3 0 .435 .682 / .542);--sky-a9: color(display-p3 .004 .71 .965 / .416);--sky-a10: color(display-p3 .004 .647 .914 / .444);--sky-a11: color(display-p3 .193 .448 .605);--sky-a12: color(display-p3 .145 .241 .329);--teal-1: color(display-p3 .983 .996 .992);--teal-2: color(display-p3 .958 .983 .976);--teal-3: color(display-p3 .895 .971 .952);--teal-4: color(display-p3 .831 .949 .92);--teal-5: color(display-p3 .761 .914 .878);--teal-6: color(display-p3 .682 .864 .825);--teal-7: color(display-p3 .581 .798 .756);--teal-8: color(display-p3 .433 .716 .671);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .275 .599 .542);--teal-11: color(display-p3 .08 .5 .43);--teal-12: color(display-p3 .11 .235 .219);--teal-a1: color(display-p3 .024 .757 .514 / .016);--teal-a2: color(display-p3 .02 .647 .467 / .044);--teal-a3: color(display-p3 .004 .741 .557 / .106);--teal-a4: color(display-p3 .004 .702 .537 / .169);--teal-a5: color(display-p3 .004 .643 .494 / .24);--teal-a6: color(display-p3 .004 .569 .447 / .318);--teal-a7: color(display-p3 .004 .518 .424 / .42);--teal-a8: color(display-p3 0 .506 .424 / .569);--teal-a9: color(display-p3 0 .482 .404 / .702);--teal-a10: color(display-p3 0 .451 .369 / .726);--teal-a11: color(display-p3 .08 .5 .43);--teal-a12: color(display-p3 .11 .235 .219);--tomato-1: color(display-p3 .998 .989 .988);--tomato-2: color(display-p3 .994 .974 .969);--tomato-3: color(display-p3 .985 .924 .909);--tomato-4: color(display-p3 .996 .868 .835);--tomato-5: color(display-p3 .98 .812 .77);--tomato-6: color(display-p3 .953 .75 .698);--tomato-7: color(display-p3 .917 .673 .611);--tomato-8: color(display-p3 .875 .575 .502);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .802 .313 .2);--tomato-11: color(display-p3 .755 .259 .152);--tomato-12: color(display-p3 .335 .165 .132);--tomato-a1: color(display-p3 .675 .024 .024 / .012);--tomato-a2: color(display-p3 .757 .145 .02 / .032);--tomato-a3: color(display-p3 .831 .184 .012 / .091);--tomato-a4: color(display-p3 .976 .192 .004 / .165);--tomato-a5: color(display-p3 .918 .192 .004 / .232);--tomato-a6: color(display-p3 .847 .173 .004 / .302);--tomato-a7: color(display-p3 .788 .165 .004 / .389);--tomato-a8: color(display-p3 .749 .153 .004 / .499);--tomato-a9: color(display-p3 .78 .149 0 / .769);--tomato-a10: color(display-p3 .757 .141 0 / .8);--tomato-a11: color(display-p3 .755 .259 .152);--tomato-a12: color(display-p3 .335 .165 .132);--violet-1: color(display-p3 .991 .988 .995);--violet-2: color(display-p3 .978 .974 .998);--violet-3: color(display-p3 .953 .943 .993);--violet-4: color(display-p3 .916 .897 1);--violet-5: color(display-p3 .876 .851 1);--violet-6: color(display-p3 .825 .793 .981);--violet-7: color(display-p3 .752 .712 .943);--violet-8: color(display-p3 .654 .602 .902);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .381 .306 .741);--violet-11: color(display-p3 .383 .317 .702);--violet-12: color(display-p3 .179 .15 .359);--violet-a1: color(display-p3 .349 .024 .675 / .012);--violet-a2: color(display-p3 .161 .024 .863 / .028);--violet-a3: color(display-p3 .204 .004 .871 / .059);--violet-a4: color(display-p3 .196 .004 1 / .102);--violet-a5: color(display-p3 .165 .008 1 / .15);--violet-a6: color(display-p3 .153 .004 .906 / .208);--violet-a7: color(display-p3 .141 .004 .796 / .287);--violet-a8: color(display-p3 .133 .004 .753 / .397);--violet-a9: color(display-p3 .114 0 .675 / .659);--violet-a10: color(display-p3 .11 0 .627 / .695);--violet-a11: color(display-p3 .383 .317 .702);--violet-a12: color(display-p3 .179 .15 .359);--yellow-1: color(display-p3 .992 .992 .978);--yellow-2: color(display-p3 .995 .99 .922);--yellow-3: color(display-p3 .997 .982 .749);--yellow-4: color(display-p3 .992 .953 .627);--yellow-5: color(display-p3 .984 .91 .51);--yellow-6: color(display-p3 .934 .847 .474);--yellow-7: color(display-p3 .876 .785 .46);--yellow-8: color(display-p3 .811 .689 .313);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 .977 .868 .291);--yellow-11: color(display-p3 .6 .44 0);--yellow-12: color(display-p3 .271 .233 .137);--yellow-a1: color(display-p3 .675 .675 .024 / .024);--yellow-a2: color(display-p3 .953 .855 .008 / .079);--yellow-a3: color(display-p3 .988 .925 .004 / .251);--yellow-a4: color(display-p3 .98 .875 .004 / .373);--yellow-a5: color(display-p3 .969 .816 .004 / .491);--yellow-a6: color(display-p3 .875 .71 0 / .526);--yellow-a7: color(display-p3 .769 .604 0 / .542);--yellow-a8: color(display-p3 .725 .549 0 / .687);--yellow-a9: color(display-p3 1 .898 0 / .781);--yellow-a10: color(display-p3 .969 .812 0 / .71);--yellow-a11: color(display-p3 .6 .44 0);--yellow-a12: color(display-p3 .271 .233 .137);--gray-surface: color(display-p3 1 1 1 / .8);--mauve-surface: color(display-p3 1 1 1 / .8);--slate-surface: color(display-p3 1 1 1 / .8);--sage-surface: color(display-p3 1 1 1 / .8);--olive-surface: color(display-p3 1 1 1 / .8);--sand-surface: color(display-p3 1 1 1 / .8);--amber-surface: color(display-p3 .9922 .9843 .902 / .8);--blue-surface: color(display-p3 .9529 .9765 .9961 / .8);--bronze-surface: color(display-p3 .9843 .9608 .9529 / .8);--brown-surface: color(display-p3 .9843 .9725 .9569 / .8);--crimson-surface: color(display-p3 .9922 .9608 .9725 / .8);--cyan-surface: color(display-p3 .9412 .9765 .9804 / .8);--gold-surface: color(display-p3 .9765 .9725 .9412 / .8);--grass-surface: color(display-p3 .9569 .9804 .9569 / .8);--green-surface: color(display-p3 .9569 .9804 .9608 / .8);--indigo-surface: color(display-p3 .9647 .9725 .9961 / .8);--iris-surface: color(display-p3 .9647 .9647 .9961 / .8);--jade-surface: color(display-p3 .9529 .9804 .9608 / .8);--lime-surface: color(display-p3 .9725 .9765 .9412 / .8);--mint-surface: color(display-p3 .9451 .9804 .9725 / .8);--orange-surface: color(display-p3 .9961 .9608 .9176 / .8);--pink-surface: color(display-p3 .9922 .9608 .9804 / .8);--plum-surface: color(display-p3 .9843 .9647 .9843 / .8);--purple-surface: color(display-p3 .9804 .9647 .9922 / .8);--red-surface: color(display-p3 .9961 .9647 .9647 / .8);--ruby-surface: color(display-p3 .9961 .9647 .9647 / .8);--sky-surface: color(display-p3 .9412 .9765 .9843 / .8);--teal-surface: color(display-p3 .9451 .9804 .9725 / .8);--tomato-surface: color(display-p3 .9922 .9647 .9608 / .8);--violet-surface: color(display-p3 .9725 .9647 .9961 / .8);--yellow-surface: color(display-p3 .9961 .9922 .902 / .8)}}}.dark,.dark-theme{--gray-1: #111111;--gray-2: #191919;--gray-3: #222222;--gray-4: #2a2a2a;--gray-5: #313131;--gray-6: #3a3a3a;--gray-7: #484848;--gray-8: #606060;--gray-9: #6e6e6e;--gray-10: #7b7b7b;--gray-11: #b4b4b4;--gray-12: #eeeeee;--gray-a1: #00000000;--gray-a2: #ffffff09;--gray-a3: #ffffff12;--gray-a4: #ffffff1b;--gray-a5: #ffffff22;--gray-a6: #ffffff2c;--gray-a7: #ffffff3b;--gray-a8: #ffffff55;--gray-a9: #ffffff64;--gray-a10: #ffffff72;--gray-a11: #ffffffaf;--gray-a12: #ffffffed;--mauve-1: #121113;--mauve-2: #1a191b;--mauve-3: #232225;--mauve-4: #2b292d;--mauve-5: #323035;--mauve-6: #3c393f;--mauve-7: #49474e;--mauve-8: #625f69;--mauve-9: #6f6d78;--mauve-10: #7c7a85;--mauve-11: #b5b2bc;--mauve-12: #eeeef0;--mauve-a1: #00000000;--mauve-a2: #f5f4f609;--mauve-a3: #ebeaf814;--mauve-a4: #eee5f81d;--mauve-a5: #efe6fe25;--mauve-a6: #f1e6fd30;--mauve-a7: #eee9ff40;--mauve-a8: #eee7ff5d;--mauve-a9: #eae6fd6e;--mauve-a10: #ece9fd7c;--mauve-a11: #f5f1ffb7;--mauve-a12: #fdfdffef;--slate-1: #111113;--slate-2: #18191b;--slate-3: #212225;--slate-4: #272a2d;--slate-5: #2e3135;--slate-6: #363a3f;--slate-7: #43484e;--slate-8: #5a6169;--slate-9: #696e77;--slate-10: #777b84;--slate-11: #b0b4ba;--slate-12: #edeef0;--slate-a1: #00000000;--slate-a2: #d8f4f609;--slate-a3: #ddeaf814;--slate-a4: #d3edf81d;--slate-a5: #d9edfe25;--slate-a6: #d6ebfd30;--slate-a7: #d9edff40;--slate-a8: #d9edff5d;--slate-a9: #dfebfd6d;--slate-a10: #e5edfd7b;--slate-a11: #f1f7feb5;--slate-a12: #fcfdffef;--sage-1: #101211;--sage-2: #171918;--sage-3: #202221;--sage-4: #272a29;--sage-5: #2e3130;--sage-6: #373b39;--sage-7: #444947;--sage-8: #5b625f;--sage-9: #63706b;--sage-10: #717d79;--sage-11: #adb5b2;--sage-12: #eceeed;--sage-a1: #00000000;--sage-a2: #f0f2f108;--sage-a3: #f3f5f412;--sage-a4: #f2fefd1a;--sage-a5: #f1fbfa22;--sage-a6: #edfbf42d;--sage-a7: #edfcf73c;--sage-a8: #ebfdf657;--sage-a9: #dffdf266;--sage-a10: #e5fdf674;--sage-a11: #f4fefbb0;--sage-a12: #fdfffeed;--olive-1: #111210;--olive-2: #181917;--olive-3: #212220;--olive-4: #282a27;--olive-5: #2f312e;--olive-6: #383a36;--olive-7: #454843;--olive-8: #5c625b;--olive-9: #687066;--olive-10: #767d74;--olive-11: #afb5ad;--olive-12: #eceeec;--olive-a1: #00000000;--olive-a2: #f1f2f008;--olive-a3: #f4f5f312;--olive-a4: #f3fef21a;--olive-a5: #f2fbf122;--olive-a6: #f4faed2c;--olive-a7: #f2fced3b;--olive-a8: #edfdeb57;--olive-a9: #ebfde766;--olive-a10: #f0fdec74;--olive-a11: #f6fef4b0;--olive-a12: #fdfffded;--sand-1: #111110;--sand-2: #191918;--sand-3: #222221;--sand-4: #2a2a28;--sand-5: #31312e;--sand-6: #3b3a37;--sand-7: #494844;--sand-8: #62605b;--sand-9: #6f6d66;--sand-10: #7c7b74;--sand-11: #b5b3ad;--sand-12: #eeeeec;--sand-a1: #00000000;--sand-a2: #f4f4f309;--sand-a3: #f6f6f513;--sand-a4: #fefef31b;--sand-a5: #fbfbeb23;--sand-a6: #fffaed2d;--sand-a7: #fffbed3c;--sand-a8: #fff9eb57;--sand-a9: #fffae965;--sand-a10: #fffdee73;--sand-a11: #fffcf4b0;--sand-a12: #fffffded;--amber-1: #16120c;--amber-2: #1d180f;--amber-3: #302008;--amber-4: #3f2700;--amber-5: #4d3000;--amber-6: #5c3d05;--amber-7: #714f19;--amber-8: #8f6424;--amber-9: #ffc53d;--amber-10: #ffd60a;--amber-11: #ffca16;--amber-12: #ffe7b3;--amber-a1: #e63c0006;--amber-a2: #fd9b000d;--amber-a3: #fa820022;--amber-a4: #fc820032;--amber-a5: #fd8b0041;--amber-a6: #fd9b0051;--amber-a7: #ffab2567;--amber-a8: #ffae3587;--amber-a9: #ffc53d;--amber-a10: #ffd60a;--amber-a11: #ffca16;--amber-a12: #ffe7b3;--blue-1: #0d1520;--blue-2: #111927;--blue-3: #0d2847;--blue-4: #003362;--blue-5: #004074;--blue-6: #104d87;--blue-7: #205d9e;--blue-8: #2870bd;--blue-9: #0090ff;--blue-10: #3b9eff;--blue-11: #70b8ff;--blue-12: #c2e6ff;--blue-a1: #004df211;--blue-a2: #1166fb18;--blue-a3: #0077ff3a;--blue-a4: #0075ff57;--blue-a5: #0081fd6b;--blue-a6: #0f89fd7f;--blue-a7: #2a91fe98;--blue-a8: #3094feb9;--blue-a9: #0090ff;--blue-a10: #3b9eff;--blue-a11: #70b8ff;--blue-a12: #c2e6ff;--bronze-1: #141110;--bronze-2: #1c1917;--bronze-3: #262220;--bronze-4: #302a27;--bronze-5: #3b3330;--bronze-6: #493e3a;--bronze-7: #5a4c47;--bronze-8: #6f5f58;--bronze-9: #a18072;--bronze-10: #ae8c7e;--bronze-11: #d4b3a5;--bronze-12: #ede0d9;--bronze-a1: #d1110004;--bronze-a2: #fbbc910c;--bronze-a3: #faceb817;--bronze-a4: #facdb622;--bronze-a5: #ffd2c12d;--bronze-a6: #ffd1c03c;--bronze-a7: #fdd0c04f;--bronze-a8: #ffd6c565;--bronze-a9: #fec7b09b;--bronze-a10: #fecab5a9;--bronze-a11: #ffd7c6d1;--bronze-a12: #fff1e9ec;--brown-1: #12110f;--brown-2: #1c1816;--brown-3: #28211d;--brown-4: #322922;--brown-5: #3e3128;--brown-6: #4d3c2f;--brown-7: #614a39;--brown-8: #7c5f46;--brown-9: #ad7f58;--brown-10: #b88c67;--brown-11: #dbb594;--brown-12: #f2e1ca;--brown-a1: #91110002;--brown-a2: #fba67c0c;--brown-a3: #fcb58c19;--brown-a4: #fbbb8a24;--brown-a5: #fcb88931;--brown-a6: #fdba8741;--brown-a7: #ffbb8856;--brown-a8: #ffbe8773;--brown-a9: #feb87da8;--brown-a10: #ffc18cb3;--brown-a11: #fed1aad9;--brown-a12: #feecd4f2;--crimson-1: #191114;--crimson-2: #201318;--crimson-3: #381525;--crimson-4: #4d122f;--crimson-5: #5c1839;--crimson-6: #6d2545;--crimson-7: #873356;--crimson-8: #b0436e;--crimson-9: #e93d82;--crimson-10: #ee518a;--crimson-11: #ff92ad;--crimson-12: #fdd3e8;--crimson-a1: #f4126709;--crimson-a2: #f22f7a11;--crimson-a3: #fe2a8b2a;--crimson-a4: #fd158741;--crimson-a5: #fd278f51;--crimson-a6: #fe459763;--crimson-a7: #fd559b7f;--crimson-a8: #fe5b9bab;--crimson-a9: #fe418de8;--crimson-a10: #ff5693ed;--crimson-a11: #ff92ad;--crimson-a12: #ffd5eafd;--cyan-1: #0b161a;--cyan-2: #101b20;--cyan-3: #082c36;--cyan-4: #003848;--cyan-5: #004558;--cyan-6: #045468;--cyan-7: #12677e;--cyan-8: #11809c;--cyan-9: #00a2c7;--cyan-10: #23afd0;--cyan-11: #4ccce6;--cyan-12: #b6ecf7;--cyan-a1: #0091f70a;--cyan-a2: #02a7f211;--cyan-a3: #00befd28;--cyan-a4: #00baff3b;--cyan-a5: #00befd4d;--cyan-a6: #00c7fd5e;--cyan-a7: #14cdff75;--cyan-a8: #11cfff95;--cyan-a9: #00cfffc3;--cyan-a10: #28d6ffcd;--cyan-a11: #52e1fee5;--cyan-a12: #bbf3fef7;--gold-1: #121211;--gold-2: #1b1a17;--gold-3: #24231f;--gold-4: #2d2b26;--gold-5: #38352e;--gold-6: #444039;--gold-7: #544f46;--gold-8: #696256;--gold-9: #978365;--gold-10: #a39073;--gold-11: #cbb99f;--gold-12: #e8e2d9;--gold-a1: #91911102;--gold-a2: #f9e29d0b;--gold-a3: #f8ecbb15;--gold-a4: #ffeec41e;--gold-a5: #feecc22a;--gold-a6: #feebcb37;--gold-a7: #ffedcd48;--gold-a8: #fdeaca5f;--gold-a9: #ffdba690;--gold-a10: #fedfb09d;--gold-a11: #fee7c6c8;--gold-a12: #fef7ede7;--grass-1: #0e1511;--grass-2: #141a15;--grass-3: #1b2a1e;--grass-4: #1d3a24;--grass-5: #25482d;--grass-6: #2d5736;--grass-7: #366740;--grass-8: #3e7949;--grass-9: #46a758;--grass-10: #53b365;--grass-11: #71d083;--grass-12: #c2f0c2;--grass-a1: #00de1205;--grass-a2: #5ef7780a;--grass-a3: #70fe8c1b;--grass-a4: #57ff802c;--grass-a5: #68ff8b3b;--grass-a6: #71ff8f4b;--grass-a7: #77fd925d;--grass-a8: #77fd9070;--grass-a9: #65ff82a1;--grass-a10: #72ff8dae;--grass-a11: #89ff9fcd;--grass-a12: #ceffceef;--green-1: #0e1512;--green-2: #121b17;--green-3: #132d21;--green-4: #113b29;--green-5: #174933;--green-6: #20573e;--green-7: #28684a;--green-8: #2f7c57;--green-9: #30a46c;--green-10: #33b074;--green-11: #3dd68c;--green-12: #b1f1cb;--green-a1: #00de4505;--green-a2: #29f99d0b;--green-a3: #22ff991e;--green-a4: #11ff992d;--green-a5: #2bffa23c;--green-a6: #44ffaa4b;--green-a7: #50fdac5e;--green-a8: #54ffad73;--green-a9: #44ffa49e;--green-a10: #43fea4ab;--green-a11: #46fea5d4;--green-a12: #bbffd7f0;--indigo-1: #11131f;--indigo-2: #141726;--indigo-3: #182449;--indigo-4: #1d2e62;--indigo-5: #253974;--indigo-6: #304384;--indigo-7: #3a4f97;--indigo-8: #435db1;--indigo-9: #3e63dd;--indigo-10: #5472e4;--indigo-11: #9eb1ff;--indigo-12: #d6e1ff;--indigo-a1: #1133ff0f;--indigo-a2: #3354fa17;--indigo-a3: #2f62ff3c;--indigo-a4: #3566ff57;--indigo-a5: #4171fd6b;--indigo-a6: #5178fd7c;--indigo-a7: #5a7fff90;--indigo-a8: #5b81feac;--indigo-a9: #4671ffdb;--indigo-a10: #5c7efee3;--indigo-a11: #9eb1ff;--indigo-a12: #d6e1ff;--iris-1: #13131e;--iris-2: #171625;--iris-3: #202248;--iris-4: #262a65;--iris-5: #303374;--iris-6: #3d3e82;--iris-7: #4a4a95;--iris-8: #5958b1;--iris-9: #5b5bd6;--iris-10: #6e6ade;--iris-11: #b1a9ff;--iris-12: #e0dffe;--iris-a1: #3636fe0e;--iris-a2: #564bf916;--iris-a3: #525bff3b;--iris-a4: #4d58ff5a;--iris-a5: #5b62fd6b;--iris-a6: #6d6ffd7a;--iris-a7: #7777fe8e;--iris-a8: #7b7afeac;--iris-a9: #6a6afed4;--iris-a10: #7d79ffdc;--iris-a11: #b1a9ff;--iris-a12: #e1e0fffe;--jade-1: #0d1512;--jade-2: #121c18;--jade-3: #0f2e22;--jade-4: #0b3b2c;--jade-5: #114837;--jade-6: #1b5745;--jade-7: #246854;--jade-8: #2a7e68;--jade-9: #29a383;--jade-10: #27b08b;--jade-11: #1fd8a4;--jade-12: #adf0d4;--jade-a1: #00de4505;--jade-a2: #27fba60c;--jade-a3: #02f99920;--jade-a4: #00ffaa2d;--jade-a5: #11ffb63b;--jade-a6: #34ffc24b;--jade-a7: #45fdc75e;--jade-a8: #48ffcf75;--jade-a9: #38feca9d;--jade-a10: #31fec7ab;--jade-a11: #21fec0d6;--jade-a12: #b8ffe1ef;--lime-1: #11130c;--lime-2: #151a10;--lime-3: #1f2917;--lime-4: #29371d;--lime-5: #334423;--lime-6: #3d522a;--lime-7: #496231;--lime-8: #577538;--lime-9: #bdee63;--lime-10: #d4ff70;--lime-11: #bde56c;--lime-12: #e3f7ba;--lime-a1: #11bb0003;--lime-a2: #78f7000a;--lime-a3: #9bfd4c1a;--lime-a4: #a7fe5c29;--lime-a5: #affe6537;--lime-a6: #b2fe6d46;--lime-a7: #b6ff6f57;--lime-a8: #b6fd6d6c;--lime-a9: #caff69ed;--lime-a10: #d4ff70;--lime-a11: #d1fe77e4;--lime-a12: #e9febff7;--mint-1: #0e1515;--mint-2: #0f1b1b;--mint-3: #092c2b;--mint-4: #003a38;--mint-5: #004744;--mint-6: #105650;--mint-7: #1e685f;--mint-8: #277f70;--mint-9: #86ead4;--mint-10: #a8f5e5;--mint-11: #58d5ba;--mint-12: #c4f5e1;--mint-a1: #00dede05;--mint-a2: #00f9f90b;--mint-a3: #00fff61d;--mint-a4: #00fff42c;--mint-a5: #00fff23a;--mint-a6: #0effeb4a;--mint-a7: #34fde55e;--mint-a8: #41ffdf76;--mint-a9: #92ffe7e9;--mint-a10: #aefeedf5;--mint-a11: #67ffded2;--mint-a12: #cbfee9f5;--orange-1: #17120e;--orange-2: #1e160f;--orange-3: #331e0b;--orange-4: #462100;--orange-5: #562800;--orange-6: #66350c;--orange-7: #7e451d;--orange-8: #a35829;--orange-9: #f76b15;--orange-10: #ff801f;--orange-11: #ffa057;--orange-12: #ffe0c2;--orange-a1: #ec360007;--orange-a2: #fe6d000e;--orange-a3: #fb6a0025;--orange-a4: #ff590039;--orange-a5: #ff61004a;--orange-a6: #fd75045c;--orange-a7: #ff832c75;--orange-a8: #fe84389d;--orange-a9: #fe6d15f7;--orange-a10: #ff801f;--orange-a11: #ffa057;--orange-a12: #ffe0c2;--pink-1: #191117;--pink-2: #21121d;--pink-3: #37172f;--pink-4: #4b143d;--pink-5: #591c47;--pink-6: #692955;--pink-7: #833869;--pink-8: #a84885;--pink-9: #d6409f;--pink-10: #de51a8;--pink-11: #ff8dcc;--pink-12: #fdd1ea;--pink-a1: #f412bc09;--pink-a2: #f420bb12;--pink-a3: #fe37cc29;--pink-a4: #fc1ec43f;--pink-a5: #fd35c24e;--pink-a6: #fd51c75f;--pink-a7: #fd62c87b;--pink-a8: #ff68c8a2;--pink-a9: #fe49bcd4;--pink-a10: #ff5cc0dc;--pink-a11: #ff8dcc;--pink-a12: #ffd3ecfd;--plum-1: #181118;--plum-2: #201320;--plum-3: #351a35;--plum-4: #451d47;--plum-5: #512454;--plum-6: #5e3061;--plum-7: #734079;--plum-8: #92549c;--plum-9: #ab4aba;--plum-10: #b658c4;--plum-11: #e796f3;--plum-12: #f4d4f4;--plum-a1: #f112f108;--plum-a2: #f22ff211;--plum-a3: #fd4cfd27;--plum-a4: #f646ff3a;--plum-a5: #f455ff48;--plum-a6: #f66dff56;--plum-a7: #f07cfd70;--plum-a8: #ee84ff95;--plum-a9: #e961feb6;--plum-a10: #ed70ffc0;--plum-a11: #f19cfef3;--plum-a12: #feddfef4;--purple-1: #18111b;--purple-2: #1e1523;--purple-3: #301c3b;--purple-4: #3d224e;--purple-5: #48295c;--purple-6: #54346b;--purple-7: #664282;--purple-8: #8457aa;--purple-9: #8e4ec6;--purple-10: #9a5cd0;--purple-11: #d19dff;--purple-12: #ecd9fa;--purple-a1: #b412f90b;--purple-a2: #b744f714;--purple-a3: #c150ff2d;--purple-a4: #bb53fd42;--purple-a5: #be5cfd51;--purple-a6: #c16dfd61;--purple-a7: #c378fd7a;--purple-a8: #c47effa4;--purple-a9: #b661ffc2;--purple-a10: #bc6fffcd;--purple-a11: #d19dff;--purple-a12: #f1ddfffa;--red-1: #191111;--red-2: #201314;--red-3: #3b1219;--red-4: #500f1c;--red-5: #611623;--red-6: #72232d;--red-7: #8c333a;--red-8: #b54548;--red-9: #e5484d;--red-10: #ec5d5e;--red-11: #ff9592;--red-12: #ffd1d9;--red-a1: #f4121209;--red-a2: #f22f3e11;--red-a3: #ff173f2d;--red-a4: #fe0a3b44;--red-a5: #ff204756;--red-a6: #ff3e5668;--red-a7: #ff536184;--red-a8: #ff5d61b0;--red-a9: #fe4e54e4;--red-a10: #ff6465eb;--red-a11: #ff9592;--red-a12: #ffd1d9;--ruby-1: #191113;--ruby-2: #1e1517;--ruby-3: #3a141e;--ruby-4: #4e1325;--ruby-5: #5e1a2e;--ruby-6: #6f2539;--ruby-7: #883447;--ruby-8: #b3445a;--ruby-9: #e54666;--ruby-10: #ec5a72;--ruby-11: #ff949d;--ruby-12: #fed2e1;--ruby-a1: #f4124a09;--ruby-a2: #fe5a7f0e;--ruby-a3: #ff235d2c;--ruby-a4: #fd195e42;--ruby-a5: #fe2d6b53;--ruby-a6: #ff447665;--ruby-a7: #ff577d80;--ruby-a8: #ff5c7cae;--ruby-a9: #fe4c70e4;--ruby-a10: #ff617beb;--ruby-a11: #ff949d;--ruby-a12: #ffd3e2fe;--sky-1: #0d141f;--sky-2: #111a27;--sky-3: #112840;--sky-4: #113555;--sky-5: #154467;--sky-6: #1b537b;--sky-7: #1f6692;--sky-8: #197cae;--sky-9: #7ce2fe;--sky-10: #a8eeff;--sky-11: #75c7f0;--sky-12: #c2f3ff;--sky-a1: #0044ff0f;--sky-a2: #1171fb18;--sky-a3: #1184fc33;--sky-a4: #128fff49;--sky-a5: #1c9dfd5d;--sky-a6: #28a5ff72;--sky-a7: #2badfe8b;--sky-a8: #1db2fea9;--sky-a9: #7ce3fffe;--sky-a10: #a8eeff;--sky-a11: #7cd3ffef;--sky-a12: #c2f3ff;--teal-1: #0d1514;--teal-2: #111c1b;--teal-3: #0d2d2a;--teal-4: #023b37;--teal-5: #084843;--teal-6: #145750;--teal-7: #1c6961;--teal-8: #207e73;--teal-9: #12a594;--teal-10: #0eb39e;--teal-11: #0bd8b6;--teal-12: #adf0dd;--teal-a1: #00deab05;--teal-a2: #12fbe60c;--teal-a3: #00ffe61e;--teal-a4: #00ffe92d;--teal-a5: #00ffea3b;--teal-a6: #1cffe84b;--teal-a7: #2efde85f;--teal-a8: #32ffe775;--teal-a9: #13ffe49f;--teal-a10: #0dffe0ae;--teal-a11: #0afed5d6;--teal-a12: #b8ffebef;--tomato-1: #181111;--tomato-2: #1f1513;--tomato-3: #391714;--tomato-4: #4e1511;--tomato-5: #5e1c16;--tomato-6: #6e2920;--tomato-7: #853a2d;--tomato-8: #ac4d39;--tomato-9: #e54d2e;--tomato-10: #ec6142;--tomato-11: #ff977d;--tomato-12: #fbd3cb;--tomato-a1: #f1121208;--tomato-a2: #ff55330f;--tomato-a3: #ff35232b;--tomato-a4: #fd201142;--tomato-a5: #fe332153;--tomato-a6: #ff4f3864;--tomato-a7: #fd644a7d;--tomato-a8: #fe6d4ea7;--tomato-a9: #fe5431e4;--tomato-a10: #ff6847eb;--tomato-a11: #ff977d;--tomato-a12: #ffd6cefb;--violet-1: #14121f;--violet-2: #1b1525;--violet-3: #291f43;--violet-4: #33255b;--violet-5: #3c2e69;--violet-6: #473876;--violet-7: #56468b;--violet-8: #6958ad;--violet-9: #6e56cf;--violet-10: #7d66d9;--violet-11: #baa7ff;--violet-12: #e2ddfe;--violet-a1: #4422ff0f;--violet-a2: #853ff916;--violet-a3: #8354fe36;--violet-a4: #7d51fd50;--violet-a5: #845ffd5f;--violet-a6: #8f6cfd6d;--violet-a7: #9879ff83;--violet-a8: #977dfea8;--violet-a9: #8668ffcc;--violet-a10: #9176fed7;--violet-a11: #baa7ff;--violet-a12: #e3defffe;--yellow-1: #14120b;--yellow-2: #1b180f;--yellow-3: #2d2305;--yellow-4: #362b00;--yellow-5: #433500;--yellow-6: #524202;--yellow-7: #665417;--yellow-8: #836a21;--yellow-9: #ffe629;--yellow-10: #ffff57;--yellow-11: #f5e147;--yellow-12: #f6eeb4;--yellow-a1: #d1510004;--yellow-a2: #f9b4000b;--yellow-a3: #ffaa001e;--yellow-a4: #fdb70028;--yellow-a5: #febb0036;--yellow-a6: #fec40046;--yellow-a7: #fdcb225c;--yellow-a8: #fdca327b;--yellow-a9: #ffe629;--yellow-a10: #ffff57;--yellow-a11: #fee949f5;--yellow-a12: #fef6baf6;--gray-surface: #21212180;--gray-indicator: var(--gray-9);--gray-track: var(--gray-9);--mauve-surface: #22212380;--mauve-indicator: var(--mauve-9);--mauve-track: var(--mauve-9);--slate-surface: #1f212380;--slate-indicator: var(--slate-9);--slate-track: var(--slate-9);--sage-surface: #1e201f80;--sage-indicator: var(--sage-9);--sage-track: var(--sage-9);--olive-surface: #1f201e80;--olive-indicator: var(--olive-9);--olive-track: var(--olive-9);--sand-surface: #21212080;--sand-indicator: var(--sand-9);--sand-track: var(--sand-9);--amber-surface: #271f1380;--amber-indicator: var(--amber-9);--amber-track: var(--amber-9);--blue-surface: #11213d80;--blue-indicator: var(--blue-9);--blue-track: var(--blue-9);--bronze-surface: #27211d80;--bronze-indicator: var(--bronze-9);--bronze-track: var(--bronze-9);--brown-surface: #271f1b80;--brown-indicator: var(--brown-9);--brown-track: var(--brown-9);--crimson-surface: #2f151f80;--crimson-indicator: var(--crimson-9);--crimson-track: var(--crimson-9);--cyan-surface: #11252d80;--cyan-indicator: var(--cyan-9);--cyan-track: var(--cyan-9);--gold-surface: #25231d80;--gold-indicator: var(--gold-9);--gold-track: var(--gold-9);--grass-surface: #19231b80;--grass-indicator: var(--grass-9);--grass-track: var(--grass-9);--green-surface: #15251d80;--green-indicator: var(--green-9);--green-track: var(--green-9);--indigo-surface: #171d3b80;--indigo-indicator: var(--indigo-9);--indigo-track: var(--indigo-9);--iris-surface: #1d1b3980;--iris-indicator: var(--iris-9);--iris-track: var(--iris-9);--jade-surface: #13271f80;--jade-indicator: var(--jade-9);--jade-track: var(--jade-9);--lime-surface: #1b211580;--lime-indicator: var(--lime-9);--lime-track: var(--lime-9);--mint-surface: #15272780;--mint-indicator: var(--mint-9);--mint-track: var(--mint-9);--orange-surface: #271d1380;--orange-indicator: var(--orange-9);--orange-track: var(--orange-9);--pink-surface: #31132980;--pink-indicator: var(--pink-9);--pink-track: var(--pink-9);--plum-surface: #2f152f80;--plum-indicator: var(--plum-9);--plum-track: var(--plum-9);--purple-surface: #2b173580;--purple-indicator: var(--purple-9);--purple-track: var(--purple-9);--red-surface: #2f151780;--red-indicator: var(--red-9);--red-track: var(--red-9);--ruby-surface: #2b191d80;--ruby-indicator: var(--ruby-9);--ruby-track: var(--ruby-9);--sky-surface: #13233b80;--sky-indicator: var(--sky-9);--sky-track: var(--sky-9);--teal-surface: #13272580;--teal-indicator: var(--teal-9);--teal-track: var(--teal-9);--tomato-surface: #2d191580;--tomato-indicator: var(--tomato-9);--tomato-track: var(--tomato-9);--violet-surface: #25193980;--violet-indicator: var(--violet-9);--violet-track: var(--violet-9);--yellow-surface: #231f1380;--yellow-indicator: var(--yellow-9);--yellow-track: var(--yellow-9)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.dark,.dark-theme{--gray-1: color(display-p3 .067 .067 .067);--gray-2: color(display-p3 .098 .098 .098);--gray-3: color(display-p3 .135 .135 .135);--gray-4: color(display-p3 .163 .163 .163);--gray-5: color(display-p3 .192 .192 .192);--gray-6: color(display-p3 .228 .228 .228);--gray-7: color(display-p3 .283 .283 .283);--gray-8: color(display-p3 .375 .375 .375);--gray-9: color(display-p3 .431 .431 .431);--gray-10: color(display-p3 .484 .484 .484);--gray-11: color(display-p3 .706 .706 .706);--gray-12: color(display-p3 .933 .933 .933);--gray-a1: color(display-p3 0 0 0 / 0);--gray-a2: color(display-p3 1 1 1 / .034);--gray-a3: color(display-p3 1 1 1 / .071);--gray-a4: color(display-p3 1 1 1 / .105);--gray-a5: color(display-p3 1 1 1 / .134);--gray-a6: color(display-p3 1 1 1 / .172);--gray-a7: color(display-p3 1 1 1 / .231);--gray-a8: color(display-p3 1 1 1 / .332);--gray-a9: color(display-p3 1 1 1 / .391);--gray-a10: color(display-p3 1 1 1 / .445);--gray-a11: color(display-p3 1 1 1 / .685);--gray-a12: color(display-p3 1 1 1 / .929);--mauve-1: color(display-p3 .07 .067 .074);--mauve-2: color(display-p3 .101 .098 .105);--mauve-3: color(display-p3 .138 .134 .144);--mauve-4: color(display-p3 .167 .161 .175);--mauve-5: color(display-p3 .196 .189 .206);--mauve-6: color(display-p3 .232 .225 .245);--mauve-7: color(display-p3 .286 .277 .302);--mauve-8: color(display-p3 .383 .373 .408);--mauve-9: color(display-p3 .434 .428 .467);--mauve-10: color(display-p3 .487 .48 .519);--mauve-11: color(display-p3 .707 .7 .735);--mauve-12: color(display-p3 .933 .933 .94);--mauve-a1: color(display-p3 0 0 0 / 0);--mauve-a2: color(display-p3 .996 .992 1 / .034);--mauve-a3: color(display-p3 .937 .933 .992 / .077);--mauve-a4: color(display-p3 .957 .918 .996 / .111);--mauve-a5: color(display-p3 .937 .906 .996 / .145);--mauve-a6: color(display-p3 .953 .925 .996 / .183);--mauve-a7: color(display-p3 .945 .929 1 / .246);--mauve-a8: color(display-p3 .937 .918 1 / .361);--mauve-a9: color(display-p3 .933 .918 1 / .424);--mauve-a10: color(display-p3 .941 .925 1 / .479);--mauve-a11: color(display-p3 .965 .961 1 / .712);--mauve-a12: color(display-p3 .992 .992 1 / .937);--slate-1: color(display-p3 .067 .067 .074);--slate-2: color(display-p3 .095 .098 .105);--slate-3: color(display-p3 .13 .135 .145);--slate-4: color(display-p3 .156 .163 .176);--slate-5: color(display-p3 .183 .191 .206);--slate-6: color(display-p3 .215 .226 .244);--slate-7: color(display-p3 .265 .28 .302);--slate-8: color(display-p3 .357 .381 .409);--slate-9: color(display-p3 .415 .431 .463);--slate-10: color(display-p3 .469 .483 .514);--slate-11: color(display-p3 .692 .704 .728);--slate-12: color(display-p3 .93 .933 .94);--slate-a1: color(display-p3 0 0 0 / 0);--slate-a2: color(display-p3 .875 .992 1 / .034);--slate-a3: color(display-p3 .882 .933 .992 / .077);--slate-a4: color(display-p3 .882 .953 .996 / .111);--slate-a5: color(display-p3 .878 .929 .996 / .145);--slate-a6: color(display-p3 .882 .949 .996 / .183);--slate-a7: color(display-p3 .882 .929 1 / .246);--slate-a8: color(display-p3 .871 .937 1 / .361);--slate-a9: color(display-p3 .898 .937 1 / .42);--slate-a10: color(display-p3 .918 .945 1 / .475);--slate-a11: color(display-p3 .949 .969 .996 / .708);--slate-a12: color(display-p3 .988 .992 1 / .937);--sage-1: color(display-p3 .064 .07 .067);--sage-2: color(display-p3 .092 .098 .094);--sage-3: color(display-p3 .128 .135 .131);--sage-4: color(display-p3 .155 .164 .159);--sage-5: color(display-p3 .183 .193 .188);--sage-6: color(display-p3 .218 .23 .224);--sage-7: color(display-p3 .269 .285 .277);--sage-8: color(display-p3 .362 .382 .373);--sage-9: color(display-p3 .398 .438 .421);--sage-10: color(display-p3 .453 .49 .474);--sage-11: color(display-p3 .685 .709 .697);--sage-12: color(display-p3 .927 .933 .93);--sage-a1: color(display-p3 0 0 0 / 0);--sage-a2: color(display-p3 .976 .988 .984 / .03);--sage-a3: color(display-p3 .992 .945 .941 / .072);--sage-a4: color(display-p3 .988 .996 .992 / .102);--sage-a5: color(display-p3 .992 1 .996 / .131);--sage-a6: color(display-p3 .973 1 .976 / .173);--sage-a7: color(display-p3 .957 1 .976 / .233);--sage-a8: color(display-p3 .957 1 .984 / .334);--sage-a9: color(display-p3 .902 1 .957 / .397);--sage-a10: color(display-p3 .929 1 .973 / .452);--sage-a11: color(display-p3 .969 1 .988 / .688);--sage-a12: color(display-p3 .992 1 .996 / .929);--olive-1: color(display-p3 .067 .07 .063);--olive-2: color(display-p3 .095 .098 .091);--olive-3: color(display-p3 .131 .135 .126);--olive-4: color(display-p3 .158 .163 .153);--olive-5: color(display-p3 .186 .192 .18);--olive-6: color(display-p3 .221 .229 .215);--olive-7: color(display-p3 .273 .284 .266);--olive-8: color(display-p3 .365 .382 .359);--olive-9: color(display-p3 .414 .438 .404);--olive-10: color(display-p3 .467 .49 .458);--olive-11: color(display-p3 .69 .709 .682);--olive-12: color(display-p3 .927 .933 .926);--olive-a1: color(display-p3 0 0 0 / 0);--olive-a2: color(display-p3 .984 .988 .976 / .03);--olive-a3: color(display-p3 .992 .996 .988 / .068);--olive-a4: color(display-p3 .953 .996 .949 / .102);--olive-a5: color(display-p3 .969 1 .965 / .131);--olive-a6: color(display-p3 .973 1 .969 / .169);--olive-a7: color(display-p3 .98 1 .961 / .228);--olive-a8: color(display-p3 .961 1 .957 / .334);--olive-a9: color(display-p3 .949 1 .922 / .397);--olive-a10: color(display-p3 .953 1 .941 / .452);--olive-a11: color(display-p3 .976 1 .965 / .688);--olive-a12: color(display-p3 .992 1 .992 / .929);--sand-1: color(display-p3 .067 .067 .063);--sand-2: color(display-p3 .098 .098 .094);--sand-3: color(display-p3 .135 .135 .129);--sand-4: color(display-p3 .164 .163 .156);--sand-5: color(display-p3 .193 .192 .183);--sand-6: color(display-p3 .23 .229 .217);--sand-7: color(display-p3 .285 .282 .267);--sand-8: color(display-p3 .384 .378 .357);--sand-9: color(display-p3 .434 .428 .403);--sand-10: color(display-p3 .487 .481 .456);--sand-11: color(display-p3 .707 .703 .68);--sand-12: color(display-p3 .933 .933 .926);--sand-a1: color(display-p3 0 0 0 / 0);--sand-a2: color(display-p3 .992 .992 .988 / .034);--sand-a3: color(display-p3 .996 .996 .992 / .072);--sand-a4: color(display-p3 .992 .992 .953 / .106);--sand-a5: color(display-p3 1 1 .965 / .135);--sand-a6: color(display-p3 1 .976 .929 / .177);--sand-a7: color(display-p3 1 .984 .929 / .236);--sand-a8: color(display-p3 1 .976 .925 / .341);--sand-a9: color(display-p3 1 .98 .925 / .395);--sand-a10: color(display-p3 1 .992 .933 / .45);--sand-a11: color(display-p3 1 .996 .961 / .685);--sand-a12: color(display-p3 1 1 .992 / .929);--amber-1: color(display-p3 .082 .07 .05);--amber-2: color(display-p3 .111 .094 .064);--amber-3: color(display-p3 .178 .128 .049);--amber-4: color(display-p3 .239 .156 0);--amber-5: color(display-p3 .29 .193 0);--amber-6: color(display-p3 .344 .245 .076);--amber-7: color(display-p3 .422 .314 .141);--amber-8: color(display-p3 .535 .399 .189);--amber-9: color(display-p3 1 .77 .26);--amber-10: color(display-p3 1 .87 .15);--amber-11: color(display-p3 1 .8 .29);--amber-12: color(display-p3 .984 .909 .726);--amber-a1: color(display-p3 .992 .298 0 / .017);--amber-a2: color(display-p3 .988 .651 0 / .047);--amber-a3: color(display-p3 1 .6 0 / .118);--amber-a4: color(display-p3 1 .557 0 / .185);--amber-a5: color(display-p3 1 .592 0 / .24);--amber-a6: color(display-p3 1 .659 .094 / .299);--amber-a7: color(display-p3 1 .714 .263 / .383);--amber-a8: color(display-p3 .996 .729 .306 / .5);--amber-a9: color(display-p3 1 .769 .259);--amber-a10: color(display-p3 1 .871 .149);--amber-a11: color(display-p3 1 .8 .29);--amber-a12: color(display-p3 .984 .909 .726);--blue-1: color(display-p3 .057 .081 .122);--blue-2: color(display-p3 .072 .098 .147);--blue-3: color(display-p3 .078 .154 .27);--blue-4: color(display-p3 .033 .197 .37);--blue-5: color(display-p3 .08 .245 .441);--blue-6: color(display-p3 .14 .298 .511);--blue-7: color(display-p3 .195 .361 .6);--blue-8: color(display-p3 .239 .434 .72);--blue-9: color(display-p3 .247 .556 .969);--blue-10: color(display-p3 .344 .612 .973);--blue-11: color(display-p3 .49 .72 1);--blue-12: color(display-p3 .788 .898 .99);--blue-a1: color(display-p3 0 .333 1 / .059);--blue-a2: color(display-p3 .114 .435 .988 / .085);--blue-a3: color(display-p3 .122 .463 1 / .219);--blue-a4: color(display-p3 0 .467 1 / .324);--blue-a5: color(display-p3 .098 .51 1 / .4);--blue-a6: color(display-p3 .224 .557 1 / .475);--blue-a7: color(display-p3 .294 .584 1 / .572);--blue-a8: color(display-p3 .314 .592 1 / .702);--blue-a9: color(display-p3 .251 .573 .996 / .967);--blue-a10: color(display-p3 .357 .631 1 / .971);--blue-a11: color(display-p3 .49 .72 1);--blue-a12: color(display-p3 .788 .898 .99);--bronze-1: color(display-p3 .076 .067 .063);--bronze-2: color(display-p3 .106 .097 .093);--bronze-3: color(display-p3 .147 .132 .125);--bronze-4: color(display-p3 .185 .166 .156);--bronze-5: color(display-p3 .227 .202 .19);--bronze-6: color(display-p3 .278 .246 .23);--bronze-7: color(display-p3 .343 .302 .281);--bronze-8: color(display-p3 .426 .374 .347);--bronze-9: color(display-p3 .611 .507 .455);--bronze-10: color(display-p3 .66 .556 .504);--bronze-11: color(display-p3 .81 .707 .655);--bronze-12: color(display-p3 .921 .88 .854);--bronze-a1: color(display-p3 .941 .067 0 / .009);--bronze-a2: color(display-p3 .98 .8 .706 / .043);--bronze-a3: color(display-p3 .988 .851 .761 / .085);--bronze-a4: color(display-p3 .996 .839 .78 / .127);--bronze-a5: color(display-p3 .996 .863 .773 / .173);--bronze-a6: color(display-p3 1 .863 .796 / .227);--bronze-a7: color(display-p3 1 .867 .8 / .295);--bronze-a8: color(display-p3 1 .859 .788 / .387);--bronze-a9: color(display-p3 1 .82 .733 / .585);--bronze-a10: color(display-p3 1 .839 .761 / .635);--bronze-a11: color(display-p3 .81 .707 .655);--bronze-a12: color(display-p3 .921 .88 .854);--brown-1: color(display-p3 .071 .067 .059);--brown-2: color(display-p3 .107 .095 .087);--brown-3: color(display-p3 .151 .13 .115);--brown-4: color(display-p3 .191 .161 .138);--brown-5: color(display-p3 .235 .194 .162);--brown-6: color(display-p3 .291 .237 .192);--brown-7: color(display-p3 .365 .295 .232);--brown-8: color(display-p3 .469 .377 .287);--brown-9: color(display-p3 .651 .505 .368);--brown-10: color(display-p3 .697 .557 .423);--brown-11: color(display-p3 .835 .715 .597);--brown-12: color(display-p3 .938 .885 .802);--brown-a1: color(display-p3 .855 .071 0 / .005);--brown-a2: color(display-p3 .98 .706 .525 / .043);--brown-a3: color(display-p3 .996 .745 .576 / .093);--brown-a4: color(display-p3 1 .765 .592 / .135);--brown-a5: color(display-p3 1 .761 .588 / .181);--brown-a6: color(display-p3 1 .773 .592 / .24);--brown-a7: color(display-p3 .996 .776 .58 / .32);--brown-a8: color(display-p3 1 .78 .573 / .433);--brown-a9: color(display-p3 1 .769 .549 / .627);--brown-a10: color(display-p3 1 .792 .596 / .677);--brown-a11: color(display-p3 .835 .715 .597);--brown-a12: color(display-p3 .938 .885 .802);--crimson-1: color(display-p3 .093 .068 .078);--crimson-2: color(display-p3 .117 .078 .095);--crimson-3: color(display-p3 .203 .091 .143);--crimson-4: color(display-p3 .277 .087 .182);--crimson-5: color(display-p3 .332 .115 .22);--crimson-6: color(display-p3 .394 .162 .268);--crimson-7: color(display-p3 .489 .222 .336);--crimson-8: color(display-p3 .638 .289 .429);--crimson-9: color(display-p3 .843 .298 .507);--crimson-10: color(display-p3 .864 .364 .539);--crimson-11: color(display-p3 1 .56 .66);--crimson-12: color(display-p3 .966 .834 .906);--crimson-a1: color(display-p3 .984 .071 .463 / .03);--crimson-a2: color(display-p3 .996 .282 .569 / .055);--crimson-a3: color(display-p3 .996 .227 .573 / .148);--crimson-a4: color(display-p3 1 .157 .569 / .227);--crimson-a5: color(display-p3 1 .231 .604 / .286);--crimson-a6: color(display-p3 1 .337 .643 / .349);--crimson-a7: color(display-p3 1 .416 .663 / .454);--crimson-a8: color(display-p3 .996 .427 .651 / .614);--crimson-a9: color(display-p3 1 .345 .596 / .832);--crimson-a10: color(display-p3 1 .42 .62 / .853);--crimson-a11: color(display-p3 1 .56 .66);--crimson-a12: color(display-p3 .966 .834 .906);--cyan-1: color(display-p3 .053 .085 .098);--cyan-2: color(display-p3 .072 .105 .122);--cyan-3: color(display-p3 .073 .168 .209);--cyan-4: color(display-p3 .063 .216 .277);--cyan-5: color(display-p3 .091 .267 .336);--cyan-6: color(display-p3 .137 .324 .4);--cyan-7: color(display-p3 .186 .398 .484);--cyan-8: color(display-p3 .23 .496 .6);--cyan-9: color(display-p3 .282 .627 .765);--cyan-10: color(display-p3 .331 .675 .801);--cyan-11: color(display-p3 .446 .79 .887);--cyan-12: color(display-p3 .757 .919 .962);--cyan-a1: color(display-p3 0 .647 .992 / .034);--cyan-a2: color(display-p3 .133 .733 1 / .059);--cyan-a3: color(display-p3 .122 .741 .996 / .152);--cyan-a4: color(display-p3 .051 .725 1 / .227);--cyan-a5: color(display-p3 .149 .757 1 / .29);--cyan-a6: color(display-p3 .267 .792 1 / .358);--cyan-a7: color(display-p3 .333 .808 1 / .446);--cyan-a8: color(display-p3 .357 .816 1 / .572);--cyan-a9: color(display-p3 .357 .82 1 / .748);--cyan-a10: color(display-p3 .4 .839 1 / .786);--cyan-a11: color(display-p3 .446 .79 .887);--cyan-a12: color(display-p3 .757 .919 .962);--gold-1: color(display-p3 .071 .071 .067);--gold-2: color(display-p3 .104 .101 .09);--gold-3: color(display-p3 .141 .136 .122);--gold-4: color(display-p3 .177 .17 .152);--gold-5: color(display-p3 .217 .207 .185);--gold-6: color(display-p3 .265 .252 .225);--gold-7: color(display-p3 .327 .31 .277);--gold-8: color(display-p3 .407 .384 .342);--gold-9: color(display-p3 .579 .517 .41);--gold-10: color(display-p3 .628 .566 .463);--gold-11: color(display-p3 .784 .728 .635);--gold-12: color(display-p3 .906 .887 .855);--gold-a1: color(display-p3 .855 .855 .071 / .005);--gold-a2: color(display-p3 .98 .89 .616 / .043);--gold-a3: color(display-p3 1 .949 .753 / .08);--gold-a4: color(display-p3 1 .933 .8 / .118);--gold-a5: color(display-p3 1 .949 .804 / .16);--gold-a6: color(display-p3 1 .925 .8 / .215);--gold-a7: color(display-p3 1 .945 .831 / .278);--gold-a8: color(display-p3 1 .937 .82 / .366);--gold-a9: color(display-p3 .996 .882 .69 / .551);--gold-a10: color(display-p3 1 .894 .725 / .601);--gold-a11: color(display-p3 .784 .728 .635);--gold-a12: color(display-p3 .906 .887 .855);--grass-1: color(display-p3 .062 .083 .067);--grass-2: color(display-p3 .083 .103 .085);--grass-3: color(display-p3 .118 .163 .122);--grass-4: color(display-p3 .142 .225 .15);--grass-5: color(display-p3 .178 .279 .186);--grass-6: color(display-p3 .217 .337 .224);--grass-7: color(display-p3 .258 .4 .264);--grass-8: color(display-p3 .302 .47 .305);--grass-9: color(display-p3 .38 .647 .378);--grass-10: color(display-p3 .426 .694 .426);--grass-11: color(display-p3 .535 .807 .542);--grass-12: color(display-p3 .797 .936 .776);--grass-a1: color(display-p3 0 .992 .071 / .017);--grass-a2: color(display-p3 .482 .996 .584 / .038);--grass-a3: color(display-p3 .549 .992 .588 / .106);--grass-a4: color(display-p3 .51 .996 .557 / .169);--grass-a5: color(display-p3 .553 1 .588 / .227);--grass-a6: color(display-p3 .584 1 .608 / .29);--grass-a7: color(display-p3 .604 1 .616 / .358);--grass-a8: color(display-p3 .608 1 .62 / .433);--grass-a9: color(display-p3 .573 1 .569 / .622);--grass-a10: color(display-p3 .6 .996 .6 / .673);--grass-a11: color(display-p3 .535 .807 .542);--grass-a12: color(display-p3 .797 .936 .776);--green-1: color(display-p3 .062 .083 .071);--green-2: color(display-p3 .079 .106 .09);--green-3: color(display-p3 .1 .173 .133);--green-4: color(display-p3 .115 .229 .166);--green-5: color(display-p3 .147 .282 .206);--green-6: color(display-p3 .185 .338 .25);--green-7: color(display-p3 .227 .403 .298);--green-8: color(display-p3 .27 .479 .351);--green-9: color(display-p3 .332 .634 .442);--green-10: color(display-p3 .357 .682 .474);--green-11: color(display-p3 .434 .828 .573);--green-12: color(display-p3 .747 .938 .807);--green-a1: color(display-p3 0 .992 .298 / .017);--green-a2: color(display-p3 .341 .98 .616 / .043);--green-a3: color(display-p3 .376 .996 .655 / .114);--green-a4: color(display-p3 .341 .996 .635 / .173);--green-a5: color(display-p3 .408 1 .678 / .232);--green-a6: color(display-p3 .475 1 .706 / .29);--green-a7: color(display-p3 .514 1 .706 / .362);--green-a8: color(display-p3 .529 1 .718 / .442);--green-a9: color(display-p3 .502 .996 .682 / .61);--green-a10: color(display-p3 .506 1 .682 / .66);--green-a11: color(display-p3 .434 .828 .573);--green-a12: color(display-p3 .747 .938 .807);--indigo-1: color(display-p3 .068 .074 .118);--indigo-2: color(display-p3 .081 .089 .144);--indigo-3: color(display-p3 .105 .141 .275);--indigo-4: color(display-p3 .129 .18 .369);--indigo-5: color(display-p3 .163 .22 .439);--indigo-6: color(display-p3 .203 .262 .5);--indigo-7: color(display-p3 .245 .309 .575);--indigo-8: color(display-p3 .285 .362 .674);--indigo-9: color(display-p3 .276 .384 .837);--indigo-10: color(display-p3 .354 .445 .866);--indigo-11: color(display-p3 .63 .69 1);--indigo-12: color(display-p3 .848 .881 .99);--indigo-a1: color(display-p3 .071 .212 .996 / .055);--indigo-a2: color(display-p3 .251 .345 .988 / .085);--indigo-a3: color(display-p3 .243 .404 1 / .223);--indigo-a4: color(display-p3 .263 .42 1 / .324);--indigo-a5: color(display-p3 .314 .451 1 / .4);--indigo-a6: color(display-p3 .361 .49 1 / .467);--indigo-a7: color(display-p3 .388 .51 1 / .547);--indigo-a8: color(display-p3 .404 .518 1 / .652);--indigo-a9: color(display-p3 .318 .451 1 / .824);--indigo-a10: color(display-p3 .404 .506 1 / .858);--indigo-a11: color(display-p3 .63 .69 1);--indigo-a12: color(display-p3 .848 .881 .99);--iris-1: color(display-p3 .075 .075 .114);--iris-2: color(display-p3 .089 .086 .14);--iris-3: color(display-p3 .128 .134 .272);--iris-4: color(display-p3 .153 .165 .382);--iris-5: color(display-p3 .192 .201 .44);--iris-6: color(display-p3 .239 .241 .491);--iris-7: color(display-p3 .291 .289 .565);--iris-8: color(display-p3 .35 .345 .673);--iris-9: color(display-p3 .357 .357 .81);--iris-10: color(display-p3 .428 .416 .843);--iris-11: color(display-p3 .685 .662 1);--iris-12: color(display-p3 .878 .875 .986);--iris-a1: color(display-p3 .224 .224 .992 / .051);--iris-a2: color(display-p3 .361 .314 1 / .08);--iris-a3: color(display-p3 .357 .373 1 / .219);--iris-a4: color(display-p3 .325 .361 1 / .337);--iris-a5: color(display-p3 .38 .4 1 / .4);--iris-a6: color(display-p3 .447 .447 1 / .454);--iris-a7: color(display-p3 .486 .486 1 / .534);--iris-a8: color(display-p3 .502 .494 1 / .652);--iris-a9: color(display-p3 .431 .431 1 / .799);--iris-a10: color(display-p3 .502 .486 1 / .832);--iris-a11: color(display-p3 .685 .662 1);--iris-a12: color(display-p3 .878 .875 .986);--jade-1: color(display-p3 .059 .083 .071);--jade-2: color(display-p3 .078 .11 .094);--jade-3: color(display-p3 .091 .176 .138);--jade-4: color(display-p3 .102 .228 .177);--jade-5: color(display-p3 .133 .279 .221);--jade-6: color(display-p3 .174 .334 .273);--jade-7: color(display-p3 .219 .402 .335);--jade-8: color(display-p3 .263 .488 .411);--jade-9: color(display-p3 .319 .63 .521);--jade-10: color(display-p3 .338 .68 .555);--jade-11: color(display-p3 .4 .835 .656);--jade-12: color(display-p3 .734 .934 .838);--jade-a1: color(display-p3 0 .992 .298 / .017);--jade-a2: color(display-p3 .318 .988 .651 / .047);--jade-a3: color(display-p3 .267 1 .667 / .118);--jade-a4: color(display-p3 .275 .996 .702 / .173);--jade-a5: color(display-p3 .361 1 .741 / .227);--jade-a6: color(display-p3 .439 1 .796 / .286);--jade-a7: color(display-p3 .49 1 .804 / .362);--jade-a8: color(display-p3 .506 1 .835 / .45);--jade-a9: color(display-p3 .478 .996 .816 / .606);--jade-a10: color(display-p3 .478 1 .816 / .656);--jade-a11: color(display-p3 .4 .835 .656);--jade-a12: color(display-p3 .734 .934 .838);--lime-1: color(display-p3 .067 .073 .048);--lime-2: color(display-p3 .086 .1 .067);--lime-3: color(display-p3 .13 .16 .099);--lime-4: color(display-p3 .172 .214 .126);--lime-5: color(display-p3 .213 .266 .153);--lime-6: color(display-p3 .257 .321 .182);--lime-7: color(display-p3 .307 .383 .215);--lime-8: color(display-p3 .365 .456 .25);--lime-9: color(display-p3 .78 .928 .466);--lime-10: color(display-p3 .865 .995 .519);--lime-11: color(display-p3 .771 .893 .485);--lime-12: color(display-p3 .905 .966 .753);--lime-a1: color(display-p3 .067 .941 0 / .009);--lime-a2: color(display-p3 .584 .996 .071 / .038);--lime-a3: color(display-p3 .69 1 .38 / .101);--lime-a4: color(display-p3 .729 1 .435 / .16);--lime-a5: color(display-p3 .745 1 .471 / .215);--lime-a6: color(display-p3 .769 1 .482 / .274);--lime-a7: color(display-p3 .769 1 .506 / .341);--lime-a8: color(display-p3 .784 1 .51 / .416);--lime-a9: color(display-p3 .839 1 .502 / .925);--lime-a10: color(display-p3 .871 1 .522 / .996);--lime-a11: color(display-p3 .771 .893 .485);--lime-a12: color(display-p3 .905 .966 .753);--mint-1: color(display-p3 .059 .082 .081);--mint-2: color(display-p3 .068 .104 .105);--mint-3: color(display-p3 .077 .17 .168);--mint-4: color(display-p3 .068 .224 .22);--mint-5: color(display-p3 .104 .275 .264);--mint-6: color(display-p3 .154 .332 .313);--mint-7: color(display-p3 .207 .403 .373);--mint-8: color(display-p3 .258 .49 .441);--mint-9: color(display-p3 .62 .908 .834);--mint-10: color(display-p3 .725 .954 .898);--mint-11: color(display-p3 .482 .825 .733);--mint-12: color(display-p3 .807 .955 .887);--mint-a1: color(display-p3 0 .992 .992 / .017);--mint-a2: color(display-p3 .071 .98 .98 / .043);--mint-a3: color(display-p3 .176 .996 .996 / .11);--mint-a4: color(display-p3 .071 .996 .973 / .169);--mint-a5: color(display-p3 .243 1 .949 / .223);--mint-a6: color(display-p3 .369 1 .933 / .286);--mint-a7: color(display-p3 .459 1 .914 / .362);--mint-a8: color(display-p3 .49 1 .89 / .454);--mint-a9: color(display-p3 .678 .996 .914 / .904);--mint-a10: color(display-p3 .761 1 .941 / .95);--mint-a11: color(display-p3 .482 .825 .733);--mint-a12: color(display-p3 .807 .955 .887);--orange-1: color(display-p3 .088 .07 .057);--orange-2: color(display-p3 .113 .089 .061);--orange-3: color(display-p3 .189 .12 .056);--orange-4: color(display-p3 .262 .132 0);--orange-5: color(display-p3 .315 .168 .016);--orange-6: color(display-p3 .376 .219 .088);--orange-7: color(display-p3 .465 .283 .147);--orange-8: color(display-p3 .601 .359 .201);--orange-9: color(display-p3 .9 .45 .2);--orange-10: color(display-p3 .98 .51 .23);--orange-11: color(display-p3 1 .63 .38);--orange-12: color(display-p3 .98 .883 .775);--orange-a1: color(display-p3 .961 .247 0 / .022);--orange-a2: color(display-p3 .992 .529 0 / .051);--orange-a3: color(display-p3 .996 .486 0 / .131);--orange-a4: color(display-p3 .996 .384 0 / .211);--orange-a5: color(display-p3 1 .455 0 / .265);--orange-a6: color(display-p3 1 .529 .129 / .332);--orange-a7: color(display-p3 1 .569 .251 / .429);--orange-a8: color(display-p3 1 .584 .302 / .572);--orange-a9: color(display-p3 1 .494 .216 / .895);--orange-a10: color(display-p3 1 .522 .235 / .979);--orange-a11: color(display-p3 1 .63 .38);--orange-a12: color(display-p3 .98 .883 .775);--pink-1: color(display-p3 .093 .068 .089);--pink-2: color(display-p3 .121 .073 .11);--pink-3: color(display-p3 .198 .098 .179);--pink-4: color(display-p3 .271 .095 .231);--pink-5: color(display-p3 .32 .127 .273);--pink-6: color(display-p3 .382 .177 .326);--pink-7: color(display-p3 .477 .238 .405);--pink-8: color(display-p3 .612 .304 .51);--pink-9: color(display-p3 .775 .297 .61);--pink-10: color(display-p3 .808 .356 .645);--pink-11: color(display-p3 1 .535 .78);--pink-12: color(display-p3 .964 .826 .912);--pink-a1: color(display-p3 .984 .071 .855 / .03);--pink-a2: color(display-p3 1 .2 .8 / .059);--pink-a3: color(display-p3 1 .294 .886 / .139);--pink-a4: color(display-p3 1 .192 .82 / .219);--pink-a5: color(display-p3 1 .282 .827 / .274);--pink-a6: color(display-p3 1 .396 .835 / .337);--pink-a7: color(display-p3 1 .459 .831 / .442);--pink-a8: color(display-p3 1 .478 .827 / .585);--pink-a9: color(display-p3 1 .373 .784 / .761);--pink-a10: color(display-p3 1 .435 .792 / .795);--pink-a11: color(display-p3 1 .535 .78);--pink-a12: color(display-p3 .964 .826 .912);--plum-1: color(display-p3 .09 .068 .092);--plum-2: color(display-p3 .118 .077 .121);--plum-3: color(display-p3 .192 .105 .202);--plum-4: color(display-p3 .25 .121 .271);--plum-5: color(display-p3 .293 .152 .319);--plum-6: color(display-p3 .343 .198 .372);--plum-7: color(display-p3 .424 .262 .461);--plum-8: color(display-p3 .54 .341 .595);--plum-9: color(display-p3 .624 .313 .708);--plum-10: color(display-p3 .666 .365 .748);--plum-11: color(display-p3 .86 .602 .933);--plum-12: color(display-p3 .936 .836 .949);--plum-a1: color(display-p3 .973 .071 .973 / .026);--plum-a2: color(display-p3 .933 .267 1 / .059);--plum-a3: color(display-p3 .918 .333 .996 / .148);--plum-a4: color(display-p3 .91 .318 1 / .219);--plum-a5: color(display-p3 .914 .388 1 / .269);--plum-a6: color(display-p3 .906 .463 1 / .328);--plum-a7: color(display-p3 .906 .529 1 / .425);--plum-a8: color(display-p3 .906 .553 1 / .568);--plum-a9: color(display-p3 .875 .427 1 / .69);--plum-a10: color(display-p3 .886 .471 .996 / .732);--plum-a11: color(display-p3 .86 .602 .933);--plum-a12: color(display-p3 .936 .836 .949);--purple-1: color(display-p3 .09 .068 .103);--purple-2: color(display-p3 .113 .082 .134);--purple-3: color(display-p3 .175 .112 .224);--purple-4: color(display-p3 .224 .137 .297);--purple-5: color(display-p3 .264 .167 .349);--purple-6: color(display-p3 .311 .208 .406);--purple-7: color(display-p3 .381 .266 .496);--purple-8: color(display-p3 .49 .349 .649);--purple-9: color(display-p3 .523 .318 .751);--purple-10: color(display-p3 .57 .373 .791);--purple-11: color(display-p3 .8 .62 1);--purple-12: color(display-p3 .913 .854 .971);--purple-a1: color(display-p3 .686 .071 .996 / .038);--purple-a2: color(display-p3 .722 .286 .996 / .072);--purple-a3: color(display-p3 .718 .349 .996 / .169);--purple-a4: color(display-p3 .702 .353 1 / .248);--purple-a5: color(display-p3 .718 .404 1 / .303);--purple-a6: color(display-p3 .733 .455 1 / .366);--purple-a7: color(display-p3 .753 .506 1 / .458);--purple-a8: color(display-p3 .749 .522 1 / .622);--purple-a9: color(display-p3 .686 .408 1 / .736);--purple-a10: color(display-p3 .71 .459 1 / .778);--purple-a11: color(display-p3 .8 .62 1);--purple-a12: color(display-p3 .913 .854 .971);--red-1: color(display-p3 .093 .068 .067);--red-2: color(display-p3 .118 .077 .079);--red-3: color(display-p3 .211 .081 .099);--red-4: color(display-p3 .287 .079 .113);--red-5: color(display-p3 .348 .11 .142);--red-6: color(display-p3 .414 .16 .183);--red-7: color(display-p3 .508 .224 .236);--red-8: color(display-p3 .659 .298 .297);--red-9: color(display-p3 .83 .329 .324);--red-10: color(display-p3 .861 .403 .387);--red-11: color(display-p3 1 .57 .55);--red-12: color(display-p3 .971 .826 .852);--red-a1: color(display-p3 .984 .071 .071 / .03);--red-a2: color(display-p3 .996 .282 .282 / .055);--red-a3: color(display-p3 1 .169 .271 / .156);--red-a4: color(display-p3 1 .118 .267 / .236);--red-a5: color(display-p3 1 .212 .314 / .303);--red-a6: color(display-p3 1 .318 .38 / .374);--red-a7: color(display-p3 1 .4 .424 / .475);--red-a8: color(display-p3 1 .431 .431 / .635);--red-a9: color(display-p3 1 .388 .384 / .82);--red-a10: color(display-p3 1 .463 .447 / .853);--red-a11: color(display-p3 1 .57 .55);--red-a12: color(display-p3 .971 .826 .852);--ruby-1: color(display-p3 .093 .068 .074);--ruby-2: color(display-p3 .113 .083 .089);--ruby-3: color(display-p3 .208 .088 .117);--ruby-4: color(display-p3 .279 .092 .147);--ruby-5: color(display-p3 .337 .12 .18);--ruby-6: color(display-p3 .401 .166 .223);--ruby-7: color(display-p3 .495 .224 .281);--ruby-8: color(display-p3 .652 .295 .359);--ruby-9: color(display-p3 .83 .323 .408);--ruby-10: color(display-p3 .857 .392 .455);--ruby-11: color(display-p3 1 .57 .59);--ruby-12: color(display-p3 .968 .83 .88);--ruby-a1: color(display-p3 .984 .071 .329 / .03);--ruby-a2: color(display-p3 .992 .376 .529 / .051);--ruby-a3: color(display-p3 .996 .196 .404 / .152);--ruby-a4: color(display-p3 1 .173 .416 / .227);--ruby-a5: color(display-p3 1 .259 .459 / .29);--ruby-a6: color(display-p3 1 .341 .506 / .358);--ruby-a7: color(display-p3 1 .412 .541 / .458);--ruby-a8: color(display-p3 1 .431 .537 / .627);--ruby-a9: color(display-p3 1 .376 .482 / .82);--ruby-a10: color(display-p3 1 .447 .522 / .849);--ruby-a11: color(display-p3 1 .57 .59);--ruby-a12: color(display-p3 .968 .83 .88);--sky-1: color(display-p3 .056 .078 .116);--sky-2: color(display-p3 .075 .101 .149);--sky-3: color(display-p3 .089 .154 .244);--sky-4: color(display-p3 .106 .207 .323);--sky-5: color(display-p3 .135 .261 .394);--sky-6: color(display-p3 .17 .322 .469);--sky-7: color(display-p3 .205 .394 .557);--sky-8: color(display-p3 .232 .48 .665);--sky-9: color(display-p3 .585 .877 .983);--sky-10: color(display-p3 .718 .925 .991);--sky-11: color(display-p3 .536 .772 .924);--sky-12: color(display-p3 .799 .947 .993);--sky-a1: color(display-p3 0 .282 .996 / .055);--sky-a2: color(display-p3 .157 .467 .992 / .089);--sky-a3: color(display-p3 .192 .522 .996 / .19);--sky-a4: color(display-p3 .212 .584 1 / .274);--sky-a5: color(display-p3 .259 .631 1 / .349);--sky-a6: color(display-p3 .302 .655 1 / .433);--sky-a7: color(display-p3 .329 .686 1 / .526);--sky-a8: color(display-p3 .325 .71 1 / .643);--sky-a9: color(display-p3 .592 .894 1 / .984);--sky-a10: color(display-p3 .722 .933 1 / .992);--sky-a11: color(display-p3 .536 .772 .924);--sky-a12: color(display-p3 .799 .947 .993);--teal-1: color(display-p3 .059 .083 .079);--teal-2: color(display-p3 .075 .11 .107);--teal-3: color(display-p3 .087 .175 .165);--teal-4: color(display-p3 .087 .227 .214);--teal-5: color(display-p3 .12 .277 .261);--teal-6: color(display-p3 .162 .335 .314);--teal-7: color(display-p3 .205 .406 .379);--teal-8: color(display-p3 .245 .489 .453);--teal-9: color(display-p3 .297 .637 .581);--teal-10: color(display-p3 .319 .69 .62);--teal-11: color(display-p3 .388 .835 .719);--teal-12: color(display-p3 .734 .934 .87);--teal-a1: color(display-p3 0 .992 .761 / .017);--teal-a2: color(display-p3 .235 .988 .902 / .047);--teal-a3: color(display-p3 .235 1 .898 / .118);--teal-a4: color(display-p3 .18 .996 .929 / .173);--teal-a5: color(display-p3 .31 1 .933 / .227);--teal-a6: color(display-p3 .396 1 .933 / .286);--teal-a7: color(display-p3 .443 1 .925 / .366);--teal-a8: color(display-p3 .459 1 .925 / .454);--teal-a9: color(display-p3 .443 .996 .906 / .61);--teal-a10: color(display-p3 .439 .996 .89 / .669);--teal-a11: color(display-p3 .388 .835 .719);--teal-a12: color(display-p3 .734 .934 .87);--tomato-1: color(display-p3 .09 .068 .067);--tomato-2: color(display-p3 .115 .084 .076);--tomato-3: color(display-p3 .205 .097 .083);--tomato-4: color(display-p3 .282 .099 .077);--tomato-5: color(display-p3 .339 .129 .101);--tomato-6: color(display-p3 .398 .179 .141);--tomato-7: color(display-p3 .487 .245 .194);--tomato-8: color(display-p3 .629 .322 .248);--tomato-9: color(display-p3 .831 .345 .231);--tomato-10: color(display-p3 .862 .415 .298);--tomato-11: color(display-p3 1 .585 .455);--tomato-12: color(display-p3 .959 .833 .802);--tomato-a1: color(display-p3 .973 .071 .071 / .026);--tomato-a2: color(display-p3 .992 .376 .224 / .051);--tomato-a3: color(display-p3 .996 .282 .176 / .148);--tomato-a4: color(display-p3 1 .204 .118 / .232);--tomato-a5: color(display-p3 1 .286 .192 / .29);--tomato-a6: color(display-p3 1 .392 .278 / .353);--tomato-a7: color(display-p3 1 .459 .349 / .45);--tomato-a8: color(display-p3 1 .49 .369 / .601);--tomato-a9: color(display-p3 1 .408 .267 / .82);--tomato-a10: color(display-p3 1 .478 .341 / .853);--tomato-a11: color(display-p3 1 .585 .455);--tomato-a12: color(display-p3 .959 .833 .802);--violet-1: color(display-p3 .077 .071 .118);--violet-2: color(display-p3 .101 .084 .141);--violet-3: color(display-p3 .154 .123 .256);--violet-4: color(display-p3 .191 .148 .345);--violet-5: color(display-p3 .226 .182 .396);--violet-6: color(display-p3 .269 .223 .449);--violet-7: color(display-p3 .326 .277 .53);--violet-8: color(display-p3 .399 .346 .656);--violet-9: color(display-p3 .417 .341 .784);--violet-10: color(display-p3 .477 .402 .823);--violet-11: color(display-p3 .72 .65 1);--violet-12: color(display-p3 .883 .867 .986);--violet-a1: color(display-p3 .282 .141 .996 / .055);--violet-a2: color(display-p3 .51 .263 1 / .08);--violet-a3: color(display-p3 .494 .337 .996 / .202);--violet-a4: color(display-p3 .49 .345 1 / .299);--violet-a5: color(display-p3 .525 .392 1 / .353);--violet-a6: color(display-p3 .569 .455 1 / .408);--violet-a7: color(display-p3 .588 .494 1 / .496);--violet-a8: color(display-p3 .596 .51 1 / .631);--violet-a9: color(display-p3 .522 .424 1 / .769);--violet-a10: color(display-p3 .576 .482 1 / .811);--violet-a11: color(display-p3 .72 .65 1);--violet-a12: color(display-p3 .883 .867 .986);--yellow-1: color(display-p3 .078 .069 .047);--yellow-2: color(display-p3 .103 .094 .063);--yellow-3: color(display-p3 .168 .137 .039);--yellow-4: color(display-p3 .209 .169 0);--yellow-5: color(display-p3 .255 .209 0);--yellow-6: color(display-p3 .31 .261 .07);--yellow-7: color(display-p3 .389 .331 .135);--yellow-8: color(display-p3 .497 .42 .182);--yellow-9: color(display-p3 1 .92 .22);--yellow-10: color(display-p3 1 1 .456);--yellow-11: color(display-p3 .948 .885 .392);--yellow-12: color(display-p3 .959 .934 .731);--yellow-a1: color(display-p3 .973 .369 0 / .013);--yellow-a2: color(display-p3 .996 .792 0 / .038);--yellow-a3: color(display-p3 .996 .71 0 / .11);--yellow-a4: color(display-p3 .996 .741 0 / .152);--yellow-a5: color(display-p3 .996 .765 0 / .202);--yellow-a6: color(display-p3 .996 .816 .082 / .261);--yellow-a7: color(display-p3 1 .831 .263 / .345);--yellow-a8: color(display-p3 1 .831 .314 / .463);--yellow-a9: color(display-p3 1 .922 .22);--yellow-a10: color(display-p3 1 1 .455);--yellow-a11: color(display-p3 .948 .885 .392);--yellow-a12: color(display-p3 .959 .934 .731);--gray-surface: color(display-p3 .1255 .1255 .1255 / .5);--mauve-surface: color(display-p3 .1333 .1255 .1333 / .5);--slate-surface: color(display-p3 .1176 .1255 .1333 / .5);--sage-surface: color(display-p3 .1176 .1255 .1176 / .5);--olive-surface: color(display-p3 .1176 .1255 .1176 / .5);--sand-surface: color(display-p3 .1255 .1255 .1255 / .5);--amber-surface: color(display-p3 .1412 .1176 .0784 / .5);--blue-surface: color(display-p3 .0706 .1255 .2196 / .5);--bronze-surface: color(display-p3 .1412 .1255 .1176 / .5);--brown-surface: color(display-p3 .1412 .1176 .102 / .5);--crimson-surface: color(display-p3 .1647 .0863 .1176 / .5);--cyan-surface: color(display-p3 .0784 .1412 .1725 / .5);--gold-surface: color(display-p3 .1412 .1333 .1098 / .5);--grass-surface: color(display-p3 .102 .1333 .102 / .5);--green-surface: color(display-p3 .0941 .1412 .1098 / .5);--indigo-surface: color(display-p3 .0941 .1098 .2196 / .5);--iris-surface: color(display-p3 .1098 .102 .2118 / .5);--jade-surface: color(display-p3 .0863 .149 .1176 / .5);--lime-surface: color(display-p3 .1098 .1255 .0784 / .5);--mint-surface: color(display-p3 .0941 .149 .1412 / .5);--orange-surface: color(display-p3 .1412 .1098 .0706 / .5);--pink-surface: color(display-p3 .1725 .0784 .149 / .5);--plum-surface: color(display-p3 .1647 .0863 .1725 / .5);--purple-surface: color(display-p3 .149 .0941 .1961 / .5);--red-surface: color(display-p3 .1647 .0863 .0863 / .5);--ruby-surface: color(display-p3 .1569 .0941 .1098 / .5);--sky-surface: color(display-p3 .0863 .1333 .2196 / .5);--teal-surface: color(display-p3 .0863 .149 .1412 / .5);--tomato-surface: color(display-p3 .1569 .0941 .0784 / .5);--violet-surface: color(display-p3 .1333 .102 .2118 / .5);--yellow-surface: color(display-p3 .1333 .1176 .0706 / .5)}}}:root{--gray-contrast: white;--mauve-contrast: white;--slate-contrast: white;--sage-contrast: white;--olive-contrast: white;--sand-contrast: white;--amber-contrast: #21201c;--blue-contrast: white;--bronze-contrast: white;--brown-contrast: white;--crimson-contrast: white;--cyan-contrast: white;--gold-contrast: white;--grass-contrast: white;--green-contrast: white;--indigo-contrast: white;--iris-contrast: white;--jade-contrast: white;--lime-contrast: #1d211c;--mint-contrast: #1a211e;--orange-contrast: white;--pink-contrast: white;--plum-contrast: white;--purple-contrast: white;--red-contrast: white;--ruby-contrast: white;--sky-contrast: #1c2024;--teal-contrast: white;--tomato-contrast: white;--violet-contrast: white;--yellow-contrast: #21201c;--black-a1: rgba(0, 0, 0, .05);--black-a2: rgba(0, 0, 0, .1);--black-a3: rgba(0, 0, 0, .15);--black-a4: rgba(0, 0, 0, .2);--black-a5: rgba(0, 0, 0, .3);--black-a6: rgba(0, 0, 0, .4);--black-a7: rgba(0, 0, 0, .5);--black-a8: rgba(0, 0, 0, .6);--black-a9: rgba(0, 0, 0, .7);--black-a10: rgba(0, 0, 0, .8);--black-a11: rgba(0, 0, 0, .9);--black-a12: rgba(0, 0, 0, .95);--white-a1: rgba(255, 255, 255, .05);--white-a2: rgba(255, 255, 255, .1);--white-a3: rgba(255, 255, 255, .15);--white-a4: rgba(255, 255, 255, .2);--white-a5: rgba(255, 255, 255, .3);--white-a6: rgba(255, 255, 255, .4);--white-a7: rgba(255, 255, 255, .5);--white-a8: rgba(255, 255, 255, .6);--white-a9: rgba(255, 255, 255, .7);--white-a10: rgba(255, 255, 255, .8);--white-a11: rgba(255, 255, 255, .9);--white-a12: rgba(255, 255, 255, .95)}@supports (color: color-mix(in oklab,white,black)){.dark,.dark-theme{--amber-track: color-mix(in oklab, var(--amber-8), var(--amber-9) 75%);--lime-track: color-mix(in oklab, var(--lime-8), var(--lime-9) 65%);--mint-track: color-mix(in oklab, var(--mint-8), var(--mint-9) 65%);--sky-track: color-mix(in oklab, var(--sky-8), var(--sky-9) 65%);--yellow-track: color-mix(in oklab, var(--yellow-8), var(--yellow-9) 65%)}}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){:root{--black-a1: color(display-p3 0 0 0 / .05);--black-a2: color(display-p3 0 0 0 / .1);--black-a3: color(display-p3 0 0 0 / .15);--black-a4: color(display-p3 0 0 0 / .2);--black-a5: color(display-p3 0 0 0 / .3);--black-a6: color(display-p3 0 0 0 / .4);--black-a7: color(display-p3 0 0 0 / .5);--black-a8: color(display-p3 0 0 0 / .6);--black-a9: color(display-p3 0 0 0 / .7);--black-a10: color(display-p3 0 0 0 / .8);--black-a11: color(display-p3 0 0 0 / .9);--black-a12: color(display-p3 0 0 0 / .95);--white-a1: color(display-p3 1 1 1 / .05);--white-a2: color(display-p3 1 1 1 / .1);--white-a3: color(display-p3 1 1 1 / .15);--white-a4: color(display-p3 1 1 1 / .2);--white-a5: color(display-p3 1 1 1 / .3);--white-a6: color(display-p3 1 1 1 / .4);--white-a7: color(display-p3 1 1 1 / .5);--white-a8: color(display-p3 1 1 1 / .6);--white-a9: color(display-p3 1 1 1 / .7);--white-a10: color(display-p3 1 1 1 / .8);--white-a11: color(display-p3 1 1 1 / .9);--white-a12: color(display-p3 1 1 1 / .95)}}}:where(.radix-themes){--color-background: white;--color-overlay: var(--black-a6);--color-panel-solid: white;--color-panel-translucent: rgba(255, 255, 255, .7);--color-surface: rgba(255, 255, 255, .85);--color-transparent: rgb(0 0 0 / 0);--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px var(--gray-a3), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px var(--gray-a3), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px var(--gray-a3), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px var(--gray-a3), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-button-classic-after-inset: 2px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--gray-a4), inset 0 -2px 1px var(--gray-a3);--base-button-classic-box-shadow-bottom: inset 0 4px 2px -2px var(--white-a9), inset 0 2px 1px -1px var(--white-a9);--base-button-classic-disabled-box-shadow: var(--base-button-classic-box-shadow-top), var(--base-button-classic-box-shadow-bottom);--base-button-classic-active-filter: brightness(.92) saturate(1.1);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-classic-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--base-button-solid-active-filter: brightness(.92) saturate(1.1);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.1) brightness(1.1);--base-button-solid-high-contrast-active-filter: contrast(.82) saturate(1.2) brightness(1.16);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a2), inset 0 .05em var(--white-a12), inset 0 .25em .5em var(--gray-a2), inset 0 -.05em var(--gray-a6), 0 0 0 .05em var(--gray-a5), 0 .08em .17em var(--gray-a7);--progress-indicator-after-linear-gradient: var(--white-a5), var(--white-a9), var(--white-a5);--segmented-control-indicator-background-color: var(--color-background);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 2px 1px var(--white-a11), inset 0 -2px 1px var(--gray-a4) ;--slider-range-high-contrast-background-image: linear-gradient(var(--black-a8), var(--black-a8));--slider-disabled-blend-mode: multiply;--switch-disabled-blend-mode: multiply;--switch-high-contrast-checked-color-overlay: var(--black-a8);--switch-high-contrast-checked-active-before-filter: contrast(.82) saturate(1.2) brightness(1.16);--switch-surface-checked-active-filter: brightness(.92) saturate(1.1);--base-card-surface-box-shadow: 0 0 0 1px var(--gray-a5);--base-card-surface-hover-box-shadow: 0 0 0 1px var(--gray-a7);--base-card-surface-active-box-shadow: 0 0 0 1px var(--gray-a6);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a2), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 1px 1px 1px var(--black-a1), 0 2px 1px -1px var(--gray-a3), 0 2px 3px -2px var(--black-a1), 0 3px 12px -4px var(--gray-a3), 0 4px 16px -8px var(--black-a1);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 1px 1px 0 var(--black-a1), 0 2px 1px -2px var(--gray-a3), 0 2px 3px -3px var(--black-a1), 0 3px 12px -5px var(--gray-a3), 0 4px 16px -9px var(--black-a1);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a4), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a1), 0 1px 1px -1px var(--gray-a4), 0 2px 1px -2px var(--black-a1), 0 1px 3px -1px var(--black-a1);--base-card-classic-border-color: var(--gray-a3);--base-card-classic-hover-border-color: var(--gray-a3);--base-card-classic-active-border-color: var(--gray-a4)}:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--color-background: var(--gray-1);--color-overlay: var(--black-a8);--color-panel-solid: var(--gray-2);--color-panel-translucent: var(--gray-a2);--color-surface: rgba(0, 0, 0, .25);--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px var(--gray-a6), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px var(--gray-a6), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px var(--gray-a6), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px var(--gray-a6), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-button-classic-after-inset: 1px;--base-button-classic-box-shadow-top: inset 0 0 0 1px var(--white-a2), inset 0 4px 2px -2px var(--white-a3), inset 0 1px 1px var(--white-a6), inset 0 -1px 1px var(--black-a6);--base-button-classic-box-shadow-bottom: 0 0 transparent;--base-button-classic-disabled-box-shadow: inset 0 0 0 1px var(--gray-a5), inset 0 4px 2px -2px var(--gray-a2), inset 0 1px 1px var(--gray-a5), inset 0 -1px 1px var(--black-a3), inset 0 0 0 1px var(--gray-a2);--base-button-classic-active-filter: brightness(1.08);--base-button-classic-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.14);--base-button-classic-high-contrast-active-filter: brightness(.95) saturate(1.2);--base-button-solid-active-filter: brightness(1.08);--base-button-solid-high-contrast-hover-filter: contrast(.88) saturate(1.3) brightness(1.18);--base-button-solid-high-contrast-active-filter: brightness(.95) saturate(1.2);--kbd-box-shadow: inset 0 -.05em .5em var(--gray-a3), inset 0 .05em var(--gray-a11), inset 0 .25em .5em var(--gray-a2), inset 0 -.1em var(--black-a11), 0 0 0 .075em var(--gray-a7), 0 .08em .17em var(--black-a12);--progress-indicator-after-linear-gradient: var(--white-a3), var(--white-a6), var(--white-a3);--segmented-control-indicator-background-color: var(--gray-a3);--select-trigger-classic-box-shadow: inset 0 0 0 1px var(--white-a4), inset 0 1px 1px var(--white-a4), inset 0 -1px 1px var(--black-a9) ;--slider-range-high-contrast-background-image: none;--slider-disabled-blend-mode: screen;--switch-disabled-blend-mode: screen;--switch-high-contrast-checked-color-overlay: transparent;--switch-high-contrast-checked-active-before-filter: brightness(1.08);--switch-surface-checked-active-filter: brightness(1.08);--base-card-classic-box-shadow-inner: 0 0 0 1px var(--base-card-classic-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-box-shadow-outer: 0 0 0 0 var(--base-card-classic-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-hover-box-shadow-inner: 0 0 0 1px var(--base-card-classic-hover-border-color), 0 0 1px 1px var(--gray-a4), 0 0 1px -1px var(--gray-a4), 0 0 3px -2px var(--gray-a3), 0 0 12px -2px var(--gray-a3), 0 0 16px -8px var(--gray-a7);--base-card-classic-hover-box-shadow-outer: 0 0 0 0 var(--base-card-classic-hover-border-color), 0 0 1px 0 var(--gray-a4), 0 0 1px -2px var(--gray-a4), 0 0 3px -3px var(--gray-a3), 0 0 12px -3px var(--gray-a3), 0 0 16px -9px var(--gray-a7);--base-card-classic-active-box-shadow-inner: 0 0 0 1px var(--base-card-classic-active-border-color), 0 0 0 1px var(--color-transparent), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--base-card-classic-active-box-shadow-outer: 0 0 0 0 var(--base-card-classic-active-border-color), 0 0 0 0 var(--color-transparent), 0 0 0 0 var(--black-a3), 0 1px 1px -1px var(--black-a6), 0 2px 1px -2px var(--black-a6), 0 1px 3px -1px var(--black-a5);--base-card-classic-border-color: var(--gray-a6);--base-card-classic-hover-border-color: var(--gray-a6);--base-card-classic-active-border-color: var(--gray-a6)}@supports (color: color(display-p3 1 1 1)){@media (color-gamut: p3){.radix-themes{--color-transparent: color(display-p3 0 0 0 / 0)}}}.radix-themes:where(.light,.light-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.light,.light-theme))){color-scheme:light}.radix-themes:where(.dark,.dark-theme),:root:where(:has(.radix-themes[data-is-root-theme=true]:where(.dark,.dark-theme))){color-scheme:dark}.radix-themes,[data-accent-color]:where(:not([data-accent-color=""],[data-accent-color=gray])){--focus-1: var(--accent-1);--focus-2: var(--accent-2);--focus-3: var(--accent-3);--focus-4: var(--accent-4);--focus-5: var(--accent-5);--focus-6: var(--accent-6);--focus-7: var(--accent-7);--focus-8: var(--accent-8);--focus-9: var(--accent-9);--focus-10: var(--accent-10);--focus-11: var(--accent-11);--focus-12: var(--accent-12);--focus-a1: var(--accent-a1);--focus-a2: var(--accent-a2);--focus-a3: var(--accent-a3);--focus-a4: var(--accent-a4);--focus-a5: var(--accent-a5);--focus-a6: var(--accent-a6);--focus-a7: var(--accent-a7);--focus-a8: var(--accent-a8);--focus-a9: var(--accent-a9);--focus-a10: var(--accent-a10);--focus-a11: var(--accent-a11);--focus-a12: var(--accent-a12)}.radix-themes ::selection{background-color:var(--focus-a5)}.radix-themes:where([data-has-background=true]){background-color:var(--color-background)}.radix-themes:where([data-panel-background=solid]){--color-panel: var(--color-panel-solid);--backdrop-filter-panel: none}.radix-themes:where([data-panel-background=translucent]){--color-panel: var(--color-panel-translucent);--backdrop-filter-panel: blur(64px)}[data-accent-color=amber]{--accent-1: var(--amber-1);--accent-2: var(--amber-2);--accent-3: var(--amber-3);--accent-4: var(--amber-4);--accent-5: var(--amber-5);--accent-6: var(--amber-6);--accent-7: var(--amber-7);--accent-8: var(--amber-8);--accent-9: var(--amber-9);--accent-10: var(--amber-10);--accent-11: var(--amber-11);--accent-12: var(--amber-12);--accent-a1: var(--amber-a1);--accent-a2: var(--amber-a2);--accent-a3: var(--amber-a3);--accent-a4: var(--amber-a4);--accent-a5: var(--amber-a5);--accent-a6: var(--amber-a6);--accent-a7: var(--amber-a7);--accent-a8: var(--amber-a8);--accent-a9: var(--amber-a9);--accent-a10: var(--amber-a10);--accent-a11: var(--amber-a11);--accent-a12: var(--amber-a12);--accent-contrast: var(--amber-contrast);--accent-surface: var(--amber-surface);--accent-indicator: var(--amber-indicator);--accent-track: var(--amber-track)}[data-accent-color=blue]{--accent-1: var(--blue-1);--accent-2: var(--blue-2);--accent-3: var(--blue-3);--accent-4: var(--blue-4);--accent-5: var(--blue-5);--accent-6: var(--blue-6);--accent-7: var(--blue-7);--accent-8: var(--blue-8);--accent-9: var(--blue-9);--accent-10: var(--blue-10);--accent-11: var(--blue-11);--accent-12: var(--blue-12);--accent-a1: var(--blue-a1);--accent-a2: var(--blue-a2);--accent-a3: var(--blue-a3);--accent-a4: var(--blue-a4);--accent-a5: var(--blue-a5);--accent-a6: var(--blue-a6);--accent-a7: var(--blue-a7);--accent-a8: var(--blue-a8);--accent-a9: var(--blue-a9);--accent-a10: var(--blue-a10);--accent-a11: var(--blue-a11);--accent-a12: var(--blue-a12);--accent-contrast: var(--blue-contrast);--accent-surface: var(--blue-surface);--accent-indicator: var(--blue-indicator);--accent-track: var(--blue-track)}[data-accent-color=bronze]{--accent-1: var(--bronze-1);--accent-2: var(--bronze-2);--accent-3: var(--bronze-3);--accent-4: var(--bronze-4);--accent-5: var(--bronze-5);--accent-6: var(--bronze-6);--accent-7: var(--bronze-7);--accent-8: var(--bronze-8);--accent-9: var(--bronze-9);--accent-10: var(--bronze-10);--accent-11: var(--bronze-11);--accent-12: var(--bronze-12);--accent-a1: var(--bronze-a1);--accent-a2: var(--bronze-a2);--accent-a3: var(--bronze-a3);--accent-a4: var(--bronze-a4);--accent-a5: var(--bronze-a5);--accent-a6: var(--bronze-a6);--accent-a7: var(--bronze-a7);--accent-a8: var(--bronze-a8);--accent-a9: var(--bronze-a9);--accent-a10: var(--bronze-a10);--accent-a11: var(--bronze-a11);--accent-a12: var(--bronze-a12);--accent-contrast: var(--bronze-contrast);--accent-surface: var(--bronze-surface);--accent-indicator: var(--bronze-indicator);--accent-track: var(--bronze-track)}[data-accent-color=brown]{--accent-1: var(--brown-1);--accent-2: var(--brown-2);--accent-3: var(--brown-3);--accent-4: var(--brown-4);--accent-5: var(--brown-5);--accent-6: var(--brown-6);--accent-7: var(--brown-7);--accent-8: var(--brown-8);--accent-9: var(--brown-9);--accent-10: var(--brown-10);--accent-11: var(--brown-11);--accent-12: var(--brown-12);--accent-a1: var(--brown-a1);--accent-a2: var(--brown-a2);--accent-a3: var(--brown-a3);--accent-a4: var(--brown-a4);--accent-a5: var(--brown-a5);--accent-a6: var(--brown-a6);--accent-a7: var(--brown-a7);--accent-a8: var(--brown-a8);--accent-a9: var(--brown-a9);--accent-a10: var(--brown-a10);--accent-a11: var(--brown-a11);--accent-a12: var(--brown-a12);--accent-contrast: var(--brown-contrast);--accent-surface: var(--brown-surface);--accent-indicator: var(--brown-indicator);--accent-track: var(--brown-track)}[data-accent-color=crimson]{--accent-1: var(--crimson-1);--accent-2: var(--crimson-2);--accent-3: var(--crimson-3);--accent-4: var(--crimson-4);--accent-5: var(--crimson-5);--accent-6: var(--crimson-6);--accent-7: var(--crimson-7);--accent-8: var(--crimson-8);--accent-9: var(--crimson-9);--accent-10: var(--crimson-10);--accent-11: var(--crimson-11);--accent-12: var(--crimson-12);--accent-a1: var(--crimson-a1);--accent-a2: var(--crimson-a2);--accent-a3: var(--crimson-a3);--accent-a4: var(--crimson-a4);--accent-a5: var(--crimson-a5);--accent-a6: var(--crimson-a6);--accent-a7: var(--crimson-a7);--accent-a8: var(--crimson-a8);--accent-a9: var(--crimson-a9);--accent-a10: var(--crimson-a10);--accent-a11: var(--crimson-a11);--accent-a12: var(--crimson-a12);--accent-contrast: var(--crimson-contrast);--accent-surface: var(--crimson-surface);--accent-indicator: var(--crimson-indicator);--accent-track: var(--crimson-track)}[data-accent-color=cyan]{--accent-1: var(--cyan-1);--accent-2: var(--cyan-2);--accent-3: var(--cyan-3);--accent-4: var(--cyan-4);--accent-5: var(--cyan-5);--accent-6: var(--cyan-6);--accent-7: var(--cyan-7);--accent-8: var(--cyan-8);--accent-9: var(--cyan-9);--accent-10: var(--cyan-10);--accent-11: var(--cyan-11);--accent-12: var(--cyan-12);--accent-a1: var(--cyan-a1);--accent-a2: var(--cyan-a2);--accent-a3: var(--cyan-a3);--accent-a4: var(--cyan-a4);--accent-a5: var(--cyan-a5);--accent-a6: var(--cyan-a6);--accent-a7: var(--cyan-a7);--accent-a8: var(--cyan-a8);--accent-a9: var(--cyan-a9);--accent-a10: var(--cyan-a10);--accent-a11: var(--cyan-a11);--accent-a12: var(--cyan-a12);--accent-contrast: var(--cyan-contrast);--accent-surface: var(--cyan-surface);--accent-indicator: var(--cyan-indicator);--accent-track: var(--cyan-track)}[data-accent-color=gold]{--accent-1: var(--gold-1);--accent-2: var(--gold-2);--accent-3: var(--gold-3);--accent-4: var(--gold-4);--accent-5: var(--gold-5);--accent-6: var(--gold-6);--accent-7: var(--gold-7);--accent-8: var(--gold-8);--accent-9: var(--gold-9);--accent-10: var(--gold-10);--accent-11: var(--gold-11);--accent-12: var(--gold-12);--accent-a1: var(--gold-a1);--accent-a2: var(--gold-a2);--accent-a3: var(--gold-a3);--accent-a4: var(--gold-a4);--accent-a5: var(--gold-a5);--accent-a6: var(--gold-a6);--accent-a7: var(--gold-a7);--accent-a8: var(--gold-a8);--accent-a9: var(--gold-a9);--accent-a10: var(--gold-a10);--accent-a11: var(--gold-a11);--accent-a12: var(--gold-a12);--accent-contrast: var(--gold-contrast);--accent-surface: var(--gold-surface);--accent-indicator: var(--gold-indicator);--accent-track: var(--gold-track)}[data-accent-color=grass]{--accent-1: var(--grass-1);--accent-2: var(--grass-2);--accent-3: var(--grass-3);--accent-4: var(--grass-4);--accent-5: var(--grass-5);--accent-6: var(--grass-6);--accent-7: var(--grass-7);--accent-8: var(--grass-8);--accent-9: var(--grass-9);--accent-10: var(--grass-10);--accent-11: var(--grass-11);--accent-12: var(--grass-12);--accent-a1: var(--grass-a1);--accent-a2: var(--grass-a2);--accent-a3: var(--grass-a3);--accent-a4: var(--grass-a4);--accent-a5: var(--grass-a5);--accent-a6: var(--grass-a6);--accent-a7: var(--grass-a7);--accent-a8: var(--grass-a8);--accent-a9: var(--grass-a9);--accent-a10: var(--grass-a10);--accent-a11: var(--grass-a11);--accent-a12: var(--grass-a12);--accent-contrast: var(--grass-contrast);--accent-surface: var(--grass-surface);--accent-indicator: var(--grass-indicator);--accent-track: var(--grass-track)}[data-accent-color=gray]{--accent-1: var(--gray-1);--accent-2: var(--gray-2);--accent-3: var(--gray-3);--accent-4: var(--gray-4);--accent-5: var(--gray-5);--accent-6: var(--gray-6);--accent-7: var(--gray-7);--accent-8: var(--gray-8);--accent-9: var(--gray-9);--accent-10: var(--gray-10);--accent-11: var(--gray-11);--accent-12: var(--gray-12);--accent-a1: var(--gray-a1);--accent-a2: var(--gray-a2);--accent-a3: var(--gray-a3);--accent-a4: var(--gray-a4);--accent-a5: var(--gray-a5);--accent-a6: var(--gray-a6);--accent-a7: var(--gray-a7);--accent-a8: var(--gray-a8);--accent-a9: var(--gray-a9);--accent-a10: var(--gray-a10);--accent-a11: var(--gray-a11);--accent-a12: var(--gray-a12);--accent-contrast: var(--gray-contrast);--accent-surface: var(--gray-surface);--accent-indicator: var(--gray-indicator);--accent-track: var(--gray-track)}[data-accent-color=green]{--accent-1: var(--green-1);--accent-2: var(--green-2);--accent-3: var(--green-3);--accent-4: var(--green-4);--accent-5: var(--green-5);--accent-6: var(--green-6);--accent-7: var(--green-7);--accent-8: var(--green-8);--accent-9: var(--green-9);--accent-10: var(--green-10);--accent-11: var(--green-11);--accent-12: var(--green-12);--accent-a1: var(--green-a1);--accent-a2: var(--green-a2);--accent-a3: var(--green-a3);--accent-a4: var(--green-a4);--accent-a5: var(--green-a5);--accent-a6: var(--green-a6);--accent-a7: var(--green-a7);--accent-a8: var(--green-a8);--accent-a9: var(--green-a9);--accent-a10: var(--green-a10);--accent-a11: var(--green-a11);--accent-a12: var(--green-a12);--accent-contrast: var(--green-contrast);--accent-surface: var(--green-surface);--accent-indicator: var(--green-indicator);--accent-track: var(--green-track)}[data-accent-color=indigo]{--accent-1: var(--indigo-1);--accent-2: var(--indigo-2);--accent-3: var(--indigo-3);--accent-4: var(--indigo-4);--accent-5: var(--indigo-5);--accent-6: var(--indigo-6);--accent-7: var(--indigo-7);--accent-8: var(--indigo-8);--accent-9: var(--indigo-9);--accent-10: var(--indigo-10);--accent-11: var(--indigo-11);--accent-12: var(--indigo-12);--accent-a1: var(--indigo-a1);--accent-a2: var(--indigo-a2);--accent-a3: var(--indigo-a3);--accent-a4: var(--indigo-a4);--accent-a5: var(--indigo-a5);--accent-a6: var(--indigo-a6);--accent-a7: var(--indigo-a7);--accent-a8: var(--indigo-a8);--accent-a9: var(--indigo-a9);--accent-a10: var(--indigo-a10);--accent-a11: var(--indigo-a11);--accent-a12: var(--indigo-a12);--accent-contrast: var(--indigo-contrast);--accent-surface: var(--indigo-surface);--accent-indicator: var(--indigo-indicator);--accent-track: var(--indigo-track)}[data-accent-color=iris]{--accent-1: var(--iris-1);--accent-2: var(--iris-2);--accent-3: var(--iris-3);--accent-4: var(--iris-4);--accent-5: var(--iris-5);--accent-6: var(--iris-6);--accent-7: var(--iris-7);--accent-8: var(--iris-8);--accent-9: var(--iris-9);--accent-10: var(--iris-10);--accent-11: var(--iris-11);--accent-12: var(--iris-12);--accent-a1: var(--iris-a1);--accent-a2: var(--iris-a2);--accent-a3: var(--iris-a3);--accent-a4: var(--iris-a4);--accent-a5: var(--iris-a5);--accent-a6: var(--iris-a6);--accent-a7: var(--iris-a7);--accent-a8: var(--iris-a8);--accent-a9: var(--iris-a9);--accent-a10: var(--iris-a10);--accent-a11: var(--iris-a11);--accent-a12: var(--iris-a12);--accent-contrast: var(--iris-contrast);--accent-surface: var(--iris-surface);--accent-indicator: var(--iris-indicator);--accent-track: var(--iris-track)}[data-accent-color=jade]{--accent-1: var(--jade-1);--accent-2: var(--jade-2);--accent-3: var(--jade-3);--accent-4: var(--jade-4);--accent-5: var(--jade-5);--accent-6: var(--jade-6);--accent-7: var(--jade-7);--accent-8: var(--jade-8);--accent-9: var(--jade-9);--accent-10: var(--jade-10);--accent-11: var(--jade-11);--accent-12: var(--jade-12);--accent-a1: var(--jade-a1);--accent-a2: var(--jade-a2);--accent-a3: var(--jade-a3);--accent-a4: var(--jade-a4);--accent-a5: var(--jade-a5);--accent-a6: var(--jade-a6);--accent-a7: var(--jade-a7);--accent-a8: var(--jade-a8);--accent-a9: var(--jade-a9);--accent-a10: var(--jade-a10);--accent-a11: var(--jade-a11);--accent-a12: var(--jade-a12);--accent-contrast: var(--jade-contrast);--accent-surface: var(--jade-surface);--accent-indicator: var(--jade-indicator);--accent-track: var(--jade-track)}[data-accent-color=lime]{--accent-1: var(--lime-1);--accent-2: var(--lime-2);--accent-3: var(--lime-3);--accent-4: var(--lime-4);--accent-5: var(--lime-5);--accent-6: var(--lime-6);--accent-7: var(--lime-7);--accent-8: var(--lime-8);--accent-9: var(--lime-9);--accent-10: var(--lime-10);--accent-11: var(--lime-11);--accent-12: var(--lime-12);--accent-a1: var(--lime-a1);--accent-a2: var(--lime-a2);--accent-a3: var(--lime-a3);--accent-a4: var(--lime-a4);--accent-a5: var(--lime-a5);--accent-a6: var(--lime-a6);--accent-a7: var(--lime-a7);--accent-a8: var(--lime-a8);--accent-a9: var(--lime-a9);--accent-a10: var(--lime-a10);--accent-a11: var(--lime-a11);--accent-a12: var(--lime-a12);--accent-contrast: var(--lime-contrast);--accent-surface: var(--lime-surface);--accent-indicator: var(--lime-indicator);--accent-track: var(--lime-track)}[data-accent-color=mint]{--accent-1: var(--mint-1);--accent-2: var(--mint-2);--accent-3: var(--mint-3);--accent-4: var(--mint-4);--accent-5: var(--mint-5);--accent-6: var(--mint-6);--accent-7: var(--mint-7);--accent-8: var(--mint-8);--accent-9: var(--mint-9);--accent-10: var(--mint-10);--accent-11: var(--mint-11);--accent-12: var(--mint-12);--accent-a1: var(--mint-a1);--accent-a2: var(--mint-a2);--accent-a3: var(--mint-a3);--accent-a4: var(--mint-a4);--accent-a5: var(--mint-a5);--accent-a6: var(--mint-a6);--accent-a7: var(--mint-a7);--accent-a8: var(--mint-a8);--accent-a9: var(--mint-a9);--accent-a10: var(--mint-a10);--accent-a11: var(--mint-a11);--accent-a12: var(--mint-a12);--accent-contrast: var(--mint-contrast);--accent-surface: var(--mint-surface);--accent-indicator: var(--mint-indicator);--accent-track: var(--mint-track)}[data-accent-color=orange]{--accent-1: var(--orange-1);--accent-2: var(--orange-2);--accent-3: var(--orange-3);--accent-4: var(--orange-4);--accent-5: var(--orange-5);--accent-6: var(--orange-6);--accent-7: var(--orange-7);--accent-8: var(--orange-8);--accent-9: var(--orange-9);--accent-10: var(--orange-10);--accent-11: var(--orange-11);--accent-12: var(--orange-12);--accent-a1: var(--orange-a1);--accent-a2: var(--orange-a2);--accent-a3: var(--orange-a3);--accent-a4: var(--orange-a4);--accent-a5: var(--orange-a5);--accent-a6: var(--orange-a6);--accent-a7: var(--orange-a7);--accent-a8: var(--orange-a8);--accent-a9: var(--orange-a9);--accent-a10: var(--orange-a10);--accent-a11: var(--orange-a11);--accent-a12: var(--orange-a12);--accent-contrast: var(--orange-contrast);--accent-surface: var(--orange-surface);--accent-indicator: var(--orange-indicator);--accent-track: var(--orange-track)}[data-accent-color=pink]{--accent-1: var(--pink-1);--accent-2: var(--pink-2);--accent-3: var(--pink-3);--accent-4: var(--pink-4);--accent-5: var(--pink-5);--accent-6: var(--pink-6);--accent-7: var(--pink-7);--accent-8: var(--pink-8);--accent-9: var(--pink-9);--accent-10: var(--pink-10);--accent-11: var(--pink-11);--accent-12: var(--pink-12);--accent-a1: var(--pink-a1);--accent-a2: var(--pink-a2);--accent-a3: var(--pink-a3);--accent-a4: var(--pink-a4);--accent-a5: var(--pink-a5);--accent-a6: var(--pink-a6);--accent-a7: var(--pink-a7);--accent-a8: var(--pink-a8);--accent-a9: var(--pink-a9);--accent-a10: var(--pink-a10);--accent-a11: var(--pink-a11);--accent-a12: var(--pink-a12);--accent-contrast: var(--pink-contrast);--accent-surface: var(--pink-surface);--accent-indicator: var(--pink-indicator);--accent-track: var(--pink-track)}[data-accent-color=plum]{--accent-1: var(--plum-1);--accent-2: var(--plum-2);--accent-3: var(--plum-3);--accent-4: var(--plum-4);--accent-5: var(--plum-5);--accent-6: var(--plum-6);--accent-7: var(--plum-7);--accent-8: var(--plum-8);--accent-9: var(--plum-9);--accent-10: var(--plum-10);--accent-11: var(--plum-11);--accent-12: var(--plum-12);--accent-a1: var(--plum-a1);--accent-a2: var(--plum-a2);--accent-a3: var(--plum-a3);--accent-a4: var(--plum-a4);--accent-a5: var(--plum-a5);--accent-a6: var(--plum-a6);--accent-a7: var(--plum-a7);--accent-a8: var(--plum-a8);--accent-a9: var(--plum-a9);--accent-a10: var(--plum-a10);--accent-a11: var(--plum-a11);--accent-a12: var(--plum-a12);--accent-contrast: var(--plum-contrast);--accent-surface: var(--plum-surface);--accent-indicator: var(--plum-indicator);--accent-track: var(--plum-track)}[data-accent-color=purple]{--accent-1: var(--purple-1);--accent-2: var(--purple-2);--accent-3: var(--purple-3);--accent-4: var(--purple-4);--accent-5: var(--purple-5);--accent-6: var(--purple-6);--accent-7: var(--purple-7);--accent-8: var(--purple-8);--accent-9: var(--purple-9);--accent-10: var(--purple-10);--accent-11: var(--purple-11);--accent-12: var(--purple-12);--accent-a1: var(--purple-a1);--accent-a2: var(--purple-a2);--accent-a3: var(--purple-a3);--accent-a4: var(--purple-a4);--accent-a5: var(--purple-a5);--accent-a6: var(--purple-a6);--accent-a7: var(--purple-a7);--accent-a8: var(--purple-a8);--accent-a9: var(--purple-a9);--accent-a10: var(--purple-a10);--accent-a11: var(--purple-a11);--accent-a12: var(--purple-a12);--accent-contrast: var(--purple-contrast);--accent-surface: var(--purple-surface);--accent-indicator: var(--purple-indicator);--accent-track: var(--purple-track)}[data-accent-color=red]{--accent-1: var(--red-1);--accent-2: var(--red-2);--accent-3: var(--red-3);--accent-4: var(--red-4);--accent-5: var(--red-5);--accent-6: var(--red-6);--accent-7: var(--red-7);--accent-8: var(--red-8);--accent-9: var(--red-9);--accent-10: var(--red-10);--accent-11: var(--red-11);--accent-12: var(--red-12);--accent-a1: var(--red-a1);--accent-a2: var(--red-a2);--accent-a3: var(--red-a3);--accent-a4: var(--red-a4);--accent-a5: var(--red-a5);--accent-a6: var(--red-a6);--accent-a7: var(--red-a7);--accent-a8: var(--red-a8);--accent-a9: var(--red-a9);--accent-a10: var(--red-a10);--accent-a11: var(--red-a11);--accent-a12: var(--red-a12);--accent-contrast: var(--red-contrast);--accent-surface: var(--red-surface);--accent-indicator: var(--red-indicator);--accent-track: var(--red-track)}[data-accent-color=ruby]{--accent-1: var(--ruby-1);--accent-2: var(--ruby-2);--accent-3: var(--ruby-3);--accent-4: var(--ruby-4);--accent-5: var(--ruby-5);--accent-6: var(--ruby-6);--accent-7: var(--ruby-7);--accent-8: var(--ruby-8);--accent-9: var(--ruby-9);--accent-10: var(--ruby-10);--accent-11: var(--ruby-11);--accent-12: var(--ruby-12);--accent-a1: var(--ruby-a1);--accent-a2: var(--ruby-a2);--accent-a3: var(--ruby-a3);--accent-a4: var(--ruby-a4);--accent-a5: var(--ruby-a5);--accent-a6: var(--ruby-a6);--accent-a7: var(--ruby-a7);--accent-a8: var(--ruby-a8);--accent-a9: var(--ruby-a9);--accent-a10: var(--ruby-a10);--accent-a11: var(--ruby-a11);--accent-a12: var(--ruby-a12);--accent-contrast: var(--ruby-contrast);--accent-surface: var(--ruby-surface);--accent-indicator: var(--ruby-indicator);--accent-track: var(--ruby-track)}[data-accent-color=sky]{--accent-1: var(--sky-1);--accent-2: var(--sky-2);--accent-3: var(--sky-3);--accent-4: var(--sky-4);--accent-5: var(--sky-5);--accent-6: var(--sky-6);--accent-7: var(--sky-7);--accent-8: var(--sky-8);--accent-9: var(--sky-9);--accent-10: var(--sky-10);--accent-11: var(--sky-11);--accent-12: var(--sky-12);--accent-a1: var(--sky-a1);--accent-a2: var(--sky-a2);--accent-a3: var(--sky-a3);--accent-a4: var(--sky-a4);--accent-a5: var(--sky-a5);--accent-a6: var(--sky-a6);--accent-a7: var(--sky-a7);--accent-a8: var(--sky-a8);--accent-a9: var(--sky-a9);--accent-a10: var(--sky-a10);--accent-a11: var(--sky-a11);--accent-a12: var(--sky-a12);--accent-contrast: var(--sky-contrast);--accent-surface: var(--sky-surface);--accent-indicator: var(--sky-indicator);--accent-track: var(--sky-track)}[data-accent-color=teal]{--accent-1: var(--teal-1);--accent-2: var(--teal-2);--accent-3: var(--teal-3);--accent-4: var(--teal-4);--accent-5: var(--teal-5);--accent-6: var(--teal-6);--accent-7: var(--teal-7);--accent-8: var(--teal-8);--accent-9: var(--teal-9);--accent-10: var(--teal-10);--accent-11: var(--teal-11);--accent-12: var(--teal-12);--accent-a1: var(--teal-a1);--accent-a2: var(--teal-a2);--accent-a3: var(--teal-a3);--accent-a4: var(--teal-a4);--accent-a5: var(--teal-a5);--accent-a6: var(--teal-a6);--accent-a7: var(--teal-a7);--accent-a8: var(--teal-a8);--accent-a9: var(--teal-a9);--accent-a10: var(--teal-a10);--accent-a11: var(--teal-a11);--accent-a12: var(--teal-a12);--accent-contrast: var(--teal-contrast);--accent-surface: var(--teal-surface);--accent-indicator: var(--teal-indicator);--accent-track: var(--teal-track)}[data-accent-color=tomato]{--accent-1: var(--tomato-1);--accent-2: var(--tomato-2);--accent-3: var(--tomato-3);--accent-4: var(--tomato-4);--accent-5: var(--tomato-5);--accent-6: var(--tomato-6);--accent-7: var(--tomato-7);--accent-8: var(--tomato-8);--accent-9: var(--tomato-9);--accent-10: var(--tomato-10);--accent-11: var(--tomato-11);--accent-12: var(--tomato-12);--accent-a1: var(--tomato-a1);--accent-a2: var(--tomato-a2);--accent-a3: var(--tomato-a3);--accent-a4: var(--tomato-a4);--accent-a5: var(--tomato-a5);--accent-a6: var(--tomato-a6);--accent-a7: var(--tomato-a7);--accent-a8: var(--tomato-a8);--accent-a9: var(--tomato-a9);--accent-a10: var(--tomato-a10);--accent-a11: var(--tomato-a11);--accent-a12: var(--tomato-a12);--accent-contrast: var(--tomato-contrast);--accent-surface: var(--tomato-surface);--accent-indicator: var(--tomato-indicator);--accent-track: var(--tomato-track)}[data-accent-color=violet]{--accent-1: var(--violet-1);--accent-2: var(--violet-2);--accent-3: var(--violet-3);--accent-4: var(--violet-4);--accent-5: var(--violet-5);--accent-6: var(--violet-6);--accent-7: var(--violet-7);--accent-8: var(--violet-8);--accent-9: var(--violet-9);--accent-10: var(--violet-10);--accent-11: var(--violet-11);--accent-12: var(--violet-12);--accent-a1: var(--violet-a1);--accent-a2: var(--violet-a2);--accent-a3: var(--violet-a3);--accent-a4: var(--violet-a4);--accent-a5: var(--violet-a5);--accent-a6: var(--violet-a6);--accent-a7: var(--violet-a7);--accent-a8: var(--violet-a8);--accent-a9: var(--violet-a9);--accent-a10: var(--violet-a10);--accent-a11: var(--violet-a11);--accent-a12: var(--violet-a12);--accent-contrast: var(--violet-contrast);--accent-surface: var(--violet-surface);--accent-indicator: var(--violet-indicator);--accent-track: var(--violet-track)}[data-accent-color=yellow]{--accent-1: var(--yellow-1);--accent-2: var(--yellow-2);--accent-3: var(--yellow-3);--accent-4: var(--yellow-4);--accent-5: var(--yellow-5);--accent-6: var(--yellow-6);--accent-7: var(--yellow-7);--accent-8: var(--yellow-8);--accent-9: var(--yellow-9);--accent-10: var(--yellow-10);--accent-11: var(--yellow-11);--accent-12: var(--yellow-12);--accent-a1: var(--yellow-a1);--accent-a2: var(--yellow-a2);--accent-a3: var(--yellow-a3);--accent-a4: var(--yellow-a4);--accent-a5: var(--yellow-a5);--accent-a6: var(--yellow-a6);--accent-a7: var(--yellow-a7);--accent-a8: var(--yellow-a8);--accent-a9: var(--yellow-a9);--accent-a10: var(--yellow-a10);--accent-a11: var(--yellow-a11);--accent-a12: var(--yellow-a12);--accent-contrast: var(--yellow-contrast);--accent-surface: var(--yellow-surface);--accent-indicator: var(--yellow-indicator);--accent-track: var(--yellow-track)}.radix-themes:where([data-gray-color=mauve]){--gray-1: var(--mauve-1);--gray-2: var(--mauve-2);--gray-3: var(--mauve-3);--gray-4: var(--mauve-4);--gray-5: var(--mauve-5);--gray-6: var(--mauve-6);--gray-7: var(--mauve-7);--gray-8: var(--mauve-8);--gray-9: var(--mauve-9);--gray-10: var(--mauve-10);--gray-11: var(--mauve-11);--gray-12: var(--mauve-12);--gray-a1: var(--mauve-a1);--gray-a2: var(--mauve-a2);--gray-a3: var(--mauve-a3);--gray-a4: var(--mauve-a4);--gray-a5: var(--mauve-a5);--gray-a6: var(--mauve-a6);--gray-a7: var(--mauve-a7);--gray-a8: var(--mauve-a8);--gray-a9: var(--mauve-a9);--gray-a10: var(--mauve-a10);--gray-a11: var(--mauve-a11);--gray-a12: var(--mauve-a12);--gray-contrast: var(--mauve-contrast);--gray-surface: var(--mauve-surface);--gray-indicator: var(--mauve-indicator);--gray-track: var(--mauve-track)}.radix-themes:where([data-gray-color=olive]){--gray-1: var(--olive-1);--gray-2: var(--olive-2);--gray-3: var(--olive-3);--gray-4: var(--olive-4);--gray-5: var(--olive-5);--gray-6: var(--olive-6);--gray-7: var(--olive-7);--gray-8: var(--olive-8);--gray-9: var(--olive-9);--gray-10: var(--olive-10);--gray-11: var(--olive-11);--gray-12: var(--olive-12);--gray-a1: var(--olive-a1);--gray-a2: var(--olive-a2);--gray-a3: var(--olive-a3);--gray-a4: var(--olive-a4);--gray-a5: var(--olive-a5);--gray-a6: var(--olive-a6);--gray-a7: var(--olive-a7);--gray-a8: var(--olive-a8);--gray-a9: var(--olive-a9);--gray-a10: var(--olive-a10);--gray-a11: var(--olive-a11);--gray-a12: var(--olive-a12);--gray-contrast: var(--olive-contrast);--gray-surface: var(--olive-surface);--gray-indicator: var(--olive-indicator);--gray-track: var(--olive-track)}.radix-themes:where([data-gray-color=sage]){--gray-1: var(--sage-1);--gray-2: var(--sage-2);--gray-3: var(--sage-3);--gray-4: var(--sage-4);--gray-5: var(--sage-5);--gray-6: var(--sage-6);--gray-7: var(--sage-7);--gray-8: var(--sage-8);--gray-9: var(--sage-9);--gray-10: var(--sage-10);--gray-11: var(--sage-11);--gray-12: var(--sage-12);--gray-a1: var(--sage-a1);--gray-a2: var(--sage-a2);--gray-a3: var(--sage-a3);--gray-a4: var(--sage-a4);--gray-a5: var(--sage-a5);--gray-a6: var(--sage-a6);--gray-a7: var(--sage-a7);--gray-a8: var(--sage-a8);--gray-a9: var(--sage-a9);--gray-a10: var(--sage-a10);--gray-a11: var(--sage-a11);--gray-a12: var(--sage-a12);--gray-contrast: var(--sage-contrast);--gray-surface: var(--sage-surface);--gray-indicator: var(--sage-indicator);--gray-track: var(--sage-track)}.radix-themes:where([data-gray-color=sand]){--gray-1: var(--sand-1);--gray-2: var(--sand-2);--gray-3: var(--sand-3);--gray-4: var(--sand-4);--gray-5: var(--sand-5);--gray-6: var(--sand-6);--gray-7: var(--sand-7);--gray-8: var(--sand-8);--gray-9: var(--sand-9);--gray-10: var(--sand-10);--gray-11: var(--sand-11);--gray-12: var(--sand-12);--gray-a1: var(--sand-a1);--gray-a2: var(--sand-a2);--gray-a3: var(--sand-a3);--gray-a4: var(--sand-a4);--gray-a5: var(--sand-a5);--gray-a6: var(--sand-a6);--gray-a7: var(--sand-a7);--gray-a8: var(--sand-a8);--gray-a9: var(--sand-a9);--gray-a10: var(--sand-a10);--gray-a11: var(--sand-a11);--gray-a12: var(--sand-a12);--gray-contrast: var(--sand-contrast);--gray-surface: var(--sand-surface);--gray-indicator: var(--sand-indicator);--gray-track: var(--sand-track)}.radix-themes:where([data-gray-color=slate]){--gray-1: var(--slate-1);--gray-2: var(--slate-2);--gray-3: var(--slate-3);--gray-4: var(--slate-4);--gray-5: var(--slate-5);--gray-6: var(--slate-6);--gray-7: var(--slate-7);--gray-8: var(--slate-8);--gray-9: var(--slate-9);--gray-10: var(--slate-10);--gray-11: var(--slate-11);--gray-12: var(--slate-12);--gray-a1: var(--slate-a1);--gray-a2: var(--slate-a2);--gray-a3: var(--slate-a3);--gray-a4: var(--slate-a4);--gray-a5: var(--slate-a5);--gray-a6: var(--slate-a6);--gray-a7: var(--slate-a7);--gray-a8: var(--slate-a8);--gray-a9: var(--slate-a9);--gray-a10: var(--slate-a10);--gray-a11: var(--slate-a11);--gray-a12: var(--slate-a12);--gray-contrast: var(--slate-contrast);--gray-surface: var(--slate-surface);--gray-indicator: var(--slate-indicator);--gray-track: var(--slate-track)}.radix-themes{--cursor-button: default;--cursor-checkbox: default;--cursor-disabled: not-allowed;--cursor-link: pointer;--cursor-menu-item: default;--cursor-radio: default;--cursor-slider-thumb: default;--cursor-slider-thumb-active: default;--cursor-switch: default;--space-1: calc(4px * var(--scaling));--space-2: calc(8px * var(--scaling));--space-3: calc(12px * var(--scaling));--space-4: calc(16px * var(--scaling));--space-5: calc(24px * var(--scaling));--space-6: calc(32px * var(--scaling));--space-7: calc(40px * var(--scaling));--space-8: calc(48px * var(--scaling));--space-9: calc(64px * var(--scaling));--font-size-1: calc(12px * var(--scaling));--font-size-2: calc(14px * var(--scaling));--font-size-3: calc(16px * var(--scaling));--font-size-4: calc(18px * var(--scaling));--font-size-5: calc(20px * var(--scaling));--font-size-6: calc(24px * var(--scaling));--font-size-7: calc(28px * var(--scaling));--font-size-8: calc(35px * var(--scaling));--font-size-9: calc(60px * var(--scaling));--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-1: calc(16px * var(--scaling));--line-height-2: calc(20px * var(--scaling));--line-height-3: calc(24px * var(--scaling));--line-height-4: calc(26px * var(--scaling));--line-height-5: calc(28px * var(--scaling));--line-height-6: calc(30px * var(--scaling));--line-height-7: calc(36px * var(--scaling));--line-height-8: calc(40px * var(--scaling));--line-height-9: calc(60px * var(--scaling));--letter-spacing-1: .0025em;--letter-spacing-2: 0em;--letter-spacing-3: 0em;--letter-spacing-4: -.0025em;--letter-spacing-5: -.005em;--letter-spacing-6: -.00625em;--letter-spacing-7: -.0075em;--letter-spacing-8: -.01em;--letter-spacing-9: -.025em;--default-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI (Custom)", Roboto, "Helvetica Neue", "Open Sans (Custom)", system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--default-font-size: var(--font-size-3);--default-font-style: normal;--default-font-weight: var(--font-weight-regular);--default-line-height: 1.5;--default-letter-spacing: 0em;--default-leading-trim-start: .42em;--default-leading-trim-end: .36em;--heading-font-family: var(--default-font-family);--heading-font-size-adjust: 1;--heading-font-style: normal;--heading-leading-trim-start: var(--default-leading-trim-start);--heading-leading-trim-end: var(--default-leading-trim-end);--heading-letter-spacing: 0em;--heading-line-height-1: calc(16px * var(--scaling));--heading-line-height-2: calc(18px * var(--scaling));--heading-line-height-3: calc(22px * var(--scaling));--heading-line-height-4: calc(24px * var(--scaling));--heading-line-height-5: calc(26px * var(--scaling));--heading-line-height-6: calc(30px * var(--scaling));--heading-line-height-7: calc(36px * var(--scaling));--heading-line-height-8: calc(40px * var(--scaling));--heading-line-height-9: calc(60px * var(--scaling));--code-font-family: "Menlo", "Consolas (Custom)", "Bitstream Vera Sans Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji";--code-font-size-adjust: .95;--code-font-style: normal;--code-font-weight: inherit;--code-letter-spacing: -.007em;--code-padding-top: .1em;--code-padding-bottom: .1em;--code-padding-left: .25em;--code-padding-right: .25em;--strong-font-family: var(--default-font-family);--strong-font-size-adjust: 1;--strong-font-style: inherit;--strong-font-weight: var(--font-weight-bold);--strong-letter-spacing: 0em;--em-font-family: "Times New Roman", "Times", serif;--em-font-size-adjust: 1.18;--em-font-style: italic;--em-font-weight: inherit;--em-letter-spacing: -.025em;--quote-font-family: "Times New Roman", "Times", serif;--quote-font-size-adjust: 1.18;--quote-font-style: italic;--quote-font-weight: inherit;--quote-letter-spacing: -.025em;--tab-active-letter-spacing: -.01em;--tab-active-word-spacing: 0em;--tab-inactive-letter-spacing: 0em;--tab-inactive-word-spacing: 0em;overflow-wrap:break-word;font-family:var(--default-font-family);font-size:var(--default-font-size);font-weight:var(--default-font-weight);font-style:var(--default-font-style);line-height:var(--default-line-height);letter-spacing:var(--default-letter-spacing);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--container-1: 448px;--container-2: 688px;--container-3: 880px;--container-4: 1136px;--scrollarea-scrollbar-horizontal-margin-top: var(--space-1);--scrollarea-scrollbar-horizontal-margin-bottom: var(--space-1);--scrollarea-scrollbar-horizontal-margin-left: var(--space-1);--scrollarea-scrollbar-horizontal-margin-right: var(--space-1);--scrollarea-scrollbar-vertical-margin-top: var(--space-1);--scrollarea-scrollbar-vertical-margin-bottom: var(--space-1);--scrollarea-scrollbar-vertical-margin-left: var(--space-1);--scrollarea-scrollbar-vertical-margin-right: var(--space-1);--segmented-control-transition-duration: .1s;--spinner-animation-duration: .8s;--spinner-opacity: .65;color:var(--gray-12)}.radix-themes:where([data-scaling="90%"]){--scaling: .9}.radix-themes:where([data-scaling="95%"]){--scaling: .95}.radix-themes:where([data-scaling="100%"]){--scaling: 1}.radix-themes:where([data-scaling="105%"]){--scaling: 1.05}.radix-themes:where([data-scaling="110%"]){--scaling: 1.1}[data-radius]{--radius-1: calc(3px * var(--scaling) * var(--radius-factor));--radius-2: calc(4px * var(--scaling) * var(--radius-factor));--radius-3: calc(6px * var(--scaling) * var(--radius-factor));--radius-4: calc(8px * var(--scaling) * var(--radius-factor));--radius-5: calc(12px * var(--scaling) * var(--radius-factor));--radius-6: calc(16px * var(--scaling) * var(--radius-factor))}[data-radius=none]{--radius-factor: 0;--radius-full: 0px;--radius-thumb: .5px}[data-radius=small]{--radius-factor: .75;--radius-full: 0px;--radius-thumb: .5px}[data-radius=medium]{--radius-factor: 1;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=large]{--radius-factor: 1.5;--radius-full: 0px;--radius-thumb: 9999px}[data-radius=full]{--radius-factor: 1.5;--radius-full: 9999px;--radius-thumb: 9999px}@supports (color: color-mix(in oklab,white,black)){:where(.radix-themes){--shadow-1: inset 0 0 0 1px var(--gray-a5), inset 0 1.5px 2px 0 var(--gray-a2), inset 0 1.5px 2px 0 var(--black-a2);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 0 0 .5px var(--black-a1), 0 1px 1px 0 var(--gray-a2), 0 2px 1px -1px var(--black-a1), 0 1px 3px 0 var(--black-a1);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 2px 3px -2px var(--gray-a3), 0 3px 12px -4px var(--black-a2), 0 4px 16px -8px var(--black-a2);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 8px 40px var(--black-a1), 0 12px 32px -16px var(--gray-a3);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 12px 32px -16px var(--gray-a5);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%), 0 12px 60px var(--black-a3), 0 16px 64px var(--gray-a2), 0 16px 36px -20px var(--gray-a7);--base-card-surface-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a5), var(--gray-5) 25%);--base-card-surface-hover-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a7), var(--gray-7) 25%);--base-card-surface-active-box-shadow: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a4), var(--gray-4) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a3), var(--gray-3) 25%)}}@supports (color: color-mix(in oklab,white,black)){:is(.dark,.dark-theme),:is(.dark,.dark-theme) :where(.radix-themes:not(.light,.light-theme)){--shadow-1: inset 0 -1px 1px 0 var(--gray-a3), inset 0 0 0 1px var(--gray-a3), inset 0 3px 4px 0 var(--black-a5), inset 0 0 0 1px var(--gray-a4);--shadow-2: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 0 0 .5px var(--black-a3), 0 1px 1px 0 var(--black-a6), 0 2px 1px -1px var(--black-a6), 0 1px 3px 0 var(--black-a5);--shadow-3: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 2px 3px -2px var(--black-a3), 0 3px 8px -2px var(--black-a6), 0 4px 12px -4px var(--black-a7);--shadow-4: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 8px 40px var(--black-a3), 0 12px 32px -16px var(--black-a5);--shadow-5: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a5), 0 12px 32px -16px var(--black-a7);--shadow-6: 0 0 0 1px color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%), 0 12px 60px var(--black-a4), 0 16px 64px var(--black-a6), 0 16px 36px -20px var(--black-a11);--base-card-classic-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-hover-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%);--base-card-classic-active-border-color: color-mix(in oklab, var(--gray-a6), var(--gray-6) 25%)}}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:300;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semilight Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:400;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold"),local("Segoe UI")}@font-face{font-family:"Segoe UI (Custom)";font-weight:500;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Semibold Italic"),local("Segoe UI Italic")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold")}@font-face{font-family:"Segoe UI (Custom)";font-weight:700;font-style:italic;size-adjust:103%;descent-override:35%;ascent-override:105%;src:local("Segoe UI Bold Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;descent-override:35%;src:local("Open Sans Light"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:300;font-style:italic;descent-override:35%;src:local("Open Sans Light Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;descent-override:35%;src:local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:400;font-style:italic;descent-override:35%;src:local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;descent-override:35%;src:local("Open Sans Medium"),local("Open Sans Regular")}@font-face{font-family:"Open Sans (Custom)";font-weight:500;font-style:italic;descent-override:35%;src:local("Open Sans Medium Italic"),local("Open Sans Italic")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;descent-override:35%;src:local("Open Sans Bold")}@font-face{font-family:"Open Sans (Custom)";font-weight:700;font-style:italic;descent-override:35%;src:local("Open Sans Bold Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:400;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas")}@font-face{font-family:"Consolas (Custom)";font-weight:400;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Italic")}@font-face{font-family:"Consolas (Custom)";font-weight:700;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold")}@font-face{font-family:"Consolas (Custom)";font-weight:700;font-style:italic;size-adjust:110%;ascent-override:85%;descent-override:22%;src:local("Consolas Bold Italic")}.rt-reset:where(body,blockquote,dl,dd,figure,p){margin:0}.rt-reset:where(address,b,cite,code,dfn,em,i,kbd,q,samp,small,strong,var){font:unset}.rt-reset:where(h1,h2,h3,h4,h5,h6){font:unset;margin:0}.rt-reset:where(a){all:unset;-webkit-tap-highlight-color:transparent}.rt-reset:where(button,select,[type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range]){all:unset;display:inline-block;font-weight:400;font-style:normal;text-indent:initial;-webkit-tap-highlight-color:transparent}.rt-reset:where(label){-webkit-tap-highlight-color:transparent}.rt-reset:where(select){font-weight:400;font-style:normal;text-align:start}.rt-reset:where(textarea,input:not([type=button],[type=image],[type=reset],[type=submit],[type=checkbox],[type=color],[type=radio],[type=range])){all:unset;display:block;width:-webkit-fill-available;width:-moz-available;width:stretch;font-weight:400;font-style:normal;text-align:start;text-indent:initial;-webkit-tap-highlight-color:transparent;cursor:text;white-space:pre-wrap}.rt-reset:where(:focus){outline:none}.rt-reset::placeholder{color:unset;opacity:unset;-webkit-user-select:none;user-select:none}.rt-reset:where(table){all:unset;display:table;text-indent:initial}.rt-reset:where(caption){text-align:inherit}.rt-reset:where(td){padding:0}.rt-reset:where(th){font-weight:unset;text-align:inherit;padding:0}.rt-reset:where(abbr,acronym){text-decoration:none}.rt-reset:where(canvas,object,picture,summary){display:block}.rt-reset:where(del,s){text-decoration:unset}.rt-reset:where(fieldset,hr){all:unset;display:block}.rt-reset:where(legend){padding:0;border:none;cursor:default}.rt-reset:where(li){display:block;text-align:unset}.rt-reset:where(ol,ul){list-style:none;margin:0;padding:0}.rt-reset:where(iframe){display:block;border:none;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(ins,u){text-decoration:none}.rt-reset:where(img){display:block;max-width:100%}.rt-reset:where(svg){display:block;max-width:100%;flex-shrink:0}.rt-reset:where(mark){all:unset}.rt-reset:where(pre){font:unset;margin:unset}.rt-reset:where(q):before,.rt-reset:where(q):after{content:""}.rt-reset:where(sub,sup){font:unset;vertical-align:unset}.rt-reset:where(details) ::marker,.rt-reset:where(summary)::marker{content:none}.rt-reset:where(video){display:block;width:-webkit-fill-available;width:-moz-available;width:stretch}.rt-reset:where(:any-link){cursor:var(--cursor-link)}.rt-reset:where(button){cursor:var(--cursor-button)}.rt-reset:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-reset:where(input[type=checkbox]){cursor:var(--cursor-checkbox)}.rt-reset:where(input[type=radio]){cursor:var(--cursor-radio)}.rt-reset,.rt-reset:before,.rt-reset:after{box-sizing:border-box}@keyframes rt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rt-fade-out{0%{opacity:1}to{opacity:0}}@keyframes rt-slide-from-top{0%{transform:translateY(4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-top{0%{transform:translateY(0) scale(1)}to{transform:translateY(4px) scale(.97)}}@keyframes rt-slide-from-bottom{0%{transform:translateY(-4px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes rt-slide-to-bottom{0%{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(.97)}}@keyframes rt-slide-from-left{0%{transform:translate(4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-left{0%{transform:translate(0) scale(1)}to{transform:translate(4px) scale(.97)}}@keyframes rt-slide-from-right{0%{transform:translate(-4px) scale(.97)}to{transform:translate(0) scale(1)}}@keyframes rt-slide-to-right{0%{transform:translate(0) scale(1)}to{transform:translate(-4px) scale(.97)}}@media (prefers-reduced-motion: no-preference){.rt-PopperContent{animation-timing-function:cubic-bezier(.16,1,.3,1)}.rt-PopperContent:where([data-state=open]){animation-duration:.16s}.rt-PopperContent:where([data-state=open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-PopperContent:where([data-state=open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}.rt-PopperContent:where([data-state=closed]){animation-duration:.1s}.rt-PopperContent:where([data-state=closed]):where([data-side=top]){animation-name:rt-slide-to-top,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=bottom]){animation-name:rt-slide-to-bottom,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=left]){animation-name:rt-slide-to-left,rt-fade-out}.rt-PopperContent:where([data-state=closed]):where([data-side=right]){animation-name:rt-slide-to-right,rt-fade-out}}.rt-Box{box-sizing:border-box;display:block}.rt-Flex{box-sizing:border-box;display:flex;justify-content:flex-start}.rt-Grid{box-sizing:border-box;display:grid;align-items:stretch;justify-content:flex-start;grid-template-columns:minmax(0,1fr);grid-template-rows:none}.rt-Section{box-sizing:border-box;flex-shrink:0}.rt-Section:where(.rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}@media (min-width: 520px){.rt-Section:where(.xs\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xs\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xs\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xs\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 768px){.rt-Section:where(.sm\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.sm\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.sm\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.sm\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1024px){.rt-Section:where(.md\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.md\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.md\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.md\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1280px){.rt-Section:where(.lg\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.lg\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.lg\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.lg\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}@media (min-width: 1640px){.rt-Section:where(.xl\:rt-r-size-1){padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-Section:where(.xl\:rt-r-size-2){padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-Section:where(.xl\:rt-r-size-3){padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-Section:where(.xl\:rt-r-size-4){padding-top:calc(80px * var(--scaling));padding-bottom:calc(80px * var(--scaling))}}.rt-Container{display:flex;box-sizing:border-box;flex-direction:column;align-items:center;flex-shrink:0;flex-grow:1}.rt-ContainerInner{width:100%}:where(.rt-Container.rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}@media (min-width: 520px){:where(.rt-Container.xs\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xs\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xs\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xs\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 768px){:where(.rt-Container.sm\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.sm\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.sm\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.sm\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1024px){:where(.rt-Container.md\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.md\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.md\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.md\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1280px){:where(.rt-Container.lg\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.lg\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.lg\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.lg\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}@media (min-width: 1640px){:where(.rt-Container.xl\:rt-r-size-1) .rt-ContainerInner{max-width:var(--container-1)}:where(.rt-Container.xl\:rt-r-size-2) .rt-ContainerInner{max-width:var(--container-2)}:where(.rt-Container.xl\:rt-r-size-3) .rt-ContainerInner{max-width:var(--container-3)}:where(.rt-Container.xl\:rt-r-size-4) .rt-ContainerInner{max-width:var(--container-4)}}.rt-Skeleton{--skeleton-radius: var(--skeleton-radius-override);--skeleton-height: var(--skeleton-height-override);border-radius:var(--radius-1);animation:rt-skeleton-pulse 1s infinite alternate-reverse!important;background-image:none!important;background-clip:border-box!important;border:none!important;box-shadow:none!important;-webkit-box-decoration-break:clone!important;box-decoration-break:clone!important;color:transparent!important;outline:none!important;pointer-events:none!important;-webkit-user-select:none!important;user-select:none!important;cursor:default!important}.rt-Skeleton:where([data-inline-skeleton]){line-height:0;font-family:Arial,sans-serif!important}:where(.rt-Skeleton:empty){display:block;height:var(--space-3)}.rt-Skeleton>*,.rt-Skeleton:after,.rt-Skeleton:before{visibility:hidden!important}@keyframes rt-skeleton-pulse{0%{background-color:var(--gray-a3)}to{background-color:var(--gray-a4)}}.rt-Text{line-height:var(--line-height, var(--default-line-height));letter-spacing:var(--letter-spacing, inherit)}:where(.rt-Text){margin:0}.rt-Text:where([data-accent-color]){color:var(--accent-a11)}.rt-Text:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Text:where(.rt-high-contrast){color:var(--accent-12)}@media (pointer: coarse){.rt-Text:where(label){-webkit-tap-highlight-color:transparent}.rt-Text:where(label):where(:active){outline:.75em solid var(--gray-a4);outline-offset:-.6em}}.rt-Text:where(.rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Text:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xs\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xs\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xs\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xs\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xs\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xs\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Text:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.sm\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.sm\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.sm\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.sm\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.sm\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.sm\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Text:where(.md\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.md\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.md\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.md\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.md\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.md\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.md\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Text:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.lg\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.lg\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.lg\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.lg\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.lg\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.lg\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Text:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);--line-height: var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Text:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Text:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Text:where(.xl\:rt-r-size-4){font-size:var(--font-size-4);--line-height: var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Text:where(.xl\:rt-r-size-5){font-size:var(--font-size-5);--line-height: var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Text:where(.xl\:rt-r-size-6){font-size:var(--font-size-6);--line-height: var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Text:where(.xl\:rt-r-size-7){font-size:var(--font-size-7);--line-height: var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Text:where(.xl\:rt-r-size-8){font-size:var(--font-size-8);--line-height: var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Text:where(.xl\:rt-r-size-9){font-size:var(--font-size-9);--line-height: var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-BaseDialogOverlay{position:fixed;inset:0}.rt-BaseDialogOverlay:before{position:fixed;content:"";inset:0;background-color:var(--color-overlay)}.rt-BaseDialogScroll{display:flex;overflow:auto;position:absolute;inset:0}.rt-BaseDialogScrollPadding{flex-grow:1;margin:auto;padding-top:var(--space-6);padding-bottom:max(var(--space-6),6vh);padding-left:var(--space-4);padding-right:var(--space-4)}.rt-BaseDialogScrollPadding:where(.rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.rt-r-align-center){margin-top:auto}@media (min-width: 520px){.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xs\:rt-r-align-center){margin-top:auto}}@media (min-width: 768px){.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.sm\:rt-r-align-center){margin-top:auto}}@media (min-width: 1024px){.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.md\:rt-r-align-center){margin-top:auto}}@media (min-width: 1280px){.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.lg\:rt-r-align-center){margin-top:auto}}@media (min-width: 1640px){.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-start){margin-top:0}.rt-BaseDialogScrollPadding:where(.xl\:rt-r-align-center){margin-top:auto}}.rt-BaseDialogContent{margin:auto;width:100%;z-index:1;position:relative;overflow:auto;--inset-padding-top: var(--dialog-content-padding);--inset-padding-right: var(--dialog-content-padding);--inset-padding-bottom: var(--dialog-content-padding);--inset-padding-left: var(--dialog-content-padding);padding:var(--dialog-content-padding);box-sizing:border-box;background-color:var(--color-panel-solid);box-shadow:var(--shadow-6);outline:none}.rt-BaseDialogContent:where(.rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-BaseDialogContent:where(.xs\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xs\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xs\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-BaseDialogContent:where(.sm\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.sm\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.sm\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-BaseDialogContent:where(.md\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.md\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.md\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-BaseDialogContent:where(.lg\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.lg\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.lg\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-BaseDialogContent:where(.xl\:rt-r-size-1){--dialog-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-2){--dialog-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-BaseDialogContent:where(.xl\:rt-r-size-3){--dialog-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-BaseDialogContent:where(.xl\:rt-r-size-4){--dialog-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (prefers-reduced-motion: no-preference){@keyframes rt-dialog-overlay-no-op{0%{opacity:1}to{opacity:1}}@keyframes rt-dialog-content-show{0%{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rt-dialog-content-hide{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(5px) scale(.99)}}.rt-BaseDialogOverlay:where([data-state=closed]){animation:rt-dialog-overlay-no-op .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=open]):before{animation:rt-fade-in .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogOverlay:where([data-state=closed]):before{opacity:0;animation:rt-fade-out .16s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=open]){animation:rt-dialog-content-show .2s cubic-bezier(.16,1,.3,1)}.rt-BaseDialogContent:where([data-state=closed]){opacity:0;animation:rt-dialog-content-hide .1s cubic-bezier(.16,1,.3,1)}}.rt-AvatarRoot{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;-webkit-user-select:none;user-select:none;width:var(--avatar-size);height:var(--avatar-size);flex-shrink:0}.rt-AvatarImage{width:100%;height:100%;object-fit:cover;border-radius:inherit}.rt-AvatarFallback{font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;z-index:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:inherit;text-transform:uppercase}.rt-AvatarFallback:where(.rt-one-letter){font-size:var(--avatar-fallback-one-letter-font-size)}.rt-AvatarFallback:where(.rt-two-letters){font-size:var(--avatar-fallback-two-letters-font-size, var(--avatar-fallback-one-letter-font-size))}.rt-AvatarRoot:where(.rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}@media (min-width: 520px){.rt-AvatarRoot:where(.xs\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xs\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xs\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xs\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xs\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xs\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xs\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xs\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 768px){.rt-AvatarRoot:where(.sm\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.sm\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.sm\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.sm\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.sm\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.sm\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.sm\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.sm\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-AvatarRoot:where(.md\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.md\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.md\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.md\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.md\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.md\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.md\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.md\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-AvatarRoot:where(.lg\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.lg\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.lg\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.lg\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.lg\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.lg\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.lg\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.lg\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-AvatarRoot:where(.xl\:rt-r-size-1){--avatar-size: var(--space-5);--avatar-fallback-one-letter-font-size: var(--font-size-2);--avatar-fallback-two-letters-font-size: var(--font-size-1);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-1)}.rt-AvatarRoot:where(.xl\:rt-r-size-2){--avatar-size: var(--space-6);--avatar-fallback-one-letter-font-size: var(--font-size-3);--avatar-fallback-two-letters-font-size: var(--font-size-2);border-radius:max(var(--radius-2),var(--radius-full));letter-spacing:var(--letter-spacing-2)}.rt-AvatarRoot:where(.xl\:rt-r-size-3){--avatar-size: var(--space-7);--avatar-fallback-one-letter-font-size: var(--font-size-4);--avatar-fallback-two-letters-font-size: var(--font-size-3);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-3)}.rt-AvatarRoot:where(.xl\:rt-r-size-4){--avatar-size: var(--space-8);--avatar-fallback-one-letter-font-size: var(--font-size-5);--avatar-fallback-two-letters-font-size: var(--font-size-4);border-radius:max(var(--radius-3),var(--radius-full));letter-spacing:var(--letter-spacing-4)}.rt-AvatarRoot:where(.xl\:rt-r-size-5){--avatar-size: var(--space-9);--avatar-fallback-one-letter-font-size: var(--font-size-6);border-radius:max(var(--radius-4),var(--radius-full));letter-spacing:var(--letter-spacing-6)}.rt-AvatarRoot:where(.xl\:rt-r-size-6){--avatar-size: 80px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-7){--avatar-size: 96px;--avatar-fallback-one-letter-font-size: var(--font-size-7);border-radius:max(var(--radius-5),var(--radius-full));letter-spacing:var(--letter-spacing-7)}.rt-AvatarRoot:where(.xl\:rt-r-size-8){--avatar-size: 128px;--avatar-fallback-one-letter-font-size: var(--font-size-8);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-8)}.rt-AvatarRoot:where(.xl\:rt-r-size-9){--avatar-size: 160px;--avatar-fallback-one-letter-font-size: var(--font-size-9);border-radius:max(var(--radius-6),var(--radius-full));letter-spacing:var(--letter-spacing-9)}}.rt-AvatarRoot:where(.rt-variant-solid) :where(.rt-AvatarFallback){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-AvatarRoot:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-AvatarFallback){background-color:var(--accent-12);color:var(--accent-1)}.rt-AvatarRoot:where(.rt-variant-soft) :where(.rt-AvatarFallback){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-AvatarRoot:where(.rt-variant-soft):where(.rt-high-contrast) :where(.rt-AvatarFallback){color:var(--accent-12)}.rt-Badge{display:inline-flex;align-items:center;white-space:nowrap;font-family:var(--default-font-family);font-weight:var(--font-weight-medium);font-style:normal;flex-shrink:0;line-height:1;height:-moz-fit-content;height:fit-content}.rt-Badge:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}@media (min-width: 520px){.rt-Badge:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xs\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 768px){.rt-Badge:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.sm\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1024px){.rt-Badge:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.md\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1280px){.rt-Badge:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.lg\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}@media (min-width: 1640px){.rt-Badge:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 1.5);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-2){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);padding:var(--space-1) var(--space-2);gap:calc(var(--space-1) * 1.5);border-radius:max(var(--radius-2),var(--radius-full))}.rt-Badge:where(.xl\:rt-r-size-3){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);padding:var(--space-1) calc(var(--space-2) * 1.25);gap:var(--space-2);border-radius:max(var(--radius-2),var(--radius-full))}}.rt-Badge:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-Badge:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Badge:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}.rt-Badge:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a6);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}.rt-Badge:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}.rt-Badge:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-Blockquote{box-sizing:border-box;border-left:max(var(--space-1),.25em) solid var(--accent-a6);padding-left:min(var(--space-5),max(var(--space-3),.5em))}.rt-BaseButton{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;font-family:var(--default-font-family);font-style:normal;text-align:center}.rt-BaseButton:where([data-disabled]){--spinner-opacity: 1}.rt-BaseButton:where(.rt-loading){position:relative}.rt-BaseButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height)}.rt-BaseButton:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content}.rt-BaseButton:where(.rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}@media (min-width: 520px){.rt-BaseButton:where(.xs\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xs\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 768px){.rt-BaseButton:where(.sm\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.sm\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1024px){.rt-BaseButton:where(.md\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.md\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1280px){.rt-BaseButton:where(.lg\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.lg\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}@media (min-width: 1640px){.rt-BaseButton:where(.xl\:rt-r-size-1){--base-button-classic-active-padding-top: 1px;--base-button-height: var(--space-5);border-radius:max(var(--radius-1),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-2){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-6);border-radius:max(var(--radius-2),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-3){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-7);border-radius:max(var(--radius-3),var(--radius-full))}.rt-BaseButton:where(.xl\:rt-r-size-4){--base-button-classic-active-padding-top: 2px;--base-button-height: var(--space-8);border-radius:max(var(--radius-4),var(--radius-full))}}.rt-BaseButton:where(.rt-variant-classic){background-color:var(--accent-9);color:var(--accent-contrast);position:relative;z-index:0;background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-9) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-9),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):after{content:"";position:absolute;border-radius:inherit;pointer-events:none;inset:0;z-index:-1;border:var(--base-button-classic-after-inset) solid transparent;background-clip:content-box;background-color:inherit;background-image:linear-gradient(var(--black-a1),transparent,var(--white-a2));box-shadow:inset 0 2px 3px -1px var(--white-a4)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1);background-image:linear-gradient(to bottom,transparent 50%,var(--gray-a4)),linear-gradient(to bottom,transparent 50%,var(--accent-12) 80%);box-shadow:var(--base-button-classic-box-shadow-top),inset 0 0 0 1px var(--accent-12),var(--base-button-classic-box-shadow-bottom)}.rt-BaseButton:where(.rt-variant-classic):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a3),transparent,var(--white-a2))}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-classic):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-classic):where(:hover):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where(:hover):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):after{background-color:var(--accent-10);background-image:linear-gradient(var(--black-a2) -15%,transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast){filter:var(--base-button-classic-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-classic):where([data-state=open]):where(.rt-high-contrast):after{background-color:var(--accent-12);background-image:linear-gradient(var(--black-a5),transparent,var(--white-a2))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])){background-color:var(--accent-9);background-image:linear-gradient(var(--black-a1),transparent);padding-top:var(--base-button-classic-active-padding-top);box-shadow:inset 0 4px 2px -2px var(--gray-a4),inset 0 1px 1px var(--gray-a7),inset 0 0 0 1px var(--gray-a5),inset 0 0 0 1px var(--accent-9),inset 0 3px 2px var(--gray-a3),inset 0 0 0 1px var(--white-a7),inset 0 -2px 1px var(--white-a5)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):after{box-shadow:none;background-color:inherit;background-image:linear-gradient(var(--black-a2),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast){background-color:var(--accent-12);filter:var(--base-button-classic-high-contrast-active-filter);box-shadow:var(--base-button__classic-active__shadow-front-layer),inset 0 0 0 1px var(--accent-12),var(--base-button__classic-active__shadow-bottom-layer)}.rt-BaseButton:where(.rt-variant-classic):where(:active:not([data-state=open],[data-disabled])):where(.rt-high-contrast):after{background-image:linear-gradient(var(--black-a5),transparent,var(--white-a3))}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-classic):where([data-disabled]):after{box-shadow:none;background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-BaseButton:where(.rt-variant-solid){background-color:var(--accent-9);color:var(--accent-contrast)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(:hover){background-color:var(--accent-10)}}.rt-BaseButton:where(.rt-variant-solid):where([data-state=open]){background-color:var(--accent-10)}.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){background-color:var(--accent-10);filter:var(--base-button-solid-active-filter)}@media (pointer: coarse){.rt-BaseButton:where(.rt-variant-solid):where(:active:not([data-state=open])){outline:.5em solid var(--accent-a4);outline-offset:0}}.rt-BaseButton:where(.rt-variant-solid):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--gray-1)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where([data-state=open]){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}.rt-BaseButton:where(.rt-variant-solid):where(.rt-high-contrast):where(:active:not([data-state=open])){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-active-filter)}.rt-BaseButton:where(.rt-variant-solid):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3);outline:none;filter:none}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost){color:var(--accent-a11)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-soft,.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}.rt-BaseButton:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-soft):where(:focus-visible){outline:2px solid var(--accent-8);outline-offset:-1px}@media (hover: hover){.rt-BaseButton:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-BaseButton:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-soft):where(:active:not([data-state=open])){background-color:var(--accent-a5)}.rt-BaseButton:where(.rt-variant-soft):where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-a3)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-BaseButton:where(.rt-variant-ghost):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-ghost):where(:active:not([data-state=open])){background-color:var(--accent-a4)}.rt-BaseButton:where(.rt-variant-ghost):where([data-disabled]){color:var(--gray-a8);background-color:transparent}.rt-BaseButton:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a8);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-outline):where(:hover){background-color:var(--accent-a2)}}.rt-BaseButton:where(.rt-variant-outline):where([data-state=open]){background-color:var(--accent-a2)}.rt-BaseButton:where(.rt-variant-outline):where(:active:not([data-state=open])){background-color:var(--accent-a3)}.rt-BaseButton:where(.rt-variant-outline):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--accent-a7),inset 0 0 0 1px var(--gray-a11);color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-outline):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a7);background-color:transparent}.rt-BaseButton:where(.rt-variant-surface){background-color:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-a7);color:var(--accent-a11)}@media (hover: hover){.rt-BaseButton:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--accent-a8)}}.rt-BaseButton:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:active:not([data-state=open])){background-color:var(--accent-a3);box-shadow:inset 0 0 0 1px var(--accent-a8)}.rt-BaseButton:where(.rt-variant-surface):where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-BaseButton:where(.rt-variant-surface):where(.rt-high-contrast){color:var(--accent-12)}.rt-BaseButton:where(.rt-variant-surface):where([data-disabled]){color:var(--gray-a8);box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a2)}.rt-Button:where(:not(.rt-variant-ghost)) :where(svg){opacity:.9}.rt-Button:where(.rt-variant-ghost){padding:var(--button-ghost-padding-y) var(--button-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--button-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--button-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--button-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--button-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-Button:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Button:where(.rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}@media (min-width: 520px){.rt-Button:where(.xs\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xs\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xs\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xs\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xs\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 768px){.rt-Button:where(.sm\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.sm\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.sm\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.sm\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.sm\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1024px){.rt-Button:where(.md\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.md\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.md\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.md\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.md\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.md\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.md\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.md\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1280px){.rt-Button:where(.lg\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.lg\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.lg\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.lg\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.lg\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}@media (min-width: 1640px){.rt-Button:where(.xl\:rt-r-size-1){gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-Button:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-Button:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-2){gap:var(--space-2);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-Button:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-Button:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){gap:var(--space-1);--button-ghost-padding-x: var(--space-2);--button-ghost-padding-y: var(--space-1)}.rt-Button:where(.xl\:rt-r-size-3){gap:var(--space-3);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}.rt-Button:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-Button:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-3);--button-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-Button:where(.xl\:rt-r-size-4){gap:var(--space-3);font-size:var(--font-size-4);line-height:var(--line-height-4);letter-spacing:var(--letter-spacing-4)}.rt-Button:where(.xl\:rt-r-size-4):where(:not(.rt-variant-ghost)){padding-left:var(--space-5);padding-right:var(--space-5)}.rt-Button:where(.xl\:rt-r-size-4):where(.rt-variant-ghost){gap:var(--space-2);--button-ghost-padding-x: var(--space-4);--button-ghost-padding-y: var(--space-2)}}.rt-Button:where(:not(.rt-variant-ghost)){font-weight:var(--font-weight-medium)}.rt-CalloutRoot{box-sizing:border-box;display:grid;align-items:flex-start;justify-content:flex-start;text-align:left;color:var(--accent-a11)}.rt-CalloutRoot:where(.rt-high-contrast){color:var(--accent-12)}.rt-CalloutIcon{display:flex;align-items:center;grid-column-start:-2;height:var(--callout-icon-height)}.rt-CalloutRoot>:where(:not(.rt-CalloutIcon)){grid-column-start:-1}.rt-CalloutRoot:where(.rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}@media (min-width: 520px){.rt-CalloutRoot:where(.xs\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xs\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 768px){.rt-CalloutRoot:where(.sm\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.sm\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1024px){.rt-CalloutRoot:where(.md\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.md\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1280px){.rt-CalloutRoot:where(.lg\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.lg\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}@media (min-width: 1640px){.rt-CalloutRoot:where(.xl\:rt-r-size-1){row-gap:var(--space-2);column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-3);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-2){row-gap:var(--space-2);column-gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-4);--callout-icon-height: var(--line-height-2)}.rt-CalloutRoot:where(.xl\:rt-r-size-3){row-gap:var(--space-3);column-gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-5);--callout-icon-height: var(--line-height-3)}}.rt-CalloutRoot:where(.rt-variant-soft){background-color:var(--accent-a3)}.rt-CalloutRoot:where(.rt-variant-surface){box-shadow:inset 0 0 0 1px var(--accent-a6);background-color:var(--accent-a2)}.rt-CalloutRoot:where(.rt-variant-outline){box-shadow:inset 0 0 0 1px var(--accent-a7)}.rt-BaseCard{display:block;position:relative;overflow:hidden;border-radius:var(--base-card-border-radius);font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--inset-border-width: var(--base-card-border-width);--inset-border-radius: var(--base-card-border-radius);padding-top:var(--base-card-padding-top);padding-right:var(--base-card-padding-right);padding-bottom:var(--base-card-padding-bottom);padding-left:var(--base-card-padding-left);box-sizing:border-box;--inset-padding-top: calc(var(--base-card-padding-top) - var(--base-card-border-width));--inset-padding-right: calc(var(--base-card-padding-right) - var(--base-card-border-width));--inset-padding-bottom: calc(var(--base-card-padding-bottom) - var(--base-card-border-width));--inset-padding-left: calc(var(--base-card-padding-left) - var(--base-card-border-width));contain:paint}.rt-BaseCard:before,.rt-BaseCard:after{content:"";position:absolute;pointer-events:none;transition:inherit;border-radius:calc(var(--base-card-border-radius) - var(--base-card-border-width));inset:var(--base-card-border-width)}.rt-BaseCard:before{z-index:-1}.rt-Card{--base-card-padding-top: var(--card-padding);--base-card-padding-right: var(--card-padding);--base-card-padding-bottom: var(--card-padding);--base-card-padding-left: var(--card-padding);--base-card-border-radius: var(--card-border-radius);--base-card-border-width: var(--card-border-width)}.rt-Card:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-Card:where(:focus-visible):after{outline:inherit}.rt-Card:where(:focus-visible):where(:active:not([data-state=open])):before{background-image:linear-gradient(var(--focus-a2),var(--focus-a2))}.rt-Card:where(.rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}@media (min-width: 520px){.rt-Card:where(.xs\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xs\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xs\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 768px){.rt-Card:where(.sm\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.sm\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.sm\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1024px){.rt-Card:where(.md\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.md\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.md\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1280px){.rt-Card:where(.lg\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.lg\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.lg\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}@media (min-width: 1640px){.rt-Card:where(.xl\:rt-r-size-1){--card-padding: var(--space-3);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-2){--card-padding: var(--space-4);--card-border-radius: var(--radius-4)}.rt-Card:where(.xl\:rt-r-size-3){--card-padding: var(--space-5);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-4){--card-padding: var(--space-6);--card-border-radius: var(--radius-5)}.rt-Card:where(.xl\:rt-r-size-5){--card-padding: var(--space-8);--card-border-radius: var(--radius-6)}}.rt-Card:where(.rt-variant-surface){--card-border-width: 1px;--card-background-color: var(--color-panel)}.rt-Card:where(.rt-variant-surface):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-surface):after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-surface-hover-box-shadow)}.rt-Card:where(.rt-variant-surface):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-surface-active-box-shadow)}.rt-Card:where(.rt-variant-classic){--card-border-width: 1px;--card-background-color: var(--color-panel);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):before{background-color:var(--card-background-color);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel)}.rt-Card:where(.rt-variant-classic):after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where([data-state=open]):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])){transition-duration:40ms;box-shadow:var(--base-card-classic-active-box-shadow-outer)}.rt-Card:where(.rt-variant-classic):where(:any-link,button,label):where(:active:not([data-state=open])):after{box-shadow:var(--base-card-classic-active-box-shadow-inner)}.rt-Card:where(.rt-variant-ghost){--card-border-width: 0px;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--card-padding));--margin-right-override: calc(var(--margin-right) - var(--card-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--card-padding));--margin-left-override: calc(var(--margin-left) - var(--card-padding));margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Card:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}@media (hover: hover){.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:hover):where(:focus-visible){background-color:var(--focus-a2)}}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]){background-color:var(--gray-a3)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where([data-state=open]):where(:focus-visible){background-color:var(--focus-a2)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])){background-color:var(--gray-a4)}.rt-Card:where(.rt-variant-ghost):where(:any-link,button,label):where(:active:not([data-state=open])):where(:focus-visible){background-color:var(--focus-a2)}@media (pointer: coarse){.rt-Card:where(:any-link,button,label):where(:active:not(:focus-visible,[data-state=open])):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-BaseCheckboxRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-checkbox);height:var(--skeleton-height, var(--line-height, var(--checkbox-size)));--skeleton-height-override: var(--checkbox-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--checkbox-border-radius)}.rt-BaseCheckboxRoot:before{content:"";display:block;height:var(--checkbox-size);width:var(--checkbox-size);border-radius:var(--checkbox-border-radius)}.rt-BaseCheckboxIndicator{position:absolute;width:var(--checkbox-indicator-size);height:var(--checkbox-indicator-size);transform:translate(-50%,-50%);top:50%;left:50%}.rt-BaseCheckboxRoot:where(.rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}@media (min-width: 520px){.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xs\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 768px){.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.sm\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1024px){.rt-BaseCheckboxRoot:where(.md\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.md\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1280px){.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.lg\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}@media (min-width: 1640px){.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-1){--checkbox-size: calc(var(--space-4) * .875);--checkbox-indicator-size: calc(9px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * .875)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-2){--checkbox-size: var(--space-4);--checkbox-indicator-size: calc(10px * var(--scaling));--checkbox-border-radius: var(--radius-1)}.rt-BaseCheckboxRoot:where(.xl\:rt-r-size-3){--checkbox-size: calc(var(--space-4) * 1.25);--checkbox-indicator-size: calc(12px * var(--scaling));--checkbox-border-radius: calc(var(--radius-1) * 1.25)}}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-surface):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a3),var(--shadow-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a1));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-contrast)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast):before{background-color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-1)}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled):before{box-shadow:var(--shadow-1);background-color:transparent;background-image:none}.rt-BaseCheckboxRoot:where(.rt-variant-classic):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):before{background-color:var(--accent-a5)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]) :where(.rt-BaseCheckboxIndicator){color:var(--accent-a11)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where([data-state=checked],[data-state=indeterminate]):where(.rt-high-contrast) :where(.rt-BaseCheckboxIndicator){color:var(--accent-12)}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled):before{background-color:transparent}.rt-BaseCheckboxRoot:where(.rt-variant-soft):where(:disabled) :where(.rt-BaseCheckboxIndicator){color:var(--gray-a8)}.rt-CheckboxCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-CheckboxCardsItem:where(:has(:focus-visible)){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-CheckboxCardsItem:where(:has(:focus-visible)):after{outline:inherit}.rt-CheckboxCardsItem>*{pointer-events:none}.rt-CheckboxCardsItem>:where(svg){flex-shrink:0}.rt-CheckboxCardCheckbox{position:absolute;right:var(--checkbox-cards-item-padding-left)}.rt-CheckboxCardsItem{--checkbox-cards-item-padding-right: calc(var(--checkbox-cards-item-padding-left) * 2 + var(--checkbox-cards-item-checkbox-size));--base-card-padding-top: var(--checkbox-cards-item-padding-top);--base-card-padding-right: var(--checkbox-cards-item-padding-right);--base-card-padding-bottom: var(--checkbox-cards-item-padding-bottom);--base-card-padding-left: var(--checkbox-cards-item-padding-left);--base-card-border-radius: var(--checkbox-cards-item-border-radius);--base-card-border-width: var(--checkbox-cards-item-border-width);display:flex;align-items:center;gap:var(--space-2);cursor:var(--cursor-button);-webkit-tap-highlight-color:transparent}.rt-CheckboxCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-CheckboxCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-3) / 1.2);--checkbox-cards-item-padding-left: var(--space-3);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * .875)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--checkbox-cards-item-padding-top: calc(var(--space-4) * .875);--checkbox-cards-item-padding-bottom: calc(var(--space-4) * .875);--checkbox-cards-item-padding-left: var(--space-4);--checkbox-cards-item-border-radius: var(--radius-3);--checkbox-cards-item-checkbox-size: var(--space-4)}.rt-CheckboxCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--checkbox-cards-item-padding-top: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-bottom: calc(var(--space-5) / 1.2);--checkbox-cards-item-padding-left: var(--space-5);--checkbox-cards-item-border-radius: var(--radius-4);--checkbox-cards-item-checkbox-size: calc(var(--space-4) * 1.25)}}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-surface) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem{--checkbox-cards-item-border-width: 1px;--checkbox-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:before{background-color:var(--checkbox-cards-item-background-color)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-CheckboxCardsRoot.rt-variant-classic) .rt-CheckboxCardsItem:where(:not(:has(:disabled)):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}@media (pointer: coarse){.rt-CheckboxCardsItem:where(:active:not(:focus-visible)):before{background-image:linear-gradient(var(--gray-a4),var(--gray-a4))}}.rt-CheckboxCardsItem:where(:has(:disabled)){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-CheckboxCardsItem:where(:has(:disabled)):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-CheckboxCardsItem:where(:has(:disabled))::selection{background-color:var(--gray-a5)}.rt-CheckboxGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-CheckboxGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-CheckboxGroupItemCheckbox:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxGroupItemCheckbox:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxGroupItemCheckbox:where(:disabled):before{background-color:var(--gray-a3)}.rt-CheckboxGroupItemInner{min-width:0}.rt-CheckboxRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-CheckboxRoot:where(:disabled){cursor:var(--cursor-disabled)}.rt-CheckboxRoot:where(:disabled):before{background-color:var(--gray-a3)}.rt-Code{--code-variant-font-size-adjust: calc(var(--code-font-size-adjust) * .95);font-family:var(--code-font-family);font-size:calc(var(--code-variant-font-size-adjust) * 1em);font-style:var(--code-font-style);font-weight:var(--code-font-weight);line-height:1.25;letter-spacing:calc(var(--code-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));border-radius:calc((.5px + .2em) * var(--radius-factor));box-sizing:border-box;padding-top:var(--code-padding-top);padding-left:var(--code-padding-left);padding-bottom:var(--code-padding-bottom);padding-right:var(--code-padding-right);height:-moz-fit-content;height:fit-content}.rt-Code :where(.rt-Code){font-size:inherit}.rt-Code:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Code:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Code:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Code:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Code:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Code:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--code-variant-font-size-adjust));line-height:var(--line-height-1);--letter-spacing: var(--letter-spacing-1)}.rt-Code:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--code-variant-font-size-adjust));line-height:var(--line-height-2);--letter-spacing: var(--letter-spacing-2)}.rt-Code:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--code-variant-font-size-adjust));line-height:var(--line-height-3);--letter-spacing: var(--letter-spacing-3)}.rt-Code:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--code-variant-font-size-adjust));line-height:var(--line-height-4);--letter-spacing: var(--letter-spacing-4)}.rt-Code:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--code-variant-font-size-adjust));line-height:var(--line-height-5);--letter-spacing: var(--letter-spacing-5)}.rt-Code:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--code-variant-font-size-adjust));line-height:var(--line-height-6);--letter-spacing: var(--letter-spacing-6)}.rt-Code:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--code-variant-font-size-adjust));line-height:var(--line-height-7);--letter-spacing: var(--letter-spacing-7)}.rt-Code:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--code-variant-font-size-adjust));line-height:var(--line-height-8);--letter-spacing: var(--letter-spacing-8)}.rt-Code:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--code-variant-font-size-adjust));line-height:var(--line-height-9);--letter-spacing: var(--letter-spacing-9)}}.rt-Code:where(.rt-variant-ghost){--code-variant-font-size-adjust: var(--code-font-size-adjust);padding:0}.rt-Code:where(.rt-variant-ghost):where([data-accent-color]){color:var(--accent-a11)}.rt-Code:where(.rt-variant-ghost):where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Code:where(.rt-variant-ghost):where(.rt-high-contrast){color:var(--accent-12)}.rt-Code:where(.rt-variant-solid){background-color:var(--accent-a9);color:var(--accent-contrast)}.rt-Code:where(.rt-variant-solid)::selection{background-color:var(--accent-7);color:var(--accent-12)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast){background-color:var(--accent-12);color:var(--accent-1)}.rt-Code:where(.rt-variant-solid):where(.rt-high-contrast)::selection{background-color:var(--accent-a11);color:var(--accent-1)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid),.rt-Code:where(.rt-variant-solid):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(:hover){background-color:var(--accent-10)}:where(.rt-Link) .rt-Code:where(.rt-variant-solid):where(.rt-high-contrast:hover),.rt-Code:where(.rt-variant-solid):where(:any-link,button):where(.rt-high-contrast:hover){background-color:var(--accent-12);filter:var(--base-button-solid-high-contrast-hover-filter)}}.rt-Code:where(.rt-variant-soft){background-color:var(--accent-a3);color:var(--accent-a11)}.rt-Code:where(.rt-variant-soft):where(.rt-high-contrast){color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-soft),.rt-Code:where(.rt-variant-soft):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-soft):where(:hover),.rt-Code:where(.rt-variant-soft):where(:any-link,button):where(:hover){background-color:var(--accent-a4)}}.rt-Code:where(.rt-variant-outline){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a8);color:var(--accent-a11)}.rt-Code:where(.rt-variant-outline):where(.rt-high-contrast){box-shadow:inset 0 0 0 max(1px,.033em) var(--accent-a7),inset 0 0 0 max(1px,.033em) var(--gray-a11);color:var(--accent-12)}:where(.rt-Link) .rt-Code:where(.rt-variant-outline),.rt-Code:where(.rt-variant-outline):where(:any-link,button){isolation:isolate}@media (hover: hover){:where(.rt-Link) .rt-Code:where(.rt-variant-outline):where(:hover),.rt-Code:where(.rt-variant-outline):where(:any-link,button):where(:hover){background-color:var(--accent-a2)}}.rt-BaseMenuContent{--scrollarea-scrollbar-vertical-margin-top: var(--base-menu-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--base-menu-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--base-menu-content-padding);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background-color:var(--base-menu-bg);--base-menu-bg: var(--color-panel-solid);box-shadow:var(--shadow-5)}.rt-BaseMenuViewport{flex:1 1 0%;display:flex;flex-direction:column;overflow:auto;padding:var(--base-menu-content-padding);box-sizing:border-box}:where(.rt-BaseMenuContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-BaseMenuViewport{padding-right:var(--space-3)}.rt-BaseMenuItem{display:flex;align-items:center;gap:var(--space-2);height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;position:relative;outline:none;scroll-margin:var(--base-menu-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-BaseMenuShortcut{display:flex;align-items:center;margin-left:auto;padding-left:var(--space-4);color:var(--gray-a11)}.rt-BaseMenuSubTriggerIcon{color:var(--gray-12);margin-right:calc(-2px * var(--scaling))}.rt-BaseMenuItemIndicator{position:absolute;left:0;width:var(--base-menu-item-padding-left);display:inline-flex;align-items:center;justify-content:center}.rt-BaseMenuSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--base-menu-item-padding-left);margin-right:var(--base-menu-item-padding-right);background-color:var(--gray-a6)}.rt-BaseMenuLabel{display:flex;align-items:center;height:var(--base-menu-item-height);padding-left:var(--base-menu-item-padding-left);padding-right:var(--base-menu-item-padding-right);box-sizing:border-box;color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-BaseMenuItem)+.rt-BaseMenuLabel{margin-top:var(--space-2)}.rt-BaseMenuArrow{fill:var(--base-menu-bg)}.rt-BaseMenuContent:where(.rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}@media (min-width: 520px){.rt-BaseMenuContent:where(.xs\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xs\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 768px){.rt-BaseMenuContent:where(.sm\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.sm\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1024px){.rt-BaseMenuContent:where(.md\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.md\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.md\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.md\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1280px){.rt-BaseMenuContent:where(.lg\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.lg\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}@media (min-width: 1640px){.rt-BaseMenuContent:where(.xl\:rt-r-size-1){--base-menu-content-padding: var(--space-1);--base-menu-item-padding-left: calc(var(--space-5) / 1.2);--base-menu-item-padding-right: var(--space-2);--base-menu-item-height: var(--space-5);border-radius:var(--radius-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuLabel){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-1):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: calc(var(--space-5) / 1.2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2){--base-menu-content-padding: var(--space-2);--base-menu-item-padding-left: var(--space-3);--base-menu-item-padding-right: var(--space-3);--base-menu-item-height: var(--space-6);border-radius:var(--radius-4)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItem){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:var(--radius-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuLabel){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2) :where(.rt-BaseMenuItemIndicatorIcon,.rt-BaseMenuSubTriggerIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:not(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem))){--base-menu-item-padding-left: var(--space-3)}.rt-BaseMenuContent:where(.xl\:rt-r-size-2):where(:has(.rt-BaseMenuCheckboxItem,.rt-BaseMenuRadioItem)){--base-menu-item-padding-left: var(--space-5)}}.rt-BaseMenuItem:where([data-accent-color]){color:var(--accent-a11)}.rt-BaseMenuItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-BaseMenuItem:where([data-disabled],[data-highlighted]) :where(.rt-BaseMenuShortcut),.rt-BaseMenuSubTrigger:where([data-state=open]) :where(.rt-BaseMenuShortcut){color:inherit}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--gray-a3)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]) :where(.rt-BaseMenuSubTriggerIcon){color:var(--accent-1)}.rt-BaseMenuContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-BaseMenuItem[data-highlighted]):where([data-accent-color]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuSubTrigger[data-state=open]){background-color:var(--accent-a3)}.rt-BaseMenuContent:where(.rt-variant-soft) :where(.rt-BaseMenuItem[data-highlighted]){background-color:var(--accent-a4)}.rt-ContextMenuContent{max-height:var(--radix-context-menu-content-available-height);transform-origin:var(--radix-context-menu-content-transform-origin)}.rt-DataListRoot{overflow-wrap:anywhere;font-family:var(--default-font-family);font-weight:var(--font-weight-normal);font-style:normal;text-align:start;--data-list-leading-trim-start: calc(var(--default-leading-trim-start) - var(--line-height) / 2);--data-list-leading-trim-end: calc(var(--default-leading-trim-end) - var(--line-height) / 2)}.rt-DataListLabel{display:flex;color:var(--gray-a11)}.rt-DataListLabel:where(.rt-high-contrast){color:var(--gray-12)}.rt-DataListLabel:where([data-accent-color]){color:var(--accent-a11)}.rt-DataListLabel:where([data-accent-color]):where(.rt-high-contrast){color:var(--accent-12)}.rt-DataListValue{display:flex;margin:0;min-width:0px;margin-top:var(--data-list-value-margin-top);margin-bottom:var(--data-list-value-margin-bottom)}.rt-DataListItem{--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}:where(.rt-DataListItem:first-child) .rt-DataListValue{margin-top:var(--data-list-first-item-value-margin-top)}:where(.rt-DataListItem:last-child) .rt-DataListValue{margin-bottom:var(--data-list-last-item-value-margin-bottom)}.rt-DataListRoot:where(.rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.rt-r-size-3){gap:calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xs\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xs\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.sm\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.sm\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.md\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.md\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.lg\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.lg\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-size-1){gap:var(--space-3)}.rt-DataListRoot:where(.xl\:rt-r-size-2){gap:var(--space-4)}.rt-DataListRoot:where(.xl\:rt-r-size-3){gap:calc(var(--space-4) * 1.25)}}.rt-DataListRoot:where(.rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xs\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xs\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.sm\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.sm\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.md\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.md\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.lg\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.lg\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical){display:flex;flex-direction:column}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListItem){--data-list-value-margin-top: 0px;--data-list-value-margin-bottom: 0px;--data-list-first-item-value-margin-top: 0px;--data-list-last-item-value-margin-bottom: 0px;display:flex;flex-direction:column;gap:var(--space-1)}.rt-DataListRoot:where(.xl\:rt-r-orientation-vertical) :where(.rt-DataListLabel){min-width:0px}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal){display:grid;grid-template-columns:auto 1fr}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListItem){--data-list-value-margin-top: var(--data-list-value-trim-start);--data-list-value-margin-bottom: var(--data-list-value-trim-end);--data-list-first-item-value-margin-top: var(--data-list-first-item-value-trim-start);--data-list-last-item-value-margin-bottom: var(--data-list-last-item-value-trim-end);display:grid;grid-template-columns:inherit;grid-template-columns:subgrid;gap:inherit;grid-column:span 2;align-items:baseline}.rt-DataListRoot:where(.xl\:rt-r-orientation-horizontal) :where(.rt-DataListLabel){min-width:120px}}.rt-DataListLabel:before,.rt-DataListValue:before{content:"‍"}.rt-DataListItem:where(.rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}@media (min-width: 520px){.rt-DataListItem:where(.xs\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xs\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xs\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 768px){.rt-DataListItem:where(.sm\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.sm\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.sm\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1024px){.rt-DataListItem:where(.md\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.md\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.md\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1280px){.rt-DataListItem:where(.lg\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.lg\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.lg\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}@media (min-width: 1640px){.rt-DataListItem:where(.xl\:rt-r-ai-baseline){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-start){--data-list-value-trim-start: 0px;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-center){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: -.25em;--data-list-first-item-value-trim-start: -.25em;--data-list-last-item-value-trim-end: -.25em}.rt-DataListItem:where(.xl\:rt-r-ai-end){--data-list-value-trim-start: -.25em;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}.rt-DataListItem:where(.xl\:rt-r-ai-stretch){--data-list-value-trim-start: 0px;--data-list-value-trim-end: 0px;--data-list-first-item-value-trim-start: 0px;--data-list-last-item-value-trim-end: 0px}}.rt-DataListItem:where(:first-child){margin-top:var(--leading-trim-start)}.rt-DataListItem:where(:last-child){margin-bottom:var(--leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}@media (min-width: 520px){.rt-DataListRoot:where(.xs\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xs\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xs\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 768px){.rt-DataListRoot:where(.sm\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.sm\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.sm\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1024px){.rt-DataListRoot:where(.md\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.md\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.md\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1280px){.rt-DataListRoot:where(.lg\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.lg\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.lg\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}@media (min-width: 1640px){.rt-DataListRoot:where(.xl\:rt-r-trim-normal){--leading-trim-start: initial;--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-start){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: initial}.rt-DataListRoot:where(.xl\:rt-r-trim-end){--leading-trim-start: initial;--leading-trim-end: var(--data-list-leading-trim-end)}.rt-DataListRoot:where(.xl\:rt-r-trim-both){--leading-trim-start: var(--data-list-leading-trim-start);--leading-trim-end: var(--data-list-leading-trim-end)}}.rt-DropdownMenuContent{max-height:var(--radix-dropdown-menu-content-available-height);transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.rt-Em{box-sizing:border-box;font-family:var(--em-font-family);font-size:calc(var(--em-font-size-adjust) * 1em);font-style:var(--em-font-style);font-weight:var(--em-font-weight);line-height:1.25;letter-spacing:calc(var(--em-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Em :where(.rt-Em){font-size:inherit}.rt-Heading{--leading-trim-start: var(--heading-leading-trim-start);--leading-trim-end: var(--heading-leading-trim-end);font-family:var(--heading-font-family);font-style:var(--heading-font-style);font-weight:var(--font-weight-bold);line-height:var(--line-height)}:where(.rt-Heading){margin:0}.rt-Heading:where([data-accent-color]){color:var(--accent-a11)}.rt-Heading:where([data-accent-color].rt-high-contrast),:where([data-accent-color]:not(.radix-themes)) .rt-Heading:where(.rt-high-contrast){color:var(--accent-12)}.rt-Heading:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}@media (min-width: 520px){.rt-Heading:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 768px){.rt-Heading:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1024px){.rt-Heading:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1280px){.rt-Heading:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}@media (min-width: 1640px){.rt-Heading:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-1);letter-spacing:calc(var(--letter-spacing-1) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-2);letter-spacing:calc(var(--letter-spacing-2) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-3);letter-spacing:calc(var(--letter-spacing-3) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-4);letter-spacing:calc(var(--letter-spacing-4) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-5);letter-spacing:calc(var(--letter-spacing-5) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-6);letter-spacing:calc(var(--letter-spacing-6) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-7);letter-spacing:calc(var(--letter-spacing-7) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-8);letter-spacing:calc(var(--letter-spacing-8) + var(--heading-letter-spacing))}.rt-Heading:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * var(--heading-font-size-adjust));--line-height: var(--heading-line-height-9);letter-spacing:calc(var(--letter-spacing-9) + var(--heading-letter-spacing))}}.rt-HoverCardContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-4);overflow:auto;position:relative;--inset-padding-top: var(--hover-card-content-padding);--inset-padding-right: var(--hover-card-content-padding);--inset-padding-bottom: var(--hover-card-content-padding);--inset-padding-left: var(--hover-card-content-padding);padding:var(--hover-card-content-padding);box-sizing:border-box;transform-origin:var(--radix-hover-card-content-transform-origin)}.rt-HoverCardContent:where(.rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-HoverCardContent:where(.xs\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xs\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-HoverCardContent:where(.sm\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.sm\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-HoverCardContent:where(.md\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.md\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-HoverCardContent:where(.lg\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.lg\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-HoverCardContent:where(.xl\:rt-r-size-1){--hover-card-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-2){--hover-card-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-HoverCardContent:where(.xl\:rt-r-size-3){--hover-card-content-padding: var(--space-5);border-radius:var(--radius-5)}}.rt-IconButton:where(:not(.rt-variant-ghost)){height:var(--base-button-height);width:var(--base-button-height)}.rt-IconButton:where(.rt-variant-ghost){padding:var(--icon-button-ghost-padding);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--icon-button-ghost-padding));--margin-right-override: calc(var(--margin-right) - var(--icon-button-ghost-padding));--margin-bottom-override: calc(var(--margin-bottom) - var(--icon-button-ghost-padding));--margin-left-override: calc(var(--margin-left) - var(--icon-button-ghost-padding));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-IconButton:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}@media (min-width: 520px){.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xs\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 768px){.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.sm\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1024px){.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.md\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1280px){.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.lg\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}@media (min-width: 1640px){.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-1){--icon-button-ghost-padding: var(--space-1)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-2){--icon-button-ghost-padding: calc(var(--space-1) * 1.5)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-3){--icon-button-ghost-padding: var(--space-2)}.rt-IconButton:where(.rt-variant-ghost):where(.xl\:rt-r-size-4){--icon-button-ghost-padding: var(--space-3)}}.rt-Inset{box-sizing:border-box;--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;overflow:hidden;margin-top:var(--margin-top-override);margin-right:var(--margin-right-override);margin-bottom:var(--margin-bottom-override);margin-left:var(--margin-left-override)}:where(.rt-Inset)>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-Inset:where(.rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}@media (min-width: 520px){.rt-Inset:where(.xs\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xs\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xs\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xs\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xs\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xs\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xs\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 768px){.rt-Inset:where(.sm\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.sm\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.sm\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.sm\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.sm\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.sm\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.sm\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1024px){.rt-Inset:where(.md\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.md\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.md\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.md\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.md\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.md\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.md\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1280px){.rt-Inset:where(.lg\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.lg\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.lg\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.lg\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.lg\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.lg\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.lg\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}@media (min-width: 1640px){.rt-Inset:where(.xl\:rt-r-clip-border-box){--inset-border-radius-calc: calc(var(--inset-border-radius, 0px) - var(--inset-border-width, 0px));--inset-padding-top-calc: var(--inset-padding-top, 0px);--inset-padding-right-calc: var(--inset-padding-right, 0px);--inset-padding-bottom-calc: var(--inset-padding-bottom, 0px);--inset-padding-left-calc: var(--inset-padding-left, 0px)}.rt-Inset:where(.xl\:rt-r-clip-padding-box){--inset-border-radius-calc: var(--inset-border-radius, 0px);--inset-padding-top-calc: calc(var(--inset-padding-top, 0px) + var(--inset-border-width, 0px));--inset-padding-right-calc: calc(var(--inset-padding-right, 0px) + var(--inset-border-width, 0px));--inset-padding-bottom-calc: calc(var(--inset-padding-bottom, 0px) + var(--inset-border-width, 0px));--inset-padding-left-calc: calc(var(--inset-padding-left, 0px) + var(--inset-border-width, 0px))}.rt-Inset:where(.xl\:rt-r-side-top){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-bottom){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-left){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));--margin-right-override: var(--margin-right);border-top-left-radius:var(--inset-border-radius-calc);border-top-right-radius:0;border-bottom-left-radius:var(--inset-border-radius-calc);border-bottom-right-radius:0}.rt-Inset:where(.xl\:rt-r-side-right){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-top-left-radius:0;border-top-right-radius:var(--inset-border-radius-calc);border-bottom-left-radius:0;border-bottom-right-radius:var(--inset-border-radius-calc)}.rt-Inset:where(.xl\:rt-r-side-x){--margin-top-override: var(--margin-top);--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: var(--margin-bottom);--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:0}.rt-Inset:where(.xl\:rt-r-side-y){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: var(--margin-right);--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: var(--margin-left);border-radius:0}.rt-Inset:where(.xl\:rt-r-side-all){--margin-top-override: calc(var(--margin-top) - var(--inset-padding-top-calc));--margin-right-override: calc(var(--margin-right) - var(--inset-padding-right-calc));--margin-bottom-override: calc(var(--margin-bottom) - var(--inset-padding-bottom-calc));--margin-left-override: calc(var(--margin-left) - var(--inset-padding-left-calc));border-radius:var(--inset-border-radius-calc)}}.rt-Kbd{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--default-font-family);font-weight:400;vertical-align:text-top;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;top:-.03em;font-size:.75em;min-width:1.75em;line-height:1.7em;box-sizing:border-box;padding-left:.5em;padding-right:.5em;padding-bottom:.05em;word-spacing:-.1em;border-radius:calc(var(--radius-factor) * .35em);letter-spacing:var(--letter-spacing, var(--default-letter-spacing));height:-moz-fit-content;height:fit-content;color:var(--gray-12);background-color:var(--gray-1);box-shadow:var(--kbd-box-shadow);transition:box-shadow .12s,background-color .12s}@media (hover: hover){.rt-Kbd:where(:any-link,button):where(:hover){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}}.rt-Kbd:where(:any-link,button):where([data-state=open]){transition-duration:40ms,40ms;background-color:var(--color-background);box-shadow:var(--kbd-box-shadow),0 0 0 .05em var(--gray-a5)}.rt-Kbd:where(:any-link,button):where(:active:not([data-state=open])){padding-top:.05em;padding-bottom:0;transition-duration:40ms,40ms;background-color:var(--gray-2);box-shadow:inset 0 .05em var(--black-a3),0 0 0 .05em var(--gray-a7)}.rt-Kbd:where(:any-link,button):where(:focus-visible){outline:2px solid var(--focus-8)}.rt-Kbd:where(.rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}@media (min-width: 520px){.rt-Kbd:where(.xs\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xs\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xs\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xs\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xs\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xs\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xs\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xs\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xs\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 768px){.rt-Kbd:where(.sm\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.sm\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.sm\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.sm\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.sm\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.sm\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.sm\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.sm\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.sm\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1024px){.rt-Kbd:where(.md\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.md\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.md\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.md\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.md\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.md\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.md\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.md\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.md\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1280px){.rt-Kbd:where(.lg\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.lg\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.lg\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.lg\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.lg\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.lg\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.lg\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.lg\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.lg\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}@media (min-width: 1640px){.rt-Kbd:where(.xl\:rt-r-size-1){font-size:calc(var(--font-size-1) * .8);--letter-spacing: var(--letter-spacing-1)}.rt-Kbd:where(.xl\:rt-r-size-2){font-size:calc(var(--font-size-2) * .8);--letter-spacing: var(--letter-spacing-2)}.rt-Kbd:where(.xl\:rt-r-size-3){font-size:calc(var(--font-size-3) * .8);--letter-spacing: var(--letter-spacing-3)}.rt-Kbd:where(.xl\:rt-r-size-4){font-size:calc(var(--font-size-4) * .8);--letter-spacing: var(--letter-spacing-4)}.rt-Kbd:where(.xl\:rt-r-size-5){font-size:calc(var(--font-size-5) * .8);--letter-spacing: var(--letter-spacing-5)}.rt-Kbd:where(.xl\:rt-r-size-6){font-size:calc(var(--font-size-6) * .8);--letter-spacing: var(--letter-spacing-6)}.rt-Kbd:where(.xl\:rt-r-size-7){font-size:calc(var(--font-size-7) * .8);--letter-spacing: var(--letter-spacing-7)}.rt-Kbd:where(.xl\:rt-r-size-8){font-size:calc(var(--font-size-8) * .8);--letter-spacing: var(--letter-spacing-8)}.rt-Kbd:where(.xl\:rt-r-size-9){font-size:calc(var(--font-size-9) * .8);--letter-spacing: var(--letter-spacing-9)}}.rt-Link:where(:any-link,button){cursor:var(--cursor-link);text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:min(2px,max(1px,.05em));text-underline-offset:calc(.025em + 2px);text-decoration-color:var(--accent-a5)}.rt-Link:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where([data-accent-color=""]){color:var(--accent-12)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button){text-decoration-color:color-mix(in oklab,var(--accent-a5),var(--gray-a6))}}@media (pointer: coarse){.rt-Link:where(:any-link,button):where(:active:not(:focus-visible,[data-state=open])){outline:.75em solid var(--accent-a4);outline-offset:-.6em}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-line:underline;text-decoration-color:var(--accent-a6)}@supports (color: color-mix(in oklab,white,black)){.rt-Link:where(:any-link,button):where(.rt-underline-auto):where(.rt-high-contrast),:where([data-accent-color]:not(.radix-themes,.rt-high-contrast)) .rt-Link:where(:any-link,button):where(.rt-underline-auto):where([data-accent-color=""]){text-decoration-color:color-mix(in oklab,var(--accent-a6),var(--gray-a6))}}@media (hover: hover){.rt-Link:where(:any-link,button):where(.rt-underline-hover):where(:hover){text-decoration-line:underline}}.rt-Link:where(:any-link,button):where(.rt-underline-always){text-decoration-line:underline}.rt-Link:where(:focus-visible){text-decoration-line:none;border-radius:calc(.07em * var(--radius-factor));outline-color:var(--focus-8);outline-width:2px;outline-style:solid;outline-offset:2px}.rt-Link:where(:has(.rt-Code:not(.rt-variant-ghost):only-child)){text-decoration-color:transparent}.rt-PopoverContent{background-color:var(--color-panel-solid);box-shadow:var(--shadow-5);min-width:var(--radix-popover-trigger-width);outline:0;overflow:auto;position:relative;--inset-padding-top: var(--popover-content-padding);--inset-padding-right: var(--popover-content-padding);--inset-padding-bottom: var(--popover-content-padding);--inset-padding-left: var(--popover-content-padding);padding:var(--popover-content-padding);box-sizing:border-box;transform-origin:var(--radix-popover-content-transform-origin)}.rt-PopoverContent:where(.rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}@media (min-width: 520px){.rt-PopoverContent:where(.xs\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xs\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xs\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 768px){.rt-PopoverContent:where(.sm\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.sm\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.sm\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1024px){.rt-PopoverContent:where(.md\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.md\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.md\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1280px){.rt-PopoverContent:where(.lg\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.lg\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.lg\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}@media (min-width: 1640px){.rt-PopoverContent:where(.xl\:rt-r-size-1){--popover-content-padding: var(--space-3);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-2){--popover-content-padding: var(--space-4);border-radius:var(--radius-4)}.rt-PopoverContent:where(.xl\:rt-r-size-3){--popover-content-padding: var(--space-5);border-radius:var(--radius-5)}.rt-PopoverContent:where(.xl\:rt-r-size-4){--popover-content-padding: var(--space-6);border-radius:var(--radius-5)}}.rt-ProgressRoot{--progress-value: 0;--progress-max: 100;--progress-duration: 5s;pointer-events:none;position:relative;overflow:hidden;flex-grow:1;height:var(--progress-height);border-radius:max(calc(var(--radius-factor) * var(--progress-height) / 3),calc(var(--radius-factor) * var(--radius-thumb)))}.rt-ProgressRoot:after{position:absolute;inset:0;content:"";border-radius:inherit}.rt-ProgressIndicator{display:block;height:100%;width:100%;transform:scaleX(calc(var(--progress-value) / var(--progress-max)));transform-origin:left center;transition:transform .12s}.rt-ProgressIndicator:where([data-state=indeterminate]){animation-name:rt-progress-indicator-indeterminate-grow,var(--progress-indicator-indeterminate-animation-start),var(--progress-indicator-indeterminate-animation-repeat);animation-delay:0s,calc(var(--progress-duration) + 5s),calc(var(--progress-duration) + 7.5s);animation-duration:var(--progress-duration),2.5s,5s;animation-iteration-count:1,1,infinite;animation-fill-mode:both,none,none;animation-direction:normal,normal,alternate}.rt-ProgressIndicator:where([data-state=indeterminate]):after{position:absolute;inset:0;content:"";width:400%;animation-name:rt-progress-indicator-indeterminate-shine-from-left;animation-delay:calc(var(--progress-duration) + 5s);animation-duration:5s;animation-fill-mode:backwards;animation-iteration-count:infinite;background-image:linear-gradient(to right,transparent 25%,var(--progress-indicator-after-linear-gradient),transparent 75%)}@keyframes rt-progress-indicator-indeterminate-grow{0%{transform:scaleX(.01)}20%{transform:scaleX(.1)}30%{transform:scaleX(.6)}40%,50%{transform:scaleX(.9)}to{transform:scaleX(1)}}@keyframes rt-progress-indicator-indeterminate-shine-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.rt-ProgressRoot:where(.rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.rt-r-size-3){--progress-height: var(--space-2)}@media (min-width: 520px){.rt-ProgressRoot:where(.xs\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xs\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xs\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 768px){.rt-ProgressRoot:where(.sm\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.sm\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.sm\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1024px){.rt-ProgressRoot:where(.md\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.md\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.md\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1280px){.rt-ProgressRoot:where(.lg\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.lg\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.lg\:rt-r-size-3){--progress-height: var(--space-2)}}@media (min-width: 1640px){.rt-ProgressRoot:where(.xl\:rt-r-size-1){--progress-height: var(--space-1)}.rt-ProgressRoot:where(.xl\:rt-r-size-2){--progress-height: calc(var(--space-2) * .75)}.rt-ProgressRoot:where(.xl\:rt-r-size-3){--progress-height: var(--space-2)}}.rt-ProgressRoot:where(.rt-variant-surface){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-surface-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-surface-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-surface):after{box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-ProgressRoot:where(.rt-variant-surface) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-surface-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-surface-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-classic){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-classic-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-classic-indeterminate-pulse;background-color:var(--gray-a3)}.rt-ProgressRoot:where(.rt-variant-classic):after{box-shadow:var(--shadow-1)}.rt-ProgressRoot:where(.rt-variant-classic) :where(.rt-ProgressIndicator){background-color:var(--accent-track)}@keyframes rt-progress-indicator-classic-indeterminate-fade{to{background-color:var(--accent-7)}}@keyframes rt-progress-indicator-classic-indeterminate-pulse{0%{background-color:var(--accent-7)}to{background-color:var(--accent-track)}}.rt-ProgressRoot:where(.rt-variant-soft){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-soft-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-soft-indeterminate-pulse;background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator){background-image:linear-gradient(var(--accent-a5),var(--accent-a5));background-color:var(--accent-8)}.rt-ProgressRoot:where(.rt-variant-soft) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-soft-indeterminate-fade{to{background-color:var(--accent-5)}}@keyframes rt-progress-indicator-soft-indeterminate-pulse{0%{background-color:var(--accent-5)}to{background-color:var(--accent-7)}}.rt-ProgressRoot:where(.rt-high-contrast){--progress-indicator-indeterminate-animation-start: rt-progress-indicator-high-contrast-indeterminate-fade;--progress-indicator-indeterminate-animation-repeat: rt-progress-indicator-high-contrast-indeterminate-pulse}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator){background-color:var(--accent-12)}.rt-ProgressRoot:where(.rt-high-contrast) :where(.rt-ProgressIndicator):after{opacity:.75}@keyframes rt-progress-indicator-high-contrast-indeterminate-fade{to{opacity:.8}}@keyframes rt-progress-indicator-high-contrast-indeterminate-pulse{0%{opacity:.8}to{opacity:1}}.rt-Quote{box-sizing:border-box;font-family:var(--quote-font-family);font-size:calc(var(--quote-font-size-adjust) * 1em);font-style:var(--quote-font-style);font-weight:var(--quote-font-weight);line-height:1.25;letter-spacing:calc(var(--quote-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)));color:inherit}.rt-Quote :where(.rt-Quote){font-size:inherit}.rt-RadioCardsRoot{line-height:var(--line-height);letter-spacing:var(--letter-spacing);cursor:default}.rt-RadioCardsItem{--base-card-padding-top: var(--radio-cards-item-padding-y);--base-card-padding-right: var(--radio-cards-item-padding-x);--base-card-padding-bottom: var(--radio-cards-item-padding-y);--base-card-padding-left: var(--radio-cards-item-padding-x);--base-card-border-radius: var(--radio-cards-item-border-radius);--base-card-border-width: var(--radio-cards-item-border-width);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.rt-RadioCardsItem>*{pointer-events:none}.rt-RadioCardsItem>:where(svg){flex-shrink:0}.rt-RadioCardsItem:after{outline-offset:-1px}.rt-RadioCardsRoot:where(.rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}@media (min-width: 520px){.rt-RadioCardsRoot:where(.xs\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xs\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 768px){.rt-RadioCardsRoot:where(.sm\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.sm\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1024px){.rt-RadioCardsRoot:where(.md\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.md\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1280px){.rt-RadioCardsRoot:where(.lg\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.lg\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}@media (min-width: 1640px){.rt-RadioCardsRoot:where(.xl\:rt-r-size-1){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-3);--radio-cards-item-padding-y: calc(var(--space-3) / 1.2);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);--line-height: var(--line-height-2);--letter-spacing: var(--letter-spacing-2);--radio-cards-item-padding-x: var(--space-4);--radio-cards-item-padding-y: calc(var(--space-4) * .875);--radio-cards-item-border-radius: var(--radius-3)}.rt-RadioCardsRoot:where(.xl\:rt-r-size-3){font-size:var(--font-size-3);--line-height: var(--line-height-3);--letter-spacing: var(--letter-spacing-3);--radio-cards-item-padding-x: var(--space-5);--radio-cards-item-padding-y: calc(var(--space-5) / 1.2);--radio-cards-item-border-radius: var(--radius-4)}}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:after{box-shadow:var(--base-card-surface-box-shadow)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-surface) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-surface-hover-box-shadow)}}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem{--radio-cards-item-border-width: 1px;--radio-cards-item-background-color: var(--color-surface);transition:box-shadow .12s;box-shadow:var(--base-card-classic-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:before{background-color:var(--radio-cards-item-background-color)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:after{box-shadow:var(--base-card-classic-box-shadow-inner)}@media (hover: hover){:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover){transition-duration:40ms;box-shadow:var(--base-card-classic-hover-box-shadow-outer)}:where(.rt-RadioCardsRoot.rt-variant-classic) .rt-RadioCardsItem:where(:not(:disabled):not([data-state=checked]):hover):after{box-shadow:var(--base-card-classic-hover-box-shadow-inner)}}.rt-RadioCardsItem:where([data-state=checked]):after{outline:2px solid var(--accent-indicator)}:where(.rt-RadioCardsRoot.rt-high-contrast) .rt-RadioCardsItem:where([data-state=checked]):after{outline-color:var(--accent-12)}.rt-RadioCardsItem:where(:focus-visible):after{outline:2px solid var(--focus-8)}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):before{background-image:linear-gradient(var(--focus-a3),var(--focus-a3))}.rt-RadioCardsItem:where(:focus-visible):where([data-state=checked]):after{outline-color:var(--focus-10)}.rt-RadioCardsItem:where(:disabled){cursor:var(--cursor-disabled);color:var(--gray-a9)}.rt-RadioCardsItem:where(:disabled)::selection{background-color:var(--gray-a5)}.rt-RadioCardsItem:where(:disabled):before{background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-RadioCardsItem:where(:disabled):after{outline-color:var(--gray-8)}.rt-RadioGroupRoot{display:flex;flex-direction:column;gap:var(--space-1)}.rt-RadioGroupItem{display:flex;gap:.5em;width:-moz-fit-content;width:fit-content}.rt-RadioGroupItemInner{min-width:0}.rt-BaseRadioRoot{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:top;flex-shrink:0;cursor:var(--cursor-radio);height:var(--skeleton-height, var(--line-height, var(--radio-size)));--skeleton-height-override: var(--radio-size);border-radius:var(--skeleton-radius);--skeleton-radius-override: 100%}.rt-BaseRadioRoot:where(:disabled,[data-disabled]){cursor:var(--cursor-disabled)}.rt-BaseRadioRoot:before{content:"";display:block;height:var(--radio-size);width:var(--radio-size);border-radius:100%}.rt-BaseRadioRoot:after{pointer-events:none;position:absolute;height:var(--radio-size);width:var(--radio-size);border-radius:100%;transform:scale(.4)}.rt-BaseRadioRoot:where(:checked,[data-state=checked]):after{content:""}.rt-BaseRadioRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-BaseRadioRoot:where(.rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}@media (min-width: 520px){.rt-BaseRadioRoot:where(.xs\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xs\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 768px){.rt-BaseRadioRoot:where(.sm\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.sm\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1024px){.rt-BaseRadioRoot:where(.md\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.md\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.md\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1280px){.rt-BaseRadioRoot:where(.lg\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.lg\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}@media (min-width: 1640px){.rt-BaseRadioRoot:where(.xl\:rt-r-size-1){--radio-size: calc(var(--space-4) * .875)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-2){--radio-size: var(--space-4)}.rt-BaseRadioRoot:where(.xl\:rt-r-size-3){--radio-size: calc(var(--space-4) * 1.25)}}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator)}.rt-BaseRadioRoot:where(.rt-variant-surface):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):before{box-shadow:inset 0 0 0 1px var(--gray-a6);background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-surface):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:not(:checked),[data-state=unchecked]):before{background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-7),var(--shadow-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:checked,[data-state=checked]):before{background-color:var(--accent-indicator);background-image:linear-gradient(to bottom,var(--white-a3),transparent,var(--black-a3));box-shadow:inset 0 .5px .5px var(--white-a4),inset 0 -.5px .5px var(--black-a4)}.rt-BaseRadioRoot:where(.rt-variant-classic):after{background-color:var(--accent-contrast)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):where(:checked,[data-state=checked]):before{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(.rt-high-contrast):after{background-color:var(--accent-1)}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):before{box-shadow:var(--shadow-1);background-color:var(--gray-a3);background-image:none}.rt-BaseRadioRoot:where(.rt-variant-classic):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):before{background-color:var(--accent-a4)}.rt-BaseRadioRoot:where(.rt-variant-soft):after{background-color:var(--accent-a11)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(.rt-high-contrast):after{background-color:var(--accent-12)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:focus-visible):before{outline-color:var(--accent-a8)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):before{background-color:var(--gray-a3)}.rt-BaseRadioRoot:where(.rt-variant-soft):where(:disabled,[data-disabled]):after{background-color:var(--gray-a8)}.rt-ScrollAreaRoot{display:flex;flex-direction:column;overflow:hidden;width:100%;height:100%}.rt-ScrollAreaViewport{display:flex;flex-direction:column;width:100%;height:100%}.rt-ScrollAreaViewport:where(:focus-visible)+:where(.rt-ScrollAreaViewportFocusRing){position:absolute;inset:0;pointer-events:none;outline:2px solid var(--focus-8);outline-offset:-2px}.rt-ScrollAreaViewport:where(:has(.rt-ScrollAreaScrollbar[data-orientation=horizontal])){overscroll-behavior-x:contain}.rt-ScrollAreaViewport>*{display:block!important;width:-moz-fit-content;width:fit-content;flex-grow:1}.rt-ScrollAreaScrollbar{display:flex;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--gray-a3);border-radius:var(--scrollarea-scrollbar-border-radius);animation-duration:.12s;animation-timing-function:ease-out}.rt-ScrollAreaScrollbar:where([data-orientation=vertical]){flex-direction:column;width:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-vertical-margin-top);margin-bottom:var(--scrollarea-scrollbar-vertical-margin-bottom);margin-left:var(--scrollarea-scrollbar-vertical-margin-left);margin-right:var(--scrollarea-scrollbar-vertical-margin-right)}.rt-ScrollAreaScrollbar:where([data-orientation=horizontal]){flex-direction:row;height:var(--scrollarea-scrollbar-size);margin-top:var(--scrollarea-scrollbar-horizontal-margin-top);margin-bottom:var(--scrollarea-scrollbar-horizontal-margin-bottom);margin-left:var(--scrollarea-scrollbar-horizontal-margin-left);margin-right:var(--scrollarea-scrollbar-horizontal-margin-right)}.rt-ScrollAreaThumb{position:relative;background-color:var(--gray-a8);border-radius:inherit;transition:background-color .1s}.rt-ScrollAreaThumb:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:var(--space-4);min-height:var(--space-4)}.rt-ScrollAreaScrollbar:where(.rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}@media (min-width: 520px){.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xs\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 768px){.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.sm\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1024px){.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.md\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1280px){.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.lg\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}@media (min-width: 1640px){.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-1){--scrollarea-scrollbar-size: var(--space-1);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-2){--scrollarea-scrollbar-size: var(--space-2);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}.rt-ScrollAreaScrollbar:where(.xl\:rt-r-size-3){--scrollarea-scrollbar-size: var(--space-3);--scrollarea-scrollbar-border-radius: max(var(--radius-1), var(--radius-full))}}.rt-ScrollAreaScrollbar:where([data-state=visible]){animation-name:rt-fade-in}.rt-ScrollAreaScrollbar:where([data-state=hidden]){animation-name:rt-fade-out}@media (hover: hover){.rt-ScrollAreaThumb:where(:hover){background-color:var(--gray-a9)}}.rt-SegmentedControlRoot{display:inline-grid;vertical-align:top;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch;color:var(--gray-12);background-color:var(--color-surface);background-image:linear-gradient(var(--gray-a3),var(--gray-a3));position:relative;min-width:max-content;font-family:var(--default-font-family);font-style:normal;text-align:center;isolation:isolate;border-radius:var(--segmented-control-border-radius)}.rt-SegmentedControlRoot:where([data-disabled]){color:var(--gray-a8);background-color:var(--gray-3)}.rt-SegmentedControlItem{display:flex;align-items:stretch;-webkit-user-select:none;user-select:none}.rt-SegmentedControlItem:where(:first-child){border-top-left-radius:inherit;border-bottom-left-radius:inherit}.rt-SegmentedControlItem:where(:nth-last-child(2)){border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rt-SegmentedControlItem:where(:focus-visible){border-radius:inherit;outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SegmentedControlItemLabel :where(svg){flex-shrink:0}@media (hover: hover){:where(.rt-SegmentedControlItem[data-state=off]:not([disabled]):hover) .rt-SegmentedControlItemLabel{background-color:var(--gray-a2)}}.rt-SegmentedControlItemLabelInactive{position:absolute;transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-regular);letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing);opacity:1;transition-timing-function:ease-out}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelInactive{opacity:0;transition-timing-function:ease-in}.rt-SegmentedControlItemLabelActive{transition:opacity calc(.8 * var(--segmented-control-transition-duration));font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing);opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlItem[data-state=on]) .rt-SegmentedControlItemLabelActive{opacity:1;transition-timing-function:ease-out}.rt-SegmentedControlItemSeparator{z-index:-1;margin:3px -.5px;width:1px;background-color:var(--gray-a4);transition:opacity calc(.8 * var(--segmented-control-transition-duration));transition-timing-function:ease-out}:where(.rt-SegmentedControlItem:first-child) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible)) .rt-SegmentedControlItemSeparator,:where(.rt-SegmentedControlItem:where([data-state=on],:focus-visible))+* .rt-SegmentedControlItemSeparator{opacity:0;transition-timing-function:ease-in}:where(.rt-SegmentedControlRoot:has(:focus-visible)) .rt-SegmentedControlItemSeparator{transition-duration:0ms}.rt-SegmentedControlIndicator{display:none;position:absolute;z-index:-1;top:0;left:0;height:100%;pointer-events:none;transition-property:transform;transition-timing-function:cubic-bezier(.445,.05,.55,.95);transition-duration:var(--segmented-control-transition-duration)}.rt-SegmentedControlIndicator:before{inset:1px;position:absolute;border-radius:max(.5px,calc(var(--segmented-control-border-radius) - 1px));background-color:var(--segmented-control-indicator-background-color);content:""}:where(.rt-SegmentedControlItem[data-state=on])~.rt-SegmentedControlIndicator{display:block}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator{--segmented-control-indicator-background-color: var(--gray-a3)}:where(.rt-SegmentedControlItem[disabled])~.rt-SegmentedControlIndicator:before{inset:0;box-shadow:none}.rt-SegmentedControlIndicator:where(:nth-child(2)){width:100%}.rt-SegmentedControlIndicator:where(:nth-child(3)){width:50%}.rt-SegmentedControlIndicator:where(:nth-child(4)){width:calc(100% / 3)}.rt-SegmentedControlIndicator:where(:nth-child(5)){width:25%}.rt-SegmentedControlIndicator:where(:nth-child(6)){width:20%}.rt-SegmentedControlIndicator:where(:nth-child(7)){width:calc(100% / 6)}.rt-SegmentedControlIndicator:where(:nth-child(8)){width:calc(100% / 7)}.rt-SegmentedControlIndicator:where(:nth-child(9)){width:12.5%}.rt-SegmentedControlIndicator:where(:nth-child(10)){width:calc(100% / 9)}.rt-SegmentedControlIndicator:where(:nth-child(11)){width:10%}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(1))~.rt-SegmentedControlIndicator{transform:translate(0)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(2))~.rt-SegmentedControlIndicator{transform:translate(100%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(3))~.rt-SegmentedControlIndicator{transform:translate(200%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(4))~.rt-SegmentedControlIndicator{transform:translate(300%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(5))~.rt-SegmentedControlIndicator{transform:translate(400%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(6))~.rt-SegmentedControlIndicator{transform:translate(500%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(7))~.rt-SegmentedControlIndicator{transform:translate(600%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(8))~.rt-SegmentedControlIndicator{transform:translate(700%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(9))~.rt-SegmentedControlIndicator{transform:translate(800%)}:where(.rt-SegmentedControlItem[data-state=on]:nth-child(10))~.rt-SegmentedControlIndicator{transform:translate(900%)}.rt-SegmentedControlItemLabel{box-sizing:border-box;display:flex;flex-grow:1;align-items:center;justify-content:center;border-radius:inherit}.rt-SegmentedControlRoot:where(.rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}@media (min-width: 520px){.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xs\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 768px){.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.sm\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1024px){.rt-SegmentedControlRoot:where(.md\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.md\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1280px){.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.lg\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}@media (min-width: 1640px){.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-5)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-1) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2){--segmented-control-border-radius: max(var(--radius-2), var(--radius-full));height:var(--space-6)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-2) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-2)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3){--segmented-control-border-radius: max(var(--radius-3), var(--radius-full));height:var(--space-7)}.rt-SegmentedControlRoot:where(.xl\:rt-r-size-3) :where(.rt-SegmentedControlItemLabel){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3);padding-left:var(--space-4);padding-right:var(--space-4);gap:var(--space-3)}}.rt-SegmentedControlRoot:where(.rt-variant-surface) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:0 0 0 1px var(--gray-a4)}.rt-SegmentedControlRoot:where(.rt-variant-classic) :where(.rt-SegmentedControlItem:not([disabled]))~:where(.rt-SegmentedControlIndicator):before{box-shadow:var(--shadow-2)}.rt-SelectTrigger{display:inline-flex;align-items:center;justify-content:space-between;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:top;line-height:var(--height);font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;color:var(--gray-12)}.rt-SelectTrigger:where(:focus-visible){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-SelectTriggerInner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-SelectIcon{flex-shrink:0}:where(.rt-SelectTrigger:not(.rt-variant-ghost)) .rt-SelectIcon{opacity:.9}.rt-SelectContent:where([data-side]){min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);transform-origin:var(--radix-select-content-transform-origin)}.rt-SelectViewport{box-sizing:border-box;padding:var(--select-content-padding)}:where(.rt-SelectContent:has(.rt-ScrollAreaScrollbar[data-orientation=vertical])) .rt-SelectViewport{padding-right:var(--space-3)}.rt-SelectItem{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);position:relative;box-sizing:border-box;outline:none;scroll-margin:var(--select-content-padding) 0;-webkit-user-select:none;user-select:none;cursor:var(--cursor-menu-item)}.rt-SelectItemIndicator{position:absolute;left:0;width:var(--select-item-indicator-width);display:inline-flex;align-items:center;justify-content:center}.rt-SelectSeparator{height:1px;margin-top:var(--space-2);margin-bottom:var(--space-2);margin-left:var(--select-item-indicator-width);margin-right:var(--select-separator-margin-right);background-color:var(--gray-a6)}.rt-SelectLabel{display:flex;align-items:center;height:var(--select-item-height);padding-left:var(--select-item-indicator-width);padding-right:var(--select-item-indicator-width);color:var(--gray-a10);-webkit-user-select:none;user-select:none;cursor:default}:where(.rt-SelectItem)+.rt-SelectLabel{margin-top:var(--space-2)}.rt-SelectTrigger:where(:not(.rt-variant-ghost)){box-sizing:border-box;height:var(--select-trigger-height)}.rt-SelectTrigger:where(.rt-variant-ghost){box-sizing:content-box;height:-moz-fit-content;height:fit-content;padding:var(--select-trigger-ghost-padding-y) var(--select-trigger-ghost-padding-x);--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px;--margin-top-override: calc(var(--margin-top) - var(--select-trigger-ghost-padding-y));--margin-right-override: calc(var(--margin-right) - var(--select-trigger-ghost-padding-x));--margin-bottom-override: calc(var(--margin-bottom) - var(--select-trigger-ghost-padding-y));--margin-left-override: calc(var(--margin-left) - var(--select-trigger-ghost-padding-x));margin:var(--margin-top-override) var(--margin-right-override) var(--margin-bottom-override) var(--margin-left-override)}:where(.rt-SelectTrigger:where(.rt-variant-ghost))>*{--margin-top-override: initial;--margin-right-override: initial;--margin-bottom-override: initial;--margin-left-override: initial}.rt-SelectTrigger:where(.rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}@media (min-width: 520px){.rt-SelectTrigger:where(.xs\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xs\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xs\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xs\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xs\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xs\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 768px){.rt-SelectTrigger:where(.sm\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.sm\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.sm\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.sm\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.sm\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.sm\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1024px){.rt-SelectTrigger:where(.md\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.md\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.md\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.md\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.md\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.md\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1280px){.rt-SelectTrigger:where(.lg\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.lg\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.lg\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.lg\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.lg\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.lg\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}@media (min-width: 1640px){.rt-SelectTrigger:where(.xl\:rt-r-size-1){--select-trigger-height: var(--space-5);gap:var(--space-1);font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:max(var(--radius-1),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(:not(.rt-variant-ghost)){padding-left:var(--space-2);padding-right:var(--space-2)}.rt-SelectTrigger:where(.xl\:rt-r-size-1):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-2){--select-trigger-height: var(--space-6);gap:calc(var(--space-1) * 1.5);font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);border-radius:max(var(--radius-2),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(:not(.rt-variant-ghost)){padding-left:var(--space-3);padding-right:var(--space-3)}.rt-SelectTrigger:where(.xl\:rt-r-size-2):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-2);--select-trigger-ghost-padding-y: var(--space-1)}.rt-SelectTrigger:where(.xl\:rt-r-size-3){--select-trigger-height: var(--space-7);gap:var(--space-2);font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3);border-radius:max(var(--radius-3),var(--radius-full))}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(:not(.rt-variant-ghost)){padding-left:var(--space-4);padding-right:var(--space-4)}.rt-SelectTrigger:where(.xl\:rt-r-size-3):where(.rt-variant-ghost){--select-trigger-ghost-padding-x: var(--space-3);--select-trigger-ghost-padding-y: calc(var(--space-1) * 1.5)}.rt-SelectTrigger:where(.xl\:rt-r-size-3) :where(.rt-SelectIcon){width:11px;height:11px}}.rt-SelectContent:where(.rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.rt-r-size-2,.rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}@media (min-width: 520px){.rt-SelectContent:where(.xs\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xs\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xs\:rt-r-size-2,.xs\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xs\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xs\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 768px){.rt-SelectContent:where(.sm\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.sm\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.sm\:rt-r-size-2,.sm\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.sm\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.sm\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1024px){.rt-SelectContent:where(.md\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.md\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.md\:rt-r-size-2,.md\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.md\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.md\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1280px){.rt-SelectContent:where(.lg\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.lg\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.lg\:rt-r-size-2,.lg\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.lg\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.lg\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}@media (min-width: 1640px){.rt-SelectContent:where(.xl\:rt-r-size-1){--select-content-padding: var(--space-1);--select-item-height: var(--space-5);--select-item-indicator-width: calc(var(--space-5) / 1.2);--select-separator-margin-right: var(--space-2);border-radius:var(--radius-3)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectLabel){font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1);line-height:var(--line-height-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItem){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);border-radius:var(--radius-1)}.rt-SelectContent:where(.xl\:rt-r-size-1) :where(.rt-SelectItemIndicatorIcon){width:calc(8px * var(--scaling));height:calc(8px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3){--select-content-padding: var(--space-2);--select-item-height: var(--space-6);--select-item-indicator-width: var(--space-5);--select-separator-margin-right: var(--space-3);border-radius:var(--radius-4)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectLabel){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);line-height:var(--line-height-2)}.rt-SelectContent:where(.xl\:rt-r-size-2,.xl\:rt-r-size-3) :where(.rt-SelectItem){line-height:var(--line-height-2);border-radius:var(--radius-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItem){font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-SelectContent:where(.xl\:rt-r-size-2) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItem){font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-SelectContent:where(.xl\:rt-r-size-3) :where(.rt-SelectItemIndicatorIcon){width:calc(10px * var(--scaling));height:calc(10px * var(--scaling))}}.rt-SelectTrigger:where(.rt-variant-surface){color:var(--gray-12);background-color:var(--color-surface);box-shadow:inset 0 0 0 1px var(--gray-a7)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-surface):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a8)}}.rt-SelectTrigger:where(.rt-variant-surface):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a8)}.rt-SelectTrigger:where(.rt-variant-surface):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a2);box-shadow:inset 0 0 0 1px var(--gray-a6)}.rt-SelectTrigger:where(.rt-variant-surface):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-classic){color:var(--gray-12);background-image:linear-gradient(var(--gray-2),var(--gray-1));box-shadow:var(--select-trigger-classic-box-shadow);position:relative;z-index:0}.rt-SelectTrigger:where(.rt-variant-classic):before{content:"";position:absolute;z-index:-1;inset:0;border:2px solid transparent;background-clip:content-box;border-radius:inherit;pointer-events:none;background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1) 130%),linear-gradient(var(--color-surface),transparent)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-classic):where(:hover){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:hover):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]){box-shadow:inset 0 0 0 1px var(--gray-a3),var(--select-trigger-classic-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where([data-state=open]):before{background-image:linear-gradient(var(--black-a1) -15%,transparent,var(--white-a1) 120%),linear-gradient(var(--gray-2),var(--gray-1))}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled){color:var(--gray-a11);background-color:var(--gray-2);background-image:none;box-shadow:var(--base-button-classic-disabled-box-shadow)}.rt-SelectTrigger:where(.rt-variant-classic):where(:disabled):before{background-color:var(--gray-a2);background-image:linear-gradient(var(--black-a1) -20%,transparent,var(--white-a1))}.rt-SelectTrigger:where(.rt-variant-classic):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--gray-a10)}.rt-SelectTrigger:where(.rt-variant-soft),.rt-SelectTrigger:where(.rt-variant-ghost){color:var(--accent-12)}.rt-SelectTrigger:where(.rt-variant-soft):where([data-placeholder]) :where(.rt-SelectTriggerInner),.rt-SelectTrigger:where(.rt-variant-ghost):where([data-placeholder]) :where(.rt-SelectTriggerInner){color:var(--accent-12);opacity:.6}.rt-SelectTrigger:where(.rt-variant-soft){background-color:var(--accent-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-soft):where(:hover){background-color:var(--accent-a4)}}.rt-SelectTrigger:where(.rt-variant-soft):where([data-state=open]){background-color:var(--accent-a4)}.rt-SelectTrigger:where(.rt-variant-soft):where(:focus-visible){outline-color:var(--accent-8)}.rt-SelectTrigger:where(.rt-variant-soft):where(:disabled){color:var(--gray-a11);background-color:var(--gray-a3)}@media (hover: hover){.rt-SelectTrigger:where(.rt-variant-ghost):where(:hover){background-color:var(--accent-a3)}}.rt-SelectTrigger:where(.rt-variant-ghost):where([data-state=open]){background-color:var(--accent-a3)}.rt-SelectTrigger:where(.rt-variant-ghost):where(:disabled){color:var(--gray-a11);background-color:transparent}.rt-SelectTrigger:where(:disabled) :where(.rt-SelectIcon){color:var(--gray-a9)}.rt-SelectContent{box-shadow:var(--shadow-5);--scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);--scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-left: var(--select-content-padding);--scrollarea-scrollbar-horizontal-margin-right: var(--select-content-padding);overflow:hidden;background-color:var(--color-panel-solid)}.rt-SelectItem:where([data-disabled]){color:var(--gray-a8);cursor:default}.rt-SelectContent:where(.rt-variant-solid) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-9);color:var(--accent-contrast)}.rt-SelectContent:where(.rt-variant-solid):where(.rt-high-contrast) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-12);color:var(--accent-1)}.rt-SelectContent:where(.rt-variant-soft) :where(.rt-SelectItem[data-highlighted]){background-color:var(--accent-a4)}.rt-Separator{display:block;background-color:var(--accent-a6)}.rt-Separator:where(.rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.rt-r-orientation-vertical){width:1px;height:var(--separator-size)}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xs\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.sm\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.md\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.lg\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-orientation-horizontal){width:var(--separator-size);height:1px}.rt-Separator:where(.xl\:rt-r-orientation-vertical){width:1px;height:var(--separator-size)}}.rt-Separator:where(.rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.rt-r-size-4){--separator-size: 100%}@media (min-width: 520px){.rt-Separator:where(.xs\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xs\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xs\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xs\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 768px){.rt-Separator:where(.sm\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.sm\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.sm\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.sm\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1024px){.rt-Separator:where(.md\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.md\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.md\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.md\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1280px){.rt-Separator:where(.lg\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.lg\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.lg\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.lg\:rt-r-size-4){--separator-size: 100%}}@media (min-width: 1640px){.rt-Separator:where(.xl\:rt-r-size-1){--separator-size: var(--space-4)}.rt-Separator:where(.xl\:rt-r-size-2){--separator-size: var(--space-6)}.rt-Separator:where(.xl\:rt-r-size-3){--separator-size: var(--space-9)}.rt-Separator:where(.xl\:rt-r-size-4){--separator-size: 100%}}.rt-SliderRoot{--slider-thumb-size: calc(var(--slider-track-size) + var(--space-1));position:relative;display:flex;align-items:center;flex-grow:1;border-radius:max(calc(var(--radius-factor) * var(--slider-track-size) / 3),calc(var(--radius-factor) * var(--radius-thumb)));-webkit-user-select:none;user-select:none;touch-action:none}.rt-SliderRoot:where([data-orientation=horizontal]){width:-webkit-fill-available;width:-moz-available;width:stretch;height:var(--slider-track-size)}.rt-SliderRoot:where([data-orientation=vertical]){height:-webkit-fill-available;height:-moz-available;height:stretch;flex-direction:column;width:var(--slider-track-size)}.rt-SliderTrack{overflow:hidden;position:relative;flex-grow:1;border-radius:inherit}.rt-SliderTrack:where([data-orientation=horizontal]){height:var(--slider-track-size)}.rt-SliderTrack:where([data-orientation=vertical]){width:var(--slider-track-size)}.rt-SliderRange{position:absolute;border-radius:inherit}.rt-SliderRange:where([data-orientation=horizontal]){height:100%}.rt-SliderRange:where([data-orientation=vertical]){width:100%}.rt-SliderThumb{display:block;width:var(--slider-thumb-size);height:var(--slider-thumb-size);outline:0}.rt-SliderThumb:before{content:"";position:absolute;z-index:-1;width:calc(var(--slider-thumb-size) * 3);height:calc(var(--slider-thumb-size) * 3);top:50%;left:50%;transform:translate(-50%,-50%)}.rt-SliderThumb:after{content:"";position:absolute;inset:calc(-.25 * var(--slider-track-size));background-color:#fff;border-radius:max(var(--radius-1),var(--radius-thumb));box-shadow:var(--slider-thumb-box-shadow);cursor:var(--cursor-slider-thumb)}.rt-SliderThumb:where(:focus-visible):after{box-shadow:var(--slider-thumb-box-shadow),0 0 0 3px var(--accent-3),0 0 0 5px var(--focus-8)}.rt-SliderThumb:where(:active){cursor:var(--cursor-slider-thumb-active)}.rt-SliderRoot:where(.rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}@media (min-width: 520px){.rt-SliderRoot:where(.xs\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xs\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xs\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 768px){.rt-SliderRoot:where(.sm\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.sm\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.sm\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1024px){.rt-SliderRoot:where(.md\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.md\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.md\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1280px){.rt-SliderRoot:where(.lg\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.lg\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.lg\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}@media (min-width: 1640px){.rt-SliderRoot:where(.xl\:rt-r-size-1){--slider-track-size: calc(var(--space-2) * .75)}.rt-SliderRoot:where(.xl\:rt-r-size-2){--slider-track-size: var(--space-2)}.rt-SliderRoot:where(.xl\:rt-r-size-3){--slider-track-size: calc(var(--space-2) * 1.25)}}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack){background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderTrack):where([data-disabled]){box-shadow:inset 0 0 0 1px var(--gray-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a4)}.rt-SliderRoot:where(.rt-variant-surface) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack){background-color:var(--gray-a3);position:relative}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):before{content:"";inset:0;position:absolute;border-radius:inherit;box-shadow:var(--shadow-1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderTrack):where([data-disabled]):before{opacity:.5}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange){background-color:var(--accent-track);background-image:var(--slider-range-high-contrast-background-image);box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderRange):where(.rt-high-contrast){box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 1px 3px var(--black-a1), 0 2px 4px -1px var(--black-a1)}.rt-SliderRoot:where(.rt-variant-classic) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack){background-color:var(--gray-a4);background-image:linear-gradient(var(--white-a1),var(--white-a1))}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderTrack):where([data-disabled]){background-color:var(--gray-a4);background-image:none}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderRange){background-image:linear-gradient(var(--accent-a5),var(--accent-a5)),var(--slider-range-high-contrast-background-image);background-color:var(--accent-6)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb){--slider-thumb-box-shadow: 0 0 0 1px var(--black-a3), 0 0 0 1px var(--gray-a2), 0 0 0 1px var(--accent-a2), 0 1px 2px var(--gray-a4), 0 1px 3px -.5px var(--gray-a3)}.rt-SliderRoot:where(.rt-variant-soft) :where(.rt-SliderThumb):where([data-disabled]):after{background-color:var(--gray-1);box-shadow:0 0 0 1px var(--gray-5)}.rt-SliderRoot:where(:not(.rt-high-contrast)){--slider-range-high-contrast-background-image: none}.rt-SliderRoot:where([data-disabled]){cursor:var(--cursor-disabled);mix-blend-mode:var(--slider-disabled-blend-mode)}.rt-SliderRange:where([data-disabled]){background-color:transparent;background-image:none;box-shadow:none}.rt-SliderThumb:where([data-disabled]),.rt-SliderThumb:where([data-disabled]):after{cursor:var(--cursor-disabled)}.rt-Spinner{display:block;position:relative;opacity:var(--spinner-opacity)}.rt-SpinnerLeaf{position:absolute;top:0;left:43.75%;width:12.5%;height:100%;animation:rt-spinner-leaf-fade var(--spinner-animation-duration) linear infinite}.rt-SpinnerLeaf:before{content:"";display:block;width:100%;height:30%;border-radius:var(--radius-1);background-color:currentColor}.rt-SpinnerLeaf:where(:nth-child(1)){transform:rotate(0);animation-delay:calc(-8 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(2)){transform:rotate(45deg);animation-delay:calc(-7 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(3)){transform:rotate(90deg);animation-delay:calc(-6 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(4)){transform:rotate(135deg);animation-delay:calc(-5 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(5)){transform:rotate(180deg);animation-delay:calc(-4 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(6)){transform:rotate(225deg);animation-delay:calc(-3 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(7)){transform:rotate(270deg);animation-delay:calc(-2 / 8 * var(--spinner-animation-duration))}.rt-SpinnerLeaf:where(:nth-child(8)){transform:rotate(315deg);animation-delay:calc(-1 / 8 * var(--spinner-animation-duration))}@keyframes rt-spinner-leaf-fade{0%{opacity:1}to{opacity:.25}}.rt-Spinner:where(.rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}@media (min-width: 520px){.rt-Spinner:where(.xs\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xs\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xs\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 768px){.rt-Spinner:where(.sm\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.sm\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.sm\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1024px){.rt-Spinner:where(.md\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.md\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.md\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1280px){.rt-Spinner:where(.lg\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.lg\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.lg\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}@media (min-width: 1640px){.rt-Spinner:where(.xl\:rt-r-size-1){width:var(--space-3);height:var(--space-3)}.rt-Spinner:where(.xl\:rt-r-size-2){width:var(--space-4);height:var(--space-4)}.rt-Spinner:where(.xl\:rt-r-size-3){width:calc(1.25 * var(--space-4));height:calc(1.25 * var(--space-4))}}.rt-Strong{font-family:var(--strong-font-family);font-size:calc(var(--strong-font-size-adjust) * 1em);font-style:var(--strong-font-style);font-weight:var(--strong-font-weight);letter-spacing:calc(var(--strong-letter-spacing) + var(--letter-spacing, var(--default-letter-spacing)))}.rt-Strong :where(.rt-Strong){font-size:inherit}.rt-SwitchRoot{position:relative;display:inline-flex;align-items:center;vertical-align:top;flex-shrink:0;height:var(--skeleton-height, var(--line-height, var(--switch-height)));--skeleton-height-override: var(--switch-height);border-radius:var(--skeleton-radius);--skeleton-radius-override: var(--switch-border-radius);--switch-width: calc(var(--switch-height) * 1.75);--switch-thumb-inset: 1px;--switch-thumb-size: calc(var(--switch-height) - var(--switch-thumb-inset) * 2);--switch-thumb-translate-x: calc(var(--switch-width) - var(--switch-height))}.rt-SwitchRoot:before{content:"";display:block;width:var(--switch-width);height:var(--switch-height);border-radius:var(--switch-border-radius);transition:background-position,background-color,box-shadow,filter;transition-timing-function:linear,ease-in-out,ease-in-out,ease-in-out;background-repeat:no-repeat;background-size:calc(var(--switch-width) * 2 + var(--switch-height)) 100%;cursor:var(--cursor-switch)}.rt-SwitchRoot:where([data-state=unchecked]):before{transition-duration:.12s,.14s,.14s,.14s;background-position-x:100%}.rt-SwitchRoot:where([data-state=checked]):before{transition-duration:.16s,.14s,.14s,.14s;background-position:0%}.rt-SwitchRoot:where(:active):before{transition-duration:30ms}.rt-SwitchRoot:where(:focus-visible):before{outline:2px solid var(--focus-8);outline-offset:2px}.rt-SwitchRoot:where([data-disabled]):before{cursor:var(--cursor-disabled)}.rt-SwitchThumb{background-color:#fff;position:absolute;left:var(--switch-thumb-inset);width:var(--switch-thumb-size);height:var(--switch-thumb-size);border-radius:calc(var(--switch-border-radius) - var(--switch-thumb-inset));transition:transform .14s cubic-bezier(.45,.05,.55,.95),box-shadow .14s ease-in-out}.rt-SwitchThumb:where([data-state=checked]){transform:translate(var(--switch-thumb-translate-x))}.rt-SwitchRoot:where(.rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}@media (min-width: 520px){.rt-SwitchRoot:where(.xs\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xs\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 768px){.rt-SwitchRoot:where(.sm\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.sm\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1024px){.rt-SwitchRoot:where(.md\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.md\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1280px){.rt-SwitchRoot:where(.lg\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.lg\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}@media (min-width: 1640px){.rt-SwitchRoot:where(.xl\:rt-r-size-1){--switch-height: var(--space-4);--switch-border-radius: max(var(--radius-1), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-2){--switch-height: calc(var(--space-5) * 5 / 6);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}.rt-SwitchRoot:where(.xl\:rt-r-size-3){--switch-height: var(--space-5);--switch-border-radius: max(var(--radius-2), var(--radius-thumb))}}.rt-SwitchRoot:where(.rt-variant-surface):before{background-color:var(--gray-a3);background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);box-shadow:inset 0 0 0 1px var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-surface):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-surface):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-surface):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a3);box-shadow:inset 0 0 0 1px var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 1px 1px var(--black-a2),0 1px 1px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-surface) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-classic):before{background-image:linear-gradient(to right,var(--accent-track) 40%,transparent 60%);background-color:var(--gray-a4);box-shadow:var(--shadow-1)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=unchecked]:active):before{background-color:var(--gray-a5)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--accent-a4),inset 0 0 0 1px var(--black-a1),inset 0 1.5px 2px 0 var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-state=checked]:active):before{filter:var(--switch-surface-checked-active-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):before{box-shadow:inset 0 0 0 1px var(--gray-a3),inset 0 0 0 1px var(--black-a2),inset 0 1.5px 2px 0 var(--black-a2);background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-track) 40%,transparent 60%)}.rt-SwitchRoot:where(.rt-variant-classic):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-classic):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a5);box-shadow:var(--shadow-1);opacity:.5}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 1px 3px var(--black-a3),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a1),0 0 0 1px var(--accent-a4),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-state=checked]):where(.rt-high-contrast){box-shadow:0 1px 3px var(--black-a2),0 2px 4px -1px var(--black-a1),0 0 0 1px var(--black-a2),-1px 0 1px var(--black-a2)}.rt-SwitchRoot:where(.rt-variant-classic) :where(.rt-SwitchThumb):where([data-disabled]){background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-SwitchRoot:where(.rt-variant-soft):before{background-image:linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,transparent 60%),linear-gradient(to right,var(--accent-a4) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--gray-a2) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-state=unchecked]):before{background-color:var(--gray-a3)}.rt-SwitchRoot:where(.rt-variant-soft):where(:active):before{background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):before{background-image:linear-gradient(to right,var(--switch-high-contrast-checked-color-overlay) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,transparent 60%),linear-gradient(to right,var(--accent-a6) 40%,var(--white-a1) 60%),linear-gradient(to right,var(--accent-a3) 40%,var(--gray-a3) 60%)}.rt-SwitchRoot:where(.rt-variant-soft):where(.rt-high-contrast):where([data-state=checked]:active):before{filter:var(--switch-high-contrast-checked-active-before-filter)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]){mix-blend-mode:var(--switch-disabled-blend-mode)}.rt-SwitchRoot:where(.rt-variant-soft):where([data-disabled]):before{filter:none;background-image:none;background-color:var(--gray-a4)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb){filter:saturate(.45)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=unchecked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a1),0 1px 3px var(--black-a1),0 2px 4px -1px var(--black-a1)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-state=checked]){box-shadow:0 0 0 1px var(--black-a1),0 1px 3px var(--black-a2),0 1px 3px var(--accent-a3),0 2px 4px -1px var(--accent-a3)}.rt-SwitchRoot:where(.rt-variant-soft) :where(.rt-SwitchThumb):where([data-disabled]){filter:none;background-color:var(--gray-2);box-shadow:0 0 0 1px var(--gray-a2),0 1px 3px var(--black-a1);transition:none}.rt-BaseTabList::-webkit-scrollbar{display:none}.rt-BaseTabListTrigger{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;-webkit-user-select:none;user-select:none;box-sizing:border-box;height:var(--tab-height);padding-left:var(--tab-padding-x);padding-right:var(--tab-padding-x);color:var(--gray-a11)}.rt-BaseTabListTriggerInner,.rt-BaseTabListTriggerInnerHidden{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--tab-inner-padding-y) var(--tab-inner-padding-x);border-radius:var(--tab-inner-border-radius)}.rt-BaseTabListTriggerInner{position:absolute}:where(.rt-BaseTabListTrigger[data-state=inactive],.rt-TabNavLink:not([data-active])) .rt-BaseTabListTriggerInner{letter-spacing:var(--tab-inactive-letter-spacing);word-spacing:var(--tab-inactive-word-spacing)}:where(.rt-BaseTabListTrigger[data-state=active],.rt-TabNavLink[data-active]) .rt-BaseTabListTriggerInner{font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabListTriggerInnerHidden{visibility:hidden;font-weight:var(--font-weight-medium);letter-spacing:var(--tab-active-letter-spacing);word-spacing:var(--tab-active-word-spacing)}.rt-BaseTabList:where(.rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}@media (min-width: 520px){.rt-BaseTabList:where(.xs\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xs\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 768px){.rt-BaseTabList:where(.sm\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.sm\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1024px){.rt-BaseTabList:where(.md\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.md\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1280px){.rt-BaseTabList:where(.lg\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.lg\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}@media (min-width: 1640px){.rt-BaseTabList:where(.xl\:rt-r-size-1){font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1);--tab-height: var(--space-6);--tab-padding-x: var(--space-1);--tab-inner-padding-x: var(--space-1);--tab-inner-padding-y: calc(var(--space-1) * .5);--tab-inner-border-radius: var(--radius-1)}.rt-BaseTabList:where(.xl\:rt-r-size-2){font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2);--tab-height: var(--space-7);--tab-padding-x: var(--space-2);--tab-inner-padding-x: var(--space-2);--tab-inner-padding-y: var(--space-1);--tab-inner-border-radius: var(--radius-2)}}.rt-BaseTabList{box-shadow:inset 0 -1px 0 0 var(--gray-a5);display:flex;justify-content:flex-start;overflow-x:auto;white-space:nowrap;font-family:var(--default-font-family);font-style:normal;scrollbar-width:none}@media (hover: hover){.rt-BaseTabListTrigger:where(:hover){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--gray-a3)}.rt-BaseTabListTrigger:where(:focus-visible:hover) :where(.rt-BaseTabListTriggerInner){background-color:var(--accent-a3)}}.rt-BaseTabListTrigger:where([data-state=active],[data-active]){color:var(--gray-12)}.rt-BaseTabListTrigger:where(:focus-visible) :where(.rt-BaseTabListTriggerInner){outline:2px solid var(--focus-8);outline-offset:-2px}.rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{box-sizing:border-box;content:"";height:2px;position:absolute;bottom:0;left:0;right:0;background-color:var(--accent-indicator)}:where(.rt-BaseTabList.rt-high-contrast) .rt-BaseTabListTrigger:where([data-state=active],[data-active]):before{background-color:var(--accent-12)}.rt-TabNavItem{display:flex}.rt-TableRootTable{--table-row-background-color: transparent;--table-row-box-shadow: inset 0 -1px var(--gray-a5);width:100%;text-align:left;vertical-align:top;border-collapse:collapse;border-radius:calc(var(--table-border-radius) - 1px);border-spacing:0;box-sizing:border-box;height:0}.rt-TableHeader,.rt-TableBody{vertical-align:inherit}.rt-TableRow{vertical-align:inherit;color:var(--gray-12)}.rt-TableCell{background-color:var(--table-row-background-color);box-shadow:var(--table-row-box-shadow);box-sizing:border-box;vertical-align:inherit;padding:var(--table-cell-padding);height:var(--table-cell-min-height)}.rt-Inset :where(.rt-TableCell:first-child){padding-left:var(--inset-padding-left, var(--table-cell-padding))}.rt-Inset :where(.rt-TableCell:last-child){padding-right:var(--inset-padding-right, var(--table-cell-padding))}.rt-TableColumnHeaderCell{font-weight:700}.rt-TableRowHeaderCell{font-weight:400}.rt-TableRoot:where(.rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}@media (min-width: 520px){.rt-TableRoot:where(.xs\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xs\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xs\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xs\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 768px){.rt-TableRoot:where(.sm\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.sm\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.sm\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.sm\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1024px){.rt-TableRoot:where(.md\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.md\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.md\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.md\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1280px){.rt-TableRoot:where(.lg\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.lg\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.lg\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.lg\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}@media (min-width: 1640px){.rt-TableRoot:where(.xl\:rt-r-size-1){--table-border-radius: var(--radius-3);--table-cell-padding: var(--space-2);--table-cell-min-height: calc(36px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-1) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-2){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3);--table-cell-min-height: calc(44px * var(--scaling))}.rt-TableRoot:where(.xl\:rt-r-size-2) :where(.rt-TableRootTable){font-size:var(--font-size-2);line-height:var(--line-height-2)}.rt-TableRoot:where(.xl\:rt-r-size-3){--table-border-radius: var(--radius-4);--table-cell-padding: var(--space-3) var(--space-4);--table-cell-min-height: var(--space-8)}.rt-TableRoot:where(.xl\:rt-r-size-3) :where(.rt-TableRootTable){font-size:var(--font-size-3);line-height:var(--line-height-3)}}.rt-TableRoot:where(.rt-variant-surface){box-sizing:border-box;border:1px solid var(--gray-a5);border-radius:var(--table-border-radius);background-color:var(--color-panel);-webkit-backdrop-filter:var(--backdrop-filter-panel);backdrop-filter:var(--backdrop-filter-panel);background-clip:padding-box;position:relative}@supports (box-shadow: 0 0 0 1px color-mix(in oklab,white,black)){.rt-TableRoot:where(.rt-variant-surface){border-color:color-mix(in oklab,var(--gray-a5),var(--gray-6))}}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable){overflow:hidden}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableHeader){--table-row-background-color: var(--gray-a2)}.rt-TableRoot:where(.rt-variant-surface) :where(.rt-TableRootTable) :where(.rt-TableBody) :where(.rt-TableRow:last-child){--table-row-box-shadow: none}.rt-TableRoot:where(.rt-variant-ghost){--scrollarea-scrollbar-horizontal-margin-left: 0;--scrollarea-scrollbar-horizontal-margin-right: 0}.rt-TabsContent{position:relative;outline:0}.rt-TabsContent:where(:focus-visible){outline:2px solid var(--focus-8)}.rt-TextAreaRoot:where(:focus-within){outline:2px solid var(--focus-8);outline-offset:-1px}.rt-TextAreaInput::-webkit-scrollbar{width:var(--space-3);height:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track,.rt-TextAreaInput::-webkit-scrollbar-thumb{background-clip:content-box;border:var(--space-1) solid transparent;border-radius:var(--space-3)}.rt-TextAreaInput::-webkit-scrollbar-track{background-color:var(--gray-a3)}.rt-TextAreaInput::-webkit-scrollbar-thumb{background-color:var(--gray-a8)}@media (hover: hover){:where(.rt-TextAreaInput:not(:disabled))::-webkit-scrollbar-thumb:hover{background-color:var(--gray-a9)}}.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}.rt-TextAreaRoot{padding:var(--text-area-border-width);display:flex;flex-direction:column;box-sizing:border-box;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start;overflow:hidden}.rt-TextAreaInput{padding:var(--text-area-padding-y) var(--text-area-padding-x);border-radius:inherit;resize:none;display:block;width:100%;flex-grow:1;cursor:auto}.rt-TextAreaRoot:where(.rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}@media (min-width: 520px){.rt-TextAreaRoot:where(.xs\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xs\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 768px){.rt-TextAreaRoot:where(.sm\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.sm\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1024px){.rt-TextAreaRoot:where(.md\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.md\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.md\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.md\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1280px){.rt-TextAreaRoot:where(.lg\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.lg\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}@media (min-width: 1640px){.rt-TextAreaRoot:where(.xl\:rt-r-size-1){min-height:var(--space-8);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-1) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-1) * 1.5 - var(--text-area-border-width));font-size:var(--font-size-1);line-height:var(--line-height-1);letter-spacing:var(--letter-spacing-1)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2){min-height:var(--space-9);border-radius:var(--radius-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-2) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-1) * 1.5 - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-2) - var(--text-area-border-width));font-size:var(--font-size-2);line-height:var(--line-height-2);letter-spacing:var(--letter-spacing-2)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3){min-height:80px;border-radius:var(--radius-3)}.rt-TextAreaRoot:where(.xl\:rt-r-size-3) :where(.rt-TextAreaInput){--text-area-padding-y: calc(var(--space-2) - var(--text-area-border-width));--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));font-size:var(--font-size-3);line-height:var(--line-height-3);letter-spacing:var(--letter-spacing-3)}}.rt-TextAreaRoot:where(.rt-variant-surface){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-surface) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-surface):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-area-border-width) var(--gray-a6)}.rt-TextAreaRoot:where(.rt-variant-classic){--text-area-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextAreaRoot:where(.rt-variant-classic) :where(.rt-TextAreaInput)::placeholder{color:var(--gray-a10)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextAreaRoot:where(.rt-variant-classic):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextAreaRoot:where(.rt-variant-soft){--text-area-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::selection{background-color:var(--accent-a5)}.rt-TextAreaRoot:where(.rt-variant-soft) :where(.rt-TextAreaInput)::placeholder{color:var(--accent-12);opacity:.65}.rt-TextAreaRoot:where(.rt-variant-soft):where(:focus-within){outline-color:var(--accent-8)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextAreaRoot:where(.rt-variant-soft):where(:has(.rt-TextAreaInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextAreaInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextAreaInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextAreaInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextAreaInput:where(:disabled,:read-only)::selection{background-color:var(--gray-a5)}.rt-TextAreaRoot:where(:focus-within:has(.rt-TextAreaInput:where(:disabled,:read-only))){outline-color:var(--gray-8)}@supports selector(:has(*)){.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:focus)){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){.rt-TextFieldRoot:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}.rt-TextFieldRoot::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput{width:100%;display:flex;align-items:center;text-align:inherit;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));text-indent:var(--text-field-padding)}.rt-TextFieldInput:where([type=number]){-moz-appearance:textfield}.rt-TextFieldInput::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.rt-TextFieldInput::selection{background-color:var(--text-field-selection-color)}.rt-TextFieldInput::-webkit-calendar-picker-indicator{box-sizing:content-box;width:var(--text-field-native-icon-size);height:var(--text-field-native-icon-size);padding:var(--space-1);margin-left:0;margin-right:calc(var(--space-1) * -1);border-radius:calc(var(--text-field-border-radius) - 2px)}.rt-TextFieldInput:where(:not([type=time]))::-webkit-calendar-picker-indicator{margin-left:var(--space-1)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:hover){background-color:var(--gray-a3)}.rt-TextFieldInput::-webkit-calendar-picker-indicator:where(:focus-visible){outline:2px solid var(--text-field-focus-color)}.rt-TextFieldInput::-webkit-datetime-edit-ampm-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-day-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-hour-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-millisecond-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-minute-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-month-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-second-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-week-field:where(:focus),.rt-TextFieldInput::-webkit-datetime-edit-year-field:where(:focus){background-color:var(--text-field-selection-color);color:inherit;outline:none}@supports selector(:has(*)){.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]){-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--gray-12)}}.rt-TextFieldSlot{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;cursor:text}.rt-TextFieldSlot:where(:not([data-side=right])){order:-1;margin-left:calc(var(--text-field-border-width) * -1);margin-right:0}.rt-TextFieldSlot:where([data-side=right]),:where(.rt-TextFieldSlot:not([data-side=right]))~.rt-TextFieldSlot:where(:not([data-side=left])){order:0;margin-left:0;margin-right:calc(var(--text-field-border-width) * -1)}.rt-TextFieldRoot{box-sizing:border-box;height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:var(--text-field-border-radius);display:flex;align-items:stretch;font-family:var(--default-font-family);font-weight:var(--font-weight-regular);font-style:normal;text-align:start}.rt-TextFieldInput:where([type=date],[type=datetime-local],[type=time],[type=week],[type=month]){text-indent:0;padding-left:var(--text-field-padding);padding-right:var(--text-field-padding)}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot:not([data-side=right]))){text-indent:0;padding-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.rt-TextFieldInput:where(:has(~.rt-TextFieldSlot[data-side=right],~.rt-TextFieldSlot:not([data-side=right])~.rt-TextFieldSlot:not([data-side=left]))){padding-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.rt-TextFieldRoot:where(.rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}@media (min-width: 520px){.rt-TextFieldRoot:where(.xs\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xs\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 768px){.rt-TextFieldRoot:where(.sm\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.sm\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1024px){.rt-TextFieldRoot:where(.md\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.md\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.md\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.md\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1280px){.rt-TextFieldRoot:where(.lg\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.lg\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}@media (min-width: 1640px){.rt-TextFieldRoot:where(.xl\:rt-r-size-1){--text-field-height: var(--space-5);--text-field-padding: calc(var(--space-1) * 1.5 - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-3);font-size:var(--font-size-1);letter-spacing:var(--letter-spacing-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-1);padding-right:var(--space-1)}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-1) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:0;margin-right:-2px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2){--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput){padding-bottom:.5px}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:2px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-2) :where(.rt-TextFieldSlot){gap:var(--space-2);padding-left:var(--space-2);padding-right:var(--space-2)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3){--text-field-height: var(--space-7);--text-field-padding: calc(var(--space-3) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-3), var(--radius-full));--text-field-native-icon-size: var(--space-4);font-size:var(--font-size-3);letter-spacing:var(--letter-spacing-3)}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput){padding-bottom:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldInput)::-webkit-textfield-decoration-container{padding-right:5px;margin-right:0}.rt-TextFieldRoot:where(.xl\:rt-r-size-3) :where(.rt-TextFieldSlot){gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3)}}.rt-TextFieldRoot:where(.rt-variant-surface){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a7);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-surface) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-surface):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2));box-shadow:inset 0 0 0 var(--text-field-border-width) var(--gray-a6)}.rt-TextFieldRoot:where(.rt-variant-classic){--text-field-selection-color: var(--focus-a5);--text-field-focus-color: var(--focus-8);--text-field-border-width: 1px;background-clip:content-box;background-color:var(--color-surface);box-shadow:var(--shadow-1);color:var(--gray-12)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldInput)::placeholder{color:var(--gray-a10)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot){color:var(--gray-a11)}.rt-TextFieldRoot:where(.rt-variant-classic) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){background-image:linear-gradient(var(--focus-a2),var(--focus-a2));box-shadow:inset 0 0 0 1px var(--focus-a5),inset 0 0 0 1px var(--gray-a5)}.rt-TextFieldRoot:where(.rt-variant-classic):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-image:linear-gradient(var(--gray-a2),var(--gray-a2))}.rt-TextFieldRoot:where(.rt-variant-soft){--text-field-selection-color: var(--accent-a5);--text-field-focus-color: var(--accent-8);--text-field-border-width: 0px;background-color:var(--accent-a3);color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldInput)::placeholder{color:var(--accent-12);opacity:.6}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot){color:var(--accent-12)}.rt-TextFieldRoot:where(.rt-variant-soft) :where(.rt-TextFieldSlot):where([data-accent-color]){color:var(--accent-a11)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:autofill,[data-com-onepassword-filled]):not(:disabled,:read-only))){box-shadow:inset 0 0 0 1px var(--accent-a5),inset 0 0 0 1px var(--gray-a4)}.rt-TextFieldRoot:where(.rt-variant-soft):where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){background-color:var(--gray-a3)}.rt-TextFieldInput:where(:disabled,:read-only){cursor:text;color:var(--gray-a11);-webkit-text-fill-color:var(--gray-a11)}.rt-TextFieldInput:where(:disabled,:read-only)::placeholder{opacity:.5}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown){cursor:var(--cursor-disabled)}.rt-TextFieldInput:where(:disabled,:read-only):where(:placeholder-shown)~:where(.rt-TextFieldSlot){cursor:var(--cursor-disabled)}.rt-TextFieldRoot:where(:has(.rt-TextFieldInput:where(:disabled,:read-only))){--text-field-selection-color: var(--gray-a5);--text-field-focus-color: var(--gray-8)}.rt-ThemePanelShortcut:where(:focus-visible){outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--accent-9)}.rt-ThemePanelSwatch,.rt-ThemePanelRadioCard{position:relative}.rt-ThemePanelSwatchInput,.rt-ThemePanelRadioCardInput{-webkit-appearance:none;appearance:none;margin:0;outline:none;outline-width:2px;position:absolute;inset:0;border-radius:inherit;width:100%;height:100%}.rt-ThemePanelSwatch{width:var(--space-5);height:var(--space-5);border-radius:100%}.rt-ThemePanelSwatchInput{outline-offset:2px}.rt-ThemePanelSwatchInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelSwatchInput:where(:focus-visible){outline-style:solid;outline-color:var(--accent-9)}.rt-ThemePanelRadioCard{border-radius:var(--radius-1);box-shadow:0 0 0 1px var(--gray-7)}.rt-ThemePanelRadioCardInput{outline-offset:-1px}.rt-ThemePanelRadioCardInput:where(:checked){outline-style:solid;outline-color:var(--gray-12)}.rt-ThemePanelRadioCardInput:where(:focus-visible){background-color:var(--accent-a3);outline-style:solid;outline-color:var(--accent-9)}.rt-TooltipContent{box-sizing:border-box;padding:var(--space-1) var(--space-2);background-color:var(--gray-12);border-radius:var(--radius-2);transform-origin:var(--radix-tooltip-content-transform-origin);animation-duration:.14s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media (prefers-reduced-motion: no-preference){.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=top]){animation-name:rt-slide-from-top,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=bottom]){animation-name:rt-slide-from-bottom,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=left]){animation-name:rt-slide-from-left,rt-fade-in}.rt-TooltipContent:where([data-state=delayed-open]):where([data-side=right]){animation-name:rt-slide-from-right,rt-fade-in}}.rt-TooltipText{color:var(--gray-1);-webkit-user-select:none;user-select:none;cursor:default}.rt-TooltipArrow{fill:var(--gray-12)}.radix-themes:where([data-is-root-theme=true]){position:relative;z-index:0;min-height:100vh}@supports (min-height: 100dvh){.radix-themes:where([data-is-root-theme=true]){min-height:100dvh}}.rt-r-ai-start{align-items:flex-start}.rt-r-ai-center{align-items:center}.rt-r-ai-end{align-items:flex-end}.rt-r-ai-baseline{align-items:baseline}.rt-r-ai-stretch{align-items:stretch}@media (min-width: 520px){.xs\:rt-r-ai-start{align-items:flex-start}.xs\:rt-r-ai-center{align-items:center}.xs\:rt-r-ai-end{align-items:flex-end}.xs\:rt-r-ai-baseline{align-items:baseline}.xs\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 768px){.sm\:rt-r-ai-start{align-items:flex-start}.sm\:rt-r-ai-center{align-items:center}.sm\:rt-r-ai-end{align-items:flex-end}.sm\:rt-r-ai-baseline{align-items:baseline}.sm\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1024px){.md\:rt-r-ai-start{align-items:flex-start}.md\:rt-r-ai-center{align-items:center}.md\:rt-r-ai-end{align-items:flex-end}.md\:rt-r-ai-baseline{align-items:baseline}.md\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1280px){.lg\:rt-r-ai-start{align-items:flex-start}.lg\:rt-r-ai-center{align-items:center}.lg\:rt-r-ai-end{align-items:flex-end}.lg\:rt-r-ai-baseline{align-items:baseline}.lg\:rt-r-ai-stretch{align-items:stretch}}@media (min-width: 1640px){.xl\:rt-r-ai-start{align-items:flex-start}.xl\:rt-r-ai-center{align-items:center}.xl\:rt-r-ai-end{align-items:flex-end}.xl\:rt-r-ai-baseline{align-items:baseline}.xl\:rt-r-ai-stretch{align-items:stretch}}.rt-r-as-start{align-self:flex-start}.rt-r-as-center{align-self:center}.rt-r-as-end{align-self:flex-end}.rt-r-as-baseline{align-self:baseline}.rt-r-as-stretch{align-self:stretch}@media (min-width: 520px){.xs\:rt-r-as-start{align-self:flex-start}.xs\:rt-r-as-center{align-self:center}.xs\:rt-r-as-end{align-self:flex-end}.xs\:rt-r-as-baseline{align-self:baseline}.xs\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 768px){.sm\:rt-r-as-start{align-self:flex-start}.sm\:rt-r-as-center{align-self:center}.sm\:rt-r-as-end{align-self:flex-end}.sm\:rt-r-as-baseline{align-self:baseline}.sm\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1024px){.md\:rt-r-as-start{align-self:flex-start}.md\:rt-r-as-center{align-self:center}.md\:rt-r-as-end{align-self:flex-end}.md\:rt-r-as-baseline{align-self:baseline}.md\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1280px){.lg\:rt-r-as-start{align-self:flex-start}.lg\:rt-r-as-center{align-self:center}.lg\:rt-r-as-end{align-self:flex-end}.lg\:rt-r-as-baseline{align-self:baseline}.lg\:rt-r-as-stretch{align-self:stretch}}@media (min-width: 1640px){.xl\:rt-r-as-start{align-self:flex-start}.xl\:rt-r-as-center{align-self:center}.xl\:rt-r-as-end{align-self:flex-end}.xl\:rt-r-as-baseline{align-self:baseline}.xl\:rt-r-as-stretch{align-self:stretch}}.rt-r-display-block{display:block}.rt-r-display-inline{display:inline}.rt-r-display-inline-block{display:inline-block}.rt-r-display-flex{display:flex}.rt-r-display-inline-flex{display:inline-flex}.rt-r-display-grid{display:grid}.rt-r-display-inline-grid{display:inline-grid}.rt-r-display-none{display:none}.rt-r-display-contents{display:contents}@media (min-width: 520px){.xs\:rt-r-display-block{display:block}.xs\:rt-r-display-inline{display:inline}.xs\:rt-r-display-inline-block{display:inline-block}.xs\:rt-r-display-flex{display:flex}.xs\:rt-r-display-inline-flex{display:inline-flex}.xs\:rt-r-display-grid{display:grid}.xs\:rt-r-display-inline-grid{display:inline-grid}.xs\:rt-r-display-none{display:none}.xs\:rt-r-display-contents{display:contents}}@media (min-width: 768px){.sm\:rt-r-display-block{display:block}.sm\:rt-r-display-inline{display:inline}.sm\:rt-r-display-inline-block{display:inline-block}.sm\:rt-r-display-flex{display:flex}.sm\:rt-r-display-inline-flex{display:inline-flex}.sm\:rt-r-display-grid{display:grid}.sm\:rt-r-display-inline-grid{display:inline-grid}.sm\:rt-r-display-none{display:none}.sm\:rt-r-display-contents{display:contents}}@media (min-width: 1024px){.md\:rt-r-display-block{display:block}.md\:rt-r-display-inline{display:inline}.md\:rt-r-display-inline-block{display:inline-block}.md\:rt-r-display-flex{display:flex}.md\:rt-r-display-inline-flex{display:inline-flex}.md\:rt-r-display-grid{display:grid}.md\:rt-r-display-inline-grid{display:inline-grid}.md\:rt-r-display-none{display:none}.md\:rt-r-display-contents{display:contents}}@media (min-width: 1280px){.lg\:rt-r-display-block{display:block}.lg\:rt-r-display-inline{display:inline}.lg\:rt-r-display-inline-block{display:inline-block}.lg\:rt-r-display-flex{display:flex}.lg\:rt-r-display-inline-flex{display:inline-flex}.lg\:rt-r-display-grid{display:grid}.lg\:rt-r-display-inline-grid{display:inline-grid}.lg\:rt-r-display-none{display:none}.lg\:rt-r-display-contents{display:contents}}@media (min-width: 1640px){.xl\:rt-r-display-block{display:block}.xl\:rt-r-display-inline{display:inline}.xl\:rt-r-display-inline-block{display:inline-block}.xl\:rt-r-display-flex{display:flex}.xl\:rt-r-display-inline-flex{display:inline-flex}.xl\:rt-r-display-grid{display:grid}.xl\:rt-r-display-inline-grid{display:inline-grid}.xl\:rt-r-display-none{display:none}.xl\:rt-r-display-contents{display:contents}}.rt-r-fb{flex-basis:var(--flex-basis)}@media (min-width: 520px){.xs\:rt-r-fb{flex-basis:var(--flex-basis-xs)}}@media (min-width: 768px){.sm\:rt-r-fb{flex-basis:var(--flex-basis-sm)}}@media (min-width: 1024px){.md\:rt-r-fb{flex-basis:var(--flex-basis-md)}}@media (min-width: 1280px){.lg\:rt-r-fb{flex-basis:var(--flex-basis-lg)}}@media (min-width: 1640px){.xl\:rt-r-fb{flex-basis:var(--flex-basis-xl)}}.rt-r-fd-row{flex-direction:row}.rt-r-fd-column{flex-direction:column}.rt-r-fd-row-reverse{flex-direction:row-reverse}.rt-r-fd-column-reverse{flex-direction:column-reverse}@media (min-width: 520px){.xs\:rt-r-fd-row{flex-direction:row}.xs\:rt-r-fd-column{flex-direction:column}.xs\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xs\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 768px){.sm\:rt-r-fd-row{flex-direction:row}.sm\:rt-r-fd-column{flex-direction:column}.sm\:rt-r-fd-row-reverse{flex-direction:row-reverse}.sm\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1024px){.md\:rt-r-fd-row{flex-direction:row}.md\:rt-r-fd-column{flex-direction:column}.md\:rt-r-fd-row-reverse{flex-direction:row-reverse}.md\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1280px){.lg\:rt-r-fd-row{flex-direction:row}.lg\:rt-r-fd-column{flex-direction:column}.lg\:rt-r-fd-row-reverse{flex-direction:row-reverse}.lg\:rt-r-fd-column-reverse{flex-direction:column-reverse}}@media (min-width: 1640px){.xl\:rt-r-fd-row{flex-direction:row}.xl\:rt-r-fd-column{flex-direction:column}.xl\:rt-r-fd-row-reverse{flex-direction:row-reverse}.xl\:rt-r-fd-column-reverse{flex-direction:column-reverse}}.rt-r-fg{flex-grow:var(--flex-grow)}.rt-r-fg-0{flex-grow:0}.rt-r-fg-1{flex-grow:1}@media (min-width: 520px){.xs\:rt-r-fg{flex-grow:var(--flex-grow-xs)}.xs\:rt-r-fg-0{flex-grow:0}.xs\:rt-r-fg-1{flex-grow:1}}@media (min-width: 768px){.sm\:rt-r-fg{flex-grow:var(--flex-grow-sm)}.sm\:rt-r-fg-0{flex-grow:0}.sm\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1024px){.md\:rt-r-fg{flex-grow:var(--flex-grow-md)}.md\:rt-r-fg-0{flex-grow:0}.md\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1280px){.lg\:rt-r-fg{flex-grow:var(--flex-grow-lg)}.lg\:rt-r-fg-0{flex-grow:0}.lg\:rt-r-fg-1{flex-grow:1}}@media (min-width: 1640px){.xl\:rt-r-fg{flex-grow:var(--flex-grow-xl)}.xl\:rt-r-fg-0{flex-grow:0}.xl\:rt-r-fg-1{flex-grow:1}}.rt-r-fs{flex-shrink:var(--flex-shrink)}.rt-r-fs-0{flex-shrink:0}.rt-r-fs-1{flex-shrink:1}@media (min-width: 520px){.xs\:rt-r-fs{flex-shrink:var(--flex-shrink-xs)}.xs\:rt-r-fs-0{flex-shrink:0}.xs\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 768px){.sm\:rt-r-fs{flex-shrink:var(--flex-shrink-sm)}.sm\:rt-r-fs-0{flex-shrink:0}.sm\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1024px){.md\:rt-r-fs{flex-shrink:var(--flex-shrink-md)}.md\:rt-r-fs-0{flex-shrink:0}.md\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1280px){.lg\:rt-r-fs{flex-shrink:var(--flex-shrink-lg)}.lg\:rt-r-fs-0{flex-shrink:0}.lg\:rt-r-fs-1{flex-shrink:1}}@media (min-width: 1640px){.xl\:rt-r-fs{flex-shrink:var(--flex-shrink-xl)}.xl\:rt-r-fs-0{flex-shrink:0}.xl\:rt-r-fs-1{flex-shrink:1}}.rt-r-fw-nowrap{flex-wrap:nowrap}.rt-r-fw-wrap{flex-wrap:wrap}.rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}@media (min-width: 520px){.xs\:rt-r-fw-nowrap{flex-wrap:nowrap}.xs\:rt-r-fw-wrap{flex-wrap:wrap}.xs\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 768px){.sm\:rt-r-fw-nowrap{flex-wrap:nowrap}.sm\:rt-r-fw-wrap{flex-wrap:wrap}.sm\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1024px){.md\:rt-r-fw-nowrap{flex-wrap:nowrap}.md\:rt-r-fw-wrap{flex-wrap:wrap}.md\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1280px){.lg\:rt-r-fw-nowrap{flex-wrap:nowrap}.lg\:rt-r-fw-wrap{flex-wrap:wrap}.lg\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}@media (min-width: 1640px){.xl\:rt-r-fw-nowrap{flex-wrap:nowrap}.xl\:rt-r-fw-wrap{flex-wrap:wrap}.xl\:rt-r-fw-wrap-reverse{flex-wrap:wrap-reverse}}.rt-r-gap{gap:var(--gap)}.rt-r-gap-0{gap:0}.rt-r-gap-1{gap:var(--space-1)}.rt-r-gap-2{gap:var(--space-2)}.rt-r-gap-3{gap:var(--space-3)}.rt-r-gap-4{gap:var(--space-4)}.rt-r-gap-5{gap:var(--space-5)}.rt-r-gap-6{gap:var(--space-6)}.rt-r-gap-7{gap:var(--space-7)}.rt-r-gap-8{gap:var(--space-8)}.rt-r-gap-9{gap:var(--space-9)}.rt-r-cg{column-gap:var(--column-gap)}.rt-r-cg-0{column-gap:0}.rt-r-cg-1{column-gap:var(--space-1)}.rt-r-cg-2{column-gap:var(--space-2)}.rt-r-cg-3{column-gap:var(--space-3)}.rt-r-cg-4{column-gap:var(--space-4)}.rt-r-cg-5{column-gap:var(--space-5)}.rt-r-cg-6{column-gap:var(--space-6)}.rt-r-cg-7{column-gap:var(--space-7)}.rt-r-cg-8{column-gap:var(--space-8)}.rt-r-cg-9{column-gap:var(--space-9)}.rt-r-rg{row-gap:var(--row-gap)}.rt-r-rg-0{row-gap:0}.rt-r-rg-1{row-gap:var(--space-1)}.rt-r-rg-2{row-gap:var(--space-2)}.rt-r-rg-3{row-gap:var(--space-3)}.rt-r-rg-4{row-gap:var(--space-4)}.rt-r-rg-5{row-gap:var(--space-5)}.rt-r-rg-6{row-gap:var(--space-6)}.rt-r-rg-7{row-gap:var(--space-7)}.rt-r-rg-8{row-gap:var(--space-8)}.rt-r-rg-9{row-gap:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-gap{gap:var(--gap-xs)}.xs\:rt-r-gap-0{gap:0}.xs\:rt-r-gap-1{gap:var(--space-1)}.xs\:rt-r-gap-2{gap:var(--space-2)}.xs\:rt-r-gap-3{gap:var(--space-3)}.xs\:rt-r-gap-4{gap:var(--space-4)}.xs\:rt-r-gap-5{gap:var(--space-5)}.xs\:rt-r-gap-6{gap:var(--space-6)}.xs\:rt-r-gap-7{gap:var(--space-7)}.xs\:rt-r-gap-8{gap:var(--space-8)}.xs\:rt-r-gap-9{gap:var(--space-9)}.xs\:rt-r-cg{column-gap:var(--column-gap-xs)}.xs\:rt-r-cg-0{column-gap:0}.xs\:rt-r-cg-1{column-gap:var(--space-1)}.xs\:rt-r-cg-2{column-gap:var(--space-2)}.xs\:rt-r-cg-3{column-gap:var(--space-3)}.xs\:rt-r-cg-4{column-gap:var(--space-4)}.xs\:rt-r-cg-5{column-gap:var(--space-5)}.xs\:rt-r-cg-6{column-gap:var(--space-6)}.xs\:rt-r-cg-7{column-gap:var(--space-7)}.xs\:rt-r-cg-8{column-gap:var(--space-8)}.xs\:rt-r-cg-9{column-gap:var(--space-9)}.xs\:rt-r-rg{row-gap:var(--row-gap-xs)}.xs\:rt-r-rg-0{row-gap:0}.xs\:rt-r-rg-1{row-gap:var(--space-1)}.xs\:rt-r-rg-2{row-gap:var(--space-2)}.xs\:rt-r-rg-3{row-gap:var(--space-3)}.xs\:rt-r-rg-4{row-gap:var(--space-4)}.xs\:rt-r-rg-5{row-gap:var(--space-5)}.xs\:rt-r-rg-6{row-gap:var(--space-6)}.xs\:rt-r-rg-7{row-gap:var(--space-7)}.xs\:rt-r-rg-8{row-gap:var(--space-8)}.xs\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-gap{gap:var(--gap-sm)}.sm\:rt-r-gap-0{gap:0}.sm\:rt-r-gap-1{gap:var(--space-1)}.sm\:rt-r-gap-2{gap:var(--space-2)}.sm\:rt-r-gap-3{gap:var(--space-3)}.sm\:rt-r-gap-4{gap:var(--space-4)}.sm\:rt-r-gap-5{gap:var(--space-5)}.sm\:rt-r-gap-6{gap:var(--space-6)}.sm\:rt-r-gap-7{gap:var(--space-7)}.sm\:rt-r-gap-8{gap:var(--space-8)}.sm\:rt-r-gap-9{gap:var(--space-9)}.sm\:rt-r-cg{column-gap:var(--column-gap-sm)}.sm\:rt-r-cg-0{column-gap:0}.sm\:rt-r-cg-1{column-gap:var(--space-1)}.sm\:rt-r-cg-2{column-gap:var(--space-2)}.sm\:rt-r-cg-3{column-gap:var(--space-3)}.sm\:rt-r-cg-4{column-gap:var(--space-4)}.sm\:rt-r-cg-5{column-gap:var(--space-5)}.sm\:rt-r-cg-6{column-gap:var(--space-6)}.sm\:rt-r-cg-7{column-gap:var(--space-7)}.sm\:rt-r-cg-8{column-gap:var(--space-8)}.sm\:rt-r-cg-9{column-gap:var(--space-9)}.sm\:rt-r-rg{row-gap:var(--row-gap-sm)}.sm\:rt-r-rg-0{row-gap:0}.sm\:rt-r-rg-1{row-gap:var(--space-1)}.sm\:rt-r-rg-2{row-gap:var(--space-2)}.sm\:rt-r-rg-3{row-gap:var(--space-3)}.sm\:rt-r-rg-4{row-gap:var(--space-4)}.sm\:rt-r-rg-5{row-gap:var(--space-5)}.sm\:rt-r-rg-6{row-gap:var(--space-6)}.sm\:rt-r-rg-7{row-gap:var(--space-7)}.sm\:rt-r-rg-8{row-gap:var(--space-8)}.sm\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-gap{gap:var(--gap-md)}.md\:rt-r-gap-0{gap:0}.md\:rt-r-gap-1{gap:var(--space-1)}.md\:rt-r-gap-2{gap:var(--space-2)}.md\:rt-r-gap-3{gap:var(--space-3)}.md\:rt-r-gap-4{gap:var(--space-4)}.md\:rt-r-gap-5{gap:var(--space-5)}.md\:rt-r-gap-6{gap:var(--space-6)}.md\:rt-r-gap-7{gap:var(--space-7)}.md\:rt-r-gap-8{gap:var(--space-8)}.md\:rt-r-gap-9{gap:var(--space-9)}.md\:rt-r-cg{column-gap:var(--column-gap-md)}.md\:rt-r-cg-0{column-gap:0}.md\:rt-r-cg-1{column-gap:var(--space-1)}.md\:rt-r-cg-2{column-gap:var(--space-2)}.md\:rt-r-cg-3{column-gap:var(--space-3)}.md\:rt-r-cg-4{column-gap:var(--space-4)}.md\:rt-r-cg-5{column-gap:var(--space-5)}.md\:rt-r-cg-6{column-gap:var(--space-6)}.md\:rt-r-cg-7{column-gap:var(--space-7)}.md\:rt-r-cg-8{column-gap:var(--space-8)}.md\:rt-r-cg-9{column-gap:var(--space-9)}.md\:rt-r-rg{row-gap:var(--row-gap-md)}.md\:rt-r-rg-0{row-gap:0}.md\:rt-r-rg-1{row-gap:var(--space-1)}.md\:rt-r-rg-2{row-gap:var(--space-2)}.md\:rt-r-rg-3{row-gap:var(--space-3)}.md\:rt-r-rg-4{row-gap:var(--space-4)}.md\:rt-r-rg-5{row-gap:var(--space-5)}.md\:rt-r-rg-6{row-gap:var(--space-6)}.md\:rt-r-rg-7{row-gap:var(--space-7)}.md\:rt-r-rg-8{row-gap:var(--space-8)}.md\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-gap{gap:var(--gap-lg)}.lg\:rt-r-gap-0{gap:0}.lg\:rt-r-gap-1{gap:var(--space-1)}.lg\:rt-r-gap-2{gap:var(--space-2)}.lg\:rt-r-gap-3{gap:var(--space-3)}.lg\:rt-r-gap-4{gap:var(--space-4)}.lg\:rt-r-gap-5{gap:var(--space-5)}.lg\:rt-r-gap-6{gap:var(--space-6)}.lg\:rt-r-gap-7{gap:var(--space-7)}.lg\:rt-r-gap-8{gap:var(--space-8)}.lg\:rt-r-gap-9{gap:var(--space-9)}.lg\:rt-r-cg{column-gap:var(--column-gap-lg)}.lg\:rt-r-cg-0{column-gap:0}.lg\:rt-r-cg-1{column-gap:var(--space-1)}.lg\:rt-r-cg-2{column-gap:var(--space-2)}.lg\:rt-r-cg-3{column-gap:var(--space-3)}.lg\:rt-r-cg-4{column-gap:var(--space-4)}.lg\:rt-r-cg-5{column-gap:var(--space-5)}.lg\:rt-r-cg-6{column-gap:var(--space-6)}.lg\:rt-r-cg-7{column-gap:var(--space-7)}.lg\:rt-r-cg-8{column-gap:var(--space-8)}.lg\:rt-r-cg-9{column-gap:var(--space-9)}.lg\:rt-r-rg{row-gap:var(--row-gap-lg)}.lg\:rt-r-rg-0{row-gap:0}.lg\:rt-r-rg-1{row-gap:var(--space-1)}.lg\:rt-r-rg-2{row-gap:var(--space-2)}.lg\:rt-r-rg-3{row-gap:var(--space-3)}.lg\:rt-r-rg-4{row-gap:var(--space-4)}.lg\:rt-r-rg-5{row-gap:var(--space-5)}.lg\:rt-r-rg-6{row-gap:var(--space-6)}.lg\:rt-r-rg-7{row-gap:var(--space-7)}.lg\:rt-r-rg-8{row-gap:var(--space-8)}.lg\:rt-r-rg-9{row-gap:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-gap{gap:var(--gap-xl)}.xl\:rt-r-gap-0{gap:0}.xl\:rt-r-gap-1{gap:var(--space-1)}.xl\:rt-r-gap-2{gap:var(--space-2)}.xl\:rt-r-gap-3{gap:var(--space-3)}.xl\:rt-r-gap-4{gap:var(--space-4)}.xl\:rt-r-gap-5{gap:var(--space-5)}.xl\:rt-r-gap-6{gap:var(--space-6)}.xl\:rt-r-gap-7{gap:var(--space-7)}.xl\:rt-r-gap-8{gap:var(--space-8)}.xl\:rt-r-gap-9{gap:var(--space-9)}.xl\:rt-r-cg{column-gap:var(--column-gap-xl)}.xl\:rt-r-cg-0{column-gap:0}.xl\:rt-r-cg-1{column-gap:var(--space-1)}.xl\:rt-r-cg-2{column-gap:var(--space-2)}.xl\:rt-r-cg-3{column-gap:var(--space-3)}.xl\:rt-r-cg-4{column-gap:var(--space-4)}.xl\:rt-r-cg-5{column-gap:var(--space-5)}.xl\:rt-r-cg-6{column-gap:var(--space-6)}.xl\:rt-r-cg-7{column-gap:var(--space-7)}.xl\:rt-r-cg-8{column-gap:var(--space-8)}.xl\:rt-r-cg-9{column-gap:var(--space-9)}.xl\:rt-r-rg{row-gap:var(--row-gap-xl)}.xl\:rt-r-rg-0{row-gap:0}.xl\:rt-r-rg-1{row-gap:var(--space-1)}.xl\:rt-r-rg-2{row-gap:var(--space-2)}.xl\:rt-r-rg-3{row-gap:var(--space-3)}.xl\:rt-r-rg-4{row-gap:var(--space-4)}.xl\:rt-r-rg-5{row-gap:var(--space-5)}.xl\:rt-r-rg-6{row-gap:var(--space-6)}.xl\:rt-r-rg-7{row-gap:var(--space-7)}.xl\:rt-r-rg-8{row-gap:var(--space-8)}.xl\:rt-r-rg-9{row-gap:var(--space-9)}}.rt-r-ga{grid-area:var(--grid-area)}@media (min-width: 520px){.xs\:rt-r-ga{grid-area:var(--grid-area-xs)}}@media (min-width: 768px){.sm\:rt-r-ga{grid-area:var(--grid-area-sm)}}@media (min-width: 1024px){.md\:rt-r-ga{grid-area:var(--grid-area-md)}}@media (min-width: 1280px){.lg\:rt-r-ga{grid-area:var(--grid-area-lg)}}@media (min-width: 1640px){.xl\:rt-r-ga{grid-area:var(--grid-area-xl)}}.rt-r-gaf-row{grid-auto-flow:row}.rt-r-gaf-column{grid-auto-flow:column}.rt-r-gaf-dense{grid-auto-flow:dense}.rt-r-gaf-row-dense{grid-auto-flow:row dense}.rt-r-gaf-column-dense{grid-auto-flow:column dense}@media (min-width: 520px){.xs\:rt-r-gaf-row{grid-auto-flow:row}.xs\:rt-r-gaf-column{grid-auto-flow:column}.xs\:rt-r-gaf-dense{grid-auto-flow:dense}.xs\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xs\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 768px){.sm\:rt-r-gaf-row{grid-auto-flow:row}.sm\:rt-r-gaf-column{grid-auto-flow:column}.sm\:rt-r-gaf-dense{grid-auto-flow:dense}.sm\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.sm\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1024px){.md\:rt-r-gaf-row{grid-auto-flow:row}.md\:rt-r-gaf-column{grid-auto-flow:column}.md\:rt-r-gaf-dense{grid-auto-flow:dense}.md\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.md\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1280px){.lg\:rt-r-gaf-row{grid-auto-flow:row}.lg\:rt-r-gaf-column{grid-auto-flow:column}.lg\:rt-r-gaf-dense{grid-auto-flow:dense}.lg\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.lg\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}@media (min-width: 1640px){.xl\:rt-r-gaf-row{grid-auto-flow:row}.xl\:rt-r-gaf-column{grid-auto-flow:column}.xl\:rt-r-gaf-dense{grid-auto-flow:dense}.xl\:rt-r-gaf-row-dense{grid-auto-flow:row dense}.xl\:rt-r-gaf-column-dense{grid-auto-flow:column dense}}.rt-r-gc{grid-column:var(--grid-column)}.rt-r-gc-1{grid-column:1}.rt-r-gc-2{grid-column:2}.rt-r-gc-3{grid-column:3}.rt-r-gc-4{grid-column:4}.rt-r-gc-5{grid-column:5}.rt-r-gc-6{grid-column:6}.rt-r-gc-7{grid-column:7}.rt-r-gc-8{grid-column:8}.rt-r-gc-9{grid-column:9}@media (min-width: 520px){.xs\:rt-r-gc{grid-column:var(--grid-column-xs)}.xs\:rt-r-gc-1{grid-column:1}.xs\:rt-r-gc-2{grid-column:2}.xs\:rt-r-gc-3{grid-column:3}.xs\:rt-r-gc-4{grid-column:4}.xs\:rt-r-gc-5{grid-column:5}.xs\:rt-r-gc-6{grid-column:6}.xs\:rt-r-gc-7{grid-column:7}.xs\:rt-r-gc-8{grid-column:8}.xs\:rt-r-gc-9{grid-column:9}}@media (min-width: 768px){.sm\:rt-r-gc{grid-column:var(--grid-column-sm)}.sm\:rt-r-gc-1{grid-column:1}.sm\:rt-r-gc-2{grid-column:2}.sm\:rt-r-gc-3{grid-column:3}.sm\:rt-r-gc-4{grid-column:4}.sm\:rt-r-gc-5{grid-column:5}.sm\:rt-r-gc-6{grid-column:6}.sm\:rt-r-gc-7{grid-column:7}.sm\:rt-r-gc-8{grid-column:8}.sm\:rt-r-gc-9{grid-column:9}}@media (min-width: 1024px){.md\:rt-r-gc{grid-column:var(--grid-column-md)}.md\:rt-r-gc-1{grid-column:1}.md\:rt-r-gc-2{grid-column:2}.md\:rt-r-gc-3{grid-column:3}.md\:rt-r-gc-4{grid-column:4}.md\:rt-r-gc-5{grid-column:5}.md\:rt-r-gc-6{grid-column:6}.md\:rt-r-gc-7{grid-column:7}.md\:rt-r-gc-8{grid-column:8}.md\:rt-r-gc-9{grid-column:9}}@media (min-width: 1280px){.lg\:rt-r-gc{grid-column:var(--grid-column-lg)}.lg\:rt-r-gc-1{grid-column:1}.lg\:rt-r-gc-2{grid-column:2}.lg\:rt-r-gc-3{grid-column:3}.lg\:rt-r-gc-4{grid-column:4}.lg\:rt-r-gc-5{grid-column:5}.lg\:rt-r-gc-6{grid-column:6}.lg\:rt-r-gc-7{grid-column:7}.lg\:rt-r-gc-8{grid-column:8}.lg\:rt-r-gc-9{grid-column:9}}@media (min-width: 1640px){.xl\:rt-r-gc{grid-column:var(--grid-column-xl)}.xl\:rt-r-gc-1{grid-column:1}.xl\:rt-r-gc-2{grid-column:2}.xl\:rt-r-gc-3{grid-column:3}.xl\:rt-r-gc-4{grid-column:4}.xl\:rt-r-gc-5{grid-column:5}.xl\:rt-r-gc-6{grid-column:6}.xl\:rt-r-gc-7{grid-column:7}.xl\:rt-r-gc-8{grid-column:8}.xl\:rt-r-gc-9{grid-column:9}}.rt-r-gcs{grid-column-start:var(--grid-column-start)}.rt-r-gcs-1{grid-column-start:1}.rt-r-gcs-2{grid-column-start:2}.rt-r-gcs-3{grid-column-start:3}.rt-r-gcs-4{grid-column-start:4}.rt-r-gcs-5{grid-column-start:5}.rt-r-gcs-6{grid-column-start:6}.rt-r-gcs-7{grid-column-start:7}.rt-r-gcs-8{grid-column-start:8}.rt-r-gcs-9{grid-column-start:9}@media (min-width: 520px){.xs\:rt-r-gcs{grid-column-start:var(--grid-column-start-xs)}.xs\:rt-r-gcs-1{grid-column-start:1}.xs\:rt-r-gcs-2{grid-column-start:2}.xs\:rt-r-gcs-3{grid-column-start:3}.xs\:rt-r-gcs-4{grid-column-start:4}.xs\:rt-r-gcs-5{grid-column-start:5}.xs\:rt-r-gcs-6{grid-column-start:6}.xs\:rt-r-gcs-7{grid-column-start:7}.xs\:rt-r-gcs-8{grid-column-start:8}.xs\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 768px){.sm\:rt-r-gcs{grid-column-start:var(--grid-column-start-sm)}.sm\:rt-r-gcs-1{grid-column-start:1}.sm\:rt-r-gcs-2{grid-column-start:2}.sm\:rt-r-gcs-3{grid-column-start:3}.sm\:rt-r-gcs-4{grid-column-start:4}.sm\:rt-r-gcs-5{grid-column-start:5}.sm\:rt-r-gcs-6{grid-column-start:6}.sm\:rt-r-gcs-7{grid-column-start:7}.sm\:rt-r-gcs-8{grid-column-start:8}.sm\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1024px){.md\:rt-r-gcs{grid-column-start:var(--grid-column-start-md)}.md\:rt-r-gcs-1{grid-column-start:1}.md\:rt-r-gcs-2{grid-column-start:2}.md\:rt-r-gcs-3{grid-column-start:3}.md\:rt-r-gcs-4{grid-column-start:4}.md\:rt-r-gcs-5{grid-column-start:5}.md\:rt-r-gcs-6{grid-column-start:6}.md\:rt-r-gcs-7{grid-column-start:7}.md\:rt-r-gcs-8{grid-column-start:8}.md\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1280px){.lg\:rt-r-gcs{grid-column-start:var(--grid-column-start-lg)}.lg\:rt-r-gcs-1{grid-column-start:1}.lg\:rt-r-gcs-2{grid-column-start:2}.lg\:rt-r-gcs-3{grid-column-start:3}.lg\:rt-r-gcs-4{grid-column-start:4}.lg\:rt-r-gcs-5{grid-column-start:5}.lg\:rt-r-gcs-6{grid-column-start:6}.lg\:rt-r-gcs-7{grid-column-start:7}.lg\:rt-r-gcs-8{grid-column-start:8}.lg\:rt-r-gcs-9{grid-column-start:9}}@media (min-width: 1640px){.xl\:rt-r-gcs{grid-column-start:var(--grid-column-start-xl)}.xl\:rt-r-gcs-1{grid-column-start:1}.xl\:rt-r-gcs-2{grid-column-start:2}.xl\:rt-r-gcs-3{grid-column-start:3}.xl\:rt-r-gcs-4{grid-column-start:4}.xl\:rt-r-gcs-5{grid-column-start:5}.xl\:rt-r-gcs-6{grid-column-start:6}.xl\:rt-r-gcs-7{grid-column-start:7}.xl\:rt-r-gcs-8{grid-column-start:8}.xl\:rt-r-gcs-9{grid-column-start:9}}.rt-r-gce{grid-column-end:var(--grid-column-end)}.rt-r-gce-1{grid-column-end:1}.rt-r-gce-2{grid-column-end:2}.rt-r-gce-3{grid-column-end:3}.rt-r-gce-4{grid-column-end:4}.rt-r-gce-5{grid-column-end:5}.rt-r-gce-6{grid-column-end:6}.rt-r-gce-7{grid-column-end:7}.rt-r-gce-8{grid-column-end:8}.rt-r-gce-9{grid-column-end:9}@media (min-width: 520px){.xs\:rt-r-gce{grid-column-end:var(--grid-column-end-xs)}.xs\:rt-r-gce-1{grid-column-end:1}.xs\:rt-r-gce-2{grid-column-end:2}.xs\:rt-r-gce-3{grid-column-end:3}.xs\:rt-r-gce-4{grid-column-end:4}.xs\:rt-r-gce-5{grid-column-end:5}.xs\:rt-r-gce-6{grid-column-end:6}.xs\:rt-r-gce-7{grid-column-end:7}.xs\:rt-r-gce-8{grid-column-end:8}.xs\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 768px){.sm\:rt-r-gce{grid-column-end:var(--grid-column-end-sm)}.sm\:rt-r-gce-1{grid-column-end:1}.sm\:rt-r-gce-2{grid-column-end:2}.sm\:rt-r-gce-3{grid-column-end:3}.sm\:rt-r-gce-4{grid-column-end:4}.sm\:rt-r-gce-5{grid-column-end:5}.sm\:rt-r-gce-6{grid-column-end:6}.sm\:rt-r-gce-7{grid-column-end:7}.sm\:rt-r-gce-8{grid-column-end:8}.sm\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1024px){.md\:rt-r-gce{grid-column-end:var(--grid-column-end-md)}.md\:rt-r-gce-1{grid-column-end:1}.md\:rt-r-gce-2{grid-column-end:2}.md\:rt-r-gce-3{grid-column-end:3}.md\:rt-r-gce-4{grid-column-end:4}.md\:rt-r-gce-5{grid-column-end:5}.md\:rt-r-gce-6{grid-column-end:6}.md\:rt-r-gce-7{grid-column-end:7}.md\:rt-r-gce-8{grid-column-end:8}.md\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1280px){.lg\:rt-r-gce{grid-column-end:var(--grid-column-end-lg)}.lg\:rt-r-gce-1{grid-column-end:1}.lg\:rt-r-gce-2{grid-column-end:2}.lg\:rt-r-gce-3{grid-column-end:3}.lg\:rt-r-gce-4{grid-column-end:4}.lg\:rt-r-gce-5{grid-column-end:5}.lg\:rt-r-gce-6{grid-column-end:6}.lg\:rt-r-gce-7{grid-column-end:7}.lg\:rt-r-gce-8{grid-column-end:8}.lg\:rt-r-gce-9{grid-column-end:9}}@media (min-width: 1640px){.xl\:rt-r-gce{grid-column-end:var(--grid-column-end-xl)}.xl\:rt-r-gce-1{grid-column-end:1}.xl\:rt-r-gce-2{grid-column-end:2}.xl\:rt-r-gce-3{grid-column-end:3}.xl\:rt-r-gce-4{grid-column-end:4}.xl\:rt-r-gce-5{grid-column-end:5}.xl\:rt-r-gce-6{grid-column-end:6}.xl\:rt-r-gce-7{grid-column-end:7}.xl\:rt-r-gce-8{grid-column-end:8}.xl\:rt-r-gce-9{grid-column-end:9}}.rt-r-gr{grid-row:var(--grid-row)}.rt-r-gr-1{grid-row:1}.rt-r-gr-2{grid-row:2}.rt-r-gr-3{grid-row:3}.rt-r-gr-4{grid-row:4}.rt-r-gr-5{grid-row:5}.rt-r-gr-6{grid-row:6}.rt-r-gr-7{grid-row:7}.rt-r-gr-8{grid-row:8}.rt-r-gr-9{grid-row:9}@media (min-width: 520px){.xs\:rt-r-gr{grid-row:var(--grid-row-xs)}.xs\:rt-r-gr-1{grid-row:1}.xs\:rt-r-gr-2{grid-row:2}.xs\:rt-r-gr-3{grid-row:3}.xs\:rt-r-gr-4{grid-row:4}.xs\:rt-r-gr-5{grid-row:5}.xs\:rt-r-gr-6{grid-row:6}.xs\:rt-r-gr-7{grid-row:7}.xs\:rt-r-gr-8{grid-row:8}.xs\:rt-r-gr-9{grid-row:9}}@media (min-width: 768px){.sm\:rt-r-gr{grid-row:var(--grid-row-sm)}.sm\:rt-r-gr-1{grid-row:1}.sm\:rt-r-gr-2{grid-row:2}.sm\:rt-r-gr-3{grid-row:3}.sm\:rt-r-gr-4{grid-row:4}.sm\:rt-r-gr-5{grid-row:5}.sm\:rt-r-gr-6{grid-row:6}.sm\:rt-r-gr-7{grid-row:7}.sm\:rt-r-gr-8{grid-row:8}.sm\:rt-r-gr-9{grid-row:9}}@media (min-width: 1024px){.md\:rt-r-gr{grid-row:var(--grid-row-md)}.md\:rt-r-gr-1{grid-row:1}.md\:rt-r-gr-2{grid-row:2}.md\:rt-r-gr-3{grid-row:3}.md\:rt-r-gr-4{grid-row:4}.md\:rt-r-gr-5{grid-row:5}.md\:rt-r-gr-6{grid-row:6}.md\:rt-r-gr-7{grid-row:7}.md\:rt-r-gr-8{grid-row:8}.md\:rt-r-gr-9{grid-row:9}}@media (min-width: 1280px){.lg\:rt-r-gr{grid-row:var(--grid-row-lg)}.lg\:rt-r-gr-1{grid-row:1}.lg\:rt-r-gr-2{grid-row:2}.lg\:rt-r-gr-3{grid-row:3}.lg\:rt-r-gr-4{grid-row:4}.lg\:rt-r-gr-5{grid-row:5}.lg\:rt-r-gr-6{grid-row:6}.lg\:rt-r-gr-7{grid-row:7}.lg\:rt-r-gr-8{grid-row:8}.lg\:rt-r-gr-9{grid-row:9}}@media (min-width: 1640px){.xl\:rt-r-gr{grid-row:var(--grid-row-xl)}.xl\:rt-r-gr-1{grid-row:1}.xl\:rt-r-gr-2{grid-row:2}.xl\:rt-r-gr-3{grid-row:3}.xl\:rt-r-gr-4{grid-row:4}.xl\:rt-r-gr-5{grid-row:5}.xl\:rt-r-gr-6{grid-row:6}.xl\:rt-r-gr-7{grid-row:7}.xl\:rt-r-gr-8{grid-row:8}.xl\:rt-r-gr-9{grid-row:9}}.rt-r-grs{grid-row-start:var(--grid-row-start)}.rt-r-grs-1{grid-row-start:1}.rt-r-grs-2{grid-row-start:2}.rt-r-grs-3{grid-row-start:3}.rt-r-grs-4{grid-row-start:4}.rt-r-grs-5{grid-row-start:5}.rt-r-grs-6{grid-row-start:6}.rt-r-grs-7{grid-row-start:7}.rt-r-grs-8{grid-row-start:8}.rt-r-grs-9{grid-row-start:9}@media (min-width: 520px){.xs\:rt-r-grs{grid-row-start:var(--grid-row-start-xs)}.xs\:rt-r-grs-1{grid-row-start:1}.xs\:rt-r-grs-2{grid-row-start:2}.xs\:rt-r-grs-3{grid-row-start:3}.xs\:rt-r-grs-4{grid-row-start:4}.xs\:rt-r-grs-5{grid-row-start:5}.xs\:rt-r-grs-6{grid-row-start:6}.xs\:rt-r-grs-7{grid-row-start:7}.xs\:rt-r-grs-8{grid-row-start:8}.xs\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 768px){.sm\:rt-r-grs{grid-row-start:var(--grid-row-start-sm)}.sm\:rt-r-grs-1{grid-row-start:1}.sm\:rt-r-grs-2{grid-row-start:2}.sm\:rt-r-grs-3{grid-row-start:3}.sm\:rt-r-grs-4{grid-row-start:4}.sm\:rt-r-grs-5{grid-row-start:5}.sm\:rt-r-grs-6{grid-row-start:6}.sm\:rt-r-grs-7{grid-row-start:7}.sm\:rt-r-grs-8{grid-row-start:8}.sm\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1024px){.md\:rt-r-grs{grid-row-start:var(--grid-row-start-md)}.md\:rt-r-grs-1{grid-row-start:1}.md\:rt-r-grs-2{grid-row-start:2}.md\:rt-r-grs-3{grid-row-start:3}.md\:rt-r-grs-4{grid-row-start:4}.md\:rt-r-grs-5{grid-row-start:5}.md\:rt-r-grs-6{grid-row-start:6}.md\:rt-r-grs-7{grid-row-start:7}.md\:rt-r-grs-8{grid-row-start:8}.md\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1280px){.lg\:rt-r-grs{grid-row-start:var(--grid-row-start-lg)}.lg\:rt-r-grs-1{grid-row-start:1}.lg\:rt-r-grs-2{grid-row-start:2}.lg\:rt-r-grs-3{grid-row-start:3}.lg\:rt-r-grs-4{grid-row-start:4}.lg\:rt-r-grs-5{grid-row-start:5}.lg\:rt-r-grs-6{grid-row-start:6}.lg\:rt-r-grs-7{grid-row-start:7}.lg\:rt-r-grs-8{grid-row-start:8}.lg\:rt-r-grs-9{grid-row-start:9}}@media (min-width: 1640px){.xl\:rt-r-grs{grid-row-start:var(--grid-row-start-xl)}.xl\:rt-r-grs-1{grid-row-start:1}.xl\:rt-r-grs-2{grid-row-start:2}.xl\:rt-r-grs-3{grid-row-start:3}.xl\:rt-r-grs-4{grid-row-start:4}.xl\:rt-r-grs-5{grid-row-start:5}.xl\:rt-r-grs-6{grid-row-start:6}.xl\:rt-r-grs-7{grid-row-start:7}.xl\:rt-r-grs-8{grid-row-start:8}.xl\:rt-r-grs-9{grid-row-start:9}}.rt-r-gre{grid-row-end:var(--grid-row-end)}.rt-r-gre-1{grid-row-end:1}.rt-r-gre-2{grid-row-end:2}.rt-r-gre-3{grid-row-end:3}.rt-r-gre-4{grid-row-end:4}.rt-r-gre-5{grid-row-end:5}.rt-r-gre-6{grid-row-end:6}.rt-r-gre-7{grid-row-end:7}.rt-r-gre-8{grid-row-end:8}.rt-r-gre-9{grid-row-end:9}@media (min-width: 520px){.xs\:rt-r-gre{grid-row-end:var(--grid-row-end-xs)}.xs\:rt-r-gre-1{grid-row-end:1}.xs\:rt-r-gre-2{grid-row-end:2}.xs\:rt-r-gre-3{grid-row-end:3}.xs\:rt-r-gre-4{grid-row-end:4}.xs\:rt-r-gre-5{grid-row-end:5}.xs\:rt-r-gre-6{grid-row-end:6}.xs\:rt-r-gre-7{grid-row-end:7}.xs\:rt-r-gre-8{grid-row-end:8}.xs\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 768px){.sm\:rt-r-gre{grid-row-end:var(--grid-row-end-sm)}.sm\:rt-r-gre-1{grid-row-end:1}.sm\:rt-r-gre-2{grid-row-end:2}.sm\:rt-r-gre-3{grid-row-end:3}.sm\:rt-r-gre-4{grid-row-end:4}.sm\:rt-r-gre-5{grid-row-end:5}.sm\:rt-r-gre-6{grid-row-end:6}.sm\:rt-r-gre-7{grid-row-end:7}.sm\:rt-r-gre-8{grid-row-end:8}.sm\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1024px){.md\:rt-r-gre{grid-row-end:var(--grid-row-end-md)}.md\:rt-r-gre-1{grid-row-end:1}.md\:rt-r-gre-2{grid-row-end:2}.md\:rt-r-gre-3{grid-row-end:3}.md\:rt-r-gre-4{grid-row-end:4}.md\:rt-r-gre-5{grid-row-end:5}.md\:rt-r-gre-6{grid-row-end:6}.md\:rt-r-gre-7{grid-row-end:7}.md\:rt-r-gre-8{grid-row-end:8}.md\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1280px){.lg\:rt-r-gre{grid-row-end:var(--grid-row-end-lg)}.lg\:rt-r-gre-1{grid-row-end:1}.lg\:rt-r-gre-2{grid-row-end:2}.lg\:rt-r-gre-3{grid-row-end:3}.lg\:rt-r-gre-4{grid-row-end:4}.lg\:rt-r-gre-5{grid-row-end:5}.lg\:rt-r-gre-6{grid-row-end:6}.lg\:rt-r-gre-7{grid-row-end:7}.lg\:rt-r-gre-8{grid-row-end:8}.lg\:rt-r-gre-9{grid-row-end:9}}@media (min-width: 1640px){.xl\:rt-r-gre{grid-row-end:var(--grid-row-end-xl)}.xl\:rt-r-gre-1{grid-row-end:1}.xl\:rt-r-gre-2{grid-row-end:2}.xl\:rt-r-gre-3{grid-row-end:3}.xl\:rt-r-gre-4{grid-row-end:4}.xl\:rt-r-gre-5{grid-row-end:5}.xl\:rt-r-gre-6{grid-row-end:6}.xl\:rt-r-gre-7{grid-row-end:7}.xl\:rt-r-gre-8{grid-row-end:8}.xl\:rt-r-gre-9{grid-row-end:9}}.rt-r-gta{grid-template-areas:var(--grid-template-areas)}@media (min-width: 520px){.xs\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xs)}}@media (min-width: 768px){.sm\:rt-r-gta{grid-template-areas:var(--grid-template-areas-sm)}}@media (min-width: 1024px){.md\:rt-r-gta{grid-template-areas:var(--grid-template-areas-md)}}@media (min-width: 1280px){.lg\:rt-r-gta{grid-template-areas:var(--grid-template-areas-lg)}}@media (min-width: 1640px){.xl\:rt-r-gta{grid-template-areas:var(--grid-template-areas-xl)}}.rt-r-gtc{grid-template-columns:var(--grid-template-columns)}.rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xs)}.xs\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xs\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-sm)}.sm\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.sm\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-md)}.md\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.md\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-lg)}.lg\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.lg\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtc{grid-template-columns:var(--grid-template-columns-xl)}.xl\:rt-r-gtc-1{grid-template-columns:minmax(0,1fr)}.xl\:rt-r-gtc-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtc-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtc-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtc-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtc-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtc-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtc-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtc-9{grid-template-columns:repeat(9,minmax(0,1fr))}}.rt-r-gtr{grid-template-rows:var(--grid-template-rows)}.rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}@media (min-width: 520px){.xs\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xs)}.xs\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xs\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xs\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xs\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xs\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xs\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xs\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xs\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xs\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 768px){.sm\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-sm)}.sm\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.sm\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.sm\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.sm\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.sm\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.sm\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.sm\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.sm\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.sm\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1024px){.md\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-md)}.md\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.md\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.md\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.md\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.md\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.md\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.md\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1280px){.lg\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-lg)}.lg\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.lg\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.lg\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.lg\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.lg\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.lg\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.lg\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.lg\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.lg\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}@media (min-width: 1640px){.xl\:rt-r-gtr{grid-template-rows:var(--grid-template-rows-xl)}.xl\:rt-r-gtr-1{grid-template-rows:minmax(0,1fr)}.xl\:rt-r-gtr-2{grid-template-rows:repeat(2,minmax(0,1fr))}.xl\:rt-r-gtr-3{grid-template-rows:repeat(3,minmax(0,1fr))}.xl\:rt-r-gtr-4{grid-template-rows:repeat(4,minmax(0,1fr))}.xl\:rt-r-gtr-5{grid-template-rows:repeat(5,minmax(0,1fr))}.xl\:rt-r-gtr-6{grid-template-rows:repeat(6,minmax(0,1fr))}.xl\:rt-r-gtr-7{grid-template-rows:repeat(7,minmax(0,1fr))}.xl\:rt-r-gtr-8{grid-template-rows:repeat(8,minmax(0,1fr))}.xl\:rt-r-gtr-9{grid-template-rows:repeat(9,minmax(0,1fr))}}.rt-r-h{height:var(--height)}@media (min-width: 520px){.xs\:rt-r-h{height:var(--height-xs)}}@media (min-width: 768px){.sm\:rt-r-h{height:var(--height-sm)}}@media (min-width: 1024px){.md\:rt-r-h{height:var(--height-md)}}@media (min-width: 1280px){.lg\:rt-r-h{height:var(--height-lg)}}@media (min-width: 1640px){.xl\:rt-r-h{height:var(--height-xl)}}.rt-r-min-h{min-height:var(--min-height)}@media (min-width: 520px){.xs\:rt-r-min-h{min-height:var(--min-height-xs)}}@media (min-width: 768px){.sm\:rt-r-min-h{min-height:var(--min-height-sm)}}@media (min-width: 1024px){.md\:rt-r-min-h{min-height:var(--min-height-md)}}@media (min-width: 1280px){.lg\:rt-r-min-h{min-height:var(--min-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-h{min-height:var(--min-height-xl)}}.rt-r-max-h{max-height:var(--max-height)}@media (min-width: 520px){.xs\:rt-r-max-h{max-height:var(--max-height-xs)}}@media (min-width: 768px){.sm\:rt-r-max-h{max-height:var(--max-height-sm)}}@media (min-width: 1024px){.md\:rt-r-max-h{max-height:var(--max-height-md)}}@media (min-width: 1280px){.lg\:rt-r-max-h{max-height:var(--max-height-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-h{max-height:var(--max-height-xl)}}.rt-r-inset{inset:var(--inset)}.rt-r-inset-0{inset:0}.rt-r-inset-1{inset:var(--space-1)}.rt-r-inset-2{inset:var(--space-2)}.rt-r-inset-3{inset:var(--space-3)}.rt-r-inset-4{inset:var(--space-4)}.rt-r-inset-5{inset:var(--space-5)}.rt-r-inset-6{inset:var(--space-6)}.rt-r-inset-7{inset:var(--space-7)}.rt-r-inset-8{inset:var(--space-8)}.rt-r-inset-9{inset:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-inset{inset:var(--inset-xs)}.xs\:rt-r-inset-0{inset:0}.xs\:rt-r-inset-1{inset:var(--space-1)}.xs\:rt-r-inset-2{inset:var(--space-2)}.xs\:rt-r-inset-3{inset:var(--space-3)}.xs\:rt-r-inset-4{inset:var(--space-4)}.xs\:rt-r-inset-5{inset:var(--space-5)}.xs\:rt-r-inset-6{inset:var(--space-6)}.xs\:rt-r-inset-7{inset:var(--space-7)}.xs\:rt-r-inset-8{inset:var(--space-8)}.xs\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-inset{inset:var(--inset-sm)}.sm\:rt-r-inset-0{inset:0}.sm\:rt-r-inset-1{inset:var(--space-1)}.sm\:rt-r-inset-2{inset:var(--space-2)}.sm\:rt-r-inset-3{inset:var(--space-3)}.sm\:rt-r-inset-4{inset:var(--space-4)}.sm\:rt-r-inset-5{inset:var(--space-5)}.sm\:rt-r-inset-6{inset:var(--space-6)}.sm\:rt-r-inset-7{inset:var(--space-7)}.sm\:rt-r-inset-8{inset:var(--space-8)}.sm\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-inset{inset:var(--inset-md)}.md\:rt-r-inset-0{inset:0}.md\:rt-r-inset-1{inset:var(--space-1)}.md\:rt-r-inset-2{inset:var(--space-2)}.md\:rt-r-inset-3{inset:var(--space-3)}.md\:rt-r-inset-4{inset:var(--space-4)}.md\:rt-r-inset-5{inset:var(--space-5)}.md\:rt-r-inset-6{inset:var(--space-6)}.md\:rt-r-inset-7{inset:var(--space-7)}.md\:rt-r-inset-8{inset:var(--space-8)}.md\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-inset{inset:var(--inset-lg)}.lg\:rt-r-inset-0{inset:0}.lg\:rt-r-inset-1{inset:var(--space-1)}.lg\:rt-r-inset-2{inset:var(--space-2)}.lg\:rt-r-inset-3{inset:var(--space-3)}.lg\:rt-r-inset-4{inset:var(--space-4)}.lg\:rt-r-inset-5{inset:var(--space-5)}.lg\:rt-r-inset-6{inset:var(--space-6)}.lg\:rt-r-inset-7{inset:var(--space-7)}.lg\:rt-r-inset-8{inset:var(--space-8)}.lg\:rt-r-inset-9{inset:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-inset{inset:var(--inset-xl)}.xl\:rt-r-inset-0{inset:0}.xl\:rt-r-inset-1{inset:var(--space-1)}.xl\:rt-r-inset-2{inset:var(--space-2)}.xl\:rt-r-inset-3{inset:var(--space-3)}.xl\:rt-r-inset-4{inset:var(--space-4)}.xl\:rt-r-inset-5{inset:var(--space-5)}.xl\:rt-r-inset-6{inset:var(--space-6)}.xl\:rt-r-inset-7{inset:var(--space-7)}.xl\:rt-r-inset-8{inset:var(--space-8)}.xl\:rt-r-inset-9{inset:var(--space-9)}}.rt-r-top{top:var(--top)}.rt-r-top-0{top:0}.rt-r-top-1{top:var(--space-1)}.rt-r-top-2{top:var(--space-2)}.rt-r-top-3{top:var(--space-3)}.rt-r-top-4{top:var(--space-4)}.rt-r-top-5{top:var(--space-5)}.rt-r-top-6{top:var(--space-6)}.rt-r-top-7{top:var(--space-7)}.rt-r-top-8{top:var(--space-8)}.rt-r-top-9{top:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-top{top:var(--top-xs)}.xs\:rt-r-top-0{top:0}.xs\:rt-r-top-1{top:var(--space-1)}.xs\:rt-r-top-2{top:var(--space-2)}.xs\:rt-r-top-3{top:var(--space-3)}.xs\:rt-r-top-4{top:var(--space-4)}.xs\:rt-r-top-5{top:var(--space-5)}.xs\:rt-r-top-6{top:var(--space-6)}.xs\:rt-r-top-7{top:var(--space-7)}.xs\:rt-r-top-8{top:var(--space-8)}.xs\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-top{top:var(--top-sm)}.sm\:rt-r-top-0{top:0}.sm\:rt-r-top-1{top:var(--space-1)}.sm\:rt-r-top-2{top:var(--space-2)}.sm\:rt-r-top-3{top:var(--space-3)}.sm\:rt-r-top-4{top:var(--space-4)}.sm\:rt-r-top-5{top:var(--space-5)}.sm\:rt-r-top-6{top:var(--space-6)}.sm\:rt-r-top-7{top:var(--space-7)}.sm\:rt-r-top-8{top:var(--space-8)}.sm\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-top{top:var(--top-md)}.md\:rt-r-top-0{top:0}.md\:rt-r-top-1{top:var(--space-1)}.md\:rt-r-top-2{top:var(--space-2)}.md\:rt-r-top-3{top:var(--space-3)}.md\:rt-r-top-4{top:var(--space-4)}.md\:rt-r-top-5{top:var(--space-5)}.md\:rt-r-top-6{top:var(--space-6)}.md\:rt-r-top-7{top:var(--space-7)}.md\:rt-r-top-8{top:var(--space-8)}.md\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-top{top:var(--top-lg)}.lg\:rt-r-top-0{top:0}.lg\:rt-r-top-1{top:var(--space-1)}.lg\:rt-r-top-2{top:var(--space-2)}.lg\:rt-r-top-3{top:var(--space-3)}.lg\:rt-r-top-4{top:var(--space-4)}.lg\:rt-r-top-5{top:var(--space-5)}.lg\:rt-r-top-6{top:var(--space-6)}.lg\:rt-r-top-7{top:var(--space-7)}.lg\:rt-r-top-8{top:var(--space-8)}.lg\:rt-r-top-9{top:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-top{top:var(--top-xl)}.xl\:rt-r-top-0{top:0}.xl\:rt-r-top-1{top:var(--space-1)}.xl\:rt-r-top-2{top:var(--space-2)}.xl\:rt-r-top-3{top:var(--space-3)}.xl\:rt-r-top-4{top:var(--space-4)}.xl\:rt-r-top-5{top:var(--space-5)}.xl\:rt-r-top-6{top:var(--space-6)}.xl\:rt-r-top-7{top:var(--space-7)}.xl\:rt-r-top-8{top:var(--space-8)}.xl\:rt-r-top-9{top:var(--space-9)}}.rt-r-right{right:var(--right)}.rt-r-right-0{right:0}.rt-r-right-1{right:var(--space-1)}.rt-r-right-2{right:var(--space-2)}.rt-r-right-3{right:var(--space-3)}.rt-r-right-4{right:var(--space-4)}.rt-r-right-5{right:var(--space-5)}.rt-r-right-6{right:var(--space-6)}.rt-r-right-7{right:var(--space-7)}.rt-r-right-8{right:var(--space-8)}.rt-r-right-9{right:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-right{right:var(--right-xs)}.xs\:rt-r-right-0{right:0}.xs\:rt-r-right-1{right:var(--space-1)}.xs\:rt-r-right-2{right:var(--space-2)}.xs\:rt-r-right-3{right:var(--space-3)}.xs\:rt-r-right-4{right:var(--space-4)}.xs\:rt-r-right-5{right:var(--space-5)}.xs\:rt-r-right-6{right:var(--space-6)}.xs\:rt-r-right-7{right:var(--space-7)}.xs\:rt-r-right-8{right:var(--space-8)}.xs\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-right{right:var(--right-sm)}.sm\:rt-r-right-0{right:0}.sm\:rt-r-right-1{right:var(--space-1)}.sm\:rt-r-right-2{right:var(--space-2)}.sm\:rt-r-right-3{right:var(--space-3)}.sm\:rt-r-right-4{right:var(--space-4)}.sm\:rt-r-right-5{right:var(--space-5)}.sm\:rt-r-right-6{right:var(--space-6)}.sm\:rt-r-right-7{right:var(--space-7)}.sm\:rt-r-right-8{right:var(--space-8)}.sm\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-right{right:var(--right-md)}.md\:rt-r-right-0{right:0}.md\:rt-r-right-1{right:var(--space-1)}.md\:rt-r-right-2{right:var(--space-2)}.md\:rt-r-right-3{right:var(--space-3)}.md\:rt-r-right-4{right:var(--space-4)}.md\:rt-r-right-5{right:var(--space-5)}.md\:rt-r-right-6{right:var(--space-6)}.md\:rt-r-right-7{right:var(--space-7)}.md\:rt-r-right-8{right:var(--space-8)}.md\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-right{right:var(--right-lg)}.lg\:rt-r-right-0{right:0}.lg\:rt-r-right-1{right:var(--space-1)}.lg\:rt-r-right-2{right:var(--space-2)}.lg\:rt-r-right-3{right:var(--space-3)}.lg\:rt-r-right-4{right:var(--space-4)}.lg\:rt-r-right-5{right:var(--space-5)}.lg\:rt-r-right-6{right:var(--space-6)}.lg\:rt-r-right-7{right:var(--space-7)}.lg\:rt-r-right-8{right:var(--space-8)}.lg\:rt-r-right-9{right:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-right{right:var(--right-xl)}.xl\:rt-r-right-0{right:0}.xl\:rt-r-right-1{right:var(--space-1)}.xl\:rt-r-right-2{right:var(--space-2)}.xl\:rt-r-right-3{right:var(--space-3)}.xl\:rt-r-right-4{right:var(--space-4)}.xl\:rt-r-right-5{right:var(--space-5)}.xl\:rt-r-right-6{right:var(--space-6)}.xl\:rt-r-right-7{right:var(--space-7)}.xl\:rt-r-right-8{right:var(--space-8)}.xl\:rt-r-right-9{right:var(--space-9)}}.rt-r-bottom{bottom:var(--bottom)}.rt-r-bottom-0{bottom:0}.rt-r-bottom-1{bottom:var(--space-1)}.rt-r-bottom-2{bottom:var(--space-2)}.rt-r-bottom-3{bottom:var(--space-3)}.rt-r-bottom-4{bottom:var(--space-4)}.rt-r-bottom-5{bottom:var(--space-5)}.rt-r-bottom-6{bottom:var(--space-6)}.rt-r-bottom-7{bottom:var(--space-7)}.rt-r-bottom-8{bottom:var(--space-8)}.rt-r-bottom-9{bottom:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-bottom{bottom:var(--bottom-xs)}.xs\:rt-r-bottom-0{bottom:0}.xs\:rt-r-bottom-1{bottom:var(--space-1)}.xs\:rt-r-bottom-2{bottom:var(--space-2)}.xs\:rt-r-bottom-3{bottom:var(--space-3)}.xs\:rt-r-bottom-4{bottom:var(--space-4)}.xs\:rt-r-bottom-5{bottom:var(--space-5)}.xs\:rt-r-bottom-6{bottom:var(--space-6)}.xs\:rt-r-bottom-7{bottom:var(--space-7)}.xs\:rt-r-bottom-8{bottom:var(--space-8)}.xs\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-bottom{bottom:var(--bottom-sm)}.sm\:rt-r-bottom-0{bottom:0}.sm\:rt-r-bottom-1{bottom:var(--space-1)}.sm\:rt-r-bottom-2{bottom:var(--space-2)}.sm\:rt-r-bottom-3{bottom:var(--space-3)}.sm\:rt-r-bottom-4{bottom:var(--space-4)}.sm\:rt-r-bottom-5{bottom:var(--space-5)}.sm\:rt-r-bottom-6{bottom:var(--space-6)}.sm\:rt-r-bottom-7{bottom:var(--space-7)}.sm\:rt-r-bottom-8{bottom:var(--space-8)}.sm\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-bottom{bottom:var(--bottom-md)}.md\:rt-r-bottom-0{bottom:0}.md\:rt-r-bottom-1{bottom:var(--space-1)}.md\:rt-r-bottom-2{bottom:var(--space-2)}.md\:rt-r-bottom-3{bottom:var(--space-3)}.md\:rt-r-bottom-4{bottom:var(--space-4)}.md\:rt-r-bottom-5{bottom:var(--space-5)}.md\:rt-r-bottom-6{bottom:var(--space-6)}.md\:rt-r-bottom-7{bottom:var(--space-7)}.md\:rt-r-bottom-8{bottom:var(--space-8)}.md\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-bottom{bottom:var(--bottom-lg)}.lg\:rt-r-bottom-0{bottom:0}.lg\:rt-r-bottom-1{bottom:var(--space-1)}.lg\:rt-r-bottom-2{bottom:var(--space-2)}.lg\:rt-r-bottom-3{bottom:var(--space-3)}.lg\:rt-r-bottom-4{bottom:var(--space-4)}.lg\:rt-r-bottom-5{bottom:var(--space-5)}.lg\:rt-r-bottom-6{bottom:var(--space-6)}.lg\:rt-r-bottom-7{bottom:var(--space-7)}.lg\:rt-r-bottom-8{bottom:var(--space-8)}.lg\:rt-r-bottom-9{bottom:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-bottom{bottom:var(--bottom-xl)}.xl\:rt-r-bottom-0{bottom:0}.xl\:rt-r-bottom-1{bottom:var(--space-1)}.xl\:rt-r-bottom-2{bottom:var(--space-2)}.xl\:rt-r-bottom-3{bottom:var(--space-3)}.xl\:rt-r-bottom-4{bottom:var(--space-4)}.xl\:rt-r-bottom-5{bottom:var(--space-5)}.xl\:rt-r-bottom-6{bottom:var(--space-6)}.xl\:rt-r-bottom-7{bottom:var(--space-7)}.xl\:rt-r-bottom-8{bottom:var(--space-8)}.xl\:rt-r-bottom-9{bottom:var(--space-9)}}.rt-r-left{left:var(--left)}.rt-r-left-0{left:0}.rt-r-left-1{left:var(--space-1)}.rt-r-left-2{left:var(--space-2)}.rt-r-left-3{left:var(--space-3)}.rt-r-left-4{left:var(--space-4)}.rt-r-left-5{left:var(--space-5)}.rt-r-left-6{left:var(--space-6)}.rt-r-left-7{left:var(--space-7)}.rt-r-left-8{left:var(--space-8)}.rt-r-left-9{left:var(--space-9)}@media (min-width: 520px){.xs\:rt-r-left{left:var(--left-xs)}.xs\:rt-r-left-0{left:0}.xs\:rt-r-left-1{left:var(--space-1)}.xs\:rt-r-left-2{left:var(--space-2)}.xs\:rt-r-left-3{left:var(--space-3)}.xs\:rt-r-left-4{left:var(--space-4)}.xs\:rt-r-left-5{left:var(--space-5)}.xs\:rt-r-left-6{left:var(--space-6)}.xs\:rt-r-left-7{left:var(--space-7)}.xs\:rt-r-left-8{left:var(--space-8)}.xs\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 768px){.sm\:rt-r-left{left:var(--left-sm)}.sm\:rt-r-left-0{left:0}.sm\:rt-r-left-1{left:var(--space-1)}.sm\:rt-r-left-2{left:var(--space-2)}.sm\:rt-r-left-3{left:var(--space-3)}.sm\:rt-r-left-4{left:var(--space-4)}.sm\:rt-r-left-5{left:var(--space-5)}.sm\:rt-r-left-6{left:var(--space-6)}.sm\:rt-r-left-7{left:var(--space-7)}.sm\:rt-r-left-8{left:var(--space-8)}.sm\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1024px){.md\:rt-r-left{left:var(--left-md)}.md\:rt-r-left-0{left:0}.md\:rt-r-left-1{left:var(--space-1)}.md\:rt-r-left-2{left:var(--space-2)}.md\:rt-r-left-3{left:var(--space-3)}.md\:rt-r-left-4{left:var(--space-4)}.md\:rt-r-left-5{left:var(--space-5)}.md\:rt-r-left-6{left:var(--space-6)}.md\:rt-r-left-7{left:var(--space-7)}.md\:rt-r-left-8{left:var(--space-8)}.md\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1280px){.lg\:rt-r-left{left:var(--left-lg)}.lg\:rt-r-left-0{left:0}.lg\:rt-r-left-1{left:var(--space-1)}.lg\:rt-r-left-2{left:var(--space-2)}.lg\:rt-r-left-3{left:var(--space-3)}.lg\:rt-r-left-4{left:var(--space-4)}.lg\:rt-r-left-5{left:var(--space-5)}.lg\:rt-r-left-6{left:var(--space-6)}.lg\:rt-r-left-7{left:var(--space-7)}.lg\:rt-r-left-8{left:var(--space-8)}.lg\:rt-r-left-9{left:var(--space-9)}}@media (min-width: 1640px){.xl\:rt-r-left{left:var(--left-xl)}.xl\:rt-r-left-0{left:0}.xl\:rt-r-left-1{left:var(--space-1)}.xl\:rt-r-left-2{left:var(--space-2)}.xl\:rt-r-left-3{left:var(--space-3)}.xl\:rt-r-left-4{left:var(--space-4)}.xl\:rt-r-left-5{left:var(--space-5)}.xl\:rt-r-left-6{left:var(--space-6)}.xl\:rt-r-left-7{left:var(--space-7)}.xl\:rt-r-left-8{left:var(--space-8)}.xl\:rt-r-left-9{left:var(--space-9)}}.rt-r-jc-start{justify-content:flex-start}.rt-r-jc-center{justify-content:center}.rt-r-jc-end{justify-content:flex-end}.rt-r-jc-space-between{justify-content:space-between}@media (min-width: 520px){.xs\:rt-r-jc-start{justify-content:flex-start}.xs\:rt-r-jc-center{justify-content:center}.xs\:rt-r-jc-end{justify-content:flex-end}.xs\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 768px){.sm\:rt-r-jc-start{justify-content:flex-start}.sm\:rt-r-jc-center{justify-content:center}.sm\:rt-r-jc-end{justify-content:flex-end}.sm\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1024px){.md\:rt-r-jc-start{justify-content:flex-start}.md\:rt-r-jc-center{justify-content:center}.md\:rt-r-jc-end{justify-content:flex-end}.md\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1280px){.lg\:rt-r-jc-start{justify-content:flex-start}.lg\:rt-r-jc-center{justify-content:center}.lg\:rt-r-jc-end{justify-content:flex-end}.lg\:rt-r-jc-space-between{justify-content:space-between}}@media (min-width: 1640px){.xl\:rt-r-jc-start{justify-content:flex-start}.xl\:rt-r-jc-center{justify-content:center}.xl\:rt-r-jc-end{justify-content:flex-end}.xl\:rt-r-jc-space-between{justify-content:space-between}}.rt-r-m,.rt-r-m-0,.rt-r-m-1,.rt-r-m-2,.rt-r-m-3,.rt-r-m-4,.rt-r-m-5,.rt-r-m-6,.rt-r-m-7,.rt-r-m-8,.rt-r-m-9,.-rt-r-m-1,.-rt-r-m-2,.-rt-r-m-3,.-rt-r-m-4,.-rt-r-m-5,.-rt-r-m-6,.-rt-r-m-7,.-rt-r-m-8,.-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-m{--margin-top: var(--m);--margin-right: var(--m);--margin-bottom: var(--m);--margin-left: var(--m) }.rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-m,.xs\:rt-r-m-0,.xs\:rt-r-m-1,.xs\:rt-r-m-2,.xs\:rt-r-m-3,.xs\:rt-r-m-4,.xs\:rt-r-m-5,.xs\:rt-r-m-6,.xs\:rt-r-m-7,.xs\:rt-r-m-8,.xs\:rt-r-m-9,.xs\:-rt-r-m-1,.xs\:-rt-r-m-2,.xs\:-rt-r-m-3,.xs\:-rt-r-m-4,.xs\:-rt-r-m-5,.xs\:-rt-r-m-6,.xs\:-rt-r-m-7,.xs\:-rt-r-m-8,.xs\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-m{--margin-top: var(--m-xs);--margin-right: var(--m-xs);--margin-bottom: var(--m-xs);--margin-left: var(--m-xs) }.xs\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xs\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xs\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xs\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xs\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xs\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xs\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xs\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xs\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xs\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xs\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-m,.sm\:rt-r-m-0,.sm\:rt-r-m-1,.sm\:rt-r-m-2,.sm\:rt-r-m-3,.sm\:rt-r-m-4,.sm\:rt-r-m-5,.sm\:rt-r-m-6,.sm\:rt-r-m-7,.sm\:rt-r-m-8,.sm\:rt-r-m-9,.sm\:-rt-r-m-1,.sm\:-rt-r-m-2,.sm\:-rt-r-m-3,.sm\:-rt-r-m-4,.sm\:-rt-r-m-5,.sm\:-rt-r-m-6,.sm\:-rt-r-m-7,.sm\:-rt-r-m-8,.sm\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-m{--margin-top: var(--m-sm);--margin-right: var(--m-sm);--margin-bottom: var(--m-sm);--margin-left: var(--m-sm) }.sm\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.sm\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.sm\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.sm\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.sm\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.sm\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.sm\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.sm\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.sm\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.sm\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.sm\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-m,.md\:rt-r-m-0,.md\:rt-r-m-1,.md\:rt-r-m-2,.md\:rt-r-m-3,.md\:rt-r-m-4,.md\:rt-r-m-5,.md\:rt-r-m-6,.md\:rt-r-m-7,.md\:rt-r-m-8,.md\:rt-r-m-9,.md\:-rt-r-m-1,.md\:-rt-r-m-2,.md\:-rt-r-m-3,.md\:-rt-r-m-4,.md\:-rt-r-m-5,.md\:-rt-r-m-6,.md\:-rt-r-m-7,.md\:-rt-r-m-8,.md\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-m{--margin-top: var(--m-md);--margin-right: var(--m-md);--margin-bottom: var(--m-md);--margin-left: var(--m-md) }.md\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.md\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.md\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.md\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.md\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.md\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.md\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.md\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.md\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.md\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.md\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-m,.lg\:rt-r-m-0,.lg\:rt-r-m-1,.lg\:rt-r-m-2,.lg\:rt-r-m-3,.lg\:rt-r-m-4,.lg\:rt-r-m-5,.lg\:rt-r-m-6,.lg\:rt-r-m-7,.lg\:rt-r-m-8,.lg\:rt-r-m-9,.lg\:-rt-r-m-1,.lg\:-rt-r-m-2,.lg\:-rt-r-m-3,.lg\:-rt-r-m-4,.lg\:-rt-r-m-5,.lg\:-rt-r-m-6,.lg\:-rt-r-m-7,.lg\:-rt-r-m-8,.lg\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-m{--margin-top: var(--m-lg);--margin-right: var(--m-lg);--margin-bottom: var(--m-lg);--margin-left: var(--m-lg) }.lg\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.lg\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.lg\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.lg\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.lg\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.lg\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.lg\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.lg\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.lg\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.lg\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.lg\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-m,.xl\:rt-r-m-0,.xl\:rt-r-m-1,.xl\:rt-r-m-2,.xl\:rt-r-m-3,.xl\:rt-r-m-4,.xl\:rt-r-m-5,.xl\:rt-r-m-6,.xl\:rt-r-m-7,.xl\:rt-r-m-8,.xl\:rt-r-m-9,.xl\:-rt-r-m-1,.xl\:-rt-r-m-2,.xl\:-rt-r-m-3,.xl\:-rt-r-m-4,.xl\:-rt-r-m-5,.xl\:-rt-r-m-6,.xl\:-rt-r-m-7,.xl\:-rt-r-m-8,.xl\:-rt-r-m-9{margin-top:var(--margin-top-override, var(--margin-top));margin-right:var(--margin-right-override, var(--margin-right));margin-bottom:var(--margin-bottom-override, var(--margin-bottom));margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-m{--margin-top: var(--m-xl);--margin-right: var(--m-xl);--margin-bottom: var(--m-xl);--margin-left: var(--m-xl) }.xl\:rt-r-m-0{--margin-top: 0px;--margin-right: 0px;--margin-bottom: 0px;--margin-left: 0px}.xl\:rt-r-m-1{--margin-top: var(--space-1);--margin-right: var(--space-1);--margin-bottom: var(--space-1);--margin-left: var(--space-1)}.xl\:rt-r-m-2{--margin-top: var(--space-2);--margin-right: var(--space-2);--margin-bottom: var(--space-2);--margin-left: var(--space-2)}.xl\:rt-r-m-3{--margin-top: var(--space-3);--margin-right: var(--space-3);--margin-bottom: var(--space-3);--margin-left: var(--space-3)}.xl\:rt-r-m-4{--margin-top: var(--space-4);--margin-right: var(--space-4);--margin-bottom: var(--space-4);--margin-left: var(--space-4)}.xl\:rt-r-m-5{--margin-top: var(--space-5);--margin-right: var(--space-5);--margin-bottom: var(--space-5);--margin-left: var(--space-5)}.xl\:rt-r-m-6{--margin-top: var(--space-6);--margin-right: var(--space-6);--margin-bottom: var(--space-6);--margin-left: var(--space-6)}.xl\:rt-r-m-7{--margin-top: var(--space-7);--margin-right: var(--space-7);--margin-bottom: var(--space-7);--margin-left: var(--space-7)}.xl\:rt-r-m-8{--margin-top: var(--space-8);--margin-right: var(--space-8);--margin-bottom: var(--space-8);--margin-left: var(--space-8)}.xl\:rt-r-m-9{--margin-top: var(--space-9);--margin-right: var(--space-9);--margin-bottom: var(--space-9);--margin-left: var(--space-9)}.xl\:-rt-r-m-1{--margin-top: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1));--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-m-2{--margin-top: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2));--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-m-3{--margin-top: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3));--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-m-4{--margin-top: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4));--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-m-5{--margin-top: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5));--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-m-6{--margin-top: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6));--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-m-7{--margin-top: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7));--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-m-8{--margin-top: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8));--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-m-9{--margin-top: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9));--margin-left: calc(-1 * var(--space-9))}}.rt-r-mx,.rt-r-mx-0,.rt-r-mx-1,.rt-r-mx-2,.rt-r-mx-3,.rt-r-mx-4,.rt-r-mx-5,.rt-r-mx-6,.rt-r-mx-7,.rt-r-mx-8,.rt-r-mx-9,.-rt-r-mx-1,.-rt-r-mx-2,.-rt-r-mx-3,.-rt-r-mx-4,.-rt-r-mx-5,.-rt-r-mx-6,.-rt-r-mx-7,.-rt-r-mx-8,.-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mx{--margin-left: var(--ml);--margin-right: var(--mr) }.rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mx,.xs\:rt-r-mx-0,.xs\:rt-r-mx-1,.xs\:rt-r-mx-2,.xs\:rt-r-mx-3,.xs\:rt-r-mx-4,.xs\:rt-r-mx-5,.xs\:rt-r-mx-6,.xs\:rt-r-mx-7,.xs\:rt-r-mx-8,.xs\:rt-r-mx-9,.xs\:-rt-r-mx-1,.xs\:-rt-r-mx-2,.xs\:-rt-r-mx-3,.xs\:-rt-r-mx-4,.xs\:-rt-r-mx-5,.xs\:-rt-r-mx-6,.xs\:-rt-r-mx-7,.xs\:-rt-r-mx-8,.xs\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mx{--margin-left: var(--ml-xs);--margin-right: var(--mr-xs) }.xs\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xs\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xs\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xs\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xs\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xs\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xs\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xs\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xs\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xs\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xs\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mx,.sm\:rt-r-mx-0,.sm\:rt-r-mx-1,.sm\:rt-r-mx-2,.sm\:rt-r-mx-3,.sm\:rt-r-mx-4,.sm\:rt-r-mx-5,.sm\:rt-r-mx-6,.sm\:rt-r-mx-7,.sm\:rt-r-mx-8,.sm\:rt-r-mx-9,.sm\:-rt-r-mx-1,.sm\:-rt-r-mx-2,.sm\:-rt-r-mx-3,.sm\:-rt-r-mx-4,.sm\:-rt-r-mx-5,.sm\:-rt-r-mx-6,.sm\:-rt-r-mx-7,.sm\:-rt-r-mx-8,.sm\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.sm\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.sm\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.sm\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.sm\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.sm\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.sm\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.sm\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.sm\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.sm\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.sm\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.sm\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mx,.md\:rt-r-mx-0,.md\:rt-r-mx-1,.md\:rt-r-mx-2,.md\:rt-r-mx-3,.md\:rt-r-mx-4,.md\:rt-r-mx-5,.md\:rt-r-mx-6,.md\:rt-r-mx-7,.md\:rt-r-mx-8,.md\:rt-r-mx-9,.md\:-rt-r-mx-1,.md\:-rt-r-mx-2,.md\:-rt-r-mx-3,.md\:-rt-r-mx-4,.md\:-rt-r-mx-5,.md\:-rt-r-mx-6,.md\:-rt-r-mx-7,.md\:-rt-r-mx-8,.md\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mx{--margin-left: var(--ml-md);--margin-right: var(--mr-md) }.md\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.md\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.md\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.md\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.md\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.md\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.md\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.md\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.md\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.md\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.md\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mx,.lg\:rt-r-mx-0,.lg\:rt-r-mx-1,.lg\:rt-r-mx-2,.lg\:rt-r-mx-3,.lg\:rt-r-mx-4,.lg\:rt-r-mx-5,.lg\:rt-r-mx-6,.lg\:rt-r-mx-7,.lg\:rt-r-mx-8,.lg\:rt-r-mx-9,.lg\:-rt-r-mx-1,.lg\:-rt-r-mx-2,.lg\:-rt-r-mx-3,.lg\:-rt-r-mx-4,.lg\:-rt-r-mx-5,.lg\:-rt-r-mx-6,.lg\:-rt-r-mx-7,.lg\:-rt-r-mx-8,.lg\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mx{--margin-left: var(--ml-lg);--margin-right: var(--mr-lg) }.lg\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.lg\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.lg\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.lg\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.lg\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.lg\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.lg\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.lg\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.lg\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.lg\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.lg\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mx,.xl\:rt-r-mx-0,.xl\:rt-r-mx-1,.xl\:rt-r-mx-2,.xl\:rt-r-mx-3,.xl\:rt-r-mx-4,.xl\:rt-r-mx-5,.xl\:rt-r-mx-6,.xl\:rt-r-mx-7,.xl\:rt-r-mx-8,.xl\:rt-r-mx-9,.xl\:-rt-r-mx-1,.xl\:-rt-r-mx-2,.xl\:-rt-r-mx-3,.xl\:-rt-r-mx-4,.xl\:-rt-r-mx-5,.xl\:-rt-r-mx-6,.xl\:-rt-r-mx-7,.xl\:-rt-r-mx-8,.xl\:-rt-r-mx-9{margin-left:var(--margin-left-override, var(--margin-left));margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mx{--margin-left: var(--ml-xl);--margin-right: var(--mr-xl) }.xl\:rt-r-mx-0{--margin-left: 0px;--margin-right: 0px}.xl\:rt-r-mx-1{--margin-left: var(--space-1);--margin-right: var(--space-1)}.xl\:rt-r-mx-2{--margin-left: var(--space-2);--margin-right: var(--space-2)}.xl\:rt-r-mx-3{--margin-left: var(--space-3);--margin-right: var(--space-3)}.xl\:rt-r-mx-4{--margin-left: var(--space-4);--margin-right: var(--space-4)}.xl\:rt-r-mx-5{--margin-left: var(--space-5);--margin-right: var(--space-5)}.xl\:rt-r-mx-6{--margin-left: var(--space-6);--margin-right: var(--space-6)}.xl\:rt-r-mx-7{--margin-left: var(--space-7);--margin-right: var(--space-7)}.xl\:rt-r-mx-8{--margin-left: var(--space-8);--margin-right: var(--space-8)}.xl\:rt-r-mx-9{--margin-left: var(--space-9);--margin-right: var(--space-9)}.xl\:-rt-r-mx-1{--margin-left: calc(-1 * var(--space-1));--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mx-2{--margin-left: calc(-1 * var(--space-2));--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mx-3{--margin-left: calc(-1 * var(--space-3));--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mx-4{--margin-left: calc(-1 * var(--space-4));--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mx-5{--margin-left: calc(-1 * var(--space-5));--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mx-6{--margin-left: calc(-1 * var(--space-6));--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mx-7{--margin-left: calc(-1 * var(--space-7));--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mx-8{--margin-left: calc(-1 * var(--space-8));--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mx-9{--margin-left: calc(-1 * var(--space-9));--margin-right: calc(-1 * var(--space-9))}}.rt-r-my,.rt-r-my-0,.rt-r-my-1,.rt-r-my-2,.rt-r-my-3,.rt-r-my-4,.rt-r-my-5,.rt-r-my-6,.rt-r-my-7,.rt-r-my-8,.rt-r-my-9,.-rt-r-my-1,.-rt-r-my-2,.-rt-r-my-3,.-rt-r-my-4,.-rt-r-my-5,.-rt-r-my-6,.-rt-r-my-7,.-rt-r-my-8,.-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-my{--margin-top: var(--mt);--margin-bottom: var(--mb) }.rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-my,.xs\:rt-r-my-0,.xs\:rt-r-my-1,.xs\:rt-r-my-2,.xs\:rt-r-my-3,.xs\:rt-r-my-4,.xs\:rt-r-my-5,.xs\:rt-r-my-6,.xs\:rt-r-my-7,.xs\:rt-r-my-8,.xs\:rt-r-my-9,.xs\:-rt-r-my-1,.xs\:-rt-r-my-2,.xs\:-rt-r-my-3,.xs\:-rt-r-my-4,.xs\:-rt-r-my-5,.xs\:-rt-r-my-6,.xs\:-rt-r-my-7,.xs\:-rt-r-my-8,.xs\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-my{--margin-top: var(--mt-xs);--margin-bottom: var(--mb-xs) }.xs\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xs\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xs\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xs\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xs\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xs\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xs\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xs\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xs\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xs\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xs\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-my,.sm\:rt-r-my-0,.sm\:rt-r-my-1,.sm\:rt-r-my-2,.sm\:rt-r-my-3,.sm\:rt-r-my-4,.sm\:rt-r-my-5,.sm\:rt-r-my-6,.sm\:rt-r-my-7,.sm\:rt-r-my-8,.sm\:rt-r-my-9,.sm\:-rt-r-my-1,.sm\:-rt-r-my-2,.sm\:-rt-r-my-3,.sm\:-rt-r-my-4,.sm\:-rt-r-my-5,.sm\:-rt-r-my-6,.sm\:-rt-r-my-7,.sm\:-rt-r-my-8,.sm\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-my{--margin-top: var(--mt-sm);--margin-bottom: var(--mb-sm) }.sm\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.sm\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.sm\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.sm\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.sm\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.sm\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.sm\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.sm\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.sm\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.sm\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.sm\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-my,.md\:rt-r-my-0,.md\:rt-r-my-1,.md\:rt-r-my-2,.md\:rt-r-my-3,.md\:rt-r-my-4,.md\:rt-r-my-5,.md\:rt-r-my-6,.md\:rt-r-my-7,.md\:rt-r-my-8,.md\:rt-r-my-9,.md\:-rt-r-my-1,.md\:-rt-r-my-2,.md\:-rt-r-my-3,.md\:-rt-r-my-4,.md\:-rt-r-my-5,.md\:-rt-r-my-6,.md\:-rt-r-my-7,.md\:-rt-r-my-8,.md\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-my{--margin-top: var(--mt-md);--margin-bottom: var(--mb-md) }.md\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.md\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.md\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.md\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.md\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.md\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.md\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.md\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.md\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.md\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.md\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-my,.lg\:rt-r-my-0,.lg\:rt-r-my-1,.lg\:rt-r-my-2,.lg\:rt-r-my-3,.lg\:rt-r-my-4,.lg\:rt-r-my-5,.lg\:rt-r-my-6,.lg\:rt-r-my-7,.lg\:rt-r-my-8,.lg\:rt-r-my-9,.lg\:-rt-r-my-1,.lg\:-rt-r-my-2,.lg\:-rt-r-my-3,.lg\:-rt-r-my-4,.lg\:-rt-r-my-5,.lg\:-rt-r-my-6,.lg\:-rt-r-my-7,.lg\:-rt-r-my-8,.lg\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-my{--margin-top: var(--mt-lg);--margin-bottom: var(--mb-lg) }.lg\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.lg\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.lg\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.lg\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.lg\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.lg\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.lg\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.lg\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.lg\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.lg\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.lg\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-my,.xl\:rt-r-my-0,.xl\:rt-r-my-1,.xl\:rt-r-my-2,.xl\:rt-r-my-3,.xl\:rt-r-my-4,.xl\:rt-r-my-5,.xl\:rt-r-my-6,.xl\:rt-r-my-7,.xl\:rt-r-my-8,.xl\:rt-r-my-9,.xl\:-rt-r-my-1,.xl\:-rt-r-my-2,.xl\:-rt-r-my-3,.xl\:-rt-r-my-4,.xl\:-rt-r-my-5,.xl\:-rt-r-my-6,.xl\:-rt-r-my-7,.xl\:-rt-r-my-8,.xl\:-rt-r-my-9{margin-top:var(--margin-top-override, var(--margin-top));margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-my{--margin-top: var(--mt-xl);--margin-bottom: var(--mb-xl) }.xl\:rt-r-my-0{--margin-top: 0px;--margin-bottom: 0px}.xl\:rt-r-my-1{--margin-top: var(--space-1);--margin-bottom: var(--space-1)}.xl\:rt-r-my-2{--margin-top: var(--space-2);--margin-bottom: var(--space-2)}.xl\:rt-r-my-3{--margin-top: var(--space-3);--margin-bottom: var(--space-3)}.xl\:rt-r-my-4{--margin-top: var(--space-4);--margin-bottom: var(--space-4)}.xl\:rt-r-my-5{--margin-top: var(--space-5);--margin-bottom: var(--space-5)}.xl\:rt-r-my-6{--margin-top: var(--space-6);--margin-bottom: var(--space-6)}.xl\:rt-r-my-7{--margin-top: var(--space-7);--margin-bottom: var(--space-7)}.xl\:rt-r-my-8{--margin-top: var(--space-8);--margin-bottom: var(--space-8)}.xl\:rt-r-my-9{--margin-top: var(--space-9);--margin-bottom: var(--space-9)}.xl\:-rt-r-my-1{--margin-top: calc(-1 * var(--space-1));--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-my-2{--margin-top: calc(-1 * var(--space-2));--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-my-3{--margin-top: calc(-1 * var(--space-3));--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-my-4{--margin-top: calc(-1 * var(--space-4));--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-my-5{--margin-top: calc(-1 * var(--space-5));--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-my-6{--margin-top: calc(-1 * var(--space-6));--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-my-7{--margin-top: calc(-1 * var(--space-7));--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-my-8{--margin-top: calc(-1 * var(--space-8));--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-my-9{--margin-top: calc(-1 * var(--space-9));--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-mt,.rt-r-mt-0,.rt-r-mt-1,.rt-r-mt-2,.rt-r-mt-3,.rt-r-mt-4,.rt-r-mt-5,.rt-r-mt-6,.rt-r-mt-7,.rt-r-mt-8,.rt-r-mt-9,.-rt-r-mt-1,.-rt-r-mt-2,.-rt-r-mt-3,.-rt-r-mt-4,.-rt-r-mt-5,.-rt-r-mt-6,.-rt-r-mt-7,.-rt-r-mt-8,.-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.rt-r-mt{--margin-top: var(--mt) }.rt-r-mt-0{--margin-top: 0px}.rt-r-mt-1{--margin-top: var(--space-1)}.rt-r-mt-2{--margin-top: var(--space-2)}.rt-r-mt-3{--margin-top: var(--space-3)}.rt-r-mt-4{--margin-top: var(--space-4)}.rt-r-mt-5{--margin-top: var(--space-5)}.rt-r-mt-6{--margin-top: var(--space-6)}.rt-r-mt-7{--margin-top: var(--space-7)}.rt-r-mt-8{--margin-top: var(--space-8)}.rt-r-mt-9{--margin-top: var(--space-9)}.-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mt,.xs\:rt-r-mt-0,.xs\:rt-r-mt-1,.xs\:rt-r-mt-2,.xs\:rt-r-mt-3,.xs\:rt-r-mt-4,.xs\:rt-r-mt-5,.xs\:rt-r-mt-6,.xs\:rt-r-mt-7,.xs\:rt-r-mt-8,.xs\:rt-r-mt-9,.xs\:-rt-r-mt-1,.xs\:-rt-r-mt-2,.xs\:-rt-r-mt-3,.xs\:-rt-r-mt-4,.xs\:-rt-r-mt-5,.xs\:-rt-r-mt-6,.xs\:-rt-r-mt-7,.xs\:-rt-r-mt-8,.xs\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xs\:rt-r-mt{--margin-top: var(--mt-xs) }.xs\:rt-r-mt-0{--margin-top: 0px}.xs\:rt-r-mt-1{--margin-top: var(--space-1)}.xs\:rt-r-mt-2{--margin-top: var(--space-2)}.xs\:rt-r-mt-3{--margin-top: var(--space-3)}.xs\:rt-r-mt-4{--margin-top: var(--space-4)}.xs\:rt-r-mt-5{--margin-top: var(--space-5)}.xs\:rt-r-mt-6{--margin-top: var(--space-6)}.xs\:rt-r-mt-7{--margin-top: var(--space-7)}.xs\:rt-r-mt-8{--margin-top: var(--space-8)}.xs\:rt-r-mt-9{--margin-top: var(--space-9)}.xs\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xs\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xs\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xs\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xs\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xs\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xs\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xs\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xs\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mt,.sm\:rt-r-mt-0,.sm\:rt-r-mt-1,.sm\:rt-r-mt-2,.sm\:rt-r-mt-3,.sm\:rt-r-mt-4,.sm\:rt-r-mt-5,.sm\:rt-r-mt-6,.sm\:rt-r-mt-7,.sm\:rt-r-mt-8,.sm\:rt-r-mt-9,.sm\:-rt-r-mt-1,.sm\:-rt-r-mt-2,.sm\:-rt-r-mt-3,.sm\:-rt-r-mt-4,.sm\:-rt-r-mt-5,.sm\:-rt-r-mt-6,.sm\:-rt-r-mt-7,.sm\:-rt-r-mt-8,.sm\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.sm\:rt-r-mt{--margin-top: var(--mt-sm) }.sm\:rt-r-mt-0{--margin-top: 0px}.sm\:rt-r-mt-1{--margin-top: var(--space-1)}.sm\:rt-r-mt-2{--margin-top: var(--space-2)}.sm\:rt-r-mt-3{--margin-top: var(--space-3)}.sm\:rt-r-mt-4{--margin-top: var(--space-4)}.sm\:rt-r-mt-5{--margin-top: var(--space-5)}.sm\:rt-r-mt-6{--margin-top: var(--space-6)}.sm\:rt-r-mt-7{--margin-top: var(--space-7)}.sm\:rt-r-mt-8{--margin-top: var(--space-8)}.sm\:rt-r-mt-9{--margin-top: var(--space-9)}.sm\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.sm\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.sm\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.sm\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.sm\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.sm\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.sm\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.sm\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.sm\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mt,.md\:rt-r-mt-0,.md\:rt-r-mt-1,.md\:rt-r-mt-2,.md\:rt-r-mt-3,.md\:rt-r-mt-4,.md\:rt-r-mt-5,.md\:rt-r-mt-6,.md\:rt-r-mt-7,.md\:rt-r-mt-8,.md\:rt-r-mt-9,.md\:-rt-r-mt-1,.md\:-rt-r-mt-2,.md\:-rt-r-mt-3,.md\:-rt-r-mt-4,.md\:-rt-r-mt-5,.md\:-rt-r-mt-6,.md\:-rt-r-mt-7,.md\:-rt-r-mt-8,.md\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.md\:rt-r-mt{--margin-top: var(--mt-md) }.md\:rt-r-mt-0{--margin-top: 0px}.md\:rt-r-mt-1{--margin-top: var(--space-1)}.md\:rt-r-mt-2{--margin-top: var(--space-2)}.md\:rt-r-mt-3{--margin-top: var(--space-3)}.md\:rt-r-mt-4{--margin-top: var(--space-4)}.md\:rt-r-mt-5{--margin-top: var(--space-5)}.md\:rt-r-mt-6{--margin-top: var(--space-6)}.md\:rt-r-mt-7{--margin-top: var(--space-7)}.md\:rt-r-mt-8{--margin-top: var(--space-8)}.md\:rt-r-mt-9{--margin-top: var(--space-9)}.md\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.md\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.md\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.md\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.md\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.md\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.md\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.md\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.md\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mt,.lg\:rt-r-mt-0,.lg\:rt-r-mt-1,.lg\:rt-r-mt-2,.lg\:rt-r-mt-3,.lg\:rt-r-mt-4,.lg\:rt-r-mt-5,.lg\:rt-r-mt-6,.lg\:rt-r-mt-7,.lg\:rt-r-mt-8,.lg\:rt-r-mt-9,.lg\:-rt-r-mt-1,.lg\:-rt-r-mt-2,.lg\:-rt-r-mt-3,.lg\:-rt-r-mt-4,.lg\:-rt-r-mt-5,.lg\:-rt-r-mt-6,.lg\:-rt-r-mt-7,.lg\:-rt-r-mt-8,.lg\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.lg\:rt-r-mt{--margin-top: var(--mt-lg) }.lg\:rt-r-mt-0{--margin-top: 0px}.lg\:rt-r-mt-1{--margin-top: var(--space-1)}.lg\:rt-r-mt-2{--margin-top: var(--space-2)}.lg\:rt-r-mt-3{--margin-top: var(--space-3)}.lg\:rt-r-mt-4{--margin-top: var(--space-4)}.lg\:rt-r-mt-5{--margin-top: var(--space-5)}.lg\:rt-r-mt-6{--margin-top: var(--space-6)}.lg\:rt-r-mt-7{--margin-top: var(--space-7)}.lg\:rt-r-mt-8{--margin-top: var(--space-8)}.lg\:rt-r-mt-9{--margin-top: var(--space-9)}.lg\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.lg\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.lg\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.lg\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.lg\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.lg\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.lg\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.lg\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.lg\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mt,.xl\:rt-r-mt-0,.xl\:rt-r-mt-1,.xl\:rt-r-mt-2,.xl\:rt-r-mt-3,.xl\:rt-r-mt-4,.xl\:rt-r-mt-5,.xl\:rt-r-mt-6,.xl\:rt-r-mt-7,.xl\:rt-r-mt-8,.xl\:rt-r-mt-9,.xl\:-rt-r-mt-1,.xl\:-rt-r-mt-2,.xl\:-rt-r-mt-3,.xl\:-rt-r-mt-4,.xl\:-rt-r-mt-5,.xl\:-rt-r-mt-6,.xl\:-rt-r-mt-7,.xl\:-rt-r-mt-8,.xl\:-rt-r-mt-9{margin-top:var(--margin-top-override, var(--margin-top))}.xl\:rt-r-mt{--margin-top: var(--mt-xl) }.xl\:rt-r-mt-0{--margin-top: 0px}.xl\:rt-r-mt-1{--margin-top: var(--space-1)}.xl\:rt-r-mt-2{--margin-top: var(--space-2)}.xl\:rt-r-mt-3{--margin-top: var(--space-3)}.xl\:rt-r-mt-4{--margin-top: var(--space-4)}.xl\:rt-r-mt-5{--margin-top: var(--space-5)}.xl\:rt-r-mt-6{--margin-top: var(--space-6)}.xl\:rt-r-mt-7{--margin-top: var(--space-7)}.xl\:rt-r-mt-8{--margin-top: var(--space-8)}.xl\:rt-r-mt-9{--margin-top: var(--space-9)}.xl\:-rt-r-mt-1{--margin-top: calc(-1 * var(--space-1))}.xl\:-rt-r-mt-2{--margin-top: calc(-1 * var(--space-2))}.xl\:-rt-r-mt-3{--margin-top: calc(-1 * var(--space-3))}.xl\:-rt-r-mt-4{--margin-top: calc(-1 * var(--space-4))}.xl\:-rt-r-mt-5{--margin-top: calc(-1 * var(--space-5))}.xl\:-rt-r-mt-6{--margin-top: calc(-1 * var(--space-6))}.xl\:-rt-r-mt-7{--margin-top: calc(-1 * var(--space-7))}.xl\:-rt-r-mt-8{--margin-top: calc(-1 * var(--space-8))}.xl\:-rt-r-mt-9{--margin-top: calc(-1 * var(--space-9))}}.rt-r-mr,.rt-r-mr-0,.rt-r-mr-1,.rt-r-mr-2,.rt-r-mr-3,.rt-r-mr-4,.rt-r-mr-5,.rt-r-mr-6,.rt-r-mr-7,.rt-r-mr-8,.rt-r-mr-9,.-rt-r-mr-1,.-rt-r-mr-2,.-rt-r-mr-3,.-rt-r-mr-4,.-rt-r-mr-5,.-rt-r-mr-6,.-rt-r-mr-7,.-rt-r-mr-8,.-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.rt-r-mr{--margin-right: var(--mr) }.rt-r-mr-0{--margin-right: 0px}.rt-r-mr-1{--margin-right: var(--space-1)}.rt-r-mr-2{--margin-right: var(--space-2)}.rt-r-mr-3{--margin-right: var(--space-3)}.rt-r-mr-4{--margin-right: var(--space-4)}.rt-r-mr-5{--margin-right: var(--space-5)}.rt-r-mr-6{--margin-right: var(--space-6)}.rt-r-mr-7{--margin-right: var(--space-7)}.rt-r-mr-8{--margin-right: var(--space-8)}.rt-r-mr-9{--margin-right: var(--space-9)}.-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mr,.xs\:rt-r-mr-0,.xs\:rt-r-mr-1,.xs\:rt-r-mr-2,.xs\:rt-r-mr-3,.xs\:rt-r-mr-4,.xs\:rt-r-mr-5,.xs\:rt-r-mr-6,.xs\:rt-r-mr-7,.xs\:rt-r-mr-8,.xs\:rt-r-mr-9,.xs\:-rt-r-mr-1,.xs\:-rt-r-mr-2,.xs\:-rt-r-mr-3,.xs\:-rt-r-mr-4,.xs\:-rt-r-mr-5,.xs\:-rt-r-mr-6,.xs\:-rt-r-mr-7,.xs\:-rt-r-mr-8,.xs\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xs\:rt-r-mr{--margin-right: var(--mr-xs) }.xs\:rt-r-mr-0{--margin-right: 0px}.xs\:rt-r-mr-1{--margin-right: var(--space-1)}.xs\:rt-r-mr-2{--margin-right: var(--space-2)}.xs\:rt-r-mr-3{--margin-right: var(--space-3)}.xs\:rt-r-mr-4{--margin-right: var(--space-4)}.xs\:rt-r-mr-5{--margin-right: var(--space-5)}.xs\:rt-r-mr-6{--margin-right: var(--space-6)}.xs\:rt-r-mr-7{--margin-right: var(--space-7)}.xs\:rt-r-mr-8{--margin-right: var(--space-8)}.xs\:rt-r-mr-9{--margin-right: var(--space-9)}.xs\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xs\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xs\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xs\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xs\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xs\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xs\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xs\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xs\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mr,.sm\:rt-r-mr-0,.sm\:rt-r-mr-1,.sm\:rt-r-mr-2,.sm\:rt-r-mr-3,.sm\:rt-r-mr-4,.sm\:rt-r-mr-5,.sm\:rt-r-mr-6,.sm\:rt-r-mr-7,.sm\:rt-r-mr-8,.sm\:rt-r-mr-9,.sm\:-rt-r-mr-1,.sm\:-rt-r-mr-2,.sm\:-rt-r-mr-3,.sm\:-rt-r-mr-4,.sm\:-rt-r-mr-5,.sm\:-rt-r-mr-6,.sm\:-rt-r-mr-7,.sm\:-rt-r-mr-8,.sm\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.sm\:rt-r-mr{--margin-right: var(--mr-sm) }.sm\:rt-r-mr-0{--margin-right: 0px}.sm\:rt-r-mr-1{--margin-right: var(--space-1)}.sm\:rt-r-mr-2{--margin-right: var(--space-2)}.sm\:rt-r-mr-3{--margin-right: var(--space-3)}.sm\:rt-r-mr-4{--margin-right: var(--space-4)}.sm\:rt-r-mr-5{--margin-right: var(--space-5)}.sm\:rt-r-mr-6{--margin-right: var(--space-6)}.sm\:rt-r-mr-7{--margin-right: var(--space-7)}.sm\:rt-r-mr-8{--margin-right: var(--space-8)}.sm\:rt-r-mr-9{--margin-right: var(--space-9)}.sm\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.sm\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.sm\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.sm\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.sm\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.sm\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.sm\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.sm\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.sm\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mr,.md\:rt-r-mr-0,.md\:rt-r-mr-1,.md\:rt-r-mr-2,.md\:rt-r-mr-3,.md\:rt-r-mr-4,.md\:rt-r-mr-5,.md\:rt-r-mr-6,.md\:rt-r-mr-7,.md\:rt-r-mr-8,.md\:rt-r-mr-9,.md\:-rt-r-mr-1,.md\:-rt-r-mr-2,.md\:-rt-r-mr-3,.md\:-rt-r-mr-4,.md\:-rt-r-mr-5,.md\:-rt-r-mr-6,.md\:-rt-r-mr-7,.md\:-rt-r-mr-8,.md\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.md\:rt-r-mr{--margin-right: var(--mr-md) }.md\:rt-r-mr-0{--margin-right: 0px}.md\:rt-r-mr-1{--margin-right: var(--space-1)}.md\:rt-r-mr-2{--margin-right: var(--space-2)}.md\:rt-r-mr-3{--margin-right: var(--space-3)}.md\:rt-r-mr-4{--margin-right: var(--space-4)}.md\:rt-r-mr-5{--margin-right: var(--space-5)}.md\:rt-r-mr-6{--margin-right: var(--space-6)}.md\:rt-r-mr-7{--margin-right: var(--space-7)}.md\:rt-r-mr-8{--margin-right: var(--space-8)}.md\:rt-r-mr-9{--margin-right: var(--space-9)}.md\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.md\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.md\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.md\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.md\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.md\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.md\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.md\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.md\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mr,.lg\:rt-r-mr-0,.lg\:rt-r-mr-1,.lg\:rt-r-mr-2,.lg\:rt-r-mr-3,.lg\:rt-r-mr-4,.lg\:rt-r-mr-5,.lg\:rt-r-mr-6,.lg\:rt-r-mr-7,.lg\:rt-r-mr-8,.lg\:rt-r-mr-9,.lg\:-rt-r-mr-1,.lg\:-rt-r-mr-2,.lg\:-rt-r-mr-3,.lg\:-rt-r-mr-4,.lg\:-rt-r-mr-5,.lg\:-rt-r-mr-6,.lg\:-rt-r-mr-7,.lg\:-rt-r-mr-8,.lg\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.lg\:rt-r-mr{--margin-right: var(--mr-lg) }.lg\:rt-r-mr-0{--margin-right: 0px}.lg\:rt-r-mr-1{--margin-right: var(--space-1)}.lg\:rt-r-mr-2{--margin-right: var(--space-2)}.lg\:rt-r-mr-3{--margin-right: var(--space-3)}.lg\:rt-r-mr-4{--margin-right: var(--space-4)}.lg\:rt-r-mr-5{--margin-right: var(--space-5)}.lg\:rt-r-mr-6{--margin-right: var(--space-6)}.lg\:rt-r-mr-7{--margin-right: var(--space-7)}.lg\:rt-r-mr-8{--margin-right: var(--space-8)}.lg\:rt-r-mr-9{--margin-right: var(--space-9)}.lg\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.lg\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.lg\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.lg\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.lg\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.lg\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.lg\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.lg\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.lg\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mr,.xl\:rt-r-mr-0,.xl\:rt-r-mr-1,.xl\:rt-r-mr-2,.xl\:rt-r-mr-3,.xl\:rt-r-mr-4,.xl\:rt-r-mr-5,.xl\:rt-r-mr-6,.xl\:rt-r-mr-7,.xl\:rt-r-mr-8,.xl\:rt-r-mr-9,.xl\:-rt-r-mr-1,.xl\:-rt-r-mr-2,.xl\:-rt-r-mr-3,.xl\:-rt-r-mr-4,.xl\:-rt-r-mr-5,.xl\:-rt-r-mr-6,.xl\:-rt-r-mr-7,.xl\:-rt-r-mr-8,.xl\:-rt-r-mr-9{margin-right:var(--margin-right-override, var(--margin-right))}.xl\:rt-r-mr{--margin-right: var(--mr-xl) }.xl\:rt-r-mr-0{--margin-right: 0px}.xl\:rt-r-mr-1{--margin-right: var(--space-1)}.xl\:rt-r-mr-2{--margin-right: var(--space-2)}.xl\:rt-r-mr-3{--margin-right: var(--space-3)}.xl\:rt-r-mr-4{--margin-right: var(--space-4)}.xl\:rt-r-mr-5{--margin-right: var(--space-5)}.xl\:rt-r-mr-6{--margin-right: var(--space-6)}.xl\:rt-r-mr-7{--margin-right: var(--space-7)}.xl\:rt-r-mr-8{--margin-right: var(--space-8)}.xl\:rt-r-mr-9{--margin-right: var(--space-9)}.xl\:-rt-r-mr-1{--margin-right: calc(-1 * var(--space-1))}.xl\:-rt-r-mr-2{--margin-right: calc(-1 * var(--space-2))}.xl\:-rt-r-mr-3{--margin-right: calc(-1 * var(--space-3))}.xl\:-rt-r-mr-4{--margin-right: calc(-1 * var(--space-4))}.xl\:-rt-r-mr-5{--margin-right: calc(-1 * var(--space-5))}.xl\:-rt-r-mr-6{--margin-right: calc(-1 * var(--space-6))}.xl\:-rt-r-mr-7{--margin-right: calc(-1 * var(--space-7))}.xl\:-rt-r-mr-8{--margin-right: calc(-1 * var(--space-8))}.xl\:-rt-r-mr-9{--margin-right: calc(-1 * var(--space-9))}}.rt-r-mb,.rt-r-mb-0,.rt-r-mb-1,.rt-r-mb-2,.rt-r-mb-3,.rt-r-mb-4,.rt-r-mb-5,.rt-r-mb-6,.rt-r-mb-7,.rt-r-mb-8,.rt-r-mb-9,.-rt-r-mb-1,.-rt-r-mb-2,.-rt-r-mb-3,.-rt-r-mb-4,.-rt-r-mb-5,.-rt-r-mb-6,.-rt-r-mb-7,.-rt-r-mb-8,.-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.rt-r-mb{--margin-bottom: var(--mb) }.rt-r-mb-0{--margin-bottom: 0px}.rt-r-mb-1{--margin-bottom: var(--space-1)}.rt-r-mb-2{--margin-bottom: var(--space-2)}.rt-r-mb-3{--margin-bottom: var(--space-3)}.rt-r-mb-4{--margin-bottom: var(--space-4)}.rt-r-mb-5{--margin-bottom: var(--space-5)}.rt-r-mb-6{--margin-bottom: var(--space-6)}.rt-r-mb-7{--margin-bottom: var(--space-7)}.rt-r-mb-8{--margin-bottom: var(--space-8)}.rt-r-mb-9{--margin-bottom: var(--space-9)}.-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-mb,.xs\:rt-r-mb-0,.xs\:rt-r-mb-1,.xs\:rt-r-mb-2,.xs\:rt-r-mb-3,.xs\:rt-r-mb-4,.xs\:rt-r-mb-5,.xs\:rt-r-mb-6,.xs\:rt-r-mb-7,.xs\:rt-r-mb-8,.xs\:rt-r-mb-9,.xs\:-rt-r-mb-1,.xs\:-rt-r-mb-2,.xs\:-rt-r-mb-3,.xs\:-rt-r-mb-4,.xs\:-rt-r-mb-5,.xs\:-rt-r-mb-6,.xs\:-rt-r-mb-7,.xs\:-rt-r-mb-8,.xs\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xs\:rt-r-mb{--margin-bottom: var(--mb-xs) }.xs\:rt-r-mb-0{--margin-bottom: 0px}.xs\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xs\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xs\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xs\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xs\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xs\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xs\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xs\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xs\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xs\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xs\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xs\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xs\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xs\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xs\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xs\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xs\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xs\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-mb,.sm\:rt-r-mb-0,.sm\:rt-r-mb-1,.sm\:rt-r-mb-2,.sm\:rt-r-mb-3,.sm\:rt-r-mb-4,.sm\:rt-r-mb-5,.sm\:rt-r-mb-6,.sm\:rt-r-mb-7,.sm\:rt-r-mb-8,.sm\:rt-r-mb-9,.sm\:-rt-r-mb-1,.sm\:-rt-r-mb-2,.sm\:-rt-r-mb-3,.sm\:-rt-r-mb-4,.sm\:-rt-r-mb-5,.sm\:-rt-r-mb-6,.sm\:-rt-r-mb-7,.sm\:-rt-r-mb-8,.sm\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.sm\:rt-r-mb{--margin-bottom: var(--mb-sm) }.sm\:rt-r-mb-0{--margin-bottom: 0px}.sm\:rt-r-mb-1{--margin-bottom: var(--space-1)}.sm\:rt-r-mb-2{--margin-bottom: var(--space-2)}.sm\:rt-r-mb-3{--margin-bottom: var(--space-3)}.sm\:rt-r-mb-4{--margin-bottom: var(--space-4)}.sm\:rt-r-mb-5{--margin-bottom: var(--space-5)}.sm\:rt-r-mb-6{--margin-bottom: var(--space-6)}.sm\:rt-r-mb-7{--margin-bottom: var(--space-7)}.sm\:rt-r-mb-8{--margin-bottom: var(--space-8)}.sm\:rt-r-mb-9{--margin-bottom: var(--space-9)}.sm\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.sm\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.sm\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.sm\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.sm\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.sm\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.sm\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.sm\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.sm\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-mb,.md\:rt-r-mb-0,.md\:rt-r-mb-1,.md\:rt-r-mb-2,.md\:rt-r-mb-3,.md\:rt-r-mb-4,.md\:rt-r-mb-5,.md\:rt-r-mb-6,.md\:rt-r-mb-7,.md\:rt-r-mb-8,.md\:rt-r-mb-9,.md\:-rt-r-mb-1,.md\:-rt-r-mb-2,.md\:-rt-r-mb-3,.md\:-rt-r-mb-4,.md\:-rt-r-mb-5,.md\:-rt-r-mb-6,.md\:-rt-r-mb-7,.md\:-rt-r-mb-8,.md\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.md\:rt-r-mb{--margin-bottom: var(--mb-md) }.md\:rt-r-mb-0{--margin-bottom: 0px}.md\:rt-r-mb-1{--margin-bottom: var(--space-1)}.md\:rt-r-mb-2{--margin-bottom: var(--space-2)}.md\:rt-r-mb-3{--margin-bottom: var(--space-3)}.md\:rt-r-mb-4{--margin-bottom: var(--space-4)}.md\:rt-r-mb-5{--margin-bottom: var(--space-5)}.md\:rt-r-mb-6{--margin-bottom: var(--space-6)}.md\:rt-r-mb-7{--margin-bottom: var(--space-7)}.md\:rt-r-mb-8{--margin-bottom: var(--space-8)}.md\:rt-r-mb-9{--margin-bottom: var(--space-9)}.md\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.md\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.md\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.md\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.md\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.md\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.md\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.md\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.md\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-mb,.lg\:rt-r-mb-0,.lg\:rt-r-mb-1,.lg\:rt-r-mb-2,.lg\:rt-r-mb-3,.lg\:rt-r-mb-4,.lg\:rt-r-mb-5,.lg\:rt-r-mb-6,.lg\:rt-r-mb-7,.lg\:rt-r-mb-8,.lg\:rt-r-mb-9,.lg\:-rt-r-mb-1,.lg\:-rt-r-mb-2,.lg\:-rt-r-mb-3,.lg\:-rt-r-mb-4,.lg\:-rt-r-mb-5,.lg\:-rt-r-mb-6,.lg\:-rt-r-mb-7,.lg\:-rt-r-mb-8,.lg\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.lg\:rt-r-mb{--margin-bottom: var(--mb-lg) }.lg\:rt-r-mb-0{--margin-bottom: 0px}.lg\:rt-r-mb-1{--margin-bottom: var(--space-1)}.lg\:rt-r-mb-2{--margin-bottom: var(--space-2)}.lg\:rt-r-mb-3{--margin-bottom: var(--space-3)}.lg\:rt-r-mb-4{--margin-bottom: var(--space-4)}.lg\:rt-r-mb-5{--margin-bottom: var(--space-5)}.lg\:rt-r-mb-6{--margin-bottom: var(--space-6)}.lg\:rt-r-mb-7{--margin-bottom: var(--space-7)}.lg\:rt-r-mb-8{--margin-bottom: var(--space-8)}.lg\:rt-r-mb-9{--margin-bottom: var(--space-9)}.lg\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.lg\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.lg\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.lg\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.lg\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.lg\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.lg\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.lg\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.lg\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-mb,.xl\:rt-r-mb-0,.xl\:rt-r-mb-1,.xl\:rt-r-mb-2,.xl\:rt-r-mb-3,.xl\:rt-r-mb-4,.xl\:rt-r-mb-5,.xl\:rt-r-mb-6,.xl\:rt-r-mb-7,.xl\:rt-r-mb-8,.xl\:rt-r-mb-9,.xl\:-rt-r-mb-1,.xl\:-rt-r-mb-2,.xl\:-rt-r-mb-3,.xl\:-rt-r-mb-4,.xl\:-rt-r-mb-5,.xl\:-rt-r-mb-6,.xl\:-rt-r-mb-7,.xl\:-rt-r-mb-8,.xl\:-rt-r-mb-9{margin-bottom:var(--margin-bottom-override, var(--margin-bottom))}.xl\:rt-r-mb{--margin-bottom: var(--mb-xl) }.xl\:rt-r-mb-0{--margin-bottom: 0px}.xl\:rt-r-mb-1{--margin-bottom: var(--space-1)}.xl\:rt-r-mb-2{--margin-bottom: var(--space-2)}.xl\:rt-r-mb-3{--margin-bottom: var(--space-3)}.xl\:rt-r-mb-4{--margin-bottom: var(--space-4)}.xl\:rt-r-mb-5{--margin-bottom: var(--space-5)}.xl\:rt-r-mb-6{--margin-bottom: var(--space-6)}.xl\:rt-r-mb-7{--margin-bottom: var(--space-7)}.xl\:rt-r-mb-8{--margin-bottom: var(--space-8)}.xl\:rt-r-mb-9{--margin-bottom: var(--space-9)}.xl\:-rt-r-mb-1{--margin-bottom: calc(-1 * var(--space-1))}.xl\:-rt-r-mb-2{--margin-bottom: calc(-1 * var(--space-2))}.xl\:-rt-r-mb-3{--margin-bottom: calc(-1 * var(--space-3))}.xl\:-rt-r-mb-4{--margin-bottom: calc(-1 * var(--space-4))}.xl\:-rt-r-mb-5{--margin-bottom: calc(-1 * var(--space-5))}.xl\:-rt-r-mb-6{--margin-bottom: calc(-1 * var(--space-6))}.xl\:-rt-r-mb-7{--margin-bottom: calc(-1 * var(--space-7))}.xl\:-rt-r-mb-8{--margin-bottom: calc(-1 * var(--space-8))}.xl\:-rt-r-mb-9{--margin-bottom: calc(-1 * var(--space-9))}}.rt-r-ml,.rt-r-ml-0,.rt-r-ml-1,.rt-r-ml-2,.rt-r-ml-3,.rt-r-ml-4,.rt-r-ml-5,.rt-r-ml-6,.rt-r-ml-7,.rt-r-ml-8,.rt-r-ml-9,.-rt-r-ml-1,.-rt-r-ml-2,.-rt-r-ml-3,.-rt-r-ml-4,.-rt-r-ml-5,.-rt-r-ml-6,.-rt-r-ml-7,.-rt-r-ml-8,.-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.rt-r-ml{--margin-left: var(--ml) }.rt-r-ml-0{--margin-left: 0px}.rt-r-ml-1{--margin-left: var(--space-1)}.rt-r-ml-2{--margin-left: var(--space-2)}.rt-r-ml-3{--margin-left: var(--space-3)}.rt-r-ml-4{--margin-left: var(--space-4)}.rt-r-ml-5{--margin-left: var(--space-5)}.rt-r-ml-6{--margin-left: var(--space-6)}.rt-r-ml-7{--margin-left: var(--space-7)}.rt-r-ml-8{--margin-left: var(--space-8)}.rt-r-ml-9{--margin-left: var(--space-9)}.-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}@media (min-width: 520px){.xs\:rt-r-ml,.xs\:rt-r-ml-0,.xs\:rt-r-ml-1,.xs\:rt-r-ml-2,.xs\:rt-r-ml-3,.xs\:rt-r-ml-4,.xs\:rt-r-ml-5,.xs\:rt-r-ml-6,.xs\:rt-r-ml-7,.xs\:rt-r-ml-8,.xs\:rt-r-ml-9,.xs\:-rt-r-ml-1,.xs\:-rt-r-ml-2,.xs\:-rt-r-ml-3,.xs\:-rt-r-ml-4,.xs\:-rt-r-ml-5,.xs\:-rt-r-ml-6,.xs\:-rt-r-ml-7,.xs\:-rt-r-ml-8,.xs\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xs\:rt-r-ml{--margin-left: var(--ml-xs) }.xs\:rt-r-ml-0{--margin-left: 0px}.xs\:rt-r-ml-1{--margin-left: var(--space-1)}.xs\:rt-r-ml-2{--margin-left: var(--space-2)}.xs\:rt-r-ml-3{--margin-left: var(--space-3)}.xs\:rt-r-ml-4{--margin-left: var(--space-4)}.xs\:rt-r-ml-5{--margin-left: var(--space-5)}.xs\:rt-r-ml-6{--margin-left: var(--space-6)}.xs\:rt-r-ml-7{--margin-left: var(--space-7)}.xs\:rt-r-ml-8{--margin-left: var(--space-8)}.xs\:rt-r-ml-9{--margin-left: var(--space-9)}.xs\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xs\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xs\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xs\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xs\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xs\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xs\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xs\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xs\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 768px){.sm\:rt-r-ml,.sm\:rt-r-ml-0,.sm\:rt-r-ml-1,.sm\:rt-r-ml-2,.sm\:rt-r-ml-3,.sm\:rt-r-ml-4,.sm\:rt-r-ml-5,.sm\:rt-r-ml-6,.sm\:rt-r-ml-7,.sm\:rt-r-ml-8,.sm\:rt-r-ml-9,.sm\:-rt-r-ml-1,.sm\:-rt-r-ml-2,.sm\:-rt-r-ml-3,.sm\:-rt-r-ml-4,.sm\:-rt-r-ml-5,.sm\:-rt-r-ml-6,.sm\:-rt-r-ml-7,.sm\:-rt-r-ml-8,.sm\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.sm\:rt-r-ml{--margin-left: var(--ml-sm) }.sm\:rt-r-ml-0{--margin-left: 0px}.sm\:rt-r-ml-1{--margin-left: var(--space-1)}.sm\:rt-r-ml-2{--margin-left: var(--space-2)}.sm\:rt-r-ml-3{--margin-left: var(--space-3)}.sm\:rt-r-ml-4{--margin-left: var(--space-4)}.sm\:rt-r-ml-5{--margin-left: var(--space-5)}.sm\:rt-r-ml-6{--margin-left: var(--space-6)}.sm\:rt-r-ml-7{--margin-left: var(--space-7)}.sm\:rt-r-ml-8{--margin-left: var(--space-8)}.sm\:rt-r-ml-9{--margin-left: var(--space-9)}.sm\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.sm\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.sm\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.sm\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.sm\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.sm\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.sm\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.sm\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.sm\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1024px){.md\:rt-r-ml,.md\:rt-r-ml-0,.md\:rt-r-ml-1,.md\:rt-r-ml-2,.md\:rt-r-ml-3,.md\:rt-r-ml-4,.md\:rt-r-ml-5,.md\:rt-r-ml-6,.md\:rt-r-ml-7,.md\:rt-r-ml-8,.md\:rt-r-ml-9,.md\:-rt-r-ml-1,.md\:-rt-r-ml-2,.md\:-rt-r-ml-3,.md\:-rt-r-ml-4,.md\:-rt-r-ml-5,.md\:-rt-r-ml-6,.md\:-rt-r-ml-7,.md\:-rt-r-ml-8,.md\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.md\:rt-r-ml{--margin-left: var(--ml-md) }.md\:rt-r-ml-0{--margin-left: 0px}.md\:rt-r-ml-1{--margin-left: var(--space-1)}.md\:rt-r-ml-2{--margin-left: var(--space-2)}.md\:rt-r-ml-3{--margin-left: var(--space-3)}.md\:rt-r-ml-4{--margin-left: var(--space-4)}.md\:rt-r-ml-5{--margin-left: var(--space-5)}.md\:rt-r-ml-6{--margin-left: var(--space-6)}.md\:rt-r-ml-7{--margin-left: var(--space-7)}.md\:rt-r-ml-8{--margin-left: var(--space-8)}.md\:rt-r-ml-9{--margin-left: var(--space-9)}.md\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.md\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.md\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.md\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.md\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.md\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.md\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.md\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.md\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1280px){.lg\:rt-r-ml,.lg\:rt-r-ml-0,.lg\:rt-r-ml-1,.lg\:rt-r-ml-2,.lg\:rt-r-ml-3,.lg\:rt-r-ml-4,.lg\:rt-r-ml-5,.lg\:rt-r-ml-6,.lg\:rt-r-ml-7,.lg\:rt-r-ml-8,.lg\:rt-r-ml-9,.lg\:-rt-r-ml-1,.lg\:-rt-r-ml-2,.lg\:-rt-r-ml-3,.lg\:-rt-r-ml-4,.lg\:-rt-r-ml-5,.lg\:-rt-r-ml-6,.lg\:-rt-r-ml-7,.lg\:-rt-r-ml-8,.lg\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.lg\:rt-r-ml{--margin-left: var(--ml-lg) }.lg\:rt-r-ml-0{--margin-left: 0px}.lg\:rt-r-ml-1{--margin-left: var(--space-1)}.lg\:rt-r-ml-2{--margin-left: var(--space-2)}.lg\:rt-r-ml-3{--margin-left: var(--space-3)}.lg\:rt-r-ml-4{--margin-left: var(--space-4)}.lg\:rt-r-ml-5{--margin-left: var(--space-5)}.lg\:rt-r-ml-6{--margin-left: var(--space-6)}.lg\:rt-r-ml-7{--margin-left: var(--space-7)}.lg\:rt-r-ml-8{--margin-left: var(--space-8)}.lg\:rt-r-ml-9{--margin-left: var(--space-9)}.lg\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.lg\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.lg\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.lg\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.lg\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.lg\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.lg\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.lg\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.lg\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}@media (min-width: 1640px){.xl\:rt-r-ml,.xl\:rt-r-ml-0,.xl\:rt-r-ml-1,.xl\:rt-r-ml-2,.xl\:rt-r-ml-3,.xl\:rt-r-ml-4,.xl\:rt-r-ml-5,.xl\:rt-r-ml-6,.xl\:rt-r-ml-7,.xl\:rt-r-ml-8,.xl\:rt-r-ml-9,.xl\:-rt-r-ml-1,.xl\:-rt-r-ml-2,.xl\:-rt-r-ml-3,.xl\:-rt-r-ml-4,.xl\:-rt-r-ml-5,.xl\:-rt-r-ml-6,.xl\:-rt-r-ml-7,.xl\:-rt-r-ml-8,.xl\:-rt-r-ml-9{margin-left:var(--margin-left-override, var(--margin-left))}.xl\:rt-r-ml{--margin-left: var(--ml-xl) }.xl\:rt-r-ml-0{--margin-left: 0px}.xl\:rt-r-ml-1{--margin-left: var(--space-1)}.xl\:rt-r-ml-2{--margin-left: var(--space-2)}.xl\:rt-r-ml-3{--margin-left: var(--space-3)}.xl\:rt-r-ml-4{--margin-left: var(--space-4)}.xl\:rt-r-ml-5{--margin-left: var(--space-5)}.xl\:rt-r-ml-6{--margin-left: var(--space-6)}.xl\:rt-r-ml-7{--margin-left: var(--space-7)}.xl\:rt-r-ml-8{--margin-left: var(--space-8)}.xl\:rt-r-ml-9{--margin-left: var(--space-9)}.xl\:-rt-r-ml-1{--margin-left: calc(-1 * var(--space-1))}.xl\:-rt-r-ml-2{--margin-left: calc(-1 * var(--space-2))}.xl\:-rt-r-ml-3{--margin-left: calc(-1 * var(--space-3))}.xl\:-rt-r-ml-4{--margin-left: calc(-1 * var(--space-4))}.xl\:-rt-r-ml-5{--margin-left: calc(-1 * var(--space-5))}.xl\:-rt-r-ml-6{--margin-left: calc(-1 * var(--space-6))}.xl\:-rt-r-ml-7{--margin-left: calc(-1 * var(--space-7))}.xl\:-rt-r-ml-8{--margin-left: calc(-1 * var(--space-8))}.xl\:-rt-r-ml-9{--margin-left: calc(-1 * var(--space-9))}}.rt-r-overflow-visible{overflow:visible}.rt-r-overflow-hidden{overflow:hidden}.rt-r-overflow-clip{overflow:clip}.rt-r-overflow-scroll{overflow:scroll}.rt-r-overflow-auto{overflow:auto}.rt-r-ox-visible{overflow-x:visible}.rt-r-ox-hidden{overflow-x:hidden}.rt-r-ox-clip{overflow-x:clip}.rt-r-ox-scroll{overflow-x:scroll}.rt-r-ox-auto{overflow-x:auto}.rt-r-oy-visible{overflow-y:visible}.rt-r-oy-hidden{overflow-y:hidden}.rt-r-oy-clip{overflow-y:clip}.rt-r-oy-scroll{overflow-y:scroll}.rt-r-oy-auto{overflow-y:auto}@media (min-width: 520px){.xs\:rt-r-overflow-visible{overflow:visible}.xs\:rt-r-overflow-hidden{overflow:hidden}.xs\:rt-r-overflow-clip{overflow:clip}.xs\:rt-r-overflow-scroll{overflow:scroll}.xs\:rt-r-overflow-auto{overflow:auto}.xs\:rt-r-ox-visible{overflow-x:visible}.xs\:rt-r-ox-hidden{overflow-x:hidden}.xs\:rt-r-ox-clip{overflow-x:clip}.xs\:rt-r-ox-scroll{overflow-x:scroll}.xs\:rt-r-ox-auto{overflow-x:auto}.xs\:rt-r-oy-visible{overflow-y:visible}.xs\:rt-r-oy-hidden{overflow-y:hidden}.xs\:rt-r-oy-clip{overflow-y:clip}.xs\:rt-r-oy-scroll{overflow-y:scroll}.xs\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 768px){.sm\:rt-r-overflow-visible{overflow:visible}.sm\:rt-r-overflow-hidden{overflow:hidden}.sm\:rt-r-overflow-clip{overflow:clip}.sm\:rt-r-overflow-scroll{overflow:scroll}.sm\:rt-r-overflow-auto{overflow:auto}.sm\:rt-r-ox-visible{overflow-x:visible}.sm\:rt-r-ox-hidden{overflow-x:hidden}.sm\:rt-r-ox-clip{overflow-x:clip}.sm\:rt-r-ox-scroll{overflow-x:scroll}.sm\:rt-r-ox-auto{overflow-x:auto}.sm\:rt-r-oy-visible{overflow-y:visible}.sm\:rt-r-oy-hidden{overflow-y:hidden}.sm\:rt-r-oy-clip{overflow-y:clip}.sm\:rt-r-oy-scroll{overflow-y:scroll}.sm\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1024px){.md\:rt-r-overflow-visible{overflow:visible}.md\:rt-r-overflow-hidden{overflow:hidden}.md\:rt-r-overflow-clip{overflow:clip}.md\:rt-r-overflow-scroll{overflow:scroll}.md\:rt-r-overflow-auto{overflow:auto}.md\:rt-r-ox-visible{overflow-x:visible}.md\:rt-r-ox-hidden{overflow-x:hidden}.md\:rt-r-ox-clip{overflow-x:clip}.md\:rt-r-ox-scroll{overflow-x:scroll}.md\:rt-r-ox-auto{overflow-x:auto}.md\:rt-r-oy-visible{overflow-y:visible}.md\:rt-r-oy-hidden{overflow-y:hidden}.md\:rt-r-oy-clip{overflow-y:clip}.md\:rt-r-oy-scroll{overflow-y:scroll}.md\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1280px){.lg\:rt-r-overflow-visible{overflow:visible}.lg\:rt-r-overflow-hidden{overflow:hidden}.lg\:rt-r-overflow-clip{overflow:clip}.lg\:rt-r-overflow-scroll{overflow:scroll}.lg\:rt-r-overflow-auto{overflow:auto}.lg\:rt-r-ox-visible{overflow-x:visible}.lg\:rt-r-ox-hidden{overflow-x:hidden}.lg\:rt-r-ox-clip{overflow-x:clip}.lg\:rt-r-ox-scroll{overflow-x:scroll}.lg\:rt-r-ox-auto{overflow-x:auto}.lg\:rt-r-oy-visible{overflow-y:visible}.lg\:rt-r-oy-hidden{overflow-y:hidden}.lg\:rt-r-oy-clip{overflow-y:clip}.lg\:rt-r-oy-scroll{overflow-y:scroll}.lg\:rt-r-oy-auto{overflow-y:auto}}@media (min-width: 1640px){.xl\:rt-r-overflow-visible{overflow:visible}.xl\:rt-r-overflow-hidden{overflow:hidden}.xl\:rt-r-overflow-clip{overflow:clip}.xl\:rt-r-overflow-scroll{overflow:scroll}.xl\:rt-r-overflow-auto{overflow:auto}.xl\:rt-r-ox-visible{overflow-x:visible}.xl\:rt-r-ox-hidden{overflow-x:hidden}.xl\:rt-r-ox-clip{overflow-x:clip}.xl\:rt-r-ox-scroll{overflow-x:scroll}.xl\:rt-r-ox-auto{overflow-x:auto}.xl\:rt-r-oy-visible{overflow-y:visible}.xl\:rt-r-oy-hidden{overflow-y:hidden}.xl\:rt-r-oy-clip{overflow-y:clip}.xl\:rt-r-oy-scroll{overflow-y:scroll}.xl\:rt-r-oy-auto{overflow-y:auto}}.rt-r-p{padding:var(--p)}.rt-r-p-0{padding:0}.rt-r-p-1{padding:var(--space-1)}.rt-r-p-2{padding:var(--space-2)}.rt-r-p-3{padding:var(--space-3)}.rt-r-p-4{padding:var(--space-4)}.rt-r-p-5{padding:var(--space-5)}.rt-r-p-6{padding:var(--space-6)}.rt-r-p-7{padding:var(--space-7)}.rt-r-p-8{padding:var(--space-8)}.rt-r-p-9{padding:var(--space-9)}.rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-p{padding:var(--p-xs)}.xs\:rt-r-p-0{padding:0}.xs\:rt-r-p-1{padding:var(--space-1)}.xs\:rt-r-p-2{padding:var(--space-2)}.xs\:rt-r-p-3{padding:var(--space-3)}.xs\:rt-r-p-4{padding:var(--space-4)}.xs\:rt-r-p-5{padding:var(--space-5)}.xs\:rt-r-p-6{padding:var(--space-6)}.xs\:rt-r-p-7{padding:var(--space-7)}.xs\:rt-r-p-8{padding:var(--space-8)}.xs\:rt-r-p-9{padding:var(--space-9)}.xs\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-p{padding:var(--p-sm)}.sm\:rt-r-p-0{padding:0}.sm\:rt-r-p-1{padding:var(--space-1)}.sm\:rt-r-p-2{padding:var(--space-2)}.sm\:rt-r-p-3{padding:var(--space-3)}.sm\:rt-r-p-4{padding:var(--space-4)}.sm\:rt-r-p-5{padding:var(--space-5)}.sm\:rt-r-p-6{padding:var(--space-6)}.sm\:rt-r-p-7{padding:var(--space-7)}.sm\:rt-r-p-8{padding:var(--space-8)}.sm\:rt-r-p-9{padding:var(--space-9)}.sm\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-p{padding:var(--p-md)}.md\:rt-r-p-0{padding:0}.md\:rt-r-p-1{padding:var(--space-1)}.md\:rt-r-p-2{padding:var(--space-2)}.md\:rt-r-p-3{padding:var(--space-3)}.md\:rt-r-p-4{padding:var(--space-4)}.md\:rt-r-p-5{padding:var(--space-5)}.md\:rt-r-p-6{padding:var(--space-6)}.md\:rt-r-p-7{padding:var(--space-7)}.md\:rt-r-p-8{padding:var(--space-8)}.md\:rt-r-p-9{padding:var(--space-9)}.md\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-p{padding:var(--p-lg)}.lg\:rt-r-p-0{padding:0}.lg\:rt-r-p-1{padding:var(--space-1)}.lg\:rt-r-p-2{padding:var(--space-2)}.lg\:rt-r-p-3{padding:var(--space-3)}.lg\:rt-r-p-4{padding:var(--space-4)}.lg\:rt-r-p-5{padding:var(--space-5)}.lg\:rt-r-p-6{padding:var(--space-6)}.lg\:rt-r-p-7{padding:var(--space-7)}.lg\:rt-r-p-8{padding:var(--space-8)}.lg\:rt-r-p-9{padding:var(--space-9)}.lg\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-p{padding:var(--p-xl)}.xl\:rt-r-p-0{padding:0}.xl\:rt-r-p-1{padding:var(--space-1)}.xl\:rt-r-p-2{padding:var(--space-2)}.xl\:rt-r-p-3{padding:var(--space-3)}.xl\:rt-r-p-4{padding:var(--space-4)}.xl\:rt-r-p-5{padding:var(--space-5)}.xl\:rt-r-p-6{padding:var(--space-6)}.xl\:rt-r-p-7{padding:var(--space-7)}.xl\:rt-r-p-8{padding:var(--space-8)}.xl\:rt-r-p-9{padding:var(--space-9)}.xl\:rt-r-p-inset{padding-top:var(--inset-padding-top);padding-right:var(--inset-padding-right);padding-bottom:var(--inset-padding-bottom);padding-left:var(--inset-padding-left)}}.rt-r-px{padding-left:var(--pl);padding-right:var(--pr)}.rt-r-px-0{padding-left:0;padding-right:0}.rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-px{padding-left:var(--pl-xs);padding-right:var(--pr-xs)}.xs\:rt-r-px-0{padding-left:0;padding-right:0}.xs\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xs\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xs\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xs\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xs\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xs\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xs\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xs\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xs\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xs\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-px{padding-left:var(--pl-sm);padding-right:var(--pr-sm)}.sm\:rt-r-px-0{padding-left:0;padding-right:0}.sm\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.sm\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.sm\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.sm\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.sm\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.sm\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.sm\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.sm\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.sm\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.sm\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-px{padding-left:var(--pl-md);padding-right:var(--pr-md)}.md\:rt-r-px-0{padding-left:0;padding-right:0}.md\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.md\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.md\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.md\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.md\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.md\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.md\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.md\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.md\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.md\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-px{padding-left:var(--pl-lg);padding-right:var(--pr-lg)}.lg\:rt-r-px-0{padding-left:0;padding-right:0}.lg\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.lg\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.lg\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.lg\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.lg\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.lg\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.lg\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.lg\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.lg\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.lg\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-px{padding-left:var(--pl-xl);padding-right:var(--pr-xl)}.xl\:rt-r-px-0{padding-left:0;padding-right:0}.xl\:rt-r-px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.xl\:rt-r-px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.xl\:rt-r-px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.xl\:rt-r-px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.xl\:rt-r-px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.xl\:rt-r-px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.xl\:rt-r-px-7{padding-left:var(--space-7);padding-right:var(--space-7)}.xl\:rt-r-px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.xl\:rt-r-px-9{padding-left:var(--space-9);padding-right:var(--space-9)}.xl\:rt-r-px-inset{padding-left:var(--inset-padding-left);padding-right:var(--inset-padding-right)}}.rt-r-py{padding-top:var(--pt);padding-bottom:var(--pb)}.rt-r-py-0{padding-top:0;padding-bottom:0}.rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-py{padding-top:var(--pt-xs);padding-bottom:var(--pb-xs)}.xs\:rt-r-py-0{padding-top:0;padding-bottom:0}.xs\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xs\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xs\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xs\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xs\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xs\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xs\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xs\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xs\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xs\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-py{padding-top:var(--pt-sm);padding-bottom:var(--pb-sm)}.sm\:rt-r-py-0{padding-top:0;padding-bottom:0}.sm\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.sm\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.sm\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.sm\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.sm\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.sm\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.sm\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.sm\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.sm\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.sm\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-py{padding-top:var(--pt-md);padding-bottom:var(--pb-md)}.md\:rt-r-py-0{padding-top:0;padding-bottom:0}.md\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.md\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.md\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.md\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.md\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.md\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.md\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.md\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.md\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.md\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-py{padding-top:var(--pt-lg);padding-bottom:var(--pb-lg)}.lg\:rt-r-py-0{padding-top:0;padding-bottom:0}.lg\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.lg\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.lg\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.lg\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.lg\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.lg\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.lg\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.lg\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.lg\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.lg\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-py{padding-top:var(--pt-xl);padding-bottom:var(--pb-xl)}.xl\:rt-r-py-0{padding-top:0;padding-bottom:0}.xl\:rt-r-py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.xl\:rt-r-py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.xl\:rt-r-py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.xl\:rt-r-py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.xl\:rt-r-py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.xl\:rt-r-py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.xl\:rt-r-py-7{padding-top:var(--space-7);padding-bottom:var(--space-7)}.xl\:rt-r-py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.xl\:rt-r-py-9{padding-top:var(--space-9);padding-bottom:var(--space-9)}.xl\:rt-r-py-inset{padding-top:var(--inset-padding-top);padding-bottom:var(--inset-padding-bottom)}}.rt-r-pt{padding-top:var(--pt)}.rt-r-pt-0{padding-top:0}.rt-r-pt-1{padding-top:var(--space-1)}.rt-r-pt-2{padding-top:var(--space-2)}.rt-r-pt-3{padding-top:var(--space-3)}.rt-r-pt-4{padding-top:var(--space-4)}.rt-r-pt-5{padding-top:var(--space-5)}.rt-r-pt-6{padding-top:var(--space-6)}.rt-r-pt-7{padding-top:var(--space-7)}.rt-r-pt-8{padding-top:var(--space-8)}.rt-r-pt-9{padding-top:var(--space-9)}.rt-r-pt-inset{padding-top:var(--inset-padding-top)}@media (min-width: 520px){.xs\:rt-r-pt{padding-top:var(--pt-xs)}.xs\:rt-r-pt-0{padding-top:0}.xs\:rt-r-pt-1{padding-top:var(--space-1)}.xs\:rt-r-pt-2{padding-top:var(--space-2)}.xs\:rt-r-pt-3{padding-top:var(--space-3)}.xs\:rt-r-pt-4{padding-top:var(--space-4)}.xs\:rt-r-pt-5{padding-top:var(--space-5)}.xs\:rt-r-pt-6{padding-top:var(--space-6)}.xs\:rt-r-pt-7{padding-top:var(--space-7)}.xs\:rt-r-pt-8{padding-top:var(--space-8)}.xs\:rt-r-pt-9{padding-top:var(--space-9)}.xs\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 768px){.sm\:rt-r-pt{padding-top:var(--pt-sm)}.sm\:rt-r-pt-0{padding-top:0}.sm\:rt-r-pt-1{padding-top:var(--space-1)}.sm\:rt-r-pt-2{padding-top:var(--space-2)}.sm\:rt-r-pt-3{padding-top:var(--space-3)}.sm\:rt-r-pt-4{padding-top:var(--space-4)}.sm\:rt-r-pt-5{padding-top:var(--space-5)}.sm\:rt-r-pt-6{padding-top:var(--space-6)}.sm\:rt-r-pt-7{padding-top:var(--space-7)}.sm\:rt-r-pt-8{padding-top:var(--space-8)}.sm\:rt-r-pt-9{padding-top:var(--space-9)}.sm\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1024px){.md\:rt-r-pt{padding-top:var(--pt-md)}.md\:rt-r-pt-0{padding-top:0}.md\:rt-r-pt-1{padding-top:var(--space-1)}.md\:rt-r-pt-2{padding-top:var(--space-2)}.md\:rt-r-pt-3{padding-top:var(--space-3)}.md\:rt-r-pt-4{padding-top:var(--space-4)}.md\:rt-r-pt-5{padding-top:var(--space-5)}.md\:rt-r-pt-6{padding-top:var(--space-6)}.md\:rt-r-pt-7{padding-top:var(--space-7)}.md\:rt-r-pt-8{padding-top:var(--space-8)}.md\:rt-r-pt-9{padding-top:var(--space-9)}.md\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1280px){.lg\:rt-r-pt{padding-top:var(--pt-lg)}.lg\:rt-r-pt-0{padding-top:0}.lg\:rt-r-pt-1{padding-top:var(--space-1)}.lg\:rt-r-pt-2{padding-top:var(--space-2)}.lg\:rt-r-pt-3{padding-top:var(--space-3)}.lg\:rt-r-pt-4{padding-top:var(--space-4)}.lg\:rt-r-pt-5{padding-top:var(--space-5)}.lg\:rt-r-pt-6{padding-top:var(--space-6)}.lg\:rt-r-pt-7{padding-top:var(--space-7)}.lg\:rt-r-pt-8{padding-top:var(--space-8)}.lg\:rt-r-pt-9{padding-top:var(--space-9)}.lg\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}@media (min-width: 1640px){.xl\:rt-r-pt{padding-top:var(--pt-xl)}.xl\:rt-r-pt-0{padding-top:0}.xl\:rt-r-pt-1{padding-top:var(--space-1)}.xl\:rt-r-pt-2{padding-top:var(--space-2)}.xl\:rt-r-pt-3{padding-top:var(--space-3)}.xl\:rt-r-pt-4{padding-top:var(--space-4)}.xl\:rt-r-pt-5{padding-top:var(--space-5)}.xl\:rt-r-pt-6{padding-top:var(--space-6)}.xl\:rt-r-pt-7{padding-top:var(--space-7)}.xl\:rt-r-pt-8{padding-top:var(--space-8)}.xl\:rt-r-pt-9{padding-top:var(--space-9)}.xl\:rt-r-pt-inset{padding-top:var(--inset-padding-top)}}.rt-r-pr{padding-right:var(--pr)}.rt-r-pr-0{padding-right:0}.rt-r-pr-1{padding-right:var(--space-1)}.rt-r-pr-2{padding-right:var(--space-2)}.rt-r-pr-3{padding-right:var(--space-3)}.rt-r-pr-4{padding-right:var(--space-4)}.rt-r-pr-5{padding-right:var(--space-5)}.rt-r-pr-6{padding-right:var(--space-6)}.rt-r-pr-7{padding-right:var(--space-7)}.rt-r-pr-8{padding-right:var(--space-8)}.rt-r-pr-9{padding-right:var(--space-9)}.rt-r-pr-inset{padding-right:var(--inset-padding-right)}@media (min-width: 520px){.xs\:rt-r-pr{padding-right:var(--pr-xs)}.xs\:rt-r-pr-0{padding-right:0}.xs\:rt-r-pr-1{padding-right:var(--space-1)}.xs\:rt-r-pr-2{padding-right:var(--space-2)}.xs\:rt-r-pr-3{padding-right:var(--space-3)}.xs\:rt-r-pr-4{padding-right:var(--space-4)}.xs\:rt-r-pr-5{padding-right:var(--space-5)}.xs\:rt-r-pr-6{padding-right:var(--space-6)}.xs\:rt-r-pr-7{padding-right:var(--space-7)}.xs\:rt-r-pr-8{padding-right:var(--space-8)}.xs\:rt-r-pr-9{padding-right:var(--space-9)}.xs\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 768px){.sm\:rt-r-pr{padding-right:var(--pr-sm)}.sm\:rt-r-pr-0{padding-right:0}.sm\:rt-r-pr-1{padding-right:var(--space-1)}.sm\:rt-r-pr-2{padding-right:var(--space-2)}.sm\:rt-r-pr-3{padding-right:var(--space-3)}.sm\:rt-r-pr-4{padding-right:var(--space-4)}.sm\:rt-r-pr-5{padding-right:var(--space-5)}.sm\:rt-r-pr-6{padding-right:var(--space-6)}.sm\:rt-r-pr-7{padding-right:var(--space-7)}.sm\:rt-r-pr-8{padding-right:var(--space-8)}.sm\:rt-r-pr-9{padding-right:var(--space-9)}.sm\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1024px){.md\:rt-r-pr{padding-right:var(--pr-md)}.md\:rt-r-pr-0{padding-right:0}.md\:rt-r-pr-1{padding-right:var(--space-1)}.md\:rt-r-pr-2{padding-right:var(--space-2)}.md\:rt-r-pr-3{padding-right:var(--space-3)}.md\:rt-r-pr-4{padding-right:var(--space-4)}.md\:rt-r-pr-5{padding-right:var(--space-5)}.md\:rt-r-pr-6{padding-right:var(--space-6)}.md\:rt-r-pr-7{padding-right:var(--space-7)}.md\:rt-r-pr-8{padding-right:var(--space-8)}.md\:rt-r-pr-9{padding-right:var(--space-9)}.md\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1280px){.lg\:rt-r-pr{padding-right:var(--pr-lg)}.lg\:rt-r-pr-0{padding-right:0}.lg\:rt-r-pr-1{padding-right:var(--space-1)}.lg\:rt-r-pr-2{padding-right:var(--space-2)}.lg\:rt-r-pr-3{padding-right:var(--space-3)}.lg\:rt-r-pr-4{padding-right:var(--space-4)}.lg\:rt-r-pr-5{padding-right:var(--space-5)}.lg\:rt-r-pr-6{padding-right:var(--space-6)}.lg\:rt-r-pr-7{padding-right:var(--space-7)}.lg\:rt-r-pr-8{padding-right:var(--space-8)}.lg\:rt-r-pr-9{padding-right:var(--space-9)}.lg\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}@media (min-width: 1640px){.xl\:rt-r-pr{padding-right:var(--pr-xl)}.xl\:rt-r-pr-0{padding-right:0}.xl\:rt-r-pr-1{padding-right:var(--space-1)}.xl\:rt-r-pr-2{padding-right:var(--space-2)}.xl\:rt-r-pr-3{padding-right:var(--space-3)}.xl\:rt-r-pr-4{padding-right:var(--space-4)}.xl\:rt-r-pr-5{padding-right:var(--space-5)}.xl\:rt-r-pr-6{padding-right:var(--space-6)}.xl\:rt-r-pr-7{padding-right:var(--space-7)}.xl\:rt-r-pr-8{padding-right:var(--space-8)}.xl\:rt-r-pr-9{padding-right:var(--space-9)}.xl\:rt-r-pr-inset{padding-right:var(--inset-padding-right)}}.rt-r-pb{padding-bottom:var(--pb)}.rt-r-pb-0{padding-bottom:0}.rt-r-pb-1{padding-bottom:var(--space-1)}.rt-r-pb-2{padding-bottom:var(--space-2)}.rt-r-pb-3{padding-bottom:var(--space-3)}.rt-r-pb-4{padding-bottom:var(--space-4)}.rt-r-pb-5{padding-bottom:var(--space-5)}.rt-r-pb-6{padding-bottom:var(--space-6)}.rt-r-pb-7{padding-bottom:var(--space-7)}.rt-r-pb-8{padding-bottom:var(--space-8)}.rt-r-pb-9{padding-bottom:var(--space-9)}.rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}@media (min-width: 520px){.xs\:rt-r-pb{padding-bottom:var(--pb-xs)}.xs\:rt-r-pb-0{padding-bottom:0}.xs\:rt-r-pb-1{padding-bottom:var(--space-1)}.xs\:rt-r-pb-2{padding-bottom:var(--space-2)}.xs\:rt-r-pb-3{padding-bottom:var(--space-3)}.xs\:rt-r-pb-4{padding-bottom:var(--space-4)}.xs\:rt-r-pb-5{padding-bottom:var(--space-5)}.xs\:rt-r-pb-6{padding-bottom:var(--space-6)}.xs\:rt-r-pb-7{padding-bottom:var(--space-7)}.xs\:rt-r-pb-8{padding-bottom:var(--space-8)}.xs\:rt-r-pb-9{padding-bottom:var(--space-9)}.xs\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 768px){.sm\:rt-r-pb{padding-bottom:var(--pb-sm)}.sm\:rt-r-pb-0{padding-bottom:0}.sm\:rt-r-pb-1{padding-bottom:var(--space-1)}.sm\:rt-r-pb-2{padding-bottom:var(--space-2)}.sm\:rt-r-pb-3{padding-bottom:var(--space-3)}.sm\:rt-r-pb-4{padding-bottom:var(--space-4)}.sm\:rt-r-pb-5{padding-bottom:var(--space-5)}.sm\:rt-r-pb-6{padding-bottom:var(--space-6)}.sm\:rt-r-pb-7{padding-bottom:var(--space-7)}.sm\:rt-r-pb-8{padding-bottom:var(--space-8)}.sm\:rt-r-pb-9{padding-bottom:var(--space-9)}.sm\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1024px){.md\:rt-r-pb{padding-bottom:var(--pb-md)}.md\:rt-r-pb-0{padding-bottom:0}.md\:rt-r-pb-1{padding-bottom:var(--space-1)}.md\:rt-r-pb-2{padding-bottom:var(--space-2)}.md\:rt-r-pb-3{padding-bottom:var(--space-3)}.md\:rt-r-pb-4{padding-bottom:var(--space-4)}.md\:rt-r-pb-5{padding-bottom:var(--space-5)}.md\:rt-r-pb-6{padding-bottom:var(--space-6)}.md\:rt-r-pb-7{padding-bottom:var(--space-7)}.md\:rt-r-pb-8{padding-bottom:var(--space-8)}.md\:rt-r-pb-9{padding-bottom:var(--space-9)}.md\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1280px){.lg\:rt-r-pb{padding-bottom:var(--pb-lg)}.lg\:rt-r-pb-0{padding-bottom:0}.lg\:rt-r-pb-1{padding-bottom:var(--space-1)}.lg\:rt-r-pb-2{padding-bottom:var(--space-2)}.lg\:rt-r-pb-3{padding-bottom:var(--space-3)}.lg\:rt-r-pb-4{padding-bottom:var(--space-4)}.lg\:rt-r-pb-5{padding-bottom:var(--space-5)}.lg\:rt-r-pb-6{padding-bottom:var(--space-6)}.lg\:rt-r-pb-7{padding-bottom:var(--space-7)}.lg\:rt-r-pb-8{padding-bottom:var(--space-8)}.lg\:rt-r-pb-9{padding-bottom:var(--space-9)}.lg\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}@media (min-width: 1640px){.xl\:rt-r-pb{padding-bottom:var(--pb-xl)}.xl\:rt-r-pb-0{padding-bottom:0}.xl\:rt-r-pb-1{padding-bottom:var(--space-1)}.xl\:rt-r-pb-2{padding-bottom:var(--space-2)}.xl\:rt-r-pb-3{padding-bottom:var(--space-3)}.xl\:rt-r-pb-4{padding-bottom:var(--space-4)}.xl\:rt-r-pb-5{padding-bottom:var(--space-5)}.xl\:rt-r-pb-6{padding-bottom:var(--space-6)}.xl\:rt-r-pb-7{padding-bottom:var(--space-7)}.xl\:rt-r-pb-8{padding-bottom:var(--space-8)}.xl\:rt-r-pb-9{padding-bottom:var(--space-9)}.xl\:rt-r-pb-inset{padding-bottom:var(--inset-padding-bottom)}}.rt-r-pl{padding-left:var(--pl)}.rt-r-pl-0{padding-left:0}.rt-r-pl-1{padding-left:var(--space-1)}.rt-r-pl-2{padding-left:var(--space-2)}.rt-r-pl-3{padding-left:var(--space-3)}.rt-r-pl-4{padding-left:var(--space-4)}.rt-r-pl-5{padding-left:var(--space-5)}.rt-r-pl-6{padding-left:var(--space-6)}.rt-r-pl-7{padding-left:var(--space-7)}.rt-r-pl-8{padding-left:var(--space-8)}.rt-r-pl-9{padding-left:var(--space-9)}.rt-r-pl-inset{padding-left:var(--inset-padding-left)}@media (min-width: 520px){.xs\:rt-r-pl{padding-left:var(--pl-xs)}.xs\:rt-r-pl-0{padding-left:0}.xs\:rt-r-pl-1{padding-left:var(--space-1)}.xs\:rt-r-pl-2{padding-left:var(--space-2)}.xs\:rt-r-pl-3{padding-left:var(--space-3)}.xs\:rt-r-pl-4{padding-left:var(--space-4)}.xs\:rt-r-pl-5{padding-left:var(--space-5)}.xs\:rt-r-pl-6{padding-left:var(--space-6)}.xs\:rt-r-pl-7{padding-left:var(--space-7)}.xs\:rt-r-pl-8{padding-left:var(--space-8)}.xs\:rt-r-pl-9{padding-left:var(--space-9)}.xs\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 768px){.sm\:rt-r-pl{padding-left:var(--pl-sm)}.sm\:rt-r-pl-0{padding-left:0}.sm\:rt-r-pl-1{padding-left:var(--space-1)}.sm\:rt-r-pl-2{padding-left:var(--space-2)}.sm\:rt-r-pl-3{padding-left:var(--space-3)}.sm\:rt-r-pl-4{padding-left:var(--space-4)}.sm\:rt-r-pl-5{padding-left:var(--space-5)}.sm\:rt-r-pl-6{padding-left:var(--space-6)}.sm\:rt-r-pl-7{padding-left:var(--space-7)}.sm\:rt-r-pl-8{padding-left:var(--space-8)}.sm\:rt-r-pl-9{padding-left:var(--space-9)}.sm\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1024px){.md\:rt-r-pl{padding-left:var(--pl-md)}.md\:rt-r-pl-0{padding-left:0}.md\:rt-r-pl-1{padding-left:var(--space-1)}.md\:rt-r-pl-2{padding-left:var(--space-2)}.md\:rt-r-pl-3{padding-left:var(--space-3)}.md\:rt-r-pl-4{padding-left:var(--space-4)}.md\:rt-r-pl-5{padding-left:var(--space-5)}.md\:rt-r-pl-6{padding-left:var(--space-6)}.md\:rt-r-pl-7{padding-left:var(--space-7)}.md\:rt-r-pl-8{padding-left:var(--space-8)}.md\:rt-r-pl-9{padding-left:var(--space-9)}.md\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1280px){.lg\:rt-r-pl{padding-left:var(--pl-lg)}.lg\:rt-r-pl-0{padding-left:0}.lg\:rt-r-pl-1{padding-left:var(--space-1)}.lg\:rt-r-pl-2{padding-left:var(--space-2)}.lg\:rt-r-pl-3{padding-left:var(--space-3)}.lg\:rt-r-pl-4{padding-left:var(--space-4)}.lg\:rt-r-pl-5{padding-left:var(--space-5)}.lg\:rt-r-pl-6{padding-left:var(--space-6)}.lg\:rt-r-pl-7{padding-left:var(--space-7)}.lg\:rt-r-pl-8{padding-left:var(--space-8)}.lg\:rt-r-pl-9{padding-left:var(--space-9)}.lg\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}@media (min-width: 1640px){.xl\:rt-r-pl{padding-left:var(--pl-xl)}.xl\:rt-r-pl-0{padding-left:0}.xl\:rt-r-pl-1{padding-left:var(--space-1)}.xl\:rt-r-pl-2{padding-left:var(--space-2)}.xl\:rt-r-pl-3{padding-left:var(--space-3)}.xl\:rt-r-pl-4{padding-left:var(--space-4)}.xl\:rt-r-pl-5{padding-left:var(--space-5)}.xl\:rt-r-pl-6{padding-left:var(--space-6)}.xl\:rt-r-pl-7{padding-left:var(--space-7)}.xl\:rt-r-pl-8{padding-left:var(--space-8)}.xl\:rt-r-pl-9{padding-left:var(--space-9)}.xl\:rt-r-pl-inset{padding-left:var(--inset-padding-left)}}.rt-r-position-static{position:static}.rt-r-position-absolute{position:absolute}.rt-r-position-relative{position:relative}.rt-r-position-fixed{position:fixed}.rt-r-position-sticky{position:sticky}@media (min-width: 520px){.xs\:rt-r-position-static{position:static}.xs\:rt-r-position-absolute{position:absolute}.xs\:rt-r-position-relative{position:relative}.xs\:rt-r-position-fixed{position:fixed}.xs\:rt-r-position-sticky{position:sticky}}@media (min-width: 768px){.sm\:rt-r-position-static{position:static}.sm\:rt-r-position-absolute{position:absolute}.sm\:rt-r-position-relative{position:relative}.sm\:rt-r-position-fixed{position:fixed}.sm\:rt-r-position-sticky{position:sticky}}@media (min-width: 1024px){.md\:rt-r-position-static{position:static}.md\:rt-r-position-absolute{position:absolute}.md\:rt-r-position-relative{position:relative}.md\:rt-r-position-fixed{position:fixed}.md\:rt-r-position-sticky{position:sticky}}@media (min-width: 1280px){.lg\:rt-r-position-static{position:static}.lg\:rt-r-position-absolute{position:absolute}.lg\:rt-r-position-relative{position:relative}.lg\:rt-r-position-fixed{position:fixed}.lg\:rt-r-position-sticky{position:sticky}}@media (min-width: 1640px){.xl\:rt-r-position-static{position:static}.xl\:rt-r-position-absolute{position:absolute}.xl\:rt-r-position-relative{position:relative}.xl\:rt-r-position-fixed{position:fixed}.xl\:rt-r-position-sticky{position:sticky}}.rt-r-w{width:var(--width)}@media (min-width: 520px){.xs\:rt-r-w{width:var(--width-xs)}}@media (min-width: 768px){.sm\:rt-r-w{width:var(--width-sm)}}@media (min-width: 1024px){.md\:rt-r-w{width:var(--width-md)}}@media (min-width: 1280px){.lg\:rt-r-w{width:var(--width-lg)}}@media (min-width: 1640px){.xl\:rt-r-w{width:var(--width-xl)}}.rt-r-min-w{min-width:var(--min-width)}@media (min-width: 520px){.xs\:rt-r-min-w{min-width:var(--min-width-xs)}}@media (min-width: 768px){.sm\:rt-r-min-w{min-width:var(--min-width-sm)}}@media (min-width: 1024px){.md\:rt-r-min-w{min-width:var(--min-width-md)}}@media (min-width: 1280px){.lg\:rt-r-min-w{min-width:var(--min-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-min-w{min-width:var(--min-width-xl)}}.rt-r-max-w{max-width:var(--max-width)}@media (min-width: 520px){.xs\:rt-r-max-w{max-width:var(--max-width-xs)}}@media (min-width: 768px){.sm\:rt-r-max-w{max-width:var(--max-width-sm)}}@media (min-width: 1024px){.md\:rt-r-max-w{max-width:var(--max-width-md)}}@media (min-width: 1280px){.lg\:rt-r-max-w{max-width:var(--max-width-lg)}}@media (min-width: 1640px){.xl\:rt-r-max-w{max-width:var(--max-width-xl)}}.rt-r-weight-light{font-weight:var(--font-weight-light)}.rt-r-weight-regular{font-weight:var(--font-weight-regular)}.rt-r-weight-medium{font-weight:var(--font-weight-medium)}.rt-r-weight-bold{font-weight:var(--font-weight-bold)}@media (min-width: 520px){.xs\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xs\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xs\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xs\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 768px){.sm\:rt-r-weight-light{font-weight:var(--font-weight-light)}.sm\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.sm\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.sm\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1024px){.md\:rt-r-weight-light{font-weight:var(--font-weight-light)}.md\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.md\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.md\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1280px){.lg\:rt-r-weight-light{font-weight:var(--font-weight-light)}.lg\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.lg\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.lg\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}@media (min-width: 1640px){.xl\:rt-r-weight-light{font-weight:var(--font-weight-light)}.xl\:rt-r-weight-regular{font-weight:var(--font-weight-regular)}.xl\:rt-r-weight-medium{font-weight:var(--font-weight-medium)}.xl\:rt-r-weight-bold{font-weight:var(--font-weight-bold)}}.rt-r-lt-normal:before,.rt-r-lt-end:before,.rt-r-lt-normal:after,.rt-r-lt-start:after{content:none}.rt-r-lt-start:before,.rt-r-lt-both:before,.rt-r-lt-end:after,.rt-r-lt-both:after{content:"";display:table}.rt-r-lt-start:before,.rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.rt-r-lt-end:after,.rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}@media (min-width: 520px){.xs\:rt-r-lt-normal:before,.xs\:rt-r-lt-end:before,.xs\:rt-r-lt-normal:after,.xs\:rt-r-lt-start:after{content:none}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before,.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{content:"";display:table}.xs\:rt-r-lt-start:before,.xs\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xs\:rt-r-lt-end:after,.xs\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 768px){.sm\:rt-r-lt-normal:before,.sm\:rt-r-lt-end:before,.sm\:rt-r-lt-normal:after,.sm\:rt-r-lt-start:after{content:none}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before,.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{content:"";display:table}.sm\:rt-r-lt-start:before,.sm\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.sm\:rt-r-lt-end:after,.sm\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1024px){.md\:rt-r-lt-normal:before,.md\:rt-r-lt-end:before,.md\:rt-r-lt-normal:after,.md\:rt-r-lt-start:after{content:none}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before,.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{content:"";display:table}.md\:rt-r-lt-start:before,.md\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.md\:rt-r-lt-end:after,.md\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1280px){.lg\:rt-r-lt-normal:before,.lg\:rt-r-lt-end:before,.lg\:rt-r-lt-normal:after,.lg\:rt-r-lt-start:after{content:none}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before,.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{content:"";display:table}.lg\:rt-r-lt-start:before,.lg\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.lg\:rt-r-lt-end:after,.lg\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}@media (min-width: 1640px){.xl\:rt-r-lt-normal:before,.xl\:rt-r-lt-end:before,.xl\:rt-r-lt-normal:after,.xl\:rt-r-lt-start:after{content:none}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before,.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{content:"";display:table}.xl\:rt-r-lt-start:before,.xl\:rt-r-lt-both:before{margin-bottom:calc(var(--leading-trim-start, var(--default-leading-trim-start)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}.xl\:rt-r-lt-end:after,.xl\:rt-r-lt-both:after{margin-top:calc(var(--leading-trim-end, var(--default-leading-trim-end)) - var(--line-height, calc(1em * var(--default-line-height))) / 2)}}.rt-r-resize-none{resize:none}.rt-r-resize-vertical{resize:vertical}.rt-r-resize-horizontal{resize:horizontal}.rt-r-resize-both{resize:both}@media (min-width: 520px){.xs\:rt-r-resize-none{resize:none}.xs\:rt-r-resize-vertical{resize:vertical}.xs\:rt-r-resize-horizontal{resize:horizontal}.xs\:rt-r-resize-both{resize:both}}@media (min-width: 768px){.sm\:rt-r-resize-none{resize:none}.sm\:rt-r-resize-vertical{resize:vertical}.sm\:rt-r-resize-horizontal{resize:horizontal}.sm\:rt-r-resize-both{resize:both}}@media (min-width: 1024px){.md\:rt-r-resize-none{resize:none}.md\:rt-r-resize-vertical{resize:vertical}.md\:rt-r-resize-horizontal{resize:horizontal}.md\:rt-r-resize-both{resize:both}}@media (min-width: 1280px){.lg\:rt-r-resize-none{resize:none}.lg\:rt-r-resize-vertical{resize:vertical}.lg\:rt-r-resize-horizontal{resize:horizontal}.lg\:rt-r-resize-both{resize:both}}@media (min-width: 1640px){.xl\:rt-r-resize-none{resize:none}.xl\:rt-r-resize-vertical{resize:vertical}.xl\:rt-r-resize-horizontal{resize:horizontal}.xl\:rt-r-resize-both{resize:both}}.rt-r-tl-auto{table-layout:auto}.rt-r-tl-fixed{table-layout:fixed}@media (min-width: 520px){.xs\:rt-r-tl-auto{table-layout:auto}.xs\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 768px){.sm\:rt-r-tl-auto{table-layout:auto}.sm\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1024px){.md\:rt-r-tl-auto{table-layout:auto}.md\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1280px){.lg\:rt-r-tl-auto{table-layout:auto}.lg\:rt-r-tl-fixed{table-layout:fixed}}@media (min-width: 1640px){.xl\:rt-r-tl-auto{table-layout:auto}.xl\:rt-r-tl-fixed{table-layout:fixed}}.rt-r-ta-left{text-align:left}.rt-r-ta-center{text-align:center}.rt-r-ta-right{text-align:right}@media (min-width: 520px){.xs\:rt-r-ta-left{text-align:left}.xs\:rt-r-ta-center{text-align:center}.xs\:rt-r-ta-right{text-align:right}}@media (min-width: 768px){.sm\:rt-r-ta-left{text-align:left}.sm\:rt-r-ta-center{text-align:center}.sm\:rt-r-ta-right{text-align:right}}@media (min-width: 1024px){.md\:rt-r-ta-left{text-align:left}.md\:rt-r-ta-center{text-align:center}.md\:rt-r-ta-right{text-align:right}}@media (min-width: 1280px){.lg\:rt-r-ta-left{text-align:left}.lg\:rt-r-ta-center{text-align:center}.lg\:rt-r-ta-right{text-align:right}}@media (min-width: 1640px){.xl\:rt-r-ta-left{text-align:left}.xl\:rt-r-ta-center{text-align:center}.xl\:rt-r-ta-right{text-align:right}}.rt-r-tw-wrap{white-space:normal}.rt-r-tw-nowrap{white-space:nowrap}.rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.rt-r-tw-balance{white-space:normal;text-wrap:balance}@media (min-width: 520px){.xs\:rt-r-tw-wrap{white-space:normal}.xs\:rt-r-tw-nowrap{white-space:nowrap}.xs\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xs\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 768px){.sm\:rt-r-tw-wrap{white-space:normal}.sm\:rt-r-tw-nowrap{white-space:nowrap}.sm\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.sm\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1024px){.md\:rt-r-tw-wrap{white-space:normal}.md\:rt-r-tw-nowrap{white-space:nowrap}.md\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.md\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1280px){.lg\:rt-r-tw-wrap{white-space:normal}.lg\:rt-r-tw-nowrap{white-space:nowrap}.lg\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.lg\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}@media (min-width: 1640px){.xl\:rt-r-tw-wrap{white-space:normal}.xl\:rt-r-tw-nowrap{white-space:nowrap}.xl\:rt-r-tw-pretty{white-space:normal;text-wrap:pretty}.xl\:rt-r-tw-balance{white-space:normal;text-wrap:balance}}.rt-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-r-va-baseline{vertical-align:baseline}.rt-r-va-top{vertical-align:top}.rt-r-va-middle{vertical-align:middle}.rt-r-va-bottom{vertical-align:bottom}@media (min-width: 520px){.xs\:rt-r-va-baseline{vertical-align:baseline}.xs\:rt-r-va-top{vertical-align:top}.xs\:rt-r-va-middle{vertical-align:middle}.xs\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 768px){.sm\:rt-r-va-baseline{vertical-align:baseline}.sm\:rt-r-va-top{vertical-align:top}.sm\:rt-r-va-middle{vertical-align:middle}.sm\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1024px){.md\:rt-r-va-baseline{vertical-align:baseline}.md\:rt-r-va-top{vertical-align:top}.md\:rt-r-va-middle{vertical-align:middle}.md\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1280px){.lg\:rt-r-va-baseline{vertical-align:baseline}.lg\:rt-r-va-top{vertical-align:top}.lg\:rt-r-va-middle{vertical-align:middle}.lg\:rt-r-va-bottom{vertical-align:bottom}}@media (min-width: 1640px){.xl\:rt-r-va-baseline{vertical-align:baseline}.xl\:rt-r-va-top{vertical-align:top}.xl\:rt-r-va-middle{vertical-align:middle}.xl\:rt-r-va-bottom{vertical-align:bottom}}#app{--color-background: #070b14;--default-font-family: "Inter Tight", sans-serif;font-family:Inter Tight,NotoFlagsOnly,sans-serif;font-display:optional;--scaling: .875;--cursor-button: pointer;--line-height: 1.2;--white-heading: #f7f8f8;--green-live: #3cff73;font-variant-numeric:tabular-nums;overflow:hidden}.rt-TooltipContent{background:#131923;border:1px solid #2e343e;border-radius:8px}.rt-TooltipText{color:var(--regular-text-color);user-select:auto}.rt-TooltipArrow{fill:#131923}.rt-Separator{background:#65677a}.sticky{position:sticky;background:var(--color-background)}.app-width-container{max-width:1920px;margin:0 auto}.blur{position:absolute;inset:0;background:#0000008a;backdrop-filter:blur(2px)}.sankey-label{pointer-events:none;white-space:pre-line;font-size:14px;font-family:Inter Tight}.mono-text{font-family:Roboto Mono,monospace}._outer-container_13cf2_1{height:100vh;width:100%;position:absolute;z-index:100;display:flex;justify-content:center;align-items:center;container:outer-container / inline-size}._inner-container_13cf2_12{min-width:410px}@container outer-container (width < 430px){._inner-container_13cf2_12{min-width:310px}}._text_o41r7_1{color:var(--startup-text-color);line-height:normal}._container_o41r7_6{padding-left:40px}._container_1tszc_1{padding:8px 14px;border-radius:12px;border:1px solid var(--container-border-color);background:var(--container-background-color);display:grid;grid:auto-flow / auto 1fr;column-gap:10px;row-gap:6px;._text_1tszc_11{color:#dedede;font-weight:500;line-height:normal}}._text_1ont6_1{color:var(--startup-complete-step-color);font-weight:500;line-height:normal}._container_1ont6_7{padding:0 20px}._label_1ojid_1{color:#686868;font-size:12px}._value_1ojid_6{color:var(--startup-text-color);font-size:12px}._progress_gtr5g_1{height:9px;width:120px;background:var(--startup-progress-background-color);div{background:var(--startup-progress-teal-color)}}._text_gtr5g_11{color:var(--startup-text-color);font-size:8px;line-height:normal}._container_e8h4h_1{transition:filter .5s;&._blur_e8h4h_4{filter:blur(10px)}}._container_1z0wf_1{--collapse-duration: .3s;--collapse-location-time: .2s;--transform-origin: top right;position:fixed;inset:0;overscroll-behavior:none;z-index:20;background-color:var(--startup-background-color);--color-background: var(--startup-background-color);--slot-nav-background-color: var(--startup-background-color);transform-origin:var(--transform-origin);transition:opacity var(--collapse-duration) linear,transform var(--collapse-duration) linear,background-color .2s linear;&._collapsed_1z0wf_22{transform:scale(0);opacity:.5;overflow:hidden}&._gossip_1z0wf_28{--startup-background-color: var(--boot-progress-gossip-background-color)}&._full-snapshot_1z0wf_32{--startup-background-color: var( --boot-progress-full-snapshot-background-color )}&._incr-snapshot_1z0wf_38{--startup-background-color: var( --boot-progress-incr-snapshot-background-color )}&._catching-up_1z0wf_44{--startup-background-color: var(--boot-progress-catchup-background-color)}&._supermajority_1z0wf_48{background-color:var(--boot-progress-supermajority-background-color)}}@media (min-width: 800px){._startup-content-indentation_1z0wf_54{margin-left:67px;margin-right:67px}}._container_j432f_1{min-width:28px;&._pointer_j432f_4{cursor:pointer}._label_j432f_8{color:var(--header-label-text-color);font-size:10px}._value_j432f_13{color:var(--dropdown-button-text-color);font-size:12px;._value-suffix_j432f_17{color:var(--header-label-text-color)}}&._dropdown-menu_j432f_22{._label_j432f_8{color:var(--popover-secondary-color)}._value_j432f_13{color:var(--popover-primary-color);._value-suffix_j432f_17{color:var(--popover-secondary-color)}}}}._horizontal_j432f_37{display:flex;justify-content:space-between;align-items:center;gap:8px;background-color:var(--color-background);._value_j432f_13{font-weight:600}}._hide_1etvv_1{display:none}._popover-content_e49l0_1{box-sizing:border-box;max-width:var(--radix-popover-content-available-width);background:var(--popover-background-color);color:var(--popover-primary-color);padding:10px;border:1px solid var(--gray-4, #2a2a2a);border-radius:5px;box-shadow:0 4px 4px #00000040;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity;--popover-trigger-color: var(--popover-secondary-color);--popover-trigger-hover-color: var(--popover-primary-color)}._popover-content_e49l0_1:focus{box-shadow:0 0 0 2px var(--violet-7)}._popover-content_e49l0_1[data-state=open][data-side=top]{animation-name:_slideDownAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=right]{animation-name:_slideLeftAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=bottom]{animation-name:_slideUpAndFade_e49l0_1}._popover-content_e49l0_1[data-state=open][data-side=left]{animation-name:_slideRightAndFade_e49l0_1}._popover-arrow_e49l0_41{fill:var(--popover-background-color)}@keyframes _slideUpAndFade_e49l0_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideRightAndFade_e49l0_1{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes _slideDownAndFade_e49l0_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideLeftAndFade_e49l0_1{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}._copy-button_1km2g_1{position:relative;width:fit-content;max-width:100%;--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;._icon_1km2g_8{flex-shrink:0}&._hide-icon-until-hover_1km2g_12{._icon_1km2g_8{display:none}&:hover ._icon_1km2g_8{display:inherit;position:absolute;right:0;background:#1b3150bf;padding:4px 2px;border-radius:2px;box-shadow:-4px 0 8px #1e3a5fcc,0 2px 8px #0000004d}}}._nav-link_tb1ax_1{font-size:14px;font-weight:400;color:var(--nav-button-inactive-text-color);border-radius:5px;background-color:transparent;gap:5px;padding:0 15px;flex-shrink:1;min-width:50px;._icon_tb1ax_14{height:14px;width:14px}._dropdown-icon_tb1ax_19{height:18px;width:18px}&:hover,&._focus_tb1ax_25{filter:brightness(1.2)}&._active_tb1ax_29{font-weight:600;background-color:#ffffff14}}@media (max-width: 416px){._nav-link_tb1ax_1{padding:0 4px}}._nav-dropdown-content_tb1ax_41{display:flex;flex-direction:column;background-color:#1c2129;border:1px solid rgba(250,250,250,.08);border-radius:5px;min-width:var(--radix-dropdown-menu-trigger-width)}._logo_1ml9x_1{height:27px}._cluster-container_7aa6c_1{height:28px;justify-content:space-between;align-items:center;flex-grow:1;border-radius:5px;background:#fafafa1a;._cluster_7aa6c_1{padding:0 3px;border-radius:3px;color:#000;font-size:10px;font-weight:500}._cluster-name_7aa6c_19{font-size:12px;font-weight:700;margin-bottom:-3px}}._nav-filter-toggle-group_148xa_1{display:flex;flex-wrap:nowrap;width:100%;button{cursor:pointer;flex-grow:1;height:21px;border:none;padding:3px 5px;color:var(--nav-button-inactive-text-color);background-color:#ffffff1a;&:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}&:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}&[data-state=on]{background-color:var(--slot-nav-filter-background-color);color:var(--nav-button-text-color)}&:hover{filter:brightness(1.2)}span{cursor:inherit;font-size:12px;font-style:normal;font-weight:400;line-height:normal}}}._toggle-button-size_148xa_43{height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}}._toggle-button_148xa_43{border-radius:5px;background-color:var(--epoch-slider-progress-color);&:hover{filter:brightness(1.2)}&._floating_148xa_61{box-shadow:0 4px 4px #000000bf}svg{fill:var(--nav-button-text-color);height:15px;width:15px;&._lg_148xa_47{height:18px;width:18px}&._mirror_148xa_75{transform:scaleX(-1)}}}._slot-nav-container_148xa_81{transition:width .3s;box-sizing:border-box;&._nav-background_148xa_85{background-color:var(--slot-nav-background-color)}}._nav-background_1sjct_1{background-color:var(--slot-nav-background-color)}._health-pane_hbx15_1{background:none;margin:0;padding:0;border:0;height:28px;display:flex;justify-content:space-between;align-items:center;row-gap:2px;column-gap:3px;&._vertical_hbx15_14{flex-direction:column;max-width:24px;min-width:24px;&._narrow_hbx15_18{min-width:14px}}._health-box_hbx15_22{height:100%;padding:0;margin:0;display:flex;justify-content:center;align-items:center;max-width:24px;min-width:14px;background:var(--green-5);border-radius:3px;border:1px solid transparent;cursor:pointer;&._stacked_hbx15_36{width:100%}svg{fill:var(--green-11)}&._alerting_hbx15_44{background:var(--red-8);border-color:var(--red-11);svg{fill:var(--red-12)}}&:hover{filter:brightness(1.2)}}}._popover_hbx15_58{max-width:160px;padding:6px;._title_hbx15_62{font-size:12px;color:var(--gray-12)}._status_hbx15_67{font-size:12px;font-weight:600;color:var(--green-10);&._alerting_hbx15_44{color:var(--red-10)}}._content_hbx15_77{font-size:10px;color:var(--gray-9)}}._logo-container_1po46_1{--logo-transition-time: 1.5s;z-index:20;position:fixed;inset:0;justify-content:center;align-items:center;background-color:var(--startup-background-color);background-image:url("data:image/svg+xml,%3csvg%20width='50'%20height='50'%20viewBox='0%200%2050%2050'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%2024.9971C13.4992%2024.8907%2024.4505%2014.0877%2024.791%200.645508L24.7988%200C24.7988%2013.7398%2035.8824%2024.8887%2049.5967%2024.9971C36.0977%2025.1037%2025.1471%2035.9075%2024.8066%2049.3496L24.7988%2049.9951C24.7988%2036.2551%2013.7145%2025.1052%200%2024.9971Z'%20fill='%2303030C'/%3e%3c/svg%3e"),radial-gradient(160.38% 98.82% at 50% 50%,#1ce7c229,#1ce7c203 41.16%,#1ce7c200);background-position:center;background-repeat:repeat;transition:opacity var(--logo-transition-time) linear;img{height:76px}&._hidden_1po46_30{opacity:0;pointer-events:none;user-select:none}}._secondary-color_2x9jp_1{color:var(--boot-progress-snapshot-units-color)}._ellipsis_2x9jp_5{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._card_2x9jp_11{min-height:150px;padding:10px;border:1px solid rgba(255,255,255,.1);background:#ea67670d;color:var(--boot-progress-primary-text-color)}._sparkline-card_2x9jp_19{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;._snapshot-tile-title_2x9jp_25{color:var(--boot-progress-primary-text-color);font-size:18px;font-weight:400}._snapshot-tile-busy_2x9jp_31{font-size:18px;font-weight:400}._sparkline-container_2x9jp_36{position:relative;flex-shrink:0;background-image:linear-gradient(to right,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px),linear-gradient(to bottom,var(--snapshot-area-chart-grid-line-color) 1px,transparent 1px)}}._bars-card_2x9jp_54{flex-grow:1;display:flex;min-width:250px;flex-direction:column;justify-content:space-between;gap:10px;._card-header_2x9jp_62{font-size:18px;line-height:normal;font-weight:400}._title_2x9jp_68{font-size:28px;font-weight:400;min-width:0}._accounts-rate_2x9jp_74{min-width:165px;text-align:center}._total_2x9jp_79{min-width:170px;text-align:center}._throughput_2x9jp_84{min-width:114px;text-align:right;&._with-prefix_2x9jp_87{min-width:140px;white-space:nowrap;flex-wrap:wrap}}}._reading-card_2x9jp_95{._read-path-container_2x9jp_96{color:var(--app-teal);font-size:16px;svg{flex-shrink:0;width:16px;height:16px;fill:var(--app-teal)}._read-path_2x9jp_96{min-width:0}}}@media (max-width: 876px){._reading-card_2x9jp_95{._total_2x9jp_79{text-align:right}._throughput_2x9jp_84{text-align:left}}}@media (max-width: 1190px){._decompressing-card_2x9jp_124{justify-content:space-between;._decompressing-card-left_2x9jp_127{flex-direction:column;flex-grow:0;align-items:flex-start;._title_2x9jp_68,._total_2x9jp_79{text-align:left}}._decompressing-card-right_2x9jp_137{flex-direction:column;flex-grow:0;text-align:right}}}@media (max-width: 1063px){._inserting-card_2x9jp_146{._throughput_2x9jp_84{text-align:left}}}@media (max-width: 936px){._inserting-card_2x9jp_146{._total_2x9jp_79{text-align:left}._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:right}}}@media (max-width: 846px){._reading-card_2x9jp_95,._decompressing-card_2x9jp_124,._inserting-card_2x9jp_146{._card-header_2x9jp_62,._decompressing-card-left_2x9jp_127,._decompressing-card-right_2x9jp_137{flex-direction:column;align-items:flex-start}._total_2x9jp_79,._throughput_2x9jp_84,._accounts-rate_2x9jp_74{text-align:left}}}@media (max-width: 560px){._sparkline-card_2x9jp_19{width:100%}}._busy_1fw9w_1{color:#c8cacd;font-size:10px;min-width:27px;text-align:end;line-height:10px}._range-label_14i5c_1{position:absolute;right:2px;font-size:10px;font-weight:400;color:var(--tile-sparkline-range-text-color)}._top_14i5c_9{top:0}._bottom_14i5c_13{bottom:0}._g-transform_14i5c_17{will-change:transform}._bars_1d34t_1{--container-width: 100%;position:relative;width:var(--container-width);height:var(--bar-height, 50px);--step: calc(var(--bar-width) + var(--bar-gap));--used-width: max( 0px, calc( round(down, var(--container-width) + var(--bar-gap), var(--step)) - var(--bar-gap) ) );--threshold-start: max( 0px, calc( round( nearest, var(--pct) * (var(--used-width) + var(--bar-gap)), var(--step) ) - var(--step) ) );--threshold-visible: sign(var(--pct));mask-image:repeating-linear-gradient(to right,black 0 var(--bar-width),transparent var(--bar-width) var(--step));mask-size:var(--used-width) 100%;mask-repeat:no-repeat;background:linear-gradient(to right,var(--boot-progress-gossip-bars-color) 85%,var(--boot-progress-gossip-mid-bar-color) 85% 95%,var(--boot-progress-gossip-high-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat;&:before{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) + var(--bar-width)) 0 0);background:linear-gradient(to right,var(--boot-progress-gossip-filled-bar-color) 85%,var(--boot-progress-gossip-mid-filled-bar-color) 85% 95%,var(--boot-progress-gossip-high-filled-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}&:after{content:"";position:absolute;top:0;bottom:0;left:0;width:var(--used-width);clip-path:inset(0 calc(100% - var(--threshold-start) - var(--bar-width)) 0 var(--threshold-start));opacity:var(--threshold-visible, 0);background:linear-gradient(to right,var(--app-teal) 85%,var(--boot-progress-gossip-mid-threshold-bar-color) 85% 95%,var(--boot-progress-gossip-high-threshold-bar-color) 95%);background-size:var(--used-width) 100%;background-repeat:no-repeat}}._secondary-text_1iskf_1{color:var(--boot-progress-secondary-text-color)}._phase-header-container_1iskf_5{color:var(--boot-progress-primary-text-color);font-size:28px;font-weight:400;line-height:normal;._phase-name_1iskf_11{font-weight:600}._no-wrap_1iskf_15{white-space:nowrap}._complete-pct-container_1iskf_19{white-space:pre;display:inline-flex;align-items:center}}._progress-bar_drgbz_1{align-items:center;width:100%;>*:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}>*:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}._current_drgbz_14{height:40px;border-width:1px;border-style:solid;border-radius:5px;overflow:hidden;._progressing-bar_drgbz_21{width:100%;height:100%;transform-origin:left;transition:transform .2s linear}}div{height:25px}._gossip_drgbz_33{background:var(--progress-bar-incomplete-gossip-color);&._complete_drgbz_35{background:var(--progress-bar-complete-gossip-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-gossip-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-gossip-background)}}}._full-snapshot_drgbz_46{background:var(--progress-bar-incomplete-full-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-full-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-full-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-full-snapshot-background)}}}._incr-snapshot_drgbz_59{background:var(--progress-bar-incomplete-inc-snapshot-color);&._complete_drgbz_35{background:var(--progress-bar-complete-inc-snapshot-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-inc-snapshot-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-inc-snapshot-background)}}}._catching-up_drgbz_72{background:var(--progress-bar-incomplete-catchup-color);&._complete_drgbz_35{background:var(--progress-bar-complete-catchup-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-catchup-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-catchup-background)}}}._supermajority_drgbz_85{background:var(--progress-bar-incomplete-supermajority-color);&._complete_drgbz_35{background:var(--progress-bar-complete-supermajority-color)}&._current_drgbz_14{border-color:var(--progress-bar-in-progress-supermajority-border);._progressing-bar_drgbz_21{background:var(--progress-bar-in-progress-supermajority-background)}}}}._uplot_1swaw_1{.u-over{touch-action:pan-y}}._card_1yavk_1{flex-grow:1;display:flex;flex-direction:column;padding:14px;gap:14px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#fafafa0d;color:var(--boot-progress-primary-text-color)}._secondary-color_1yavk_13{color:#858585}._bold_1yavk_17{font-weight:700}._ellipsis_1yavk_21{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._labels-row_1yavk_27{flex-wrap:nowrap;font-size:14px;width:calc(var(--turbine-head-x, 0px) + var(--turbine-head-label-width, 0px) / 2);min-width:max(var(--turbine-start-label-width, 0px),var(--turbine-head-label-width, 0px));max-width:100%;._labels-left_1yavk_39{width:calc(var(--turbine-start-x, 0px) + var(--turbine-start-label-width, 0px) / 2);min-width:calc(var(--turbine-start-label-width, 0px) + 4px)}._turbine-label_1yavk_46{white-space:nowrap;flex-shrink:0;border-radius:3px;padding:2px;text-align:center;color:#000;&._start_1yavk_54{background-color:var(--first-turbine-slot-color)}&._head_1yavk_58{background-color:var(--latest-turbine-slot-color)}}}._footer-row_1yavk_64{gap:4px;font-size:14px;color:#ccc;>*{flex-wrap:nowrap;background-color:#2c2c2c;border-radius:3px;padding:4px;text-align:center;&._left-footer_1yavk_76{width:var(--turbine-start-x, 0px);gap:4px;flex-shrink:0}}._footer-title_1yavk_83{flex-grow:1;font-weight:700}._footer-value_1yavk_88{color:#bcbcbc;flex-shrink:10000;direction:rtl}}._bars-stats-container_1yavk_95{font-size:14px;line-height:normal;._bars-stats-row_1yavk_99{>*{min-width:0}._replayed_1yavk_104{color:var(--replayed-slots-text-color);._bold_1yavk_17{color:var(--replayed-slots-bold-text-color)}}._speed_1yavk_111{color:var(--gray-10);._bold_1yavk_17{color:var(--gray-8)}}._to-replay_1yavk_118{color:var(--turbine-slots-text-color);._bold_1yavk_17{color:var(--turbine-slots-bold-text-color)}}}}._slot-group-label_mfowj_1{--group-x: -100000px;--group-name-opacity: 0;opacity:.8;background-color:#080b13;border-radius:2px;border:1px solid #3c4652;border-top-width:0;will-change:transform;transform:translate(var(--group-x));&._you_mfowj_13{border:1px solid #2a7edf}._slot-group-top-container_mfowj_17{width:100%;background-color:#101318;&._skipped_mfowj_21{background-color:var(--red-2)}._slot-group-name-container_mfowj_25{opacity:var(--group-name-opacity);transition:opacity .6s;will-change:opacity;._name_mfowj_30{font-size:10px;line-height:normal;color:#949494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}}._slot-bars-container_mfowj_41{flex-shrink:0;._slot-bar_mfowj_41{--slot-x: 0;position:absolute;will-change:transform;transform:translate(var(--slot-x));height:100%;border-radius:3px;&:nth-child(1){background-color:var(--blue-7)}&:nth-child(2){background-color:var(--blue-6)}&:nth-child(3){background-color:var(--blue-5)}&:nth-child(4){background-color:var(--blue-4)}&._skipped_mfowj_21{background-color:var(--red-7)}}}}._legend-color-box_mfowj_72{width:10px;height:10px;border-radius:1px}._legend-label_mfowj_78{font-size:10px;color:var(--header-label-text-color)}._card_1vnw5_1{padding:10px;border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);&._narrow_1vnw5_7{padding:4px}}._header_10qjn_1{color:var(--dropdown-button-text-color)}._full-width_10qjn_5{width:100%}._dark_10qjn_9{background:#171b24;border-color:transparent}._subHeader_10qjn_14{color:var(--tile-sub-header-color);font-size:12px;line-height:12px}._tile-container_10qjn_20{display:flex;flex-wrap:wrap;flex-flow:wrap-reverse;gap:2px;flex-grow:1;._tile_10qjn_20{width:6px;height:6px;border-radius:1px;background:color-mix(in oklab,var(--tile-background-red-color) var(--busy),var(--tile-background-blue-color))}}._stat-container_1hzk8_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;border-radius:3px;background:#141528;._label_1hzk8_10{color:#dddee0;font-size:10px}._value-container_1hzk8_15{display:flex;align-items:baseline;justify-content:center;gap:1px;min-width:35px;._value_1hzk8_15{color:var(--tile-primary-stat-value-color);font-size:12px;text-align:center}._pct_1hzk8_29{color:var(--tile-primary-stat-value-color);font-size:8px}}}._btn_1lb0v_1{all:unset;cursor:var(--cursor-button);display:flex;gap:var(--space-1);&:hover{filter:brightness(1.4)}}._secondary-color_1cuvx_1{color:var(--gray-11)}._card_1cuvx_5{padding:20px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d}@property --progress-pct{syntax: ""; initial-value: 0%; inherits: false;}._pie-chart-title_1cuvx_18{white-space:nowrap;font-size:28px;color:var(--gray-8)}._pie-chart-container_1cuvx_24{width:100%;min-height:0;aspect-ratio:1/1}@keyframes _shimmer_1cuvx_58{to{transform:rotate(360deg)}}._pie-chart_1cuvx_18{aspect-ratio:1/1;container-type:size;background:conic-gradient(#4d4d4d 0,#8b2e11 80%);border-radius:50%;._threshold-marker_1cuvx_43{transform:rotate(108deg);transform-origin:center top;._marker-line_1cuvx_47{border-left:3px solid #4c4c4c}._marker-icon_1cuvx_51{height:5%;aspect-ratio:1/1}}._shimmer_1cuvx_58{position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 145deg,rgba(255,255,255,.05) 158deg,rgba(255,255,255,.18) 180deg,rgba(255,255,255,.05) 202deg,transparent 215deg);will-change:transform;animation:_shimmer_1cuvx_58 2s linear infinite}._overlay_1cuvx_74{--progress-pct: 0%;transition:--progress-pct .2s linear;position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0 var(--progress-pct),var(--supermajority-pie-chart-unfilled-color) var(--progress-pct) 100%)}._pie-chart-content_1cuvx_86{background:var(--boot-progress-supermajority-background-color);border-radius:50%;font-size:4.5cqi;color:var(--supermajority-pie-chart-text-color);._lg_1cuvx_93{font-size:9cqi}._eighty_1cuvx_97{color:var(--progress-bar-in-progress-supermajority-border)}}}._details-box_1cuvx_103{&,._copyButton_1cuvx_105{text-align:start;font-size:12px;color:var(--gray-9)}._label_1cuvx_111{font-size:10px;color:var(--gray-7)}._snapshot-source_1cuvx_116{color:var(--blue-7);font-size:12px;word-break:break-all}}._container_1vhtf_1{max-width:100%;flex-grow:1;&._horizontal_1vhtf_4{flex-basis:70%;min-height:188px;min-width:475px}&._vertical_1vhtf_9{flex-shrink:0;height:516px}}._table-card_1vhtf_15{width:100%;display:flex;flex-direction:column;overflow:hidden;&._narrow_1vhtf_21{padding:10px}}._rows-container_1vhtf_26{overflow-x:hidden;overflow-y:auto;flex-basis:50%;flex-grow:1}._row_1vhtf_26{box-sizing:border-box;height:var(--row-height);border:0px solid var(--supermajority-table-border-color);border-bottom-width:1px;column-gap:20px;padding:0 20px 0 5px;&._narrow_1vhtf_21{column-gap:15px}&._xnarrow_1vhtf_44{column-gap:5px}&._online_1vhtf_48{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-online-primary-color);font-size:14px}._peer_1vhtf_56{img{opacity:.5}}._status_1vhtf_62{color:var(--green-8)}._version_1vhtf_66 ._client-icon_1vhtf_66:not(._client-icon-placeholder_1vhtf_66){opacity:.5}._suffix_1vhtf_70{color:var(--supermajority-table-online-secondary-color)}}&._offline_1vhtf_75{&,._pubkey-text_1vhtf_51{color:var(--supermajority-table-offline-primary-color);font-size:14px}._status_1vhtf_62{color:var(--red-9)}._suffix_1vhtf_70{color:var(--supermajority-table-offline-secondary-color)}}&._header-row_1vhtf_92{height:auto;border:0}&._toggle-row_1vhtf_97{border-width:1px 0;display:flex;column-gap:8px;cursor:pointer;&:hover{filter:brightness(1.1)}&._offline_1vhtf_75{color:var(--red-9);background:#e5484d0d}&._online_1vhtf_48{color:var(--green-9);background:#30a46c0d}}}._cell_1vhtf_116{height:100%;&._header_1vhtf_92{height:22px;color:var(--table-header-color)}}._peer_1vhtf_56{column-gap:4px;min-width:108px;flex:10 1 170px;&._narrow_1vhtf_21{min-width:80px;flex:10 1 80px}&._xnarrow_1vhtf_44{min-width:70px;flex:10 1 70px}}._status_1vhtf_62{column-gap:8px;min-width:62px;flex:1 1 62px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{min-width:12px;flex:0 1 12px}}._pubkey_1vhtf_51{min-width:50px;flex:1 20 370px;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:10 1 50px}}._version_1vhtf_66{column-gap:8px;min-width:100px;flex:1 1 134px;&._narrow_1vhtf_21{min-width:80px;flex:1 10 80px}&._xnarrow_1vhtf_44{min-width:35px;flex:0 10 35px}}._stake_1vhtf_174{justify-content:flex-end;min-width:72px;flex:1 1 72px;&._narrow_1vhtf_21{min-width:52px;flex:0 1 52px}&._xnarrow_1vhtf_44{display:none}}._stake-pct_1vhtf_187{min-width:62px;flex:1 1 62px;justify-content:flex-end;&._narrow_1vhtf_21,&._xnarrow_1vhtf_44{flex:0 1 52px}}._small-icon_imn4j_1{height:12px}._medium-icon_imn4j_5{height:14px}._large-icon_imn4j_9{height:16px}._xlarge-icon_imn4j_13{height:20px}._digit_1rfzd_1{height:50%;display:flex;align-items:center;&._hidden_1rfzd_5{visibility:hidden}}._selection-text_1rfzd_10{color:transparent!important;background:transparent!important}._container_zkl3s_1{font-size:10px;color:var(--gray-8)}._added_zkl3s_6{color:#436c48}._removed_zkl3s_10{color:#925959}._container_1i8oq_1{position:absolute;top:14px;transform:translate(round(down,-50%,1px));left:50%;display:flex;justify-content:center;z-index:100;._toast_1i8oq_10{border-radius:10px;padding:8px;min-width:180px;display:flex;justify-content:center;align-items:center;z-index:100;&._disconnected_1i8oq_19{background:repeating-linear-gradient(115deg,var(--failure-color),var(--failure-color) 7px,var(--toast-disconnected-color) 7px,var(--toast-disconnected-color) 8px)}&._connecting_1i8oq_29{background:repeating-linear-gradient(115deg,var(--toast-connecting-start-color),var(--toast-connecting-start-color) 7px,var(--toast-connecting-end-color) 7px,var(--toast-connecting-end-color) 8px)}._text_1i8oq_39{color:#000;font-size:18px;font-style:normal;font-weight:600;text-align:center}}}._slots-list_1sk8v_1{scrollbar-width:none;&._hidden_1sk8v_3{visibility:hidden}}._no-slots-text_1sk8v_8{font-size:12px;color:var(--regular-text-color);text-align:center}._slot-group-container_1sejw_1{padding-bottom:5px;background:var(--slot-nav-background-color)}._slot-group_1sejw_1{column-gap:4px;row-gap:3px;border-radius:5px;background:var(--slots-list-slot-background-color);font-size:10px}._left-column_1sejw_14{flex-grow:1;min-width:0;gap:4px}._future_1sejw_20{padding:3px;background:var(--slots-list-future-slot-background-color);color:var(--slots-list-future-slot-color);img{filter:grayscale(100%)}&._you_1sejw_28{border:solid var(--slots-list-not-processed-my-slots-border-color);border-width:2px 1px 1px 1px;padding:2px 3px 3px;background:var(--slots-list-my-slot-background-color)}}._current_1sejw_36{padding:2px;border:1px solid var(--container-border-color);background-color:var(--container-background-color);color:var(--slots-list-slot-color);box-shadow:0 0 16px 0 var(--slots-list-current-slot-box-shadow-color) inset;._slot-name_1sejw_43{font-size:18px}&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{border-width:3px 1px 1px 1px;border-color:var(--slots-list-my-slots-selected-border-color)}}._current-slot-row_1sejw_57{background-color:var(--slots-list-current-slot-number-background-color);border-radius:5px;padding:3px}._past_1sejw_63{padding:3px;color:var(--slots-list-past-slot-color);&._skipped_1sejw_47{background:var(--slots-list-skipped-background-color)}&._you_1sejw_28{background:var(--slots-list-my-slot-background-color);&._processed_1sejw_74{text-decoration:none;padding:2px;border:solid var(--slots-list-my-slots-border-color);border-width:3px 1px 1px 1px;background:var(--slots-list-my-slot-background-color);color:var(--slots-list-past-slot-color);&:hover,&:active{border-color:var(--slots-list-my-slots-selected-border-color)}&._selected_1sejw_87{background:var(--slots-list-selected-background-color);border-color:var(--slots-list-my-slots-selected-border-color)}&._skipped_1sejw_47,&._selected_1sejw_87._skipped_1sejw_47{background:var(--slots-list-skipped-selected-background-color)}}}}._slot-name_1sejw_43{font-size:12px;font-weight:400}._ellipsis_1sejw_105{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._slot-item-content_1sejw_111{align-items:center;gap:4px;font-size:10px;font-weight:400;color:var(--slots-list-past-slot-number-color)}._placeholder_1sejw_119{height:42px}._slot-statuses_1sejw_123{._slot-status_1sejw_123{width:4px;height:6px;background:var(--slot-status-gray);border:1px solid transparent;border-radius:2px;align-items:flex-end;._slot-status-progress_1sejw_132{width:100%;height:100%;transform-origin:bottom;will-change:transform;animation:_fillProgress_1sejw_1 var(--slot-duration) ease-in-out forwards;background-color:var(--slot-status-blue)}}&._tall_1sejw_142{gap:3px;._slot-status_1sejw_123{flex-grow:1}}&._short_1sejw_149 ._slot-status_1sejw_123{height:3px;border-radius:1px}}@keyframes _fillProgress_1sejw_1{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes _shimmer_1sejw_184{0%{transform:translate(0)}to{transform:translate(200%)}}._scroll-slots-placeholder_1sejw_173{background:var(--slots-list-slot-background-color);._absolute-full-size_1sejw_176{position:absolute;top:0;left:0;width:100%;height:100%}._shimmer_1sejw_184{margin-left:-100%;will-change:transform;background:linear-gradient(to right,#fff0,#fff6f60d,#fff0);animation:_shimmer_1sejw_184 1.5s infinite}}._scroll-placeholder-item_1sejw_197{height:46px;margin-bottom:5px;border-radius:5px;box-shadow:0 0 0 4px var(--slot-nav-background-color)}._progress_51hag_1{background:var(--progress-gutter-background-color);flex-grow:0;div{background:var(--progress-background-color)}}._container_1l1zm_1{display:flex;justify-content:center;._button_1l1zm_5{position:absolute;width:100px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._epoch-progress_niwu5_1{width:100%;background:var(--epoch-slider-progress-color);position:absolute;bottom:0}._clickable_niwu5_8{cursor:pointer}._leader-slot_niwu5_12{width:100%;background:#2a7edf;height:5px;position:absolute;opacity:.5;&:hover{filter:brightness(1.5)}&._before-start_niwu5_21{filter:brightness(.5)}}._skipped-slot_niwu5_26{width:100%;background:#ff5353;height:3px;position:absolute;&:hover{filter:brightness(1.5)}}._skipped-slot-icon_niwu5_36{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._first-processed-slot_niwu5_45{width:100%;background:#bdf3ff;height:3px;position:absolute;right:0;&:hover{filter:brightness(1.5)}}._first-processed-slot-icon_niwu5_56{height:10px;position:absolute;left:11px;&:hover{filter:brightness(1.5)}}._slider-root_niwu5_65{position:relative;flex-grow:1;width:10px;display:flex;flex-direction:column;align-items:center;user-select:none;touch-action:none}._slider-track_niwu5_76{background:#24262b;flex-grow:1;width:100%}._slider-thumb_niwu5_82{display:block;position:relative;height:10px;width:20px;background:#64656580;border:1px solid #a4a4a4;border-radius:2px;cursor:grab;&._collapsed_niwu5_92{border-left-width:0;transition:border-width 0s linear .2s}}._slider-thumb_niwu5_82:hover{background:#6465654d}._slider-thumb_niwu5_82:focus{outline:none;box-shadow:0 0 0 2px var(--gray-a8)}._tooltip_niwu5_106{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap}._hide_niwu5_114{opacity:0;display:none;transition:opacity .5s ease-out 1s,display 0s 1.5s;transition-behavior:allow-discrete}._show_niwu5_123{opacity:1;display:block}._text_nk1yn_1{color:var(--primary-text-color);font-size:18px;font-weight:500}._container_k3j09_1{gap:var(--space-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}._container_k6h1w_1{position:absolute;right:0;top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:1;._stats-container_k6h1w_12{padding:5px 5px 5px 7px;border-radius:8px;background:#111111e6;._slot-stats-toggle-button_k6h1w_17{margin:-2px -4px;align-self:flex-end;display:flex;padding:0 4px;box-shadow:unset;color:var(--icon-button-color);gap:4px;height:16px}._stats_k6h1w_12{display:grid;grid:auto auto / auto auto;column-gap:10px;row-gap:4px;min-width:203px;font-variant-numeric:tabular-nums;color:var(--sankey-base-label-color);font-size:12px;line-height:normal;._success-rate_k6h1w_40{color:var(--sankey-success-rate-color)}}}._toggle-group_k6h1w_46{display:inline-flex;button{all:unset}._toggle-group-item_k6h1w_53{background:var(--toggle-item-background-color);color:#747575;padding:2px 4px;align-items:center;justify-content:center;margin-left:1px;cursor:pointer}._toggle-group-item_k6h1w_53:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}._toggle-group-item_k6h1w_53:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}._toggle-group-item_k6h1w_53:hover{filter:brightness(1.2)}._toggle-group-item_k6h1w_53[data-state=on]{background-color:#6184a4;color:#1f1f1f}}}._slot-performance-container_6u4bp_1{container:slot-performance / inline-size}._sankey-container_6u4bp_5{position:relative;aspect-ratio:4;min-height:450px;overflow:hidden;._slot-sankey-container_6u4bp_11{height:100%}}@container slot-performance (width < 600px){._sankey-container_6u4bp_5{aspect-ratio:1 / 3;overflow-x:clip;._slot-sankey-container_6u4bp_11 svg{transform:rotate(90deg) translateY(-100%) translate(15px);transform-origin:top left}}}._tooltip_102uq_1{padding:4px;border-radius:5px;background:#121212;display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_102uq_17{color:#754d12}._compute-units_102uq_21{color:var(--compute-units-color)}._elapsed-time_102uq_25{color:var(--elapsed-time-color)}._prio-fee_102uq_29{color:var(--fees-color)}._tips_102uq_33{color:var(--tips-color)}._label_102uq_37{font-weight:600;text-align:left}}._chart_102uq_43{flex-grow:1;height:25vw;min-height:250px;max-height:600px;position:relative;margin-left:-8px;margin-right:-8px}._chart_1hpd4_1{.uplot .legend .series:first-child,.uplot .legend .series th:after,.uplot .legend .series td{display:none}.lib-toggles{margin-top:20px;text-align:center}.u-select{background:#ffffff1a}.hidden{color:silver}.u-cursor-pt{border-radius:0}.uplot{margin-bottom:20px;padding:10px;box-shadow:0 0 10px #0000004d}}._focused_1hpd4_32{.u-over{border:1px solid var(--focused-border-color)}}._icon-container_1i4gu_1{display:none}._tooltip_h8khk_1{z-index:1;position:absolute;background:var(--Colors-Gray-1, #111);padding:6px 8px;border-radius:8px;max-height:none!important;max-width:none!important}._tooltip_11ays_1{display:grid;grid:auto-flow / auto auto;column-gap:8px;span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;text-align:right}._active-banks_11ays_14{color:#754d12}._compute-units_11ays_18{color:var(--compute-units-color)}._elapsed-time_11ays_22{color:var(--elapsed-time-color)}._fees_11ays_26{color:var(--fees-color)}._tips_11ays_30{color:var(--tips-color)}._label_11ays_34{font-weight:600;text-align:left}}._button_1b3a4_1{all:unset;background:var(--toggle-item-background-color);color:var(--toggle-item-text-color);font-weight:510;height:23px;padding:0 8px;display:flex;font-size:12px;line-height:16px;align-items:center;justify-content:center;user-select:none;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:not([data-disabled]):hover{background:#3e62bd52}&[data-disabled]{cursor:not-allowed;font-weight:400;filter:brightness(.7)}}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}._group-label_1cg9k_1{margin-right:8px;&._min-text-width_1cg9k_4{min-width:50px}}._group_1cg9k_1{display:inline-flex;background-color:var(--mauve-6);border-radius:4px;box-shadow:0 2px 10px var(--black-a7);&._tooltip-open_1cg9k_15{box-shadow:0 0 0 2px var(--slot-details-chart-controls-triggered);._item_1cg9k_18:focus-visible{box-shadow:unset}}}._item_1cg9k_18{all:unset;background-color:var(--toggle-item-background-color);color:var(--toggle-item-text-color);height:22px;padding:0 8px;display:flex;font-size:12px;align-items:center;justify-content:center;margin-left:1px;user-select:none;font-weight:400;cursor:pointer;&:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}&:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}&:hover{background:#3e62bd52}&[data-state=on]{background-color:#4a4a4a;color:#f0f0f0;font-weight:510}&:focus-visible{position:relative;box-shadow:0 0 0 2px var(--focus-8)}._item-color_1cg9k_65{width:4px;height:16px;margin-right:4px}}._slider_zs58s_1{width:190px;flex-grow:1;position:relative;.rt-SliderRoot{&:before{position:absolute;content:"";height:calc(100% + 4px);top:-2px;left:calc(var(--slot-start-pct) - .5px);width:1px;background:var(--toggle-item-text-color);z-index:1}&:after{position:absolute;content:"0ms";font-size:10px;height:12px;bottom:-16px;left:calc(var(--slot-start-pct) - .5px);transform:translate(-50%);color:#fff;z-index:1}span:has(>.rt-SliderThumb){z-index:2}span:has(>[aria-label=Minimum]):after{content:var(--min-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}span:has(>[aria-label=Maximum]):after{content:var(--max-value-label, "");position:absolute;left:50%;transform:translate(-50%,4px);font-size:10px;white-space:nowrap;color:#baa7ff;background:var(--toggle-item-background-color);padding:0 2px;border-radius:4px}}}._arrival-label_zs58s_68{color:#fff}._slider-label_zs58s_72{color:#fff;font-size:12px}._minimize-button_zs58s_77{position:absolute;top:4px;right:4px}._chart-control-tooltip_zs58s_83{background:var(--blue-11);color:#111113;.rt-TooltipText{font-size:12px;overflow-wrap:break-word}.rt-TooltipArrow{fill:var(--blue-11)}}._label_1q3ew_1{font-size:14px;color:#fff}._dropdownButton_1yasw_1{border-top-right-radius:0;border-bottom-right-radius:0}._input-container_1yasw_6{box-sizing:border-box;--text-field-height: var(--space-6);--text-field-padding: calc(var(--space-2) - var(--text-field-border-width));--text-field-border-radius: max(var(--radius-2), var(--radius-full));--text-field-native-icon-size: var(--space-4);height:var(--text-field-height);padding:var(--text-field-border-width);border-radius:0 var(--text-field-border-radius) var(--text-field-border-radius) 0;font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);width:240px;&._sm_1yasw_20{width:180px}button{box-sizing:content-box;--margin-left-override: 0px;--margin-right-override: 0px}@supports selector(:has(*)){&:has(input:focus){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}@supports not selector(:has(*)){&:where(:focus-within){outline:2px solid var(--text-field-focus-color);outline-offset:-1px}}[cmdk-input]{flex:1;border-radius:calc(var(--text-field-border-radius) - var(--text-field-border-width));border:none;outline:none;width:100%;padding:0 var(--space-2);font-size:var(--font-size-2);letter-spacing:var(--letter-spacing-2);background:#0000;border-radius:0;caret-color:#6e5ed2;margin:0;&::placeholder{color:var(--gray-a10)}}}._content_1yasw_68{background:var(--gray-4);width:var(--radix-popover-trigger-width);max-height:400px;&:has(>[cmdk-list]>[cmdk-list-sizer]:not(:empty)){padding-bottom:var(--space-1)}[cmdk-list]{height:min(300px,var(--cmdk-list-height));max-height:400px;overflow:auto;overscroll-behavior:contain}[cmdk-group-heading]{user-select:none;font-size:14px;color:var(--slate-11);padding:0 8px;display:flex;align-items:center;padding:var(--space-1) var(--space-3)}[cmdk-empty],[cmdk-loading]{color:#f1f7feb5;padding-bottom:0!important}[cmdk-item],[cmdk-empty],[cmdk-loading]{content-visibility:auto;cursor:pointer;font-size:var(--font-size-2);text-wrap:nowrap;display:flex;align-items:center;gap:12px;padding:var(--space-1) var(--space-3);border-radius:4px;user-select:none;position:relative;&[data-selected=true]{background:var(--teal-5)}&[data-disabled=true]{color:var(--gray-8);cursor:not-allowed}&:active{background:var(--gray-4)}+[cmdk-item]{margin-top:4px}}}._tooltip-open_1yasw_135{outline-offset:-1px;outline:2px solid var(--slot-details-chart-controls-triggered)!important}._text_1k6sv_1{span{color:var(--gray-12);font-size:var(--font-size-2);text-wrap:nowrap;&._faded_1k6sv_7{color:var(--faded-text)}&._ellipsis_1k6sv_11{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}}._container_14qh6_1{position:absolute;z-index:3;right:5px;top:5px;display:flex;align-items:center;gap:8px;._label_14qh6_10{user-select:none;color:#60646c;font-size:12px}}#txn-bars-tooltip{z-index:3;position:absolute;background:var(--Colors-Gray-1, #111);border-radius:8px;max-height:none!important;max-width:none!important;margin:6px 8px;._state_1bdpv_11{font-weight:700;color:var(--Colors-Neutral-Neutral-10, #777b84)}span{font-size:12px;font-style:normal;font-weight:400;line-height:normal;color:var(--color-override, #777b84)}._cu-bars_1bdpv_24{flex:1;width:0;padding:4px 0}._duration-container_1bdpv_30{flex:1;background:#363a3f80;padding:4px 0;margin:4px 0;width:0}._value-text_1bdpv_38{overflow-wrap:anywhere}._unit_1bdpv_42{font-family:Roboto Mono,monospace;margin-left:2px;flex-shrink:0;white-space:nowrap}}._separator_1pgc5_1{background:var(--row-separator-background-color)}._search-grid_gudx6_1{align-content:center}._search-label_gudx6_5{font-size:16px;font-weight:500;color:var(--slot-details-search-label-color)}._search-field_gudx6_11{width:100%}._error-text_gudx6_15{color:var(--failure-color)}._quick-search-card_gudx6_19{border-radius:8px;border:1px solid var(--container-border-color);background:var(--container-background-color);color:var(--slot-details-quick-search-text-color)}._quick-search-header_gudx6_26{color:var(--quick-search-color);font-size:18px;svg{width:32px;height:32px;fill:var(--quick-search-color)}}._quick-search-slot_gudx6_37{font-size:12px;&._clickable_gudx6_40{cursor:pointer;color:var(--slot-details-clickable-slot-color)}&:not(._clickable_gudx6_40){cursor:not-allowed;pointer-events:none}}._quick-search-metric_gudx6_51{font-size:12px}._slot-item-group_p1cnp_1{gap:4px;padding:2px;border-radius:5px;border:1px solid var(--slot-details-my-slots-not-selected-color);border-top-width:3px;&._disabled_p1cnp_8{border:1px solid var(--slot-details-disabled-slot-border-color);border-top-width:3px}&._is-selected_p1cnp_13{border:1px solid var(--slots-list-my-slots-selected-border-color);border-top-width:3px}}._slot-item_p1cnp_1{text-decoration:none;display:flex;justify-content:center;align-items:center;padding:3px 10px;gap:10px;font-size:12px;font-weight:400;border-radius:3px;box-sizing:border-box;width:var(--item-width);background:var(--slot-details-background-color);color:var(--slot-details-color);&._selected-slot_p1cnp_35{font-weight:600;background:var(--slot-details-selected-background-color);color:var(--slot-details-selected-color)}&._skipped-slot_p1cnp_41{background:var(--slot-details-skipped-background-color)}&._skipped-slot_p1cnp_41._selected-slot_p1cnp_35{background:var(--slot-details-skipped-selected-background-color)}}._fade_p1cnp_50{position:absolute;top:0;bottom:0;width:clamp(32px,8vw,96px);pointer-events:none;&._fade-left_p1cnp_57{left:0;background:linear-gradient(to left,transparent 0%,black 100%)}&._fade-right_p1cnp_62{right:0;background:linear-gradient(to right,transparent 0%,black 100%)}}._small-icon_1vpxu_1{width:14px;height:14px}._large-icon_1vpxu_6{width:15px;height:15px}._header_1s5d9_1{font-size:14px;font-weight:600;color:var(--slot-details-stats-tertiary)}._subheader_1s5d9_7{font-size:12px;color:var(--slot-details-stats-tertiary)}._label_1s5d9_12{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap}._value_1s5d9_18{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;--popover-trigger-color: var(--slot-details-stats-secondary);--popover-trigger-hover-color: var(--slot-details-stats-primary)}._table-header_1s5d9_26{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap}._table-row-label_1s5d9_32{font-size:10px;color:var(--slot-details-stats-primary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-tertiary)}}._table-cell-value_1s5d9_42{font-size:10px;color:var(--slot-details-stats-secondary);text-wrap:nowrap;&._total_1s5d9_37{color:var(--slot-details-stats-primary)}}._grid_1s5d9_52{padding:5px 10px;border-radius:8px;border-bottom:1px solid rgba(250,250,250,.12);background:linear-gradient(0deg,#fafafa0d,#fafafa00);._label_1s5d9_12,._value_1s5d9_18{font-size:14px}._name_1s5d9_67{font-weight:600;color:#ccc;&._lg_1s5d9_70{font-size:18px;contain:inline-size;width:100%}}}._copy-button_1s5d9_79{flex-shrink:1;min-width:0;color:var(--slot-details-stats-primary)}._time-popover_1s5d9_85{flex-shrink:1;min-width:0;max-width:fit-content}._container_1w2fb_1{height:13px;border-radius:4px;._label_1w2fb_5{font-size:10px;color:var(--slot-details-stats-primary);pointer-events:none}}._clickable_1w2fb_12{appearance:none;border:none;padding:0;cursor:pointer;transition:all .3s ease;&:hover{height:15px;transform:translateY(-2px);filter:brightness(1.2);box-shadow:0 4px 8px #0006;outline:.5px solid #e5e7eb;z-index:1}}._container_id19r_1{font-size:12px;padding:0 5px}._label_id19r_6{color:var(--popover-secondary-color)}._value_id19r_10{color:var(--popover-primary-color);text-align:end}._popover-trigger_id19r_15{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px;font:inherit;color:inherit}._popover-underline-overlay_id19r_23{position:absolute;inset:0;&:hover ._popover-text-underline_id19r_27{text-decoration-color:var( --popover-trigger-hover-color, var(--primary-text-color) )}}._popover-text-underline_id19r_27{color:transparent!important;text-overflow:clip;transition:text-decoration-color .2s ease;text-decoration:underline dotted var(--popover-trigger-color, var(--secondary-text-color))}._card_ybszl_1{padding:10px;border-radius:8px;border:1px solid #1c1e2b;background:#101123;color:var(--primary-text-color);._name-text_ybszl_8{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._pubkey-text_ybszl_14{flex-grow:1;min-width:390px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._narrow-screen_ybszl_21{flex-grow:0;min-width:inherit}}&._two-away_ybszl_27{border:1px solid #2a2c38;background:#131524;opacity:1.6}&._one-away_ybszl_33{border:1px solid #295060;background:#142432}._time-till_ybszl_38{min-width:250px;&._narrow-screen_ybszl_21{min-width:inherit}}}._my-slots_kxi8u_1{border-color:#2a7edfa6!important;box-shadow:inset 0 4px #2a7edfa6;background:#2a7edf33}._scroll_kxi8u_7{touch-action:none;& *{touch-action:none}span{user-select:text}}._card_zlaiw_1{border-radius:8px;border:1px solid #30323a;background:#151b25;padding:9px 10px 5px;&._late-vote_zlaiw_7{border:1px solid #2f1e7c;background:#120f2e}&._skipped_zlaiw_12{border:1px solid rgba(255,71,71,.38);background:#bd3e3e26}}._grid_1feao_1{display:grid;grid:auto-flow / minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto);overflow-x:auto;min-width:80px;touch-action:pan-x;& *{touch-action:pan-x}scrollbar-width:thin;scrollbar-color:#cbcbcb20 #cbcbcb01;width:100%;&._firedancer-grid_1feao_16{grid:auto-flow / minMax(80px,auto) minMax(70px,auto) minMax(80px,auto) minMax(70px,auto) minMax(70px,auto) minMax(80px,auto) minMax(149px,auto)}}._header-text_1feao_24{font-size:12px;color:var(--slot-card-header-text-color);padding:3px 0}._vote-latency-header_1feao_30{color:var(--vote-latency-color)}._votes-header_1feao_33{color:var(--votes-color)}._non-votes-header_1feao_36{color:var(--success-color)}._fees-header_1feao_39{color:var(--fees-color)}._tips-header_1feao_42{color:var(--tips-color)}._compute-units-header_1feao_45{color:var(--compute-units-color);padding:0}._compute-units-pct_1feao_50{width:50px;display:inline-block}._row-text_1feao_55{white-space:nowrap;color:var(--slot-card-section-secondary-color);font-variant-numeric:tabular-nums;border-top:1px solid rgba(250,250,250,.12);padding:1px 0 0;&._active_1feao_62{background:var(--container-background-color);color:var(--slot-card-section-primary-color)}}._slot-text_1feao_68{color:var(--slot-card-section-primary-color);border-right:1px solid rgba(250,250,250,.12);padding-right:5px}.CircularProgressbar{width:100%;vertical-align:middle}.CircularProgressbar .CircularProgressbar-path{stroke:#3e98c7;stroke-linecap:round;-webkit-transition:stroke-dashoffset .5s ease 0s;transition:stroke-dashoffset .5s ease 0s}.CircularProgressbar .CircularProgressbar-trail{stroke:#d6d6d6;stroke-linecap:round}.CircularProgressbar .CircularProgressbar-text{fill:#3e98c7;font-size:20px;dominant-baseline:middle;text-anchor:middle}.CircularProgressbar .CircularProgressbar-background{fill:#d6d6d6}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background{fill:#3e98c7}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text{fill:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path{stroke:#fff}.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail{stroke:transparent}._slot-text_j49it_1{user-select:text;a:link{text-decoration:none;color:var(--slot-text-link-color)}a:visited{text-decoration:none;color:var(--slot-text-visited-link-color)}a:active,a:hover{text-decoration:none;color:var(--slot-text-active-link-color)}}._my-slots_476vd_1{color:var(--summary-my-slots-color);border-radius:10px;background:var(--container-background-color);padding:2px 5px}._summary-container_476vd_8{width:40%;min-width:500px}._name_476vd_13{color:var(--summary-primary-text-color);font-size:24px;min-width:30px;line-height:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;&._you_476vd_22{color:var(--gray-12)}&._mobile_476vd_26{font-size:inherit;line-height:16px}}._primary-text_476vd_32{font-style:normal;color:var(--summary-primary-text-color);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}._secondary-text_476vd_40{color:var(--summary-secondary-text-color);>span{line-height:normal}}._divider_476vd_47{color:var(--summary-primary-text-color)}._mobile_476vd_26{font-size:12px}._firedancer_476vd_55{color:var(--summary-firedancer-text-color)}._frankendancer_476vd_59{color:var(--summary-frankendancer-text-color)}._agave_476vd_63{color:var(--summary-agave-text-color)}._jito_476vd_67{color:var(--summary-jito-text-color)}._paladin_476vd_71{color:var(--summary-paladin-text-color)}._bam_476vd_75{color:var(--summary-bam-text-color)}._sig_476vd_79{color:var(--summary-sig-text-color)}._rakurai_476vd_83{background:var(--summary-rakurai-text-color);background-clip:text;color:transparent}._harmonic_476vd_89{color:var(--summary-harmonic-text-color)}._major-minor-version-text_476vd_93{flex-shrink:0}._remaining-version-text_476vd_97{min-width:1em;flex-shrink:2}._time-ago_476vd_102{text-align:left;&._right-aligned_476vd_105{text-align:right}}._arrow-dropdown_mvcj2_1{--button-ghost-padding-x: 2px;--button-ghost-padding-y: 2px}._card_wweyx_1{border-radius:8px;border:2px solid rgba(96,215,193,.65);background:#1b2432;box-shadow:0 0 4px #1ce7c291;padding:10px}._preload_1uziq_1{display:none}._container_1hof6_1{display:flex;justify-content:center;._button_1hof6_5{position:absolute;width:115px;height:18px;padding:2px 4px 2px 6px;align-items:center;border-radius:40px;background:#174e45;box-shadow:0 4px 4px #1c524966;font-size:12px;font-weight:600}}._label_14v9a_1{color:#737373}._value_14v9a_5{color:var(--next-slot-value-color);min-width:50px}._container_bc437_1{margin-bottom:16px;margin-left:24px;container:search / inline-size;input:placeholder-shown{text-overflow:ellipsis}}@media (max-width: 700px){._container_bc437_1{margin-bottom:8px;margin-left:0}}._search-box_bc437_18{justify-self:"center";min-width:400px}@container search (width < 600px){._search-box_bc437_18{min-width:100%}}._label_bc437_29{color:"#766A6A"}._search-button_bc437_33{display:flex;height:100%;padding:4px 10px;align-items:center;gap:8px;align-self:stretch;border-radius:8px;&:focus{box-shadow:0 0 0 2px #000}._label_bc437_29{color:#717171}&:hover,&[data-state=on]{._label_bc437_29{color:#a1a1a1}&._disabled_bc437_56{._label_bc437_29{color:#717171}}}}._my-slots_bc437_64{border-radius:8px;border:1px solid #1c4f8f;border-top-width:3px;background:#0d1c36;color:#4497f7;&:hover{border-color:#2a7edf;background:#0d3059;color:#2a7edf}&[data-state=on]{border-color:#2a7edf;background:#073c7b;color:#2a7edf}}._late-vote-slots_bc437_84{border:1px solid #2f1e7c;background:#130f33;color:#896fec;&:hover{border-color:#341f92;background:#1b1450;color:#896fec}&[data-state=on]{border-color:#5530e4;background:#38218f;color:#896fec}}._skipped-slots_bc437_102{border:1px solid #461e1f;background:#1f0a0b;color:var(--failure-color);&:hover{border-color:#752626;background:#321112}&[data-state=on]{border-color:#823737;background:#501717}}._disabled_bc437_56{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color);&:hover{border-color:var(--search-disabled-border-color);background:var(--search-disabled-background-color);color:var(--search-disabled-text-color)}}._skip-rate-label_bc437_130{color:var(--skip-rate-label-color);line-height:normal}._skip-rate-value_bc437_135{color:var(--failure-color);line-height:normal}._header-text_n52ov_1{color:var(--primary-text-color);font-size:18px}._storage-stats-container_n52ov_6{contain:size}._root_n52ov_11{min-height:0;thead{th{font-size:12px;font-weight:400;color:var(--gossip-table-header-color)}}tbody{th,td{font-size:14px;color:var(--gossip-table-body-color)}}td,th{white-space:nowrap}td{text-align:right}}._align-right_n52ov_39{text-align:right}._label_1nl74_1{color:#a2a2a2;font-size:14px}._value_1nl74_6{color:#9f9f9f;font-size:28px}._header-text_uidb2_1{color:var(--primary-text-color);font-size:18px}div:has(>._tooltip_uidb2_8){width:1px;height:1px}._tooltip_uidb2_8{width:fit-content;transform:translate(calc(-100% - 5px));padding:4px;background:#131923;border:1px solid #2e343e;border-radius:4px 8px;color:var(--regular-text-color);span{white-space:nowrap}}._header-text_1ozln_1{color:var(--primary-text-color);font-size:18px}._peer-table_1ozln_6{thead{tr{font-size:12px;color:var(--gossip-table-header-color)}}tbody{tr{font-size:14px;color:var(--gossip-table-body-color)}}}._header-cell_1ozln_22{padding:var(--table-cell-padding)}._header-separator_1ozln_26{background:var(--gray-7)}._body-cell_1ozln_30{outline-offset:-2px;&._selected_1ozln_33{outline:1px dashed var(--gray-10);&._copied_1ozln_36{outline:1px dashed var(--gray-11)}}}._header-text_skmjj_1{color:var(--primary-text-color);font-size:18px}._total-text_skmjj_6{color:var(--gray-7);font-size:18px}._throughput-text_skmjj_11{color:var(--gray-10);font-size:18px}._leaf_skmjj_16{border-radius:2px;cursor:pointer;background-color:var(--leaf-color);&:hover{background-color:color-mix(in hsl,var(--leaf-color),#ffffff1a)}._leaf-content_skmjj_24{font-size:10px;._name_skmjj_27{color:#ccc;align-self:stretch;&._large_skmjj_30{font-size:12px}}._stats_skmjj_34{color:var(--table-body-color)}}}._tooltip_skmjj_40{.rt-TooltipArrow{display:none!important}}._axis-text_juf3d_1{color:var(--transaction-axis-text-color);font-size:8px;line-height:normal}._container_muoex_1{font-size:10px;color:var(--regular-text-color)}._label_muoex_6{font-size:12px;line-height:normal;text-wrap:nowrap}._value_muoex_12{line-height:normal;color:var(--value-color, var(--regular-text-color));overflow:hidden;&._small_muoex_17{font-size:18px;font-weight:500}&._medium_muoex_21{font-size:28px;letter-spacing:-1.12px}&._large_muoex_25{font-size:32px;line-height:16px}}._append-value_muoex_31{line-height:normal;color:var(--append-value-color)}._vote-tps_kqvrt_1{min-width:90px}._stat-row_1ia1g_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;&:first-child{flex-grow:0;min-width:80px}}}._stat-row_11bim_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1;min-width:180px}}._stat-row_kmlhn_1{display:flex;flex-wrap:wrap;gap:8px;width:100%;>div{flex:1 1 auto;min-width:180px}}._progress_kmlhn_13{min-width:140px}._chart_7b67t_1{padding-top:0;padding-bottom:0;vertical-align:middle}._table_7b67t_7 table tbody ._row_7b67t_7{&._total-row_7b67t_8{border-top:1px solid rgba(250,250,250,.5)}th,td{color:var(--table-body-color)}}._group-header_1lbrc_1{text-align:center;padding:5px}._header_1lbrc_6{th{vertical-align:bottom;&._wrap_1lbrc_9{white-space:normal}}}._table_1lbrc_15{table{table-layout:fixed;._data-row_1lbrc_19{._green_1lbrc_20{color:var(--green-9)}._red_1lbrc_24{color:var(--red-9)}td{.rt-Text{line-height:inherit}color:var(--table-body-color);text-align:left;&[align=right]{text-align:right}vertical-align:middle;&._pct-gradient_1lbrc_43{color:color-mix(in srgb,var(--tile-busy-green-color),var(--tile-busy-red-color) var(--pct))}&._no-padding_1lbrc_51{padding-top:0;padding-bottom:0}._increment-text_1lbrc_56{min-width:5ch;display:inline-block;font-variant-numeric:tabular-nums;&._low-increment_1lbrc_61{color:var(--low-increment-text-color)}&._mid-increment_1lbrc_64{color:var(--mid-increment-text-color)}&._high-increment_1lbrc_67{color:var(--high-increment-text-color)}}}}tr{border:solid rgba(250,250,250,.12);border-width:1px 0px}._light-border-bottom_1lbrc_79{border-bottom:1px solid rgba(250,250,250,.36)}._right-border_1lbrc_83{border-right:1px solid rgba(250,250,250,.36)}td._right-border_1lbrc_83{padding-right:10px}td,th{box-shadow:none}}}._table-description-dialog_1shm8_1{overflow-y:auto;._table_1shm8_1{padding:var(--space-3) 8px;--table-cell-padding: 5px;._th_1shm8_8{font-size:12px;font-weight:400;color:var(--table-header-color)}._tr_1shm8_14{font-size:14px;color:var(--table-body-color);&:last-child td{box-shadow:none}._name_1shm8_22{white-space:nowrap}}}._close-button_1shm8_28{cursor:pointer}}._slot-label-card_1pson_1{border-radius:3px;padding:2px 3px;background-color:var(--gray-3);color:var(--slot-timeline-text-color);.rt-Text{font-size:12px;line-height:normal}}._slot-label-name_1pson_13{flex-shrink:100000000}._slot-label-dt_1pson_16{display:flex;white-space:pre;._dt-sign_1pson_19{line-height:14px}}._slot-bar_1pson_24{border-radius:2px;background:var(--bar-color, #3f434b);pointer-events:none;&._dim_1pson_29{background:#2d3138}}._slot-bar-track_1pson_34{height:90px}._next-leader-container_1pson_38{container-type:inline-size;container-name:next-leader-container}@container next-leader-container (width < 300px){._next-leader-timer-label_1pson_44{display:none}}@container next-leader-container (width < 130px){._next-leader-timer-container_1pson_50{display:none}}._stat-row_1xsdi_1{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%;>div{flex:1 1 auto;min-width:100px;&._storage-stat-container_1xsdi_10{min-width:160px}}}._trailing_10pox_1{color:var(--gray-9)}._cards_hn4o1_1{grid-template-columns:minmax(300px,1fr)}._txns-card_hn4o1_5{grid-column:1 / -1}@media (min-width: 900px){._cards_hn4o1_1{grid-template-columns:1fr 1fr}._txns-card_hn4o1_5{grid-column:1 / -1}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:2}}}@media (min-width: 1512px){._cards_hn4o1_1{grid-template-columns:1fr 1fr 1fr}._txns-card_hn4o1_5{grid-column:span 2}._frankendancer_hn4o1_18{._txns-card_hn4o1_5{grid-column:span 3}}}@media (min-width: 1850px){._cards_hn4o1_1{grid-template-columns:1fr 1.5fr 1.7fr 2fr;&._frankendancer_hn4o1_18{grid-template-columns:1fr 1fr 1fr}}._txns-card_hn4o1_5{grid-column:1 / -1}}body{margin:0;min-width:320px;min-height:100vh} diff --git a/src/disco/gui/dist_dev/assets/wsWorker-D3WzW2i7.js b/src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js similarity index 97% rename from src/disco/gui/dist_dev/assets/wsWorker-D3WzW2i7.js rename to src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js index c4bab3fcca3..ba83348597e 100644 --- a/src/disco/gui/dist_dev/assets/wsWorker-D3WzW2i7.js +++ b/src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js @@ -35,4 +35,4 @@ `)}j.write("payload.value = newResult;"),j.write("return payload;");const pA=j.compile();return(MA,xA)=>pA($,MA,xA)};let a;const h=Hn,w=!Vo.jitless,v=w&&$I.value,F=i.catchall;let x;r._zod.parse=($,j)=>{x??(x=E.value);const P=$.value;return h(P)?w&&v&&j?.async===!1&&j.jitless!==!0?(a||(a=g(i.shape)),$=a($,j),F?rB([],P,$,j,x,r):$):u($,j):($.issues.push({expected:"object",code:"invalid_type",input:P,inst:r}),$)}});function oB(r,i,u,E){for(const a of r)if(a.issues.length===0)return i.value=a.value,i;const g=r.filter(a=>!nn(a));return g.length===1?(i.value=g[0].value,g[0]):(i.issues.push({code:"invalid_union",input:i.value,inst:u,errors:r.map(a=>a.issues.map(h=>Gt(h,E,it())))}),i)}const Us=H("$ZodUnion",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.options.some(g=>g._zod.optin==="optional")?"optional":void 0),te(r._zod,"optout",()=>i.options.some(g=>g._zod.optout==="optional")?"optional":void 0),te(r._zod,"values",()=>{if(i.options.every(g=>g._zod.values))return new Set(i.options.flatMap(g=>Array.from(g._zod.values)))}),te(r._zod,"pattern",()=>{if(i.options.every(g=>g._zod.pattern)){const g=i.options.map(a=>a._zod.pattern);return new RegExp(`^(${g.map(a=>ea(a.source)).join("|")})$`)}});const u=i.options.length===1,E=i.options[0]._zod.run;r._zod.parse=(g,a)=>{if(u)return E(g,a);let h=!1;const w=[];for(const k of i.options){const v=k._zod.run({value:g.value,issues:[]},a);if(v instanceof Promise)w.push(v),h=!0;else{if(v.issues.length===0)return v;w.push(v)}}return h?Promise.all(w).then(k=>oB(k,g,r,a)):oB(w,g,r,a)}}),aB=H("$ZodDiscriminatedUnion",(r,i)=>{Us.init(r,i);const u=r._zod.parse;te(r._zod,"propValues",()=>{const g={};for(const a of i.options){const h=a._zod.propValues;if(!h||Object.keys(h).length===0)throw new Error(`Invalid discriminated union option at index "${i.options.indexOf(a)}"`);for(const[w,k]of Object.entries(h)){g[w]||(g[w]=new Set);for(const v of k)g[w].add(v)}}return g});const E=Pi(()=>{const g=i.options,a=new Map;for(const h of g){const w=h._zod.propValues?.[i.discriminator];if(!w||w.size===0)throw new Error(`Invalid discriminated union option at index "${i.options.indexOf(h)}"`);for(const k of w){if(a.has(k))throw new Error(`Duplicate discriminator value "${String(k)}"`);a.set(k,h)}}return a});r._zod.parse=(g,a)=>{const h=g.value;if(!Hn(h))return g.issues.push({code:"invalid_type",expected:"object",input:h,inst:r}),g;const w=E.value.get(h?.[i.discriminator]);return w?w._zod.run(g,a):i.unionFallback?u(g,a):(g.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:i.discriminator,input:h,path:[i.discriminator],inst:r}),g)}}),sB=H("$ZodIntersection",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value,a=i.left._zod.run({value:g,issues:[]},E),h=i.right._zod.run({value:g,issues:[]},E);return a instanceof Promise||h instanceof Promise?Promise.all([a,h]).then(([k,v])=>gB(u,k,v)):gB(u,a,h)}});function Gs(r,i){if(r===i)return{valid:!0,data:r};if(r instanceof Date&&i instanceof Date&&+r==+i)return{valid:!0,data:r};if(rn(r)&&rn(i)){const u=Object.keys(i),E=Object.keys(r).filter(a=>u.indexOf(a)!==-1),g={...r,...i};for(const a of E){const h=Gs(r[a],i[a]);if(!h.valid)return{valid:!1,mergeErrorPath:[a,...h.mergeErrorPath]};g[a]=h.data}return{valid:!0,data:g}}if(Array.isArray(r)&&Array.isArray(i)){if(r.length!==i.length)return{valid:!1,mergeErrorPath:[]};const u=[];for(let E=0;E{HA.init(r,i);const u=i.items;r._zod.parse=(E,g)=>{const a=E.value;if(!Array.isArray(a))return E.issues.push({input:a,inst:r,expected:"tuple",code:"invalid_type"}),E;E.value=[];const h=[],w=[...u].reverse().findIndex(F=>F._zod.optin!=="optional"),k=w===-1?0:u.length-w;if(!i.rest){const F=a.length>u.length,x=a.length=a.length&&v>=k)continue;const x=F._zod.run({value:a[v],issues:[]},g);x instanceof Promise?h.push(x.then($=>aa($,E,v))):aa(x,E,v)}if(i.rest){const F=a.slice(u.length);for(const x of F){v++;const $=i.rest._zod.run({value:x,issues:[]},g);$ instanceof Promise?h.push($.then(j=>aa(j,E,v))):aa($,E,v)}}return h.length?Promise.all(h).then(()=>E):E}});function aa(r,i,u){r.issues.length&&i.issues.push(...Ut(u,r.issues)),i.value[u]=r.value}const cB=H("$ZodRecord",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!rn(g))return u.issues.push({expected:"record",code:"invalid_type",input:g,inst:r}),u;const a=[],h=i.keyType._zod.values;if(h){u.value={};const w=new Set;for(const v of h)if(typeof v=="string"||typeof v=="number"||typeof v=="symbol"){w.add(typeof v=="number"?v.toString():v);const F=i.valueType._zod.run({value:g[v],issues:[]},E);F instanceof Promise?a.push(F.then(x=>{x.issues.length&&u.issues.push(...Ut(v,x.issues)),u.value[v]=x.value})):(F.issues.length&&u.issues.push(...Ut(v,F.issues)),u.value[v]=F.value)}let k;for(const v in g)w.has(v)||(k=k??[],k.push(v));k&&k.length>0&&u.issues.push({code:"unrecognized_keys",input:g,inst:r,keys:k})}else{u.value={};for(const w of Reflect.ownKeys(g)){if(w==="__proto__")continue;const k=i.keyType._zod.run({value:w,issues:[]},E);if(k instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(k.issues.length){u.issues.push({code:"invalid_key",origin:"record",issues:k.issues.map(F=>Gt(F,E,it())),input:w,path:[w],inst:r}),u.value[k.value]=k.value;continue}const v=i.valueType._zod.run({value:g[w],issues:[]},E);v instanceof Promise?a.push(v.then(F=>{F.issues.length&&u.issues.push(...Ut(w,F.issues)),u.value[k.value]=F.value})):(v.issues.length&&u.issues.push(...Ut(w,v.issues)),u.value[k.value]=v.value)}}return a.length?Promise.all(a).then(()=>u):u}}),uB=H("$ZodMap",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!(g instanceof Map))return u.issues.push({expected:"map",code:"invalid_type",input:g,inst:r}),u;const a=[];u.value=new Map;for(const[h,w]of g){const k=i.keyType._zod.run({value:h,issues:[]},E),v=i.valueType._zod.run({value:w,issues:[]},E);k instanceof Promise||v instanceof Promise?a.push(Promise.all([k,v]).then(([F,x])=>{IB(F,x,u,h,g,r,E)})):IB(k,v,u,h,g,r,E)}return a.length?Promise.all(a).then(()=>u):u}});function IB(r,i,u,E,g,a,h){r.issues.length&&(ra.has(typeof E)?u.issues.push(...Ut(E,r.issues)):u.issues.push({code:"invalid_key",origin:"map",input:g,inst:a,issues:r.issues.map(w=>Gt(w,h,it()))})),i.issues.length&&(ra.has(typeof E)?u.issues.push(...Ut(E,i.issues)):u.issues.push({origin:"map",code:"invalid_element",input:g,inst:a,key:E,issues:i.issues.map(w=>Gt(w,h,it()))})),u.value.set(r.value,i.value)}const EB=H("$ZodSet",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;if(!(g instanceof Set))return u.issues.push({input:g,inst:r,expected:"set",code:"invalid_type"}),u;const a=[];u.value=new Set;for(const h of g){const w=i.valueType._zod.run({value:h,issues:[]},E);w instanceof Promise?a.push(w.then(k=>lB(k,u))):lB(w,u)}return a.length?Promise.all(a).then(()=>u):u}});function lB(r,i){r.issues.length&&i.issues.push(...r.issues),i.value.add(r.value)}const BB=H("$ZodEnum",(r,i)=>{HA.init(r,i);const u=Es(i.entries),E=new Set(u);r._zod.values=E,r._zod.pattern=new RegExp(`^(${u.filter(g=>ra.has(typeof g)).map(g=>typeof g=="string"?Br(g):g.toString()).join("|")})$`),r._zod.parse=(g,a)=>{const h=g.value;return E.has(h)||g.issues.push({code:"invalid_value",values:u,input:h,inst:r}),g}}),CB=H("$ZodLiteral",(r,i)=>{if(HA.init(r,i),i.values.length===0)throw new Error("Cannot create literal schema with no valid values");const u=new Set(i.values);r._zod.values=u,r._zod.pattern=new RegExp(`^(${i.values.map(E=>typeof E=="string"?Br(E):E?Br(E.toString()):String(E)).join("|")})$`),r._zod.parse=(E,g)=>{const a=E.value;return u.has(a)||E.issues.push({code:"invalid_value",values:i.values,input:a,inst:r}),E}}),QB=H("$ZodFile",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{const g=u.value;return g instanceof File||u.issues.push({expected:"file",code:"invalid_type",input:g,inst:r}),u}}),fB=H("$ZodTransform",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);const g=i.transform(u.value,u);if(E.async)return(g instanceof Promise?g:Promise.resolve(g)).then(h=>(u.value=h,u));if(g instanceof Promise)throw new en;return u.value=g,u}});function dB(r,i){return r.issues.length&&i===void 0?{issues:[],value:void 0}:r}const hB=H("$ZodOptional",(r,i)=>{HA.init(r,i),r._zod.optin="optional",r._zod.optout="optional",te(r._zod,"values",()=>i.innerType._zod.values?new Set([...i.innerType._zod.values,void 0]):void 0),te(r._zod,"pattern",()=>{const u=i.innerType._zod.pattern;return u?new RegExp(`^(${ea(u.source)})?$`):void 0}),r._zod.parse=(u,E)=>{if(i.innerType._zod.optin==="optional"){const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>dB(a,u.value)):dB(g,u.value)}return u.value===void 0?u:i.innerType._zod.run(u,E)}}),mB=H("$ZodNullable",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.innerType._zod.optin),te(r._zod,"optout",()=>i.innerType._zod.optout),te(r._zod,"pattern",()=>{const u=i.innerType._zod.pattern;return u?new RegExp(`^(${ea(u.source)}|null)$`):void 0}),te(r._zod,"values",()=>i.innerType._zod.values?new Set([...i.innerType._zod.values,null]):void 0),r._zod.parse=(u,E)=>u.value===null?u:i.innerType._zod.run(u,E)}),pB=H("$ZodDefault",(r,i)=>{HA.init(r,i),r._zod.optin="optional",te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);if(u.value===void 0)return u.value=i.defaultValue,u;const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>yB(a,i)):yB(g,i)}});function yB(r,i){return r.value===void 0&&(r.value=i.defaultValue),r}const bB=H("$ZodPrefault",(r,i)=>{HA.init(r,i),r._zod.optin="optional",te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>(E.direction==="backward"||u.value===void 0&&(u.value=i.defaultValue),i.innerType._zod.run(u,E))}),DB=H("$ZodNonOptional",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>{const u=i.innerType._zod.values;return u?new Set([...u].filter(E=>E!==void 0)):void 0}),r._zod.parse=(u,E)=>{const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>wB(a,r)):wB(g,r)}});function wB(r,i){return!r.issues.length&&r.value===void 0&&r.issues.push({code:"invalid_type",expected:"nonoptional",input:r.value,inst:i}),r}const kB=H("$ZodSuccess",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo("ZodSuccess");const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>(u.value=a.issues.length===0,u)):(u.value=g.issues.length===0,u)}}),_B=H("$ZodCatch",(r,i)=>{HA.init(r,i),te(r._zod,"optin",()=>i.innerType._zod.optin),te(r._zod,"optout",()=>i.innerType._zod.optout),te(r._zod,"values",()=>i.innerType._zod.values),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(a=>(u.value=a.value,a.issues.length&&(u.value=i.catchValue({...u,error:{issues:a.issues.map(h=>Gt(h,E,it()))},input:u.value}),u.issues=[]),u)):(u.value=g.value,g.issues.length&&(u.value=i.catchValue({...u,error:{issues:g.issues.map(a=>Gt(a,E,it()))},input:u.value}),u.issues=[]),u)}}),SB=H("$ZodNaN",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>((typeof u.value!="number"||!Number.isNaN(u.value))&&u.issues.push({input:u.value,inst:r,expected:"nan",code:"invalid_type"}),u)}),vB=H("$ZodPipe",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>i.in._zod.values),te(r._zod,"optin",()=>i.in._zod.optin),te(r._zod,"optout",()=>i.out._zod.optout),te(r._zod,"propValues",()=>i.in._zod.propValues),r._zod.parse=(u,E)=>{if(E.direction==="backward"){const a=i.out._zod.run(u,E);return a instanceof Promise?a.then(h=>sa(h,i.in,E)):sa(a,i.in,E)}const g=i.in._zod.run(u,E);return g instanceof Promise?g.then(a=>sa(a,i.out,E)):sa(g,i.out,E)}});function sa(r,i,u){return r.issues.length?(r.aborted=!0,r):i._zod.run({value:r.value,issues:r.issues},u)}const Ls=H("$ZodCodec",(r,i)=>{HA.init(r,i),te(r._zod,"values",()=>i.in._zod.values),te(r._zod,"optin",()=>i.in._zod.optin),te(r._zod,"optout",()=>i.out._zod.optout),te(r._zod,"propValues",()=>i.in._zod.propValues),r._zod.parse=(u,E)=>{if((E.direction||"forward")==="forward"){const a=i.in._zod.run(u,E);return a instanceof Promise?a.then(h=>ga(h,i,E)):ga(a,i,E)}else{const a=i.out._zod.run(u,E);return a instanceof Promise?a.then(h=>ga(h,i,E)):ga(a,i,E)}}});function ga(r,i,u){if(r.issues.length)return r.aborted=!0,r;if((u.direction||"forward")==="forward"){const g=i.transform(r.value,r);return g instanceof Promise?g.then(a=>ca(r,a,i.out,u)):ca(r,g,i.out,u)}else{const g=i.reverseTransform(r.value,r);return g instanceof Promise?g.then(a=>ca(r,a,i.in,u)):ca(r,g,i.in,u)}}function ca(r,i,u,E){return r.issues.length?(r.aborted=!0,r):u._zod.run({value:i,issues:r.issues},E)}const RB=H("$ZodReadonly",(r,i)=>{HA.init(r,i),te(r._zod,"propValues",()=>i.innerType._zod.propValues),te(r._zod,"values",()=>i.innerType._zod.values),te(r._zod,"optin",()=>i.innerType?._zod?.optin),te(r._zod,"optout",()=>i.innerType?._zod?.optout),r._zod.parse=(u,E)=>{if(E.direction==="backward")return i.innerType._zod.run(u,E);const g=i.innerType._zod.run(u,E);return g instanceof Promise?g.then(TB):TB(g)}});function TB(r){return r.value=Object.freeze(r.value),r}const FB=H("$ZodTemplateLiteral",(r,i)=>{HA.init(r,i);const u=[];for(const E of i.parts)if(typeof E=="object"&&E!==null){if(!E._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...E._zod.traits].shift()}`);const g=E._zod.pattern instanceof RegExp?E._zod.pattern.source:E._zod.pattern;if(!g)throw new Error(`Invalid template literal part: ${E._zod.traits}`);const a=g.startsWith("^")?1:0,h=g.endsWith("$")?g.length-1:g.length;u.push(g.slice(a,h))}else if(E===null||XI.has(typeof E))u.push(Br(`${E}`));else throw new Error(`Invalid template literal part: ${E}`);r._zod.pattern=new RegExp(`^${u.join("")}$`),r._zod.parse=(E,g)=>typeof E.value!="string"?(E.issues.push({input:E.value,inst:r,expected:"template_literal",code:"invalid_type"}),E):(r._zod.pattern.lastIndex=0,r._zod.pattern.test(E.value)||E.issues.push({input:E.value,inst:r,code:"invalid_format",format:i.format??"template_literal",pattern:r._zod.pattern.source}),E)}),MB=H("$ZodFunction",(r,i)=>(HA.init(r,i),r._def=i,r._zod.def=i,r.implement=u=>{if(typeof u!="function")throw new Error("implement() must be called with a function");return function(...E){const g=r._def.input?ds(r._def.input,E):E,a=Reflect.apply(u,this,g);return r._def.output?ds(r._def.output,a):a}},r.implementAsync=u=>{if(typeof u!="function")throw new Error("implementAsync() must be called with a function");return async function(...E){const g=r._def.input?await hs(r._def.input,E):E,a=await Reflect.apply(u,this,g);return r._def.output?await hs(r._def.output,a):a}},r._zod.parse=(u,E)=>typeof u.value!="function"?(u.issues.push({code:"invalid_type",expected:"function",input:u.value,inst:r}),u):(r._def.output&&r._def.output._zod.def.type==="promise"?u.value=r.implementAsync(u.value):u.value=r.implement(u.value),u),r.input=(...u)=>{const E=r.constructor;return Array.isArray(u[0])?new E({type:"function",input:new xs({type:"tuple",items:u[0],rest:u[1]}),output:r._def.output}):new E({type:"function",input:u[0],output:r._def.output})},r.output=u=>{const E=r.constructor;return new E({type:"function",input:r._def.input,output:u})},r)),OB=H("$ZodPromise",(r,i)=>{HA.init(r,i),r._zod.parse=(u,E)=>Promise.resolve(u.value).then(g=>i.innerType._zod.run({value:g,issues:[]},E))}),NB=H("$ZodLazy",(r,i)=>{HA.init(r,i),te(r._zod,"innerType",()=>i.getter()),te(r._zod,"pattern",()=>r._zod.innerType?._zod?.pattern),te(r._zod,"propValues",()=>r._zod.innerType?._zod?.propValues),te(r._zod,"optin",()=>r._zod.innerType?._zod?.optin??void 0),te(r._zod,"optout",()=>r._zod.innerType?._zod?.optout??void 0),r._zod.parse=(u,E)=>r._zod.innerType._zod.run(u,E)}),UB=H("$ZodCustom",(r,i)=>{we.init(r,i),HA.init(r,i),r._zod.parse=(u,E)=>u,r._zod.check=u=>{const E=u.value,g=i.fn(E);if(g instanceof Promise)return g.then(a=>GB(a,u,E,r));GB(g,u,E,r)}});function GB(r,i,u,E){if(!r){const g={code:"custom",input:u,inst:E,path:[...E._zod.def.path??[]],continue:!E._zod.def.abort};E._zod.def.params&&(g.params=E._zod.def.params),i.issues.push($n(g))}}const A4=()=>{const r={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"};return g=>{switch(g.code){case"invalid_type":return`مدخلات غير مقبولة: يفترض إدخال ${g.expected}، ولكن تم إدخال ${u(g.input)}`;case"invalid_value":return g.values.length===1?`مدخلات غير مقبولة: يفترض إدخال ${YA(g.values[0])}`:`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?` أكبر من اللازم: يفترض أن تكون ${g.origin??"القيمة"} ${a} ${g.maximum.toString()} ${h.unit??"عنصر"}`:`أكبر من اللازم: يفترض أن تكون ${g.origin??"القيمة"} ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`أصغر من اللازم: يفترض لـ ${g.origin} أن يكون ${a} ${g.minimum.toString()} ${h.unit}`:`أصغر من اللازم: يفترض لـ ${g.origin} أن يكون ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`نَص غير مقبول: يجب أن يبدأ بـ "${g.prefix}"`:a.format==="ends_with"?`نَص غير مقبول: يجب أن ينتهي بـ "${a.suffix}"`:a.format==="includes"?`نَص غير مقبول: يجب أن يتضمَّن "${a.includes}"`:a.format==="regex"?`نَص غير مقبول: يجب أن يطابق النمط ${a.pattern}`:`${E[a.format]??g.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${g.divisor}`;case"unrecognized_keys":return`معرف${g.keys.length>1?"ات":""} غريب${g.keys.length>1?"ة":""}: ${cA(g.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${g.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${g.origin}`;default:return"مدخل غير مقبول"}}};function e4(){return{localeError:A4()}}const t4=()=>{const r={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Yanlış dəyər: gözlənilən ${g.expected}, daxil olan ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Yanlış dəyər: gözlənilən ${YA(g.values[0])}`:`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Çox böyük: gözlənilən ${g.origin??"dəyər"} ${a}${g.maximum.toString()} ${h.unit??"element"}`:`Çox böyük: gözlənilən ${g.origin??"dəyər"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Çox kiçik: gözlənilən ${g.origin} ${a}${g.minimum.toString()} ${h.unit}`:`Çox kiçik: gözlənilən ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Yanlış mətn: "${a.prefix}" ilə başlamalıdır`:a.format==="ends_with"?`Yanlış mətn: "${a.suffix}" ilə bitməlidir`:a.format==="includes"?`Yanlış mətn: "${a.includes}" daxil olmalıdır`:a.format==="regex"?`Yanlış mətn: ${a.pattern} şablonuna uyğun olmalıdır`:`Yanlış ${E[a.format]??g.format}`}case"not_multiple_of":return`Yanlış ədəd: ${g.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${g.keys.length>1?"lar":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${g.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function r4(){return{localeError:t4()}}function xB(r,i,u,E){const g=Math.abs(r),a=g%10,h=g%100;return h>=11&&h<=19?E:a===1?i:a>=2&&a<=4?u:E}const n4=()=>{const r={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"лік";case"object":{if(Array.isArray(g))return"масіў";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"};return g=>{switch(g.code){case"invalid_type":return`Няправільны ўвод: чакаўся ${g.expected}, атрымана ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Няправільны ўвод: чакалася ${YA(g.values[0])}`:`Няправільны варыянт: чакаўся адзін з ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);if(h){const w=Number(g.maximum),k=xB(w,h.unit.one,h.unit.few,h.unit.many);return`Занадта вялікі: чакалася, што ${g.origin??"значэнне"} павінна ${h.verb} ${a}${g.maximum.toString()} ${k}`}return`Занадта вялікі: чакалася, што ${g.origin??"значэнне"} павінна быць ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);if(h){const w=Number(g.minimum),k=xB(w,h.unit.one,h.unit.few,h.unit.many);return`Занадта малы: чакалася, што ${g.origin} павінна ${h.verb} ${a}${g.minimum.toString()} ${k}`}return`Занадта малы: чакалася, што ${g.origin} павінна быць ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Няправільны радок: павінен пачынацца з "${a.prefix}"`:a.format==="ends_with"?`Няправільны радок: павінен заканчвацца на "${a.suffix}"`:a.format==="includes"?`Няправільны радок: павінен змяшчаць "${a.includes}"`:a.format==="regex"?`Няправільны радок: павінен адпавядаць шаблону ${a.pattern}`:`Няправільны ${E[a.format]??g.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${g.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${g.keys.length>1?"ключы":"ключ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${g.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${g.origin}`;default:return"Няправільны ўвод"}}};function i4(){return{localeError:n4()}}const o4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"число";case"object":{if(Array.isArray(r))return"масив";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},a4=()=>{const r={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"}};function i(E){return r[E]??null}const u={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",jwt:"JWT",template_literal:"вход"};return E=>{switch(E.code){case"invalid_type":return`Невалиден вход: очакван ${E.expected}, получен ${o4(E.input)}`;case"invalid_value":return E.values.length===1?`Невалиден вход: очакван ${YA(E.values[0])}`:`Невалидна опция: очаквано едно от ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Твърде голямо: очаква се ${E.origin??"стойност"} да съдържа ${g}${E.maximum.toString()} ${a.unit??"елемента"}`:`Твърде голямо: очаква се ${E.origin??"стойност"} да бъде ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Твърде малко: очаква се ${E.origin} да съдържа ${g}${E.minimum.toString()} ${a.unit}`:`Твърде малко: очаква се ${E.origin} да бъде ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;if(g.format==="starts_with")return`Невалиден низ: трябва да започва с "${g.prefix}"`;if(g.format==="ends_with")return`Невалиден низ: трябва да завършва с "${g.suffix}"`;if(g.format==="includes")return`Невалиден низ: трябва да включва "${g.includes}"`;if(g.format==="regex")return`Невалиден низ: трябва да съвпада с ${g.pattern}`;let a="Невалиден";return g.format==="emoji"&&(a="Невалидно"),g.format==="datetime"&&(a="Невалидно"),g.format==="date"&&(a="Невалидна"),g.format==="time"&&(a="Невалидно"),g.format==="duration"&&(a="Невалидна"),`${a} ${u[g.format]??E.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${E.divisor}`;case"unrecognized_keys":return`Неразпознат${E.keys.length>1?"и":""} ключ${E.keys.length>1?"ове":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${E.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${E.origin}`;default:return"Невалиден вход"}}};function s4(){return{localeError:a4()}}const g4=()=>{const r={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return g=>{switch(g.code){case"invalid_type":return`Tipus invàlid: s'esperava ${g.expected}, s'ha rebut ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Valor invàlid: s'esperava ${YA(g.values[0])}`:`Opció invàlida: s'esperava una de ${cA(g.values," o ")}`;case"too_big":{const a=g.inclusive?"com a màxim":"menys de",h=i(g.origin);return h?`Massa gran: s'esperava que ${g.origin??"el valor"} contingués ${a} ${g.maximum.toString()} ${h.unit??"elements"}`:`Massa gran: s'esperava que ${g.origin??"el valor"} fos ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"com a mínim":"més de",h=i(g.origin);return h?`Massa petit: s'esperava que ${g.origin} contingués ${a} ${g.minimum.toString()} ${h.unit}`:`Massa petit: s'esperava que ${g.origin} fos ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Format invàlid: ha de començar amb "${a.prefix}"`:a.format==="ends_with"?`Format invàlid: ha d'acabar amb "${a.suffix}"`:a.format==="includes"?`Format invàlid: ha d'incloure "${a.includes}"`:a.format==="regex"?`Format invàlid: ha de coincidir amb el patró ${a.pattern}`:`Format invàlid per a ${E[a.format]??g.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${g.divisor}`;case"unrecognized_keys":return`Clau${g.keys.length>1?"s":""} no reconeguda${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${g.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${g.origin}`;default:return"Entrada invàlida"}}};function c4(){return{localeError:g4()}}const u4=()=>{const r={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"číslo";case"string":return"řetězec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(g))return"pole";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"};return g=>{switch(g.code){case"invalid_type":return`Neplatný vstup: očekáváno ${g.expected}, obdrženo ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Neplatný vstup: očekáváno ${YA(g.values[0])}`:`Neplatná možnost: očekávána jedna z hodnot ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Hodnota je příliš velká: ${g.origin??"hodnota"} musí mít ${a}${g.maximum.toString()} ${h.unit??"prvků"}`:`Hodnota je příliš velká: ${g.origin??"hodnota"} musí být ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Hodnota je příliš malá: ${g.origin??"hodnota"} musí mít ${a}${g.minimum.toString()} ${h.unit??"prvků"}`:`Hodnota je příliš malá: ${g.origin??"hodnota"} musí být ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Neplatný řetězec: musí začínat na "${a.prefix}"`:a.format==="ends_with"?`Neplatný řetězec: musí končit na "${a.suffix}"`:a.format==="includes"?`Neplatný řetězec: musí obsahovat "${a.includes}"`:a.format==="regex"?`Neplatný řetězec: musí odpovídat vzoru ${a.pattern}`:`Neplatný formát ${E[a.format]??g.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${g.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${cA(g.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${g.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${g.origin}`;default:return"Neplatný vstup"}}};function I4(){return{localeError:u4()}}const E4=()=>{const r={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}},i={string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};function u(h){return r[h]??null}function E(h){return i[h]??h}const g=h=>{const w=typeof h;switch(w){case"number":return Number.isNaN(h)?"NaN":"tal";case"object":return Array.isArray(h)?"liste":h===null?"null":Object.getPrototypeOf(h)!==Object.prototype&&h.constructor?h.constructor.name:"objekt"}return w},a={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return h=>{switch(h.code){case"invalid_type":return`Ugyldigt input: forventede ${E(h.expected)}, fik ${E(g(h.input))}`;case"invalid_value":return h.values.length===1?`Ugyldig værdi: forventede ${YA(h.values[0])}`:`Ugyldigt valg: forventede en af følgende ${cA(h.values,"|")}`;case"too_big":{const w=h.inclusive?"<=":"<",k=u(h.origin),v=E(h.origin);return k?`For stor: forventede ${v??"value"} ${k.verb} ${w} ${h.maximum.toString()} ${k.unit??"elementer"}`:`For stor: forventede ${v??"value"} havde ${w} ${h.maximum.toString()}`}case"too_small":{const w=h.inclusive?">=":">",k=u(h.origin),v=E(h.origin);return k?`For lille: forventede ${v} ${k.verb} ${w} ${h.minimum.toString()} ${k.unit}`:`For lille: forventede ${v} havde ${w} ${h.minimum.toString()}`}case"invalid_format":{const w=h;return w.format==="starts_with"?`Ugyldig streng: skal starte med "${w.prefix}"`:w.format==="ends_with"?`Ugyldig streng: skal ende med "${w.suffix}"`:w.format==="includes"?`Ugyldig streng: skal indeholde "${w.includes}"`:w.format==="regex"?`Ugyldig streng: skal matche mønsteret ${w.pattern}`:`Ugyldig ${a[w.format]??h.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${h.divisor}`;case"unrecognized_keys":return`${h.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${cA(h.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${h.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${h.origin}`;default:return"Ugyldigt input"}}};function l4(){return{localeError:E4()}}const B4=()=>{const r={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"Zahl";case"object":{if(Array.isArray(g))return"Array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return g=>{switch(g.code){case"invalid_type":return`Ungültige Eingabe: erwartet ${g.expected}, erhalten ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ungültige Eingabe: erwartet ${YA(g.values[0])}`:`Ungültige Option: erwartet eine von ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Zu groß: erwartet, dass ${g.origin??"Wert"} ${a}${g.maximum.toString()} ${h.unit??"Elemente"} hat`:`Zu groß: erwartet, dass ${g.origin??"Wert"} ${a}${g.maximum.toString()} ist`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Zu klein: erwartet, dass ${g.origin} ${a}${g.minimum.toString()} ${h.unit} hat`:`Zu klein: erwartet, dass ${g.origin} ${a}${g.minimum.toString()} ist`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ungültiger String: muss mit "${a.prefix}" beginnen`:a.format==="ends_with"?`Ungültiger String: muss mit "${a.suffix}" enden`:a.format==="includes"?`Ungültiger String: muss "${a.includes}" enthalten`:a.format==="regex"?`Ungültiger String: muss dem Muster ${a.pattern} entsprechen`:`Ungültig: ${E[a.format]??g.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${g.divisor} sein`;case"unrecognized_keys":return`${g.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${g.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${g.origin}`;default:return"Ungültige Eingabe"}}};function C4(){return{localeError:B4()}}const Q4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"number";case"object":{if(Array.isArray(r))return"array";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},f4=()=>{const r={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function i(E){return r[E]??null}const u={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return E=>{switch(E.code){case"invalid_type":return`Invalid input: expected ${E.expected}, received ${Q4(E.input)}`;case"invalid_value":return E.values.length===1?`Invalid input: expected ${YA(E.values[0])}`:`Invalid option: expected one of ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Too big: expected ${E.origin??"value"} to have ${g}${E.maximum.toString()} ${a.unit??"elements"}`:`Too big: expected ${E.origin??"value"} to be ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Too small: expected ${E.origin} to have ${g}${E.minimum.toString()} ${a.unit}`:`Too small: expected ${E.origin} to be ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Invalid string: must start with "${g.prefix}"`:g.format==="ends_with"?`Invalid string: must end with "${g.suffix}"`:g.format==="includes"?`Invalid string: must include "${g.includes}"`:g.format==="regex"?`Invalid string: must match pattern ${g.pattern}`:`Invalid ${u[g.format]??E.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${E.divisor}`;case"unrecognized_keys":return`Unrecognized key${E.keys.length>1?"s":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Invalid key in ${E.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${E.origin}`;default:return"Invalid input"}}};function LB(){return{localeError:f4()}}const d4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"nombro";case"object":{if(Array.isArray(r))return"tabelo";if(r===null)return"senvalora";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},h4=()=>{const r={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function i(E){return r[E]??null}const u={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return E=>{switch(E.code){case"invalid_type":return`Nevalida enigo: atendiĝis ${E.expected}, riceviĝis ${d4(E.input)}`;case"invalid_value":return E.values.length===1?`Nevalida enigo: atendiĝis ${YA(E.values[0])}`:`Nevalida opcio: atendiĝis unu el ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Tro granda: atendiĝis ke ${E.origin??"valoro"} havu ${g}${E.maximum.toString()} ${a.unit??"elementojn"}`:`Tro granda: atendiĝis ke ${E.origin??"valoro"} havu ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Tro malgranda: atendiĝis ke ${E.origin} havu ${g}${E.minimum.toString()} ${a.unit}`:`Tro malgranda: atendiĝis ke ${E.origin} estu ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Nevalida karaktraro: devas komenciĝi per "${g.prefix}"`:g.format==="ends_with"?`Nevalida karaktraro: devas finiĝi per "${g.suffix}"`:g.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${g.includes}"`:g.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${g.pattern}`:`Nevalida ${u[g.format]??E.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${E.divisor}`;case"unrecognized_keys":return`Nekonata${E.keys.length>1?"j":""} ŝlosilo${E.keys.length>1?"j":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${E.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${E.origin}`;default:return"Nevalida enigo"}}};function m4(){return{localeError:h4()}}const p4=()=>{const r={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}},i={string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};function u(h){return r[h]??null}function E(h){return i[h]??h}const g=h=>{const w=typeof h;switch(w){case"number":return Number.isNaN(h)?"NaN":"number";case"object":return Array.isArray(h)?"array":h===null?"null":Object.getPrototypeOf(h)!==Object.prototype?h.constructor.name:"object"}return w},a={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return h=>{switch(h.code){case"invalid_type":return`Entrada inválida: se esperaba ${E(h.expected)}, recibido ${E(g(h.input))}`;case"invalid_value":return h.values.length===1?`Entrada inválida: se esperaba ${YA(h.values[0])}`:`Opción inválida: se esperaba una de ${cA(h.values,"|")}`;case"too_big":{const w=h.inclusive?"<=":"<",k=u(h.origin),v=E(h.origin);return k?`Demasiado grande: se esperaba que ${v??"valor"} tuviera ${w}${h.maximum.toString()} ${k.unit??"elementos"}`:`Demasiado grande: se esperaba que ${v??"valor"} fuera ${w}${h.maximum.toString()}`}case"too_small":{const w=h.inclusive?">=":">",k=u(h.origin),v=E(h.origin);return k?`Demasiado pequeño: se esperaba que ${v} tuviera ${w}${h.minimum.toString()} ${k.unit}`:`Demasiado pequeño: se esperaba que ${v} fuera ${w}${h.minimum.toString()}`}case"invalid_format":{const w=h;return w.format==="starts_with"?`Cadena inválida: debe comenzar con "${w.prefix}"`:w.format==="ends_with"?`Cadena inválida: debe terminar en "${w.suffix}"`:w.format==="includes"?`Cadena inválida: debe incluir "${w.includes}"`:w.format==="regex"?`Cadena inválida: debe coincidir con el patrón ${w.pattern}`:`Inválido ${a[w.format]??h.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${h.divisor}`;case"unrecognized_keys":return`Llave${h.keys.length>1?"s":""} desconocida${h.keys.length>1?"s":""}: ${cA(h.keys,", ")}`;case"invalid_key":return`Llave inválida en ${E(h.origin)}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${E(h.origin)}`;default:return"Entrada inválida"}}};function y4(){return{localeError:p4()}}const b4=()=>{const r={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"عدد";case"object":{if(Array.isArray(g))return"آرایه";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"};return g=>{switch(g.code){case"invalid_type":return`ورودی نامعتبر: می‌بایست ${g.expected} می‌بود، ${u(g.input)} دریافت شد`;case"invalid_value":return g.values.length===1?`ورودی نامعتبر: می‌بایست ${YA(g.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${cA(g.values,"|")} می‌بود`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`خیلی بزرگ: ${g.origin??"مقدار"} باید ${a}${g.maximum.toString()} ${h.unit??"عنصر"} باشد`:`خیلی بزرگ: ${g.origin??"مقدار"} باید ${a}${g.maximum.toString()} باشد`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`خیلی کوچک: ${g.origin} باید ${a}${g.minimum.toString()} ${h.unit} باشد`:`خیلی کوچک: ${g.origin} باید ${a}${g.minimum.toString()} باشد`}case"invalid_format":{const a=g;return a.format==="starts_with"?`رشته نامعتبر: باید با "${a.prefix}" شروع شود`:a.format==="ends_with"?`رشته نامعتبر: باید با "${a.suffix}" تمام شود`:a.format==="includes"?`رشته نامعتبر: باید شامل "${a.includes}" باشد`:a.format==="regex"?`رشته نامعتبر: باید با الگوی ${a.pattern} مطابقت داشته باشد`:`${E[a.format]??g.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${g.divisor} باشد`;case"unrecognized_keys":return`کلید${g.keys.length>1?"های":""} ناشناس: ${cA(g.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${g.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${g.origin}`;default:return"ورودی نامعتبر"}}};function D4(){return{localeError:b4()}}const w4=()=>{const r={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return g=>{switch(g.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${g.expected}, oli ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Virheellinen syöte: täytyy olla ${YA(g.values[0])}`:`Virheellinen valinta: täytyy olla yksi seuraavista: ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Liian suuri: ${h.subject} täytyy olla ${a}${g.maximum.toString()} ${h.unit}`.trim():`Liian suuri: arvon täytyy olla ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Liian pieni: ${h.subject} täytyy olla ${a}${g.minimum.toString()} ${h.unit}`.trim():`Liian pieni: arvon täytyy olla ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Virheellinen syöte: täytyy alkaa "${a.prefix}"`:a.format==="ends_with"?`Virheellinen syöte: täytyy loppua "${a.suffix}"`:a.format==="includes"?`Virheellinen syöte: täytyy sisältää "${a.includes}"`:a.format==="regex"?`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${a.pattern}`:`Virheellinen ${E[a.format]??g.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${g.divisor} monikerta`;case"unrecognized_keys":return`${g.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${cA(g.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function k4(){return{localeError:w4()}}const _4=()=>{const r={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nombre";case"object":{if(Array.isArray(g))return"tableau";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"};return g=>{switch(g.code){case"invalid_type":return`Entrée invalide : ${g.expected} attendu, ${u(g.input)} reçu`;case"invalid_value":return g.values.length===1?`Entrée invalide : ${YA(g.values[0])} attendu`:`Option invalide : une valeur parmi ${cA(g.values,"|")} attendue`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Trop grand : ${g.origin??"valeur"} doit ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"élément(s)"}`:`Trop grand : ${g.origin??"valeur"} doit être ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Trop petit : ${g.origin} doit ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Trop petit : ${g.origin} doit être ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chaîne invalide : doit commencer par "${a.prefix}"`:a.format==="ends_with"?`Chaîne invalide : doit se terminer par "${a.suffix}"`:a.format==="includes"?`Chaîne invalide : doit inclure "${a.includes}"`:a.format==="regex"?`Chaîne invalide : doit correspondre au modèle ${a.pattern}`:`${E[a.format]??g.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${g.divisor}`;case"unrecognized_keys":return`Clé${g.keys.length>1?"s":""} non reconnue${g.keys.length>1?"s":""} : ${cA(g.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${g.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${g.origin}`;default:return"Entrée invalide"}}};function S4(){return{localeError:_4()}}const v4=()=>{const r={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"};return g=>{switch(g.code){case"invalid_type":return`Entrée invalide : attendu ${g.expected}, reçu ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Entrée invalide : attendu ${YA(g.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"≤":"<",h=i(g.origin);return h?`Trop grand : attendu que ${g.origin??"la valeur"} ait ${a}${g.maximum.toString()} ${h.unit}`:`Trop grand : attendu que ${g.origin??"la valeur"} soit ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"≥":">",h=i(g.origin);return h?`Trop petit : attendu que ${g.origin} ait ${a}${g.minimum.toString()} ${h.unit}`:`Trop petit : attendu que ${g.origin} soit ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chaîne invalide : doit commencer par "${a.prefix}"`:a.format==="ends_with"?`Chaîne invalide : doit se terminer par "${a.suffix}"`:a.format==="includes"?`Chaîne invalide : doit inclure "${a.includes}"`:a.format==="regex"?`Chaîne invalide : doit correspondre au motif ${a.pattern}`:`${E[a.format]??g.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${g.divisor}`;case"unrecognized_keys":return`Clé${g.keys.length>1?"s":""} non reconnue${g.keys.length>1?"s":""} : ${cA(g.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${g.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${g.origin}`;default:return"Entrée invalide"}}};function R4(){return{localeError:v4()}}const T4=()=>{const r={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}},i={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}},u=v=>v?r[v]:void 0,E=v=>{const F=u(v);return F?F.label:v??r.unknown.label},g=v=>`ה${E(v)}`,a=v=>(u(v)?.gender??"m")==="f"?"צריכה להיות":"צריך להיות",h=v=>v?i[v]??null:null,w=v=>{const F=typeof v;switch(F){case"number":return Number.isNaN(v)?"NaN":"number";case"object":return Array.isArray(v)?"array":v===null?"null":Object.getPrototypeOf(v)!==Object.prototype&&v.constructor?v.constructor.name:"object";default:return F}},k={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}};return v=>{switch(v.code){case"invalid_type":{const F=v.expected,x=E(F),$=w(v.input),j=r[$]?.label??$;return`קלט לא תקין: צריך להיות ${x}, התקבל ${j}`}case"invalid_value":{if(v.values.length===1)return`ערך לא תקין: הערך חייב להיות ${YA(v.values[0])}`;const F=v.values.map(j=>YA(j));if(v.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${F[0]} או ${F[1]}`;const x=F[F.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${F.slice(0,-1).join(", ")} או ${x}`}case"too_big":{const F=h(v.origin),x=g(v.origin??"value");if(v.origin==="string")return`${F?.longLabel??"ארוך"} מדי: ${x} צריכה להכיל ${v.maximum.toString()} ${F?.unit??""} ${v.inclusive?"או פחות":"לכל היותר"}`.trim();if(v.origin==="number"){const P=v.inclusive?`קטן או שווה ל-${v.maximum}`:`קטן מ-${v.maximum}`;return`גדול מדי: ${x} צריך להיות ${P}`}if(v.origin==="array"||v.origin==="set"){const P=v.origin==="set"?"צריכה":"צריך",rA=v.inclusive?`${v.maximum} ${F?.unit??""} או פחות`:`פחות מ-${v.maximum} ${F?.unit??""}`;return`גדול מדי: ${x} ${P} להכיל ${rA}`.trim()}const $=v.inclusive?"<=":"<",j=a(v.origin??"value");return F?.unit?`${F.longLabel} מדי: ${x} ${j} ${$}${v.maximum.toString()} ${F.unit}`:`${F?.longLabel??"גדול"} מדי: ${x} ${j} ${$}${v.maximum.toString()}`}case"too_small":{const F=h(v.origin),x=g(v.origin??"value");if(v.origin==="string")return`${F?.shortLabel??"קצר"} מדי: ${x} צריכה להכיל ${v.minimum.toString()} ${F?.unit??""} ${v.inclusive?"או יותר":"לפחות"}`.trim();if(v.origin==="number"){const P=v.inclusive?`גדול או שווה ל-${v.minimum}`:`גדול מ-${v.minimum}`;return`קטן מדי: ${x} צריך להיות ${P}`}if(v.origin==="array"||v.origin==="set"){const P=v.origin==="set"?"צריכה":"צריך";if(v.minimum===1&&v.inclusive){const iA=(v.origin==="set","לפחות פריט אחד");return`קטן מדי: ${x} ${P} להכיל ${iA}`}const rA=v.inclusive?`${v.minimum} ${F?.unit??""} או יותר`:`יותר מ-${v.minimum} ${F?.unit??""}`;return`קטן מדי: ${x} ${P} להכיל ${rA}`.trim()}const $=v.inclusive?">=":">",j=a(v.origin??"value");return F?.unit?`${F.shortLabel} מדי: ${x} ${j} ${$}${v.minimum.toString()} ${F.unit}`:`${F?.shortLabel??"קטן"} מדי: ${x} ${j} ${$}${v.minimum.toString()}`}case"invalid_format":{const F=v;if(F.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${F.prefix}"`;if(F.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${F.suffix}"`;if(F.format==="includes")return`המחרוזת חייבת לכלול "${F.includes}"`;if(F.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${F.pattern}`;const x=k[F.format],$=x?.label??F.format,P=(x?.gender??"m")==="f"?"תקינה":"תקין";return`${$} לא ${P}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${v.divisor}`;case"unrecognized_keys":return`מפתח${v.keys.length>1?"ות":""} לא מזוה${v.keys.length>1?"ים":"ה"}: ${cA(v.keys,", ")}`;case"invalid_key":return"שדה לא תקין באובייקט";case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${g(v.origin??"array")}`;default:return"קלט לא תקין"}}};function F4(){return{localeError:T4()}}const M4=()=>{const r={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"szám";case"object":{if(Array.isArray(g))return"tömb";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"};return g=>{switch(g.code){case"invalid_type":return`Érvénytelen bemenet: a várt érték ${g.expected}, a kapott érték ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Érvénytelen bemenet: a várt érték ${YA(g.values[0])}`:`Érvénytelen opció: valamelyik érték várt ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Túl nagy: ${g.origin??"érték"} mérete túl nagy ${a}${g.maximum.toString()} ${h.unit??"elem"}`:`Túl nagy: a bemeneti érték ${g.origin??"érték"} túl nagy: ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Túl kicsi: a bemeneti érték ${g.origin} mérete túl kicsi ${a}${g.minimum.toString()} ${h.unit}`:`Túl kicsi: a bemeneti érték ${g.origin} túl kicsi ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Érvénytelen string: "${a.prefix}" értékkel kell kezdődnie`:a.format==="ends_with"?`Érvénytelen string: "${a.suffix}" értékkel kell végződnie`:a.format==="includes"?`Érvénytelen string: "${a.includes}" értéket kell tartalmaznia`:a.format==="regex"?`Érvénytelen string: ${a.pattern} mintának kell megfelelnie`:`Érvénytelen ${E[a.format]??g.format}`}case"not_multiple_of":return`Érvénytelen szám: ${g.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${g.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${g.origin}`;default:return"Érvénytelen bemenet"}}};function O4(){return{localeError:M4()}}const N4=()=>{const r={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input tidak valid: diharapkan ${g.expected}, diterima ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input tidak valid: diharapkan ${YA(g.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Terlalu besar: diharapkan ${g.origin??"value"} memiliki ${a}${g.maximum.toString()} ${h.unit??"elemen"}`:`Terlalu besar: diharapkan ${g.origin??"value"} menjadi ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Terlalu kecil: diharapkan ${g.origin} memiliki ${a}${g.minimum.toString()} ${h.unit}`:`Terlalu kecil: diharapkan ${g.origin} menjadi ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`String tidak valid: harus dimulai dengan "${a.prefix}"`:a.format==="ends_with"?`String tidak valid: harus berakhir dengan "${a.suffix}"`:a.format==="includes"?`String tidak valid: harus menyertakan "${a.includes}"`:a.format==="regex"?`String tidak valid: harus sesuai pola ${a.pattern}`:`${E[a.format]??g.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${g.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${g.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${g.origin}`;default:return"Input tidak valid"}}};function U4(){return{localeError:N4()}}const G4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"númer";case"object":{if(Array.isArray(r))return"fylki";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},x4=()=>{const r={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"}};function i(E){return r[E]??null}const u={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",jwt:"JWT",template_literal:"gildi"};return E=>{switch(E.code){case"invalid_type":return`Rangt gildi: Þú slóst inn ${G4(E.input)} þar sem á að vera ${E.expected}`;case"invalid_value":return E.values.length===1?`Rangt gildi: gert ráð fyrir ${YA(E.values[0])}`:`Ógilt val: má vera eitt af eftirfarandi ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Of stórt: gert er ráð fyrir að ${E.origin??"gildi"} hafi ${g}${E.maximum.toString()} ${a.unit??"hluti"}`:`Of stórt: gert er ráð fyrir að ${E.origin??"gildi"} sé ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Of lítið: gert er ráð fyrir að ${E.origin} hafi ${g}${E.minimum.toString()} ${a.unit}`:`Of lítið: gert er ráð fyrir að ${E.origin} sé ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Ógildur strengur: verður að byrja á "${g.prefix}"`:g.format==="ends_with"?`Ógildur strengur: verður að enda á "${g.suffix}"`:g.format==="includes"?`Ógildur strengur: verður að innihalda "${g.includes}"`:g.format==="regex"?`Ógildur strengur: verður að fylgja mynstri ${g.pattern}`:`Rangt ${u[g.format]??E.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${E.divisor}`;case"unrecognized_keys":return`Óþekkt ${E.keys.length>1?"ir lyklar":"ur lykill"}: ${cA(E.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${E.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${E.origin}`;default:return"Rangt gildi"}}};function L4(){return{localeError:x4()}}const P4=()=>{const r={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"numero";case"object":{if(Array.isArray(g))return"vettore";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input non valido: atteso ${g.expected}, ricevuto ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input non valido: atteso ${YA(g.values[0])}`:`Opzione non valida: atteso uno tra ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Troppo grande: ${g.origin??"valore"} deve avere ${a}${g.maximum.toString()} ${h.unit??"elementi"}`:`Troppo grande: ${g.origin??"valore"} deve essere ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Troppo piccolo: ${g.origin} deve avere ${a}${g.minimum.toString()} ${h.unit}`:`Troppo piccolo: ${g.origin} deve essere ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Stringa non valida: deve iniziare con "${a.prefix}"`:a.format==="ends_with"?`Stringa non valida: deve terminare con "${a.suffix}"`:a.format==="includes"?`Stringa non valida: deve includere "${a.includes}"`:a.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${a.pattern}`:`Invalid ${E[a.format]??g.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${g.divisor}`;case"unrecognized_keys":return`Chiav${g.keys.length>1?"i":"e"} non riconosciut${g.keys.length>1?"e":"a"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${g.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${g.origin}`;default:return"Input non valido"}}};function Y4(){return{localeError:P4()}}const j4=()=>{const r={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"数値";case"object":{if(Array.isArray(g))return"配列";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"};return g=>{switch(g.code){case"invalid_type":return`無効な入力: ${g.expected}が期待されましたが、${u(g.input)}が入力されました`;case"invalid_value":return g.values.length===1?`無効な入力: ${YA(g.values[0])}が期待されました`:`無効な選択: ${cA(g.values,"、")}のいずれかである必要があります`;case"too_big":{const a=g.inclusive?"以下である":"より小さい",h=i(g.origin);return h?`大きすぎる値: ${g.origin??"値"}は${g.maximum.toString()}${h.unit??"要素"}${a}必要があります`:`大きすぎる値: ${g.origin??"値"}は${g.maximum.toString()}${a}必要があります`}case"too_small":{const a=g.inclusive?"以上である":"より大きい",h=i(g.origin);return h?`小さすぎる値: ${g.origin}は${g.minimum.toString()}${h.unit}${a}必要があります`:`小さすぎる値: ${g.origin}は${g.minimum.toString()}${a}必要があります`}case"invalid_format":{const a=g;return a.format==="starts_with"?`無効な文字列: "${a.prefix}"で始まる必要があります`:a.format==="ends_with"?`無効な文字列: "${a.suffix}"で終わる必要があります`:a.format==="includes"?`無効な文字列: "${a.includes}"を含む必要があります`:a.format==="regex"?`無効な文字列: パターン${a.pattern}に一致する必要があります`:`無効な${E[a.format]??g.format}`}case"not_multiple_of":return`無効な数値: ${g.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${g.keys.length>1?"群":""}: ${cA(g.keys,"、")}`;case"invalid_key":return`${g.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${g.origin}内の無効な値`;default:return"無効な入力"}}};function J4(){return{localeError:j4()}}const Z4=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"რიცხვი";case"object":{if(Array.isArray(r))return"მასივი";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return{string:"სტრინგი",boolean:"ბულეანი",undefined:"undefined",bigint:"bigint",symbol:"symbol",function:"ფუნქცია"}[i]??i},H4=()=>{const r={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function i(E){return r[E]??null}const u={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული სტრინგი",base64url:"base64url-კოდირებული სტრინგი",json_string:"JSON სტრინგი",e164:"E.164 ნომერი",jwt:"JWT",template_literal:"შეყვანა"};return E=>{switch(E.code){case"invalid_type":return`არასწორი შეყვანა: მოსალოდნელი ${E.expected}, მიღებული ${Z4(E.input)}`;case"invalid_value":return E.values.length===1?`არასწორი შეყვანა: მოსალოდნელი ${YA(E.values[0])}`:`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${cA(E.values,"|")}-დან`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`ზედმეტად დიდი: მოსალოდნელი ${E.origin??"მნიშვნელობა"} ${a.verb} ${g}${E.maximum.toString()} ${a.unit}`:`ზედმეტად დიდი: მოსალოდნელი ${E.origin??"მნიშვნელობა"} იყოს ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`ზედმეტად პატარა: მოსალოდნელი ${E.origin} ${a.verb} ${g}${E.minimum.toString()} ${a.unit}`:`ზედმეტად პატარა: მოსალოდნელი ${E.origin} იყოს ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`არასწორი სტრინგი: უნდა იწყებოდეს "${g.prefix}"-ით`:g.format==="ends_with"?`არასწორი სტრინგი: უნდა მთავრდებოდეს "${g.suffix}"-ით`:g.format==="includes"?`არასწორი სტრინგი: უნდა შეიცავდეს "${g.includes}"-ს`:g.format==="regex"?`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${g.pattern}`:`არასწორი ${u[g.format]??E.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${E.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${E.keys.length>1?"ები":"ი"}: ${cA(E.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${E.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${E.origin}-ში`;default:return"არასწორი შეყვანა"}}};function $4(){return{localeError:H4()}}const X4=()=>{const r={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"មិនមែនជាលេខ (NaN)":"លេខ";case"object":{if(Array.isArray(g))return"អារេ (Array)";if(g===null)return"គ្មានតម្លៃ (null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"};return g=>{switch(g.code){case"invalid_type":return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${g.expected} ប៉ុន្តែទទួលបាន ${u(g.input)}`;case"invalid_value":return g.values.length===1?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${YA(g.values[0])}`:`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`ធំពេក៖ ត្រូវការ ${g.origin??"តម្លៃ"} ${a} ${g.maximum.toString()} ${h.unit??"ធាតុ"}`:`ធំពេក៖ ត្រូវការ ${g.origin??"តម្លៃ"} ${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`តូចពេក៖ ត្រូវការ ${g.origin} ${a} ${g.minimum.toString()} ${h.unit}`:`តូចពេក៖ ត្រូវការ ${g.origin} ${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${a.prefix}"`:a.format==="ends_with"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${a.suffix}"`:a.format==="includes"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${a.includes}"`:a.format==="regex"?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${a.pattern}`:`មិនត្រឹមត្រូវ៖ ${E[a.format]??g.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${g.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${cA(g.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${g.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${g.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function PB(){return{localeError:X4()}}function z4(){return PB()}const K4=()=>{const r={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"};return g=>{switch(g.code){case"invalid_type":return`잘못된 입력: 예상 타입은 ${g.expected}, 받은 타입은 ${u(g.input)}입니다`;case"invalid_value":return g.values.length===1?`잘못된 입력: 값은 ${YA(g.values[0])} 이어야 합니다`:`잘못된 옵션: ${cA(g.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{const a=g.inclusive?"이하":"미만",h=a==="미만"?"이어야 합니다":"여야 합니다",w=i(g.origin),k=w?.unit??"요소";return w?`${g.origin??"값"}이 너무 큽니다: ${g.maximum.toString()}${k} ${a}${h}`:`${g.origin??"값"}이 너무 큽니다: ${g.maximum.toString()} ${a}${h}`}case"too_small":{const a=g.inclusive?"이상":"초과",h=a==="이상"?"이어야 합니다":"여야 합니다",w=i(g.origin),k=w?.unit??"요소";return w?`${g.origin??"값"}이 너무 작습니다: ${g.minimum.toString()}${k} ${a}${h}`:`${g.origin??"값"}이 너무 작습니다: ${g.minimum.toString()} ${a}${h}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`잘못된 문자열: "${a.prefix}"(으)로 시작해야 합니다`:a.format==="ends_with"?`잘못된 문자열: "${a.suffix}"(으)로 끝나야 합니다`:a.format==="includes"?`잘못된 문자열: "${a.includes}"을(를) 포함해야 합니다`:a.format==="regex"?`잘못된 문자열: 정규식 ${a.pattern} 패턴과 일치해야 합니다`:`잘못된 ${E[a.format]??g.format}`}case"not_multiple_of":return`잘못된 숫자: ${g.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${cA(g.keys,", ")}`;case"invalid_key":return`잘못된 키: ${g.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${g.origin}`;default:return"잘못된 입력"}}};function W4(){return{localeError:K4()}}const q4=r=>Wi(typeof r,r),Wi=(r,i=void 0)=>{switch(r){case"number":return Number.isNaN(i)?"NaN":"skaičius";case"bigint":return"sveikasis skaičius";case"string":return"eilutė";case"boolean":return"loginė reikšmė";case"undefined":case"void":return"neapibrėžta reikšmė";case"function":return"funkcija";case"symbol":return"simbolis";case"object":return i===void 0?"nežinomas objektas":i===null?"nulinė reikšmė":Array.isArray(i)?"masyvas":Object.getPrototypeOf(i)!==Object.prototype&&i.constructor?i.constructor.name:"objektas";case"null":return"nulinė reikšmė"}return r},qi=r=>r.charAt(0).toUpperCase()+r.slice(1);function YB(r){const i=Math.abs(r),u=i%10,E=i%100;return E>=11&&E<=19||u===0?"many":u===1?"one":"few"}const V4=()=>{const r={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function i(E,g,a,h){const w=r[E]??null;return w===null?w:{unit:w.unit[g],verb:w.verb[h][a?"inclusive":"notInclusive"]}}const u={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",jwt:"JWT",template_literal:"įvestis"};return E=>{switch(E.code){case"invalid_type":return`Gautas tipas ${q4(E.input)}, o tikėtasi - ${Wi(E.expected)}`;case"invalid_value":return E.values.length===1?`Privalo būti ${YA(E.values[0])}`:`Privalo būti vienas iš ${cA(E.values,"|")} pasirinkimų`;case"too_big":{const g=Wi(E.origin),a=i(E.origin,YB(Number(E.maximum)),E.inclusive??!1,"smaller");if(a?.verb)return`${qi(g??E.origin??"reikšmė")} ${a.verb} ${E.maximum.toString()} ${a.unit??"elementų"}`;const h=E.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${qi(g??E.origin??"reikšmė")} turi būti ${h} ${E.maximum.toString()} ${a?.unit}`}case"too_small":{const g=Wi(E.origin),a=i(E.origin,YB(Number(E.minimum)),E.inclusive??!1,"bigger");if(a?.verb)return`${qi(g??E.origin??"reikšmė")} ${a.verb} ${E.minimum.toString()} ${a.unit??"elementų"}`;const h=E.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${qi(g??E.origin??"reikšmė")} turi būti ${h} ${E.minimum.toString()} ${a?.unit}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Eilutė privalo prasidėti "${g.prefix}"`:g.format==="ends_with"?`Eilutė privalo pasibaigti "${g.suffix}"`:g.format==="includes"?`Eilutė privalo įtraukti "${g.includes}"`:g.format==="regex"?`Eilutė privalo atitikti ${g.pattern}`:`Neteisingas ${u[g.format]??E.format}`}case"not_multiple_of":return`Skaičius privalo būti ${E.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${E.keys.length>1?"i":"as"} rakt${E.keys.length>1?"ai":"as"}: ${cA(E.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{const g=Wi(E.origin);return`${qi(g??E.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function Ay(){return{localeError:V4()}}const ey=()=>{const r={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"број";case"object":{if(Array.isArray(g))return"низа";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"};return g=>{switch(g.code){case"invalid_type":return`Грешен внес: се очекува ${g.expected}, примено ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Invalid input: expected ${YA(g.values[0])}`:`Грешана опција: се очекува една ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Премногу голем: се очекува ${g.origin??"вредноста"} да има ${a}${g.maximum.toString()} ${h.unit??"елементи"}`:`Премногу голем: се очекува ${g.origin??"вредноста"} да биде ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Премногу мал: се очекува ${g.origin} да има ${a}${g.minimum.toString()} ${h.unit}`:`Премногу мал: се очекува ${g.origin} да биде ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неважечка низа: мора да започнува со "${a.prefix}"`:a.format==="ends_with"?`Неважечка низа: мора да завршува со "${a.suffix}"`:a.format==="includes"?`Неважечка низа: мора да вклучува "${a.includes}"`:a.format==="regex"?`Неважечка низа: мора да одгоара на патернот ${a.pattern}`:`Invalid ${E[a.format]??g.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${g.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${g.origin}`;default:return"Грешен внес"}}};function ty(){return{localeError:ey()}}const ry=()=>{const r={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nombor";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Input tidak sah: dijangka ${g.expected}, diterima ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Input tidak sah: dijangka ${YA(g.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Terlalu besar: dijangka ${g.origin??"nilai"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"elemen"}`:`Terlalu besar: dijangka ${g.origin??"nilai"} adalah ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Terlalu kecil: dijangka ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Terlalu kecil: dijangka ${g.origin} adalah ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`String tidak sah: mesti bermula dengan "${a.prefix}"`:a.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${a.suffix}"`:a.format==="includes"?`String tidak sah: mesti mengandungi "${a.includes}"`:a.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${a.pattern}`:`${E[a.format]??g.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${g.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${cA(g.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${g.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${g.origin}`;default:return"Input tidak sah"}}};function ny(){return{localeError:ry()}}const iy=()=>{const r={string:{unit:"tekens",verb:"te hebben"},file:{unit:"bytes",verb:"te hebben"},array:{unit:"elementen",verb:"te hebben"},set:{unit:"elementen",verb:"te hebben"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"getal";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return g=>{switch(g.code){case"invalid_type":return`Ongeldige invoer: verwacht ${g.expected}, ontving ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ongeldige invoer: verwacht ${YA(g.values[0])}`:`Ongeldige optie: verwacht één van ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Te groot: verwacht dat ${g.origin??"waarde"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"elementen"}`:`Te groot: verwacht dat ${g.origin??"waarde"} ${a}${g.maximum.toString()} is`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Te klein: verwacht dat ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Te klein: verwacht dat ${g.origin} ${a}${g.minimum.toString()} is`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ongeldige tekst: moet met "${a.prefix}" beginnen`:a.format==="ends_with"?`Ongeldige tekst: moet op "${a.suffix}" eindigen`:a.format==="includes"?`Ongeldige tekst: moet "${a.includes}" bevatten`:a.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${a.pattern}`:`Ongeldig: ${E[a.format]??g.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${g.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${g.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${g.origin}`;default:return"Ongeldige invoer"}}};function oy(){return{localeError:iy()}}const ay=()=>{const r={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"tall";case"object":{if(Array.isArray(g))return"liste";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`Ugyldig input: forventet ${g.expected}, fikk ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ugyldig verdi: forventet ${YA(g.values[0])}`:`Ugyldig valg: forventet en av ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`For stor(t): forventet ${g.origin??"value"} til å ha ${a}${g.maximum.toString()} ${h.unit??"elementer"}`:`For stor(t): forventet ${g.origin??"value"} til å ha ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`For lite(n): forventet ${g.origin} til å ha ${a}${g.minimum.toString()} ${h.unit}`:`For lite(n): forventet ${g.origin} til å ha ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ugyldig streng: må starte med "${a.prefix}"`:a.format==="ends_with"?`Ugyldig streng: må ende med "${a.suffix}"`:a.format==="includes"?`Ugyldig streng: må inneholde "${a.includes}"`:a.format==="regex"?`Ugyldig streng: må matche mønsteret ${a.pattern}`:`Ugyldig ${E[a.format]??g.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${g.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${g.origin}`;default:return"Ugyldig input"}}};function sy(){return{localeError:ay()}}const gy=()=>{const r={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"numara";case"object":{if(Array.isArray(g))return"saf";if(g===null)return"gayb";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"};return g=>{switch(g.code){case"invalid_type":return`Fâsit giren: umulan ${g.expected}, alınan ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Fâsit giren: umulan ${YA(g.values[0])}`:`Fâsit tercih: mûteberler ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Fazla büyük: ${g.origin??"value"}, ${a}${g.maximum.toString()} ${h.unit??"elements"} sahip olmalıydı.`:`Fazla büyük: ${g.origin??"value"}, ${a}${g.maximum.toString()} olmalıydı.`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Fazla küçük: ${g.origin}, ${a}${g.minimum.toString()} ${h.unit} sahip olmalıydı.`:`Fazla küçük: ${g.origin}, ${a}${g.minimum.toString()} olmalıydı.`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Fâsit metin: "${a.prefix}" ile başlamalı.`:a.format==="ends_with"?`Fâsit metin: "${a.suffix}" ile bitmeli.`:a.format==="includes"?`Fâsit metin: "${a.includes}" ihtivâ etmeli.`:a.format==="regex"?`Fâsit metin: ${a.pattern} nakşına uymalı.`:`Fâsit ${E[a.format]??g.format}`}case"not_multiple_of":return`Fâsit sayı: ${g.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${g.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function cy(){return{localeError:gy()}}const uy=()=>{const r={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"عدد";case"object":{if(Array.isArray(g))return"ارې";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"};return g=>{switch(g.code){case"invalid_type":return`ناسم ورودي: باید ${g.expected} وای, مګر ${u(g.input)} ترلاسه شو`;case"invalid_value":return g.values.length===1?`ناسم ورودي: باید ${YA(g.values[0])} وای`:`ناسم انتخاب: باید یو له ${cA(g.values,"|")} څخه وای`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`ډیر لوی: ${g.origin??"ارزښت"} باید ${a}${g.maximum.toString()} ${h.unit??"عنصرونه"} ولري`:`ډیر لوی: ${g.origin??"ارزښت"} باید ${a}${g.maximum.toString()} وي`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`ډیر کوچنی: ${g.origin} باید ${a}${g.minimum.toString()} ${h.unit} ولري`:`ډیر کوچنی: ${g.origin} باید ${a}${g.minimum.toString()} وي`}case"invalid_format":{const a=g;return a.format==="starts_with"?`ناسم متن: باید د "${a.prefix}" سره پیل شي`:a.format==="ends_with"?`ناسم متن: باید د "${a.suffix}" سره پای ته ورسيږي`:a.format==="includes"?`ناسم متن: باید "${a.includes}" ولري`:a.format==="regex"?`ناسم متن: باید د ${a.pattern} سره مطابقت ولري`:`${E[a.format]??g.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${g.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${g.keys.length>1?"کلیډونه":"کلیډ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${g.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${g.origin} کې`;default:return"ناسمه ورودي"}}};function Iy(){return{localeError:uy()}}const Ey=()=>{const r={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"liczba";case"object":{if(Array.isArray(g))return"tablica";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"};return g=>{switch(g.code){case"invalid_type":return`Nieprawidłowe dane wejściowe: oczekiwano ${g.expected}, otrzymano ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Nieprawidłowe dane wejściowe: oczekiwano ${YA(g.values[0])}`:`Nieprawidłowa opcja: oczekiwano jednej z wartości ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Za duża wartość: oczekiwano, że ${g.origin??"wartość"} będzie mieć ${a}${g.maximum.toString()} ${h.unit??"elementów"}`:`Zbyt duż(y/a/e): oczekiwano, że ${g.origin??"wartość"} będzie wynosić ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Za mała wartość: oczekiwano, że ${g.origin??"wartość"} będzie mieć ${a}${g.minimum.toString()} ${h.unit??"elementów"}`:`Zbyt mał(y/a/e): oczekiwano, że ${g.origin??"wartość"} będzie wynosić ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Nieprawidłowy ciąg znaków: musi zaczynać się od "${a.prefix}"`:a.format==="ends_with"?`Nieprawidłowy ciąg znaków: musi kończyć się na "${a.suffix}"`:a.format==="includes"?`Nieprawidłowy ciąg znaków: musi zawierać "${a.includes}"`:a.format==="regex"?`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${a.pattern}`:`Nieprawidłow(y/a/e) ${E[a.format]??g.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${g.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${g.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${g.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function ly(){return{localeError:Ey()}}const By=()=>{const r={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"número";case"object":{if(Array.isArray(g))return"array";if(g===null)return"nulo";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"};return g=>{switch(g.code){case"invalid_type":return`Tipo inválido: esperado ${g.expected}, recebido ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Entrada inválida: esperado ${YA(g.values[0])}`:`Opção inválida: esperada uma das ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Muito grande: esperado que ${g.origin??"valor"} tivesse ${a}${g.maximum.toString()} ${h.unit??"elementos"}`:`Muito grande: esperado que ${g.origin??"valor"} fosse ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Muito pequeno: esperado que ${g.origin} tivesse ${a}${g.minimum.toString()} ${h.unit}`:`Muito pequeno: esperado que ${g.origin} fosse ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Texto inválido: deve começar com "${a.prefix}"`:a.format==="ends_with"?`Texto inválido: deve terminar com "${a.suffix}"`:a.format==="includes"?`Texto inválido: deve incluir "${a.includes}"`:a.format==="regex"?`Texto inválido: deve corresponder ao padrão ${a.pattern}`:`${E[a.format]??g.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${g.divisor}`;case"unrecognized_keys":return`Chave${g.keys.length>1?"s":""} desconhecida${g.keys.length>1?"s":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Chave inválida em ${g.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${g.origin}`;default:return"Campo inválido"}}};function Cy(){return{localeError:By()}}function jB(r,i,u,E){const g=Math.abs(r),a=g%10,h=g%100;return h>=11&&h<=19?E:a===1?i:a>=2&&a<=4?u:E}const Qy=()=>{const r={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"число";case"object":{if(Array.isArray(g))return"массив";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"};return g=>{switch(g.code){case"invalid_type":return`Неверный ввод: ожидалось ${g.expected}, получено ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Неверный ввод: ожидалось ${YA(g.values[0])}`:`Неверный вариант: ожидалось одно из ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);if(h){const w=Number(g.maximum),k=jB(w,h.unit.one,h.unit.few,h.unit.many);return`Слишком большое значение: ожидалось, что ${g.origin??"значение"} будет иметь ${a}${g.maximum.toString()} ${k}`}return`Слишком большое значение: ожидалось, что ${g.origin??"значение"} будет ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);if(h){const w=Number(g.minimum),k=jB(w,h.unit.one,h.unit.few,h.unit.many);return`Слишком маленькое значение: ожидалось, что ${g.origin} будет иметь ${a}${g.minimum.toString()} ${k}`}return`Слишком маленькое значение: ожидалось, что ${g.origin} будет ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неверная строка: должна начинаться с "${a.prefix}"`:a.format==="ends_with"?`Неверная строка: должна заканчиваться на "${a.suffix}"`:a.format==="includes"?`Неверная строка: должна содержать "${a.includes}"`:a.format==="regex"?`Неверная строка: должна соответствовать шаблону ${a.pattern}`:`Неверный ${E[a.format]??g.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${g.divisor}`;case"unrecognized_keys":return`Нераспознанн${g.keys.length>1?"ые":"ый"} ключ${g.keys.length>1?"и":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${g.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${g.origin}`;default:return"Неверные входные данные"}}};function fy(){return{localeError:Qy()}}const dy=()=>{const r={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"število";case"object":{if(Array.isArray(g))return"tabela";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"};return g=>{switch(g.code){case"invalid_type":return`Neveljaven vnos: pričakovano ${g.expected}, prejeto ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Neveljaven vnos: pričakovano ${YA(g.values[0])}`:`Neveljavna možnost: pričakovano eno izmed ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Preveliko: pričakovano, da bo ${g.origin??"vrednost"} imelo ${a}${g.maximum.toString()} ${h.unit??"elementov"}`:`Preveliko: pričakovano, da bo ${g.origin??"vrednost"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Premajhno: pričakovano, da bo ${g.origin} imelo ${a}${g.minimum.toString()} ${h.unit}`:`Premajhno: pričakovano, da bo ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Neveljaven niz: mora se začeti z "${a.prefix}"`:a.format==="ends_with"?`Neveljaven niz: mora se končati z "${a.suffix}"`:a.format==="includes"?`Neveljaven niz: mora vsebovati "${a.includes}"`:a.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${a.pattern}`:`Neveljaven ${E[a.format]??g.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${g.divisor}`;case"unrecognized_keys":return`Neprepoznan${g.keys.length>1?"i ključi":" ključ"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${g.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${g.origin}`;default:return"Neveljaven vnos"}}};function hy(){return{localeError:dy()}}const my=()=>{const r={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"antal";case"object":{if(Array.isArray(g))return"lista";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return g=>{switch(g.code){case"invalid_type":return`Ogiltig inmatning: förväntat ${g.expected}, fick ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ogiltig inmatning: förväntat ${YA(g.values[0])}`:`Ogiltigt val: förväntade en av ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`För stor(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.maximum.toString()} ${h.unit??"element"}`:`För stor(t): förväntat ${g.origin??"värdet"} att ha ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`För lite(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.minimum.toString()} ${h.unit}`:`För lite(t): förväntade ${g.origin??"värdet"} att ha ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ogiltig sträng: måste börja med "${a.prefix}"`:a.format==="ends_with"?`Ogiltig sträng: måste sluta med "${a.suffix}"`:a.format==="includes"?`Ogiltig sträng: måste innehålla "${a.includes}"`:a.format==="regex"?`Ogiltig sträng: måste matcha mönstret "${a.pattern}"`:`Ogiltig(t) ${E[a.format]??g.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${g.divisor}`;case"unrecognized_keys":return`${g.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${cA(g.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${g.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${g.origin??"värdet"}`;default:return"Ogiltig input"}}};function py(){return{localeError:my()}}const yy=()=>{const r={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"எண் அல்லாதது":"எண்";case"object":{if(Array.isArray(g))return"அணி";if(g===null)return"வெறுமை";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"};return g=>{switch(g.code){case"invalid_type":return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${g.expected}, பெறப்பட்டது ${u(g.input)}`;case"invalid_value":return g.values.length===1?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${YA(g.values[0])}`:`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${cA(g.values,"|")} இல் ஒன்று`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${g.origin??"மதிப்பு"} ${a}${g.maximum.toString()} ${h.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`:`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${g.origin??"மதிப்பு"} ${a}${g.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${g.origin} ${a}${g.minimum.toString()} ${h.unit} ஆக இருக்க வேண்டும்`:`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${g.origin} ${a}${g.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{const a=g;return a.format==="starts_with"?`தவறான சரம்: "${a.prefix}" இல் தொடங்க வேண்டும்`:a.format==="ends_with"?`தவறான சரம்: "${a.suffix}" இல் முடிவடைய வேண்டும்`:a.format==="includes"?`தவறான சரம்: "${a.includes}" ஐ உள்ளடக்க வேண்டும்`:a.format==="regex"?`தவறான சரம்: ${a.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`:`தவறான ${E[a.format]??g.format}`}case"not_multiple_of":return`தவறான எண்: ${g.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${g.keys.length>1?"கள்":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${g.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function by(){return{localeError:yy()}}const Dy=()=>{const r={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"ไม่ใช่ตัวเลข (NaN)":"ตัวเลข";case"object":{if(Array.isArray(g))return"อาร์เรย์ (Array)";if(g===null)return"ไม่มีค่า (null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"};return g=>{switch(g.code){case"invalid_type":return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${g.expected} แต่ได้รับ ${u(g.input)}`;case"invalid_value":return g.values.length===1?`ค่าไม่ถูกต้อง: ควรเป็น ${YA(g.values[0])}`:`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"ไม่เกิน":"น้อยกว่า",h=i(g.origin);return h?`เกินกำหนด: ${g.origin??"ค่า"} ควรมี${a} ${g.maximum.toString()} ${h.unit??"รายการ"}`:`เกินกำหนด: ${g.origin??"ค่า"} ควรมี${a} ${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?"อย่างน้อย":"มากกว่า",h=i(g.origin);return h?`น้อยกว่ากำหนด: ${g.origin} ควรมี${a} ${g.minimum.toString()} ${h.unit}`:`น้อยกว่ากำหนด: ${g.origin} ควรมี${a} ${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${a.prefix}"`:a.format==="ends_with"?`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${a.suffix}"`:a.format==="includes"?`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${a.includes}" อยู่ในข้อความ`:a.format==="regex"?`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${a.pattern}`:`รูปแบบไม่ถูกต้อง: ${E[a.format]??g.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${g.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${cA(g.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${g.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${g.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function wy(){return{localeError:Dy()}}const ky=r=>{const i=typeof r;switch(i){case"number":return Number.isNaN(r)?"NaN":"number";case"object":{if(Array.isArray(r))return"array";if(r===null)return"null";if(Object.getPrototypeOf(r)!==Object.prototype&&r.constructor)return r.constructor.name}}return i},_y=()=>{const r={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function i(E){return r[E]??null}const u={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"};return E=>{switch(E.code){case"invalid_type":return`Geçersiz değer: beklenen ${E.expected}, alınan ${ky(E.input)}`;case"invalid_value":return E.values.length===1?`Geçersiz değer: beklenen ${YA(E.values[0])}`:`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${cA(E.values,"|")}`;case"too_big":{const g=E.inclusive?"<=":"<",a=i(E.origin);return a?`Çok büyük: beklenen ${E.origin??"değer"} ${g}${E.maximum.toString()} ${a.unit??"öğe"}`:`Çok büyük: beklenen ${E.origin??"değer"} ${g}${E.maximum.toString()}`}case"too_small":{const g=E.inclusive?">=":">",a=i(E.origin);return a?`Çok küçük: beklenen ${E.origin} ${g}${E.minimum.toString()} ${a.unit}`:`Çok küçük: beklenen ${E.origin} ${g}${E.minimum.toString()}`}case"invalid_format":{const g=E;return g.format==="starts_with"?`Geçersiz metin: "${g.prefix}" ile başlamalı`:g.format==="ends_with"?`Geçersiz metin: "${g.suffix}" ile bitmeli`:g.format==="includes"?`Geçersiz metin: "${g.includes}" içermeli`:g.format==="regex"?`Geçersiz metin: ${g.pattern} desenine uymalı`:`Geçersiz ${u[g.format]??E.format}`}case"not_multiple_of":return`Geçersiz sayı: ${E.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${E.keys.length>1?"lar":""}: ${cA(E.keys,", ")}`;case"invalid_key":return`${E.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${E.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function Sy(){return{localeError:_y()}}const vy=()=>{const r={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"число";case"object":{if(Array.isArray(g))return"масив";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"};return g=>{switch(g.code){case"invalid_type":return`Неправильні вхідні дані: очікується ${g.expected}, отримано ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Неправильні вхідні дані: очікується ${YA(g.values[0])}`:`Неправильна опція: очікується одне з ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Занадто велике: очікується, що ${g.origin??"значення"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"елементів"}`:`Занадто велике: очікується, що ${g.origin??"значення"} буде ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Занадто мале: очікується, що ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Занадто мале: очікується, що ${g.origin} буде ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Неправильний рядок: повинен починатися з "${a.prefix}"`:a.format==="ends_with"?`Неправильний рядок: повинен закінчуватися на "${a.suffix}"`:a.format==="includes"?`Неправильний рядок: повинен містити "${a.includes}"`:a.format==="regex"?`Неправильний рядок: повинен відповідати шаблону ${a.pattern}`:`Неправильний ${E[a.format]??g.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${g.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${g.keys.length>1?"і":""}: ${cA(g.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${g.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${g.origin}`;default:return"Неправильні вхідні дані"}}};function JB(){return{localeError:vy()}}function Ry(){return JB()}const Ty=()=>{const r={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"نمبر";case"object":{if(Array.isArray(g))return"آرے";if(g===null)return"نل";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"};return g=>{switch(g.code){case"invalid_type":return`غلط ان پٹ: ${g.expected} متوقع تھا، ${u(g.input)} موصول ہوا`;case"invalid_value":return g.values.length===1?`غلط ان پٹ: ${YA(g.values[0])} متوقع تھا`:`غلط آپشن: ${cA(g.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`بہت بڑا: ${g.origin??"ویلیو"} کے ${a}${g.maximum.toString()} ${h.unit??"عناصر"} ہونے متوقع تھے`:`بہت بڑا: ${g.origin??"ویلیو"} کا ${a}${g.maximum.toString()} ہونا متوقع تھا`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`بہت چھوٹا: ${g.origin} کے ${a}${g.minimum.toString()} ${h.unit} ہونے متوقع تھے`:`بہت چھوٹا: ${g.origin} کا ${a}${g.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{const a=g;return a.format==="starts_with"?`غلط سٹرنگ: "${a.prefix}" سے شروع ہونا چاہیے`:a.format==="ends_with"?`غلط سٹرنگ: "${a.suffix}" پر ختم ہونا چاہیے`:a.format==="includes"?`غلط سٹرنگ: "${a.includes}" شامل ہونا چاہیے`:a.format==="regex"?`غلط سٹرنگ: پیٹرن ${a.pattern} سے میچ ہونا چاہیے`:`غلط ${E[a.format]??g.format}`}case"not_multiple_of":return`غلط نمبر: ${g.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${g.keys.length>1?"ز":""}: ${cA(g.keys,"، ")}`;case"invalid_key":return`${g.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${g.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function Fy(){return{localeError:Ty()}}const My=()=>{const r={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"số";case"object":{if(Array.isArray(g))return"mảng";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"};return g=>{switch(g.code){case"invalid_type":return`Đầu vào không hợp lệ: mong đợi ${g.expected}, nhận được ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Đầu vào không hợp lệ: mong đợi ${YA(g.values[0])}`:`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Quá lớn: mong đợi ${g.origin??"giá trị"} ${h.verb} ${a}${g.maximum.toString()} ${h.unit??"phần tử"}`:`Quá lớn: mong đợi ${g.origin??"giá trị"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Quá nhỏ: mong đợi ${g.origin} ${h.verb} ${a}${g.minimum.toString()} ${h.unit}`:`Quá nhỏ: mong đợi ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Chuỗi không hợp lệ: phải bắt đầu bằng "${a.prefix}"`:a.format==="ends_with"?`Chuỗi không hợp lệ: phải kết thúc bằng "${a.suffix}"`:a.format==="includes"?`Chuỗi không hợp lệ: phải bao gồm "${a.includes}"`:a.format==="regex"?`Chuỗi không hợp lệ: phải khớp với mẫu ${a.pattern}`:`${E[a.format]??g.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${g.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${cA(g.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${g.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${g.origin}`;default:return"Đầu vào không hợp lệ"}}};function Oy(){return{localeError:My()}}const Ny=()=>{const r={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"非数字(NaN)":"数字";case"object":{if(Array.isArray(g))return"数组";if(g===null)return"空值(null)";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"};return g=>{switch(g.code){case"invalid_type":return`无效输入:期望 ${g.expected},实际接收 ${u(g.input)}`;case"invalid_value":return g.values.length===1?`无效输入:期望 ${YA(g.values[0])}`:`无效选项:期望以下之一 ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`数值过大:期望 ${g.origin??"值"} ${a}${g.maximum.toString()} ${h.unit??"个元素"}`:`数值过大:期望 ${g.origin??"值"} ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`数值过小:期望 ${g.origin} ${a}${g.minimum.toString()} ${h.unit}`:`数值过小:期望 ${g.origin} ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`无效字符串:必须以 "${a.prefix}" 开头`:a.format==="ends_with"?`无效字符串:必须以 "${a.suffix}" 结尾`:a.format==="includes"?`无效字符串:必须包含 "${a.includes}"`:a.format==="regex"?`无效字符串:必须满足正则表达式 ${a.pattern}`:`无效${E[a.format]??g.format}`}case"not_multiple_of":return`无效数字:必须是 ${g.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${cA(g.keys,", ")}`;case"invalid_key":return`${g.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${g.origin} 中包含无效值(value)`;default:return"无效输入"}}};function Uy(){return{localeError:Ny()}}const Gy=()=>{const r={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"number";case"object":{if(Array.isArray(g))return"array";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"};return g=>{switch(g.code){case"invalid_type":return`無效的輸入值:預期為 ${g.expected},但收到 ${u(g.input)}`;case"invalid_value":return g.values.length===1?`無效的輸入值:預期為 ${YA(g.values[0])}`:`無效的選項:預期為以下其中之一 ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`數值過大:預期 ${g.origin??"值"} 應為 ${a}${g.maximum.toString()} ${h.unit??"個元素"}`:`數值過大:預期 ${g.origin??"值"} 應為 ${a}${g.maximum.toString()}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`數值過小:預期 ${g.origin} 應為 ${a}${g.minimum.toString()} ${h.unit}`:`數值過小:預期 ${g.origin} 應為 ${a}${g.minimum.toString()}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`無效的字串:必須以 "${a.prefix}" 開頭`:a.format==="ends_with"?`無效的字串:必須以 "${a.suffix}" 結尾`:a.format==="includes"?`無效的字串:必須包含 "${a.includes}"`:a.format==="regex"?`無效的字串:必須符合格式 ${a.pattern}`:`無效的 ${E[a.format]??g.format}`}case"not_multiple_of":return`無效的數字:必須為 ${g.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${g.keys.length>1?"們":""}:${cA(g.keys,"、")}`;case"invalid_key":return`${g.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${g.origin} 中有無效的值`;default:return"無效的輸入值"}}};function xy(){return{localeError:Gy()}}const Ly=()=>{const r={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"}};function i(g){return r[g]??null}const u=g=>{const a=typeof g;switch(a){case"number":return Number.isNaN(g)?"NaN":"nọ́mbà";case"object":{if(Array.isArray(g))return"akopọ";if(g===null)return"null";if(Object.getPrototypeOf(g)!==Object.prototype&&g.constructor)return g.constructor.name}}return a},E={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"};return g=>{switch(g.code){case"invalid_type":return`Ìbáwọlé aṣìṣe: a ní láti fi ${g.expected}, àmọ̀ a rí ${u(g.input)}`;case"invalid_value":return g.values.length===1?`Ìbáwọlé aṣìṣe: a ní láti fi ${YA(g.values[0])}`:`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${cA(g.values,"|")}`;case"too_big":{const a=g.inclusive?"<=":"<",h=i(g.origin);return h?`Tó pọ̀ jù: a ní láti jẹ́ pé ${g.origin??"iye"} ${h.verb} ${a}${g.maximum} ${h.unit}`:`Tó pọ̀ jù: a ní láti jẹ́ ${a}${g.maximum}`}case"too_small":{const a=g.inclusive?">=":">",h=i(g.origin);return h?`Kéré ju: a ní láti jẹ́ pé ${g.origin} ${h.verb} ${a}${g.minimum} ${h.unit}`:`Kéré ju: a ní láti jẹ́ ${a}${g.minimum}`}case"invalid_format":{const a=g;return a.format==="starts_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${a.prefix}"`:a.format==="ends_with"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${a.suffix}"`:a.format==="includes"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${a.includes}"`:a.format==="regex"?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${a.pattern}`:`Aṣìṣe: ${E[a.format]??g.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${g.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${cA(g.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${g.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${g.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function Py(){return{localeError:Ly()}}var ZB=Object.freeze({__proto__:null,ar:e4,az:r4,be:i4,bg:s4,ca:c4,cs:I4,da:l4,de:C4,en:LB,eo:m4,es:y4,fa:D4,fi:k4,fr:S4,frCA:R4,he:F4,hu:O4,id:U4,is:L4,it:Y4,ja:J4,ka:$4,kh:z4,km:PB,ko:W4,lt:Ay,mk:ty,ms:ny,nl:oy,no:sy,ota:cy,pl:ly,ps:Iy,pt:Cy,ru:fy,sl:hy,sv:py,ta:by,th:wy,tr:Sy,ua:Ry,uk:JB,ur:Fy,vi:Oy,yo:Py,zhCN:Uy,zhTW:xy}),HB;const $B=Symbol("ZodOutput"),XB=Symbol("ZodInput");class Ps{constructor(){this._map=new WeakMap,this._idmap=new Map}add(i,...u){const E=u[0];if(this._map.set(i,E),E&&typeof E=="object"&&"id"in E){if(this._idmap.has(E.id))throw new Error(`ID ${E.id} already exists in the registry`);this._idmap.set(E.id,i)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(i){const u=this._map.get(i);return u&&typeof u=="object"&&"id"in u&&this._idmap.delete(u.id),this._map.delete(i),this}get(i){const u=i._zod.parent;if(u){const E={...this.get(u)??{}};delete E.id;const g={...E,...this._map.get(i)};return Object.keys(g).length?g:void 0}return this._map.get(i)}has(i){return this._map.has(i)}}function Ys(){return new Ps}(HB=globalThis).__zod_globalRegistry??(HB.__zod_globalRegistry=Ys());const xt=globalThis.__zod_globalRegistry;function zB(r,i){return new r({type:"string",...tA(i)})}function KB(r,i){return new r({type:"string",coerce:!0,...tA(i)})}function js(r,i){return new r({type:"string",format:"email",check:"string_format",abort:!1,...tA(i)})}function ua(r,i){return new r({type:"string",format:"guid",check:"string_format",abort:!1,...tA(i)})}function Js(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,...tA(i)})}function Zs(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...tA(i)})}function Hs(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...tA(i)})}function $s(r,i){return new r({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...tA(i)})}function Ia(r,i){return new r({type:"string",format:"url",check:"string_format",abort:!1,...tA(i)})}function Xs(r,i){return new r({type:"string",format:"emoji",check:"string_format",abort:!1,...tA(i)})}function zs(r,i){return new r({type:"string",format:"nanoid",check:"string_format",abort:!1,...tA(i)})}function Ks(r,i){return new r({type:"string",format:"cuid",check:"string_format",abort:!1,...tA(i)})}function Ws(r,i){return new r({type:"string",format:"cuid2",check:"string_format",abort:!1,...tA(i)})}function qs(r,i){return new r({type:"string",format:"ulid",check:"string_format",abort:!1,...tA(i)})}function Vs(r,i){return new r({type:"string",format:"xid",check:"string_format",abort:!1,...tA(i)})}function Ag(r,i){return new r({type:"string",format:"ksuid",check:"string_format",abort:!1,...tA(i)})}function eg(r,i){return new r({type:"string",format:"ipv4",check:"string_format",abort:!1,...tA(i)})}function tg(r,i){return new r({type:"string",format:"ipv6",check:"string_format",abort:!1,...tA(i)})}function WB(r,i){return new r({type:"string",format:"mac",check:"string_format",abort:!1,...tA(i)})}function rg(r,i){return new r({type:"string",format:"cidrv4",check:"string_format",abort:!1,...tA(i)})}function ng(r,i){return new r({type:"string",format:"cidrv6",check:"string_format",abort:!1,...tA(i)})}function ig(r,i){return new r({type:"string",format:"base64",check:"string_format",abort:!1,...tA(i)})}function og(r,i){return new r({type:"string",format:"base64url",check:"string_format",abort:!1,...tA(i)})}function ag(r,i){return new r({type:"string",format:"e164",check:"string_format",abort:!1,...tA(i)})}function sg(r,i){return new r({type:"string",format:"jwt",check:"string_format",abort:!1,...tA(i)})}const qB={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function VB(r,i){return new r({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...tA(i)})}function AC(r,i){return new r({type:"string",format:"date",check:"string_format",...tA(i)})}function eC(r,i){return new r({type:"string",format:"time",check:"string_format",precision:null,...tA(i)})}function tC(r,i){return new r({type:"string",format:"duration",check:"string_format",...tA(i)})}function rC(r,i){return new r({type:"number",checks:[],...tA(i)})}function nC(r,i){return new r({type:"number",coerce:!0,checks:[],...tA(i)})}function iC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"safeint",...tA(i)})}function oC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"float32",...tA(i)})}function aC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"float64",...tA(i)})}function sC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"int32",...tA(i)})}function gC(r,i){return new r({type:"number",check:"number_format",abort:!1,format:"uint32",...tA(i)})}function cC(r,i){return new r({type:"boolean",...tA(i)})}function uC(r,i){return new r({type:"boolean",coerce:!0,...tA(i)})}function IC(r,i){return new r({type:"bigint",...tA(i)})}function EC(r,i){return new r({type:"bigint",coerce:!0,...tA(i)})}function lC(r,i){return new r({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...tA(i)})}function BC(r,i){return new r({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...tA(i)})}function CC(r,i){return new r({type:"symbol",...tA(i)})}function QC(r,i){return new r({type:"undefined",...tA(i)})}function fC(r,i){return new r({type:"null",...tA(i)})}function dC(r){return new r({type:"any"})}function hC(r){return new r({type:"unknown"})}function mC(r,i){return new r({type:"never",...tA(i)})}function pC(r,i){return new r({type:"void",...tA(i)})}function yC(r,i){return new r({type:"date",...tA(i)})}function bC(r,i){return new r({type:"date",coerce:!0,...tA(i)})}function DC(r,i){return new r({type:"nan",...tA(i)})}function on(r,i){return new Rs({check:"less_than",...tA(i),value:r,inclusive:!1})}function Lt(r,i){return new Rs({check:"less_than",...tA(i),value:r,inclusive:!0})}function an(r,i){return new Ts({check:"greater_than",...tA(i),value:r,inclusive:!1})}function Qt(r,i){return new Ts({check:"greater_than",...tA(i),value:r,inclusive:!0})}function wC(r){return an(0,r)}function kC(r){return on(0,r)}function _C(r){return Lt(0,r)}function SC(r){return Qt(0,r)}function Vi(r,i){return new KE({check:"multiple_of",...tA(i),value:r})}function Ea(r,i){return new VE({check:"max_size",...tA(i),maximum:r})}function Ao(r,i){return new Al({check:"min_size",...tA(i),minimum:r})}function gg(r,i){return new el({check:"size_equals",...tA(i),size:r})}function la(r,i){return new tl({check:"max_length",...tA(i),maximum:r})}function zn(r,i){return new rl({check:"min_length",...tA(i),minimum:r})}function Ba(r,i){return new nl({check:"length_equals",...tA(i),length:r})}function cg(r,i){return new il({check:"string_format",format:"regex",...tA(i),pattern:r})}function ug(r){return new ol({check:"string_format",format:"lowercase",...tA(r)})}function Ig(r){return new al({check:"string_format",format:"uppercase",...tA(r)})}function Eg(r,i){return new sl({check:"string_format",format:"includes",...tA(i),includes:r})}function lg(r,i){return new gl({check:"string_format",format:"starts_with",...tA(i),prefix:r})}function Bg(r,i){return new cl({check:"string_format",format:"ends_with",...tA(i),suffix:r})}function vC(r,i,u){return new Il({check:"property",property:r,schema:i,...tA(u)})}function Cg(r,i){return new El({check:"mime_type",mime:r,...tA(i)})}function Mr(r){return new ll({check:"overwrite",tx:r})}function Qg(r){return Mr(i=>i.normalize(r))}function fg(){return Mr(r=>r.trim())}function dg(){return Mr(r=>r.toLowerCase())}function hg(){return Mr(r=>r.toUpperCase())}function mg(){return Mr(r=>HI(r))}function RC(r,i,u){return new r({type:"array",element:i,...tA(u)})}function Yy(r,i,u){return new r({type:"union",options:i,...tA(u)})}function jy(r,i,u,E){return new r({type:"union",options:u,discriminator:i,...tA(E)})}function Jy(r,i,u){return new r({type:"intersection",left:i,right:u})}function Zy(r,i,u,E){const g=u instanceof HA,a=g?E:u,h=g?u:null;return new r({type:"tuple",items:i,rest:h,...tA(a)})}function Hy(r,i,u,E){return new r({type:"record",keyType:i,valueType:u,...tA(E)})}function $y(r,i,u,E){return new r({type:"map",keyType:i,valueType:u,...tA(E)})}function Xy(r,i,u){return new r({type:"set",valueType:i,...tA(u)})}function zy(r,i,u){const E=Array.isArray(i)?Object.fromEntries(i.map(g=>[g,g])):i;return new r({type:"enum",entries:E,...tA(u)})}function Ky(r,i,u){return new r({type:"enum",entries:i,...tA(u)})}function Wy(r,i,u){return new r({type:"literal",values:Array.isArray(i)?i:[i],...tA(u)})}function TC(r,i){return new r({type:"file",...tA(i)})}function qy(r,i){return new r({type:"transform",transform:i})}function Vy(r,i){return new r({type:"optional",innerType:i})}function Ab(r,i){return new r({type:"nullable",innerType:i})}function eb(r,i,u){return new r({type:"default",innerType:i,get defaultValue(){return typeof u=="function"?u():ta(u)}})}function tb(r,i,u){return new r({type:"nonoptional",innerType:i,...tA(u)})}function rb(r,i){return new r({type:"success",innerType:i})}function nb(r,i,u){return new r({type:"catch",innerType:i,catchValue:typeof u=="function"?u:()=>u})}function ib(r,i,u){return new r({type:"pipe",in:i,out:u})}function ob(r,i){return new r({type:"readonly",innerType:i})}function ab(r,i,u){return new r({type:"template_literal",parts:i,...tA(u)})}function sb(r,i){return new r({type:"lazy",getter:i})}function gb(r,i){return new r({type:"promise",innerType:i})}function FC(r,i,u){const E=tA(u);return E.abort??(E.abort=!0),new r({type:"custom",check:"custom",fn:i,...E})}function MC(r,i,u){return new r({type:"custom",check:"custom",fn:i,...tA(u)})}function OC(r){const i=NC(u=>(u.addIssue=E=>{if(typeof E=="string")u.issues.push($n(E,u.value,i._zod.def));else{const g=E;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=u.value),g.inst??(g.inst=i),g.continue??(g.continue=!i._zod.def.abort),u.issues.push($n(g))}},r(u.value,u)));return i}function NC(r,i){const u=new we({check:"custom",...tA(i)});return u._zod.check=r,u}function UC(r){const i=new we({check:"describe"});return i._zod.onattach=[u=>{const E=xt.get(u)??{};xt.add(u,{...E,description:r})}],i._zod.check=()=>{},i}function GC(r){const i=new we({check:"meta"});return i._zod.onattach=[u=>{const E=xt.get(u)??{};xt.add(u,{...E,...r})}],i._zod.check=()=>{},i}function xC(r,i){const u=tA(i);let E=u.truthy??["true","1","yes","on","y","enabled"],g=u.falsy??["false","0","no","off","n","disabled"];u.case!=="sensitive"&&(E=E.map(j=>typeof j=="string"?j.toLowerCase():j),g=g.map(j=>typeof j=="string"?j.toLowerCase():j));const a=new Set(E),h=new Set(g),w=r.Codec??Ls,k=r.Boolean??Os,v=r.String??Ki,F=new v({type:"string",error:u.error}),x=new k({type:"boolean",error:u.error}),$=new w({type:"pipe",in:F,out:x,transform:(j,P)=>{let rA=j;return u.case!=="sensitive"&&(rA=rA.toLowerCase()),a.has(rA)?!0:h.has(rA)?!1:(P.issues.push({code:"invalid_value",expected:"stringbool",values:[...a,...h],input:P.value,inst:$,continue:!1}),{})},reverseTransform:(j,P)=>j===!0?E[0]||"true":g[0]||"false",error:u.error});return $}function eo(r,i,u,E={}){const g=tA(E),a={...tA(E),check:"string_format",type:"string",format:i,fn:typeof u=="function"?u:w=>u.test(w),...g};return u instanceof RegExp&&(a.pattern=u),new r(a)}class pg{constructor(i){this.counter=0,this.metadataRegistry=i?.metadata??xt,this.target=i?.target??"draft-2020-12",this.unrepresentable=i?.unrepresentable??"throw",this.override=i?.override??(()=>{}),this.io=i?.io??"output",this.seen=new Map}process(i,u={path:[],schemaPath:[]}){var E;const g=i._zod.def,a={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},h=this.seen.get(i);if(h)return h.count++,u.schemaPath.includes(i)&&(h.cycle=u.path),h.schema;const w={schema:{},count:1,cycle:void 0,path:u.path};this.seen.set(i,w);const k=i._zod.toJSONSchema?.();if(k)w.schema=k;else{const x={...u,schemaPath:[...u.schemaPath,i],path:u.path},$=i._zod.parent;if($)w.ref=$,this.process($,x),this.seen.get($).isParent=!0;else{const j=w.schema;switch(g.type){case"string":{const P=j;P.type="string";const{minimum:rA,maximum:iA,format:TA,patterns:pA,contentEncoding:MA}=i._zod.bag;if(typeof rA=="number"&&(P.minLength=rA),typeof iA=="number"&&(P.maxLength=iA),TA&&(P.format=a[TA]??TA,P.format===""&&delete P.format),MA&&(P.contentEncoding=MA),pA&&pA.size>0){const xA=[...pA];xA.length===1?P.pattern=xA[0].source:xA.length>1&&(w.schema.allOf=[...xA.map(ce=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:ce.source}))])}break}case"number":{const P=j,{minimum:rA,maximum:iA,format:TA,multipleOf:pA,exclusiveMaximum:MA,exclusiveMinimum:xA}=i._zod.bag;typeof TA=="string"&&TA.includes("int")?P.type="integer":P.type="number",typeof xA=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(P.minimum=xA,P.exclusiveMinimum=!0):P.exclusiveMinimum=xA),typeof rA=="number"&&(P.minimum=rA,typeof xA=="number"&&this.target!=="draft-4"&&(xA>=rA?delete P.minimum:delete P.exclusiveMinimum)),typeof MA=="number"&&(this.target==="draft-4"||this.target==="openapi-3.0"?(P.maximum=MA,P.exclusiveMaximum=!0):P.exclusiveMaximum=MA),typeof iA=="number"&&(P.maximum=iA,typeof MA=="number"&&this.target!=="draft-4"&&(MA<=iA?delete P.maximum:delete P.exclusiveMaximum)),typeof pA=="number"&&(P.multipleOf=pA);break}case"boolean":{const P=j;P.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{this.target==="openapi-3.0"?(j.type="string",j.nullable=!0,j.enum=[null]):j.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{j.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{const P=j,{minimum:rA,maximum:iA}=i._zod.bag;typeof rA=="number"&&(P.minItems=rA),typeof iA=="number"&&(P.maxItems=iA),P.type="array",P.items=this.process(g.element,{...x,path:[...x.path,"items"]});break}case"object":{const P=j;P.type="object",P.properties={};const rA=g.shape;for(const pA in rA)P.properties[pA]=this.process(rA[pA],{...x,path:[...x.path,"properties",pA]});const iA=new Set(Object.keys(rA)),TA=new Set([...iA].filter(pA=>{const MA=g.shape[pA]._zod;return this.io==="input"?MA.optin===void 0:MA.optout===void 0}));TA.size>0&&(P.required=Array.from(TA)),g.catchall?._zod.def.type==="never"?P.additionalProperties=!1:g.catchall?g.catchall&&(P.additionalProperties=this.process(g.catchall,{...x,path:[...x.path,"additionalProperties"]})):this.io==="output"&&(P.additionalProperties=!1);break}case"union":{const P=j,rA=g.discriminator!==void 0,iA=g.options.map((TA,pA)=>this.process(TA,{...x,path:[...x.path,rA?"oneOf":"anyOf",pA]}));rA?P.oneOf=iA:P.anyOf=iA;break}case"intersection":{const P=j,rA=this.process(g.left,{...x,path:[...x.path,"allOf",0]}),iA=this.process(g.right,{...x,path:[...x.path,"allOf",1]}),TA=MA=>"allOf"in MA&&Object.keys(MA).length===1,pA=[...TA(rA)?rA.allOf:[rA],...TA(iA)?iA.allOf:[iA]];P.allOf=pA;break}case"tuple":{const P=j;P.type="array";const rA=this.target==="draft-2020-12"?"prefixItems":"items",iA=this.target==="draft-2020-12"||this.target==="openapi-3.0"?"items":"additionalItems",TA=g.items.map((ce,se)=>this.process(ce,{...x,path:[...x.path,rA,se]})),pA=g.rest?this.process(g.rest,{...x,path:[...x.path,iA,...this.target==="openapi-3.0"?[g.items.length]:[]]}):null;this.target==="draft-2020-12"?(P.prefixItems=TA,pA&&(P.items=pA)):this.target==="openapi-3.0"?(P.items={anyOf:TA},pA&&P.items.anyOf.push(pA),P.minItems=TA.length,pA||(P.maxItems=TA.length)):(P.items=TA,pA&&(P.additionalItems=pA));const{minimum:MA,maximum:xA}=i._zod.bag;typeof MA=="number"&&(P.minItems=MA),typeof xA=="number"&&(P.maxItems=xA);break}case"record":{const P=j;P.type="object",(this.target==="draft-7"||this.target==="draft-2020-12")&&(P.propertyNames=this.process(g.keyType,{...x,path:[...x.path,"propertyNames"]})),P.additionalProperties=this.process(g.valueType,{...x,path:[...x.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{const P=j,rA=Es(g.entries);rA.every(iA=>typeof iA=="number")&&(P.type="number"),rA.every(iA=>typeof iA=="string")&&(P.type="string"),P.enum=rA;break}case"literal":{const P=j,rA=[];for(const iA of g.values)if(iA===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof iA=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");rA.push(Number(iA))}else rA.push(iA);if(rA.length!==0)if(rA.length===1){const iA=rA[0];P.type=iA===null?"null":typeof iA,this.target==="draft-4"||this.target==="openapi-3.0"?P.enum=[iA]:P.const=iA}else rA.every(iA=>typeof iA=="number")&&(P.type="number"),rA.every(iA=>typeof iA=="string")&&(P.type="string"),rA.every(iA=>typeof iA=="boolean")&&(P.type="string"),rA.every(iA=>iA===null)&&(P.type="null"),P.enum=rA;break}case"file":{const P=j,rA={type:"string",format:"binary",contentEncoding:"binary"},{minimum:iA,maximum:TA,mime:pA}=i._zod.bag;iA!==void 0&&(rA.minLength=iA),TA!==void 0&&(rA.maxLength=TA),pA?pA.length===1?(rA.contentMediaType=pA[0],Object.assign(P,rA)):P.anyOf=pA.map(MA=>({...rA,contentMediaType:MA})):Object.assign(P,rA);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{const P=this.process(g.innerType,x);this.target==="openapi-3.0"?(w.ref=g.innerType,j.nullable=!0):j.anyOf=[P,{type:"null"}];break}case"nonoptional":{this.process(g.innerType,x),w.ref=g.innerType;break}case"success":{const P=j;P.type="boolean";break}case"default":{this.process(g.innerType,x),w.ref=g.innerType,j.default=JSON.parse(JSON.stringify(g.defaultValue));break}case"prefault":{this.process(g.innerType,x),w.ref=g.innerType,this.io==="input"&&(j._prefault=JSON.parse(JSON.stringify(g.defaultValue)));break}case"catch":{this.process(g.innerType,x),w.ref=g.innerType;let P;try{P=g.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}j.default=P;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{const P=j,rA=i._zod.pattern;if(!rA)throw new Error("Pattern not found in template literal");P.type="string",P.pattern=rA.source;break}case"pipe":{const P=this.io==="input"?g.in._zod.def.type==="transform"?g.out:g.in:g.out;this.process(P,x),w.ref=P;break}case"readonly":{this.process(g.innerType,x),w.ref=g.innerType,j.readOnly=!0;break}case"promise":{this.process(g.innerType,x),w.ref=g.innerType;break}case"optional":{this.process(g.innerType,x),w.ref=g.innerType;break}case"lazy":{const P=i._zod.innerType;this.process(P,x),w.ref=P;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema");break}}}}const v=this.metadataRegistry.get(i);return v&&Object.assign(w.schema,v),this.io==="input"&&ot(i)&&(delete w.schema.examples,delete w.schema.default),this.io==="input"&&w.schema._prefault&&((E=w.schema).default??(E.default=w.schema._prefault)),delete w.schema._prefault,this.seen.get(i).schema}emit(i,u){const E={cycles:u?.cycles??"ref",reused:u?.reused??"inline",external:u?.external??void 0},g=this.seen.get(i);if(!g)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=F=>{const x=this.target==="draft-2020-12"?"$defs":"definitions";if(E.external){const rA=E.external.registry.get(F[0])?.id,iA=E.external.uri??(pA=>pA);if(rA)return{ref:iA(rA)};const TA=F[1].defId??F[1].schema.id??`schema${this.counter++}`;return F[1].defId=TA,{defId:TA,ref:`${iA("__shared")}#/${x}/${TA}`}}if(F[1]===g)return{ref:"#"};const j=`#/${x}/`,P=F[1].schema.id??`__schema${this.counter++}`;return{defId:P,ref:j+P}},h=F=>{if(F[1].schema.$ref)return;const x=F[1],{ref:$,defId:j}=a(F);x.def={...x.schema},j&&(x.defId=j);const P=x.schema;for(const rA in P)delete P[rA];P.$ref=$};if(E.cycles==="throw")for(const F of this.seen.entries()){const x=F[1];if(x.cycle)throw new Error(`Cycle detected: #/${x.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const F of this.seen.entries()){const x=F[1];if(i===F[0]){h(F);continue}if(E.external){const j=E.external.registry.get(F[0])?.id;if(i!==F[0]&&j){h(F);continue}}if(this.metadataRegistry.get(F[0])?.id){h(F);continue}if(x.cycle){h(F);continue}if(x.count>1&&E.reused==="ref"){h(F);continue}}const w=(F,x)=>{const $=this.seen.get(F),j=$.def??$.schema,P={...j};if($.ref===null)return;const rA=$.ref;if($.ref=null,rA){w(rA,x);const iA=this.seen.get(rA).schema;iA.$ref&&(x.target==="draft-7"||x.target==="draft-4"||x.target==="openapi-3.0")?(j.allOf=j.allOf??[],j.allOf.push(iA)):(Object.assign(j,iA),Object.assign(j,P))}$.isParent||this.override({zodSchema:F,jsonSchema:j,path:$.path??[]})};for(const F of[...this.seen.entries()].reverse())w(F[0],{target:this.target});const k={};if(this.target==="draft-2020-12"?k.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?k.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?k.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),E.external?.uri){const F=E.external.registry.get(i)?.id;if(!F)throw new Error("Schema is missing an `id` property");k.$id=E.external.uri(F)}Object.assign(k,g.def);const v=E.external?.defs??{};for(const F of this.seen.entries()){const x=F[1];x.def&&x.defId&&(v[x.defId]=x.def)}E.external||Object.keys(v).length>0&&(this.target==="draft-2020-12"?k.$defs=v:k.definitions=v);try{return JSON.parse(JSON.stringify(k))}catch{throw new Error("Error converting schema to JSON.")}}}function LC(r,i){if(r instanceof Ps){const E=new pg(i),g={};for(const w of r._idmap.entries()){const[k,v]=w;E.process(v)}const a={},h={registry:r,uri:i?.uri,defs:g};for(const w of r._idmap.entries()){const[k,v]=w;a[k]=E.emit(v,{...i,external:h})}if(Object.keys(g).length>0){const w=E.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[w]:g}}return{schemas:a}}const u=new pg(i);return u.process(r),u.emit(r,i)}function ot(r,i){const u=i??{seen:new Set};if(u.seen.has(r))return!1;u.seen.add(r);const E=r._zod.def;if(E.type==="transform")return!0;if(E.type==="array")return ot(E.element,u);if(E.type==="set")return ot(E.valueType,u);if(E.type==="lazy")return ot(E.getter(),u);if(E.type==="promise"||E.type==="optional"||E.type==="nonoptional"||E.type==="nullable"||E.type==="readonly"||E.type==="default"||E.type==="prefault")return ot(E.innerType,u);if(E.type==="intersection")return ot(E.left,u)||ot(E.right,u);if(E.type==="record"||E.type==="map")return ot(E.keyType,u)||ot(E.valueType,u);if(E.type==="pipe")return ot(E.in,u)||ot(E.out,u);if(E.type==="object"){for(const g in E.shape)if(ot(E.shape[g],u))return!0;return!1}if(E.type==="union"){for(const g of E.options)if(ot(g,u))return!0;return!1}if(E.type==="tuple"){for(const g of E.items)if(ot(g,u))return!0;return!!(E.rest&&ot(E.rest,u))}return!1}var cb=Object.freeze({__proto__:null}),ub=Object.freeze({__proto__:null,$ZodAny:zl,$ZodArray:eB,$ZodAsyncError:en,$ZodBase64:Ul,$ZodBase64URL:xl,$ZodBigInt:Ns,$ZodBigIntFormat:Zl,$ZodBoolean:Os,$ZodCIDRv4:Ol,$ZodCIDRv6:Nl,$ZodCUID:yl,$ZodCUID2:bl,$ZodCatch:_B,$ZodCheck:we,$ZodCheckBigIntFormat:qE,$ZodCheckEndsWith:cl,$ZodCheckGreaterThan:Ts,$ZodCheckIncludes:sl,$ZodCheckLengthEquals:nl,$ZodCheckLessThan:Rs,$ZodCheckLowerCase:ol,$ZodCheckMaxLength:tl,$ZodCheckMaxSize:VE,$ZodCheckMimeType:El,$ZodCheckMinLength:rl,$ZodCheckMinSize:Al,$ZodCheckMultipleOf:KE,$ZodCheckNumberFormat:WE,$ZodCheckOverwrite:ll,$ZodCheckProperty:Il,$ZodCheckRegex:il,$ZodCheckSizeEquals:el,$ZodCheckStartsWith:gl,$ZodCheckStringFormat:zi,$ZodCheckUpperCase:al,$ZodCodec:Ls,$ZodCustom:UB,$ZodCustomStringFormat:jl,$ZodDate:Vl,$ZodDefault:pB,$ZodDiscriminatedUnion:aB,$ZodE164:Ll,$ZodEmail:dl,$ZodEmoji:ml,$ZodEncodeError:qo,$ZodEnum:BB,$ZodError:Cs,$ZodFile:QB,$ZodFunction:MB,$ZodGUID:Ql,$ZodIPv4:Tl,$ZodIPv6:Fl,$ZodISODate:Sl,$ZodISODateTime:_l,$ZodISODuration:Rl,$ZodISOTime:vl,$ZodIntersection:sB,$ZodJWT:Yl,$ZodKSUID:kl,$ZodLazy:NB,$ZodLiteral:CB,$ZodMAC:Ml,$ZodMap:uB,$ZodNaN:SB,$ZodNanoID:pl,$ZodNever:Wl,$ZodNonOptional:DB,$ZodNull:Xl,$ZodNullable:mB,$ZodNumber:Ms,$ZodNumberFormat:Jl,$ZodObject:nB,$ZodObjectJIT:iB,$ZodOptional:hB,$ZodPipe:vB,$ZodPrefault:bB,$ZodPromise:OB,$ZodReadonly:RB,$ZodRealError:Ct,$ZodRecord:cB,$ZodRegistry:Ps,$ZodSet:EB,$ZodString:Ki,$ZodStringFormat:Qe,$ZodSuccess:kB,$ZodSymbol:Hl,$ZodTemplateLiteral:FB,$ZodTransform:fB,$ZodTuple:xs,$ZodType:HA,$ZodULID:Dl,$ZodURL:hl,$ZodUUID:fl,$ZodUndefined:$l,$ZodUnion:Us,$ZodUnknown:Kl,$ZodVoid:ql,$ZodXID:wl,$brand:jI,$constructor:H,$input:XB,$output:$B,Doc:Bl,JSONSchema:cb,JSONSchemaGenerator:pg,NEVER:YI,TimePrecision:qB,_any:dC,_array:RC,_base64:ig,_base64url:og,_bigint:IC,_boolean:cC,_catch:nb,_check:NC,_cidrv4:rg,_cidrv6:ng,_coercedBigint:EC,_coercedBoolean:uC,_coercedDate:bC,_coercedNumber:nC,_coercedString:KB,_cuid:Ks,_cuid2:Ws,_custom:FC,_date:yC,_decode:ps,_decodeAsync:bs,_default:eb,_discriminatedUnion:jy,_e164:ag,_email:js,_emoji:Xs,_encode:ms,_encodeAsync:ys,_endsWith:Bg,_enum:zy,_file:TC,_float32:oC,_float64:aC,_gt:an,_gte:Qt,_guid:ua,_includes:Eg,_int:iC,_int32:sC,_int64:lC,_intersection:Jy,_ipv4:eg,_ipv6:tg,_isoDate:AC,_isoDateTime:VB,_isoDuration:tC,_isoTime:eC,_jwt:sg,_ksuid:Ag,_lazy:sb,_length:Ba,_literal:Wy,_lowercase:ug,_lt:on,_lte:Lt,_mac:WB,_map:$y,_max:Lt,_maxLength:la,_maxSize:Ea,_mime:Cg,_min:Qt,_minLength:zn,_minSize:Ao,_multipleOf:Vi,_nan:DC,_nanoid:zs,_nativeEnum:Ky,_negative:kC,_never:mC,_nonnegative:SC,_nonoptional:tb,_nonpositive:_C,_normalize:Qg,_null:fC,_nullable:Ab,_number:rC,_optional:Vy,_overwrite:Mr,_parse:ji,_parseAsync:Ji,_pipe:ib,_positive:wC,_promise:gb,_property:vC,_readonly:ob,_record:Hy,_refine:MC,_regex:cg,_safeDecode:ws,_safeDecodeAsync:_s,_safeEncode:Ds,_safeEncodeAsync:ks,_safeParse:Zi,_safeParseAsync:Hi,_set:Xy,_size:gg,_slugify:mg,_startsWith:lg,_string:zB,_stringFormat:eo,_stringbool:xC,_success:rb,_superRefine:OC,_symbol:CC,_templateLiteral:ab,_toLowerCase:dg,_toUpperCase:hg,_transform:qy,_trim:fg,_tuple:Zy,_uint32:gC,_uint64:BC,_ulid:qs,_undefined:QC,_union:Yy,_unknown:hC,_uppercase:Ig,_url:Ia,_uuid:Js,_uuidv4:Zs,_uuidv6:Hs,_uuidv7:$s,_void:pC,_xid:Vs,clone:St,config:it,decode:Gp,decodeAsync:Lp,describe:UC,encode:Up,encodeAsync:xp,flattenError:Qs,formatError:fs,globalConfig:Vo,globalRegistry:xt,isValidBase64:Fs,isValidBase64URL:Gl,isValidJWT:Pl,locales:ZB,meta:GC,parse:ds,parseAsync:hs,prettifyError:uE,regexes:vs,registry:Ys,safeDecode:Yp,safeDecodeAsync:Jp,safeEncode:Pp,safeEncodeAsync:jp,safeParse:IE,safeParseAsync:EE,toDotPath:cE,toJSONSchema:LC,treeifyError:gE,util:aE,version:Cl});const yg=H("ZodISODateTime",(r,i)=>{_l.init(r,i),fe.init(r,i)});function PC(r){return VB(yg,r)}const bg=H("ZodISODate",(r,i)=>{Sl.init(r,i),fe.init(r,i)});function YC(r){return AC(bg,r)}const Dg=H("ZodISOTime",(r,i)=>{vl.init(r,i),fe.init(r,i)});function jC(r){return eC(Dg,r)}const wg=H("ZodISODuration",(r,i)=>{Rl.init(r,i),fe.init(r,i)});function JC(r){return tC(wg,r)}var Ib=Object.freeze({__proto__:null,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,date:YC,datetime:PC,duration:JC,time:jC});const ZC=(r,i)=>{Cs.init(r,i),r.name="ZodError",Object.defineProperties(r,{format:{value:u=>fs(r,u)},flatten:{value:u=>Qs(r,u)},addIssue:{value:u=>{r.issues.push(u),r.message=JSON.stringify(r.issues,Aa,2)}},addIssues:{value:u=>{r.issues.push(...u),r.message=JSON.stringify(r.issues,Aa,2)}},isEmpty:{get(){return r.issues.length===0}}})},Eb=H("ZodError",ZC),ft=H("ZodError",ZC,{Parent:Error}),HC=ji(ft),$C=Ji(ft),XC=Zi(ft),zC=Hi(ft),KC=ms(ft),WC=ps(ft),qC=ys(ft),VC=bs(ft),AQ=Ds(ft),eQ=ws(ft),tQ=ks(ft),rQ=_s(ft),qA=H("ZodType",(r,i)=>(HA.init(r,i),r.def=i,r.type=i.type,Object.defineProperty(r,"_def",{value:i}),r.check=(...u)=>r.clone(lr(i,{checks:[...i.checks??[],...u.map(E=>typeof E=="function"?{_zod:{check:E,def:{check:"custom"},onattach:[]}}:E)]})),r.clone=(u,E)=>St(r,u,E),r.brand=()=>r,r.register=(u,E)=>(u.add(r,E),r),r.parse=(u,E)=>HC(r,u,E,{callee:r.parse}),r.safeParse=(u,E)=>XC(r,u,E),r.parseAsync=async(u,E)=>$C(r,u,E,{callee:r.parseAsync}),r.safeParseAsync=async(u,E)=>zC(r,u,E),r.spa=r.safeParseAsync,r.encode=(u,E)=>KC(r,u,E),r.decode=(u,E)=>WC(r,u,E),r.encodeAsync=async(u,E)=>qC(r,u,E),r.decodeAsync=async(u,E)=>VC(r,u,E),r.safeEncode=(u,E)=>AQ(r,u,E),r.safeDecode=(u,E)=>eQ(r,u,E),r.safeEncodeAsync=async(u,E)=>tQ(r,u,E),r.safeDecodeAsync=async(u,E)=>rQ(r,u,E),r.refine=(u,E)=>r.check(LQ(u,E)),r.superRefine=u=>r.check(PQ(u)),r.overwrite=u=>r.check(Mr(u)),r.optional=()=>ba(r),r.nullable=()=>dt(r),r.nullish=()=>ba(dt(r)),r.nonoptional=u=>kQ(r,u),r.array=()=>be(r),r.or=u=>ya([r,u]),r.and=u=>BQ(r,u),r.transform=u=>Da(r,qg(u)),r.default=u=>bQ(r,u),r.prefault=u=>wQ(r,u),r.catch=u=>vQ(r,u),r.pipe=u=>Da(r,u),r.readonly=()=>FQ(r),r.describe=u=>{const E=r.clone();return xt.add(E,{description:u}),E},Object.defineProperty(r,"description",{get(){return xt.get(r)?.description},configurable:!0}),r.meta=(...u)=>{if(u.length===0)return xt.get(r);const E=r.clone();return xt.add(E,u[0]),E},r.isOptional=()=>r.safeParse(void 0).success,r.isNullable=()=>r.safeParse(null).success,r)),kg=H("_ZodString",(r,i)=>{Ki.init(r,i),qA.init(r,i);const u=r._zod.bag;r.format=u.format??null,r.minLength=u.minimum??null,r.maxLength=u.maximum??null,r.regex=(...E)=>r.check(cg(...E)),r.includes=(...E)=>r.check(Eg(...E)),r.startsWith=(...E)=>r.check(lg(...E)),r.endsWith=(...E)=>r.check(Bg(...E)),r.min=(...E)=>r.check(zn(...E)),r.max=(...E)=>r.check(la(...E)),r.length=(...E)=>r.check(Ba(...E)),r.nonempty=(...E)=>r.check(zn(1,...E)),r.lowercase=E=>r.check(ug(E)),r.uppercase=E=>r.check(Ig(E)),r.trim=()=>r.check(fg()),r.normalize=(...E)=>r.check(Qg(...E)),r.toLowerCase=()=>r.check(dg()),r.toUpperCase=()=>r.check(hg()),r.slugify=()=>r.check(mg())}),Ca=H("ZodString",(r,i)=>{Ki.init(r,i),kg.init(r,i),r.email=u=>r.check(js(_g,u)),r.url=u=>r.check(Ia(fa,u)),r.jwt=u=>r.check(sg(jg,u)),r.emoji=u=>r.check(Xs(Sg,u)),r.guid=u=>r.check(ua(Qa,u)),r.uuid=u=>r.check(Js(Cr,u)),r.uuidv4=u=>r.check(Zs(Cr,u)),r.uuidv6=u=>r.check(Hs(Cr,u)),r.uuidv7=u=>r.check($s(Cr,u)),r.nanoid=u=>r.check(zs(vg,u)),r.guid=u=>r.check(ua(Qa,u)),r.cuid=u=>r.check(Ks(Rg,u)),r.cuid2=u=>r.check(Ws(Tg,u)),r.ulid=u=>r.check(qs(Fg,u)),r.base64=u=>r.check(ig(Lg,u)),r.base64url=u=>r.check(og(Pg,u)),r.xid=u=>r.check(Vs(Mg,u)),r.ksuid=u=>r.check(Ag(Og,u)),r.ipv4=u=>r.check(eg(Ng,u)),r.ipv6=u=>r.check(tg(Ug,u)),r.cidrv4=u=>r.check(rg(Gg,u)),r.cidrv6=u=>r.check(ng(xg,u)),r.e164=u=>r.check(ag(Yg,u)),r.datetime=u=>r.check(PC(u)),r.date=u=>r.check(YC(u)),r.time=u=>r.check(jC(u)),r.duration=u=>r.check(JC(u))});function GA(r){return zB(Ca,r)}const fe=H("ZodStringFormat",(r,i)=>{Qe.init(r,i),kg.init(r,i)}),_g=H("ZodEmail",(r,i)=>{dl.init(r,i),fe.init(r,i)});function lb(r){return js(_g,r)}const Qa=H("ZodGUID",(r,i)=>{Ql.init(r,i),fe.init(r,i)});function Bb(r){return ua(Qa,r)}const Cr=H("ZodUUID",(r,i)=>{fl.init(r,i),fe.init(r,i)});function Cb(r){return Js(Cr,r)}function Qb(r){return Zs(Cr,r)}function fb(r){return Hs(Cr,r)}function db(r){return $s(Cr,r)}const fa=H("ZodURL",(r,i)=>{hl.init(r,i),fe.init(r,i)});function hb(r){return Ia(fa,r)}function mb(r){return Ia(fa,{protocol:/^https?$/,hostname:TE,...tA(r)})}const Sg=H("ZodEmoji",(r,i)=>{ml.init(r,i),fe.init(r,i)});function pb(r){return Xs(Sg,r)}const vg=H("ZodNanoID",(r,i)=>{pl.init(r,i),fe.init(r,i)});function yb(r){return zs(vg,r)}const Rg=H("ZodCUID",(r,i)=>{yl.init(r,i),fe.init(r,i)});function bb(r){return Ks(Rg,r)}const Tg=H("ZodCUID2",(r,i)=>{bl.init(r,i),fe.init(r,i)});function Db(r){return Ws(Tg,r)}const Fg=H("ZodULID",(r,i)=>{Dl.init(r,i),fe.init(r,i)});function wb(r){return qs(Fg,r)}const Mg=H("ZodXID",(r,i)=>{wl.init(r,i),fe.init(r,i)});function kb(r){return Vs(Mg,r)}const Og=H("ZodKSUID",(r,i)=>{kl.init(r,i),fe.init(r,i)});function _b(r){return Ag(Og,r)}const Ng=H("ZodIPv4",(r,i)=>{Tl.init(r,i),fe.init(r,i)});function Sb(r){return eg(Ng,r)}const nQ=H("ZodMAC",(r,i)=>{Ml.init(r,i),fe.init(r,i)});function vb(r){return WB(nQ,r)}const Ug=H("ZodIPv6",(r,i)=>{Fl.init(r,i),fe.init(r,i)});function Rb(r){return tg(Ug,r)}const Gg=H("ZodCIDRv4",(r,i)=>{Ol.init(r,i),fe.init(r,i)});function Tb(r){return rg(Gg,r)}const xg=H("ZodCIDRv6",(r,i)=>{Nl.init(r,i),fe.init(r,i)});function Fb(r){return ng(xg,r)}const Lg=H("ZodBase64",(r,i)=>{Ul.init(r,i),fe.init(r,i)});function Mb(r){return ig(Lg,r)}const Pg=H("ZodBase64URL",(r,i)=>{xl.init(r,i),fe.init(r,i)});function Ob(r){return og(Pg,r)}const Yg=H("ZodE164",(r,i)=>{Ll.init(r,i),fe.init(r,i)});function Nb(r){return ag(Yg,r)}const jg=H("ZodJWT",(r,i)=>{Yl.init(r,i),fe.init(r,i)});function Ub(r){return sg(jg,r)}const to=H("ZodCustomStringFormat",(r,i)=>{jl.init(r,i),fe.init(r,i)});function Gb(r,i,u={}){return eo(to,r,i,u)}function xb(r){return eo(to,"hostname",RE,r)}function Lb(r){return eo(to,"hex",XE,r)}function Pb(r,i){const u=i?.enc??"hex",E=`${r}_${u}`,g=vs[E];if(!g)throw new Error(`Unrecognized hash format: ${E}`);return eo(to,E,g,i)}const da=H("ZodNumber",(r,i)=>{Ms.init(r,i),qA.init(r,i),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.int=E=>r.check(Jg(E)),r.safe=E=>r.check(Jg(E)),r.positive=E=>r.check(an(0,E)),r.nonnegative=E=>r.check(Qt(0,E)),r.negative=E=>r.check(on(0,E)),r.nonpositive=E=>r.check(Lt(0,E)),r.multipleOf=(E,g)=>r.check(Vi(E,g)),r.step=(E,g)=>r.check(Vi(E,g)),r.finite=()=>r;const u=r._zod.bag;r.minValue=Math.max(u.minimum??Number.NEGATIVE_INFINITY,u.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,r.maxValue=Math.min(u.maximum??Number.POSITIVE_INFINITY,u.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,r.isInt=(u.format??"").includes("int")||Number.isSafeInteger(u.multipleOf??.5),r.isFinite=!0,r.format=u.format??null});function G(r){return rC(da,r)}const Kn=H("ZodNumberFormat",(r,i)=>{Jl.init(r,i),da.init(r,i)});function Jg(r){return iC(Kn,r)}function Yb(r){return oC(Kn,r)}function jb(r){return aC(Kn,r)}function Jb(r){return sC(Kn,r)}function Zb(r){return gC(Kn,r)}const ha=H("ZodBoolean",(r,i)=>{Os.init(r,i),qA.init(r,i)});function Qr(r){return cC(ha,r)}const ma=H("ZodBigInt",(r,i)=>{Ns.init(r,i),qA.init(r,i),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.positive=E=>r.check(an(BigInt(0),E)),r.negative=E=>r.check(on(BigInt(0),E)),r.nonpositive=E=>r.check(Lt(BigInt(0),E)),r.nonnegative=E=>r.check(Qt(BigInt(0),E)),r.multipleOf=(E,g)=>r.check(Vi(E,g));const u=r._zod.bag;r.minValue=u.minimum??null,r.maxValue=u.maximum??null,r.format=u.format??null});function Hb(r){return IC(ma,r)}const Zg=H("ZodBigIntFormat",(r,i)=>{Zl.init(r,i),ma.init(r,i)});function $b(r){return lC(Zg,r)}function Xb(r){return BC(Zg,r)}const iQ=H("ZodSymbol",(r,i)=>{Hl.init(r,i),qA.init(r,i)});function zb(r){return CC(iQ,r)}const oQ=H("ZodUndefined",(r,i)=>{$l.init(r,i),qA.init(r,i)});function Kb(r){return QC(oQ,r)}const aQ=H("ZodNull",(r,i)=>{Xl.init(r,i),qA.init(r,i)});function Hg(r){return fC(aQ,r)}const sQ=H("ZodAny",(r,i)=>{zl.init(r,i),qA.init(r,i)});function Wb(){return dC(sQ)}const gQ=H("ZodUnknown",(r,i)=>{Kl.init(r,i),qA.init(r,i)});function Wn(){return hC(gQ)}const cQ=H("ZodNever",(r,i)=>{Wl.init(r,i),qA.init(r,i)});function $g(r){return mC(cQ,r)}const uQ=H("ZodVoid",(r,i)=>{ql.init(r,i),qA.init(r,i)});function qb(r){return pC(uQ,r)}const Xg=H("ZodDate",(r,i)=>{Vl.init(r,i),qA.init(r,i),r.min=(E,g)=>r.check(Qt(E,g)),r.max=(E,g)=>r.check(Lt(E,g));const u=r._zod.bag;r.minDate=u.minimum?new Date(u.minimum):null,r.maxDate=u.maximum?new Date(u.maximum):null});function Vb(r){return yC(Xg,r)}const IQ=H("ZodArray",(r,i)=>{eB.init(r,i),qA.init(r,i),r.element=i.element,r.min=(u,E)=>r.check(zn(u,E)),r.nonempty=u=>r.check(zn(1,u)),r.max=(u,E)=>r.check(la(u,E)),r.length=(u,E)=>r.check(Ba(u,E)),r.unwrap=()=>r.element});function be(r,i){return RC(IQ,r,i)}function AD(r){const i=r._zod.def.shape;return vt(Object.keys(i))}const pa=H("ZodObject",(r,i)=>{iB.init(r,i),qA.init(r,i),te(r,"shape",()=>i.shape),r.keyof=()=>vt(Object.keys(r._zod.def.shape)),r.catchall=u=>r.clone({...r._zod.def,catchall:u}),r.passthrough=()=>r.clone({...r._zod.def,catchall:Wn()}),r.loose=()=>r.clone({...r._zod.def,catchall:Wn()}),r.strict=()=>r.clone({...r._zod.def,catchall:$g()}),r.strip=()=>r.clone({...r._zod.def,catchall:void 0}),r.extend=u=>AE(r,u),r.safeExtend=u=>eE(r,u),r.merge=u=>tE(r,u),r.pick=u=>qI(r,u),r.omit=u=>VI(r,u),r.partial=(...u)=>rE(Vg,r,u[0]),r.required=(...u)=>nE(Ac,r,u[0])});function NA(r,i){const u={type:"object",shape:r??{},...tA(i)};return new pa(u)}function eD(r,i){return new pa({type:"object",shape:r,catchall:$g(),...tA(i)})}function tD(r,i){return new pa({type:"object",shape:r,catchall:Wn(),...tA(i)})}const zg=H("ZodUnion",(r,i)=>{Us.init(r,i),qA.init(r,i),r.options=i.options});function ya(r,i){return new zg({type:"union",options:r,...tA(i)})}const EQ=H("ZodDiscriminatedUnion",(r,i)=>{zg.init(r,i),aB.init(r,i)});function fr(r,i,u){return new EQ({type:"union",options:i,discriminator:r,...tA(u)})}const lQ=H("ZodIntersection",(r,i)=>{sB.init(r,i),qA.init(r,i)});function BQ(r,i){return new lQ({type:"intersection",left:r,right:i})}const CQ=H("ZodTuple",(r,i)=>{xs.init(r,i),qA.init(r,i),r.rest=u=>r.clone({...r._zod.def,rest:u})});function Kg(r,i,u){const E=i instanceof HA,g=E?u:i,a=E?i:null;return new CQ({type:"tuple",items:r,rest:a,...tA(g)})}const Wg=H("ZodRecord",(r,i)=>{cB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function ro(r,i,u){return new Wg({type:"record",keyType:r,valueType:i,...tA(u)})}function rD(r,i,u){const E=St(r);return E._zod.values=void 0,new Wg({type:"record",keyType:E,valueType:i,...tA(u)})}const QQ=H("ZodMap",(r,i)=>{uB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function nD(r,i,u){return new QQ({type:"map",keyType:r,valueType:i,...tA(u)})}const fQ=H("ZodSet",(r,i)=>{EB.init(r,i),qA.init(r,i),r.min=(...u)=>r.check(Ao(...u)),r.nonempty=u=>r.check(Ao(1,u)),r.max=(...u)=>r.check(Ea(...u)),r.size=(...u)=>r.check(gg(...u))});function iD(r,i){return new fQ({type:"set",valueType:r,...tA(i)})}const no=H("ZodEnum",(r,i)=>{BB.init(r,i),qA.init(r,i),r.enum=i.entries,r.options=Object.values(i.entries);const u=new Set(Object.keys(i.entries));r.extract=(E,g)=>{const a={};for(const h of E)if(u.has(h))a[h]=i.entries[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})},r.exclude=(E,g)=>{const a={...i.entries};for(const h of E)if(u.has(h))delete a[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})}});function vt(r,i){const u=Array.isArray(r)?Object.fromEntries(r.map(E=>[E,E])):r;return new no({type:"enum",entries:u,...tA(i)})}function oD(r,i){return new no({type:"enum",entries:r,...tA(i)})}const dQ=H("ZodLiteral",(r,i)=>{CB.init(r,i),qA.init(r,i),r.values=new Set(i.values),Object.defineProperty(r,"value",{get(){if(i.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return i.values[0]}})});function DA(r,i){return new dQ({type:"literal",values:Array.isArray(r)?r:[r],...tA(i)})}const hQ=H("ZodFile",(r,i)=>{QB.init(r,i),qA.init(r,i),r.min=(u,E)=>r.check(Ao(u,E)),r.max=(u,E)=>r.check(Ea(u,E)),r.mime=(u,E)=>r.check(Cg(Array.isArray(u)?u:[u],E))});function aD(r){return TC(hQ,r)}const mQ=H("ZodTransform",(r,i)=>{fB.init(r,i),qA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);u.addIssue=a=>{if(typeof a=="string")u.issues.push($n(a,u.value,i));else{const h=a;h.fatal&&(h.continue=!1),h.code??(h.code="custom"),h.input??(h.input=u.value),h.inst??(h.inst=r),u.issues.push($n(h))}};const g=i.transform(u.value,u);return g instanceof Promise?g.then(a=>(u.value=a,u)):(u.value=g,u)}});function qg(r){return new mQ({type:"transform",transform:r})}const Vg=H("ZodOptional",(r,i)=>{hB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ba(r){return new Vg({type:"optional",innerType:r})}const pQ=H("ZodNullable",(r,i)=>{mB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function dt(r){return new pQ({type:"nullable",innerType:r})}function sD(r){return ba(dt(r))}const yQ=H("ZodDefault",(r,i)=>{pB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeDefault=r.unwrap});function bQ(r,i){return new yQ({type:"default",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const DQ=H("ZodPrefault",(r,i)=>{bB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function wQ(r,i){return new DQ({type:"prefault",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const Ac=H("ZodNonOptional",(r,i)=>{DB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function kQ(r,i){return new Ac({type:"nonoptional",innerType:r,...tA(i)})}const _Q=H("ZodSuccess",(r,i)=>{kB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function gD(r){return new _Q({type:"success",innerType:r})}const SQ=H("ZodCatch",(r,i)=>{_B.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeCatch=r.unwrap});function vQ(r,i){return new SQ({type:"catch",innerType:r,catchValue:typeof i=="function"?i:()=>i})}const RQ=H("ZodNaN",(r,i)=>{SB.init(r,i),qA.init(r,i)});function cD(r){return DC(RQ,r)}const ec=H("ZodPipe",(r,i)=>{vB.init(r,i),qA.init(r,i),r.in=i.in,r.out=i.out});function Da(r,i){return new ec({type:"pipe",in:r,out:i})}const tc=H("ZodCodec",(r,i)=>{ec.init(r,i),Ls.init(r,i)});function uD(r,i,u){return new tc({type:"pipe",in:r,out:i,transform:u.decode,reverseTransform:u.encode})}const TQ=H("ZodReadonly",(r,i)=>{RB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function FQ(r){return new TQ({type:"readonly",innerType:r})}const MQ=H("ZodTemplateLiteral",(r,i)=>{FB.init(r,i),qA.init(r,i)});function ID(r,i){return new MQ({type:"template_literal",parts:r,...tA(i)})}const OQ=H("ZodLazy",(r,i)=>{NB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.getter()});function NQ(r){return new OQ({type:"lazy",getter:r})}const UQ=H("ZodPromise",(r,i)=>{OB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ED(r){return new UQ({type:"promise",innerType:r})}const GQ=H("ZodFunction",(r,i)=>{MB.init(r,i),qA.init(r,i)});function xQ(r){return new GQ({type:"function",input:Array.isArray(r?.input)?Kg(r?.input):r?.input??be(Wn()),output:r?.output??Wn()})}const wa=H("ZodCustom",(r,i)=>{UB.init(r,i),qA.init(r,i)});function lD(r){const i=new we({check:"custom"});return i._zod.check=r,i}function BD(r,i){return FC(wa,r??(()=>!0),i)}function LQ(r,i={}){return MC(wa,r,i)}function PQ(r){return OC(r)}const CD=UC,QD=GC;function fD(r,i={error:`Input not instance of ${r.name}`}){const u=new wa({type:"custom",check:"custom",fn:E=>E instanceof r,abort:!0,...tA(i)});return u._zod.bag.Class=r,u}const dD=(...r)=>xC({Codec:tc,Boolean:ha,String:Ca},...r);function hD(r){const i=NQ(()=>ya([GA(r),G(),Qr(),Hg(),be(i),ro(GA(),i)]));return i}function YQ(r,i){return Da(qg(r),i)}const mD={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function pD(r){it({customError:r})}function yD(){return it().customError}var rc;rc||(rc={});function bD(r){return KB(Ca,r)}function Je(r){return nC(da,r)}function DD(r){return uC(ha,r)}function XA(r){return EC(ma,r)}function wD(r){return bC(Xg,r)}var kD=Object.freeze({__proto__:null,bigint:XA,boolean:DD,date:wD,number:Je,string:bD});it(LB());var _D=Object.freeze({__proto__:null,$brand:jI,$input:XB,$output:$B,NEVER:YI,TimePrecision:qB,ZodAny:sQ,ZodArray:IQ,ZodBase64:Lg,ZodBase64URL:Pg,ZodBigInt:ma,ZodBigIntFormat:Zg,ZodBoolean:ha,ZodCIDRv4:Gg,ZodCIDRv6:xg,ZodCUID:Rg,ZodCUID2:Tg,ZodCatch:SQ,ZodCodec:tc,ZodCustom:wa,ZodCustomStringFormat:to,ZodDate:Xg,ZodDefault:yQ,ZodDiscriminatedUnion:EQ,ZodE164:Yg,ZodEmail:_g,ZodEmoji:Sg,ZodEnum:no,ZodError:Eb,ZodFile:hQ,get ZodFirstPartyTypeKind(){return rc},ZodFunction:GQ,ZodGUID:Qa,ZodIPv4:Ng,ZodIPv6:Ug,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,ZodIntersection:lQ,ZodIssueCode:mD,ZodJWT:jg,ZodKSUID:Og,ZodLazy:OQ,ZodLiteral:dQ,ZodMAC:nQ,ZodMap:QQ,ZodNaN:RQ,ZodNanoID:vg,ZodNever:cQ,ZodNonOptional:Ac,ZodNull:aQ,ZodNullable:pQ,ZodNumber:da,ZodNumberFormat:Kn,ZodObject:pa,ZodOptional:Vg,ZodPipe:ec,ZodPrefault:DQ,ZodPromise:UQ,ZodReadonly:TQ,ZodRealError:ft,ZodRecord:Wg,ZodSet:fQ,ZodString:Ca,ZodStringFormat:fe,ZodSuccess:_Q,ZodSymbol:iQ,ZodTemplateLiteral:MQ,ZodTransform:mQ,ZodTuple:CQ,ZodType:qA,ZodULID:Fg,ZodURL:fa,ZodUUID:Cr,ZodUndefined:oQ,ZodUnion:zg,ZodUnknown:gQ,ZodVoid:uQ,ZodXID:Mg,_ZodString:kg,_default:bQ,_function:xQ,any:Wb,array:be,base64:Mb,base64url:Ob,bigint:Hb,boolean:Qr,catch:vQ,check:lD,cidrv4:Tb,cidrv6:Fb,clone:St,codec:uD,coerce:kD,config:it,core:ub,cuid:bb,cuid2:Db,custom:BD,date:Vb,decode:WC,decodeAsync:VC,describe:CD,discriminatedUnion:fr,e164:Nb,email:lb,emoji:pb,encode:KC,encodeAsync:qC,endsWith:Bg,enum:vt,file:aD,flattenError:Qs,float32:Yb,float64:jb,formatError:fs,function:xQ,getErrorMap:yD,globalRegistry:xt,gt:an,gte:Qt,guid:Bb,hash:Pb,hex:Lb,hostname:xb,httpUrl:mb,includes:Eg,instanceof:fD,int:Jg,int32:Jb,int64:$b,intersection:BQ,ipv4:Sb,ipv6:Rb,iso:Ib,json:hD,jwt:Ub,keyof:AD,ksuid:_b,lazy:NQ,length:Ba,literal:DA,locales:ZB,looseObject:tD,lowercase:ug,lt:on,lte:Lt,mac:vb,map:nD,maxLength:la,maxSize:Ea,meta:QD,mime:Cg,minLength:zn,minSize:Ao,multipleOf:Vi,nan:cD,nanoid:yb,nativeEnum:oD,negative:kC,never:$g,nonnegative:SC,nonoptional:kQ,nonpositive:_C,normalize:Qg,null:Hg,nullable:dt,nullish:sD,number:G,object:NA,optional:ba,overwrite:Mr,parse:HC,parseAsync:$C,partialRecord:rD,pipe:Da,positive:wC,prefault:wQ,preprocess:YQ,prettifyError:uE,promise:ED,property:vC,readonly:FQ,record:ro,refine:LQ,regex:cg,regexes:vs,registry:Ys,safeDecode:eQ,safeDecodeAsync:rQ,safeEncode:AQ,safeEncodeAsync:tQ,safeParse:XC,safeParseAsync:zC,set:iD,setErrorMap:pD,size:gg,slugify:mg,startsWith:lg,strictObject:eD,string:GA,stringFormat:Gb,stringbool:dD,success:gD,superRefine:PQ,symbol:zb,templateLiteral:ID,toJSONSchema:LC,toLowerCase:dg,toUpperCase:hg,transform:qg,treeifyError:gE,trim:fg,tuple:Kg,uint32:Zb,uint64:Xb,ulid:wb,undefined:Kb,union:ya,unknown:Wn,uppercase:Ig,url:hb,util:aE,uuid:Cb,uuidv4:Qb,uuidv6:fb,uuidv7:db,void:qb,xid:kb});const jQ=vt(["Frankendancer","Firedancer"]),nc=jQ.enum,VA=NA({topic:DA("summary")}),JQ=NA({topic:DA("epoch")}),qn=NA({topic:DA("gossip")}),ZQ=NA({topic:DA("peers")}),Wt=NA({topic:DA("slot")}),HQ=NA({topic:DA("block_engine")}),ka=NA({topic:DA("wait_for_supermajority")});fr("topic",[VA,JQ,qn,ZQ,Wt,HQ,ka]);const SD=GA(),vD=vt(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),RD=GA(),TD=GA(),FD=GA(),MD=XA(),$Q=vt(["perf","balanced","revenue"]);$Q.enum,vt(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","cswtch","genesi","diag","event"]);const OD=NA({kind:GA(),kind_id:G()}),XQ=XA();XA();const ND=G(),UD=G(),GD=G(),xD=G().nullable(),LD=G().nullable(),PD=NA({repair:G().array(),turbine:G().array()}),YD=Je(),jD=G(),JD=G().nullable(),ZD=G().nullable(),HD=G(),$D=G().nullable(),XD=G(),zD=G(),KD=NA({total:G(),vote:G(),nonvote_success:G(),nonvote_failed:G()}),WD=NA({ingress:be(G()),egress:be(G())}),qD=NA({pack_cranked:G(),pack_retained:G(),resolv_retained:G(),quic:G(),udp:G(),gossip:G(),block_engine:G()}),VD=NA({net_overrun:G(),quic_overrun:G(),quic_frag_drop:G(),quic_abandoned:G(),tpu_quic_invalid:G(),tpu_udp_invalid:G(),verify_overrun:G(),verify_parse:G(),verify_failed:G(),verify_duplicate:G(),dedup_duplicate:G(),resolv_lut_failed:G(),resolv_expired:G(),resolv_no_ledger:G(),resolv_ancient:G(),resolv_retained:G(),pack_invalid:G(),pack_already_executed:G(),pack_invalid_bundle:G(),pack_retained:G(),pack_leader_slow:G(),pack_wait_full:G(),pack_expired:G(),bank_invalid:G(),bank_nonce_already_advanced:G(),bank_nonce_advance_failed:G(),bank_nonce_wrong_blockhash:G(),block_success:G(),block_fail:G()}),zQ=NA({in:qD,out:VD}),Aw=NA({next_leader_slot:G().nullable(),waterfall:zQ}),KQ=NA({net_in:G(),quic:G(),verify:G(),bundle_rtt_smoothed_millis:G(),bundle_rx_delay_millis_p90:G(),dedup:G(),pack:G(),bank:G(),poh:G(),shred:G(),store:G(),net_out:G()}),ew=NA({next_leader_slot:G().nullable(),tile_primary_metric:KQ}),tw=NA({timers:be(be(G()).nullable()),sched_timers:be(be(G()).nullable()),in_backp:be(Qr().nullable()),backp_msgs:be(G().nullable()),alive:be(G().nullable()),nvcsw:be(G().nullable()),nivcsw:be(G().nullable()),last_cpu:be(G().nullable()),minflt:be(G().nullable()),majflt:be(G().nullable())});NA({tile:GA(),kind_id:G(),idle:G()});const rw=vt(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),nw=NA({phase:rw,downloading_full_snapshot_slot:G().nullable(),downloading_full_snapshot_peer:GA().nullable(),downloading_full_snapshot_elapsed_secs:G().nullable(),downloading_full_snapshot_remaining_secs:G().nullable(),downloading_full_snapshot_throughput:G().nullable(),downloading_full_snapshot_total_bytes:Je().nullable(),downloading_full_snapshot_current_bytes:Je().nullable(),downloading_incremental_snapshot_slot:G().nullable(),downloading_incremental_snapshot_peer:GA().nullable(),downloading_incremental_snapshot_elapsed_secs:G().nullable(),downloading_incremental_snapshot_remaining_secs:G().nullable(),downloading_incremental_snapshot_throughput:G().nullable(),downloading_incremental_snapshot_total_bytes:Je().nullable(),downloading_incremental_snapshot_current_bytes:Je().nullable(),ledger_slot:G().nullable(),ledger_max_slot:G().nullable(),waiting_for_supermajority_slot:G().nullable(),waiting_for_supermajority_stake_percent:G().nullable()}),WQ=vt(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]);WQ.enum;const iw=NA({phase:WQ,joining_gossip_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_reset_count:G().nullable().optional(),loading_full_snapshot_slot:G().nullable().optional(),loading_full_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_path:GA().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_insert_accounts:G().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:G().nullable().optional(),loading_incremental_snapshot_reset_count:G().nullable().optional(),loading_incremental_snapshot_slot:G().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_path:GA().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_insert_accounts:G().nullable().optional(),wait_for_supermajority_bank_hash:GA().nullable().optional(),wait_for_supermajority_shred_version:GA().nullable().optional(),wait_for_supermajority_attempt:G().nullable().optional(),wait_for_supermajority_total_stake:XA().nullable().optional(),wait_for_supermajority_connected_stake:XA().nullable().optional(),wait_for_supermajority_total_peers:G().nullable().optional(),wait_for_supermajority_connected_peers:G().nullable().optional(),catching_up_elapsed_seconds:G().nullable().optional(),catching_up_first_replay_slot:G().nullable().optional()}),ow=YQ(r=>{if(!r||typeof r!="object"||Array.isArray(r))return r;const i=r;return{...i,txn_preload_end_timestamps_nanos:i.txn_preload_end_timestamps_nanos??i.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:i.txn_start_timestamps_nanos??i.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:i.txn_load_end_timestamps_nanos??i.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:i.txn_end_timestamps_nanos??i.txn_commit_start_timestamps_nanos}},NA({start_timestamp_nanos:XA(),target_end_timestamp_nanos:XA(),txn_mb_start_timestamps_nanos:XA().array(),txn_mb_end_timestamps_nanos:XA().array(),txn_compute_units_requested:G().array(),txn_compute_units_consumed:G().array(),txn_transaction_fee:XA().array(),txn_priority_fee:XA().array(),txn_tips:XA().array(),txn_error_code:G().array(),txn_from_bundle:Qr().array(),txn_is_simple_vote:Qr().array(),txn_bank_idx:G().array(),txn_preload_end_timestamps_nanos:XA().array(),txn_start_timestamps_nanos:XA().array(),txn_load_end_timestamps_nanos:XA().array(),txn_end_timestamps_nanos:XA().array(),txn_commit_end_timestamps_nanos:XA().array().optional(),txn_arrival_timestamps_nanos:XA().array(),txn_microblock_id:G().array(),txn_landed:Qr().array(),txn_signature:GA().array(),txn_source_ipv4:GA().array(),txn_source_tpu:GA().array()})),aw=vt(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),sw=NA({slot:G(),mine:Qr(),skipped:Qr(),level:aw,success_nonvote_transaction_cnt:G().nullable(),failed_nonvote_transaction_cnt:G().nullable(),success_vote_transaction_cnt:G().nullable(),failed_vote_transaction_cnt:G().nullable(),priority_fee:XA().nullable(),transaction_fee:XA().nullable(),tips:XA().nullable(),max_compute_units:G().nullable(),compute_units:G().nullable(),duration_nanos:G().nullable(),completed_time_nanos:XA().nullable(),vote_latency:G().nullable()}),gw=be(Kg([G(),G(),G(),G()])),cw=vt(["voting","non-voting","delinquent"]),uw=G(),Iw=NA({epoch:G(),skip_rate:G()}),Ew=NA({hits:G(),lookups:G(),insertions:G(),insertion_bytes:G(),evictions:G(),eviction_bytes:G(),spills:G(),spill_bytes:G(),free_bytes:G(),size_bytes:G()}),lw=fr("key",[VA.extend({key:DA("ping"),value:Hg(),id:G()}),VA.extend({key:DA("version"),value:SD}),VA.extend({key:DA("cluster"),value:vD}),VA.extend({key:DA("commit_hash"),value:RD}),VA.extend({key:DA("identity_key"),value:TD}),VA.extend({key:DA("vote_key"),value:FD}),VA.extend({key:DA("startup_time_nanos"),value:MD}),VA.extend({key:DA("schedule_strategy"),value:$Q}),VA.extend({key:DA("tiles"),value:OD.array()}),VA.extend({key:DA("identity_balance"),value:XQ}),VA.extend({key:DA("vote_balance"),value:XQ}),VA.extend({key:DA("root_slot"),value:ND}),VA.extend({key:DA("optimistically_confirmed_slot"),value:UD}),VA.extend({key:DA("completed_slot"),value:GD}),VA.extend({key:DA("estimated_slot"),value:jD}),VA.extend({key:DA("reset_slot"),value:JD}),VA.extend({key:DA("storage_slot"),value:ZD}),VA.extend({key:DA("vote_slot"),value:HD}),VA.extend({key:DA("slot_caught_up"),value:$D}),VA.extend({key:DA("active_fork_count"),value:XD}),VA.extend({key:DA("estimated_slot_duration_nanos"),value:zD}),VA.extend({key:DA("estimated_tps"),value:KD}),VA.extend({key:DA("live_network_metrics"),value:WD}),VA.extend({key:DA("live_txn_waterfall"),value:Aw}),VA.extend({key:DA("live_tile_primary_metric"),value:ew}),VA.extend({key:DA("live_tile_metrics"),value:tw}),VA.extend({key:DA("live_tile_timers"),value:G().array()}),VA.extend({key:DA("startup_progress"),value:nw}),VA.extend({key:DA("boot_progress"),value:iw}),VA.extend({key:DA("tps_history"),value:gw}),VA.extend({key:DA("vote_state"),value:cw}),VA.extend({key:DA("vote_distance"),value:uw}),VA.extend({key:DA("skip_rate"),value:Iw}),VA.extend({key:DA("turbine_slot"),value:xD}),VA.extend({key:DA("repair_slot"),value:LD}),VA.extend({key:DA("catch_up_history"),value:PD}),VA.extend({key:DA("server_time_nanos"),value:YD}),VA.extend({key:DA("live_program_cache"),value:Ew})]),Bw=NA({epoch:G(),start_time_nanos:GA().nullable(),end_time_nanos:GA().nullable(),start_slot:G(),end_slot:G(),excluded_stake_lamports:XA(),staked_pubkeys:GA().array(),staked_lamports:XA().array(),leader_slots:G().array()}),Cw=fr("key",[JQ.extend({key:DA("new"),value:Bw})]),Qw=NA({num_push_messages_rx_success:G(),num_push_messages_rx_failure:G(),num_push_entries_rx_success:G(),num_push_entries_rx_failure:G(),num_push_entries_rx_duplicate:G(),num_pull_response_messages_rx_success:G(),num_pull_response_messages_rx_failure:G(),num_pull_response_entries_rx_success:G(),num_pull_response_entries_rx_failure:G(),num_pull_response_entries_rx_duplicate:G(),total_peers:G(),total_stake:XA(),connected_stake:XA(),connected_staked_peers:G(),connected_unstaked_peers:G()}),qQ=NA({total_throughput:G(),peer_names:GA().array(),peer_identities:GA().array(),peer_throughput:G().array()}),fw=NA({capacity:G(),expired_count:G(),evicted_count:G(),count:G().array(),count_tx:G().array(),bytes_tx:G().array()}),dw=NA({num_bytes_rx:G().array(),num_bytes_tx:G().array(),num_messages_rx:G().array(),num_messages_tx:G().array()}),hw=NA({health:Qw,ingress:qQ,egress:qQ,storage:fw,messages:dw}),mw=G(),VQ=ya([GA(),G()]),Af=ro(GA(),ro(GA(),VQ)).nullable(),pw=NA({changes:be(NA({row_index:G(),column_name:GA(),new_value:VQ}))}),yw=fr("key",[qn.extend({key:DA("network_stats"),value:hw}),qn.extend({key:DA("peers_size_update"),value:mw}),qn.extend({key:DA("query_scroll"),value:Af}),qn.extend({key:DA("query_sort"),value:Af}),qn.extend({key:DA("view_update"),value:pw})]),bw=NA({client_id:G().nullable().optional(),wallclock:G(),shred_version:G(),version:GA().nullable(),feature_set:G().nullable(),sockets:ro(GA(),GA()),country_code:GA().nullable().optional(),city_name:GA().nullable().optional()}),Dw=NA({vote_account:GA(),activated_stake:XA(),last_vote:dt(G()),root_slot:dt(G()),epoch_credits:G(),commission:G(),delinquent:Qr()}),ef=NA({name:dt(GA()),details:dt(GA()),website:dt(GA()),icon_url:dt(GA()),keybase_username:dt(GA())}),tf=NA({identity_pubkey:GA(),gossip:dt(bw),vote:be(Dw),info:dt(ef)}),ww=NA({identity_pubkey:GA()}),kw=NA({add:be(tf).optional(),update:be(tf).optional(),remove:be(ww).optional()}),_w=fr("key",[ZQ.extend({key:DA("update"),value:kw})]),Sw=NA({timestamp_nanos:GA(),tile_timers:G().array()}),vw=NA({timestamp_nanos:XA(),regular:G(),votes:G(),conflicting:G(),bundles:G()}),Rw=NA({account:GA(),cost:G()}),Tw=NA({used_total_block_cost:G(),used_total_vote_cost:G(),used_account_write_costs:Rw.array(),used_total_bytes:G(),used_total_microblocks:G(),max_total_block_cost:G(),max_total_vote_cost:G(),max_account_write_cost:G(),max_total_bytes:G(),max_total_microblocks:G()}),Fw=NA({block_hash:GA().optional(),end_slot_reason:GA().optional(),slot_schedule_counts:G().array(),end_slot_schedule_counts:G().array(),pending_smallest_cost:G().nullable(),pending_smallest_bytes:G().nullable(),pending_vote_smallest_cost:G().nullable(),pending_vote_smallest_bytes:G().nullable()}),_a=NA({publish:sw,waterfall:zQ.nullable().optional(),tile_primary_metric:KQ.nullable().optional(),tile_timers:Sw.array().nullable().optional(),scheduler_counts:vw.array().nullable().optional(),transactions:ow.nullable().optional(),limits:Tw.nullable().optional(),scheduler_stats:Fw.nullable().optional()}),Mw=G().array(),Ow=G().array(),Nw=NA({slots_largest_tips:G().array(),vals_largest_tips:XA().array(),slots_smallest_tips:G().array(),vals_smallest_tips:XA().array(),slots_largest_fees:G().array(),vals_largest_fees:XA().array(),slots_smallest_fees:G().array(),vals_smallest_fees:XA().array(),slots_largest_rewards:G().array(),vals_largest_rewards:XA().array(),slots_smallest_rewards:G().array(),vals_smallest_rewards:XA().array(),slots_largest_duration:G().array(),vals_largest_duration:XA().array(),slots_smallest_duration:G().array(),vals_smallest_duration:XA().array(),slots_largest_compute_units:G().array(),vals_largest_compute_units:XA().array(),slots_smallest_compute_units:G().array(),vals_smallest_compute_units:XA().array(),slots_largest_skipped:G().array(),vals_largest_skipped:XA().array(),slots_smallest_skipped:G().array(),vals_smallest_skipped:XA().array()}),Uw=NA({reference_slot:G(),reference_ts:XA(),slot_delta:G().array(),shred_idx:G().nullable().array(),event:G().array(),event_ts_delta:Je().array()}),Gw=fr("key",[Wt.extend({key:DA("skipped_history"),value:Mw}),Wt.extend({key:DA("skipped_history_cluster"),value:Ow}),Wt.extend({key:DA("update"),value:_a}),Wt.extend({key:DA("query"),value:_a.nullable()}),Wt.extend({key:DA("query_detailed"),value:_a.nullable()}),Wt.extend({key:DA("query_transactions"),value:_a.nullable()}),Wt.extend({key:DA("query_rankings"),value:Nw}),Wt.extend({key:DA("live_shreds"),value:Uw}),Wt.extend({key:DA("late_votes_history"),value:NA({slot:G().array(),latency:G().nullable().array()})})]),xw=vt(["disconnected","connecting","connected"]),Lw=NA({name:GA(),url:GA(),ip:GA().optional(),status:xw}),Pw=fr("key",[HQ.extend({key:DA("update"),value:Lw})]),Yw=NA({staked_pubkeys:GA().array(),staked_lamports:XA().array(),infos:be(ef.nullable())}),jw=GA().array(),Jw=GA().array(),Zw=fr("key",[ka.extend({key:DA("stakes"),value:Yw}),ka.extend({key:DA("peer_add"),value:jw}),ka.extend({key:DA("peer_remove"),value:Jw})]),Hw=_D.discriminatedUnion("topic",[lw,Cw,yw,_w,Gw,Pw,Zw]);function ic(r){if(r<1)throw new Error("Ring buffer size must be at least 1");const i=new Array(r);let u=0,E=0;return{get length(){return E},push(g){i[u]=g,u=(u+1)%r,E"u")return!1;const r=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(r)||"ontouchstart"in window&&!!matchMedia?.("(hover: none)").matches}$w();var Xw={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},zw=Array.prototype.slice;function Sa(r){var i=r.length;return i?i===1?[r[0]]:i===2?[r[0],r[1]]:i===3?[r[0],r[1],r[2]]:zw.call(r,0):[]}function Kw(r){var i={};for(var u in r)Xw[u]||(i[u]=r[u]);return i}function Ww(r){return typeof r=="function"&&r.isMemoized}function qw(r,i){return r===i||r!==r&&i!==i}function rf(r,i){var u={};for(var E in r)u[E]=r[E];for(var E in i)u[E]=i[E];return u}var Vw=function(){function r(i){this.keys=[],this.values=[],this.options=i;var u=typeof i.isMatchingKey=="function";u?this.getKeyIndex=this._getKeyIndexFromMatchingKey:i.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof i.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||u,this.shouldUpdateOnAdd=typeof i.onCacheAdd=="function",this.shouldUpdateOnChange=typeof i.onCacheChange=="function",this.shouldUpdateOnHit=typeof i.onCacheHit=="function"}return Object.defineProperty(r.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"snapshot",{get:function(){return{keys:Sa(this.keys),size:this.size,values:Sa(this.values)}},enumerable:!1,configurable:!0}),r.prototype._getKeyIndexFromMatchingKey=function(i){var u=this.options,E=u.isMatchingKey,g=u.maxSize,a=this.keys,h=a.length;if(!h)return-1;if(E(a[0],i))return 0;if(g>1){for(var w=1;w1){for(var k=0;k1){for(var h=0;h=k&&(g.length=a.length=k)},r.prototype.updateAsyncCache=function(i){var u=this,E=this.options,g=E.onCacheChange,a=E.onCacheHit,h=this.keys[0],w=this.values[0];this.values[0]=w.then(function(k){return u.shouldUpdateOnHit&&a(u,u.options,i),u.shouldUpdateOnChange&&g(u,u.options,i),k},function(k){var v=u.getKeyIndex(h);throw v!==-1&&(u.keys.splice(v,1),u.values.splice(v,1)),k})},r}();function nf(r,i){if(i===void 0&&(i={}),Ww(r))return nf(r.fn,rf(r.options,i));if(typeof r!="function")throw new TypeError("You must pass a function to `memoize`.");var u=i.isEqual,E=u===void 0?qw:u,g=i.isMatchingKey,a=i.isPromise,h=a===void 0?!1:a,w=i.maxSize,k=w===void 0?1:w,v=i.onCacheAdd,F=i.onCacheChange,x=i.onCacheHit,$=i.transformKey,j=rf({isEqual:E,isMatchingKey:g,isPromise:h,maxSize:k,onCacheAdd:v,onCacheChange:F,onCacheHit:x,transformKey:$},Kw(i)),P=new Vw(j),rA=P.keys,iA=P.values,TA=P.canTransformKey,pA=P.shouldCloneArguments,MA=P.shouldUpdateOnAdd,xA=P.shouldUpdateOnChange,ce=P.shouldUpdateOnHit,se=function(){var Ue=pA?Sa(arguments):arguments;TA&&(Ue=$(Ue));var at=rA.length?P.getKeyIndex(Ue):-1;if(at!==-1)ce&&x(P,j,se),at&&(P.orderByLru(rA[at],iA[at],at),xA&&F(P,j,se));else{var OA=r.apply(this,arguments),je=pA?Ue:Sa(arguments);P.orderByLru(je,OA,rA.length),h&&P.updateAsyncCache(se),MA&&v(P,j,se),xA&&F(P,j,se)}return iA[0]};return se.cache=P,se.fn=r,se.isMemoized=!0,se.options=j,se}const of=jQ.safeParse("Firedancer".trim()),af=of.error?nc.Frankendancer:of.data;nc.Frankendancer,nc.Firedancer,PA.now(),setInterval(()=>{PA.now()},1e3);function Ak(r){return r!==void 0}nf(r=>{if(r)return r.toUpperCase().split("").map(E=>String.fromCodePoint(E.charCodeAt(0)-65+127462)).join("")},{maxSize:100});function oc(r){const i=new Map;let u;function E(h,w){let k=i.get(h);return k||(k=r.createEntry(h,w),i.set(h,k)),k}function g(h){return h.lastPublishMs+h.publishIntervalMs}function a(){if(u)return;const h=performance.now();let w=1/0;for(const k of i.values()){if(!k.subscribed)continue;const v=Math.max(0,g(k)-h);v{u=void 0;const k=performance.now(),v=[];for(const F of i.values()){if(!F.subscribed||k{const k=E(h,w);k.subscribed||(k.subscribed=!0,a())},unsubscribe:h=>{const w=i.get(h);w&&(w.subscribed=!1);let k=!1;for(const v of i.values())if(v.subscribed){k=!0;break}!k&&u&&(clearTimeout(u),u=void 0)},get:h=>i.get(h),reset:h=>{const w=h?[i.get(h)].filter(Ak):i.values();for(const k of w)r.onReset?.(k),k.lastPublishMs=0},stop:()=>{u&&(clearTimeout(u),u=void 0);for(const h of i.values())h.subscribed=!1}}}function sf(r){const i=r.halfLifeMs/Math.log(2),{initMinSamples:u,warmupMs:E}=r;let g,a,h=0,w;function k(){a=void 0,h=0,g=void 0,w=void 0}function v(x){if(!E||!w)return i;const $=Math.max(.2,Math.min(1,(x-w)/E));return i*$}function F(x,$){if(!a)return x!=null&&(a={value:x,tsMs:$}),!1;x??=a.value;const j=$-a.tsMs;if(!isFinite(j)||j<=0)return!1;const P=x-a.value;if(!isFinite(P)||P<0)return k(),a={value:x,tsMs:$},!1;if(a={value:x,tsMs:$},g===void 0)return P<=0||(h+=1,hk.ema??0)),w}for(;i.lengthk.ema??0)),w}return{get ema(){return u},reset:E,tick:g}}function tk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,calc:ek(E),history:ic(g)}},collect:(u,E)=>{if(u.calc.ema.length>0){const g=[...u.calc.ema];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.calc.reset(),u.history.clear()}});return{...i,update(u,E,g){const a=i.get(u);a&&a.calc.tick(E,g)},get(u){return i.get(u)?.calc.ema}}}function rk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,values:[],history:ic(g)}},collect:(u,E)=>{if(u.values.length>0){const g=[...u.values];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.values=[],u.history.clear()}});return{...i,update(u,E){const g=i.get(u);g&&(g.values=E)},get(u){return i.get(u)?.values}}}function nk(r){function i(E){const g={};let a=!1;for(const h of E.fields)g[h]=E.calcs[h].ema??0,E.calcs[h].ema!==void 0&&(a=!0);return{value:g,hasValue:a}}const u=oc({createEntry:(E,g)=>{const a={};for(const w of g.fields)a[w]=sf(g);const h=Math.ceil(g.historyWindowMs/g.publishIntervalMs);return{key:E,subscribed:!1,lastPublishMs:0,publishIntervalMs:g.publishIntervalMs,fields:g.fields,calcs:a,history:ic(h)}},collect:(E,g)=>{const{value:a,hasValue:h}=i(E);if(h)return E.history.push({ts:g,value:a}),{key:E.key,value:a,history:E.history.toArray()}},post:r,onReset:E=>{for(const g of E.fields)E.calcs[g].reset();E.history.clear()}});return{...u,update(E,g,a){const h=u.get(E);if(h)for(const w of h.fields){const k=g[w];typeof k=="number"&&h.calcs[w].tick(k,a)}},get(E){const g=u.get(E);if(g){const{value:a,hasValue:h}=i(g);if(h)return a}}}}const ik=100,ok=3e4,ak=5e3,gf=500,cf=6e4,uf=5e3,If=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"];Object.fromEntries(If.map(r=>[r,0]));const sk={halfLifeMs:5e3,initMinSamples:10,warmupMs:1e4,publishIntervalMs:ik,historyWindowMs:ok+ak,fields:[...If]},Ef={halfLifeMs:1e3,initMinSamples:5,warmupMs:5e3,publishIntervalMs:gf,historyWindowMs:cf+uf},gk={publishIntervalMs:gf,historyWindowMs:cf+uf};function ac(r,i,u){return r.topic===i&&r.key===u}function ck(r){const i=tk(g=>r({type:"emaHistoryArray",items:g})),u=nk(g=>r({type:"emaHistoryObject",items:g})),E=rk(g=>r({type:"historyArray",items:g}));return{onMessage(g){const a=performance.now();ac(g,"gossip","network_stats")&&(u.subscribe("gossipHealth",sk),u.update("gossipHealth",g.value.health,a)),ac(g,"summary","live_network_metrics")&&(i.subscribe("ingress",Ef),i.subscribe("egress",Ef),i.update("ingress",g.value.ingress,a),i.update("egress",g.value.egress,a)),ac(g,"summary","live_tile_timers")&&(E.subscribe("tileTimers",gk),E.update("tileTimers",g.value))}}}const lf=3e3,uk=32,Vn=self;let It=null,sc,gc=!1;const io=new Map,Ik=ck(r=>Vn.postMessage(r));function Ek(r){Ik.onMessage(r);const i=`${r.topic}:${r.key}`;io.has(i)?io.get(i)?.push(r):io.set(i,[r]),gc||(gc=!0,setTimeout(lk,uk))}function lk(){gc=!1;const r=[];for(const i of io.values())for(const u of i)r.push(u);io.clear(),r.length&&Vn.postMessage({type:"kvb",items:r})}function Bf(r,i){Zn("WS",`Connecting to API WebSocket ${r.toString()}`),Vn.postMessage({type:"connecting"}),It=new WebSocket(r,i?["compress-zstd"]:void 0),It.binaryType="arraybuffer",It.onopen=function(){this===It&&(Zn("WS","Connected to API WebSocket"),Vn.postMessage({type:"connected"}))},It.onclose=function(){this===It&&(Zn("WS",`Disconnected API WebSocket, reconnecting in ${lf}ms`),Vn.postMessage({type:"disconnected"}),clearTimeout(sc),sc=setTimeout(()=>Bf(r,i),lf))};const u=new TextDecoder;It.onmessage=function(g){if(this===It)try{const a=g.data;let h;if(typeof a=="string"?h=JSON.parse(a):a instanceof ArrayBuffer&&i&&(h=JSON.parse(u.decode(i.ZstdStream.decompress(new Uint8Array(a))))),h!==void 0){const w=Hw.safeParse(h);if(!w.success){Zn("zod",h),Zn("Zod",w.error.message),Zn("Zod",w.error.issues);return}Ek(w.data)}}catch(a){Is("WS",a)}}}Vn.onmessage=r=>{const i=r.data;switch(i.type){case"connect":(async()=>{let u;if(i.compress)try{u=await dh()}catch(E){Is("WS","Failed to initialize Zstd, falling back to uncompressed",E)}Bf(i.websocketUrl,u)})();break;case"disconnect":if(clearTimeout(sc),It){try{It.close()}catch{Is("WS","Error closing WebSocket")}It=null}break;case"send":It&&It.readyState===WebSocket.OPEN?It.send(JSON.stringify(i.value)):Qp("WS","Attempting to send on closed WebSocket",i.value);break}}})(); +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const F of this.seen.entries()){const x=F[1];if(i===F[0]){h(F);continue}if(E.external){const j=E.external.registry.get(F[0])?.id;if(i!==F[0]&&j){h(F);continue}}if(this.metadataRegistry.get(F[0])?.id){h(F);continue}if(x.cycle){h(F);continue}if(x.count>1&&E.reused==="ref"){h(F);continue}}const w=(F,x)=>{const $=this.seen.get(F),j=$.def??$.schema,P={...j};if($.ref===null)return;const rA=$.ref;if($.ref=null,rA){w(rA,x);const iA=this.seen.get(rA).schema;iA.$ref&&(x.target==="draft-7"||x.target==="draft-4"||x.target==="openapi-3.0")?(j.allOf=j.allOf??[],j.allOf.push(iA)):(Object.assign(j,iA),Object.assign(j,P))}$.isParent||this.override({zodSchema:F,jsonSchema:j,path:$.path??[]})};for(const F of[...this.seen.entries()].reverse())w(F[0],{target:this.target});const k={};if(this.target==="draft-2020-12"?k.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?k.$schema="http://json-schema.org/draft-07/schema#":this.target==="draft-4"?k.$schema="http://json-schema.org/draft-04/schema#":this.target==="openapi-3.0"||console.warn(`Invalid target: ${this.target}`),E.external?.uri){const F=E.external.registry.get(i)?.id;if(!F)throw new Error("Schema is missing an `id` property");k.$id=E.external.uri(F)}Object.assign(k,g.def);const v=E.external?.defs??{};for(const F of this.seen.entries()){const x=F[1];x.def&&x.defId&&(v[x.defId]=x.def)}E.external||Object.keys(v).length>0&&(this.target==="draft-2020-12"?k.$defs=v:k.definitions=v);try{return JSON.parse(JSON.stringify(k))}catch{throw new Error("Error converting schema to JSON.")}}}function LC(r,i){if(r instanceof Ps){const E=new pg(i),g={};for(const w of r._idmap.entries()){const[k,v]=w;E.process(v)}const a={},h={registry:r,uri:i?.uri,defs:g};for(const w of r._idmap.entries()){const[k,v]=w;a[k]=E.emit(v,{...i,external:h})}if(Object.keys(g).length>0){const w=E.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[w]:g}}return{schemas:a}}const u=new pg(i);return u.process(r),u.emit(r,i)}function ot(r,i){const u=i??{seen:new Set};if(u.seen.has(r))return!1;u.seen.add(r);const E=r._zod.def;if(E.type==="transform")return!0;if(E.type==="array")return ot(E.element,u);if(E.type==="set")return ot(E.valueType,u);if(E.type==="lazy")return ot(E.getter(),u);if(E.type==="promise"||E.type==="optional"||E.type==="nonoptional"||E.type==="nullable"||E.type==="readonly"||E.type==="default"||E.type==="prefault")return ot(E.innerType,u);if(E.type==="intersection")return ot(E.left,u)||ot(E.right,u);if(E.type==="record"||E.type==="map")return ot(E.keyType,u)||ot(E.valueType,u);if(E.type==="pipe")return ot(E.in,u)||ot(E.out,u);if(E.type==="object"){for(const g in E.shape)if(ot(E.shape[g],u))return!0;return!1}if(E.type==="union"){for(const g of E.options)if(ot(g,u))return!0;return!1}if(E.type==="tuple"){for(const g of E.items)if(ot(g,u))return!0;return!!(E.rest&&ot(E.rest,u))}return!1}var cb=Object.freeze({__proto__:null}),ub=Object.freeze({__proto__:null,$ZodAny:zl,$ZodArray:eB,$ZodAsyncError:en,$ZodBase64:Ul,$ZodBase64URL:xl,$ZodBigInt:Ns,$ZodBigIntFormat:Zl,$ZodBoolean:Os,$ZodCIDRv4:Ol,$ZodCIDRv6:Nl,$ZodCUID:yl,$ZodCUID2:bl,$ZodCatch:_B,$ZodCheck:we,$ZodCheckBigIntFormat:qE,$ZodCheckEndsWith:cl,$ZodCheckGreaterThan:Ts,$ZodCheckIncludes:sl,$ZodCheckLengthEquals:nl,$ZodCheckLessThan:Rs,$ZodCheckLowerCase:ol,$ZodCheckMaxLength:tl,$ZodCheckMaxSize:VE,$ZodCheckMimeType:El,$ZodCheckMinLength:rl,$ZodCheckMinSize:Al,$ZodCheckMultipleOf:KE,$ZodCheckNumberFormat:WE,$ZodCheckOverwrite:ll,$ZodCheckProperty:Il,$ZodCheckRegex:il,$ZodCheckSizeEquals:el,$ZodCheckStartsWith:gl,$ZodCheckStringFormat:zi,$ZodCheckUpperCase:al,$ZodCodec:Ls,$ZodCustom:UB,$ZodCustomStringFormat:jl,$ZodDate:Vl,$ZodDefault:pB,$ZodDiscriminatedUnion:aB,$ZodE164:Ll,$ZodEmail:dl,$ZodEmoji:ml,$ZodEncodeError:qo,$ZodEnum:BB,$ZodError:Cs,$ZodFile:QB,$ZodFunction:MB,$ZodGUID:Ql,$ZodIPv4:Tl,$ZodIPv6:Fl,$ZodISODate:Sl,$ZodISODateTime:_l,$ZodISODuration:Rl,$ZodISOTime:vl,$ZodIntersection:sB,$ZodJWT:Yl,$ZodKSUID:kl,$ZodLazy:NB,$ZodLiteral:CB,$ZodMAC:Ml,$ZodMap:uB,$ZodNaN:SB,$ZodNanoID:pl,$ZodNever:Wl,$ZodNonOptional:DB,$ZodNull:Xl,$ZodNullable:mB,$ZodNumber:Ms,$ZodNumberFormat:Jl,$ZodObject:nB,$ZodObjectJIT:iB,$ZodOptional:hB,$ZodPipe:vB,$ZodPrefault:bB,$ZodPromise:OB,$ZodReadonly:RB,$ZodRealError:Ct,$ZodRecord:cB,$ZodRegistry:Ps,$ZodSet:EB,$ZodString:Ki,$ZodStringFormat:Qe,$ZodSuccess:kB,$ZodSymbol:Hl,$ZodTemplateLiteral:FB,$ZodTransform:fB,$ZodTuple:xs,$ZodType:HA,$ZodULID:Dl,$ZodURL:hl,$ZodUUID:fl,$ZodUndefined:$l,$ZodUnion:Us,$ZodUnknown:Kl,$ZodVoid:ql,$ZodXID:wl,$brand:jI,$constructor:H,$input:XB,$output:$B,Doc:Bl,JSONSchema:cb,JSONSchemaGenerator:pg,NEVER:YI,TimePrecision:qB,_any:dC,_array:RC,_base64:ig,_base64url:og,_bigint:IC,_boolean:cC,_catch:nb,_check:NC,_cidrv4:rg,_cidrv6:ng,_coercedBigint:EC,_coercedBoolean:uC,_coercedDate:bC,_coercedNumber:nC,_coercedString:KB,_cuid:Ks,_cuid2:Ws,_custom:FC,_date:yC,_decode:ps,_decodeAsync:bs,_default:eb,_discriminatedUnion:jy,_e164:ag,_email:js,_emoji:Xs,_encode:ms,_encodeAsync:ys,_endsWith:Bg,_enum:zy,_file:TC,_float32:oC,_float64:aC,_gt:an,_gte:Qt,_guid:ua,_includes:Eg,_int:iC,_int32:sC,_int64:lC,_intersection:Jy,_ipv4:eg,_ipv6:tg,_isoDate:AC,_isoDateTime:VB,_isoDuration:tC,_isoTime:eC,_jwt:sg,_ksuid:Ag,_lazy:sb,_length:Ba,_literal:Wy,_lowercase:ug,_lt:on,_lte:Lt,_mac:WB,_map:$y,_max:Lt,_maxLength:la,_maxSize:Ea,_mime:Cg,_min:Qt,_minLength:zn,_minSize:Ao,_multipleOf:Vi,_nan:DC,_nanoid:zs,_nativeEnum:Ky,_negative:kC,_never:mC,_nonnegative:SC,_nonoptional:tb,_nonpositive:_C,_normalize:Qg,_null:fC,_nullable:Ab,_number:rC,_optional:Vy,_overwrite:Mr,_parse:ji,_parseAsync:Ji,_pipe:ib,_positive:wC,_promise:gb,_property:vC,_readonly:ob,_record:Hy,_refine:MC,_regex:cg,_safeDecode:ws,_safeDecodeAsync:_s,_safeEncode:Ds,_safeEncodeAsync:ks,_safeParse:Zi,_safeParseAsync:Hi,_set:Xy,_size:gg,_slugify:mg,_startsWith:lg,_string:zB,_stringFormat:eo,_stringbool:xC,_success:rb,_superRefine:OC,_symbol:CC,_templateLiteral:ab,_toLowerCase:dg,_toUpperCase:hg,_transform:qy,_trim:fg,_tuple:Zy,_uint32:gC,_uint64:BC,_ulid:qs,_undefined:QC,_union:Yy,_unknown:hC,_uppercase:Ig,_url:Ia,_uuid:Js,_uuidv4:Zs,_uuidv6:Hs,_uuidv7:$s,_void:pC,_xid:Vs,clone:St,config:it,decode:Gp,decodeAsync:Lp,describe:UC,encode:Up,encodeAsync:xp,flattenError:Qs,formatError:fs,globalConfig:Vo,globalRegistry:xt,isValidBase64:Fs,isValidBase64URL:Gl,isValidJWT:Pl,locales:ZB,meta:GC,parse:ds,parseAsync:hs,prettifyError:uE,regexes:vs,registry:Ys,safeDecode:Yp,safeDecodeAsync:Jp,safeEncode:Pp,safeEncodeAsync:jp,safeParse:IE,safeParseAsync:EE,toDotPath:cE,toJSONSchema:LC,treeifyError:gE,util:aE,version:Cl});const yg=H("ZodISODateTime",(r,i)=>{_l.init(r,i),fe.init(r,i)});function PC(r){return VB(yg,r)}const bg=H("ZodISODate",(r,i)=>{Sl.init(r,i),fe.init(r,i)});function YC(r){return AC(bg,r)}const Dg=H("ZodISOTime",(r,i)=>{vl.init(r,i),fe.init(r,i)});function jC(r){return eC(Dg,r)}const wg=H("ZodISODuration",(r,i)=>{Rl.init(r,i),fe.init(r,i)});function JC(r){return tC(wg,r)}var Ib=Object.freeze({__proto__:null,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,date:YC,datetime:PC,duration:JC,time:jC});const ZC=(r,i)=>{Cs.init(r,i),r.name="ZodError",Object.defineProperties(r,{format:{value:u=>fs(r,u)},flatten:{value:u=>Qs(r,u)},addIssue:{value:u=>{r.issues.push(u),r.message=JSON.stringify(r.issues,Aa,2)}},addIssues:{value:u=>{r.issues.push(...u),r.message=JSON.stringify(r.issues,Aa,2)}},isEmpty:{get(){return r.issues.length===0}}})},Eb=H("ZodError",ZC),ft=H("ZodError",ZC,{Parent:Error}),HC=ji(ft),$C=Ji(ft),XC=Zi(ft),zC=Hi(ft),KC=ms(ft),WC=ps(ft),qC=ys(ft),VC=bs(ft),AQ=Ds(ft),eQ=ws(ft),tQ=ks(ft),rQ=_s(ft),qA=H("ZodType",(r,i)=>(HA.init(r,i),r.def=i,r.type=i.type,Object.defineProperty(r,"_def",{value:i}),r.check=(...u)=>r.clone(lr(i,{checks:[...i.checks??[],...u.map(E=>typeof E=="function"?{_zod:{check:E,def:{check:"custom"},onattach:[]}}:E)]})),r.clone=(u,E)=>St(r,u,E),r.brand=()=>r,r.register=(u,E)=>(u.add(r,E),r),r.parse=(u,E)=>HC(r,u,E,{callee:r.parse}),r.safeParse=(u,E)=>XC(r,u,E),r.parseAsync=async(u,E)=>$C(r,u,E,{callee:r.parseAsync}),r.safeParseAsync=async(u,E)=>zC(r,u,E),r.spa=r.safeParseAsync,r.encode=(u,E)=>KC(r,u,E),r.decode=(u,E)=>WC(r,u,E),r.encodeAsync=async(u,E)=>qC(r,u,E),r.decodeAsync=async(u,E)=>VC(r,u,E),r.safeEncode=(u,E)=>AQ(r,u,E),r.safeDecode=(u,E)=>eQ(r,u,E),r.safeEncodeAsync=async(u,E)=>tQ(r,u,E),r.safeDecodeAsync=async(u,E)=>rQ(r,u,E),r.refine=(u,E)=>r.check(LQ(u,E)),r.superRefine=u=>r.check(PQ(u)),r.overwrite=u=>r.check(Mr(u)),r.optional=()=>ba(r),r.nullable=()=>dt(r),r.nullish=()=>ba(dt(r)),r.nonoptional=u=>kQ(r,u),r.array=()=>be(r),r.or=u=>ya([r,u]),r.and=u=>BQ(r,u),r.transform=u=>Da(r,qg(u)),r.default=u=>bQ(r,u),r.prefault=u=>wQ(r,u),r.catch=u=>vQ(r,u),r.pipe=u=>Da(r,u),r.readonly=()=>FQ(r),r.describe=u=>{const E=r.clone();return xt.add(E,{description:u}),E},Object.defineProperty(r,"description",{get(){return xt.get(r)?.description},configurable:!0}),r.meta=(...u)=>{if(u.length===0)return xt.get(r);const E=r.clone();return xt.add(E,u[0]),E},r.isOptional=()=>r.safeParse(void 0).success,r.isNullable=()=>r.safeParse(null).success,r)),kg=H("_ZodString",(r,i)=>{Ki.init(r,i),qA.init(r,i);const u=r._zod.bag;r.format=u.format??null,r.minLength=u.minimum??null,r.maxLength=u.maximum??null,r.regex=(...E)=>r.check(cg(...E)),r.includes=(...E)=>r.check(Eg(...E)),r.startsWith=(...E)=>r.check(lg(...E)),r.endsWith=(...E)=>r.check(Bg(...E)),r.min=(...E)=>r.check(zn(...E)),r.max=(...E)=>r.check(la(...E)),r.length=(...E)=>r.check(Ba(...E)),r.nonempty=(...E)=>r.check(zn(1,...E)),r.lowercase=E=>r.check(ug(E)),r.uppercase=E=>r.check(Ig(E)),r.trim=()=>r.check(fg()),r.normalize=(...E)=>r.check(Qg(...E)),r.toLowerCase=()=>r.check(dg()),r.toUpperCase=()=>r.check(hg()),r.slugify=()=>r.check(mg())}),Ca=H("ZodString",(r,i)=>{Ki.init(r,i),kg.init(r,i),r.email=u=>r.check(js(_g,u)),r.url=u=>r.check(Ia(fa,u)),r.jwt=u=>r.check(sg(jg,u)),r.emoji=u=>r.check(Xs(Sg,u)),r.guid=u=>r.check(ua(Qa,u)),r.uuid=u=>r.check(Js(Cr,u)),r.uuidv4=u=>r.check(Zs(Cr,u)),r.uuidv6=u=>r.check(Hs(Cr,u)),r.uuidv7=u=>r.check($s(Cr,u)),r.nanoid=u=>r.check(zs(vg,u)),r.guid=u=>r.check(ua(Qa,u)),r.cuid=u=>r.check(Ks(Rg,u)),r.cuid2=u=>r.check(Ws(Tg,u)),r.ulid=u=>r.check(qs(Fg,u)),r.base64=u=>r.check(ig(Lg,u)),r.base64url=u=>r.check(og(Pg,u)),r.xid=u=>r.check(Vs(Mg,u)),r.ksuid=u=>r.check(Ag(Og,u)),r.ipv4=u=>r.check(eg(Ng,u)),r.ipv6=u=>r.check(tg(Ug,u)),r.cidrv4=u=>r.check(rg(Gg,u)),r.cidrv6=u=>r.check(ng(xg,u)),r.e164=u=>r.check(ag(Yg,u)),r.datetime=u=>r.check(PC(u)),r.date=u=>r.check(YC(u)),r.time=u=>r.check(jC(u)),r.duration=u=>r.check(JC(u))});function GA(r){return zB(Ca,r)}const fe=H("ZodStringFormat",(r,i)=>{Qe.init(r,i),kg.init(r,i)}),_g=H("ZodEmail",(r,i)=>{dl.init(r,i),fe.init(r,i)});function lb(r){return js(_g,r)}const Qa=H("ZodGUID",(r,i)=>{Ql.init(r,i),fe.init(r,i)});function Bb(r){return ua(Qa,r)}const Cr=H("ZodUUID",(r,i)=>{fl.init(r,i),fe.init(r,i)});function Cb(r){return Js(Cr,r)}function Qb(r){return Zs(Cr,r)}function fb(r){return Hs(Cr,r)}function db(r){return $s(Cr,r)}const fa=H("ZodURL",(r,i)=>{hl.init(r,i),fe.init(r,i)});function hb(r){return Ia(fa,r)}function mb(r){return Ia(fa,{protocol:/^https?$/,hostname:TE,...tA(r)})}const Sg=H("ZodEmoji",(r,i)=>{ml.init(r,i),fe.init(r,i)});function pb(r){return Xs(Sg,r)}const vg=H("ZodNanoID",(r,i)=>{pl.init(r,i),fe.init(r,i)});function yb(r){return zs(vg,r)}const Rg=H("ZodCUID",(r,i)=>{yl.init(r,i),fe.init(r,i)});function bb(r){return Ks(Rg,r)}const Tg=H("ZodCUID2",(r,i)=>{bl.init(r,i),fe.init(r,i)});function Db(r){return Ws(Tg,r)}const Fg=H("ZodULID",(r,i)=>{Dl.init(r,i),fe.init(r,i)});function wb(r){return qs(Fg,r)}const Mg=H("ZodXID",(r,i)=>{wl.init(r,i),fe.init(r,i)});function kb(r){return Vs(Mg,r)}const Og=H("ZodKSUID",(r,i)=>{kl.init(r,i),fe.init(r,i)});function _b(r){return Ag(Og,r)}const Ng=H("ZodIPv4",(r,i)=>{Tl.init(r,i),fe.init(r,i)});function Sb(r){return eg(Ng,r)}const nQ=H("ZodMAC",(r,i)=>{Ml.init(r,i),fe.init(r,i)});function vb(r){return WB(nQ,r)}const Ug=H("ZodIPv6",(r,i)=>{Fl.init(r,i),fe.init(r,i)});function Rb(r){return tg(Ug,r)}const Gg=H("ZodCIDRv4",(r,i)=>{Ol.init(r,i),fe.init(r,i)});function Tb(r){return rg(Gg,r)}const xg=H("ZodCIDRv6",(r,i)=>{Nl.init(r,i),fe.init(r,i)});function Fb(r){return ng(xg,r)}const Lg=H("ZodBase64",(r,i)=>{Ul.init(r,i),fe.init(r,i)});function Mb(r){return ig(Lg,r)}const Pg=H("ZodBase64URL",(r,i)=>{xl.init(r,i),fe.init(r,i)});function Ob(r){return og(Pg,r)}const Yg=H("ZodE164",(r,i)=>{Ll.init(r,i),fe.init(r,i)});function Nb(r){return ag(Yg,r)}const jg=H("ZodJWT",(r,i)=>{Yl.init(r,i),fe.init(r,i)});function Ub(r){return sg(jg,r)}const to=H("ZodCustomStringFormat",(r,i)=>{jl.init(r,i),fe.init(r,i)});function Gb(r,i,u={}){return eo(to,r,i,u)}function xb(r){return eo(to,"hostname",RE,r)}function Lb(r){return eo(to,"hex",XE,r)}function Pb(r,i){const u=i?.enc??"hex",E=`${r}_${u}`,g=vs[E];if(!g)throw new Error(`Unrecognized hash format: ${E}`);return eo(to,E,g,i)}const da=H("ZodNumber",(r,i)=>{Ms.init(r,i),qA.init(r,i),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.int=E=>r.check(Jg(E)),r.safe=E=>r.check(Jg(E)),r.positive=E=>r.check(an(0,E)),r.nonnegative=E=>r.check(Qt(0,E)),r.negative=E=>r.check(on(0,E)),r.nonpositive=E=>r.check(Lt(0,E)),r.multipleOf=(E,g)=>r.check(Vi(E,g)),r.step=(E,g)=>r.check(Vi(E,g)),r.finite=()=>r;const u=r._zod.bag;r.minValue=Math.max(u.minimum??Number.NEGATIVE_INFINITY,u.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,r.maxValue=Math.min(u.maximum??Number.POSITIVE_INFINITY,u.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,r.isInt=(u.format??"").includes("int")||Number.isSafeInteger(u.multipleOf??.5),r.isFinite=!0,r.format=u.format??null});function G(r){return rC(da,r)}const Kn=H("ZodNumberFormat",(r,i)=>{Jl.init(r,i),da.init(r,i)});function Jg(r){return iC(Kn,r)}function Yb(r){return oC(Kn,r)}function jb(r){return aC(Kn,r)}function Jb(r){return sC(Kn,r)}function Zb(r){return gC(Kn,r)}const ha=H("ZodBoolean",(r,i)=>{Os.init(r,i),qA.init(r,i)});function Qr(r){return cC(ha,r)}const ma=H("ZodBigInt",(r,i)=>{Ns.init(r,i),qA.init(r,i),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.gt=(E,g)=>r.check(an(E,g)),r.gte=(E,g)=>r.check(Qt(E,g)),r.min=(E,g)=>r.check(Qt(E,g)),r.lt=(E,g)=>r.check(on(E,g)),r.lte=(E,g)=>r.check(Lt(E,g)),r.max=(E,g)=>r.check(Lt(E,g)),r.positive=E=>r.check(an(BigInt(0),E)),r.negative=E=>r.check(on(BigInt(0),E)),r.nonpositive=E=>r.check(Lt(BigInt(0),E)),r.nonnegative=E=>r.check(Qt(BigInt(0),E)),r.multipleOf=(E,g)=>r.check(Vi(E,g));const u=r._zod.bag;r.minValue=u.minimum??null,r.maxValue=u.maximum??null,r.format=u.format??null});function Hb(r){return IC(ma,r)}const Zg=H("ZodBigIntFormat",(r,i)=>{Zl.init(r,i),ma.init(r,i)});function $b(r){return lC(Zg,r)}function Xb(r){return BC(Zg,r)}const iQ=H("ZodSymbol",(r,i)=>{Hl.init(r,i),qA.init(r,i)});function zb(r){return CC(iQ,r)}const oQ=H("ZodUndefined",(r,i)=>{$l.init(r,i),qA.init(r,i)});function Kb(r){return QC(oQ,r)}const aQ=H("ZodNull",(r,i)=>{Xl.init(r,i),qA.init(r,i)});function Hg(r){return fC(aQ,r)}const sQ=H("ZodAny",(r,i)=>{zl.init(r,i),qA.init(r,i)});function Wb(){return dC(sQ)}const gQ=H("ZodUnknown",(r,i)=>{Kl.init(r,i),qA.init(r,i)});function Wn(){return hC(gQ)}const cQ=H("ZodNever",(r,i)=>{Wl.init(r,i),qA.init(r,i)});function $g(r){return mC(cQ,r)}const uQ=H("ZodVoid",(r,i)=>{ql.init(r,i),qA.init(r,i)});function qb(r){return pC(uQ,r)}const Xg=H("ZodDate",(r,i)=>{Vl.init(r,i),qA.init(r,i),r.min=(E,g)=>r.check(Qt(E,g)),r.max=(E,g)=>r.check(Lt(E,g));const u=r._zod.bag;r.minDate=u.minimum?new Date(u.minimum):null,r.maxDate=u.maximum?new Date(u.maximum):null});function Vb(r){return yC(Xg,r)}const IQ=H("ZodArray",(r,i)=>{eB.init(r,i),qA.init(r,i),r.element=i.element,r.min=(u,E)=>r.check(zn(u,E)),r.nonempty=u=>r.check(zn(1,u)),r.max=(u,E)=>r.check(la(u,E)),r.length=(u,E)=>r.check(Ba(u,E)),r.unwrap=()=>r.element});function be(r,i){return RC(IQ,r,i)}function AD(r){const i=r._zod.def.shape;return vt(Object.keys(i))}const pa=H("ZodObject",(r,i)=>{iB.init(r,i),qA.init(r,i),te(r,"shape",()=>i.shape),r.keyof=()=>vt(Object.keys(r._zod.def.shape)),r.catchall=u=>r.clone({...r._zod.def,catchall:u}),r.passthrough=()=>r.clone({...r._zod.def,catchall:Wn()}),r.loose=()=>r.clone({...r._zod.def,catchall:Wn()}),r.strict=()=>r.clone({...r._zod.def,catchall:$g()}),r.strip=()=>r.clone({...r._zod.def,catchall:void 0}),r.extend=u=>AE(r,u),r.safeExtend=u=>eE(r,u),r.merge=u=>tE(r,u),r.pick=u=>qI(r,u),r.omit=u=>VI(r,u),r.partial=(...u)=>rE(Vg,r,u[0]),r.required=(...u)=>nE(Ac,r,u[0])});function NA(r,i){const u={type:"object",shape:r??{},...tA(i)};return new pa(u)}function eD(r,i){return new pa({type:"object",shape:r,catchall:$g(),...tA(i)})}function tD(r,i){return new pa({type:"object",shape:r,catchall:Wn(),...tA(i)})}const zg=H("ZodUnion",(r,i)=>{Us.init(r,i),qA.init(r,i),r.options=i.options});function ya(r,i){return new zg({type:"union",options:r,...tA(i)})}const EQ=H("ZodDiscriminatedUnion",(r,i)=>{zg.init(r,i),aB.init(r,i)});function fr(r,i,u){return new EQ({type:"union",options:i,discriminator:r,...tA(u)})}const lQ=H("ZodIntersection",(r,i)=>{sB.init(r,i),qA.init(r,i)});function BQ(r,i){return new lQ({type:"intersection",left:r,right:i})}const CQ=H("ZodTuple",(r,i)=>{xs.init(r,i),qA.init(r,i),r.rest=u=>r.clone({...r._zod.def,rest:u})});function Kg(r,i,u){const E=i instanceof HA,g=E?u:i,a=E?i:null;return new CQ({type:"tuple",items:r,rest:a,...tA(g)})}const Wg=H("ZodRecord",(r,i)=>{cB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function ro(r,i,u){return new Wg({type:"record",keyType:r,valueType:i,...tA(u)})}function rD(r,i,u){const E=St(r);return E._zod.values=void 0,new Wg({type:"record",keyType:E,valueType:i,...tA(u)})}const QQ=H("ZodMap",(r,i)=>{uB.init(r,i),qA.init(r,i),r.keyType=i.keyType,r.valueType=i.valueType});function nD(r,i,u){return new QQ({type:"map",keyType:r,valueType:i,...tA(u)})}const fQ=H("ZodSet",(r,i)=>{EB.init(r,i),qA.init(r,i),r.min=(...u)=>r.check(Ao(...u)),r.nonempty=u=>r.check(Ao(1,u)),r.max=(...u)=>r.check(Ea(...u)),r.size=(...u)=>r.check(gg(...u))});function iD(r,i){return new fQ({type:"set",valueType:r,...tA(i)})}const no=H("ZodEnum",(r,i)=>{BB.init(r,i),qA.init(r,i),r.enum=i.entries,r.options=Object.values(i.entries);const u=new Set(Object.keys(i.entries));r.extract=(E,g)=>{const a={};for(const h of E)if(u.has(h))a[h]=i.entries[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})},r.exclude=(E,g)=>{const a={...i.entries};for(const h of E)if(u.has(h))delete a[h];else throw new Error(`Key ${h} not found in enum`);return new no({...i,checks:[],...tA(g),entries:a})}});function vt(r,i){const u=Array.isArray(r)?Object.fromEntries(r.map(E=>[E,E])):r;return new no({type:"enum",entries:u,...tA(i)})}function oD(r,i){return new no({type:"enum",entries:r,...tA(i)})}const dQ=H("ZodLiteral",(r,i)=>{CB.init(r,i),qA.init(r,i),r.values=new Set(i.values),Object.defineProperty(r,"value",{get(){if(i.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return i.values[0]}})});function DA(r,i){return new dQ({type:"literal",values:Array.isArray(r)?r:[r],...tA(i)})}const hQ=H("ZodFile",(r,i)=>{QB.init(r,i),qA.init(r,i),r.min=(u,E)=>r.check(Ao(u,E)),r.max=(u,E)=>r.check(Ea(u,E)),r.mime=(u,E)=>r.check(Cg(Array.isArray(u)?u:[u],E))});function aD(r){return TC(hQ,r)}const mQ=H("ZodTransform",(r,i)=>{fB.init(r,i),qA.init(r,i),r._zod.parse=(u,E)=>{if(E.direction==="backward")throw new qo(r.constructor.name);u.addIssue=a=>{if(typeof a=="string")u.issues.push($n(a,u.value,i));else{const h=a;h.fatal&&(h.continue=!1),h.code??(h.code="custom"),h.input??(h.input=u.value),h.inst??(h.inst=r),u.issues.push($n(h))}};const g=i.transform(u.value,u);return g instanceof Promise?g.then(a=>(u.value=a,u)):(u.value=g,u)}});function qg(r){return new mQ({type:"transform",transform:r})}const Vg=H("ZodOptional",(r,i)=>{hB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ba(r){return new Vg({type:"optional",innerType:r})}const pQ=H("ZodNullable",(r,i)=>{mB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function dt(r){return new pQ({type:"nullable",innerType:r})}function sD(r){return ba(dt(r))}const yQ=H("ZodDefault",(r,i)=>{pB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeDefault=r.unwrap});function bQ(r,i){return new yQ({type:"default",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const DQ=H("ZodPrefault",(r,i)=>{bB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function wQ(r,i){return new DQ({type:"prefault",innerType:r,get defaultValue(){return typeof i=="function"?i():ta(i)}})}const Ac=H("ZodNonOptional",(r,i)=>{DB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function kQ(r,i){return new Ac({type:"nonoptional",innerType:r,...tA(i)})}const _Q=H("ZodSuccess",(r,i)=>{kB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function gD(r){return new _Q({type:"success",innerType:r})}const SQ=H("ZodCatch",(r,i)=>{_B.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType,r.removeCatch=r.unwrap});function vQ(r,i){return new SQ({type:"catch",innerType:r,catchValue:typeof i=="function"?i:()=>i})}const RQ=H("ZodNaN",(r,i)=>{SB.init(r,i),qA.init(r,i)});function cD(r){return DC(RQ,r)}const ec=H("ZodPipe",(r,i)=>{vB.init(r,i),qA.init(r,i),r.in=i.in,r.out=i.out});function Da(r,i){return new ec({type:"pipe",in:r,out:i})}const tc=H("ZodCodec",(r,i)=>{ec.init(r,i),Ls.init(r,i)});function uD(r,i,u){return new tc({type:"pipe",in:r,out:i,transform:u.decode,reverseTransform:u.encode})}const TQ=H("ZodReadonly",(r,i)=>{RB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function FQ(r){return new TQ({type:"readonly",innerType:r})}const MQ=H("ZodTemplateLiteral",(r,i)=>{FB.init(r,i),qA.init(r,i)});function ID(r,i){return new MQ({type:"template_literal",parts:r,...tA(i)})}const OQ=H("ZodLazy",(r,i)=>{NB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.getter()});function NQ(r){return new OQ({type:"lazy",getter:r})}const UQ=H("ZodPromise",(r,i)=>{OB.init(r,i),qA.init(r,i),r.unwrap=()=>r._zod.def.innerType});function ED(r){return new UQ({type:"promise",innerType:r})}const GQ=H("ZodFunction",(r,i)=>{MB.init(r,i),qA.init(r,i)});function xQ(r){return new GQ({type:"function",input:Array.isArray(r?.input)?Kg(r?.input):r?.input??be(Wn()),output:r?.output??Wn()})}const wa=H("ZodCustom",(r,i)=>{UB.init(r,i),qA.init(r,i)});function lD(r){const i=new we({check:"custom"});return i._zod.check=r,i}function BD(r,i){return FC(wa,r??(()=>!0),i)}function LQ(r,i={}){return MC(wa,r,i)}function PQ(r){return OC(r)}const CD=UC,QD=GC;function fD(r,i={error:`Input not instance of ${r.name}`}){const u=new wa({type:"custom",check:"custom",fn:E=>E instanceof r,abort:!0,...tA(i)});return u._zod.bag.Class=r,u}const dD=(...r)=>xC({Codec:tc,Boolean:ha,String:Ca},...r);function hD(r){const i=NQ(()=>ya([GA(r),G(),Qr(),Hg(),be(i),ro(GA(),i)]));return i}function YQ(r,i){return Da(qg(r),i)}const mD={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function pD(r){it({customError:r})}function yD(){return it().customError}var rc;rc||(rc={});function bD(r){return KB(Ca,r)}function Je(r){return nC(da,r)}function DD(r){return uC(ha,r)}function XA(r){return EC(ma,r)}function wD(r){return bC(Xg,r)}var kD=Object.freeze({__proto__:null,bigint:XA,boolean:DD,date:wD,number:Je,string:bD});it(LB());var _D=Object.freeze({__proto__:null,$brand:jI,$input:XB,$output:$B,NEVER:YI,TimePrecision:qB,ZodAny:sQ,ZodArray:IQ,ZodBase64:Lg,ZodBase64URL:Pg,ZodBigInt:ma,ZodBigIntFormat:Zg,ZodBoolean:ha,ZodCIDRv4:Gg,ZodCIDRv6:xg,ZodCUID:Rg,ZodCUID2:Tg,ZodCatch:SQ,ZodCodec:tc,ZodCustom:wa,ZodCustomStringFormat:to,ZodDate:Xg,ZodDefault:yQ,ZodDiscriminatedUnion:EQ,ZodE164:Yg,ZodEmail:_g,ZodEmoji:Sg,ZodEnum:no,ZodError:Eb,ZodFile:hQ,get ZodFirstPartyTypeKind(){return rc},ZodFunction:GQ,ZodGUID:Qa,ZodIPv4:Ng,ZodIPv6:Ug,ZodISODate:bg,ZodISODateTime:yg,ZodISODuration:wg,ZodISOTime:Dg,ZodIntersection:lQ,ZodIssueCode:mD,ZodJWT:jg,ZodKSUID:Og,ZodLazy:OQ,ZodLiteral:dQ,ZodMAC:nQ,ZodMap:QQ,ZodNaN:RQ,ZodNanoID:vg,ZodNever:cQ,ZodNonOptional:Ac,ZodNull:aQ,ZodNullable:pQ,ZodNumber:da,ZodNumberFormat:Kn,ZodObject:pa,ZodOptional:Vg,ZodPipe:ec,ZodPrefault:DQ,ZodPromise:UQ,ZodReadonly:TQ,ZodRealError:ft,ZodRecord:Wg,ZodSet:fQ,ZodString:Ca,ZodStringFormat:fe,ZodSuccess:_Q,ZodSymbol:iQ,ZodTemplateLiteral:MQ,ZodTransform:mQ,ZodTuple:CQ,ZodType:qA,ZodULID:Fg,ZodURL:fa,ZodUUID:Cr,ZodUndefined:oQ,ZodUnion:zg,ZodUnknown:gQ,ZodVoid:uQ,ZodXID:Mg,_ZodString:kg,_default:bQ,_function:xQ,any:Wb,array:be,base64:Mb,base64url:Ob,bigint:Hb,boolean:Qr,catch:vQ,check:lD,cidrv4:Tb,cidrv6:Fb,clone:St,codec:uD,coerce:kD,config:it,core:ub,cuid:bb,cuid2:Db,custom:BD,date:Vb,decode:WC,decodeAsync:VC,describe:CD,discriminatedUnion:fr,e164:Nb,email:lb,emoji:pb,encode:KC,encodeAsync:qC,endsWith:Bg,enum:vt,file:aD,flattenError:Qs,float32:Yb,float64:jb,formatError:fs,function:xQ,getErrorMap:yD,globalRegistry:xt,gt:an,gte:Qt,guid:Bb,hash:Pb,hex:Lb,hostname:xb,httpUrl:mb,includes:Eg,instanceof:fD,int:Jg,int32:Jb,int64:$b,intersection:BQ,ipv4:Sb,ipv6:Rb,iso:Ib,json:hD,jwt:Ub,keyof:AD,ksuid:_b,lazy:NQ,length:Ba,literal:DA,locales:ZB,looseObject:tD,lowercase:ug,lt:on,lte:Lt,mac:vb,map:nD,maxLength:la,maxSize:Ea,meta:QD,mime:Cg,minLength:zn,minSize:Ao,multipleOf:Vi,nan:cD,nanoid:yb,nativeEnum:oD,negative:kC,never:$g,nonnegative:SC,nonoptional:kQ,nonpositive:_C,normalize:Qg,null:Hg,nullable:dt,nullish:sD,number:G,object:NA,optional:ba,overwrite:Mr,parse:HC,parseAsync:$C,partialRecord:rD,pipe:Da,positive:wC,prefault:wQ,preprocess:YQ,prettifyError:uE,promise:ED,property:vC,readonly:FQ,record:ro,refine:LQ,regex:cg,regexes:vs,registry:Ys,safeDecode:eQ,safeDecodeAsync:rQ,safeEncode:AQ,safeEncodeAsync:tQ,safeParse:XC,safeParseAsync:zC,set:iD,setErrorMap:pD,size:gg,slugify:mg,startsWith:lg,strictObject:eD,string:GA,stringFormat:Gb,stringbool:dD,success:gD,superRefine:PQ,symbol:zb,templateLiteral:ID,toJSONSchema:LC,toLowerCase:dg,toUpperCase:hg,transform:qg,treeifyError:gE,trim:fg,tuple:Kg,uint32:Zb,uint64:Xb,ulid:wb,undefined:Kb,union:ya,unknown:Wn,uppercase:Ig,url:hb,util:aE,uuid:Cb,uuidv4:Qb,uuidv6:fb,uuidv7:db,void:qb,xid:kb});const jQ=vt(["Frankendancer","Firedancer"]),nc=jQ.enum,VA=NA({topic:DA("summary")}),JQ=NA({topic:DA("epoch")}),qn=NA({topic:DA("gossip")}),ZQ=NA({topic:DA("peers")}),Wt=NA({topic:DA("slot")}),HQ=NA({topic:DA("block_engine")}),ka=NA({topic:DA("wait_for_supermajority")});fr("topic",[VA,JQ,qn,ZQ,Wt,HQ,ka]);const SD=GA(),vD=vt(["development","mainnet-beta","devnet","testnet","pythtest","pythnet","unknown"]),RD=GA(),TD=GA(),FD=GA(),MD=XA(),$Q=vt(["perf","balanced","revenue"]);$Q.enum,vt(["sock","net","quic","bundle","verify","dedup","resolv","resolh","pack","execle","bank","poh","pohh","shred","store","snapct","snapld","snapdc","snapin","netlnk","metric","ipecho","gossvf","gossip","repair","replay","execrp","tower","txsend","sign","rpc","gui","http","plugin","genesi","diag","event"]);const OD=NA({kind:GA(),kind_id:G()}),XQ=XA();XA();const ND=G(),UD=G(),GD=G(),xD=G().nullable(),LD=G().nullable(),PD=NA({repair:G().array(),turbine:G().array()}),YD=Je(),jD=G(),JD=G().nullable(),ZD=G().nullable(),HD=G(),$D=G().nullable(),XD=G(),zD=G(),KD=NA({total:G(),vote:G(),nonvote_success:G(),nonvote_failed:G()}),WD=NA({ingress:be(G()),egress:be(G())}),qD=NA({pack_cranked:G(),pack_retained:G(),resolv_retained:G(),quic:G(),udp:G(),gossip:G(),block_engine:G()}),VD=NA({net_overrun:G(),quic_overrun:G(),quic_frag_drop:G(),quic_abandoned:G(),tpu_quic_invalid:G(),tpu_udp_invalid:G(),verify_overrun:G(),verify_parse:G(),verify_failed:G(),verify_duplicate:G(),dedup_duplicate:G(),resolv_lut_failed:G(),resolv_expired:G(),resolv_no_ledger:G(),resolv_ancient:G(),resolv_retained:G(),pack_invalid:G(),pack_already_executed:G(),pack_invalid_bundle:G(),pack_retained:G(),pack_leader_slow:G(),pack_wait_full:G(),pack_expired:G(),bank_invalid:G(),bank_nonce_already_advanced:G(),bank_nonce_advance_failed:G(),bank_nonce_wrong_blockhash:G(),block_success:G(),block_fail:G()}),zQ=NA({in:qD,out:VD}),Aw=NA({next_leader_slot:G().nullable(),waterfall:zQ}),KQ=NA({net_in:G(),quic:G(),verify:G(),bundle_rtt_smoothed_millis:G(),bundle_rx_delay_millis_p90:G(),dedup:G(),pack:G(),bank:G(),poh:G(),shred:G(),store:G(),net_out:G()}),ew=NA({next_leader_slot:G().nullable(),tile_primary_metric:KQ}),tw=NA({timers:be(be(G()).nullable()),sched_timers:be(be(G()).nullable()),in_backp:be(Qr().nullable()),backp_msgs:be(G().nullable()),alive:be(G().nullable()),nvcsw:be(G().nullable()),nivcsw:be(G().nullable()),last_cpu:be(G().nullable()),minflt:be(G().nullable()),majflt:be(G().nullable())});NA({tile:GA(),kind_id:G(),idle:G()});const rw=vt(["initializing","searching_for_full_snapshot","downloading_full_snapshot","searching_for_incremental_snapshot","downloading_incremental_snapshot","cleaning_blockstore","cleaning_accounts","loading_ledger","processing_ledger","starting_services","halted","waiting_for_supermajority","running"]),nw=NA({phase:rw,downloading_full_snapshot_slot:G().nullable(),downloading_full_snapshot_peer:GA().nullable(),downloading_full_snapshot_elapsed_secs:G().nullable(),downloading_full_snapshot_remaining_secs:G().nullable(),downloading_full_snapshot_throughput:G().nullable(),downloading_full_snapshot_total_bytes:Je().nullable(),downloading_full_snapshot_current_bytes:Je().nullable(),downloading_incremental_snapshot_slot:G().nullable(),downloading_incremental_snapshot_peer:GA().nullable(),downloading_incremental_snapshot_elapsed_secs:G().nullable(),downloading_incremental_snapshot_remaining_secs:G().nullable(),downloading_incremental_snapshot_throughput:G().nullable(),downloading_incremental_snapshot_total_bytes:Je().nullable(),downloading_incremental_snapshot_current_bytes:Je().nullable(),ledger_slot:G().nullable(),ledger_max_slot:G().nullable(),waiting_for_supermajority_slot:G().nullable(),waiting_for_supermajority_stake_percent:G().nullable()}),WQ=vt(["joining_gossip","loading_full_snapshot","loading_incremental_snapshot","catching_up","waiting_for_supermajority","running"]);WQ.enum;const iw=NA({phase:WQ,joining_gossip_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_elapsed_seconds:G().nullable().optional(),loading_full_snapshot_reset_count:G().nullable().optional(),loading_full_snapshot_slot:G().nullable().optional(),loading_full_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_read_path:GA().nullable().optional(),loading_full_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_full_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_full_snapshot_insert_accounts:G().nullable().optional(),loading_incremental_snapshot_elapsed_seconds:G().nullable().optional(),loading_incremental_snapshot_reset_count:G().nullable().optional(),loading_incremental_snapshot_slot:G().nullable().optional(),loading_incremental_snapshot_total_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_read_path:GA().nullable().optional(),loading_incremental_snapshot_decompress_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_decompress_bytes_compressed:Je().nullable().optional(),loading_incremental_snapshot_insert_bytes_decompressed:Je().nullable().optional(),loading_incremental_snapshot_insert_accounts:G().nullable().optional(),wait_for_supermajority_bank_hash:GA().nullable().optional(),wait_for_supermajority_shred_version:GA().nullable().optional(),wait_for_supermajority_attempt:G().nullable().optional(),wait_for_supermajority_total_stake:XA().nullable().optional(),wait_for_supermajority_connected_stake:XA().nullable().optional(),wait_for_supermajority_total_peers:G().nullable().optional(),wait_for_supermajority_connected_peers:G().nullable().optional(),catching_up_elapsed_seconds:G().nullable().optional(),catching_up_first_replay_slot:G().nullable().optional()}),ow=YQ(r=>{if(!r||typeof r!="object"||Array.isArray(r))return r;const i=r;return{...i,txn_preload_end_timestamps_nanos:i.txn_preload_end_timestamps_nanos??i.txn_check_start_timestamps_nanos,txn_start_timestamps_nanos:i.txn_start_timestamps_nanos??i.txn_load_start_timestamps_nanos,txn_load_end_timestamps_nanos:i.txn_load_end_timestamps_nanos??i.txn_execute_start_timestamps_nanos,txn_end_timestamps_nanos:i.txn_end_timestamps_nanos??i.txn_commit_start_timestamps_nanos}},NA({start_timestamp_nanos:XA(),target_end_timestamp_nanos:XA(),txn_mb_start_timestamps_nanos:XA().array(),txn_mb_end_timestamps_nanos:XA().array(),txn_compute_units_requested:G().array(),txn_compute_units_consumed:G().array(),txn_transaction_fee:XA().array(),txn_priority_fee:XA().array(),txn_tips:XA().array(),txn_error_code:G().array(),txn_from_bundle:Qr().array(),txn_is_simple_vote:Qr().array(),txn_bank_idx:G().array(),txn_preload_end_timestamps_nanos:XA().array(),txn_start_timestamps_nanos:XA().array(),txn_load_end_timestamps_nanos:XA().array(),txn_end_timestamps_nanos:XA().array(),txn_commit_end_timestamps_nanos:XA().array().optional(),txn_arrival_timestamps_nanos:XA().array(),txn_microblock_id:G().array(),txn_landed:Qr().array(),txn_signature:GA().array(),txn_source_ipv4:GA().array(),txn_source_tpu:GA().array()})),aw=vt(["incomplete","completed","optimistically_confirmed","rooted","finalized"]),sw=NA({slot:G(),mine:Qr(),skipped:Qr(),level:aw,success_nonvote_transaction_cnt:G().nullable(),failed_nonvote_transaction_cnt:G().nullable(),success_vote_transaction_cnt:G().nullable(),failed_vote_transaction_cnt:G().nullable(),priority_fee:XA().nullable(),transaction_fee:XA().nullable(),tips:XA().nullable(),max_compute_units:G().nullable(),compute_units:G().nullable(),duration_nanos:G().nullable(),completed_time_nanos:XA().nullable(),vote_latency:G().nullable()}),gw=be(Kg([G(),G(),G(),G()])),cw=vt(["voting","non-voting","delinquent"]),uw=G(),Iw=NA({epoch:G(),skip_rate:G()}),Ew=NA({hits:G(),lookups:G(),insertions:G(),insertion_bytes:G(),evictions:G(),eviction_bytes:G(),spills:G(),spill_bytes:G(),free_bytes:G(),size_bytes:G()}),lw=fr("key",[VA.extend({key:DA("ping"),value:Hg(),id:G()}),VA.extend({key:DA("version"),value:SD}),VA.extend({key:DA("cluster"),value:vD}),VA.extend({key:DA("commit_hash"),value:RD}),VA.extend({key:DA("identity_key"),value:TD}),VA.extend({key:DA("vote_key"),value:FD}),VA.extend({key:DA("startup_time_nanos"),value:MD}),VA.extend({key:DA("schedule_strategy"),value:$Q}),VA.extend({key:DA("tiles"),value:OD.array()}),VA.extend({key:DA("identity_balance"),value:XQ}),VA.extend({key:DA("vote_balance"),value:XQ}),VA.extend({key:DA("root_slot"),value:ND}),VA.extend({key:DA("optimistically_confirmed_slot"),value:UD}),VA.extend({key:DA("completed_slot"),value:GD}),VA.extend({key:DA("estimated_slot"),value:jD}),VA.extend({key:DA("reset_slot"),value:JD}),VA.extend({key:DA("storage_slot"),value:ZD}),VA.extend({key:DA("vote_slot"),value:HD}),VA.extend({key:DA("slot_caught_up"),value:$D}),VA.extend({key:DA("active_fork_count"),value:XD}),VA.extend({key:DA("estimated_slot_duration_nanos"),value:zD}),VA.extend({key:DA("estimated_tps"),value:KD}),VA.extend({key:DA("live_network_metrics"),value:WD}),VA.extend({key:DA("live_txn_waterfall"),value:Aw}),VA.extend({key:DA("live_tile_primary_metric"),value:ew}),VA.extend({key:DA("live_tile_metrics"),value:tw}),VA.extend({key:DA("live_tile_timers"),value:G().array()}),VA.extend({key:DA("startup_progress"),value:nw}),VA.extend({key:DA("boot_progress"),value:iw}),VA.extend({key:DA("tps_history"),value:gw}),VA.extend({key:DA("vote_state"),value:cw}),VA.extend({key:DA("vote_distance"),value:uw}),VA.extend({key:DA("skip_rate"),value:Iw}),VA.extend({key:DA("turbine_slot"),value:xD}),VA.extend({key:DA("repair_slot"),value:LD}),VA.extend({key:DA("catch_up_history"),value:PD}),VA.extend({key:DA("server_time_nanos"),value:YD}),VA.extend({key:DA("live_program_cache"),value:Ew})]),Bw=NA({epoch:G(),start_time_nanos:GA().nullable(),end_time_nanos:GA().nullable(),start_slot:G(),end_slot:G(),excluded_stake_lamports:XA(),staked_pubkeys:GA().array(),staked_lamports:XA().array(),leader_slots:G().array()}),Cw=fr("key",[JQ.extend({key:DA("new"),value:Bw})]),Qw=NA({num_push_messages_rx_success:G(),num_push_messages_rx_failure:G(),num_push_entries_rx_success:G(),num_push_entries_rx_failure:G(),num_push_entries_rx_duplicate:G(),num_pull_response_messages_rx_success:G(),num_pull_response_messages_rx_failure:G(),num_pull_response_entries_rx_success:G(),num_pull_response_entries_rx_failure:G(),num_pull_response_entries_rx_duplicate:G(),total_peers:G(),total_stake:XA(),connected_stake:XA(),connected_staked_peers:G(),connected_unstaked_peers:G()}),qQ=NA({total_throughput:G(),peer_names:GA().array(),peer_identities:GA().array(),peer_throughput:G().array()}),fw=NA({capacity:G(),expired_count:G(),evicted_count:G(),count:G().array(),count_tx:G().array(),bytes_tx:G().array()}),dw=NA({num_bytes_rx:G().array(),num_bytes_tx:G().array(),num_messages_rx:G().array(),num_messages_tx:G().array()}),hw=NA({health:Qw,ingress:qQ,egress:qQ,storage:fw,messages:dw}),mw=G(),VQ=ya([GA(),G()]),Af=ro(GA(),ro(GA(),VQ)).nullable(),pw=NA({changes:be(NA({row_index:G(),column_name:GA(),new_value:VQ}))}),yw=fr("key",[qn.extend({key:DA("network_stats"),value:hw}),qn.extend({key:DA("peers_size_update"),value:mw}),qn.extend({key:DA("query_scroll"),value:Af}),qn.extend({key:DA("query_sort"),value:Af}),qn.extend({key:DA("view_update"),value:pw})]),bw=NA({client_id:G().nullable().optional(),wallclock:G(),shred_version:G(),version:GA().nullable(),feature_set:G().nullable(),sockets:ro(GA(),GA()),country_code:GA().nullable().optional(),city_name:GA().nullable().optional()}),Dw=NA({vote_account:GA(),activated_stake:XA(),last_vote:dt(G()),root_slot:dt(G()),epoch_credits:G(),commission:G(),delinquent:Qr()}),ef=NA({name:dt(GA()),details:dt(GA()),website:dt(GA()),icon_url:dt(GA()),keybase_username:dt(GA())}),tf=NA({identity_pubkey:GA(),gossip:dt(bw),vote:be(Dw),info:dt(ef)}),ww=NA({identity_pubkey:GA()}),kw=NA({add:be(tf).optional(),update:be(tf).optional(),remove:be(ww).optional()}),_w=fr("key",[ZQ.extend({key:DA("update"),value:kw})]),Sw=NA({timestamp_nanos:GA(),tile_timers:G().array()}),vw=NA({timestamp_nanos:XA(),regular:G(),votes:G(),conflicting:G(),bundles:G()}),Rw=NA({account:GA(),cost:G()}),Tw=NA({used_total_block_cost:G(),used_total_vote_cost:G(),used_account_write_costs:Rw.array(),used_total_bytes:G(),used_total_microblocks:G(),max_total_block_cost:G(),max_total_vote_cost:G(),max_account_write_cost:G(),max_total_bytes:G(),max_total_microblocks:G()}),Fw=NA({block_hash:GA().optional(),end_slot_reason:GA().optional(),slot_schedule_counts:G().array(),end_slot_schedule_counts:G().array(),pending_smallest_cost:G().nullable(),pending_smallest_bytes:G().nullable(),pending_vote_smallest_cost:G().nullable(),pending_vote_smallest_bytes:G().nullable()}),_a=NA({publish:sw,waterfall:zQ.nullable().optional(),tile_primary_metric:KQ.nullable().optional(),tile_timers:Sw.array().nullable().optional(),scheduler_counts:vw.array().nullable().optional(),transactions:ow.nullable().optional(),limits:Tw.nullable().optional(),scheduler_stats:Fw.nullable().optional()}),Mw=G().array(),Ow=G().array(),Nw=NA({slots_largest_tips:G().array(),vals_largest_tips:XA().array(),slots_smallest_tips:G().array(),vals_smallest_tips:XA().array(),slots_largest_fees:G().array(),vals_largest_fees:XA().array(),slots_smallest_fees:G().array(),vals_smallest_fees:XA().array(),slots_largest_rewards:G().array(),vals_largest_rewards:XA().array(),slots_smallest_rewards:G().array(),vals_smallest_rewards:XA().array(),slots_largest_duration:G().array(),vals_largest_duration:XA().array(),slots_smallest_duration:G().array(),vals_smallest_duration:XA().array(),slots_largest_compute_units:G().array(),vals_largest_compute_units:XA().array(),slots_smallest_compute_units:G().array(),vals_smallest_compute_units:XA().array(),slots_largest_skipped:G().array(),vals_largest_skipped:XA().array(),slots_smallest_skipped:G().array(),vals_smallest_skipped:XA().array()}),Uw=NA({reference_slot:G(),reference_ts:XA(),slot_delta:G().array(),shred_idx:G().nullable().array(),event:G().array(),event_ts_delta:Je().array()}),Gw=fr("key",[Wt.extend({key:DA("skipped_history"),value:Mw}),Wt.extend({key:DA("skipped_history_cluster"),value:Ow}),Wt.extend({key:DA("update"),value:_a}),Wt.extend({key:DA("query"),value:_a.nullable()}),Wt.extend({key:DA("query_detailed"),value:_a.nullable()}),Wt.extend({key:DA("query_transactions"),value:_a.nullable()}),Wt.extend({key:DA("query_rankings"),value:Nw}),Wt.extend({key:DA("live_shreds"),value:Uw}),Wt.extend({key:DA("late_votes_history"),value:NA({slot:G().array(),latency:G().nullable().array()})})]),xw=vt(["disconnected","connecting","connected","sleeping"]),Lw=NA({name:GA(),url:GA(),ip:GA().optional(),status:xw}),Pw=fr("key",[HQ.extend({key:DA("update"),value:Lw})]),Yw=NA({staked_pubkeys:GA().array(),staked_lamports:XA().array(),infos:be(ef.nullable())}),jw=GA().array(),Jw=GA().array(),Zw=fr("key",[ka.extend({key:DA("stakes"),value:Yw}),ka.extend({key:DA("peer_add"),value:jw}),ka.extend({key:DA("peer_remove"),value:Jw})]),Hw=_D.discriminatedUnion("topic",[lw,Cw,yw,_w,Gw,Pw,Zw]);function ic(r){if(r<1)throw new Error("Ring buffer size must be at least 1");const i=new Array(r);let u=0,E=0;return{get length(){return E},push(g){i[u]=g,u=(u+1)%r,E"u")return!1;const r=navigator.userAgent.toLowerCase();return/iphone|android|windows phone|ipad|android|tablet/.test(r)||"ontouchstart"in window&&!!matchMedia?.("(hover: none)").matches}$w();var Xw={isEqual:!0,isMatchingKey:!0,isPromise:!0,maxSize:!0,onCacheAdd:!0,onCacheChange:!0,onCacheHit:!0,transformKey:!0},zw=Array.prototype.slice;function Sa(r){var i=r.length;return i?i===1?[r[0]]:i===2?[r[0],r[1]]:i===3?[r[0],r[1],r[2]]:zw.call(r,0):[]}function Kw(r){var i={};for(var u in r)Xw[u]||(i[u]=r[u]);return i}function Ww(r){return typeof r=="function"&&r.isMemoized}function qw(r,i){return r===i||r!==r&&i!==i}function rf(r,i){var u={};for(var E in r)u[E]=r[E];for(var E in i)u[E]=i[E];return u}var Vw=function(){function r(i){this.keys=[],this.values=[],this.options=i;var u=typeof i.isMatchingKey=="function";u?this.getKeyIndex=this._getKeyIndexFromMatchingKey:i.maxSize>1?this.getKeyIndex=this._getKeyIndexForMany:this.getKeyIndex=this._getKeyIndexForSingle,this.canTransformKey=typeof i.transformKey=="function",this.shouldCloneArguments=this.canTransformKey||u,this.shouldUpdateOnAdd=typeof i.onCacheAdd=="function",this.shouldUpdateOnChange=typeof i.onCacheChange=="function",this.shouldUpdateOnHit=typeof i.onCacheHit=="function"}return Object.defineProperty(r.prototype,"size",{get:function(){return this.keys.length},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"snapshot",{get:function(){return{keys:Sa(this.keys),size:this.size,values:Sa(this.values)}},enumerable:!1,configurable:!0}),r.prototype._getKeyIndexFromMatchingKey=function(i){var u=this.options,E=u.isMatchingKey,g=u.maxSize,a=this.keys,h=a.length;if(!h)return-1;if(E(a[0],i))return 0;if(g>1){for(var w=1;w1){for(var k=0;k1){for(var h=0;h=k&&(g.length=a.length=k)},r.prototype.updateAsyncCache=function(i){var u=this,E=this.options,g=E.onCacheChange,a=E.onCacheHit,h=this.keys[0],w=this.values[0];this.values[0]=w.then(function(k){return u.shouldUpdateOnHit&&a(u,u.options,i),u.shouldUpdateOnChange&&g(u,u.options,i),k},function(k){var v=u.getKeyIndex(h);throw v!==-1&&(u.keys.splice(v,1),u.values.splice(v,1)),k})},r}();function nf(r,i){if(i===void 0&&(i={}),Ww(r))return nf(r.fn,rf(r.options,i));if(typeof r!="function")throw new TypeError("You must pass a function to `memoize`.");var u=i.isEqual,E=u===void 0?qw:u,g=i.isMatchingKey,a=i.isPromise,h=a===void 0?!1:a,w=i.maxSize,k=w===void 0?1:w,v=i.onCacheAdd,F=i.onCacheChange,x=i.onCacheHit,$=i.transformKey,j=rf({isEqual:E,isMatchingKey:g,isPromise:h,maxSize:k,onCacheAdd:v,onCacheChange:F,onCacheHit:x,transformKey:$},Kw(i)),P=new Vw(j),rA=P.keys,iA=P.values,TA=P.canTransformKey,pA=P.shouldCloneArguments,MA=P.shouldUpdateOnAdd,xA=P.shouldUpdateOnChange,ce=P.shouldUpdateOnHit,se=function(){var Ue=pA?Sa(arguments):arguments;TA&&(Ue=$(Ue));var at=rA.length?P.getKeyIndex(Ue):-1;if(at!==-1)ce&&x(P,j,se),at&&(P.orderByLru(rA[at],iA[at],at),xA&&F(P,j,se));else{var OA=r.apply(this,arguments),je=pA?Ue:Sa(arguments);P.orderByLru(je,OA,rA.length),h&&P.updateAsyncCache(se),MA&&v(P,j,se),xA&&F(P,j,se)}return iA[0]};return se.cache=P,se.fn=r,se.isMemoized=!0,se.options=j,se}const of=jQ.safeParse("Firedancer".trim()),af=of.error?nc.Frankendancer:of.data;nc.Frankendancer,nc.Firedancer,PA.now(),setInterval(()=>{PA.now()},1e3);function Ak(r){return r!==void 0}nf(r=>{if(r)return r.toUpperCase().split("").map(E=>String.fromCodePoint(E.charCodeAt(0)-65+127462)).join("")},{maxSize:100});function oc(r){const i=new Map;let u;function E(h,w){let k=i.get(h);return k||(k=r.createEntry(h,w),i.set(h,k)),k}function g(h){return h.lastPublishMs+h.publishIntervalMs}function a(){if(u)return;const h=performance.now();let w=1/0;for(const k of i.values()){if(!k.subscribed)continue;const v=Math.max(0,g(k)-h);v{u=void 0;const k=performance.now(),v=[];for(const F of i.values()){if(!F.subscribed||k{const k=E(h,w);k.subscribed||(k.subscribed=!0,a())},unsubscribe:h=>{const w=i.get(h);w&&(w.subscribed=!1);let k=!1;for(const v of i.values())if(v.subscribed){k=!0;break}!k&&u&&(clearTimeout(u),u=void 0)},get:h=>i.get(h),reset:h=>{const w=h?[i.get(h)].filter(Ak):i.values();for(const k of w)r.onReset?.(k),k.lastPublishMs=0},stop:()=>{u&&(clearTimeout(u),u=void 0);for(const h of i.values())h.subscribed=!1}}}function sf(r){const i=r.halfLifeMs/Math.log(2),{initMinSamples:u,warmupMs:E}=r;let g,a,h=0,w;function k(){a=void 0,h=0,g=void 0,w=void 0}function v(x){if(!E||!w)return i;const $=Math.max(.2,Math.min(1,(x-w)/E));return i*$}function F(x,$){if(!a)return x!=null&&(a={value:x,tsMs:$}),!1;x??=a.value;const j=$-a.tsMs;if(!isFinite(j)||j<=0)return!1;const P=x-a.value;if(!isFinite(P)||P<0)return k(),a={value:x,tsMs:$},!1;if(a={value:x,tsMs:$},g===void 0)return P<=0||(h+=1,hk.ema??0)),w}for(;i.lengthk.ema??0)),w}return{get ema(){return u},reset:E,tick:g}}function tk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,calc:ek(E),history:ic(g)}},collect:(u,E)=>{if(u.calc.ema.length>0){const g=[...u.calc.ema];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.calc.reset(),u.history.clear()}});return{...i,update(u,E,g){const a=i.get(u);a&&a.calc.tick(E,g)},get(u){return i.get(u)?.calc.ema}}}function rk(r){const i=oc({createEntry:(u,E)=>{const g=Math.ceil(E.historyWindowMs/E.publishIntervalMs);return{key:u,subscribed:!1,lastPublishMs:0,publishIntervalMs:E.publishIntervalMs,values:[],history:ic(g)}},collect:(u,E)=>{if(u.values.length>0){const g=[...u.values];return u.history.push({ts:E,values:g}),{key:u.key,values:g,history:u.history.toArray()}}},post:r,onReset:u=>{u.values=[],u.history.clear()}});return{...i,update(u,E){const g=i.get(u);g&&(g.values=E)},get(u){return i.get(u)?.values}}}function nk(r){function i(E){const g={};let a=!1;for(const h of E.fields)g[h]=E.calcs[h].ema??0,E.calcs[h].ema!==void 0&&(a=!0);return{value:g,hasValue:a}}const u=oc({createEntry:(E,g)=>{const a={};for(const w of g.fields)a[w]=sf(g);const h=Math.ceil(g.historyWindowMs/g.publishIntervalMs);return{key:E,subscribed:!1,lastPublishMs:0,publishIntervalMs:g.publishIntervalMs,fields:g.fields,calcs:a,history:ic(h)}},collect:(E,g)=>{const{value:a,hasValue:h}=i(E);if(h)return E.history.push({ts:g,value:a}),{key:E.key,value:a,history:E.history.toArray()}},post:r,onReset:E=>{for(const g of E.fields)E.calcs[g].reset();E.history.clear()}});return{...u,update(E,g,a){const h=u.get(E);if(h)for(const w of h.fields){const k=g[w];typeof k=="number"&&h.calcs[w].tick(k,a)}},get(E){const g=u.get(E);if(g){const{value:a,hasValue:h}=i(g);if(h)return a}}}}const ik=100,ok=3e4,ak=5e3,gf=500,cf=6e4,uf=5e3,If=["num_push_messages_rx_success","num_push_messages_rx_failure","num_push_entries_rx_success","num_push_entries_rx_failure","num_push_entries_rx_duplicate","num_pull_response_messages_rx_success","num_pull_response_messages_rx_failure","num_pull_response_entries_rx_success","num_pull_response_entries_rx_failure","num_pull_response_entries_rx_duplicate"];Object.fromEntries(If.map(r=>[r,0]));const sk={halfLifeMs:5e3,initMinSamples:10,warmupMs:1e4,publishIntervalMs:ik,historyWindowMs:ok+ak,fields:[...If]},Ef={halfLifeMs:1e3,initMinSamples:5,warmupMs:5e3,publishIntervalMs:gf,historyWindowMs:cf+uf},gk={publishIntervalMs:gf,historyWindowMs:cf+uf};function ac(r,i,u){return r.topic===i&&r.key===u}function ck(r){const i=tk(g=>r({type:"emaHistoryArray",items:g})),u=nk(g=>r({type:"emaHistoryObject",items:g})),E=rk(g=>r({type:"historyArray",items:g}));return{onMessage(g){const a=performance.now();ac(g,"gossip","network_stats")&&(u.subscribe("gossipHealth",sk),u.update("gossipHealth",g.value.health,a)),ac(g,"summary","live_network_metrics")&&(i.subscribe("ingress",Ef),i.subscribe("egress",Ef),i.update("ingress",g.value.ingress,a),i.update("egress",g.value.egress,a)),ac(g,"summary","live_tile_timers")&&(E.subscribe("tileTimers",gk),E.update("tileTimers",g.value))}}}const lf=3e3,uk=32,Vn=self;let It=null,sc,gc=!1;const io=new Map,Ik=ck(r=>Vn.postMessage(r));function Ek(r){Ik.onMessage(r);const i=`${r.topic}:${r.key}`;io.has(i)?io.get(i)?.push(r):io.set(i,[r]),gc||(gc=!0,setTimeout(lk,uk))}function lk(){gc=!1;const r=[];for(const i of io.values())for(const u of i)r.push(u);io.clear(),r.length&&Vn.postMessage({type:"kvb",items:r})}function Bf(r,i){Zn("WS",`Connecting to API WebSocket ${r.toString()}`),Vn.postMessage({type:"connecting"}),It=new WebSocket(r,i?["compress-zstd"]:void 0),It.binaryType="arraybuffer",It.onopen=function(){this===It&&(Zn("WS","Connected to API WebSocket"),Vn.postMessage({type:"connected"}))},It.onclose=function(){this===It&&(Zn("WS",`Disconnected API WebSocket, reconnecting in ${lf}ms`),Vn.postMessage({type:"disconnected"}),clearTimeout(sc),sc=setTimeout(()=>Bf(r,i),lf))};const u=new TextDecoder;It.onmessage=function(g){if(this===It)try{const a=g.data;let h;if(typeof a=="string"?h=JSON.parse(a):a instanceof ArrayBuffer&&i&&(h=JSON.parse(u.decode(i.ZstdStream.decompress(new Uint8Array(a))))),h!==void 0){const w=Hw.safeParse(h);if(!w.success){Zn("zod",h),Zn("Zod",w.error.message),Zn("Zod",w.error.issues);return}Ek(w.data)}}catch(a){Is("WS",a)}}}Vn.onmessage=r=>{const i=r.data;switch(i.type){case"connect":(async()=>{let u;if(i.compress)try{u=await dh()}catch(E){Is("WS","Failed to initialize Zstd, falling back to uncompressed",E)}Bf(i.websocketUrl,u)})();break;case"disconnect":if(clearTimeout(sc),It){try{It.close()}catch{Is("WS","Error closing WebSocket")}It=null}break;case"send":It&&It.readyState===WebSocket.OPEN?It.send(JSON.stringify(i.value)):Qp("WS","Attempting to send on closed WebSocket",i.value);break}}})(); diff --git a/src/disco/gui/dist_dev/index.html b/src/disco/gui/dist_dev/index.html index c2b189f34c6..fa1133c3036 100644 --- a/src/disco/gui/dist_dev/index.html +++ b/src/disco/gui/dist_dev/index.html @@ -54,8 +54,8 @@ /> Firedancer - - + + diff --git a/src/disco/gui/dist_dev/version b/src/disco/gui/dist_dev/version index edec9f3ccbe..8c5f8a3e00d 100644 --- a/src/disco/gui/dist_dev/version +++ b/src/disco/gui/dist_dev/version @@ -1 +1 @@ -dc78fa04483d8daa2af6b3f68c6024830b8b4ee7 +bf17bea95d95e2484c35d3e69078dd8447b9a989 diff --git a/src/disco/gui/fd_gui_printf.c b/src/disco/gui/fd_gui_printf.c index 0b21450c2f6..58dafc31cff 100644 --- a/src/disco/gui/fd_gui_printf.c +++ b/src/disco/gui/fd_gui_printf.c @@ -635,9 +635,9 @@ fd_gui_printf_block_engine( fd_gui_t * gui ) { jsonp_string( gui->http, "name", gui->block_engine.name ); jsonp_string( gui->http, "url", gui->block_engine.url ); jsonp_string( gui->http, "ip", gui->block_engine.ip_cstr ); - /* TODO: fix FD_BUNDLE_STATE_SLEEPING after adding frontend support */ if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_CONNECTING ) ) jsonp_string( gui->http, "status", "connecting" ); else if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_CONNECTED ) ) jsonp_string( gui->http, "status", "connected" ); + else if( FD_LIKELY( gui->block_engine.status==FD_BUNDLE_STATE_SLEEPING ) ) jsonp_string( gui->http, "status", "sleeping" ); else jsonp_string( gui->http, "status", "disconnected" ); jsonp_close_object( gui->http ); jsonp_close_envelope( gui->http ); diff --git a/src/disco/gui/generated/http_import_dist.c b/src/disco/gui/generated/http_import_dist.c index e58a229f2ea..9b1a021a743 100644 --- a/src/disco/gui/generated/http_import_dist.c +++ b/src/disco/gui/generated/http_import_dist.c @@ -147,12 +147,12 @@ FD_IMPORT_BINARY( file_dev8_gzip, "src/disco/gui/dist_dev_cmp/assets/frankendanc FD_IMPORT_BINARY( file_dev9, "src/disco/gui/dist_dev/assets/frankendancer_logo-CHyfJ772.svg" ); FD_IMPORT_BINARY( file_dev9_zstd, "src/disco/gui/dist_dev_cmp/assets/frankendancer_logo-CHyfJ772.svg.zst" ); FD_IMPORT_BINARY( file_dev9_gzip, "src/disco/gui/dist_dev_cmp/assets/frankendancer_logo-CHyfJ772.svg.gz" ); -FD_IMPORT_BINARY( file_dev10, "src/disco/gui/dist_dev/assets/index-CKTbDeLd.js" ); -FD_IMPORT_BINARY( file_dev10_zstd, "src/disco/gui/dist_dev_cmp/assets/index-CKTbDeLd.js.zst" ); -FD_IMPORT_BINARY( file_dev10_gzip, "src/disco/gui/dist_dev_cmp/assets/index-CKTbDeLd.js.gz" ); -FD_IMPORT_BINARY( file_dev11, "src/disco/gui/dist_dev/assets/index-ColMY7Rf.css" ); -FD_IMPORT_BINARY( file_dev11_zstd, "src/disco/gui/dist_dev_cmp/assets/index-ColMY7Rf.css.zst" ); -FD_IMPORT_BINARY( file_dev11_gzip, "src/disco/gui/dist_dev_cmp/assets/index-ColMY7Rf.css.gz" ); +FD_IMPORT_BINARY( file_dev10, "src/disco/gui/dist_dev/assets/index-C054xcgF.js" ); +FD_IMPORT_BINARY( file_dev10_zstd, "src/disco/gui/dist_dev_cmp/assets/index-C054xcgF.js.zst" ); +FD_IMPORT_BINARY( file_dev10_gzip, "src/disco/gui/dist_dev_cmp/assets/index-C054xcgF.js.gz" ); +FD_IMPORT_BINARY( file_dev11, "src/disco/gui/dist_dev/assets/index-qV0ZL8w9.css" ); +FD_IMPORT_BINARY( file_dev11_zstd, "src/disco/gui/dist_dev_cmp/assets/index-qV0ZL8w9.css.zst" ); +FD_IMPORT_BINARY( file_dev11_gzip, "src/disco/gui/dist_dev_cmp/assets/index-qV0ZL8w9.css.gz" ); FD_IMPORT_BINARY( file_dev12, "src/disco/gui/dist_dev/assets/inter-tight-latin-400-normal-BLrFJfvD.woff" ); FD_IMPORT_BINARY( file_dev12_zstd, "src/disco/gui/dist_dev_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.zst" ); FD_IMPORT_BINARY( file_dev12_gzip, "src/disco/gui/dist_dev_cmp/assets/inter-tight-latin-400-normal-BLrFJfvD.woff.gz" ); @@ -168,9 +168,9 @@ FD_IMPORT_BINARY( file_dev15_gzip, "src/disco/gui/dist_dev_cmp/assets/roboto-mon FD_IMPORT_BINARY( file_dev16, "src/disco/gui/dist_dev/assets/roboto-mono-latin-400-normal-GekRknry.woff2" ); FD_IMPORT_BINARY( file_dev16_zstd, "src/disco/gui/dist_dev_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.zst" ); FD_IMPORT_BINARY( file_dev16_gzip, "src/disco/gui/dist_dev_cmp/assets/roboto-mono-latin-400-normal-GekRknry.woff2.gz" ); -FD_IMPORT_BINARY( file_dev17, "src/disco/gui/dist_dev/assets/wsWorker-D3WzW2i7.js" ); -FD_IMPORT_BINARY( file_dev17_zstd, "src/disco/gui/dist_dev_cmp/assets/wsWorker-D3WzW2i7.js.zst" ); -FD_IMPORT_BINARY( file_dev17_gzip, "src/disco/gui/dist_dev_cmp/assets/wsWorker-D3WzW2i7.js.gz" ); +FD_IMPORT_BINARY( file_dev17, "src/disco/gui/dist_dev/assets/wsWorker-CiLy8ipA.js" ); +FD_IMPORT_BINARY( file_dev17_zstd, "src/disco/gui/dist_dev_cmp/assets/wsWorker-CiLy8ipA.js.zst" ); +FD_IMPORT_BINARY( file_dev17_gzip, "src/disco/gui/dist_dev_cmp/assets/wsWorker-CiLy8ipA.js.gz" ); FD_IMPORT_BINARY( file_dev18, "src/disco/gui/dist_dev/index.html" ); FD_IMPORT_BINARY( file_dev18_zstd, "src/disco/gui/dist_dev_cmp/index.html.zst" ); FD_IMPORT_BINARY( file_dev18_gzip, "src/disco/gui/dist_dev_cmp/index.html.gz" ); @@ -621,7 +621,7 @@ fd_http_static_file_t STATIC_FILES_DEV[] = { .gzip_data_len = &file_dev9_gzip_sz, }, { - .name = "/assets/index-CKTbDeLd.js", + .name = "/assets/index-C054xcgF.js", .data = file_dev10, .data_len = &file_dev10_sz, .zstd_data = file_dev10_zstd, @@ -630,7 +630,7 @@ fd_http_static_file_t STATIC_FILES_DEV[] = { .gzip_data_len = &file_dev10_gzip_sz, }, { - .name = "/assets/index-ColMY7Rf.css", + .name = "/assets/index-qV0ZL8w9.css", .data = file_dev11, .data_len = &file_dev11_sz, .zstd_data = file_dev11_zstd, @@ -684,7 +684,7 @@ fd_http_static_file_t STATIC_FILES_DEV[] = { .gzip_data_len = &file_dev16_gzip_sz, }, { - .name = "/assets/wsWorker-D3WzW2i7.js", + .name = "/assets/wsWorker-CiLy8ipA.js", .data = file_dev17, .data_len = &file_dev17_sz, .zstd_data = file_dev17_zstd, From 5ded412cf1041304425ca522a15b0ed20ddd550f Mon Sep 17 00:00:00 2001 From: jherrera-jump Date: Thu, 4 Jun 2026 15:46:32 -0500 Subject: [PATCH 13/30] frank, gui: fix summary.health.vote (#10088) --- src/disco/gui/fd_gui_printf.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/disco/gui/fd_gui_printf.c b/src/disco/gui/fd_gui_printf.c index 58dafc31cff..9d906d92919 100644 --- a/src/disco/gui/fd_gui_printf.c +++ b/src/disco/gui/fd_gui_printf.c @@ -1192,6 +1192,16 @@ fd_gui_printf_health( fd_gui_t * gui ) { turbine_status = metrics[ MIDX( GAUGE, DIAG, TURBINE_STATUS ) ]; } + if( FD_UNLIKELY( !gui->summary.is_full_client ) ) { + switch( gui->summary.vote_state ) { + case FD_GUI_VOTE_STATE_VOTING: vote_status = FD_DIAG_VOTE_STATUS_VOTING; break; + case FD_GUI_VOTE_STATE_DELINQUENT: vote_status = FD_DIAG_VOTE_STATUS_DELINQUENT; break; + default: vote_status = FD_DIAG_VOTE_STATUS_DISABLED; break; + } + replay_status = FD_DIAG_REPLAY_STATUS_DISABLED; + turbine_status = FD_DIAG_TURBINE_STATUS_DISABLED; + } + /* Map bundle status to string */ char const * bundle_str; switch( bundle_status ) { From 1121a3495142f8b237c5b2bf657d00d9470a8899 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 20:36:04 +0000 Subject: [PATCH 14/30] musl libc fixes - deps.sh: update Alpine package deps - Fix PAGE_SIZE identifier usage (conflicts with libc) - Fix sendmmsg flags integer type (different on musl vs glibc) - Fix usage of off64_t (better to use long) - Fix include (better to use ) - Fix sockaddr type punning with connect(2) - Fix usage of dirent64 (better to use dirent, which is identical) - Don't assume struct rlimit->resource is uint - Enable bpf syscall wrappers for musl libc - Fix missing include when using --- deps.sh | 4 +++- src/app/shared/commands/configure/hugetlbfs.c | 12 ++++++------ src/app/shared_dev/commands/bench/fd_benchs.c | 3 +-- src/discof/backtest/fd_libc_zstd.c | 12 ++++++------ src/discof/genesis/fd_genesi_tile.c | 2 +- src/discof/genesis/fd_genesis_client_private.h | 2 +- src/discof/genesis/fuzz_genesis_client.c | 2 +- src/discof/ipecho/fd_ipecho_client_private.h | 2 +- src/discof/ipecho/fd_ipecho_server.c | 2 +- src/discof/ipecho/fd_ipecho_tile.c | 2 +- src/discof/restore/utils/fd_ssping.c | 4 ++-- src/util/sandbox/fd_sandbox.c | 6 +++--- src/util/sandbox/test_sandbox.c | 2 +- src/waltz/ebpf/fd_linux_bpf.h | 2 +- src/waltz/mib/fd_netdev_netlink.c | 2 ++ 15 files changed, 31 insertions(+), 28 deletions(-) diff --git a/deps.sh b/deps.sh index b6d1674e769..f3d29fc262a 100755 --- a/deps.sh +++ b/deps.sh @@ -243,10 +243,12 @@ check_alpine_pkgs () { build-base # C/C++ compiler curl # download rustup linux-headers # base dependency - libucontext-dev # base dependency patch # build system zstd # build system gzip # build system + grep # build system + make # build system + perl # OpenSSL ) if [[ $DEVMODE == 1 ]]; then REQUIRED_APKS+=( autoconf automake bison flex gettext perl protobuf-dev ) diff --git a/src/app/shared/commands/configure/hugetlbfs.c b/src/app/shared/commands/configure/hugetlbfs.c index cd7e132d16d..8b8a41f1baf 100644 --- a/src/app/shared/commands/configure/hugetlbfs.c +++ b/src/app/shared/commands/configure/hugetlbfs.c @@ -36,7 +36,7 @@ static char const * FREE_HUGE_PAGE_PATH[ 2 ] = { "/sys/devices/system/node/node%lu/hugepages/hugepages-1048576kB/free_hugepages", }; -static ulong PAGE_SIZE[ 2 ] = { +static ulong FD_PAGE_SIZE[ 2 ] = { 2097152, 1073741824, }; @@ -153,8 +153,8 @@ init( config_t const * config ) { ulong min_size[ 2 ] = {0}; for( ulong i=0UL; itopo, i, 0 ); - min_size[ 1 ] += PAGE_SIZE[ 1 ] * fd_topo_gigantic_page_cnt( &config->topo, i ); + min_size[ 0 ] += FD_PAGE_SIZE[ 0 ] * fd_topo_huge_page_cnt( &config->topo, i, 0 ); + min_size[ 1 ] += FD_PAGE_SIZE[ 1 ] * fd_topo_gigantic_page_cnt( &config->topo, i ); } for( ulong i=0UL; i<2UL; i++ ) { @@ -164,7 +164,7 @@ init( config_t const * config ) { } char options[ 256 ]; - FD_TEST( fd_cstr_printf_check( options, sizeof(options), NULL, "pagesize=%lu,min_size=%lu", PAGE_SIZE[ i ], min_size[ i ] ) ); + FD_TEST( fd_cstr_printf_check( options, sizeof(options), NULL, "pagesize=%lu,min_size=%lu", FD_PAGE_SIZE[ i ], min_size[ i ] ) ); FD_LOG_NOTICE(( "RUN: `mount -t hugetlbfs none %s -o %s`", mount_path[ i ], options )); if( FD_UNLIKELY( mount( "none", mount_path[ i ], "hugetlbfs", 0, options) ) ) FD_LOG_ERR(( "mount of hugetlbfs at `%s` failed (%i-%s)", mount_path[ i ], errno, fd_io_strerror( errno ) )); @@ -303,8 +303,8 @@ check( config_t const * config, ulong numa_node_cnt = fd_shmem_numa_cnt(); ulong required_min_size[ 2 ] = {0}; for( ulong i=0UL; itopo, i, 0 ); - required_min_size[ 1 ] += PAGE_SIZE[ 1 ] * fd_topo_gigantic_page_cnt( &config->topo, i ); + required_min_size[ 0 ] += FD_PAGE_SIZE[ 0 ] * fd_topo_huge_page_cnt( &config->topo, i, 0 ); + required_min_size[ 1 ] += FD_PAGE_SIZE[ 1 ] * fd_topo_gigantic_page_cnt( &config->topo, i ); } struct stat st; diff --git a/src/app/shared_dev/commands/bench/fd_benchs.c b/src/app/shared_dev/commands/bench/fd_benchs.c index 98667ed4367..d0e1a5e30f9 100644 --- a/src/app/shared_dev/commands/bench/fd_benchs.c +++ b/src/app/shared_dev/commands/bench/fd_benchs.c @@ -450,8 +450,7 @@ unprivileged_init( fd_topo_t const * topo, static void quic_tx_aio_send_flush( fd_benchs_ctx_t * ctx ) { if( FD_LIKELY( ctx->tx_idx ) ) { - int flags = 0; - int rtn = sendmmsg( ctx->conn_fd[0], ctx->tx_msgs, (uint)ctx->tx_idx, flags ); + int rtn = sendmmsg( ctx->conn_fd[0], ctx->tx_msgs, (uint)ctx->tx_idx, 0 ); if( FD_UNLIKELY( rtn < 0 ) ) { FD_LOG_NOTICE(( "Error occurred in sendmmsg. Error: %d %s", errno, strerror( errno ) )); diff --git a/src/discof/backtest/fd_libc_zstd.c b/src/discof/backtest/fd_libc_zstd.c index c32b82b1472..e6c67698525 100644 --- a/src/discof/backtest/fd_libc_zstd.c +++ b/src/discof/backtest/fd_libc_zstd.c @@ -53,9 +53,9 @@ rstream_read( void * cookie, } static int -rstream_seek( void * cookie, - off64_t * pos, - int w ) { +rstream_seek( void * cookie, + long * pos, + int w ) { fd_zstd_rstream_t * zs = cookie; if( FD_UNLIKELY( *pos ) ) { FD_LOG_WARNING(( "Invalid seek(%ld,%i) on fd_libc_zstd_rstream handle", *pos, w )); @@ -203,9 +203,9 @@ wstream_close( void * cookie ) { } static int -wstream_seek( void * cookie, - off64_t * pos, - int w ) { +wstream_seek( void * cookie, + long * pos, + int w ) { fd_zstd_wstream_t * zs = cookie; if( FD_UNLIKELY( !( w==SEEK_CUR && *pos==0 ) ) ) { FD_LOG_WARNING(( "Attempted to seek in fd_libc_zstd_wstream handle" )); diff --git a/src/discof/genesis/fd_genesi_tile.c b/src/discof/genesis/fd_genesi_tile.c index 3b1c29f2e5c..a3107b19066 100644 --- a/src/discof/genesis/fd_genesi_tile.c +++ b/src/discof/genesis/fd_genesi_tile.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/discof/genesis/fd_genesis_client_private.h b/src/discof/genesis/fd_genesis_client_private.h index 4a09587f938..a91d9cb224e 100644 --- a/src/discof/genesis/fd_genesis_client_private.h +++ b/src/discof/genesis/fd_genesis_client_private.h @@ -3,7 +3,7 @@ #include "fd_genesis_client.h" #include "../../disco/topo/fd_topo.h" -#include +#include struct fd_genesis_client_peer { fd_ip4_port_t addr; diff --git a/src/discof/genesis/fuzz_genesis_client.c b/src/discof/genesis/fuzz_genesis_client.c index 6adaca1ddb6..15993e839e4 100644 --- a/src/discof/genesis/fuzz_genesis_client.c +++ b/src/discof/genesis/fuzz_genesis_client.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/discof/ipecho/fd_ipecho_client_private.h b/src/discof/ipecho/fd_ipecho_client_private.h index a1531a1bdae..314ffcf722b 100644 --- a/src/discof/ipecho/fd_ipecho_client_private.h +++ b/src/discof/ipecho/fd_ipecho_client_private.h @@ -3,7 +3,7 @@ #include "../../util/fd_util_base.h" -#include +#include struct fd_ipecho_client_peer { int writing; diff --git a/src/discof/ipecho/fd_ipecho_server.c b/src/discof/ipecho/fd_ipecho_server.c index 2bfc775b291..d27df74c272 100644 --- a/src/discof/ipecho/fd_ipecho_server.c +++ b/src/discof/ipecho/fd_ipecho_server.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/src/discof/ipecho/fd_ipecho_tile.c b/src/discof/ipecho/fd_ipecho_tile.c index e3260c2b3d7..b5b35130c63 100644 --- a/src/discof/ipecho/fd_ipecho_tile.c +++ b/src/discof/ipecho/fd_ipecho_tile.c @@ -9,7 +9,7 @@ #include #include -#include +#include #include "generated/fd_ipecho_tile_seccomp.h" diff --git a/src/discof/restore/utils/fd_ssping.c b/src/discof/restore/utils/fd_ssping.c index 3354e8e7aaf..e055550d92d 100644 --- a/src/discof/restore/utils/fd_ssping.c +++ b/src/discof/restore/utils/fd_ssping.c @@ -326,7 +326,7 @@ remove_fdesc_idx( fd_ssping_t * ssping, .sin_addr = { .s_addr = 0U }, .sin_port = 0 }}; - if( FD_UNLIKELY( connect( fdesc, addr, sizeof(addr) ) ) ) FD_LOG_ERR(( "connect(AF_UNSPEC) failed (%d-%s)", errno, fd_io_strerror( errno ) )); + if( FD_UNLIKELY( connect( fdesc, fd_type_pun_const( addr ), sizeof(addr) ) ) ) FD_LOG_ERR(( "connect(AF_UNSPEC) failed (%d-%s)", errno, fd_io_strerror( errno ) )); /* Mark that the pool element no longer has an associated index. */ ssping->pool[ pool_idx ].used_fd_idx = ULONG_MAX; @@ -477,7 +477,7 @@ send_pings( fd_ssping_t * ssping, .sin_port = peer->addr.port }}; - if( FD_UNLIKELY( connect( fdesc, addr, sizeof(addr) ) && errno!=EINPROGRESS ) ) { + if( FD_UNLIKELY( connect( fdesc, fd_type_pun_const( addr ), sizeof(addr) ) && errno!=EINPROGRESS ) ) { FD_LOG_WARNING(( "connect(" FD_IP4_ADDR_FMT ":%hu) failed (%d-%s)", FD_IP4_ADDR_FMT_ARGS( peer->addr.addr ), fd_ushort_bswap( peer->addr.port ), errno, fd_io_strerror( errno ) )); /* Nothing to do. It will get "reaped" later. */ } diff --git a/src/util/sandbox/fd_sandbox.c b/src/util/sandbox/fd_sandbox.c index 4670bd355c6..163e782f4e8 100644 --- a/src/util/sandbox/fd_sandbox.c +++ b/src/util/sandbox/fd_sandbox.c @@ -162,7 +162,7 @@ fd_sandbox_private_check_exact_file_descriptors( ulong allowed_file_descri If we don't align it the compiler might prove somthing weird and trash this code, and also ASAN would flag it as an error. So we just align it anyway. */ - uchar buf[ 4096 ] __attribute__((aligned(alignof(struct dirent64)))); + uchar buf[ 4096 ] __attribute__((aligned(alignof(struct dirent)))); long dents_bytes = syscall( SYS_getdents64, dirfd, buf, sizeof( buf ) ); if( !dents_bytes ) break; @@ -170,7 +170,7 @@ fd_sandbox_private_check_exact_file_descriptors( ulong allowed_file_descri ulong offset = 0UL; while( offset<(ulong)dents_bytes ) { - struct dirent64 const * dent = (struct dirent64 const *)(buf + offset); + struct dirent const * dent = (struct dirent const *)(buf + offset); if( !strcmp( dent->d_name, "." ) || !strcmp( dent->d_name, ".." ) ) { offset += dent->d_reclen; continue; @@ -429,7 +429,7 @@ fd_sandbox_private_set_rlimits( ulong rlimit_file_cnt, for( ulong i=0UL; id_name, "." ) || !strcmp( dent->d_name, "..") ); offset += dent->d_reclen; } diff --git a/src/waltz/ebpf/fd_linux_bpf.h b/src/waltz/ebpf/fd_linux_bpf.h index 034288a03c9..640fd035a4e 100644 --- a/src/waltz/ebpf/fd_linux_bpf.h +++ b/src/waltz/ebpf/fd_linux_bpf.h @@ -5,7 +5,7 @@ #include "../../util/fd_util_base.h" -#if defined(__linux__) && defined(_DEFAULT_SOURCE) || defined(_BSD_SOURCE) +#if defined(__linux__) #include #include diff --git a/src/waltz/mib/fd_netdev_netlink.c b/src/waltz/mib/fd_netdev_netlink.c index eb27b4d9581..a637e7a87c4 100644 --- a/src/waltz/mib/fd_netdev_netlink.c +++ b/src/waltz/mib/fd_netdev_netlink.c @@ -12,6 +12,8 @@ #include /* IFNAMSIZ */ #include /* ARPHRD_NETROM */ #include /* RTM_{...}, NLM_{...} */ +#include +#include #include static fd_netdev_t * From faa17a64eb8892a75dface7f4e59f631bf4338d1 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 20:57:06 +0000 Subject: [PATCH 15/30] remove verify_synth_load Fossil code, broken since several years --- src/disco/verify/verify_synth_load.c | 449 --------------------------- 1 file changed, 449 deletions(-) delete mode 100644 src/disco/verify/verify_synth_load.c diff --git a/src/disco/verify/verify_synth_load.c b/src/disco/verify/verify_synth_load.c deleted file mode 100644 index 9a8135dcf94..00000000000 --- a/src/disco/verify/verify_synth_load.c +++ /dev/null @@ -1,449 +0,0 @@ -#include - -int -fd_app_verify_task( int argc, - char ** argv ) { - (void)argc; - fd_log_thread_set( argv[0] ); - char const * verify_name = argv[0]; - FD_LOG_INFO(( "verify.%s init", verify_name )); - - /* Parse "command line" arguments */ - - char const * pod_gaddr = argv[1]; - - /* Load up the configuration for this app instance */ - - FD_LOG_INFO(( "using configuration in pod %s at path %s", pod_gaddr, cfg_path )); - uchar const * pod = fd_wksp_pod_attach( pod_gaddr ); - uchar const * cfg_pod = fd_pod_query_subpod( pod, cfg_path ); - if( FD_UNLIKELY( !cfg_pod ) ) FD_LOG_ERR(( "path not found" )); - - uchar const * verify_pods = fd_pod_query_subpod( cfg_pod, "verify" ); - if( FD_UNLIKELY( !verify_pods ) ) FD_LOG_ERR(( "%s.verify path not found", cfg_path )); - - uchar const * verify_pod = fd_pod_query_subpod( verify_pods, verify_name ); - if( FD_UNLIKELY( !verify_pod ) ) FD_LOG_ERR(( "%s.verify.%s path not found", cfg_path, verify_name )); - - /* Join the IPC objects needed this tile instance */ - - FD_LOG_INFO(( "joining %s.verify.%s.cnc", cfg_path, verify_name )); - fd_cnc_t * cnc = fd_cnc_join( fd_wksp_pod_map( verify_pod, "cnc" ) ); - if( FD_UNLIKELY( !cnc ) ) FD_LOG_ERR(( "fd_cnc_join failed" )); - if( FD_UNLIKELY( fd_cnc_signal_query( cnc )!=FD_CNC_SIGNAL_BOOT ) ) FD_LOG_ERR(( "cnc not in boot state" )); - ulong * cnc_diag = (ulong *)fd_cnc_app_laddr( cnc ); - if( FD_UNLIKELY( !cnc_diag ) ) FD_LOG_ERR(( "fd_cnc_app_laddr failed" )); - int in_backp = 1; - - FD_COMPILER_MFENCE(); - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_IN_BACKP ] ) = 1UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_BACKP_CNT ] ) = 0UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_CNT ] ) = 0UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_SZ ] ) = 0UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_CNT ] ) = 0UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_SZ ] ) = 0UL; - FD_COMPILER_MFENCE(); - - FD_LOG_INFO(( "joining %s.verify.%s.mcache", cfg_path, verify_name )); - fd_frag_meta_t * mcache = fd_mcache_join( fd_wksp_pod_map( verify_pod, "mcache" ) ); - if( FD_UNLIKELY( !mcache ) ) FD_LOG_ERR(( "fd_mcache_join failed" )); - ulong depth = fd_mcache_depth( mcache ); - ulong * sync = fd_mcache_seq_laddr( mcache ); - ulong seq = fd_mcache_seq_query( sync ); - - FD_LOG_INFO(( "joining %s.verify.%s.dcache", cfg_path, verify_name )); - uchar * dcache = fd_dcache_join( fd_wksp_pod_map( verify_pod, "dcache" ) ); - if( FD_UNLIKELY( !dcache ) ) FD_LOG_ERR(( "fd_dcache_join failed" )); - fd_wksp_t * wksp = fd_wksp_containing( dcache ); /* chunks are referenced relative to the containing workspace */ - if( FD_UNLIKELY( !wksp ) ) FD_LOG_ERR(( "fd_wksp_containing failed" )); - ulong chunk0 = fd_dcache_compact_chunk0( wksp, dcache ); - ulong wmark = fd_dcache_compact_wmark ( wksp, dcache, 1542UL ); /* FIXME: MTU? SAFETY CHECK THE FOOTPRINT? */ - ulong chunk = chunk0; - - FD_LOG_INFO(( "joining %s.verify.%s.fseq", cfg_path, verify_name )); - ulong * fseq = fd_fseq_join( fd_wksp_pod_map( verify_pod, "fseq" ) ); - if( FD_UNLIKELY( !fseq ) ) FD_LOG_ERR(( "fd_fseq_join failed" )); - ulong * fseq_diag = (ulong *)fd_fseq_app_laddr( fseq ); - if( FD_UNLIKELY( !fseq_diag ) ) FD_LOG_ERR(( "fd_fseq_app_laddr failed" )); - FD_VOLATILE( fseq_diag[ FD_FSEQ_DIAG_SLOW_CNT ] ) = 0UL; /* Managed by the fctl */ - - /* Setup local objects used by this tile */ - - FD_LOG_INFO(( "configuring flow control" )); - ulong cr_max = fd_pod_query_ulong( verify_pod, "cr_max", 0UL ); - ulong cr_resume = fd_pod_query_ulong( verify_pod, "cr_resume", 0UL ); - ulong cr_refill = fd_pod_query_ulong( verify_pod, "cr_refill", 0UL ); - long lazy = fd_pod_query_long ( verify_pod, "lazy", 0L ); - FD_LOG_INFO(( "%s.verify.%s.cr_max %lu", cfg_path, verify_name, cr_max )); - FD_LOG_INFO(( "%s.verify.%s.cr_resume %lu", cfg_path, verify_name, cr_resume )); - FD_LOG_INFO(( "%s.verify.%s.cr_refill %lu", cfg_path, verify_name, cr_refill )); - FD_LOG_INFO(( "%s.verify.%s.lazy %li", cfg_path, verify_name, lazy )); - - fd_fctl_t * fctl = fd_fctl_cfg_done( fd_fctl_cfg_rx_add( fd_fctl_join( fd_fctl_new( fd_alloca( FD_FCTL_ALIGN, - fd_fctl_footprint( 1UL ) ), - 1UL ) ), - depth, fseq, &fseq_diag[ FD_FSEQ_DIAG_SLOW_CNT ] ), - 1UL /*cr_burst*/, cr_max, cr_resume, cr_refill ); - if( FD_UNLIKELY( !fctl ) ) FD_LOG_ERR(( "Unable to create flow control" )); - FD_LOG_INFO(( "using cr_burst %lu, cr_max %lu, cr_resume %lu, cr_refill %lu", - fd_fctl_cr_burst( fctl ), fd_fctl_cr_max( fctl ), fd_fctl_cr_resume( fctl ), fd_fctl_cr_refill( fctl ) )); - - ulong cr_avail = 0UL; - - if( lazy<=0L ) lazy = fd_tempo_lazy_default( depth ); - FD_LOG_INFO(( "using lazy %li ns", lazy )); - ulong async_min = fd_tempo_async_min( lazy, 1UL /*event_cnt*/, (float)fd_tempo_tick_per_ns( NULL ) ); - if( FD_UNLIKELY( !async_min ) ) FD_LOG_ERR(( "bad lazy" )); - - uint seed = fd_pod_query_uint( verify_pod, "seed", (uint)fd_tile_id() ); /* use app tile_id as default */ - FD_LOG_INFO(( "creating rng (%s.verify.%s.seed %u)", cfg_path, verify_name, seed )); - fd_rng_t _rng[ 1 ]; - fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, seed, 0UL ) ); - if( FD_UNLIKELY( !rng ) ) FD_LOG_ERR(( "fd_rng_join failed" )); - - /* FIXME: PROBABLY SHOULD PUT THIS IN WORKSPACE */ -# define TCACHE_DEPTH (16UL) /* Should be ~1/2-1/4 MAP_CNT */ -# define TCACHE_MAP_CNT (64UL) /* Power of two */ - uchar tcache_mem[ FD_TCACHE_FOOTPRINT( TCACHE_DEPTH, TCACHE_MAP_CNT ) ] __attribute__((aligned(FD_TCACHE_ALIGN))); - fd_tcache_t * tcache = fd_tcache_join( fd_tcache_new( tcache_mem, TCACHE_DEPTH, TCACHE_MAP_CNT ) ); - ulong tcache_depth = fd_tcache_depth ( tcache ); - ulong tcache_map_cnt = fd_tcache_map_cnt ( tcache ); - ulong * _tcache_sync = fd_tcache_oldest_laddr( tcache ); - ulong * _tcache_ring = fd_tcache_ring_laddr ( tcache ); - ulong * _tcache_map = fd_tcache_map_laddr ( tcache ); - ulong tcache_oldest = FD_VOLATILE_CONST( *_tcache_sync ); - - ulong accum_ha_filt_cnt = 0UL; ulong accum_ha_filt_sz = 0UL; - - fd_sha512_t _sha[1]; - fd_sha512_t * sha = fd_sha512_join( fd_sha512_new( _sha ) ); - if( FD_UNLIKELY( !sha ) ) FD_LOG_ERR(( "fd_sha512 join failed" )); - - ulong accum_sv_filt_cnt = 0UL; ulong accum_sv_filt_sz = 0UL; - - /* Start verifying */ - - FD_LOG_INFO(( "verify.%s run", verify_name )); - -# define SYNTH_LOAD 1 -# if SYNTH_LOAD - - /* We assume that the distribution layer has parsed the incoming - packets and stripped them down to a 32 byte public key, 64 byte - signature (just 1 signature, which is typical though there are - bursts where averages up to ~1.4 signatures are seen). (FIXME: - PROBABLY SHOULD DEDUCT SOME EXTRA BYTES FOR THE QUIC HEADER - OVERHEAD AND SIGNATURE CNT FROM THE WORST CASE HERE.) For every - possible size then, we precomp a packet for each size with a valid - signature to serve as our reference traffic. */ - -# define MSG_SZ_MIN (0UL) -# define MSG_SZ_MAX (1232UL-64UL-32UL) - ulong ref_msg_mem_footprint = 0UL; - for( ulong msg_sz=MSG_SZ_MIN; msg_sz<=MSG_SZ_MAX; msg_sz++ ) ref_msg_mem_footprint += fd_ulong_align_up( msg_sz + 96UL, 128UL ); - uchar * ref_msg_mem = fd_alloca( 128UL, ref_msg_mem_footprint ); - if( FD_UNLIKELY( !ref_msg_mem ) ) FD_LOG_ERR(( "fd_alloc failed" )); - - uchar * ref_msg[ MSG_SZ_MAX - MSG_SZ_MIN + 1UL ]; - for( ulong msg_sz=MSG_SZ_MIN; msg_sz<=MSG_SZ_MAX; msg_sz++ ) { - ref_msg[ msg_sz - MSG_SZ_MIN ] = ref_msg_mem; - uchar * public_key = ref_msg_mem; - uchar * sig = public_key + 32UL; - uchar * msg = sig + 64UL; - ref_msg_mem += fd_ulong_align_up( msg_sz + 96UL, 128UL ); - - /* Generate a public_key / private_key pair for this message */ - - ulong private_key[4]; for( ulong i=0UL; i<4UL; i++ ) private_key[i] = fd_rng_ulong( rng ); - fd_ed25519_public_from_private( public_key, private_key, sha ); - - /* Make a random message */ - for( ulong b=0UL; b=0L ) ) { - - /* Send synchronization info */ - fd_mcache_seq_update( sync, seq ); - FD_COMPILER_MFENCE(); - FD_VOLATILE( *_tcache_sync ) = tcache_oldest; - FD_COMPILER_MFENCE(); - - /* Send diagnostic info */ - fd_cnc_heartbeat( cnc, now ); - FD_COMPILER_MFENCE(); - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_CNT ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_CNT ] ) + accum_ha_filt_cnt; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_SZ ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_HA_FILT_SZ ] ) + accum_ha_filt_sz; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_CNT ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_CNT ] ) + accum_sv_filt_cnt; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_SZ ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_SV_FILT_SZ ] ) + accum_sv_filt_sz; - FD_COMPILER_MFENCE(); - accum_ha_filt_cnt = 0UL; - accum_ha_filt_sz = 0UL; - accum_sv_filt_cnt = 0UL; - accum_sv_filt_sz = 0UL; - - /* Receive command-and-control signals */ - ulong s = fd_cnc_signal_query( cnc ); - if( FD_UNLIKELY( s!=FD_CNC_SIGNAL_RUN ) ) { - if( FD_UNLIKELY( s!=FD_CNC_SIGNAL_HALT ) ) FD_LOG_ERR(( "Unexpected signal" )); - break; - } - - /* Receive flow control credits */ - cr_avail = fd_fctl_tx_cr_update( fctl, cr_avail, seq ); - if( FD_UNLIKELY( in_backp ) ) { - if( FD_LIKELY( cr_avail ) ) { - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_IN_BACKP ] ) = 0UL; - in_backp = 0; - } - } - - /* Reload housekeeping timer */ - then = now + (long)fd_tempo_async_reload( rng, async_min ); - } - - /* Check if we are backpressured */ - if( FD_UNLIKELY( !cr_avail ) ) { - if( FD_UNLIKELY( !in_backp ) ) { - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_IN_BACKP ] ) = 1UL; - FD_VOLATILE( cnc_diag[ FD_APP_CNC_DIAG_BACKP_CNT ] ) = FD_VOLATILE_CONST( cnc_diag[ FD_APP_CNC_DIAG_BACKP_CNT ] )+1UL; - in_backp = 1; - } - FD_SPIN_PAUSE(); - now = fd_tickcount(); - continue; - } - -# if SYNTH_LOAD - /* Check if we are waiting for the next burst to start */ - - if( FD_LIKELY( ctl_som ) ) { - if( FD_UNLIKELY( now Date: Thu, 4 Jun 2026 21:10:06 +0000 Subject: [PATCH 16/30] Remove alloca usages Remove all alloca usages except in monitor.c and watch.c. --- src/app/shared_dev/commands/dump.c | 5 +++-- src/ballet/lthash/fd_lthash.h | 16 ---------------- src/disco/stem/fd_stem.c | 8 +++----- src/discof/restore/fd_snapin_tile.c | 2 +- src/flamenco/runtime/test_txncache.c | 16 +++------------- src/waltz/quic/tests/test_quic_client_flood.c | 4 ++-- 6 files changed, 12 insertions(+), 39 deletions(-) diff --git a/src/app/shared_dev/commands/dump.c b/src/app/shared_dev/commands/dump.c index 02e08488e90..023cb571eac 100644 --- a/src/app/shared_dev/commands/dump.c +++ b/src/app/shared_dev/commands/dump.c @@ -310,9 +310,10 @@ dump_cmd_fn( args_t * args, fd_rng_t _rng[1]; fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, (uint)fd_tickcount(), 0UL ) ); - uchar * scratch = fd_alloca( FD_STEM_SCRATCH_ALIGN, stem_scratch_footprint( ctx.link_cnt, 0UL, 0UL ) ); + uchar __attribute__((aligned(FD_STEM_SCRATCH_ALIGN))) scratch[ stem_scratch_footprint( ctx.link_cnt, 0UL, 0UL ) ]; + uchar __attribute__((aligned(FD_METRICS_ALIGN))) metrics_mem[ FD_METRICS_FOOTPRINT( ctx.link_cnt ) ]; - ctx.metrics_base = fd_metrics_join( fd_metrics_new( fd_alloca( FD_METRICS_ALIGN, FD_METRICS_FOOTPRINT( ctx.link_cnt ) ), ctx.link_cnt ) ); + ctx.metrics_base = fd_metrics_join( fd_metrics_new( metrics_mem, ctx.link_cnt ) ); fd_metrics_register( ctx.metrics_base ); /* The purpose of the warmup period is to ensure that all frags in diff --git a/src/ballet/lthash/fd_lthash.h b/src/ballet/lthash/fd_lthash.h index dd1867a03f0..8728e5b6ff0 100644 --- a/src/ballet/lthash/fd_lthash.h +++ b/src/ballet/lthash/fd_lthash.h @@ -65,22 +65,6 @@ fd_lthash_sub( fd_lthash_value_t * restrict r, return r; } -#define FD_LTHASH_ENC_32_BUF( _x, _y ) __extension__({ \ - if( FD_UNLIKELY( _x == NULL ) ) { \ - strcpy(_y, ""); \ - } else { \ - uchar _blake3_hash[FD_HASH_FOOTPRINT]; \ - fd_blake3_hash(_x, FD_LTHASH_LEN_BYTES, _blake3_hash ); \ - fd_base58_encode_32( _blake3_hash, NULL, _y ); \ - } \ -}) - -#define FD_LTHASH_ENC_32_ALLOCA( x ) __extension__({ \ - char *_out = (char *)fd_alloca_check( 1UL, FD_BASE58_ENCODED_32_SZ ); \ - FD_LTHASH_ENC_32_BUF(x, _out); \ - _out; \ -}) - FD_PROTOTYPES_END #endif /* HEADER_fd_src_ballet_lthash_fd_lthash_h */ diff --git a/src/disco/stem/fd_stem.c b/src/disco/stem/fd_stem.c index 6d5364f9716..9737e97e1b8 100644 --- a/src/disco/stem/fd_stem.c +++ b/src/disco/stem/fd_stem.c @@ -165,10 +165,6 @@ This callback is not called when an overrun is detected in during_frag. */ -#if !FD_HAS_ALLOCA -#error "fd_stem requires alloca" -#endif - #include "../../util/log/fd_log.h" #include "../topo/fd_topo.h" #include "../metrics/fd_metrics.h" @@ -823,6 +819,8 @@ STEM_(run)( fd_topo_t * topo, STEM_CALLBACK_CONTEXT_TYPE * ctx = (STEM_CALLBACK_CONTEXT_TYPE*)fd_ulong_align_up( (ulong)fd_topo_obj_laddr( topo, tile->tile_obj_id ), STEM_CALLBACK_CONTEXT_ALIGN ); + uchar __attribute__((aligned(FD_STEM_SCRATCH_ALIGN))) stem_scratch[ STEM_(scratch_footprint)( polled_in_cnt, tile->out_cnt, reliable_cons_cnt ) ]; + STEM_(run1)( polled_in_cnt, in_mcache, in_fseq, @@ -835,7 +833,7 @@ STEM_(run)( fd_topo_t * topo, STEM_BURST, STEM_LAZY, rng, - fd_alloca( FD_STEM_SCRATCH_ALIGN, STEM_(scratch_footprint)( polled_in_cnt, tile->out_cnt, reliable_cons_cnt ) ), + stem_scratch, ctx ); #ifdef STEM_CALLBACK_METRICS_WRITE diff --git a/src/discof/restore/fd_snapin_tile.c b/src/discof/restore/fd_snapin_tile.c index ddc2f615494..8db15de1c7f 100644 --- a/src/discof/restore/fd_snapin_tile.c +++ b/src/discof/restore/fd_snapin_tile.c @@ -433,7 +433,7 @@ populate_txncache( fd_snapin_tile_t * ctx, anything else is a nonce transaction which we do not insert, or an already expired transaction which can also be discarded. */ - uchar * _map = fd_alloca_check( alignof(blockhash_map_t), blockhash_map_footprint( 1024UL ) ); + uchar __attribute__((aligned(alignof(blockhash_map_t)))) _map[ blockhash_map_footprint( 1024UL ) ]; blockhash_map_t * blockhash_map = blockhash_map_join( blockhash_map_new( _map, 1024UL, ctx->seed ) ); if( FD_UNLIKELY( !blockhash_map ) ) FD_LOG_ERR(( "failed to create blockhash map" )); diff --git a/src/flamenco/runtime/test_txncache.c b/src/flamenco/runtime/test_txncache.c index e9d6801d64f..629c6723257 100644 --- a/src/flamenco/runtime/test_txncache.c +++ b/src/flamenco/runtime/test_txncache.c @@ -8,19 +8,9 @@ FD_STATIC_ASSERT( FD_TXNCACHE_ALIGN==128UL, unit_test ); -#define BLOCKHASH( x ) __extension__({ \ - uchar * _out = fd_alloca_check( 1UL, 32UL ); \ - fd_memset( _out, 0, 32UL ); \ - (void)FD_STORE( ulong, _out, (x) ); \ - _out; \ -}) - -#define TXNHASH( x ) __extension__({ \ - uchar * _out = fd_alloca_check( 1UL, 32UL ); \ - fd_memset( _out, 0, 32UL ); \ - (void)FD_STORE( ulong, _out, (x) ); \ - _out; \ -}) +#define BLOCKHASH( x ) (&((fd_hash_t){ .ul = { (x) } }))->uc + +#define TXNHASH( x ) (&((fd_hash_t){ .ul = { (x) } }))->uc #define NULL_FORK ((fd_txncache_fork_id_t){ .val = USHORT_MAX }) diff --git a/src/waltz/quic/tests/test_quic_client_flood.c b/src/waltz/quic/tests/test_quic_client_flood.c index 16867571aae..22b606db01c 100644 --- a/src/waltz/quic/tests/test_quic_client_flood.c +++ b/src/waltz/quic/tests/test_quic_client_flood.c @@ -112,8 +112,8 @@ run_quic_client( ulong ref_msg_mem_footprint = 0UL; for( ulong msg_sz=MSG_SZ_MIN; msg_sz<=MSG_SZ_MAX; msg_sz++ ) ref_msg_mem_footprint += fd_ulong_align_up( msg_sz + 96UL, 128UL ); - uchar * ref_msg_mem = fd_alloca( 128UL, ref_msg_mem_footprint ); - if( FD_UNLIKELY( !ref_msg_mem ) ) FD_LOG_ERR(( "fd_alloc failed" )); + uchar ref_msg_mem_[ ref_msg_mem_footprint ]; + uchar * ref_msg_mem = ref_msg_mem_; uchar * ref_msg[ MSG_SZ_MAX - MSG_SZ_MIN + 1UL ]; for( ulong msg_sz=MSG_SZ_MIN; msg_sz<=MSG_SZ_MAX; msg_sz++ ) { From 2f41752bd4edc31840a9e5d7b01da8f5f0f84a01 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 21:11:53 +0000 Subject: [PATCH 17/30] Remove FD_HAS_ALLOCA guards --- src/app/shared/Local.mk | 2 ++ src/app/shared_dev/commands/quic_trace/Local.mk | 2 -- src/choreo/eqvoc/Local.mk | 2 -- src/choreo/ghost/Local.mk | 2 -- src/disco/dedup/Local.mk | 2 -- src/disco/diag/Local.mk | 2 -- src/disco/events/Local.mk | 2 -- src/disco/keyguard/Local.mk | 2 -- src/disco/metrics/Local.mk | 2 -- src/disco/net/Local.mk | 2 -- src/disco/net/sock/Local.mk | 2 -- src/disco/net/xdp/Local.mk | 2 -- src/disco/quic/Local.mk | 2 -- src/disco/shred/Local.mk | 2 -- src/disco/store/Local.mk | 2 -- src/disco/verify/Local.mk | 2 -- src/discof/backtest/Local.mk | 2 -- src/discof/capture/Local.mk | 2 -- src/discof/execrp/Local.mk | 2 -- src/discof/genesis/Local.mk | 2 -- src/discof/gossip/Local.mk | 2 -- src/discof/ipecho/Local.mk | 2 -- src/discof/poh/Local.mk | 2 -- src/discof/reasm/Local.mk | 2 -- src/discof/repair/Local.mk | 2 -- src/discof/replay/Local.mk | 2 -- src/discof/resolv/Local.mk | 2 -- src/discof/restore/Local.mk | 2 -- src/discof/rpc/Local.mk | 2 -- src/discof/tower/Local.mk | 2 -- src/discof/txsend/Local.mk | 2 -- src/discoh/plugin/Local.mk | 2 -- src/discoh/pohh/Local.mk | 2 -- src/discoh/resolh/Local.mk | 2 -- src/discoh/store/Local.mk | 2 -- src/flamenco/gossip/Local.mk | 2 -- src/flamenco/runtime/Local.mk | 4 ---- 37 files changed, 2 insertions(+), 74 deletions(-) diff --git a/src/app/shared/Local.mk b/src/app/shared/Local.mk index e82ae356fe6..48df3833522 100644 --- a/src/app/shared/Local.mk +++ b/src/app/shared/Local.mk @@ -30,8 +30,10 @@ $(call add-objs,commands/configure/hugetlbfs,fdctl_shared) $(call add-objs,commands/configure/hyperthreads,fdctl_shared) $(call add-objs,commands/configure/sysctl,fdctl_shared) $(call add-objs,commands/configure/snapshots,fdctl_shared) +ifdef FD_HAS_ALLOCA $(call add-objs,commands/monitor/monitor commands/monitor/helper,fdctl_shared) $(call add-objs,commands/watch/watch,fdctl_shared) +endif # FD_HAS_ALLOCA $(call add-objs,commands/run/run commands/run/run1,fdctl_shared) endif diff --git a/src/app/shared_dev/commands/quic_trace/Local.mk b/src/app/shared_dev/commands/quic_trace/Local.mk index a7bfb078753..1771d515361 100644 --- a/src/app/shared_dev/commands/quic_trace/Local.mk +++ b/src/app/shared_dev/commands/quic_trace/Local.mk @@ -1,8 +1,6 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_quic_trace_frame,fddev_shared) $(call add-objs,fd_quic_trace_main,fddev_shared) $(call add-objs,fd_quic_trace_rx_tile,fddev_shared) $(call add-objs,fd_quic_trace_log_tile,fddev_shared) endif -endif diff --git a/src/choreo/eqvoc/Local.mk b/src/choreo/eqvoc/Local.mk index 6ed3160e05b..9048ea1369f 100644 --- a/src/choreo/eqvoc/Local.mk +++ b/src/choreo/eqvoc/Local.mk @@ -1,4 +1,3 @@ -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_eqvoc.h) $(call add-objs,fd_eqvoc,fd_choreo) ifdef FD_HAS_HOSTED @@ -6,4 +5,3 @@ $(call make-unit-test,test_eqvoc,test_eqvoc,fd_choreo fd_flamenco fd_ballet fd_u $(call run-unit-test,test_eqvoc) $(call make-fuzz-test,fuzz_eqvoc,fuzz_eqvoc,fd_choreo fd_flamenco fd_ballet fd_util) endif -endif diff --git a/src/choreo/ghost/Local.mk b/src/choreo/ghost/Local.mk index 9cf79f57159..3c37b2145b9 100644 --- a/src/choreo/ghost/Local.mk +++ b/src/choreo/ghost/Local.mk @@ -1,8 +1,6 @@ -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_ghost.h) $(call add-objs,fd_ghost,fd_choreo) ifdef FD_HAS_HOSTED $(call make-unit-test,test_ghost,test_ghost,fd_choreo fd_flamenco fd_tango fd_ballet fd_util) $(call run-unit-test,test_ghost) endif -endif diff --git a/src/disco/dedup/Local.mk b/src/disco/dedup/Local.mk index ec857dd2ae0..5302077a09b 100644 --- a/src/disco/dedup/Local.mk +++ b/src/disco/dedup/Local.mk @@ -1,6 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_dedup_tile,fd_disco) # $(call make-unit-test,test_dedup,test_dedup,fd_disco fd_tango fd_util) endif -endif diff --git a/src/disco/diag/Local.mk b/src/disco/diag/Local.mk index b952902ff37..71fc6627fc0 100644 --- a/src/disco/diag/Local.mk +++ b/src/disco/diag/Local.mk @@ -1,7 +1,5 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_diag_tile,fd_disco) -endif $(call add-hdrs,fd_proc_interrupts.h) $(call add-objs,fd_proc_interrupts,fd_disco) $(call make-unit-test,test_proc_interrupts,test_proc_interrupts,fd_disco fd_util) diff --git a/src/disco/events/Local.mk b/src/disco/events/Local.mk index 9fa1b7775c3..d4dc327186b 100644 --- a/src/disco/events/Local.mk +++ b/src/disco/events/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED $(call add-hdrs,fd_circq.h) $(call add-objs,fd_circq fd_event_client,fd_disco) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_event_tile,fd_disco) -endif $(call make-unit-test,test_circq,test_circq,fd_disco fd_flamenco fd_tango fd_util) $(call run-unit-test,test_circq) diff --git a/src/disco/keyguard/Local.mk b/src/disco/keyguard/Local.mk index 8d03de76092..f62f6213bc6 100644 --- a/src/disco/keyguard/Local.mk +++ b/src/disco/keyguard/Local.mk @@ -18,8 +18,6 @@ $(call make-unit-test,test_keyload,test_keyload,fd_disco fd_flamenco fd_tls fd_b $(call run-unit-test,test_keyload) $(call make-proof,proof_authorize,fd_keyguard_proofs.c) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_sign_tile,fd_disco) endif endif -endif diff --git a/src/disco/metrics/Local.mk b/src/disco/metrics/Local.mk index 31cad154ec9..466721e9140 100644 --- a/src/disco/metrics/Local.mk +++ b/src/disco/metrics/Local.mk @@ -1,7 +1,5 @@ ifdef FD_HAS_HOSTED $(call add-hdrs,fd_prometheus.h fd_metrics.h) $(call add-objs,fd_prometheus fd_metrics ,fd_disco) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_metric_tile,fd_disco) endif -endif diff --git a/src/disco/net/Local.mk b/src/disco/net/Local.mk index b66397403d6..d4f924a616d 100644 --- a/src/disco/net/Local.mk +++ b/src/disco/net/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_net_tile.h) $(call add-objs,fd_net_tile_topo,fd_disco) endif ifdef FD_HAS_LINUX $(call add-objs,fd_linux_bond,fd_disco) endif -endif diff --git a/src/disco/net/sock/Local.mk b/src/disco/net/sock/Local.mk index e24b980f95c..a3e0c5b4455 100644 --- a/src/disco/net/sock/Local.mk +++ b/src/disco/net/sock/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_sock_tile,fd_disco) endif -endif diff --git a/src/disco/net/xdp/Local.mk b/src/disco/net/xdp/Local.mk index e4b5c25c3d3..333c849d0fc 100644 --- a/src/disco/net/xdp/Local.mk +++ b/src/disco/net/xdp/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_xdp_tile,fd_disco) ifdef FD_ARCH_SUPPORTS_SANDBOX $(call make-unit-test,test_xdp_tile,test_xdp_tile,fd_disco fd_tango fd_waltz fd_util) $(call run-unit-test,test_xdp_tile) endif endif -endif diff --git a/src/disco/quic/Local.mk b/src/disco/quic/Local.mk index 15dc58e4ad0..7673055aff1 100644 --- a/src/disco/quic/Local.mk +++ b/src/disco/quic/Local.mk @@ -9,8 +9,6 @@ $(OBJDIR)/obj/disco/quic/test_quic_metrics.o: src/disco/quic/test_quic_metrics.t endif ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_quic_tile.h) $(call add-objs,fd_quic_tile,fd_disco) endif -endif diff --git a/src/disco/shred/Local.mk b/src/disco/shred/Local.mk index e614652ecc4..9cbdbc8da9e 100644 --- a/src/disco/shred/Local.mk +++ b/src/disco/shred/Local.mk @@ -3,9 +3,7 @@ $(call add-objs,fd_shredder,fd_disco) $(call add-objs,fd_stake_ci,fd_disco) ifdef FD_HAS_HOSTED $(call add-objs,fd_fec_resolver,fd_disco) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_shred_tile,fd_disco) -endif $(call make-unit-test,test_fec_resolver,test_fec_resolver,fd_flamenco fd_disco fd_ballet fd_util fd_tango fd_reedsol) $(call run-unit-test,test_fec_resolver) endif diff --git a/src/disco/store/Local.mk b/src/disco/store/Local.mk index 0c18e69d51f..d1b0a286cd1 100644 --- a/src/disco/store/Local.mk +++ b/src/disco/store/Local.mk @@ -1,8 +1,6 @@ -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_store.h) $(call add-objs,fd_store,fd_disco) ifdef FD_HAS_HOSTED $(call make-unit-test,test_store,test_store,fd_disco fd_flamenco fd_tango fd_ballet fd_util) $(call run-unit-test,test_store) endif -endif diff --git a/src/disco/verify/Local.mk b/src/disco/verify/Local.mk index 522b9eaa640..5ae7051e705 100644 --- a/src/disco/verify/Local.mk +++ b/src/disco/verify/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_verify_tile,fd_disco) $(call make-unit-test,test_verify,test_verify,fd_ballet fd_tango fd_util) $(call make-unit-test,test_verify_tile,test_verify_tile,fd_disco fd_ballet fd_tango fd_util) $(call run-unit-test,test_verify) $(call run-unit-test,test_verify_tile) endif -endif diff --git a/src/discof/backtest/Local.mk b/src/discof/backtest/Local.mk index e4cc8cabf0c..1716f1cf3b8 100644 --- a/src/discof/backtest/Local.mk +++ b/src/discof/backtest/Local.mk @@ -2,9 +2,7 @@ ifdef FD_HAS_HOSTED $(call add-objs,fd_backtest_src,fd_discof) $(call add-objs,fd_backtest_src_pcap,fd_discof) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_backtest_tile,fd_discof) -endif ifdef FD_HAS_ZSTD $(call add-objs,fd_libc_zstd,fd_discof) diff --git a/src/discof/capture/Local.mk b/src/discof/capture/Local.mk index cb971c3ff15..c4dec3025d4 100644 --- a/src/discof/capture/Local.mk +++ b/src/discof/capture/Local.mk @@ -1,7 +1,5 @@ ifdef FD_HAS_HOSTED ifdef FD_HAS_INT128 -ifdef FD_HAS_ALLOCA $(call add-objs,fd_solcap_tile,fd_discof) endif endif -endif diff --git a/src/discof/execrp/Local.mk b/src/discof/execrp/Local.mk index 03f5c3c1380..9993702d62a 100644 --- a/src/discof/execrp/Local.mk +++ b/src/discof/execrp/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_execrp_tile,fd_discof) ifdef FD_HAS_INT128 $(call make-unit-test,test_execrp_tile,test_execrp_tile,fd_discof fd_disco fd_choreo fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util) $(call run-unit-test,test_execrp_tile) endif endif -endif diff --git a/src/discof/genesis/Local.mk b/src/discof/genesis/Local.mk index 171f1ca5c75..a8d71e89688 100644 --- a/src/discof/genesis/Local.mk +++ b/src/discof/genesis/Local.mk @@ -1,8 +1,6 @@ -ifdef FD_HAS_ALLOCA ifdef FD_HAS_INT128 $(call add-objs,fd_genesi_tile fd_genesis_client,fd_discof) ifdef FD_HAS_HOSTED $(call make-fuzz-test,fuzz_genesis_client,fuzz_genesis_client,fd_discof fd_waltz fd_ballet fd_util) endif endif -endif diff --git a/src/discof/gossip/Local.mk b/src/discof/gossip/Local.mk index 438d477d5f0..e26d3e0bc13 100644 --- a/src/discof/gossip/Local.mk +++ b/src/discof/gossip/Local.mk @@ -1,6 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_gossip_tile,fd_discof) $(call add-objs,fd_gossvf_tile,fd_discof) endif -endif diff --git a/src/discof/ipecho/Local.mk b/src/discof/ipecho/Local.mk index ec8cc8f3541..b1bebf4ee99 100644 --- a/src/discof/ipecho/Local.mk +++ b/src/discof/ipecho/Local.mk @@ -1,5 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_ipecho_tile,fd_discof) $(call add-objs,fd_ipecho_client,fd_discof) $(call add-objs,fd_ipecho_server,fd_discof) @@ -9,4 +8,3 @@ $(call make-unit-test,test_ipecho_client,test_ipecho_client,fd_discof fd_disco f $(call make-fuzz-test,fuzz_ipecho_client,fuzz_ipecho_client,fd_discof fd_flamenco fd_ballet fd_util) $(call make-fuzz-test,fuzz_ipecho_server,fuzz_ipecho_server,fd_discof fd_flamenco fd_ballet fd_util) endif -endif diff --git a/src/discof/poh/Local.mk b/src/discof/poh/Local.mk index 5302d71685e..14b39695284 100644 --- a/src/discof/poh/Local.mk +++ b/src/discof/poh/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_poh_tile fd_poh,fd_discof) endif -endif diff --git a/src/discof/reasm/Local.mk b/src/discof/reasm/Local.mk index a2cae1a8874..563e9a07e33 100644 --- a/src/discof/reasm/Local.mk +++ b/src/discof/reasm/Local.mk @@ -1,7 +1,5 @@ -ifdef FD_HAS_ALLOCA $(call add-objs,fd_reasm,fd_discof) ifdef FD_HAS_HOSTED $(call make-unit-test,test_reasm,test_reasm,fd_discof fd_disco fd_flamenco fd_ballet fd_util) $(call run-unit-test,test_reasm) endif -endif diff --git a/src/discof/repair/Local.mk b/src/discof/repair/Local.mk index 4a7bd5a3d82..829fbea71c2 100644 --- a/src/discof/repair/Local.mk +++ b/src/discof/repair/Local.mk @@ -1,8 +1,6 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_repair_tile,fd_discof) endif -endif $(call add-objs,fd_policy,fd_discof) $(call add-hdrs,fd_policy.h) $(call add-objs,fd_inflight,fd_discof) diff --git a/src/discof/replay/Local.mk b/src/discof/replay/Local.mk index 299422acee4..9a3a3ae1119 100644 --- a/src/discof/replay/Local.mk +++ b/src/discof/replay/Local.mk @@ -2,10 +2,8 @@ $(call add-hdrs,fd_execrp.h) $(call add-objs,fd_rdisp,fd_discof) $(call make-unit-test,test_rdisp,test_rdisp,fd_discof fd_ballet fd_tango fd_util) $(call run-unit-test,test_rdisp) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_sched,fd_discof) $(call make-fuzz-test,fuzz_sched_rdisp,fuzz_sched_rdisp,fd_discof fd_disco fd_flamenco fd_funk fd_ballet fd_tango fd_util) -endif ifdef FD_HAS_ZSTD # required to load snapshot $(call add-objs,fd_replay_tile,fd_discof) diff --git a/src/discof/resolv/Local.mk b/src/discof/resolv/Local.mk index 8d7e40ecd06..ceabde1cb01 100644 --- a/src/discof/resolv/Local.mk +++ b/src/discof/resolv/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_resolv_tile,fd_discof) endif -endif diff --git a/src/discof/restore/Local.mk b/src/discof/restore/Local.mk index fe379fed67c..b156bb4d6b3 100644 --- a/src/discof/restore/Local.mk +++ b/src/discof/restore/Local.mk @@ -1,5 +1,4 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA ifdef FD_HAS_SSE $(call add-hdrs,fd_snapct_tile.h) $(call add-objs,fd_snapct_tile,fd_discof) @@ -13,7 +12,6 @@ $(call add-objs,fd_snapin_tile fd_snapin_tile_funk,fd_discof) $(call make-unit-test,test_snapin_tile,test_snapin_tile,fd_discof fd_disco fd_waltz fd_flamenco fd_funk fd_ballet fd_tango fd_util,$(OPENSSL_LIBS)) $(call run-unit-test,test_snapin_tile) endif # FD_HAS_SSE -endif # FD_HAS_ALLOCA $(call add-objs,utils/fd_ssparse,fd_discof) $(call add-objs,utils/fd_ssmanifest_parser,fd_discof) $(call add-objs,utils/fd_ssload,fd_discof) diff --git a/src/discof/rpc/Local.mk b/src/discof/rpc/Local.mk index 54a5d7415ba..6aad750b62e 100644 --- a/src/discof/rpc/Local.mk +++ b/src/discof/rpc/Local.mk @@ -1,4 +1,3 @@ -ifdef FD_HAS_ALLOCA $(call add-objs,fd_rpc_tile,fd_discof) $(call make-unit-test,test_rpc_tile,test_rpc_tile,fd_discof firedancer_version fd_disco fd_flamenco fd_waltz fd_funk fd_tango fd_ballet fd_util) @@ -6,4 +5,3 @@ ifdef FD_HAS_HOSTED $(call make-fuzz-test,fuzz_rpc,fuzz_rpc,fd_discof firedancer_version fd_disco fd_tango fd_flamenco fd_funk fd_waltz fd_ballet fd_util) $(call make-fuzz-test,fuzz_rpc_tarball,fuzz_rpc_tarball,fd_discof firedancer_version fd_disco fd_tango fd_flamenco fd_funk fd_waltz fd_ballet fd_util) endif -endif diff --git a/src/discof/tower/Local.mk b/src/discof/tower/Local.mk index 77fbd46542f..85c1be98cb9 100644 --- a/src/discof/tower/Local.mk +++ b/src/discof/tower/Local.mk @@ -1,7 +1,5 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_tower_tile,fd_discof) $(call make-unit-test,test_tower_tile,test_tower_tile,fd_discof fd_choreo fd_disco fd_flamenco fd_funk fd_tango fd_ballet fd_util) $(call run-unit-test,test_tower_tile) endif -endif diff --git a/src/discof/txsend/Local.mk b/src/discof/txsend/Local.mk index a865bebf55e..a9297945cc9 100644 --- a/src/discof/txsend/Local.mk +++ b/src/discof/txsend/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_txsend_tile,fd_discof) endif -endif diff --git a/src/discoh/plugin/Local.mk b/src/discoh/plugin/Local.mk index 6f95c02cad8..5bd417cd4b0 100644 --- a/src/discoh/plugin/Local.mk +++ b/src/discoh/plugin/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_plugin_tile,fd_disco,fd_flamenco) endif -endif diff --git a/src/discoh/pohh/Local.mk b/src/discoh/pohh/Local.mk index 24626f9ef63..8eb1a59c4ed 100644 --- a/src/discoh/pohh/Local.mk +++ b/src/discoh/pohh/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_pohh_tile,fd_discoh) endif -endif diff --git a/src/discoh/resolh/Local.mk b/src/discoh/resolh/Local.mk index bdf0d36c439..6ea370c605c 100644 --- a/src/discoh/resolh/Local.mk +++ b/src/discoh/resolh/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_resolh_tile,fd_discoh) endif -endif diff --git a/src/discoh/store/Local.mk b/src/discoh/store/Local.mk index c9aaf593b13..53cca4ac3d6 100644 --- a/src/discoh/store/Local.mk +++ b/src/discoh/store/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_ALLOCA $(call add-objs,fd_store_tile,fd_discoh) endif -endif diff --git a/src/flamenco/gossip/Local.mk b/src/flamenco/gossip/Local.mk index aea07fc29f8..ccbb5a601a7 100644 --- a/src/flamenco/gossip/Local.mk +++ b/src/flamenco/gossip/Local.mk @@ -1,7 +1,5 @@ $(call add-hdrs,fd_gossip.h fd_gossip_message.h fd_crds.h fd_gossip_out.h fd_gossip_txbuild.h fd_gossip_purged.h fd_prune_finder.h) -ifdef FD_HAS_ALLOCA $(call add-objs,fd_gossip fd_gossip_message fd_gossip_out fd_gossip_txbuild fd_gossip_purged fd_prune_finder,fd_flamenco) -endif $(call add-hdrs,fd_bloom.h fd_gossip_wsample.h) $(call add-objs,fd_bloom fd_crds fd_active_set fd_ping_tracker fd_gossip_wsample,fd_flamenco) diff --git a/src/flamenco/runtime/Local.mk b/src/flamenco/runtime/Local.mk index 663238fd896..25fdcf56856 100644 --- a/src/flamenco/runtime/Local.mk +++ b/src/flamenco/runtime/Local.mk @@ -27,10 +27,8 @@ $(call add-hdrs,fd_pubkey_utils.h) $(call add-objs,fd_pubkey_utils,fd_flamenco) ifdef FD_HAS_ATOMIC -ifdef FD_HAS_ALLOCA $(call add-hdrs,fd_txncache_shmem.h fd_txncache.h) $(call add-objs,fd_txncache_shmem fd_txncache,fd_flamenco) -endif $(call add-hdrs,fd_cost_tracker.h) $(call add-objs,fd_cost_tracker,fd_flamenco) ifdef FD_HAS_INT128 @@ -68,9 +66,7 @@ endif endif endif -ifdef FD_HAS_ALLOCA $(call make-unit-test,test_txncache,test_txncache,fd_flamenco fd_ballet fd_util) -endif ifdef FD_HAS_ATOMIC ifdef FD_HAS_INT128 From 6588f4097006a55f762259652a17157414a4841f Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 21:15:02 +0000 Subject: [PATCH 18/30] add missing FD_HAS_HOSTED guards --- src/discof/replay/Local.mk | 2 ++ src/discof/rpc/Local.mk | 3 +-- src/flamenco/runtime/Local.mk | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/discof/replay/Local.mk b/src/discof/replay/Local.mk index 9a3a3ae1119..f629991af14 100644 --- a/src/discof/replay/Local.mk +++ b/src/discof/replay/Local.mk @@ -3,7 +3,9 @@ $(call add-objs,fd_rdisp,fd_discof) $(call make-unit-test,test_rdisp,test_rdisp,fd_discof fd_ballet fd_tango fd_util) $(call run-unit-test,test_rdisp) $(call add-objs,fd_sched,fd_discof) +ifdef FD_HAS_HOSTED $(call make-fuzz-test,fuzz_sched_rdisp,fuzz_sched_rdisp,fd_discof fd_disco fd_flamenco fd_funk fd_ballet fd_tango fd_util) +endif ifdef FD_HAS_ZSTD # required to load snapshot $(call add-objs,fd_replay_tile,fd_discof) diff --git a/src/discof/rpc/Local.mk b/src/discof/rpc/Local.mk index 6aad750b62e..fc131d14311 100644 --- a/src/discof/rpc/Local.mk +++ b/src/discof/rpc/Local.mk @@ -1,7 +1,6 @@ $(call add-objs,fd_rpc_tile,fd_discof) -$(call make-unit-test,test_rpc_tile,test_rpc_tile,fd_discof firedancer_version fd_disco fd_flamenco fd_waltz fd_funk fd_tango fd_ballet fd_util) - ifdef FD_HAS_HOSTED +$(call make-unit-test,test_rpc_tile,test_rpc_tile,fd_discof firedancer_version fd_disco fd_flamenco fd_waltz fd_funk fd_tango fd_ballet fd_util) $(call make-fuzz-test,fuzz_rpc,fuzz_rpc,fd_discof firedancer_version fd_disco fd_tango fd_flamenco fd_funk fd_waltz fd_ballet fd_util) $(call make-fuzz-test,fuzz_rpc_tarball,fuzz_rpc_tarball,fd_discof firedancer_version fd_disco fd_tango fd_flamenco fd_funk fd_waltz fd_ballet fd_util) endif diff --git a/src/flamenco/runtime/Local.mk b/src/flamenco/runtime/Local.mk index 25fdcf56856..c13d3988710 100644 --- a/src/flamenco/runtime/Local.mk +++ b/src/flamenco/runtime/Local.mk @@ -66,7 +66,9 @@ endif endif endif +ifdef FD_HAS_HOSTED $(call make-unit-test,test_txncache,test_txncache,fd_flamenco fd_ballet fd_util) +endif ifdef FD_HAS_ATOMIC ifdef FD_HAS_INT128 From f2f4ab686adf810d8829f6aa7ef84aa504404498 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 21:25:33 +0000 Subject: [PATCH 19/30] waltz: fix incorrect IFLA_MASTER bounds check --- src/waltz/mib/fd_netdev_netlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/waltz/mib/fd_netdev_netlink.c b/src/waltz/mib/fd_netdev_netlink.c index a637e7a87c4..80deb00ad89 100644 --- a/src/waltz/mib/fd_netdev_netlink.c +++ b/src/waltz/mib/fd_netdev_netlink.c @@ -170,8 +170,8 @@ fd_netdev_netlink_load_table( fd_netdev_tbl_join_t * tbl, goto fail; } int master_idx = FD_LOAD( int, rta ); - if( FD_UNLIKELY( master_idx<0 || master_idx>=tbl->hdr->dev_max ) ) { - FD_LOG_WARNING(( "Error reading interface table: IFLA_MASTER has invalid index %d", master_idx )); + if( FD_UNLIKELY( master_idx<0 ) ) { + FD_LOG_WARNING(( "Error reading interface table: IFLA_MASTER has invalid ifindex %d", master_idx )); err = EPROTO; goto fail; } From 125da2cf9f52773abfe43c57e2e1cbed234ec3b3 Mon Sep 17 00:00:00 2001 From: jherrera-jump Date: Thu, 4 Jun 2026 16:59:36 -0500 Subject: [PATCH 20/30] gossip: no loopback (#10002) --- book/api/metrics-generated.md | 4 +++ src/app/firedancer-dev/commands/gossip.c | 4 +++ src/app/firedancer-dev/commands/repair.c | 6 +++- .../commands/send_test/send_test.c | 8 ++++- .../commands/monitor_gossip/gossip_diag.c | 20 ++++++++++--- src/app/firedancer/topology.c | 26 +++++++++++++++-- src/app/shared/fd_config.h | 2 ++ src/disco/gui/fd_gui_metrics.h | 2 ++ src/disco/gui/fd_gui_peers.c | 8 +++-- .../metrics/generated/fd_metrics_enums.h | 14 +++++---- .../metrics/generated/fd_metrics_gossvf.c | 4 +++ .../metrics/generated/fd_metrics_gossvf.h | 10 +++++-- src/disco/metrics/metrics.xml | 10 ++++--- src/disco/topo/fd_topo.h | 3 ++ src/discof/gossip/fd_gossvf_tile.c | 29 ++++++++++++++++--- src/flamenco/gossip/fd_ping_tracker.c | 2 +- src/util/net/fd_ip4.h | 13 ++++++--- 17 files changed, 133 insertions(+), 32 deletions(-) diff --git a/book/api/metrics-generated.md b/book/api/metrics-generated.md index 85cb0f37ba3..2cfb128b82d 100644 --- a/book/api/metrics-generated.md +++ b/book/api/metrics-generated.md @@ -617,7 +617,9 @@ | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​prune_​destination"} | counter | Number of gossip messages processed (Prune (destination)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​prune_​wallclock"} | counter | Number of gossip messages processed (Prune (wallclock)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​prune_​signature"} | counter | Number of gossip messages processed (Prune (signature)) | +| gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​push_​loopback"} | counter | Number of gossip messages processed (Push (loopback)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​push_​no_​valid_​crds"} | counter | Number of gossip messages processed (Push (no valid crds)) | +| gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​pull_​response_​loopback"} | counter | Number of gossip messages processed (Pull Response (loopback)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​pull_​response_​no_​valid_​crds"} | counter | Number of gossip messages processed (Pull Response (no valid crds)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​ping_​signature"} | counter | Number of gossip messages processed (Ping (signature)) | | gossvf_​message_​rx_​count
{gossvf_​message_​outcome="dropped_​pong_​signature"} | counter | Number of gossip messages processed (Pong (signature)) | @@ -638,7 +640,9 @@ | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​prune_​destination"} | counter | Total wire bytes of gossip messages processed (Prune (destination)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​prune_​wallclock"} | counter | Total wire bytes of gossip messages processed (Prune (wallclock)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​prune_​signature"} | counter | Total wire bytes of gossip messages processed (Prune (signature)) | +| gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​push_​loopback"} | counter | Total wire bytes of gossip messages processed (Push (loopback)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​push_​no_​valid_​crds"} | counter | Total wire bytes of gossip messages processed (Push (no valid crds)) | +| gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​pull_​response_​loopback"} | counter | Total wire bytes of gossip messages processed (Pull Response (loopback)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​pull_​response_​no_​valid_​crds"} | counter | Total wire bytes of gossip messages processed (Pull Response (no valid crds)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​ping_​signature"} | counter | Total wire bytes of gossip messages processed (Ping (signature)) | | gossvf_​message_​rx_​bytes
{gossvf_​message_​outcome="dropped_​pong_​signature"} | counter | Total wire bytes of gossip messages processed (Pong (signature)) | diff --git a/src/app/firedancer-dev/commands/gossip.c b/src/app/firedancer-dev/commands/gossip.c index 6d8e8154438..1dde96c04e1 100644 --- a/src/app/firedancer-dev/commands/gossip.c +++ b/src/app/firedancer-dev/commands/gossip.c @@ -95,6 +95,10 @@ fd_gossip_subtopo( config_t * config, ulong tile_to_cpu[ FD_TILE_MAX ] FD_PARAM_ gossvf_tile->gossvf.allow_private_address = config->development.gossip.allow_private_address; gossvf_tile->gossvf.entrypoints_cnt = config->gossip.entrypoints_cnt; gossvf_tile->gossvf.boot_timestamp_nanos = config->boot_timestamp_nanos; + gossvf_tile->gossvf.gossip_addr.addr = config->net.ip_addr; + gossvf_tile->gossvf.gossip_addr.port = fd_ushort_bswap( config->gossip.port ); + gossvf_tile->gossvf.src_addr.addr = config->net.ip_addr; + gossvf_tile->gossvf.src_addr.port = fd_ushort_bswap( config->gossip.port ); for( ulong i=0UL; igossip.entrypoints_cnt; i++ ) { gossvf_tile->gossvf.entrypoints[ i ] = config->gossip.resolved_entrypoints[ i ]; } diff --git a/src/app/firedancer-dev/commands/repair.c b/src/app/firedancer-dev/commands/repair.c index 67c17bb6866..93ece5925ec 100644 --- a/src/app/firedancer-dev/commands/repair.c +++ b/src/app/firedancer-dev/commands/repair.c @@ -10,7 +10,6 @@ #include "../../../util/tile/fd_tile_private.h" #include "../../firedancer/topology.h" -#include "../../firedancer/topology.c" #include "../../shared/commands/configure/configure.h" #include "../../shared/commands/run/run.h" /* initialize_workspaces */ #include "../../shared/fd_config.h" /* config_t */ @@ -55,9 +54,14 @@ restore_terminal( void ) { (void)tcsetattr( STDIN_FILENO, TCSANOW, &termios_backup ); } +extern fd_topo_obj_callbacks_t * CALLBACKS[]; + fd_topo_run_tile_t fdctl_tile_run( fd_topo_tile_t const * tile ); +void +resolve_gossip_entrypoints( config_t * config ); + /* repair_topo is a subset of "src/app/firedancer/topology.c" at commit 0d8386f4f305bb15329813cfe4a40c3594249e96, slightly modified to work as a repair catchup. TODO ideally, one should invoke the firedancer diff --git a/src/app/firedancer-dev/commands/send_test/send_test.c b/src/app/firedancer-dev/commands/send_test/send_test.c index 7c8e8da2e71..adc26b51c47 100644 --- a/src/app/firedancer-dev/commands/send_test/send_test.c +++ b/src/app/firedancer-dev/commands/send_test/send_test.c @@ -38,6 +38,9 @@ extern fd_topo_obj_callbacks_t * CALLBACKS[]; fd_topo_run_tile_t fdctl_tile_run( fd_topo_tile_t const * tile ); +void +resolve_gossip_entrypoints( config_t * config ); + struct { char gossip_file[256]; char stake_file[256]; @@ -76,7 +79,10 @@ send_test_topo( config_t * config ) { int use_live_gossip = !strcmp( send_test_args.gossip_file, "live" ); fd_core_subtopo( config, tile_to_cpu ); - if( use_live_gossip ) fd_gossip_subtopo( config, tile_to_cpu ); + if( use_live_gossip ) { + resolve_gossip_entrypoints( config ); + fd_gossip_subtopo( config, tile_to_cpu ); + } #define FOR(cnt) for( ulong i=0UL; igossip.entrypoints[ i ] )); } } + + if( FD_UNLIKELY( strcmp( config->firedancer.gossip.host, "" ) ) ) { + if( FD_UNLIKELY( !resolve_address( config->firedancer.gossip.host, &config->gossip.resolved_host ) ) ) + FD_LOG_ERR(( "could not resolve [gossip.host] %s", config->firedancer.gossip.host )); + } else { + config->gossip.resolved_host = 0U; + } } void @@ -1172,11 +1183,20 @@ fd_topo_configure_tile( fd_topo_tile_t * tile, tile->gossvf.entrypoints_cnt = config->gossip.entrypoints_cnt; fd_memcpy( tile->gossvf.entrypoints, config->gossip.resolved_entrypoints, tile->gossvf.entrypoints_cnt * sizeof(fd_ip4_port_t) ); + if( FD_UNLIKELY( strcmp( config->firedancer.gossip.host, "" ) ) ) { + tile->gossvf.gossip_addr.addr = config->gossip.resolved_host; + } else { + tile->gossvf.gossip_addr.addr = config->net.ip_addr; + } + tile->gossvf.gossip_addr.port = fd_ushort_bswap( config->gossip.port ); + + tile->gossvf.src_addr.addr = config->net.ip_addr; + tile->gossvf.src_addr.port = fd_ushort_bswap( config->gossip.port ); + } else if( FD_UNLIKELY( !strcmp( tile->name, "gossip" ) ) ) { if( FD_UNLIKELY( strcmp( config->firedancer.gossip.host, "" ) ) ) { - if( !resolve_address( config->firedancer.gossip.host, &tile->gossip.ip_addr ) ) - FD_LOG_ERR(( "could not resolve [gossip.host] %s", config->firedancer.gossip.host )); + tile->gossip.ip_addr = config->gossip.resolved_host; } else { tile->gossip.ip_addr = config->net.ip_addr; } diff --git a/src/app/shared/fd_config.h b/src/app/shared/fd_config.h index 2c8c6dab05d..c93ab5f747a 100644 --- a/src/app/shared/fd_config.h +++ b/src/app/shared/fd_config.h @@ -290,6 +290,8 @@ struct fd_config { char entrypoints[ GOSSIP_TILE_ENTRYPOINTS_MAX ][ 262 ]; fd_ip4_port_t resolved_entrypoints[ GOSSIP_TILE_ENTRYPOINTS_MAX ]; + /* The IPv4 addr that [gossip.host] resolves to. */ + uint resolved_host; ushort port; } gossip; diff --git a/src/disco/gui/fd_gui_metrics.h b/src/disco/gui/fd_gui_metrics.h index 560d2a3dbf7..4b83ee32fa9 100644 --- a/src/disco/gui/fd_gui_metrics.h +++ b/src/disco/gui/fd_gui_metrics.h @@ -41,7 +41,9 @@ fd_gui_metrics_gossip_total_ingress_bytes( fd_topo_t const * topo, ulong gossvf_ + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_DESTINATION) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_WALLCLOCK) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PRUNE_SIGNATURE) ) + + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PUSH_LOOPBACK) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PUSH_NO_VALID_CRDS) ) + + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_LOOPBACK) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_NO_VALID_CRDS) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PING_SIGNATURE) ) + fd_gui_metrics_sum_tiles_counter( topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_BYTES_DROPPED_PONG_SIGNATURE) ); diff --git a/src/disco/gui/fd_gui_peers.c b/src/disco/gui/fd_gui_peers.c index a11fcabb51c..4cda764b6a7 100644 --- a/src/disco/gui/fd_gui_peers.c +++ b/src/disco/gui/fd_gui_peers.c @@ -310,11 +310,13 @@ fd_gui_peers_gossip_stats_snap( fd_gui_peers_ctx_t * peers, gossip_stats->network_health_pull_response_msg_rx_success = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PULL_RESPONSE ) ); gossip_stats->network_health_pull_response_msg_rx_failure = - fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_NO_VALID_CRDS ) ); + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_LOOPBACK ) ) + + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_NO_VALID_CRDS ) ); gossip_stats->network_health_push_msg_rx_success = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PUSH ) ); gossip_stats->network_health_push_msg_rx_failure = - fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_NO_VALID_CRDS ) ); + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_LOOPBACK ) ) + + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_NO_VALID_CRDS ) ); gossip_stats->network_health_push_crds_rx_success = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossip", gossip_tile_cnt, MIDX( COUNTER, GOSSIP, CRDS_RX_COUNT_UPSERTED_PUSH ) ); gossip_stats->network_health_push_crds_rx_failure = @@ -518,9 +520,11 @@ fd_gui_peers_gossip_stats_snap( fd_gui_peers_ctx_t * peers, + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_REQUEST_MASK_BITS ) ); gossip_stats->messages_count_rx[ FD_METRICS_ENUM_GOSSIP_MESSAGE_V_PULL_RESPONSE_IDX ] = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PULL_RESPONSE ) ) + + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_LOOPBACK ) ) + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_NO_VALID_CRDS ) ); gossip_stats->messages_count_rx[ FD_METRICS_ENUM_GOSSIP_MESSAGE_V_PUSH_IDX ] = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PUSH ) ) + + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_LOOPBACK ) ) + fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_DROPPED_PUSH_NO_VALID_CRDS ) ); gossip_stats->messages_count_rx[ FD_METRICS_ENUM_GOSSIP_MESSAGE_V_PING_IDX ] = fd_gui_metrics_sum_tiles_counter( peers->topo, "gossvf", gossvf_tile_cnt, MIDX( COUNTER, GOSSVF, MESSAGE_RX_COUNT_SUCCESS_PING ) ) diff --git a/src/disco/metrics/generated/fd_metrics_enums.h b/src/disco/metrics/generated/fd_metrics_enums.h index 44728d73e6d..ea3b2c008f6 100644 --- a/src/disco/metrics/generated/fd_metrics_enums.h +++ b/src/disco/metrics/generated/fd_metrics_enums.h @@ -712,7 +712,7 @@ #define FD_METRICS_ENUM_GOSSIP_CRDS_OUTCOME_V_DROPPED_PUSH_DUPLICATE_NAME "dropped_push_duplicate" #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_NAME "gossvf_message_outcome" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_CNT (21UL) +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_CNT (23UL) #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_SUCCESS_PULL_REQUEST_IDX 0 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_SUCCESS_PULL_REQUEST_NAME "success_pull_request" #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_SUCCESS_PULL_RESPONSE_IDX 1 @@ -747,13 +747,17 @@ #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PRUNE_WALLCLOCK_NAME "dropped_prune_wallclock" #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PRUNE_SIGNATURE_IDX 16 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PRUNE_SIGNATURE_NAME "dropped_prune_signature" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_NO_VALID_CRDS_IDX 17 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_LOOPBACK_IDX 17 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_LOOPBACK_NAME "dropped_push_loopback" +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_NO_VALID_CRDS_IDX 18 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_NO_VALID_CRDS_NAME "dropped_push_no_valid_crds" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_IDX 18 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_LOOPBACK_IDX 19 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_LOOPBACK_NAME "dropped_pull_response_loopback" +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_IDX 20 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_NAME "dropped_pull_response_no_valid_crds" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PING_SIGNATURE_IDX 19 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PING_SIGNATURE_IDX 21 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PING_SIGNATURE_NAME "dropped_ping_signature" -#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PONG_SIGNATURE_IDX 20 +#define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PONG_SIGNATURE_IDX 22 #define FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PONG_SIGNATURE_NAME "dropped_pong_signature" #define FD_METRICS_ENUM_GOSSVF_CRDS_OUTCOME_NAME "gossvf_crds_outcome" diff --git a/src/disco/metrics/generated/fd_metrics_gossvf.c b/src/disco/metrics/generated/fd_metrics_gossvf.c index 888c9053311..6d9d21a59eb 100644 --- a/src/disco/metrics/generated/fd_metrics_gossvf.c +++ b/src/disco/metrics/generated/fd_metrics_gossvf.c @@ -19,7 +19,9 @@ const fd_metrics_meta_t FD_METRICS_GOSSVF[FD_METRICS_GOSSVF_TOTAL] = { DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_DESTINATION ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_WALLCLOCK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_SIGNATURE ), + DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PUSH_LOOPBACK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PUSH_NO_VALID_CRDS ), + DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PULL_RESPONSE_LOOPBACK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PULL_RESPONSE_NO_VALID_CRDS ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PING_SIGNATURE ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_COUNT, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PONG_SIGNATURE ), @@ -40,7 +42,9 @@ const fd_metrics_meta_t FD_METRICS_GOSSVF[FD_METRICS_GOSSVF_TOTAL] = { DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_DESTINATION ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_WALLCLOCK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PRUNE_SIGNATURE ), + DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PUSH_LOOPBACK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PUSH_NO_VALID_CRDS ), + DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PULL_RESPONSE_LOOPBACK ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PULL_RESPONSE_NO_VALID_CRDS ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PING_SIGNATURE ), DECLARE_METRIC_ENUM( GOSSVF_MESSAGE_RX_BYTES, COUNTER, GOSSVF_MESSAGE_OUTCOME, DROPPED_PONG_SIGNATURE ), diff --git a/src/disco/metrics/generated/fd_metrics_gossvf.h b/src/disco/metrics/generated/fd_metrics_gossvf.h index f14aee0dfac..c3a24d5256d 100644 --- a/src/disco/metrics/generated/fd_metrics_gossvf.h +++ b/src/disco/metrics/generated/fd_metrics_gossvf.h @@ -25,7 +25,9 @@ enum { FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PRUNE_DESTINATION_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PRUNE_WALLCLOCK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PRUNE_SIGNATURE_OFF, + FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PUSH_LOOPBACK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PUSH_NO_VALID_CRDS_OFF, + FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_LOOPBACK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PING_SIGNATURE_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DROPPED_PONG_SIGNATURE_OFF, @@ -47,7 +49,9 @@ enum { FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PRUNE_DESTINATION_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PRUNE_WALLCLOCK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PRUNE_SIGNATURE_OFF, + FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PUSH_LOOPBACK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PUSH_NO_VALID_CRDS_OFF, + FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_LOOPBACK_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PULL_RESPONSE_NO_VALID_CRDS_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PING_SIGNATURE_OFF, FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DROPPED_PONG_SIGNATURE_OFF, @@ -85,13 +89,13 @@ enum { #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_TYPE (FD_METRICS_TYPE_COUNTER) #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_DESC "Number of gossip messages processed" #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_CNT (21UL) +#define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_COUNT_CNT (23UL) #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_NAME "gossvf_message_rx_bytes" #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_TYPE (FD_METRICS_TYPE_COUNTER) #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_DESC "Total wire bytes of gossip messages processed" #define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_CVT (FD_METRICS_CONVERTER_NONE) -#define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_CNT (21UL) +#define FD_METRICS_COUNTER_GOSSVF_MESSAGE_RX_BYTES_CNT (23UL) #define FD_METRICS_COUNTER_GOSSVF_CRDS_RX_COUNT_NAME "gossvf_crds_rx_count" #define FD_METRICS_COUNTER_GOSSVF_CRDS_RX_COUNT_TYPE (FD_METRICS_TYPE_COUNTER) @@ -105,7 +109,7 @@ enum { #define FD_METRICS_COUNTER_GOSSVF_CRDS_RX_BYTES_CVT (FD_METRICS_CONVERTER_NONE) #define FD_METRICS_COUNTER_GOSSVF_CRDS_RX_BYTES_CNT (13UL) -#define FD_METRICS_GOSSVF_TOTAL (68UL) +#define FD_METRICS_GOSSVF_TOTAL (72UL) extern const fd_metrics_meta_t FD_METRICS_GOSSVF[FD_METRICS_GOSSVF_TOTAL]; #endif /* HEADER_fd_src_disco_metrics_generated_fd_metrics_gossvf_h */ diff --git a/src/disco/metrics/metrics.xml b/src/disco/metrics/metrics.xml index d3edcf9a1d5..443b1d71faf 100644 --- a/src/disco/metrics/metrics.xml +++ b/src/disco/metrics/metrics.xml @@ -1059,13 +1059,15 @@ metric introduced. - + + - + + - + - + diff --git a/src/disco/topo/fd_topo.h b/src/disco/topo/fd_topo.h index b12598f9c9d..7bf72cfc06e 100644 --- a/src/disco/topo/fd_topo.h +++ b/src/disco/topo/fd_topo.h @@ -221,6 +221,9 @@ struct fd_topo_tile { ushort shred_version; int allow_private_address; + + fd_ip4_port_t gossip_addr; + fd_ip4_port_t src_addr; } gossvf; struct { diff --git a/src/discof/gossip/fd_gossvf_tile.c b/src/discof/gossip/fd_gossvf_tile.c index 81d28d36d01..818bbf5d283 100644 --- a/src/discof/gossip/fd_gossvf_tile.c +++ b/src/discof/gossip/fd_gossvf_tile.c @@ -124,6 +124,9 @@ struct fd_gossvf_tile_ctx { int allow_private_address; + fd_ip4_port_t gossip_addr; + fd_ip4_port_t src_addr; + fd_keyswitch_t * keyswitch; fd_pubkey_t identity_pubkey[1]; @@ -569,7 +572,7 @@ is_ping_active( fd_gossvf_tile_ctx_t * ctx, /* 2. If the node has actively ponged a ping, it is active */ ping_t * ping = ping_map_ele_query( ctx->ping_map, pubkey, NULL, ctx->pings ); - return ping!=NULL && ping->addr.l==addr.l; + return ping!=NULL && ping->addr.addr==addr.addr && ping->addr.port==addr.port; } static int @@ -606,6 +609,10 @@ verify_addresses( fd_gossvf_tile_ctx_t * ctx, fd_gossip_message_t * view, uchar * failed, fd_stem_context_t * stem ) { + int is_loopback_peer = (ctx->peer.addr==ctx->src_addr.addr && ctx->peer.port==ctx->src_addr.port) || + (ctx->peer.addr==ctx->gossip_addr.addr && ctx->peer.port==ctx->gossip_addr.port) || + (fd_ip4_addr_is_loopback( ctx->peer.addr ) && ctx->peer.port==ctx->src_addr.port); + ulong values_len; fd_gossip_value_t * values; switch( view->tag ) { @@ -615,13 +622,16 @@ verify_addresses( fd_gossvf_tile_ctx_t * ctx, return 0; case FD_GOSSIP_MESSAGE_PULL_REQUEST: if( FD_UNLIKELY( !check_addr( ctx->peer, ctx->allow_private_address ) ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_REQUEST_INACTIVE_IDX; + if( FD_UNLIKELY( is_loopback_peer ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_REQUEST_LOOPBACK_IDX; if( FD_UNLIKELY( ping_if_unponged( ctx, ctx->peer, view->pull_request->contact_info->origin, stem ) ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_REQUEST_INACTIVE_IDX; return 0; case FD_GOSSIP_MESSAGE_PUSH: + if( FD_UNLIKELY( is_loopback_peer ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PUSH_LOOPBACK_IDX; values_len = view->push->values_len; values = view->push->values; break; case FD_GOSSIP_MESSAGE_PULL_RESPONSE: + if( FD_UNLIKELY( is_loopback_peer ) ) return FD_METRICS_ENUM_GOSSVF_MESSAGE_OUTCOME_V_DROPPED_PULL_RESPONSE_LOOPBACK_IDX; values_len = view->pull_response->values_len; values = view->pull_response->values; break; @@ -639,7 +649,6 @@ verify_addresses( fd_gossvf_tile_ctx_t * ctx, .addr = value->contact_info->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ].is_ipv6 ? 0U : value->contact_info->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ].ip4, .port = value->contact_info->sockets[ FD_GOSSIP_CONTACT_INFO_SOCKET_GOSSIP ].port }; - int drop = !check_addr( addr, ctx->allow_private_address ) || ping_if_unponged( ctx, addr, value->origin, stem ); /* Sanitize sockets: zero out any with a multicast address. Matches Agave, which omits bad sockets from the cache but @@ -653,6 +662,14 @@ verify_addresses( fd_gossvf_tile_ctx_t * ctx, } } + /* Prevent ping loopback */ + if( FD_UNLIKELY( !memcmp( value->origin, ctx->identity_pubkey, 32UL ) ) ) continue; + + int is_self_addr = (addr.addr==ctx->gossip_addr.addr && addr.port==ctx->gossip_addr.port) || + (addr.addr==ctx->src_addr.addr && addr.port==ctx->src_addr.port); + int is_loopback = fd_ip4_addr_is_loopback( addr.addr ) && addr.port==ctx->gossip_addr.port; + int drop = (is_self_addr | is_loopback) || !check_addr( addr, ctx->allow_private_address ) || ping_if_unponged( ctx, addr, value->origin, stem ); + if( FD_UNLIKELY( drop ) ) { if( FD_LIKELY( view->tag==FD_GOSSIP_MESSAGE_PUSH ) ) { ctx->metrics.crds_rx[ FD_METRICS_ENUM_GOSSVF_CRDS_OUTCOME_V_DROPPED_PUSH_INACTIVE_IDX ]++; @@ -851,10 +868,12 @@ handle_net( fd_gossvf_tile_ctx_t * ctx, int result = filter_shred_version( ctx, message, failed ); if( FD_UNLIKELY( result ) ) return result; - result = verify_addresses( ctx, message, failed, stem ); + result = verify_signatures( ctx, message, payload, ctx->sha, failed ); if( FD_UNLIKELY( result ) ) return result; - result = verify_signatures( ctx, message, payload, ctx->sha, failed ); + /* verify_addresses includes validation checks against origin pubkey, + so it must come after verify_signatures. */ + result = verify_addresses( ctx, message, failed, stem ); if( FD_UNLIKELY( result ) ) return result; check_duplicate_instance( ctx, message ); @@ -1006,6 +1025,8 @@ unprivileged_init( fd_topo_t const * topo, ctx->round_robin_idx = tile->kind_id; ctx->allow_private_address = tile->gossvf.allow_private_address; + ctx->gossip_addr = tile->gossvf.gossip_addr; + ctx->src_addr = tile->gossvf.src_addr; ctx->keyswitch = fd_keyswitch_join( fd_topo_obj_laddr( topo, tile->id_keyswitch_obj_id ) ); FD_TEST( ctx->keyswitch ); diff --git a/src/flamenco/gossip/fd_ping_tracker.c b/src/flamenco/gossip/fd_ping_tracker.c index c9b1e437319..748985f8a44 100644 --- a/src/flamenco/gossip/fd_ping_tracker.c +++ b/src/flamenco/gossip/fd_ping_tracker.c @@ -400,7 +400,7 @@ fd_ping_tracker_active( fd_ping_tracker_t * ping_tracker, if( FD_UNLIKELY( !peer_address.addr ) ) return 0; fd_ping_peer_t * peer = peer_map_ele_query( ping_tracker->peers, fd_type_pun_const( peer_pubkey ), NULL, ping_tracker->pool ); if( FD_UNLIKELY( !peer ) ) return 0; - return (peer->state==FD_PING_TRACKER_STATE_VALID || peer->state==FD_PING_TRACKER_STATE_VALID_REFRESHING) && peer->address.l==peer_address.l; + return (peer->state==FD_PING_TRACKER_STATE_VALID || peer->state==FD_PING_TRACKER_STATE_VALID_REFRESHING) && peer->address.addr==peer_address.addr && peer->address.port==peer_address.port; } int diff --git a/src/util/net/fd_ip4.h b/src/util/net/fd_ip4.h index 248653ac0be..a3c77a00d02 100644 --- a/src/util/net/fd_ip4.h +++ b/src/util/net/fd_ip4.h @@ -104,15 +104,20 @@ typedef union fd_ip4_hdr fd_ip4_hdr_t; FD_PROTOTYPES_BEGIN -/* fd_ip4_addr_is_{mcast,bcast} returns 1 if the ipaddr is {multicast - (in [224-239].y.z.w),global broadcast (255.255.255.255)} and 0 - otherwise. fd_ip4_hdr_net_frag_off_is_unfragmented returns 1 if the +/* fd_ip4_addr_is_{mcast,bcast,loopback} returns 1 if the ipaddr is + {multicast (in [224-239].y.z.w), global broadcast + (255.255.255.255), loopback (127.y.z.w)} and 0 otherwise. + fd_ip4_hdr_net_frag_off_is_unfragmented returns 1 if the net_frag_off field of the ip4 header indicates the encapsulated packet is not fragmented (i.e. entirely containing the IP4 packet) and 0 otherwise (i.e. fragmented into multiple IP4 packets). */ FD_FN_CONST static inline int fd_ip4_addr_is_mcast( uint addr ) { return (((uchar)addr)>>4)==(uchar)0xe; } FD_FN_CONST static inline int fd_ip4_addr_is_bcast( uint addr ) { return addr==~0U; } +FD_FN_CONST static inline int fd_ip4_addr_is_loopback( uint addr ) { + return fd_uint_bswap( addr ) >= fd_uint_bswap( IP4_LOOPBACK_START_NET ) && + fd_uint_bswap( addr ) <= fd_uint_bswap( IP4_LOOPBACK_END_NET ); + } FD_FN_CONST static inline int fd_ip4_hdr_net_frag_off_is_unfragmented( ushort net_frag_off ) { /* net order */ @@ -203,7 +208,7 @@ fd_ip4_addr_is_public( uint addr ) { return !((addr_host >= fd_uint_bswap( IP4_PRIVATE_RANGE1_START_NET ) && addr_host <= fd_uint_bswap( IP4_PRIVATE_RANGE1_END_NET )) || (addr_host >= fd_uint_bswap( IP4_PRIVATE_RANGE2_START_NET ) && addr_host <= fd_uint_bswap( IP4_PRIVATE_RANGE2_END_NET )) || (addr_host >= fd_uint_bswap( IP4_PRIVATE_RANGE3_START_NET ) && addr_host <= fd_uint_bswap( IP4_PRIVATE_RANGE3_END_NET )) || - (addr_host >= fd_uint_bswap( IP4_LOOPBACK_START_NET ) && addr_host <= fd_uint_bswap( IP4_LOOPBACK_END_NET ))); + fd_ip4_addr_is_loopback( addr )); } /* fd_ip4_hdr_bswap reverses the endianness of all fields in the IPv4 From 94088e2fab77efdccdc145be9bc3fb52bfcb91ba Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 21:43:41 +0000 Subject: [PATCH 21/30] util: provide uint128 typedef without FD_HAS_INT128 FD_HAS_INT128 implies 'has fast hardware support for int128'. But all supported compilers still provide software emulation for floating point numbers, wide/128-bit multiplies, etc. Therefore, provide basic uint128 type support. --- src/util/bits/fd_bits.h | 10 +++++----- src/util/bits/fd_sat.h | 22 +++++++++------------- src/util/fd_util_base.h | 2 +- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/util/bits/fd_bits.h b/src/util/bits/fd_bits.h index d7e9fe62328..b54de2def67 100644 --- a/src/util/bits/fd_bits.h +++ b/src/util/bits/fd_bits.h @@ -214,7 +214,7 @@ FD_SRC_UTIL_BITS_FD_BITS_IMPL(ushort,16) FD_SRC_UTIL_BITS_FD_BITS_IMPL(uint, 32) FD_SRC_UTIL_BITS_FD_BITS_IMPL(ulong, 64) -#if FD_HAS_INT128 /* FIXME: These probably could benefit from x86 specializations */ +#ifdef __SIZEOF_INT128__ /* FIXME: These probably could benefit from x86 specializations */ FD_SRC_UTIL_BITS_FD_BITS_IMPL(uint128,128) #endif @@ -225,7 +225,7 @@ FD_FN_CONST static inline int fd_ushort_popcnt( ushort x ) { return __builtin_po FD_FN_CONST static inline int fd_uint_popcnt ( uint x ) { return __builtin_popcount ( x ); } FD_FN_CONST static inline int fd_ulong_popcnt ( ulong x ) { return __builtin_popcountl( x ); } -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ FD_FN_CONST static inline int fd_uint128_popcnt( uint128 x ) { return __builtin_popcountl( (ulong) x ) + __builtin_popcountl( (ulong)(x>>64) ); @@ -240,7 +240,7 @@ FD_FN_CONST static inline ushort fd_ushort_bswap( ushort x ) { return __builtin_ FD_FN_CONST static inline uint fd_uint_bswap ( uint x ) { return __builtin_bswap32( x ); } FD_FN_CONST static inline ulong fd_ulong_bswap ( ulong x ) { return __builtin_bswap64( x ); } -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ FD_FN_CONST static inline uint128 fd_uint128_bswap( uint128 x ) { ulong xl = (ulong) x; @@ -349,7 +349,7 @@ fd_ulong_pow2_dn( ulong x ) { return x; } -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ FD_FN_CONST static inline uint128 fd_uint128_pow2_up( uint128 x ) { x--; @@ -419,7 +419,7 @@ FD_SRC_UTIL_BITS_FD_BITS_IMPL(schar, uchar, 8) FD_SRC_UTIL_BITS_FD_BITS_IMPL(short, ushort, 16) FD_SRC_UTIL_BITS_FD_BITS_IMPL(int, uint, 32) FD_SRC_UTIL_BITS_FD_BITS_IMPL(long, ulong, 64) -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ FD_SRC_UTIL_BITS_FD_BITS_IMPL(int128,uint128,128) #endif diff --git a/src/util/bits/fd_sat.h b/src/util/bits/fd_sat.h index 72803cf1495..e70ddd7f74f 100644 --- a/src/util/bits/fd_sat.h +++ b/src/util/bits/fd_sat.h @@ -15,29 +15,25 @@ FD_PROTOTYPES_BEGIN -#if FD_HAS_INT128 - -FD_FN_CONST static inline __uint128_t -fd_uint128_sat_add( __uint128_t x, __uint128_t y ) { - __uint128_t res = x + y; +FD_FN_CONST static inline uint128 +fd_uint128_sat_add( uint128 x, uint128 y ) { + uint128 res = x + y; return fd_uint128_if( res < x, UINT128_MAX, res ); } -FD_FN_CONST static inline __uint128_t -fd_uint128_sat_mul( __uint128_t x, __uint128_t y ) { - __uint128_t res = x * y; +FD_FN_CONST static inline uint128 +fd_uint128_sat_mul( uint128 x, uint128 y ) { + uint128 res = x * y; uchar overflow = ( x != 0 ) && ( y != 0 ) && ( ( res < x ) || ( res < y ) || ( ( res / x ) != y ) ); return fd_uint128_if( overflow, UINT128_MAX, res ); } -FD_FN_CONST static inline __uint128_t -fd_uint128_sat_sub( __uint128_t x, __uint128_t y ) { - __uint128_t res = x - y; +FD_FN_CONST static inline uint128 +fd_uint128_sat_sub( uint128 x, uint128 y ) { + uint128 res = x - y; return fd_uint128_if( res > x, 0, res ); } -#endif /* FD_HAS_INT128 */ - FD_FN_CONST static inline ulong fd_ulong_sat_add( ulong x, ulong y ) { ulong res; diff --git a/src/util/fd_util_base.h b/src/util/fd_util_base.h index 69afb8b869d..56c4c1f573f 100644 --- a/src/util/fd_util_base.h +++ b/src/util/fd_util_base.h @@ -324,7 +324,7 @@ typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; -#if FD_HAS_INT128 +#ifdef __SIZEOF_INT128__ __extension__ typedef __int128 int128; __extension__ typedef unsigned __int128 uint128; From b119fe3df2b0a1a11024ac018b540cecc738add4 Mon Sep 17 00:00:00 2001 From: Richard Patel Date: Thu, 4 Jun 2026 21:45:37 +0000 Subject: [PATCH 22/30] Clean up uint128 usages This fixes build flakiness with noarch64 targets and FD_HAS_INT128 guard spam. Full Firedancer *requires* uint128 compiler support, but tolerates the absence of fast hardware wide multiplies on exotic targets. Therefore, remove unnecessary FD_HAS_INT128 compile guards and just assume that compilers can soft-emulate uint128 type support. (True for all supported compilers) Also clean up unnecessary uint128 usages along the way, mostly used as a futile attempt to get 16-byte atomic load/store. This doesn't actually work in practice. src/util and other libraries written by Kevin are more portable to exotic targets. But full Solana runtime support without compiler uint128 support has proven impossible to do in C, and keeps causing random build failures with noarch64. The only remaining Firedancer usages of FD_HAS_INT128 gates decide whether to use uint128 arithmetic (due to HW support) or whether to soft-emulate. --- src/app/fdctl/Local.mk | 10 ++++------ src/app/fddev/Local.mk | 2 -- src/app/firedancer-dev/Local.mk | 2 -- src/app/firedancer/Local.mk | 13 ++++++------- src/app/shared/Local.mk | 2 -- src/ballet/aes/fd_aes_gcm_ref.h | 2 -- src/ballet/bn254/Local.mk | 2 -- src/disco/gui/Local.mk | 2 -- src/discof/capture/Local.mk | 2 -- src/discof/execle/Local.mk | 2 -- src/discof/execrp/Local.mk | 2 -- src/discof/execrp/fd_execrp_tile.c | 4 ++-- src/discof/genesis/Local.mk | 4 +--- src/discof/replay/Local.mk | 1 - src/discof/restore/Local.mk | 4 ---- src/flamenco/capture/Local.mk | 2 -- src/flamenco/fd_flamenco_base.h | 2 +- src/flamenco/progcache/Local.mk | 2 -- src/flamenco/progcache/fd_progcache_xid.h | 2 +- src/flamenco/rewards/Local.mk | 3 --- src/flamenco/runtime/Local.mk | 12 ------------ src/flamenco/runtime/program/Local.mk | 2 -- src/flamenco/runtime/sysvar/Local.mk | 4 ---- src/flamenco/runtime/sysvar/test_sysvar.c | 4 ---- src/flamenco/runtime/tests/Local.mk | 8 -------- src/flamenco/stakes/Local.mk | 2 -- src/flamenco/vm/Local.mk | 4 ---- src/flamenco/vm/syscall/fd_vm_syscall.c | 2 -- src/waltz/ip/fd_fib4_private.h | 12 ------------ src/waltz/neigh/fd_neigh4_map.h | 7 ------- 30 files changed, 15 insertions(+), 107 deletions(-) diff --git a/src/app/fdctl/Local.mk b/src/app/fdctl/Local.mk index e211758702c..5e02ebb1ecd 100644 --- a/src/app/fdctl/Local.mk +++ b/src/app/fdctl/Local.mk @@ -18,9 +18,12 @@ $(OBJDIR)/obj/app/fdctl/version.d: src/app/fdctl/version.h # Always generate a version file include src/app/fdctl/version.h +# version +$(call make-lib,fdctl_version) +$(call add-objs,version,fdctl_version) + ifdef FD_HAS_ALLOCA ifdef FD_HAS_DOUBLE -ifdef FD_HAS_INT128 ifdef FD_HAS_HOSTED $(OBJDIR)/obj/app/fdctl/config.o: src/app/fdctl/config/default.toml @@ -37,10 +40,6 @@ ifdef FD_HAS_THREADS $(call add-objs,commands/run_agave,fd_fdctl) $(call add-objs,commands/set_identityh,fd_fdctl) -# version -$(call make-lib,fdctl_version) -$(call add-objs,version,fdctl_version) - $(call make-bin-rust,fdctl,main,fd_fdctl fdctl_shared fdctl_platform fd_discoh fd_disco fd_choreo agave_validator fd_flamenco fd_funk fd_quic fd_tls fd_reedsol fd_waltz fd_tango fd_ballet fd_util fdctl_version) check-agave-hash: @@ -143,4 +142,3 @@ endif endif endif endif -endif diff --git a/src/app/fddev/Local.mk b/src/app/fddev/Local.mk index 42eebc6bd10..5eeed01e90a 100644 --- a/src/app/fddev/Local.mk +++ b/src/app/fddev/Local.mk @@ -2,7 +2,6 @@ ifdef FD_HAS_HOSTED ifdef FD_HAS_LINUX ifdef FD_HAS_ALLOCA ifdef FD_HAS_DOUBLE -ifdef FD_HAS_INT128 .PHONY: fddev run monitor @@ -42,4 +41,3 @@ endif endif endif endif -endif diff --git a/src/app/firedancer-dev/Local.mk b/src/app/firedancer-dev/Local.mk index 4bee3e3fc73..3ec19b12553 100644 --- a/src/app/firedancer-dev/Local.mk +++ b/src/app/firedancer-dev/Local.mk @@ -2,7 +2,6 @@ ifdef FD_HAS_HOSTED ifdef FD_HAS_LINUX ifdef FD_HAS_ALLOCA ifdef FD_HAS_DOUBLE -ifdef FD_HAS_INT128 ifdef FD_HAS_ZSTD .PHONY: firedancer-dev @@ -36,4 +35,3 @@ endif endif endif endif -endif diff --git a/src/app/firedancer/Local.mk b/src/app/firedancer/Local.mk index fb03db2735d..ebe10fe4ca2 100644 --- a/src/app/firedancer/Local.mk +++ b/src/app/firedancer/Local.mk @@ -16,11 +16,16 @@ endif # Always generate a version file include src/app/firedancer/version.h +$(OBJDIR)/obj/app/firedancer/version.d: src/app/firedancer/version.h + +# version +$(call make-lib,firedancer_version) +$(call add-objs,version,firedancer_version) + ifdef FD_HAS_HOSTED ifdef FD_HAS_THREADS ifdef FD_HAS_ALLOCA ifdef FD_HAS_DOUBLE -ifdef FD_HAS_INT128 ifdef FD_HAS_ZSTD $(OBJDIR)/obj/app/firedancer/config.o: src/app/firedancer/config/default.toml @@ -29,7 +34,6 @@ $(OBJDIR)/obj/app/firedancer/config.o: src/app/firedancer/config/devnet.toml $(OBJDIR)/obj/app/firedancer/config.o: src/app/firedancer/config/mainnet.toml $(OBJDIR)/obj/app/firedancer/config.o: src/app/firedancer/config/testnet-jito.toml $(OBJDIR)/obj/app/firedancer/config.o: src/app/firedancer/config/mainnet-jito.toml -$(OBJDIR)/obj/app/firedancer/version.d: src/app/firedancer/version.h .PHONY: firedancer @@ -44,10 +48,6 @@ $(call add-objs,commands/shred_version,fd_firedancer) $(call add-objs,commands/set_identity,fd_firedancer) $(call add-objs,commands/monitor_gossip/monitor_gossip commands/monitor_gossip/gossip_diag,fd_firedancer) -# version -$(call make-lib,firedancer_version) -$(call add-objs,version,firedancer_version) - ifdef FD_HAS_SSE # ifdef FD_HAS_BLST -- will be a required dependency soon ifdef FD_HAS_S2NBIGNUM @@ -63,4 +63,3 @@ endif endif endif endif -endif diff --git a/src/app/shared/Local.mk b/src/app/shared/Local.mk index 48df3833522..0644434fc3e 100644 --- a/src/app/shared/Local.mk +++ b/src/app/shared/Local.mk @@ -1,6 +1,5 @@ ifdef FD_HAS_HOSTED ifdef FD_HAS_LINUX -ifdef FD_HAS_INT128 $(call make-lib,fdctl_shared) @@ -38,4 +37,3 @@ $(call add-objs,commands/run/run commands/run/run1,fdctl_shared) endif endif -endif diff --git a/src/ballet/aes/fd_aes_gcm_ref.h b/src/ballet/aes/fd_aes_gcm_ref.h index c801026c0ef..4d35ec7c684 100644 --- a/src/ballet/aes/fd_aes_gcm_ref.h +++ b/src/ballet/aes/fd_aes_gcm_ref.h @@ -8,9 +8,7 @@ union fd_gcm128 { ulong hi; ulong lo; }; -# if FD_HAS_INT128 uint128 u128; -# endif }; typedef union fd_gcm128 fd_gcm128_t; diff --git a/src/ballet/bn254/Local.mk b/src/ballet/bn254/Local.mk index 51c3e0904fe..04de95d9931 100644 --- a/src/ballet/bn254/Local.mk +++ b/src/ballet/bn254/Local.mk @@ -1,8 +1,6 @@ -ifdef FD_HAS_INT128 $(call add-hdrs,fd_bn254.h fd_bn254_scalar.h fd_poseidon.h) $(call add-objs,fd_bn254 fd_poseidon,fd_ballet) $(call make-unit-test,test_bn254,test_bn254,fd_ballet fd_util) $(call make-unit-test,test_poseidon,test_poseidon,fd_ballet fd_util) $(call run-unit-test,test_bn254) $(call run-unit-test,test_poseidon) -endif diff --git a/src/disco/gui/Local.mk b/src/disco/gui/Local.mk index dd4fc99bd5c..d2ce4d86955 100644 --- a/src/disco/gui/Local.mk +++ b/src/disco/gui/Local.mk @@ -1,11 +1,9 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-hdrs,fd_gui.h fd_gui_printf.h fd_gui_peers.h fd_gui_config_parse.h fd_gui_metrics.h) $(call add-objs,fd_gui fd_gui_printf fd_gui_peers fd_gui_config_parse fd_gui_tile generated/http_import_dist,fd_disco) $(OBJDIR)/obj/disco/gui/fd_gui_tile.o: book/public/fire.svg $(call make-unit-test,test_live_table,test_live_table,fd_disco fd_util) $(call make-fuzz-test,fuzz_config_parser,fuzz_config_parser,fd_disco fd_ballet fd_util) -endif src/disco/gui/dist_stable_cmp/%.zst: src/disco/gui/dist_stable/% mkdir -p $(@D); diff --git a/src/discof/capture/Local.mk b/src/discof/capture/Local.mk index c4dec3025d4..21bcebe385c 100644 --- a/src/discof/capture/Local.mk +++ b/src/discof/capture/Local.mk @@ -1,5 +1,3 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-objs,fd_solcap_tile,fd_discof) endif -endif diff --git a/src/discof/execle/Local.mk b/src/discof/execle/Local.mk index c414672a5e1..a2e615d82f4 100644 --- a/src/discof/execle/Local.mk +++ b/src/discof/execle/Local.mk @@ -1,9 +1,7 @@ ifdef FD_HAS_ATOMIC $(call add-objs,fd_execle_tile,fd_discof) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_execle_tile,test_execle_tile,fd_discof fd_disco fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util) $(call run-unit-test,test_execle_tile) endif endif -endif diff --git a/src/discof/execrp/Local.mk b/src/discof/execrp/Local.mk index 9993702d62a..2b248bb8f59 100644 --- a/src/discof/execrp/Local.mk +++ b/src/discof/execrp/Local.mk @@ -1,7 +1,5 @@ ifdef FD_HAS_HOSTED $(call add-objs,fd_execrp_tile,fd_discof) -ifdef FD_HAS_INT128 $(call make-unit-test,test_execrp_tile,test_execrp_tile,fd_discof fd_disco fd_choreo fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util) $(call run-unit-test,test_execrp_tile) endif -endif diff --git a/src/discof/execrp/fd_execrp_tile.c b/src/discof/execrp/fd_execrp_tile.c index c5b6e19a61b..5fabb5a84ea 100644 --- a/src/discof/execrp/fd_execrp_tile.c +++ b/src/discof/execrp/fd_execrp_tile.c @@ -341,7 +341,7 @@ privileged_init( fd_topo_t const * topo, fd_wksp_t * funk_wksp = fd_wksp_containing( fd_topo_obj_laddr( topo, funk_obj_id ) ); FD_TEST( funk_wksp ); -#if defined(__linux__) && defined(__x86_64__) +#if FD_ARCH_SUPPORTS_SANDBOX && defined(__x86_64__) if( FD_UNLIKELY( fd_sandbox_getpid()!=fd_sandbox_gettid() ) ) { FD_LOG_INFO(( "userland memory protection disabled: not compatible with single-process mode" )); return; @@ -363,7 +363,7 @@ privileged_init( fd_topo_t const * topo, ctx->funk_pkey = pkey; funk_mprotect_readonly( ctx ); FD_LOG_INFO(( "userland memory protection enabled (pkey=%d)", pkey )); -# endif /* defined(__linux__) && defined(__x86_64__) */ +# endif /* FD_ARCH_SUPPORTS_SANDBOX && defined(__x86_64__) */ } static void diff --git a/src/discof/genesis/Local.mk b/src/discof/genesis/Local.mk index a8d71e89688..cb2ae6cf92d 100644 --- a/src/discof/genesis/Local.mk +++ b/src/discof/genesis/Local.mk @@ -1,6 +1,4 @@ -ifdef FD_HAS_INT128 -$(call add-objs,fd_genesi_tile fd_genesis_client,fd_discof) ifdef FD_HAS_HOSTED +$(call add-objs,fd_genesi_tile fd_genesis_client,fd_discof) $(call make-fuzz-test,fuzz_genesis_client,fuzz_genesis_client,fd_discof fd_waltz fd_ballet fd_util) endif -endif diff --git a/src/discof/replay/Local.mk b/src/discof/replay/Local.mk index f629991af14..21a6fc46451 100644 --- a/src/discof/replay/Local.mk +++ b/src/discof/replay/Local.mk @@ -12,7 +12,6 @@ $(call add-objs,fd_replay_tile,fd_discof) $(call make-unit-test,test_replay_tile,test_replay_tile,fd_discof fd_choreo fd_disco fd_flamenco fd_vinyl fd_funk fd_tango fd_ballet fd_util) $(call add-hdrs,fd_vote_tracker.h) $(call add-objs,fd_vote_tracker,fd_discof) - else $(warning "zstd not installed, skipping replay") endif diff --git a/src/discof/restore/Local.mk b/src/discof/restore/Local.mk index b156bb4d6b3..4292dbd6d8e 100644 --- a/src/discof/restore/Local.mk +++ b/src/discof/restore/Local.mk @@ -18,9 +18,7 @@ $(call add-objs,utils/fd_ssload,fd_discof) $(call add-objs,utils/fd_ssping,fd_discof) $(call add-objs,utils/fd_http_resolver,fd_discof) $(call add-objs,utils/fd_slot_delta_parser,fd_discof) -ifdef FD_HAS_INT128 $(call make-unit-test,test_ssmanifest_parser,utils/test_ssmanifest_parser,fd_discof fd_flamenco fd_funk fd_ballet fd_util) -endif $(call make-unit-test,test_slot_delta_parser,utils/test_slot_delta_parser,fd_discof fd_flamenco fd_ballet fd_util) $(call make-unit-test,test_sspeer_selector,utils/test_sspeer_selector,fd_discof fd_flamenco fd_ballet fd_util) $(call make-unit-test,test_ssping,utils/test_ssping,fd_discof fd_flamenco fd_ballet fd_util) @@ -34,9 +32,7 @@ $(call run-unit-test,test_ssparse) $(call run-unit-test,test_ssload) $(call make-fuzz-test,fuzz_snapshot_parser,utils/fuzz_snapshot_parser,fd_discof fd_flamenco fd_ballet fd_util) -ifdef FD_HAS_INT128 $(call make-fuzz-test,fuzz_ssmanifest_parser,utils/fuzz_ssmanifest_parser,fd_discof fd_flamenco fd_funk fd_ballet fd_util) -endif $(call make-fuzz-test,fuzz_ssarchive_parser,utils/fuzz_ssarchive_parser,fd_discof fd_flamenco fd_ballet fd_util) $(call make-fuzz-test,fuzz_slot_delta_parser,utils/fuzz_slot_delta_parser,fd_discof fd_flamenco fd_ballet fd_util) $(call make-fuzz-test,fuzz_sshttp,utils/fuzz_sshttp,fd_discof fd_waltz fd_flamenco fd_ballet fd_util,$(OPENSSL_LIBS)) diff --git a/src/flamenco/capture/Local.mk b/src/flamenco/capture/Local.mk index 054a48e2a50..dadebdbeac1 100644 --- a/src/flamenco/capture/Local.mk +++ b/src/flamenco/capture/Local.mk @@ -1,6 +1,4 @@ -ifdef FD_HAS_INT128 ifdef FD_HAS_HOSTED $(call add-objs,fd_solcap_writer fd_capture_ctx,fd_flamenco) $(call add-hdrs,fd_solcap_proto.h fd_solcap_writer.h fd_capture_ctx.h) endif -endif diff --git a/src/flamenco/fd_flamenco_base.h b/src/flamenco/fd_flamenco_base.h index fc869469d98..e3cb4aa1f96 100644 --- a/src/flamenco/fd_flamenco_base.h +++ b/src/flamenco/fd_flamenco_base.h @@ -11,7 +11,7 @@ union __attribute__((packed)) fd_w_u128 { uchar uc[16]; ulong ul[2]; -# if FD_HAS_INT128 +# ifdef __SIZEOF_INT128__ uint128 ud; # endif }; diff --git a/src/flamenco/progcache/Local.mk b/src/flamenco/progcache/Local.mk index d13084d5bba..55243e87091 100644 --- a/src/flamenco/progcache/Local.mk +++ b/src/flamenco/progcache/Local.mk @@ -19,14 +19,12 @@ $(call add-objs,fd_progcache_rec,fd_flamenco) $(call add-objs,fd_progcache_reclaim,fd_flamenco) ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 $(call make-unit-test,test_progcache,test_progcache,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_progcache) ifdef FD_HAS_RACESAN $(call make-unit-test,test_progcache_racesan,test_progcache_racesan,fd_flamenco fd_funk fd_ballet fd_util) endif endif -endif # Internals $(call add-objs,fd_progcache_rec,fd_flamenco) diff --git a/src/flamenco/progcache/fd_progcache_xid.h b/src/flamenco/progcache/fd_progcache_xid.h index 637a87c7674..7962cfbe1df 100644 --- a/src/flamenco/progcache/fd_progcache_xid.h +++ b/src/flamenco/progcache/fd_progcache_xid.h @@ -14,7 +14,7 @@ #if FD_HAS_INT128 -/* If the target supports uint128, fd_progcache_rec_key_hash is seeded +/* If the target has fast uint128, fd_progcache_rec_key_hash is seeded xxHash3 with 64-bit output size. (open source BSD licensed) */ static inline ulong diff --git a/src/flamenco/rewards/Local.mk b/src/flamenco/rewards/Local.mk index 2891adf67bc..f170a1aeaf7 100644 --- a/src/flamenco/rewards/Local.mk +++ b/src/flamenco/rewards/Local.mk @@ -1,5 +1,3 @@ -ifdef FD_HAS_INT128 - $(call add-hdrs,fd_rewards_base.h) $(call add-hdrs,fd_stake_rewards.h) @@ -7,4 +5,3 @@ $(call add-objs,fd_stake_rewards,fd_flamenco) $(call add-hdrs,fd_rewards.h) $(call add-objs,fd_rewards,fd_flamenco) -endif diff --git a/src/flamenco/runtime/Local.mk b/src/flamenco/runtime/Local.mk index c13d3988710..56ed0219729 100644 --- a/src/flamenco/runtime/Local.mk +++ b/src/flamenco/runtime/Local.mk @@ -10,18 +10,14 @@ $(call add-objs,fd_blockhashes,fd_flamenco) $(call add-objs,fd_core_bpf_migration,fd_flamenco) $(call add-hdrs,fd_executor.h) -ifdef FD_HAS_INT128 $(call add-objs,fd_executor,fd_flamenco) -endif $(call add-hdrs,fd_hashes.h) $(call add-objs,fd_hashes,fd_flamenco) ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 $(call make-unit-test,test_hashes,test_hashes,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_hashes) endif -endif $(call add-hdrs,fd_pubkey_utils.h) $(call add-objs,fd_pubkey_utils,fd_flamenco) @@ -31,11 +27,9 @@ $(call add-hdrs,fd_txncache_shmem.h fd_txncache.h) $(call add-objs,fd_txncache_shmem fd_txncache,fd_flamenco) $(call add-hdrs,fd_cost_tracker.h) $(call add-objs,fd_cost_tracker,fd_flamenco) -ifdef FD_HAS_INT128 $(call make-unit-test,test_cost_tracker,test_cost_tracker,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_cost_tracker) endif -endif $(call add-hdrs,fd_compute_budget_details.h) $(call add-objs,fd_compute_budget_details,fd_flamenco) @@ -47,31 +41,26 @@ $(call add-hdrs,fd_acc_pool.h) $(call add-objs,fd_acc_pool,fd_flamenco) ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 $(call make-unit-test,test_bundle_exec,test_bundle_exec,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_bundle_exec) $(call make-unit-test,test_runtime_alut,test_runtime_alut,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_runtime_alut) endif -endif ifdef FD_HAS_ATOMIC $(call add-hdrs,fd_bank.h) $(call add-objs,fd_bank,fd_flamenco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_bank,test_bank,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_bank) endif endif -endif ifdef FD_HAS_HOSTED $(call make-unit-test,test_txncache,test_txncache,fd_flamenco fd_ballet fd_util) endif ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 $(call add-hdrs,fd_runtime.h fd_runtime_err.h fd_runtime_const.h fd_runtime_stack.h fd_runtime_helpers.h) $(call add-objs,fd_runtime,fd_flamenco) ifdef FD_HAS_HOSTED @@ -97,7 +86,6 @@ $(call make-unit-test,test_feature_activation,tests/test_feature_activation,fd_f $(call run-unit-test,test_feature_activation) endif endif -endif $(call add-hdrs,fd_system_ids.h) $(call add-objs,fd_system_ids,fd_flamenco) diff --git a/src/flamenco/runtime/program/Local.mk b/src/flamenco/runtime/program/Local.mk index 9067e3d54db..06dec7d9430 100644 --- a/src/flamenco/runtime/program/Local.mk +++ b/src/flamenco/runtime/program/Local.mk @@ -34,7 +34,6 @@ $(call add-objs,fd_native_cpi,fd_flamenco) ### Unit tests ifdef FD_HAS_ATOMIC -ifdef FD_HAS_INT128 ifdef FD_HAS_HOSTED $(call make-unit-test,test_bpf_loader_serialization,test_bpf_loader_serialization,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_bpf_loader_serialization) @@ -49,7 +48,6 @@ $(call make-unit-test,test_create_account_allow_prefund,test_create_account_allo $(call run-unit-test,test_create_account_allow_prefund) endif endif -endif $(call make-unit-test,test_compute_budget_decode,test_compute_budget_decode,fd_flamenco fd_ballet fd_util) $(call run-unit-test,test_compute_budget_decode) diff --git a/src/flamenco/runtime/sysvar/Local.mk b/src/flamenco/runtime/sysvar/Local.mk index c9467d2101a..fbed051e699 100644 --- a/src/flamenco/runtime/sysvar/Local.mk +++ b/src/flamenco/runtime/sysvar/Local.mk @@ -4,13 +4,11 @@ $(call add-objs,fd_sysvar,fd_flamenco) $(call add-hdrs,fd_sysvar_cache.h) $(call add-objs,fd_sysvar_cache fd_sysvar_cache_db,fd_flamenco) -ifdef FD_HAS_INT128 $(call add-hdrs,fd_sysvar_clock.h) $(call add-objs,fd_sysvar_clock,fd_flamenco) $(call add-hdrs,fd_sysvar_epoch_rewards.h) $(call add-objs,fd_sysvar_epoch_rewards,fd_flamenco) -endif $(call add-hdrs,fd_sysvar_epoch_schedule.h) $(call add-objs,fd_sysvar_epoch_schedule,fd_flamenco) @@ -40,8 +38,6 @@ $(call add-hdrs,fd_sysvar_stake_history.h) $(call add-objs,fd_sysvar_stake_history,fd_flamenco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_sysvar,test_sysvar,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_sysvar) endif -endif diff --git a/src/flamenco/runtime/sysvar/test_sysvar.c b/src/flamenco/runtime/sysvar/test_sysvar.c index 1ab7e852cda..c65e9d774d6 100644 --- a/src/flamenco/runtime/sysvar/test_sysvar.c +++ b/src/flamenco/runtime/sysvar/test_sysvar.c @@ -1,8 +1,6 @@ #include "test_sysvar_cache.c" #include "test_sysvar_clock.c" -#if FD_HAS_INT128 #include "test_sysvar_epoch_rewards.c" -#endif #include "test_sysvar_epoch_schedule.c" #include "test_sysvar_last_restart_slot.c" #include "test_sysvar_recent_hashes.c" @@ -28,9 +26,7 @@ main( int argc, test_sysvar_cache(); -# if FD_HAS_INT128 test_sysvar_epoch_rewards( wksp ); -# endif test_sysvar_epoch_schedule( wksp ); test_sysvar_last_restart_slot(); test_sysvar_recent_hashes( wksp ); diff --git a/src/flamenco/runtime/tests/Local.mk b/src/flamenco/runtime/tests/Local.mk index 8e254d60dc5..c5f19b113df 100644 --- a/src/flamenco/runtime/tests/Local.mk +++ b/src/flamenco/runtime/tests/Local.mk @@ -1,43 +1,35 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-hdrs,fd_solfuzz.h) $(call add-objs,fd_solfuzz fd_solfuzz_exec,fd_flamenco_test) $(call add-hdrs,fd_dump_pb.h) $(call add-objs,fd_dump_pb,fd_flamenco) endif -endif $(call add-hdrs,fd_instr_harness.h fd_txn_harness.h fd_bundle_harness.h fd_gossip_harness.h fd_cost_harness.h) $(call add-objs,fd_elf_harness fd_instr_harness fd_txn_harness fd_bundle_harness fd_cost_harness fd_harness_common fd_vm_harness fd_gossip_harness,fd_flamenco_test) -ifdef FD_HAS_INT128 $(call add-objs,fd_block_harness,fd_flamenco_test) -endif $(call add-objs,fd_sol_compat,fd_flamenco_test) $(call add-hdrs,generated/context.pb.h generated/instr.pb.h generated/txn.pb.h generated/bundle.pb.h generated/block.pb.h generated/vm.pb.h generated/vm_serialization.pb.h generated/metadata.pb.h generated/gossip.pb.h generated/cost.pb.h generated/elf.pb.h) $(call add-objs,generated/context.pb generated/instr.pb generated/txn.pb generated/bundle.pb generated/block.pb generated/vm.pb generated/vm_serialization.pb generated/metadata.pb generated/gossip.pb generated/cost.pb generated/elf.pb,fd_flamenco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 SOL_COMPAT_FLAGS:=-Wl,--version-script=src/flamenco/runtime/tests/libfd_exec_sol_compat.map $(call make-unit-test,test_sol_compat,test_sol_compat,fd_flamenco_test fd_flamenco fd_tango fd_funk fd_ballet fd_util fd_disco) $(call make-shared,libfd_exec_sol_compat.so,fd_sol_compat,fd_flamenco_test fd_flamenco fd_funk fd_ballet fd_util fd_disco,$(SOL_COMPAT_FLAGS)) $(call make-unit-test,test_sol_compat_so,test_sol_compat_so,fd_util) endif -endif $(call add-hdrs,fd_svm_elfgen.h) $(call add-objs,fd_svm_elfgen,fd_flamenco_test) $(call make-unit-test,test_svm_elfgen,test_svm_elfgen,fd_flamenco_test fd_flamenco fd_ballet fd_util fd_disco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-hdrs,fd_svm_mini.h) $(call add-objs,fd_svm_mini,fd_flamenco_test) $(call make-unit-test,test_svm_mini,test_svm_mini,fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util fd_disco) $(call make-unit-test,test_accdb_svm,test_accdb_svm,fd_flamenco_test fd_flamenco fd_funk fd_tango fd_ballet fd_util fd_disco) endif -endif run-runtime-backtest: $(OBJDIR)/bin/firedancer-dev OBJDIR=$(OBJDIR) src/flamenco/runtime/tests/run_backtest_ci.sh $(BACKTEST_ARGS) diff --git a/src/flamenco/stakes/Local.mk b/src/flamenco/stakes/Local.mk index b2528d1418d..a46bed5df7e 100644 --- a/src/flamenco/stakes/Local.mk +++ b/src/flamenco/stakes/Local.mk @@ -8,11 +8,9 @@ $(call add-hdrs,fd_stake_delegations.h) $(call add-objs,fd_stake_delegations,fd_flamenco) ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_stake_delegations,test_stake_delegations,fd_flamenco fd_funk fd_ballet fd_util) $(call run-unit-test,test_stake_delegations) endif -endif $(call add-hdrs,fd_top_votes.h) $(call add-objs,fd_top_votes,fd_flamenco) diff --git a/src/flamenco/vm/Local.mk b/src/flamenco/vm/Local.mk index 1461cddb263..d2ec6dc1a75 100644 --- a/src/flamenco/vm/Local.mk +++ b/src/flamenco/vm/Local.mk @@ -1,11 +1,9 @@ ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call add-hdrs,fd_vm_base.h fd_vm.h fd_vm_private.h) # FIXME: PRIVATE TEMPORARILY HERE DUE TO SOME MESSINESS IN FD_VM_SYSCALL.H $(call add-objs,fd_vm fd_vm_interp fd_vm_disasm fd_vm_trace,fd_flamenco) $(call add-hdrs,test_vm_util.h) $(call add-objs,test_vm_util,fd_flamenco) -endif # Unfortunately, the get_sysvar syscall handler depends on the funk database ifdef FD_HAS_BLST @@ -15,11 +13,9 @@ endif endif ifdef FD_HAS_HOSTED -ifdef FD_HAS_INT128 $(call make-unit-test,test_vm_base,test_vm_base,fd_flamenco fd_ballet fd_util fd_funk) $(call run-unit-test,test_vm_base) endif -endif ifdef FD_HAS_BLST $(call make-unit-test,test_vm_instr,test_vm_instr,fd_flamenco fd_funk fd_ballet fd_util,$(BLST_LIBS)) diff --git a/src/flamenco/vm/syscall/fd_vm_syscall.c b/src/flamenco/vm/syscall/fd_vm_syscall.c index e459696f094..e75dee41fda 100644 --- a/src/flamenco/vm/syscall/fd_vm_syscall.c +++ b/src/flamenco/vm/syscall/fd_vm_syscall.c @@ -134,10 +134,8 @@ fd_vm_syscall_register_slot( fd_sbpf_syscalls_t * syscalls, // used, we can ignore it for now //REGISTER( "sol_curve_pairing_map", fd_vm_syscall_sol_curve_pairing_map ); -#if FD_HAS_INT128 REGISTER( "sol_alt_bn128_group_op", fd_vm_syscall_sol_alt_bn128_group_op ); REGISTER( "sol_alt_bn128_compression", fd_vm_syscall_sol_alt_bn128_compression ); -#endif /* FD_HAS_INT128 */ //REGISTER( "sol_big_mod_exp", fd_vm_syscall_sol_big_mod_exp ); diff --git a/src/waltz/ip/fd_fib4_private.h b/src/waltz/ip/fd_fib4_private.h index 4c6747335f2..60fba51c65f 100644 --- a/src/waltz/ip/fd_fib4_private.h +++ b/src/waltz/ip/fd_fib4_private.h @@ -25,9 +25,6 @@ union __attribute__((aligned(16))) fd_fib4_hmap_entry { uint hash; fd_fib4_hop_t next_hop; /* 16 bytes */ }; -#if FD_HAS_INT128 - uint128 uf[2]; -#endif #if FD_HAS_X86 __m128i xmm[2]; #endif @@ -46,12 +43,6 @@ fd_fib4_hmap_entry_st( fd_fib4_hmap_entry_t * dst, fd_fib4_hmap_entry_t const * src ) { # if FD_HAS_AVX FD_VOLATILE( dst->avx[0] ) = src->avx[0]; -# elif FD_HAS_X86 - FD_VOLATILE( dst->xmm[0] ) = src->xmm[0]; - FD_VOLATILE( dst->xmm[1] ) = src->xmm[1]; -# elif FD_HAS_INT128 - FD_VOLATILE( dst->uf[0] ) = src->uf[0]; - FD_VOLATILE( dst->uf[1] ) = src->uf[1]; # else FD_VOLATILE( dst->dst_addr ) = src->dst_addr; FD_VOLATILE( dst->hash ) = src->hash; @@ -71,9 +62,6 @@ fd_fib4_hmap_entry_ld( fd_fib4_hmap_entry_t * dst, # elif FD_HAS_X86 dst->xmm[0] = FD_VOLATILE_CONST( src->xmm[0] ); dst->xmm[1] = FD_VOLATILE_CONST( src->xmm[1] ); -# elif FD_HAS_INT128 - dst->uf[0] = FD_VOLATILE_CONST( src->uf[0] ); - dst->uf[1] = FD_VOLATILE_CONST( src->uf[1] ); # else dst->dst_addr = FD_VOLATILE_CONST( src->dst_addr ); dst->hash = FD_VOLATILE_CONST( src->hash ); diff --git a/src/waltz/neigh/fd_neigh4_map.h b/src/waltz/neigh/fd_neigh4_map.h index d834892dd95..5f0db71f9f6 100644 --- a/src/waltz/neigh/fd_neigh4_map.h +++ b/src/waltz/neigh/fd_neigh4_map.h @@ -26,9 +26,6 @@ union __attribute__((aligned(16))) fd_neigh4_entry { #define FD_NEIGH4_PROBE_SUPPRESS_UNTIL_GET(entry) \ (long)(((entry)->probe_suppress_until)<xmm[0] ) = src->xmm[0]; -# elif FD_HAS_INT128 - FD_VOLATILE( dst->uf[0] ) = src->uf[0]; # else memcpy( dst->mac_addr, src->mac_addr, 6 ); dst->probe_suppress_until = src->probe_suppress_until; @@ -62,8 +57,6 @@ fd_neigh4_entry_atomic_ld( fd_neigh4_entry_t * dst, fd_neigh4_entry_t const * src ) { # if FD_HAS_X86 dst->xmm[0] = FD_VOLATILE_CONST( src->xmm[0] ); -# elif FD_HAS_INT128 - dst->uf[0] = FD_VOLATILE_CONST( src->uf[0] ); # else memcpy( dst->mac_addr, src->mac_addr, 6 ); dst->probe_suppress_until = src->probe_suppress_until; From 4501032d8216a0fde406ce5ff34acc89697e42a7 Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Thu, 4 Jun 2026 22:10:31 +0000 Subject: [PATCH 23/30] runtime: minor header changes --- src/discof/backtest/fd_backtest_tile.c | 4 ++-- src/discof/restore/utils/fd_ssctrl.h | 3 +-- src/discof/restore/utils/fd_ssmanifest_parser.c | 3 --- src/discof/txsend/fd_txsend_tile.c | 2 +- src/discof/txsend/fd_txsend_tile.h | 3 ++- src/discoh/bank/fd_bank_abi.c | 3 ++- src/flamenco/progcache/fd_progcache.h | 1 + src/flamenco/progcache/fd_progcache_rec.c | 1 + src/flamenco/runtime/program/fd_compute_budget_program.c | 1 + src/flamenco/runtime/program/vote/fd_vote_utils.h | 2 +- src/flamenco/runtime/sysvar/fd_sysvar_base.h | 1 - src/flamenco/runtime/sysvar/fd_sysvar_cache.c | 1 + src/flamenco/runtime/sysvar/fd_sysvar_rent1.c | 3 +-- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/discof/backtest/fd_backtest_tile.c b/src/discof/backtest/fd_backtest_tile.c index 82270aefe1b..8da33254ecb 100644 --- a/src/discof/backtest/fd_backtest_tile.c +++ b/src/discof/backtest/fd_backtest_tile.c @@ -296,7 +296,7 @@ returnable_frag( fd_backt_tile_t * ctx, ctx->reading_slot = manifest->slot; ctx->start_slot = manifest->slot; FD_MGAUGE_SET( BACKT, START_SLOT, ctx->start_slot ); - FD_LOG_NOTICE(( "Replaying from slot %lu to %lu", ctx->start_slot, ctx->end_slot )); + FD_LOG_NOTICE(( "replaying from slot %lu to %lu", ctx->start_slot, ctx->end_slot )); break; } case IN_KIND_GENESI: { @@ -308,7 +308,7 @@ returnable_frag( fd_backt_tile_t * ctx, FD_MGAUGE_SET( BACKT, START_SLOT, ctx->start_slot ); ctx->replay_time = -fd_log_wallclock(); ctx->publish_time = -fd_log_wallclock(); - FD_LOG_NOTICE(( "Replaying from slot %lu to %lu", ctx->start_slot, ctx->end_slot )); + FD_LOG_NOTICE(( "replaying from slot %lu to %lu", ctx->start_slot, ctx->end_slot )); } break; } diff --git a/src/discof/restore/utils/fd_ssctrl.h b/src/discof/restore/utils/fd_ssctrl.h index 635e97e917c..b479bbfc562 100644 --- a/src/discof/restore/utils/fd_ssctrl.h +++ b/src/discof/restore/utils/fd_ssctrl.h @@ -110,8 +110,7 @@ #define FD_SNAPSHOT_MSG_CTRL_FINI (9UL) /* Current snapshot has been fully loaded, finish processing */ /* snapld -> snapct (via snapld_dc) */ -#define FD_SNAPSHOT_MSG_LOAD_COMPLETE (18UL) /* snapld finished reading/downloading all data */ - +#define FD_SNAPSHOT_MSG_LOAD_COMPLETE (10UL) /* snapld finished reading/downloading all data */ /* Sent by snapct to tell snapld whether to load a local file or download from a particular external peer. */ diff --git a/src/discof/restore/utils/fd_ssmanifest_parser.c b/src/discof/restore/utils/fd_ssmanifest_parser.c index cf54af5e56c..cb119d809e1 100644 --- a/src/discof/restore/utils/fd_ssmanifest_parser.c +++ b/src/discof/restore/utils/fd_ssmanifest_parser.c @@ -2048,9 +2048,6 @@ fd_ssmanifest_parser_init( fd_ssmanifest_parser_t * parser, manifest->epoch_stakes[i].total_stake = 0UL; manifest->epoch_stakes[i].vote_stakes_len = 0UL; } - - FD_SCRATCH_ALLOC_INIT( l, parser ); - FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_ssmanifest_parser_t), sizeof(fd_ssmanifest_parser_t) ); } /* Agave can serialize some optional "extra fields" at the diff --git a/src/discof/txsend/fd_txsend_tile.c b/src/discof/txsend/fd_txsend_tile.c index 8da7b2b1d03..8000bec6f5d 100644 --- a/src/discof/txsend/fd_txsend_tile.c +++ b/src/discof/txsend/fd_txsend_tile.c @@ -54,7 +54,7 @@ fd_quic_limits_t quic_limits = { #define MAP_KEY_T fd_pubkey_t #define MAP_NEXT map.next #define MAP_KEY_EQ(k0,k1) fd_pubkey_eq( k0, k1 ) -#define MAP_KEY_HASH(key,seed) fd_funk_rec_key_hash1( (key)->uc, (seed) ) +#define MAP_KEY_HASH(key,seed) fd_progcache_rec_key_hash1( (key)->uc, (seed) ) #define MAP_IMPL_STYLE 2 #include "../../util/tmpl/fd_map_chain.c" diff --git a/src/discof/txsend/fd_txsend_tile.h b/src/discof/txsend/fd_txsend_tile.h index 2650c35da79..a10b6755098 100644 --- a/src/discof/txsend/fd_txsend_tile.h +++ b/src/discof/txsend/fd_txsend_tile.h @@ -2,6 +2,7 @@ #define HEADER_fd_src_discof_txsend_fd_txsend_tile_h #include "../../waltz/quic/fd_quic.h" +#include "../../flamenco/progcache/fd_progcache_xid.h" #include "../../flamenco/leaders/fd_multi_epoch_leaders.h" #include "../../flamenco/gossip/fd_gossip_message.h" #include "../../disco/stem/fd_stem.h" @@ -78,7 +79,7 @@ typedef struct peer_entry peer_entry_t; #define MAP_KEY_T fd_pubkey_t #define MAP_NEXT map.next #define MAP_KEY_EQ(k0,k1) fd_pubkey_eq( k0, k1 ) -#define MAP_KEY_HASH(key,seed) fd_funk_rec_key_hash1( (key)->uc, (seed) ) +#define MAP_KEY_HASH(key,seed) fd_progcache_rec_key_hash1( (key)->uc, (seed) ) #define MAP_IMPL_STYLE 1 #include "../../util/tmpl/fd_map_chain.c" diff --git a/src/discoh/bank/fd_bank_abi.c b/src/discoh/bank/fd_bank_abi.c index 5fb407e19e0..a4b32876484 100644 --- a/src/discoh/bank/fd_bank_abi.c +++ b/src/discoh/bank/fd_bank_abi.c @@ -1,4 +1,3 @@ - #include "fd_bank_abi.h" #include "../../flamenco/runtime/fd_system_ids_pp.h" #include "../../flamenco/runtime/fd_system_ids.h" @@ -6,6 +5,8 @@ #include "../../disco/pack/fd_pack_unwritable.h" #include "../../disco/pack/fd_compute_budget_program.h" +#include + #define ABI_ALIGN( x ) __attribute__((packed)) __attribute__((aligned(x))) /* Lots of these types contain Rust structs with vectors in them. The diff --git a/src/flamenco/progcache/fd_progcache.h b/src/flamenco/progcache/fd_progcache.h index f91895fe2a2..c07bed1154f 100644 --- a/src/flamenco/progcache/fd_progcache.h +++ b/src/flamenco/progcache/fd_progcache.h @@ -10,6 +10,7 @@ #include "fd_progcache_xid.h" #include "../fd_rwlock.h" #include "../runtime/fd_runtime_const.h" +#include "fd_progcache_xid.h" /* fd_progcache_shmem_t is the top-level shared memory data structure of the progcache. */ diff --git a/src/flamenco/progcache/fd_progcache_rec.c b/src/flamenco/progcache/fd_progcache_rec.c index 78b81e508c3..30c9d81281b 100644 --- a/src/flamenco/progcache/fd_progcache_rec.c +++ b/src/flamenco/progcache/fd_progcache_rec.c @@ -1,6 +1,7 @@ #include "fd_progcache.h" #include "../vm/fd_vm.h" /* fd_vm_syscall_register_slot, fd_vm_validate */ #include "../../util/alloc/fd_alloc.h" + #include /* Can be overridden by test executables */ diff --git a/src/flamenco/runtime/program/fd_compute_budget_program.c b/src/flamenco/runtime/program/fd_compute_budget_program.c index e3f79a68ed5..9a75777ff52 100644 --- a/src/flamenco/runtime/program/fd_compute_budget_program.c +++ b/src/flamenco/runtime/program/fd_compute_budget_program.c @@ -6,6 +6,7 @@ #include "../fd_executor.h" #include "fd_builtin_programs.h" #include "../fd_compute_budget_details.h" +#include "../../vm/fd_vm_base.h" /* https://github.com/anza-xyz/agave/blob/v4.0.0-beta.7/program-runtime/src/execution_budget.rs#L44 */ #define DEFAULT_INSTRUCTION_COMPUTE_UNIT_LIMIT (200000UL) diff --git a/src/flamenco/runtime/program/vote/fd_vote_utils.h b/src/flamenco/runtime/program/vote/fd_vote_utils.h index e2a44e1d1ff..8983b91a6ed 100644 --- a/src/flamenco/runtime/program/vote/fd_vote_utils.h +++ b/src/flamenco/runtime/program/vote/fd_vote_utils.h @@ -2,7 +2,7 @@ #define HEADER_fd_src_flamenco_runtime_program_vote_fd_vote_utils_h #include "fd_vote_codec.h" -#include "../../fd_executor.h" +#include "../../../../ballet/txn/fd_txn.h" /* Vote utility functions shared across vote program logic. Merged from the former fd_vote_common.h and fd_vote_lockout.h. */ diff --git a/src/flamenco/runtime/sysvar/fd_sysvar_base.h b/src/flamenco/runtime/sysvar/fd_sysvar_base.h index 88b3ed43bb3..ac1ad9cfe45 100644 --- a/src/flamenco/runtime/sysvar/fd_sysvar_base.h +++ b/src/flamenco/runtime/sysvar/fd_sysvar_base.h @@ -2,7 +2,6 @@ #define HEADER_fd_src_flamenco_runtime_sysvar_fd_sysvar_base_h #include "../../fd_flamenco_base.h" -#include "../../accdb/fd_accdb_base.h" #define FD_SYSVAR_ALIGN_MAX (16UL) diff --git a/src/flamenco/runtime/sysvar/fd_sysvar_cache.c b/src/flamenco/runtime/sysvar/fd_sysvar_cache.c index 021a5d7e1d1..39bd339df41 100644 --- a/src/flamenco/runtime/sysvar/fd_sysvar_cache.c +++ b/src/flamenco/runtime/sysvar/fd_sysvar_cache.c @@ -4,6 +4,7 @@ #include "fd_sysvar_slot_hashes.h" #include "fd_sysvar_slot_history.h" #include "fd_sysvar_stake_history.h" + #include void * diff --git a/src/flamenco/runtime/sysvar/fd_sysvar_rent1.c b/src/flamenco/runtime/sysvar/fd_sysvar_rent1.c index e6f3a0f53e1..da1ef7eed59 100644 --- a/src/flamenco/runtime/sysvar/fd_sysvar_rent1.c +++ b/src/flamenco/runtime/sysvar/fd_sysvar_rent1.c @@ -1,6 +1,5 @@ #include "fd_sysvar_rent.h" - -/* Moved into a separate compile unit to minimize dependencies on fd_funk */ +#include "../../types/fd_cast.h" /* https://github.com/solana-labs/solana/blob/8f2c8b8388a495d2728909e30460aa40dcc5d733/sdk/program/src/rent.rs#L36 */ #define ACCOUNT_STORAGE_OVERHEAD (128) From 78353177795de74c8a92530ef2dc644e20ea9a60 Mon Sep 17 00:00:00 2001 From: emwang-jump Date: Thu, 4 Jun 2026 16:03:21 -0700 Subject: [PATCH 24/30] repair: cycle bad peers, fix dedup key collision (#9871) --- src/app/firedancer-dev/commands/repair.c | 343 +++++++++++++--- src/disco/store/fd_store.c | 1 - src/disco/store/fd_store.h | 1 - src/discof/repair/Local.mk | 2 + src/discof/repair/fd_inflight.c | 2 +- src/discof/repair/fd_inflight.h | 11 +- src/discof/repair/fd_policy.c | 159 +++++--- src/discof/repair/fd_policy.h | 116 +----- src/discof/repair/fd_repair_tile.c | 127 ++++-- src/discof/repair/fd_reqlim.c | 117 ++++++ src/discof/repair/fd_reqlim.h | 124 ++++++ src/discof/repair/test_policy.c | 486 ++++++++++++++++++++++- src/discof/repair/test_repair_tile.c | 6 +- src/discof/replay/fd_replay_tile.c | 1 - 14 files changed, 1234 insertions(+), 262 deletions(-) create mode 100644 src/discof/repair/fd_reqlim.c create mode 100644 src/discof/repair/fd_reqlim.h diff --git a/src/app/firedancer-dev/commands/repair.c b/src/app/firedancer-dev/commands/repair.c index 93ece5925ec..6375c7af873 100644 --- a/src/app/firedancer-dev/commands/repair.c +++ b/src/app/firedancer-dev/commands/repair.c @@ -21,6 +21,10 @@ #include "../../platform/fd_sys_util.h" #include "../../shared/commands/monitor/helper.h" #include "../../../disco/metrics/fd_metrics.h" +#include "../../../discof/restore/utils/fd_ssmanifest_parser.h" +#include "../../../flamenco/runtime/sysvar/fd_sysvar_epoch_schedule.h" +#include "../../../flamenco/stakes/fd_stake_weight.h" +#include "../../../flamenco/leaders/fd_leaders_base.h" #include "../../../discof/repair/fd_repair_tile.c" #include "gossip.h" @@ -62,6 +66,190 @@ fdctl_tile_run( fd_topo_tile_t const * tile ); void resolve_gossip_entrypoints( config_t * config ); +#define MANIFEST_LOAD_MAX_SZ (2UL * FD_SHMEM_GIGANTIC_PAGE_SZ) + +/* https://github.com/anza-xyz/agave/blob/v3.1.8/runtime/src/snapshot_bank_utils.rs#L632 */ +static int +repair_verify_epoch_stakes( fd_snapshot_manifest_t const * manifest ) { + fd_epoch_schedule_t epoch_schedule = (fd_epoch_schedule_t){ + .slots_per_epoch = manifest->epoch_schedule_params.slots_per_epoch, + .leader_schedule_slot_offset = manifest->epoch_schedule_params.leader_schedule_slot_offset, + .warmup = manifest->epoch_schedule_params.warmup, + .first_normal_epoch = manifest->epoch_schedule_params.first_normal_epoch, + .first_normal_slot = manifest->epoch_schedule_params.first_normal_slot, + }; + + ulong min_required_epoch = fd_slot_to_epoch( &epoch_schedule, manifest->slot, NULL ); + ulong max_required_epoch = fd_slot_to_leader_schedule_epoch( &epoch_schedule, manifest->slot ); + + for( ulong i=min_required_epoch; i<=max_required_epoch; i++ ) { + int found = 0; + for( ulong j=0UL; jepoch_stakes[j].epoch==i ) { + found = 1; + break; + } + } + if( FD_UNLIKELY( !found ) ) { + FD_LOG_WARNING(( "stakes not found for epoch %lu in manifest", i )); + return -1; + } + } + return 0; +} + +static inline ulong +repair_generate_epoch_info_msg( ulong epoch, + fd_epoch_schedule_t const * epoch_schedule, + fd_snapshot_manifest_epoch_stakes_t const * epoch_stakes, + ulong * epoch_info_msg_out ) { + fd_epoch_info_msg_t * epoch_info_msg = (fd_epoch_info_msg_t *)fd_type_pun( epoch_info_msg_out ); + fd_vote_stake_weight_t * stake_weights = fd_epoch_info_msg_stake_weights( epoch_info_msg ); + + epoch_info_msg->epoch = epoch; + epoch_info_msg->start_slot = fd_epoch_slot0( epoch_schedule, epoch ); + epoch_info_msg->slot_cnt = fd_epoch_slot_cnt( epoch_schedule, epoch ); + epoch_info_msg->excluded_id_stake = 0UL; + + fd_memset( &epoch_info_msg->features, 0xFF, sizeof(fd_features_t) ); + + ulong idx = 0UL; + for( ulong i=0UL; ivote_stakes_len; i++ ) { + ulong stake = epoch_stakes->vote_stakes[ i ].stake; + if( FD_UNLIKELY( !stake ) ) continue; + stake_weights[ idx ].stake = stake; + memcpy( stake_weights[ idx ].id_key.uc, epoch_stakes->vote_stakes[ i ].identity, sizeof(fd_pubkey_t) ); + memcpy( stake_weights[ idx ].vote_key.uc, epoch_stakes->vote_stakes[ i ].vote, sizeof(fd_pubkey_t) ); + idx++; + } + epoch_info_msg->staked_vote_cnt = idx; + sort_vote_weights_by_stake_vote_inplace( stake_weights, idx ); + + fd_stake_weight_t * id_weights = fd_epoch_info_msg_id_weights( epoch_info_msg ); + epoch_info_msg->staked_id_cnt = compute_id_weights_from_vote_weights( id_weights, stake_weights, epoch_info_msg->staked_vote_cnt ); + FD_TEST( idx<=MAX_SHRED_DESTS ); + + epoch_info_msg->epoch_schedule = *epoch_schedule; + return fd_epoch_info_msg_sz( epoch_info_msg->staked_vote_cnt, epoch_info_msg->staked_id_cnt ); +} + +/* repair_load_manifest loads the snapshot manifest from disk and + pre-populates the snapin_manif and replay_epoch dcache links so + that consumer tiles see the data on their first poll cycle. */ +static void +repair_load_manifest( fd_topo_t * topo, + char const * manifest_path ) { + if( FD_UNLIKELY( !manifest_path || !manifest_path[0] ) ) return; + + /* Parse manifest */ + + int fd = open( manifest_path, O_RDONLY ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "open(%s) failed (%d-%s)", manifest_path, errno, fd_io_strerror( errno ) )); + + fd_snapshot_manifest_t * manifest = aligned_alloc( alignof(fd_snapshot_manifest_t), sizeof(fd_snapshot_manifest_t) ); + FD_TEST( manifest ); + for( ulong i=0UL; iepoch_stakes[i].epoch = ULONG_MAX; + + uchar * buf = aligned_alloc( 128UL, MANIFEST_LOAD_MAX_SZ ); + FD_TEST( buf ); + ulong buf_sz = 0; + FD_TEST( !fd_io_read( fd, buf, 0UL, MANIFEST_LOAD_MAX_SZ-1UL, &buf_sz ) ); + close( fd ); + + fd_ssmanifest_parser_t * parser = fd_ssmanifest_parser_join( fd_ssmanifest_parser_new( + aligned_alloc( fd_ssmanifest_parser_align(), fd_ssmanifest_parser_footprint() ) ) ); + FD_TEST( parser ); + fd_ssmanifest_parser_init( parser, manifest ); + int parser_err = fd_ssmanifest_parser_consume( parser, buf, buf_sz, NULL, NULL ); + FD_TEST( parser_err!=FD_SSMANIFEST_PARSER_ADVANCE_ERROR ); + FD_TEST( fd_ssmanifest_parser_fini( parser )==FD_SSMANIFEST_PARSER_ADVANCE_DONE ); + free( parser ); + free( buf ); + + FD_LOG_NOTICE(( "manifest bank slot %lu", manifest->slot )); + FD_TEST( !repair_verify_epoch_stakes( manifest ) ); + + /* Update root_slot fseq */ + + ulong root_slot_obj_id = fd_pod_queryf_ulong( topo->props, ULONG_MAX, "root_slot" ); + if( FD_LIKELY( root_slot_obj_id!=ULONG_MAX ) ) { + ulong * root_fseq = fd_fseq_join( fd_topo_obj_laddr( topo, root_slot_obj_id ) ); + FD_TEST( root_fseq ); + fd_fseq_update( root_fseq, manifest->slot ); + } + + /* Publish manifest to snapin_manif dcache */ + + ulong snap_link_idx = fd_topo_find_link( topo, "snapin_manif", 0UL ); + FD_TEST( snap_link_idx!=ULONG_MAX ); + fd_topo_link_t * snap_link = &topo->links[ snap_link_idx ]; + fd_wksp_t * snap_mem = topo->workspaces[ topo->objs[ snap_link->dcache_obj_id ].wksp_id ].wksp; + ulong snap_chunk0 = fd_dcache_compact_chunk0( snap_mem, snap_link->dcache ); + ulong snap_wmark = fd_dcache_compact_wmark ( snap_mem, snap_link->dcache, snap_link->mtu ); + ulong snap_chunk = snap_chunk0; + + uchar * snap_dst = fd_chunk_to_laddr( snap_mem, snap_chunk ); + memcpy( snap_dst, manifest, sizeof(fd_snapshot_manifest_t) ); + fd_mcache_publish( snap_link->mcache, snap_link->depth, 0UL, + fd_ssmsg_sig( FD_SSMSG_MANIFEST_INCREMENTAL ), + snap_chunk, sizeof(fd_snapshot_manifest_t), 0UL, 0UL, 0UL ); + snap_chunk = fd_dcache_compact_next( snap_chunk, sizeof(fd_snapshot_manifest_t), snap_chunk0, snap_wmark ); + + fd_mcache_publish( snap_link->mcache, snap_link->depth, 1UL, + fd_ssmsg_sig( FD_SSMSG_DONE ), 0UL, 0UL, 0UL, 0UL, 0UL ); + + /* Publish epoch stake weights to replay_epoch dcache */ + + ulong epoch_link_idx = fd_topo_find_link( topo, "replay_epoch", 0UL ); + FD_TEST( epoch_link_idx!=ULONG_MAX ); + fd_topo_link_t * epoch_link = &topo->links[ epoch_link_idx ]; + fd_wksp_t * epoch_mem = topo->workspaces[ topo->objs[ epoch_link->dcache_obj_id ].wksp_id ].wksp; + ulong epoch_chunk0 = fd_dcache_compact_chunk0( epoch_mem, epoch_link->dcache ); + ulong epoch_wmark = fd_dcache_compact_wmark ( epoch_mem, epoch_link->dcache, epoch_link->mtu ); + ulong epoch_chunk = epoch_chunk0; + ulong epoch_seq = 0UL; + + /* Construct fd_epoch_schedule_t field-by-field rather than type-punning + from the unpacked manifest struct (fd_epoch_schedule_t is packed). */ + fd_epoch_schedule_t schedule_local; + schedule_local.slots_per_epoch = manifest->epoch_schedule_params.slots_per_epoch; + schedule_local.leader_schedule_slot_offset = manifest->epoch_schedule_params.leader_schedule_slot_offset; + schedule_local.warmup = manifest->epoch_schedule_params.warmup; + schedule_local.first_normal_epoch = manifest->epoch_schedule_params.first_normal_epoch; + schedule_local.first_normal_slot = manifest->epoch_schedule_params.first_normal_slot; + fd_epoch_schedule_t const * schedule = &schedule_local; + ulong epoch = fd_slot_to_epoch( schedule, manifest->slot, NULL ); + + ulong epoch_stakes_base = epoch > 0UL ? epoch - 1UL : 0UL; + ulong leader_schedule_epoch = fd_slot_to_leader_schedule_epoch( schedule, manifest->slot ); + ulong cur_idx = epoch - epoch_stakes_base; + FD_TEST( cur_idx < FD_EPOCH_STAKES_LEN ); + + ulong * epoch_dst = fd_chunk_to_laddr( epoch_mem, epoch_chunk ); + ulong epoch_sz = repair_generate_epoch_info_msg( epoch, schedule, &manifest->epoch_stakes[cur_idx], epoch_dst ); + fd_mcache_publish( epoch_link->mcache, epoch_link->depth, epoch_seq, + 4UL, epoch_chunk, epoch_sz, 0UL, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ) ); + epoch_chunk = fd_dcache_compact_next( epoch_chunk, epoch_sz, epoch_chunk0, epoch_wmark ); + epoch_seq++; + FD_LOG_NOTICE(( "sending current epoch stake weights - epoch: %lu", epoch )); + + if( leader_schedule_epoch >= epoch + 1UL ) { + ulong next_idx = epoch + 1UL - epoch_stakes_base; + FD_TEST( next_idx < FD_EPOCH_STAKES_LEN ); + + epoch_dst = fd_chunk_to_laddr( epoch_mem, epoch_chunk ); + epoch_sz = repair_generate_epoch_info_msg( epoch + 1UL, schedule, &manifest->epoch_stakes[next_idx], epoch_dst ); + fd_mcache_publish( epoch_link->mcache, epoch_link->depth, epoch_seq, + 4UL, epoch_chunk, epoch_sz, 0UL, 0UL, fd_frag_meta_ts_comp( fd_tickcount() ) ); + epoch_chunk = fd_dcache_compact_next( epoch_chunk, epoch_sz, epoch_chunk0, epoch_wmark ); + epoch_seq++; + FD_LOG_NOTICE(( "sending next epoch stake weights - epoch: %lu", epoch + 1UL )); + } + (void)epoch_chunk; + + free( manifest ); +} + /* repair_topo is a subset of "src/app/firedancer/topology.c" at commit 0d8386f4f305bb15329813cfe4a40c3594249e96, slightly modified to work as a repair catchup. TODO ideally, one should invoke the firedancer @@ -138,7 +326,6 @@ repair_topo( config_t * config ) { fd_topob_wksp( topo, "fec_sets" ); fd_topob_wksp( topo, "snapin_manif" ); - fd_topob_wksp( topo, "slot_fseqs" ); /* fseqs for marked slots eg. turbine slot */ fd_topob_wksp( topo, "genesi_out" ); /* mock genesi_out for ipecho */ fd_topob_wksp( topo, "tower_out" ); /* mock tower_out for confirmation msgs. Not needed for any topo except eqvoc. */ @@ -200,11 +387,6 @@ repair_topo( config_t * config ) { fd_topo_tile_t * poh_tile = &topo->tiles[ fd_topo_find_tile( topo, "gossip", 0UL ) ]; fd_topob_tile_uses( topo, poh_tile, poh_shred_obj, FD_SHMEM_JOIN_MODE_READ_WRITE ); - /* root_slot is an fseq marking the validator's current Tower root. */ - - fd_topo_obj_t * root_slot_obj = fd_topob_obj( topo, "fseq", "slot_fseqs" ); - FD_TEST( fd_pod_insertf_ulong( topo->props, root_slot_obj->id, "root_slot" ) ); - for( ulong i=0UL; itiles[ fd_topo_find_tile( topo, "shred", i ) ]; fd_topob_tile_uses( topo, shred_tile, poh_shred_obj, FD_SHMEM_JOIN_MODE_READ_ONLY ); @@ -273,25 +455,6 @@ repair_topo( config_t * config ) { /**/ fd_topob_tile_in ( topo, "ipecho", 0UL, "metric_in", "genesi_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); /**/ fd_topob_tile_in ( topo, "repair", 0UL, "metric_in", "tower_out", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED ); - if( 1 ) { - fd_topob_wksp( topo, "scap" ); - - fd_topo_tile_t * scap_tile = fd_topob_tile( topo, "scap", "scap", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 0, 0 ); - - fd_topob_tile_in( topo, "scap", 0UL, "metric_in", "repair_net", 0UL, FD_TOPOB_UNRELIABLE, FD_TOPOB_POLLED ); - for( ulong j=0UL; jprops, rnonce_ss_obj->id, "rnonce_ss" ) ); } - FD_TEST( fd_link_permit_no_producers( topo, "quic_net" ) == quic_tile_cnt ); - FD_TEST( fd_link_permit_no_producers( topo, "poh_shred" ) == 1UL ); - FD_TEST( fd_link_permit_no_producers( topo, "txsend_out" ) == 1UL ); - FD_TEST( fd_link_permit_no_producers( topo, "genesi_out" ) == 1UL ); - FD_TEST( fd_link_permit_no_producers( topo, "tower_out" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "quic_net" ) == quic_tile_cnt ); + FD_TEST( fd_link_permit_no_producers( topo, "poh_shred" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "txsend_out" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "genesi_out" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "tower_out" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "replay_epoch" ) == 1UL ); + FD_TEST( fd_link_permit_no_producers( topo, "snapin_manif" ) == 1UL ); FD_TEST( fd_link_permit_no_consumers( topo, "net_quic" ) == net_tile_cnt ); FD_TEST( fd_link_permit_no_consumers( topo, "repair_out" ) == 1UL ); @@ -506,16 +671,16 @@ print_peer_location_latency( fd_wksp_t * repair_tile_wksp, ctx_t * tile_ctx ) { ulong peer_cnt = sort_peers_by_latency( peers_map, peers_dlist, peers_wlist, peers_arr ); printf("\nPeer Location/Latency Information\n"); - printf( "| %-46s | %-7s | %-8s | %-8s | %-7s | %12s | %s\n", "Pubkey", "Req Cnt", "Req B/s", "Rx B/s", "Rx Rate", "Avg Latency", "Location Info" ); + printf( " | %-46s | %-7s | %-8s | %-8s | %-7s | %-7s | %-12s | %s\n", "Pubkey", "Req Cnt", "Req B/s", "Rx B/s", "Rx Rate", "Avg Latency", "Ewma Latency", "Location Info" ); for( uint i = 0; i < peer_cnt; i++ ) { fd_policy_peer_t const * active = fd_policy_peer_map_ele_query( peers_map, &peers_copy[ i ], NULL, peers_arr ); if( FD_LIKELY( active && active->res_cnt > 0 ) ) { fd_location_info_t * info = fd_location_table_query( location_table, active->ip4, NULL ); - char * geolocation = info ? info->location : "Unknown"; + char * geolocation = info ? info->location : ""; double peer_bps = (double)(active->res_cnt * FD_SHRED_MIN_SZ) / ((double)(active->last_resp_ts - active->first_resp_ts) / 1e9); double req_bps = (double)active->req_cnt * 202 / ((double)(active->last_req_ts - active->first_req_ts) / 1e9); FD_BASE58_ENCODE_32_BYTES( active->key.key, key_b58 ); - printf( "%-5u | %-46s | %-7lu | %-8.2f | %-8.2f | %-7.2f | %10.3fms | %s\n", i, key_b58, active->req_cnt, req_bps, peer_bps, (double)active->res_cnt / (double)active->req_cnt, ((double)active->total_lat / (double)active->res_cnt) / 1e6, geolocation ); + printf( "%-5u | %-46s | %-7lu | %-8.2f | %-8.2f | %-7.2f | %10.3fms | %10.3fms | %s\n", i, key_b58, active->req_cnt, req_bps, peer_bps, (double)active->res_cnt / (double)active->req_cnt, ((double)active->total_lat / (double)active->res_cnt) / 1e6, (double)active->ewma_lat / 1e6, geolocation ); } } printf("\n"); @@ -624,6 +789,12 @@ print_tile_metrics( volatile ulong * shred_metrics, (double)backpressure_ticks/(double)total_ticks*100.0 ); #undef DIFFX fflush( stdout ); + + printf( " Block failed insert: %lu\n", repair_metrics[ MIDX( COUNTER, REPAIR, BLK_FAILED_INSERT ) ] ); + printf( " Block evicted: %lu\n", repair_metrics[ MIDX( COUNTER, REPAIR, BLK_EVICTED ) ] ); + printf( " slot evicted: %lu\n", repair_metrics[ MIDX( GAUGE, REPAIR, SLOT_EVICTED ) ] ); + printf( " slot evicted by: %lu\n", repair_metrics[ MIDX( GAUGE, REPAIR, SLOT_EVICTED_BY ) ] ); + printf( " slot failed insert: %lu\n", repair_metrics[ MIDX( GAUGE, REPAIR, SLOT_FAILED_INSERT ) ] ); for( ulong i=0UL; itopo ); + repair_load_manifest( &config->topo, args->repair.manifest_path ); + /* Access repair workspace memory and metrics */ ulong repair_tile_idx = fd_topo_find_tile( &config->topo, "repair", 0UL ); @@ -806,6 +979,9 @@ repair_cmd_fn_eqvoc( args_t * args, run_firedancer_init( config, 1, 0 ); fd_topo_join_workspaces( &config->topo, FD_SHMEM_JOIN_MODE_READ_WRITE, FD_TOPO_CORE_DUMP_LEVEL_DISABLED ); fd_topo_fill( &config->topo ); + + repair_load_manifest( &config->topo, args->repair.manifest_path ); + ulong repair_tile_idx = fd_topo_find_tile( &config->topo, "repair", 0UL ); fd_topo_tile_t * repair_tile = &config->topo.tiles[ repair_tile_idx ]; volatile ulong * repair_metrics = fd_metrics_tile( repair_tile->metrics ); @@ -940,6 +1116,8 @@ repair_cmd_fn_inflight( args_t * args, for( ;; ) { fd_inflights_print( inflights->outstanding_dl, inflight_pool ); + printf("popped count: %lu\n", inflights->popped_cnt); + fd_inflights_print( inflights->popped_dl, inflight_pool ); sleep( 1 ); } } @@ -1064,6 +1242,59 @@ repair_cmd_fn_waterfall( args_t * args, } } +#define PEERS_DISPLAY_MAX 20 + +static void +print_peer_dlist( fd_policy_peer_dlist_t * dlist, + fd_policy_peer_t * pool, + fd_policy_peer_dlist_iter_t cursor, + char const * label ) { + ulong cnt = 0; + for( fd_policy_peer_dlist_iter_t it = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + !fd_policy_peer_dlist_iter_done( it, dlist, pool ); + it = fd_policy_peer_dlist_iter_fwd_next( it, dlist, pool ) ) cnt++; + + printf( "%s (%lu peers)\n", label, cnt ); + if( !cnt || fd_policy_peer_dlist_iter_done( cursor, dlist, pool ) ) { + printf( " (empty or iterator not initialized)\n\n" ); + return; + } + + printf( " | %-8s | %-12s | %-12s | %-8s | %-8s\n", + "Idx", "Pubkey", "Ewma Lat", "Avg Lat", "Req/Res" ); + printf( "-----+----------+--------------+--------------+----------+---------\n" ); + + fd_policy_peer_dlist_iter_t it = cursor; + for( ulong i = 0; i < PEERS_DISPLAY_MAX && i < cnt; i++ ) { + fd_policy_peer_t * peer = fd_policy_peer_dlist_iter_ele( it, dlist, pool ); + + FD_BASE58_ENCODE_32_BYTES( peer->key.key, b58 ); + char pubkey_short[13]; + fd_cstr_fini( fd_cstr_append_text( fd_cstr_init( pubkey_short ), b58, 12 ) ); + + double avg_lat_ms = peer->res_cnt ? ((double)peer->total_lat / (double)peer->res_cnt) / 1e6 : 0.0; + double ewma_lat_ms = (double)peer->ewma_lat / 1e6; + + printf( " %s%c%s | %-8lu | %-12s | %9.3fms | %9.3fms | %lu/%lu\n", + i == 0 ? "\033[1;33m" : "", + i == 0 ? '>' : ' ', + i == 0 ? "\033[0m" : "", + fd_policy_peer_pool_idx( pool, peer ), + pubkey_short, + ewma_lat_ms, + avg_lat_ms, + peer->req_cnt, + peer->res_cnt ); + + it = fd_policy_peer_dlist_iter_fwd_next( it, dlist, pool ); + if( fd_policy_peer_dlist_iter_done( it, dlist, pool ) ) { + it = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + } + } + if( cnt > PEERS_DISPLAY_MAX ) printf( " ... (%lu more)\n", cnt - PEERS_DISPLAY_MAX ); + printf( "\n" ); +} + static void repair_cmd_fn_peers( args_t * args, config_t * config ) { @@ -1073,30 +1304,30 @@ repair_cmd_fn_peers( args_t * args, fd_policy_t * policy = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, repair_ctx->policy ) ); - fd_policy_peer_dlist_t * best_dlist = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.fast ) ); - fd_policy_peer_dlist_t * worst_dlist = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.slow ) ); - fd_policy_peer_t * pool = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.pool ) ); - - printf("FAST REPAIR PEERS (latency < 80ms)\n"); - int i = 1; - for( fd_policy_peer_dlist_iter_t iter = fd_policy_peer_dlist_iter_fwd_init( best_dlist, pool ); - !fd_policy_peer_dlist_iter_done( iter, best_dlist, pool ); - iter = fd_policy_peer_dlist_iter_fwd_next( iter, best_dlist, pool ) ) { - fd_policy_peer_t * peer = fd_policy_peer_dlist_iter_ele( iter, best_dlist, pool ); - FD_BASE58_ENCODE_32_BYTES( peer->key.key, p ); - printf(" %d. %s\n", i, p ); - i++; - } + fd_policy_peer_dlist_t * fast_dlist = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.fast ) ); + fd_policy_peer_dlist_t * slow_dlist = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.slow ) ); + fd_policy_peer_t * pool = fd_wksp_laddr( repair_wksp->wksp, fd_wksp_gaddr_fast( repair_ctx->wksp, policy->peers.pool ) ); + + long last_print = 0; + for( ;; ) { + long now = fd_log_wallclock(); + if( FD_UNLIKELY( now - last_print > 1e9L ) ) { + last_print = now; + printf( "\033[2J\033[H" ); + + char fast_label[64]; + char slow_label[64]; + snprintf( fast_label, sizeof(fast_label), "FAST PEERS (ewma < %ldms)", (long)(FD_POLICY_LATENCY_THRESH / 1e6L) ); + snprintf( slow_label, sizeof(slow_label), "SLOW PEERS (ewma >= %ldms or no responses)", (long)(FD_POLICY_LATENCY_THRESH / 1e6L) ); + print_peer_dlist( fast_dlist, pool, policy->peers.select.fast_iter, fast_label ); + print_peer_dlist( slow_dlist, pool, policy->peers.select.slow_iter, slow_label ); + + printf( "select cnt: %u / %u (fast per slow)\n", policy->peers.select.cnt, FD_POLICY_FAST_PER_SLOW ); + printf( "pool used: %lu / %lu\n", fd_policy_peer_pool_used( pool ), fd_policy_peer_pool_max( pool ) ); + + fflush( stdout ); + } - printf("SLOW REPAIR PEERS (latency > 80ms)\n"); - i = 1; - for( fd_policy_peer_dlist_iter_t iter = fd_policy_peer_dlist_iter_fwd_init( worst_dlist, pool ); - !fd_policy_peer_dlist_iter_done( iter, worst_dlist, pool ); - iter = fd_policy_peer_dlist_iter_fwd_next( iter, worst_dlist, pool ) ) { - fd_policy_peer_t * peer = fd_policy_peer_dlist_iter_ele( iter, worst_dlist, pool ); - FD_BASE58_ENCODE_32_BYTES( peer->key.key, p ); - printf(" %d. %s\n", i, p); - i++; } } diff --git a/src/disco/store/fd_store.c b/src/disco/store/fd_store.c index 55fa0c353f6..d07e4ab614a 100644 --- a/src/disco/store/fd_store.c +++ b/src/disco/store/fd_store.c @@ -203,7 +203,6 @@ fd_store_insert( fd_store_t * store, if( FD_UNLIKELY( !fec ) ) FD_LOG_CRIT(( "fd_store_pool_acquire failed" )); fec->key.merkle_root = *merkle_root; fec->key.part_idx = part_idx; - fec->cmr = (fd_hash_t){ 0 }; fec->next = null; fec->data_sz = 0UL; diff --git a/src/disco/store/fd_store.h b/src/disco/store/fd_store.h index 4c120e5f90f..c84c2dadb96 100644 --- a/src/disco/store/fd_store.h +++ b/src/disco/store/fd_store.h @@ -176,7 +176,6 @@ typedef struct fd_store_key fd_store_key_t; struct __attribute__((aligned(FD_STORE_ALIGN))) fd_store_fec { fd_store_key_t key; /* map key, merkle root of the FEC set + a partition index */ ulong next; /* reserved for internal use by fd_pool, fd_map_chain */ - fd_hash_t cmr; /* parent's map key, chained merkle root of the FEC set */ uint shred_offs[FD_FEC_SHRED_CNT]; /* shred_offs[ i ] is the total size of data shreds [0, i], up to FD_FEC_SHRED_CNT */ ulong data_sz; /* sz of the FEC set payload, guaranteed <= store->fec_data_max */ ulong data_gaddr; /* wksp gaddr of this element's data buffer */ diff --git a/src/discof/repair/Local.mk b/src/discof/repair/Local.mk index 829fbea71c2..60f2a54f5c4 100644 --- a/src/discof/repair/Local.mk +++ b/src/discof/repair/Local.mk @@ -1,6 +1,8 @@ ifdef FD_HAS_HOSTED $(call add-objs,fd_repair_tile,fd_discof) endif +$(call add-objs,fd_reqlim,fd_discof) +$(call add-hdrs,fd_reqlim.h) $(call add-objs,fd_policy,fd_discof) $(call add-hdrs,fd_policy.h) $(call add-objs,fd_inflight,fd_discof) diff --git a/src/discof/repair/fd_inflight.c b/src/discof/repair/fd_inflight.c index 921bf3ac319..ba96acf29f4 100644 --- a/src/discof/repair/fd_inflight.c +++ b/src/discof/repair/fd_inflight.c @@ -86,7 +86,7 @@ fd_inflights_request_insert( fd_inflights_t * table, } long -fd_inflights_request_remove( fd_inflights_t * table, +fd_inflights_request_match( fd_inflights_t * table, ulong nonce, ulong slot, ulong shred_idx, diff --git a/src/discof/repair/fd_inflight.h b/src/discof/repair/fd_inflight.h index caec59eabdf..889c14c05a6 100644 --- a/src/discof/repair/fd_inflight.h +++ b/src/discof/repair/fd_inflight.h @@ -35,7 +35,6 @@ struct __attribute__((aligned(128UL))) fd_inflight { long timestamp_ns; /* timestamp when request was created (nanoseconds) */ fd_pubkey_t pubkey; /* public key of the peer */ - /* Reserved for DLL eviction */ ulong prevll; /* pool index of previous element in DLL */ ulong nextll; /* pool index of next element in DLL */ @@ -117,14 +116,18 @@ fd_inflights_join( void * shmem ); void fd_inflights_request_insert( fd_inflights_t * table, ulong nonce, fd_pubkey_t const * pubkey, ulong slot, ulong shred_idx ); +/* Matches a shred response to an inflight entry. Returns the RTT in + nanoseconds if a match is found, 0 otherwise. This will remove all + entries with the same (nonce, slot, shred_idx) tuple from both the + outstanding and popped maps, and credits the response to the oldest + entry. */ long -fd_inflights_request_remove( fd_inflights_t * table, ulong nonce, ulong slot, ulong shred_idx, fd_pubkey_t * peer_out ); +fd_inflights_request_match( fd_inflights_t * table, ulong nonce, ulong slot, ulong shred_idx, fd_pubkey_t * peer_out ); /* Important! Caller must guarantee that the request list is not empty. This function cannot fail and will always try to populate the output parameters. Typical use should only call this after fd_inflights_should_drain returns true. */ - void fd_inflights_request_pop( fd_inflights_t * table, ulong * nonce_out, ulong * slot_out, ulong * shred_idx_out ); @@ -134,7 +137,7 @@ fd_inflights_should_drain( fd_inflights_t * table, long now ) { if( FD_UNLIKELY( fd_inflight_dlist_is_empty( table->outstanding_dl, table->pool ) ) ) return 0; fd_inflight_t * inflight_req = fd_inflight_dlist_ele_peek_head( table->outstanding_dl, table->pool ); - if( FD_UNLIKELY( inflight_req->timestamp_ns + FD_POLICY_DEDUP_TIMEOUT < now ) ) return 1; + if( FD_UNLIKELY( inflight_req->timestamp_ns + FD_REQLIM_DEDUP_TIMEOUT < now ) ) return 1; return 0; } diff --git a/src/discof/repair/fd_policy.c b/src/discof/repair/fd_policy.c index 743caeb7c0c..8e2830ed34a 100644 --- a/src/discof/repair/fd_policy.c +++ b/src/discof/repair/fd_policy.c @@ -7,7 +7,7 @@ #define MS_PER_TICK (400.0 / TARGET_TICK_PER_SLOT) void * -fd_policy_new( void * shmem, ulong dedup_max, ulong peer_max, ulong seed, fd_rnonce_ss_t const * rnonce_ss ) { +fd_policy_new( void * shmem, ulong peer_max, ulong seed, fd_rnonce_ss_t const * rnonce_ss ) { if( FD_UNLIKELY( !shmem ) ) { FD_LOG_WARNING(( "NULL mem" )); @@ -19,24 +19,18 @@ fd_policy_new( void * shmem, ulong dedup_max, ulong peer_max, ulong seed, fd_rno return NULL; } - ulong footprint = fd_policy_footprint( dedup_max, peer_max ); + ulong footprint = fd_policy_footprint( peer_max ); fd_memset( shmem, 0, footprint ); ulong peer_chain_cnt = fd_policy_peer_map_chain_cnt_est( peer_max ); FD_SCRATCH_ALLOC_INIT( l, shmem ); fd_policy_t * policy = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_align(), sizeof(fd_policy_t) ); - void * dedup_map = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_dedup_map_align(), fd_policy_dedup_map_footprint ( dedup_max ) ); - void * dedup_pool = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_dedup_pool_align(), fd_policy_dedup_pool_footprint( dedup_max ) ); - void * dedup_lru = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_dedup_lru_align(), fd_policy_dedup_lru_footprint() ); void * peers = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_peer_map_align(), fd_policy_peer_map_footprint( peer_chain_cnt ) ); void * peers_pool = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_peer_pool_align(), fd_policy_peer_pool_footprint( peer_max ) ); void * peers_fast = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_peer_dlist_align(), fd_policy_peer_dlist_footprint() ); void * peers_slow = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_peer_dlist_align(), fd_policy_peer_dlist_footprint() ); FD_TEST( FD_SCRATCH_ALLOC_FINI( l, fd_policy_align() ) == (ulong)shmem + footprint ); - policy->dedup.map = fd_policy_dedup_map_new ( dedup_map, dedup_max, seed ); - policy->dedup.pool = fd_policy_dedup_pool_new( dedup_pool, dedup_max ); - policy->dedup.lru = fd_policy_dedup_lru_new ( dedup_lru ); policy->peers.map = fd_policy_peer_map_new ( peers, peer_chain_cnt, seed ); policy->peers.pool = fd_policy_peer_pool_new ( peers_pool, peer_max ); policy->peers.fast = fd_policy_peer_dlist_new( peers_fast ); @@ -67,16 +61,14 @@ fd_policy_join( void * shpolicy ) { return NULL; } - policy->dedup.map = fd_policy_dedup_map_join ( policy->dedup.map ); - policy->dedup.pool = fd_policy_dedup_pool_join( policy->dedup.pool ); - policy->dedup.lru = fd_policy_dedup_lru_join ( policy->dedup.lru ); policy->peers.map = fd_policy_peer_map_join ( policy->peers.map ); policy->peers.pool = fd_policy_peer_pool_join ( policy->peers.pool ); policy->peers.fast = fd_policy_peer_dlist_join( policy->peers.fast ); policy->peers.slow = fd_policy_peer_dlist_join( policy->peers.slow ); - policy->peers.select.iter = fd_policy_peer_dlist_iter_fwd_init( policy->peers.slow, policy->peers.pool ); - policy->peers.select.stage = 0; + policy->peers.select.fast_iter = fd_policy_peer_dlist_iter_fwd_init( policy->peers.fast, policy->peers.pool ); + policy->peers.select.slow_iter = fd_policy_peer_dlist_iter_fwd_init( policy->peers.slow, policy->peers.pool ); + policy->peers.select.cnt = 0; return policy; } @@ -108,37 +100,6 @@ fd_policy_delete( void * policy ) { return policy; } -/* dedup_evict evicts the first element returned by the map iterator. */ - -static void -dedup_evict( fd_policy_t * policy ) { - fd_policy_dedup_ele_t * ele = fd_policy_dedup_lru_ele_pop_head( policy->dedup.lru, policy->dedup.pool ); - fd_policy_dedup_map_ele_remove( policy->dedup.map, &ele->key, NULL, policy->dedup.pool ); - fd_policy_dedup_pool_ele_release( policy->dedup.pool, ele ); -} - -/* dedup_next returns 1 if key is deduped, 0 otherwise. */ -static int -dedup_next( fd_policy_t * policy, ulong key, long now ) { - fd_policy_dedup_t * dedup = &policy->dedup; - fd_policy_dedup_ele_t * ele = fd_policy_dedup_map_ele_query( dedup->map, &key, NULL, dedup->pool ); - if( FD_UNLIKELY( !ele ) ) { - if( FD_UNLIKELY( !fd_policy_dedup_pool_free( dedup->pool ) ) ) dedup_evict( policy ); - ele = fd_policy_dedup_pool_ele_acquire( dedup->pool ); - ele->key = key; - ele->req_ts = 0; - fd_policy_dedup_map_ele_insert ( dedup->map, ele, dedup->pool ); - fd_policy_dedup_lru_ele_push_tail( dedup->lru, ele, dedup->pool ); - } - if( FD_LIKELY( now < ele->req_ts + (long)FD_POLICY_DEDUP_TIMEOUT ) ) { - fd_policy_dedup_lru_ele_remove( dedup->lru, ele, dedup->pool ); - fd_policy_dedup_lru_ele_push_tail( dedup->lru, ele, dedup->pool ); - return 1; - } - ele->req_ts = now; - return 0; -} - static ulong ts_ms( long wallclock ) { return (ulong)wallclock / (ulong)1e6; } @@ -159,28 +120,70 @@ passes_throttle_threshold( fd_policy_t * policy, fd_forest_blk_t * ele ) { return 0; } +static inline fd_policy_peer_dlist_iter_t +peer_iter_advance( fd_policy_peer_dlist_iter_t iter, + fd_policy_peer_dlist_t * dlist, + fd_policy_peer_t * pool ) { + iter = fd_policy_peer_dlist_iter_fwd_next( iter, dlist, pool ); + if( FD_UNLIKELY( fd_policy_peer_dlist_iter_done( iter, dlist, pool ) ) ) { + iter = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + } + return iter; +} + fd_pubkey_t const * fd_policy_peer_select( fd_policy_t * policy ) { - fd_policy_peer_dlist_t * best_dlist = policy->peers.fast; - fd_policy_peer_dlist_t * worst_dlist = policy->peers.slow; - fd_policy_peer_t * pool = policy->peers.pool; + fd_policy_peer_dlist_t * fast = policy->peers.fast; + fd_policy_peer_dlist_t * slow = policy->peers.slow; + fd_policy_peer_t * pool = policy->peers.pool; - if( FD_UNLIKELY( fd_policy_peer_pool_used( policy->peers.pool ) == 0 ) ) return NULL; + if( FD_UNLIKELY( fd_policy_peer_pool_used( pool ) == 0 ) ) return NULL; - fd_policy_peer_dlist_t * dlist = bucket_stages[policy->peers.select.stage] == FD_POLICY_LATENCY_FAST ? best_dlist : worst_dlist; + /* reinit stale iterators. happens when peers are inserted into a + previously-empty list after the iterator was initialized. */ + int fast_empty = fd_policy_peer_dlist_iter_done( fd_policy_peer_dlist_iter_fwd_init( fast, pool ), fast, pool ); + int slow_empty = fd_policy_peer_dlist_iter_done( fd_policy_peer_dlist_iter_fwd_init( slow, pool ), slow, pool ); - while( FD_UNLIKELY( fd_policy_peer_dlist_iter_done( policy->peers.select.iter, dlist, pool ) ) ) { - policy->peers.select.stage = (policy->peers.select.stage + 1) % (sizeof(bucket_stages) / sizeof(uint)); - dlist = bucket_stages[policy->peers.select.stage] == FD_POLICY_LATENCY_FAST ? best_dlist : worst_dlist; - policy->peers.select.iter = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + if( FD_UNLIKELY( !fast_empty && fd_policy_peer_dlist_iter_done( policy->peers.select.fast_iter, fast, pool ) ) ) { + policy->peers.select.fast_iter = fd_policy_peer_dlist_iter_fwd_init( fast, pool ); } - fd_policy_peer_t * select = fd_policy_peer_dlist_iter_ele( policy->peers.select.iter, dlist, pool ); - policy->peers.select.iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.iter, dlist, pool ); + if( FD_UNLIKELY( !slow_empty && fd_policy_peer_dlist_iter_done( policy->peers.select.slow_iter, slow, pool ) ) ) { + policy->peers.select.slow_iter = fd_policy_peer_dlist_iter_fwd_init( slow, pool ); + } + + fd_policy_peer_t * select; + + /* select will be set to current iterator status. Then iterator should + be advanced for the following peer_select call. */ + + if( FD_UNLIKELY( fast_empty ) ) { + select = fd_policy_peer_dlist_iter_ele( policy->peers.select.slow_iter, slow, pool ); + policy->peers.select.slow_iter = peer_iter_advance( policy->peers.select.slow_iter, slow, pool ); + return &select->key; + } + + if( FD_UNLIKELY( slow_empty ) ) { + select = fd_policy_peer_dlist_iter_ele( policy->peers.select.fast_iter, fast, pool ); + policy->peers.select.fast_iter = peer_iter_advance( policy->peers.select.fast_iter, fast, pool ); + return &select->key; + } + + /* interleave FD_POLICY_FAST_PER_SLOW fast, 1 slow. */ + if( FD_LIKELY( policy->peers.select.cnt < FD_POLICY_FAST_PER_SLOW ) ) { + select = fd_policy_peer_dlist_iter_ele( policy->peers.select.fast_iter, fast, pool ); + policy->peers.select.fast_iter = peer_iter_advance( policy->peers.select.fast_iter, fast, pool ); + policy->peers.select.cnt++; + return &select->key; + } + + select = fd_policy_peer_dlist_iter_ele( policy->peers.select.slow_iter, slow, pool ); + policy->peers.select.slow_iter = peer_iter_advance( policy->peers.select.slow_iter, slow, pool ); + policy->peers.select.cnt = 0; return &select->key; } fd_repair_msg_t const * -fd_policy_next( fd_policy_t * policy, fd_forest_t * forest, fd_repair_t * repair, long now, ulong highest_known_slot, int * charge_busy ) { +fd_policy_next( fd_policy_t * policy, fd_reqlim_t * dedup, fd_forest_t * forest, fd_repair_t * repair, long now, ulong highest_known_slot, int * charge_busy ) { fd_forest_blk_t * pool = fd_forest_pool( forest ); fd_forest_subtlist_t * subtlist = fd_forest_subtlist( forest ); *charge_busy = 0; @@ -196,8 +199,8 @@ fd_policy_next( fd_policy_t * policy, fd_forest_t * forest, fd_repair_t * repair iter = fd_forest_subtlist_iter_fwd_next( iter, subtlist, pool ) ) { *charge_busy = 1; fd_forest_blk_t * orphan = fd_forest_subtlist_iter_ele( iter, subtlist, pool ); - ulong key = fd_policy_dedup_key( FD_REPAIR_KIND_ORPHAN, orphan->slot, UINT_MAX ); - if( FD_UNLIKELY( !dedup_next( policy, key, now ) ) ) { + ulong key = fd_reqlim_key( FD_REPAIR_KIND_ORPHAN, orphan->slot, UINT_MAX ); + if( FD_UNLIKELY( !fd_reqlim_next( dedup, key, now ) ) ) { uint nonce = fd_rnonce_ss_compute( policy->rnonce_ss, 0, orphan->slot, 0U, now ); out = fd_repair_orphan( repair, fd_policy_peer_select( policy ), now_ms, nonce, orphan->slot ); return out; @@ -251,11 +254,15 @@ fd_policy_next( fd_policy_t * policy, fd_forest_t * forest, fd_repair_t * repair if( FD_UNLIKELY( iter->shred_idx == UINT_MAX ) ) { // We'll never know the the highest shred for the current turbine slot, so there's no point in requesting it. - if( FD_UNLIKELY( ele->slot < highest_known_slot && !dedup_next( policy, fd_policy_dedup_key( FD_REPAIR_KIND_HIGHEST_SHRED, ele->slot, UINT_MAX ), now ) ) ) { + if( FD_UNLIKELY( ele->slot < highest_known_slot && !fd_reqlim_next( dedup, fd_reqlim_key( FD_REPAIR_KIND_HIGHEST_SHRED, ele->slot, UINT_MAX ), now ) ) ) { uint nonce = fd_rnonce_ss_compute( policy->rnonce_ss, 0, ele->slot, 0U, now ); out = fd_repair_highest_shred( repair, fd_policy_peer_select( policy ), now_ms, nonce, ele->slot, 0 ); } } else { + /* Regular repair requests are not deduped. Any potential regular + shred request that will be made needs to be handled at the repair + tile level to allow repair tile to re-request the same shred if + it gets deduped. */ uint nonce = fd_rnonce_ss_compute( policy->rnonce_ss, 1, ele->slot, iter->shred_idx, now ); out = fd_repair_shred( repair, fd_policy_peer_select( policy ), now_ms, nonce, ele->slot, iter->shred_idx ); if( FD_UNLIKELY( ele->first_req_ts == 0 ) ) ele->first_req_ts = fd_tickcount(); @@ -280,7 +287,9 @@ fd_policy_peer_upsert( fd_policy_t * policy, fd_pubkey_t const * key, fd_ip4_por peer->first_resp_ts = 0; peer->last_resp_ts = 0; peer->total_lat = 0; + peer->ewma_lat = 0; peer->stake = 0; + peer->unanswered = 0; peer->ping = 0; fd_policy_peer_map_ele_insert( peer_map, peer, pool ); @@ -310,13 +319,18 @@ fd_policy_peer_remove( fd_policy_t * policy, fd_pubkey_t const * key ) { fd_policy_peer_t * peer = fd_policy_peer_map_ele_query( policy->peers.map, key, NULL, pool ); if( FD_UNLIKELY( !peer ) ) return 0; - if( FD_UNLIKELY( policy->peers.select.iter == fd_policy_peer_pool_idx( pool, peer ) ) ) { - /* In general removal during iteration is safe, except when the iterator is on the peer to be removed. */ - fd_policy_peer_dlist_t * dlist = bucket_stages[policy->peers.select.stage] == FD_POLICY_LATENCY_FAST ? policy->peers.fast : policy->peers.slow; - policy->peers.select.iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.iter, dlist, pool ); + ulong peer_idx = fd_policy_peer_pool_idx( pool, peer ); + fd_policy_peer_dlist_t * bucket = fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ); + + /* Advance iterators past the peer being removed while the dlist links + are still intact, so iter_fwd_next can follow the forward pointer. */ + if( FD_UNLIKELY( policy->peers.select.fast_iter == peer_idx ) ) { + policy->peers.select.fast_iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.fast_iter, bucket, pool ); + } + if( FD_UNLIKELY( policy->peers.select.slow_iter == peer_idx ) ) { + policy->peers.select.slow_iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.slow_iter, bucket, pool ); } - fd_policy_peer_dlist_t * bucket = fd_policy_peer_latency_bucket( policy, peer->total_lat, peer->res_cnt ); fd_policy_peer_dlist_ele_remove( bucket, peer, pool ); fd_policy_peer_map_ele_remove ( policy->peers.map, key, NULL, pool ); fd_policy_peer_pool_ele_release( pool, peer ); @@ -328,6 +342,7 @@ fd_policy_peer_request_update( fd_policy_t * policy, fd_pubkey_t const * to ) { fd_policy_peer_t * active = fd_policy_peer_query( policy, to ); if( FD_LIKELY( active ) ) { active->req_cnt++; + active->unanswered++; active->last_req_ts = fd_tickcount(); if( FD_UNLIKELY( active->first_req_ts == 0 ) ) active->first_req_ts = active->last_req_ts; } @@ -338,14 +353,26 @@ fd_policy_peer_response_update( fd_policy_t * policy, fd_pubkey_t const * to, lo fd_policy_peer_t * peer = fd_policy_peer_query( policy, to ); if( FD_LIKELY( peer ) ) { long now = fd_tickcount(); - fd_policy_peer_dlist_t * prev_bucket = fd_policy_peer_latency_bucket( policy, peer->total_lat, peer->res_cnt ); + fd_policy_peer_dlist_t * prev_bucket = fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ); peer->res_cnt++; + peer->unanswered = 0; if( FD_UNLIKELY( peer->first_resp_ts == 0 ) ) peer->first_resp_ts = now; peer->last_resp_ts = now; peer->total_lat += rtt; - fd_policy_peer_dlist_t * new_bucket = fd_policy_peer_latency_bucket( policy, peer->total_lat, peer->res_cnt ); + if( FD_UNLIKELY( peer->res_cnt == 1 ) ) { + peer->ewma_lat = rtt; + } else { + peer->ewma_lat = peer->ewma_lat - peer->ewma_lat / (long)FD_POLICY_EWMA_ALPHA_DENOM + + rtt / (long)FD_POLICY_EWMA_ALPHA_DENOM; + } + fd_policy_peer_dlist_t * new_bucket = fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ); if( prev_bucket != new_bucket ) { + /* Advance stale iterators */ + ulong peer_idx = fd_policy_peer_pool_idx( policy->peers.pool, peer ); + if( FD_UNLIKELY( policy->peers.select.fast_iter == peer_idx ) ) policy->peers.select.fast_iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.fast_iter, policy->peers.fast, policy->peers.pool ); + if( FD_UNLIKELY( policy->peers.select.slow_iter == peer_idx ) ) policy->peers.select.slow_iter = fd_policy_peer_dlist_iter_fwd_next( policy->peers.select.slow_iter, policy->peers.slow, policy->peers.pool ); + fd_policy_peer_dlist_ele_remove ( prev_bucket, peer, policy->peers.pool ); fd_policy_peer_dlist_ele_push_tail( new_bucket, peer, policy->peers.pool ); } diff --git a/src/discof/repair/fd_policy.h b/src/discof/repair/fd_policy.h index e855b43b4a2..4ef09bb8f0a 100644 --- a/src/discof/repair/fd_policy.h +++ b/src/discof/repair/fd_policy.h @@ -20,64 +20,9 @@ #include "../forest/fd_forest.h" #include "../../util/net/fd_net_headers.h" #include "fd_repair.h" +#include "fd_reqlim.h" #include "../../disco/shred/fd_rnonce_ss.h" -/* fd_policy_dedup implements a dedup cache for already sent Repair - requests. It is backed by a map and linked list, in which the least - recently used (oldest Repair request) in the map is evicted when the - map is full. */ - -typedef struct fd_policy_dedup fd_policy_dedup_t; /* forward decl */ - -/* fd_policy_dedup_ele describes an element in the dedup cache. The key - compactly encodes an fd_repair_req_t. - - | kind (2 bits) | slot (32 bits) | shred_idx (15 bits) | - | 0x0 (SHRED) | slot | shred_idx | - | 0x1 (HIGHEST_SHRED) | slot | >=shred_idx | - | 0x2 (ORPHAN) | orphan slot | N/A | - - Note the common header (sig, from, to, ts, nonce) is not included. */ - -struct fd_policy_dedup_ele { - ulong key; /* compact encoding of fd_repair_req_t detailed above */ - ulong prev; /* reserved by lru */ - ulong next; - ulong hash; /* reserved by pool and map_chain */ - long req_ts; /* timestamp when the request was sent */ -}; -typedef struct fd_policy_dedup_ele fd_policy_dedup_ele_t; - -FD_FN_CONST static inline ulong -fd_policy_dedup_key( uint kind, ulong slot, uint shred_idx ) { - slot = fd_ulong_extract_lsb( (ulong)slot, 32 ); - return (ulong)kind << 62 | slot << 30 | shred_idx << 15; -} - -FD_FN_CONST static inline uint fd_policy_dedup_key_kind ( ulong key ) { return (uint)fd_ulong_extract( key, 62, 63 ); } -FD_FN_CONST static inline uint fd_policy_dedup_key_shred_idx( ulong key ) { return (uint)fd_ulong_extract( key, 15, 29 ); } - -#define POOL_NAME fd_policy_dedup_pool -#define POOL_T fd_policy_dedup_ele_t -#define POOL_NEXT hash -#include "../../util/tmpl/fd_pool.c" - -#define MAP_NAME fd_policy_dedup_map -#define MAP_ELE_T fd_policy_dedup_ele_t -#define MAP_NEXT hash -#include "../../util/tmpl/fd_map_chain.c" - -#define DLIST_NAME fd_policy_dedup_lru -#define DLIST_ELE_T fd_policy_dedup_ele_t -#define DLIST_NEXT next -#define DLIST_PREV prev -#include "../../util/tmpl/fd_dlist.c" -struct fd_policy_dedup { - fd_policy_dedup_map_t * map; /* map of dedup elements */ - fd_policy_dedup_ele_t * pool; /* memory pool of dedup elements */ - fd_policy_dedup_lru_t * lru; /* singly-linked list of dedup elements by insertion order */ -}; - /* fd_policy_peer_t describes a peer validator that serves repairs. Peers are discovered through gossip, via a "ContactInfo" message that shares the validator's ip and repair server port. */ @@ -103,9 +48,11 @@ struct fd_policy_peer { long last_resp_ts; long total_lat; /* total RTT over all responses in ns */ + long ewma_lat; /* exponential weighted moving average of RTT in ns */ ulong stake; - uint ping; /* whether this peer currently has a ping in our sign queue */ + uint unanswered; /* requests sent since last response received */ + uint ping; /* whether this peer currently has a ping in our sign queue */ }; typedef struct fd_policy_peer fd_policy_peer_t; @@ -131,41 +78,24 @@ typedef struct fd_policy_peer fd_policy_peer_t; struct fd_policy_peers { fd_policy_peer_t * pool; /* memory pool of peers */ - fd_policy_peer_dlist_t * fast; /* [0, FD_POLICY_LATENCY_THRESH] ms latency group FD_POLICY_LATENCY_FAST */ - fd_policy_peer_dlist_t * slow; /* (FD_POLICY_LATENCY_THRESH, inf) ms latency group FD_POLICY_LATENCY_SLOW */ + fd_policy_peer_dlist_t * fast; /* peers with ewma RTT <= FD_POLICY_LATENCY_THRESH */ + fd_policy_peer_dlist_t * slow; /* peers with ewma RTT > FD_POLICY_LATENCY_THRESH or no RTT measured */ fd_policy_peer_map_t * map; /* map keyed by pubkey to peer data */ struct { - uint stage; /* < sizeof(bucket_stages) */ - fd_policy_peer_dlist_iter_t iter; /* round-robin index of next peer */ + uint cnt; /* fast selections since last slow, wraps at FD_POLICY_FAST_PER_SLOW */ + fd_policy_peer_dlist_iter_t fast_iter; /* round-robin iterator into fast list */ + fd_policy_peer_dlist_iter_t slow_iter; /* round-robin iterator into slow list */ } select; }; typedef struct fd_policy_peers fd_policy_peers_t; -#define FD_POLICY_LATENCY_FAST 1 -#define FD_POLICY_LATENCY_SLOW 3 - /* Policy parameters start */ -#define FD_POLICY_LATENCY_THRESH 80e6L /* less than this is a BEST peer, otherwise a WORST peer */ -#define FD_POLICY_DEDUP_TIMEOUT 80e6L /* how long wait to request the same shred */ - -/* Round robins through ALL the worst peers once, then round robins - through ALL the best peers once, then round robins through ALL the - best peers again, etc. All peers are initially added to the worst - bucket, and moved once round trip times have been recorded. */ - -static const uint bucket_stages[7] = { - FD_POLICY_LATENCY_SLOW, /* do a cycle through worst peers 1/7 times to see if any improvements are made */ - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, - FD_POLICY_LATENCY_FAST, -}; +#define FD_POLICY_LATENCY_THRESH 100e6L /* less than this is a BEST peer, otherwise a WORST peer */ +#define FD_POLICY_FAST_PER_SLOW 6U /* pick 6 fast peers per 1 slow peer */ +#define FD_POLICY_EWMA_ALPHA_DENOM 8UL /* EWMA weight = 1/DENOM, i.e. ewma = 7/8*old + 1/8*sample */ /* Policy parameters end */ struct fd_policy { - fd_policy_dedup_t dedup; /* dedup cache of already sent requests */ fd_policy_peers_t peers; /* repair peers (strategy & data) */ long tsmax; /* maximum time for an iteration before resetting the DFS to root */ long tsref; /* reference timestamp for resetting DFS */ @@ -188,7 +118,7 @@ fd_policy_align( void ) { } FD_FN_CONST static inline ulong -fd_policy_footprint( ulong dedup_max, ulong peer_max ) { +fd_policy_footprint( ulong peer_max ) { ulong peer_chain_cnt = fd_policy_peer_map_chain_cnt_est( peer_max ); return FD_LAYOUT_FINI( FD_LAYOUT_APPEND( @@ -196,14 +126,8 @@ fd_policy_footprint( ulong dedup_max, ulong peer_max ) { FD_LAYOUT_APPEND( FD_LAYOUT_APPEND( FD_LAYOUT_APPEND( - FD_LAYOUT_APPEND( - FD_LAYOUT_APPEND( - FD_LAYOUT_APPEND( FD_LAYOUT_INIT, fd_policy_align(), sizeof(fd_policy_t) ), - fd_policy_dedup_map_align(), fd_policy_dedup_map_footprint ( dedup_max ) ), - fd_policy_dedup_pool_align(), fd_policy_dedup_pool_footprint( dedup_max ) ), - fd_policy_dedup_lru_align(), fd_policy_dedup_lru_footprint() ), fd_policy_peer_map_align(), fd_policy_peer_map_footprint ( peer_chain_cnt ) ), fd_policy_peer_pool_align(), fd_policy_peer_pool_footprint( peer_max ) ), fd_policy_peer_dlist_align(), fd_policy_peer_dlist_footprint() ), @@ -218,7 +142,7 @@ fd_policy_footprint( ulong dedup_max, ulong peer_max ) { returns. */ void * -fd_policy_new( void * shmem, ulong dedup_max, ulong peer_max, ulong seed, fd_rnonce_ss_t const * rnonce_ss ); +fd_policy_new( void * shmem, ulong peer_max, ulong seed, fd_rnonce_ss_t const * rnonce_ss ); /* fd_policy_join joins the caller to the policy. policy points to the first byte of the memory region backing the policy in the caller's @@ -245,10 +169,14 @@ void * fd_policy_delete( void * policy ); /* fd_policy_next returns the next repair request that should be made. - Currently implements the default round-robin DFS strategy. */ + Currently wraps on top of the forest iterator, but also handles + making orphan requests and highest shred requests. For non-normal + repair requests, policy uses the dedup cache to deduplicate requests. + For all normal requests, the caller must check the dedup cache before + making a request. */ fd_repair_msg_t const * -fd_policy_next( fd_policy_t * policy, fd_forest_t * forest, fd_repair_t * repair, long now, ulong highest_known_slot, int * charge_busy ); +fd_policy_next( fd_policy_t * policy, fd_reqlim_t * dedup, fd_forest_t * forest, fd_repair_t * repair, long now, ulong highest_known_slot, int * charge_busy ); /* fd_policy_peer_upsert upserts a peer into the policy. If the peer does not exist, it is created. If the peer already exists, it is @@ -270,8 +198,8 @@ void fd_policy_peer_request_update( fd_policy_t * policy, fd_pubkey_t const * to ); static inline fd_policy_peer_dlist_t * -fd_policy_peer_latency_bucket( fd_policy_t * policy, long total_rtt /* ns */, ulong res_cnt ) { - if( res_cnt == 0 || (long)(total_rtt / (long)res_cnt) > FD_POLICY_LATENCY_THRESH ) return policy->peers.slow; +fd_policy_peer_latency_bucket( fd_policy_t * policy, long lat, ulong res_cnt ) { + if( res_cnt == 0 || lat > FD_POLICY_LATENCY_THRESH ) return policy->peers.slow; return policy->peers.fast; } diff --git a/src/discof/repair/fd_repair_tile.c b/src/discof/repair/fd_repair_tile.c index 4b87f753617..053cf1a7544 100644 --- a/src/discof/repair/fd_repair_tile.c +++ b/src/discof/repair/fd_repair_tile.c @@ -170,7 +170,7 @@ get the dedup cache max. Since we are sizing the dedup cache for a generous margin, and this number not particularly fragile or sensitive, we can leave it static. */ -#define FD_DEDUP_CACHE_MAX (1<<15) +#define FD_REQLIM_CACHE_MAX (1<<20) /* static map from request type to metric array index */ static uint metric_index[FD_REPAIR_KIND_ORPHAN + 1] = { @@ -337,6 +337,7 @@ struct ctx { fd_forest_t * forest; fd_policy_t * policy; + fd_reqlim_t * dedup; fd_inflights_t * inflights; fd_repair_t * protocol; @@ -437,7 +438,8 @@ scratch_footprint( fd_topo_tile_t const * tile ) { l = FD_LAYOUT_APPEND( l, alignof(ctx_t), sizeof(ctx_t) ); l = FD_LAYOUT_APPEND( l, fd_repair_align(), fd_repair_footprint () ); l = FD_LAYOUT_APPEND( l, fd_forest_align(), fd_forest_footprint ( tile->repair.slot_max ) ); - l = FD_LAYOUT_APPEND( l, fd_policy_align(), fd_policy_footprint ( FD_DEDUP_CACHE_MAX, FD_REPAIR_PEER_MAX ) ); + l = FD_LAYOUT_APPEND( l, fd_policy_align(), fd_policy_footprint ( FD_REPAIR_PEER_MAX ) ); + l = FD_LAYOUT_APPEND( l, fd_reqlim_align(), fd_reqlim_footprint ( FD_REQLIM_CACHE_MAX ) ); l = FD_LAYOUT_APPEND( l, fd_inflights_align(), fd_inflights_footprint () ); l = FD_LAYOUT_APPEND( l, fd_signs_map_align(), fd_signs_map_footprint ( lg_sign_depth ) ); l = FD_LAYOUT_APPEND( l, fd_signs_queue_align(), fd_signs_queue_footprint() ); @@ -718,23 +720,13 @@ after_sign( ctx_t * ctx, we've sent it and let the inflight timeout request it down the line. */ - fd_policy_peer_t * active = fd_policy_peer_query( ctx->policy, &pending->msg.shred.to ); - int is_regular_req = pending->msg.kind == FD_REPAIR_KIND_SHRED && pending->msg.shred.nonce > 0; // not a highest/orphan request - + fd_policy_peer_t * active = fd_policy_peer_query( ctx->policy, &pending->msg.shred.to ); if( FD_UNLIKELY( !active ) ) { - if( FD_LIKELY( is_regular_req ) ) { - /* Artificially add to the inflights table, pretend we've sent it - and let the inflight timeout request it down the line. */ - fd_inflights_request_insert( ctx->inflights, pending->msg.shred.nonce, &pending->msg.shred.to, pending->msg.shred.slot, pending->msg.shred.shred_idx ); - } + /* Already added to the inflights table, pretend we've sent it + and let the inflight timeout request it down the line. */ return; } /* Happy path - all is well, our peer didn't drop out from beneath us. */ - if( FD_LIKELY( is_regular_req ) ) { - fd_inflights_request_insert( ctx->inflights, pending->msg.shred.nonce, &pending->msg.shred.to, pending->msg.shred.slot, pending->msg.shred.shred_idx ); - fd_policy_peer_request_update( ctx->policy, &pending->msg.shred.to ); - } - if( FD_UNLIKELY( pending->msg.kind == FD_REPAIR_KIND_ORPHAN ) ) ctx->metrics->last_requested_orphan = pending->msg.orphan.slot; else ctx->metrics->last_requested_slot = pending->msg.shred.slot; @@ -793,12 +785,11 @@ after_shred( ctx_t * ctx, if( FD_UNLIKELY( !blk_insert_check( ctx, blk, shred->slot, evicted ) ) ) return; if( FD_LIKELY( fd_forest_data_shred_insert( ctx->forest, shred->slot, shred->slot - shred->data.parent_off, shred->idx, shred->fec_set_idx, slot_complete, ref_tick, src, mr, cmr ) ) ) { - if( FD_UNLIKELY( src == SHRED_SRC_REPAIR && ( rtt = fd_inflights_request_remove( ctx->inflights, nonce, shred->slot, shred->idx, &peer ) ) > 0 ) ) { + if( FD_UNLIKELY( src == SHRED_SRC_REPAIR && ( rtt = fd_inflights_request_match( ctx->inflights, nonce, shred->slot, shred->idx, &peer ) ) > 0 ) ) { fd_policy_peer_response_update( ctx->policy, &peer, rtt ); fd_histf_sample( ctx->metrics->response_latency, (ulong)rtt ); } } - } else { fd_forest_code_shred_insert( ctx->forest, shred->slot, shred->idx ); } @@ -1115,6 +1106,67 @@ after_frag( ctx_t * ctx, } } +/* Defer a request by adding it to the outstanding inflights table so it + can be re-requested after a timeout window. Nonce is 0 because these + are not real requests made to the network, and cannot be matched + by a shred response. */ +static void +defer_inflight_request( ctx_t * ctx, ulong slot, ulong shred_idx ) { + fd_hash_t hash = { .ul[0] = 0 }; + fd_inflight_key_t inflight_req = { .slot = slot, .shred_idx = shred_idx, .nonce = 0 }; + if( FD_LIKELY( !fd_inflight_map_ele_query( ctx->inflights->map, &inflight_req, NULL, ctx->inflights->pool ) ) ) { + fd_inflights_request_insert( ctx->inflights, 0, &hash, slot, shred_idx ); + } +} + +/* Should be called for any regular FD_REPAIR_KIND_SHRED request made. */ +static void +record_inflight_request( ctx_t * ctx, ulong nonce, fd_pubkey_t const * peer, ulong slot, ulong shred_idx ) { + fd_inflights_request_insert( ctx->inflights, nonce, peer, slot, shred_idx ); + fd_policy_peer_request_update( ctx->policy, peer ); +} + + +/* Repair request invariants: + + Highest window index requests and orphan requests are much less + fragile than regular shred requests. This is because we request + orphans and highest window index requests whenever we "need" them, + i.e. we fire and forget them. + + But regular shred requests are only iterated once per shred per slot. + This is for performance reasons - we don't want to iterate over the + forest more than necessary. If we let knowledge of a regular shred + request get dropped, it's possible the request could get lost + forever. This is why any regular shred request that is conceived + needs to be handled at the repair tile level. All regular shred + requests must be added to the inflights outstanding table so it can + be re-requested after a timeout window. + + An inflight entry should only ever be permanently removed upon + receipt of a shred response. + + There are two methods through which we make regular shred requests: + 1. policy_next + 2. fd_inflights_request_pop + + In general, policy_next makes the first request for shred X, and + fd_inflights_request_pop makes all subsequent requests for shred X at + DEDUP_TIMEOUT intervals. This is to give each request a fair chance + to be received, but also to avoid colliding nonces. This is because + we want to be as accurate as possible when tracking per-peer response + latency. + + With eviction, it's possible for policy_next to make the same request + for shred X multiple times, in short timeout intervals. Therefore we + need to have both policy_next and fd_inflights_request_pop requests + pass through the same dedup cache. At the point of eviction, we + leave requests for that slot in the dedup cache and in the inflights + table. If an old request from before eviction happens to + dedup a request on the new insertion of the slot, these requests must + be queued up in inflights table so they can be re-requested after a + timeout window. */ + static inline void after_credit( ctx_t * ctx, fd_stem_context_t * stem FD_PARAM_UNUSED, @@ -1151,19 +1203,20 @@ after_credit( ctx_t * ctx, ulong nonce; ulong slot; ulong shred_idx; *charge_busy = 1; fd_inflights_request_pop( ctx->inflights, &nonce, &slot, &shred_idx ); + fd_forest_blk_t * blk = fd_forest_query( ctx->forest, slot ); if( FD_UNLIKELY( blk && !fd_forest_blk_idxs_test( blk->idxs, shred_idx ) ) ) { fd_pubkey_t const * peer = fd_policy_peer_select( ctx->policy ); - ctx->metrics->rerequest++; - nonce = fd_rnonce_ss_compute( ctx->repair_nonce_ss, 1, slot, (uint)shred_idx, now ); - if( FD_UNLIKELY( !peer ) ) { - /* No peers. But we CANNOT lose this request. */ - /* Add this request to the inflights table, pretend we've sent it and let the inflight timeout request it down the line. */ - fd_hash_t hash = { .ul[0] = 0 }; - fd_inflights_request_insert( ctx->inflights, nonce, &hash, slot, shred_idx ); + + if( FD_UNLIKELY( !peer || fd_reqlim_next( ctx->dedup, fd_reqlim_key( FD_REPAIR_KIND_SHRED, slot, (uint)shred_idx ), now ) ) ) { + /* No peers available, park the request in inflights. */ + defer_inflight_request( ctx, slot, shred_idx ); } else { + ctx->metrics->rerequest++; + nonce = fd_rnonce_ss_compute( ctx->repair_nonce_ss, 1, slot, (uint)shred_idx, now ); fd_repair_msg_t * msg = fd_repair_shred( ctx->protocol, peer, (ulong)now/(ulong)1e6, (uint)nonce, slot, shred_idx ); fd_repair_send_sign_request( ctx, sign_out, msg, NULL ); + record_inflight_request( ctx, nonce, peer, slot, shred_idx ); /* Request is definitely a regular shred request. */ return; } } @@ -1171,9 +1224,23 @@ after_credit( ctx_t * ctx, if( FD_UNLIKELY( fd_inflights_outstanding_free( ctx->inflights ) <= fd_signs_map_key_cnt( ctx->signs_map ) ) ) return; /* no new requests allowed */ - fd_repair_msg_t const * cout = fd_policy_next( ctx->policy, ctx->forest, ctx->protocol, now, ctx->metrics->current_slot, charge_busy ); + fd_repair_msg_t const * cout = fd_policy_next( ctx->policy, ctx->dedup, ctx->forest, ctx->protocol, now, ctx->metrics->current_slot, charge_busy ); if( FD_UNLIKELY( !cout ) ) return; + + if( ( cout->kind == FD_REPAIR_KIND_SHRED && fd_reqlim_next( ctx->dedup, fd_reqlim_key( FD_REPAIR_KIND_SHRED, cout->shred.slot, (uint)cout->shred.shred_idx ), now ) ) ) { + /* Here if policy_next is re-requesting a shred that's already been + requested. This could be happen during a race - imagine we make a + request for shred 0 in slot Y. Then eviction causes slot Y to be + removed and then readded. policy_next will re-request shred 0, + but if we let it get dropped here, it's possible the request + could get lost forever. */ + defer_inflight_request( ctx, cout->shred.slot, cout->shred.shred_idx ); + return; + } + + /* finally, send the request made by policy */ fd_repair_send_sign_request( ctx, sign_out, cout, NULL ); + if( FD_LIKELY( cout->kind == FD_REPAIR_KIND_SHRED ) ) record_inflight_request( ctx, cout->shred.nonce, &cout->shred.to, cout->shred.slot, cout->shred.shred_idx ); } static void @@ -1273,7 +1340,8 @@ unprivileged_init( fd_topo_t const * topo, ctx_t * ctx = FD_SCRATCH_ALLOC_APPEND( l, alignof(ctx_t), sizeof(ctx_t) ); ctx->protocol = FD_SCRATCH_ALLOC_APPEND( l, fd_repair_align(), fd_repair_footprint() ); ctx->forest = FD_SCRATCH_ALLOC_APPEND( l, fd_forest_align(), fd_forest_footprint( tile->repair.slot_max ) ); - ctx->policy = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_align(), fd_policy_footprint( FD_DEDUP_CACHE_MAX, FD_REPAIR_PEER_MAX ) ); + ctx->policy = FD_SCRATCH_ALLOC_APPEND( l, fd_policy_align(), fd_policy_footprint( FD_REPAIR_PEER_MAX ) ); + ctx->dedup = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_align(), fd_reqlim_footprint( FD_REQLIM_CACHE_MAX ) ); ctx->inflights = FD_SCRATCH_ALLOC_APPEND( l, fd_inflights_align(), fd_inflights_footprint() ); ctx->signs_map = FD_SCRATCH_ALLOC_APPEND( l, fd_signs_map_align(), fd_signs_map_footprint( lg_sign_depth ) ); ctx->pong_queue = FD_SCRATCH_ALLOC_APPEND( l, fd_signs_queue_align(), fd_signs_queue_footprint() ); @@ -1282,9 +1350,10 @@ unprivileged_init( fd_topo_t const * topo, if( FD_UNLIKELY( scratch_top > (ulong)scratch + scratch_footprint( tile ) ) ) FD_LOG_ERR(( "scratch overflow %lu %lu %lu", scratch_top - (ulong)scratch - scratch_footprint( tile ), scratch_top, (ulong)scratch + scratch_footprint( tile ) )); - ctx->protocol = fd_repair_join ( fd_repair_new ( ctx->protocol, &ctx->identity_public_key ) ); - ctx->forest = fd_forest_join ( fd_forest_new ( ctx->forest, tile->repair.slot_max, ctx->repair_seed ) ); - ctx->policy = fd_policy_join ( fd_policy_new ( ctx->policy, FD_DEDUP_CACHE_MAX, FD_REPAIR_PEER_MAX, ctx->repair_seed, ctx->repair_nonce_ss ) ); + ctx->protocol = fd_repair_join ( fd_repair_new ( ctx->protocol, &ctx->identity_public_key ) ); + ctx->forest = fd_forest_join ( fd_forest_new ( ctx->forest, tile->repair.slot_max, ctx->repair_seed ) ); + ctx->policy = fd_policy_join ( fd_policy_new ( ctx->policy, FD_REPAIR_PEER_MAX, ctx->repair_seed, ctx->repair_nonce_ss ) ); + ctx->dedup = fd_reqlim_join ( fd_reqlim_new ( ctx->dedup, FD_REQLIM_CACHE_MAX, ctx->repair_seed ) ); ctx->inflights = fd_inflights_join ( fd_inflights_new ( ctx->inflights, ctx->repair_seed+1234UL ) ); ctx->signs_map = fd_signs_map_join ( fd_signs_map_new ( ctx->signs_map, lg_sign_depth, 0UL ) ); ctx->pong_queue = fd_signs_queue_join ( fd_signs_queue_new ( ctx->pong_queue ) ); diff --git a/src/discof/repair/fd_reqlim.c b/src/discof/repair/fd_reqlim.c new file mode 100644 index 00000000000..b8d0c29fc21 --- /dev/null +++ b/src/discof/repair/fd_reqlim.c @@ -0,0 +1,117 @@ +#include "fd_reqlim.h" + +void * +fd_reqlim_new( void * shmem, ulong dedup_max, ulong seed ) { + + if( FD_UNLIKELY( !shmem ) ) { + FD_LOG_WARNING(( "NULL mem" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)shmem, fd_reqlim_align() ) ) ) { + FD_LOG_WARNING(( "misaligned mem" )); + return NULL; + } + + ulong footprint = fd_reqlim_footprint( dedup_max ); + fd_memset( shmem, 0, footprint ); + + FD_SCRATCH_ALLOC_INIT( l, shmem ); + fd_reqlim_t * dedup = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_align(), sizeof(fd_reqlim_t) ); + void * map = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_map_align(), fd_reqlim_map_footprint ( dedup_max ) ); + void * pool = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_pool_align(), fd_reqlim_pool_footprint( dedup_max ) ); + void * lru = FD_SCRATCH_ALLOC_APPEND( l, fd_reqlim_lru_align(), fd_reqlim_lru_footprint() ); + FD_TEST( FD_SCRATCH_ALLOC_FINI( l, fd_reqlim_align() ) == (ulong)shmem + footprint ); + + dedup->map = fd_reqlim_map_new ( map, dedup_max, seed ); + dedup->pool = fd_reqlim_pool_new( pool, dedup_max ); + dedup->lru = fd_reqlim_lru_new ( lru ); + + return shmem; +} + +fd_reqlim_t * +fd_reqlim_join( void * shdedup ) { + fd_reqlim_t * dedup = (fd_reqlim_t *)shdedup; + + if( FD_UNLIKELY( !dedup ) ) { + FD_LOG_WARNING(( "NULL dedup" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)dedup, fd_reqlim_align() ) ) ) { + FD_LOG_WARNING(( "misaligned dedup" )); + return NULL; + } + + dedup->map = fd_reqlim_map_join ( dedup->map ); + dedup->pool = fd_reqlim_pool_join( dedup->pool ); + dedup->lru = fd_reqlim_lru_join ( dedup->lru ); + + return dedup; +} + +void * +fd_reqlim_leave( fd_reqlim_t const * dedup ) { + + if( FD_UNLIKELY( !dedup ) ) { + FD_LOG_WARNING(( "NULL dedup" )); + return NULL; + } + + return (void *)dedup; +} + +void * +fd_reqlim_delete( void * dedup ) { + + if( FD_UNLIKELY( !dedup ) ) { + FD_LOG_WARNING(( "NULL dedup" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)dedup, fd_reqlim_align() ) ) ) { + FD_LOG_WARNING(( "misaligned dedup" )); + return NULL; + } + + return dedup; +} + +/* dedup_evict evicts the least recently used element from the cache. */ + +static void +dedup_evict( fd_reqlim_t * dedup ) { + fd_reqlim_ele_t * ele = fd_reqlim_lru_ele_pop_head( dedup->lru, dedup->pool ); + fd_reqlim_map_ele_remove( dedup->map, &ele->key, NULL, dedup->pool ); + fd_reqlim_pool_ele_release( dedup->pool, ele ); +} + +int +fd_reqlim_next( fd_reqlim_t * dedup, ulong key, long now ) { + fd_reqlim_ele_t * ele = fd_reqlim_map_ele_query( dedup->map, &key, NULL, dedup->pool ); + if( FD_UNLIKELY( !ele ) ) { + if( FD_UNLIKELY( !fd_reqlim_pool_free( dedup->pool ) ) ) dedup_evict( dedup ); + ele = fd_reqlim_pool_ele_acquire( dedup->pool ); + ele->key = key; + ele->req_ts = 0; + fd_reqlim_map_ele_insert ( dedup->map, ele, dedup->pool ); + fd_reqlim_lru_ele_push_tail( dedup->lru, ele, dedup->pool ); + } + if( FD_LIKELY( now < ele->req_ts + (long)FD_REQLIM_DEDUP_TIMEOUT ) ) { + fd_reqlim_lru_ele_remove ( dedup->lru, ele, dedup->pool ); + fd_reqlim_lru_ele_push_tail( dedup->lru, ele, dedup->pool ); + return 1; + } + ele->req_ts = now; + return 0; +} + +int +fd_reqlim_query( fd_reqlim_t const * dedup, ulong key, long now ) { + fd_reqlim_ele_t const * ele = fd_reqlim_map_ele_query_const( dedup->map, &key, NULL, dedup->pool ); + if( FD_LIKELY( ele && now < ele->req_ts + (long)FD_REQLIM_DEDUP_TIMEOUT ) ) { + return 1; + } + return 0; +} diff --git a/src/discof/repair/fd_reqlim.h b/src/discof/repair/fd_reqlim.h new file mode 100644 index 00000000000..a67bd7514a9 --- /dev/null +++ b/src/discof/repair/fd_reqlim.h @@ -0,0 +1,124 @@ +#ifndef HEADER_fd_src_discof_repair_fd_reqlim_h +#define HEADER_fd_src_discof_repair_fd_reqlim_h + +/* fd_reqlim implements a dedup cache for already sent Repair requests. + It is backed by a map and linked list, in which the least recently + used (oldest Repair request) in the map is evicted when the map is + full. */ + +#include "../../util/fd_util.h" + +#define FD_REQLIM_DEDUP_TIMEOUT 80000000L /* 80 ms - how long to wait before re-requesting the same shred */ + +FD_STATIC_ASSERT( 16000000L < FD_REQLIM_DEDUP_TIMEOUT, "DEDUP_TIMEOUT must be greater than 16ms to avoid rnonces from trivially clashing" ); + +/* fd_reqlim_ele describes an element in the dedup cache. The key + compactly encodes an fd_repair_req_t. + + | kind (4 bits) | slot (32 bits) | shred_idx (28 bits) | + | bits 63:60 | bits 59:28 | bits 27:0 | + + kind uses the FD_REPAIR_KIND_* wire values directly. + + Note the common header (sig, from, to, ts, nonce) is not included. */ + +struct fd_reqlim_ele { + ulong key; /* compact encoding of fd_repair_req_t detailed above */ + ulong prev; /* reserved by lru */ + ulong next; + ulong hash; /* reserved by pool and map_chain */ + long req_ts; /* timestamp when the request was sent */ +}; +typedef struct fd_reqlim_ele fd_reqlim_ele_t; + +FD_FN_CONST static inline ulong +fd_reqlim_key( uint kind, ulong slot, uint shred_idx ) { + ulong k = (ulong)fd_uint_extract_lsb( kind, 4 ); + ulong i = (ulong)fd_uint_extract_lsb( shred_idx, 28 ); + ulong s = fd_ulong_extract_lsb( slot, 32 ); + return k << 60 | s << 28 | i; +} + +#define POOL_NAME fd_reqlim_pool +#define POOL_T fd_reqlim_ele_t +#define POOL_NEXT hash +#include "../../util/tmpl/fd_pool.c" + +#define MAP_NAME fd_reqlim_map +#define MAP_ELE_T fd_reqlim_ele_t +#define MAP_NEXT hash +#include "../../util/tmpl/fd_map_chain.c" + +#define DLIST_NAME fd_reqlim_lru +#define DLIST_ELE_T fd_reqlim_ele_t +#define DLIST_NEXT next +#define DLIST_PREV prev +#include "../../util/tmpl/fd_dlist.c" + +struct fd_reqlim { + fd_reqlim_map_t * map; /* map of dedup elements */ + fd_reqlim_ele_t * pool; /* memory pool of dedup elements */ + fd_reqlim_lru_t * lru; /* linked list of dedup elements by insertion order */ +}; +typedef struct fd_reqlim fd_reqlim_t; + +/* Constructors */ + +FD_FN_CONST static inline ulong +fd_reqlim_align( void ) { + return 128UL; +} + +FD_FN_CONST static inline ulong +fd_reqlim_footprint( ulong dedup_max ) { + return FD_LAYOUT_FINI( + FD_LAYOUT_APPEND( + FD_LAYOUT_APPEND( + FD_LAYOUT_APPEND( + FD_LAYOUT_APPEND( + FD_LAYOUT_INIT, + fd_reqlim_align(), sizeof(fd_reqlim_t) ), + fd_reqlim_map_align(), fd_reqlim_map_footprint ( dedup_max ) ), + fd_reqlim_pool_align(), fd_reqlim_pool_footprint( dedup_max ) ), + fd_reqlim_lru_align(), fd_reqlim_lru_footprint() ), + fd_reqlim_align() ); +} + +/* fd_reqlim_new formats an unused memory region for use as a dedup + cache. mem is a non-NULL pointer to this region in the local address + space with the required footprint and alignment. */ + +void * +fd_reqlim_new( void * shmem, ulong dedup_max, ulong seed ); + +/* fd_reqlim_join joins the caller to the dedup cache. Returns a pointer + in the local address space to dedup on success. */ + +fd_reqlim_t * +fd_reqlim_join( void * shdedup ); + +/* fd_reqlim_leave leaves a current local join. */ + +void * +fd_reqlim_leave( fd_reqlim_t const * dedup ); + +/* fd_reqlim_delete unformats a memory region used as a dedup cache. */ + +void * +fd_reqlim_delete( void * dedup ); + +/* fd_reqlim_next returns 1 if key is deduped (already sent within the + dedup timeout window), 0 otherwise. When not deduped, the key is + inserted/refreshed in the cache with the current timestamp. */ + +int +fd_reqlim_next( fd_reqlim_t * dedup, ulong key, long now ); + +/* fd_reqlim_query returns 1 if key is in the dedup cache and was sent + within the dedup timeout window, 0 otherwise. Read-only: does not + insert or update any state. */ + +int +fd_reqlim_query( fd_reqlim_t const * dedup, ulong key, long now ); + +#endif /* HEADER_fd_src_discof_repair_fd_reqlim_h */ diff --git a/src/discof/repair/test_policy.c b/src/discof/repair/test_policy.c index 898a21c711e..94788761c4f 100644 --- a/src/discof/repair/test_policy.c +++ b/src/discof/repair/test_policy.c @@ -3,11 +3,11 @@ void test_peer_removal( fd_wksp_t * wksp ) { ulong peer_max = 1024; - ulong dedup_max = 1024; + fd_rnonce_ss_t rnonce[1]; fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); - void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( dedup_max, peer_max ), 1 ); - fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, dedup_max, peer_max, 0, rnonce ) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, peer_max, 0, rnonce ) ); FD_TEST( policy ); int num_slow = 0; @@ -17,7 +17,7 @@ test_peer_removal( fd_wksp_t * wksp ) { fd_ip4_port_t addr = { 0 }; fd_policy_peer_t const * peer = fd_policy_peer_upsert( policy, &key, &addr ); fd_policy_peer_response_update( policy, &key, (long)(i*10e6L)); - if ( i <= 8 ) num_fast++; + if ( i <= 10 ) num_fast++; else num_slow++; FD_TEST( peer ); } @@ -109,14 +109,475 @@ test_peer_removal( fd_wksp_t * wksp ) { FD_BASE58_ENCODE_32_BYTES( peer->key.key, p ); FD_TEST( memcmp( peer->key.key, key66.key, 32UL ) == 0 ); - /* move it to slow list */ - fd_policy_peer_response_update( policy, &key66, (long)(500e6L)); + /* move it to slow list (EWMA needs a large enough sample to cross threshold) */ + fd_policy_peer_response_update( policy, &key66, (long)(1000e6L)); peer = fd_policy_peer_dlist_ele_peek_tail( policy->peers.slow, policy->peers.pool ); FD_TEST( peer ); - FD_BASE58_ENCODE_32_BYTES( peer->key.key, p2 ); FD_TEST( memcmp( peer->key.key, key66.key, 32UL ) == 0 ); } +void +test_peer_interleave( fd_wksp_t * wksp ) { + ulong peer_max = 1024; + + fd_rnonce_ss_t rnonce[1]; + fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, peer_max, 0, rnonce ) ); + FD_TEST( policy ); + + /* Insert 6 fast peers (ids 1-6) and 6 slow peers (ids 7-12). */ + for( int i = 1; i <= 12; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &key, &addr ); + if( i <= 6 ) { + fd_policy_peer_response_update( policy, &key, (long)(10e6L) ); + } + } + + /* Verify 6:1 interleaving pattern over two full cycles (14 selects). */ + for( int cycle = 0; cycle < 2; cycle++ ) { + for( int j = 0; j < (int)FD_POLICY_FAST_PER_SLOW; j++ ) { + fd_pubkey_t const * sel = fd_policy_peer_select( policy ); + FD_TEST( sel ); + fd_policy_peer_t * p = fd_policy_peer_query( policy, sel ); + FD_TEST( p && p->res_cnt > 0 ); /* fast peer */ + } + fd_pubkey_t const * sel = fd_policy_peer_select( policy ); + FD_TEST( sel ); + fd_policy_peer_t * p = fd_policy_peer_query( policy, sel ); + FD_TEST( p && p->res_cnt == 0 ); /* slow peer */ + } + + /* Test all-slow: insert only slow peers. */ + void * mem2 = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy2 = fd_policy_join( fd_policy_new( mem2, peer_max, 0, rnonce ) ); + for( int i = 1; i <= 5; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy2, &key, &addr ); + } + for( int i = 0; i < 15; i++ ) { + fd_pubkey_t const * sel = fd_policy_peer_select( policy2 ); + FD_TEST( sel ); + } + + /* Test all-fast: insert only fast peers. */ + void * mem3 = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy3 = fd_policy_join( fd_policy_new( mem3, peer_max, 0, rnonce ) ); + for( int i = 1; i <= 5; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy3, &key, &addr ); + fd_policy_peer_response_update( policy3, &key, (long)(10e6L) ); + } + for( int i = 0; i < 15; i++ ) { + fd_pubkey_t const * sel = fd_policy_peer_select( policy3 ); + FD_TEST( sel ); + } +} + +void +test_ewma_latency( fd_wksp_t * wksp ) { + ulong peer_max = 1024; + + fd_rnonce_ss_t rnonce[1]; + fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, peer_max, 0, rnonce ) ); + FD_TEST( policy ); + + fd_pubkey_t key = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &key, &addr ); + + /* First response seeds EWMA. */ + fd_policy_peer_response_update( policy, &key, (long)(50e6L) ); + fd_policy_peer_t * peer = fd_policy_peer_query( policy, &key ); + FD_TEST( peer ); + FD_TEST( peer->ewma_lat == (long)(50e6L) ); + FD_TEST( fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ) == policy->peers.fast ); + + /* Several fast responses should keep it fast. */ + for( int i = 0; i < 10; i++ ) { + fd_policy_peer_response_update( policy, &key, (long)(40e6L) ); + } + peer = fd_policy_peer_query( policy, &key ); + FD_TEST( peer->ewma_lat < (long)FD_POLICY_LATENCY_THRESH ); + FD_TEST( fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ) == policy->peers.fast ); + + /* Sustained high-latency responses should eventually push to slow. */ + for( int i = 0; i < 30; i++ ) { + fd_policy_peer_response_update( policy, &key, (long)(200e6L) ); + } + peer = fd_policy_peer_query( policy, &key ); + FD_TEST( peer->ewma_lat > (long)FD_POLICY_LATENCY_THRESH ); + FD_TEST( fd_policy_peer_latency_bucket( policy, peer->ewma_lat, peer->res_cnt ) == policy->peers.slow ); +} + +void +test_remove_sole_peer( fd_wksp_t * wksp ) { + ulong peer_max = 1024; + + fd_rnonce_ss_t rnonce[1]; + fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1 ); + fd_policy_t * policy = fd_policy_join( fd_policy_new( mem, peer_max, 0, rnonce ) ); + FD_TEST( policy ); + + /* Single slow peer — iterator sits on it. */ + fd_pubkey_t key1 = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &key1, &addr ); + fd_policy_peer_select( policy ); /* parks slow_iter on key1 */ + FD_TEST( fd_policy_peer_remove( policy, &key1 ) ); + + /* Iterator must not dangle — select should return NULL (no peers). */ + FD_TEST( fd_policy_peer_select( policy ) == NULL ); + + /* Re-insert a peer and verify select still works. */ + fd_pubkey_t key2 = { .key = { 2 } }; + fd_policy_peer_upsert( policy, &key2, &addr ); + fd_pubkey_t const * sel = fd_policy_peer_select( policy ); + FD_TEST( sel && memcmp( sel->key, key2.key, 32UL ) == 0 ); + + /* Single fast peer — same scenario. */ + fd_policy_peer_response_update( policy, &key2, (long)(10e6L) ); + fd_policy_peer_select( policy ); /* parks fast_iter on key2 */ + FD_TEST( fd_policy_peer_remove( policy, &key2 ) ); + FD_TEST( fd_policy_peer_select( policy ) == NULL ); +} + +/* Helper: count elements in a peer dlist. */ +static ulong +dlist_cnt( fd_policy_peer_dlist_t * dlist, fd_policy_peer_t * pool ) { + ulong cnt = 0; + for( fd_policy_peer_dlist_iter_t it = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + !fd_policy_peer_dlist_iter_done( it, dlist, pool ); + it = fd_policy_peer_dlist_iter_fwd_next( it, dlist, pool ) ) { + cnt++; + } + return cnt; +} + +/* Helper: return 1 if pubkey is found in dlist, 0 otherwise. */ +static int +dlist_contains( fd_policy_peer_dlist_t * dlist, fd_policy_peer_t * pool, fd_pubkey_t const * key ) { + for( fd_policy_peer_dlist_iter_t it = fd_policy_peer_dlist_iter_fwd_init( dlist, pool ); + !fd_policy_peer_dlist_iter_done( it, dlist, pool ); + it = fd_policy_peer_dlist_iter_fwd_next( it, dlist, pool ) ) { + fd_policy_peer_t * p = fd_policy_peer_dlist_iter_ele( it, dlist, pool ); + if( !memcmp( p->key.key, key->key, 32UL ) ) return 1; + } + return 0; +} + +/* Helper: create a fresh policy on wksp. */ +static fd_policy_t * +new_policy( fd_wksp_t * wksp ) { + fd_rnonce_ss_t rnonce[1]; + fd_memset( rnonce, '\xCC', sizeof(fd_rnonce_ss_t) ); + void * mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( 1024UL ), 1 ); + return fd_policy_join( fd_policy_new( mem, 1024UL, 0, rnonce ) ); +} + +/* Verify dlist counts and map/pool counts stay in sync after removals. */ +void +test_dlist_consistency_after_remove( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + /* Insert 4 fast peers (low RTT) and 4 slow peers (no responses). */ + for( int i = 1; i <= 8; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { .addr = (uint)i, .port = (ushort)(8000+i) }; + fd_policy_peer_upsert( policy, &key, &addr ); + if( i <= 4 ) fd_policy_peer_response_update( policy, &key, (long)(10e6L) ); + } + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 4 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 4 ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 8 ); + + /* Remove one fast, one slow. */ + fd_pubkey_t k_fast = { .key = { 2 } }; + fd_pubkey_t k_slow = { .key = { 6 } }; + FD_TEST( fd_policy_peer_remove( policy, &k_fast ) ); + FD_TEST( fd_policy_peer_remove( policy, &k_slow ) ); + + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 3 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 3 ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 6 ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k_fast ) ); + FD_TEST( !dlist_contains( policy->peers.slow, policy->peers.pool, &k_slow ) ); + + /* Query must return NULL for removed peers. */ + FD_TEST( !fd_policy_peer_query( policy, &k_fast ) ); + FD_TEST( !fd_policy_peer_query( policy, &k_slow ) ); + + /* Remaining peers must still be queryable. */ + for( int i = 1; i <= 8; i++ ) { + if( i == 2 || i == 6 ) continue; + fd_pubkey_t key = { .key = { (uchar)i } }; + FD_TEST( fd_policy_peer_query( policy, &key ) ); + } + + /* Double-remove must return 0 (no-op). */ + FD_TEST( !fd_policy_peer_remove( policy, &k_fast ) ); +} + +/* Verify that response_update on a removed/unknown peer is a no-op and + does not corrupt dlist state. */ +void +test_response_update_unknown_peer( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_pubkey_t k1 = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &k1, &addr ); + + ulong fast_before = dlist_cnt( policy->peers.fast, policy->peers.pool ); + + /* Update a peer that was never inserted. */ + fd_pubkey_t k_unknown = { .key = { 99 } }; + fd_policy_peer_response_update( policy, &k_unknown, (long)(10e6L) ); + + /* Remove k1 then update it — should be a no-op. */ + fd_policy_peer_remove( policy, &k1 ); + fd_policy_peer_response_update( policy, &k1, (long)(10e6L) ); + + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == fast_before ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 0 ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 0 ); +} + +/* Verify the null pubkey guard returns NULL and does not crash. */ +void +test_null_pubkey_query( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_pubkey_t null_key; + fd_memset( &null_key, 0, sizeof(fd_pubkey_t) ); + FD_TEST( !fd_policy_peer_query( policy, &null_key ) ); + + /* Insert a real peer and verify null query still returns NULL. */ + fd_pubkey_t k1 = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &k1, &addr ); + FD_TEST( !fd_policy_peer_query( policy, &null_key ) ); + FD_TEST( fd_policy_peer_query( policy, &k1 ) ); + + /* request_update and response_update with null pubkey must be no-ops. */ + ulong used_before = fd_policy_peer_pool_used( policy->peers.pool ); + fd_policy_peer_request_update( policy, &null_key ); + fd_policy_peer_response_update( policy, &null_key, (long)(10e6L) ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == used_before ); +} + +/* Verify dlist integrity across slow->fast and fast->slow bucket + transitions. Each peer must be in exactly one dlist at all times. */ +void +test_bucket_transition_dlist_integrity( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_pubkey_t k1 = { .key = { 1 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &k1, &addr ); + + /* Starts in slow (no responses yet). */ + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 1 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 0 ); + + /* Fast response → should move to fast. */ + fd_policy_peer_response_update( policy, &k1, (long)(10e6L) ); + FD_TEST( !dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 0 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 1 ); + + /* Sustained high latency → should move back to slow. */ + for( int i = 0; i < 50; i++ ) { + fd_policy_peer_response_update( policy, &k1, (long)(300e6L) ); + } + fd_policy_peer_t * p = fd_policy_peer_query( policy, &k1 ); + FD_TEST( p && p->ewma_lat > (long)FD_POLICY_LATENCY_THRESH ); + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 1 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 0 ); + + /* Sustained fast again → back to fast. */ + for( int i = 0; i < 50; i++ ) { + fd_policy_peer_response_update( policy, &k1, (long)(5e6L) ); + } + p = fd_policy_peer_query( policy, &k1 ); + FD_TEST( p && p->ewma_lat < (long)FD_POLICY_LATENCY_THRESH ); + FD_TEST( !dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + + /* Total across both dlists must always equal pool used. */ + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) + + dlist_cnt( policy->peers.slow, policy->peers.pool ) + == fd_policy_peer_pool_used( policy->peers.pool ) ); +} + +/* Verify that removing the peer the select iterator is parked on does + not break subsequent selects from the same or opposite dlist. */ +void +test_remove_iter_peer_dlist_intact( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + /* 3 fast, 3 slow. */ + for( int i = 1; i <= 6; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &key, &addr ); + if( i <= 3 ) fd_policy_peer_response_update( policy, &key, (long)(10e6L) ); + } + + /* Park fast_iter on first fast peer via select. */ + fd_pubkey_t const * sel = fd_policy_peer_select( policy ); + FD_TEST( sel ); + fd_pubkey_t parked = *sel; + + /* Remove that peer. */ + FD_TEST( fd_policy_peer_remove( policy, &parked ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &parked ) ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 2 ); + + /* Subsequent selects must not return the removed peer and must not crash. */ + for( int i = 0; i < 20; i++ ) { + sel = fd_policy_peer_select( policy ); + FD_TEST( sel ); + FD_TEST( memcmp( sel->key, parked.key, 32UL ) != 0 ); + } + + /* Dlist totals must match pool. */ + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) + + dlist_cnt( policy->peers.slow, policy->peers.pool ) + == fd_policy_peer_pool_used( policy->peers.pool ) ); +} + +/* Verify dlist integrity after a peer is evicted by + fd_policy_peer_request_update (unanswered threshold). */ +void +test_eviction_dlist_integrity( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + /* Insert a fast peer and a slow peer. */ + fd_pubkey_t k_fast = { .key = { 1 } }; + fd_pubkey_t k_slow = { .key = { 2 } }; + fd_ip4_port_t addr = { 0 }; + fd_policy_peer_upsert( policy, &k_fast, &addr ); + fd_policy_peer_response_update( policy, &k_fast, (long)(10e6L) ); + fd_policy_peer_upsert( policy, &k_slow, &addr ); + + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 1 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 1 ); + + /* Slow peer must be unaffected. */ + FD_TEST( fd_policy_peer_query( policy, &k_slow ) ); + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k_slow ) ); + + /* Pool used must match dlist totals. */ + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) + + dlist_cnt( policy->peers.slow, policy->peers.pool ) + == fd_policy_peer_pool_used( policy->peers.pool ) ); +} + +/* Verify that reinserting a previously removed peer places it into the + correct dlist and that the old state does not leak. */ +void +test_remove_and_reinsert( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_pubkey_t k1 = { .key = { 1 } }; + fd_ip4_port_t addr = { .addr = 0x01020304, .port = 8000 }; + fd_policy_peer_upsert( policy, &k1, &addr ); + fd_policy_peer_response_update( policy, &k1, (long)(10e6L) ); + FD_TEST( dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + + /* Remove it. */ + FD_TEST( fd_policy_peer_remove( policy, &k1 ) ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 0 ); + + /* Reinsert — should go to slow (fresh peer, no responses). */ + fd_policy_peer_upsert( policy, &k1, &addr ); + FD_TEST( fd_policy_peer_pool_used( policy->peers.pool ) == 1 ); + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + + /* Counters should be reset. */ + fd_policy_peer_t * p = fd_policy_peer_query( policy, &k1 ); + FD_TEST( p ); + FD_TEST( p->req_cnt == 0 ); + FD_TEST( p->res_cnt == 0 ); + FD_TEST( p->ewma_lat == 0 ); + FD_TEST( p->unanswered == 0 ); + + /* Move to fast again and verify. */ + fd_policy_peer_response_update( policy, &k1, (long)(10e6L) ); + FD_TEST( dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); +} + +/* Verify that multiple peers can transition buckets independently + without corrupting each other's dlist membership. */ +void +test_multi_peer_bucket_transitions( fd_wksp_t * wksp ) { + fd_policy_t * policy = new_policy( wksp ); + FD_TEST( policy ); + + fd_ip4_port_t addr = { 0 }; + + /* Insert 5 peers, all start slow. */ + for( int i = 1; i <= 5; i++ ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_policy_peer_upsert( policy, &key, &addr ); + } + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 5 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 0 ); + + /* Move peers 1, 3, 5 to fast. */ + for( int i = 1; i <= 5; i += 2 ) { + fd_pubkey_t key = { .key = { (uchar)i } }; + fd_policy_peer_response_update( policy, &key, (long)(10e6L) ); + } + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 3 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 2 ); + + /* Remove peer 3 (fast) and peer 2 (slow). */ + fd_pubkey_t k3 = { .key = { 3 } }; + fd_pubkey_t k2 = { .key = { 2 } }; + fd_policy_peer_remove( policy, &k3 ); + fd_policy_peer_remove( policy, &k2 ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 2 ); + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 1 ); + + /* Move peer 1 from fast to slow with high latency. */ + fd_pubkey_t k1 = { .key = { 1 } }; + for( int i = 0; i < 50; i++ ) { + fd_policy_peer_response_update( policy, &k1, (long)(300e6L) ); + } + FD_TEST( dlist_contains( policy->peers.slow, policy->peers.pool, &k1 ) ); + FD_TEST( !dlist_contains( policy->peers.fast, policy->peers.pool, &k1 ) ); + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) == 1 ); /* only peer 5 */ + FD_TEST( dlist_cnt( policy->peers.slow, policy->peers.pool ) == 2 ); /* peers 1, 4 */ + + /* Invariant: dlist total == pool used. */ + FD_TEST( dlist_cnt( policy->peers.fast, policy->peers.pool ) + + dlist_cnt( policy->peers.slow, policy->peers.pool ) + == fd_policy_peer_pool_used( policy->peers.pool ) ); +} + int main( int argc, char ** argv ) { fd_boot( &argc, &argv ); @@ -128,6 +589,17 @@ main( int argc, char ** argv ) { FD_TEST( wksp ); test_peer_removal( wksp ); + test_peer_interleave( wksp ); + test_ewma_latency( wksp ); + test_remove_sole_peer( wksp ); + test_dlist_consistency_after_remove( wksp ); + test_response_update_unknown_peer( wksp ); + test_null_pubkey_query( wksp ); + test_bucket_transition_dlist_integrity( wksp ); + test_remove_iter_peer_dlist_intact( wksp ); + test_eviction_dlist_integrity( wksp ); + test_remove_and_reinsert( wksp ); + test_multi_peer_bucket_transitions( wksp ); FD_LOG_NOTICE(( "pass" )); fd_halt(); diff --git a/src/discof/repair/test_repair_tile.c b/src/discof/repair/test_repair_tile.c index 6117aa25344..f57ad834ad5 100644 --- a/src/discof/repair/test_repair_tile.c +++ b/src/discof/repair/test_repair_tile.c @@ -28,7 +28,8 @@ setup_ctx( ctx_t * ctx, fd_wksp_t * wksp, ulong slot_max ) { FD_TEST( fd_rng_secure( ctx->repair_nonce_ss, sizeof(fd_rnonce_ss_t) ) ); void * forest_mem = fd_wksp_alloc_laddr( wksp, fd_forest_align(), fd_forest_footprint( slot_max ), 1UL ); - void * policy_mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( dedup_max, peer_max ), 1UL ); + void * policy_mem = fd_wksp_alloc_laddr( wksp, fd_policy_align(), fd_policy_footprint( peer_max ), 1UL ); + void * dedup_mem = fd_wksp_alloc_laddr( wksp, fd_reqlim_align(), fd_reqlim_footprint( dedup_max ), 1UL ); void * inflights_mem = fd_wksp_alloc_laddr( wksp, fd_inflights_align(), fd_inflights_footprint(), 1UL ); void * signs_map_mem = fd_wksp_alloc_laddr( wksp, fd_signs_map_align(), fd_signs_map_footprint( lg_sign_depth ), 1UL ); void * pong_queue_mem = fd_wksp_alloc_laddr( wksp, fd_signs_queue_align(), fd_signs_queue_footprint(), 1UL ); @@ -36,7 +37,8 @@ setup_ctx( ctx_t * ctx, fd_wksp_t * wksp, ulong slot_max ) { void * metrics_mem = fd_wksp_alloc_laddr( wksp, fd_repair_metrics_align(), fd_repair_metrics_footprint(), 1UL ); ctx->forest = fd_forest_join ( fd_forest_new ( forest_mem, slot_max, 0UL ) ); - ctx->policy = fd_policy_join ( fd_policy_new ( policy_mem, dedup_max, peer_max, 0UL, ctx->repair_nonce_ss ) ); + ctx->policy = fd_policy_join ( fd_policy_new ( policy_mem, peer_max, 0UL, ctx->repair_nonce_ss ) ); + ctx->dedup = fd_reqlim_join ( fd_reqlim_new ( dedup_mem, dedup_max, 0UL ) ); ctx->inflights = fd_inflights_join ( fd_inflights_new ( inflights_mem, 0UL ) ); ctx->signs_map = fd_signs_map_join ( fd_signs_map_new ( signs_map_mem, lg_sign_depth, 0UL ) ); ctx->pong_queue = fd_signs_queue_join ( fd_signs_queue_new ( pong_queue_mem ) ); diff --git a/src/discof/replay/fd_replay_tile.c b/src/discof/replay/fd_replay_tile.c index 8b1268e00c2..b659cee425d 100644 --- a/src/discof/replay/fd_replay_tile.c +++ b/src/discof/replay/fd_replay_tile.c @@ -1023,7 +1023,6 @@ store_xinsert( fd_store_t * store, if( FD_UNLIKELY( !fec ) ) FD_LOG_CRIT(( "fd_store_pool_acquire failed" )); fec->key.merkle_root = *merkle_root; fec->key.part_idx = 0; - fec->cmr = (fd_hash_t){ 0 }; fec->next = fd_store_pool_idx_null(); fec->data_sz = 0UL; From d53939bf5809082d2ce4ff9067fa35e85c82b5f7 Mon Sep 17 00:00:00 2001 From: Charles Li Date: Thu, 4 Jun 2026 18:05:08 -0500 Subject: [PATCH 25/30] refactor(tower): clean up voter querying out of banks / accdb (#10078) --- src/choreo/tower/test_tower.c | 3 +- src/discof/tower/Local.mk | 1 - src/discof/tower/fd_tower_tile.c | 352 +++++++++++++++-------------- src/discof/tower/test_tower_tile.c | 37 +-- 4 files changed, 208 insertions(+), 185 deletions(-) diff --git a/src/choreo/tower/test_tower.c b/src/choreo/tower/test_tower.c index 4bb9665dd21..7fa3efe8dba 100644 --- a/src/choreo/tower/test_tower.c +++ b/src/choreo/tower/test_tower.c @@ -691,8 +691,7 @@ test_switch_closed_vote_account( fd_wksp_t * wksp ) { /* Insert lockout and stake for candidate_slot=109 (fork C, ABC active). Do NOT insert stake for ABC on switch_slot=106 — ABC's vote account - was closed on fork A, so it was skipped during query_vote_accs for - slot 106. */ + was closed on fork A, so it was skipped in slot 106. */ fd_tower_lockos_insert( tower, 109, &acct.vote_acc, acct.votes ); fd_tower_stakes_insert( tower, 109, &acct.vote_acc, acct.stake, ULONG_MAX ); diff --git a/src/discof/tower/Local.mk b/src/discof/tower/Local.mk index 85c1be98cb9..048a9b3b899 100644 --- a/src/discof/tower/Local.mk +++ b/src/discof/tower/Local.mk @@ -1,5 +1,4 @@ ifdef FD_HAS_HOSTED $(call add-objs,fd_tower_tile,fd_discof) $(call make-unit-test,test_tower_tile,test_tower_tile,fd_discof fd_choreo fd_disco fd_flamenco fd_funk fd_tango fd_ballet fd_util) -$(call run-unit-test,test_tower_tile) endif diff --git a/src/discof/tower/fd_tower_tile.c b/src/discof/tower/fd_tower_tile.c index 04632f670e2..1abe603329d 100644 --- a/src/discof/tower/fd_tower_tile.c +++ b/src/discof/tower/fd_tower_tile.c @@ -337,20 +337,19 @@ struct fd_tower_tile { typedef struct fd_tower_tile fd_tower_tile_t; /* Compile-time dependency injection. This macro defaults to the - production implementation defined below. Tests can #define it - before #include-ing this file to substitute a mock. */ + production implementation defined below. Tests can #define it before + #include-ing this file to substitute a mock. */ -#ifndef QUERY_VOTE_ACCS -#define QUERY_VOTE_ACCS query_vote_accs +#ifndef QUERY_TOWERS +#define QUERY_TOWERS query_towers #endif -ulong QUERY_VOTE_ACCS( fd_tower_tile_t *, fd_replay_slot_completed_t *, fd_ghost_blk_t *, int *, ulong * ); - -#ifndef UPDATE_EPOCH_VTRS -#define UPDATE_EPOCH_VTRS update_epoch_vtrs +#ifndef QUERY_VOTERS +#define QUERY_VOTERS query_voters #endif -void UPDATE_EPOCH_VTRS( fd_tower_tile_t *, fd_replay_slot_completed_t *, ulong ); +ulong QUERY_TOWERS( fd_tower_tile_t *, fd_replay_slot_completed_t *, fd_ghost_blk_t *, int *, ulong * ); +void QUERY_VOTERS( fd_tower_tile_t *, fd_replay_slot_completed_t *, ulong ); static int deser_auth_vtr( fd_tower_tile_t * ctx, @@ -705,80 +704,110 @@ count_vote_acc( fd_tower_tile_t * ctx, ctx->vtr_cnt++; } -static ulong -update_epoch_vtr_map( fd_tower_tile_t * ctx, - epoch_vtr_t * pool, - epoch_vtr_map_t * map, - fd_top_votes_t const * top_votes, - fd_bank_t * bank, - ulong target_epoch, - uchar * iter_mem ) { - epoch_vtr_pool_reset( pool ); - epoch_vtr_map_reset( map ); - ulong total_stake = 0UL; - fd_funk_txn_xid_t xid = fd_bank_xid( bank ); - for( fd_top_votes_iter_t * iter = fd_top_votes_iter_init( top_votes, iter_mem ); - !fd_top_votes_iter_done( top_votes, iter ); - fd_top_votes_iter_next( top_votes, iter ) ) { - fd_pubkey_t pubkey; - ulong stake; - fd_top_votes_iter_ele( top_votes, iter, &pubkey, NULL, &stake, NULL, NULL, NULL, NULL ); - FD_TEST( stake>0UL ); /* top_votes only holds staked voters */ - total_stake += stake; - epoch_vtr_t * vtr = epoch_vtr_pool_ele_acquire( pool ); - vtr->vote_acc = pubkey; - vtr->stake = stake; - memset( &vtr->auth_vtr, 0, sizeof(fd_pubkey_t) ); +/* Query all the relevant towers for running Tower rules on this slot: - /* Cache the authorized voter for target_epoch. Leaves - auth_vtr all-zero if the vote account is unreadable — - count_vote_txn will reject txns whose signer can't match. */ + 1. staked voter set from banks + 2. vote accounts (for each staked voter, which contains their tower) + from accountsDB. */ - fd_accdb_ro_t ro[1]; - if( FD_LIKELY( fd_accdb_open_ro( ctx->accdb, ro, &xid, &pubkey ) ) ) { - ulong dummy_idx; - deser_auth_vtr( ctx, fd_accdb_ref_data_const( ro ), fd_accdb_ref_data_sz( ro ), target_epoch, 1, &vtr->auth_vtr, &dummy_idx ); - fd_accdb_close_ro( ctx->accdb, ro ); - } +FD_FN_UNUSED ulong +query_towers( fd_tower_tile_t * ctx, + fd_replay_slot_completed_t * slot_completed, + fd_ghost_blk_t * ghost_blk, + int * found_our_vote_acct, + ulong * our_vote_acct_bal ) { - epoch_vtr_map_ele_insert( map, vtr, pool ); - } - return total_stake; -} + ulong total_stake = 0UL; + ulong prev_voter_idx = ULONG_MAX; + ulong pending_cnt = 0UL; -void -update_epoch_vtrs( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - ulong epoch ) { fd_bank_t * bank = fd_banks_bank_query( ctx->banks, slot_completed->bank_idx ); if( FD_UNLIKELY( !bank ) ) FD_LOG_CRIT(( "invariant violation: bank %lu is missing", slot_completed->bank_idx )); + fd_top_votes_t const * top_votes_t_2 = fd_bank_top_votes_t_2_query( bank ); + fd_top_votes_iter_t * iter = fd_top_votes_iter_init( top_votes_t_2, ctx->iter_mem ); - ctx->root_epoch_total_stake = update_epoch_vtr_map( ctx, ctx->root_epoch_vtr_pool, ctx->root_epoch_vtr_map, fd_bank_top_votes_t_2_query( bank ), bank, epoch, ctx->iter_mem ); - ctx->next_epoch_total_stake = update_epoch_vtr_map( ctx, ctx->next_epoch_vtr_pool, ctx->next_epoch_vtr_map, fd_bank_top_votes_t_1_query( bank ), bank, epoch+1UL, ctx->iter_mem ); - ctx->root_epoch = epoch; -} + fd_accdb_ro_pipe_t ro_pipe[1]; + fd_funk_txn_xid_t xid = fd_bank_xid( bank ); + fd_accdb_ro_pipe_init( ro_pipe, ctx->accdb, &xid ); -static void -update_voters( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - ulong epoch ) { - fd_eqvoc_update_voters( ctx->eqvoc, ctx->id_keys, ctx->vtr_cnt ); - fd_hfork_update_voters( ctx->hfork, ctx->vote_accs, ctx->vtr_cnt ); - fd_votes_update_voters( ctx->votes, ctx->vote_accs, ctx->vtr_cnt ); + for(;;) { + if( FD_UNLIKELY( fd_top_votes_iter_done( top_votes_t_2, iter ) ) ) { + if( !pending_cnt ) break; + fd_accdb_ro_pipe_flush( ro_pipe ); + } else { + fd_pubkey_t vote_acc; + ulong stake; + uchar is_valid; + fd_top_votes_iter_ele( top_votes_t_2, iter, &vote_acc, NULL, &stake, NULL, NULL, NULL, &is_valid ); + fd_top_votes_iter_next( top_votes_t_2, iter ); + total_stake += stake; + if( FD_UNLIKELY( !is_valid ) ) continue; + + fd_accdb_ro_pipe_enqueue( ro_pipe, vote_acc.key ); + pending_cnt++; + } + + fd_accdb_ro_t * ro; + while( FD_LIKELY( ro = fd_accdb_ro_pipe_poll( ro_pipe ) ) ) { + pending_cnt--; + fd_pubkey_t const * vote_acc = fd_accdb_ref_address( ro ); + + ulong stake; + FD_TEST( fd_top_votes_query( top_votes_t_2, vote_acc, NULL, &stake, NULL, NULL, NULL, NULL ) ); + + FD_TEST( fd_accdb_ref_lamports( ro ) && fd_vsv_is_correct_size_owner_and_init( ro->meta ) ); + + uchar const * data = fd_accdb_ref_data_const( ro ); + + FD_TEST( stake > 0 ); + count_vote_acc( ctx, slot_completed, ghost_blk, vote_acc, stake, data, ro->meta->dlen ); + + prev_voter_idx = fd_tower_stakes_insert( ctx->tower, slot_completed->slot, vote_acc, stake, prev_voter_idx ); + } + } + fd_accdb_ro_pipe_fini( ro_pipe ); + + /* Reconcile our local tower with the on-chain tower (stored inside + our vote account). - UPDATE_EPOCH_VTRS( ctx, slot_completed, epoch ); + Skip reconciliation on the first replay_slot_completed if booted + with wait_for_supermajority. This prevents spurious lockout_check + failures (slot <= last_vote_slot) and threshold_check failures + (deep stale tower with no voter support) */ + + *our_vote_acct_bal = ULONG_MAX; + *found_our_vote_acct = 0; + fd_funk_txn_xid_t reconcile_xid = fd_bank_xid( bank ); + fd_accdb_ro_t reconcile_ro[1]; + if( FD_LIKELY( fd_accdb_open_ro( ctx->accdb, reconcile_ro, &reconcile_xid, ctx->vote_account ) ) ) { + *found_our_vote_acct = 1; + ctx->our_vote_acct_sz = fd_ulong_min( fd_accdb_ref_data_sz( reconcile_ro ), FD_VOTE_STATE_DATA_MAX ); + *our_vote_acct_bal = fd_accdb_ref_lamports( reconcile_ro ); + fd_memcpy( ctx->our_vote_acct, fd_accdb_ref_data_const( reconcile_ro ), ctx->our_vote_acct_sz ); + fd_accdb_close_ro( ctx->accdb, reconcile_ro ); + int skip_reconcile = !ctx->init && ctx->wfs; + if( FD_LIKELY( !skip_reconcile ) ) { + ulong root; + fd_tower_vote_remove_all( ctx->scratch_tower ); + fd_tower_from_vote_acc( ctx->scratch_tower, &root, ctx->our_vote_acct, ctx->our_vote_acct_sz ); + fd_tower_reconcile( ctx->tower, ctx->scratch_tower, root ); + } else { + FD_LOG_NOTICE(( "wait_for_supermajority: skipping tower reconcile on init slot %lu", slot_completed->slot )); + } + } + return total_stake; } -/* parse_vote_txn is the C equivalent of Agave's +/* validate_vote_txn is the C equivalent of Agave's parse_vote_transaction. Returns the vote account on success, NULL on failure. Deserializes the vote instruction into ctx->scratch_ix. https://github.com/anza-xyz/agave/blob/v2.3.7/sdk/src/transaction/versioned/mod.rs#L79 */ static fd_pubkey_t const * -parse_vote_txn( fd_tower_tile_t * ctx, - fd_txn_t const * txn, - uchar const * payload ) { +validate_vote_txn( fd_tower_tile_t * ctx, + fd_txn_t const * txn, + uchar const * payload ) { if( FD_UNLIKELY( !txn->instr_cnt ) ) return NULL; fd_txn_instr_t const * instr = &txn->instr[ 0 ]; @@ -820,7 +849,7 @@ count_vote_txn( fd_tower_tile_t * ctx, if( FD_UNLIKELY( !fd_txn_is_simple_vote_transaction( txn, payload ) ) ) { ctx->metrics.votes[ FD_METRICS_ENUM_VOTE_TXN_RESULT_V_NOT_SIMPLE_VOTE_IDX ]++; return; } - fd_pubkey_t const * vote_acc = parse_vote_txn( ctx, txn, payload ); + fd_pubkey_t const * vote_acc = validate_vote_txn( ctx, txn, payload ); if( FD_UNLIKELY( !vote_acc ) ) { ctx->metrics.votes[ FD_METRICS_ENUM_VOTE_TXN_RESULT_V_BAD_DESER_IDX ]++; return; } /* Filter any non-TowerSync vote instructions. For gossip / TPU this @@ -892,7 +921,7 @@ count_vote_txn( fd_tower_tile_t * ctx, /* Verify the authorized voter for this vote account at vote_epoch is among the txn signers. Mirrors Agave's cluster_info_vote_listener check. authorized_voter is cached on the epoch_vtr by - update_epoch_vtrs; an all-zero value means we couldn't read it. */ + query_voters; an all-zero value means we couldn't read it. */ if( FD_UNLIKELY( 0==memcmp( &vtr->auth_vtr, &pubkey_null, sizeof(fd_pubkey_t) ) ) ) { ctx->metrics.votes[ FD_METRICS_ENUM_VOTE_TXN_RESULT_V_BAD_SIGNER_IDX ]++; return; } fd_pubkey_t const * accs = (fd_pubkey_t const *)fd_type_pun_const( payload + txn->acct_addr_off ); @@ -914,10 +943,14 @@ count_vote_txn( fd_tower_tile_t * ctx, update_metrics_vote_slot( ctx, votes_err ); if( FD_LIKELY( votes_err==FD_VOTES_SUCCESS ) ) publish_slot_confirmed( ctx, their_last_vote->slot, their_block_id, total_stake ); - /* Agave decides to count intermediate vote slots in the tower only if - 1. they've replayed the slot and 2. their replay bank hash matches - the vote's bank hash. We do the same thing, but using block_ids - instead of bank hashes. + /* Agave decides to count intermediate vote slots in the tower iff: + + 1. they've replayed the slot + 2. their replay bank hash matches the vote's bank hash. + + This guarantees the intermediate slots they are counting are in + fact for the correct ancestry (in case of equivocation). We do the + same thing, but using block ids instead of bank hashes. It's possible we haven't yet replayed this slot being voted on because gossip votes can be ahead of our replay. @@ -979,93 +1012,83 @@ count_vote_txn( fd_tower_tile_t * ctx, } } -FD_FN_UNUSED ulong -query_vote_accs( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - fd_ghost_blk_t * ghost_blk, - int * found_our_vote_acct, - ulong * our_vote_acct_bal ) { +/* Query the staked voters in the provided epoch: - ulong total_stake = 0UL; - ulong prev_voter_idx = ULONG_MAX; - ulong pending_cnt = 0UL; + 1. identity keys (aka. node pubkeys) + 2. vote account addresses + 3. associated stake (for the epoch) + 4. authorized voter (for the epoch) */ - fd_bank_t * bank = fd_banks_bank_query( ctx->banks, slot_completed->bank_idx ); - if( FD_UNLIKELY( !bank ) ) FD_LOG_CRIT(( "invariant violation: bank %lu is missing", slot_completed->bank_idx )); - fd_top_votes_t const * top_votes_t_2 = fd_bank_top_votes_t_2_query( bank ); - fd_top_votes_iter_t * iter = fd_top_votes_iter_init( top_votes_t_2, ctx->iter_mem ); +static ulong +query_epoch_voters( fd_tower_tile_t * ctx, + ulong epoch, + fd_funk_txn_xid_t bank_xid, + fd_top_votes_t const * top_votes, + epoch_vtr_t * pool, + epoch_vtr_map_t * map, + int update_id_keys_vote_accs ) { - fd_accdb_ro_pipe_t ro_pipe[1]; - fd_funk_txn_xid_t xid = fd_bank_xid( bank ); - fd_accdb_ro_pipe_init( ro_pipe, ctx->accdb, &xid ); + epoch_vtr_pool_reset( pool ); + epoch_vtr_map_reset( map ); + ulong total_stake = 0UL; + for( fd_top_votes_iter_t * iter = fd_top_votes_iter_init( top_votes, ctx->iter_mem ); + !fd_top_votes_iter_done( top_votes, iter ); + fd_top_votes_iter_next( top_votes, iter ) ) { + fd_pubkey_t pubkey; + ulong stake; + fd_top_votes_iter_ele( top_votes, iter, &pubkey, NULL, &stake, NULL, NULL, NULL, NULL ); + FD_TEST( stake>0UL ); /* top_votes only holds staked voters */ + total_stake += stake; + epoch_vtr_t * vtr = epoch_vtr_pool_ele_acquire( pool ); + vtr->vote_acc = pubkey; + vtr->stake = stake; + memset( &vtr->auth_vtr, 0, sizeof(fd_pubkey_t) ); - for(;;) { - if( FD_UNLIKELY( fd_top_votes_iter_done( top_votes_t_2, iter ) ) ) { - if( !pending_cnt ) break; - fd_accdb_ro_pipe_flush( ro_pipe ); - } else { - fd_pubkey_t vote_acc; - ulong stake; - uchar is_valid; - fd_top_votes_iter_ele( top_votes_t_2, iter, &vote_acc, NULL, &stake, NULL, NULL, NULL, &is_valid ); - fd_top_votes_iter_next( top_votes_t_2, iter ); - total_stake += stake; - if( FD_UNLIKELY( !is_valid ) ) continue; + /* Cache the authorized voter for target_epoch. Leaves + auth_vtr all-zero if the vote account is unreadable — + count_vote_txn will reject txns whose signer can't match. */ - fd_accdb_ro_pipe_enqueue( ro_pipe, vote_acc.key ); - pending_cnt++; + fd_accdb_ro_t ro[1]; + if( FD_LIKELY( fd_accdb_open_ro( ctx->accdb, ro, &bank_xid, &pubkey ) ) ) { + uchar const * data = fd_accdb_ref_data_const( ro ); + ulong data_sz = fd_accdb_ref_data_sz( ro ); + ulong dummy_idx; + deser_auth_vtr( ctx, data, data_sz, epoch, 1, &vtr->auth_vtr, &dummy_idx ); + if( update_id_keys_vote_accs ) { + FD_TEST( 0==fd_vote_account_node_pubkey( data, data_sz, &ctx->id_keys[ctx->vtr_cnt] ) ); /* check vote account is not corrupt */ + ctx->vote_accs[ctx->vtr_cnt] = pubkey; + ctx->vtr_cnt++; + } + fd_accdb_close_ro( ctx->accdb, ro ); } - fd_accdb_ro_t * ro; - while( FD_LIKELY( ro = fd_accdb_ro_pipe_poll( ro_pipe ) ) ) { - pending_cnt--; - fd_pubkey_t const * vote_acc = fd_accdb_ref_address( ro ); - - ulong stake; - FD_TEST( fd_top_votes_query( top_votes_t_2, vote_acc, NULL, &stake, NULL, NULL, NULL, NULL ) ); - - FD_TEST( fd_accdb_ref_lamports( ro ) && fd_vsv_is_correct_size_owner_and_init( ro->meta ) ); - - uchar const * data = fd_accdb_ref_data_const( ro ); - - FD_TEST( stake > 0 ); - count_vote_acc( ctx, slot_completed, ghost_blk, vote_acc, stake, data, ro->meta->dlen ); - - prev_voter_idx = fd_tower_stakes_insert( ctx->tower, slot_completed->slot, vote_acc, stake, prev_voter_idx ); - } + epoch_vtr_map_ele_insert( map, vtr, pool ); } - fd_accdb_ro_pipe_fini( ro_pipe ); - - /* Reconcile our local tower with the on-chain tower (stored inside - our vote account). - - Skip reconciliation on the first replay_slot_completed if booted - with wait_for_supermajority. This prevents spurious lockout_check - failures (slot <= last_vote_slot) and threshold_check failures - (deep stale tower with no voter support) */ + return total_stake; +} - *our_vote_acct_bal = ULONG_MAX; - *found_our_vote_acct = 0; - fd_funk_txn_xid_t reconcile_xid = fd_bank_xid( bank ); - fd_accdb_ro_t reconcile_ro[1]; - if( FD_LIKELY( fd_accdb_open_ro( ctx->accdb, reconcile_ro, &reconcile_xid, ctx->vote_account ) ) ) { - *found_our_vote_acct = 1; - ctx->our_vote_acct_sz = fd_ulong_min( fd_accdb_ref_data_sz( reconcile_ro ), FD_VOTE_STATE_DATA_MAX ); - *our_vote_acct_bal = fd_accdb_ref_lamports( reconcile_ro ); - fd_memcpy( ctx->our_vote_acct, fd_accdb_ref_data_const( reconcile_ro ), ctx->our_vote_acct_sz ); - fd_accdb_close_ro( ctx->accdb, reconcile_ro ); - int skip_reconcile = !ctx->init && ctx->wfs; - if( FD_LIKELY( !skip_reconcile ) ) { - ulong root; - fd_tower_vote_remove_all( ctx->scratch_tower ); - fd_tower_from_vote_acc( ctx->scratch_tower, &root, ctx->our_vote_acct, ctx->our_vote_acct_sz ); - fd_tower_reconcile( ctx->tower, ctx->scratch_tower, root ); - } else { - FD_LOG_NOTICE(( "wait_for_supermajority: skipping tower reconcile on init slot %lu", slot_completed->slot )); - } +/* Update the cached voters for both the currently rooted epoch and the + next epoch, to allow processing vote transactions for vote slots that + span both these epochs. */ + +FD_FN_UNUSED void +query_voters( fd_tower_tile_t * ctx, + fd_replay_slot_completed_t * slot_completed, + ulong epoch ) { + if( FD_LIKELY( ctx->banks ) ) { + fd_bank_t * bank = fd_banks_bank_query( ctx->banks, slot_completed->bank_idx ); + if( FD_UNLIKELY( !bank ) ) FD_LOG_CRIT(( "invariant violation: bank %lu is missing", slot_completed->bank_idx )); + + fd_funk_txn_xid_t bank_xid = fd_bank_xid( bank ); + ctx->vtr_cnt = 0; + ctx->root_epoch_total_stake = query_epoch_voters( ctx, epoch, bank_xid, fd_bank_top_votes_t_2_query( bank ), ctx->root_epoch_vtr_pool, ctx->root_epoch_vtr_map, 1 ); + ctx->next_epoch_total_stake = query_epoch_voters( ctx, epoch+1UL, bank_xid, fd_bank_top_votes_t_1_query( bank ), ctx->next_epoch_vtr_pool, ctx->next_epoch_vtr_map, 0 ); } + ctx->root_epoch = epoch; - return total_stake; + fd_eqvoc_update_voters( ctx->eqvoc, ctx->id_keys, ctx->vtr_cnt ); + fd_hfork_update_voters( ctx->hfork, ctx->vote_accs, ctx->vtr_cnt ); + fd_votes_update_voters( ctx->votes, ctx->vote_accs, ctx->vtr_cnt ); } static void @@ -1217,39 +1240,31 @@ replay_slot_completed( fd_tower_tile_t * ctx, ulong our_vote_acct_bal = ULONG_MAX; int found = 0; - ghost_blk->total_stake = QUERY_VOTE_ACCS( ctx, slot_completed, ghost_blk, &found, &our_vote_acct_bal ); + ghost_blk->total_stake = QUERY_TOWERS( ctx, slot_completed, ghost_blk, &found, &our_vote_acct_bal ); /* The first replay_slot_completed msg is used to initialize the tower tile's various structures. */ if( FD_UNLIKELY( !ctx->init ) ) { ctx->init = 1; - update_voters( ctx, slot_completed, slot_completed->epoch ); + QUERY_VOTERS( ctx, slot_completed, slot_completed->epoch ); } /* Insert into hard fork detector. */ - fd_epoch_leaders_t const * hfork_lsched = fd_multi_epoch_leaders_get_lsched_for_slot( ctx->mleaders, slot_completed->slot ); - ulong hfork_total_stake = 0UL; - if( FD_LIKELY( hfork_lsched ) ) { - if( FD_LIKELY( hfork_lsched->epoch==ctx->root_epoch ) ) hfork_total_stake = ctx->root_epoch_total_stake; - else if( FD_LIKELY( hfork_lsched->epoch==ctx->root_epoch + 1 ) ) hfork_total_stake = ctx->next_epoch_total_stake; - } - int hfork_flag = fd_hfork_record_our_bank_hash( ctx->hfork, &slot_completed->block_id, &slot_completed->bank_hash, hfork_total_stake ); + fd_epoch_leaders_t const * lsched = fd_multi_epoch_leaders_get_lsched_for_slot( ctx->mleaders, slot_completed->slot ); + int hfork_flag = fd_hfork_record_our_bank_hash( ctx->hfork, &slot_completed->block_id, &slot_completed->bank_hash, fd_ulong_if( lsched->epoch==ctx->root_epoch, ctx->root_epoch_total_stake, ctx->next_epoch_total_stake ) ); update_metrics_hfork( ctx, hfork_flag, slot_completed->slot, &slot_completed->block_id ); /* Determine reset, vote, and root slots. There may not be a vote or root slot but there is always a reset slot. */ fd_tower_out_t out = { .vote_slot = ULONG_MAX, .root_slot = ULONG_MAX }; - out.flags = fd_tower_vote_and_reset( ctx->tower, ctx->ghost, ctx->votes, - &out.reset_slot, &out.reset_block_id, - &out.vote_slot, &out.vote_block_id, &out.vote_bank_hash, &out.vote_block_hash, - &out.root_slot, &out.root_block_id ); - if( FD_LIKELY( out.vote_slot!=ULONG_MAX ) ) { - - /* If there is a vote slot we record it. */ - + out.flags = fd_tower_vote_and_reset( ctx->tower, ctx->ghost, ctx->votes, + &out.reset_slot, &out.reset_block_id, + &out.vote_slot, &out.vote_block_id, &out.vote_bank_hash, &out.vote_block_hash, + &out.root_slot, &out.root_block_id ); + if( FD_LIKELY( out.vote_slot!=ULONG_MAX ) ) { /* if there is a vote slot we record it. */ fd_tower_blk_t * vote_tower_blk = fd_tower_blocks_query( ctx->tower, out.vote_slot ); vote_tower_blk->voted = 1; vote_tower_blk->voted_block_id = out.vote_block_id; @@ -1278,7 +1293,7 @@ replay_slot_completed( fd_tower_tile_t * ctx, if( FD_UNLIKELY( oldr_tower_blk->epoch+1==newr_tower_blk->epoch ) ) { FD_TEST( newr_tower_blk->epoch==slot_completed->epoch ); /* new root's epoch must be same as current slot_completed */ - update_voters( ctx, slot_completed, newr_tower_blk->epoch ); + QUERY_VOTERS( ctx, slot_completed, newr_tower_blk->epoch ); } fd_votes_publish( ctx->votes, out.root_slot ); @@ -1530,9 +1545,10 @@ metrics_write( fd_tower_tile_t * ctx ) { FD_MCNT_ENUM_COPY( TOWER, FORK_DECISION, ctx->metrics.fork ); FD_MCNT_ENUM_COPY( TOWER, VOTE_GATE, ctx->metrics.gate ); - FD_MCNT_ENUM_COPY( TOWER, VOTES, ctx->metrics.votes ); - FD_MCNT_ENUM_COPY( TOWER, VOTE_SLOTS, ctx->metrics.vote_slots ); + FD_MCNT_ENUM_COPY( TOWER, VOTES, ctx->metrics.votes ); + FD_MCNT_ENUM_COPY( TOWER, VOTE_SLOTS, ctx->metrics.vote_slots ); FD_MCNT_ENUM_COPY( TOWER, VOTE_INTERMEDIATE_GATE, ctx->metrics.gate_int ); + FD_MCNT_SET( TOWER, EQVOC_SUCCESS, ctx->metrics.eqvoc_success ); FD_MCNT_SET( TOWER, EQVOC_ERR, ctx->metrics.eqvoc_err ); diff --git a/src/discof/tower/test_tower_tile.c b/src/discof/tower/test_tower_tile.c index b8bf5442dc1..1688428b92f 100644 --- a/src/discof/tower/test_tower_tile.c +++ b/src/discof/tower/test_tower_tile.c @@ -1,15 +1,12 @@ -#define QUERY_VOTE_ACCS mock_query_vote_accs -#define UPDATE_EPOCH_VTRS mock_update_epoch_vtrs +#define QUERY_TOWERS mock_query_towers +#define QUERY_VOTERS mock_query_voters #include "fd_tower_tile.c" -/* Stub the bank-dependent epoch_vtr_t population for tests that don't - set up ctx->banks / ctx->accdb. */ - void -mock_update_epoch_vtrs( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed FD_PARAM_UNUSED, - ulong epoch ) { +mock_query_voters( fd_tower_tile_t * ctx, + fd_replay_slot_completed_t * slot_completed FD_PARAM_UNUSED, + ulong epoch ) { ctx->root_epoch = epoch; } @@ -235,15 +232,15 @@ test_count_vote_txn( void ) { #define FIXTURE_RECORD_SZ (32UL + 32UL + 8UL + 8UL + FD_VOTE_STATE_DATA_MAX) #define FIXTURE_FILE_SZ (FIXTURE_VTR_CNT * FIXTURE_RECORD_SZ) -/* mock_query_vote_accs: loads voter data from a fixture file for the +/* mock_query_towers: loads voter data from a fixture file for the current slot and calls count_vote_acc for each record. */ ulong -mock_query_vote_accs( fd_tower_tile_t * ctx, - fd_replay_slot_completed_t * slot_completed, - fd_ghost_blk_t * ghost_blk, - int * found_our_vote_acct, - ulong * our_vote_acct_bal ) { +mock_query_towers( fd_tower_tile_t * ctx, + fd_replay_slot_completed_t * slot_completed, + fd_ghost_blk_t * ghost_blk, + int * found_our_vote_acct, + ulong * our_vote_acct_bal ) { /* Open the fixture file for this slot. */ @@ -275,6 +272,9 @@ mock_query_vote_accs( fd_tower_tile_t * ctx, count_vote_acc( ctx, slot_completed, ghost_blk, &vote_acc, stake, data, FD_VOTE_STATE_DATA_MAX ); + ctx->vote_accs[i] = vote_acc; + fd_vote_account_node_pubkey( data, FD_VOTE_STATE_DATA_MAX, &ctx->id_keys[i] ); + total_stake += stake; prev_voter_idx = fd_tower_stakes_insert( ctx->tower, slot_completed->slot, &vote_acc, stake, prev_voter_idx ); } @@ -327,6 +327,10 @@ test_fixture_replay( fd_wksp_t * wksp ) { ulong start_slot = 398915634UL; ulong num_slots = 32UL; + fd_vote_stake_weight_t fixture_stakes[1] = {{ .vote_key = {{0}}, .id_key = {{0}}, .stake = 1UL }}; + ctx->mleaders->lsched[0] = fd_epoch_leaders_join( fd_epoch_leaders_new( ctx->mleaders->_lsched[0], 0, start_slot - 1, num_slots + MOCK_SLOT_MAX + 100, 1UL, fixture_stakes, 0UL ) ); + ctx->mleaders->init_done[0] = 1; + for( ulong slot = start_slot; slot < start_slot + num_slots; slot++ ) { fd_replay_slot_completed_t sc; @@ -429,6 +433,11 @@ eqvoc_setup( fd_wksp_t * wksp ) { memset( ctx->identity_key, 0x11, sizeof(fd_pubkey_t) ); memset( ctx->vote_account, 0x22, sizeof(fd_pubkey_t) ); + fd_vote_stake_weight_t eqvoc_stakes[1] = {{ .vote_key = {{0}}, .id_key = {{0}}, .stake = 1UL }}; + ulong eqvoc_slot_cnt = EQVOC_BOOT_CNT + MOCK_SLOT_MAX + 100; + ctx->mleaders->lsched[0] = fd_epoch_leaders_join( fd_epoch_leaders_new( ctx->mleaders->_lsched[0], 0, EQVOC_START_SLOT - 1, eqvoc_slot_cnt, 1UL, eqvoc_stakes, 0UL ) ); + ctx->mleaders->init_done[0] = 1; + for( ulong slot = EQVOC_START_SLOT; slot < EQVOC_START_SLOT + EQVOC_BOOT_CNT; slot++ ) { fd_replay_slot_completed_t sc; memset( &sc, 0, sizeof(sc) ); From 5693c0bfd7efa30654d25a2bd180c55d6d7d727d Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Thu, 4 Jun 2026 22:33:59 +0000 Subject: [PATCH 26/30] accdb: implement new accounts database --- src/flamenco/accdb/Local.mk | 24 + src/flamenco/accdb/bench_accdb.c | 523 +++ src/flamenco/accdb/bench_accdb_hotread.c | 158 + src/flamenco/accdb/bench_accdb_txn.c | 426 +++ src/flamenco/accdb/fd_accdb.c | 3903 ++++++++++++++++++++++ src/flamenco/accdb/fd_accdb.h | 612 ++++ src/flamenco/accdb/fd_accdb_cache.c | 272 ++ src/flamenco/accdb/fd_accdb_cache.h | 118 + src/flamenco/accdb/fd_accdb_private.h | 560 ++++ src/flamenco/accdb/fd_accdb_shmem.c | 547 +++ src/flamenco/accdb/fd_accdb_shmem.h | 140 + src/flamenco/accdb/test_accdb.c | 1151 +++++++ src/flamenco/accdb/test_accdb_cache.c | 132 + src/flamenco/accdb/test_accdb_racesan.c | 2193 ++++++++++++ 14 files changed, 10759 insertions(+) create mode 100644 src/flamenco/accdb/bench_accdb.c create mode 100644 src/flamenco/accdb/bench_accdb_hotread.c create mode 100644 src/flamenco/accdb/bench_accdb_txn.c create mode 100644 src/flamenco/accdb/fd_accdb.c create mode 100644 src/flamenco/accdb/fd_accdb.h create mode 100644 src/flamenco/accdb/fd_accdb_cache.c create mode 100644 src/flamenco/accdb/fd_accdb_cache.h create mode 100644 src/flamenco/accdb/fd_accdb_private.h create mode 100644 src/flamenco/accdb/fd_accdb_shmem.c create mode 100644 src/flamenco/accdb/fd_accdb_shmem.h create mode 100644 src/flamenco/accdb/test_accdb.c create mode 100644 src/flamenco/accdb/test_accdb_cache.c create mode 100644 src/flamenco/accdb/test_accdb_racesan.c diff --git a/src/flamenco/accdb/Local.mk b/src/flamenco/accdb/Local.mk index aced04ffdd5..6049fb8849a 100644 --- a/src/flamenco/accdb/Local.mk +++ b/src/flamenco/accdb/Local.mk @@ -36,3 +36,27 @@ ifdef FD_HAS_RACESAN $(call make-unit-test,test_accdb_v1_racesan,test_accdb_v1_racesan,fd_flamenco fd_funk fd_ballet fd_util) endif endif + +# New accounts database (accdb v4) core library +ifdef FD_HAS_ATOMIC +ifdef FD_HAS_ALLOCA + +$(call add-hdrs,fd_accdb.h fd_accdb_cache.h fd_accdb_shmem.h) +$(call add-objs,fd_accdb fd_accdb_cache fd_accdb_shmem,fd_flamenco) + +$(call make-unit-test,test_accdb,test_accdb,fd_flamenco fd_ballet fd_util) +$(call run-unit-test,test_accdb) + +$(call make-unit-test,test_accdb_cache,test_accdb_cache,fd_flamenco fd_ballet fd_util) +$(call run-unit-test,test_accdb_cache) + +$(call make-unit-test,bench_accdb,bench_accdb,fd_flamenco fd_ballet fd_util) +$(call make-unit-test,bench_accdb_hotread,bench_accdb_hotread,fd_flamenco fd_ballet fd_util) +$(call make-unit-test,bench_accdb_txn,bench_accdb_txn,fd_flamenco fd_ballet fd_util) + +ifdef FD_HAS_RACESAN +$(call make-unit-test,test_accdb_racesan,test_accdb_racesan,fd_flamenco fd_ballet fd_util) +endif + +endif +endif diff --git a/src/flamenco/accdb/bench_accdb.c b/src/flamenco/accdb/bench_accdb.c new file mode 100644 index 00000000000..9988aacf2e1 --- /dev/null +++ b/src/flamenco/accdb/bench_accdb.c @@ -0,0 +1,523 @@ +#define _GNU_SOURCE + +#include "fd_accdb.h" +#include "../../util/fd_util.h" + +#include +#include +#include +#include + +/* Account size distribution modeled from Solana mainnet snapshot data. + ~996M accounts, ~285.5 GiB total. The cumulative distribution + function (CDF) is encoded as a table of (threshold, avg_size) pairs + so we can sample sizes that match real-world distribution. + + Key characteristics: + - 65% of accounts are 128-256 bytes (token accounts, 165 B) + - 91% of accounts are <= 256 bytes + - 99% of accounts are <= 1024 bytes + - Tail goes up to 10 MiB + + Weights below are parts-per-thousand (permille). They sum to + 1000 and are derived from the bin_cnt column of the histogram. */ + +struct size_bucket { + uint weight; /* permille (parts per 1000) */ + uint avg_size; /* representative size for this bucket */ +}; + +static struct size_bucket const SIZE_DIST[] = { + { 76, 0 }, /* 0 <= sz <= 0 : 7.6% */ + { 33, 1 }, /* 0 < sz <= 1 : 0.3% (cumul 7.9%) — grouped small */ + { 5, 2 }, /* 1 < sz <= 2 */ + { 4, 3 }, /* 2 < sz <= 4 */ + { 2, 7 }, /* 4 < sz <= 8 */ + { 8, 12 }, /* 8 < sz <= 16 */ + { 31, 22 }, /* 16 < sz <= 32 */ + { 27, 51 }, /* 32 < sz <= 64 */ + { 113, 88 }, /* 64 < sz <= 128 */ + { 653, 165 }, /* 128 < sz <= 256 : 65.3% — token accounts */ + { 20, 347 }, /* 256 < sz <= 512 */ + { 14, 638 }, /* 512 < sz <= 1024 — kept small so bench runs fast */ + /* remaining ~1.2% grouped into larger buckets, but omitted for + benchmark speed. We add the remaining weight to the 638 bucket + above so weights sum to ~1000. */ +}; + +#define SIZE_DIST_CNT (sizeof(SIZE_DIST)/sizeof(SIZE_DIST[0])) + +static ulong +sample_account_size( fd_rng_t * rng ) { + uint r = fd_rng_uint( rng ) % 1000U; + uint cumul = 0U; + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, fork, pubkey, i+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + total_bytes += sz; + } + dt += fd_log_wallclock(); + + double secs = (double)dt / 1e9; + FD_LOG_NOTICE(( "bench_write: %lu accounts, %.2f MiB data in %.3f s " + "(%.0f accts/s, %.2f MiB/s, %.0f ns/write)", + account_cnt, + (double)total_bytes / (double)(1UL<<20UL), + secs, + (double)account_cnt / secs, + (double)total_bytes / (double)(1UL<<20UL) / secs, + (double)dt / (double)account_cnt )); + + close( fd ); +} + +/* ------------------------------------------------------------------ */ + +/* bench_read: Populate N accounts, then read them all back in random + order, measuring read throughput. */ +static void +bench_read( ulong account_cnt, + fd_rng_t * rng ) { + int fd; + ulong partition_sz = 1UL<<30UL; + ulong partition_cnt = 1024UL; + fd_accdb_t * accdb = bench_setup( &fd, + account_cnt + 1024UL, + 64UL, + (uint)account_cnt + 1024U, + partition_cnt, + partition_sz ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t fork = fd_accdb_attach_child( accdb, root ); + + /* Populate */ + uchar pubkey[ 32 ]; + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, fork, pubkey, i+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + } + + /* Read in random order */ + ulong lamports; + uchar rdata[ BENCH_MAX_DATA_SZ ]; + ulong data_len; + uchar owner[ 32 ]; + ulong total_bytes = 0UL; + ulong found = 0UL; + + long dt = -fd_log_wallclock(); + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, cur, pubkey, (s*writes_per_slot + w)+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + total_write_bytes += sz; + total_writes++; + } + long t2 = fd_log_wallclock(); + dt_write += (t2 - t1); + + /* --- root previous slot --- */ + if( FD_LIKELY( s>0UL ) ) { + fd_accdb_advance_root( accdb, prev ); + { int b = 0; fd_accdb_background( accdb, &b ); } + } + long t3 = fd_log_wallclock(); + dt_root += (t3 - t2); + + prev = cur; + } + dt_total += fd_log_wallclock(); + + fd_accdb_shmem_metrics_t const * m = fd_accdb_shmetrics( accdb ); + + double total_secs = (double)dt_total / 1e9; + FD_LOG_NOTICE(( "bench_replay: %lu slots, %lu reads/slot, " + "%lu writes/slot, %.3f s total", + slot_cnt, reads_per_slot, writes_per_slot, + total_secs )); + FD_LOG_NOTICE(( " read: %lu queries (%lu hits, %.1f%% hit rate), " + "%.0f reads/s, %.0f ns/read", + total_reads, total_read_hits, + total_reads ? 100.0*(double)total_read_hits/(double)total_reads : 0.0, + (double)total_reads / ((double)dt_read/1e9), + dt_read ? (double)dt_read/(double)total_reads : 0.0 )); + FD_LOG_NOTICE(( " write: %lu writes, %.2f MiB, " + "%.0f writes/s, %.0f ns/write", + total_writes, + (double)total_write_bytes / (double)(1UL<<20UL), + (double)total_writes / ((double)dt_write/1e9), + dt_write ? (double)dt_write/(double)total_writes : 0.0 )); + FD_LOG_NOTICE(( " root: %.0f ns/root, %.3f s total " + "(%lu slots rooted)", + slot_cnt>1UL ? (double)dt_root/(double)(slot_cnt-1UL) : 0.0, + (double)dt_root / 1e9, + slot_cnt>1UL ? slot_cnt-1UL : 0UL )); + FD_LOG_NOTICE(( " slot: %.0f ns/slot (%.0f slots/s)", + (double)dt_total / (double)slot_cnt, + (double)slot_cnt / total_secs )); + FD_LOG_NOTICE(( " metrics: accounts_total=%lu disk_used=%.2f MiB " + "disk_alloc=%.2f MiB", + m->accounts_total, + (double)m->disk_used_bytes / (double)(1UL<<20UL), + (double)m->disk_allocated_bytes / (double)(1UL<<20UL) )); + + close( fd ); +} + +/* ------------------------------------------------------------------ */ + +/* bench_mixed: Mixed read-write workload. Populate a base set of + accounts, then run a workload that is read_pct% reads and the rest + writes, simulating transaction execution that reads many accounts + but updates fewer. */ +static void +bench_mixed( ulong base_cnt, + ulong op_cnt, + uint read_pct, + fd_rng_t * rng ) { + int fd; + ulong partition_sz = 1UL<<30UL; + ulong partition_cnt = 1024UL; + fd_accdb_t * accdb = bench_setup( &fd, + base_cnt + op_cnt + 1024UL, + 64UL, + (uint)(base_cnt + op_cnt) + 1024U, + partition_cnt, + partition_sz ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t fork = fd_accdb_attach_child( accdb, root ); + + /* Populate base set */ + uchar pubkey[ 32 ]; + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, fork, pubkey, i+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + } + + uchar rdata[ BENCH_MAX_DATA_SZ ]; + ulong lamports; + ulong data_len; + uchar owner[ 32 ]; + ulong reads = 0UL; + ulong writes = 0UL; + + long dt = -fd_log_wallclock(); + for( ulong i=0UL; iBENCH_MAX_DATA_SZ ) sz = BENCH_MAX_DATA_SZ; + bench_write_one( accdb, fork, pubkey, i+1UL, + sz ? data_buf : NULL, sz, dummy_owner ); + writes++; + } + } + dt += fd_log_wallclock(); + + double secs = (double)dt / 1e9; + FD_LOG_NOTICE(( "bench_mixed: %lu ops (%lu reads, %lu writes) in %.3f s " + "(%.0f ops/s, %.0f ns/op, read_pct=%u%%)", + op_cnt, reads, writes, secs, + (double)op_cnt / secs, + (double)dt / (double)op_cnt, + (uint)read_pct )); + + close( fd ); +} + +/* ------------------------------------------------------------------ */ + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + ulong account_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--accounts", NULL, 100000UL ); + ulong slot_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--slots", NULL, 100UL ); + ulong writes_per_slot = fd_env_strip_cmdline_ulong( &argc, &argv, "--writes-per-slot", NULL, 1200UL ); + ulong reads_per_slot = fd_env_strip_cmdline_ulong( &argc, &argv, "--reads-per-slot", NULL, 4800UL ); + ulong mixed_ops = fd_env_strip_cmdline_ulong( &argc, &argv, "--mixed-ops", NULL, 200000UL ); + uint read_pct = fd_env_strip_cmdline_uint ( &argc, &argv, "--read-pct", NULL, 80U ); + uint seed = fd_env_strip_cmdline_uint ( &argc, &argv, "--seed", NULL, 42U ); + + FD_LOG_NOTICE(( "accdb benchmark (accounts=%lu slots=%lu wpslot=%lu " + "rpslot=%lu mixed_ops=%lu read_pct=%u seed=%u)", + account_cnt, slot_cnt, writes_per_slot, reads_per_slot, + mixed_ops, read_pct, seed )); + + fd_rng_t _rng[1]; + fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, seed, 0UL ) ); + FD_TEST( rng ); + + FD_LOG_NOTICE(( "--- write throughput ---" )); + bench_write( account_cnt, rng ); + + FD_LOG_NOTICE(( "--- read throughput ---" )); + bench_read( account_cnt, rng ); + + FD_LOG_NOTICE(( "--- replay simulation ---" )); + bench_replay( slot_cnt, writes_per_slot, reads_per_slot, rng ); + + FD_LOG_NOTICE(( "--- mixed read/write (%u%% reads) ---", read_pct )); + bench_mixed( account_cnt, mixed_ops, read_pct, rng ); + + fd_rng_delete( fd_rng_leave( rng ) ); + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} diff --git a/src/flamenco/accdb/bench_accdb_hotread.c b/src/flamenco/accdb/bench_accdb_hotread.c new file mode 100644 index 00000000000..5bd320af935 --- /dev/null +++ b/src/flamenco/accdb/bench_accdb_hotread.c @@ -0,0 +1,158 @@ +#define _GNU_SOURCE + +#include "fd_accdb.h" +#include "../../util/fd_util.h" + +#include +#include +#include +#include + +/* bench_accdb_hotread: populate a small set of accounts so they all fit + in cache, then hammer acquire+release read-only in a tight loop for a + fixed duration. This isolates the hot-path cost of in-cache reads + without any disk I/O, eviction, or write-back noise. */ + +static uchar dummy_owner[ 32 ] = { 0xEE }; + +#define BENCH_MAX_DATA_SZ (256UL) /* token-account sized */ +#define BENCH_CACHE_FOOTPRINT (16UL<<30UL) + +static uchar data_buf[ BENCH_MAX_DATA_SZ ]; + +static void +make_pubkey( uchar pubkey[ static 32 ], + ulong idx ) { + fd_memset( pubkey, 0, 32UL ); + fd_memcpy( pubkey, &idx, sizeof(ulong) ); +} + +static fd_accdb_t * +bench_setup( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz ) { + int fd = memfd_create( "accdb_hotread", 0 ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + *out_fd = fd; + + ulong cache_fp = BENCH_CACHE_FOOTPRINT; + ulong shmem_fp = fd_accdb_shmem_footprint( max_accounts, max_live_slots, max_account_writes_per_slot, partition_cnt, cache_fp, 640UL, 1UL ); + FD_TEST( shmem_fp ); + void * shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( shmem_mem ); + fd_accdb_shmem_t * shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( shmem_mem, max_accounts, max_live_slots, + max_account_writes_per_slot, partition_cnt, + partition_sz, cache_fp, 640UL, 0, 42UL, 1UL ) ); + FD_TEST( shmem ); + + ulong accdb_fp = fd_accdb_footprint( max_live_slots ); + FD_TEST( accdb_fp ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, shmem, fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + ulong account_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--accounts", NULL, 10000UL ); + ulong duration_ns = fd_env_strip_cmdline_ulong( &argc, &argv, "--duration", NULL, 15000000000UL ); /* 15 s */ + uint seed = fd_env_strip_cmdline_uint ( &argc, &argv, "--seed", NULL, 42U ); + + FD_LOG_NOTICE(( "accdb hot-read bench (accounts=%lu duration=%.1f s seed=%u)", + account_cnt, (double)duration_ns/1e9, seed )); + + fd_rng_t _rng[1]; + fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, seed, 0UL ) ); + FD_TEST( rng ); + + /* Setup */ + int fd; + ulong partition_sz = 1UL<<30UL; + ulong partition_cnt = 1024UL; + fd_accdb_t * accdb = bench_setup( &fd, + account_cnt + 1024UL, + 64UL, + (uint)account_cnt + 1024U, + partition_cnt, + partition_sz ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t fork = fd_accdb_attach_child( accdb, root ); + + /* Populate accounts so they are all in cache */ + uchar pubkey[ 32 ]; + for( ulong i=0UL; i +#include +#include +#include + +/* bench_accdb_txn: Simulate realistic mainnet transaction patterns + against the accounts database in a tight loop. + + Each simulated transaction acquires a mix of read-only and read-write + accounts, optionally mutates the writable ones, then releases with + commit or revert based on measured mainnet failure rates. + + The transaction mix, account counts, data sizes, and commit/revert + ratios are derived from a 1000-slot mainnet replay + (slots 406545575-406546575, ~1.24M transactions). + + The benchmark pre-populates a pool of accounts with realistic sizes, + then runs the acquire/release loop for a configurable duration, + reporting aggregate throughput. + + This is NOT a full transaction execution benchmark — it purely + measures the accounts database hot path (cache hits, acquire/release, + commit/revert) under a realistic workload shape. */ + +static uchar dummy_owner[ 32 ] = { 0xEE }; + +/* Maximum data buffer for writes. Writable accounts need staging + space; we cap at a reasonable size for the benchmark. */ +#define BENCH_MAX_DATA_SZ (10UL<<20UL) /* 10 MiB max */ +#define BENCH_MAX_ACCTS_PER_TXN (64UL) +#define BENCH_CACHE_FOOTPRINT (16UL<<30UL) + +/* Transaction archetype: a representative mix of account access + patterns observed on mainnet. Each archetype specifies: + - ro_cnt / rw_cnt: number of read-only / read-write accounts + - ro_data_sz / rw_data_sz: representative per-account data size + - weight: frequency in parts per 10000 + - fail_rate: failure probability in parts per 10000 + + Derived from the per-transaction histograms measured on + mainnet-406545575-perf (1000 slots, 1.24M txns). The archetypes + cover ~99% of observed transactions. */ + +struct txn_archetype { + uint ro_cnt; + uint rw_cnt; + uint ro_data_sz; /* representative per-account read-only data size */ + uint rw_data_sz; /* representative per-account read-write data size */ + uint weight; /* parts per 10000 */ + uint fail_ppm; /* failure rate in parts per 10000 */ +}; + +/* Archetypes derived from the histogram data: + + ~62% of txns: 1 RO, 2 RW — simple transfers/token ops + - RO: mostly <128 B (program accounts) + - RW: mostly 165-500 B (token accounts) + - Fail rate: ~0.25% of these (very low) + + ~3% of txns: 2 RO, 2-3 RW — token swaps (simple) + - RO: 128-512 B + - RW: 165-512 B + - Fail rate: ~4% + + ~4% of txns: 4 RO, 4 RW — small DeFi interactions + - RO: 128-1K + - RW: 256-1K + - Fail rate: ~6% + + ~5% of txns: 5-8 RO, 5-8 RW — medium DeFi/AMM swaps + - RO: 1K-4K per account + - RW: 512-2K per account + - Fail rate: ~7% + + ~14% of txns: 12 RO, 12 RW — complex DeFi (Raydium, Orca, etc.) + - RO: 8K per account (64K-128K total / ~12 accounts) + - RW: 2K per account (16K-32K total / ~12 accounts) + - Fail rate: ~27% + + ~9% of txns: 24 RO, 24 RW — very complex DeFi, multi-hop routes + - RO: 8K per account (128K-256K total / ~24 accounts) + - RW: 2K per account (32K-64K total / ~24 accounts) + - Fail rate: ~34% + + ~4% of txns: 2 RO, 48 RW — bulk operations (token-2022, etc.) + - RO: 128 B + - RW: 165 B + - Fail rate: ~17% +*/ + +static struct txn_archetype const TXN_ARCHETYPES[] = { + /* ro rw ro_sz rw_sz weight fail */ + { 0, 1, 0, 165, 300, 25 }, /* single write (baseline) */ + { 1, 2, 82, 165, 5930, 25 }, /* simple transfer/token op */ + { 2, 3, 200, 300, 330, 400 }, /* simple swap */ + { 4, 4, 512, 512, 370, 600 }, /* small DeFi */ + { 6, 6, 2048, 1024, 505, 700 }, /* medium DeFi / AMM */ + { 12, 12, 8192, 2048, 1354, 2700 }, /* complex DeFi (12+12) */ + { 24, 24, 8192, 2048, 891, 3400 }, /* multi-hop DeFi (24+24) */ + { 2, 48, 128, 165, 320, 1700 }, /* bulk operations */ +}; + +#define TXN_ARCHETYPE_CNT (sizeof(TXN_ARCHETYPES)/sizeof(TXN_ARCHETYPES[0])) + +static void +make_pubkey( uchar pubkey[ static 32 ], + ulong idx ) { + fd_memset( pubkey, 0, 32UL ); + fd_memcpy( pubkey, &idx, sizeof(ulong) ); +} + +static fd_accdb_t * +bench_setup( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz ) { + int fd = memfd_create( "accdb_txn", 0 ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + *out_fd = fd; + + ulong cache_fp = BENCH_CACHE_FOOTPRINT; + ulong shmem_fp = fd_accdb_shmem_footprint( max_accounts, max_live_slots, + max_account_writes_per_slot, + partition_cnt, cache_fp, 640UL, 1UL ); + FD_TEST( shmem_fp ); + void * shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( shmem_mem ); + fd_accdb_shmem_t * shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( shmem_mem, max_accounts, max_live_slots, + max_account_writes_per_slot, partition_cnt, + partition_sz, cache_fp, 640UL, 0, 42UL, 1UL ) ); + FD_TEST( shmem ); + + ulong accdb_fp = fd_accdb_footprint( max_live_slots ); + FD_TEST( accdb_fp ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, shmem, fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + ulong account_cnt = fd_env_strip_cmdline_ulong( &argc, &argv, "--accounts", NULL, 50000UL ); + ulong duration_ns = fd_env_strip_cmdline_ulong( &argc, &argv, "--duration", NULL, 15000000000UL ); + uint seed = fd_env_strip_cmdline_uint ( &argc, &argv, "--seed", NULL, 42U ); + + FD_LOG_NOTICE(( "accdb txn-pattern bench" + " (accounts=%lu duration=%.1f s seed=%u)", + account_cnt, (double)duration_ns/1e9, seed )); + + fd_rng_t _rng[1]; + fd_rng_t * rng = fd_rng_join( fd_rng_new( _rng, seed, 0UL ) ); + FD_TEST( rng ); + + /* Setup */ + int fd; + ulong partition_sz = 1UL<<30UL; + ulong partition_cnt = 8192UL; + fd_accdb_t * accdb = bench_setup( &fd, + 1200000000UL, + 4096UL, + (uint)account_cnt + 4096U, + partition_cnt, + partition_sz ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( + accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t fork = fd_accdb_attach_child( accdb, root ); + + /* Pre-populate accounts with a distribution of sizes matching + mainnet. Use a weighted mix: most accounts are 165 B (token + accounts), with some larger ones for DeFi state. */ + FD_LOG_NOTICE(( "populating %lu accounts ...", account_cnt )); + { + /* Size distribution for populating: weight/1000, avg_sz */ + static const struct { uint weight; uint sz; } pop_dist[] = { + { 650, 165 }, /* token accounts */ + { 200, 82 }, /* small / program-derived */ + { 50, 512 }, /* medium state */ + { 40, 2048 }, /* AMM pool state */ + { 40, 8192 }, /* large DeFi state (e.g. Raydium) */ + { 20, 165 }, /* misc */ + }; + ulong pop_dist_cnt = sizeof(pop_dist)/sizeof(pop_dist[0]); + + uchar pubkey[ 32 ]; + for( ulong i=0UL; iro_cnt + (ulong)arch->rw_cnt; + + /* 2. Pick unique random accounts for this txn. + RW accounts come first, then RO accounts. */ + for( ulong i=0UL; irw_cnt ) ? 1 : 0; + } + memset( accs, 0, total_cnt * sizeof(fd_acc_t) ); + + /* 3. Acquire */ + long t0 = fd_log_wallclock(); + fd_accdb_acquire( accdb, fork, total_cnt, + pubkey_ptrs, writable, accs ); + + /* 4. Decide commit or revert */ + int do_commit = ( (fd_rng_uint( rng ) % 10000U) >= arch->fail_ppm ); + + /* 5. For writable accs, set commit flag and touch data */ + for( ulong i=0UL; i<(ulong)arch->rw_cnt; i++ ) { + accs[ i ].commit = do_commit; + if( do_commit && accs[ i ].data ) { + /* Touch a byte to simulate mutation */ + accs[ i ].data[ 0 ] ^= 0x01; + } + } + + /* 6. Release */ + fd_accdb_release( accdb, total_cnt, accs ); + long t1 = fd_log_wallclock(); + + arch_txn_cnt[ arch_idx ]++; + arch_commit_cnt[ arch_idx ] += (ulong)do_commit; + arch_ns[ arch_idx ] += ( t1 - t0 ); + txn_cnt++; + } + } + + long elapsed = fd_log_wallclock() - start; + double secs = (double)elapsed / 1e9; + + /* Report per-archetype results */ + FD_LOG_NOTICE(( "--- bench_accdb_txn results" + " (%lu txns in %.3f s, %.0f txn/s) ---", + txn_cnt, secs, (double)txn_cnt / secs )); + FD_LOG_NOTICE(( " %-6s %4s %4s %7s %10s %8s %10s %10s %10s", + "Arch", "RO", "RW", "Wt%", "Txns", "Commit%", + "Txn/s", "ns/txn", "ns/acc" )); + + ulong total_commit = 0UL; + ulong total_accts = 0UL; + for( ulong i=0UL; i0.0 ) { + FD_LOG_NOTICE(( " Mainnet-weighted avg: %.0f ns/acc" + " (weighted by archetype frequency" + " x accounts per txn)", + weighted_ns_per_acc / weight_sum )); + } + } + + fd_rng_delete( fd_rng_leave( rng ) ); + close( fd ); + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} diff --git a/src/flamenco/accdb/fd_accdb.c b/src/flamenco/accdb/fd_accdb.c new file mode 100644 index 00000000000..6f95301bbf3 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb.c @@ -0,0 +1,3903 @@ +#define _GNU_SOURCE +#include "fd_accdb.h" +#include "fd_accdb_shmem.h" +#define FD_ACCDB_NO_FORK_ID +#include "fd_accdb_private.h" +#undef FD_ACCDB_NO_FORK_ID + +#if FD_TMPL_USE_HANDHOLDING +#include "../../ballet/txn/fd_txn.h" +#include "../../ballet/base58/fd_base58.h" +#endif +#include "../../util/racesan/fd_racesan_target.h" + +FD_STATIC_ASSERT( sizeof(fd_accdb_cache_line_t)==FD_ACCDB_CACHE_META_SZ, cache_meta_sz ); + +#if FD_HAS_RACESAN +/* Test-only telemetry: background_compact publishes the pubkey + dest + offset of the record it is about to relocation-CAS at the + accdb_compact:pre_offset_cas hook, so test_accdb_racesan can PROVE the + parked relocation is the account it set up (avoiding a vacuous test). + Zero-cost / absent in production (racesan off). */ +uchar fd_accdb_dbg_reloc_pubkey[ 32UL ]; +ulong fd_accdb_dbg_reloc_dest; +ulong fd_accdb_dbg_reloc_cnt; +#endif + +#include +#include +#include +#include +#include + +struct fd_accdb_fork { + fd_accdb_fork_shmem_t * shmem; + descends_set_t * descends; +}; + +typedef struct fd_accdb_fork fd_accdb_fork_t; + +#define FD_ACCDB_ACQUIRE_STATE_IDLE (0) +#define FD_ACCDB_ACQUIRE_STATE_PHASE_A (1) +#define FD_ACCDB_ACQUIRE_STATE_OPEN (2) + +struct __attribute__((aligned(FD_ACCDB_ALIGN))) fd_accdb_private { + int fd; + + int acquire_state; + + fd_accdb_shmem_t * shmem; + + fd_accdb_fork_t * fork_pool; + fork_pool_t fork_shmem_pool[1]; + + fd_accdb_accmeta_t * acc_pool; + acc_pool_t acc_pool_join[1]; + uint * acc_map; + + uchar * cache [ FD_ACCDB_CACHE_CLASS_CNT ]; + + fd_accdb_partition_t * partition_pool; + compaction_dlist_t * compaction_dlist[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + deferred_free_dlist_t * deferred_free_dlist; + + txn_pool_t txn_pool[1]; + + /* Pointer into shmem->joiner_epochs[ my_slot ].val for writer + joiners, or into a private per-tile fseq for read-only joiners. + Set to the current global epoch on entry to an epoch-protected + operation, and ULONG_MAX on exit. Used to determine when + deferred frees are safe. */ + ulong * my_epoch_slot; + + /* Read-only pointers to external epoch slots (e.g. fseqs owned by + RO consumer tiles like the rpc tile). Scanned in addition to + shmem->joiner_epochs[] by compaction's deferred-free + reclamation. Borrowed; the caller of fd_accdb_new owns the + storage. */ + ulong const * const * external_epoch_slots; + ulong external_epoch_cnt; + + /* Side buffer of acc pool indices that have been CAS-unlinked from + their hash chains but cannot be released back to acc_pool yet, + because concurrent readers (acquire / compact) may still be + traversing the removed nodes via map.next. The batch is released + once all joiner_epochs exceed shmem->deferred_acc_epoch. Indices + are written here (not into pool.next) until after the epoch drain + because pool.next is union-aliased to cache_idx, which a concurrent + cold_load_acc may still write through a captured pointer. Backed + by shmem->deferred_acc_buf_off; cnt and epoch live in shmem too. */ + uint * deferred_acc_buf; + + /* Chain of fork pool slots whose IDs are still potentially + referenced by concurrent readers (via descends_set_test or + root_fork_id snapshot). The chain is released back to fork_pool + once all joiner_epochs exceed deferred_fork_epoch. NULL head + means no deferred forks. */ + fd_accdb_fork_shmem_t * deferred_fork_head; + fd_accdb_fork_shmem_t * deferred_fork_tail; + ulong deferred_fork_epoch; + + fd_accdb_metrics_t metrics[1]; + + /* Set by fd_accdb_snapshot_load_begin/end. When non-zero, layer-0 + partition handoffs (in change_partition) re-tier the partitions + that fell out of the snapshot-load working set: P-2 to Warm and + P-3 to Cold. This backfills tiering for snapshot-loaded data + that never gets a second write (and therefore would otherwise + never be promoted by compaction). */ + int snapshot_loading; +}; + +static inline fd_accdb_cache_line_t * +cache_line( fd_accdb_t * accdb, + ulong cls, + ulong idx ) { + return (fd_accdb_cache_line_t *)( accdb->cache[ cls ] + idx * fd_accdb_cache_slot_sz[ cls ] ); +} + +/* Bump the per-partition read counters for the partition that contains + file_offset. Called at preadv2 sites. Writes are counted at + allocate time (see fd_accdb_partition_write_bump) so that they reflect + bytes committed to a partition rather than syscalls — the snapshot + loader bypasses pwritev2 entirely, but every write still goes through + allocate_next_write. */ +static inline void +fd_accdb_partition_read_bump( fd_accdb_t * accdb, + ulong file_offset, + ulong bytes ) { + if( FD_UNLIKELY( !bytes ) ) return; + /* Readonly joiners have no partition_pool join (see + fd_accdb_join_readonly) and do not contribute to per-partition + read telemetry today; their disk reads still show up in the + joiner-local fd_accdb_metrics_t bytes_read/read_ops. */ + if( FD_UNLIKELY( !accdb->partition_pool ) ) return; + ulong partition_idx = file_offset / accdb->shmem->partition_sz; + fd_accdb_partition_t * p = partition_pool_ele( accdb->partition_pool, partition_idx ); + if( FD_UNLIKELY( !p ) ) return; + FD_ATOMIC_FETCH_AND_ADD( &p->bytes_read, bytes ); + FD_ATOMIC_FETCH_AND_ADD( &p->read_ops, 1UL ); +} + +/* Bump the per-partition write counters at allocate time. bytes is the + reserved size, which equals the bytes that will land on this + partition. Called from allocate_next_write and + allocate_next_compaction_write. */ +static inline void +fd_accdb_partition_write_bump( fd_accdb_t * accdb, + ulong file_offset, + ulong bytes ) { + if( FD_UNLIKELY( !bytes ) ) return; + ulong partition_idx = file_offset / accdb->shmem->partition_sz; + fd_accdb_partition_t * p = partition_pool_ele( accdb->partition_pool, partition_idx ); + if( FD_UNLIKELY( !p ) ) return; + FD_ATOMIC_FETCH_AND_ADD( &p->bytes_written, bytes ); + FD_ATOMIC_FETCH_AND_ADD( &p->write_ops, 1UL ); +} + +static inline ulong +cache_line_idx( fd_accdb_t * accdb, + ulong cls, + fd_accdb_cache_line_t const * line ) { + return (ulong)( (uchar const *)line - accdb->cache[ cls ] ) / fd_accdb_cache_slot_sz[ cls ]; +} + +#if FD_TMPL_USE_HANDHOLDING +static inline int +fd_accdb_ptr_in_region( fd_accdb_t const * accdb, + ulong cls, + void const * ptr ) { + if( FD_UNLIKELY( cls>=FD_ACCDB_CACHE_CLASS_CNT ) ) return 0; + + uchar const * base = accdb->cache[ cls ]; + if( FD_UNLIKELY( !base ) ) return 0; + + ulong slot_sz = fd_accdb_cache_slot_sz[ cls ]; + ulong region_sz = accdb->shmem->cache_class_max[ cls ] * slot_sz; + uchar const * p = (uchar const *)ptr; + + if( FD_UNLIKELY( p=base+region_sz ) ) return 0; + return ( (ulong)( p - base ) % slot_sz )==FD_ACCDB_CACHE_META_SZ; +} +#endif + +FD_FN_CONST ulong +fd_accdb_align( void ) { + return FD_ACCDB_ALIGN; +} + +FD_FN_CONST ulong +fd_accdb_footprint( ulong max_live_slots ) { + ulong l; + l = FD_LAYOUT_INIT; + l = FD_LAYOUT_APPEND( l, FD_ACCDB_ALIGN, sizeof(fd_accdb_t) ); + l = FD_LAYOUT_APPEND( l, alignof(fd_accdb_fork_t), max_live_slots*sizeof(fd_accdb_fork_t) ); + return FD_LAYOUT_FINI( l, FD_ACCDB_ALIGN ); +} + +void * +fd_accdb_new( void * ljoin, + fd_accdb_shmem_t * shmem, + int fd, + ulong external_epoch_cnt, + ulong const ** external_epoch_slots ) { + if( FD_UNLIKELY( !ljoin ) ) { + FD_LOG_WARNING(( "NULL ljoin" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)ljoin, fd_accdb_align() ) ) ) { + FD_LOG_WARNING(( "misaligned ljoin" )); + return NULL; + } + + if( FD_UNLIKELY( fd<0 ) ) { + FD_LOG_WARNING(( "fd must be a valid file descriptor" )); + return NULL; + } + + ulong max_live_slots = shmem->max_live_slots; + ulong max_accounts = shmem->max_accounts; + ulong max_account_writes_per_slot = shmem->max_account_writes_per_slot; + ulong partition_cnt = shmem->partition_cnt; + + ulong chain_cnt = fd_ulong_pow2_up( (max_accounts>>1) + (max_accounts&1UL) ); + ulong txn_max = max_live_slots * max_account_writes_per_slot; + + FD_SCRATCH_ALLOC_INIT( l, shmem ); + FD_SCRATCH_ALLOC_APPEND( l, FD_ACCDB_SHMEM_ALIGN, sizeof(fd_accdb_shmem_t) ); + void * _fork_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, fork_pool_align(), fork_pool_footprint() ); + void * _fork_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_fork_shmem_t), max_live_slots*sizeof(fd_accdb_fork_shmem_t) ); + void * _descends_sets = FD_SCRATCH_ALLOC_APPEND( l, descends_set_align(), max_live_slots*descends_set_footprint( max_live_slots ) ); + void * _acc_map = FD_SCRATCH_ALLOC_APPEND( l, alignof(uint), chain_cnt*sizeof(uint) ); + void * _acc_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, acc_pool_align(), acc_pool_footprint() ); + void * _acc_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_accmeta_t), max_accounts*sizeof(fd_accdb_accmeta_t) ); + void * _txn_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, txn_pool_align(), txn_pool_footprint() ); + void * _txn_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_txn_t), txn_max*sizeof(fd_accdb_txn_t) ); + void * _partition_pool = FD_SCRATCH_ALLOC_APPEND( l, partition_pool_align(), partition_pool_footprint( partition_cnt ) ); + void * _compaction_dlists[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + for( ulong k=0UL; kfd = fd; + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; + accdb->snapshot_loading = 0; + + accdb->shmem = (fd_accdb_shmem_t *)shmem; + FD_TEST( acc_pool_join( accdb->acc_pool_join, _acc_pool_shmem, _acc_pool_ele, max_accounts ) ); + accdb->acc_pool = accdb->acc_pool_join->ele; + accdb->acc_map = _acc_map; + FD_TEST( txn_pool_join( accdb->txn_pool, _txn_pool_shmem, _txn_pool_ele, txn_max ) ); + for( ulong c=0UL; ccache[ c ] = (uchar *)shmem + shmem->cache_region_off[ c ]; + accdb->partition_pool = partition_pool_join( _partition_pool ); + FD_TEST( accdb->partition_pool ); + for( ulong k=0UL; kcompaction_dlist[ k ] = compaction_dlist_join( _compaction_dlists[ k ] ); + FD_TEST( accdb->compaction_dlist[ k ] ); + } + accdb->deferred_free_dlist = deferred_free_dlist_join( _deferred_free_dlist ); + FD_TEST( accdb->deferred_free_dlist ); + + FD_TEST( fork_pool_join( accdb->fork_shmem_pool, _fork_pool_shmem, _fork_pool_ele, max_live_slots ) ); + accdb->fork_pool = _local_fork_pool; + for( ulong i=0UL; ifork_pool[ i ]; + fork->shmem = fork_pool_ele( accdb->fork_shmem_pool, i ); + fork->descends = descends_set_join( (uchar *)_descends_sets + i*descends_set_footprint( max_live_slots ) ); + FD_TEST( fork->shmem ); + FD_TEST( fork->descends ); + } + + ulong epoch_idx = FD_ATOMIC_FETCH_AND_ADD( &shmem->joiner_cnt, 1UL ); + FD_TEST( epoch_idxjoiner_cnt_max ); + accdb->my_epoch_slot = &shmem->joiner_epochs[ epoch_idx ].val; + + accdb->external_epoch_slots = external_epoch_slots; + accdb->external_epoch_cnt = external_epoch_cnt; + + accdb->deferred_acc_buf = (uint *)( (uchar *)shmem + shmem->deferred_acc_buf_off ); + + accdb->deferred_fork_head = NULL; + accdb->deferred_fork_tail = NULL; + accdb->deferred_fork_epoch = 0UL; + + memset( accdb->metrics, 0, sizeof(fd_accdb_metrics_t) ); + + return accdb; +} + +void +fd_accdb_snapshot_load_begin( fd_accdb_t * accdb ) { + accdb->snapshot_loading = 1; + FD_VOLATILE( accdb->shmem->snapshot_loading ) = 1; +} + +static inline void +change_partition( fd_accdb_t * accdb, + accdb_offset_t const * offset_before, + accdb_offset_t * out_offset, + int * has_partition, + uchar layer ); + +void +fd_accdb_snapshot_load_end( fd_accdb_t * accdb ) { + spin_lock_acquire( &accdb->shmem->partition_lock ); + + /* Force the next layer-0 write onto a fresh Hot partition so we do + not keep appending live execution writes to the tail of a partition + that was tagged Cold during snapshot load. Must run while + snapshot_loading is still set so the partition we just closed + (the snapshot-tagged Cold one) is not enqueued for compaction by + change_partition's tail-credit try_enqueue. change_partition will + retag the newly-allocated partition as Cold (because the flag is + still set), so we fix it back to Hot below. */ + if( FD_LIKELY( accdb->shmem->has_partition[ 0 ] ) ) { + change_partition( accdb, &accdb->shmem->whead[ 0 ], &accdb->shmem->whead[ 0 ], &accdb->shmem->has_partition[ 0 ], 0 ); + ulong new_idx = packed_partition_idx( &accdb->shmem->whead[ 0 ] ); + fd_accdb_partition_t * newp = partition_pool_ele( accdb->partition_pool, new_idx ); + FD_VOLATILE( newp->layer ) = 0; + } + + accdb->snapshot_loading = 0; + FD_VOLATILE( accdb->shmem->snapshot_loading ) = 0; + + /* Sweep all partitions written during the load — any that crossed + the fragmentation threshold while enqueue was suppressed are + re-checked now and pushed onto the compaction queue. */ + ulong partition_max = accdb->shmem->partition_max; + for( ulong p=0UL; pshmem, p ); + } + + spin_lock_release( &accdb->shmem->partition_lock ); +} + +fd_accdb_t * +fd_accdb_join( void * shaccdb ) { + if( FD_UNLIKELY( !shaccdb ) ) { + FD_LOG_WARNING(( "NULL shaccdb" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)shaccdb, fd_accdb_align() ) ) ) { + FD_LOG_WARNING(( "misaligned shaccdb" )); + return NULL; + } + + return (fd_accdb_t*)shaccdb; +} + +fd_accdb_t * +fd_accdb_join_readonly( void * ljoin, + fd_accdb_shmem_t * shmem, + ulong * my_epoch_slot_rw, + int fd_ro ) { + if( FD_UNLIKELY( !ljoin ) ) { + FD_LOG_WARNING(( "NULL ljoin" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)ljoin, fd_accdb_align() ) ) ) { + FD_LOG_WARNING(( "misaligned ljoin" )); + return NULL; + } + + if( FD_UNLIKELY( !my_epoch_slot_rw ) ) { + FD_LOG_WARNING(( "NULL my_epoch_slot_rw" )); + return NULL; + } + + ulong max_live_slots = shmem->max_live_slots; + ulong max_accounts = shmem->max_accounts; + ulong max_account_writes_per_slot = shmem->max_account_writes_per_slot; + ulong partition_cnt = shmem->partition_cnt; + + ulong chain_cnt = fd_ulong_pow2_up( (max_accounts>>1) + (max_accounts&1UL) ); + ulong txn_max = max_live_slots * max_account_writes_per_slot; + + /* Recompute the same shmem scratch layout that fd_accdb_shmem_new + used. All FD_SCRATCH_ALLOC_APPEND calls here only compute pointer + offsets — they do not write to shmem. */ + FD_SCRATCH_ALLOC_INIT( l, shmem ); + FD_SCRATCH_ALLOC_APPEND( l, FD_ACCDB_SHMEM_ALIGN, sizeof(fd_accdb_shmem_t) ); + void * _fork_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, fork_pool_align(), fork_pool_footprint() ); + void * _fork_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_fork_shmem_t), max_live_slots*sizeof(fd_accdb_fork_shmem_t) ); + void * _descends_sets = FD_SCRATCH_ALLOC_APPEND( l, descends_set_align(), max_live_slots*descends_set_footprint( max_live_slots ) ); + void * _acc_map = FD_SCRATCH_ALLOC_APPEND( l, alignof(uint), chain_cnt*sizeof(uint) ); + void * _acc_pool_shmem = FD_SCRATCH_ALLOC_APPEND( l, acc_pool_align(), acc_pool_footprint() ); + void * _acc_pool_ele = FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_accmeta_t), max_accounts*sizeof(fd_accdb_accmeta_t) ); + FD_SCRATCH_ALLOC_APPEND( l, txn_pool_align(), txn_pool_footprint() ); + FD_SCRATCH_ALLOC_APPEND( l, alignof(fd_accdb_txn_t), txn_max*sizeof(fd_accdb_txn_t) ); + FD_SCRATCH_ALLOC_APPEND( l, partition_pool_align(), partition_pool_footprint( partition_cnt ) ); + for( ulong k=0UL; kfd = fd_ro; + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; + accdb->shmem = shmem; + FD_TEST( acc_pool_join( accdb->acc_pool_join, _acc_pool_shmem, _acc_pool_ele, max_accounts ) ); + accdb->acc_pool = accdb->acc_pool_join->ele; + accdb->acc_map = _acc_map; + for( ulong c=0UL; ccache[ c ] = (uchar *)shmem + shmem->cache_region_off[ c ]; + + /* Writer-only structures: leave NULL so any accidental writer-path + call from a readonly joiner crashes loudly rather than corrupting + state. */ + accdb->partition_pool = NULL; + for( ulong k=0UL; kcompaction_dlist[ k ] = NULL; + accdb->deferred_free_dlist = NULL; + + FD_TEST( fork_pool_join( accdb->fork_shmem_pool, _fork_pool_shmem, _fork_pool_ele, max_live_slots ) ); + accdb->fork_pool = _local_fork_pool; + for( ulong i=0UL; ifork_pool[ i ]; + fork->shmem = fork_pool_ele( accdb->fork_shmem_pool, i ); + fork->descends = descends_set_join( (uchar *)_descends_sets + i*descends_set_footprint( max_live_slots ) ); + FD_TEST( fork->shmem ); + FD_TEST( fork->descends ); + } + + /* my_epoch_slot_rw points at memory owned by this joiner (e.g. a + private per-tile fseq) that the joiner can write to. The + accdb tile sees it via its external_epoch_slots[] array (mapped + read-only) and includes it in its compaction epoch scan. + Storing through this pointer is the only side effect a readonly + joiner has on shared state. */ + accdb->my_epoch_slot = my_epoch_slot_rw; + + /* Readonly joiners do not own external slots themselves; only the + compaction tile / writer joiners do. */ + accdb->external_epoch_slots = NULL; + accdb->external_epoch_cnt = 0UL; + + accdb->deferred_acc_buf = NULL; + accdb->deferred_fork_head = NULL; + accdb->deferred_fork_tail = NULL; + accdb->deferred_fork_epoch = 0UL; + + memset( accdb->metrics, 0, sizeof(fd_accdb_metrics_t) ); + + return accdb; +} + +/* T1 -> T2 cmd channel. Two states on cmd_op: + + IDLE - no cmd in flight + non-IDLE - cmd pending; T2 will process it then flip back to IDLE + + T1 submits by writing fork_id then cmd_op (non-IDLE). T2 processes + by reading fork_id then writing cmd_op = IDLE. T1 waits for IDLE + before submitting again, so T2 never sees a half-written cmd and + never re-processes the same cmd. */ + +static inline void +wait_cmd( fd_accdb_t * accdb ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + while( FD_VOLATILE_CONST( shmem->cmd_op )!=FD_ACCDB_CMD_IDLE ) FD_SPIN_PAUSE(); + FD_COMPILER_MFENCE(); +} + +static inline void +submit_cmd( fd_accdb_t * accdb, + uint op, + ushort fork_id ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + FD_VOLATILE( shmem->cmd_fork_id ) = fork_id; + FD_COMPILER_MFENCE(); + FD_VOLATILE( shmem->cmd_op ) = op; +} + +fd_accdb_fork_id_t +fd_accdb_attach_child( fd_accdb_t * accdb, + fd_accdb_fork_id_t parent_fork_id ) { + /* fork_pool_acquire is not NULL-checked: replay gates attaches on + fd_banks_is_full, and wait_cmd ensures the prior advance_root has + fully run on T2, so live + deferred forks <= max_live_slots. */ + wait_cmd( accdb ); + + fd_accdb_fork_shmem_t * acquired = fork_pool_acquire( accdb->fork_shmem_pool ); + ulong idx = fork_pool_idx( accdb->fork_shmem_pool, acquired ); + + fd_accdb_fork_t * fork = &accdb->fork_pool[ idx ]; + fd_accdb_fork_id_t fork_id = { .val = (ushort)idx }; + + fork->shmem->child_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + + if( FD_LIKELY( parent_fork_id.val==USHORT_MAX ) ) { + fork->shmem->parent_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + fork->shmem->sibling_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + + descends_set_null( fork->descends ); + accdb->shmem->root_fork_id = fork_id; + } else { + fd_accdb_fork_t * parent = &accdb->fork_pool[ parent_fork_id.val ]; + fork->shmem->parent_id = parent_fork_id; + + descends_set_copy( fork->descends, parent->descends ); + descends_set_insert( fork->descends, parent_fork_id.val ); + + /* Atomically prepend to parent's child list. T2 (background_purge) + may concurrently unlink a different child from the same list, so + we must CAS here. */ + FD_COMPILER_MFENCE(); + for(;;) { + ushort old_head = FD_VOLATILE_CONST( parent->shmem->child_id.val ); + fork->shmem->sibling_id = (fd_accdb_fork_id_t){ .val = old_head }; + FD_COMPILER_MFENCE(); + if( FD_LIKELY( FD_ATOMIC_CAS( &parent->shmem->child_id.val, old_head, fork_id.val )==old_head ) ) break; + FD_SPIN_PAUSE(); + } + } + + fork->shmem->generation = accdb->shmem->generation++; + fork->shmem->txn_head = UINT_MAX; + + FD_TEST( !descends_set_test( fork->descends, fork_id.val ) ); + + return fork_id; +} + +/* evict_clear_acc_cache_ref atomically tears down acc->cache_idx and + acc->executable_size.CACHE_VALID for an acc that is being evicted + from cache line (size_class, line_idx). The caller must already + hold an exclusive claim on the line (line->refcnt == + FD_ACCDB_EVICT_SENTINEL) so that no concurrent thread can pin the + line. + + The naive sequence (clear cache_idx, clear VALID) lets a reader in + cold_load_acc see VALID=1 and read a stale INVAL cache_idx, which + decodes to an OOB cache_line pointer. The reverse sequence (clear + VALID, clear cache_idx) lets a concurrent cold_load_acc observe + VALID=0/CLAIM=0 and start publishing a *new* cache_idx + VALID=1 + between our two stores; our later cache_idx=INVAL would then + stomp on the cold-loader's published idx. + + We close both races by acquiring CACHE_CLAIM_BIT before mutating + acc->cache_idx. cold_load_acc spins while CLAIM is held, so it + cannot enter the publish path concurrently. If CLAIM is already + held, a cold-loader is already mid-publish; in that case + acc->cache_idx is being repointed away from our line, and we must + not touch it. After mutation we release CLAIM. + + Verifies acc->cache_idx still encodes (size_class, line_idx) before + clobbering, in case the acc was concurrently re-published into a + different line (e.g. by a previous cold_load_acc completing before + we arrived). */ + +static inline void +evict_clear_acc_cache_ref( fd_accdb_accmeta_t * accmeta, + ulong size_class, + ulong line_idx ) { + uint expected_cidx = FD_ACCDB_ACC_CIDX_PACK( (uint)size_class, (uint)line_idx ); + + /* CAS-acquire CLAIM. If a cold-loader already holds CLAIM, they + own the publish path; bail without touching accmeta fields (their + republish is repointing accmeta->cache_idx away from our line). */ + for(;;) { + uint cur = FD_VOLATILE_CONST( accmeta->executable_size ); + if( FD_UNLIKELY( cur & FD_ACCDB_SIZE_CACHE_CLAIM_BIT ) ) return; + uint nxt = cur | FD_ACCDB_SIZE_CACHE_CLAIM_BIT; + if( FD_LIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, cur, nxt )==cur ) ) break; + fd_racesan_hook( "accdb_evict_clear:claim_wait" ); + FD_SPIN_PAUSE(); + } + + fd_racesan_hook( "accdb_evict_clear:post_claim" ); + + /* CLAIM held. If accmeta->cache_idx still points at our line, clear + VALID and INVAL the cache_idx. Otherwise the accmeta was already + re-published into a different line; leave it alone. */ + if( FD_LIKELY( FD_VOLATILE_CONST( accmeta->cache_idx )==expected_cidx ) ) { + FD_ATOMIC_FETCH_AND_AND( &accmeta->executable_size, ~FD_ACCDB_SIZE_CACHE_VALID_BIT ); + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_INVAL; + } + + /* Release CLAIM. */ + FD_ATOMIC_FETCH_AND_AND( &accmeta->executable_size, ~FD_ACCDB_SIZE_CACHE_CLAIM_BIT ); +} + +/* cache_free_push pushes a fully-freed cache line onto the per-class + CAS free list (Treiber stack). The caller must have already + invalidated the line (key.generation==UINT_MAX) and set persisted=1 + before pushing. */ + +static inline void +cache_free_push( fd_accdb_t * accdb, + ulong size_class, + fd_accdb_cache_line_t * line ) { + ulong line_idx = cache_line_idx( accdb, size_class, line ); + for(;;) { + ulong old_vt = FD_VOLATILE_CONST( accdb->shmem->cache_free[ size_class ].ver_top ); + uint old_top = (uint)( old_vt & (ulong)UINT_MAX ); + uint old_ver = (uint)( old_vt >> 32 ); + line->next = old_top; + FD_COMPILER_MFENCE(); + ulong new_vt = ((ulong)(uint)( old_ver+1U ) << 32) | (ulong)(uint)line_idx; + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->shmem->cache_free[ size_class ].ver_top, old_vt, new_vt )==old_vt ) ) { + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->cache_free_cnt[ size_class ].val, 1UL ); + return; + } + FD_SPIN_PAUSE(); + } +} + +/* cache_free_pop pops a line from the per-class CAS free list. Returns + NULL if the list is empty. */ + +static inline fd_accdb_cache_line_t * +cache_free_pop( fd_accdb_t * accdb, + ulong size_class ) { + for(;;) { + ulong old_vt = FD_VOLATILE_CONST( accdb->shmem->cache_free[ size_class ].ver_top ); + uint old_top = (uint)( old_vt & (ulong)UINT_MAX ); + if( FD_UNLIKELY( old_top==UINT_MAX ) ) return NULL; + uint old_ver = (uint)( old_vt >> 32 ); + fd_accdb_cache_line_t * top = cache_line( accdb, size_class, (ulong)old_top ); + uint next = FD_VOLATILE_CONST( top->next ); + ulong new_vt = ((ulong)(uint)( old_ver+1U ) << 32) | (ulong)next; + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->shmem->cache_free[ size_class ].ver_top, old_vt, new_vt )==old_vt ) ) { + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->cache_free_cnt[ size_class ].val, 1UL ); + return top; + } + FD_SPIN_PAUSE(); + } +} + +/* cache_try_pin attempts a lock-free pin of a cache-hit line. Returns + the line if successfully pinned, or NULL if the line is being evicted + or was recycled (ABA). */ + +static inline fd_accdb_cache_line_t * +cache_try_pin( fd_accdb_cache_line_t * line, + uchar const pubkey[ 32 ], + uint generation ) { + for(;;) { + uint old_rc = FD_VOLATILE_CONST( line->refcnt ); + if( FD_UNLIKELY( old_rc==FD_ACCDB_EVICT_SENTINEL ) ) return NULL; + /* No saturation guard needed: refcnt is a uint and at most + FD_ACCDB_MAX_JOINERS (256) threads can pin concurrently, + so old_rc+1 can never reach FD_ACCDB_EVICT_SENTINEL + (UINT_MAX) or wrap. */ + if( FD_LIKELY( FD_ATOMIC_CAS( &line->refcnt, old_rc, old_rc+1U )==old_rc ) ) { + /* Pinned. ABA check: verify the key hasn't changed under us. */ + fd_racesan_hook( "accdb_try_pin:post_cas" ); + FD_COMPILER_MFENCE(); + if( FD_UNLIKELY( line->key.generation!=generation || + memcmp( line->key.pubkey, pubkey, 32UL ) ) ) { + FD_ATOMIC_FETCH_AND_SUB( &line->refcnt, 1U ); + return NULL; + } + line->referenced = 1; + fd_racesan_hook( "cache_try_pin:pinned" ); + return line; + } + FD_SPIN_PAUSE(); + } +} + +/* wait_for_epoch_drain spins until every joiner's published epoch + exceeds tag, meaning all readers that were active at epoch=tag have + since exited their critical sections. */ + +static void +wait_for_epoch_drain( fd_accdb_t * accdb, + ulong tag ) { + for(;;) { + ulong min_epoch = ULONG_MAX; + ulong joiner_cnt = FD_VOLATILE_CONST( accdb->shmem->joiner_cnt ); + for( ulong t=0UL; tshmem->joiner_epochs[ t ].val ); + if( FD_LIKELY( eexternal_epoch_cnt; t++ ) { + ulong e = FD_VOLATILE_CONST( *accdb->external_epoch_slots[ t ] ); + if( FD_LIKELY( edeferred_fork_head ) ) { + wait_for_epoch_drain( accdb, accdb->deferred_fork_epoch ); + fork_pool_release_chain( accdb->fork_shmem_pool, accdb->deferred_fork_head, accdb->deferred_fork_tail ); + accdb->deferred_fork_head = NULL; + accdb->deferred_fork_tail = NULL; + } + + ulong n = accdb->shmem->deferred_acc_buf_cnt; + if( FD_LIKELY( !n ) ) return; + wait_for_epoch_drain( accdb, accdb->shmem->deferred_acc_epoch ); + + /* All readers that could have been holding a captured pointer to any + of these accs at unlink time have now exited their epoch sections. + It is safe to materialize pool.next links and hand the chain to + acc_pool_release_chain. */ + uint * buf = accdb->deferred_acc_buf; + fd_accdb_accmeta_t * acc_pool = accdb->acc_pool; + + /* Late-publish sweep: a concurrent acquire evictor may have published + a new offset into one of these accmetas after acc_unlink's + xchg-to-INVAL but before exiting its epoch. Now that the epoch has + drained, any such publish is complete and visible. Free the + orphaned disk bytes here, before the accmeta is released to the + pool and its fields recycled. */ + ulong acc_pool_cap = acc_pool_ele_max( accdb->acc_pool_join ); + for( ulong i=0UL; iexecutable_size)+sizeof(fd_accdb_disk_meta_t); + fd_accdb_shmem_bytes_freed( accdb->shmem, off, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + } + + for( ulong i=0UL; i+1ULacc_pool_join, head, tail ); + accdb->shmem->deferred_acc_buf_cnt = 0UL; +} + +/* deferred_acc_append records an unlinked acc index in the side buffer + for later release after wait_for_epoch_drain. T2 is the sole writer. + The chain link from acc->pool.next is NOT laid down here: pool.next + is union-aliased to cache_idx, and a concurrent cold_load_acc may + still publish through a captured pointer until the epoch drains. + Materialization of the chain happens in drain_deferred_frees. */ + +static inline void +deferred_acc_append( fd_accdb_t * accdb, + uint acc_idx ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + FD_TEST( shmem->deferred_acc_buf_cntdeferred_acc_buf_max ); + accdb->deferred_acc_buf[ shmem->deferred_acc_buf_cnt++ ] = acc_idx; +} + +/* acc_unlink unlinks an account from its hash map chain, frees any + associated disk bytes, and invalidates a stale cache reference. Does + NOT release the acc pool slot — the caller is responsible for that + (or for batching releases). + + prev is the previous element in the map chain (UINT_MAX if acc_idx is + the head). + + CONCURRENCY: The chain link being removed is swapped out with a CAS + so that a concurrent fd_accdb_release prepending to the same chain + cannot lose its update. If a head-removal CAS fails (a new node was + prepended since we loaded the head), we re-walk from the new head to + find the target as an interior node. Interior CAS cannot fail from + inserts (inserts only touch the head) and only one remover exists at + a time (advance_root / purge are serialized). */ + +static inline void +acc_unlink( fd_accdb_t * accdb, + uint map_idx, + uint prev, + uint acc_idx ) { + fd_accdb_accmeta_t * accmeta = &accdb->acc_pool[ acc_idx ]; + + /* Atomically capture and clear the offset. Two races to defuse: + + (1) A concurrent fd_accdb_acquire_inner that is CLOCK-evicting the + cache line currently holding this acc's data may have already + xchg'd the offset to INVAL in step 5-6 and freed the old disk + bytes. Without atomicity we would re-read the old offset and + free those same bytes a second time. The xchg here serializes: + whoever wins sees the real offset and frees; the loser sees + INVAL and skips. + + (2) That same evictor may also be mid-flight to publish a NEW + offset in step 9 (after step 5-6's free but before step 9's + store). That late publish lands on an accmeta that is about + to be chain-unlinked and deferred-released. drain_deferred_ + frees sweeps the deferred buffer after epoch drain to catch + the late publish and free the orphaned bytes. */ + ulong entry_sz = (ulong)FD_ACCDB_SIZE_DATA(accmeta->executable_size)+sizeof(fd_accdb_disk_meta_t); + ulong old_offset = fd_accdb_acc_xchg_offset( accmeta, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_offset!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_offset, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->accounts_total, 1UL ); + accdb->metrics->accounts_deleted++; + + if( FD_LIKELY( prev==UINT_MAX ) ) { + /* Head removal — CAS may fail if a concurrent insert prepended a + new node. On failure the target is now interior. */ + for(;;) { + uint old_head = FD_VOLATILE_CONST( accdb->acc_map[ map_idx ] ); + if( FD_LIKELY( old_head==acc_idx ) ) { + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->acc_map[ map_idx ], acc_idx, accmeta->map.next )==acc_idx ) ) break; + FD_SPIN_PAUSE(); + continue; + } + /* Head changed — walk from new head to find prev for interior + removal. The target must still be in the chain because only + this thread removes elements. */ + prev = old_head; + while( FD_VOLATILE_CONST( accdb->acc_pool[ prev ].map.next )!=acc_idx ) prev = FD_VOLATILE_CONST( accdb->acc_pool[ prev ].map.next ); + FD_ATOMIC_CAS( &accdb->acc_pool[ prev ].map.next, acc_idx, accmeta->map.next ); + break; + } + } else { + FD_ATOMIC_CAS( &accdb->acc_pool[ prev ].map.next, acc_idx, accmeta->map.next ); + } + + fd_racesan_hook( "accdb_acc_unlink:post_splice" ); + + /* If the freed acc still has a cached location, invalidate it and + try to reclaim the cache line so the eviction path does not try + to write back stale data from a recycled pool slot. Lock-free: + CAS the refcnt 0 -> EVICT_SENTINEL to claim it exclusively, then + push to the CAS free list. If the line is pinned (refcnt>0), + skip, the pinner's release will handle it. + + Acquire CACHE_CLAIM_BIT before touching acc->cache_idx / + CACHE_VALID — see evict_clear_acc_cache_ref for the protocol. + Without CLAIM, a concurrent cold_load_acc can publish a fresh + (cache_idx, VALID=1) pair into this acc between our two stores, + and our subsequent cache_idx=INVAL stomps onto the freelist + pool.next field (the union sibling of cache_idx), corrupting the + pool. Unlike evict_clear_acc_cache_ref, we cannot bail when CLAIM + is held: this acc is being permanently unlinked, so we must + spin-wait for the cold-loader to release CLAIM and then invalidate + whatever cache_idx is current. */ + uint cur_es; + for(;;) { + cur_es = FD_VOLATILE_CONST( accmeta->executable_size ); + if( FD_UNLIKELY( cur_es & FD_ACCDB_SIZE_CACHE_CLAIM_BIT ) ) { FD_SPIN_PAUSE(); continue; } + uint nxt_es = cur_es | FD_ACCDB_SIZE_CACHE_CLAIM_BIT; + if( FD_LIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, cur_es, nxt_es )==cur_es ) ) break; + FD_SPIN_PAUSE(); + } + + uint cidx = FD_ACCDB_ACC_CIDX_INVAL; + int had_valid = FD_ACCDB_SIZE_CACHE_VALID( cur_es ); + if( FD_UNLIKELY( had_valid ) ) { + cidx = FD_VOLATILE_CONST( accmeta->cache_idx ); + /* Clear VALID before INVAL'ing cache_idx — matches the order in + evict_clear_acc_cache_ref so cold_load_acc's "VALID=1 + + cidx=INVAL" spin path resolves on the next iteration when it + observes VALID=0. */ + FD_ATOMIC_FETCH_AND_AND( &accmeta->executable_size, ~FD_ACCDB_SIZE_CACHE_VALID_BIT ); + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_INVAL; + } + + /* Release CLAIM. */ + FD_ATOMIC_FETCH_AND_AND( &accmeta->executable_size, ~FD_ACCDB_SIZE_CACHE_CLAIM_BIT ); + + if( FD_UNLIKELY( had_valid ) ) { + fd_accdb_cache_line_t * stale = cache_line( accdb, FD_ACCDB_ACC_CIDX_CLASS( cidx ), FD_ACCDB_ACC_CIDX_IDX( cidx ) ); + fd_racesan_hook( "acc_unlink:pre_reclaim_cas" ); + uint old_rc = FD_ATOMIC_CAS( &stale->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL ); + fd_racesan_hook( "acc_unlink:post_reclaim_cas" ); + if( FD_LIKELY( !old_rc ) ) { + /* Claimed. Validate key (ABA, slot could have been recycled + between our read of cache_idx and the CAS). */ + if( FD_LIKELY( stale->key.generation==accmeta->key.generation && + !memcmp( stale->key.pubkey, accmeta->key.pubkey, 32UL ) ) ) { + ulong sc = FD_ACCDB_ACC_CIDX_CLASS( cidx ); + stale->key.generation = UINT_MAX; + stale->persisted = 1; + stale->acc_idx = UINT_MAX; + stale->refcnt = 0; + cache_free_push( accdb, sc, stale ); + } else { + /* Wrong line (ABA). Release claim. */ + FD_VOLATILE( stale->refcnt ) = 0; + } + } + else if( FD_LIKELY( old_rc!=FD_ACCDB_EVICT_SENTINEL ) ) { + /* Pinned by an active reader. We cannot reclaim the line, but + its accmeta slot is about to be deferred-released and recycled. + If we just skipped, a later writeback of this still dirty line + would pair the recycled accmeta's pubkey with the old account's + owner and data, a silent corruption. Mark the line persisted so + the writeback gate never fires. + + This is the only case that needs neutralizing: a reader's pin + does not keep the slot alive, so the slot can recycle under it. + + A plain store is sufficient: the line is pinned (refcnt>0) so + CLOCK/preevict cannot claim it (their refcnt 0->SENTINEL CAS + fails), and the pinning reader only ever reads key/owner/data + and, post-pin, writes the unrelated `referenced` byte — never + `persisted`. So no other thread writes this byte while we do. + + Leave key/owner/data/acc_idx intact: the reader still reads them. + Once the pin drops the line is reclaimed by CLOCK (or by the + reader's own release). acc_idx still points at our now-recycled + slot, but CLOCK's evict_clear_acc_cache_ref on it is a no-op: + the recycled accmeta's cache_idx no longer matches this line's + packed cidx (same invariant the release path relies on, see the + refcnt-CAS-fail comment in fd_accdb_release). That reclaim is + lazy so the slot is briefly dark capacity. */ + FD_VOLATILE( stale->persisted ) = 1; + + /* The tombstone self-unlink an legitimately be pinned here, + old version and purge unlinks are never pinned. A live account + here means that invariant regressed. Reading is safe as the + unlinked accmeta is on a frozen bank and can't mutate. */ + FD_TEST( accmeta->lamports==0UL ); + } + else { + /* A foreground evictor already claimed this line. It holds its + epoch acquire and writeback, so drain_deferred_frees cannot + recycle the slot before it finishes. Its writeback names the old + account correctly, no poison. */ + } + } +} + +/* fork_slot_defer removes fork_id from every descends_set and chains + the fork pool slot onto the deferred fork chain for later release. + The slot must not be released immediately because concurrent readers + may still reference the fork ID via descends_set or stale chain + walks. + + The eager descends_set_remove here is safe despite being a + non-atomic RMW that races with concurrent descends_set_test in + fd_accdb_acquire, for two reasons: + + (a) Rooted parent forks: after advance_root publishes the new + root_fork_id, any acquire loads root_generation >= + parent->generation. Every account from the old parent has + generation <= parent->generation, so the + "generation > root_generation" gate in the chain walk is + never satisfied and the parent's bit is never tested. + + (b) Purged / pruned sibling forks: a purged fork is by + definition not an ancestor of any live fork, so its bit + was never set in any live fork's descends_set. Clearing + it is a literal no-op. + + Fork-id ABA after slot reuse is also safe: the fork pool slot + is not released until drain_deferred_frees, which waits until + all epoch-protected readers have exited. On x86 (TSO), the + synchronization chain (T2: bit clear -> epoch FAA; reader: + epoch load -> epoch_slot store -> mfence -> bit read) guarantees + that any reader entering a new epoch section after the drain + will observe the cleared bit before the slot is recycled by + attach_child. */ + +static inline void +fork_slot_defer( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + fd_accdb_fork_shmem_t ** fork_head, + fd_accdb_fork_shmem_t ** fork_tail ) { + for( ulong i=0UL; ishmem->max_live_slots; i++ ) descends_set_remove( accdb->fork_pool[ i ].descends, fork_id.val ); + fd_accdb_fork_shmem_t * shmem = fork_pool_ele( accdb->fork_shmem_pool, (ulong)fork_id.val ); + if( *fork_tail ) (*fork_tail)->pool.next = fork_pool_private_cidx( (ulong)fork_id.val ); + else *fork_head = shmem; + *fork_tail = shmem; +} + +static void +purge_inner( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + fd_accdb_fork_shmem_t ** fork_head, + fd_accdb_fork_shmem_t ** fork_tail ) { + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + + fd_accdb_fork_id_t child = fork->shmem->child_id; + while( child.val!=USHORT_MAX ) { + fd_accdb_fork_id_t next = accdb->fork_pool[ child.val ].shmem->sibling_id; + purge_inner( accdb, child, fork_head, fork_tail ); + child = next; + } + + uint txn = fork->shmem->txn_head; + if( txn!=UINT_MAX ) { + fd_accdb_txn_t * txn_head = txn_pool_ele( accdb->txn_pool, (ulong)txn ); + fd_accdb_txn_t * txn_tail = NULL; + while( txn!=UINT_MAX ) { + fd_accdb_txn_t * txne = txn_pool_ele( accdb->txn_pool, (ulong)txn ); + + uint acc_idx = txne->acc_pool_idx; + + uint prev = UINT_MAX; + uint cur = FD_VOLATILE_CONST( accdb->acc_map[ txne->acc_map_idx ] ); + while( cur!=acc_idx ) { + prev = cur; + cur = FD_VOLATILE_CONST( accdb->acc_pool[ cur ].map.next ); + } + + fd_racesan_hook( "accdb_purge:pre_unlink" ); + acc_unlink( accdb, txne->acc_map_idx, prev, acc_idx ); + deferred_acc_append( accdb, acc_idx ); + + txn_tail = txne; + txn = txne->fork.next; + } + txn_pool_release_chain( accdb->txn_pool, txn_head, txn_tail ); + } + + fork_slot_defer( accdb, fork_id, fork_head, fork_tail ); +} + +static inline void +remove_children( fd_accdb_t * accdb, + fd_accdb_fork_t * fork, + fd_accdb_fork_t * except, + fd_accdb_fork_shmem_t ** fork_head, + fd_accdb_fork_shmem_t ** fork_tail ) { + fd_accdb_fork_id_t sibling_idx = fork->shmem->child_id; + while( sibling_idx.val!=USHORT_MAX ) { + fd_accdb_fork_t * sibling = &accdb->fork_pool[ sibling_idx.val ]; + fd_accdb_fork_id_t cur_idx = sibling_idx; + + sibling_idx = sibling->shmem->sibling_id; + if( FD_UNLIKELY( sibling==except ) ) continue; + + purge_inner( accdb, cur_idx, fork_head, fork_tail ); + } +} + +static void +background_advance_root( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ) { + drain_deferred_frees( accdb ); + + /* The caller guarantees that rooting is sequential: each call + advances the root by exactly one slot (the immediate child of the + current root). Skipping levels is not supported. */ + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + FD_TEST( fork->shmem->parent_id.val==accdb->shmem->root_fork_id.val ); + FD_TEST( fork->shmem->parent_id.val!=USHORT_MAX ); + + fd_accdb_fork_t * parent_fork = &accdb->fork_pool[ fork->shmem->parent_id.val ]; + + /* Accumulate freed fork pool slots across remove_children and the + old-version cleanup below into a chain that will be deferred- + released after the epoch bump. Freed acc pool slots are recorded + in the shmem side buffer via deferred_acc_append (they cannot be + chained via pool.next yet — see comment on the side buffer). */ + fd_accdb_fork_shmem_t * fork_head = NULL; + fd_accdb_fork_shmem_t * fork_tail = NULL; + + /* When a fork is rooted, any competing forks can be immediately + removed as they will not be needed again. This includes child + forks of the pruned siblings as well. */ + remove_children( accdb, parent_fork, fork, &fork_head, &fork_tail ); + + /* And for any accounts which were updated in the newly rooted slot, + we will now never need to access any older version, so we can + discard any slots earlier than the one we are rooting. */ + uint txn = fork->shmem->txn_head; + if( txn!=UINT_MAX ) { + fd_accdb_txn_t * txn_head = txn_pool_ele( accdb->txn_pool, (ulong)txn ); + fd_accdb_txn_t * txn_tail = NULL; + while( txn!=UINT_MAX ) { + fd_accdb_txn_t * txne = txn_pool_ele( accdb->txn_pool, (ulong)txn ); + + fd_accdb_accmeta_t const * new_acc = &accdb->acc_pool[ txne->acc_pool_idx ]; + + uint prev = UINT_MAX; + uint new_acc_prev = UINT_MAX; /* prev of new_acc on the chain when we encounter it (UINT_MAX if head or never seen) */ + int new_acc_seen = 0; + uint acc = FD_VOLATILE_CONST( accdb->acc_map[ txne->acc_map_idx ] ); + FD_TEST( acc!=UINT_MAX ); + while( acc!=UINT_MAX ) { + fd_accdb_accmeta_t const * cur_acc = &accdb->acc_pool[ acc ]; + uint cur_next = FD_VOLATILE_CONST( cur_acc->map.next ); + + if( FD_LIKELY( acc==txne->acc_pool_idx ) ) { + new_acc_prev = prev; + new_acc_seen = 1; + prev = acc; + acc = cur_next; + continue; + } + + if( FD_LIKELY( (cur_acc->key.generation<=parent_fork->shmem->generation || descends_set_test( fork->descends, fd_accdb_acc_fork_id(cur_acc) ) ) && !memcmp( new_acc->key.pubkey, cur_acc->key.pubkey, 32UL ) ) ) { + uint next = cur_next; + fd_racesan_hook( "accdb_advance:pre_unlink" ); + acc_unlink( accdb, txne->acc_map_idx, prev, acc ); + deferred_acc_append( accdb, acc ); + acc = next; + } else { + prev = acc; + acc = cur_next; + } + } + + /* If the newly rooted version is a tombstone (lamports==0, e.g. + account was closed), drop it from the index too: no fork can + reach it anymore, and keeping it around just wastes a hash + slot and the disk bytes it occupies. + + If a later txn on this same fork wrote the same pubkey, that + txn's inner walk above would have already unlinked this txn's + new_acc as an "older version" - in that case new_acc_seen=0 + and we skip, since the freelist cleanup is already done. */ + if( FD_UNLIKELY( new_acc_seen && new_acc->lamports==0UL ) ) { + uint new_acc_idx = (uint)txne->acc_pool_idx; + acc_unlink( accdb, txne->acc_map_idx, new_acc_prev, new_acc_idx ); + deferred_acc_append( accdb, new_acc_idx ); + } + + txn_tail = txne; + txn = txne->fork.next; + } + txn_pool_release_chain( accdb->txn_pool, txn_head, txn_tail ); + } + + uint parent_txn = parent_fork->shmem->txn_head; + if( parent_txn!=UINT_MAX ) { + fd_accdb_txn_t * parent_head = txn_pool_ele( accdb->txn_pool, (ulong)parent_txn ); + fd_accdb_txn_t * parent_tail = NULL; + while( parent_txn!=UINT_MAX ) { + fd_accdb_txn_t * t = txn_pool_ele( accdb->txn_pool, (ulong)parent_txn ); + parent_tail = t; + parent_txn = t->fork.next; + } + txn_pool_release_chain( accdb->txn_pool, parent_head, parent_tail ); + } + + /* Remove the parent from all descends_sets and chain it for deferred + release, so that when the slot is eventually recycled to a new + fork, no concurrent reader can mistake the new fork for the old + ancestor. Entries from the freed parent are still visible via the + generation <= root_generation fast path in reads. */ + fd_accdb_fork_id_t old_parent_id = fork->shmem->parent_id; + fork_slot_defer( accdb, old_parent_id, &fork_head, &fork_tail ); + + fork->shmem->parent_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + fork->shmem->sibling_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + fork->shmem->txn_head = UINT_MAX; + descends_set_null( fork->descends ); + + /* Publish the new root_fork_id BEFORE bumping the epoch and deferring + the parent slot. On x86-64 (TSO) a concurrent reader that still + loads the old root_fork_id is guaranteed to see the parent shmem in + its original (not-yet-recycled) state because the slot has not been + released yet. A reader that loads the new root_fork_id uses the + new fork. */ + fd_racesan_hook( "accdb_advance:pre_publish_root" ); + accdb->shmem->root_fork_id = fork_id; + FD_COMPILER_MFENCE(); + fd_racesan_hook( "accdb_advance:post_publish_root" ); + + /* Bump epoch and defer both the acc batch and parent fork slot. They + will be released at the next drain_deferred_frees call once all + concurrent readers have exited. The acc batch lives in the shmem + side buffer; only its epoch tag needs setting here. */ + ulong tag = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->epoch, 1UL ); + if( FD_LIKELY( accdb->shmem->deferred_acc_buf_cnt ) ) { + accdb->shmem->deferred_acc_epoch = tag; + } + if( FD_LIKELY( fork_head ) ) { + accdb->deferred_fork_head = fork_head; + accdb->deferred_fork_tail = fork_tail; + accdb->deferred_fork_epoch = tag; + } +} + +void +fd_accdb_advance_root( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ) { + wait_cmd( accdb ); + submit_cmd( accdb, FD_ACCDB_CMD_ADVANCE_ROOT, fork_id.val ); +} + +/* background_purge does the heavy lifting of purge on T2: unlink the + fork from the parent's child list, drain deferred frees, recursively + purge the fork subtree, and defer-release the freed acc pool + elements. The sibling-list unlink is done here (not on T1) because + advance_root / remove_children also mutate sibling lists on T2, and + T2 is single-threaded so plain stores are safe. */ + +static void +background_purge( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ) { + /* Unlink fork_id from its parent's child list. This runs on T2 + which is the sole mutator of sibling lists (advance_root and + remove_children also run on T2), so plain stores are safe. */ + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + fd_accdb_fork_id_t parent_id = fork->shmem->parent_id; + if( FD_LIKELY( parent_id.val!=USHORT_MAX ) ) { + fd_accdb_fork_t * parent = &accdb->fork_pool[ parent_id.val ]; + if( FD_UNLIKELY( parent->shmem->child_id.val==fork_id.val ) ) { + parent->shmem->child_id = fork->shmem->sibling_id; + } else { + fd_accdb_fork_id_t prev_id = parent->shmem->child_id; + while( prev_id.val!=USHORT_MAX ) { + fd_accdb_fork_t * prev = &accdb->fork_pool[ prev_id.val ]; + if( prev->shmem->sibling_id.val==fork_id.val ) { + prev->shmem->sibling_id = fork->shmem->sibling_id; + break; + } + prev_id = prev->shmem->sibling_id; + } + } + } + + drain_deferred_frees( accdb ); + + fd_accdb_fork_shmem_t * fork_head = NULL; + fd_accdb_fork_shmem_t * fork_tail = NULL; + purge_inner( accdb, fork_id, &fork_head, &fork_tail ); + + ulong tag = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->epoch, 1UL ); + if( FD_LIKELY( accdb->shmem->deferred_acc_buf_cnt ) ) { + accdb->shmem->deferred_acc_epoch = tag; + } + if( FD_LIKELY( fork_head ) ) { + accdb->deferred_fork_head = fork_head; + accdb->deferred_fork_tail = fork_tail; + accdb->deferred_fork_epoch = tag; + } +} + +void +fd_accdb_purge( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ) { + FD_TEST( fork_id.val!=accdb->shmem->root_fork_id.val ); + + wait_cmd( accdb ); + submit_cmd( accdb, FD_ACCDB_CMD_PURGE, fork_id.val ); +} + +static inline fd_accdb_cache_line_t * +acquire_cache_line( fd_accdb_t * accdb, + ulong size_class, + uint * out_evicted_acc_idx ) { + /* Priority 1: CAS free list — already invalidated, + persisted==1, generation==UINT_MAX. Cheapest path. */ + fd_accdb_cache_line_t * result = cache_free_pop( accdb, size_class ); + if( FD_LIKELY( result ) ) { + result->refcnt = 1; + result->referenced = 0; + *out_evicted_acc_idx = UINT_MAX; + return result; + } + + /* Priority 2: Lazy initial allocation — atomic FAA with undo on + overflow. Safe for concurrent callers. */ + ulong old_init = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->cache_class_init[ size_class ].val, 1UL ); + if( FD_LIKELY( old_initshmem->cache_class_max[ size_class ] ) ) { + result = cache_line( accdb, size_class, old_init ); + result->refcnt = 1; + result->persisted = 1; + result->referenced = 0; + result->acc_idx = UINT_MAX; + result->key.generation = UINT_MAX; + *out_evicted_acc_idx = UINT_MAX; + return result; + } + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->cache_class_init[ size_class ].val, 1UL ); + + /* Priority 3: CLOCK sweep ... scan forward giving second chances. */ + for(;;) { + ulong hand = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->clock_hand[ size_class ].val, 1UL ) % accdb->shmem->cache_class_max[ size_class ]; + fd_accdb_cache_line_t * line = cache_line( accdb, size_class, hand ); + + if( FD_UNLIKELY( line->key.generation==UINT_MAX && line->acc_idx==UINT_MAX ) ) continue; + + uint rc = FD_VOLATILE_CONST( line->refcnt ); + if( FD_UNLIKELY( rc!=0U ) ) continue; /* Pinned or being evicted */ + + if( FD_UNLIKELY( line->referenced ) ) { + line->referenced = 0; + continue; /* Second chance */ + } + + if( FD_UNLIKELY( FD_ATOMIC_CAS( &line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )!=0U ) ) continue; + + /* The line is now claimed for eviction (refcnt==EVICT_SENTINEL). A + concurrent acc_unlink that targets this same line's accmeta will + observe the sentinel here and take its do-nothing branch — see the + test_accdb_racesan SENTINEL case. */ + fd_racesan_hook( "clock_evict:post_sentinel" ); + + if( FD_LIKELY( line->acc_idx!=UINT_MAX ) ) { + evict_clear_acc_cache_ref( &accdb->acc_pool[ line->acc_idx ], size_class, hand ); + } + *out_evicted_acc_idx = line->persisted ? UINT_MAX : line->acc_idx; + line->key.generation = UINT_MAX; + line->refcnt = 1; + line->referenced = 0; + return line; + } + + FD_TEST( 0 ); + return NULL; +} + +static inline void +change_partition( fd_accdb_t * accdb, + accdb_offset_t const * offset_before, + accdb_offset_t * out_offset, + int * has_partition, + uchar layer ) { + /* New data will not fit in the current partition, so we need to + move to the next one. */ + ulong partition_idx_before = packed_partition_idx( offset_before ); + ulong partition_offset_before = packed_partition_offset( offset_before ); + if( FD_LIKELY( *has_partition ) ) { + fd_accdb_partition_t * before = partition_pool_ele( accdb->partition_pool, partition_idx_before ); + before->write_offset = partition_offset_before; + } + + /* Single rdtsc per partition lifecycle event: stamp the closing + partition's filled time and the new partition's created time off + the same sample. */ + long now_ticks = (long)fd_tickcount(); + + ulong free_size = accdb->shmem->partition_sz - partition_offset_before; + if( FD_LIKELY( *has_partition ) ) { + fd_accdb_partition_t * old = partition_pool_ele( accdb->partition_pool, partition_idx_before ); + FD_ATOMIC_FETCH_AND_ADD( &old->bytes_freed, free_size ); + FD_VOLATILE( old->filled_ticks ) = now_ticks; + /* The tail slack is now committed dead — count it as current + (written-through) so fragmentation reflects it. */ + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_current_bytes, free_size ); + } + + if( FD_UNLIKELY( !partition_pool_free( accdb->partition_pool ) ) ) FD_LOG_ERR(( "accounts database file is at capacity" )); + fd_accdb_partition_t * partition = partition_pool_ele_acquire( accdb->partition_pool ); + partition->bytes_freed = 0UL; + partition->marked_compaction = 0; + partition->layer = layer; + partition->read_ops = 0UL; + partition->bytes_read = 0UL; + partition->write_ops = 0UL; + partition->bytes_written = 0UL; + partition->write_offset = 0UL; + partition->compaction_offset = 0UL; + partition->created_ticks = now_ticks; + partition->filled_ticks = 0L; + partition->queued = 0; + partition->compacting_now = 0; + + ulong new_partition_idx = partition_pool_idx( accdb->partition_pool, partition ); + int had_partition = *has_partition; + *out_offset = accdb_offset( new_partition_idx, 0UL ); + *has_partition = 1; + + /* Now that the write head has been rotated away from the old + partition, check if it should be enqueued for compaction. We call + try_enqueue directly because the caller already holds + partition_lock (calling fd_accdb_shmem_bytes_freed here would + deadlock on the non-reentrant lock). Skip when + has_partition was 0, because the sentinel partition_idx is + not a valid pool element. */ + if( FD_LIKELY( had_partition && partition_idx_before!=new_partition_idx ) ) { + fd_accdb_shmem_try_enqueue_compaction( accdb->shmem, partition_idx_before ); + } + + /* Snapshot-load tiering: accounts loaded from a snapshot never get + a second write, so compaction-driven promotion never fires and + they would otherwise live in Hot forever. When snapshot_loading + is set, tag the new partition as Cold up front. We do not set + has_partition[Cold] / whead[Cold] — those are owned by the + compaction tile and represent the live Cold write head, which is + independent of snapshot-loaded partitions that happen to be + labeled Cold. */ + if( FD_UNLIKELY( accdb->snapshot_loading && layer==0 ) ) { + FD_VOLATILE( partition->layer ) = FD_ACCDB_COMPACTION_LAYER_CNT-1UL; + } + + if( FD_UNLIKELY( new_partition_idx>=accdb->shmem->partition_max ) ) { + FD_LOG_INFO(( "growing accounts database from %lu GiB to %lu GiB", accdb->shmem->partition_max*accdb->shmem->partition_sz/(1UL<<30UL), (new_partition_idx+1UL)*accdb->shmem->partition_sz/(1UL<<30UL) )); + + int result = fallocate( accdb->fd, 0, (long)(new_partition_idx*accdb->shmem->partition_sz), (long)accdb->shmem->partition_sz ); + if( FD_UNLIKELY( -1==result ) ) { + if( FD_LIKELY( errno==ENOSPC ) ) FD_LOG_ERR(( "fallocate() failed (%d-%s). The accounts database filled " + "the disk it is on, trying to grow from %lu GiB to %lu GiB. Please " + "free up disk space and restart the validator.", + errno, fd_io_strerror( errno ), accdb->shmem->partition_max*accdb->shmem->partition_sz/(1UL<<30UL), (new_partition_idx+1UL)*accdb->shmem->partition_sz/(1UL<<30UL) )); + else FD_LOG_ERR(( "fallocate() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + } + + /* CAS loop: the compaction tile may also be growing the file + concurrently, so neither path may clobber the other. */ + for(;;) { + ulong cur = accdb->shmem->partition_max; + if( FD_LIKELY( new_partition_idx+1UL<=cur ) ) break; + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->shmem->partition_max, cur, new_partition_idx+1UL )==cur ) ) break; + } + accdb->shmem->shmetrics->disk_allocated_bytes = accdb->shmem->partition_max*accdb->shmem->partition_sz; + } +} + +static inline ulong +allocate_next_write( fd_accdb_t * accdb, + ulong sz ) { + for(;;) { + accdb_offset_t offset = { .val = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->whead[ 0 ].val, sz ) }; + if( FD_LIKELY( packed_partition_offset( &offset )+sz<=accdb->shmem->partition_sz ) ) { + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_current_bytes, sz ); + ulong file_offset = packed_partition_file_offset( &offset, accdb->shmem->partition_sz ); + fd_accdb_partition_write_bump( accdb, file_offset, sz ); + return file_offset; + } + + if( FD_UNLIKELY( packed_partition_offset( &offset )>accdb->shmem->partition_sz ) ) { + /* This can happen if another thread also raced to allocate the + next write and won. Wait for the partition switch to finish + before retrying, so we do not keep doing fetch-and-adds that + advance the offset further past the boundary. + + A switch is detected by the head moving to a different + partition index OR its offset dropping back to a valid position + (a switch resets the offset to 0). We must not key the wait + solely on the index changing: the initial write head is a + sentinel whose packed index can coincide with a real pool + index. */ + ulong stale_partition = packed_partition_idx( &offset ); + for(;;) { + accdb_offset_t cur = { .val = FD_VOLATILE_CONST( accdb->shmem->whead[ 0 ].val ) }; + if( packed_partition_idx( &cur )!=stale_partition ) break; + if( packed_partition_offset( &cur )<=accdb->shmem->partition_sz ) break; + FD_SPIN_PAUSE(); + } + continue; + } + + spin_lock_acquire( &accdb->shmem->partition_lock ); + change_partition( accdb, &offset, &accdb->shmem->whead[ 0 ], &accdb->shmem->has_partition[ 0 ], 0 ); + spin_lock_release( &accdb->shmem->partition_lock ); + } +} + +/* Compaction write allocation. Single-threaded: only the compaction + tile calls these, so the compaction write heads do not need atomic + fetch-and-add. dest_layer is the target layer (1..N-1). */ + +static inline ulong +allocate_next_compaction_write( fd_accdb_t * accdb, + ulong sz, + ulong dest_layer ) { + accdb_offset_t offset = accdb->shmem->whead[ dest_layer ]; + if( FD_UNLIKELY( !accdb->shmem->has_partition[ dest_layer ] || + packed_partition_offset( &offset )+sz>accdb->shmem->partition_sz ) ) { + spin_lock_acquire( &accdb->shmem->partition_lock ); + change_partition( accdb, &offset, &accdb->shmem->whead[ dest_layer ], &accdb->shmem->has_partition[ dest_layer ], (uchar)dest_layer ); + spin_lock_release( &accdb->shmem->partition_lock ); + offset = accdb->shmem->whead[ dest_layer ]; + } + accdb->shmem->whead[ dest_layer ].val += sz; + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_current_bytes, sz ); + ulong file_offset = packed_partition_file_offset( &offset, accdb->shmem->partition_sz ); + fd_accdb_partition_write_bump( accdb, file_offset, sz ); + return file_offset; +} + +/* fd_accdb_compact relocates one record from the oldest partition + queued for compaction at src_layer into the write head for the + next colder tier, or the same tier for the deepest layer. It is + designed to be called repeatedly from a dedicated compaction tile. + If there is work to do, *charge_busy is set to 1; otherwise 0 is + left unchanged and the call returns immediately. + + src_layer must be in 0..FD_ACCDB_COMPACTION_LAYER_CNT-1. */ + +static void +background_compact( fd_accdb_t * accdb, + ulong src_layer, + int * charge_busy ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); /* StoreLoad: epoch store must be globally visible + before any subsequent loads so the deferred + reclamation scan does not miss us. */ + + /* Reclaim any deferred-free partitions whose epoch has been observed + by all joiners (i.e. no epoch-publishing joiner could still be + referencing data in them). Scan writer slots [0, joiner_cnt) + plus each external (read-only) joiner's private epoch fseq. */ + ulong min_epoch = ULONG_MAX; + ulong joiner_cnt = FD_VOLATILE_CONST( accdb->shmem->joiner_cnt ); + for( ulong t=0UL; tshmem->joiner_epochs[ t ].val ); + if( FD_LIKELY( eexternal_epoch_cnt; t++ ) { + ulong e = FD_VOLATILE_CONST( *accdb->external_epoch_slots[ t ] ); + if( FD_LIKELY( edeferred_free_dlist, accdb->partition_pool ) ) ) break; + fd_accdb_partition_t * p = deferred_free_dlist_ele_peek_head( accdb->deferred_free_dlist, accdb->partition_pool ); + if( FD_LIKELY( p->epoch_tag>=min_epoch ) ) break; + + fd_racesan_hook( "accdb_reclaim:pre_free_partition" ); + + spin_lock_acquire( &accdb->shmem->partition_lock ); + deferred_free_dlist_ele_pop_head( accdb->deferred_free_dlist, accdb->partition_pool ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_current_bytes, accdb->shmem->partition_sz ); + partition_pool_ele_release( accdb->partition_pool, p ); + spin_lock_release( &accdb->shmem->partition_lock ); + } + + if( FD_LIKELY( compaction_dlist_is_empty( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ) ) ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + fd_accdb_partition_t * compact = compaction_dlist_ele_peek_head( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ); + if( FD_UNLIKELY( !compact ) ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + + /* Wait until all epoch-publishing joiners that were active when this + partition was enqueued for compaction have exited, ensuring any + in-flight pwritev2 to this partition has completed before we start + reading from it. */ + if( FD_UNLIKELY( compact->compaction_ready_epoch>=min_epoch ) ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + + *charge_busy = 1; + + /* Mark the head partition as actively compacting. */ + FD_VOLATILE( compact->queued ) = 0; + FD_VOLATILE( compact->compacting_now ) = 1; + + fd_accdb_disk_meta_t meta[1]; + + ulong compact_base = partition_pool_idx( accdb->partition_pool, compact )*accdb->shmem->partition_sz; + + /* Read the on-disk metadata header at the current compaction + cursor within the partition being compacted. */ + ulong bytes_read = 0UL; + while( FD_UNLIKELY( bytes_readfd, ((uchar *)meta)+bytes_read, sizeof(fd_accdb_disk_meta_t)-bytes_read, (long)(compact_base+compact->compaction_offset+bytes_read) ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "pread() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, data expected at offset %lu with size %lu exceeded file extents", + compact_base+compact->compaction_offset+bytes_read, sizeof(fd_accdb_disk_meta_t) )); + fd_accdb_partition_read_bump( accdb, compact_base+compact->compaction_offset, (ulong)result ); + bytes_read += (ulong)result; + } + + /* Walk the hash chain to find a live index entry whose on-disk + offset matches the record we are compacting. */ + fd_accdb_accmeta_t * accmeta = NULL; + ulong source_packed = 0UL; + uint acc_idx = FD_VOLATILE_CONST( accdb->acc_map[ fd_accdb_hash( meta->pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL) ] ); + while( acc_idx!=UINT_MAX ) { + fd_accdb_accmeta_t * candidate = &accdb->acc_pool[ acc_idx ]; + uint next_idx = FD_VOLATILE_CONST( candidate->map.next ); + ulong candidate_packed = FD_VOLATILE_CONST( candidate->offset_fork ); + if( FD_LIKELY( (candidate_packed & FD_ACCDB_OFF_MASK)==compact_base+compact->compaction_offset ) ) { + accmeta = candidate; + source_packed = candidate_packed; + break; + } + acc_idx = next_idx; + } + + ulong record_sz = sizeof(fd_accdb_disk_meta_t) + (ulong)meta->size; + ulong bytes_copied = 0UL; + if( FD_UNLIKELY( !accmeta ) ) { + /* Dead record — the index entry was already removed, so this + on-disk extent is garbage. Nothing to relocate. */ + } else { + ulong dest_layer = fd_ulong_min( src_layer+1UL, FD_ACCDB_COMPACTION_LAYER_CNT-1UL ); + ulong dest_offset = allocate_next_compaction_write( accdb, record_sz, dest_layer ); + + while( FD_UNLIKELY( bytes_copiedcompaction_offset + bytes_copied); + long out_off = (long)(dest_offset + bytes_copied); + + long result = copy_file_range( accdb->fd, &in_off, accdb->fd, &out_off, record_sz-bytes_copied, 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "copy_file_range() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, data expected at offset %lu with size %lu exceeded file extents", + compact_base+compact->compaction_offset+bytes_copied, record_sz )); + fd_accdb_partition_read_bump( accdb, compact_base+compact->compaction_offset+bytes_copied, (ulong)result ); + bytes_copied += (ulong)result; + accdb->metrics->copy_ops++; + } + + accdb->shmem->shmetrics->accounts_relocated++; + accdb->shmem->shmetrics->accounts_relocated_bytes += bytes_copied; + + /* Ensure the data is on disk before publishing the new offset, + so concurrent acquire threads do not preadv2 from a location + that hasn't been written yet. */ + FD_COMPILER_MFENCE(); + + /* CAS the offset from the exact source record we copied to the new + destination. If a concurrent release overwrote the offset to + FD_ACCDB_OFF_INVAL (dirty sentinel for a new commit), or later + published a newer on-disk location, the CAS fails and we treat + the relocated copy as stale. We CAS the full packed + offset_fork so the fork_id is preserved and so we only publish + the relocation if the copied source record is still current. */ + ulong new_packed = ( source_packed & ~FD_ACCDB_OFF_MASK ) | ( dest_offset & FD_ACCDB_OFF_MASK ); + +#if FD_HAS_RACESAN + fd_memcpy( fd_accdb_dbg_reloc_pubkey, accmeta->key.pubkey, 32UL ); + fd_accdb_dbg_reloc_dest = dest_offset; + fd_accdb_dbg_reloc_cnt++; +#endif + + fd_racesan_hook( "accdb_compact:pre_offset_cas" ); + if( FD_UNLIKELY( FD_ATOMIC_CAS( &accmeta->offset_fork, source_packed, new_packed )!=source_packed ) ) { + /* Record was superseded by a concurrent overwrite commit. + The disk space we just wrote is dead on arrival — account + it as freed so compaction can reclaim it later. */ + fd_accdb_shmem_bytes_freed( accdb->shmem, dest_offset, record_sz ); + bytes_copied = 0UL; + } + } + + fd_racesan_hook( "accdb_compact:post_relocate" ); + + compact->compaction_offset += record_sz; + + if( FD_UNLIKELY( compact->compaction_offset>=compact->write_offset ) ) { + FD_LOG_NOTICE(( "compaction of partition %lu completed", partition_pool_idx( accdb->partition_pool, compact ) )); + + /* Ensure the new acc->offset_fork stores above are visible to other + cores before the source partition is moved to the deferred-free + list. On x86 (TSO) hardware store ordering already guarantees + this, but the compiler fence prevents the compiler from sinking + the offset store past the inlined pool/dlist mutations below. */ + FD_COMPILER_MFENCE(); + + /* Bump the global epoch and tag this partition so the reclamation + scan knows when all epoch-publishing joiners that could reference + data in this partition have exited. */ + ulong tag = FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->epoch, 1UL ); + compact->epoch_tag = tag; + + /* partition_lock serializes these dlist/pool mutations with + concurrent push_tail in fd_accdb_shmem_bytes_freed and + partition_pool_ele_acquire in change_partition. Neither fd_dlist + nor fd_pool are thread-safe, so all mutations must be under the + same lock. */ + spin_lock_acquire( &accdb->shmem->partition_lock ); + + accdb->shmem->shmetrics->partitions_freed++; + compaction_dlist_ele_pop_head( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ); + FD_VOLATILE( compact->compacting_now ) = 0; + FD_VOLATILE( compact->queued ) = 0; + deferred_free_dlist_ele_push_tail( accdb->deferred_free_dlist, compact, accdb->partition_pool ); + + accdb->shmem->shmetrics->compactions_completed++; + if( FD_LIKELY( compaction_dlist_is_empty( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ) ) ) { + accdb->shmem->shmetrics->in_compaction = 0; + } else { + fd_accdb_partition_t * next = compaction_dlist_ele_peek_head( accdb->compaction_dlist[ src_layer ], accdb->partition_pool ); + FD_LOG_NOTICE(( "compaction of layer %lu partition %lu started", src_layer, partition_pool_idx( accdb->partition_pool, next ) )); + } + + spin_lock_release( &accdb->shmem->partition_lock ); + } + + accdb->metrics->bytes_read += bytes_read + bytes_copied; + accdb->metrics->bytes_written += bytes_copied; + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; +} + +/* cold_load_acc resolves the cache slot for `acc` when STEP 1's + cache_try_pin failed. It uses bit 29 of executable_size as a + single-claimer lock so that two concurrent acquirers cannot each + install their own cache slot for the same acc (which would orphan + one slot with a dangling line->acc_idx and eventually corrupt + acc->cache_valid via CLOCK). + + Protocol per acc: + - If cache_valid is set, retry cache_try_pin (another thread + finished the cold-load while we were here). On success, mark + exists_in_cache so STEP 4 will not write back the slot. + - If claim is set, spin (another thread is mid-cold-load). + - Otherwise CAS-set the claim bit. Winner allocates a cache + line, populates the placeholder (acc_idx=UINT_MAX), publishes + cache_idx, then atomically (CAS-loop) sets cache_valid and + clears claim. + + The eviction sites that clear cache_valid must use FETCH_AND with + ~CACHE_VALID_BIT (preserving the claim bit) to interact correctly + with this protocol. */ + +static fd_accdb_cache_line_t * +cold_load_acc( fd_accdb_t * accdb, + fd_accdb_accmeta_t * accmeta, + uchar const * pubkey, + int * out_exists_in_cache, + uint * out_evicted_acc_idx ) { + for(;;) { + uint old_es = FD_VOLATILE_CONST( accmeta->executable_size ); + int valid = FD_ACCDB_SIZE_CACHE_VALID( old_es ); + int claimed = FD_ACCDB_SIZE_CACHE_CLAIM( old_es ); + + if( FD_UNLIKELY( valid ) ) { + /* old_es snapshot saw VALID=1 but a concurrent + evict_clear_acc_cache_ref may have cleared VALID and stored + cache_idx=INVAL between our snapshot and this load. Decoding + INVAL would yield a wild cache_line pointer; retry the loop + instead (next iteration will see VALID=0). */ + uint cidx = FD_VOLATILE_CONST( accmeta->cache_idx ); + if( FD_UNLIKELY( cidx==FD_ACCDB_ACC_CIDX_INVAL ) ) { FD_SPIN_PAUSE(); continue; } + fd_accdb_cache_line_t * hit = cache_line( accdb, FD_ACCDB_ACC_CIDX_CLASS( cidx ), FD_ACCDB_ACC_CIDX_IDX( cidx ) ); + fd_racesan_hook( "accdb_cold_load:pre_try_pin" ); + fd_accdb_cache_line_t * pinned = cache_try_pin( hit, pubkey, accmeta->key.generation ); + if( FD_LIKELY( pinned ) ) { + *out_exists_in_cache = 1; + *out_evicted_acc_idx = UINT_MAX; + return pinned; + } + FD_SPIN_PAUSE(); + continue; + } + + if( FD_UNLIKELY( claimed ) ) { + fd_racesan_hook( "accdb_cold_load:claim_wait" ); + FD_SPIN_PAUSE(); + continue; + } + + if( FD_UNLIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, old_es, old_es | FD_ACCDB_SIZE_CACHE_CLAIM_BIT )!=old_es ) ) { + FD_SPIN_PAUSE(); + continue; + } + + /* We hold the claim. Allocate a cache line and publish. */ + ulong size_class = fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( old_es ) ); + fd_accdb_cache_line_t * line = acquire_cache_line( accdb, size_class, out_evicted_acc_idx ); + fd_memcpy( line->key.pubkey, accmeta->key.pubkey, 32UL ); + line->key.generation = accmeta->key.generation; + /* Leave acc_idx at UINT_MAX (the "loading" sentinel) until step 12 + publishes it after the preadv2 fence. Concurrent threads that + pin via cache_idx will spin on this in step 13. */ + line->acc_idx = UINT_MAX; + FD_COMPILER_MFENCE(); + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_PACK( (uint)size_class, (uint)cache_line_idx( accdb, size_class, line ) ); + FD_COMPILER_MFENCE(); + + fd_racesan_hook( "accdb_cold_load:pre_valid" ); + + /* Atomically set CACHE_VALID_BIT and clear CACHE_CLAIM_BIT. + Eviction may have flipped CACHE_VALID_BIT on us between our + claim and now (it preserves CLAIM but can clear VALID); the + CAS loop tolerates that. The data length and exec bits stay + unchanged. */ + for(;;) { + uint cur = FD_VOLATILE_CONST( accmeta->executable_size ); + uint nxt = (cur & ~FD_ACCDB_SIZE_CACHE_CLAIM_BIT) | FD_ACCDB_SIZE_CACHE_VALID_BIT; + if( FD_LIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, cur, nxt )==cur ) ) break; + FD_SPIN_PAUSE(); + } + + *out_exists_in_cache = 0; + return line; + } +} + +#define RESERVATION_TYPE_SIMPLE (0) +#define RESERVATION_TYPE_MAYBE_PROGRAMDATA (1) +#define RESERVATION_TYPE_ALREADY_RESERVED (2) + +static void +fd_accdb_acquire_inner( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + int reservation_type, + ulong reserved_cnt, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ) { + accdb->metrics->acquire_calls++; + + ulong max_acquire_cnt = accdb->shmem->bundle_enabled ? FD_ACCDB_MAX_ACQUIRE_CNT : FD_ACCDB_MAX_TX_ACCOUNT_LOCKS; + FD_TEST( pubkeys_cnt<=max_acquire_cnt ); + + FD_TEST( FD_VOLATILE_CONST( *accdb->my_epoch_slot )==ULONG_MAX ); + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); /* StoreLoad: epoch store must be globally visible + before any subsequent loads so the deferred + reclamation scan does not miss us */ + + // STEP 1. + // Locate each account in the fork and index structure, to determine + // if it already exists, its size and other metadata, and which + // specific slot (generation) it was last written in. + + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + uint root_generation = accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; + + fd_racesan_hook( "accdb_acquire:post_root_gen" ); + + fd_accdb_accmeta_t * accmetas[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + ulong acc_map_idxs[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + + /* Walk the hash chain for each pubkey and take the first visible + match. Correctness relies on newer entries always being prepended + to the chain head, which is guaranteed because replay processes + writes in slot order and release always inserts at the head. + + CONCURRENCY: This chain walk runs epoch-protected. A concurrent + fd_accdb_release may prepend a new node to the same chain while + we walk it. This is safe on x86-64 (TSO): the releasing thread + stores all acc fields (pubkey, generation, map.next, ...) before + publishing the new head via a CAS on acc_map[idx], and TSO + guarantees a reading core that observes the new head also observes + all prior stores to the node. A reader that does not yet see the + new head simply sees an older (still valid) version of the chain. + On weakly-ordered architectures an explicit acquire fence would be + needed before the chain walk and a release fence in + fd_accdb_release before the head-pointer store. Multiple + concurrent releases serialize on the CAS of the chain head. */ + for( ulong i=0UL; ishmem->seed )&(accdb->shmem->chain_cnt-1UL); + uint acc = FD_VOLATILE_CONST( accdb->acc_map[ acc_map_idxs[ i ] ] ); + while( acc!=UINT_MAX ) { + fd_accdb_accmeta_t const * candidate_acc = &accdb->acc_pool[ acc ]; + uint next_acc = FD_VOLATILE_CONST( candidate_acc->map.next ); + + fd_racesan_hook( "accdb_acquire:post_next" ); + + if( FD_UNLIKELY( (candidate_acc->key.generation>root_generation && + fd_accdb_acc_fork_id(candidate_acc)!=fork_id.val && + !descends_set_test( fork->descends, fd_accdb_acc_fork_id(candidate_acc) )) ) || + memcmp( pubkeys[ i ], candidate_acc->key.pubkey, 32UL ) ) { + acc = next_acc; + continue; + } + + break; + } + if( FD_UNLIKELY( acc==UINT_MAX ) ) accmetas[ i ] = NULL; + else accmetas[ i ] = &accdb->acc_pool[ acc ]; + +#if FD_TMPL_USE_HANDHOLDING + if( FD_UNLIKELY( accmetas[ i ] ) ) { + fd_accdb_accmeta_t const * sel = accmetas[ i ]; + FD_TEST( !memcmp( sel->key.pubkey, pubkeys[ i ], 32UL ) ); + FD_TEST( sel->key.generation<=root_generation || + fd_accdb_acc_fork_id( sel )==fork_id.val || + descends_set_test( fork->descends, fd_accdb_acc_fork_id( sel ) ) ); + FD_TEST( sel->key.generation<=FD_VOLATILE_CONST( accdb->shmem->generation ) ); + } +#endif + + if( FD_UNLIKELY( accmetas[ i ] && !writable[ i ] && !accmetas[ i ]->lamports ) ) accmetas[ i ] = NULL; + + /* Attribute this acquired account to a size class for per-class + rate metrics. Use the account's current size class when known; + otherwise (new account) bucket as class 0. */ + ulong acq_class = 0UL; + if( FD_LIKELY( accmetas[ i ] ) ) acq_class = fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ); + if( FD_LIKELY( writable[ i ] ) ) accdb->metrics->writable_accounts_acquired_per_class[ acq_class ]++; + else accdb->metrics->accounts_acquired_per_class[ acq_class ]++; + } + + // STEP 2. + // The two-phase programdata acquire (acquire_a then acquire_b) + // works as follows: acquire_a (RESERVATION_TYPE_MAYBE_PROGRAMDATA) + // over-reserves one slot in every live size class per candidate + // account (reserved_cnt total per class), because it does not yet + // know which accounts have programdata or what size class it lands + // in. acquire_b then resolves the actual programdata pubkeys and + // re-enters here with RESERVATION_TYPE_ALREADY_RESERVED to refund + // the surplus. Keep one reservation per found programdata account + // in its own size class (consumed later by release) and give the + // rest back. + if( FD_UNLIKELY( reservation_type==RESERVATION_TYPE_ALREADY_RESERVED ) ) { + ulong refund[ FD_ACCDB_CACHE_CLASS_CNT ] = {0}; + for( ulong j=0UL; jshmem->cache_class_used[ j ].val!=ULONG_MAX ) ) refund[ j ] = reserved_cnt; + } + for( ulong i=0UL; iexecutable_size ) ); + if( FD_LIKELY( accdb->shmem->cache_class_used[ cls ].val!=ULONG_MAX ) ) { + FD_TEST( refund[ cls ]>0UL ); + refund[ cls ]--; + } + } + } + for( ulong k=0UL; kshmem->cache_class_used[ k ].val, refund[ k ] ); + } + } + + // STEP 3. + // We are potentially going to need to read the account data off of + // disk into the cache, if the account(s) are not in the cache so + // reserve the necessary cache space. This is done with an "atomic + // subtract" spin loop on the cache class counters, which is + // actually faster than doing a real CAS on a packed ulong. + // + // For reads, we only need space to copy the account data into a + // single right-sized cache line, but for writes ... we need to + // reserve one of every size class. The reason is we are going to + // need a 10MiB staging buffer for the executor to write to (it may + // grow the account, so needs the max size class). Even if the + // account is already in the 10MiB cache class, we need another one + // because a transaction can fail half way, so we need scratch space + // to be able to unwind. + // + // So we acquire one of each size class. Then when the transaction + // finishes, if it succeeded, we will copy the data back to the + // whichever size-class is now right-sized post execution. + if( FD_LIKELY( reservation_type==RESERVATION_TYPE_SIMPLE || reservation_type==RESERVATION_TYPE_MAYBE_PROGRAMDATA ) ) { + ulong requested_buckets[ FD_ACCDB_CACHE_CLASS_CNT ] = {0}; + for( ulong i=0UL; ishmem->cache_class_used[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ) ].val!=ULONG_MAX ) ) { + requested_buckets[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ) ]++; + } + } + if( FD_UNLIKELY( writable[ i ] ) ) { + for( ulong j=0UL; jshmem->cache_class_used[ j ].val!=ULONG_MAX ) ) { + requested_buckets[ j ]++; + } + } + } + } + + if( FD_LIKELY( reservation_type==RESERVATION_TYPE_MAYBE_PROGRAMDATA ) ) { + /* Any account could also have an implied reference to a + programdata account, which we don't know yet ... so we need to + reserve worst case space if they all went to the same size + class. This reservation runs unconditionally per pubkey (not + gated on accmetas/writable) so that acquire_b can refund based on + pubkeys_cnt without needing to re-derive the live-account set. */ + for( ulong j=0UL; jshmem->cache_class_used[ j ].val!=ULONG_MAX ) ) { + requested_buckets[ j ]++; + } + } + } + } + + /* TODO: This over-reserves cache slots for writable accounts that + already exist. For each such account we reserve one line in the + account's size class (for the read into cache) AND one line in + every size class (for the write destination buffers). But if the + account is already resident in cache (which is the common case + for hot accounts), the read-into-cache line is unnecessary — we + will get a cache hit in step 4 and never use it. The fix is to + probe acc->cache_idx here and skip the per-account size class + reservation per-account size class reservation when a hit is + found. This would reduce peak reservation by up to one line per + writable account per acquire batch, lowering contention on the + cache class counters and allowing smaller cache provisioning. */ + + /* Reserve cache slots by atomically incrementing the shared used + counters. If any class exceeds its max, the reservation + overflowed — subtract back partial grabs and retry. */ + for(;;) { + int acquire_failed = 0; + ulong grabbed[ FD_ACCDB_CACHE_CLASS_CNT ] = {0}; + for( ulong i=0UL; ishmem->cache_class_used[ i ].val, requested_buckets[ i ] ); + if( FD_UNLIKELY( new_used>accdb->shmem->cache_class_max[ i ] ) ) { + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->cache_class_used[ i ].val, requested_buckets[ i ] ); + acquire_failed = 1; + } else { + grabbed[ i ] = requested_buckets[ i ]; + } + if( FD_UNLIKELY( acquire_failed ) ) { + accdb->metrics->acquire_failed++; + for( ulong j=0UL; jshmem->cache_class_used[ j ].val, grabbed[ j ] ); + } + FD_SPIN_PAUSE(); + break; + } + } + if( FD_LIKELY( !acquire_failed ) ) break; + } + } + + // STEP 4. + // For any accounts that are not in cache, we now need to actually + // retrieve the cache pointers from our structures. Space has been + // reserved already, so this step is guaranteed to succeed, and is + // just pulling the cache lines out of the free lists and marking + // them as in-use. + // + // This step is fully lock-free. Cache hits are pinned with an + // atomic CAS on refcnt (cache_try_pin). Eviction uses the CLOCK + // algorithm. The CAS free list provides immediate recycling of + // fully-freed lines. + + int exists_in_cache[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + fd_accdb_cache_line_t * original_cache_line[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + fd_accdb_cache_line_t * destination_cache_lines[ FD_ACCDB_MAX_ACQUIRE_CNT ][ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Saved acc_pool indices of evicted dirty cache lines. These are + captured before clearing acc_idx to UINT_MAX on the line struct, so + that the sentinel protocol (step 14) works correctly while the + evicted account metadata is still available for writeback in steps + 4 and 6. */ + uint evicted_dest_acc[ FD_ACCDB_MAX_ACQUIRE_CNT ][ FD_ACCDB_CACHE_CLASS_CNT ]; + uint evicted_orig_acc[ FD_ACCDB_MAX_ACQUIRE_CNT ]; + + for( ulong i=0UL; iexecutable_size ) ) ) ) { + /* Concurrent evict_clear_acc_cache_ref clears VALID then stores + cache_idx=INVAL. We may have observed VALID=1 just before the + writer cleared it, so cidx can read as INVAL here; decoding it + would yield a wild cache_line pointer. Skip on INVAL. Any + other stale cidx is harmless: cache_try_pin's ABA generation + check rejects a recycled line. */ + uint cidx = FD_VOLATILE_CONST( accmetas[ i ]->cache_idx ); + if( FD_LIKELY( cidx!=FD_ACCDB_ACC_CIDX_INVAL ) ) { + fd_accdb_cache_line_t * hit = cache_line( accdb, FD_ACCDB_ACC_CIDX_CLASS( cidx ), FD_ACCDB_ACC_CIDX_IDX( cidx ) ); + fd_racesan_hook( "accdb_acquire:pre_try_pin" ); + original_cache_line[ i ] = cache_try_pin( hit, pubkeys[ i ], accmetas[ i ]->key.generation ); +#if FD_TMPL_USE_HANDHOLDING + if( FD_LIKELY( original_cache_line[ i ] ) ) { + FD_TEST( original_cache_line[ i ]->key.generation==accmetas[ i ]->key.generation && + !memcmp( original_cache_line[ i ]->key.pubkey, pubkeys[ i ], 32UL ) ); + uint rc = FD_VOLATILE_CONST( original_cache_line[ i ]->refcnt ); + FD_TEST( rc>0U && rc!=FD_ACCDB_EVICT_SENTINEL ); + } +#endif + } + } + } + exists_in_cache[ i ] = original_cache_line[ i ]!=NULL; + + if( FD_UNLIKELY( writable[ i ] ) ) { + for( ulong j=0UL; jmetrics->accounts_evicted++; + accdb->metrics->accounts_evicted_per_class[ j ]++; + + fd_accdb_accmeta_t const * evicted = &accdb->acc_pool[ evicted_dest_acc[ i ][ j ] ]; + fd_racesan_hook( "writeback:pre_synth" ); + total_write_sz += sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( evicted->executable_size ); + FD_TEST( write_meta_cnt<(int)(sizeof(write_metas)/sizeof(write_metas[0])) ); + fd_memcpy( write_metas[ write_meta_cnt ].pubkey, evicted->key.pubkey, 32UL ); + write_metas[ write_meta_cnt ].size = FD_ACCDB_SIZE_DATA( evicted->executable_size ); + fd_memcpy( write_metas[ write_meta_cnt ].owner, destination_cache_lines[ i ][ j ]->owner, 32UL ); + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = &write_metas[ write_meta_cnt ], .iov_len = sizeof(fd_accdb_disk_meta_t) }; + write_meta_cnt++; + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = destination_cache_lines[ i ][ j ]+1UL, .iov_len = FD_ACCDB_SIZE_DATA( evicted->executable_size ) }; + } + if( FD_UNLIKELY( accmetas[ i ] && !exists_in_cache[ i ] && evicted_orig_acc[ i ]!=UINT_MAX ) ) { + fd_accdb_accmeta_t const * evicted = &accdb->acc_pool[ evicted_orig_acc[ i ] ]; + accdb->metrics->accounts_evicted++; + accdb->metrics->accounts_evicted_per_class[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( evicted->executable_size ) ) ]++; + + total_write_sz += sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( evicted->executable_size ); + FD_TEST( write_meta_cnt<(int)(sizeof(write_metas)/sizeof(write_metas[0])) ); + fd_memcpy( write_metas[ write_meta_cnt ].pubkey, evicted->key.pubkey, 32UL ); + write_metas[ write_meta_cnt ].size = FD_ACCDB_SIZE_DATA( evicted->executable_size ); + fd_memcpy( write_metas[ write_meta_cnt ].owner, original_cache_line[ i ]->owner, 32UL ); + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = &write_metas[ write_meta_cnt ], .iov_len = sizeof(fd_accdb_disk_meta_t) }; + write_meta_cnt++; + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = original_cache_line[ i ]+1UL, .iov_len = FD_ACCDB_SIZE_DATA( evicted->executable_size ) }; + } + } else { + if( FD_LIKELY( exists_in_cache[ i ] || evicted_orig_acc[ i ]==UINT_MAX ) ) continue; + fd_accdb_accmeta_t const * evicted = &accdb->acc_pool[ evicted_orig_acc[ i ] ]; + accdb->metrics->accounts_evicted++; + accdb->metrics->accounts_evicted_per_class[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( evicted->executable_size ) ) ]++; + total_write_sz += sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( evicted->executable_size ); + FD_TEST( write_meta_cnt<(int)(sizeof(write_metas)/sizeof(write_metas[0])) ); + fd_memcpy( write_metas[ write_meta_cnt ].pubkey, evicted->key.pubkey, 32UL ); + write_metas[ write_meta_cnt ].size = FD_ACCDB_SIZE_DATA( evicted->executable_size ); + fd_memcpy( write_metas[ write_meta_cnt ].owner, original_cache_line[ i ]->owner, 32UL ); + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = &write_metas[ write_meta_cnt ], .iov_len = sizeof(fd_accdb_disk_meta_t) }; + write_meta_cnt++; + write_ops[ write_ops_cnt++ ] = (struct iovec){ .iov_base = original_cache_line[ i ]+1UL, .iov_len = FD_ACCDB_SIZE_DATA( evicted->executable_size ) }; + } + } + + // STEP 6-7. + // Compute the file offset for the writes we are about to do and + // build the pending offset table. The common case is a single + // atomic fetch-add on the write head, reserving a contiguous + // region. If the total eviction batch is too large to fit in one + // partition (extremely unlikely — requires many dirty 10MiB + // evictions), fall back to per-entry allocation so that each + // individual write fits in a single partition. + // + // The actual stores to evicted->offset_fork and line->persisted + // are deferred until after pwritev2 completes (Step 9-10), so + // a concurrent acquire spinning on offset==FD_ACCDB_OFF_INVAL + // does not proceed to preadv2 from a location that hasn't been + // written. + int pending_cnt = 0; + fd_accdb_accmeta_t * pending_accs [ (FD_ACCDB_CACHE_CLASS_CNT+1UL)*FD_ACCDB_MAX_ACQUIRE_CNT ]; + ulong pending_offs [ (FD_ACCDB_CACHE_CLASS_CNT+1UL)*FD_ACCDB_MAX_ACQUIRE_CNT ]; + fd_accdb_cache_line_t * pending_lines[ (FD_ACCDB_CACHE_CLASS_CNT+1UL)*FD_ACCDB_MAX_ACQUIRE_CNT ]; + + ulong file_offset; + int batch_contiguous; + if( FD_LIKELY( total_write_sz && total_write_sz<=accdb->shmem->partition_sz ) ) { + file_offset = allocate_next_write( accdb, total_write_sz ); + batch_contiguous = 1; + } else { + file_offset = 0UL; + batch_contiguous = 0; + } + + ulong cumulative_offset = 0UL; + for( ulong i=0UL; iacc_pool[ evicted_dest_acc[ i ][ j ] ]; + ulong entry_sz = sizeof(fd_accdb_disk_meta_t) + (ulong)FD_ACCDB_SIZE_DATA( evicted->executable_size ); + /* xchg-to-INVAL atomically captures the old offset and prevents + a concurrent acc_unlink from also reading and freeing it (the + xchg there will see INVAL and skip). Step 10 republishes the + new offset; the spinner at line ~2082 tolerates the transient + INVAL. Same pattern as the overwrite path at line ~2388. */ + ulong old_off = fd_accdb_acc_xchg_offset( evicted, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_off!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_off, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + FD_TEST( pending_cnt<(int)(sizeof(pending_accs)/sizeof(pending_accs[0])) ); + pending_accs [ pending_cnt ] = evicted; + if( FD_LIKELY( batch_contiguous ) ) pending_offs[ pending_cnt ] = file_offset + cumulative_offset; + else pending_offs[ pending_cnt ] = allocate_next_write( accdb, entry_sz ); + pending_lines[ pending_cnt ] = destination_cache_lines[ i ][ j ]; + pending_cnt++; + cumulative_offset += entry_sz; + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + if( FD_UNLIKELY( accmetas[ i ] && !exists_in_cache[ i ] && evicted_orig_acc[ i ]!=UINT_MAX ) ) { + fd_accdb_accmeta_t * evicted = &accdb->acc_pool[ evicted_orig_acc[ i ] ]; + ulong entry_sz = sizeof(fd_accdb_disk_meta_t) + (ulong)FD_ACCDB_SIZE_DATA( evicted->executable_size ); + ulong old_off = fd_accdb_acc_xchg_offset( evicted, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_off!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_off, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + FD_TEST( pending_cnt<(int)(sizeof(pending_accs)/sizeof(pending_accs[0])) ); + pending_accs [ pending_cnt ] = evicted; + if( FD_LIKELY( batch_contiguous ) ) pending_offs[ pending_cnt ] = file_offset + cumulative_offset; + else pending_offs[ pending_cnt ] = allocate_next_write( accdb, entry_sz ); + pending_lines[ pending_cnt ] = original_cache_line[ i ]; + pending_cnt++; + cumulative_offset += entry_sz; + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + } else { + if( FD_LIKELY( exists_in_cache[ i ] || evicted_orig_acc[ i ]==UINT_MAX ) ) continue; + + fd_accdb_accmeta_t * evicted = &accdb->acc_pool[ evicted_orig_acc[ i ] ]; + ulong entry_sz = sizeof(fd_accdb_disk_meta_t) + (ulong)FD_ACCDB_SIZE_DATA( evicted->executable_size ); + ulong old_off = fd_accdb_acc_xchg_offset( evicted, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_off!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_off, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + FD_TEST( pending_cnt<(int)(sizeof(pending_accs)/sizeof(pending_accs[0])) ); + pending_accs [ pending_cnt ] = evicted; + if( FD_LIKELY( batch_contiguous ) ) pending_offs[ pending_cnt ] = file_offset + cumulative_offset; + else pending_offs[ pending_cnt ] = allocate_next_write( accdb, entry_sz ); + pending_lines[ pending_cnt ] = original_cache_line[ i ]; + pending_cnt++; + cumulative_offset += entry_sz; + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->disk_used_bytes, entry_sz ); + } + } + + // STEP 8. + // Fill the output entries with cache pointers and metadata based on + // the accounts we have located and the cache lines we have + // reserved. + + for( ulong i=0UL; ilamports==0UL; + out_accs[ i ].data_len = ( accmetas[ i ] && !tombstone ) ? FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) : 0UL; + out_accs[ i ].executable = ( accmetas[ i ] && !tombstone ) ? FD_ACCDB_SIZE_EXEC( accmetas[ i ]->executable_size ) : 0; + fd_racesan_hook( "accdb_acquire:mid_step7_meta" ); + out_accs[ i ].lamports = accmetas[ i ] ? accmetas[ i ]->lamports : 0UL; + if( FD_UNLIKELY( !accmetas[ i ] ) ) memset( out_accs[ i ].owner, 0, 32UL ); + /* For accmetas[i] != NULL, the owner is copied from the cache line + below in step 15, after step 12 has populated it from disk for + cold loads. */ + + out_accs[ i ].prior_lamports = out_accs[ i ].lamports; + out_accs[ i ].prior_data_len = out_accs[ i ].data_len; + out_accs[ i ].prior_executable = out_accs[ i ].executable; + out_accs[ i ].prior_data = (uchar *)(original_cache_line[ i ] ? (original_cache_line[ i ]+1UL) : NULL); + + out_accs[ i ].commit = 0; + out_accs[ i ]._writable = writable[ i ]; + if( FD_UNLIKELY( writable[ i ] && accmetas[ i ] ) ) out_accs[ i ]._overwrite = accdb->fork_pool[ fork_id.val ].shmem->generation==accmetas[ i ]->key.generation; + else out_accs[ i ]._overwrite = 0; + + FD_TEST( out_accs[ i ].data_len<=(10UL<<20) ); + FD_TEST( !out_accs[ i ]._overwrite || accdb->fork_pool[ fork_id.val ].shmem->generation==accmetas[ i ]->key.generation ); + +#if FD_TMPL_USE_HANDHOLDING + if( FD_UNLIKELY( !writable[ i ] && accmetas[ i ] && !tombstone ) ) { + ulong cls = fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ); + FD_TEST( fd_accdb_ptr_in_region( accdb, cls, out_accs[ i ].data ) ); + } +#endif + + if( FD_UNLIKELY( writable[ i ] ) ) { + out_accs[ i ]._fork_id = fork_id.val; + out_accs[ i ]._generation = fork->shmem->generation; + out_accs[ i ]._acc_map_idx = acc_map_idxs[ i ]; + } + fd_memcpy( out_accs[ i ].pubkey, pubkeys[ i ], 32UL ); + + if( FD_UNLIKELY( !accmetas[ i ] ) ) { + out_accs[ i ]._original_size_class = ULONG_MAX; + out_accs[ i ]._original_cache_idx = ULONG_MAX; + } else { + out_accs[ i ]._original_size_class = fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ); + out_accs[ i ]._original_cache_idx = cache_line_idx( accdb, out_accs[ i ]._original_size_class, original_cache_line[ i ] ); + } + + if( FD_UNLIKELY( writable[ i ] ) ) { + for( ulong j=0UL; joffset is still FD_ACCDB_OFF_INVAL. + // The read-iovec loop below spin-waits on + // offset!=FD_ACCDB_OFF_INVAL, so publishing evicted offsets first + // prevents an intra-batch deadlock where the thread waits on an + // offset that only it can resolve. + if( FD_LIKELY( batch_contiguous ) ) { + /* Fast path: all evictions fit in one contiguous region. Use the + pre-built iovec array for a single batched pwritev2 call. */ + ulong bytes_written = 0UL; + struct iovec * write_ptr = write_ops; + while( FD_LIKELY( bytes_writtenfd, write_ptr, fd_int_min( write_ops_cnt, IOV_MAX ), (long)(file_offset+bytes_written), 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "pwritev2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, pwritev2() returned 0 at offset %lu with %lu bytes remaining", + file_offset+bytes_written, total_write_sz-bytes_written )); + bytes_written += (ulong)result; + accdb->metrics->bytes_written += (ulong)result; + accdb->metrics->write_ops++; + + while( write_ops_cnt && (ulong)result>=(ulong)write_ptr[ 0 ].iov_len ) { + result -= (long)write_ptr[ 0 ].iov_len; + write_ptr++; + write_ops_cnt--; + } + if( FD_LIKELY( write_ops_cnt ) ) { + write_ptr[ 0 ].iov_base = (uchar *)write_ptr[ 0 ].iov_base + result; + write_ptr[ 0 ].iov_len -= (ulong)result; + } + } + } else { + /* Slow path: total eviction batch exceeds a single partition. + Write each entry individually using its own allocated offset. + This path is only taken in extreme edge cases (many concurrent + dirty 10 MiB evictions). */ + struct iovec * wp = write_ops; + for( int k=0; kexecutable_size ); + ulong entry_off = pending_offs[ k ]; + struct iovec entry_iovs[2] = { wp[0], wp[1] }; + wp += 2; + + ulong written = 0UL; + while( FD_LIKELY( writtenfd, entry_iovs, 2, (long)(entry_off+written), 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "pwritev2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, pwritev2() returned 0 at offset %lu with %lu bytes remaining", entry_off+written, entry_sz-written )); + written += (ulong)result; + accdb->metrics->bytes_written += (ulong)result; + accdb->metrics->write_ops++; + + for( int v=0; v<2; v++ ) { + if( (ulong)result>=(ulong)entry_iovs[ v ].iov_len ) { + result -= (long)entry_iovs[ v ].iov_len; + entry_iovs[ v ].iov_len = 0UL; + } else { + entry_iovs[ v ].iov_base = (uchar *)entry_iovs[ v ].iov_base + result; + entry_iovs[ v ].iov_len -= (ulong)result; + break; + } + } + } + } + } + + // STEP 10. + // Now that the data is on disk, publish the evicted account offsets + // so concurrent acquire threads spinning on + // offset==FD_ACCDB_OFF_INVAL can proceed. The fence ensures + // pwritev2 data is globally visible before the offset stores. + FD_COMPILER_MFENCE(); + for( int k=0; koffset_fork = fd_accdb_acc_pack_offset_fork( pending_offs[ k ], fd_accdb_acc_fork_id(pending_accs[ k ]) ); + pending_lines[ k ]->persisted = 1; + } + + // STEP 11. + // Now construct iovecs for any reads we need to do of accounts into + // the cache. For reading accounts, we read them directly into the + // sole cache line we took (and maybe just evicted). For writing + // accounts, we read them into the right sized cache line, and later + // it will be copied to the staging buffer. This is to prevent + // repeatedly reading the same account off disk into cache, if it is + // being written cold multiple times and every write fails. + + ulong read_ops_cnt = 0UL; + ulong read_offsets[ FD_ACCDB_CACHE_CLASS_CNT*FD_ACCDB_MAX_ACQUIRE_CNT ]; + uchar * read_bases[ FD_ACCDB_CACHE_CLASS_CNT*FD_ACCDB_MAX_ACQUIRE_CNT ]; + ulong read_sizes[ FD_ACCDB_CACHE_CLASS_CNT*FD_ACCDB_MAX_ACQUIRE_CNT ]; + struct iovec read_ops[ FD_ACCDB_CACHE_CLASS_CNT*FD_ACCDB_MAX_ACQUIRE_CNT ]; + + for( ulong i=0UL; imetrics->accounts_not_found_per_class[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) ) ]++; + + /* Tombstones (lamports==0) have no on-disk payload to read, and + background_advance_root may unlink the acc and never assign it a + disk offset, so the offset_fork spin below would hang forever. + Step 15's tombstone reset zeros the owner for these accounts. */ + if( FD_UNLIKELY( !accmetas[ i ]->lamports ) ) continue; + + /* We are guaranteed that if an account is in the cache, the bytes + are available (all cache operations are atomic via refcnt CAS), + but we are not guaranteed that if something is _not_ in the cache + that it has been written back to disk yet. In paticular, if we + are trying to read an account that another thread is in the + process of evicting, we know they removed it from the cache, but + we don't know exactly when they will have written it back fully + to disk, so we may need to wait for that here. + + Compaction may concurrently relocate this record, but + epoch-based safe reclamation guarantees the source partition + is not freed until all epoch-protected operations that could + have snapshotted the old offset have exited. So the data at the + snapshotted offset remains stable for the duration of our + read and no post-read validation is needed. */ + ulong off_packed = FD_VOLATILE_CONST( accmetas[ i ]->offset_fork ); + while( FD_UNLIKELY( (off_packed & FD_ACCDB_OFF_MASK)==FD_ACCDB_OFF_INVAL ) ) { + FD_SPIN_PAUSE(); + off_packed = FD_VOLATILE_CONST( accmetas[ i ]->offset_fork ); + } + fd_racesan_hook( "accdb_coldload:pre_iovec" ); + + read_offsets[ read_ops_cnt ] = fd_accdb_acc_offset(accmetas[ i ]) + offsetof(fd_accdb_disk_meta_t, owner); + read_bases[ read_ops_cnt ] = original_cache_line[ i ]->owner; + read_sizes[ read_ops_cnt ] = 32UL + FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ); + read_ops[ read_ops_cnt++ ] = (struct iovec){ .iov_base = original_cache_line[ i ]->owner, .iov_len = 32UL + FD_ACCDB_SIZE_DATA( accmetas[ i ]->executable_size ) }; + } + + // STEP 12. + // Almost done... now do the actual reads of accounts into cache, + // using the iovecs we constructed. This is basically the same loop + // as the writes, but with preadv2 instead of pwritev2, and that the + // reads are not necessarily all contiguous, but occur at random + // offsets. + // + // CONCURRENCY: The compaction tile may concurrently relocate a + // record we are about to read (both are epoch-protected). Epoch- + // based safe reclamation guarantees the source partition is not + // freed until all epoch-protected operations that could have + // snapshotted the old offset have exited, so the data at the + // remains stable for the duration of this read — no post-read + // validation or retry is needed. + for( ulong i=0UL; ifd, &read_ops[ i ], 1, (long)(read_offsets[ i ]+bytes_read), 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK ) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "preadv2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, data expected at offset %lu with size %lu exceeded file extents", + read_offsets[ i ]+bytes_read, read_sizes[ i ] )); + fd_accdb_partition_read_bump( accdb, read_offsets[ i ]+bytes_read, (ulong)result ); + bytes_read += (ulong)result; + accdb->metrics->bytes_read += (ulong)result; + accdb->metrics->read_ops++; + + read_ops[ i ].iov_base = read_bases[ i ] + bytes_read; + read_ops[ i ].iov_len = read_sizes[ i ] - bytes_read; + } + } + + // STEP 13. + // Publish the real acc index for any cache lines we just loaded + // from disk, so concurrent threads spinning on acc_idx==UINT_MAX + // can proceed. The fence ensures all preadv2 data is visible + // before the sentinel is cleared. + FD_COMPILER_MFENCE(); + for( ulong i=0UL; iacc_idx ) = (uint)( accmetas[ i ] - accdb->acc_pool ); + FD_TEST( FD_VOLATILE_CONST( original_cache_line[ i ]->acc_idx )==(uint)( accmetas[ i ] - accdb->acc_pool ) ); + } + + // STEP 14. + // Spin-wait for any cache lines found via acc->cache_idx that are + // still being loaded by another thread's preadv2. The loading + // thread sets acc_idx to UINT_MAX before publishing cache_idx + // and publishes the real acc index after its read completes. + // This step is placed as late as possible to give the loading + // thread maximum time to finish before we need to spin. + for( ulong i=0UL; iacc_idx )!=UINT_MAX ) ) goto step13_check; + accdb->metrics->accounts_waited++; + while( FD_UNLIKELY( FD_VOLATILE_CONST( original_cache_line[ i ]->acc_idx )==UINT_MAX ) ) { + fd_racesan_hook( "accdb_acquire:step14_load_wait" ); + FD_SPIN_PAUSE(); + } + step13_check:; +#if FD_TMPL_USE_HANDHOLDING + FD_TEST( original_cache_line[ i ]->key.generation==accmetas[ i ]->key.generation && + !memcmp( original_cache_line[ i ]->key.pubkey, pubkeys[ i ], 32UL ) ); +#endif + } + + // STEP 15. + // Now that all reads from disk into original_cache_line have + // completed (and any concurrent loaders have published their + // acc_idx in step 14), copy the owner into the output entries. + // This must happen here rather than in step 8 because the cache + // line owner is only valid post-read for cold loads. + for( ulong i=0UL; ilamports==0UL ) ) { + memset( out_accs[ i ].owner, 0, 32UL ); + memset( out_accs[ i ].prior_owner, 0, 32UL ); + } else { + fd_memcpy( out_accs[ i ].owner, original_cache_line[ i ]->owner, 32UL ); + fd_memcpy( out_accs[ i ].prior_owner, original_cache_line[ i ]->owner, 32UL ); + } + } + + // STEP 16. + // Finally, copy any accounts we are writing into the staging + // buffers, so they occupy a 10MiB cache line for the execution + // system. + for( ulong i=0UL; iexecutable_size ); + fd_memcpy( destination_cache_lines[ i ][ 7UL ]+1UL, original_cache_line[ i ]+1UL, copy_sz ); + accdb->metrics->bytes_copied += copy_sz; + } + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; +} + +void +fd_accdb_acquire( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_IDLE ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_OPEN; + fd_accdb_acquire_inner( accdb, fork_id, RESERVATION_TYPE_SIMPLE, 0UL, pubkeys_cnt, pubkeys, writable, out_accs ); +} + +void +fd_accdb_acquire_a( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_IDLE ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_PHASE_A; + fd_accdb_acquire_inner( accdb, fork_id, RESERVATION_TYPE_MAYBE_PROGRAMDATA, 0UL, pubkeys_cnt, pubkeys, writable, out_accs ); +} + +void +fd_accdb_acquire_b( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong reserved_cnt, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_PHASE_A ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_OPEN; + fd_accdb_acquire_inner( accdb, fork_id, RESERVATION_TYPE_ALREADY_RESERVED, reserved_cnt, pubkeys_cnt, pubkeys, writable, out_accs ); +} + +/* release_inner drains one group of acquired accs but does NOT change the + handle's acquire_state. The public fd_accdb_release / fd_accdb_release_ab + wrappers below own the state transition (a single-phase release closes + the bracket; release_ab drains both phase groups then closes). */ +static void +release_inner( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_OPEN ); + + { + ulong prev = FD_VOLATILE_CONST( *accdb->my_epoch_slot ); + FD_TEST( prev==ULONG_MAX || prev<=FD_VOLATILE_CONST( accdb->shmem->epoch ) ); + } + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); /* StoreLoad: epoch store must be globally visible + before any subsequent loads so the deferred + reclamation scan does not miss us. */ + + // STEP 1. + // For each cache line which was written to in the 10MiB staging + // buffer, we may need to copy to the data out to a right sized + // cache line. Figuring out the target cache line is non-obvious, + // but follows the more complete logic below this, we just pull the + // memcpy out so they are not done inside the cache lock. + + for( ulong i=0UL; ishmem->cache_class_max[ accs[ i ]._original_size_class ] ); + } + if( FD_UNLIKELY( accs[ i ].commit ) ) FD_TEST( accs[ i ]._writable ); +#endif + + if( FD_LIKELY( !accs[ i ]._writable || !accs[ i ].commit ) ) continue; +#if FD_TMPL_USE_HANDHOLDING + if( FD_UNLIKELY( accs[ i ]._overwrite ) ) { + FD_TEST( accs[ i ]._writable ); + FD_TEST( accs[ i ]._original_cache_idx!=ULONG_MAX ); + FD_TEST( accs[ i ]._original_size_class!=ULONG_MAX ); + } +#endif + + ulong original_size_class = accs[ i ]._original_size_class; + ulong new_size_class = fd_accdb_cache_class( accs[ i ].data_len ); + if( FD_UNLIKELY( new_size_class==7UL ) ) continue; + + fd_accdb_cache_line_t * target_cache_line; + if( FD_LIKELY( original_size_class==new_size_class && accs[ i ]._overwrite ) ) target_cache_line = cache_line( accdb, original_size_class, accs[ i ]._original_cache_idx ); + else target_cache_line = cache_line( accdb, new_size_class, accs[ i ]._write.destination_cache_idx[ new_size_class ] ); + + fd_accdb_cache_line_t * staging_line = cache_line( accdb, 7UL, accs[ i ]._write.destination_cache_idx[ 7UL ] ); + + fd_racesan_hook( "accdb_commit:pre_owner_write" ); + +#if FD_TMPL_USE_HANDHOLDING + if( FD_UNLIKELY( original_size_class==new_size_class && accs[ i ]._overwrite ) ) { + uint rc = FD_VOLATILE_CONST( target_cache_line->refcnt ); + FD_TEST( target_cache_line->key.generation==accs[ i ]._generation && + !memcmp( target_cache_line->key.pubkey, accs[ i ].pubkey, 32UL ) && + rc>0U && + rc!=FD_ACCDB_EVICT_SENTINEL ); + } +#endif + + fd_memcpy( target_cache_line->owner, accs[ i ].owner, 32UL ); + fd_memcpy( target_cache_line+1UL, staging_line+1UL, accs[ i ].data_len ); + accdb->metrics->bytes_copied += accs[ i ].data_len; + } + + // STEP 2. + // Now update the metadata structures and free lists to reflect the + // fact that we are done with these cache lines. This is fully + // atomic with CLOCK. + + for( ulong i=0UL; irefcnt>0U ); +#endif + if( FD_LIKELY( !accs[ i ]._writable || !accs[ i ].commit || !accs[ i ]._overwrite ) ) { + FD_ATOMIC_FETCH_AND_SUB( &original_cache_line->refcnt, 1U ); + } + } + + if( FD_LIKELY( !accs[ i ]._writable ) ) { + /* For readonly accounts, mark as recently used so the CLOCK + algorithm gives it a second chance before eviction. */ +#if FD_TMPL_USE_HANDHOLDING + FD_TEST( original_cache_line ); +#endif + original_cache_line->referenced = 1; + continue; + } + + fd_accdb_cache_line_t * destination_cache_lines[ FD_ACCDB_CACHE_CLASS_CNT ]; + for( ulong j=0UL; jreferenced = 1; + for( ulong j=0UL; jacc_idx pointing + at the prior owner. cache_free_push consumers (CLOCK, + background_preevict) skip lines only when acc_idx==UINT_MAX + AND gen==UINT_MAX; if we leave the stale acc_idx, a future + CLOCK pick would call line 849/853 against the wrong acc + and corrupt its cache_idx/valid. */ + destination_cache_lines[ j ]->acc_idx = UINT_MAX; + destination_cache_lines[ j ]->key.generation = UINT_MAX; + destination_cache_lines[ j ]->refcnt = 0; + destination_cache_lines[ j ]->persisted = 1; + cache_free_push( accdb, j, destination_cache_lines[ j ] ); + } + continue; + } + + ulong new_size_class = fd_accdb_cache_class( accs[ i ].data_len ); + uint original_acc_idx = original_cache_line ? original_cache_line->acc_idx : UINT_MAX; + fd_accdb_cache_line_t * committed_line; + + /* For overwrites, invalidate the on-disk offset BEFORE removing + the cache acc. This ensures a concurrent acquire that misses + the cache will see offset==FD_ACCDB_OFF_INVAL and spin-wait, + rather than reading stale on-disk bytes from the old location. + The CAS-loop exchange also serializes with a concurrent + compaction CAS (old_offset -> dest_offset). */ + ulong old_offset = FD_ACCDB_OFF_INVAL; + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + fd_accdb_accmeta_t * ow_accmeta = &accdb->acc_pool[ original_acc_idx ]; + fd_racesan_hook( "accdb_overwrite:pre_xchg_offset" ); + old_offset = fd_accdb_acc_xchg_offset( ow_accmeta, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_offset!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( accdb->shmem, old_offset, (ulong)FD_ACCDB_SIZE_DATA(ow_accmeta->executable_size)+sizeof(fd_accdb_disk_meta_t) ); + FD_ATOMIC_FETCH_AND_SUB( &accdb->shmem->shmetrics->disk_used_bytes, (ulong)FD_ACCDB_SIZE_DATA(ow_accmeta->executable_size)+sizeof(fd_accdb_disk_meta_t) ); + } + } + + if( FD_UNLIKELY( new_size_class==7UL ) ) { + /* The account belongs in the largest size class, and we already + have it resident in a 10MiB buffer anyway, so no need to copy + back. If we are "overwriting" (same generation as the account + came from), then the original can be discarded (pushed to + the CAS free list) and removed from the cache. */ + destination_cache_lines[ 7UL ]->persisted = 0; + destination_committed[ 7UL ] = 1; + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + /* Atomically clear acc.VALID and acc.cache_idx BEFORE freeing + the line, so a reader cannot observe acc.VALID=1 with + acc.cache_idx pointing at a line that has been recycled to + another acc. evict_clear_acc_cache_ref uses the CLAIM + protocol to serialize with cold_load_acc. */ + evict_clear_acc_cache_ref( &accdb->acc_pool[ original_acc_idx ], original_size_class, accs[ i ]._original_cache_idx ); + + /* Drop our pin, then try to claim the line exclusively for + freeing. A concurrent reader that pinned the line via + cache_try_pin BEFORE evict_clear_acc_cache_ref completed + may still hold a reference here (its ABA check on + line->key.generation is not synchronized with our writes + to that field). CAS(refcnt, 0, EVICT_SENTINEL) succeeds + only when no such reader is outstanding; on failure we + must NOT free the line — leave acc_idx/key.generation + intact so CLOCK can reclaim it once the reader unpins. + At that point CLOCK's call to evict_clear_acc_cache_ref + is a no-op (acc.cache_idx no longer matches expected_cidx) + and the line is safely repurposed. */ + FD_ATOMIC_FETCH_AND_SUB( &original_cache_line->refcnt, 1U ); + if( FD_LIKELY( FD_ATOMIC_CAS( &original_cache_line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )==0U ) ) { + original_cache_line->persisted = 1; + original_cache_line->acc_idx = UINT_MAX; + original_cache_line->key.generation = UINT_MAX; + original_cache_line->refcnt = 0; + cache_free_push( accdb, original_size_class, original_cache_line ); + } + } + committed_line = destination_cache_lines[ 7UL ]; + } else { + /* The account started in some arbitrary size class, transited + through a 10MiB staging buffer, and is now being written back + to some arbitrary (non-10MiB) size class, so we need to copy it + there. The staging buffer is discarded. If we are going to + a different size class, and we are "overwriting" (same + generation), then the original can also be discarded, but if + we are staying in the same size class, we can reuse the cache + line in place. */ + fd_accdb_cache_line_t * target_cache_line; + if( FD_LIKELY( original_size_class==new_size_class ) ) { + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + FD_TEST( FD_VOLATILE_CONST( original_cache_line->refcnt )==1U ); + original_cache_line->key.generation = UINT_MAX; + /* Keep refcnt>=1 through the reuse window so CLOCK cannot + steal the line between invalidation and re-publish. The + pin is released in the destination cleanup loop after + acc->cache_idx has been republished. */ + original_cache_line->acc_idx = UINT_MAX; + target_cache_line = original_cache_line; + } else { + target_cache_line = destination_cache_lines[ new_size_class ]; + destination_committed[ new_size_class ] = 1; + } + } else { + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + /* Atomically clear acc.VALID and acc.cache_idx BEFORE freeing + the line, so a reader cannot observe acc.VALID=1 with + acc.cache_idx pointing at a line that has been recycled to + another acc. evict_clear_acc_cache_ref uses the CLAIM + protocol to serialize with cold_load_acc. See the + size_class==7 path above for the refcnt CAS rationale. */ + evict_clear_acc_cache_ref( &accdb->acc_pool[ original_acc_idx ], original_size_class, accs[ i ]._original_cache_idx ); + FD_ATOMIC_FETCH_AND_SUB( &original_cache_line->refcnt, 1U ); + if( FD_LIKELY( FD_ATOMIC_CAS( &original_cache_line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )==0U ) ) { + original_cache_line->persisted = 1; + original_cache_line->acc_idx = UINT_MAX; + original_cache_line->key.generation = UINT_MAX; + original_cache_line->refcnt = 0; + cache_free_push( accdb, original_size_class, original_cache_line ); + } + } + + destination_committed[ new_size_class ] = 1; + target_cache_line = destination_cache_lines[ new_size_class ]; + } + + target_cache_line->persisted = 0; + /* If target is the original cache line (overwrite, same size + class), mark as referenced directly since the cleanup loop + only handles destination lines. */ + if( FD_LIKELY( !destination_committed[ new_size_class ] ) ) target_cache_line->referenced = 1; + committed_line = target_cache_line; + } + + /* For non-overwrite commits, the original cache line (if any) still + holds valid ancestor data but is no longer pinned. Mark it as + recently used so the CLOCK algorithm retains it. */ + if( FD_UNLIKELY( !accs[ i ]._overwrite && original_cache_line ) ) { + original_cache_line->referenced = 1; + } + + /* Handle every destination cache line: committed ones keep + refcnt>=1 until acc->cache_idx is published (the deferred + unpin happens after the publish below), uncommitted ones are + fully freed to the CAS free list. */ + for( ulong j=0UL; jreferenced = 1; + } else { + /* See note above (no-commit path): clear stale acc_idx/gen + before pushing, otherwise CLOCK can pick this line and + stomp the prior owner's cache_idx/valid. */ + destination_cache_lines[ j ]->acc_idx = UINT_MAX; + destination_cache_lines[ j ]->key.generation = UINT_MAX; + destination_cache_lines[ j ]->refcnt = 0; + destination_cache_lines[ j ]->persisted = 1; + cache_free_push( accdb, j, destination_cache_lines[ j ] ); + } + } + + /* Update the accounts index for this committed write. For an + overwrite (same fork+generation), update the existing acc + acc in place. Otherwise allocate a new acc, prepend it + to the hash chain, and record the write in a txn linked to + the fork so advance_root can clean up old versions. */ + if( FD_LIKELY( accs[ i ]._overwrite ) ) { + accdb->metrics->accounts_committed_overwrite_per_class[ new_size_class ]++; + committed_line->acc_idx = original_acc_idx; + + fd_accdb_accmeta_t * accmeta = &accdb->acc_pool[ original_acc_idx ]; + /* The offset was already atomically swapped to FD_ACCDB_OFF_INVAL + and bytes freed above, so just update the metadata and + re-publish the cache location. CAS-loop preserves CLAIM bit + (a concurrent evict_clear_acc_cache_ref or acc_unlink may + hold it) and clears VALID; a plain store would clobber CLAIM + and break those protocols. */ + for(;;) { + uint cur = FD_VOLATILE_CONST( accmeta->executable_size ); + uint nxt = (cur & FD_ACCDB_SIZE_CACHE_CLAIM_BIT) | FD_ACCDB_SIZE_PACK( (uint)accs[ i ].data_len, accs[ i ].executable ); + if( FD_LIKELY( FD_ATOMIC_CAS( &accmeta->executable_size, cur, nxt )==cur ) ) break; + FD_SPIN_PAUSE(); + } + accmeta->lamports = accs[ i ].lamports; + fd_racesan_hook( "accdb_overwrite:mid_inplace" ); + + fd_memcpy( committed_line->owner, accs[ i ].owner, 32UL ); + fd_memcpy( committed_line->key.pubkey, accmeta->key.pubkey, 32UL ); + committed_line->key.generation = accmeta->key.generation; + committed_line->acc_idx = original_acc_idx; + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_PACK( (uint)new_size_class, (uint)cache_line_idx( accdb, new_size_class, committed_line ) ); + /* Atomic OR so a concurrent evict_clear_acc_cache_ref's CLAIM + clear (FETCH_AND_AND with ~CLAIM) cannot be lost by an RMW + race with a plain |= store. */ + FD_ATOMIC_FETCH_AND_OR( &accmeta->executable_size, FD_ACCDB_SIZE_CACHE_VALID_BIT ); + + /* Now that acc->cache_idx is published, unpin so CLOCK can + eventually evict it. For same-size overwrites, committed_line + IS the reused original_cache_line. For cross-size overwrites, + committed_line is a destination line whose refcnt decrement was + deferred from the cleanup loop. */ + FD_ATOMIC_FETCH_AND_SUB( &committed_line->refcnt, 1U ); + committed_line->referenced = 1; + } else { + accdb->metrics->accounts_committed_new_per_class[ new_size_class ]++; + fd_accdb_accmeta_t * accmeta = acc_pool_acquire( accdb->acc_pool_join ); + FD_TEST( accmeta ); + ulong acc_idx = acc_pool_idx( accdb->acc_pool_join, accmeta ); + fd_memcpy( accmeta->key.pubkey, accs[ i ].pubkey, 32UL ); + accmeta->lamports = accs[ i ].lamports; + accmeta->executable_size = FD_ACCDB_SIZE_PACK( (uint)accs[ i ].data_len, accs[ i ].executable ); + accmeta->key.generation = accs[ i ]._generation; + accmeta->offset_fork = fd_accdb_acc_pack_offset_fork( FD_ACCDB_OFF_INVAL, accs[ i ]._fork_id ); + + /* Publish in the cache BEFORE the acc_map head so that a + concurrent acquire that finds this acc in the hash chain will + also find a cache hit, rather than inserting a conflicting + placeholder cache acc. */ + committed_line->acc_idx = (uint)acc_idx; + fd_memcpy( committed_line->owner, accs[ i ].owner, 32UL ); + fd_memcpy( committed_line->key.pubkey, accmeta->key.pubkey, 32UL ); + committed_line->key.generation = accmeta->key.generation; + FD_VOLATILE( accmeta->cache_idx ) = FD_ACCDB_ACC_CIDX_PACK( (uint)new_size_class, (uint)cache_line_idx( accdb, new_size_class, committed_line ) ); + /* Atomic OR so a concurrent evict_clear_acc_cache_ref's CLAIM + clear (FETCH_AND_AND with ~CLAIM) cannot be lost by an RMW + race with a plain |= store. */ + FD_ATOMIC_FETCH_AND_OR( &accmeta->executable_size, FD_ACCDB_SIZE_CACHE_VALID_BIT ); + + /* Now that acc->cache_idx is published, unpin it so + CLOCK can eventually evict it. */ + FD_ATOMIC_FETCH_AND_SUB( &committed_line->refcnt, 1U ); + committed_line->referenced = 1; + + /* CAS loop to prepend to the hash chain. Succeeds on the first + try in most cases, but a concurrent acc_unlink CAS removing + the old head can change acc_map[idx] between our load and + CAS. Multiple concurrent releases may also race on the head + pointer — the CAS retry handles this. */ + for(;;) { + uint old_head = FD_VOLATILE_CONST( accdb->acc_map[ accs[ i ]._acc_map_idx ] ); + accmeta->map.next = old_head; + FD_COMPILER_MFENCE(); + fd_racesan_hook( "accdb_release:pre_chain_cas" ); + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->acc_map[ accs[ i ]._acc_map_idx ], old_head, (uint)acc_idx )==old_head ) ) break; + FD_SPIN_PAUSE(); + } + + /* CONCURRENCY: The cache acc is published before the acc_map + head so that a concurrent fd_accdb_acquire reader that + observes the new head also finds a cache hit, preventing + duplicate cache insertion. + + (1) The CAS on acc_map[idx] serializes head-pointer mutations + from concurrent releases onto the same chain without any + external lock. + + (2) The FD_COMPILER_MFENCE above ensures stores to the acc node + fields (pubkey, lamports, size, generation, fork_id, + offset, map.next) are ordered before the CAS that publishes + the new head. On x86-64 (TSO), hardware also guarantees + this, but the compiler fence is needed to prevent the + compiler from reordering the stores. A reader that + observes the new head is guaranteed to see a fully + initialized node. A reader that has not yet seen the new + head simply traverses the previous (still valid) chain. + + (3) A concurrent acc_unlink (advance_root / purge) may CAS the + head away between our load and CAS here. The CAS retry + loop handles this. */ + + fd_accdb_txn_t * txn = txn_pool_acquire( accdb->txn_pool ); + FD_TEST( txn ); /* Sized so it always succeeds */ + txn->acc_map_idx = (uint)accs[ i ]._acc_map_idx; + txn->acc_pool_idx = (uint)acc_idx; + uint txn_idx = (uint)txn_pool_idx( accdb->txn_pool, txn ); + for(;;) { + uint old_head = FD_VOLATILE_CONST( accdb->fork_pool[ accs[ i ]._fork_id ].shmem->txn_head ); + txn->fork.next = old_head; + if( FD_LIKELY( FD_ATOMIC_CAS( &accdb->fork_pool[ accs[ i ]._fork_id ].shmem->txn_head, old_head, txn_idx )==old_head ) ) break; + FD_SPIN_PAUSE(); + } + + FD_ATOMIC_FETCH_AND_ADD( &accdb->shmem->shmetrics->accounts_total, 1UL ); + } + } + + // STEP 3. + // Finally, we release the cache class reservations we took at the + // beginning when we acquired these cache lines. Credits return + // directly to the shared pool so other threads can use them + // immediately. + + ulong refund[ FD_ACCDB_CACHE_CLASS_CNT ] = {0}; + for( ulong i=0UL; ishmem->cache_class_used[ accs[ i ]._original_size_class ].val!=ULONG_MAX ) ) { + refund[ accs[ i ]._original_size_class ]++; + } + } + if( FD_UNLIKELY( accs[ i ]._writable ) ) { + for( ulong j=0UL; jshmem->cache_class_used[ j ].val!=ULONG_MAX ) ) { + refund[ j ]++; + } + } + } + } + for( ulong k=0UL; kshmem->cache_class_used[ k ].val, refund[ k ] ); + } + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; +} + +void +fd_accdb_release( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_OPEN ); + release_inner( accdb, accs_cnt, accs ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; +} + +void +fd_accdb_release_ab( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs, + ulong execs_cnt, + fd_acc_t * execs ) { + FD_TEST( accdb->acquire_state==FD_ACCDB_ACQUIRE_STATE_OPEN ); + release_inner( accdb, accs_cnt, accs ); + if( FD_LIKELY( execs_cnt ) ) release_inner( accdb, execs_cnt, execs ); + accdb->acquire_state = FD_ACCDB_ACQUIRE_STATE_IDLE; +} + +fd_acc_t +fd_accdb_read_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + fd_acc_t acc; + fd_accdb_acquire( accdb, fork_id, 1UL, &pubkey, (int[]){0}, &acc ); + return acc; +} + +void +fd_accdb_unread_one( fd_accdb_t * accdb, + fd_acc_t * acc ) { + fd_accdb_release( accdb, 1UL, acc ); +} + +fd_acc_t +fd_accdb_write_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + fd_acc_t acc; + fd_accdb_acquire( accdb, fork_id, 1UL, &pubkey, (int[]){1}, &acc ); + return acc; +} + +void +fd_accdb_unwrite_one( fd_accdb_t * accdb, + fd_acc_t * acc ) { + fd_accdb_release( accdb, 1UL, acc ); +} + +void +fd_accdb_read_one_nocache( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong * out_lamports, + int * out_executable, + uchar * out_owner, + uchar * out_data, + ulong * out_data_len ) { + /* Publish epoch — protects against compaction freeing the partition + under us during the preadv2 path. This is the only write the + readonly joiner makes into accdb shmem (and the pointer it stores + through is mapped through a separately-mmap'd writable page that + aliases shmem->joiner_epochs[idx]). */ + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); + + /// STEP 1. + /// Walk the hash chain at acc_map[hash(pubkey)] using the same + // visibility test as fd_accdb_acquire_inner. See that function + // for the detailed safety argument under concurrent prepend. + uint root_generation = accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); + uint acc_idx = FD_VOLATILE_CONST( accdb->acc_map[ hash ] ); + fd_accdb_accmeta_t const * accmeta = NULL; + while( acc_idx!=UINT_MAX ) { + fd_accdb_accmeta_t const * candidate = &accdb->acc_pool[ acc_idx ]; + uint next_idx = FD_VOLATILE_CONST( candidate->map.next ); + if( FD_UNLIKELY( (candidate->key.generation>root_generation && + fd_accdb_acc_fork_id(candidate)!=fork_id.val && + !descends_set_test( fork->descends, fd_accdb_acc_fork_id(candidate) )) ) || + memcmp( pubkey, candidate->key.pubkey, 32UL ) ) { + acc_idx = next_idx; + continue; + } + accmeta = candidate; + break; + } + + if( FD_UNLIKELY( !accmeta ) ) { + accdb->metrics->accounts_acquired_per_class[ 0 ]++; + *out_lamports = 0UL; + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + + /// STEP 2. + /// Snapshot acc fields. The acc element's metadata is effectively + /// immutable from the perspective of cross-fork readers (see the + /// comment block in fd_accdb.h about cross-fork reads). */ + uint snap_es = FD_VOLATILE_CONST( accmeta->executable_size ); + uint snap_gen = accmeta->key.generation; + ulong snap_lamports = accmeta->lamports; + uint snap_cidx = FD_VOLATILE_CONST( accmeta->cache_idx ); + ulong data_len = (ulong)FD_ACCDB_SIZE_DATA( snap_es ); + int executable = FD_ACCDB_SIZE_EXEC( snap_es ); + + accdb->metrics->accounts_acquired_per_class[ fd_accdb_cache_class( data_len ) ]++; + + if( FD_UNLIKELY( !snap_lamports ) ) { + *out_lamports = 0UL; + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + + /// STEP 3. + /// Cache hit fast path with try-read-test (ABA) loop. Same + /// primitives as cache_try_pin: re-check key.generation + pubkey + /// before and after the bulk copy, and bail to the disk path if the + /// line was claimed for eviction (refcnt == + /// FD_ACCDB_EVICT_SENTINEL). No CAS on refcnt, we never pin the + /// line. + if( FD_LIKELY( FD_ACCDB_SIZE_CACHE_VALID( snap_es ) && snap_cidx!=FD_ACCDB_ACC_CIDX_INVAL ) ) { + ulong cls = FD_ACCDB_ACC_CIDX_CLASS( snap_cidx ); + ulong idx = FD_ACCDB_ACC_CIDX_IDX ( snap_cidx ); + fd_accdb_cache_line_t * line = cache_line( accdb, cls, idx ); + + for(;;) { + uint gen0 = FD_VOLATILE_CONST( line->key.generation ); + uint rc0 = FD_VOLATILE_CONST( line->refcnt ); + uint ai0 = FD_VOLATILE_CONST( line->acc_idx ); + if( FD_UNLIKELY( rc0==FD_ACCDB_EVICT_SENTINEL ) ) goto miss; + if( FD_UNLIKELY( gen0!=snap_gen ) ) goto miss; + if( FD_UNLIKELY( memcmp( line->key.pubkey, pubkey, 32UL ) ) ) goto miss; + /* acc_idx==UINT_MAX is the "loading" sentinel set by cold_load_acc + before the preadv2 fills the line. CACHE_VALID can be observed + set while the bytes are still stale, so fall to the disk path + (which spins on offset_fork and reads from the file) rather + than copying garbage. */ + if( FD_UNLIKELY( ai0==UINT_MAX ) ) goto miss; + + FD_COMPILER_MFENCE(); + memcpy( out_owner, line->owner, 32UL ); + memcpy( out_data, (uchar const *)(line+1UL), data_len ); + FD_COMPILER_MFENCE(); + + uint gen1 = FD_VOLATILE_CONST( line->key.generation ); + uint rc1 = FD_VOLATILE_CONST( line->refcnt ); + uint ai1 = FD_VOLATILE_CONST( line->acc_idx ); + if( FD_UNLIKELY( rc1==FD_ACCDB_EVICT_SENTINEL ) ) goto miss; + if( FD_UNLIKELY( gen1!=snap_gen ) ) goto miss; + if( FD_UNLIKELY( memcmp( line->key.pubkey, pubkey, 32UL ) ) ) goto miss; + if( FD_UNLIKELY( ai1==UINT_MAX ) ) goto miss; + + *out_lamports = snap_lamports; + *out_executable = executable; + *out_data_len = data_len; + accdb->metrics->bytes_copied += data_len; + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return; + } + } + +miss:; + accdb->metrics->accounts_not_found_per_class[ fd_accdb_cache_class( FD_ACCDB_SIZE_DATA( snap_es ) ) ]++; + + /// STEP 4. + /// Disk path. Spin until the writer publishes a real offset + /// (matches STEP 10 of fd_accdb_acquire_inner). Compaction may + /// concurrently relocate the record, but our published epoch + /// prevents the source partition from being freed until we exit + /// our critical section, so the bytes at the snapshotted offset + /// remain stable for the duration of the read. + fd_racesan_hook( "accdb_nocache:pre_offset" ); + ulong off_packed = FD_VOLATILE_CONST( accmeta->offset_fork ); + if( FD_UNLIKELY( (off_packed & FD_ACCDB_OFF_MASK)==FD_ACCDB_OFF_INVAL ) ) { + accdb->metrics->accounts_waited++; + while( FD_UNLIKELY( ((off_packed=FD_VOLATILE_CONST( accmeta->offset_fork )) & FD_ACCDB_OFF_MASK)==FD_ACCDB_OFF_INVAL ) ) FD_SPIN_PAUSE(); + } + ulong off = off_packed & FD_ACCDB_OFF_MASK; + fd_racesan_hook( "accdb_nocache:pre_preadv2" ); + + struct iovec iovs[ 2 ] = { + { .iov_base = out_owner, .iov_len = 32UL }, + { .iov_base = out_data, .iov_len = data_len }, + }; + ulong total = 32UL+data_len; + ulong start = off+offsetof( fd_accdb_disk_meta_t, owner ); + ulong got = 0UL; + int nio = data_len ? 2 : 1; + while( FD_LIKELY( gotfd, iovs, nio, (long)(start+got), 0 ); + if( FD_UNLIKELY( -1==result && (errno==EINTR || errno==EAGAIN || errno==EWOULDBLOCK) ) ) continue; + else if( FD_UNLIKELY( -1==result ) ) FD_LOG_ERR(( "preadv2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + else if( FD_UNLIKELY( !result ) ) FD_LOG_ERR(( "accounts database is corrupt, data expected at offset %lu with size %lu exceeded file extents", start+got, total )); + fd_accdb_partition_read_bump( accdb, start+got, (ulong)result ); + got += (ulong)result; + accdb->metrics->bytes_read += (ulong)result; + accdb->metrics->read_ops++; + + long r = result; + for( int v=0; v=iovs[ v ].iov_len ) { + r -= (long)iovs[ v ].iov_len; + iovs[ v ].iov_len = 0UL; + } else { + iovs[ v ].iov_base = (uchar *)iovs[ v ].iov_base + r; + iovs[ v ].iov_len -= (ulong)r; + break; + } + } + } + + *out_lamports = snap_lamports; + *out_executable = executable; + *out_data_len = data_len; + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; +} + +int +fd_accdb_exists( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); + + uint root_generation = accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); + uint acc = FD_VOLATILE_CONST( accdb->acc_map[ hash ] ); + while( acc!=UINT_MAX ) { + fd_accdb_accmeta_t const * candidate_acc = &accdb->acc_pool[ acc ]; + uint next_acc = FD_VOLATILE_CONST( candidate_acc->map.next ); + + if( FD_UNLIKELY( (candidate_acc->key.generation>root_generation && fd_accdb_acc_fork_id(candidate_acc)!=fork_id.val && !descends_set_test( fork->descends, fd_accdb_acc_fork_id(candidate_acc) )) ) || memcmp( pubkey, candidate_acc->key.pubkey, 32UL ) ) { + acc = next_acc; + continue; + } + + break; + } + + int result; + if( FD_UNLIKELY( acc==UINT_MAX ) ) result = 0; + else result = !!FD_VOLATILE_CONST( accdb->acc_pool[ acc ].lamports ); + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return result; +} + +ulong +fd_accdb_lamports( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = FD_VOLATILE_CONST( accdb->shmem->epoch ); + FD_HW_MFENCE(); + + uint root_generation = accdb->fork_pool[ accdb->shmem->root_fork_id.val ].shmem->generation; + fd_accdb_fork_t * fork = &accdb->fork_pool[ fork_id.val ]; + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); + uint acc = FD_VOLATILE_CONST( accdb->acc_map[ hash ] ); + while( acc!=UINT_MAX ) { + fd_accdb_accmeta_t const * candidate_acc = &accdb->acc_pool[ acc ]; + uint next_acc = FD_VOLATILE_CONST( candidate_acc->map.next ); + + if( FD_UNLIKELY( (candidate_acc->key.generation>root_generation && fd_accdb_acc_fork_id(candidate_acc)!=fork_id.val && !descends_set_test( fork->descends, fd_accdb_acc_fork_id(candidate_acc) )) ) || memcmp( pubkey, candidate_acc->key.pubkey, 32UL ) ) { + acc = next_acc; + continue; + } + + break; + } + + ulong result; + if( FD_UNLIKELY( acc==UINT_MAX ) ) result = 0UL; + else result = FD_VOLATILE_CONST( accdb->acc_pool[ acc ].lamports ); + + FD_COMPILER_MFENCE(); + FD_VOLATILE( *accdb->my_epoch_slot ) = ULONG_MAX; + return result; +} + +/* cache_bg_evict pre-evicts cache lines in the background to keep the + per-class CAS free lists populated ahead of demand. For each class + whose immediately available capacity has dropped below low_water, + a bounded CLOCK sweep claims lines, writes dirty ones to disk, and + pushes them onto the free list until available capacity reaches + target. Immediately available capacity includes both the CAS free + list and the never-initialized tail of the class, since foreground + allocators can consume either path without evicting resident data. + + Budget: at most 256 CLOCK ticks per class per invocation to keep the + background loop responsive. The function is called every tick of + fd_accdb_background, so large refills happen across several ticks + rather than blocking. The low_water / target thresholds are static + per-class watermarks computed at initialization; pre-eviction only + converts resident lines into free-list entries and does not consume + cache-slot reservations. + + force: when non-zero, ignore the watermark and sweep every line in + every class. Always 0 in normal operation; used only by + test_accdb_racesan to deterministically exercise the writeback path + without manufacturing real cache pressure. */ + +static void +background_preevict( fd_accdb_t * accdb, + int * charge_busy, + int force ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + + for( ulong c=0UL; ccache_free_target[ c ]; + ulong max_c = shmem->cache_class_max[ c ]; + ulong init = fd_ulong_min( FD_VOLATILE_CONST( shmem->cache_class_init[ c ].val ), max_c ); + ulong freec = FD_VOLATILE_CONST( shmem->cache_free_cnt[ c ].val ); + ulong live = init>freec ? init-freec : 0UL; + ulong avail = max_c-live; + if( FD_LIKELY( !force && avail>=shmem->cache_free_low_water[ c ] ) ) continue; + + *charge_busy = 1; + + ulong budget = force ? init : 256UL; + ulong evicted = 0UL; + if( FD_UNLIKELY( force ) ) target = max_c; /* sweep everything */ + + for( ulong tick=0UL; tickcache_class_init[ c ].val ), max_c ); + if( FD_UNLIKELY( !init ) ) break; + + ulong hand = FD_ATOMIC_FETCH_AND_ADD( &shmem->clock_hand[ c ].val, 1UL ) % init; + + fd_accdb_cache_line_t * line = cache_line( accdb, c, hand ); + + if( FD_UNLIKELY( line->key.generation==UINT_MAX && line->acc_idx==UINT_MAX ) ) continue; + + uint rc = FD_VOLATILE_CONST( line->refcnt ); + if( FD_UNLIKELY( rc ) ) continue; + + if( FD_UNLIKELY( line->referenced ) ) { + line->referenced = 0; + continue; + } + + if( FD_UNLIKELY( FD_ATOMIC_CAS( &line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )!=0U ) ) continue; + + uint acc_idx = line->acc_idx; +#if FD_TMPL_USE_HANDHOLDING + uint line_gen FD_FN_UNUSED = line->key.generation; +#endif + if( FD_LIKELY( acc_idx!=UINT_MAX ) ) { + evict_clear_acc_cache_ref( &accdb->acc_pool[ acc_idx ], c, hand ); + } + line->key.generation = UINT_MAX; + if( FD_UNLIKELY( !line->persisted && acc_idx!=UINT_MAX ) ) { + fd_accdb_accmeta_t * accmeta = &accdb->acc_pool[ acc_idx ]; + fd_racesan_hook( "preevict:pre_synth" ); +#if FD_TMPL_USE_HANDHOLDING + FD_TEST( line_gen==accmeta->key.generation && + !memcmp( line->key.pubkey, accmeta->key.pubkey, 32UL ) ); +#endif + ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+(ulong)FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + + /* Atomically swap the old offset to FD_ACCDB_OFF_INVAL so that + a concurrent compaction CAS (old_offset -> dest_offset) + cannot succeed between our read and our later store of + the new file_off. Without the exchange, compaction could + relocate the record, then our plain store would overwrite + the relocated offset, leaving the compaction destination + as unreachable dead space whose bytes are never freed. */ + ulong old_offset = fd_accdb_acc_xchg_offset( accmeta, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_offset!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( shmem, old_offset, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &shmem->shmetrics->disk_used_bytes, entry_sz ); + } + + fd_accdb_disk_meta_t meta; + fd_memcpy( meta.pubkey, accmeta->key.pubkey, 32UL ); + meta.size = FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + fd_memcpy( meta.owner, line->owner, 32UL ); + + struct iovec iovs[ 2UL ] = { + { .iov_base = &meta, .iov_len = sizeof(fd_accdb_disk_meta_t) }, + { .iov_base = (void *)(line+1UL), .iov_len = FD_ACCDB_SIZE_DATA( accmeta->executable_size ) } + }; + + ulong file_off = allocate_next_write( accdb, entry_sz ); + ulong written = 0UL; + while( writtenfd, iovs, 2, (long)(file_off+written), 0 ); + if( FD_UNLIKELY( result==-1 && errno==EINTR ) ) continue; + else if( FD_UNLIKELY( result<=0 ) ) FD_LOG_ERR(( "pwritev2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + written += (ulong)result; + accdb->metrics->bytes_written += (ulong)result; + accdb->metrics->write_ops++; + + for( int v=0; v<2; v++ ) { + if( (ulong)result>=iovs[ v ].iov_len ) { + result -= (long)iovs[ v ].iov_len; + iovs[ v ].iov_len = 0UL; + } else { + iovs[ v ].iov_base = (uchar *)iovs[ v ].iov_base + result; + iovs[ v ].iov_len -= (ulong)result; + break; + } + } + } + + FD_COMPILER_MFENCE(); + accmeta->offset_fork = fd_accdb_acc_pack_offset_fork( file_off, fd_accdb_acc_fork_id(accmeta) ); + FD_ATOMIC_FETCH_AND_ADD( &shmem->shmetrics->disk_used_bytes, entry_sz ); + + accdb->metrics->accounts_preevicted++; + accdb->metrics->accounts_preevicted_per_class[ c ]++; + } + + line->persisted = 1; + line->acc_idx = UINT_MAX; + line->key.generation = UINT_MAX; + line->refcnt = 0; + cache_free_push( accdb, c, line ); + evicted++; + } + } +} + +int +fd_accdb_snapshot_write_one( fd_accdb_t * accdb, + uchar const * pubkey, + ulong slot, + ulong lamports, + ulong data_len, + int executable, + ulong * out_replaced_lamports ) { + /* Snapshot slots are stored in the 32-bit cache_idx scratch field + during loading. Reject anything that would truncate. */ + if( FD_UNLIKELY( slot>UINT_MAX ) ) FD_LOG_ERR(( "snapshot slot %lu exceeds 2^32-1, accdb format must be widened", slot )); + + ulong hash = fd_accdb_hash( pubkey, accdb->shmem->seed )&(accdb->shmem->chain_cnt-1UL); + + *out_replaced_lamports = 0UL; + + fd_accdb_accmeta_t * accmeta = NULL; + + ulong next_acc = accdb->acc_map[ hash ]; + while( next_acc!=UINT_MAX ) { + fd_accdb_accmeta_t * candidate_acc = &accdb->acc_pool[ next_acc ]; + if( FD_UNLIKELY( !memcmp( pubkey, candidate_acc->key.pubkey, 32UL ) ) ) { + if( FD_LIKELY( (ulong)candidate_acc->cache_idx>slot ) ) { + /* Still advance the write head so snapwr and snapin stay in + sync — snapwr unconditionally writes every account to disk. + Mark the space as immediately freed since it is dead on + arrival. */ + ulong dead_sz = sizeof(fd_accdb_disk_meta_t)+data_len; + ulong dead_off = allocate_next_write( accdb, dead_sz ); + fd_accdb_shmem_bytes_freed( accdb->shmem, dead_off, dead_sz ); + return -1; + } else { + accmeta = candidate_acc; + break; + } + } + next_acc = candidate_acc->map.next; + } + + int replace = !!accmeta; + + if( FD_UNLIKELY( !accmeta ) ) { + accmeta = acc_pool_acquire( accdb->acc_pool_join ); + if( FD_UNLIKELY( !accmeta ) ) FD_LOG_ERR(( "accounts database ran out of space during snapshot loading, increase [accounts.max_accounts], current value is %lu", acc_pool_ele_max( accdb->acc_pool_join ) )); + + fd_memcpy( accmeta->key.pubkey, pubkey, 32UL ); + accmeta->key.generation = accdb->shmem->generation; + accmeta->map.next = accdb->acc_map[ hash ]; + accdb->acc_map[ hash ] = (uint)acc_pool_idx( accdb->acc_pool_join, accmeta ); + } + + if( FD_UNLIKELY( replace ) ) { + /* The old version's disk space is now dead. */ + ulong old_sz = sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + fd_accdb_shmem_bytes_freed( accdb->shmem, fd_accdb_acc_offset( accmeta ), old_sz ); + accdb->shmem->shmetrics->disk_used_bytes -= old_sz; + *out_replaced_lamports = accmeta->lamports; + } + + accmeta->cache_idx = (uint)slot; + accmeta->lamports = lamports; + accmeta->executable_size = FD_ACCDB_SIZE_PACK( (uint)data_len, executable ); + ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+data_len; + accmeta->offset_fork = allocate_next_write( accdb, entry_sz ); + accdb->shmem->shmetrics->disk_used_bytes += entry_sz; + if( !replace ) accdb->shmem->shmetrics->accounts_total++; + + return replace ? 2 : 1; +} + +int +fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, + ulong cnt, + uchar const * const pubkeys[], + ulong const slots[], + ulong const lamports[], + ulong const data_lens[], + int const executables[], + ulong * accounts_ignored, + ulong * accounts_replaced, + ulong * accounts_loaded, + ulong * out_replaced_lamports, + ulong * out_ignored_lamports ) { + ulong seed = accdb->shmem->seed; + ulong chain_msk = accdb->shmem->chain_cnt - 1UL; + uint gen = accdb->shmem->generation; + + ulong ignored = 0UL; + ulong replaced = 0UL; + ulong loaded = 0UL; + ulong replaced_lamports = 0UL; + ulong ignored_lamports = 0UL; + + /* Snapshot slots are stored in the 32-bit cache_idx scratch field + during loading. Reject anything that would truncate. */ + for( ulong i=0UL; iUINT_MAX ) ) FD_LOG_ERR(( "snapshot slot %lu exceeds 2^32-1, accdb format must be widened", slots[ i ] )); + } + + /* Phase 1: compute hashes and prefetch chain heads. */ + + ulong hashes[ 8 ]; + fd_accdb_accmeta_t * existing[ 8 ]; + int skip[ 8 ]; + + for( ulong i=0UL; iacc_map[ hashes[ i ] ], 1, 1 ); + } + + /* Phase 2: walk chains looking for duplicates. By now the chain + heads prefetched above should be warm in L1/L2. If the existing + entry has a higher slot, mark skip. Otherwise, save the existing + entry pointer for in-place update (matching write_one semantics). */ + + for( ulong i=0UL; iacc_map[ hashes[ i ] ]; + + if( FD_LIKELY( next_acc!=UINT_MAX ) ) { + __builtin_prefetch( &accdb->acc_pool[ next_acc ], 0, 1 ); + } + + while( next_acc!=UINT_MAX ) { + fd_accdb_accmeta_t * candidate = &accdb->acc_pool[ next_acc ]; + + if( FD_LIKELY( candidate->map.next!=UINT_MAX ) ) { + __builtin_prefetch( &accdb->acc_pool[ candidate->map.next ], 0, 1 ); + } + + if( FD_UNLIKELY( !memcmp( pubkeys[ i ], candidate->key.pubkey, 32UL ) ) ) { + if( FD_LIKELY( (ulong)candidate->cache_idx>slots[ i ] ) ) { + skip[ i ] = 1; + } else { + existing[ i ] = candidate; + } + break; + } + next_acc = candidate->map.next; + } + } + + /* Phase 2b: reject intra-batch duplicate pubkeys. Snapin always + populates a batch from a single AppendVec, so every slot in the + batch is identical and a duplicate pubkey means the same account + appears twice at the same slot — i.e. a corrupt snapshot per the + Agave spec. We have no principled way to pick a winner; return + -1 so the caller can flag the snapshot malformed. Batches are + bounded (<=8) so the O(n^2) scan is trivial. */ + + for( ulong i=1UL; ishmem, dead_off, dead_sz ); + ignored_lamports += lamports[ i ]; + ignored++; + continue; + } + + fd_accdb_accmeta_t * accmeta; + + if( FD_UNLIKELY( existing[ i ] ) ) { + accmeta = existing[ i ]; + /* The old version's disk space is now dead. */ + ulong old_sz = sizeof(fd_accdb_disk_meta_t) + FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + fd_accdb_shmem_bytes_freed( accdb->shmem, fd_accdb_acc_offset( accmeta ), old_sz ); + accdb->shmem->shmetrics->disk_used_bytes -= old_sz; + replaced_lamports += accmeta->lamports; + replaced++; + } else { + accmeta = acc_pool_acquire( accdb->acc_pool_join ); + if( FD_UNLIKELY( !accmeta ) ) FD_LOG_ERR(( "accounts database ran out of space during snapshot loading" )); + fd_memcpy( accmeta->key.pubkey, pubkeys[ i ], 32UL ); + accmeta->key.generation = gen; + accmeta->map.next = accdb->acc_map[ hashes[ i ] ]; + accdb->acc_map[ hashes[ i ] ] = (uint)acc_pool_idx( accdb->acc_pool_join, accmeta ); + loaded++; + } + + accmeta->cache_idx = (uint)slots[ i ]; + accmeta->lamports = lamports[ i ]; + accmeta->executable_size = FD_ACCDB_SIZE_PACK( (uint)data_lens[ i ], executables[ i ] ); + ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+data_lens[ i ]; + accmeta->offset_fork = allocate_next_write( accdb, entry_sz ); + accdb->shmem->shmetrics->disk_used_bytes += entry_sz; + } + + accdb->shmem->shmetrics->accounts_total += loaded; + + *accounts_ignored = ignored; + *accounts_replaced = replaced; + *accounts_loaded = loaded; + *out_replaced_lamports = replaced_lamports; + *out_ignored_lamports = ignored_lamports; + + return 0; +} + +void +fd_accdb_background( fd_accdb_t * accdb, + int * charge_busy ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + uint op = FD_VOLATILE_CONST( shmem->cmd_op ); + if( FD_UNLIKELY( op!=FD_ACCDB_CMD_IDLE ) ) { + fd_accdb_fork_id_t fork_id = { .val = FD_VOLATILE_CONST( shmem->cmd_fork_id ) }; + + switch( op ) { + case FD_ACCDB_CMD_ADVANCE_ROOT: + background_advance_root( accdb, fork_id ); + break; + case FD_ACCDB_CMD_PURGE: + background_purge( accdb, fork_id ); + break; + default: + FD_LOG_ERR(( "unexpected accdb cmd_op %u", op )); + } + + FD_COMPILER_MFENCE(); + FD_VOLATILE( shmem->cmd_op ) = FD_ACCDB_CMD_IDLE; + *charge_busy = 1; + return; + } + + background_preevict( accdb, charge_busy, 0 ); + + for( ulong k=0UL; kshmem->shmetrics; +} + +fd_accdb_metrics_t const * +fd_accdb_metrics( fd_accdb_t * accdb ) { + return accdb->metrics; +} + +void +fd_accdb_cache_class_occupancy( fd_accdb_t * accdb, + ulong * used, + ulong * max, + ulong * reserved ) { + for( ulong c=0UL; cshmem->cache_class_max[ c ]; + ulong init = FD_VOLATILE_CONST( accdb->shmem->cache_class_init[ c ].val ); + ulong freec = FD_VOLATILE_CONST( accdb->shmem->cache_free_cnt [ c ].val ); + ulong live = init>freec ? init-freec : 0UL; + if( live>cap ) live = cap; + max [ c ] = cap; + used [ c ] = live; + reserved[ c ] = FD_VOLATILE_CONST( accdb->shmem->cache_class_used[ c ].val ); + } +} + +void +fd_accdb_cache_class_thresholds( fd_accdb_t * accdb, + ulong * target_used, + ulong * low_water_used ) { + for( ulong c=0UL; cshmem->cache_class_max [ c ]; + ulong free_tgt = accdb->shmem->cache_free_target [ c ]; + ulong free_lwm = accdb->shmem->cache_free_low_water[ c ]; + target_used [ c ] = max_c>free_tgt ? max_c-free_tgt : 0UL; + low_water_used[ c ] = max_c>free_lwm ? max_c-free_lwm : 0UL; + } +} + +#if FD_HAS_RACESAN + +/* Force pre-eviction (ignore the watermark) so a deterministic + single-threaded test can exercise the writeback path without + manufacturing real cache pressure. Sweeps several times: CLOCK needs + two visits to evict a recently-touched line (clear the "referenced" + bit, then evict), and the clock hand position carries across calls, so + one or two sweeps is not enough to guarantee every eligible line is + flushed back. */ +void +fd_accdb_debug_force_preevict( fd_accdb_t * accdb ) { + for( ulong iter=0UL; iter<8UL; iter++ ) { + int charge_busy = 0; + background_preevict( accdb, &charge_busy, 1 ); + } +} + +/* Locate the resident cache line currently holding `pubkey` (most recent + generation if multiple). Returns 1 and fills out_class/out_idx on a + hit, 0 if no resident line matches. Test-only helper so the test can + target a specific line without seeing the opaque fd_accdb struct. */ + +int +fd_accdb_debug_find_line( fd_accdb_t * accdb, + uchar const * pubkey, + ulong * out_class, + ulong * out_idx ) { + int found = 0; + uint best_gen = 0U; + for( ulong c=0UL; cshmem->cache_class_init[ c ].val ); + ulong max_c = accdb->shmem->cache_class_max[ c ]; + if( init>max_c ) init = max_c; + for( ulong idx=0UL; idxkey.generation==UINT_MAX ) continue; + if( memcmp( line->key.pubkey, pubkey, 32UL ) ) continue; + if( !found || line->key.generation>=best_gen ) { + best_gen = line->key.generation; + *out_class = c; + *out_idx = idx; + found = 1; + } + } + } + return found; +} + +/* Deterministically evict a single specified cache line via the + foreground evictor's claim sequence (CAS refcnt 0->EVICT_SENTINEL), + then write the dirty line back exactly as fd_accdb_acquire_inner's + STEP-4 / background_ preevict do (pubkey from accmeta, owner+data + from the line). Mirrors acquire_cache_line's CLOCK-claim path + (fd_accdb.c) so a racesan test can reproduce, without a 640+-slot + cache-pressure rig, the interleaving where acc_unlink observes + EVICT_SENTINEL on the line it is unlinking. + + The fd_racesan_hook("clock_evict:post_sentinel") fires right after + the sentinel is installed (matching the production foreground path), + so the test can suspend this fiber holding the sentinel while another + fiber drives acc_unlink to its reclaim CAS. Returns the captured + evicted acc_idx (UINT_MAX if the line was clean / unbound). */ + +uint +fd_accdb_debug_clock_evict_line( fd_accdb_t * accdb, + ulong size_class, + ulong line_idx ) { + fd_accdb_shmem_t * shmem = accdb->shmem; + fd_accdb_cache_line_t * line = cache_line( accdb, size_class, line_idx ); + + /* Claim for eviction, same as acquire_cache_line's CLOCK path. */ + if( FD_UNLIKELY( FD_ATOMIC_CAS( &line->refcnt, 0U, FD_ACCDB_EVICT_SENTINEL )!=0U ) ) return UINT_MAX; + + fd_racesan_hook( "clock_evict:post_sentinel" ); + + uint acc_idx = line->acc_idx; + if( FD_LIKELY( acc_idx!=UINT_MAX ) ) { + evict_clear_acc_cache_ref( &accdb->acc_pool[ acc_idx ], size_class, line_idx ); + } + uint evicted_acc_idx = line->persisted ? UINT_MAX : acc_idx; + line->key.generation = UINT_MAX; + + /* Write back the dirty line, exactly like the production writeback + sites: this is the synthesis that would emit a pubkey=NEW/owner=OLD + poison record if the accmeta slot had been recycled out from under + us. In the SENTINEL-vs-acc_unlink race this proves no poison: the + epoch the evictor holds blocks drain_deferred_frees, so the slot is + never recycled while we are here. */ + if( FD_UNLIKELY( !line->persisted && acc_idx!=UINT_MAX ) ) { + fd_accdb_accmeta_t * accmeta = &accdb->acc_pool[ acc_idx ]; + ulong entry_sz = sizeof(fd_accdb_disk_meta_t)+(ulong)FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + + ulong old_offset = fd_accdb_acc_xchg_offset( accmeta, FD_ACCDB_OFF_INVAL ); + if( FD_LIKELY( old_offset!=FD_ACCDB_OFF_INVAL ) ) { + fd_accdb_shmem_bytes_freed( shmem, old_offset, entry_sz ); + FD_ATOMIC_FETCH_AND_SUB( &shmem->shmetrics->disk_used_bytes, entry_sz ); + } + + fd_accdb_disk_meta_t meta; + fd_memcpy( meta.pubkey, accmeta->key.pubkey, 32UL ); + meta.size = FD_ACCDB_SIZE_DATA( accmeta->executable_size ); + fd_memcpy( meta.owner, line->owner, 32UL ); + + struct iovec iovs[ 2UL ] = { + { .iov_base = &meta, .iov_len = sizeof(fd_accdb_disk_meta_t) }, + { .iov_base = (void *)(line+1UL), .iov_len = FD_ACCDB_SIZE_DATA( accmeta->executable_size ) } + }; + ulong file_off = allocate_next_write( accdb, entry_sz ); + ulong written = 0UL; + while( writtenfd, iovs, 2, (long)(file_off+written), 0 ); + if( FD_UNLIKELY( result==-1 && errno==EINTR ) ) continue; + else if( FD_UNLIKELY( result<=0 ) ) FD_LOG_ERR(( "pwritev2() failed (%d-%s)", errno, fd_io_strerror( errno ) )); + written += (ulong)result; + for( int v=0; v<2; v++ ) { + if( (ulong)result>=iovs[ v ].iov_len ) { result -= (long)iovs[ v ].iov_len; iovs[ v ].iov_len = 0UL; } + else { iovs[ v ].iov_base = (uchar *)iovs[ v ].iov_base + result; iovs[ v ].iov_len -= (ulong)result; break; } + } + } + FD_COMPILER_MFENCE(); + accmeta->offset_fork = fd_accdb_acc_pack_offset_fork( file_off, fd_accdb_acc_fork_id(accmeta) ); + FD_ATOMIC_FETCH_AND_ADD( &shmem->shmetrics->disk_used_bytes, entry_sz ); + } + + line->persisted = 1; + line->acc_idx = UINT_MAX; + line->key.generation = UINT_MAX; + line->refcnt = 0; + cache_free_push( accdb, size_class, line ); + return evicted_acc_idx; +} + +#endif diff --git a/src/flamenco/accdb/fd_accdb.h b/src/flamenco/accdb/fd_accdb.h new file mode 100644 index 00000000000..afdb7e80f21 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb.h @@ -0,0 +1,612 @@ +#ifndef HEADER_fd_src_flamenco_accdb_fd_accdb_h +#define HEADER_fd_src_flamenco_accdb_fd_accdb_h + +#include "fd_accdb_shmem.h" +#include "../../util/bits/fd_bits.h" + +/* The accdb is a fork aware database that can be queried to get the + current state of any accounts as-of a given fork, and update them. */ + +#define FD_ACCDB_ALIGN (128UL) + +/* Well-known file descriptor numbers for the accounts database backing + file. Tiles inherit these from the parent process which dups the + accounts file to these fds before fork+exec, so seccomp filters can + pin syscalls to a fixed fd. fd 123462 is reserved by XDP. */ + +#define FD_ACCDB_FD_RW (123461) +#define FD_ACCDB_FD_RO (123460) + +struct fd_accdb_private; +typedef struct fd_accdb_private fd_accdb_t; + +struct fd_accdb_fork_id { ushort val; }; +typedef struct fd_accdb_fork_id fd_accdb_fork_id_t; + +struct fd_accdb_entry { + uchar pubkey[ 32UL ]; + uchar owner[ 32UL ]; + ulong lamports; + int executable; + + ulong data_len; + uchar * data; + + uchar prior_owner[ 32UL ]; + ulong prior_lamports; + int prior_executable; + ulong prior_data_len; + uchar * prior_data; + + int commit; + + int _writable; + int _overwrite; + + ushort _fork_id; + uint _generation; + ulong _acc_map_idx; + + ulong _original_size_class; + ulong _original_cache_idx; + + struct { + ulong destination_cache_idx[ 8UL ]; + } _write; +}; + +typedef struct fd_accdb_entry fd_acc_t; + +FD_PROTOTYPES_BEGIN + +#if FD_HAS_INT128 + +static inline ulong +fd_xxh3_mul128_fold64( ulong lhs, ulong rhs ) { + uint128 product = (uint128)lhs * (uint128)rhs; + return (ulong)product ^ (ulong)( product>>64 ); +} + +static inline ulong +fd_xxh3_mix16b( ulong i0, ulong i1, + ulong s0, ulong s1, + ulong seed ) { + return fd_xxh3_mul128_fold64( i0 ^ (s0 + seed), i1 ^ (s1 - seed) ); +} + +FD_FN_PURE static inline ulong +fd_accdb_hash( uchar const key[ 32 ], + ulong seed ) { + ulong k0 = FD_LOAD( ulong, key+ 0 ); + ulong k1 = FD_LOAD( ulong, key+ 8 ); + ulong k2 = FD_LOAD( ulong, key+16 ); + ulong k3 = FD_LOAD( ulong, key+24 ); + ulong acc = 32 * 0x9E3779B185EBCA87ULL; + acc += fd_xxh3_mix16b( k0, k1, 0xbe4ba423396cfeb8UL, 0x1cad21f72c81017cUL, seed ); + acc += fd_xxh3_mix16b( k2, k3, 0xdb979083e96dd4deUL, 0x1f67b3b7a4a44072UL, seed ); + acc = acc ^ (acc >> 37); + acc *= 0x165667919E3779F9ULL; + acc = acc ^ (acc >> 32); + return acc; +} + +#else + +/* If the target does not support xxHash3, fallback to the 'old' key + hash function. + + FIXME This version is vulnerable to HashDoS */ + +FD_FN_PURE static inline ulong +fd_accdb_hash( uchar const key[ 32 ], + ulong seed ) { + /* tons of ILP */ + return (fd_ulong_hash( seed ^ (1UL<<0) ^ FD_LOAD( ulong, key+ 0 ) ) ^ + fd_ulong_hash( seed ^ (1UL<<1) ^ FD_LOAD( ulong, key+ 8 ) ) ) ^ + (fd_ulong_hash( seed ^ (1UL<<2) ^ FD_LOAD( ulong, key+16 ) ) ^ + fd_ulong_hash( seed ^ (1UL<<3) ^ FD_LOAD( ulong, key+24 ) ) ); +} + +#endif /* FD_HAS_INT128 */ + +FD_FN_CONST ulong +fd_accdb_align( void ); + +FD_FN_CONST ulong +fd_accdb_footprint( ulong max_live_slots ); + +/* fd_accdb_new constructs the local joiner state for an accdb writer + (or compaction tile). fd is an O_RDWR fd of the on-disk file. + + external_epoch_cnt and external_epoch_slots provide a list of + additional epoch publish slots to scan during compaction's + deferred-free reclamation. These point at memory owned by other + processes (typically the per-tile fseq of read-only consumers like + the rpc tile), mapped read-only into this joiner's address space. + Each *external_epoch_slots[i] is updated by the owning RO joiner + on each epoch-protected operation (and reset to ULONG_MAX when + idle), and is used by this joiner's compaction scan to determine + when on-disk partitions can be safely reclaimed. + + For joiners that do not need to track external RO consumers (i.e. + any joiner that is not the compaction tile, or a writer-only + topology), pass external_epoch_cnt=0 and external_epoch_slots=NULL. + The pointer array is borrowed and must remain valid for the + lifetime of the join. */ + +void * +fd_accdb_new( void * ljoin, + fd_accdb_shmem_t * shmem, + int fd, + ulong external_epoch_cnt, + ulong const ** external_epoch_slots ); + +fd_accdb_t * +fd_accdb_join( void * shaccdb ); + +/* fd_accdb_join_readonly is the read-only counterpart of fd_accdb_new + + fd_accdb_join. shmem_ro may point into a read-only mapping of the + shmem region; the function will not write to it. my_epoch_slot_rw + must point at a ulong owned by this joiner that it can write to + (typically a private per-tile fseq that the accdb tile maps read-only + and passes through external_epoch_slots[] in fd_accdb_new). fd_ro + must be opened O_RDONLY on the same file the writer joiner opened RW. + + The joiner publishes its current epoch into *my_epoch_slot_rw on + entry to each epoch-protected operation (and resets to ULONG_MAX on + exit). The accdb tile's compaction scan observes this slot via its + external_epoch_slots[] pointer and defers partition reclamation + accordingly, the same way it does for in-shmem joiner_epochs[]. + + Only fd_accdb_read_one_nocache, fd_accdb_exists, and + fd_accdb_lamports are supported on a readonly join; any other API is + undefined behavior. */ + +fd_accdb_t * +fd_accdb_join_readonly( void * ljoin, + fd_accdb_shmem_t * shmem_ro, + ulong * my_epoch_slot_rw, + int fd_ro ); + +/* fd_accdb_snapshot_load_{begin,end} toggle a mode on this writer + joiner that causes layer-0 partition handoffs to backfill tiering + for older snapshot-loaded partitions. Specifically, when a new + partition P is opened at layer 0, the partition at P-2 is retiered + to Warm (layer 1) and the partition at P-3 is retiered to Cold + (layer 2). This compensates for the fact that snapshot-loaded + accounts never get a second write and therefore never get promoted + by normal compaction-driven tiering. + + Only the snapin tile is expected to use this. The flag is + per-joiner and is not visible across processes. */ + +void +fd_accdb_snapshot_load_begin( fd_accdb_t * accdb ); + +void +fd_accdb_snapshot_load_end( fd_accdb_t * accdb ); + +/* fd_accdb_attach_child allocates a new fork as a child of + parent_fork_id and returns the new fork's id. This must be done + any time a new fork is being inserted into the accounts database, + so that the accounts database can maintain ancestry information + in order to support queries correctly. + + To create the initial root fork, pass a sentinel value with + val==USHORT_MAX as parent_fork_id. This must be done exactly + once, before any other fork operations. + + For non-root forks, parent_fork_id must refer to a fork that has + already been attached. The ancestry must form a tree and it is + undefined behavior to create cycles. */ + +fd_accdb_fork_id_t +fd_accdb_attach_child( fd_accdb_t * accdb, + fd_accdb_fork_id_t parent_fork_id ); + +/* fd_accdb_advance_root advances the root of the accounts database to + the given fork_id. fork_id must be a direct child of the current + root (i.e. fork->parent_id equals the current root_fork_id). + + Any competing sibling forks (and their entire subtrees) are removed. + For accounts updated on the newly rooted fork, any older versions on + ancestor forks are tombstoned for later compaction. After this call + the old root fork slot is freed and fork_id becomes the new root. + + IMPORTANT: The caller must guarantee that all outstanding + acquire/release pairs on every sibling of fork_id (and their entire + subtrees) have completed before calling advance_root. advance_root + implicitly purges those sibling subtrees, which frees their fork pool + slots for recycling. + + Once a fork is rooted, its generation becomes the new + root_generation. Concurrent acquires that observe the new root will + use the generation fast path (generation <= root_generation) for all + accounts from that fork and its ancestors, bypassing descends_set + entirely. This is what makes fork pool slot recycling safe: by the + time a slot is freed and reusable, no reader will ever consult + descends_set for the old fork_id. */ + +void +fd_accdb_advance_root( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ); + +/* fd_accdb_purge removes the provided fork and all of its descendants + from the accounts database. This is an extremely rare operation, + used to handle cases where a leader equivocated and produced two + competing blocks for the same slot. + + All accounts written on the purged fork and any child or + grandchild forks are removed from the index, and their disk + space is freed for compaction. The ancestry information for all + purged forks is also removed. + + IMPORTANT: The caller must guarantee that all outstanding + acquire/release pairs on the purged fork and every descendant + have completed before calling purge. The same fork pool slot + recycling hazard described for advance_root applies here. */ + +void +fd_accdb_purge( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id ); + +/* fd_accdb_acquire brings all of the requested accounts as-of the given + fork_idx into the cache, and refcnts them in the cache so they cannot + be evicted until later released. + + fork_idx is the fork index from replay to query as-of, and must exist + for the entire duration of the acquire call, meaning, whoever is + acquiring must have a refcnt on the bank corresponding to fork_idx, + and not release it until after the accounts are acquired. It is safe + to release the bank after the acquire call returns, and this will not + cause the acquired accounts to be evicted from the cache. + + pubkeys_cnt is the number of accounts to acquire, and pubkeys is an + array of pointers to the 32-byte pubkeys of the accounts to acquire. + writable is an array of flags indicating whether each corresponding + account in pubkeys is being acquired for read (0) or write (1). + Writes provide a temporary buffer of 10MiB in all cases, which the + caller can use for staging changes to the data, and this allows + account resizing, or cancelling of any data written (for example if a + transaction fails) without needing to restore it. If an account is + acquired for write, the caller must set the commit bit on the acc + to non-zero to have the changes written back to the database on + release, or leave it at zero to discard the changes. The commit bit + must be set even if only the metadata has changed. + + IMPORTANT: The caller must guarantee that for any given (pubkey, + fork) pair, there is no concurrent acquire that holds a writable + acc while another acquire for the same account on the same fork is + outstanding (whether readable or writable). Specifically: + + - Multiple concurrent read-only acquires of the same account on the + same fork are permitted. + - A writable acquire of an account on a given fork must not overlap + with any other acquire (read or write) of that same account on + that same fork. + - Acquires of the same account on _different_ forks are always safe + and may overlap freely, provided that all releases on an ancestor + fork have completed before any acquire on a descendant fork + begins. In particular, a fork must finish all of its transaction + execution (including committing or cancelling every writable + account) before a child fork is attached and begins acquiring. + This is naturally guaranteed by the replay scheduler, which does + not activate a child block until the parent block is fully done. + Concurrent acquires across unrelated sibling forks have no + ordering requirement. + + Violating this contract is undefined behavior and will likely crash + with an assertion failure inside the cache refcount logic. In + practice, these constraints are naturally satisfied by the Solana + execution model: each transaction has exclusive write locks on its + writable accounts within a slot, the scheduler ensures no two + concurrent transactions write to the same account on the same fork, + and the replay scheduler serializes parent block completion before + child block activation on the same fork chain. + + When a writable account is committed as an "overwrite" (same + fork), the acc pool element's metadata fields (size, lamports, + offset) are mutated in place, and the cache line's owner field is + updated. This is safe because these mutations + only happen on the acc element whose generation matches the + committing fork. A concurrent acquire on a different fork cannot + observe an in-place mutation of the same acc element for a child fork + to even exist, the parent must be frozen and no longer undergoing + modifications. All acc pool fields are effectively immutable from + the perspective of any concurrent cross-fork reader. + + out_accs is an array of pubkeys_cnt cache accs to be filled in + with the acquired accounts. The cache will fill the owner, lamports, + data_len, and data fields of each acc if the acquire is successful, + and the account exists. If the account does not exist, the lamports + field will be set to zero and other fields are undefined. */ + +void +fd_accdb_acquire( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ); + +void +fd_accdb_acquire_a( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ); + +void +fd_accdb_acquire_b( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + ulong reserved_cnt, + ulong pubkeys_cnt, + uchar const * const * pubkeys, + int * writable, + fd_acc_t * out_accs ); + +/* fd_accdb_release releases previously acquired accounts back to the + cache, and if any of the released writable accounts have their commit + bit set, the cache will write the changes back to the database. The + caller must guarantee that the accs being released were previously + acquired and not yet released, and that the pubkeys in the accs + match the pubkeys of the acquired accounts. The accs need not be + a specific set that was acquired together, although this is + recommended. The fork that each acc refers to must still exist + (not yet purged or advanced past) at the time of release. This + includes forks that would be implicitly purged by a concurrent + advance_root on a sibling — the caller must ensure advance_root + is not called until all releases on affected forks have completed. + Releasing accounts for a fork that has been purged or recycled is + undefined behavior. */ + +void +fd_accdb_release( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs ); + +void +fd_accdb_release_ab( fd_accdb_t * accdb, + ulong accs_cnt, + fd_acc_t * accs, + ulong execs_cnt, + fd_acc_t * execs ); + +fd_acc_t +fd_accdb_read_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ); + +fd_acc_t +fd_accdb_write_one( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ); + +void +fd_accdb_unwrite_one( fd_accdb_t * accdb, + fd_acc_t * acc ); + +void +fd_accdb_unread_one( fd_accdb_t * accdb, + fd_acc_t * acc ); + +int +fd_accdb_exists( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ); + +/* fd_accdb_read_one_nocache reads one account at fork_id into + caller-provided output buffers. Suitable for processes that mmap the + accdb data region read-only: it never mutates any cache line, index + entry, or record. The only write it makes into accdb shmem is + publishing this joiner's epoch (to hold off compaction for the + duration of the read), and that is done through a separately-mmap'd + writable page aliasing the joiner's own epoch slot, not the read-only + region. + + out_owner must point at a 32-byte buffer. out_data must point at a + buffer of at least FD_RUNTIME_ACC_SZ_MAX (10 MiB) bytes, the maximum + account data size; the function does not bound-check against the + account's actual length. On a cache hit the bytes are memcpy'd from + the cache slot using a try-read-test (ABA) loop; on a miss the owner + and data are preadv2'd from the disk fd passed at join time, scattered + into out_owner and out_data via iovec (looping on short reads). + + If the account does not exist, *out_lamports is set to zero and the + other outputs are undefined; otherwise *out_lamports is non-zero and + out_executable, out_owner, out_data, and out_data_len are all filled + in. + + The function takes no reference; nothing needs to be released. */ + +void +fd_accdb_read_one_nocache( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong * out_lamports, + int * out_executable, + uchar * out_owner, + uchar * out_data, + ulong * out_data_len ); + +/* fd_accdb_lamports returns the lamports of the account at fork_id, or + zero if the account does not exist. */ + +ulong +fd_accdb_lamports( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ); + +/* fd_accdb_snapshot_write_one inserts or replaces an account during + snapshot loading. Returns -1 if the write was ignored (an existing + acc has a higher slot), 1 if a new acc was inserted, 2 if an + existing acc was replaced. When 2 is returned, *out_replaced_lamports + is set to the lamports of the replaced acc. Otherwise it is set to + 0. out_replaced_lamports must be non-NULL. + + slot must be <= UINT_MAX. The slot is held in a 32-bit scratch field + during snapshot loading; the accdb format must be widened before + Solana reaches slot 2^32. Passing a larger slot crashes the + process. */ + +int +fd_accdb_snapshot_write_one( fd_accdb_t * accdb, + uchar const * pubkey, + ulong slot, + ulong lamports, + ulong data_len, + int executable, + ulong * out_replaced_lamports ); + +/* fd_accdb_snapshot_write_batch processes up to 8 accounts at once, + using software prefetching to overlap hash chain memory latency with + useful work. Each pubkey[i] points to a 32-byte public key. + *out_replaced_lamports is set to the sum of the lamports of all + accounts replaced by this batch (i.e. the previous lamports value of + each account whose acc was overwritten). *out_ignored_lamports is + set to the sum of the lamports of all accounts ignored by this batch + (i.e. the lamports of each input account whose write was dropped + because an acc with a higher slot already exists). Returns 0 on + success, -1 if the batch contained two entries with the same pubkey + (a corrupt-snapshot signal — the caller should flag the snapshot + malformed). Output counters are not meaningful when -1 is returned. + + Each slots[i] must be <= UINT_MAX (see fd_accdb_snapshot_write_one + for the rationale). Passing a larger slot crashes the process. */ + +int +fd_accdb_snapshot_write_batch( fd_accdb_t * accdb, + ulong cnt, + uchar const * const pubkeys[], + ulong const slots[], + ulong const lamports[], + ulong const data_lens[], + int const executables[], + ulong * accounts_ignored, + ulong * accounts_replaced, + ulong * accounts_loaded, + ulong * out_replaced_lamports, + ulong * out_ignored_lamports ); + +/* fd_accdb_background performs one unit of background work. + + THREADING MODEL + + The accdb API is split across three thread roles: + + T1 (replay): calls attach_child, advance_root, purge, acquire, and + release. attach_child runs inline on T1. advance_root and + purge submit a command into a shared- memory slot and return + immediately; the heavy work is deferred to T2. + + T2 (accdb tile / background): calls fd_accdb_background repeatedly. + This is the only function T2 should call. + + T3 (executor tiles, 1..N): call acquire and release. + + acquire and release may be called concurrently from T1 and any number + of T3 threads. They must never be called concurrently with + advance_root or purge on the same fork. + + fd_accdb_background must be called from exactly one thread (T2). It + must not be called concurrently with itself. + + BEHAVIOR + + First checks for a pending advance_root or purge command from T1; if + one is present it executes the command, sets *charge_busy to 1, and + returns immediately without doing compaction. Otherwise, attempts one + step of compaction at each layer, setting *charge_busy if work was + done. */ + +void +fd_accdb_background( fd_accdb_t * accdb, + int * charge_busy ); + +/* fd_accdb_shmetrics returns a pointer to the shared metrics counters + for the given accdb instance. The returned pointer remains valid + for the lifetime of the underlying shmem. */ + +fd_accdb_shmem_metrics_t const * +fd_accdb_shmetrics( fd_accdb_t * accdb ); + +/* fd_accdb_metrics returns a pointer to the per-thread metrics counters + for the given accdb instance. The returned pointer remains valid + for the lifetime of the underlying shmem. */ + +fd_accdb_metrics_t const * +fd_accdb_metrics( fd_accdb_t * accdb ); + +/* fd_accdb_cache_class_occupancy snapshots the current per-size-class + cache occupancy and capacity into the caller-provided arrays, each + of which must have FD_ACCDB_CACHE_CLASS_CNT entries. used[c] is the + number of slots in class c that currently hold a cache acc (i.e. + slots that have been allocated lazily and are not sitting in the + free list). max[c] is the total slot capacity of class c. Reads + are done with relaxed (volatile) loads and may be momentarily + inconsistent with each other under contention. */ + +void +fd_accdb_cache_class_occupancy( fd_accdb_t * accdb, + ulong * used, + ulong * max, + ulong * reserved ); + +/* fd_accdb_cache_class_thresholds returns the per-size-class preeviction + thresholds, expressed as used-slot counts (so they're directly + comparable to occupancy.used and occupancy.max). Each output array + must have FD_ACCDB_CACHE_CLASS_CNT entries. target_used[c] is the + used count the background preevict pass tries to drive towards (max - + cache_free_target). low_water_used[c] is the used count at which the + preevict pass starts firing (max - cache_free_low_water). Both are + set once at init and are stable for the lifetime of the cache. */ + +void +fd_accdb_cache_class_thresholds( fd_accdb_t * accdb, + ulong * target_used, + ulong * low_water_used ); + +/* FD_ACCDB_METRICS_WRITE publishes the per-joiner accdb runtime metrics + for tile prefix TILE. TILE must be a tile that declares the + AccdbAccountsAcquired/... counters in metrics.xml (e.g. EXECLE, + EXECRP, REPLAY, TOWER, ACCDB). m must be a fd_accdb_metrics_t const * + for the joiner whose counters should be published. */ + +#define FD_ACCDB_METRICS_WRITE( TILE, m ) do { \ + fd_accdb_metrics_t const * _m = (m); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_ACQUIRED, _m->accounts_acquired_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_ACQUIRED_WRITABLE, _m->writable_accounts_acquired_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_EVICTED, _m->accounts_evicted_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_COMMITTED_NEW, _m->accounts_committed_new_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_COMMITTED_OVERWRITE, _m->accounts_committed_overwrite_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_NOT_FOUND, _m->accounts_not_found_per_class ); \ + FD_MCNT_SET( TILE, ACCDB_ACCOUNTS_WAITED, _m->accounts_waited ); \ + FD_MCNT_SET( TILE, ACCDB_ACQUIRE_CALLS, _m->acquire_calls ); \ + FD_MCNT_SET( TILE, ACCDB_ACQUIRE_FAILED, _m->acquire_failed ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_READ, _m->bytes_read ); \ + FD_MCNT_SET( TILE, ACCDB_READ_OPS, _m->read_ops ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_WRITTEN, _m->bytes_written ); \ + FD_MCNT_SET( TILE, ACCDB_WRITE_OPS, _m->write_ops ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_COPIED, _m->bytes_copied ); \ + } while(0) + +/* FD_ACCDB_METRICS_WRITE_RO is the read-only joiner subset of + FD_ACCDB_METRICS_WRITE. It only emits the counters that + fd_accdb_read_one_nocache touches; tiles that join readonly + (e.g. RPC) declare only this subset of counters in metrics.xml. */ + +#define FD_ACCDB_METRICS_WRITE_RO( TILE, m ) do { \ + fd_accdb_metrics_t const * _m = (m); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_ACQUIRED, _m->accounts_acquired_per_class ); \ + FD_MCNT_ENUM_COPY( TILE, ACCDB_ACCOUNTS_NOT_FOUND, _m->accounts_not_found_per_class ); \ + FD_MCNT_SET( TILE, ACCDB_ACCOUNTS_WAITED, _m->accounts_waited ); \ + FD_MCNT_SET( TILE, ACCDB_ACQUIRE_CALLS, _m->acquire_calls ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_READ, _m->bytes_read ); \ + FD_MCNT_SET( TILE, ACCDB_READ_OPS, _m->read_ops ); \ + FD_MCNT_SET( TILE, ACCDB_BYTES_COPIED, _m->bytes_copied ); \ + } while(0) + +FD_PROTOTYPES_END + +#endif /* HEADER_fd_src_flamenco_accdb_fd_accdb_h */ diff --git a/src/flamenco/accdb/fd_accdb_cache.c b/src/flamenco/accdb/fd_accdb_cache.c new file mode 100644 index 00000000000..273b5de94a7 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb_cache.c @@ -0,0 +1,272 @@ +#include "fd_accdb_cache.h" + +#include "../../util/bits/fd_bits.h" +#include "../../util/log/fd_log.h" + +int +fd_accdb_cache_class_cnt( ulong cache_footprint, + ulong min_reserved, + ulong * class_cnt ) { + /* Estimated max account population per class on mainnet. Based on a + full mainnet snapshot (1.118B accounts, 363.7 GiB, slot 393863972) + with ~20% headroom. */ + + static const ulong pop_max_raw[ FD_ACCDB_CACHE_CLASS_CNT ] = { + 215000000UL, /* class 0: ~16% of accounts */ + 1041000000UL, /* class 1: ~77.6% of accounts */ + 76000000UL, /* class 2: ~5.6% */ + 8000000UL, /* class 3: ~0.6% */ + 4000000UL, /* class 4: ~0.3% */ + 461000UL, /* class 5: ~0.03% */ + 244000UL, /* class 6: ~0.02% */ + 5000UL, /* class 7: ~0.0003% */ + }; + + /* Hard per-class ceiling: cidx packs only FD_ACCDB_CACHE_LINE_BITS + bits of line index, so a class with more than + FD_ACCDB_CACHE_LINE_MAX slots would let two distinct lines pack to + the same cidx and silently alias on read. Clamp pop_max[c] to that + representable bound before any phase of the allocator consults it. */ + ulong pop_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + for( ulong c=0UL; cULONG_MAX/slot_sz_sum ) ) { + FD_LOG_WARNING(( "cache_min_reserved %lu too large (overflows minimum cost)", min_reserved )); + for( ulong c=0UL; cclass_cnt[c] ? pop_max[c]-class_cnt[c] : 0UL ); + ulong cost = want * fd_accdb_cache_slot_sz[c]; + if( FD_UNLIKELY( cost>remaining ) ) { + class_cnt[c] += remaining / fd_accdb_cache_slot_sz[c]; + remaining = 0UL; + } else { + class_cnt[c] += want; + remaining -= cost; + } + } + + /* Phase 3: Iteratively allocate remaining budget proportional + to access density. When a class exceeds its population cap, + freeze it and redistribute surplus to uncapped classes. */ + + int capped[ FD_ACCDB_CACHE_CLASS_CNT ]; + for( ulong c=0UL; c= pop_max[c] ) { + ulong added = pop_max[c] - class_cnt[c]; + class_cnt[c] = pop_max[c]; + remaining -= added * fd_accdb_cache_slot_sz[c]; + capped[c] = 1; + any_capped = 1; + } + } + + if( !any_capped ) { + /* No caps hit. Final proportional allocation. */ + total_w = 0UL; + for( ulong c=0UL; c=FD_ACCDB_CACHE_LINE_MAX; + + for( ulong iter=0UL; iter= FD_ACCDB_CACHE_LINE_MAX ) { + ulong added = FD_ACCDB_CACHE_LINE_MAX - class_cnt[c]; + class_cnt[c] = FD_ACCDB_CACHE_LINE_MAX; + remaining -= added * fd_accdb_cache_slot_sz[c]; + capped[c] = 1; + any_capped = 1; + } + } + + if( !any_capped ) { + total_w = 0UL; + for( ulong c=0UL; c=FD_ACCDB_CACHE_LINE_MAX ) continue; + ulong room = FD_ACCDB_CACHE_LINE_MAX - class_cnt[c]; + ulong extra = fd_ulong_min( room, remaining / fd_accdb_cache_slot_sz[c] ); + class_cnt[c] += extra; + remaining -= extra * fd_accdb_cache_slot_sz[c]; + } + + /* Past FD_ACCDB_CACHE_LINE_MAX*slot_sz[c] (~6 TiB) the index space is + fully saturated and any further budget is unspendable on cache + lines. Warn the operator so they can size down. */ + ulong unspent = cache_footprint; + for( ulong c=0UL; c= fd_accdb_cache_slot_sz[ 0UL ] ) ) { + FD_LOG_WARNING(( "cache_footprint exceeds per-class index space; %lu GiB will be unused (raise FD_ACCDB_CACHE_LINE_BITS to use more)", + (unspent+(1UL<<30UL)-1UL)/(1UL<<30UL) )); + } + + return 1; +} + +ulong +fd_accdb_cache_class( ulong data_sz ) { + if( FD_LIKELY( data_sz<=128UL ) ) return 0UL; + else if( FD_LIKELY( data_sz<=512UL ) ) return 1UL; + else if( FD_LIKELY( data_sz<=2048UL ) ) return 2UL; + else if( FD_LIKELY( data_sz<=8192UL ) ) return 3UL; + else if( FD_LIKELY( data_sz<=32768UL ) ) return 4UL; + else if( FD_LIKELY( data_sz<=131072UL ) ) return 5UL; + else if( FD_LIKELY( data_sz<=1048576UL ) ) return 6UL; + return 7UL; +} diff --git a/src/flamenco/accdb/fd_accdb_cache.h b/src/flamenco/accdb/fd_accdb_cache.h new file mode 100644 index 00000000000..dfc9c195fa2 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb_cache.h @@ -0,0 +1,118 @@ +#ifndef HEADER_fd_src_flamenco_accdb_fd_accdb_cache_h +#define HEADER_fd_src_flamenco_accdb_fd_accdb_cache_h + +#include "../../util/fd_util_base.h" + +/* fd_accdb_cache.h provides a static algorithm for determining, given a + fixed size cache_footprint specified by an operator, how to allocate + that footprint into various account size classes to maximize expected + cache hit while executing. + + The cache has 8 size classes (to fit in a single cache line) with a + x4 geometric progression: + + Class 0: 0-128 B (slot: 216 B) + Class 1: 129-512 B (slot: 600 B) + Class 2: 513-2 KiB (slot: 2,136 B) + Class 3: 2K-8 KiB (slot: 8,280 B) + Class 4: 8K-32 KiB (slot: 32,856 B) + Class 5: 32K-128 KiB (slot: 131,160 B) + Class 6: 128K-1 MiB (slot: 1,048,664 B) + Class 7: 1M-10 MiB (slot: 10,485,848 B) + + Each slot has 88 bytes of fixed metadata overhead + (sizeof(fd_accdb_cache_line_t)) on top of the max data capacity + for its class. Slot sizes are 8-byte aligned. + + The allocation algorithm maximizes expected cache hit rate by + distributing budget proportional to access density (observed accesses + per byte of cache consumed), derived from empirical mainnet replay. + Classes are capped at estimated population maximums to avoid + over-provisioning. */ + +#define FD_ACCDB_CACHE_CLASS_CNT (8UL) +#define FD_ACCDB_CACHE_META_SZ (88UL) + +/* Per-class line count ceiling. The acc cache index packs (class, line) + into 32 bits as 3 bits of class and FD_ACCDB_CACHE_LINE_BITS bits of + line index (see FD_ACCDB_ACC_CIDX_* in fd_accdb_private.h). A class + may not be sized larger than FD_ACCDB_CACHE_LINE_MAX slots, or two + distinct lines would pack to the same cidx and reads would alias. */ + +#define FD_ACCDB_CACHE_LINE_BITS (29) +#define FD_ACCDB_CACHE_LINE_MAX (1UL< 128 is assumed never to + activate). FD_ACCDB_MAX_TXN_PER_ACQUIRE mirrors + FD_PACK_MAX_TXN_PER_BUNDLE, a bundle coalesces up to that many + transactions into one acquire. */ +#define FD_ACCDB_MAX_TX_ACCOUNT_LOCKS (64UL) +#define FD_ACCDB_MAX_TXN_PER_ACQUIRE (5UL) +#define FD_ACCDB_MAX_ACQUIRE_CNT (FD_ACCDB_MAX_TXN_PER_ACQUIRE*FD_ACCDB_MAX_TX_ACCOUNT_LOCKS) + +static inline void +spin_lock_acquire( int * lock ) { +# if FD_HAS_THREADS + for(;;) { + if( FD_LIKELY( !FD_ATOMIC_CAS( lock, 0, 1 ) ) ) break; + FD_SPIN_PAUSE(); + } +# else + *lock = 1; +# endif + FD_COMPILER_MFENCE(); +} + +static inline void +spin_lock_release( int * lock ) { + FD_COMPILER_MFENCE(); +# if FD_HAS_THREADS + FD_VOLATILE( *lock ) = 0; +# else + *lock = 0; +# endif +} + +#ifndef FD_ACCDB_NO_FORK_ID +struct fd_accdb_fork_id { ushort val; }; +typedef struct fd_accdb_fork_id fd_accdb_fork_id_t; +#endif + +struct __attribute__((packed)) fd_accdb_disk_meta { + uchar pubkey[ 32UL ]; + uint size; + uchar owner[ 32UL ]; +}; + +typedef struct fd_accdb_disk_meta fd_accdb_disk_meta_t; + +struct fd_accdb_txn { + union { + struct { uint next; } pool; + struct { uint next; } fork; + }; + + uint acc_map_idx; + uint acc_pool_idx; +}; + +typedef struct fd_accdb_txn fd_accdb_txn_t; + +#define POOL_NAME txn_pool +#define POOL_ELE_T fd_accdb_txn_t +#define POOL_NEXT pool.next +#define POOL_IDX_T uint +#define POOL_IDX_WIDTH 32 +#define POOL_IMPL_STYLE 0 +#define POOL_LAZY 1 + +#include "../../util/tmpl/fd_pool_para.c" + +#define SET_NAME descends_set +#define SET_IMPL_STYLE 1 +#include "../../util/tmpl/fd_set_dynamic.c" + +struct fd_accdb_fork_shmem { + uint generation; + + fd_accdb_fork_id_t parent_id; + fd_accdb_fork_id_t child_id; + fd_accdb_fork_id_t sibling_id; + + struct { + ulong next; + } pool; + + uint txn_head; +}; + +typedef struct fd_accdb_fork_shmem fd_accdb_fork_shmem_t; + +#define POOL_NAME fork_pool +#define POOL_ELE_T fd_accdb_fork_shmem_t +#define POOL_NEXT pool.next +#define POOL_IDX_T ulong +#define POOL_IMPL_STYLE 0 + +#include "../../util/tmpl/fd_pool_para.c" + +struct fd_accdb_partition { + ulong marked_compaction; + ulong write_offset; + ulong compaction_offset; + + ulong bytes_freed; + + uchar layer; /* compaction tier this partition belongs to. */ + + ulong read_ops; + ulong bytes_read; + ulong write_ops; + ulong bytes_written; + + /* Tickcount (fd_tickcount) of the partition's lifecycle events. Set + only at partition creation and again when the partition closes + (i.e. the layer's write head rotates off it). */ + long created_ticks; + long filled_ticks; + + /* Compaction lifecycle flags. queued is set when the partition is + pushed onto the compaction_dlist and cleared when it is popped. + compacting_now is set by the compaction tile around the actual + compaction work for this partition. */ + uchar queued; + uchar compacting_now; + + /* Epoch at which this partition was enqueued for compaction. Set by + fd_accdb_shmem_bytes_freed when the partition crosses the + freed-bytes threshold. The compaction tile will not begin reading + from this partition until all joiners that were in an + epoch-protected critical section at enqueue time have exited, + ensuring any in-flight pwritev2 to this partition has completed. */ + ulong compaction_ready_epoch; + + /* Epoch at which this partition was enqueued for deferred freeing. + Set by compaction when the partition finishes compaction, and + checked by the reclamation scan to determine when it is safe to + release the partition back to the pool. */ + ulong epoch_tag; + + ulong pool_next; + + ulong dlist_prev; + ulong dlist_next; +}; + +typedef struct fd_accdb_partition fd_accdb_partition_t; + +#define POOL_NAME partition_pool +#define POOL_T fd_accdb_partition_t +#define POOL_NEXT pool_next +#define POOL_IDX_T ulong +#define POOL_IMPL_STYLE 1 + +#include "../../util/tmpl/fd_pool.c" + +#define DLIST_NAME compaction_dlist +#define DLIST_ELE_T fd_accdb_partition_t +#define DLIST_PREV dlist_prev +#define DLIST_NEXT dlist_next +#define DLIST_IMPL_STYLE 1 + +#include "../../util/tmpl/fd_dlist.c" + +/* deferred_free_dlist reuses the same prev/next fields as + compaction_dlist. A partition is in at most one of the two lists at + any time: it is popped from compaction_dlist before being pushed onto + deferred_free_dlist. */ + +#define DLIST_NAME deferred_free_dlist +#define DLIST_ELE_T fd_accdb_partition_t +#define DLIST_PREV dlist_prev +#define DLIST_NEXT dlist_next +#define DLIST_IMPL_STYLE 1 + +#include "../../util/tmpl/fd_dlist.c" + +struct fd_accdb_cache_key { + uchar pubkey[ 32UL ]; + uint generation; +}; + +typedef struct fd_accdb_cache_key fd_accdb_cache_key_t; + +struct fd_accdb_accmeta { + fd_accdb_cache_key_t key; + + struct { + uint next; + } map; + + union { + struct { + uint next; + } pool; + uint cache_idx; + }; + + uint executable_size; + + ulong lamports; + + /* Pack offset and fork_id together into a single ulong to pack the + struct into a single 64 byte cache line. This is a performance win + of 2-3%. */ + ulong offset_fork; +}; + +typedef struct fd_accdb_accmeta fd_accdb_accmeta_t; + +#define FD_ACCDB_OFF_BITS 48UL +#define FD_ACCDB_OFF_MASK ((1UL< cache-line + binding, so concurrent readers and the evictor do not race. + + FD_ACCDB_SIZE_PACK sets only bit 31 and the 29-bit length (never bit + 30 or bit 29), so the on-disk representation carries neither in-memory + flag. The persisted bytes are thus unchanged and compaction's + copy_file_range preserves the record headers verbatim without + rewriting them. */ + +#define FD_ACCDB_SIZE_EXEC_BIT (1U<<31) +#define FD_ACCDB_SIZE_CACHE_VALID_BIT (1U<<30) +#define FD_ACCDB_SIZE_CACHE_CLAIM_BIT (1U<<29) +#define FD_ACCDB_SIZE_MASK ((1U<<29)-1U) +#define FD_ACCDB_SIZE_PACK(sz,exec) ((uint)(sz) | ((exec) ? FD_ACCDB_SIZE_EXEC_BIT : 0U)) +#define FD_ACCDB_SIZE_DATA(packed) ((packed) & FD_ACCDB_SIZE_MASK) +#define FD_ACCDB_SIZE_EXEC(packed) (!!((packed) & FD_ACCDB_SIZE_EXEC_BIT)) +#define FD_ACCDB_SIZE_CACHE_VALID(p) (!!((p) & FD_ACCDB_SIZE_CACHE_VALID_BIT)) +#define FD_ACCDB_SIZE_CACHE_CLAIM(p) (!!((p) & FD_ACCDB_SIZE_CACHE_CLAIM_BIT)) + +static inline ulong +fd_accdb_acc_offset( fd_accdb_accmeta_t const * acc ) { + return acc->offset_fork & FD_ACCDB_OFF_MASK; +} + +static inline ushort +fd_accdb_acc_fork_id( fd_accdb_accmeta_t const * acc ) { + return (ushort)( acc->offset_fork >> FD_ACCDB_OFF_BITS ); +} + +static inline ulong +fd_accdb_acc_pack_offset_fork( ulong offset, + ushort fork_id ) { + return ( (ulong)fork_id << FD_ACCDB_OFF_BITS ) | ( offset & FD_ACCDB_OFF_MASK ); +} + +/* fd_accdb_acc_xchg_offset atomically replaces the 48-bit offset + portion of acc->offset_fork with new_offset while preserving the + 16-bit fork_id, and returns the previous 48-bit offset. Uses a + CAS loop so that concurrent compaction CAS and release-overwrite + exchanges serialize correctly. */ + +static inline ulong +fd_accdb_acc_xchg_offset( fd_accdb_accmeta_t * acc, + ulong new_offset ) { + for(;;) { + ulong old_packed = FD_VOLATILE_CONST( acc->offset_fork ); + ulong new_packed = ( old_packed & ~FD_ACCDB_OFF_MASK ) | ( new_offset & FD_ACCDB_OFF_MASK ); + if( FD_LIKELY( FD_ATOMIC_CAS( &acc->offset_fork, old_packed, new_packed )==old_packed ) ) + return old_packed & FD_ACCDB_OFF_MASK; + FD_SPIN_PAUSE(); + } +} + +/* Packing helpers for the embedded acc cache index. 3 bits class + in bits 31-29, 29 bits line index. INVAL is the sentinel for + "no cached location known". FD_ACCDB_CACHE_LINE_MAX (defined in + fd_accdb_cache.h) is the exclusive upper bound on representable + line indices; per-class slot counts must not exceed it, or cidx + values would alias. */ + +#define FD_ACCDB_ACC_CIDX_IDX_MASK ((uint)(FD_ACCDB_CACHE_LINE_MAX-1UL)) +#define FD_ACCDB_ACC_CIDX_INVAL UINT_MAX +#define FD_ACCDB_ACC_CIDX_PACK(c,i) ((uint)( ((uint)(c)<> FD_ACCDB_CACHE_LINE_BITS)) +#define FD_ACCDB_ACC_CIDX_IDX(ci) ((ulong)((uint)(ci) & FD_ACCDB_ACC_CIDX_IDX_MASK)) + +#define POOL_NAME acc_pool +#define POOL_ELE_T fd_accdb_accmeta_t +#define POOL_NEXT pool.next +#define POOL_IDX_T uint +#define POOL_IDX_WIDTH 32 +#define POOL_IMPL_STYLE 0 +#define POOL_LAZY 1 + +#include "../../util/tmpl/fd_pool_para.c" + +struct fd_accdb_cache_line { + fd_accdb_cache_key_t key; + + uint acc_idx; + uint cache_idx; + + uint refcnt; + uchar persisted; + uchar referenced; + + uint next; + + uchar owner[ 32UL ]; +}; + +typedef struct fd_accdb_cache_line fd_accdb_cache_line_t; + +typedef struct __attribute__((aligned(64))) { ulong val; } accdb_offset_t; + +/* Partition offsets are packed into accdb_offset_t as: + bits 63..51: partition pool index + bits 50..0 : byte offset within the partition */ + +#define FD_ACCDB_PARTITION_OFF_BITS 51UL + +static FD_FN_CONST inline accdb_offset_t +accdb_offset( ulong partition_idx, + ulong partition_offset ) { + return (accdb_offset_t){ .val = (partition_idx<val>>FD_ACCDB_PARTITION_OFF_BITS; +} + +static FD_FN_PURE inline ulong +packed_partition_offset( accdb_offset_t const * offset ) { + return offset->val & ((1UL<generation are + unconditionally visible without consulting descends_set. For + entries with generation > root_fork->generation, the fork_id is + still valid and descends_set is used to check ancestry. + + KEY INVARIANT: descends_set is ONLY consulted when generation > + root_generation, which means the fork_id has NOT been rooted yet + and its pool slot is still live. This is what makes it safe for + fork_slot_defer to eagerly clear descends_set bits for retired + forks: rooted fork bits are dead (bypassed by the generation fast + path), and purged fork bits were already 0 in all live forks' + descends_sets (a purged fork is never an ancestor of a live fork). + */ + uint generation; + + /* Lazy initial-allocation counter per size class. Atomically + incremented by acquire_cache_line (with undo on overflow). Each + element is on its own cacheline to avoid false sharing between + classes. */ + struct __attribute__((aligned(64))) { ulong val; } cache_class_init[ FD_ACCDB_CACHE_CLASS_CNT ]; + + ulong cache_class_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Byte offsets from shmem base to the per-class cache regions. Each + region is cache_class_max[c] * fd_accdb_cache_slot_sz[c] bytes, + with each slot holding an fd_accdb_cache_line_t header followed by + up to (fd_accdb_cache_slot_sz[c] - META_SZ) bytes of account data. + */ + ulong cache_region_off[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Background pre-eviction watermarks (computed once in shmem_new). + cache_free_target[c]: desired free-list depth for class c. + cache_free_low_water[c]: trigger threshold ((target*3)/4). */ + ulong cache_free_target [ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong cache_free_low_water[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* cache_class_used[i].val holds the number of reserved cache + slots in size class i. Acquire atomically increments; if the + result exceeds cache_class_max[i] the reservation overflowed + and the thread subtracts back and retries. Release atomically + decrements. Each element is on its own cacheline to avoid + false sharing between classes. Invariant: + used[i].val + available[i] == cache_class_max[i] + at all times. */ + struct __attribute__((aligned(64))) { ulong val; } cache_class_used[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Per-layer write heads. whead[0] is the hot (execution) write + head, updated with atomic fetch-and-add by acquire/release + threads. whead[1..N-1] are compaction write heads, each + single-writer (compaction tile only). */ + accdb_offset_t whead[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + int has_partition[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + + ulong partition_cnt; + ulong partition_sz; + ulong partition_max; + + ulong chain_cnt; + ulong max_live_slots; + ulong max_accounts; + ulong max_account_writes_per_slot; + + /* Hard upper bound on concurrent joiners, set at construction. + Used to determine whether cache_class_used tracking can be + skipped for a given class (when max[c] >= MIN_RESERVED * + joiner_cnt, every reservation succeeds trivially). */ + ulong joiner_cnt_max; + + ulong partition_pool_off; + + /* compaction_dlist_off[k] is the byte offset (from shmem base) of + the dlist sentinel for layer k. Partitions at layer k that + reach the freed-bytes threshold are enqueued here for compaction + into layer k+1, or into layer k itself for the deepest layer. */ + ulong compaction_dlist_off[ FD_ACCDB_COMPACTION_LAYER_CNT ]; + + /* Epoch-based safe reclamation for compacted partitions. + + epoch is a monotonically increasing counter incremented by the + compaction tile each time a partition finishes compaction. The + completed partition is tagged with the current epoch and pushed + onto a deferred-free list instead of being released immediately. + + joiner_epochs[i] holds the epoch observed by joiner i at the start + of its epoch-protected critical section, or ULONG_MAX when idle. + The compaction tile scans this array to find the minimum observed + epoch; any deferred partition tagged with an epoch strictly less + than that minimum is safe to release, because every epoch-protected + operation that could have snapshotted an offset into that partition + has since exited its critical section. + + joiner_cnt is claimed via atomic fetch-and-add in fd_accdb_new + and never decremented. */ + ulong epoch __attribute__((aligned(64))); + + /* Each joiner epoch is padded to a full cache line to prevent + false sharing between joiners writing to adjacent slots. */ + struct __attribute__((aligned(64))) { ulong val; } joiner_epochs[ FD_ACCDB_MAX_JOINERS ]; + ulong joiner_cnt __attribute__((aligned(64))); + ulong deferred_free_dlist_off; + + fd_accdb_shmem_metrics_t shmetrics[1]; + + /* Command slot for T1 -> T2 offloading of advance_root / purge. + Padded to its own cache line to avoid false sharing with the + hot epoch / joiner_epochs fields above. */ + +#define FD_ACCDB_CMD_IDLE (0U) +#define FD_ACCDB_CMD_ADVANCE_ROOT (1U) +#define FD_ACCDB_CMD_PURGE (2U) + + uint cmd_op __attribute__((aligned(64))); /* FD_ACCDB_CMD_* */ + ushort cmd_fork_id; /* argument */ + + /* T2-only side buffer for deferred acc unlinks. Holds the indices of + accs that have been CAS-unlinked from their map chains in the + current advance_root or purge call but cannot yet have pool.next + written: a concurrent cold_load_acc may stomp it via the cache_idx + union alias. After wait_for_epoch_drain the list is materialized + into pool.next links and released via acc_pool_release_chain. + + T2 is the sole writer (advance_root and purge both run on T2 via + the cmd offload above), so cnt is plain. Capacity is + txn_max = max_live_slots * max_account_writes_per_slot, the same + bound used to size txn_pool. Stored as a byte offset from shmem + base. */ + + ulong deferred_acc_buf_off; + ulong deferred_acc_buf_cnt; + ulong deferred_acc_buf_max; + ulong deferred_acc_epoch; + + ulong magic; /* ==FD_ACCDB_SHMEM_MAGIC */ +}; + +#endif /* HEADER_fd_src_flamenco_accdb_fd_accdb_private_h */ diff --git a/src/flamenco/accdb/fd_accdb_shmem.c b/src/flamenco/accdb/fd_accdb_shmem.c new file mode 100644 index 00000000000..b395c5b3006 --- /dev/null +++ b/src/flamenco/accdb/fd_accdb_shmem.c @@ -0,0 +1,547 @@ +#include "fd_accdb_shmem.h" +#include "fd_accdb_private.h" + +#include "../../util/log/fd_log.h" + +#define POOL_NAME partition_pool +#define POOL_T fd_accdb_partition_t +#define POOL_NEXT pool_next +#define POOL_IDX_T ulong +#define POOL_IMPL_STYLE 2 + +#include "../../util/tmpl/fd_pool.c" + +#define DLIST_NAME compaction_dlist +#define DLIST_ELE_T fd_accdb_partition_t +#define DLIST_PREV dlist_prev +#define DLIST_NEXT dlist_next +#define DLIST_IMPL_STYLE 2 + +#include "../../util/tmpl/fd_dlist.c" + +#define DLIST_NAME deferred_free_dlist +#define DLIST_ELE_T fd_accdb_partition_t +#define DLIST_PREV dlist_prev +#define DLIST_NEXT dlist_next +#define DLIST_IMPL_STYLE 2 + +#include "../../util/tmpl/fd_dlist.c" + +FD_FN_CONST ulong +fd_accdb_shmem_align( void ) { + return FD_ACCDB_SHMEM_ALIGN; +} + +fd_accdb_shmem_t * +fd_accdb_shmem_join( void * shtc ) { + if( FD_UNLIKELY( !shtc ) ) { + FD_LOG_WARNING(( "NULL shtc" )); + return NULL; + } + + if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)shtc, fd_accdb_shmem_align() ) ) ) { + FD_LOG_WARNING(( "misaligned shtc" )); + return NULL; + } + + fd_accdb_shmem_t * accdb = (fd_accdb_shmem_t *)shtc; + + if( FD_UNLIKELY( accdb->magic!=FD_ACCDB_SHMEM_MAGIC ) ) { + FD_LOG_WARNING(( "bad magic" )); + return NULL; + } + return accdb; +} + +ulong +fd_accdb_shmem_footprint( ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong cache_footprint, + ulong cache_min_reserved, + ulong joiner_cnt ) { + if( FD_UNLIKELY( !max_accounts ) ) return 0UL; + if( FD_UNLIKELY( !max_live_slots ) ) return 0UL; + if( FD_UNLIKELY( !max_account_writes_per_slot) ) return 0UL; + if( FD_UNLIKELY( !partition_cnt ) ) return 0UL; + if( FD_UNLIKELY( !cache_min_reserved ) ) return 0UL; + /* Partition indices are packed into 13 bits of accdb_offset_t + (bits 63..51), so partition_cnt==8192 uses indices 0..8191, the + full 13-bit range. The initial write-head sentinel encodes its + invalidity in the offset bits (partition_offset==partition_sz), + not the index, so it remains distinguishable even when no spare + index value is left. */ + if( FD_UNLIKELY( partition_cnt>(1UL<<13) ) ) return 0UL; + if( FD_UNLIKELY( !joiner_cnt || joiner_cnt>FD_ACCDB_MAX_JOINERS ) ) return 0UL; + + if( FD_UNLIKELY( max_accounts>=UINT_MAX ) ) return 0UL; + + if( FD_UNLIKELY( max_live_slots>=USHORT_MAX ) ) return 0UL; + + ulong txn_max = max_live_slots * max_account_writes_per_slot; + if( FD_UNLIKELY( txn_max/max_account_writes_per_slot!=max_live_slots ) ) return 0UL; + if( FD_UNLIKELY( txn_max>=UINT_MAX ) ) return 0UL; + + ulong descends_fp = descends_set_footprint( max_live_slots ); + if( FD_UNLIKELY( !descends_fp ) ) return 0UL; + if( FD_UNLIKELY( max_live_slots>ULONG_MAX/descends_fp ) ) return 0UL; + + ulong chain_cnt = fd_ulong_pow2_up( (max_accounts>>1) + (max_accounts&1UL) ); + + if( FD_UNLIKELY( chain_cnt>ULONG_MAX/sizeof(uint) ) ) return 0UL; + + if( FD_UNLIKELY( !cache_footprint ) ) return 0UL; + ulong cache_class_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + if( FD_UNLIKELY( !fd_accdb_cache_class_cnt( cache_footprint, cache_min_reserved, cache_class_max ) ) ) return 0UL; + + ulong l; + l = FD_LAYOUT_INIT; + l = FD_LAYOUT_APPEND( l, FD_ACCDB_SHMEM_ALIGN, sizeof(fd_accdb_shmem_t) ); + l = FD_LAYOUT_APPEND( l, fork_pool_align(), fork_pool_footprint() ); + l = FD_LAYOUT_APPEND( l, alignof(fd_accdb_fork_shmem_t), max_live_slots*sizeof(fd_accdb_fork_shmem_t) ); + l = FD_LAYOUT_APPEND( l, descends_set_align(), max_live_slots*descends_set_footprint( max_live_slots ) ); + l = FD_LAYOUT_APPEND( l, alignof(uint), chain_cnt*sizeof(uint) ); + l = FD_LAYOUT_APPEND( l, acc_pool_align(), acc_pool_footprint() ); + l = FD_LAYOUT_APPEND( l, alignof(fd_accdb_accmeta_t), max_accounts*sizeof(fd_accdb_accmeta_t) ); + l = FD_LAYOUT_APPEND( l, txn_pool_align(), txn_pool_footprint() ); + l = FD_LAYOUT_APPEND( l, alignof(fd_accdb_txn_t), txn_max*sizeof(fd_accdb_txn_t) ); + l = FD_LAYOUT_APPEND( l, partition_pool_align(), partition_pool_footprint( partition_cnt ) ); + for( ulong k=0UL; kFD_ACCDB_MAX_JOINERS ) ) { + FD_LOG_WARNING(( "joiner_cnt must be in [1, %lu]", FD_ACCDB_MAX_JOINERS )); + return NULL; + } + + if( FD_UNLIKELY( max_live_slots>=USHORT_MAX ) ) { + FD_LOG_WARNING(( "max_live_slots must be less than %u", (uint)USHORT_MAX )); + return NULL; + } + + if( FD_UNLIKELY( !partition_cnt ) ) { + FD_LOG_WARNING(( "partition_cnt must be non-zero" )); + return NULL; + } + + if( FD_UNLIKELY( partition_cnt>(1UL<<13) ) ) { + FD_LOG_WARNING(( "partition_cnt must be at most %lu", 1UL<<13 )); + return NULL; + } + + if( FD_UNLIKELY( !partition_sz ) ) { + FD_LOG_WARNING(( "partition_sz must be non-zero" )); + return NULL; + } + + /* Partition offsets are packed into the low 51 bits of accdb_offset_t + (see FD_ACCDB_PARTITION_OFF_BITS in fd_accdb.c). partition_sz must + be small enough that speculative fetch-and-adds from up to + FD_ACCDB_MAX_JOINERS concurrent threads in allocate_next_write + can never carry the offset field into the partition_idx bits. + Worst case: all joiners each do one FETCH_AND_ADD of partition_sz + before the partition switch completes, starting from an offset of + at most partition_sz-1. */ + if( FD_UNLIKELY( partition_sz>(1UL<<51)/(FD_ACCDB_MAX_JOINERS+1UL) ) ) { + FD_LOG_WARNING(( "partition_sz must be at most %lu", (1UL<<51)/(FD_ACCDB_MAX_JOINERS+1UL) )); + return NULL; + } + + /* The maximum file offset is (partition_cnt-1)*partition_sz + + partition_sz - 1, which must fit in a signed long (off_t) because + pwritev2, preadv2, and fallocate all take signed offsets. */ + if( FD_UNLIKELY( partition_cnt>=(ulong)LONG_MAX/partition_sz ) ) { + FD_LOG_WARNING(( "partition_cnt*partition_sz must be at most LONG_MAX" )); + return NULL; + } + + /* The total addressable file space (partition_cnt * partition_sz) + must not exceed 2^FD_ACCDB_OFF_BITS. File offsets are stored in + the 48-bit offset portion of acc->offset_fork, and the all-ones + value FD_ACCDB_OFF_INVAL is reserved as a dirty sentinel. The + allocator guarantees record start offsets are always at least + sizeof(fd_accdb_disk_meta_t) below a partition boundary, so a + total of exactly 2^48 is safe (no valid offset reaches the + sentinel), but exceeding it is not. */ + if( FD_UNLIKELY( partition_cnt>((1UL<=UINT_MAX ) ) { + FD_LOG_WARNING(( "max_accounts must be less than UINT_MAX" )); + return NULL; + } + + ulong txn_max = max_live_slots * max_account_writes_per_slot; + if( FD_UNLIKELY( txn_max/max_account_writes_per_slot!=max_live_slots ) ) { + FD_LOG_WARNING(( "max_live_slots*max_account_writes_per_slot overflows" )); + return NULL; + } + if( FD_UNLIKELY( txn_max>=UINT_MAX ) ) { + FD_LOG_WARNING(( "max_live_slots*max_account_writes_per_slot must be less than UINT_MAX" )); + return NULL; + } + + ulong descends_fp = descends_set_footprint( max_live_slots ); + if( FD_UNLIKELY( !descends_fp || max_live_slots>ULONG_MAX/descends_fp ) ) { + FD_LOG_WARNING(( "max_live_slots*descends_set_footprint overflows" )); + return NULL; + } + + ulong chain_cnt = fd_ulong_pow2_up( (max_accounts>>1) + (max_accounts&1UL) ); + + if( FD_UNLIKELY( chain_cnt>ULONG_MAX/sizeof(uint) ) ) { + FD_LOG_WARNING(( "chain_cnt*sizeof(uint) overflows" )); + return NULL; + } + + if( FD_UNLIKELY( !cache_min_reserved ) ) { + FD_LOG_WARNING(( "cache_min_reserved must be non-zero" )); + return NULL; + } + + ulong cache_class_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + if( FD_UNLIKELY( !fd_accdb_cache_class_cnt( cache_footprint, cache_min_reserved, cache_class_max ) ) ) { + FD_LOG_WARNING(( "invalid cache_footprint" )); + return NULL; + } + /* cidx packs only FD_ACCDB_CACHE_LINE_BITS bits of line index, so + cache_class_max[c]>FD_ACCDB_CACHE_LINE_MAX would let line indices + alias. fd_accdb_cache_class_cnt clamps this; assert here so any + future regression in the allocator is caught at shmem-new time + rather than as silent cache corruption at runtime. */ + for( ulong c=0UL; cseed = seed; + accdb->root_fork_id = (fd_accdb_fork_id_t){ .val = USHORT_MAX }; + accdb->generation = 0U; + + accdb->partition_lock = 0; + accdb->snapshot_loading = 0; + accdb->bundle_enabled = bundle_enabled; + + for( ulong c=0UL; cclock_hand[ c ].val = 0UL; + for( ulong c=0UL; ccache_free[ c ].ver_top = (ulong)UINT_MAX; + for( ulong c=0UL; ccache_free_cnt[ c ].val = 0UL; + + for( ulong c=0UL; cfloor_c ) ? ( max_c - floor_c ) : 0UL; + ulong cap = fd_ulong_min( 8192UL, (64UL<<20) / fd_accdb_cache_slot_sz[ c ] ); + ulong burst_floor = fd_ulong_min( 512UL, headroom/2UL ); + ulong target = fd_ulong_min( cap, fd_ulong_max( headroom/10UL, burst_floor ) ); + accdb->cache_free_target [ c ] = target; + accdb->cache_free_low_water[ c ] = (target * 3UL) / 4UL; + } + + for( ulong k=0UL; kwhead[ k ] = accdb_offset( partition_cnt, partition_sz ); + accdb->has_partition[ k ] = 0; + } + + accdb->chain_cnt = chain_cnt; + accdb->max_live_slots = max_live_slots; + accdb->max_accounts = max_accounts; + accdb->max_account_writes_per_slot = max_account_writes_per_slot; + accdb->joiner_cnt_max = joiner_cnt; + accdb->partition_cnt = partition_cnt; + accdb->partition_sz = partition_sz; + accdb->partition_max = 0UL; + + accdb->partition_pool_off = (ulong)partition_pool - (ulong)shmem; + for( ulong k=0UL; kcompaction_dlist_off[ k ] = (ulong)_compaction_dlists[ k ] - (ulong)shmem; + } + accdb->deferred_free_dlist_off = (ulong)_deferred_free_dlist - (ulong)shmem; + + accdb->deferred_acc_buf_off = (ulong)_deferred_acc_buf - (ulong)shmem; + accdb->deferred_acc_buf_cnt = 0UL; + accdb->deferred_acc_buf_max = txn_max; + accdb->deferred_acc_epoch = 0UL; + + accdb->epoch = 1UL; + accdb->joiner_cnt = 0UL; + for( ulong i=0UL; ijoiner_epochs[ i ].val = ULONG_MAX; + + for( ulong c=0UL; ccache_class_init[ c ].val = 0UL; + for( ulong c=0UL; ccache_class_max[ c ] = cache_class_max[ c ]; + for( ulong c=0UL; ccache_region_off[ c ] = (ulong)_cache_regions[ c ] - (ulong)shmem; + + /* Pre-initialize every cache slot's metadata to the "empty" sentinel + (gen=UINT_MAX, acc_idx=UINT_MAX, refcnt=0). Without this, the + lazy-init path in acquire_cache_line bumps cache_class_init before + writing the sentinels into the freshly-claimed line; a concurrent + background_preevict reading the bumped init counter could then sweep + a slot whose memory still reads as zero, see (gen=0, acc_idx=0) + instead of the skip predicate, CAS refcnt 0->EVICT_SENTINEL, and + "evict" a line the lazy-init owner is about to publish. */ + for( ulong c=0UL; ckey.generation = UINT_MAX; + line->acc_idx = UINT_MAX; + line->refcnt = 0U; + line->referenced = 0; + line->persisted = 1; + } + } + + /* If a class has enough slots for every joiner's worst case + simultaneously (cache_min_reserved per joiner), no reservation can + ever overflow. Sentinel ULONG_MAX tells acquire/release to skip + the atomic counters entirely. */ + for( ulong c=0UL; c=cache_min_reserved*joiner_cnt ) accdb->cache_class_used[ c ].val = ULONG_MAX; + else accdb->cache_class_used[ c ].val = 0UL; + } + + memset( accdb->shmetrics, 0, sizeof( fd_accdb_shmem_metrics_t ) ); + accdb->shmetrics->accounts_capacity = max_accounts; + + accdb->cmd_op = FD_ACCDB_CMD_IDLE; + accdb->cmd_fork_id = USHORT_MAX; + + FD_COMPILER_MFENCE(); + FD_VOLATILE( accdb->magic ) = FD_ACCDB_SHMEM_MAGIC; + FD_COMPILER_MFENCE(); + + return (void *)accdb; +} + +void +fd_accdb_shmem_try_enqueue_compaction( fd_accdb_shmem_t * accdb, + ulong partition_idx ) { + /* Caller must hold partition_lock. */ + + fd_accdb_partition_t * partition_pool = (fd_accdb_partition_t *)( (uchar *)accdb + accdb->partition_pool_off ); + fd_accdb_partition_t * partition = partition_pool_ele( partition_pool, partition_idx ); + + if( FD_UNLIKELY( partition->bytes_freed<(accdb->partition_sz*3UL/10UL) ) ) return; + if( FD_UNLIKELY( partition->marked_compaction ) ) return; + + /* While a snapshot load is in flight, defer all compaction so the + compaction tile cannot race with the bulk loader. Anything that + crosses the threshold here will be re-checked by + fd_accdb_snapshot_load_end's sweep when loading completes. */ + if( FD_UNLIKELY( FD_VOLATILE_CONST( accdb->snapshot_loading ) ) ) return; + + /* Do not enqueue any currently active write-head partition. Its + write_offset is not yet finalized, so compaction cannot determine + the valid data range. The partition_lock serializes this check + with change_partition, so it is not racy. */ + for( ulong k=0UL; khas_partition[ k ] && packed_partition_idx( &accdb->whead[ k ] )==partition_idx ) ) return; + } + + uchar layer = partition->layer; + compaction_dlist_t * compaction_dlist = (compaction_dlist_t *)( (uchar *)accdb + accdb->compaction_dlist_off[ layer ] ); + + partition->marked_compaction = 1; + partition->compaction_offset = 0UL; + partition->compaction_ready_epoch = FD_ATOMIC_FETCH_AND_ADD( &accdb->epoch, 1UL ); + partition->queued = 1; + if( FD_LIKELY( compaction_dlist_is_empty( compaction_dlist, partition_pool ) ) ) { + FD_LOG_NOTICE(( "compaction of layer %u partition %lu started", (uint)layer, partition_pool_idx( partition_pool, partition ) )); + } + compaction_dlist_ele_push_tail( compaction_dlist, partition, partition_pool ); + accdb->shmetrics->in_compaction = 1; + accdb->shmetrics->compactions_requested++; +} + +void +fd_accdb_shmem_bytes_freed( fd_accdb_shmem_t * accdb, + ulong offset, + ulong sz ) { + fd_accdb_partition_t * partition_pool = (fd_accdb_partition_t *)( (uchar *)accdb + accdb->partition_pool_off ); + + ulong partition_idx = offset/accdb->partition_sz; + fd_accdb_partition_t * partition = partition_pool_ele( partition_pool, partition_idx ); + /* Launder the pointer: GCC derives partition from (accdb + off) and so + believes __builtin_object_size( &partition->bytes_freed )==0, which + trips a spurious -Wstringop-overflow on the atomic add below. */ + FD_COMPILER_FORGET( partition ); + FD_ATOMIC_FETCH_AND_ADD( &partition->bytes_freed, sz ); + + /* Fast-path exit: skip the lock if clearly below threshold or + already enqueued. */ + if( FD_LIKELY( partition->bytes_freed<(accdb->partition_sz*3UL/10UL) ) ) return; + if( FD_UNLIKELY( partition->marked_compaction ) ) return; + + spin_lock_acquire( &accdb->partition_lock ); + fd_accdb_shmem_try_enqueue_compaction( accdb, partition_idx ); + spin_lock_release( &accdb->partition_lock ); +} + +ulong +fd_accdb_shmem_partition_max( fd_accdb_shmem_t const * accdb ) { + return accdb->partition_max; +} + +ulong +fd_accdb_shmem_partition_sz( fd_accdb_shmem_t const * accdb ) { + return accdb->partition_sz; +} + +void +fd_accdb_shmem_partition_info( fd_accdb_shmem_t const * accdb, + ulong partition_idx, + fd_accdb_shmem_partition_info_t * out ) { + fd_accdb_partition_t const * partition_pool = (fd_accdb_partition_t const *)( (uchar const *)accdb + accdb->partition_pool_off ); + fd_accdb_partition_t const * p = partition_pool_ele_const( partition_pool, partition_idx ); + + out->file_offset = partition_idx * accdb->partition_sz; + out->write_offset = FD_VOLATILE_CONST( p->write_offset ); + out->is_write_head = 0; + /* If this partition is currently the active write head for any + layer, partition->write_offset is stale (it's only updated at + handoff in change_partition). The live tip lives in whead[layer]. + Surface the live value so the GUI shows real-time fill, not the + "0 until rolled" snapshot. */ + for( ulong k=0UL; khas_partition[ k ] ) ) continue; + accdb_offset_t whead = { .val = FD_VOLATILE_CONST( accdb->whead[ k ].val ) }; + if( packed_partition_idx( &whead )==partition_idx ) { + out->write_offset = packed_partition_offset( &whead ); + out->is_write_head = 1; + break; + } + } + out->bytes_freed = FD_VOLATILE_CONST( p->bytes_freed ); + out->compaction_offset = FD_VOLATILE_CONST( p->compaction_offset ); + out->read_ops = FD_VOLATILE_CONST( p->read_ops ); + out->bytes_read = FD_VOLATILE_CONST( p->bytes_read ); + out->write_ops = FD_VOLATILE_CONST( p->write_ops ); + out->bytes_written = FD_VOLATILE_CONST( p->bytes_written ); + out->created_ticks = (long)FD_VOLATILE_CONST( p->created_ticks ); + out->filled_ticks = (long)FD_VOLATILE_CONST( p->filled_ticks ); + out->layer = p->layer; + uchar compacting = FD_VOLATILE_CONST( p->compacting_now ); + uchar queued = FD_VOLATILE_CONST( p->queued ); + out->compaction_state = compacting ? 2 : ( queued ? 1 : 0 ); +} diff --git a/src/flamenco/accdb/fd_accdb_shmem.h b/src/flamenco/accdb/fd_accdb_shmem.h new file mode 100644 index 00000000000..ca786916bfc --- /dev/null +++ b/src/flamenco/accdb/fd_accdb_shmem.h @@ -0,0 +1,140 @@ +#ifndef HEADER_fd_src_flamenco_accdb_fd_accdb_shmem_h +#define HEADER_fd_src_flamenco_accdb_fd_accdb_shmem_h + +#include "../../util/fd_util_base.h" +#include "fd_accdb_cache.h" + +#define FD_ACCDB_SHMEM_ALIGN (128UL) + +#define FD_ACCDB_SHMEM_MAGIC (0xF17EDA2CE7ACCDB0UL) /* FIREDANCE ACCDB V0 */ + +typedef struct fd_accdb_shmem_private fd_accdb_shmem_t; + +struct fd_accdb_shmem_metrics { + ulong accounts_total; + ulong accounts_capacity; + ulong disk_allocated_bytes; + ulong disk_current_bytes; + ulong disk_used_bytes; + int in_compaction; + ulong compactions_requested; + ulong compactions_completed; + ulong accounts_relocated; + ulong accounts_relocated_bytes; + ulong partitions_freed; +}; + +typedef struct fd_accdb_shmem_metrics fd_accdb_shmem_metrics_t; + +struct fd_accdb_metrics { + ulong acquire_calls; + ulong accounts_acquired_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong writable_accounts_acquired_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_evicted; + ulong accounts_evicted_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_preevicted; + ulong accounts_preevicted_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_committed_new_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_committed_overwrite_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_not_found_per_class[ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong accounts_waited; + ulong accounts_deleted; + + ulong acquire_failed; + + ulong bytes_read; + ulong read_ops; + ulong bytes_written; + ulong write_ops; + ulong copy_ops; + + ulong bytes_copied; +}; + +typedef struct fd_accdb_metrics fd_accdb_metrics_t; + +FD_PROTOTYPES_BEGIN + +FD_FN_CONST ulong +fd_accdb_shmem_align( void ); + +ulong +fd_accdb_shmem_footprint( ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong cache_footprint, + ulong cache_min_reserved, + ulong joiner_cnt ); + +void * +fd_accdb_shmem_new( void * shmem, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz, + ulong cache_footprint, + ulong cache_min_reserved, + int bundle_enabled, + ulong seed, + ulong joiner_cnt ); + +fd_accdb_shmem_t * +fd_accdb_shmem_join( void * shtc ); + +void +fd_accdb_shmem_bytes_freed( fd_accdb_shmem_t * accdb, + ulong offset, + ulong sz ); + +/* fd_accdb_shmem_try_enqueue_compaction checks whether the partition + at partition_idx has crossed the compaction threshold and, if so, + enqueues it for compaction. The caller MUST hold partition_lock. + This is factored out of fd_accdb_shmem_bytes_freed so that + change_partition (which already holds the lock) can call it after + updating the write head, avoiding a race where the old write head + is skipped for enqueue. */ + +void +fd_accdb_shmem_try_enqueue_compaction( fd_accdb_shmem_t * accdb, + ulong partition_idx ); + +/* Per-partition snapshot for read-only consumers (GUI tile). The + underlying per-partition state is updated with relaxed atomics by + writers, so the snapshot is best-effort consistent. compaction_state + is 0=idle, 1=queued, 2=compacting. */ + +struct fd_accdb_shmem_partition_info { + ulong file_offset; /* byte offset of partition start in the accdb file */ + ulong write_offset; /* current write head within the partition */ + ulong bytes_freed; /* bytes marked freed within the partition */ + ulong compaction_offset; /* current compaction read offset within partition */ + ulong read_ops; + ulong bytes_read; + ulong write_ops; + ulong bytes_written; + long created_ticks; /* fd_tickcount when the partition was opened */ + long filled_ticks; /* fd_tickcount when partition closed (0 if active) */ + uchar layer; /* compaction tier this partition belongs to */ + uchar compaction_state; /* 0=idle, 1=queued, 2=compacting */ + uchar is_write_head; /* non-zero if this partition is the active write */ + /* head for any layer at the time of the snapshot */ +}; + +typedef struct fd_accdb_shmem_partition_info fd_accdb_shmem_partition_info_t; + +ulong +fd_accdb_shmem_partition_max( fd_accdb_shmem_t const * accdb ); + +ulong +fd_accdb_shmem_partition_sz( fd_accdb_shmem_t const * accdb ); + +void +fd_accdb_shmem_partition_info( fd_accdb_shmem_t const * accdb, + ulong partition_idx, + fd_accdb_shmem_partition_info_t * out ); + +FD_PROTOTYPES_END + +#endif /* HEADER_fd_src_flamenco_accdb_fd_accdb_shmem_h */ diff --git a/src/flamenco/accdb/test_accdb.c b/src/flamenco/accdb/test_accdb.c new file mode 100644 index 00000000000..b573680b130 --- /dev/null +++ b/src/flamenco/accdb/test_accdb.c @@ -0,0 +1,1151 @@ +#define _GNU_SOURCE + +#include "fd_accdb.h" +#include "fd_accdb_cache.h" +#define FD_ACCDB_NO_FORK_ID +#include "fd_accdb_private.h" +#undef FD_ACCDB_NO_FORK_ID +#include "../../util/fd_util.h" + +#include +#include +#include +#include + +static uchar pubkey0[ 32UL ] = { 0 }; +static uchar pubkey1[ 32UL ] = { 1, 0 }; + +static uchar owner2[ 32UL ] = { 2, 0 }; +static uchar owner3[ 32UL ] = { 3, 0 }; + +#define SENTINEL ((fd_accdb_fork_id_t){ .val = USHORT_MAX }) + +/* Disk metadata is packed: pubkey[32] + size(uint,4) = 36 */ +#define META_SZ (36UL) + +/* Cache footprint for tests. Class 7 slots are 10 MiB each and the + allocator reserves cache_min_reserved of every class off the top + (Phase 1), so the footprint floor is roughly + cache_min_reserved * sum(slot_sz) ~= cache_min_reserved * 11.2 MiB. + These unit tests only ever acquire a handful of accounts at a time, + so a tiny min_reserved keeps the whole cache in the tens of MiB + (vs. the production-scale ~7 GiB a 640-slot reservation would need) + and avoids OOMing CI / dev machines. */ +#define TEST_CACHE_MIN_RESERVED (2UL) +#define TEST_CACHE_FOOTPRINT (32UL<<20UL) + +static fd_accdb_shmem_t * test_shmem_mem; + +static fd_accdb_t * +test_setup_ex( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz, + ulong cache_fp, + ulong cache_min_reserved, + ulong joiner_cnt ) { + int fd = memfd_create( "accdb_test", 0 ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + *out_fd = fd; + + ulong shmem_fp = fd_accdb_shmem_footprint( max_accounts, max_live_slots, max_account_writes_per_slot, partition_cnt, cache_fp, cache_min_reserved, joiner_cnt ); + FD_TEST( shmem_fp ); + void * shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( shmem_mem ); + fd_accdb_shmem_t * shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( shmem_mem, max_accounts, max_live_slots, + max_account_writes_per_slot, partition_cnt, + partition_sz, cache_fp, cache_min_reserved, 0, 42UL, joiner_cnt ) ); + FD_TEST( shmem ); + test_shmem_mem = shmem_mem; + + ulong accdb_fp = fd_accdb_footprint( max_live_slots ); + FD_TEST( accdb_fp ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, shmem, fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +static fd_accdb_t * +test_setup( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz ) { + return test_setup_ex( out_fd, max_accounts, max_live_slots, max_account_writes_per_slot, + partition_cnt, partition_sz, TEST_CACHE_FOOTPRINT, TEST_CACHE_MIN_RESERVED, 1UL ); +} + +static void +test_teardown( fd_accdb_t * accdb, + int fd ) { + free( test_shmem_mem ); + free( accdb ); + close( fd ); +} + +/* Process any pending advance_root / purge command submitted to the + background tile. Must be called after advance_root or purge in + single-threaded tests so that the next T1 operation does not + deadlock waiting for the command to complete. */ +static void +drain_background( fd_accdb_t * accdb ) { + int charge_busy = 0; + fd_accdb_background( accdb, &charge_busy ); +} + +/* Helper: read a single account via acquire/release. Returns 1 if + the account exists (lamports!=0), 0 otherwise. */ +static int +accdb_read( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong * out_lamports, + uchar * out_data, + ulong * out_data_len, + uchar * out_owner ) { + uchar const * pks[1] = { pubkey }; + int wr[1] = { 0 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( accdb, fork_id, 1UL, pks, wr, acc ); + int found = acc[0].lamports!=0UL; + if( found ) { + if( out_lamports ) *out_lamports = acc[0].lamports; + if( out_data_len ) *out_data_len = acc[0].data_len; + if( out_owner ) memcpy( out_owner, acc[0].owner, 32UL ); + if( out_data && acc[0].data && acc[0].data_len ) + memcpy( out_data, acc[0].data, acc[0].data_len ); + } + fd_accdb_release( accdb, 1UL, acc ); + return found; +} + +/* Helper: write a single account via acquire/release. */ +static void +accdb_write( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong lamports, + uchar const * data, + ulong data_len, + uchar const * owner ) { + uchar const * pks[1] = { pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( accdb, fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = lamports; + acc[0].data_len = data_len; + memcpy( acc[0].owner, owner, 32UL ); + if( data_len && data ) memcpy( acc[0].data, data, data_len ); + acc[0].commit = 1; + fd_accdb_release( accdb, 1UL, acc ); +} + +void +test_background_preevict_ignores_uninitialized_tail( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + uchar owner[ 32UL ] = { 9, 0 }; + accdb_write( accdb, slot1, pubkey0, 1UL, NULL, 0UL, owner ); + + ulong cache_used [ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong cache_max [ FD_ACCDB_CACHE_CLASS_CNT ]; + ulong cache_reserved[ FD_ACCDB_CACHE_CLASS_CNT ]; + fd_accdb_cache_class_occupancy( accdb, cache_used, cache_max, cache_reserved ); + + FD_TEST( cache_used[ 0UL ]==1UL ); + FD_TEST( cache_max[ 0UL ]>1UL ); + FD_TEST( fd_accdb_metrics( accdb )->accounts_preevicted==0UL ); + + int charge_busy = 0; + fd_accdb_background( accdb, &charge_busy ); + + fd_accdb_cache_class_occupancy( accdb, cache_used, cache_max, cache_reserved ); + + FD_TEST( cache_used[ 0UL ]==1UL ); + FD_TEST( fd_accdb_metrics( accdb )->accounts_preevicted==0UL ); + + test_teardown( accdb, fd ); +} + +void +test_basic( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + FD_TEST( !accdb_read( accdb, slot1, pubkey0, NULL, NULL, NULL, owner ) ); + FD_TEST( !accdb_read( accdb, slot1, pubkey1, NULL, NULL, NULL, owner ) ); + accdb_write( accdb, slot1, pubkey1, 1UL, NULL, 0UL, owner2 ); + FD_TEST( !accdb_read( accdb, slot1, pubkey0, NULL, NULL, NULL, owner ) ); + FD_TEST( accdb_read( accdb, slot1, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==1UL ); + FD_TEST( data_len==0UL ); + FD_TEST( !memcmp( owner, owner2, 32UL ) ); + + test_teardown( accdb, fd ); +} + +void +test_missing_readonly_account_initializes_entry( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + uchar missing_pubkey[ 32UL ] = { 0xAB }; + uchar zeros[ 32UL ] = { 0 }; + uchar const * pks[ 1 ] = { missing_pubkey }; + int wr[ 1 ] = { 0 }; + fd_acc_t acc[ 1 ]; + + memset( acc, 0xA5, sizeof(acc) ); + fd_accdb_acquire( accdb, slot1, 1UL, pks, wr, acc ); + + FD_TEST( !memcmp( acc[ 0 ].pubkey, missing_pubkey, 32UL ) ); + FD_TEST( !memcmp( acc[ 0 ].owner, zeros, 32UL ) ); + FD_TEST( !memcmp( acc[ 0 ].prior_owner, zeros, 32UL ) ); + FD_TEST( acc[ 0 ].lamports==0UL ); + FD_TEST( acc[ 0 ].data_len==0UL ); + FD_TEST( acc[ 0 ].data==NULL ); + FD_TEST( acc[ 0 ].executable==0 ); + FD_TEST( acc[ 0 ].prior_lamports==0UL ); + FD_TEST( acc[ 0 ].prior_data_len==0UL ); + FD_TEST( acc[ 0 ].prior_data==NULL ); + FD_TEST( acc[ 0 ].prior_executable==0 ); + FD_TEST( acc[ 0 ]._writable==0 ); + FD_TEST( acc[ 0 ]._original_size_class==ULONG_MAX ); + FD_TEST( acc[ 0 ]._original_cache_idx==ULONG_MAX ); + + fd_accdb_release( accdb, 1UL, acc ); + test_teardown( accdb, fd ); +} + +void +test_fork_basic( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t f1 = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t f2 = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t f3 = fd_accdb_attach_child( accdb, root ); + + FD_TEST( !accdb_read( accdb, f1, pubkey0, NULL, NULL, NULL, owner ) ); + FD_TEST( !accdb_read( accdb, f2, pubkey0, NULL, NULL, NULL, owner ) ); + FD_TEST( !accdb_read( accdb, f3, pubkey0, NULL, NULL, NULL, owner ) ); + + accdb_write( accdb, f1, pubkey1, 1UL, NULL, 0UL, owner2 ); + FD_TEST( accdb_read( accdb, f1, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( !accdb_read( accdb, f2, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( !accdb_read( accdb, f3, pubkey1, &lamports, &d, &data_len, owner ) ); + + accdb_write( accdb, f2, pubkey1, 1UL, NULL, 0UL, owner2 ); + FD_TEST( accdb_read( accdb, f1, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( accdb_read( accdb, f2, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( !accdb_read( accdb, f3, pubkey1, &lamports, &d, &data_len, owner ) ); + + fd_accdb_fork_id_t f4 = fd_accdb_attach_child( accdb, f2 ); + fd_accdb_fork_id_t f5 = fd_accdb_attach_child( accdb, f3 ); + FD_TEST( accdb_read( accdb, f4, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( !accdb_read( accdb, f5, pubkey1, &lamports, &d, &data_len, owner ) ); + + test_teardown( accdb, fd ); +} + +void +test_root_forks( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t f1 = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t f2 = fd_accdb_attach_child( accdb, root ); + + accdb_write( accdb, f2, pubkey1, 1UL, NULL, 0UL, owner2 ); + accdb_write( accdb, f1, pubkey1, 2UL, NULL, 0UL, owner2 ); + fd_accdb_fork_id_t f3 = fd_accdb_attach_child( accdb, f1 ); + accdb_write( accdb, f3, pubkey1, 3UL, NULL, 0UL, owner2 ); + + FD_TEST( accdb_read( accdb, f1, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==2UL ); + FD_TEST( accdb_read( accdb, f2, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==1UL ); + FD_TEST( accdb_read( accdb, f3, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==3UL ); + + /* Root f2: f1 and f3 are on a competing fork and should be purged. */ + fd_accdb_advance_root( accdb, f2 ); + drain_background( accdb ); + FD_TEST( accdb_read( accdb, f2, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==1UL ); + + test_teardown( accdb, fd ); +} + +static uchar big_data[ 10UL*(1UL<<20) ]; + +void +test_compact( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + ulong acct_sz = 10UL*(1UL<<20UL); + ulong writes_fit_in_partition = (1UL<<30UL) / (acct_sz + META_SZ); + + /* Write-back model: committed data stays dirty in cache. Repeated + overwrites of the same account never touch disk, so disk_used_bytes + remains 0 and the partition write-head does not advance. */ + for( ulong i=0UL; iaccounts_total == 1UL ); + FD_TEST( metrics->accounts_capacity == 1024UL ); + FD_TEST( fd_accdb_metrics( accdb )->write_ops == 0UL ); + FD_TEST( metrics->disk_allocated_bytes == 0UL ); + FD_TEST( metrics->disk_used_bytes == 0UL ); + FD_TEST( metrics->in_compaction == 0 ); + FD_TEST( metrics->compactions_requested == 0UL ); + FD_TEST( metrics->compactions_completed == 0UL ); + FD_TEST( metrics->accounts_relocated == 0UL ); + FD_TEST( metrics->accounts_relocated_bytes == 0UL ); + FD_TEST( metrics->partitions_freed == 0UL ); + + test_teardown( accdb, fd ); +} + +/* Test that writing the same account multiple times on the same fork + correctly updates the data each time and that reads return the + latest version. */ +void +test_overwrite_same_fork( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d[4]; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t slot1 = fd_accdb_attach_child( accdb, root ); + + uchar data_a[4] = { 0xAA, 0xBB, 0xCC, 0xDD }; + uchar data_b[4] = { 0x11, 0x22, 0x33, 0x44 }; + uchar data_c[2] = { 0xFF, 0xEE }; + + accdb_write( accdb, slot1, pubkey1, 100UL, data_a, 4UL, owner2 ); + FD_TEST( accdb_read( accdb, slot1, pubkey1, &lamports, d, &data_len, owner ) ); + FD_TEST( lamports==100UL ); + FD_TEST( data_len==4UL ); + FD_TEST( !memcmp( d, data_a, 4UL ) ); + + accdb_write( accdb, slot1, pubkey1, 200UL, data_b, 4UL, owner3 ); + FD_TEST( accdb_read( accdb, slot1, pubkey1, &lamports, d, &data_len, owner ) ); + FD_TEST( lamports==200UL ); + FD_TEST( data_len==4UL ); + FD_TEST( !memcmp( d, data_b, 4UL ) ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + accdb_write( accdb, slot1, pubkey1, 300UL, data_c, 2UL, owner2 ); + FD_TEST( accdb_read( accdb, slot1, pubkey1, &lamports, d, &data_len, owner ) ); + FD_TEST( lamports==300UL ); + FD_TEST( data_len==2UL ); + FD_TEST( !memcmp( d, data_c, 2UL ) ); + FD_TEST( !memcmp( owner, owner2, 32UL ) ); + + fd_accdb_shmem_metrics_t const * metrics = fd_accdb_shmetrics( accdb ); + FD_TEST( metrics->accounts_total == 1UL ); + + test_teardown( accdb, fd ); +} + +/* Test that multiple distinct accounts can coexist and be read back + correctly on different forks. */ +void +test_multiple_accounts( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + uchar pk_a[ 32UL ] = { 10 }; + uchar pk_b[ 32UL ] = { 20 }; + uchar pk_c[ 32UL ] = { 30 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t f1 = fd_accdb_attach_child( accdb, root ); + + accdb_write( accdb, f1, pk_a, 10UL, NULL, 0UL, owner2 ); + accdb_write( accdb, f1, pk_b, 20UL, NULL, 0UL, owner2 ); + accdb_write( accdb, f1, pk_c, 30UL, NULL, 0UL, owner3 ); + + FD_TEST( accdb_read( accdb, f1, pk_a, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==10UL ); + FD_TEST( accdb_read( accdb, f1, pk_b, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==20UL ); + FD_TEST( accdb_read( accdb, f1, pk_c, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==30UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + fd_accdb_shmem_metrics_t const * metrics = fd_accdb_shmetrics( accdb ); + FD_TEST( metrics->accounts_total == 3UL ); + + test_teardown( accdb, fd ); +} + +/* Test advancing the root through a chain of slots: root->A->B->C, + root each one in sequence, then verify the last is still readable. */ +void +test_sequential_rooting( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t a = fd_accdb_attach_child( accdb, root ); + accdb_write( accdb, root, pubkey1, 1UL, NULL, 0UL, owner2 ); + accdb_write( accdb, a, pubkey1, 2UL, NULL, 0UL, owner2 ); + + fd_accdb_advance_root( accdb, a ); + drain_background( accdb ); + + fd_accdb_fork_id_t b = fd_accdb_attach_child( accdb, a ); + accdb_write( accdb, b, pubkey1, 3UL, NULL, 0UL, owner2 ); + FD_TEST( accdb_read( accdb, b, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==3UL ); + + fd_accdb_advance_root( accdb, b ); + drain_background( accdb ); + + fd_accdb_fork_id_t c = fd_accdb_attach_child( accdb, b ); + FD_TEST( accdb_read( accdb, c, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==3UL ); + + accdb_write( accdb, c, pubkey1, 4UL, NULL, 0UL, owner3 ); + FD_TEST( accdb_read( accdb, c, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==4UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* Test purge: create a fork, write to it, purge it, and verify the + account is no longer visible while accounts on the surviving fork + remain. */ +void +test_purge( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + uchar pk_a[ 32UL ] = { 0xA0 }; + uchar pk_b[ 32UL ] = { 0xB0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t keep = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t drop = fd_accdb_attach_child( accdb, root ); + + accdb_write( accdb, keep, pk_a, 100UL, NULL, 0UL, owner2 ); + accdb_write( accdb, drop, pk_b, 50UL, NULL, 0UL, owner2 ); + + FD_TEST( accdb_read( accdb, keep, pk_a, &lamports, &d, &data_len, owner ) ); + FD_TEST( accdb_read( accdb, drop, pk_b, &lamports, &d, &data_len, owner ) ); + + fd_accdb_purge( accdb, drop ); + drain_background( accdb ); + + /* The account on the kept fork should still be there. */ + FD_TEST( accdb_read( accdb, keep, pk_a, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==100UL ); + + fd_accdb_shmem_metrics_t const * metrics = fd_accdb_shmetrics( accdb ); + FD_TEST( metrics->accounts_total == 1UL ); + + test_teardown( accdb, fd ); +} + +/* Test that child forks inherit writes from their parent (ancestor + visibility) and that overwriting on the child does not affect the + parent's view. */ +void +test_child_inherits_parent( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t parent = fd_accdb_attach_child( accdb, root ); + accdb_write( accdb, parent, pubkey1, 10UL, NULL, 0UL, owner2 ); + + fd_accdb_fork_id_t child = fd_accdb_attach_child( accdb, parent ); + + /* Child can see parent's write */ + FD_TEST( accdb_read( accdb, child, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==10UL ); + + /* Overwrite on child */ + accdb_write( accdb, child, pubkey1, 99UL, NULL, 0UL, owner3 ); + FD_TEST( accdb_read( accdb, child, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==99UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + /* Parent still sees original */ + FD_TEST( accdb_read( accdb, parent, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==10UL ); + FD_TEST( !memcmp( owner, owner2, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* Build a deep linear chain (root -> s0 -> s1 -> ... -> s9), write + the same account at every level with increasing lamports, then + root halfway through the chain. Verify that reads on deeper forks + still see the correct ancestor value and that rooting cleans up + correctly. */ +void +test_deep_chain_rooting( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + +# define DEPTH (10UL) + fd_accdb_fork_id_t chain[ DEPTH ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + chain[ 0 ] = fd_accdb_attach_child( accdb, root ); + accdb_write( accdb, chain[ 0 ], pubkey1, 1UL, NULL, 0UL, owner2 ); + for( ulong i=1UL; iaccounts_total==6UL ); + +# undef DEPTH + test_teardown( accdb, fd ); +} + +/* Create a wide fan-out: one parent with 16 sibling children, each + writing the same pubkey with a unique lamports value. Verify + perfect fork isolation-each sibling reads only its own value. */ +void +test_wide_fanout_isolation( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + +# define SIBLINGS (16UL) + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t parent = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t sibs[ SIBLINGS ]; + + for( ulong i=0UL; iaccounts_total==SIBLINGS ); + +# undef SIBLINGS + test_teardown( accdb, fd ); +} + +/* Purge a fork that has children and grandchildren. Verify the + entire subtree is recursively removed, while a sibling subtree + survives. */ +void +test_purge_deep_subtree( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + uchar pk_a[ 32UL ] = { 0xDA }; + uchar pk_b[ 32UL ] = { 0xDB }; + uchar pk_c[ 32UL ] = { 0xDC }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t keep = fd_accdb_attach_child( accdb, root ); + fd_accdb_fork_id_t drop = fd_accdb_attach_child( accdb, root ); + + /* Build a subtree under drop: drop -> child -> grandchild */ + fd_accdb_fork_id_t drop_child = fd_accdb_attach_child( accdb, drop ); + fd_accdb_fork_id_t drop_grandchild = fd_accdb_attach_child( accdb, drop_child ); + + accdb_write( accdb, drop, pk_a, 1UL, NULL, 0UL, owner2 ); + accdb_write( accdb, drop_child, pk_b, 2UL, NULL, 0UL, owner2 ); + accdb_write( accdb, drop_grandchild, pk_c, 3UL, NULL, 0UL, owner2 ); + accdb_write( accdb, keep, pk_a, 9UL, NULL, 0UL, owner3 ); + + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==4UL ); + + fd_accdb_purge( accdb, drop ); + drain_background( accdb ); + + /* Only the account on the kept fork should remain. */ + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==1UL ); + FD_TEST( accdb_read( accdb, keep, pk_a, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==9UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* Write an account on the root fork, then overwrite it on a child + fork. After rooting the child, verify accounts_total stays at 1 + (the older version is tombstoned by the rooting pass). */ +void +test_root_tombstones_old_version( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t a = fd_accdb_attach_child( accdb, root ); + + accdb_write( accdb, root, pubkey1, 10UL, NULL, 0UL, owner2 ); + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==1UL ); + + accdb_write( accdb, a, pubkey1, 20UL, NULL, 0UL, owner3 ); + /* Two index entries exist now: one for root, one for a. */ + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==2UL ); + + fd_accdb_advance_root( accdb, a ); + drain_background( accdb ); + + /* After rooting, the older version on root should have been + tombstoned, leaving exactly one live acc. */ + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==1UL ); + + FD_TEST( accdb_read( accdb, a, pubkey1, &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==20UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + + test_teardown( accdb, fd ); +} + +/* Populate many distinct accounts on a single fork to exercise the + hash-chain logic (multiple accounts sharing the same chain bucket). + Then verify every account can still be read back correctly. */ +void +test_many_accounts_hash_chains( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 1024UL, 64UL, 8192UL, 8192UL, 1UL<<30UL ); + + ulong lamports; + uchar d; + ulong data_len; + uchar owner[ 32UL ]; + +# define N_ACCTS (200UL) + + fd_accdb_fork_id_t root = fd_accdb_attach_child( accdb, SENTINEL ); + fd_accdb_fork_id_t f = fd_accdb_attach_child( accdb, root ); + + uchar pks[ N_ACCTS ][ 32UL ]; + for( ulong i=0UL; i> 8UL)& 0xFFUL); + pks[ i ][ 2 ] = (uchar)((i>>16UL)& 0xFFUL); + pks[ i ][ 3 ] = (uchar)((i>>24UL)& 0xFFUL); + + accdb_write( accdb, f, pks[ i ], i+1UL, NULL, 0UL, owner2 ); + } + + FD_TEST( fd_accdb_shmetrics( accdb )->accounts_total==N_ACCTS ); + + /* Read every account back and verify. */ + for( ulong i=0UL; iaccounts_total==N_ACCTS ); + for( ulong i=0UL; i<50UL; i++ ) { + FD_TEST( accdb_read( accdb, f, pks[ i ], &lamports, &d, &data_len, owner ) ); + FD_TEST( lamports==(i+1UL)*1000UL ); + FD_TEST( !memcmp( owner, owner3, 32UL ) ); + } + for( ulong i=50UL; i>1) + (max_accounts&1UL) ); + + ulong cache_class_max[ FD_ACCDB_CACHE_CLASS_CNT ]; + FD_TEST( fd_accdb_cache_class_cnt( cache_footprint, 640UL, cache_class_max ) ); + + ulong total_cache_slots = 0UL; + for( ulong c=0UL; c0UL && rows[j-1UL].szfloor_c ) ? ( max_c - floor_c ) : 0UL; + ulong cap = fd_ulong_min( 8192UL, (64UL<<20) / fd_accdb_cache_slot_sz[ c ] ); + ulong burst_floor = fd_ulong_min( 512UL, headroom/2UL ); + ulong target = fd_ulong_min( cap, fd_ulong_max( headroom/10UL, burst_floor ) ); + ulong low = (target * 3UL) / 4UL; + FD_LOG_NOTICE(( " class %lu: target=%lu low_water=%lu " + "(max=%lu reserved=%lu headroom=%lu cap=%lu)", + c, target, low, max_c, floor_c, headroom, cap )); + } +} + +/* test_acquire_b_refund_accounting drives the two-phase programdata + acquire (acquire_a over-reserves one slot in every live size class per + candidate; acquire_b refunds the surplus, keeping one reservation per + found programdata account in its own size class) followed by release, + and asserts the per-class reservation counters (cache_class_used, + surfaced via fd_accdb_cache_class_occupancy's `reserved`) return EXACTLY + to their pre-cycle baseline. + + This locks in that acquire_b's refund accounting balances. The refund + was moved out of fd_accdb_acquire_b (where it walked the acc_map with + the joiner epoch idle) into acquire_inner's epoch-protected STEP-1 walk; + a miscount (over- or under-refund) leaves a class counter off baseline + and fails here. We exercise a found programdata account in a TRACKED + size class plus a missing one (no accmeta -> no decrement) so the + per-class arithmetic is covered. + + A class only tracks reservations when cache_class_max[c] < + cache_min_reserved*joiner_cnt (otherwise the counter is pinned to + ULONG_MAX and acquire/release skip it). A footprint just above the + Phase-1 minimum keeps the larger class maxes pinned at the + cache_min_reserved floor (=2); joiner_cnt=2 (threshold 4) makes class + 3 — where pd_big lands — tracked, while leaving 2 slots, enough for + the two-candidate over-reservation. The whole cache is ~32 MiB. */ +static void +test_acquire_b_refund_accounting( void ) { + int fd; + fd_accdb_t * accdb = test_setup_ex( &fd, 256UL, 16UL, 1024UL, 1024UL, 1UL<<30UL, + TEST_CACHE_FOOTPRINT, TEST_CACHE_MIN_RESERVED, 2UL ); + + fd_accdb_fork_id_t root0 = fd_accdb_attach_child( accdb, SENTINEL ); + + uchar cand0 [ 32 ] = { 'a', 0 }; + uchar cand1 [ 32 ] = { 'b', 0 }; + uchar owner [ 32 ] = { 0x11, 0 }; + uchar pd_big[ 32 ] = { 'G', 0 }; /* class 3 (4 KiB) -- a TRACKED class */ + uchar pd_none[ 32 ] = { 'N', 0 }; /* never committed -> no accmeta */ + + uchar bigdata[ 4096 ]; + memset( bigdata, 0xCD, sizeof(bigdata) ); + + accdb_write( accdb, root0, cand0, 100UL, NULL, 0UL, owner ); + accdb_write( accdb, root0, cand1, 100UL, NULL, 0UL, owner ); + accdb_write( accdb, root0, pd_big, 100UL, bigdata, sizeof(bigdata), owner ); + + ulong used0[ FD_ACCDB_CACHE_CLASS_CNT ], max0[ FD_ACCDB_CACHE_CLASS_CNT ], base[ FD_ACCDB_CACHE_CLASS_CNT ]; + fd_accdb_cache_class_occupancy( accdb, used0, max0, base ); + + /* Phase A: acquire the two candidates read-only (maybe-programdata + over-reservation: +1 to every tracked class per candidate). */ + uchar const * cand_pks[2] = { cand0, cand1 }; + int cand_wr [2] = { 0, 0 }; + fd_acc_t cand_acc[2]; + memset( cand_acc, 0, sizeof(cand_acc) ); + fd_accdb_acquire_a( accdb, root0, 2UL, cand_pks, cand_wr, cand_acc ); + + /* Phase B: resolve programdata and refund the surplus. reserved_cnt is + the candidate count (2), exactly as fd_executor.c passes + txn_out->accounts.cnt. */ + uchar const * pd_pks[2] = { pd_big, pd_none }; + int pd_wr [2] = { 0, 0 }; + fd_acc_t pd_acc[2]; + memset( pd_acc, 0, sizeof(pd_acc) ); + fd_accdb_acquire_b( accdb, root0, 2UL, 2UL, pd_pks, pd_wr, pd_acc ); + + fd_accdb_release_ab( accdb, 2UL, cand_acc, 2UL, pd_acc ); + + ulong used1[ FD_ACCDB_CACHE_CLASS_CNT ], max1[ FD_ACCDB_CACHE_CLASS_CNT ], post[ FD_ACCDB_CACHE_CLASS_CNT ]; + fd_accdb_cache_class_occupancy( accdb, used1, max1, post ); + int any_tracked = 0; + for( ulong c=0UL; c class not tracked */ + FD_TEST( post[ c ]==base[ c ] ); + } + /* Meaningful only if at least one class actually tracks reservations. */ + FD_TEST( any_tracked ); + + test_teardown( accdb, fd ); +} + +/* test_sentinel_index_wrap is a regression for issue #543: at the + maximum partition_cnt==8192 the initial write-head sentinel's packed + partition index (partition_cnt) does not fit in the 13-bit index + field and wraps to 0 -- a perfectly valid pool index. An earlier + allocate_next_write detected the first partition switch purely by + "the head's partition index changed away from the sentinel's", which + could spin forever when the freshly-acquired partition reused index 0. + + This test pins two things: + + 1. The wrap is real (documents the root cause): accdb_offset packs the + index in bits 63..51, so 8192<<51 wraps to an index of 0, while the + sentinel's invalidity actually lives in the offset bits + (partition_offset==partition_sz). + + 2. The switch-wait predicate is robust to that wrap. A writer parks in + the wait loop only after its own fetch-and-add returned an offset + strictly past partition_sz; the loop must terminate once the head's + offset drops back to <=partition_sz (a switch resets the offset to + 0), independent of whether the index changed. We assert that the + sentinel's own offset never satisfies the post-overrun predicate + (so a parked writer cannot mistake the pristine sentinel for a + completed switch) yet a switched head always does. + + It also drives a real first-partition overflow at partition_cnt==8192 + end-to-end to confirm the switch path runs to completion (no hang) + and accounts read back correctly. */ +static void +test_sentinel_index_wrap( void ) { + ulong const partition_sz = 1UL<<20; /* arbitrary, only its packing matters here */ + ulong const max_cnt = 1UL<<13; /* 8192 -- the maximum partition_cnt */ + + /* (1) The wrap is real (the root cause). accdb_offset packs the index + into bits 63..51, so the sentinel index (== partition_cnt == 8192) + does not fit in 13 bits and wraps to 0 -- a perfectly valid pool + index. The sentinel's invalidity therefore lives in the OFFSET + bits (partition_offset == partition_sz), not the index. */ + accdb_offset_t sentinel = accdb_offset( max_cnt, partition_sz ); + FD_TEST( packed_partition_idx ( &sentinel )==0UL ); /* wrapped! */ + FD_TEST( packed_partition_offset( &sentinel )==partition_sz ); + + /* (2) The switch-wait loop in allocate_next_write must not rely on the + head's partition index changing away from the sentinel's: a freshly + acquired partition can reuse index 0, colliding with the wrapped + sentinel index, and an index-only check would then spin forever + (the issue #543 deadlock). The fix also breaks when the head's + offset drops back to <= partition_sz (a switch resets it to 0). + Assert both halves of that reasoning. */ + + /* A parked writer reached the wait loop only after its own fetch-and-add + pushed the offset strictly past partition_sz. The pristine sentinel + offset (== partition_sz) must NOT satisfy the post-switch predicate, + or a writer could mistake the un-switched sentinel for a completed + switch. */ + FD_TEST( !(packed_partition_offset( &sentinel ) < partition_sz) ); + FD_TEST( packed_partition_offset( &sentinel )<=partition_sz ); /* boundary, exclusive of < */ + + /* A switched head that happens to reuse the sentinel's (wrapped) index + is indistinguishable by index alone, but its offset is back in range, + so the offset-based half of the predicate detects the switch. */ + accdb_offset_t switched = accdb_offset( 0UL /* pool handed back index 0 */, 0UL ); + FD_TEST( packed_partition_idx ( &switched )==packed_partition_idx( &sentinel ) ); /* index collision */ + FD_TEST( packed_partition_offset( &switched ) < partition_sz ); /* but detectable */ + + /* (3) The constructor accepts the maximum partition_cnt==8192 (the + default), so the wrap above is a reachable configuration, not a + rejected one. */ + ulong fp = fd_accdb_shmem_footprint( 1024UL, 64UL, 8192UL, max_cnt, + TEST_CACHE_FOOTPRINT, TEST_CACHE_MIN_RESERVED, 1UL ); + FD_TEST( fp ); /* 0 would mean partition_cnt==8192 was rejected */ +} + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + FD_LOG_NOTICE(( "test_basic ..." )); + test_basic(); + + FD_LOG_NOTICE(( "test_background_preevict_ignores_uninitialized_tail ..." )); + test_background_preevict_ignores_uninitialized_tail(); + + FD_LOG_NOTICE(( "test_missing_readonly_account_initializes_entry ..." )); + test_missing_readonly_account_initializes_entry(); + + FD_LOG_NOTICE(( "test_fork_basic ..." )); + test_fork_basic(); + + FD_LOG_NOTICE(( "test_root_forks ..." )); + test_root_forks(); + + FD_LOG_NOTICE(( "test_compact ..." )); + test_compact(); + + FD_LOG_NOTICE(( "test_overwrite_same_fork ..." )); + test_overwrite_same_fork(); + + FD_LOG_NOTICE(( "test_multiple_accounts ..." )); + test_multiple_accounts(); + + FD_LOG_NOTICE(( "test_sequential_rooting ..." )); + test_sequential_rooting(); + + FD_LOG_NOTICE(( "test_purge ..." )); + test_purge(); + + FD_LOG_NOTICE(( "test_child_inherits_parent ..." )); + test_child_inherits_parent(); + + FD_LOG_NOTICE(( "test_deep_chain_rooting ..." )); + test_deep_chain_rooting(); + + FD_LOG_NOTICE(( "test_wide_fanout_isolation ..." )); + test_wide_fanout_isolation(); + + FD_LOG_NOTICE(( "test_purge_deep_subtree ..." )); + test_purge_deep_subtree(); + + FD_LOG_NOTICE(( "test_root_tombstones_old_version ..." )); + test_root_tombstones_old_version(); + + FD_LOG_NOTICE(( "test_many_accounts_hash_chains ..." )); + test_many_accounts_hash_chains(); + + FD_LOG_NOTICE(( "test_mainnet_footprint ..." )); + test_mainnet_footprint(); + + FD_LOG_NOTICE(( "test_acquire_b_refund_accounting ..." )); + test_acquire_b_refund_accounting(); + + FD_LOG_NOTICE(( "test_sentinel_index_wrap ..." )); + test_sentinel_index_wrap(); + + FD_LOG_NOTICE(( "success" )); + + fd_halt(); + return 0; +} diff --git a/src/flamenco/accdb/test_accdb_cache.c b/src/flamenco/accdb/test_accdb_cache.c new file mode 100644 index 00000000000..022c69d5208 --- /dev/null +++ b/src/flamenco/accdb/test_accdb_cache.c @@ -0,0 +1,132 @@ +/* Smoke test for fd_accdb_cache_class_cnt. */ + +#include "fd_accdb_cache.h" +#include "../../util/fd_util.h" + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + ulong class_cnt[ FD_ACCDB_CACHE_CLASS_CNT ]; + + /* Test a range of cache sizes. */ + + static const ulong test_gb[] = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 }; + + for( ulong t=0UL; t=640UL ); + } + + /* Verify total memory does not exceed budget. */ + + ulong total = 0UL; + for( ulong c=0UL; c=2500UL ); /* 8K must fit p99 ws + headroom */ + FD_TEST( class_cnt[5]<=16384UL ); /* 128K bounded (~8.8K observed) */ + FD_TEST( class_cnt[6]<=2048UL ); /* 1M bounded (~1.0K observed) */ + FD_TEST( class_cnt[7]<=2048UL ); /* 10M bounded (~0.7K observed) */ + } + + /* Log the allocation. */ + + for( ulong c=0UL; c=fd_ulong_min( pop_max[c], FD_ACCDB_CACHE_LINE_MAX ) ); + ulong mem_mib = class_cnt[c] * fd_accdb_cache_slot_sz[c] / (1UL<<20); + FD_LOG_NOTICE(( " class %lu: %12lu slots %8lu MiB", + c, class_cnt[c], mem_mib )); + total_caps += class_cnt[c] * fd_accdb_cache_slot_sz[c]; + } + FD_TEST( total_caps<=(all_caps_gib+1UL)*(1UL<<30) ); + FD_LOG_NOTICE(( " total: %lu MiB / %lu MiB (%.1f%% used)", + total_caps/(1UL<<20), + (all_caps_gib+1UL)*(1UL<<30)/(1UL<<20), + 100.0*(double)total_caps/ + (double)((all_caps_gib+1UL)*(1UL<<30)) )); + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} diff --git a/src/flamenco/accdb/test_accdb_racesan.c b/src/flamenco/accdb/test_accdb_racesan.c new file mode 100644 index 00000000000..ace6e3e1531 --- /dev/null +++ b/src/flamenco/accdb/test_accdb_racesan.c @@ -0,0 +1,2193 @@ +/* test_accdb_racesan.c deterministically weaves the concurrent accdb + operations to hunt for the live-only bank-hash mismatch. + + The accdb threading model (see fd_accdb.h) is: + + T1 (replay) : attach_child (inline), advance_root/purge (submit + a cmd, deferred to T2), acquire, release. + T2 (background): fd_accdb_background -> background_advance_root / + background_purge / compaction. + T3 (executors) : acquire, release. + + The bank-hash-mismatch mechanism is a reader (acquire) on some fork + pinning an account VERSION that is not actually visible to that fork + -- i.e. a version from a non-ancestor (cancelled sibling) fork, or a + stale version that has been superseded. The visibility predicate in + fd_accdb_acquire_inner (generation<=root_generation || same-fork || + descends_set_test) is the guard, and ASSERTIONS A1/A2/A3 in that + function fire if the chain is mutated under the reader such that a + non-visible version is selected. Those assertions ARE the oracle for + these tests; we additionally check structural metrics. + + The races weave fd_accdb_acquire (T3) against fd_accdb_background + running an advance_root / purge (T2), and against fd_accdb_release + (prepend). Hooks instrumented in fd_accdb.c: + accdb_acquire:post_root_gen (reader snapshotted root_generation) + accdb_acquire:post_next (reader holds candidate + map.next) + accdb_advance:pre_unlink (T2 about to unlink an old version) + accdb_advance:pre_publish_root (T2 about to publish new root) + accdb_advance:post_publish_root + accdb_release:pre_chain_cas (release about to prepend) */ + +#define _GNU_SOURCE + +#include "fd_accdb.h" +#include "fd_accdb_cache.h" +#define FD_ACCDB_NO_FORK_ID +#include "fd_accdb_private.h" +#undef FD_ACCDB_NO_FORK_ID +#include "../../util/fd_util.h" +#include "../../util/racesan/fd_racesan_async.h" +#include "../../util/racesan/fd_racesan_weave.h" + +#include +#include +#include +#include + +#define SENTINEL ((fd_accdb_fork_id_t){ .val = USHORT_MAX }) + +#define ITER_DEFAULT (4096UL) +#define STEP_MAX (100000UL) + +/* Cache footprint for tests. Must cover cache_min_reserved slots of + every size class (class 7 is 10 MiB each). We use cache_min_reserved + =4 here (vs replay's 640) since these tests have only a handful of + joiners and touch a single small account, keeping the one-time + allocation small enough to create per test cheaply. */ +#define TEST_CACHE_MIN_RESERVED (4UL) +#define TEST_CACHE_FOOTPRINT (256UL<<20UL) + +#define FIBER_STACK_MAX (1UL<<21) + +/* Test sizing. Small but enough live slots for a few forks. */ +#define T_MAX_ACCOUNTS (1024UL) +#define T_MAX_LIVE_SLOTS (64UL) +#define T_WRITES_PER_SLOT (8192UL) +#define T_PARTITION_CNT (8192UL) +#define T_PARTITION_SZ (1UL<<30UL) +#define T_JOINER_CNT (8UL) /* ctl + reader + background/writer, with headroom */ + +/* ------------------------------------------------------------------ */ +/* shmem + per-fiber join management */ +/* ------------------------------------------------------------------ */ + +static void * g_shmem_mem; +static fd_accdb_shmem_t * g_shmem; +static int g_fd; + +static fd_accdb_shmem_t * +test_shmem_new_cfg2( ulong cache_fp, + ulong cache_min_reserved, + ulong partition_sz ) { + g_fd = memfd_create( "accdb_racesan", 0 ); + if( FD_UNLIKELY( g_fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + + ulong shmem_fp = fd_accdb_shmem_footprint( T_MAX_ACCOUNTS, T_MAX_LIVE_SLOTS, T_WRITES_PER_SLOT, T_PARTITION_CNT, cache_fp, cache_min_reserved, T_JOINER_CNT ); + FD_TEST( shmem_fp ); + g_shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( g_shmem_mem ); + g_shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( g_shmem_mem, T_MAX_ACCOUNTS, T_MAX_LIVE_SLOTS, + T_WRITES_PER_SLOT, T_PARTITION_CNT, + partition_sz, cache_fp, cache_min_reserved, 0, 42UL, T_JOINER_CNT ) ); + FD_TEST( g_shmem ); + return g_shmem; +} + +static fd_accdb_shmem_t * +test_shmem_new_cfg( ulong cache_fp, + ulong cache_min_reserved ) { + return test_shmem_new_cfg2( cache_fp, cache_min_reserved, T_PARTITION_SZ ); +} + +static fd_accdb_shmem_t * +test_shmem_new( void ) { + return test_shmem_new_cfg( TEST_CACHE_FOOTPRINT, TEST_CACHE_MIN_RESERVED ); +} + +/* Small-partition config for compaction/reclamation tests. A partition + must be at least 10 MiB + header to fit a worst-case account, so the + smallest useful partition is ~12 MiB; with ~4 MiB records three + writes fill+rotate a partition and overwriting one frees >33%, + enqueuing it for compaction. */ +#define T_SMALL_PARTITION_SZ (12UL<<20UL) /* 12 MiB (>= 10 MiB min) */ + +/* Sizing for the compaction/epoch/owner-corruption tests. */ +#define EPOCH_ITER (32UL) /* compaction setup writes ~100 MB/iter; keep modest */ +#define BIG_DATA (4UL<<20) /* 4 MiB: 3 records fill a 12 MiB partition */ + +/* Minimal cache: set the footprint to EXACTLY cache_min_reserved * sum of + all class slot sizes. At that footprint the allocator's phase-1 gives + each class exactly cache_min_reserved slots and phase-2 has zero budget + left to top up — so class 0 has exactly cache_min_reserved slots. With + only a few class-0 slots, a handful of distinct class-0 accounts forces + CLOCK eviction, and re-reading an evicted account cold-loads from the + backing memfd. (Slot sizes mirror fd_accdb_cache_slot_sz in + fd_accdb_cache.c; META_SZ is FD_ACCDB_CACHE_META_SZ.) */ +#define TEST_TINY_CACHE_MIN_RESERVED (8UL) + +static ulong +test_tiny_cache_footprint( void ) { + ulong const data[ FD_ACCDB_CACHE_CLASS_CNT ] = + { 128UL, 512UL, 2048UL, 8192UL, 32768UL, 131072UL, 1048576UL, 10485760UL }; + ulong sum = 0UL; + for( ulong c=0UL; c (LAMP_A,TAG_A); 1 -> (LAMP_B,TAG_B) */ + } overwrite; + + struct { + int charge_busy; + } background; + + struct { + fd_accdb_fork_id_t fork_id; + uchar pubkey[ 32UL ]; + ulong expect_lamports; + uchar expect_owner0; /* expected owner[0] tag */ + ulong expect_data_len; + uchar expect_data_fill; /* expected data byte value */ + } nocache; + + struct { + int steps; /* number of fd_accdb_background calls to issue */ + } compact_loop; + }; +}; +typedef struct fiber fiber_t; + +/* Two self-consistent (lamports, owner-tag) states the overwrite writer + toggles between. LAMP_A is non-zero (live); the owner tag is encoded + in owner[0] so a reader can check (lamports,owner) consistency. We + also exercise the tombstone boundary by including a zero-lamport + state in the dedicated torn-tombstone test. */ +#define LAMP_A (2039280UL) /* SPL-token rent-exempt, like the real acct[32] */ +#define TAG_A (0x11) +#define LAMP_B (5000000UL) +#define TAG_B (0x22) + +static fiber_t g_fiber[ 4 ]; + +/* Mixed into each iteration's weave seed so the same build can sweep many + distinct interleaving schedules across runs (--seed-base N). */ +static ulong g_seed_base = 0UL; + +/* Set when the test was named explicitly on the command line. Used to + gate demonstration tests that intentionally FAIL (contract-violating + repros) so they don't break a default "run all" invocation. */ +static int g_explicit = 0; + +/* acquire fiber: a read-only acquire+release of one account. This is + the T3 reader whose visibility assertions (A1/A2/A3) are the oracle. */ + +static void +fiber_acquire_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->acquire.pubkey }; + int wr[1] = { 0 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->acquire.fork_id, 1UL, pks, wr, acc ); + /* Cold-load / eviction correctness oracle: the bytes the reader sees + must match what was committed for this (key, fork). A torn cold-load + or a wrong cache_try_pin (ABA that slipped the key recheck) would + surface here as a lamports/pubkey mismatch. */ + if( f->acquire.expect_lamports ) { + FD_TEST( acc[0].lamports==f->acquire.expect_lamports ); + FD_TEST( !memcmp( acc[0].pubkey, f->acquire.pubkey, 32UL ) ); + } + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_acquire_expect( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong expect_lamports ) { + fiber->accdb = accdb; + fiber->acquire.fork_id = fork_id; + fiber->acquire.expect_lamports = expect_lamports; + memcpy( fiber->acquire.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_acquire_exec, fiber ); + return fiber->async; +} + +static fd_racesan_async_t * +fiber_acquire( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + return fiber_acquire_expect( fiber, accdb, fork_id, pubkey, 0UL ); +} + +/* release fiber: a writable acquire+commit+release, which prepends a new + acc to the hash chain (the accdb_release:pre_chain_cas hook). */ + +static void +fiber_release_write_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->release_write.pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->release_write.fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = f->release_write.lamports; + acc[0].data_len = 0UL; + memcpy( acc[0].owner, g_zero_owner, 32UL ); + acc[0].commit = 1; + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_release_write( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong lamports ) { + fiber->accdb = accdb; + fiber->release_write.fork_id = fork_id; + fiber->release_write.lamports = lamports; + memcpy( fiber->release_write.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_release_write_exec, fiber ); + return fiber->async; +} + +/* consistent-reader fiber: read-only acquire that asserts the returned + (lamports, owner) form a self-consistent pair the overwrite writer + could have committed. This is the torn-read oracle for the proposed + acct[2]/[3]/[32] mechanism: lamports is read three times in + acquire_inner (STEP 7 tombstone, STEP 7 lamports, STEP 14 tombstone) + and the owner once (STEP 14); if any disagree, we observe a pair the + writer never committed. */ + +static void +fiber_acquire_consistent_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->acquire_consistent.pubkey }; + int wr[1] = { 0 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->acquire_consistent.fork_id, 1UL, pks, wr, acc ); + + ulong lam = acc[0].lamports; + uchar tag = acc[0].owner[0]; + /* Permitted observations: + (LAMP_A, TAG_A), (LAMP_B, TAG_B) -> a committed live state + (0, all-zero owner) -> tombstone reset (lamports==0) + Anything else is a torn read: e.g. lamports=LAMP_A with owner tag + TAG_B, or lamports==0 with a non-zero owner tag, or lamports!=0 with + a zero owner. */ + int ok = ( lam==LAMP_A && tag==TAG_A ) || + ( lam==LAMP_B && tag==TAG_B ) || + ( lam==0UL && tag==0x00 ); + if( FD_UNLIKELY( !ok ) ) { + FD_LOG_ERR(( "accdb torn read: lamports=%lu owner[0]=0x%02x (neither a committed pair nor a clean tombstone)", + lam, (uint)tag )); + } + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_acquire_consistent( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + fiber->accdb = accdb; + fiber->acquire_consistent.fork_id = fork_id; + memcpy( fiber->acquire_consistent.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_acquire_consistent_exec, fiber ); + return fiber->async; +} + +/* overwrite-writer fiber: writable acquire+commit+release on the SAME + (pubkey, fork) the reader uses, committing a self-consistent pair. + This deliberately overlaps a read-only acquire of the same account on + the same fork — which the public API forbids — to probe whether the + acquire path's multiple unsynchronized reads of accmeta->lamports tear + when the selected accmeta is overwritten in place (release STEP 1, + fd_accdb.c:3038). */ + +static void +fiber_overwrite_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->overwrite.pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->overwrite.fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = f->overwrite.state ? LAMP_B : LAMP_A; + acc[0].data_len = 0UL; + memset( acc[0].owner, 0, 32UL ); + acc[0].owner[0] = f->overwrite.state ? TAG_B : TAG_A; + acc[0].commit = 1; + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_overwrite( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + int state ) { + fiber->accdb = accdb; + fiber->overwrite.fork_id = fork_id; + fiber->overwrite.state = state; + memcpy( fiber->overwrite.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_overwrite_exec, fiber ); + return fiber->async; +} + +/* full-size overwrite fiber: a same-fork, SAME-size-class (BIG_DATA) + in-place overwrite of K with a distinct (owner0, data fill). The + in-place commit xchg's K's offset_fork to INVAL then re-publishes, and + rewrites the cache-line owner+data (offset 64+). Used to race a cold + reader's disk-read iovec build (accdb_coldload:pre_iovec): the cold + reader must never scatter a torn/INVAL on-disk record into its owner + field — the offset_fork!=INVAL spin is what guarantees this. */ +static void +fiber_overwrite_full_exec( void * _ctx ) { + fiber_t * f = _ctx; + uchar const * pks[1] = { f->overwrite.pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( f->accdb, f->overwrite.fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = LAMP_B; + acc[0].data_len = BIG_DATA; + memset( acc[0].owner, 0, 32UL ); acc[0].owner[0] = TAG_B; + if( acc[0].data ) memset( acc[0].data, 0xBB, BIG_DATA ); + acc[0].commit = 1; + fd_accdb_release( f->accdb, 1UL, acc ); +} + +static fd_racesan_async_t * +fiber_overwrite_full( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey ) { + fiber->accdb = accdb; + fiber->overwrite.fork_id = fork_id; + memcpy( fiber->overwrite.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_overwrite_full_exec, fiber ); + return fiber->async; +} + +/* background fiber: one unit of T2 work, which executes a pending + advance_root / purge command (where the advance hooks live). */ + +static void +fiber_background_exec( void * _ctx ) { + fiber_t * f = _ctx; + f->background.charge_busy = 0; + fd_accdb_background( f->accdb, &f->background.charge_busy ); +} + +static fd_racesan_async_t * +fiber_background( fiber_t * fiber, + fd_accdb_t * accdb ) { + fiber->accdb = accdb; + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_background_exec, fiber ); + return fiber->async; +} + +/* nocache reader fiber: drives fd_accdb_read_one_nocache, the RO disk + path with the epoch lifecycle (publish epoch -> snapshot offset_fork -> + preadv2 -> reset epoch). This is the reader the epoch-reclamation + protocol must protect against compaction freeing the source partition. + Oracle: the returned (lamports, owner[0], data_len, data bytes) must + match what was committed for this quiescent account — a freed/reused + partition read would surface as zeros or neighbor bytes. */ + +static uchar g_nocache_data[ 10UL<<20 ]; /* shared; fibers run cooperatively */ + +static void +fiber_nocache_exec( void * _ctx ) { + fiber_t * f = _ctx; + ulong lamports = 0UL; int executable = 0; ulong data_len = 0UL; + uchar owner[ 32UL ]; + memset( owner, 0xAB, 32UL ); /* poison so a skipped owner-write is visible */ + fd_accdb_read_one_nocache( f->accdb, f->nocache.fork_id, f->nocache.pubkey, + &lamports, &executable, owner, g_nocache_data, &data_len ); + if( FD_LIKELY( f->nocache.expect_lamports ) ) { + FD_TEST( lamports==f->nocache.expect_lamports ); + FD_TEST( data_len==f->nocache.expect_data_len ); + FD_TEST( owner[0]==f->nocache.expect_owner0 ); + /* spot-check the data bytes: all must equal the committed fill, never + zero/stale from a reclaimed-then-reused partition. */ + for( ulong z=0UL; znocache.expect_data_fill ); + if( data_len ) FD_TEST( g_nocache_data[ data_len-1UL ]==f->nocache.expect_data_fill ); + } else if( f->nocache.expect_owner0==0xFF /*consistency-only sentinel*/ && lamports ) { + /* The account is live; its (owner0, data) MUST be one of the two known + self-consistent committed states (TAG_A/0xAA or TAG_B/0xBB), never a + torn owner from a stale/INVAL cold-load offset. The key (offset + 0..36) is set by the cache line, so a torn read shows up as a + mismatched owner/data with a correct pubkey — exactly here. */ + uchar tag = owner[0]; uchar d0 = data_len? g_nocache_data[0] : 0; + uchar dz = data_len? g_nocache_data[ data_len-1UL ] : 0; + int ok = ( tag==TAG_A && data_len==BIG_DATA && d0==0xAA && dz==0xAA ) || + ( tag==TAG_B && data_len==BIG_DATA && d0==0xBB && dz==0xBB ); + if( FD_UNLIKELY( !ok ) ) { + FD_LOG_ERR(( "coldload torn read: live K owner0=0x%02x data_len=%lu d0=0x%02x dlast=0x%02x (neither committed TAG_A/0xAA nor TAG_B/0xBB)", + (uint)tag, data_len, (uint)d0, (uint)dz )); + } + } +} + +static fd_racesan_async_t * +fiber_nocache( fiber_t * fiber, + fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong expect_lamports, + uchar expect_owner0, + ulong expect_data_len, + uchar expect_data_fill ) { + fiber->accdb = accdb; + fiber->nocache.fork_id = fork_id; + fiber->nocache.expect_lamports = expect_lamports; + fiber->nocache.expect_owner0 = expect_owner0; + fiber->nocache.expect_data_len = expect_data_len; + fiber->nocache.expect_data_fill = expect_data_fill; + memcpy( fiber->nocache.pubkey, pubkey, 32UL ); + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_nocache_exec, fiber ); + return fiber->async; +} + +/* compaction-loop fiber: issues N fd_accdb_background calls, driving + compaction (one record relocated per call per layer) and deferred-free + partition reclamation to completion within a single weave. */ + +static void +fiber_compact_loop_exec( void * _ctx ) { + fiber_t * f = _ctx; + for( int s=0; scompact_loop.steps; s++ ) { + int charge_busy = 0; + fd_accdb_background( f->accdb, &charge_busy ); + } +} + +static fd_racesan_async_t * +fiber_compact_loop( fiber_t * fiber, + fd_accdb_t * accdb, + int steps ) { + fiber->accdb = accdb; + fiber->compact_loop.steps = steps; + fd_racesan_async_new( fiber->async, fiber->stack+FIBER_STACK_MAX, FIBER_STACK_MAX, fiber_compact_loop_exec, fiber ); + return fiber->async; +} + +static void +fiber_done( fiber_t * fiber ) { + fd_racesan_async_delete( fiber->async ); +} + +/* ------------------------------------------------------------------ */ +/* tests */ +/* ------------------------------------------------------------------ */ + +/* LIFECYCLE NOTE. advance_root requires its argument to be a DIRECT + CHILD of the current root. So each test establishes the root ONCE + (attach_child(SENTINEL)) before the loop, and each iteration walks the + trunk forward by exactly one level: from the current root R it attaches + A=child(R) (plus any sibling/child needed for the race), runs the + weave (whose background fiber executes the submitted advance_root(A)), + and ends with A as the new root. Because the weave asserts + !w->rem_cnt, both fibers always run to completion, so by the end of the + iteration the advance has fully executed and A is the root for the next + iteration. Old root slots are deferred-freed and recycle, keeping the + live-slot count bounded across all iterations. */ + +/* test_acquire_vs_advance: the core bank-hash mechanism. + + R(current root) --> A --> A1 [reader's fork] + + key has a rooted version (written on R's trunk) and a NEW version on + A1. We submit advance_root(A) and race the T2 background that + executes it against a reader acquiring key on A1. The reader snapshots + the OLD root_generation, then T2 advances the root to A, recycles R's + slot, and unlinks superseded versions. If the reader selects a version + not visible to A1, ASSERTION A2 fires. */ + +static void +test_acquire_vs_advance( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* reader join */ + fd_accdb_t * jb = join_new(); /* background join */ + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* The weave executed advance_root(A), so A is now the root with A1 + as its only child. Collapse fully onto A1 so the trunk leaves no + dangling forks for the next iteration (keeping live slots bounded). */ + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jb ); + test_shmem_delete(); +} + +/* test_acquire_vs_advance_sibling: reader on the winning trunk while the + losing sibling subtree is removed by advance_root. + + R(current root) --> A --> A1 [reader's fork, winner] + \-> B [loser, DIFFERENT version of key] + + advance_root(A) removes B (and B's version of key). A reader on A1 + must never observe B's version. A2 is the oracle. */ + +static void +test_acquire_vs_advance_sibling( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); + fd_accdb_t * jb = join_new(); + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* weave executed advance_root(A) (dropping sibling B); collapse onto A1 */ + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jb ); + test_shmem_delete(); +} + +/* test_acquire_interior_unlink: force the reader to traverse PAST a chain + node that is concurrently being unlinked, and to SKIP a non-visible + head, so the visibility predicate is evaluated on an interior node + during the unlink window. + + Chain for key (head -> tail), built by writing in tail->head order: + B's v (head, sibling fork, NOT visible to A1 -> skipped by reader) + A's v (interior, visible to A1 -> the version reader must select) + R's v (tail, rooted base, unlinked by advance_root(A)) + + We submit advance_root(A): T2 first removes sibling B (purging B's + head node off the chain) and then unlinks the superseded R version on + the trunk, all while the reader on A1 walks B(skip) -> A(select). The + reader must end on A's version regardless of interleaving; A2 fires if + it ever pins B's (non-visible) or R's (unlinked) version. */ + +static void +test_acquire_interior_unlink( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); + fd_accdb_t * jb = join_new(); + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); /* R's v -> chain tail */ + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jb ); + test_shmem_delete(); +} + +/* test_acquire_vs_release: a reader walks the chain for key as-of A1 + while a concurrent writable release on a DIFFERENT fork (sibling B) + prepends a new acc to the SAME hash chain head. Exercises the + chain-mutated-mid-walk path (A1/A3) and the prepend-vs-walk race. + B is dropped at the end of the iteration by advancing the root to A. */ + +static void +test_acquire_vs_release( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); + fd_accdb_t * jw = join_new(); + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* drop sibling b by advancing onto the A trunk, then collapse to A1 */ + fd_accdb_advance_root( ctl, a ); + drain_background( ctl ); + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jw ); + test_shmem_delete(); +} + +/* test_acquire_vs_purge: a reader on fork A1 while a sibling subtree B is + purged (equivocation handling) by T2. The purge unlinks B's accounts + and recycles B's fork slot. The reader on A1 must be unaffected. */ + +static void +test_acquire_vs_purge( void ) { + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); + fd_accdb_t * jb = join_new(); + + uchar key[ 32UL ]; mk_key( 42UL, key ); + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + seq_write( ctl, root, key, 100UL, owner ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* purge of B has run (background fiber); advance onto A trunk, collapse to A1 */ + fd_accdb_advance_root( ctl, a ); + drain_background( ctl ); + fd_accdb_advance_root( ctl, a1 ); + drain_background( ctl ); + root = a1; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jb ); + test_shmem_delete(); +} + +/* ==================================================================== + Cache-layer races: eviction (CLOCK) and cold loads. + + These use a TINY class-0 cache (test_shmem_new_tiny) so that: + - reading an account whose cache line was evicted forces a + cold_load_acc (preadv2 from the backing memfd), and + - cold-loading / pinning a new line forces a CLOCK eviction of some + other resident line. + + Coverage of the cache hooks: + accdb_try_pin:post_cas (pin ABA window) + accdb_clock_evict:post_claim (CLOCK claimed a victim line) + accdb_evict_clear:post_claim (evictor holds the acc CLAIM bit) + accdb_cold_load:post_claim (cold-loader won the acc CLAIM) + accdb_cold_load:pre_valid (cache_idx published, VALID not yet set) + + Oracle: fiber_acquire_expect asserts the loaded lamports+pubkey match + what was committed, plus the always-on A1/A2/A3 asserts in acquire. */ + +/* test_cold_load_same: two readers concurrently acquire the SAME evicted + account, so both enter cold_load_acc for the same acc and race the + single-claimer CLAIM protocol (one wins post_claim/pre_valid, the other + pins via the freshly published cache_idx). Both must read the correct + bytes. */ + +static void +test_cold_load_same( void ) { + test_shmem_new_tiny(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr0 = join_new(); + fd_accdb_t * jr1 = join_new(); + + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + uchar key[ 32UL ]; mk_key( 1000UL, key ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr0 ); + join_delete( jr1 ); + test_shmem_delete(); +} + +/* test_cold_load_evict: two readers concurrently acquire DIFFERENT + evicted accounts. Each cold_load_acc allocates a cache line, which — + with the tiny cache full — forces a CLOCK eviction that may target the + line the other reader is simultaneously cold-loading into / pinning. + Exercises clock_evict:post_claim vs evict_clear:post_claim vs the other + reader's cold_load and try_pin. */ + +static void +test_cold_load_evict( void ) { + test_shmem_new_tiny(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr0 = join_new(); + fd_accdb_t * jr1 = join_new(); + + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + uchar key0[ 32UL ]; mk_key( 2000UL, key0 ); + uchar key1[ 32UL ]; mk_key( 2001UL, key1 ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr0 ); + join_delete( jr1 ); + test_shmem_delete(); +} + +/* test_pin_vs_evict: one reader acquires a cache-RESIDENT account (hits + cache_try_pin) while a second reader cold-loads a different evicted + account, whose cache-line allocation CLOCK-evicts lines — possibly the + resident line the first reader is racing to pin. Stresses the + try_pin:post_cas ABA recheck against clock_evict:post_claim. */ + +static void +test_pin_vs_evict( void ) { + test_shmem_new_tiny(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr0 = join_new(); + fd_accdb_t * jr1 = join_new(); + + uchar owner[ 32UL ] = { 7, 0 }; + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + uchar hot[ 32UL ]; mk_key( 3000UL, hot ); /* will be cache-resident */ + uchar cold[ 32UL ]; mk_key( 4000UL, cold ); /* will be evicted */ + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr0 ); + join_delete( jr1 ); + test_shmem_delete(); +} + +/* test_read_vs_overwrite: the proposed acct[2]/[3]/[32] torn-read + mechanism. A read-only acquire of key on fork R races a writable + overwrite of the SAME key on the SAME fork R (in-place, same + generation -> fd_accdb.c:3038 mutates accmeta->lamports / cache-line + owner under the reader). acquire_inner reads accmeta->lamports three + separate times (STEP 7 tombstone, STEP 7 lamports, STEP 14 tombstone) + and the owner once; if they straddle the overwrite, the reader + observes a (lamports, owner) pair the writer never committed. + + NOTE: this interleaving is forbidden by the accdb public API (no + concurrent acquire of the same (pubkey, fork) while a writable acquire + is outstanding). The test deliberately violates that contract to + determine whether acquire_inner's multi-read is the PROXIMATE + corruption site — i.e. whether, IF some upstream caller (bundle + coalescing, scheduler) ever lets a same-fork overwrite overlap a read, + the result is the observed lamports/owner corruption. A clean pass + means the multi-read alone cannot tear without the overlap; a failure + pinpoints the snapshot fix locus. */ + +static void +test_read_vs_overwrite( void ) { + /* Demonstration repro that intentionally FAILS (it violates the accdb + API contract on purpose). Skip unless named explicitly so a default + "run all" stays green. See the reframe in ACCDB_BANKHASH_BUG_REPORT.md: + the multi-read tear is a real fragility but NOT the production bug. */ + if( FD_UNLIKELY( !g_explicit ) ) { + FD_LOG_NOTICE(( " (skipped: contract-violating demo; run by name to exercise)" )); + return; + } + test_shmem_new(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* reader */ + fd_accdb_t * jw = join_new(); /* overwriter */ + + uchar key[ 32UL ]; mk_key( 42UL, key ); + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + /* seed a consistent committed state (LAMP_A, TAG_A) */ + { + uchar owner[ 32UL ]; memset( owner, 0, 32UL ); owner[0] = TAG_A; + seq_write( ctl, root, key, LAMP_A, owner ); + } + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jw ); + test_shmem_delete(); +} + +/* =================================================================== + EPOCH RECLAMATION TESTS + + These exercise the writer-free cold path implicated by the + "quiescent account, no concurrent writer" evidence: compaction + relocates a partition's live records and then deferred-frees + + recycles the source partition, while a reader cold-reads one of those + records from disk. The epoch protocol (reader publishes my_epoch on + entry; compaction tags the freed partition with epoch_tag and the + reclamation scan refuses to free while any joiner sits at + epoch<=epoch_tag) is the only thing keeping the reader's snapshotted + offset_fork valid across its preadv2. Oracle: reclamation assertion + H18 (in fd_accdb.c) + the reader's bytes are exactly what was + committed (fiber_nocache). + =================================================================== */ + +/* Fill partition 0 with [K + 2 fillers], rotate to partition 1 with a + 3rd filler, then overwrite one partition-0 filler to free >=30% of it, + enqueuing partition 0 for compaction. K (data filled with K_FILL) + survives in partition 0 and will be relocated as a passenger. */ +static void +epoch_setup_fragment( fd_accdb_t * ctl, + fd_accdb_fork_id_t fork, + uchar const * K, + uchar K_owner0, + uchar K_fill ) { + uchar owner[ 32UL ]; memset( owner, 0, 32UL ); owner[0] = K_owner0; + uchar f0[32], f1[32], f2[32]; + mk_key( 900001UL, f0 ); mk_key( 900002UL, f1 ); mk_key( 900003UL, f2 ); + + /* partition 0: K, filler0, filler1 (~60 KB of 64 KB) */ + seq_write_data( ctl, fork, K, LAMP_A, owner, BIG_DATA, K_fill ); + seq_write_data( ctl, fork, f0, 1UL, NULL, BIG_DATA, 0xF0 ); + seq_write_data( ctl, fork, f1, 1UL, NULL, BIG_DATA, 0xF1 ); + /* this write rotates the head to partition 1 */ + seq_write_data( ctl, fork, f2, 1UL, NULL, BIG_DATA, 0xF2 ); + /* overwrite filler0 on a CHILD fork so it becomes a NEW record (frees + the old partition-0 bytes), crossing the 30% threshold for part 0. + Use the same fork so it's an overwrite-in-place? No — in-place reuses + the slot and does NOT free disk bytes the same way; a fresh-version + write on the same fork frees the prior on-disk record. seq_write_data + on the same key/fork triggers the _overwrite path which xchg's the + old offset to INVAL and frees it (acc_unlink/commit). */ + seq_write_data( ctl, fork, f0, 2UL, NULL, BIG_DATA, 0xF0 ); + + /* Evict K from the cache so the reader takes the COLD disk path (the + epoch-protected preadv2). K is a 10 MiB-class line; the tiny cache + has only a few class-7 slots, so touching several throwaway class-7 + accounts forces K's line out via CLOCK. */ + for( ulong e=0UL; e<24UL; e++ ) { + uchar t[ 32UL ]; mk_key( 800000UL + e, t ); + uchar lam=0; uchar buf[1]; (void)buf; + /* a write churns a class-7 staging line + commits a class-7 line */ + seq_write_data( ctl, fork, t, 1UL, NULL, BIG_DATA, (uchar)(0xE0|e) ); + (void)lam; + } +} + +/* test_nocache_vs_compaction: a reader cold-reads quiescent account K + from disk while compaction relocates partition 0 (K's partition) to + layer 1 and reclaims the source partition. If the epoch protocol has + a hole, the source partition is freed/reused under the reader and the + preadv2 returns zeros/stale bytes -> fiber_nocache oracle fires; or + reclamation frees a partition still pinned -> H18 fires. */ + +/* test_epoch_reclaim_pin: DETERMINISTIC construction of the exact unsafe + window, instead of hoping a random weave hits it. Steps: + + 1. fragment partition 0 so K lives there and part 0 is enqueued. + 2. step the reader fiber until it parks at nocache:pre_preadv2 — at + that point it has PUBLISHED its epoch and SNAPSHOTTED K's (old, + partition-0) offset, but has not yet read. + 3. while the reader is parked, drive compaction to completion: it + relocates K to layer 1, tags partition 0 with epoch_tag >= the + reader's epoch, defers it, and the reclaim pass runs. + 4. ASSERTION H18 must hold: partition 0 must NOT be freed while the + reader is parked at epoch <= epoch_tag. The reclaim epoch gate + defers the free, so H18 (the use-after-free oracle) is satisfied. + 5. finish the reader (its preadv2 reads K's bytes, which under a + correct build are either still in part 0 [not yet freed] — correct + bytes; the fiber_nocache oracle checks them). + + This is the equivalent of progcache's test_inject_at_hook: it removes + the schedule-dependence so the test reliably exercises the protocol. */ + +static void +test_epoch_reclaim_pin( void ) { + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* reader */ + fd_accdb_t * jc = join_new(); /* compaction driver */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + (void)K; + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jc ); + test_shmem_delete(); +} + +/* =================================================================== + COMPACTION RELOCATION TESTS + + The top remaining un-dispositioned suspect (see ACCDB_BANKHASH_BUG_ + REPORT.md 0.6/0.7): background_compact relocates a record + (copy_file_range to a new layer) and CAS-republishes offset_fork from + the snapshotted source offset to the destination. Two races: + + (a) compact relocate vs a concurrent same-fork in-place OVERWRITE of + the same accmeta: the overwrite xchg's offset_fork to INVAL (then a + new offset); the relocation CAS MUST then fail so the stale copy is + discarded and the overwrite wins. Hooks: accdb_compact: + pre_offset_cas and accdb_overwrite:pre_xchg_offset. + + (b) compact relocate vs a concurrent cold READER: the reader may + snapshot the OLD offset before the CAS; the source partition stays + valid (epoch-pinned) so the read is correct regardless. + =================================================================== */ + +/* Read K via a normal acquire and return its observed (lamports, + owner[0]). Single-threaded helper for post-weave verification. */ +static void +seq_read_check( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork, + uchar const * pubkey, + ulong * out_lamports, + uchar * out_owner0 ) { + uchar const * pks[1] = { pubkey }; + int wr[1] = { 0 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( accdb, fork, 1UL, pks, wr, acc ); + *out_lamports = acc[0].lamports; + *out_owner0 = acc[0].owner[0]; + fd_accdb_release( accdb, 1UL, acc ); +} + +#if FD_HAS_RACESAN +extern uchar fd_accdb_dbg_reloc_pubkey[ 32UL ]; +extern ulong fd_accdb_dbg_reloc_dest; +extern ulong fd_accdb_dbg_reloc_cnt; +#endif + +static uchar g_cold_data[ 10UL<<20 ]; + +/* NOTE on the in-place-overwrite-vs-relocation-CAS race (a separate + scenario we explored and could NOT make bite): it SELF-HEALS — an + in-place overwrite leaves offset_fork==INVAL, so even a faulty + unconditional relocation publish to dest_offset is harmless and is + repaired by the overwrite's next persist (eviction write-back). The + genuinely observable, non-self-healing relocation hazard is the + byte-integrity of the relocated copy, which is what the test below + checks. */ + +/* test_compact_reloc_integrity: DETERMINISTIC, fault-validated test of the + compaction RELOCATION byte-integrity — the report's top suspect + (copy_file_range correctness + record_sz from disk meta->size vs the + reader's size from the index). Each iter: + 1. fragment+evict K to disk (owner0=TAG_A, ALL data bytes 0xAA). + 2. drive compaction to COMPLETION, proving (via fd_accdb_dbg_reloc_cnt + and the dbg pubkey) that K was actually relocated to a new layer. + 3. evict K again, then COLD-read it (asserting the read hit disk) and + verify the FULL relocated copy: owner0==TAG_A and EVERY data byte + ==0xAA. A relocation that mis-copies, truncates (record_sz too + small), or over-copies would surface as a wrong/zero data byte. + + This does NOT self-heal (unlike the in-place-overwrite-vs-CAS race, + which leaves offset=INVAL and is repaired by the next persist — see + ACCDB_BANKHASH_BUG_REPORT.md): the relocation publishes a real + dest_offset whose bytes are whatever copy_file_range wrote, and the + cold read dereferences exactly that. */ +static void +test_compact_reloc_integrity( void ) { + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jc = join_new(); /* compaction driver */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + ulong relocated = 0UL; + for( ulong i=0UL; iread_ops; + g_cold_data[0]=0xEE; g_cold_data[ BIG_DATA-1UL ]=0xEE; + fd_accdb_read_one_nocache( ctl, root, Ki, &lamports, &executable, owner, g_cold_data, &data_len ); + int hit_disk = fd_accdb_metrics( ctl )->read_ops > ro0; + + if( FD_LIKELY( hit_disk ) ) { + /* Full byte integrity of the (relocated) on-disk copy. */ + if( FD_UNLIKELY( lamports!=LAMP_A || owner[0]!=TAG_A || data_len!=BIG_DATA ) ) { + FD_LOG_ERR(( "compact-reloc-integrity: K meta wrong after relocation: lamports=%lu owner0=0x%02x data_len=%lu (want LAMP_A=%lu TAG_A=0x%02x len=%lu)", + lamports, (uint)owner[0], data_len, LAMP_A, (uint)TAG_A, (ulong)BIG_DATA )); + } + for( ulong z=0UL; z0UL ); /* compaction must have relocated records */ + FD_LOG_NOTICE(( " test_compact_reloc_integrity: relocations occurred in %lu/%lu iters", relocated, EPOCH_ITER )); + + join_delete( ctl ); + join_delete( jc ); + test_shmem_delete(); +} + +/* test_compact_vs_overwrite: relocate K while a same-fork overwrite of K + commits concurrently. After the weave, K MUST read back as the + overwritten value (LAMP_B/TAG_B) — the newer commit always wins; the + relocation CAS must have failed and discarded the stale copy. A bug + where the relocation CAS wrongly succeeds (clobbering the overwrite's + offset with the stale relocated one) would surface as K reading back + the OLD value (LAMP_A/TAG_A) or a torn/zero owner. */ + +static void +test_compact_vs_overwrite( void ) { + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jw = join_new(); /* overwriter */ + fd_accdb_t * jc = join_new(); /* compaction driver */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* Oracle: the overwrite (newer commit) must have won. */ + ulong lam; uchar o0; + seq_read_check( ctl, root, Ki, &lam, &o0 ); + if( FD_UNLIKELY( !( lam==LAMP_B && o0==TAG_B ) ) ) { + FD_LOG_ERR(( "compact-vs-overwrite: K read back (lamports=%lu owner0=0x%02x), expected the overwrite (LAMP_B=%lu TAG_B=0x%02x) -- relocation CAS clobbered a newer commit?", + lam, (uint)o0, LAMP_B, (uint)TAG_B )); + } + } + + join_delete( ctl ); + join_delete( jw ); + join_delete( jc ); + test_shmem_delete(); +} + +/* test_compact_vs_coldread: relocate K while a cold reader reads K. The + reader may catch the old or new offset; either way the bytes must equal + what was committed (the source partition is epoch-pinned until the + reader exits, so the old offset stays valid). fiber_nocache is the + correctness oracle. */ + +static void +test_compact_vs_coldread( void ) { + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* cold reader */ + fd_accdb_t * jc = join_new(); /* compaction driver */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jc ); + test_shmem_delete(); +} + +/* =================================================================== + OWNER-CORRUPTION TESTS + + The live repro corrupts owner (offset 64) + data while leaving the key + (0..36) intact. Only two operations write starting at the owner field: + + (1) Cold-load disk read (fd_accdb.c ~2640): scatters 32+data bytes from + offset_fork into cache_line->owner. If offset_fork is torn/INVAL/ + stale when the iovec is built, the owner/data come from the wrong + on-disk record while the key (already in the cache line) is intact. + Guard: the offset_fork!=INVAL spin at ~2638. + + (2) Commit owner write (fd_accdb.c ~2961): memcpy(line->owner, + accs[i].owner,32)+data into the resolved target cache line. If that + line was recycled to a different account, it writes a wrong owner. + Guard: ASSERTION F11/F12 (key+gen+refcnt match) at ~2949. + =================================================================== */ + +/* test_coldload_vs_overwrite: a cold reader of K races a same-fork + SAME-size in-place overwrite of K (which transitions K's offset_fork + through INVAL and rewrites the cache-line owner+data). Under a correct + build the cold reader's offset_fork!=INVAL spin keeps its disk read + consistent; the reader's returned (owner, data) must be a committed + state (TAG_A/0xAA or TAG_B/0xBB) and never a torn owner. */ +static void +test_coldload_vs_overwrite( void ) { + /* Contract-violating demo (concurrent read + same-fork overwrite of the + same account): exercises the cold-load owner-read site and may trip an + in-tree guard (C7) by design. Opt-in only — see test_read_vs_overwrite. */ + if( FD_UNLIKELY( !g_explicit ) ) { FD_LOG_NOTICE(( " (skipped: contract-violating demo; run by name)" )); return; } + test_shmem_new_smallpart(); + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jr = join_new(); /* cold reader */ + fd_accdb_t * jw = join_new(); /* overwriter */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + + for( ulong i=0UL; irem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* Post-weave: K must be the overwrite value, internally consistent. */ + ulong lam; uchar o0; + seq_read_check( ctl, root, Ki, &lam, &o0 ); + if( FD_UNLIKELY( !( lam==LAMP_B && o0==TAG_B ) ) ) { + FD_LOG_ERR(( "coldload-vs-overwrite: K=(lamports=%lu owner0=0x%02x), expected overwrite (LAMP_B=%lu TAG_B=0x%02x)", + lam, (uint)o0, LAMP_B, (uint)TAG_B )); + } + } + + join_delete( ctl ); + join_delete( jr ); + join_delete( jw ); + test_shmem_delete(); +} + +/* test_commit_owner_vs_reader: the commit owner-write site (fd_accdb.c + ~2961, hook accdb_commit:pre_owner_write). A writer commits K in place + (rewriting line->owner at offset 64+) while a concurrent reader acquires + K read-only on a child fork. The in-tree F11/F12 assertion guards that + the commit's target line still holds K (key+gen) and is pinned — so a + commit can never write a wrong owner into a line a reader is using. + This test drives the interleaving; F11/F12 (+ the reader's own A1/B4/C7 + asserts) are the oracle. Passes because the refcnt pin makes recycling + the target line under a live commit impossible — i.e. this owner-write + site is safe by construction (see report). */ +static void +test_commit_owner_vs_reader( void ) { + /* Contract-violating demo (concurrent read + same-fork overwrite): drives + the commit owner-write site (~2961) and trips an in-tree guard (C7 / + F11-F12) by design, proving the site is protected. Opt-in only. */ + if( FD_UNLIKELY( !g_explicit ) ) { FD_LOG_NOTICE(( " (skipped: contract-violating demo; run by name)" )); return; } + test_shmem_new(); /* default cache; small data so the commit hits the + non-class-7 owner-write at ~2961 (class 7 skips it) */ + fd_accdb_t * ctl = join_new(); + fd_accdb_t * jw = join_new(); /* committer (owner write) */ + fd_accdb_t * jr = join_new(); /* reader */ + + fd_accdb_fork_id_t root = fd_accdb_attach_child( ctl, SENTINEL ); + uchar oa[ 32UL ]; memset( oa, 0, 32UL ); oa[0] = TAG_A; + + uchar K[ 32UL ]; mk_key( 333UL, K ); + seq_write( ctl, root, K, LAMP_A, oa ); /* data_len 0 -> class 0 */ + + for( ulong i=0UL; i hits the 2961 + owner memcpy); reader reads K on the same fork. Owner must always + read as a committed tag (TAG_A or TAG_B), never torn — F11/F12 is + accdb's own guard at the commit site, the reader's A1/B4 here too. */ + fd_racesan_weave_t w[1]; + fd_racesan_weave_new( w ); + fd_racesan_weave_add( w, fiber_overwrite( &g_fiber[0], jw, root, K, (int)(i&1UL) ) ); + fd_racesan_weave_add( w, fiber_acquire( &g_fiber[1], jr, root, K ) ); + + fd_racesan_weave_exec_rand( w, fd_ulong_hash( (i*0xA24BAED4UL) ^ g_seed_base ), STEP_MAX ); + FD_TEST( !w->rem_cnt ); + + fd_racesan_weave_delete( w ); + fiber_done( &g_fiber[0] ); + fiber_done( &g_fiber[1] ); + + /* post-weave: K's owner must be one of the two committed tags. */ + ulong lam; uchar o0; + seq_read_check( ctl, root, K, &lam, &o0 ); + if( FD_UNLIKELY( !( o0==TAG_A || o0==TAG_B ) ) ) + FD_LOG_ERR(( "commit-owner: K owner0=0x%02x is neither TAG_A nor TAG_B (torn owner write)", (uint)o0 )); + } + + join_delete( ctl ); + join_delete( jw ); + join_delete( jr ); + test_shmem_delete(); +} + +/* ------------------------------------------------------------------ */ + +/* ------------------------------------------------------------------ */ +/* Tests ported from the tombstone-orphan / EBR-poison branch */ +/* (HEAD harness: test_setup / test_join_extra / write_acc). */ +/* ------------------------------------------------------------------ */ + +#define HEAD_TEST_CACHE_FOOTPRINT (16UL<<30UL) + +static fd_accdb_shmem_t * test_shmem_mem; + +static fd_accdb_shmem_t * test_shmem; /* shared shmem, for extra joins */ +static int test_fd; /* shared backing fd, for extra joins */ +static ulong test_max_live_slots; + +static fd_accdb_t * +test_setup( int * out_fd, + ulong max_accounts, + ulong max_live_slots, + ulong max_account_writes_per_slot, + ulong partition_cnt, + ulong partition_sz ) { + int fd = memfd_create( "accdb_racesan", 0 ); + if( FD_UNLIKELY( fd<0 ) ) FD_LOG_ERR(( "memfd_create failed" )); + *out_fd = fd; + test_fd = fd; + test_max_live_slots = max_live_slots; + + /* joiner_cnt=2: the orphan/poison tests model TWO concurrent tiles (a + reader "D" holding a pin on one handle while a committer/advance_root + drives the other), so the shmem must admit a second joiner with its + own epoch slot. */ + ulong cache_fp = HEAD_TEST_CACHE_FOOTPRINT; + ulong shmem_fp = fd_accdb_shmem_footprint( max_accounts, max_live_slots, max_account_writes_per_slot, partition_cnt, cache_fp, 640UL, 2UL ); + FD_TEST( shmem_fp ); + void * shmem_mem = aligned_alloc( fd_accdb_shmem_align(), shmem_fp ); + FD_TEST( shmem_mem ); + fd_accdb_shmem_t * shmem = fd_accdb_shmem_join( + fd_accdb_shmem_new( shmem_mem, max_accounts, max_live_slots, + max_account_writes_per_slot, partition_cnt, + partition_sz, cache_fp, 640UL, 0, 42UL, 2UL ) ); + FD_TEST( shmem ); + test_shmem_mem = shmem_mem; + test_shmem = shmem; + + ulong accdb_fp = fd_accdb_footprint( max_live_slots ); + FD_TEST( accdb_fp ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, shmem, fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +/* test_join_extra creates a SECOND accdb handle on the same shmem (its own + joiner epoch slot), modelling a separate exec tile. Used so a reader + can hold an acquire bracket on one handle while the main handle commits + / advances root — mirroring production, where the one-bracket-per-handle + invariant holds because each tile has its own handle. */ +static fd_accdb_t * +test_join_extra( void ) { + ulong accdb_fp = fd_accdb_footprint( test_max_live_slots ); + void * accdb_mem = aligned_alloc( fd_accdb_align(), accdb_fp ); + FD_TEST( accdb_mem ); + fd_accdb_t * accdb = fd_accdb_join( fd_accdb_new( accdb_mem, test_shmem, test_fd, 0UL, NULL ) ); + FD_TEST( accdb ); + return accdb; +} + +static void +test_teardown( fd_accdb_t * accdb, + int fd ) { + free( test_shmem_mem ); + free( accdb ); + close( fd ); +} + +/* drain_background_n drives the background tile until it reports no more + work (charge_busy stays 0) or a bounded number of iterations elapses. + Each call performs at most one unit of work (advance_root, purge, or a + pre-eviction sweep), so several calls are needed to flush a queued + command and then run pre-eviction. */ +static void +drain_background_n( fd_accdb_t * accdb, + ulong n ) { + for( ulong i=0UL; iEVICT_SENTINEL), suspendable at the + racesan hook "clock_evict:post_sentinel". Returns the captured evicted + acc_idx. */ +uint fd_accdb_debug_clock_evict_line( fd_accdb_t * accdb, ulong size_class, ulong line_idx ); + +static void +write_acc( fd_accdb_t * accdb, + fd_accdb_fork_id_t fork_id, + uchar const * pubkey, + ulong lamports, + uchar const * owner, + uchar const * data, + ulong data_len ) { + uchar const * pks[1] = { pubkey }; + int wr[1] = { 1 }; + fd_acc_t acc[1]; + memset( acc, 0, sizeof(acc) ); + fd_accdb_acquire( accdb, fork_id, 1UL, pks, wr, acc ); + acc[0].lamports = lamports; + acc[0].data_len = data_len; + memcpy( acc[0].owner, owner, 32UL ); + if( data_len && data ) memcpy( acc[0].data, data, data_len ); + acc[0].commit = 1; + fd_accdb_release( accdb, 1UL, acc ); +} + +static void +test_tombstone_orphan_ebr_poison( void ) { + int fd; + /* Small pools so the recycled accmeta slot is reused quickly and the + cache pressure for pre-eviction is easy to trigger. */ + fd_accdb_t * accdb = test_setup( &fd, 256UL, 16UL, 1024UL, 1024UL, 1UL<<30UL ); + /* Separate handle for the "D reader" tile so its long-held acquire + bracket does not collide with the committer/advance_root bracket on + the main handle (one bracket per handle, as in production). */ + fd_accdb_t * accdb_d = test_join_extra(); + + uchar pubkey_P[ 32 ] = { 'P', 0 }; + uchar pubkey_B[ 32 ] = { 'B', 0 }; + uchar owner_P [ 32 ] = { 0xAA, 0 }; + uchar owner_B [ 32 ] = { 0xBB, 0 }; + + /* Fork tree: root0 -> F -> D + advance_root(F) requires F be a direct child of the current root. */ + fd_accdb_fork_id_t root0 = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t F = fd_accdb_attach_child( accdb, root0 ); + fd_accdb_fork_id_t D = fd_accdb_attach_child( accdb, F ); + + /* P open on root0. */ + write_acc( accdb, root0, pubkey_P, 100UL, owner_P, NULL, 0UL ); + + /* P closed (tombstone) on F. */ + write_acc( accdb, F, pubkey_P, 0UL, owner_P, NULL, 0UL ); + + /* D writably re-acquires P (the tombstone) and HOLDS the pin. After + this returns, D's epoch reads ULONG_MAX but the cache line stays + pinned (refcnt=1). */ + uchar const * pks_P[1] = { pubkey_P }; + int wr[1] = { 1 }; + fd_acc_t acc_D[1]; + memset( acc_D, 0, sizeof(acc_D) ); + fd_accdb_acquire( accdb_d, D, 1UL, pks_P, wr, acc_D ); + /* The re-acquire sees a closed account. */ + FD_TEST( acc_D[0].lamports==0UL ); + + /* Advance root to F. background_advance_root tombstone-unlinks F's + new_acc; the reclaim CAS fails under D's pin -> orphaned line; the + accmeta slot is deferred for release (deferred_acc_append). */ + fd_accdb_advance_root( accdb, F ); + drain_background_n( accdb, 4UL ); /* run the queued advance_root */ + + /* Advance root again (to D). drain_deferred_frees runs at the START of + background_advance_root; D's published epoch reads ULONG_MAX (D's + acquire returned), so wait_for_epoch_drain treats it as drained and + releases the orphaned accmeta slot back to acc_pool -- WHILE the + orphaned line still references it. */ + fd_accdb_advance_root( accdb, D ); + drain_background_n( accdb, 4UL ); + + /* Commit fresh accounts to consume the freed accmeta slots. The drain + released the orphaned slot back to the pool, so one of these fresh + accounts is handed the orphaned line's acc_idx and becomes the + poisoned victim. We commit two because the freed chain has two + slots (P's open + P's tombstone versions); the orphaned line aliases + the tombstone slot, which is the second one handed out. */ + write_acc( accdb, D, pubkey_B, 200UL, owner_B, NULL, 0UL ); + uchar pubkey_B2[ 32 ] = { 'C', 0 }; + uchar owner_B2 [ 32 ] = { 0xCC, 0 }; + write_acc( accdb, D, pubkey_B2, 300UL, owner_B2, NULL, 0UL ); + + /* Flush the recycled victims to disk WHILE D still pins the orphaned + line. The orphan (refcnt=1) is skipped by pre-eviction; the victims' + own correct cache lines (refcnt=0) are evicted and written back + correctly, so each victim's accmeta now points at a correct on-disk + record and has NO resident cache line. This models the mainnet + signature: the victim is "ancient/untouched" (cold, disk-only) by the + time the orphan is finally written back. */ + fd_accdb_debug_force_preevict( accdb ); + + /* D releases its pin (orphan refcnt -> 0). */ + fd_accdb_release( accdb_d, 1UL, acc_D ); + + /* Now pre-eviction writes the orphaned dirty line back to disk: + pubkey=victim (from the recycled accmeta) + owner=P (from the + orphaned line), and republishes the victim accmeta's offset_fork to + that poison record. There is no resident victim line left to correct + it afterward. */ + fd_accdb_debug_force_preevict( accdb ); + + /* Cold-load each victim from disk. If the poison fired, the victim + that aliased the orphaned slot reads back P's owner. */ + uchar const * victims[2] = { pubkey_B, pubkey_B2 }; + uchar const * vowner [2] = { owner_B, owner_B2 }; + int poisoned = 0; + for( int v=0; v<2; v++ ) { + uchar got_owner[ 32 ]; + uchar const * pks_v[1] = { victims[v] }; + int rd[1] = { 0 }; + fd_acc_t acc_v[1]; + memset( acc_v, 0, sizeof(acc_v) ); + fd_accdb_acquire( accdb, D, 1UL, pks_v, rd, acc_v ); + memcpy( got_owner, acc_v[0].owner, 32UL ); + fd_accdb_release( accdb, 1UL, acc_v ); + FD_LOG_NOTICE(( "victim %d pk0=%02x read owner0=%02x (expected %02x)", + v, victims[v][0], got_owner[0], vowner[v][0] )); + if( !memcmp( got_owner, owner_P, 32UL ) ) { + FD_LOG_WARNING(( "POISON: victim pk0=%02x read back P's owner (wrong-owner-valid-key)", victims[v][0] )); + poisoned = 1; + } else { + FD_TEST( !memcmp( got_owner, vowner[v], 32UL ) ); + } + } + if( poisoned ) { + FD_LOG_ERR(( "POISON CONFIRMED: tombstone-orphan / EBR-leak / writeback poison reproduced" )); + } + + free( accdb_d ); + test_teardown( accdb, fd ); +} + +/* ------------------------------------------------------------------ */ +/* SENTINEL case: acc_unlink observes a line already claimed for eviction */ +/* ------------------------------------------------------------------ */ + +/* Fiber context: evict (+ write back) one specific cache line, suspending + at clock_evict:post_sentinel while it holds EVICT_SENTINEL. */ +#define EVICT_FIBER_STACK_SZ (1UL<<21) +struct evict_fiber { + fd_racesan_async_t async[1]; + fd_accdb_t * accdb; + ulong size_class; + ulong line_idx; +}; +typedef struct evict_fiber evict_fiber_t; + +static void +evict_fiber_exec( void * _ctx ) { + evict_fiber_t * f = _ctx; + fd_accdb_debug_clock_evict_line( f->accdb, f->size_class, f->line_idx ); +} + +/* test_sentinel_unlink_no_poison proves the acc_unlink EVICT_SENTINEL + branch (the "do nothing" else) is correct. + + Schedule (single thread, one fiber): + 1. P open on root, closed (tombstone) on F, with P's tombstone line + resident + dirty. + 2. Fiber E begins evicting P's line: it CASes refcnt 0->EVICT_SENTINEL + and SUSPENDS at clock_evict:post_sentinel, BEFORE clearing + accmeta->cache_idx — so the accmeta still points at the line. + 3. Main thread runs advance_root(F): background_advance_root's + tombstone self-unlink calls acc_unlink(P). Its reclaim CAS finds + refcnt==EVICT_SENTINEL and takes the do-nothing else branch + (it must NOT sever / touch the line E owns). + 4. Fiber E resumes and finishes the writeback of P's record. + 5. Oracle: the on-disk record E wrote names P with P's own owner — the + slot was never recycled out from under E, so no pubkey=NEW/owner=OLD + poison. (In production the evictor's held EBR epoch is what blocks + the slot recycle; the single-threaded schedule here reproduces the + same ordering and shows the outcome is a correct, non-poison + writeback.) */ +static void +test_sentinel_unlink_no_poison( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 256UL, 16UL, 1024UL, 1024UL, 1UL<<30UL ); + + uchar pubkey_P[ 32 ] = { 'P', 0 }; + uchar owner_P [ 32 ] = { 0xAA, 0 }; + + fd_accdb_fork_id_t root0 = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t F = fd_accdb_attach_child( accdb, root0 ); + + /* P open on root0, then closed (tombstone) on F. The close commit + leaves P's tombstone version resident + dirty (persisted==0). */ + write_acc( accdb, root0, pubkey_P, 100UL, owner_P, NULL, 0UL ); + write_acc( accdb, F, pubkey_P, 0UL, owner_P, NULL, 0UL ); + + /* Locate P's resident tombstone line. */ + ulong cls, idx; + FD_TEST( fd_accdb_debug_find_line( accdb, pubkey_P, &cls, &idx ) ); + + /* Fiber E: claim P's line for eviction and suspend holding the + sentinel, before it clears the accmeta back-reference. */ + static evict_fiber_t e[1]; + e->accdb = accdb; + e->size_class = cls; + e->line_idx = idx; + void * e_stack = fd_racesan_stack_create( EVICT_FIBER_STACK_SZ ); + fd_racesan_async_new( e->async, e_stack, EVICT_FIBER_STACK_SZ, evict_fiber_exec, e ); + int r = fd_racesan_async_step_until( e->async, "clock_evict:post_sentinel", 100000UL ); + FD_TEST( r==FD_RACESAN_ASYNC_RET_HOOK ); + + /* Main thread: advance_root(F) -> acc_unlink(P) observes the sentinel + and must take the do-nothing else branch (no crash, no sever). */ + fd_accdb_advance_root( accdb, F ); + drain_background_n( accdb, 4UL ); + + /* Resume E: finish the writeback of P's record. */ + for(;;) { + r = fd_racesan_async_step( e->async ); + if( r==FD_RACESAN_ASYNC_RET_EXIT ) break; + FD_TEST( r==FD_RACESAN_ASYNC_RET_HOOK ); + } + fd_racesan_async_delete( e->async ); + fd_racesan_stack_destroy( e_stack, EVICT_FIBER_STACK_SZ ); + + /* Oracle: read P back. P is a tombstone (lamports==0), so acquire + zeroes the owner regardless; the meaningful check is that the on-disk + record E synthesized still names P (not a recycled foreign account). + Read it via a fresh cold load and assert no poison: a non-tombstone + foreign account would surface here as lamports!=0 with a foreign + owner. P must read back as closed. */ + uchar const * pks_P[1] = { pubkey_P }; + int rd[1] = { 0 }; + fd_acc_t acc_P[1]; + memset( acc_P, 0, sizeof(acc_P) ); + fd_accdb_acquire( accdb, F, 1UL, pks_P, rd, acc_P ); + FD_LOG_NOTICE(( "P read back lamports=%lu (expected 0, tombstone)", acc_P[0].lamports )); + FD_TEST( acc_P[0].lamports==0UL ); + fd_accdb_release( accdb, 1UL, acc_P ); + + test_teardown( accdb, fd ); +} + +/* ------------------------------------------------------------------ */ +/* STEP-14 case: acc_unlink must not strand a reader pinned mid-acquire */ +/* ------------------------------------------------------------------ */ + +/* Fiber context: read-acquire P on a fork, cache-hitting (and pinning) + P's resident line. Suspends at "cache_try_pin:pinned" (STEP 3 of + fd_accdb_acquire_inner) holding the pin, then runs to completion + through STEP 13/14/15. */ +#define READ_FIBER_STACK_SZ (1UL<<21) +struct read_fiber { + fd_racesan_async_t async[1]; + fd_accdb_t * accdb; + fd_accdb_fork_id_t fork_id; + uchar const * pubkey; + fd_acc_t acc[1]; +}; +typedef struct read_fiber read_fiber_t; + +static void +read_fiber_exec( void * _ctx ) { + read_fiber_t * f = _ctx; + uchar const * pks[1] = { f->pubkey }; + int wr[1] = { 1 }; + memset( f->acc, 0, sizeof(f->acc) ); + fd_accdb_acquire( f->accdb, f->fork_id, 1UL, pks, wr, f->acc ); + fd_accdb_release( f->accdb, 1UL, f->acc ); +} + +/* test_step14_orphan_no_hang proves the acc_unlink pinned-reader branch + does NOT strand a reader that pinned the line mid-acquire. + + Regression for the hang introduced when acc_unlink severed + line->acc_idx to UINT_MAX: that value is the cold-load "still loading" + sentinel, and acquire_inner STEP-14 spins `while(acc_idx==UINT_MAX)` + forever for a line nobody will ever re-publish. + + Schedule (single thread, one fiber): + 1. P open on root, closed (tombstone) on F, line resident + dirty. + 2. Fiber R writably re-acquires P; at STEP 3 it cache-hits and PINS + P's resident line (refcnt 0->1) and SUSPENDS at + "cache_try_pin:pinned" — i.e. between STEP 3 and STEP 14. + 3. Main thread runs advance_root(F): acc_unlink(P)'s reclaim CAS + fails under R's pin and takes the pinned-reader branch, which must + neutralize the writeback WITHOUT severing acc_idx. + 4. Fiber R resumes. STEP 14 must observe acc_idx!=UINT_MAX and + return promptly; the fiber EXITS. With the buggy sever, STEP 14 + spins forever (no hook inside the spin) and this never returns — + a hang, caught by the test timeout. */ +static void +test_step14_orphan_no_hang( void ) { + int fd; + fd_accdb_t * accdb = test_setup( &fd, 256UL, 16UL, 1024UL, 1024UL, 1UL<<30UL ); + + uchar pubkey_P[ 32 ] = { 'P', 0 }; + uchar owner_P [ 32 ] = { 0xAA, 0 }; + + fd_accdb_fork_id_t root0 = fd_accdb_attach_child( accdb, (fd_accdb_fork_id_t){ .val = USHORT_MAX } ); + fd_accdb_fork_id_t F = fd_accdb_attach_child( accdb, root0 ); + + /* P open on root0, closed (tombstone) on F; tombstone line resident + + dirty (persisted==0). */ + write_acc( accdb, root0, pubkey_P, 100UL, owner_P, NULL, 0UL ); + write_acc( accdb, F, pubkey_P, 0UL, owner_P, NULL, 0UL ); + + /* Fiber R: writably re-acquire P (cache hit), pin the line, suspend at + STEP 3's pin hook holding refcnt=1. */ + static read_fiber_t rf[1]; + rf->accdb = accdb; + rf->fork_id = F; + rf->pubkey = pubkey_P; + void * rf_stack = fd_racesan_stack_create( READ_FIBER_STACK_SZ ); + fd_racesan_async_new( rf->async, rf_stack, READ_FIBER_STACK_SZ, read_fiber_exec, rf ); + int rc = fd_racesan_async_step_until( rf->async, "cache_try_pin:pinned", 100000UL ); + FD_TEST( rc==FD_RACESAN_ASYNC_RET_HOOK ); + + /* Main thread: advance_root(F) -> acc_unlink(P) sees R's pin and takes + the pinned-reader branch (must not sever acc_idx). */ + fd_accdb_advance_root( accdb, F ); + drain_background_n( accdb, 4UL ); + + /* Resume R to completion. If STEP-14 was stranded by an acc_idx sever, + this loop never terminates (the spin has no hook to yield on) and the + test hangs — the regression signal. With the persisted-only fix R + exits promptly. */ + for(;;) { + rc = fd_racesan_async_step( rf->async ); + if( rc==FD_RACESAN_ASYNC_RET_EXIT ) break; + FD_TEST( rc==FD_RACESAN_ASYNC_RET_HOOK ); + } + fd_racesan_async_delete( rf->async ); + fd_racesan_stack_destroy( rf_stack, READ_FIBER_STACK_SZ ); + + FD_LOG_NOTICE(( "STEP-14 reader resumed without hang" )); + + test_teardown( accdb, fd ); +} + +struct test_case { char const * name; void (*fn)( void ); }; + +int +main( int argc, + char ** argv ) { + fd_boot( &argc, &argv ); + + g_seed_base = fd_env_strip_cmdline_ulong( &argc, &argv, "--seed-base", NULL, 0UL ); + g_explicit = (argc>1); /* any test named on the command line */ + +# define TEST( name ) { #name, name } + struct test_case cases[] = { + TEST( test_acquire_vs_advance ), + TEST( test_acquire_vs_advance_sibling ), + TEST( test_acquire_interior_unlink ), + TEST( test_acquire_vs_release ), + TEST( test_acquire_vs_purge ), + TEST( test_cold_load_same ), + TEST( test_cold_load_evict ), + TEST( test_pin_vs_evict ), + TEST( test_read_vs_overwrite ), + TEST( test_epoch_reclaim_pin ), + TEST( test_nocache_vs_compaction ), + TEST( test_compact_reloc_integrity ), + TEST( test_compact_vs_overwrite ), + TEST( test_compact_vs_coldread ), + TEST( test_coldload_vs_overwrite ), + TEST( test_commit_owner_vs_reader ), + TEST( test_tombstone_orphan_ebr_poison ), + TEST( test_sentinel_unlink_no_poison ), + TEST( test_step14_orphan_no_hang ), + {0} + }; +# undef TEST + + for( struct test_case * tc = cases; tc->name; tc++ ) { + int run = 1; + if( argc>1 ) { + run = 0; + for( int a=1; aname ) ) run = 1; + } + if( run ) { + FD_LOG_NOTICE(( "Running %s", tc->name )); + tc->fn(); + } + } + + FD_LOG_NOTICE(( "pass" )); + fd_halt(); + return 0; +} From 02f0204426b3d2ce0743f5341b0bd7d28247eba5 Mon Sep 17 00:00:00 2001 From: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> Date: Wed, 3 Jun 2026 16:20:26 +0000 Subject: [PATCH 27/30] forest: fix test --- src/discof/forest/Local.mk | 1 + src/discof/forest/test_forest.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/discof/forest/Local.mk b/src/discof/forest/Local.mk index bc8f3e99f5f..0737a5ae3ec 100644 --- a/src/discof/forest/Local.mk +++ b/src/discof/forest/Local.mk @@ -1,4 +1,5 @@ $(call add-objs,fd_forest,fd_discof) ifdef FD_HAS_HOSTED $(call make-unit-test,test_forest,test_forest,fd_discof fd_disco fd_flamenco fd_tango fd_ballet fd_util) +$(call run-unit-test,test_forest) endif diff --git a/src/discof/forest/test_forest.c b/src/discof/forest/test_forest.c index 653f84c6146..abfe13b9f83 100644 --- a/src/discof/forest/test_forest.c +++ b/src/discof/forest/test_forest.c @@ -1565,7 +1565,7 @@ test_eqvoc_blk_wrong_parent( fd_wksp_t * wksp ) { FD_TEST( !fd_forest_verify( forest ) ); fd_forest_fec_insert( forest, 3, 2, 63, 32, 1, 0, &mr_3_32_, &mr_3_0_ ); - FD_TEST( fd_forest_fec_chain_verify( forest, fd_forest_query( forest, 3 ), &mr_3_32_ ) ); + FD_TEST( !fd_forest_fec_chain_verify( forest, fd_forest_query( forest, 3 ), &mr_3_32_ ) ); FD_TEST( fd_forest_merkle_last_incorrect_idx( fd_forest_query( forest, 3 ) ) == 0UL ); } @@ -2132,6 +2132,7 @@ main( int argc, char ** argv ) { test_fec_insert_reject_oob_after_verify( wksp ); test_fec_insert_dup_confirm_larger_complete_idx( wksp ); + FD_LOG_NOTICE(( "pass" )); fd_halt(); return 0; } From 47f52a5a5a0377135d73926e49fbf84afb6746f2 Mon Sep 17 00:00:00 2001 From: Michael McGee Date: Thu, 4 Jun 2026 23:27:11 +0000 Subject: [PATCH 28/30] Revert "Fine-grained memory protection for txn execution" This reverts commit 04dd4b4a072057dae0b4e68e342bb443e88996e2. --- src/discof/execrp/fd_execrp_tile.c | 63 +--------------------------- src/discof/execrp/test_execrp_tile.c | 1 - 2 files changed, 1 insertion(+), 63 deletions(-) diff --git a/src/discof/execrp/fd_execrp_tile.c b/src/discof/execrp/fd_execrp_tile.c index 5fabb5a84ea..cfbb4dd227e 100644 --- a/src/discof/execrp/fd_execrp_tile.c +++ b/src/discof/execrp/fd_execrp_tile.c @@ -15,10 +15,7 @@ #include "../../flamenco/progcache/fd_progcache_user.h" #include "../../flamenco/log_collector/fd_log_collector_base.h" #include "../../disco/metrics/fd_metrics.h" -#include "../../util/sandbox/fd_pkeys.h" -#include "../../util/sandbox/fd_sandbox.h" #include -#include #include "generated/fd_execrp_tile_seccomp.h" /* The exec tile is responsible for executing single transactions. The @@ -38,9 +35,7 @@ typedef struct link_ctx { } link_ctx_t; struct fd_execrp_tile { - ulong tile_idx; - - int funk_pkey; /* memory protection key, -1 if unsupported */ + ulong tile_idx; /* link-related data structures. */ link_ctx_t replay_in[ 1 ]; @@ -203,23 +198,6 @@ publish_txn_finalized_msg( fd_execrp_tile_t * ctx, ctx->execrp_replay_out->chunk = fd_dcache_compact_next( ctx->execrp_replay_out->chunk, sizeof(*msg), ctx->execrp_replay_out->chunk0, ctx->execrp_replay_out->wmark ); } -/* funk_mprotect makes the funk wksp read-only / writable - (cheaply, using userland protection keys) */ - -static inline void -funk_mprotect( fd_execrp_tile_t * ctx, - int writable ) { - (void)ctx; (void)writable; -#if defined(__linux__) && defined(__x86_64__) - if( FD_LIKELY( ctx->funk_pkey>=0 ) ) { - fd_x86_pkey_update( ctx->funk_pkey, 0, !writable ); - } -#endif -} - -static inline void funk_mprotect_readonly( fd_execrp_tile_t * ctx ) { funk_mprotect( ctx, 0 ); } -static inline void funk_mprotect_writable( fd_execrp_tile_t * ctx ) { funk_mprotect( ctx, 1 ); } - static inline int returnable_frag( fd_execrp_tile_t * ctx, ulong in_idx, @@ -258,9 +236,7 @@ returnable_frag( fd_execrp_tile_t * ctx, ctx->metrics.txn_result[ fd_execle_err_from_runtime_err( ctx->txn_out.err.txn_err ) ]++; if( FD_LIKELY( ctx->txn_out.err.is_committable ) ) { - funk_mprotect_writable( ctx ); fd_runtime_commit_txn( ctx->runtime, ctx->bank, &ctx->txn_out ); - funk_mprotect_readonly( ctx ); } else { fd_runtime_cancel_txn( ctx->runtime, &ctx->txn_out ); } @@ -330,42 +306,6 @@ returnable_frag( fd_execrp_tile_t * ctx, extern FD_TL int fd_wksp_oom_silent; -static void -privileged_init( fd_topo_t const * topo, - fd_topo_tile_t const * tile ) { - fd_execrp_tile_t * ctx = fd_topo_obj_laddr( topo, tile->tile_obj_id ); - ctx->funk_pkey = -1; - - ulong funk_obj_id = fd_pod_query_ulong( topo->props, "funk", ULONG_MAX ); - FD_TEST( funk_obj_id!=ULONG_MAX ); - fd_wksp_t * funk_wksp = fd_wksp_containing( fd_topo_obj_laddr( topo, funk_obj_id ) ); - FD_TEST( funk_wksp ); - -#if FD_ARCH_SUPPORTS_SANDBOX && defined(__x86_64__) - if( FD_UNLIKELY( fd_sandbox_getpid()!=fd_sandbox_gettid() ) ) { - FD_LOG_INFO(( "userland memory protection disabled: not compatible with single-process mode" )); - return; - } - - int pkey = fd_syscall_pkey_alloc( 0, 0 ); - if( FD_UNLIKELY( pkey<0 ) ) { - FD_LOG_INFO(( "userland memory protection disabled: pkey_alloc(0,0) failed (%i-%s)", - errno, fd_io_strerror( errno ) )); - return; - } - - int err = fd_wksp_pkey_install( funk_wksp, pkey ); - if( FD_UNLIKELY( err ) ) { - FD_LOG_ERR(( "error while setting up userland memory protection: fd_wksp_pkey_install(funk_wksp,pkey=%d) failed (%i-%s)", - pkey, err, fd_io_strerror( err ) )); - } - - ctx->funk_pkey = pkey; - funk_mprotect_readonly( ctx ); - FD_LOG_INFO(( "userland memory protection enabled (pkey=%d)", pkey )); -# endif /* FD_ARCH_SUPPORTS_SANDBOX && defined(__x86_64__) */ -} - static void unprivileged_init( fd_topo_t const * topo, fd_topo_tile_t const * tile ) { @@ -598,7 +538,6 @@ fd_topo_run_tile_t fd_tile_execrp = { .populate_allowed_fds = populate_allowed_fds, .scratch_align = scratch_align, .scratch_footprint = scratch_footprint, - .privileged_init = privileged_init, .unprivileged_init = unprivileged_init, .run = stem_run, }; diff --git a/src/discof/execrp/test_execrp_tile.c b/src/discof/execrp/test_execrp_tile.c index 004b4ec3556..92d244514a8 100644 --- a/src/discof/execrp/test_execrp_tile.c +++ b/src/discof/execrp/test_execrp_tile.c @@ -126,7 +126,6 @@ test_env_create( void ) { unprivileged_init( topo, topo_tile ); env->execrp = tile_mem; - env->execrp->funk_pkey = -1; env->execrp->replay_in->mem = replay_execrp->dcache; env->execrp->replay_in->chunk0 = fd_dcache_compact_chunk0( replay_execrp->dcache, replay_execrp->dcache ); env->execrp->replay_in->wmark = fd_dcache_compact_wmark ( replay_execrp->dcache, replay_execrp->dcache, replay_execrp->mtu ); From 6d15dd35e66979d458dc4a2efa329cf61041fc33 Mon Sep 17 00:00:00 2001 From: Vic Genin Date: Fri, 5 Jun 2026 13:08:01 +0300 Subject: [PATCH 29/30] codeql fixes + improvements --- contrib/codeql/lib/filter.qll | 9 ++- .../src/nightly/ImplicitIntegerTruncation.ql | 42 +++++++++++ .../ImplicitIntegerTruncation.c | 69 +++++++++++++++++++ .../ImplicitIntegerTruncation.expected | 11 +++ .../ImplicitIntegerTruncation.qlref | 2 + .../LargeMemset/LargeMemset.expected | 4 +- .../TrivialMemcpy/TrivialMemcpy.expected | 30 ++++---- 7 files changed, 149 insertions(+), 18 deletions(-) create mode 100644 contrib/codeql/src/nightly/ImplicitIntegerTruncation.ql create mode 100644 contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c create mode 100644 contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected create mode 100644 contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.qlref diff --git a/contrib/codeql/lib/filter.qll b/contrib/codeql/lib/filter.qll index 226a03ff157..20cb126a32d 100644 --- a/contrib/codeql/lib/filter.qll +++ b/contrib/codeql/lib/filter.qll @@ -1,7 +1,14 @@ /** * Exclude agave code and whatever else we don't want to analyze. + * + * In production databases the source root is the repo root, so Firedancer + * files have relative paths starting with "src/". In CodeQL test databases + * the source root is the individual test directory, so the test .c files have + * bare filenames with no directory component. Both cases are included. */ import cpp predicate included(Location loc) { - loc.getFile().getRelativePath().prefix(4) = "src/" + loc.getFile().getRelativePath().prefix(4) = "src/" or + // Test databases: bare filename with no leading directory. + not loc.getFile().getRelativePath().matches("%/%") } diff --git a/contrib/codeql/src/nightly/ImplicitIntegerTruncation.ql b/contrib/codeql/src/nightly/ImplicitIntegerTruncation.ql new file mode 100644 index 00000000000..a532000bf6c --- /dev/null +++ b/contrib/codeql/src/nightly/ImplicitIntegerTruncation.ql @@ -0,0 +1,42 @@ +/** + * @name Implicit integer truncation + * @description An integer value is implicitly narrowed to a shorter integer type + * without an explicit cast. This can cause silent data loss. + * Under -Werror=all, GCC 8.3 rejects these conversions even for + * small integer literals (e.g. uchar x[2] = {3,4}). + * @kind problem + * @problem.severity warning + * @precision medium + * @id firedancer-io/implicit-integer-truncation + * @tags reliability + * correctness + * types + */ + +import cpp +import filter + +/** + * Holds if expression `e` is implicitly converted from integral type `fromType` + * to the narrower integral type `toType` without an explicit cast. + * + * Note: integer promotion artifacts are included (e.g. `uchar c = a + b` where + * `a + b` has type `int` due to promotion). These may be numerous; add explicit + * casts (e.g. `(uchar)(a + b)`) to suppress individual findings. + */ +predicate implicitIntegerTruncation(Expr e, IntegralType fromType, IntegralType toType) { + not e.hasExplicitConversion() and + not e.isInMacroExpansion() and + fromType = e.getType().getUnderlyingType() and + toType = e.getConversion().getType().getUnderlyingType() and + not fromType instanceof BoolType and + not toType instanceof BoolType and + toType.getSize() < fromType.getSize() +} + +from Expr e, IntegralType fromType, IntegralType toType +where + implicitIntegerTruncation(e, fromType, toType) and + included(e.getLocation()) +select e, + "Implicit truncation from " + fromType.getName() + " to " + toType.getName() + "." diff --git a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c new file mode 100644 index 00000000000..d5470e6d642 --- /dev/null +++ b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c @@ -0,0 +1,69 @@ +typedef unsigned char uchar; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef unsigned long ulong; + +// ── Return-value truncation ──────────────────────────────────────────────── + +uchar ret_as_uchar(ulong x) { + return x; // $ Alert +} + +ushort ret_as_ushort(ulong x) { + return x; // $ Alert +} + +uint ret_as_uint(ulong x) { + return x; // $ Alert +} + +// ── Variable initialisation ──────────────────────────────────────────────── + +void init_vars(ulong big) { + uchar a = big; // $ Alert + ushort b = big; // $ Alert + uint c = big; // $ Alert + + // Explicit casts – no alert + uchar d = (uchar)big; // NO Alert + ushort e = (ushort)big; // NO Alert + uint f = (uint)big; // NO Alert + + // Widening – no alert + ulong g = c; // NO Alert + ulong h = b; // NO Alert + ulong i = a; // NO Alert + (void)(d + e + f + g + h + i); +} + +// ── Integer literal narrowing (GCC 8.3 compile-failure case) ────────────── +// int literals are widened to `int` by the C standard before assignment, +// which is an implicit truncation to `uchar`/`ushort`. + +void literal_narrow(void) { + uchar x = 3; // $ Alert + ushort y = 300; // $ Alert + (void)(x + y); +} + +// ── Function-call argument truncation ───────────────────────────────────── + +void takes_ushort(ushort x); + +void call_with_ulong(ulong big) { + takes_ushort(big); // $ Alert +} + +// ── Struct-member assignment ─────────────────────────────────────────────── + +struct narrow_fields { + ushort x; + uchar y; +}; + +void assign_members(ulong big) { + struct narrow_fields s; + s.x = big; // $ Alert + s.y = big; // $ Alert + s.x = (ushort)big; // NO Alert +} diff --git a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected new file mode 100644 index 00000000000..c76d55648ee --- /dev/null +++ b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected @@ -0,0 +1,11 @@ +| ImplicitIntegerTruncation.c:9:12:9:12 | x | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:13:12:13:12 | x | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:17:12:17:12 | x | Implicit truncation from unsigned long to unsigned int. | +| ImplicitIntegerTruncation.c:23:16:23:18 | big | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:24:16:24:18 | big | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:25:16:25:18 | big | Implicit truncation from unsigned long to unsigned int. | +| ImplicitIntegerTruncation.c:44:16:44:16 | 3 | Implicit truncation from int to unsigned char. | +| ImplicitIntegerTruncation.c:45:16:45:18 | 300 | Implicit truncation from int to unsigned short. | +| ImplicitIntegerTruncation.c:54:18:54:20 | big | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:66:11:66:13 | big | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:67:11:67:13 | big | Implicit truncation from unsigned long to unsigned char. | diff --git a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.qlref b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.qlref new file mode 100644 index 00000000000..b2883e39a75 --- /dev/null +++ b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.qlref @@ -0,0 +1,2 @@ +query: ImplicitIntegerTruncation.ql +postprocess: InlineExpectationsTestQuery.ql diff --git a/contrib/codeql/test/query-tests/LargeMemset/LargeMemset.expected b/contrib/codeql/test/query-tests/LargeMemset/LargeMemset.expected index 6e798210dae..9bcd2059d41 100644 --- a/contrib/codeql/test/query-tests/LargeMemset/LargeMemset.expected +++ b/contrib/codeql/test/query-tests/LargeMemset/LargeMemset.expected @@ -1,4 +1,4 @@ | LargeMemset.c:34:5:34:10 | call to memset | This call to memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:34:33:34:48 | ... * ... | size argument | -| LargeMemset.c:35:5:35:13 | call to fd_memset | This call to memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:35:36:35:53 | ... * ... | size argument | +| LargeMemset.c:35:5:35:13 | call to fd_memset | This call to fd_memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:35:36:35:53 | ... * ... | size argument | | LargeMemset.c:36:5:36:10 | call to memset | This call to memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:36:33:36:53 | sizeof(huge_region_t) | size argument | -| LargeMemset.c:37:5:37:13 | call to fd_memset | This call to memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:37:36:37:56 | sizeof(huge_region_t) | size argument | +| LargeMemset.c:37:5:37:13 | call to fd_memset | This call to fd_memset has a $@ (11 MB) that is larger than 10 MB. | LargeMemset.c:37:36:37:56 | sizeof(huge_region_t) | size argument | diff --git a/contrib/codeql/test/query-tests/TrivialMemcpy/TrivialMemcpy.expected b/contrib/codeql/test/query-tests/TrivialMemcpy/TrivialMemcpy.expected index 62031db543b..60302d35fca 100644 --- a/contrib/codeql/test/query-tests/TrivialMemcpy/TrivialMemcpy.expected +++ b/contrib/codeql/test/query-tests/TrivialMemcpy/TrivialMemcpy.expected @@ -1,15 +1,15 @@ -| TrivialMemcpy.c:57:5:57:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:58:5:58:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:59:5:59:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:61:5:61:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:62:5:62:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:63:5:63:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:67:5:67:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:68:5:68:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:69:5:69:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:71:5:71:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:72:5:72:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:73:5:73:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.with_array * | -| TrivialMemcpy.c:89:5:89:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:92:5:92:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | -| TrivialMemcpy.c:93:5:93:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:55:5:55:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:56:5:56:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:57:5:57:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:59:5:59:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:60:5:60:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:61:5:61:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:65:5:65:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:66:5:66:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:67:5:67:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:69:5:69:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:70:5:70:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:71:5:71:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.with_array * | +| TrivialMemcpy.c:87:5:87:10 | call to memcpy | Call to memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:90:5:90:13 | call to fd_memcpy | Call to fd_memcpy could be rewritten as an assignment.foo * | +| TrivialMemcpy.c:91:5:91:20 | call to __builtin_memcpy | Call to __builtin_memcpy could be rewritten as an assignment.foo * | From 7e5601918d8d5c893650057e82803c707850610a Mon Sep 17 00:00:00 2001 From: Vic Genin Date: Fri, 5 Jun 2026 16:51:01 +0300 Subject: [PATCH 30/30] codeql --- .../ImplicitIntegerTruncation.c | 10 ++++++++++ .../ImplicitIntegerTruncation.expected | 8 +++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c index d5470e6d642..831f829da69 100644 --- a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c +++ b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.c @@ -46,6 +46,16 @@ void literal_narrow(void) { (void)(x + y); } +// ── ulong literal narrowing (patterns from real codebase) ───────────────── +// e.g. `uchar x = 0UL` or `uchar x = 64UL` — ulong suffix makes this a +// ulong→uchar implicit truncation. + +void ulong_literal_narrow(void) { + uchar a = 0UL; // $ Alert + uchar b = 64UL; // $ Alert + (void)(a + b); +} + // ── Function-call argument truncation ───────────────────────────────────── void takes_ushort(ushort x); diff --git a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected index c76d55648ee..3f9645e64a9 100644 --- a/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected +++ b/contrib/codeql/test/query-tests/ImplicitIntegerTruncation/ImplicitIntegerTruncation.expected @@ -6,6 +6,8 @@ | ImplicitIntegerTruncation.c:25:16:25:18 | big | Implicit truncation from unsigned long to unsigned int. | | ImplicitIntegerTruncation.c:44:16:44:16 | 3 | Implicit truncation from int to unsigned char. | | ImplicitIntegerTruncation.c:45:16:45:18 | 300 | Implicit truncation from int to unsigned short. | -| ImplicitIntegerTruncation.c:54:18:54:20 | big | Implicit truncation from unsigned long to unsigned short. | -| ImplicitIntegerTruncation.c:66:11:66:13 | big | Implicit truncation from unsigned long to unsigned short. | -| ImplicitIntegerTruncation.c:67:11:67:13 | big | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:54:15:54:17 | 0 | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:55:15:55:18 | 64 | Implicit truncation from unsigned long to unsigned char. | +| ImplicitIntegerTruncation.c:64:18:64:20 | big | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:76:11:76:13 | big | Implicit truncation from unsigned long to unsigned short. | +| ImplicitIntegerTruncation.c:77:11:77:13 | big | Implicit truncation from unsigned long to unsigned char. |