+
    ,i`  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IoportconQueryc                   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   al  
Ioportcon context query.

Parameter:
policy          The policy to query.

Keyword Parameters/Class attributes:
ports           A 2-tuple of the port range to match. (Set both to
                the same value for a single port)
ports_subset    If true, the criteria will match if it is a subset
                of the ioportcon's range.
ports_overlap   If true, the criteria will match if it overlaps
                any of the ioportcon's range.
ports_superset  If true, the criteria will match if it is a superset
                of the ioportcon's range.
ports_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   IoportconRangeformat__classdict__   "=/usr/lib64/python3.14/site-packages/setools/ioportconquery.py__annotate__IoportconQuery.__annotate__?   s      y//$6     c                s    V P                   # N_ports)selfs   &r   portsIoportconQuery.ports>   s    {{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(      5c?T1 d 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    #22E:DKDKr   c                sD   < V ^8  d   QhRS[ S[P                  ,          /# )r   r   )r    r   Z	Ioportconr	   r   r   r   r   I   s      )"5"56 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 ioportcons.zGenerating results from zself.ports=z, self.ports_overlap=z, self.ports_subset=z, self.ports_superset=z, self.ports_proper=N)ZlogZinfoZpolicyZdebugr   ports_overlapports_subsetports_supersetports_properZ_match_context_debugZ
ioportconsr   Zmatch_rangeZ_match_contextZcontext)r   Z	ioportcons   & r   resultsZIoportconQuery.resultsI   s    0>?+$**&<););(==R@Q@Q?S T/--//D$2C2C1EG 	H!!$((+//1Izzz$"2"2OOJJ%%&&''%%#' #' &&y'8'899O 2s   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+2W 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 /3FLM NL  \\  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V((%*;*; Qr   