+
    }i                         . R
Ot ^ RIt^ RIHtHtHt ^RIHtHtH	t	H
t
 ^RIHtHt  ! R R]]
,          4      t ! R R]]	,          4      t ! R	 R ]],          4      tR# )DeviceMatcher	OSMatcherUserAgentMatcherN)LiteralOptionalPattern)DeviceMatcherOS	UserAgent)getreplacerc                      a  ] tR t^
t o RtRV 3R lR lltV 3R lR lt]V 3R lR l4       tV 3R	 lR
 lt	V 3R lt
RtV tR# )r   zKEager user agent matcher, compiles the input ``regex`` at
initialisation.

Nc                   < V ^8  d   QhRS[ RS[S[ ,          RS[S[ ,          RS[S[ ,          RS[S[ ,          RS[S[ ,          RR/# 	   regexfamilymajorminorpatchpatch_minorreturnNstrr   )format__classdict__s   "d/Users/ahmad/.openclaw/workspace/my-crawler/.venv/lib/python3.14/site-packages/ua_parser/matchers.py__annotate__UserAgentMatcher.__annotate__   se     ' '' ' }	'
 }' }' c]' 
'    c                    \         P                  ! V4      V n        T;'       g    R V n        W0n        W@n        WPn        W`n        R# )$1Nrecompilepatternr   r   r   r   r   selfr   r   r   r   r   r   s   &&&&&&&r   __init__UserAgentMatcher.__init__   s6     zz%(nn


&r    c                6   < V ^8  d   QhRS[ RS[S[,          /# r   uar   )r   r   r   )r   r   s   "r   r   r   '   s       3 8I#6 r    c           
        V P                   P                  V4      ;p'       d   \        R V P                  9   d$   V P                  P	                  R V^,          4      MV P                  V P
                  ;'       g    \        V^4      V P                  ;'       g    \        V^4      V P                  ;'       g    \        V^4      V P                  ;'       g    \        V^4      R7      # R# )r"   r   r   r   r   r   N)
r&   searchr   r   replacer   r   r   r   r   )r(   r-   ms   && r   __call__UserAgentMatcher.__call__'   s    ##B''1' t{{* KK''ad3jj--C1Ijj--C1Ijj--C1I ,,99Aq	
 
 r    c                    < V ^8  d   QhRS[ /# r   r   r   )r   r   s   "r   r   r   7        $ $s $r    c                .    V P                   P                   # Nr&   r(   s   &r   r   UserAgentMatcher.regex6       ||###r    c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   r   :   s     
9 
9# 
9r    c                   R V P                   R8w  d   V P                   MR3RV P                  3RV P                  3RV P                  3RV P                  3.pRP                  R V 4       4      pR	V P                  : V R
2# )r   r"   Nr   r   r   r    c              3   D   "   T F  w  rVf   K  RV RV: 2x  K  	  R # 5iNz, = .0kvs   &  r   	<genexpr>,UserAgentMatcher.__repr__.<locals>.<genexpr>B   "     J&$!A~A3au~&     zUserAgentMatcher()r   r   r   r   r   joinr   r(   fieldsargss   &  r   __repr__UserAgentMatcher.__repr__:   s    dkkT&9t{{tDdjj!djj!djj!D,,-
 wwJ&JJ"4::.a88r    c                   < V ^8  d   Qh/ S[ S[,          ;R&   S[;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # r   r&   r   r   r   r   r   )r   r   r   )r   r   s   "r   r   r   
   sf      S\  K  C=  C=  C=  # r    r   r   r   r   r   r&   NNNNN__name__
__module____qualname____firstlineno____doc__r)   r3   propertyr   rT   __annotate_func____static_attributes____classdictcell__r   s   @r   r   r   
   sD     ' '   $ $
9 
9a  r    c                      a  ] tR t^Gt o RtRV 3R lR lltV 3R lR lt]V 3R lR l4       tV 3R	 lR
 lt	V 3R lt
RtV tR# )r   zCEager OS matcher, compiles the input ``regex`` at
initialisation.

Nc                   < V ^8  d   QhRS[ RS[S[ ,          RS[S[ ,          RS[S[ ,          RS[S[ ,          RS[S[ ,          RR/# r   r   )r   r   s   "r   r   OSMatcher.__annotate__T   se     / // / }	/
 }/ }/ c]/ 
/r    c                    \         P                  ! V4      V n        T;'       g    R V n        T;'       g    RV n        T;'       g    RV n        T;'       g    RV n        T;'       g    RV n        R# )r"   $2$3$4$5Nr#   r'   s   &&&&&&&r   r)   OSMatcher.__init__T   sX     zz%(nn]]d
]]d
]]d
&..$r    c                6   < V ^8  d   QhRS[ RS[S[,          /# r,   )r   r   r
   )r   r   s   "r   r   rg   d   s      3 8B< r    c           
     \   V P                   P                  V4      ;p'       d   \        V P                  V4      pVf   \	        RV 24      h\        V\        V P                  V4      \        V P                  V4      \        V P                  V4      \        V P                  V4      R7      # R # )NzUnable to find OS family in r/   )
r&   r0   r   r   
ValueErrorr
   r   r   r   r   r(   r-   r2   r   s   &&  r   r3   OSMatcher.__call__d   s    ##B''1'dkk1-F~ #?t!DEEtzz1-tzz1-tzz1-$T%5%5q9  r    c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   rg   s   r8   r    c                .    V P                   P                   # r:   r;   r<   s   &r   r   OSMatcher.regexr   r>   r    c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   rg   v   s     
2 
2# 
2r    c                   R V P                   R8w  d   V P                   MR3RV P                  R8w  d   V P                  MR3RV P                  R8w  d   V P                  MR3RV P                  R8w  d   V P                  MR3R	V P                  R
8w  d   V P                  MR3.pRP                  R V 4       4      pRV P                  : V R2# )r   r"   Nr   ri   r   rj   r   rk   r   rl   rA   c              3   D   "   T F  w  rVf   K  RV RV: 2x  K  	  R # 5irC   rE   rF   s   &  r   rJ   %OSMatcher.__repr__.<locals>.<genexpr>~   rL   rM   z
OSMatcher(rN   rO   rQ   s   &  r   rT   OSMatcher.__repr__v   s    dkkT&9t{{tDDJJ$$6djjDADJJ$$6djjDADJJ$$6djjDA0@0@D0HD,,dS
 wwJ&JJDJJ>$q11r    c                r   < V ^8  d   Qh/ S[ S[,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # rW   r   r   )r   r   s   "r   r   rg   G   sS      S\  K  J  J  J   r    rX   rY   rZ   rd   s   @r   r   r   G   sD     / /   $ $
2 
2_  r    c                      a  ] tR t^t o RtRV 3R lR lltV 3R lR lt]V 3R lR l4       t]V 3R	 lR
 l4       t	]V 3R lR l4       t
V 3R lR ltV 3R ltRtV tR# )r   zGEager device matcher, compiles the input ``regex`` at
initialisation.

Nc                   < V ^8  d   QhRS[ RS[S[R,          ,          RS[S[ ,          RS[S[ ,          RS[S[ ,          RR/# )	r   r   
regex_flagir   brandmodelr   N)r   r   r   )r   r   s   "r   r   DeviceMatcher.__annotate__   s\     # ## WS\*# 	#
 }# }# 
#r    c                    \         P                  ! YR 8X  d   \         P                  M^ R7      V n        T;'       g    RV n        T;'       g    RV n        T;'       g    RV n        R# )r   )flagsr"   rA   N)r$   r%   
IGNORECASEr&   r   r   r   )r(   r   r   r   r   r   s   &&&&&&r   r)   DeviceMatcher.__init__   sM     zz*;
 nn[[b
]]d
r    c                6   < V ^8  d   QhRS[ RS[S[,          /# r,   )r   r   r   )r   r   s   "r   r   r      s      
 
3 
8F#3 
r    c                   V P                   P                  V4      ;p'       d_   \        V P                  V4      pVf   \	        RV 24      h\        V\        V P                  V4      \        V P                  V4      R7      # R # )Nz Unable to find device family in )r   r   r   )r&   r0   r   r   rp   r   r   r   rq   s   &&  r   r3   DeviceMatcher.__call__   su    ##B''1'dkk1-F~ #CB4!HIItzz1-tzz1- 
 r    c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   r      r8   r    c                .    V P                   P                   # r:   r;   r<   s   &r   r   DeviceMatcher.regex   r>   r    c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   r      s     9 9C 9r    c                X    V P                   \        P                  ,          '       d   R # R# )r   rA   )r   r$   r   r<   s   &r   r   DeviceMatcher.regex_flag   s    jj2==00s8b8r    c                    < V ^8  d   QhRS[ /# r6   )int)r   r   s   "r   r   r      s     " "s "r    c                .    V P                   P                  # r:   )r&   r   r<   s   &r   r   DeviceMatcher.flags   s    ||!!!r    c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   r      s     	6 	6# 	6r    c                n   R V P                   R8w  d   V P                   MR3RV P                  ;'       g    R3RV P                  R8w  d   V P                  MR3.pV P                  \        P
                  ,          '       d   RMRpVRP                  R V 4       4      ,           pRV P                  : V R	2# )
r   r"   Nr   r   z, "i"rA   c              3   D   "   T F  w  rVf   K  RV RV: 2x  K  	  R # 5irC   rE   rF   s   &  r   rJ   )DeviceMatcher.__repr__.<locals>.<genexpr>   s"     R&$!A~A3au~&rM   zDeviceMatcher(rN   )r   r   r   r   r$   r   rP   r   )r(   rR   iflagrS   s   &   r   rT   DeviceMatcher.__repr__   s    dkkT&9t{{tDdjj((D)DJJ$$6djjDA

  ::552rwwR&RRR

~dV155r    c                Z   < V ^8  d   Qh/ S[ S[,          ;R&   S[;R&   S[;R&   S[;R&   # )r   r&   r   r   r   r|   )r   r   s   "r   r   r      s:      S\  K  J  J r    )r   r   r   r&   )NNNN)r[   r\   r]   r^   r_   r)   r3   r`   r   r   r   rT   ra   rb   rc   rd   s   @r   r   r      sl     # #
 
 $ $ 9 9 " "	6 	6e  r    )r   r   r   )__all__r$   typingr   r   r   corer   r	   r
   r   utilsr   r   r   r   r   rE   r    r   <module>r      sO   
< 	 - - 0 0  :9wy) :9z92 92x;6GFO ;6r    