Ë
    ”2Úi  ã                   óp  — d dl Z ddlmZmZ ddlmZ  e j                  de j                  «      Z e j                  d«      Z	 e j                  de j                  «      Z
 e j                  de j                  «      Z e j                  d	e j                  «      Zd
„ Zd„ Zd„ Zdd„Z	 dd„Zd„ Zd„ Zd„ Zd„ Zy)é    Né   )ÚMAX_ROWÚMAX_COL)Úxrangez(\$?)([A-I]?[A-Z])(\$?)(\d+)z\$?(\d+):\$?(\d+)z!\$?([A-I]?[A-Z]):\$?([A-I]?[A-Z])z-\$?([A-I]?[A-Z]\$?\d+):\$?([A-I]?[A-Z]\$?\d+)z\$?([A-I]?[A-Z]\$?\d+)c                 ó¤   — d}d}t        t        | «      dz
  dd«      D ],  }| |   }|t        |«      t        d«      z
  dz   |z  z  }|dz  }Œ. |dz
  S )z)'A' -> 0, 'Z' -> 25, 'AA' -> 26, etc
    r   r   éÿÿÿÿÚAé   )r   ÚlenÚord)ÚcolnameÚcolÚpowerÚiÚchs        úA/var/www/html/acx/venv/lib/python3.12/site-packages/xlwt/Utils.pyÚcol_by_namer      sl   € ð €CØ€EÜ”C˜“L ‘N B¨Ó+ò ˆØ�Q‰ZˆØ”�B“œ#˜c›(Ñ" QÑ&¨%Ñ/Ñ/ˆØ�‰‰ðð �‰7€Nó    c                 óü   — t         j                  | «      }|st        d| z  «      ‚|j                  «       \  }}}}t	        |«      }t	        |«      }t        |«      dz
  }t        |j                  «       «      }||||fS )z…Convert an Excel cell reference string in A1 notation
    to numeric row/col notation.

    Returns: row, col, row_abs, col_abs

    z$Ill-formed single_cell reference: %sr   )Ú_re_cell_exÚmatchÚ	ExceptionÚgroupsÚboolÚintr   Úupper©ÚcellÚmÚcol_absr   Úrow_absÚrows         r   Úcell_to_rowcolr#      sz   € ô 	×Ñ˜$Ó€AÙÜÐ>ÀÑEÓFÐFØ!"§¡£Ñ€GˆS�'˜3Ü�7‹m€GÜ�7‹m€GÜ
ˆc‹(�Q‰,€CÜ
�c—i‘i“kÓ
"€CØ��W˜gÐ%Ð%r   c                 óÆ   — t         j                  | «      }|st        d«      ‚|j                  «       \  }}}}t	        |«      dz
  }t        |j                  «       «      }||fS )zsConvert an Excel cell reference string in A1 notation
    to numeric row/col notation.

    Returns: row, col

    zError in cell formatr   )r   r   r   r   r   r   r   r   s         r   Úcell_to_rowcol2r%   .   s_   € ô 	×Ñ˜$Ó€AÙÜÐ.Ó/Ð/Ø!"§¡£Ñ€GˆS�'˜3ô ˆc‹(�Q‰,€CÜ
�c—i‘i“kÓ
"€CØ�ˆ8€Or   c                 ó&  — d| cxk  r
t         k  sJ ‚ J ‚d|cxk  r
t        k  sJ ‚ J ‚|dz  }|dz  }d}|rd}nd}|rd}nd}|dkD  rt        t        d«      |z   dz
  «      }t        t        d«      |z   «      }||z   |z   |z   t	        | dz   «      z   S )z\Convert numeric row/col notation to an Excel cell reference string in
    A1 notation.

    r   r
   Ú ú$r	   r   )r   r   Úchrr   Ústr)r"   r   r!   r    Údr   Úchr1Úchr2s           r   Úrowcol_to_cellr.   @   s¸   € ð
 �Ô”gÒÐÑÐÐØ�Ô”gÒÐÑÐÐØˆr‰	€AØˆb‰€AØ€DÙØ‰àˆÙØ‰àˆØˆ1‚uÜ”3�s“8˜a‘< 1Ñ$Ó%ˆÜŒs�3‹x˜!‰|Ó€Dà�T‰>˜DÑ  7Ñ*¬S°°q±«\Ñ9Ð9r   c                 ó^   — | |k  sJ ‚||k  sJ ‚t        | |||«      dz   t        ||||«      z   S )zsConvert two (row,column) pairs
    into a cell range string in A1:B2 notation.

    Returns: cell range string
    ú:)r.   )Úrow1Úcol1Úrow2Úcol2Úrow1_absÚcol1_absÚrow2_absÚcol2_abss           r   Úrowcol_pair_to_cellranger9   X   sJ   € ð �4Š<Ðˆ<Ø�4Š<Ðˆ<ä�t˜T 8¨XÓ6Ø
