+
    }im                      a  0 t $ ^ RIHt . R$Ot^ RIt^ RIt^ RIt^ RIHtH	t	H
t
HtHtHtHtHtHtHtHt ^RIHtHt ^R	IHt ]'       d-   ]]]P2                  ],          ]P4                  3,          tR
]R&    ^ RIHtH t  R R lt"R R lt# ! R R]4      t$ ! R R]$RR7      t% ! R R]$RR7      t& ! R R]$RR7      t']]
]%,          ]
]&,          ]
]',          3,          t(]	](.]3,          t)R R lt*R R lt+ ! R R]4      t,]*3R R  llt-R!]R&   ] f   Rt.R# ]*3R" R# llt.R#   ]! d     ^ RIHtH t   L  ]! d	    R;t t  Li ; ii ; i)%    )annotations
DeviceDictOSDictUserAgentDict	load_yamlN)TYPE_CHECKINGCallableListLiteralOptionalProtocolTupleType	TypedDictUnioncast)lazymatchers)MatcherszOptional[Type[object]]
SafeLoader)CSafeLoaderload)r   r   c                   V ^8  d   QhRR/#    returnr    )formats   "c/Users/ahmad/.openclaw/workspace/my-crawler/.venv/lib/python3.14/site-packages/ua_parser/loaders.py__annotate__r    0   s     $ $x $    c                 .    ^ RI Hp  \        \        V 4      # )zLoads the pre-compiled matcher data into eager matchers.

The matchers data is imported lazily, and cached after imports,
further imports simply reference the existing datas.

MATCHERS)ua_parser_builtins.matchersr$   r   r   r#   s    r   load_builtinsr&   0   s     5 (##r!   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r    r    >   s     	$ 	$H 	$r!   c                 .    ^ RI Hp  \        \        V 4      # )zLoads the pre-compiled matcher data into lazy matchers.

The matchers data is imported lazily, and cached after imports,
further imports simply reference the existing datas.

r#   )ua_parser_builtins.lazyr$   r   r   r#   s    r   load_lazy_builtinsr*   >   s     1(##r!   c                  "    ] tR t^Lt$ R]R&   RtR# )
_RegexDictstrregexr   N__name__
__module____qualname____firstlineno____annotations____static_attributes__r   r!   r   r,   r,   L   s    Jr!   r,   c                  J    ] tR t^Pt$ R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )	r   r-   family_replacementv1_replacementv2_replacementv3_replacementv4_replacementr   Nr/   r   r!   r   r   r   P   s     r!   F)totalc                  J    ] tR t^Xt$ R]R&   R]R&   R]R&   R]R&   R]R&   RtR# )	r   r-   os_replacementos_v1_replacementos_v2_replacementos_v3_replacementos_v4_replacementr   Nr/   r   r!   r   r   r   X   s     r!   c                  @    ] tR t^`t$ R]R&   R]R&   R]R&   R]R&   RtR# )	r   zLiteral['i']
regex_flagr-   device_replacementbrand_replacementmodel_replacementr   Nr/   r   r!   r   r   r   `   s    r!   c                    V ^8  d   QhRRRR/# r   dMatchersDatar   r   r   )r   s   "r   r    r    k        # # #( #r!   c                   V ^ ,           Uu. uFp  p\         P                  ! VR,          VP                  R4      VP                  R4      VP                  R4      VP                  R4      VP                  R4      4      NKr  	  upV ^,           Uu. uFp  p\         P                  ! VR,          VP                  R4      VP                  R4      VP                  R	4      VP                  R
4      VP                  R4      4      NKr  	  upV ^,           Uu. uF`  p\         P                  ! VR,          VP                  R4      VP                  R4      VP                  R4      VP                  R4      4      NKb  	  up3# u upi u upi u upi )z-Loads the input data set into eager matchers.r.   r7   r8   r9   r:   r;   r>   r?   r@   rA   rB   rD   rE   rF   rG   )r   UserAgentMatcherget	OSMatcherDeviceMatcherrJ   ps   & r   	load_datarT   k   su    qT
	
  %%'
*+&'&'&'&' 
	
