
    ci$                        d dl Z d dlmZ d dlmZ d dlmZ g dZej                  Zej                  Z G d dej                        Z
 G d d	e
      Z G d
 de
      Z G d de
      Z G d de      Z G d de
      Z G d de
      Z G d de
      Z G d de
      Z G d de      Z G d de
      Z G d de
      Z G d de
      Z G d  d!e
      Zy)"    N)error)tag)univ)NumericStringPrintableStringTeletexString	T61StringVideotexString	IA5StringGraphicStringVisibleStringISO646StringGeneralStringUniversalString	BMPString
UTF8Stringc                   F    e Zd ZdZd Zd Zd ZddZddZd Z	ddZ
d	 Zy
)AbstractCharacterStringa  Creates |ASN.1| schema or value object.

    |ASN.1| class is based on :class:`~pyasn1.type.base.SimpleAsn1Type`,
    its objects are immutable and duck-type :class:`bytes`.
    When used in octet-stream context, |ASN.1| type assumes
    "|encoding|" encoding.

    Keyword Args
    ------------
    value: :class:`str`, :class:`bytes` or |ASN.1| object
        :class:`str`, alternatively :class:`bytes`
        representing octet-stream of serialised unicode string
        (note `encoding` parameter) or |ASN.1| class instance.
        If `value` is not given, schema object will be created.

    tagSet: :py:class:`~pyasn1.type.tag.TagSet`
        Object representing non-default ASN.1 tag(s)

    subtypeSpec: :py:class:`~pyasn1.type.constraint.ConstraintsIntersection`
        Object representing non-default ASN.1 subtype constraint(s). Constraints
        verification for |ASN.1| type occurs automatically on object
        instantiation.

    encoding: :py:class:`str`
        Unicode codec ID to encode/decode
        :class:`str` the payload when |ASN.1| object is used
        in octet-stream context.

    Raises
    ------
    ~pyasn1.error.ValueConstraintError, ~pyasn1.error.PyAsn1Error
        On constraint violation or bad initializer.
    c                 ,    t        | j                        S N)str_valueselfs    7/tmp/pip-target-z3e9_cxr/lib/python/pyasn1/type/char.py__str__zAbstractCharacterString.__str__8   s    4;;    c                     	 | j                   j                  | j                        S # t        $ r5}t	        j
                  d| j                   d| j                  |      d }~ww xY w)NzCan't encode string '' with codec )r   encodeencodingUnicodeEncodeErrorr   PyAsn1UnicodeEncodeError)r   excs     r   	__bytes__z!AbstractCharacterString.__bytes__;   sX    	;;%%dmm44! 	00T]]458 	s   $' 	A%0A  A%c                    	 t        |t              r|S t        |t              r|j                  | j                        S t        |t
        t        f      r| j                  t        |            S t        |t        j                        r)|j                         j                  | j                        S t        |      S # t        t        f$ r+}t        j                  d|d| j                  |      d }~ww xY w)NzCan't decode string 'r   )
isinstancer   bytesdecoder!   tuplelistprettyInr   OctetStringasOctetsUnicodeDecodeErrorLookupErrorr   PyAsn1UnicodeDecodeError)r   valuer$   s      r   r,   z AbstractCharacterString.prettyInD   s    	%%E5)||DMM22EE4=1}}U5\22E4#3#34~~'..t}}==5z!"K0 	00t}}./2 	s.   B= *B= /B= /AB= 2
B= =C7&C22C7c                     t        |       S r   )r(   r   paddings     r   r.   z AbstractCharacterString.asOctetsW   s    T{r   c                 *    t        t        |             S r   )r*   r(   r4   s     r   	asNumbersz!AbstractCharacterString.asNumbersZ   s    U4[!!r   c                     |S r    )r   r2   s     r   	prettyOutz!AbstractCharacterString.prettyOuta   s    r   c                     | j                  | j                        }|| j                  ur|S t        j                  |       S r   )r:   r   r   r   )r   scoper2   s      r   prettyPrintz#AbstractCharacterString.prettyPrintd   s6    t{{+#L&..t44r   c                 ,    t        | j                        S r   )reversedr   r   s    r   __reversed__z$AbstractCharacterString.__reversed__m   s    $$r   N)T)r   )__name__
__module____qualname____doc__r   r%   r,   r.   r7   r:   r=   r@   r9   r   r   r   r      s0     D &"5%r   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      us-asciiNrA   rB   rC   r   rD   tagSettagImplicitlyr   TagtagClassUniversaltagFormatSimpler!   	getTypeIdtypeIdr9   r   r   r   r   q   Z    %--G
 %++99%%s':':B?F H %..0Fr   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      rG   NrH   r9   r   r   r   r      rP   r   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      
iso-8859-1NrH   r9   r   r   r   r      Z    %--G
 %++99%%s':':B?F H %..0Fr   r   c                   D    e Zd Zej                  Zej                         Zy)r	   N)rA   rB   rC   r   rD   r   rN   rO   r9   r   r   r	   r	          ##G %..0Fr   r	   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r
      rU   NrH   r9   r   r   r
   r
      rV   r   r
   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      rG   NrH   r9   r   r   r   r      rP   r   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      rU   NrH   r9   r   r   r   r      rV   r   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      rG   NrH   r9   r   r   r   r      rP   r   r   c                   D    e Zd Zej                  Zej                         Zy)r   N)rA   rB   rC   r   rD   r   rN   rO   r9   r   r   r   r      rX   r   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      rU   NrH   r9   r   r   r   r      rV   r   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      z	utf-32-beNrH   r9   r   r   r   r      Z    %--G
 %++99%%s':':B?F H %..0Fr   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      z	utf-16-beNrH   r9   r   r   r   r     rf   r   r   c                       e Zd Zej                  Zej
                  j                   ej                  ej                  ej                  d            ZdZej                         Zy)r      zutf-8NrH   r9   r   r   r   r     sZ    %--G
 %++99%%s':':B?F H %..0Fr   r   )syspyasn1r   pyasn1.typer   r   __all__NoValuenoValuer-   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r9   r   r   <module>rq      s       J ,,
,,Y%d.. Y%x1+ 11- 11+ 11 11, 11' 11+ 11+ 11= 11+ 11- 11' 11( 1r   