+
        h                        a  R t0 t ^ RIt^RIHtHt ^RIHt ^RIHt ^RI	H
t
HtHt Rt] ^ k Rt] ^k Rt] ^k R	t] ^k R
t] ^k Rt] ^k Rt] ^k Rt] ^k Rt] ^k  ! R R]4      tR# )    N)	exception	policyrep)TERuleQuery)CheckerModule)ConfigDescriptorConfigSetDescriptorConfigPermissionSetDescriptorsourcetargettclasspermsexempt_sourceexempt_targetexpect_sourceexpect_targetAssertTEc            
         a a ] tR t^t oRtRt]! ]]]	]
]]]]34      t]]P$                  ,          ! R4      t]]P$                  ,          ! R4      t]]P,                  ,          ! RRRR7      t]! 4       t]]P4                  ,          ! RRRR7      t]]P4                  ,          ! RRRR7      t]]P4                  ,          ! RRRR7      t]]P4                  ,          ! RRRR7      tV3R lV 3R	 lltV3R
 lR lt Rt!Vt"V ;t## )r   zKChecker module for asserting a type enforcement allow rule exists (or not).	assert_telookup_type_or_attrlookup_classTF)strictexpandc                Z   < V ^8  d   QhRS[ P                  RS[RS[S[S[3,          RR/# )   policy	checknameconfigreturnN)r   SELinuxPolicystrdict)format__classdict__s   "?/usr/lib64/python3.14/site-packages/setools/checker/assertte.py__annotate__AssertTE.__annotate__4   s?     X Xy66 X3 Xc3hX,0X    c                  < \         SV `  WV4       VP                  \        4      V n        VP                  \
        4      V n        VP                  \        4      V n        VP                  \        4      V n
        VP                  \        4      V n        VP                  \        4      V n        VP                  \        4      V n        VP                  \"        4      V n        \'        V P                  V P                  V P                  V P                  34      '       g   \(        P*                  ! R 4      hV P                  V P                   ,          pV'       d5   V P,                  P/                  RRP1                  R V 4       4       24       V P                  V P$                  ,          pV'       d7   V P,                  P/                  RRP1                  R V 4       4       24       R# R# )zEAt least one of source, target, tclass, or perms options must be set.z,Overlap in expect_source and exempt_source: z, c              3   8   "   T F  qP                   x  K  	  R # 5iNname.0is   & r$   	<genexpr>$AssertTE.__init__.<locals>.<genexpr>I        &T7S!vv7S   z,Overlap in expect_target and exempt_target: c              3   8   "   T F  qP                   x  K  	  R # 5ir*   r+   r-   s   & r$   r0   r1   N   r2   r3   N)super__init__get
SOURCE_OPTr
   
TARGET_OPTr   	CLASS_OPTr   	PERMS_OPTr   EXEMPT_SRC_OPTr   EXEMPT_TGT_OPTr   EXPECT_SRC_OPTr   EXPECT_TGT_OPTr   anyr   InvalidCheckValueloginfojoin)selfr   r   r   source_exempt_expect_overlaptarget_exempt_expect_overlap	__class__s   &&&&  r$   r6   AssertTE.__init__4   sq    	F3jj,jj,jj+ZZ	*
#ZZ7#ZZ7#ZZ7#ZZ7DKKdkk4::FGG--WY Y (,'9'9D<N<N'N$'HHMMH!YY&T7S&TTUW X (,'9'9D<N<N'N$'HHMMH!YY&T7S&TTUW X (r'   c                T   < V ^8  d   QhRS[ S[P                  S[,          ,          /# )r   r   )listr   	AnyTERuler    )r"   r#   s   "r$   r%   r&   P   s$     ) )T)--34 )r'   c           	        \        V P                  V P                  V P                  V P                  34      '       g   Q R 4       hV P
                  P                  R4       \        V P                  V P                  V P                  V P                  V P                  RR7      p\        V P                  4      p\        V P                  4      p. p\        VP                  4       4       F  p\        VP                  P                  4       4      p\        VP                  P                  4       4      pW&,          pW7,          pW`P                  ,
          V P                  ,
          '       dW   WpP                  ,
          V P                   ,
          '       d.   V P#                  \%        V4      4       VP'                  V4       K  V P)                  \%        V4      4       K  	  V F+  pRV R2p	V P#                  V	4       VP'                  V	4       K-  	  V F+  pRV R2p	V P#                  V	4       VP'                  V	4       K-  	  V P
                  P+                  V R24       V# )z'AssertTe no options set, this is a bug.z!Checking TE allow rule assertion.)r
   r   r   r   ruletypezExpected rule with source "z" not found.zExpected rule with target "z failure(s))allow)r@   r
   r   r   r   rB   rC   r   r   setr   r   sortedresultsr   r   r   log_failr    appendlog_okdebug)
rE   queryunseen_sourcesunseen_targetsfailuresrulesrcstgtsitemfailures
   &         r$   runAssertTE.runP   s   DKKdkk4::FGG 	65	6G 	9:DKK#';;#';;#';;"&**%/1 T//0T//0465==?+Dt{{))+,Dt{{))+,D"N"N)))D,>,>>>...1C1CCCc$i(%CI& , #D4TF-HGMM'"OOG$ #
 #D4TF-HGMM'"OOG$ #
 	(;/0r'   )r   r   r   r   r   r
   r   r   )$__name__
__module____qualname____firstlineno____doc__
check_type	frozensetr8   r9   r:   r;   r<   r=   r>   r?   check_configr   r   
TypeOrAttrr
   r   r   ObjClassr   r	   r   Typer   r   r   r   r6   r`   __static_attributes____classdictcell____classcell__)rH   r#   s   @@r$   r   r      s    UJj*iN,nnN OL i2234IJFi2234IJF !3!34^DY^_F)+E'	78M?D?CEM (	78M?D?CEM (	78M?C?CEM (	78M?C?CEMX X8) ) )r'   c                   V ^8  d   Qh/ ^ \         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d   \        P                  \        ,          ;R&   ^\         9   d,   \        P                  \        \        R	3,          ,          ;R
&   # )r   r8   r9   r:   r;   r<   r=   r>   r?   .__all__)__conditional_annotations__typingFinalr    tuple)r"   s   "r$   r%   r%      s    ) (FLL (  ) (FLL (  ( '6<< '  ' &6<< &  4 3S! 3  4 3S! 3  4 3S! 3  4 3S! 3   7 6eCHo	& 6! r'   )r   )rr   rs    r   r   terulequeryr   checkermoduler   descriptorsr   r   r	   r8   r9   r:   r;   r<   r=   r>   r?   rq   r   r%   )rr   s   @r$   <module>rz      sr     # % ( ] ] (
 ( (
 ('	 '&	 &$3 3$3 3$3 3$3 3)6 6_} _r'   