
    'j                     z    d dl mZmZ d dlZddlT ddlmZ dddd	d
dddddddddZdddddZ G d d          Z	dS )    )DictTupleN   )*)crc8cp874cp932gbkcp949cp950cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257)%   &   '   (   )                !   "   #   $   i  i  i<  ia  )            c                   .    e Zd ZddefdZdefdZd ZdS )
FileHeaderFdatac                    || _         t          |          dk     rt          d          |d d                             d          }|t          vrt          d| d          || _        t          j        d|d          d	         }t          	                    |d
          | _
        |d         | _        t                      | _        | j        t          k    r|                     |           d S t          | j                  )Nr%   zNot a DWG file.ignore)errorsz6Not a DWG file or unsupported DWG version, signature: .z<h   r   r      )	crc_checklenDwgVersionErrordecodeSUPPORTED_VERSIONSversionstructunpack_fromcodepage_to_encodinggetencodingmaintenance_release_versiondictsections	ACAD_2000r2000_header)selfr(   r/   vercodepages        U/DATA/AppData/hermes/venv/lib/python3.11/site-packages/ezdxf/addons/dwg/fileheader.py__init__zFileHeader.__init__!   s    "t99q==!"34442A2hooXo..(((!OOOO    *4t<<Q?,008DD+/9(48FF<9$$d#####!$,///    c                 ,   d}t          j        d||          d         }|dz  }d}t          j        |          }t          |          D ]-}t          j        |||          \  }}}	||z  }||	f| j        |<   .| j        rjt          |d |         d          t          t          | j                           z  }
t          j        d||          d         }||
k    rt          d          |d	z  }|||t          z            }|d
k    rt          d          d S )N   z<Lr   r#   z<BLL)seedz<HzCRC error in file header.   s   N(^A_:M z&Corrupted DXF R13/14/2000 file header.)r5   r6   calcsizeranger<   r/   r   FILE_HEADER_MAGICr0   CRCErrorSENTINEL_SIZEDwgCorruptedFileHeader)r?   r(   indexsection_countfmtrecord_sizerecordnumseekersizecheckcrcsentinels                rB   r>   zFileHeader.r2000_header4   sS   #/dEBB1E
oc**M** 	0 	0F !' 23e D DC[ E"($DM#> 	< T&5&\***#C$6$678  $T477:Ce||:;;;
 556RS S )8  S SrD   c                    t          d| j                    t          d| j                    t          dt          | j                              t          d                    | j        d                              t          d                    | j        d                              t          d                    | j        d	                              d S )
NzDWG version: z
encoding: z	Records: z"Header: seeker {0[0]} size: {0[1]}r   z#Classes: seeker {0[0]} size: {0[1]}r   z#Objects: seeker {0[0]} size: {0[1]}rH   )printr4   r9   r0   r<   format)r?   s    rB   r[   zFileHeader.printV   s    ,dl,,---*4=**+++.#dm,,..///299$-:JKKLLL3::4=;KLLMMM3::4=;KLLMMMMMrD   N)F)__name__
__module____qualname__BytesrC   r>   r[    rD   rB   r'   r'       sd        0 0U 0 0 0 0&         DN N N N NrD   r'   )
typingr   r   r5   constrX   r   r7   rK   r'   ra   rD   rB   <module>rd      s                       	  " 	  <N <N <N <N <N <N <N <N <N <NrD   