ñ	ä
˜˜t X¨xÓ
8ñ	9ð
r   c                 óø  — | j                  «       } t        j                  | «      }|rDt        |j	                  d«      «      dz
  }d}t        |j	                  d«      «      dz
  }d}||||fS t
        j                  | «      }|rZt        |j	                  d«      j                  «       «      }d}t        |j	                  d«      j                  «       «      }d}||||fS t        j                  | «      }|r@t        |j	                  d«      «      \  }}t        |j	                  d«      «      \  }}||||fS t        j                  | «      }|r#t        |j	                  d«      «      \  }}||||fS t        d| z  «      ‚)zpConvert cell range string in A1 notation to numeric row/col
    pair.

    Returns: row1, col1, row2, col2

    r   r   é   r   zUnknown cell reference %s)r   Ú_re_row_ranger   r   ÚgroupÚ_re_col_ranger   Ú_re_cell_ranger%   Ú_re_cell_refr   )Ú	cellrangeÚresr1   r2   r3   r4   s         r   Úcellrange_to_rowcol_pairrC   g   se  € ð —‘Ó!€Iä
×
Ñ
˜iÓ
(€CÙ
Ü�3—9‘9˜Q“<Ó  1Ñ$ˆØˆÜ�3—9‘9˜Q“<Ó  1Ñ$ˆØˆØ�T˜4 Ð%Ð%ô ×
Ñ
˜iÓ
(€CÙ
Ü˜3Ÿ9™9 Q›<×-Ñ-Ó/Ó0ˆØˆÜ˜3Ÿ9™9 Q›<×-Ñ-Ó/Ó0ˆØˆØ�T˜4 Ð%Ð%ä
×
Ñ
˜yÓ
)€CÙ
Ü$ S§Y¡Y¨q£\Ó2‰
ˆˆdÜ$ S§Y¡Y¨q£\Ó2‰
ˆˆdØ�T˜4 Ð%Ð%ä
×
Ñ
˜YÓ
'€CÙ
Ü$ S§Y¡Y¨q£\Ó2‰
ˆˆdØ�T˜4 Ð%Ð%Ü
Ð/°9Ñ=Ó
>Ð>r   c                 óÚ   — t        | «      \  }}}}|t        k\  rt        d| z  «      ‚|t        k\  rt        d| t        fz  «      ‚|t	        | «      dz  z  }|t	        | «      dz  z  }||fS )z5 pack row and column into the required 4 byte format z$Column %s greater than IV in formulaz!Row %s greater than %d in formulaé   é   )r#   r   r   r   r   )r   r"   r   r!   r    s        r   Úcell_to_packed_rowcolrG   Ž   s~   € ä!/°Ó!5Ñ€Cˆˆg�wØ
Œg‚~ÜÐ>ÀÑEÓFÐFØ
Œg‚~ÜÐ;¸tÄW¸oÑMÓNÐNØŒ3�7ˆ{Ó˜rÑ!Ñ!€CØŒ3�7ˆ{Ó˜rÑ!Ñ!€CØ�ˆ8€Or   c                 óV   — | dk(  s| d   dk(  st        | «      dkD  ry| D ]  }|dv sŒ y y)Nr'   r   ú'é   Fz[]:\?/* T)r   )Ú
sheet_nameÚcs     r   Úvalid_sheet_namerM   ›   sB   € Ø�SÒ˜J q™M¨TÒ1´S¸³_ÀrÒ5IØØò ˆØ�ÒÙðð r   c                 ód   — t        | «      st        d| z  «      ‚d| j                  dd«      z   dz   S )Nz-attempt to quote an invalid worksheet name %rrI   z'')rM   r   Úreplace)Úunquoted_sheet_names    r   Úquote_sheet_namerQ   £   sA   € ÜÐ/Ô0ÜØ;Ð>QÑQóSð 	SàÐ%×-Ñ-¨d°EÓ:Ñ:¸TÑAÐAr   )FF)FFFF)ÚreÚ
ExcelMagicr   r   Úcompatr   ÚcompileÚ
IGNORECASEr   r<   r>   r?   r@   r   r#   r%   r.   r9   rC   rG   rM   rQ   © r   r   ú<module>rX      s²   ðó
 
ß (Ý àˆb�j‰jÐ8¸"¿-¹-ÓH€Ø�—
‘
Ð/Ó0€Ø�—
‘
Ð?ÀÇÁÓO€Ø�—‘ÐLÈbÏmÉmÓ\€Øˆr�z‰zÐ3°R·]±]ÓC€ò	ò&ò$ó$:ð2 >Có
ò$?òN	òóBr   