§
    r�’jyæ  ã                   óä  — d dl mZ d dlZddlmZmZmZ ddlT ddlT ddl	T 	 d dl
mZ n# e$ r	 d dl
mZ Y nw xY wd dlmZ ej        Zd Zd dlZd	Z ed
¦  «        \  ZZZZZdZdddddddddddddddœZi Zi Ze                     ¦   «         D ]%\  ZZ e e¦  «        Z e e¦  «        Zeee<   eee<   Œ&[[[de!j"        d dddddddf
d„Z# G d„ de$¦  «        Z% G d „ d!e$¦  «        Z&d"„ Z'd'd$„Z(d%„ Z)d&„ Z*dS )(é    )Úprint_functionNé   )ÚcompdocÚ
formattingÚsheet)Ú*)Úperf_counter)Úclock©Úunpackiªº é   )éP   éF   é2   é-   é(   é   é   é   ú úúúúúúúúú	ú
úúú)ÚConsolidate_AreaÚ	Auto_OpenÚ
Auto_CloseÚExtractÚDatabaseÚCriteriaÚ
Print_AreaÚPrint_TitlesÚRecorderÚ	Data_FormÚAuto_ActivateÚAuto_DeactivateÚSheet_TitleÚ_FilterDatabaseTFc
                 óæ  — t          ¦   «         }
t          ¦   «         }	 |                     | |||||||||	¬¦
  «
         t          ¦   «         }||
z
  |_        |                     t
          ¦  «        }|st          d¦  «        ‚|t          vrt          dt          |         z  ¦  «        ‚||_	        |dk    r5|rt          |j        d¦  «         dx|_        }|                     ¦   «          n{|dk    r5|                     ¦   «          |rt          |j        d¦  «         dx|_        }n@|                     ¦   «          d„ |j        D ¦   «         |_        |s|                     ¦   «          t%          |j        ¦  «        |_        |dk    r&|j        d	k    rt          |j        d
|j        ¦  «         t          ¦   «         }||z
  |_        n#  |                     ¦   «          ‚ xY w|s|                     ¦   «          |S )N)
ÚfilenameÚfile_contentsÚlogfileÚ	verbosityÚuse_mmapÚencoding_overrideÚformatting_infoÚ	on_demandÚragged_rowsÚignore_workbook_corruptionz#Can't determine file's BIFF versionz BIFF version %s is not supportedr   z`*** WARNING: on_demand is not supported for this Excel version.
*** Setting on_demand to False.
Fr   c                 ó   — g | ]}d ‘ŒS ©N© )Ú.0Úshs     ú7C:\Projects\DSCons\.venv\Lib\site-packages\xlrd\book.pyú
<listcomp>z%open_workbook_xls.<locals>.<listcomp>i   s   € Ð=Ð=Ð= r˜dÐ=Ð=Ð=ó    r   z|*** WARNING: Excel 4.0 workbook (.XLW) file contains %d worksheets.
*** Book-level data will be that of the last worksheet.
)r	   ÚBookÚbiff2_8_loadÚload_time_stage_1ÚgetbofÚXL_WORKBOOK_GLOBALSÚ	XLRDErrorÚSUPPORTED_VERSIONSÚbiff_text_from_numÚbiff_versionÚfprintfr5   r:   Úfake_globals_get_sheetÚparse_globalsÚ_sheet_namesÚ_sheet_listÚ
get_sheetsÚlenÚnsheetsÚload_time_stage_2Úrelease_resources)r3   r5   r6   r7   r4   r8   r9   r:   r;   r<   Út0ÚbkÚt1rM   Út2s                  rB   Úopen_workbook_xlsr\   ;   sH  € õ 
‰Œ€BÝ	‰Œ€Bð5Ø
�ŠØ¨]Ø y¸8Ø/Ø+ØØ#Ø'Að 	ñ 	
ô 	
ð 	
õ ‰^Œ^ˆØ! B™wˆÔØ—y’yÕ!4Ñ5Ô5ˆØð 	CÝÐAÑBÔBÐBØÕ1Ð1Ð1ÝØ2Ý$ \Ô2ñ3ñô ð ð 'ˆŒØ˜2ÒÐàð 1Ý˜œ
ð8ñ9ô 9ð 9ð ,1Ð0�”˜yØ×%Ò%Ñ'Ô'Ð'Ð'Ø˜RÒÐà×ÒÑÔÐØð 1Ý˜œ
ð %Hñ Iô Ið Ià+0Ð0�”˜yøà×ÒÑÔÐØ=Ð=¨R¬_Ð=Ñ=Ô=ˆBŒNØð  Ø—’‘”�Ý˜œÑ(Ô(ˆŒ
Ø˜2ÒÐ "¤*¨q¢. .ÝØ”
ðLà”
ñ	ô ð õ ‰^Œ^ˆØ! B™wˆÔÐøðØ
×ÒÑÔÐØøøøàð Ø
×ÒÑÔÐØ€Is   žF"G ÇGc                   óp   — e Zd ZdZdgZdZdZdZdZdZ	dZ
dZdZdZdZ ed¦  «        ZdZdZdZd„ Zdd
„ZdS )ÚNamezÈ
    Information relating to a named reference, formula, macro, etc.

    .. note::

      Name information is **not** extracted from files older than
      Excel 5.0 (``Book.biff_version < 50``)
    ÚstackNr   Ú rD   éÿÿÿÿc                 óâ  — | j         }|r¶|j        }|j        }|t          k    r�t	          |¦  «        dk    rŠ|d         }d|j        cxk    r|j        dz
  k    rhn ne|j        |j        dz
  k    rR|j	        |j
        dz
  k    r?| j                             |j        ¦  «        }|                     |j        |j	        ¦  «        S |                      | j        j        dd¬¦  «         t!          d¦  «        ‚)a:  
        This is a convenience method for the frequent use case where the name
        refers to a single cell.

        :returns: An instance of the :class:`~xlrd.sheet.Cell` class.

        :raises xlrd.biffh.XLRDError:
          The name is not a constant absolute reference
          to a single cell.
        r   r   ú=== Dump of Name object ===ú======= End of dump =======©ÚheaderÚfooterz2Not a constant absolute reference to a single cell)ÚresultÚkindÚvalueÚoREFrT   ÚshtxloÚshtxhiÚrowxloÚrowxhiÚcolxloÚcolxhiÚbookÚsheet_by_indexÚcellÚdumpr5   rJ   )ÚselfÚresri   rj   Úref3drA   s         rB   rt   z	Name.cellÄ   sý   € ð ŒkˆØð 
	?à”8ˆDØ”IˆEØ•tŠ|ˆ|¥ E¡
¤
¨a¢ Ø˜aœ�Ø˜œÐ9Ð9Ò9Ð9¨¬¸Ñ)9Ò9Ð9Ð9Ð9Ð9Øœ¨¬°qÑ(8Ò8Ð8Øœ¨¬°qÑ(8Ò8Ð8Øœ×1Ò1°%´,Ñ?Ô?�BØŸ7š7 5¤<°´Ñ>Ô>Ð>Ø�	Š	ØŒIÔØ0Ø0ð 	ñ 	
ô 	
ð 	
õ
 ÐLÑMÔMÐMrD   Tc                 ó$  — | j         }|�rV|j        }|j        }|t          k    �r<t	          |¦  «        dk    �r(|d         }d|j        cxk    r|j        dz
  k    �rn �n| j                             |j        ¦  «        }|s||j	        |j
        |j        |j        fS t          |j	        |j        ¦  «        }t          |t          |j
        |j        ¦  «        ¦  «        }t          |j        |j        ¦  «        }	t          |	t          |j        |j        ¦  «        ¦  «        }
d|cxk    r|cxk    r|j        k    sn J ‚d|	cxk    r|
cxk    r|j        k    sn J ‚||||	|
fS |                      | j        j        dd¬¦  «         t'          d¦  «        ‚)aÌ  
        This is a convenience method for the use case where the name
        refers to one rectangular area in one worksheet.

        :param clipped:
          If ``True``, the default, the returned rectangle is clipped
          to fit in ``(0, sheet.nrows, 0, sheet.ncols)``.
          it is guaranteed that ``0 <= rowxlo <= rowxhi <= sheet.nrows`` and
          that the number of usable rows in the area (which may be zero) is
          ``rowxhi - rowxlo``; likewise for columns.

        :returns: a tuple ``(sheet_object, rowxlo, rowxhi, colxlo, colxhi)``.

        :raises xlrd.biffh.XLRDError:
           The name is not a constant absolute reference
           to a single area in a single sheet.
        r   r   rc   rd   re   zDNot a constant absolute reference to a single area in a single sheet)rh   ri   rj   rk   rT   rl   rm   rr   rs   rn   ro   rp   rq   ÚminÚnrowsÚmaxÚncolsru   r5   rJ   )rv   Úclippedrw   ri   rj   rx   rA   rn   ro   rp   rq   s              rB   Úarea2dzName.area2dâ   sº  € ð$ ŒkˆØñ 	>à”8ˆDØ”IˆEØ•tŠ|‰|¥ E¡
¤
¨a¢¡Ø˜aœ�Ø˜œÐ8Ð8Ò8Ð8¨¬°qÑ(8Ò8Ñ8Ð8Ð8Ñ8Øœ×1Ò1°%´,Ñ?Ô?�BØ"ð ZØ! 5¤<°´¸u¼|ÈUÌ\ÐYÐYÝ  ¤¨r¬xÑ8Ô8�FÝ  ­¨U¬\¸2¼8Ñ)DÔ)DÑEÔE�FÝ  ¤¨r¬xÑ8Ô8�FÝ  ­¨U¬\¸2¼8Ñ)DÔ)DÑEÔE�FØ Ð<Ð<Ò<Ð<¨&Ð<Ð<Ò<Ð<°B´HÒ<Ð<Ð<Ð<Ð<Ð<Ø Ð<Ð<Ò<Ð<¨&Ð<Ð<Ò<Ð<°B´HÒ<Ð<Ð<Ð<Ð<Ð<Ø˜v v¨v°vÐ=Ð=Ø�	Š	ØŒIÔØ0Ø0ð 	ñ 	
ô 	
ð 	
õ
 Ð^Ñ_Ô_Ð_rD   ©T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú_repr_theserr   ÚhiddenÚfuncÚvbasicÚmacroÚcomplexÚbuiltinÚ	funcgroupÚbinaryÚ
name_indexÚUNICODE_LITERALÚnameÚraw_formulaÚscoperh   rt   r   r?   rD   rB   r^   r^      s½   € € € € € ðð ð �)€KØ€Dð €Fð €Dð €Fð €Eð
 €Gð €Gð €Ið
 €Fð €Jð ˆ?˜2ÑÔ€Dð €Kð €Eð €FðNð Nð Nð<)`ð )`ð )`ð )`ð )`ð )`rD   r^   c            
       ó‚  — e Zd ZdZdZdZdZg ZdZdZ	dZ
 ed¦  «        Zg Zg Zg Zi Zi Zi Zg ZdZdZd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z i Z!i Z"d„ Z#dde$j%        dddddddf