( qT
	
  '
&')*)*)*)* 
	
& qT		
  ""'
l#*+)*)* 		
/! !
	

	
		
   A6E<A6FA&Fc                    V ^8  d   QhRRRR/# rI   r   )r   s   "r   r    r       rL   r!   c                   V ^ ,           Uu. uFp  p\         P                  ! VR,          VP                  R4      VP                  R4      VP                  R4      VP                  R4      VP                  R4      4      NKr  	  upV ^,           Uu. uFp  p\         P                  ! VR,          VP                  R4      VP                  R4      VP                  R	4      VP                  R
4      VP                  R4      4      NKr  	  upV ^,           Uu. uF`  p\         P                  ! VR,          VP                  R4      VP                  R4      VP                  R4      VP                  R4      4      NKb  	  up3# u upi u upi u upi )z,Loads the input data set into lazy matchers.r.   r7   r8   r9   r:   r;   r>   r?   r@   rA   rB   rD   rE   rF   rG   )r   rN   rO   rP   rQ   rR   s   & r   	load_lazyrX      ss    qT
	
  !!'
*+&'&'&'&' 
	
( qT
	
  NN'
&')*)*)*)* 
	
& qT		
  '
l#*+)*)* 		
/! !
	

	
		
rU   c                  (    ] tR t^t]3R R lltRtR# )
FileLoaderc               $    V ^8  d   QhRRRRRR/# r   path
PathOrFileloader
DataLoaderr   r   r   )r   s   "r   r    FileLoader.__annotate__   s$      (2	r!   c                	    R # )Nr   )selfr]   r_   s   &&&r   __call__FileLoader.__call__   s    r!   r   N)r0   r1   r2   r3   rT   rd   r5   r   r!   r   rZ   rZ      s    5> r!   rZ   c               $    V ^8  d   QhRRRRRR/# )r   fr^   r_   r`   r   r   r   )r   s   "r   r    r       s!       Z  r!   c                F   \        V \        \        P                  34      '       d4   \	        V 4      ;_uu_ 4       p\
        P                  ! V4      pRRR4       M\
        P                  ! V 4      pV! XR,          VR,          VR,          34      #   + '       g   i     L0; i)a  Loads JSON data following the ``regexes.yaml`` structure.

The ``loader`` parameter customises which matcher variant is
generated, by default :func:`load_data` is used to generate eager
matchers, :func:`load_lazy` can be used to generate lazy matchers
instead.

Nuser_agent_parsers
os_parsersdevice_parsers)
isinstancer-   osPathLikeopenjsonr   )rg   r_   fpregexess   &&  r   	load_jsonrs      s|     !c2;;'((!WWiimG W ))A,()L!$%	
  Ws   BB 	zOptional[FileLoader]c               $    V ^8  d   QhRRRRRR/# r\   r   )r   s   "r   r    r       s!     
 

 
J 
x 
r!   c                8   \        V \        \        P                  34      '       d/   \	        V 4      ;_uu_ 4       p\        V\        R7      pRRR4       M\        V \        R7      p\        XR,          VR,          VR,          34      #   + '       g   i     L3; i)a  Loads YAML data following the ``regexes.yaml`` structure.

The ``loader`` parameter customises which matcher variant is
generated, by default :func:`load_data` is used to generate eager
matchers, :func:`load_lazy` cab be used to generate lazy matchers
instead.
)LoaderNri   rj   rk   )rl   r-   rm   rn   ro   r   r   rT   )r]   r_   rq   rr   s   &&  r   r   r      sz     dS"++.//drr*5  4
3G,-%()
 	
 s   B		B	)
r   rK   r   r   r&   rT   rs   rX   r*   r   )/__conditional_annotations__
__future__r   __all__iorp   rm   typingr   r	   r
   r   r   r   r   r   r   r   r    r   r   corer   r-   rn   IOBaser^   r4   yamlr   r   r   ImportErrorr&   r*   r,   r   r   r   rK   r`   rT   rX   rZ   rs   r   )rw   s   @r   <module>r      sU   " " 
  	     sBKK,bii78J&&!4$	$ Je Zu 5  T-($v,Z8HHI|nh./
#L#L  3< 0   <I :C 
 
c  !!)) !  z!!s*   8D# #E+D55E EEE