§
    òŽ’j?  ã                   óN   — d dl mZ ddlmZ erddlmZ dddefd„Zdddefd	„Zd
S )é    )ÚTYPE_CHECKINGé   )ÚSTRING_DELIMITERS)Ú
JSONParserÚparserr   Úreturnc                 óÂ  — | j         dz   }t          | j        ¦  «        }d}d}d}d}d}d}||k     �r,| j        |         }	|	dk    r|dz  }|dz  }Œ%|�|	|k    r|dz  dk    rd}d}|dz  }Œ@|	t          v r'|dz  dk    r|	}|p|dk    o|dk    o|dk    }d}|dz  }Œpd}|	                     ¦   «         s|	dvr|dk    r|dk    r|dk    rd}|	d	k    r|dz  }n}|	d
k    r!|dk    r|dk    r	|dk    r| S |dk    r|dz  }nV|	dk    r|dz  }nJ|	dk    r|dk    r|dz  }n8|	dk    r|dz  }n,|	dk    r|dk    r|dz  }n|	dk    r|dk    r|dk    r|dk    rdS |dz  }||k     �°,| S )zª
    Return True when the current '(' starts an explicit Python tuple literal.

    Empty parentheses count as a tuple. A single grouped value like ``(1)`` does not.
    r   r   NFú\é   )ú,ú)Tú(r   ú[ú]Ú{Ú}r   )ÚindexÚlenÚjson_strr   Úisspace)
r   ÚiÚnÚnested_parenthesesÚsquare_bracketsÚbracesÚin_quoteÚbackslashesÚsaw_top_level_contentÚchs
             úNC:\Projects\DSCons\.venv\Lib\site-packages\json_repair\parser_parenthesized.pyÚparenthesized_is_explicit_tupler!   	   sX  € ð 	Œ�qÑ€AÝˆFŒOÑÔ€AØÐØ€OØ€FØ€HØ€KØ!Ðà
ˆaŠ%‰%ØŒ_˜QÔˆà�Š:ˆ:Ø˜1ÑˆKØ�‰FˆAØàÐØ�XŠ~ˆ~ +°¡/°QÒ"6Ð"6Ø�ØˆKØ�‰FˆAØàÕ"Ð"Ð" {°Q¡¸!Ò';Ð';ØˆHØ$9ð %Ø" aÒ'ÐP¨O¸qÒ,@ÐPÀVÈqÂ[ð "ð ˆKØ�‰FˆAØàˆð —
’
‘”ð	)à˜*Ð$Ð$Ø" aÒ'Ð'Ø 1Ò$Ð$Ø˜!’�à$(Ð!à�Š9ˆ9Ø !Ñ#ÐÐØ�3ŠYˆYØ! QÒ&Ð&¨?¸aÒ+?Ð+?ÀFÈaÂKÀKØ0Ð0Ð0Ø! AÒ%Ð%Ø" aÑ'Ð"øØ�3ŠYˆYØ˜qÑ ˆOˆOØ�3ŠYˆY˜?¨QÒ.Ð.Ø˜qÑ ˆOˆOØ�3ŠYˆYØ�a‰KˆFˆFØ�3ŠYˆY˜6 Aš:˜:Ø�a‰KˆFˆFØ�3ŠYˆYÐ-°Ò2Ð2°È!Ò7KÐ7KÐPVÐZ[ÒP[ÐP[Ø�4à	ˆQ‰ˆðk ˆaŠ%‰%ðn %Ð$Ð$ó    c                 ó2  — | j         dz
  }|dk    r3| j        |         }|dv rn!|                     ¦   «         sdS |dz  }|dk    °3|                      d¬¦  «        }|                      |¦  «        }|€dS | j        | j         |z   d…                              ¦   «         }|ddd	d