d„Z&d„ Z'd„ Z(d„ Z)d„ Z*d1d„Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d „ Z1d!„ Z2d"„ Z3d#„ Z4d$„ Z5d%„ Z6d&„ Z7d'„ Z8d(„ Z9d)„ Z:d*„ Z;d+„ Z<d,„ Z=d-„ Z>d.„ Z?d/„ Z@d0„ ZAdS )2rE   zÒ
    Contents of a "workbook".

    .. warning::

      You should not instantiate this class yourself. You use the :class:`Book`
      object that was returned when you called :func:`~xlrd.open_workbook`.
    r   N©r   r   r`   g      ð¿c                 ó’   — t          | j        ¦  «        D ]$}| j        |         s|                      |¦  «         Œ%| j        dd…         S )zt
        :returns: A list of all sheets in the book.

        All sheets not already loaded will be loaded.
        N)ÚxrangerU   rR   Ú	get_sheet©rv   Úsheetxs     rB   ÚsheetszBook.sheets²  sR   € õ ˜Tœ\Ñ*Ô*ð 	'ð 	'ˆFØÔ# FÔ+ð 'Ø—’˜vÑ&Ô&Ð&øØÔ   Ô"Ð"rD   c                 óF   — | j         |         p|                      |¦  «        S )zr
        :param sheetx: Sheet index in ``range(nsheets)``
        :returns: A :class:`~xlrd.sheet.Sheet`.
        )rR   r—   r˜   s     rB   rs   zBook.sheet_by_index½  s#   € ð
 Ô Ô'ÐA¨4¯>ª>¸&Ñ+AÔ+AÐArD   c              #   óf   K  — t          | j        ¦  «        D ]}|                      |¦  «        V — ŒdS )z©
        Makes iteration through sheets of a book a little more straightforward.
        Don't free resources after use since it can be called like `list(book)`
        N)ÚrangerU   rs   )rv   Úis     rB   Ú__iter__zBook.__iter__Ä  sH   è è € õ
 �t”|Ñ$Ô$ð 	)ð 	)ˆAØ×%Ò% aÑ(Ô(Ð(Ð(Ð(Ð(ð	)ð 	)rD   c                 ó¤   — 	 | j                              |¦  «        }n # t          $ r t          d|z  ¦  «        ‚w xY w|                      |¦  «        S )zp
        :param sheet_name: Name of the sheet required.
        :returns: A :class:`~xlrd.sheet.Sheet`.
        úNo sheet named <%r>)rQ   ÚindexÚ
ValueErrorrJ   rs   )rv   Ú
sheet_namer™   s      rB   Úsheet_by_namezBook.sheet_by_nameÌ  sg   € ð
	@ØÔ&×,Ò,¨ZÑ8Ô8ˆFˆFøÝð 	@ð 	@ð 	@ÝÐ1°JÑ>Ñ?Ô?Ð?ð	@øøøà×"Ò" 6Ñ*Ô*Ð*s   ‚ �:c                 ó€   — t          |t          ¦  «        r|                      |¦  «        S |                      |¦  «        S )z¡
        Allow indexing with sheet name or index.
        :param item: Name or index of sheet enquired upon
        :return: :class:`~xlrd.sheet.Sheet`.
        )Ú
isinstanceÚintrs   r¥   )rv   Úitems     rB   Ú__getitem__zBook.__getitem__×  s>   € õ �d�CÑ Ô ð 	,Ø×&Ò& tÑ,Ô,Ð,à×%Ò% dÑ+Ô+Ð+rD   c                 ó    — | j         dd…         S )zÁ
        :returns:
          A list of the names of all the worksheets in the workbook file.
          This information is available even when no sheets have yet been
          loaded.
        N)rQ   ©rv   s    rB   Úsheet_nameszBook.sheet_namesâ  s   € ð Ô    Ô#Ð#rD   c                 óÞ   — t          |t          ¦  «        r|}n<	 | j                             |¦  «        }n # t          $ r t          d|z  ¦  «        ‚w xY wt          | j        |         ¦  «        S )z·
        :param sheet_name_or_index: Name or index of sheet enquired upon
        :returns: ``True`` if sheet is loaded, ``False`` otherwise.

        .. versionadded:: 0.7.1
        r¡   )r§   r¨   rQ   r¢   r£   rJ   ÚboolrR   ©rv   Úsheet_name_or_indexr™   s      rB   Úsheet_loadedzBook.sheet_loadedë  sˆ   € õ Ð)­3Ñ/Ô/ð 	MØ(ˆFˆFðMØÔ*×0Ò0Ð1DÑEÔE��øÝð Mð Mð MÝÐ 5Ð8KÑ KÑLÔLÐLðMøøøå�DÔ$ VÔ,Ñ-Ô-Ð-ó	   š5 µAc                 óÂ   — t          |t          ¦  «        r|}n<	 | j                             |¦  «        }n # t          $ r t          d|z  ¦  «        ‚w xY wd| j        |<   dS )zu
        :param sheet_name_or_index: Name or index of sheet to be unloaded.

        .. versionadded:: 0.7.1
        r¡   N)r§   r¨   rQ   r¢   r£   rJ   rR   r°   s      rB   Úunload_sheetzBook.unload_sheetû  s…   € õ Ð)­3Ñ/Ô/ð 	MØ(ˆFˆFðMØÔ*×0Ò0Ð1DÑEÔE��øÝð Mð Mð MÝÐ 5Ð8KÑ KÑLÔLÐLðMøøøà#'ˆÔ˜Ñ Ð Ð r³   c                 ó  — d| _         t          | j        d¦  «        r| j                             ¦   «          d| _        t          | j        d¦  «        r| j                             ¦   «          d| _        d| _        d| _        dS )a_  
        This method has a dual purpose. You can call it to release
        memory-consuming objects and (possibly) a memory-mapped file
        (:class:`mmap.mmap` object) when you have finished loading sheets in
        ``on_demand`` mode, but still require the :class:`Book` object to
        examine the loaded sheets. It is also called automatically (a) when
        :func:`~xlrd.open_workbook`
        raises an exception and (b) if you are using a ``with`` statement, when
        the ``with`` block is exited. Calling this method multiple times on the
        same object has no ill effect.
        r   ÚcloseN)Ú_resources_releasedÚhasattrÚmemr·   ÚfilestrÚ_sharedstringsÚ_rich_text_runlist_mapr¬   s    rB   rW   zBook.release_resources
  s~   € ð $%ˆÔ Ý�4”8˜WÑ%Ô%ð 	àŒH�NŠNÑÔÐØˆŒÝ�4”< Ñ)Ô)ð 	!ØŒL×ÒÑ Ô Ð ØˆŒØ"ˆÔØ&*ˆÔ#Ð#Ð#rD   c                 ó   — | S r>   r?   r¬   s    rB   Ú	__enter__zBook.__enter__!  s   € ØˆrD   c                 ó.   — |                       ¦   «          d S r>   )rW   )rv   Úexc_typeÚ	exc_valueÚexc_tbs       rB   Ú__exit__zBook.__exit__$  s   € Ø×ÒÑ Ô Ð Ð Ð rD   c                 óÒ  — g | _         g | _        g | _        d| _        g | _        g | _        i | _        d| _        d| _        d| _	        |  
                    ¦   «          d| _        d| _        d | _        d | _        g | _        g | _        g | _        i | _        i | _        d| _        g | _        d| _        g | _        g | _        i | _        g | _        g | _        i | _        d| _        d| _        d S )Nr   Fra   rD   )rR   rQ   Ú_sheet_visibilityrU   Ú_sh_abs_posnr¼   r½   Úraw_user_nameÚ_sheethdr_countÚbuiltinfmtcountÚinitialise_format_infoÚ_all_sheets_countÚ_supbook_countÚ_supbook_locals_inxÚ_supbook_addins_inxÚ_all_sheets_mapÚ_externsheet_infoÚ_externsheet_type_b57Ú_extnsht_name_from_numÚ_sheet_num_from_nameÚ_extnsht_countÚ_supbook_typesr¸   Úaddin_func_namesÚname_obj_listÚ
colour_mapÚpalette_recordÚxf_listÚstyle_name_maprº   r»   r¬   s    rB   Ú__init__zBook.__init__5  s  € ØˆÔØˆÔØ!#ˆÔØˆŒØˆÔØ ˆÔØ&(ˆÔ#Ø"ˆÔØ ˆÔØ!ˆÔØ×#Ò#Ñ%Ô%Ð%Ø!"ˆÔØˆÔØ#'ˆÔ Ø#'ˆÔ Ø!ˆÔØ!#ˆÔØ%'ˆÔ"Ø&(ˆÔ#Ø$&ˆÔ!ØˆÔØ ˆÔØ#$ˆÔ Ø "ˆÔØˆÔØˆŒØ ˆÔØˆŒØ ˆÔØˆŒØˆŒˆˆrD   TFc                 óú  — || _         || _        || _        || _        || _        || _        |	| _        |s÷t          |d¦  «        5 }|                     dd¦  «         | 	                    ¦   «         }|                     dd¦  «         |dk    rt          d¦  «        ‚| j        r@t          j        |                     ¦   «         |t          j        ¬¦  «        | _        || _        n2|                     ¦   «         | _        t#          | j        ¦  «        | _        d d d ¦  «         n# 1 swxY w Y   n|| _        t#          |¦  «        | _        d| _        | j        d d…         t&          j        k    r| j        | _        n·t'          j        | j        | j         |
¬¦  «        }dD ]@}|                     t1          |¦  «        ¦  «        \  | _        | _        | _        | j        r nŒAt          d	¦  «        ‚~| j        | j        ur5t3          | j        d
¦  «        r| j                             ¦   «          d| _        | j        | _        t8          r:t;          dt=          | j        ¦  «        | j        | j        fz  | j         ¬¦  «         d S d S )NÚrbr   é   zFile size is 0 bytes)Úaccessé   )r5   r<   )ÚWorkbookrE   z-Can't find workbook in OLE2 compound documentr·   rD   zmem: %s, base: %d, len: %d©Úfile)r5   r6   r7   r8   r9   r:   r;   ÚopenÚseekÚtellrJ   ÚmmapÚfilenoÚACCESS_READr»   Ú
stream_lenÚreadrT   Úbaser   Ú	SIGNATURErº   ÚCompDocÚlocate_named_streamr�   r¹   r·   Ú	_positionÚDEBUGÚprintÚtype)rv   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   ÚfÚsizeÚcdÚqnames                  rB   rF   zBook.biff2_8_loadV  sœ  € ð ˆŒØ"ˆŒØ ˆŒØ!2ˆÔØ.ˆÔØ"ˆŒØ&ˆÔàð 	1Ý�h Ñ%Ô%ð 8¨Ø—’�q˜!‘”�Ø—v’v‘x”x�Ø—’�q˜!‘”�Ø˜1’9�9Ý#Ð$:Ñ;Ô;Ð;Ø”=ð 8Ý#'¤9¨Q¯XªX©Z¬Z¸ÅdÔFVÐ#WÑ#WÔ#W�D”LØ&*�D”O�Oà#$§6¢6¡8¤8�D”LÝ&)¨$¬,Ñ&7Ô&7�D”Oð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8øð )ˆDŒLÝ! -Ñ0Ô0ˆDŒOàˆŒ	ØŒ<˜˜˜Ô�wÔ0Ò0Ð0à”|ˆDŒHˆHå” ¤°t´|Ø<VðXñ Xô XˆBà-ð Qð Q�à×2Ò2µ?À5Ñ3IÔ3IÑJÔJñ 5�”˜$œ) T¤_à”8ð Ø�Eðõ  Ð OÑPÔPÐPØØŒx˜tœ|Ð+Ð+Ý˜4œ<¨Ñ1Ô1ð )Ø”L×&Ò&Ñ(Ô(Ð(Ø"�”ØœˆŒÝð 	rÝÐ.µ$°t´x±.´.À$Ä)ÈTÌ_Ð1]Ñ]ÐdhÔdpÐqÑqÔqÐqÐqÐqð	rð 	rs   ÁCDÄD#Ä&D#c                 ó„   — i | _         g | _        d| _        d| _        dt          i| _        d| _        g | _        g | _        d S )Nr   )	Ú
format_mapÚformat_listÚxfcountÚactualfmtcountÚXL_CELL_NUMBERÚ_xf_index_to_xl_type_mapÚ_xf_epilogue_donerÛ   Ú	font_listr¬   s    rB   rË   zBook.initialise_format_info�  sG   € àˆŒØˆÔØˆŒØˆÔØ)*­NÐ(;ˆÔ%Ø!"ˆÔØˆŒØˆŒˆˆrD   c                 óÚ   — | j         }| j        ||dz   …         }t          |¦  «        }| xj         |z  c_         |dk     rt          S |\  }}t	          |¦  «        dz  t	          |¦  «        z  S )Nrà   râ   )rò   rº   rT   ÚMY_EOFÚ	BYTES_ORD)rv   ÚposÚbuff_twoÚlenbuffÚloÚhis         rB   Ú	get2byteszBook.get2bytesš  sk   € ØŒnˆØ”8˜C  A¡˜IÔ&ˆÝ�h‘-”-ˆØˆŒ˜'Ñ!ˆŒØ�QŠ;ˆ;ÝˆMØ‰ˆˆBÝ˜"‘” Ñ"¥i°¡m¤mÑ3Ð3rD   c                 óœ   — | j         }| j        }t          d|||dz   …         ¦  «        \  }}|dz  }||||z   …         }||z   | _         |||fS )Nú<HHé   ©rò   rº   r   )rv   r  rº   ÚcodeÚlengthÚdatas         rB   Úget_record_partszBook.get_record_parts¤  sb   € ØŒnˆØŒhˆÝ˜e S¨¨S°©U¨¤^Ñ4Ô4‰ˆˆfØˆq‰ˆØ�3�s˜6‘z�>Ô"ˆØ˜v™ˆŒØ�f˜dÐ#Ð#rD   c                 ó¬   — | j         }| j        }t          d|||dz   …         ¦  «        \  }}||k    rdS |dz  }||||z   …         }||z   | _         |||fS )Nr  r  )Nr   rD   r  )rv   Úreqd_recordr  rº   r  r  r  s          rB   Úget_record_parts_conditionalz!Book.get_record_parts_conditional­  sr   € ØŒnˆØŒhˆÝ˜e S¨¨S°©U¨¤^Ñ4Ô4‰ˆˆfØ�;ÒÐØ!�>Øˆq‰ˆØ�3�s˜6‘z�>Ô"ˆØ˜v™ˆŒØ�f˜dÐ#Ð#rD   c                 ó  — | j         rt          d¦  «        ‚|r| j        |         | _        |                      t
          ¦  «         t          j        | | j        | j        |         |¦  «        }| 	                    | ¦  «         || j
        |<   |S )Nz,Can't load sheets after releasing resources.)r¸   rJ   rÇ   rò   rH   ÚXL_WORKSHEETr   ÚSheetrQ   rí   rR   )rv   Ú	sh_numberÚ
update_posrA   s       rB   r—   zBook.get_sheet¸  s’   € ØÔ#ð 	LÝÐJÑKÔKÐKØð 	:Ø!Ô.¨yÔ9ˆDŒNØ�Š•LÑ!Ô!Ð!õ Œ[ØØŒNØÔ˜iÔ(Øñ	
ô 
ˆð 	�Š�‰ŒˆØ&(ˆÔ˜Ñ#Øˆ	rD   c                 ó  — t           r"t          d| j        | j        | j        ¬¦  «         t          t          | j        ¦  «        ¦  «        D ]A}t           r#t          d|| j        | j        | j        ¬¦  «         |                      |¦  «         ŒBd S )NzGET_SHEETS:rä   zGET_SHEETS: sheetno =)ró   rô   rQ   rÇ   r5   r–   rT   r—   )rv   Úsheetnos     rB   rS   zBook.get_sheetsÍ  s“   € åÐ_•%˜ tÔ'8¸$Ô:KÐRVÔR^Ð_Ñ_Ô_Ð_Ý�c $Ô"3Ñ4Ô4Ñ5Ô5ð 	$ð 	$ˆGÝÐv•eÐ3°W¸dÔ>OÐQUÔQbÐimÔiuÐvÑvÔvÐvØ�NŠN˜7Ñ#Ô#Ð#Ð#ð	$ð 	$rD   c                 óØ   — t          j        | ¦  «         t          d¦  «        }|g| _        dg| _        dg| _        | j                             d ¦  «         |                      ¦   «          d S )NzSheet 1r   )	r   Úinitialise_bookr�   rQ   rÇ   rÆ   rR   ÚappendrS   )rv   Úfake_sheet_names     rB   rO   zBook.fake_globals_get_sheetÔ  sl   € ÝÔ" 4Ñ(Ô(Ð(Ý)¨)Ñ4Ô4ˆØ,Ð-ˆÔØ˜CˆÔØ"# ˆÔØÔ×Ò Ñ%Ô%Ð%Ø�ŠÑÔÐÐÐrD   c           	      ó<  — | j         }|                      ¦   «          t          rt          | j        d||¦  «         |dk    rLt          |d| j        d¬¦  «        }d}t          }t          | j	        ¦  «        dk    r| j
        | j        z   }n_d}n\t          d|dd…         ¦  «        \  }}}|| j        z   }|t          k     rt          |d| j        d¬¦  «        }nt          |dd¬¦  «        }t          s| j        d	k    rt          | j        d
| j        ||||¦  «         | xj        dz  c_        |t          k    rb| j                             d¦  «         ddddœ                     |d¦  «        }t          s| j        dk    rt          | j        d|||¦  «         d S d S t          | j        ¦  «        }	| j                             |	¦  «         | j                             |¦  «         | j	                             |¦  «         | j                             |¦  «         |	| j        |<   d S )NzBOUNDSHEET: bv=%d data %r
r   r   r   ©Úlenlenra   z<iBBé   rà   zFBOUNDSHEET: inx=%d vis=%r sheet_name=%r abs_posn=%d sheet_type=0x%02x
zMacro sheetÚChartzVisual Basic module)r   rà   r%  ÚUNKNOWNzANOTE *** Ignoring non-worksheet data named %r (type 0x%02x = %s)
)rM   Úderive_encodingró   rN   r5   Úunpack_stringÚencodingÚXL_BOUNDSHEET_WORKSHEETrT   rÇ   Ú_sheetsoffsetrî   r   ÚBIFF_FIRST_UNICODEÚunpack_unicoder6   rÌ   rÐ   r   ÚgetrQ   rÆ   rÔ   )
rv   r  Úbvr¤   Ú
visibilityÚ
sheet_typeÚabs_posnÚoffsetÚdescrÚsnums
             rB   Úhandle_boundsheetzBook.handle_boundsheetÝ  sg  € àÔˆØ×ÒÑÔÐÝð 	KÝ�D”LÐ"?ÀÀTÑJÔJÐJØ�Š8ˆ8õ ' t¨Q°´ÀaÐHÑHÔHˆJØˆJÝ0ˆJÝ�4Ô$Ñ%Ô%¨Ò*Ð*ØÔ-°´	Ñ9��ð
 ��å-3°F¸DÀÀ1À¼IÑ-FÔ-FÑ*ˆF�J 
Ø ¤	Ñ)ˆHØÕ&Ò&Ð&Ý*¨4°°D´MÈ!ÐLÑLÔL�
�
å+¨D°!¸AÐ>Ñ>Ô>�
åð 	V�D”N aÒ'Ð'Ý�D”LØYØÔ&¨
°JÀÈ*ñVô Vð Vð 	ÐÔ !Ñ#ÐÔØÕ0Ò0Ð0ØÔ ×'Ò'¨Ñ+Ô+Ð+à ØØ(ðð ÷ Šc�*˜iÑ(Ô(ð	 õ ð 3˜œ¨!Ò+Ð+Ý˜œØXØ 
¨Eñ3ô 3ð 3ð 3ð 3ð ,Ð+õ
 �tÔ(Ñ)Ô)ˆDØÔ ×'Ò'¨Ñ-Ô-Ð-ØÔ×$Ò$ ZÑ0Ô0Ð0ØÔ×$Ò$ XÑ.Ô.Ð.ØÔ"×)Ò)¨*Ñ5Ô5Ð5Ø48ˆDÔ% jÑ1Ð1Ð1rD   c                 óŠ   — t          d|dd…         ¦  «        d         }t          rt          | j        d|¦  «         || _        d S )Nú<Hr   rà   zBUILTINFMTCOUNT: %r
)r   ró   rN   r5   rÊ   )rv   r  rÊ   s      rB   Úhandle_builtinfmtcountzBook.handle_builtinfmtcount  sH   € õ !  t¨A¨a¨C¤yÑ1Ô1°!Ô4ˆÝÐQ•'˜$œ,Ð(?ÀÑQÔQÐQØ.ˆÔÐÐrD   c           
      ó¶  — | j         r| j         | _        nö| j        €P| j        dk     rt	          | j        d¦  «         d| _        nÇd| _        | j        dk    rt	          | j        d¦  «         nŸ| j        }|t          v rt          |         }nJd|cxk    rdk    rn nd	t          |¦  «        z   }n'| j        dk    r
d| _        d
}ndt          |¦  «        z   }t          s| j        r"|| j        k    rt	          | j        d||¦  «         || _        | j        dk    rx	 t          d| j        ¦  «         na# t          $ rT}t	          | j        d| j        | j        t          |¦  «        j                             d¦  «        d         |¦  «         ‚ d }~ww xY w| j        r?t!          | j        d| j        d¬¦  «        }|                     ¦   «         }|| _        d| _        | j        S )Nr   zD*** No CODEPAGE record, no encoding_override: will use 'iso-8859-1'
z
iso-8859-1i°  rà   z2*** No CODEPAGE record; assuming 1200 (utf_16_le)
i,  iÏ  ÚcpÚ	utf_16_leÚunknown_codepage_z%CODEPAGE: codepage %r -> encoding %r
s   trialz/ERROR *** codepage %r -> encoding %r -> %s: %s
ú.ra   r   r   r#  F)r8   r*  ÚcodepagerM   rN   r5   r6   Úencoding_from_codepageÚstrró   ÚunicodeÚBaseExceptionrõ   r�   ÚsplitrÈ   r)  Ú	user_nameÚrstrip)rv   r@  r*  ÚeÚstrgs        rB   r(  zBook.derive_encoding  s  € ØÔ!ð 	%Ø Ô2ˆDŒMˆMØŒ]Ð"ØÔ  2Ò%Ð%Ý˜œØ[ñ]ô ]ð ]à ,�”�à $�”Ø”> QÒ&Ð&Ý˜DœLÐ*_Ñ`Ô`Ð`øà”}ˆHØÕ1Ð1Ð1Ý1°(Ô;��Ø˜Ð(Ð(Ò(Ð( DÒ(Ð(Ð(Ð(Ð(Ø¥# h¡-¤-Ñ/��ØÔ" bÒ(Ð(Ø $�”Ø&��à.µ°X±´Ñ>�Ýð d˜œð d¨H¸¼Ò,EÐ,EÝ˜œÐ&NÐPXÐZbÑcÔcÐcØ$ˆDŒMØŒ=˜DÒ Ð ðÝ˜ $¤-Ñ0Ô0Ð0Ð0øÝ ð ð ð Ý˜œØFØ”M 4¤=µ$°q±'´'Ô2B×2HÒ2HÈÑ2MÔ2MÈbÔ2QÐSTñVô Vð Vð øøøøð	øøøð
 Ôð 	'Ý  ¤°°D´MÈ!ÐLÑLÔLˆDØ—;’;‘=”=ˆDð "ˆDŒNØ!&ˆDÔØŒ}Ðs   ÄD- Ä-
FÄ7AFÆFc                 óx   — t          d|dd…         ¦  «        d         }|| _        |                      ¦   «          d S )Nr9  r   rà   )r   r@  r(  )rv   r  r@  s      rB   Úhandle_codepagezBook.handle_codepageE  s=   € å˜$  Q q S¤	Ñ*Ô*¨1Ô-ˆØ ˆŒØ×ÒÑÔÐÐÐrD   c                 ó°   — t          d|dd…         ¦  «        }| j        rt          d|| j        ¬¦  «         | j        dk    s| j        |k    sJ ‚|| _        d S )Nr  r   r  z
Countries:rä   r”   )r   r6   rô   r5   Ú	countries)rv   r  rM  s      rB   Úhandle_countryzBook.handle_countryK  sa   € Ý˜5 $ q¨ s¤)Ñ,Ô,ˆ	ØŒ>ÐL�5 ¨y¸t¼|ÐLÑLÔLÐLàŒ~ Ò'Ð'¨4¬>¸YÒ+FÐ+FÐ+FÐFØ"ˆŒˆˆrD   c                 ó¤   — t          d|dd…         ¦  «        d         }t          s| j        rt          | j        d|¦  «         |dv sJ ‚|| _        d S )Nr9  r   rà   zDATEMODE: datemode %r
)r   r   )r   ró   r6   rN   r5   Údatemode)rv   r  rP  s      rB   Úhandle_datemodezBook.handle_datemodeR  sb   € Ý˜$  Q q S¤	Ñ*Ô*¨1Ô-ˆÝð 	G�D”Nð 	GÝ�D”LÐ";¸XÑFÔFÐFØ˜6Ð!Ð!Ð!Ð!Ø ˆŒˆˆrD   c           	      ón  — t           p
| j        dk    }| j        dk    r•t          d|d d…         ¦  «        \  }}d}t	          ||d¬¦  «        \  }}||d …         }| j        d         t          k    r| j                             |¦  «         |r)t          | j
        d| j        d         ||||¦  «         d S d S d S )	Nrà   r   ú<HIr%  r   r#  ra   zCEXTERNNAME: sbktype=%d oflags=0x%04x oinfo=0x%08x name=%r extra=%r
)ró   r6   rM   r   Úunpack_unicode_update_posrÖ   ÚSUPBOOK_ADDINr×   r   rN   r5   )rv   r  ÚblahÚoption_flagsÚ
other_infor  r�   Úextras           rB   Úhandle_externnamezBook.handle_externnameY  sé   € ÝÐ+˜œ¨!Ò+ˆØÔ Ò"Ð"Ý&,¨U°D¸¸!¸´HÑ&=Ô&=Ñ$ˆL˜*ØˆCÝ1°$¸ÀAÐFÑFÔF‰IˆD�#Ø˜˜˜”JˆEØÔ" 2Ô&­-Ò7Ð7ØÔ%×,Ò,¨TÑ2Ô2Ð2Øð TÝ˜œØZØÔ'¨Ô+¨\¸:ÀtÈUñTô Tð Tð Tð Tð #Ð"ðTð TrD   c           	      óú  — |                       ¦   «          | xj        dz  c_        t          p
| j        dk    }t          p
| j        dk    }| j        dk    �rt          d|dd…         ¦  «        d         }|dz  dz   }t          |¦  «        |k     rp|r$t          | j        d|t          |¦  «        ¦  «         |  	                    ¦   «         \  }}}|t          k    rt          d¦  «        ‚||z  }t          |¦  «        |k     °pd}	t          |¦  «        D ]]}
t          d	||	|	dz   …         ¦  «        }|\  }}}| j                             |¦  «         |	dz  }	|rt          | j        d
|
|||¦  «         Œ^d S t          d|d d…         ¦  «        \  }}|rrt          d| j        ¬¦  «         t!          |dt          |¦  «        | j        ¬¦  «         dddddœ                     |d¦  «        }t          d|||fz  | j        ¬¦  «         |dk    rLt%          |d|dz   …         | j        ¦  «        }|| j        | j        <   |rt          | j        | j        ¬¦  «         d|cxk    rdk    sn d}| j                             |¦  «         d S )Nr   rà   r   r9  r   r%  z*INFO: EXTERNSHEET needs %d bytes, have %d
z)Missing CONTINUE after EXTERNSHEET recordz<HHHzLEXTERNSHEET(b8): k = %2d, record = %2d, first_sheet = %5d, last sheet = %5d
z<BBzEXTERNSHEET(b7-):rä   ©ÚfoutzEncoded URLzCurrent sheet!!zSpecific sheet in own doc'tz Nonspecific sheet in own doc't!!)r   rà   é   r  zNot encodedz   %3d chars, type is %d (%s)r^  r  )r(  rÕ   ró   r6   rM   r   rT   rN   r5   r  ÚXL_CONTINUErJ   r–   rÑ   r   rô   Úhex_char_dumpr/  rC  r*  rÓ   rÒ   )rv   r  Úblah1Úblah2Únum_refsÚ
bytes_reqdÚcode2Úlength2Údata2r  ÚkÚinfoÚref_recordxÚref_first_sheetxÚref_last_sheetxÚncÚtyÚmsgr¤   s                      rB   Úhandle_externsheetzBook.handle_externsheetg  sã  € Ø×ÒÑÔÐØÐÔ˜qÑ ÐÔÝÐ,˜œ¨1Ò,ˆÝÐ,˜œ¨1Ò,ˆØÔ Ò"Ñ"Ý˜d D¨¨1¨¤IÑ.Ô.¨qÔ1ˆHØ! A™¨Ñ)ˆJÝ�d‘)”)˜jÒ(Ð(Øð ÝØœØEØ"¥C¨¡I¤Iñô ð ð
 )-×(=Ò(=Ñ(?Ô(?Ñ%��w Ø�KÒ'Ð'Ý#Ð$OÑPÔPÐPØ˜‘�õ �d‘)”)˜jÒ(Ð(ð ˆCÝ˜HÑ%Ô%ð 
ð 
�Ý˜f d¨3¨s°1©u¨9¤oÑ6Ô6�ØAEÑ>�Ð-¨ØÔ&×-Ò-¨dÑ3Ô3Ð3Ø�q‘�Øð ÝØœØgØ˜;Ð(8¸/ñô ð øð
ð 
õ ˜E 4¨¨¨¤8Ñ,Ô,‰FˆB�Øð 	ZÝÐ)°´Ð=Ñ=Ô=Ð=Ý˜d A¥s¨4¡y¤y°t´|ÐDÑDÔDÐDà$Ø(Ø4Ø9ð	ð ÷
 ’#�b˜-Ñ(Ô(ð õ Ð5¸¸RÀ¸ÑEÈDÌLÐYÑYÔYÐYØ�QŠwˆwÝ$ T¨!¨B¨q©D¨&¤\°4´=ÑAÔA�
ØCM�Ô+¨DÔ,?Ñ@ØÐO�% Ô ;À$Ä,ÐOÑOÔOÐOØ˜�L�L’L�L˜q’L�L�L�LØ�ØÔ&×-Ò-¨bÑ1Ô1Ð1Ð1Ð1rD   c                 óâ  — | j         dk    rÖ| j        }t          |d¦  «         t          |dt	          |¦  «        d|¬¦  «         | j        dk    r“t          d|d d…         ¦  «        \  }|dk    r.t          d|dd …         ¦  «        \  }}t          |d||¦  «         nE|d	k    r?t          d|d
d…         ¦  «        \  }|d	k    rd}n|dk    rd}nd}t          |d|¦  «         t          d¦  «        ‚)Nrà   z
FILEPASS:
r   )rî   r]  r   r9  r  z!weak XOR: key=0x%04x hash=0x%04x
r   r  r%  z	BIFF8 stdzBIFF8 strongz** UNKNOWN ENCRYPTION METHOD **z%s
zWorkbook is encrypted)r6   r5   rN   r`  rT   rM   r   rJ   )rv   r  ÚlogfÚkind1ÚkeyÚ
hash_valueÚkind2Úcaptions           rB   Úhandle_filepasszBook.handle_filepassš  s  € ØŒ>˜QÒÐØ”<ˆDÝ�D˜-Ñ(Ô(Ð(Ý˜$ ¥3 t¡9¤9°1¸4Ð@Ñ@Ô@Ð@ØÔ  BÒ&Ð&Ý  d¨2¨A¨2¤hÑ/Ô/‘�Ø˜A’:�:Ý&,¨U°D¸¸¸´HÑ&=Ô&=‘O�C˜Ý˜DØ<Ø˜Zñ)ô )ð )ð )ð ˜a’Z�ZÝ# D¨$¨q°¨s¬)Ñ4Ô4‘F�EØ ’z�zØ"-˜˜Ø !š˜Ø"0˜˜à"C˜Ý˜D &¨'Ñ2Ô2Ð2ÝÐ/Ñ0Ô0Ð0rD   c                 óž  — t           p
| j        dk    }| j        }|dk     rd S |                      ¦   «          t	          d|dd…         ¦  «        \
  }}}}}}	}
}}}t          ¦   «         }| |_        t          | j        ¦  «        }||_	        | j         
                    |¦  «         ||_        g d¢}|D ]\  }}}t          ||||z  |z	  ¦  «         Œd|j                 }|dk     rt          |d| j        |¬	¦  «        \  }}nt!          |d|¬	¦  «        \  }}||_        |	|_        d |_        |rt)          | j        d
|||||||	|¦
  «
         |}|j        r6t.                               |d¦  «        }|rt3          d|z  | j        ¬¦  «         ||_        ||d …         |_        ||_        d|_        |r"|                     | j        d|z  d¬¦  «         d S d S )Nrà   r   z	<HBBHHH4Br   é   ))r†   r   r   )r‡   rà   r   )rˆ   r  rà   )r‰   râ   r^  )rŠ   é   r  )r‹   é    r   )rŒ   iÀ  r%  )r�   i   é   z Mr   )Ú	known_lenzZNAME[%d]:%s oflags=%d, name_len=%d, fmla_len=%d, extsht_index=%d, sheet_index=%d, name=%r
z??Unknown??z    builtin: %srä   z--- handle_name: name[%d] ---z-------------------re   )ró   r6   rM   r(  r   r^   rr   rT   rØ   rŽ   r   rW  Úsetattrr‰   Úunpack_string_update_posr*  rT  Úextn_sheet_numÚexcel_sheet_indexr’   rN   r5   r‹   Úbuiltin_name_from_coder/  rô   r�   r‘   Úbasic_formula_lenÚ	evaluatedru   )rv   r  rV  r0  rW  Úkb_shortcutÚname_lenÚfmla_lenÚextsht_indexÚsheet_indexÚmenu_text_lenÚdescription_text_lenÚhelp_topic_text_lenÚstatus_bar_text_lenÚnobjrŽ   ÚattrsÚattrÚmaskÚnshiftÚ
macro_flagÚinternal_namer  r�   s                           rB   Úhandle_namezBook.handle_name±  sQ  € ÝÐ+˜œ¨!Ò+ˆØÔˆØ�Š7ˆ7ØˆFØ×ÒÑÔÐõ �;  Q r T¤
Ñ+Ô+ñ	
Ø˜+ x°¸<ÈØÐ/Ð1DÐFYå‰vŒvˆØˆŒ	Ý˜Ô+Ñ,Ô,ˆ
Ø$ˆŒØÔ×!Ò! $Ñ'Ô'Ð'Ø(ˆÔð	
ð 	
ð 	
ˆð #(ð 	Að 	AÑˆD�$˜Ý�D˜$ °Ñ!4¸Ñ ?Ñ@Ô@Ð@Ð@à˜$œ*Ô%ˆ
Ø�Š7ˆ7Ý!9¸$ÀÀDÄMÐ]eÐ!fÑ!fÔ!fÑˆM˜3˜3å!:¸4ÀÈxÐ!XÑ!XÔ!XÑˆM˜3Ø*ˆÔØ!,ˆÔØˆŒ
Øð 	DÝØ”ØmØ˜J¨°hØ˜,¨°]ñ	Dô Dð Dð
 ˆØŒ<ð 	HÝ)×-Ò-¨d°MÑBÔBˆDØÐG•UÐ,¨tÑ3¸$¼,ÐGÑGÔGÐGØˆŒ	Ø   œ:ˆÔØ!)ˆÔØˆŒØð 	Ø�IŠIØ”Ø6¸ÑCØ,ð ñ ô ð ð ð ð	ð 	rD   c                 ó  — | j         dk    }| j        }|r}t          d|¬¦  «         t          dt          | j        ¦  «        |¬¦  «         t          dt          | j        ¦  «        |¬¦  «         t          dt          | j        ¦  «        |¬¦  «         t          | j        ¦  «        }t          |¦  «        D ]¼}| j        |         }| j
        dk    rN|j        }|dk    rd	}n‹d
|cxk    rt          | j        ¦  «        k    rn n| j        |d
z
           }|d	k    rd}nPd}nMd| j
        cxk    rdk    r;n n8|j        }|dk    rd	}n(| j        |         }| j                             |d¦  «        }||_        Œ½t          |¦  «        D ]9}| j        |         }|j        s|j        rŒ|j        rŒ&t%          | |||¬¦  «         Œ:| j         dk    r[t          d|¬¦  «         t          |¦  «        D ])}| j        |         }|                     |d|z  ¬¦  «         Œ*t          d|¬¦  «         i }	i }
t          |¦  «        D ]‚}| j        |         }|j                             ¦   «         }||j        f}||	v r| j         rt-          |d|¦  «         ||	|<   |j        ||f}||
v r|
|                              |¦  «         Œ||g|
|<   Œƒ|
                     ¦   «         D ]-}|
|         }|                     ¦   «          d„ |D ¦   «         |
|<   Œ.|	| _        |
| _        d S )Nrà   z+++++ names_epilogue +++++rä   rÐ   rÓ   rÔ   r   r   ra   r   éþÿÿÿéýÿÿÿr   r   )rV  z&---------- name object dump ----------z--- name[%d] ---)rf   z&--------------------------------------z)Duplicate entry %r in name_and_scope_map
c                 ó   — g | ]
}|d          ‘ŒS )rà   r?   )r@   Úxs     rB   rC   z'Book.names_epilogue.<locals>.<listcomp>3  s   € Ð1Ð1Ð1 a˜Q˜qœTÐ1Ð1Ð1rD   )r6   r5   rô   ÚREPRrÐ   rÓ   rÔ   rT   rØ   r�   rM   r‚  r�  r/  r’   r‰   r�   r…  Úevaluate_name_formularu   r�   ÚlowerrN   r   ÚkeysÚsortÚname_and_scope_mapÚname_map)rv   rV  rö   Ú	num_namesÚnamexr�  rŠ  Úintl_sheet_indexr¤   r¡  r¢  Ú
name_lcasert  Ú	sort_dataÚalists                  rB   Únames_epiloguezBook.names_epilogueí  s·  € ØŒ~ Ò"ˆØŒLˆØð 	SÝÐ.°QÐ7Ñ7Ô7Ð7ÝÐ#¥T¨$Ô*>Ñ%?Ô%?ÀaÐHÑHÔHÐHÝÐ*­D°Ô1LÑ,MÔ,MÐTUÐVÑVÔVÐVÝÐ(­$¨tÔ/HÑ*IÔ*IÐPQÐRÑRÔRÐRÝ˜Ô*Ñ+Ô+ˆ	Ý˜9Ñ%Ô%ð 	*ð 	*ˆEØÔ% eÔ,ˆDð
 Ô  BÒ&Ð&Ø"Ô4�Ø !Ò#Ð#Ø')Ð$Ð$Ø˜+ÐBÐBÒBÐB­¨TÔ-AÑ)BÔ)BÒBÐBÐBÐBÐBØ'+Ô';¸KÈ¹MÔ'JÐ$Ø'¨2Ò-Ð-Ø+-Ð(øð (*Ð$Ð$Ø�tÔ(Ð.Ð.Ò.Ð.¨BÒ.Ð.Ð.Ð.Ð.Ø"Ô1�Ø !Ò#Ð#Ø')Ð$Ð$à!%Ô!<¸[Ô!I�JØ'+Ô'@×'DÒ'DÀZÐQSÑ'TÔ'TÐ$Ø)ˆDŒJˆJå˜9Ñ%Ô%ð 	@ð 	@ˆEØÔ% eÔ,ˆDàŒzÐ2˜Tœ[Ð2¨(ØŒ~Ð'˜xÝ! $¨¨e¸$Ð?Ñ?Ô?Ð?Ð?àŒ>˜QÒÐÝÐ:ÀÐCÑCÔCÐCÝ˜yÑ)Ô)ð @ð @�ØÔ)¨%Ô0�Ø—	’	˜!Ð$6¸Ñ$>�	Ñ?Ô?Ð?Ð?ÝÐ:ÀÐCÑCÔCÐCð  ÐØˆÝ˜9Ñ%Ô%ð 	3ð 	3ˆEØÔ% eÔ,ˆDØœŸšÑ*Ô*ˆJØ˜tœzÐ*ˆCØÐ(Ð(Ð(¨T¬^Ð(Ý˜ÐGÈÑMÔMÐMØ&*Ð˜sÑ#Øœ U¨DÐ1ˆIð ˜XÐ%Ð%Ø˜Ô$×+Ò+¨IÑ6Ô6Ð6Ð6à(1 {�˜Ñ$Ð$Ø—=’=‘?”?ð 	2ð 	2ˆCØ˜S”MˆEØ�JŠJ‰LŒLˆLØ1Ð1¨5Ð1Ñ1Ô1ˆH�S‰MˆMØ"4ˆÔØ ˆŒˆˆrD   c                 ó<   — t          d|dd…         ¦  «        \  }}d S )NrS  r  é
   r   )rv   r  Úobj_typeÚobj_ids       rB   Ú
handle_objzBook.handle_obj7  s$   € õ " %¨¨a°¨d¬Ñ4Ô4Ñˆ�&�&�&rD   c           	      óö  — | j                              d ¦  «         t          p
| j        dk    }|r;t	          d| j        ¬¦  «         t          |dt          |¦  «        | j        ¬¦  «         t          d|dd…         ¦  «        d         }|rt	          d|z  | j        ¬¦  «         | j	        }| xj	        dz  c_	        |dd	…         d
k    rYt          | j         d<   | j	        dz
  | _        |r7t	          d||fz  | j        ¬¦  «         t	          d| j        | j        ¬¦  «         d S |dd	…         dk    r;t          | j         d<   | j	        dz
  | _        |rt	          d|z  | j        ¬¦  «         d S t          |dd¬¦  «        \  }}|dk    r*t           | j         d<   |rt#          | j        d||¦  «         d S t$          | j         d<   |rt#          | j        d||¦  «         g }t'          |¦  «        D ]�}	 t          ||d¬¦  «        \  }	}n:# t(          j        $ r( | j        rt	          d|||fz  | j        ¬¦  «         Y  d S w xY w|                     |	¦  «         |r&t#          | j        d|t          |	¦  «        |	|¦  «         Œ‘d S )Nrà   zSUPBOOK:rä   r   r\  r9  znum_sheets = %dr   r  s   ra   z(SUPBOOK[%d]: internal 3D refs; %d sheetsz    _all_sheets_maps    :zSUPBOOK[%d]: add-in functionsr#  z#SUPBOOK[%d]: DDE/OLE document = %r
zSUPBOOK[%d]: url = %r
zK*** WARNING: unpack failure in sheet %d of %d in SUPBOOK record for file %rz-  sheetx=%d namelen=%d name=%r (next pos=%d)
)rÖ   r   ró   r6   rô   r5   r`  rT   r   rÍ   ÚSUPBOOK_INTERNALrÎ   rÐ   rU  rÏ   rT  ÚSUPBOOK_DDEOLErN   ÚSUPBOOK_EXTERNALr�   ÚstructÚerror)
rv   r  rV  Ú
num_sheetsÚsbnÚurlr  r­   r›  Úshnames
             rB   Úhandle_supbookzBook.handle_supbook>  sù  € àÔ×"Ò" 4Ñ(Ô(Ð(ÝÐ+˜œ¨!Ò+ˆØð 	AÝ�* 4¤<Ð0Ñ0Ô0Ð0Ý˜$ ¥3 t¡9¤9°4´<Ð@Ñ@Ô@Ð@Ý˜D $ q¨ s¤)Ñ,Ô,¨QÔ/ˆ
ØÐI•Ð(¨:Ñ5¸D¼LÐIÑIÔIÐIØÔ!ˆØÐÔ˜qÑ ÐÔØ��!�Œ9˜Ò#Ð#Ý&6ˆDÔ Ñ#Ø'+Ô':¸QÑ'>ˆDÔ$Øð VÝÐ@ÀCÈÐCTÑTÐ[_Ô[gÐhÑhÔhÐhÝÐ+¨TÔ-AÈÌÐUÑUÔUÐUØˆFØ��!�Œ9Ð+Ò+Ð+Ý&3ˆDÔ Ñ#Ø'+Ô':¸QÑ'>ˆDÔ$ØÐT•UÐ:¸SÑ@ÀtÄ|ÐTÑTÔTÐTØˆFÝ,¨T°1¸QÐ?Ñ?Ô?‰ˆˆSØ˜Š?ˆ?Ý&4ˆDÔ Ñ#ØÐ\•W˜Tœ\Ð+QÐSVÐX[Ñ\Ô\Ð\ØˆFÝ"2ˆÔ˜BÑØÐK•˜œÐ'@À#ÀsÑKÔKÐKØˆÝ�zÑ"Ô"ð 	zð 	zˆAðÝ7¸¸cÈ!ÐLÑLÔL‘�˜˜øÝ”<ð 	ð 	ð 	ð ”>ð ÝØeØ˜j¨#Ð.ñ/à!œ\ðñ ô ð ð
 ���ð	øøøð ×Ò˜vÑ&Ô&Ð&ØÐy•W˜Tœ\Ð+[Ð]^Õ`cÐdjÑ`kÔ`kÐmsÐuxÑyÔyÐyøð	zð 	zs   Ç+HÈ2H8È7H8c                 ó”  — |                       ¦   «          t          d|d d…         ¦  «        d         }t          |d| j        d¬¦  «        }| j        }|| j        |         k    sJ ‚| xj        dz  c_        | j        }|dz
  t          |¦  «        z
  }t          rt          | j
        d||||¦  «         |                      ¦   «          t          rt          d| j        z  | j
        ¬¦  «         | j                             d ¦  «         |                      |d	¬
¦  «         t          rt          d| j        | j
        ¬¦  «         ||z   | _        d S )Nú<ir  r   r   r#  z'SHEETHDR %d at posn %d: len=%d name=%r
z SHEETHDR: xf epilogue flag is %drä   F)r  z"SHEETHDR: posn after get_sheet() =)r(  r   r)  r*  rÉ   rQ   rò   rT   ró   rN   r5   rË   rô   r  rR   r   r—   )rv   r  Ú	sheet_lenr¤   r  ÚBOF_posnÚposns          rB   Úhandle_sheethdrzBook.handle_sheethdrm  sS  € ð
 	×ÒÑÔÐÝ˜4  b q b¤Ñ*Ô*¨1Ô-ˆ	Ý" 4¨¨D¬MÀ!ÐDÑDÔDˆ
ØÔ&ˆØ˜TÔ.¨wÔ7Ò7Ð7Ð7Ð7ØÐÔ Ñ!ÐÔØ”>ˆØ˜!‰|�c $™iœiÑ'ˆÝÐy•'˜$œ,Ð(RÐT[Ð]aÐclÐnxÑyÔyÐyØ×#Ò#Ñ%Ô%Ð%ÝÐg•%Ð:¸TÔ=SÑSÐZ^ÔZfÐgÑgÔgÐgØÔ×Ò Ñ%Ô%Ð%Ø�Š�w¨5ˆÑ1Ô1Ð1ÝÐ`•%Ð<¸d¼nÐSWÔS_Ð`Ñ`Ô`Ð`Ø! IÑ-ˆŒˆˆrD   c                 ó|   — t          d|¦  «        d         }t          rt          d|| j        ¬¦  «         || _        d S )Nr»  r   zSHEETSOFFSET:rä   )r   ró   rô   r5   r,  )rv   r  r¾  s      rB   Úhandle_sheetsoffsetzBook.handle_sheetsoffset‚  s@   € å�d˜DÑ!Ô! !Ô$ˆÝÐA•%˜¨°D´LÐAÑAÔAÐAØ!ˆÔÐÐrD   c                 ó~  — t           r$t          d| j        ¬¦  «         t          ¦   «         }t	          |¦  «        }|g}t          d|dd…         ¦  «        d         }t           s| j        dk    rt          | j        d|¦  «         	 |                      t          ¦  «        \  }}}|€n=||z  }t           dk    rt          | j        d
||¦  «         | 
                    |¦  «         Œ^t          ||¦  «        \  | _        }| j        r|| _        t           r-t          ¦   «         }	t          d|	|z
  fz  | j        ¬¦  «         d S d S )NzSST Processingrä   r»  r  râ   r   rà   zSST: unique strings: %d
