ó
    ¡7�j°  ã                   óÀ  • S SK Jr  S SKJrJrJrJrJrJrJ	r	J
r
JrJr  \\\\S4   r\S\	S   \4   r\\\4   r\SS\4   r\\\4   r\\   r\" S5      r\" S	5      r " S
 S\5      rS\S\
\   S\4S jr " S S\5      r\R8                  rS\S\\/\4   S\S\\\4   S\\\4   4
S jr\4S\S\S\\\4   S\\\4   4S jjr\4S\S\S\\\4   S\\\ 4   4S jjr!\4S\S\S\\\4   S\\\4   4S jjr"S\S\S\\   S\\   4S jr#S\S\S\\\\ 4      S\\\\ 4      4S jr$\4S\S\S\\\4   S\\\4   4S jjr%\4S\S\S\\/\4   S\\\4   S\\\4   4
S jjr&\4S\S\S\\\4   S\\\	\   4   4S jjr'\4S\S\S \\   S\\\4   S\\\4   4
S! jjr(S\S\S\\/\4   S\\\	\   4   4S" jr)S#S$S%\S\4S& jr*S'\S(\S\4S) jr+S'\S(\SS4S* jr,g)+é    )ÚEnum)
ÚCallableÚ	ContainerÚDictÚListÚMappingÚOptionalÚSequenceÚTypeÚTypeVarÚUnionNÚ
JsonObjectÚ	JsonValueÚJsonDictÚJsonListÚDTÚTc                   ó@   ^ • \ rS rSr% \\S'   S\S\4U 4S jjrSrU =r	$ )Ú	JsonErroré%   ÚvalueÚmsgc                 ó0   >• [         TU ]  U5        Xl        g ©N)ÚsuperÚ__init__r   )Úselfr   r   Ú	__class__s      €Ú2/usr/lib/python3/dist-packages/cockpit/jsonutil.pyr   ÚJsonError.__init__(   s   ø€ Ü‰Ñ˜ÔØ�
ó    ©r   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚobjectÚ__annotations__Ústrr   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r   %   s    ø‡ ØƒMð˜fð ¨3÷ õ r!   r   r   Úexpected_typeÚreturnc                 óX   • [        X5      (       d  [        U SUR                   35      eU $ )z>Ensure a JSON value has the expected type, returning it if so.zmust have type )Ú
isinstancer   r#   )r   r,   s     r   Útypecheckedr0   -   s-   € ä�e×+Ñ+Ü˜ °×1GÑ1GÐ0HÐIÓJÐJØ€Lr!   c                   ó   • \ rS rSrSrSrg)Ú_Emptyé7   r   © N)r#   r$   r%   r&   ÚTOKENr*   r4   r!   r   r2   r2   7   s   † ØƒEr!   r2   ÚobjÚcastÚkeyÚdefaultc                 óæ   •  U" X   5      $ ! [          a    U[        La  Us $ [        U SU S35      S e[         a3  nSU S3UR                  X   La  SOS-   n[        X SU< 35      UeS nAff = f)Nzattribute 'z
' requiredÚ'z
 elements:Ú:Ú )ÚKeyErrorÚ_emptyr   r   )r6   r7   r8   r9   ÚexcÚtargets         r   Ú_getrB   >   sŒ   € ð;Ù�C‘H‹~ÐøÜó FØœ&Ò ØŠNÜ˜˜{¨3¨%¨zÐ:Ó;ÀÐEÜó ;Ø˜s˜e 1Ð%¸¿¹È#É(Ò9R©ÐX[Ñ\ˆÜ˜˜x q¨©Ð0Ó1°sÐ:ûð;ús   ‚	 ŒA0£A0½.A+Á+A0c                 ó   • [        U S X5      $ )Nc                 ó"   • [        U [        5      $ r   )r0   Úbool©Úvs    r   Ú<lambda>Úget_bool.<locals>.<lambda>K   ó   € œ{¨1¬dÔ3r!   ©rB   ©r6   r8   r9   s      r   Úget_boolrM   J   ó   € Ü�Ñ3°SÓBÐBr!   c                 ó   • [        U S X5      $ )Nc                 ó"   • [        U [        5      $ r   )r0   ÚintrF   s    r   rH   Úget_int.<locals>.<lambda>O   ó   € œ{¨1¬cÔ2r!   rK   rL   s      r   Úget_intrT   N   ó   € Ü�Ñ2°CÓAÐAr!   c                 ó   • [        U S X5      $ )Nc                 ó"   • [        U [        5      $ r   ©r0   r)   rF   s    r   rH   Úget_str.<locals>.<lambda>S   rS   r!   rK   rL   s      r   Úget_strrZ   R   rU   r!   c                 ó   • [        U S X5      $ )Nc                 ó,   • U c  S $ [        U [        5      $ r   rX   rF   s    r   rH   Ú!get_str_or_none.<locals>.<lambda>W   s   €  q¡y˜tÐI´kÀ!ÄSÓ6IÐIr!   rK   rL   s      r   Úget_str_or_noner^   V   s   € Ü�ÑIÈ3ÓXÐXr!   c                 óV   • S[         S[        [        [        4   4S jn[	        XX5      $ )Nr   r-   c                 óT   • [        U [        [        45      (       d  [        U S5      eU $ )Nzmust be a string or integer)r/   r)   rQ   r   r"   s    r   Úas_str_or_intÚ%get_str_or_int.<locals>.as_str_or_int[   s&   € Ü˜%¤#¤s ×,Ñ,Ü˜EÐ#@ÓAÐAØˆr!   )r   r   r)   rQ   rB   )r6   r8   r9   ra   s       r   Úget_str_or_intrc   Z   s,   € ðœYð ¬5´´c°©?ô ô
 � CÓ1Ð1r!   c                 ó   • [        U S X5      $ )Nc                 ó"   • [        U [        5      $ r   ©r0   ÚdictrF   s    r   rH   Úget_dict.<locals>.<lambda>d   rJ   r!   rK   rL   s      r   Úget_dictri   c   rN   r!   Úconstructorc                 ó&   ^• [        U U4S jX5      $ )Nc                 ó0   >• T" [        U [        5      5      $ r   rf   )rG   rj   s    €r   rH   Úget_object.<locals>.<lambda>m   s   ø€ ™{¬;°q¼$Ó+?Ô@r!   rK   )r6   r8   rj   r9   s     ` r   Ú
get_objectrn   g   s   ø€ ô �Ô@À#ÓOÐOr!   c                 óJ   • S[         S[        [           4S jn[        XX5      $ )Nr   r-   c                 óB   • [        S [        U [        5       5       5      $ )Nc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7fr   rX   )Ú.0Úitems     r   Ú	<genexpr>Ú,get_strv.<locals>.as_strv.<locals>.<genexpr>r   s   é € ÐQÒ8P°”[ ¤s×+Ð+Ò8Pùs   ‚©Útupler0   Úlistr"   s    r   Úas_strvÚget_strv.<locals>.as_strvq   s   € ÜÑQ¼ÀEÌ4Ô8PÓQÓQÐQr!   )r   r
   r)   rB   )r6   r8   r9   ry   s       r   Úget_strvr{   p   s)   € ðR”yð R¤X¬c¡]ô Rä�˜cÓ+Ð+r!   Úchoicesc                 óD   ^• S[         S[        4U4S jjn[        XX5      $ )Nr   r-   c                 ób   >• [        U [        5      (       a  U T;   a  U $ [        U SU  ST 35      e)Nzinvalid value "z	" not in )r/   r)   r   )r   r|   s    €r   Ú	as_choiceÚget_enum.<locals>.as_choicey   s8   ø€ ô �eœS×!Ñ! e¨wÓ&6ØˆLÜ˜ °°°yÀÀ	ÐJÓKÐKr!   )r   r)   rB   )r6   r8   r|   r9   r   s     `  r   Úget_enumr�   v   s(   ø€ ðLœð L¤s÷ Lô � Ó-Ð-r!   c                 óT   ^• S[         S[        [           4U4S jjn[        XUS5      $ )Nr   r-   c                 óJ   >• [        U4S j[        U [        5       5       5      $ )Nc              3   óP   >#   • U  H  nT" [        U[        5      5      v •  M     g 7fr   rf   )rr   rs   rj   s     €r   rt   Ú,get_objv.<locals>.as_objv.<locals>.<genexpr>„   s"   øé € Ð_ÒF^¸d‘[¤¨T´4Ó!8×9Ð9ÒF^ùs   ƒ#&rv   )r   rj   s    €r   Úas_objvÚget_objv.<locals>.as_objvƒ   s   ø€ ÜÔ_ÄkÐRWÔY]ÔF^Ó_Ó_Ð_r!   r4   )r   r
   r   rB   )r6   r8   rj   r†   s     ` r   Úget_objvrˆ   ‚   s,   ø€ ð`”yð `¤X¬a¡[÷ `ä�˜c 2Ó&Ð&r!   ÚmessagezJsonObject | NoneÚkwargsc                 óŒ   • [        U =(       d    0 5      nUR                  5        H  u  p4UR                  SS5      nXBU'   M     U$ )a“  Constructs a JSON object based on message and kwargs.

If only message is given, it is returned, unmodified.  If message is None,
it is equivalent to an empty dictionary.  A copy is always made.

If kwargs are present, then any underscore ('_') present in a key name is
rewritten to a dash ('-').  This is intended to bridge between the required
Python syntax when providing kwargs and idiomatic JSON (which uses '-' for
attributes).  These values override values in message.

The idea is that `message` should be used for passing data along, and
kwargs used for data originating at a given call site, possibly including
modifications to an original message.
Ú_Ú-)rg   ÚitemsÚreplace)r‰   rŠ   Úresultr8   r   Újson_keys         r   Úcreate_objectr’   ˆ   sC   € ô �'—-˜RÓ €Fà—l‘l–n‰
ˆà—;‘;˜s CÓ(ˆØ ˆxÓñ %ð
 €Mr!   ÚcurrentÚpatchc                 ó  • [        U 5      nUR                  5        Hm  u  p4[        U[        5      (       a8  U R	                  US5      n[        U[        5      (       d  0 n[        XT5      X#'   MR  Ub  XBU'   M[  UR                  US5        Mo     U$ )u�   Perform a JSON merge patch (RFC 7396) using 'current' and 'patch'.
Neither of the original dictionaries is modified â€” the result is returned.
N)rg   rŽ   r/   r   ÚgetÚjson_merge_patchÚpop)r“   r”   r�   r8   Úpatch_valueÚcurrent_values         r   r—   r—   ¡   s}   € ô
 �'‹]€FØ!ŸK™KžMÑˆÜ�k¤7×+Ñ+Ø#ŸK™K¨¨TÓ2ˆMÜ˜m¬W×5Ñ5Ø "�Ü*¨=ÓFˆF‹KØÑ$Ø%�3‹Kà�J‰J�s˜DÖ!ñ *ð €Mr!   c                 ó>  • [        UR                  5       5       H€  u  p#U R                  US5      n[        U[        5      (       a@  [        U[        5      (       d  0 =X'   n[        XC5        MT  [        XC5        U(       d  X	 Mj  Ml  XC:X  a  X	 Mu  Ub  X0U'   M~  X	 M‚     g)z~Perform a JSON merge patch (RFC 7396) modifying 'current' with 'patch'.
Also modifies 'patch' to remove redundant operations.
N)rw   rŽ   r–   r/   rg   Újson_merge_and_filter_patch)r“   r”   r8   r™   rš   s        r   rœ   rœ   µ   sŒ   € ô " %§+¡+£-Ö0ÑˆØŸ™ C¨Ó.ˆä�k¤4×(Ñ(Ü˜m¬T×2Ñ2Ø/1Ð1�‘˜}Ü+¨MÖGä+¨MÔGÞ"Øš
ñ #àÓ)Ø’
ØÑ$Ø&�C‹Là’ò! 1r!   )-Úenumr   Útypingr   r   r   r   r   r	   r
   r   r   r   r)   ÚfloatrE   ÚJsonLiteralr   r   ÚJsonDocumentr   r   r   r   Ú	Exceptionr   r0   r2   r5   r?   rB   rM   rQ   rT   rZ   r^   rc   ri   rn   r{   r�   rˆ   r’   r—   rœ   r4   r!   r   Ú<module>r£      s  ðõ$ ß e× e× eà�C˜  dÐ*Ñ+€ð �, ¨Ñ 5°{ÐBÑC€	Ø�S˜)�^Ñ$€
ð �Z ¨[Ð8Ñ9€Ø��\Ð!Ñ"€Ø�Ñ€ñ ˆTƒ]€ÙˆCƒL€ô�	ô ð�yð °°a±ð ¸Qô ôˆTô ð 
�‰€ð	;ˆjð 	; ¨)¨°a¨Ñ 8ð 	;¸sð 	;ÈUÐSUÐW]ÐS]ÑM^ð 	;ÐchÐijÐlnÐinÑcoô 	;ð FLñ C�*ð C 3ð C°°r¸6°zÑ1Bð CÐPUÐVXÐZ^ÐV^ÑP_õ Cð EKñ B�ð B #ð B°°b¸&°jÑ0Að BÈuÐUWÐY\ÐU\É~õ Bð EKñ B�ð B #ð B°°b¸&°jÑ0Að BÈuÐUWÐY\ÐU\É~õ BðY˜ð Y¨#ð Y¸À¹ð YÈ(ÐSVÉ-ô Yð2˜
ð 2¨ð 2°xÀÀcÈ3ÀhÁÑ7Pð 2ÐU]Ð^cÐdgÐilÐdlÑ^mÑUnô 2ð FLñ C�*ð C 3ð C°°r¸6°zÑ1Bð CÐPUÐVXÐZdÐVdÑPeõ Cð "(ñ	PØ	ðPà	ðPð ˜:˜,¨˜/Ñ*ðPð �2�v�:Ñð	Pð
 ˆ2ˆqˆ5�\õPð FLñ ,�*ð , 3ð ,°°r¸6°zÑ1Bð ,ÐPUÐVXÐZbÐcfÑZgÐVgÑPhõ ,ð V\ñ	.Ø	ð	.Øð	.Ø(1°#©ð	.ØAFÀrÈ6ÀzÑARð	.à
ˆ2ˆsˆ7�^õ	.ð'�*ð ' 3ð '°X¸z¸lÈA¸oÑ5Nð 'ÐSXÐY[Ð]eÐfgÑ]hÐYhÑSiô 'ðÐ.ð ¸
ð Àzô ð2˜jð °ð À
ô ð(¨ð ¸(ð Àtõ r!   