gt          ¢vr4|                     ¦   «         s |dvr|dd…         dvr|dd…         dk    rdS | j         dz   }t          | j        ¦  «        }d}d}d}	d}
d}||k     �r	| j        |         }|dk    r|dz  }|dz  }Œ%|
�||
k    r|dz  dk    rd}
d}|dz  }Œ@|t          v r|dz  dk    r
|}
d}|dz  }Œ\d}|d
k    r|dz  }nš|dk    rY|dk    rM|dk    rG|	dk    rA|dz  }||k     r4| j        |         }|dv rdS |                     ¦   «         sdS |dz  }||k     °4dS |dz  }n;|d	k    r|dz  }n/|dk    r|dk    r|dz  }n|dk    r|	dz  }	n|dk    r|	dk    r|	dz  }	|dz  }||k     �°	dS )a  
    Return True when a top-level '(' looks like a standalone value rather than inline prose.

    This keeps tuple support available for direct inputs and fenced blocks while avoiding
    regressions on surrounding explanatory text like ``foo (clarification): {...}``.
    r   r   z
F)ÚidxNr   r   r   r   )ú-ú.é   )ÚtrueÚnullÚnoneé   Úfalser
   r   Tr   r   )	r   r   r   Úscroll_whitespacesÚget_char_atÚlowerr   Úisdigitr   )r   r   r   r$   Úfirst_inner_charÚ
inner_textr   r   r   r   r   r   Útrailers                r    Ú'top_level_parenthesized_can_start_valuer4   R   s  € ð 	Œ�qÑ€AØ
ˆqŠ&ˆ&ØŒ_˜QÔˆØ�ˆ<ˆ<ØØ�zŠz‰|Œ|ð 	Ø�5Ø	ˆQ‰ˆð ˆqŠ&ˆ&ð ×
#Ò
#¨Ð
#Ñ
*Ô
*€CØ×)Ò)¨#Ñ.Ô.ÐØÐØˆuà” ¤°Ñ!3Ð!5Ð!5Ô6×<Ò<Ñ>Ô>€Jà  c¨3°Ð HÕ6GÐ HÐHÐHØ ×(Ò(Ñ*Ô*ð 	Ià JÐ.Ð.Ø�r˜�rŒNÐ":Ð:Ð:Ø�r˜�rŒN˜gÒ%Ð%àˆuàŒ�qÑ€AÝˆFŒOÑÔ€AØÐØ€OØ€FØ€HØ€Kà
ˆaŠ%‰%ØŒ_˜QÔˆà�Š:ˆ:Ø˜1ÑˆKØ�‰FˆAØàÐØ�XŠ~ˆ~ +°¡/°QÒ"6Ð"6Ø�ØˆKØ�‰FˆAØàÕ"Ð"Ð" {°Q¡¸!Ò';Ð';ØˆHØˆKØ�‰FˆAØàˆà�Š9ˆ9Ø !Ñ#ÐÐØ�3ŠYˆYØ! QÒ&Ð&¨?¸aÒ+?Ð+?ÀFÈaÂKÀKØ�Q‘�Ø˜!’e�eØ$œo¨aÔ0�GØ &Ð(Ð(Ø#˜tØ"Ÿ?š?Ñ,Ô,ð %Ø$˜uØ˜‘F�Að ˜!’e�eð �tØ !Ñ#ÐÐØ�3ŠYˆYØ˜qÑ ˆOˆOØ�3ŠYˆY˜?¨QÒ.Ð.Ø˜qÑ ˆOˆOØ�3ŠYˆYØ�a‰KˆFˆFØ�3ŠYˆY˜6 Aš:˜:Ø�a‰KˆFà	ˆQ‰ˆð] ˆaŠ%‰%ð` ˆ4r"   N)	Útypingr   Úutils.constantsr   Újson_parserr   Úboolr!   r4   © r"   r    ú<module>r:      s    ðØ  Ð  Ð  Ð  Ð  Ð  à .Ð .Ð .Ð .Ð .Ð .àð (Ø'Ð'Ð'Ð'Ð'Ð'ðF%¨Lð F%¸Tð F%ð F%ð F%ð F%ðRW°Lð WÀTð Wð Wð Wð Wð Wð Wr"   