r   z'CONTINUE: adding %d bytes to SST -> %d
z SST processing took %.2f seconds)ró   rô   r5   r	   rT   r   r6   rN   r  r_  r   Úunpack_SST_tabler¼   r9   r½   )
rv   r  rX   ÚnbtÚstrlistÚuniquestringsr  ÚnbÚ
rt_runlistrZ   s
             rB   Ú
handle_sstzBook.handle_sstˆ  sZ  € åð 	 ÝÐ"¨¬Ð6Ñ6Ô6Ð6Ý‘”ˆBÝ�$‰iŒiˆØ�&ˆÝ˜t T¨!¨A¨#¤YÑ/Ô/°Ô2ˆÝð 	N�T”^ qÒ(Ð(Ý�D”LÐ"=¸}ÑMÔMÐMð	!Ø!×>Ò>½{ÑKÔK‰NˆD�"�dØˆ|ØØ�2‰IˆCÝ˜ŠzˆzÝ˜œÐ&PÐRTÐVYÑZÔZÐZØ�NŠN˜4Ñ Ô Ð ð	!õ +;¸7ÀMÑ*RÔ*RÑ'ˆÔ˜ZØÔð 	5Ø*4ˆDÔ'Ýð 	WÝ‘”ˆBÝÐ4¸¸R¹°{ÑBÈÌÐVÑVÔVÐVÐVÐVð	Wð 	WrD   c                 óž  — d}| j         dk     r0| j        sd| _        || _        d S t	          |d| j        d¬¦  «        }nH	 t          |dd¬¦  «        }n4# t          $ r' t          |                     ¦   «         dd¬¦  «        }Y nw xY w|r*t          | j	        dt          |¦  «        | j        |¦  «         |                     ¦   «         }|| _        d S )Nr   r   Tr   r#  rà   z!WRITEACCESS: %d bytes; raw=%s %r
)rM   r*  rÈ   rF  r)  r.  ÚUnicodeDecodeErrorÚstriprN   r5   rT   rG  )rv   r  ró   rI  s       rB   Úhandle_writeaccesszBook.handle_writeaccess¡  sì   € ØˆØÔ˜rÒ!Ð!Ø”=ð Ø%)�Ô"Ø!%�”Ø�Ý   q¨$¬-ÀÐBÑBÔBˆDˆDðAÝ% d¨A°aÐ8Ñ8Ô8��øÝ%ð Að Að Aå% d§j¢j¡l¤l°A¸aÐ@Ñ@Ô@���ðAøøøð Ðr•'˜$œ,Ð(LÍcÐRVÉiÌiÐY]ÔYkÐmqÑrÔrÐrØ�{Š{‰}Œ}ˆØˆŒˆˆs   ¿A Á.BÂBc                 ó
  — t          j        | ¦  «         	 |                      ¦   «         \  }}}t          rt	          d|z  | j        ¬¦  «         |t          k    r|                      |¦  «         �n|t          k    s|t          k    r|  
                    |¦  «         �næ|t          k    r|                      |¦  «         �nÄ|t          k    r|                      |¦  «         �n¢|t          k    r|                      |¦  «         �n€|t"          k    r|                      |¦  «         �n^|t&          k    r|                      |¦  «         �n<|t*          k    r|                      |¦  «         �n|t.          k    r|                      |¦  «         �nø|t2          k    r|                      |¦  «         �nÖ|t6          k    r|                      |¦  «         �n´|t:          k    r|                      |¦  «         �n’|t>          k    r|                       |¦  «         �np|tB          k    r|  "                    |¦  «         �nN|tF          k    r|  $                    |¦  «         �n,|tJ          k    r|  &                    |¦  «         �n
