+
    ,iD  c                   s   a  R t0 t ^ RIHt ^ RIt^RIHtHtHtHt Rt	] ^ k  ! R R]P                  ]P                  4      tR# )i    )IterableN)mixins	policyrepqueryutilIomemconQueryc                   s   a  ] tR t^t o RtRtRtRtRtRt	]
V 3R lR l4       t]P                  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   as  
Iomemcon context query.

Parameter:
policy          The policy to query.

Keyword Parameters/Class attributes:
addr            A 2-tuple of the memory addr range to match. (Set both to
                the same value for a single mem addr)
addr_subset     If true, the criteria will match if it is a subset
                of the iomemcon's range.
addr_overlap    If true, the criteria will match if it overlaps
                any of the iomemcon's range.
addr_superset   If true, the criteria will match if it is a superset
                of the iomemcon's range.
addr_proper     If true, use proper superset/subset operations.
                No effect if not using set operations.

user            The criteria to match the context's user.
user_regex      If true, regular expression matching
                will be used on the user.

role            The criteria to match the context's role.
role_regex      If true, regular expression matching
                will be used on the role.

type_           The criteria to match the context's type.
type_regex      If true, regular expression matching
                will be used on the type.

range_          The criteria to match the context's range.
range_subset    If true, the criteria will match if it is a subset
                of the context's range.
range_overlap   If true, the criteria will match if it overlaps
                any of the context's range.
range_superset  If true, the criteria will match if it is a superset
                of the context's range.
range_proper    If true, use proper superset/subset operations.
                No effect if not using set operations.
NFc                sB   < V ^8  d   QhRS[ P                  R,          /# )   returnN)r   IomemconRangeformat__classdict__   "</usr/lib64/python3.14/site-packages/setools/iomemconquery.py__annotate__IomemconQuery.__annotate__?   s      i--4     c                s    V P                   # N_addr)selfs   &r   addrIomemconQuery.addr>   s    zzr   c                sH   < V ^8  d   QhRS[ S[S[3,          R,          RR/# )r   valueNr   )tupleZintr	   r   r   r   r   C   s(      %S/D0 T r   c                sZ    V'       d   \         P                  ! V!  V n        R # R V n        R # r   )r   r   r   )r   r   s   &&r   r   r   B   s    "00%8DJDJr   c                sD   < V ^8  d   QhRS[ S[P                  ,          /# )r   r   )r    r   ZIomemconr	   r   r   r   r   I   s      )"4"45 r   c              #  s  "   V P                   P                  RV P                   24       V P                   P                  RV P                  : RV P
                  : RV P                  : RV P                  : RV P                  : 2
4       V P                  V P                   4       V P                  P                  4        F  pV P                  '       d`   \        P                  ! VP                  V P                  V P                  V P
                  V P                  V P                  4      '       g   Kt  V P                  VP                  4      '       g   K  Vx  K  	  R# 5i)z.Generator which yields all matching iomemcons.zGenerating results from z
self.addr=z, self.addr_overlap=z, self.addr_subset=z, self.addr_superset=z, self.addr_proper=N)ZlogZinfoZpolicyZdebugr   addr_overlapaddr_subsetaddr_supersetaddr_properZ_match_context_debugZ	iomemconsr   Zmatch_rangeZ_match_contextZcontext)r   Ziomemcons   & r   resultsZIomemconQuery.resultsI   s    0>?*$))%:(9(9';;Od>N>N=P Q.,,..B1A1A0CE 	F!!$((+--/Hyyy!1!1MMII$$%%&&$$"& "& &&x'7'788N 0s   D0E"3"E"E"c                sx   < V ^8  d   Qh/ S[ P                  R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )r   Nr   r   r   r   r   )r   r   Zboolr	   r   r   r   r      s[     V ""T)0W X Y Z [ \ ] ^ _ r   r   )Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r   r   r   Zpropertyr   Zsetterr   Z__annotate_func__Z__static_attributes__Z__classdictcell__)r      @r   r   r      sb     'R -1EKLMK  
[[  y  r   c                s    V ^8  d   Qh/ ^ \         9   d,   \        P                  \        \        R3,          ,          ;R&   # )r   .__all__)__conditional_annotations__typingZFinalr   Zstr)r
   s   "r   r   r      s+     $ $
 < ;eCHo	& ; %r   )r   )r    Zcollections.abcr    r!   Z r   r   r   r   r   ZMatchContextZPolicyQueryr   r   )r    r   r   <module>r"      s;   
 % $  , ,); ;QF''):): Qr   