
    hF
                     (   S SK r S SKrS SKr\R                  " S5      r\ R
                  " S5      r\ R
                  " S5      rS\4S jr	SS\
S\4S	 jjrS\
S\
4S
 jrS\
S\4S jrS\
S\
4S jrS\
S\4S jrS\
S\
4S jrSSSSSS.rS\
S\
4S jrg)    Nsurrogateescapez(\\U\+[A-F0-9]{4})z(\\M\+[1-5][A-F0-9]{4})excc                    [        U [        [        45      (       a  SnU R                  U R                  U R
                    HS  n[        U5      nUS::  a
  USU-  -  nM  SUs=::  a  S::  a  O  O[        U 5      s  $ US::  a
  USU-  -  nMK  USU-  -  nMU     XR
                  4$ [        S	U R                  R                   35      e)
N    z\x%02xi  i  i  z\U+%04xz\U+%08xzCan't handle )
isinstanceUnicodeEncodeErrorUnicodeTranslateErrorobjectstartendordsurrogate_escape	TypeError	__class____name__)r   scxs       F/var/www/html/env/lib/python3.13/site-packages/ezdxf/lldxf/encoding.pydxf_backslash_replacer      s    #*,ABCCCII0AAADyY]"1&&',,fZ!^#Z!^# 1 ''z-(>(>'?@AA    r   returnc                 "    U R                  USS9$ )z)Shortcut to use the correct error handler
dxfreplace)errors)encode)r   encodings     r   r   r       s    88H\822r   c                 b    U R                  S5      (       a  [        [        U SS  S5      5      $ U $ )Nz\U+      )
startswithchrintr   s    r   _decoder&   %   s-    ||F3qub>""r   c                 J    [        [        R                  " [        U 5      5      $ )zHReturns ``True``  if string `s` contains ``\U+xxxx`` encoded characters.)boolresearchBACKSLASH_UNICODEr%   s    r   has_dxf_unicoder,   ,   s    		+Q/00r   c                 d    SR                  S [        R                  " [        U 5       5       5      $ )z&Decode ``\U+xxxx`` encoded characters.r   c              3   8   #    U  H  n[        U5      v   M     g 7fN)r&   .0parts     r   	<genexpr>%decode_dxf_unicode.<locals>.<genexpr>4   s     L-KT74==-K   )joinr)   splitr+   r%   s    r   decode_dxf_unicoder8   1   s%     77LRXX6G-KLLLr   c                 J    [        [        R                  " [        U 5      5      $ )zSReturns ``True`` if string `s` contains MIF encoded (``\M+cxxxx``) characters.
    )r(   r)   r*   MIF_ENCODEDr%   s    r   has_mif_encodingr;   7   s     		+q)**r   c                 d    SR                  S [        R                  " [        U 5       5       5      $ )z+Decode MIF encoded characters ``\M+cxxxx``.r   c              3   8   #    U  H  n[        U5      v   M     g 7fr/   )_decode_mifr0   s     r   r3   (decode_mif_to_unicode.<locals>.<genexpr>?   s     J1I;t$$1Ir5   )r6   r)   r7   r:   r%   s    r   decode_mif_to_unicoder@   =   s"    77J+q1IJJJr   cp932cp950cp949cp1391cp936)12345c                     U R                  S5      (       aP   [        U S      n[        R                  " U5      n[        R
                  " U SS  5      nUR                  U5      S   $ U $ ! [         a     U $ f = f)Nz\M+r       r   )r"   MIF_CODE_PAGEcodecslookupbinascii	unhexlifydecode	Exception)r   	code_pagecodec	byte_datas       r   r>   r>   L   s|    ||F	%ad+IMM),E **1QR51I<<	*1-- H  	H	s   AA) )
A76A7)utf8)r)   rN   rP   lookup_errorr   compiler+   r:   rS   r   strbytesr   r&   r(   r,   r8   r;   r@   rM   r>    r   r   <module>r]      s    
  &&'89 JJ45 jj34By B(3c 3u 3
s s 1s 1t 1
M# M# M+ + +KS KS K 
					3 	3 	r   