|tN          k    r|  (                    |¦  «         né|tR          k    r|  *                    |¦  «         nÈ|dz  dk    r,| j+        r%tY          | j        d| j-        |z
  dz
  |||¦  «         n“|t\          k    r‡|  /                    ¦   «          |  0                    ¦   «          |  1                    ¦   «          | j2        s|  3                    ¦   «          | j4        dk    r#t          rt	          d	| j-        | j        ¬¦  «         d S 	 �Œo)
Nr   z$parse_globals: record code is 0x%04xrä   éÿ   é	   z5*** Unexpected BOF at posn %d: 0x%04x len=%d data=%r
r  r   zglobal EOF: position)5r   r  r  ró   rô   r5   ÚXL_SSTrÉ  ÚXL_FONTÚXL_FONT_B3B4Úhandle_fontÚ	XL_FORMATÚhandle_formatÚXL_XFÚ	handle_xfÚXL_BOUNDSHEETr7  ÚXL_DATEMODErQ  ÚXL_CODEPAGErK  Ú
XL_COUNTRYrN  ÚXL_EXTERNNAMErZ  ÚXL_EXTERNSHEETrp  ÚXL_FILEPASSrx  ÚXL_WRITEACCESSrÍ  ÚXL_SHEETSOFFSETrÁ  ÚXL_SHEETHDRr¿  Ú
XL_SUPBOOKr¹  ÚXL_NAMEr–  Ú
XL_PALETTEÚhandle_paletteÚXL_STYLEÚhandle_styler6   rN   rò   ÚXL_EOFÚxf_epiloguer©  Úpalette_epiloguer*  r(  rM   )rv   Úrcr  r  s       rB   rP   zBook.parse_globals³  s–  € õ 	Ô" 4Ñ(Ô(Ð(ð:	Ø#×4Ò4Ñ6Ô6ÑˆB�˜ÝÐ[•eÐBÀRÑGÈdÌlÐ[Ñ[Ô[Ð[Ø•VŠ|ˆ|Ø—’ Ñ%Ô%Ð%Ñ%Ø•w’� "­Ò"4Ð"4Ø× Ò  Ñ&Ô&Ð&Ñ&Ø•y’�Ø×"Ò" 4Ñ(Ô(Ð(Ñ(Ø•u’�Ø—’˜tÑ$Ô$Ð$Ñ$Ø�Ò%Ð%Ø×&Ò& tÑ,Ô,Ð,Ñ,Ø•{Ò"Ð"Ø×$Ò$ TÑ*Ô*Ð*Ñ*Ø•{Ò"Ð"Ø×$Ò$ TÑ*Ô*Ð*Ñ*Ø•zÒ!Ð!Ø×#Ò# DÑ)Ô)Ð)Ñ)Ø•}Ò$Ð$Ø×&Ò& tÑ,Ô,Ð,Ñ,Ø•~Ò%Ð%Ø×'Ò'¨Ñ-Ô-Ð-Ñ-Ø•{Ò"Ð"Ø×$Ò$ TÑ*Ô*Ð*Ñ*Ø•~Ò%Ð%Ø×'Ò'¨Ñ-Ô-Ð-Ñ-Ø•Ò&Ð&Ø×(Ò(¨Ñ.Ô.Ð.Ñ.Ø•{Ò"Ð"Ø×$Ò$ TÑ*Ô*Ð*Ñ*Ø•zÒ!Ð!Ø×#Ò# DÑ)Ô)Ð)Ñ)Ø•w’�Ø× Ò  Ñ&Ô&Ð&Ñ&Ø•zÒ!Ð!Ø×#Ò# DÑ)Ô)Ð)Ð)Ø•x’�Ø×!Ò! $Ñ'Ô'Ð'Ð'Ø�d‘˜a’� D¤N�Ý˜œÐ&^Ø”N VÑ+¨aÑ/°°V¸TñCô Cð Cð Cà�’�Ø× Ò Ñ"Ô"Ð"Ø×#Ò#Ñ%Ô%Ð%Ø×%Ò%Ñ'Ô'Ð'Ø”}ð +Ø×(Ò(Ñ*Ô*Ð*ØÔ$¨Ò*Ð*åÐ^�eÐ$:¸D¼NÐQUÔQ]Ð^Ñ^Ô^Ð^ð �ð ñu:	rD   c                 óX   — | j         |||z   …         }|t          |¦  «        z   | _        |S r>   )rº   rT   rò   )rv   r  r  r  s       rB   rí   z	Book.readó  s,   € ØŒx˜˜C ™J˜Ô'ˆØ�s 4™yœy™ˆŒØˆrD   c           	      ó¶  — t           rt          d|z  | j        ¬¦  «         d„ }| j        }|                      ¦   «         }|t
          k    r |d¦  «         |t          vr |d| j        ||dz   …         z  ¦  «         |                      ¦   «         }|t
          k    r |d¦  «         d|cxk    rd	k    sn  |d
||fz  ¦  «         dt          dt          |         |z
  ¦  «        z  }|  
                    | j        |¦  «        }t           rt          | j        d|¦  «         t          |¦  «        |k     r |d¦  «         ||z  }|dz	  }t          d|dd…         ¦  «        \  }	}
