+
     h  c                   sJ   R t ^ RIt^ RIHt ^b]P
                  P                  P                  ^R/3^c]P
                  P                  P                  ^ R/3^d]P
                  P                  P                  ^ R/3^e]P
                  P                  P                  ^R/3^g]P
                  P                  P                  ^ R/3^i]P
                  P                  P                  ^R^R	/3^j]P
                  P                  P                  ^R
^R^R^R^R^R/3^m]P
                  P                  P                  ^ R/3^n]P
                  P                  P                  ^ R/3^]P
                  P                  P                  ^R^R/3/
t
 ! R R]4      t]R8X  d*    ]! 4       t]! . ^^ 4       ]! . ^^4        ]! . ^^4       R# R#   ]P
                  P                  P                   d<   t]! ]! ]4      ]P"                  R R]P$                  R 2,           4        RtAR# RtAii ; i)av  Open Platform 2.1 error checker.

__author__ = "https://www.gemalto.com/"

Copyright 2001-2012 gemalto
Author: Jean-Daniel Aussel, mailto:jean-daniel.aussel@gemalto.com

This file is part of pyscard.

pyscard is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

pyscard is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with pyscard; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
N)ErrorCheckerzCard life cycle is CARD_LOCKEDzAuthentication failedzExecution errorzMemory failurezWrong length in LczSecurity status not satisfiedzConditions of use not satisfiedz Incorrect values in command datazFunction not supportedzApplication not foundzNot enough memory spacezIncorrect parameters P1-P2zReferenced data not foundzInstruction not supportedzClass not supportedzAlgorithm not supportedzInvalid key check valuec                   s*   a  ] tR t^Ot o RtR tRtV tR# )op21_ErrorCheckera  Open platform 2.1 error checker.

This error checker raises the following exceptions:
  - sw1 sw2
  - 62  83                  L{WarningProcessingException}
  - 63  00                  L{WarningProcessingException}
  - 64  00                  L{ExecutionErrorException}
  - 65  81                  L{ExecutionErrorException}
  - 67  00                  L{CheckingErrorException}
  - 69  82 85               L{CheckingErrorException}
  - 6A  80 81 82 84 86 88   L{CheckingErrorException}
  - 6D  00                  L{CheckingErrorException}
  - 6E  00                  L{CheckingErrorException}
  - 94  84 85               L{CheckingErrorException}

This checker does not raise exceptions on undefined sw1 values, e.g.:
  - sw1 sw2
  - 63  any
  - 6F  any

and on undefined sw2 values, e.g.:
  - sw1 sw2
  - 62  81 83
  - 64  any except 00


Use another checker in the error checking chain to raise exceptions
on these undefined values.
c                s    V\         9   d=   \         V,          w  rE\        V4      \        / 4      8X  d    WS,          pV! WW64      hR# R#   \         d     R# i ; i)zCalled to test data, sw1 and sw2 for error.

Derived classes must raise a L{smartcard.sw.SWExceptions} upon error.

@param data:       apdu response data
@param sw1:        apdu data status word 1
@param sw2:        apdu data status word 2
N)op21_SWZtypeZKeyError)ZselfZdatasw1sw2Z	exceptionZsw2dirZmessages   &&&&   E/usr/lib64/python3.14/site-packages/smartcard/sw/op21_ErrorChecker.py__call__Zop21_ErrorChecker.__call__n   s^     '> 'IF|tBx'$kG#Ds<< (    s   A
 
AA N)__name__Z
__module__Z__qualname__Z__firstlineno____doc__r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r   O   s     <     r   Z__main__ZxZ )r	   Zsmartcard.sw.SWExceptionsZ	smartcardZsmartcard.sw.ErrorCheckerr    ZswZSWExceptionsZWarningProcessingExceptionZExecutionErrorExceptionZCheckingErrorExceptionr   r   r   ZecsZeZprintZstrr   r   r   r
   r   <module>r      s[  0 ! 2 	!!<<	/0 	!!<<	&' 	!!99	 ! 	9<<$$<<tEU>V
W!!88	#$ 	!!8813	
 	!!884*)+.-	

 	!!88	*+ 	!!88	$% 	!!88	($0IJY0f/ /d zA

CD$D$/Bd  <<$$;; /c!f!%%!AEE!9--../s   4
G %H"'0HH"