t           rt          d||	|
fz  | j        ¬¦  «         | j        dz
  |z
  }t           rt          d||fz  | j        ¬¦  «         dx}x}}|dk    rWt          d|dd…         ¦  «        \  }}|	dk    rd}nC|	dk    r|dk     s|dv rd}n0d}n-ddddddœ                     |	d¦  «        }n|dv rddddœ|         }|dk    r|
t          k    rd}t           s| j        dk    rt          d ||	|
|||fz  | j        ¬¦  «         |
t"          k    p|dk    o
|
t          k    }|t"          k    r|s|
|k    r|S |dk     r|
t$          k    r|S |dk    r|
d!k    r |d"¦  «          |d#||	|
|||fz  ¦  «         d S )$Nzreqd: 0x%04xrä   c                 ó&   — t          d| z   ¦  «        ‚)Nz%Unsupported format, or corrupt file: )rJ   )ro  s    rB   Ú	bof_errorzBook.getbof.<locals>.bof_errorý  s   € ÝÐCÀcÑIÑJÔJÐJrD   z$Expected BOF record; met end of filezExpected BOF record; found %rrâ   z)Incomplete BOF record[1]; met end of filer  r   z.Invalid length (%d) for BOF record type 0x%04xó    r   z
getbof(): data=%r
z)Incomplete BOF record[2]; met end of filer  z5getbof(): op=0x%04x version2=0x%04x streamtype=0x%04xz+getbof(): BOF found at offset %d; savpos=%di   r   i   iÊ  )il	  i’  iù  r   r   r   r   r   )r   é   i   i   i   )r  rà   r   r   rà   zHBOF: op=0x%04x vers=0x%04x stream=0x%04x buildid=%d buildyr=%d -> BIFF%dé   z%Workspace file -- no spreadsheet datazXBOF not workbook/worksheet: op=0x%04x vers=0x%04x strm=0x%04x build=%d year=%d -> BIFF%d)ró   rô   r5   rò   r  r  Úbofcodesrº   r|   Úboflenrí   rN   rT   r   r/  ÚXL_WORKBOOK_GLOBALS_4Wr6   rI   r  )rv   Ú
rqd_streamrð  ÚsavposÚopcoder  Úpaddingr  Úversion1Úversion2Ú
streamtypeÚ
bof_offsetÚversionÚbuildÚyearÚgot_globalss                   rB   rH   zBook.getbofø  s  € õ ÐG•%˜¨Ñ3¸$¼,ÐGÑGÔGÐGð	Kð 	Kð 	Kà”ˆØ—’Ñ!Ô!ˆØ•VÒÐØˆIÐ<Ñ=Ô=Ð=Ø�Ð!Ð!ØˆIÐ5¸¼ÀÈÈqÉÀÔ8QÑQÑRÔRÐRØ—’Ñ!Ô!ˆØ•VÒÐØˆIÐAÑBÔBÐBØ�VÐ!Ð!Ò!Ð!˜rÒ!Ð!Ð!Ð!ØˆIØ@Ø˜6Ð"ñ#ñ$ô $ð $ð �#˜a¥¨¤°&Ñ!8Ñ9Ô9Ñ9ˆØ�yŠy˜œ¨Ñ0Ô0ˆÝÐF•'˜$œ,Ð(?ÀÑFÔFÐFÝˆt‰9Œ9�vÒÐØˆIÐAÑBÔBÐBØ�‰ˆØ˜Q‘;ˆÝ% e¨T°!°A°#¬YÑ7Ô7Ñˆ�*Ýð 	EÝÐIØ˜8 ZÐ0ñ1Ø7;´|ðEñ Eô Eð Eà”^ aÑ'¨&Ñ0ˆ
Ýð 	;ÝÐ?Ø˜vÐ&ñ'Ø-1¬\ð;ñ ;ô ;ð ;à!"Ð"ˆÐ"�%˜$Ø�tÒÐÝ  ¨¨Q¨q¨S¬	Ñ2Ô2‰KˆE�4Ø˜6Ò!Ð!Ø��Ø˜VÒ#Ð#Ø˜$’;�; %Ð+=Ð"=Ð"=Ø �G�Gà �G�Gð ØØØØðð ÷ ’#�h Ñ"Ô"ð �ð Ð+Ð+Ð+Ø r°Ð4Ð4°XÔ>ˆGà�bŠ=ˆ=˜ZÕ+AÒAÐAØˆGåð 	[�D”N aÒ'Ð'ÝÐ\Ø˜8 Z°¸¸gÐFñGØMQÌ\ð[ñ [ô [ð [à Õ$7Ò7ð DØ�rŠMÐB˜jÕ,BÒBð 	àÕ-Ò-Ð-°+Ð-À*ÐPZÒBZÐBZØˆNØ�RŠ<ˆ<˜J­,Ò6Ð6ØˆNØ�bŠ=ˆ=˜Z¨6Ò1Ð1ØˆIÐ=Ñ>Ô>Ð>Øˆ	ØfØ�x ¨U°D¸'ÐBñCñ	
ô 	
ð 	
ð 	
ð 	
rD   r€   )Br�   r‚   rƒ   r„   rU   rP  rM   rØ   r@  r*  rM  r�   rF  r  rÛ   rü   rû   rÜ   rÙ   rÚ   rG   rV   rš   rs   rŸ   r¥   rª   r­   r²   rµ   rW   r¿   rÄ   r¡  r¢  rÝ   ÚsysÚstdoutrF   rË   r  r  r  r—   rS   rO   r7  r:  r(  rK  rN  rQ  rZ  rp  rx  r–  r©  r®  r¹  r¿  rÁ  rÉ  rÍ  rP   rí   rH   r?   rD   rB   rE   rE     sR  € € € € € ðð ð €Gð €Hð
 €Lð €Mð €Hð €Hð €Ið  � Ñ#Ô#€Ið €Ið €Gð €Kð €Jð: €Nð  €Jð €Nð Ðð Ðð	#ð 	#ð 	#ðBð Bð Bð)ð )ð )ð	+ð 	+ð 	+ð	,ð 	,ð 	,ð$ð $ð $ð.ð .ð .ð (ð (ð (ð+ð +ð +ð.ð ð ð!ð !ð !ð Ðð €Hðð ð ðB %)¸Ø œZ°1¸tØ'+Ø%*Ø$Ø!&Ø05ð7rð 7rð 7rð 7rðr	ð 	ð 	ð4ð 4ð 4ð$ð $ð $ð	$ð 	$ð 	$ðð ð ð ð*$ð $ð $ðð ð ð29ð 29ð 29ðh/ð /ð /ð+ð +ð +ðZð ð ð#ð #ð #ð!ð !ð !ðTð Tð Tð12ð 12ð 12ðf1ð 1ð 1ð.:ð :ð :ðxH!ð H!ð H!ðT5ð 5ð 5ð-zð -zð -zð^.ð .ð .ð*"ð "ð "ðWð Wð Wð2ð ð ð$>ð >ð >ð@ð ð ð
J
ð J
ð J
ð J
ð J
rD   rE   c                 óp   — | }|dz  r|dk    r|dz  }d}nd}|dz  }|dz  r|dk    r|dz  }d}nd}||||fS )	Ni €  i   r   r   rÏ  i @  é€   ró  r?   )ÚinrowÚincolÚoutrowÚrelrowÚoutcolÚrelcols         rB   Úexpand_cell_addressr  F  ss   € à€FØˆv�~ð Ø�UŠ?ˆ?Ø�e‰OˆFØˆˆàˆØ�T‰\€FØˆv�~ð Ø�SŠ=ˆ=Ø�c‰MˆFØˆˆàˆØ�6˜6 6Ð)Ð)rD   ÚABCDEFGHIJKLMNOPQRSTUVWXYZc                 ó‚   — | dk    sJ ‚t          d¦  «        }	 t          | d¦  «        \  }}||         |z   }|s|S |dz
  } Œ()Nr   r`   r   é   )r�   Údivmod)ÚcolxÚ_A2Zr�   ÚquotÚrems        rB   Úcolnamer  X  s]   € Ø�1Š9ˆ9ˆ9ˆ9Ý˜2ÑÔ€DðÝ˜4 Ñ$Ô$‰	ˆˆcØ�CŒy˜4ÑˆØð 	ØˆKØ�a‰xˆðrD   c                 óÆ   — |rdd| dk              t          | ¦  «        fz  }n	d| dz   fz  }|rdd|dk              t          |¦  «        fz  }ndt          |¦  «        z   }||z   S )Nz(*%s%d)z+-r   z$%dr   ú$)Úabsr  )Úrowxr  r
  r  ÚrowpartÚcolparts         rB   Údisplay_cell_addressr  b  s{   € Øð $Ø˜t D¨1¢Hœ~­s°4©y¬yÐ9Ñ9ˆˆà˜4 ™6˜)Ñ#ˆØð &Ø˜t D¨1¢Hœ~­s°4©y¬yÐ9Ñ9ˆˆà� ™œÑ%ˆØ�WÑÐrD   c                 ó
  — d}t          | ¦  «        }| d         }t          |¦  «        }d}g }|j        }i }	t          }
t          }t          }d}t          |¦  «        D �]#} |
d|||dz   …         ¦  «        d         }|dz  } |||         ¦  «        }|dz  }d}d}|dz  r" |
d|||dz   …         ¦  «        d         }|dz  }|dz  r" |
d|||dz   …         ¦  «        d         }|dz  }t          d	¦  «        }d}	 ||z
  }|dz  rF |||z
  dz	  |¦  «        }|||d|z  z   …         }	 |t          |d
¦  «        z  }n#  ‚ xY w|d|z  z  }n4 |||z
  |¦  «        }||||z   …         }|t          ||¦  «        z  }||z  }||z  }||k    rn0|dz  }| |         }t          |¦  «        } ||d         ¦  «        }d}ŒÀ|ryg }t          |¦  «        D ]U}||k    rd}|dz  }| |         }t          |¦  «        }|                      |
d|||dz   …         ¦  «        ¦  «         |dz  }ŒV||	t          |¦  «        <   ||z  }||k    r3||z
  }|dz  }||k     r| |         }t          |¦  «        }n||dz
  k    sJ ‚ ||¦  «         �Œ%||	fS )zReturn list of stringsr   râ   Úlatin_1r9  rà   r   r  r»  r`   r=  r  )rT   r   r   rz   r  r–   r�   rC  )ÚdatatabÚnstringsÚdatainxÚndatasr  Údatalenr  ÚstringsÚ	strappendÚrichtext_runsÚlocal_unpackÚ	local_minÚlocal_BYTES_ORDr  Ú	_unused_iÚncharsÚoptionsÚrtcountÚphoszÚaccstrgÚcharsgotÚ	charsneedÚ
charsavailÚrawstrgÚrunsÚrunindexs                             rB   rÃ  rÃ  m  sj  € à€GÝ�‰\Œ\€FØ�1Œ:€DÝ�$‰iŒi€GØ
€CØ€GØ”€IØ€MÝ€LÝ€IÝ€OØ€GÝ˜HÑ%Ô%ð Fñ Fˆ	Ø�˜d D¨¨S°©U¨¤OÑ4Ô4°QÔ7ˆØˆq‰ˆØ!�/ $ s¤)Ñ,Ô,ˆØˆq‰ˆØˆØˆØ�T‰>ð 	Ø"�l 4¨¨c°#°a±%¨i¬Ñ9Ô9¸!Ô<ˆGØ�1‰HˆCØ�T‰>ð 	Ø �L  t¨C°°A±¨I¤Ñ7Ô7¸Ô:ˆEØ�1‰HˆCÝ! "Ñ%Ô%ˆØˆð	Ø Ñ)ˆIØ˜‰~ð "à&˜Y¨°#©¸!Ñ';¸YÑGÔG�
Ø˜s 3 q¨¡|Ñ#3Ð3Ô4�ðØ�w w°Ñ<Ô<Ñ<�G�Gøðð øøøØ�q˜‘|Ñ#��ð '˜Y w°¡}°iÑ@Ô@�
Ø˜s 3 z¡>Ð1Ô2�à�7 7¨GÑ4Ô4Ñ4�Ø�zÑ!�Ø˜
Ñ"ˆHØ˜6Ò!Ð!ØØ�q‰LˆGØ˜7Ô#ˆDÝ˜$‘i”iˆGØ%�o d¨1¤gÑ.Ô.ˆGØˆCð?	ðB ð 
	/ØˆDÝ" 7™OœOð ð �Ø˜'’>�>Ø�CØ˜q‘L�GØ" 7Ô+�DÝ! $™iœi�GØ—’˜L˜L¨°°S¸¸Q¹°Y´Ñ@Ô@ÑAÔAÐAØ�q‘��Ø*.ˆM�#˜g™,œ,Ñ'àˆu‰ˆØ�'Š>ˆ>à˜‘-ˆCØ�q‰LˆGØ˜ÒÐØ˜wÔ'�Ý˜d™)œ)��à  H¨q¡LÒ0Ð0Ð0Ð0Øˆ	�'ÑÔÐÑØ�MÐ!Ð!s   Ä(D<Ä<D?)r  )+Ú
__future__r   r³  r`   r   r   r   ÚbiffhÚformulaÚtimemachineÚtimer	   ÚImportErrorr
   r   Ú
empty_cellró   ré   r  r�   ÚSUPBOOK_UNKr°  r²  rU  r±  rK   Ú_code_from_builtin_namerƒ  Úcode_from_builtin_nameÚitemsÚ_binÚ_bicr�   r  r  r\   Ú
BaseObjectr^   rE   r  r  r  rÃ  r?   rD   rB   ú<module>rE     sœ  ðð
 &Ð %Ð %Ð %Ð %Ð %à €€€à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð ð+Ø!Ð!Ð!Ð!Ð!Ð!Ð!øØð +ð +ð +à*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð+øøøð Ð Ð Ð Ð Ð àÔ€
à	€à €€€à	€àQVÐQVÐWXÑQYÔQYÑ N€ÐÐ/°Àà5Ð ð ØØØØØØØØØØØØØðð Ð ð  Ð ØÐ Ø)×/Ò/Ñ1Ô1ð (ð (�J€Dˆ$Øˆ?˜4Ñ Ô €DØˆ?˜4Ñ Ô €DØ#'Ð˜4Ñ Ø#'Ð˜4Ñ Ð Øˆ$Ð'à#Ø!œj°AÀØ$(Ø(,Ø&+°uÈ%Ø16ðAð Að Að AðHL`ð L`ð L`ð L`ð L`ˆ:ñ L`ô L`ð L`ð^t
ð t
ð t
ð t
ð t
ˆ:ñ t
ô t
ð t
ðp!*ð *ð *ð$ð ð ð ð	ð 	ð 	ðU"ð U"ð U"ð U"ð U"s   ¢) ©7¶7