§
    £”jJƒ  ã                  ó’  — d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZ ddlmZ dd	lmZmZmZmZmZ dd
lmZ ddlmZmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z' erddlm(Z( ddl)m*Z* ddlm+Z+m,Z, ddl-m.Z.  G d„ de¦  «        Z/ G d„ de¦  «        Z0 G d„ de¦  «        Z1 G d„ de¦  «        Z2 G d„ de¦  «        Z3 G d„ de¦  «        Z4 G d„ de¦  «        Z5 G d„ d e¦  «        Z6 G d!„ d"e¦  «        Z7 G d#„ d$e¦  «        Z8 G d%„ d&e¦  «        Z9 G d'„ d(e¦  «        Z: G d)„ d*e¦  «        Z; G d+„ d,e¦  «        Z<d-S ).z"Custom element classes for tables.é    )Úannotations)ÚTYPE_CHECKINGÚCallableÚcast)ÚWD_CELL_VERTICAL_ALIGNMENTÚWD_ROW_HEIGHT_RULEÚWD_TABLE_DIRECTION)ÚInvalidSpanError)ÚnsdeclsÚqn)Ú	parse_xml)ÚCT_DecimalNumber)ÚST_MergeÚST_TblLayoutTypeÚST_TblWidthÚST_TwipsMeasureÚXsdInt)ÚCT_P)ÚBaseOxmlElementÚOneAndOnlyOneÚ	OneOrMoreÚOptionalAttributeÚRequiredAttributeÚ
ZeroOrMoreÚ	ZeroOrOne)ÚEmuÚLengthÚTwips)ÚWD_TABLE_ALIGNMENT)ÚWD_ALIGN_PARAGRAPH)ÚCT_OnOffÚ	CT_String)ÚCT_Jcc                  óX   — e Zd ZU dZ ede¦  «        Zded<    ede¦  «        Z	ded<   dS )	Ú	CT_HeightzBUsed for `w:trHeight` to specify a row height and row height rule.úw:valúLength | NoneÚvalzw:hRuleúWD_ROW_HEIGHT_RULE | NoneÚhRuleN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r(   Ú__annotations__r   r*   © ó    ú^/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/docx/oxml/table.pyr%   r%   &   su   € € € € € € ØLÐLà*Ð*Ø�ñô €Cð ð ð ñ ð (9Ð'8ØÐ%ñ(ô (€Eð ð ð ñ ð ð r1   r%   c                  ój  — e Zd ZU dZded<   ded<   ded<   ded<    ed	¦  «        Zd
ed<    ed¦  «        Zded<    ed¦  «        Z	e
d%d„¦   «         Ze
d%d„¦   «         Zd&d„Ze
d%d„¦   «         Ze
d'd„¦   «         Zej        d(d„¦   «         Ze
d„ ¦   «         Zej        d)d„¦   «         Zd*d „Zd+d"„Zd#„ Zd$S ),ÚCT_Rowz``<w:tr>`` element.zCallable[[], CT_Tc]Úadd_tczCallable[[], CT_TrPr]Úget_or_add_trPrÚ	_add_trPrzlist[CT_Tc]Útc_lstz	w:tblPrExzCT_TblPrEx | NoneÚtblPrExzw:trPrzCT_TrPr | NoneÚtrPrzw:tcÚreturnÚintc                ó&   — | j         }|€dS |j        S ©zCThe number of unpopulated layout-grid cells at the end of this row.Nr   )r:   Ú
grid_after©Úselfr:   s     r2   r?   zCT_Row.grid_after?   s   € ð ŒyˆØˆ<Ø�1ØŒÐr1   c                ó&   — | j         }|€dS |j        S ©zEThe number of unpopulated layout-grid cells at the start of this row.Nr   )r:   Úgrid_beforer@   s     r2   rD   zCT_Row.grid_beforeG   s   € ð ŒyˆØˆ<Ø�1ØÔÐr1   Úgrid_offsetÚCT_Tcc                ó†   — || j         z
  }| j        D ]}|dk     r n|dk    r|c S ||j        z  }Œt          d|› �¦  «        ‚)zžThe `tc` element in this tr at exact `grid offset`.

        Raises ValueError when this `w:tr` contains no `w:tc` with exact starting `grid_offset`.
        r   zno `tc` element at grid_offset=)rD   r8   Ú	grid_spanÚ
ValueError)rA   rE   Úremaining_offsetÚtcs       r2   Útc_at_grid_offsetzCT_Row.tc_at_grid_offsetO   sp   € ð '¨Ô)9Ñ9Ðà”+ð 		-ð 		-ˆBà !Ò#Ð#Ø�à 1Ò$Ð$Ø�	�	�	ð  ¤Ñ,ÐÐåÐH¸;ÐHÐHÑIÔIÐIr1   c                ó„   — t          t          |                      ¦   «         ¦  «        }|j                             | ¦  «        S )z?Index of this `w:tr` element within its parent `w:tbl` element.)r   ÚCT_TblÚ	getparentÚtr_lstÚindex)rA   Útbls     r2   Útr_idxzCT_Row.tr_idxd   s3   € õ •6˜4Ÿ>š>Ñ+Ô+Ñ,Ô,ˆØŒz×Ò Ñ%Ô%Ð%r1   r)   c                ó&   — | j         }|€dS |j        S )zFThe value of `./w:trPr/w:trHeight/@w:hRule`, or |None| if not present.N)r:   ÚtrHeight_hRuler@   s     r2   rU   zCT_Row.trHeight_hRulej   s   € ð ŒyˆØˆ<Ø�4ØÔ"Ð"r1   Úvaluec                ó<   — |                       ¦   «         }||_        d S ©N)r6   rU   ©rA   rV   r:   s      r2   rU   zCT_Row.trHeight_hRuler   s!   € à×#Ò#Ñ%Ô%ˆØ#ˆÔÐÐr1   c                ó&   — | j         }|€dS |j        S )zHReturn the value of `w:trPr/w:trHeight@w:val`, or |None| if not present.N)r:   ÚtrHeight_valr@   s     r2   r[   zCT_Row.trHeight_valw   s   € ð ŒyˆØˆ<Ø�4ØÔ Ð r1   r'   c                ó<   — |                       ¦   «         }||_        d S rX   )r6   r[   rY   s      r2   r[   zCT_Row.trHeight_val   s!   € à×#Ò#Ñ%Ô%ˆØ!ˆÔÐÐr1   Ú
CT_TblPrExc                ó2   — |                       d|¦  «         d S ©Nr   ©Úinsert)rA   r9   s     r2   Ú_insert_tblPrExzCT_Row._insert_tblPrEx„   s   € Ø�Š�A�wÑÔÐÐÐr1   ÚCT_TrPrc                ór   — | j         }|�|                     |¦  «         d S |                      d|¦  «         d S r_   )r9   Úaddnextra   )rA   r:   r9   s      r2   Ú_insert_trPrzCT_Row._insert_trPr‡   sA   € Ø”,ˆØÐØ�OŠO˜DÑ!Ô!Ð!Ð!Ð!à�KŠK˜˜4Ñ Ô Ð Ð Ð r1   c                ó4   — t                                ¦   «         S rX   )rF   Únew©rA   s    r2   Ú_new_tczCT_Row._new_tcŽ   s   € Ý�yŠy‰{Œ{Ðr1   N©r;   r<   )rE   r<   r;   rF   ©r;   r)   ©rV   r)   ©rV   r'   )r9   r]   )r:   rc   )r+   r,   r-   r.   r/   r   r9   r:   r   rK   Úpropertyr?   rD   rL   rS   rU   Úsetterr[   rb   rf   rj   r0   r1   r2   r4   r4   1   sÁ  € € € € € € ØÐàÐÐÑØ*Ð*Ð*Ñ*Ø$Ð$Ð$Ñ$àÐÐÑà!* ¨;Ñ!7Ô!7€GÐ7Ð7Ð7Ñ7à$˜9 XÑ.Ô.€DÐ.Ð.Ð.Ñ.Ø	ˆ�FÑ	Ô	€Bàðð ð ñ „Xðð ð ð  ð  ñ „Xð ðJð Jð Jð Jð* ð&ð &ð &ñ „Xð&ð
 ð#ð #ð #ñ „Xð#ð Ôð$ð $ð $ñ Ôð$ð ð!ð !ñ „Xð!ð Ôð"ð "ð "ñ Ôð"ð ð  ð  ð  ð!ð !ð !ð !ðð ð ð ð r1   r4   c                  ó†  — e Zd ZU dZded<   ded<    ed¦  «        Zded<    ed	¦  «        Zd
ed<    ed¦  «        Z	e
d)d„¦   «         Zej        d*d„¦   «         Ze
d„ ¦   «         Zd„ Zed+d„¦   «         Ze
d,d„¦   «         Zej        d-d„¦   «         Zed.d!„¦   «         Zed/d$„¦   «         Zed0d&„¦   «         Zed/d'„¦   «         Zd(S )1rN   z``<w:tbl>`` element.zCallable[[], CT_Row]Úadd_trzlist[CT_Row]rP   zw:tblPrÚCT_TblPrÚtblPrz	w:tblGridÚ
CT_TblGridÚtblGridzw:trr;   úbool | Nonec                ó0   — | j         j        }|€dS |j        S )zŸValue of `./w:tblPr/w:bidiVisual/@w:val` or |None| if not present.

        Controls whether table cells are displayed right-to-left or left-to-right.
        N)rt   Ú
bidiVisualr(   )rA   ry   s     r2   ÚbidiVisual_valzCT_Tbl.bidiVisual_valœ   s!   € ð ”ZÔ*ˆ
ØÐØ�4ØŒ~Ðr1   rV   úWD_TABLE_DIRECTION | Nonec                ó�   — | j         }|€|                     ¦   «          d S t          |¦  «        |                     ¦   «         _        d S rX   )rt   Ú_remove_bidiVisualÚboolÚget_or_add_bidiVisualr(   )rA   rV   rt   s      r2   rz   zCT_Tbl.bidiVisual_val§   sF   € à”
ˆØˆ=Ø×$Ò$Ñ&Ô&Ð&Ð&Ð&å04°U±´ˆE×'Ò'Ñ)Ô)Ô-Ð-Ð-r1   c                ó4   — t          | j        j        ¦  «        S )z)The number of grid columns in this table.)Úlenrv   ÚgridCol_lstri   s    r2   Ú	col_countzCT_Tbl.col_count¯   s   € õ �4”<Ô+Ñ,Ô,Ð,r1   c              #  ó:   K  — | j         D ]}|j        D ]}|V — ŒŒdS )zÍGenerate each of the `w:tc` elements in this table, left to right and top to
        bottom.

        Each cell in the first row is generated, followed by each cell in the second
        row, etc.
        N)rP   r8   )rA   ÚtrrK   s      r2   Úiter_tcszCT_Tbl.iter_tcs´   sD   è è € ð ”+ð 	ð 	ˆBØ”ið ð �Ø����ðð	ð 	r1   Úrowsr<   ÚcolsÚwidthr   c           
     óp   — t          t          t          |                      |||¦  «        ¦  «        ¦  «        S )zˆReturn a new `w:tbl` element having `rows` rows and `cols` columns.

        `width` is distributed evenly between the columns.
        )r   rN   r   Ú_tbl_xml)Úclsr‡   rˆ   r‰   s       r2   Únew_tblzCT_Tbl.new_tbl¿   s,   € õ •F�I c§l¢l°4¸¸uÑ&EÔ&EÑFÔFÑGÔGÐGr1   ú
str | Nonec                ó0   — | j         j        }|€dS |j        S )zH`w:tblPr/w:tblStyle/@w:val` (a table style id) or |None| if not present.N)rt   ÚtblStyler(   ©rA   r�   s     r2   ÚtblStyle_valzCT_Tbl.tblStyle_valÇ   s!   € ð ”:Ô&ˆØÐØ�4ØŒ|Ðr1   ÚstyleIdÚNonec                óv   — | j         }|                     ¦   «          |€dS ||                     ¦   «         _        dS )z–Set the value of `w:tblPr/w:tblStyle/@w:val` (a table style id) to `styleId`.

        If `styleId` is None, remove the `w:tblStyle` element.
        N)rt   Ú_remove_tblStyleÚ_add_tblStyler(   )rA   r“   rt   s      r2   r’   zCT_Tbl.tblStyle_valÏ   sA   € ð ”
ˆØ×ÒÑ Ô Ð Øˆ?ØˆFØ$+ˆ×ÒÑÔÔ!Ð!Ð!r1   Ústrc           	     óÒ   — |dk    rt          ||z  ¦  «        nt          d¦  «        }dt          d¦  «        › d|                      ||¦  «        › |                      |||¦  «        › d�S )Nr   z<w:tbl Úwz×>
  <w:tblPr>
    <w:tblW w:type="auto" w:w="0"/>
    <w:tblLook w:firstColumn="1" w:firstRow="1"
               w:lastColumn="0" w:lastRow="0" w:noHBand="0"
               w:noVBand="1" w:val="04A0"/>
  </w:tblPr>
z	</w:tbl>
)r   r   Ú_tblGrid_xmlÚ_trs_xml)rŒ   r‡   rˆ   r‰   Ú	col_widths        r2   r‹   zCT_Tbl._tbl_xmlÛ   s€   € à*.°ª(¨(•C˜ ™Ñ&Ô&Ð&½¸A¹¼ˆ	ð	•g˜c‘l”lð 	ð 	ð ×Ò  iÑ0Ô0ð	ð �|Š|˜D $¨	Ñ2Ô2ð	ð 	ð 	ð	
r1   rƒ   r�   c                óR   — d}t          |¦  «        D ]}|d|j        z  z  }Œ|dz  }|S )Nz  <w:tblGrid>
z    <w:gridCol w:w="%d"/>
z  </w:tblGrid>
)ÚrangeÚtwips)rŒ   rƒ   r�   ÚxmlÚ_s        r2   r›   zCT_Tbl._tblGrid_xmlë   sD   € àˆÝ�yÑ!Ô!ð 	Cð 	CˆAØÐ0°9´?ÑBÑBˆCˆCØÐ!Ñ!ˆØˆ
r1   Ú	row_countc                ó<   — d|                       ||¦  «        › d�|z  S )Nz	  <w:tr>
z
  </w:tr>
)Ú_tcs_xml)rŒ   r£   rƒ   r�   s       r2   rœ   zCT_Tbl._trs_xmló   s&   € àK˜CŸLšL¨°IÑ>Ô>ÐKÐKÐKÈiÑWÐWr1   c                ó   — d|j         › d�|z  S )Nz;    <w:tc>
      <w:tcPr>
        <w:tcW w:type="dxa" w:w="z-"/>
      </w:tcPr>
      <w:p/>
    </w:tc>
)r    )rŒ   rƒ   r�   s      r2   r¥   zCT_Tbl._tcs_xml÷   s*   € ðà09´ðð ð ð ñð 	r1   N)r;   rw   )rV   r{   )r‡   r<   rˆ   r<   r‰   r   r;   rN   ©r;   rŽ   )r“   rŽ   r;   r”   )r‡   r<   rˆ   r<   r‰   r   r;   r˜   )rƒ   r<   r�   r   r;   r˜   )r£   r<   rƒ   r<   r�   r   r;   r˜   )r+   r,   r-   r.   r/   r   rt   rv   r   r…   ro   rz   rp   rƒ   r†   Úclassmethodr�   r’   r‹   r›   rœ   r¥   r0   r1   r2   rN   rN   ’   sÑ  € € € € € € ØÐà Ð Ð Ñ ØÐÐÑà#�m IÑ.Ô.€EÐ.Ð.Ð.Ñ.Ø'˜-¨Ñ4Ô4€GÐ4Ð4Ð4Ñ4Ø	ˆ�FÑ	Ô	€Bàðð ð ñ „Xðð Ôð<ð <ð <ñ Ôð<ð ð-ð -ñ „Xð-ð	ð 	ð 	ð ðHð Hð Hñ „[ðHð ðð ð ñ „Xðð Ôð	,ð 	,ð 	,ñ Ôð	,ð ð
ð 
ð 
ñ „[ð
ð ðð ð ñ „[ðð ðXð Xð Xñ „[ðXð ðð ð ñ „[ðð ð r1   rN   c                  óB   — e Zd ZU dZded<   ded<    edd¬¦  «        Zd	S )
ru   zq`w:tblGrid` element.

    Child of `w:tbl`, holds `w:gridCol> elements that define column count, width, etc.
    zCallable[[], CT_TblGridCol]Úadd_gridColzlist[CT_TblGridCol]r‚   z	w:gridCol)zw:tblGridChange©Ú
successorsN)r+   r,   r-   r.   r/   r   ÚgridColr0   r1   r2   ru   ru     sI   € € € € € € ðð ð
 -Ð,Ð,Ñ,Ø$Ð$Ð$Ñ$àˆj˜Ð1EÐFÑFÔF€G€G€Gr1   ru   c                  óN   — e Zd ZU dZ ede¦  «        Zded<   ed	d„¦   «         Z	dS )
ÚCT_TblGridColzB`w:gridCol` element, child of `w:tblGrid`, defines a table column.úw:wr'   rš   r;   r<   c                ó„   — t          t          |                      ¦   «         ¦  «        }|j                             | ¦  «        S )zHIndex of this `w:gridCol` element within its parent `w:tblGrid` element.)r   ru   rO   r‚   rQ   )rA   rv   s     r2   ÚgridCol_idxzCT_TblGridCol.gridCol_idx  s4   € õ •z 4§>¢>Ñ#3Ô#3Ñ4Ô4ˆØÔ"×(Ò(¨Ñ.Ô.Ð.r1   Nrk   )
r+   r,   r-   r.   r   r   rš   r/   ro   r²   r0   r1   r2   r¯   r¯     sg   € € € € € € ØLÐLà(Ð(Øˆñô €Að ð ð ñ ð ð/ð /ð /ñ „Xð/ð /ð /r1   r¯   c                  ó6   — e Zd ZU dZ ede¦  «        Zded<   dS )ÚCT_TblLayoutTypez�`w:tblLayout` element.

    Specifies whether column widths are fixed or can be automatically adjusted based on
    content.
    úw:typerŽ   ÚtypeN)r+   r,   r-   r.   r   r   r¶   r/   r0   r1   r2   r´   r´     sN   € € € € € € ðð ð )Ð(ØÐ"ñô €Dð ð ð ñ ð ð r1   r´   c                  óÜ  — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   d
ed<   d
ed<   dZ ededd…         ¬¦  «        Zded<    ededd…         ¬¦  «        Zded<    ededd…         ¬¦  «        Z	ded<    ededd…         ¬¦  «        Z
ded <   [ed,d#„¦   «         Zej        d-d%„¦   «         Zed.d'„¦   «         Zej        d/d(„¦   «         Zed)„ ¦   «         Zej        d0d+„¦   «         ZdS )1rs   z}``<w:tblPr>`` element, child of ``<w:tbl>``, holds child elements that define
    table properties such as style and borders.zCallable[[], CT_OnOff]r   zCallable[[], CT_Jc]Úget_or_add_jczCallable[[], CT_TblLayoutType]Úget_or_add_tblLayoutzCallable[[], CT_String]r—   úCallable[[], None]r}   Ú
_remove_jcr–   )ú
w:tblStylezw:tblpPrzw:tblOverlapúw:bidiVisualzw:tblStyleRowBandSizezw:tblStyleColBandSizezw:tblWúw:jcúw:tblCellSpacingzw:tblIndzw:tblBordersúw:shdúw:tblLayoutzw:tblCellMarz	w:tblLookzw:tblCaptionzw:tblDescriptionzw:tblPrChanger¼   é   Nr«   zCT_String | Noner�   r½   é   zCT_OnOff | Nonery   r¾   é   zCT_Jc | NoneÚjcrÁ   é   zCT_TblLayoutType | NoneÚ	tblLayoutr;   úWD_TABLE_ALIGNMENT | Nonec                óB   — | j         }|€dS t          d|j        ¦  «        S )zAHorizontal alignment of table, |None| if `./w:jc` is not present.NrÈ   )rÅ   r   r(   )rA   rÅ   s     r2   Ú	alignmentzCT_TblPr.alignmentW  s(   € ð ŒWˆØˆ:Ø�4ÝÐ/°´Ñ8Ô8Ð8r1   rV   c                óˆ   — |                       ¦   «          |€d S |                      ¦   «         }t          d|¦  «        |_        d S )Nr    )r»   r¸   r   r(   )rA   rV   rÅ   s      r2   rÊ   zCT_TblPr.alignment_  sC   € à�ŠÑÔÐØˆ=ØˆFØ×ÒÑ!Ô!ˆÝÐ*¨EÑ2Ô2ˆŒˆˆr1   r~   c                ó.   — | j         }|€dn
|j        dk    S )zg|False| when there is a `w:tblLayout` child with `@w:type="fixed"`.

        Otherwise |True|.
        NTÚfixed)rÇ   r¶   )rA   rÇ   s     r2   ÚautofitzCT_TblPr.autofitg  s!   € ð ”Nˆ	Ø Ð(ˆtˆt¨i¬nÀÒ.GÐGr1   c                óD   — |                       ¦   «         }|rdnd|_        d S )NrÎ   rÍ   )r¹   r¶   )rA   rV   rÇ   s      r2   rÎ   zCT_TblPr.autofitp  s'   € à×-Ò-Ñ/Ô/ˆ	Ø&+Ð8˜˜°ˆ	Œˆˆr1   c                ó&   — | j         }|€dS |j        S )ziReturn the value of the ``val`` attribute of the ``<w:tblStyle>`` child or
        |None| if not present.N)r�   r(   r‘   s     r2   ÚstylezCT_TblPr.styleu  s   € ð ”=ˆØÐØ�4ØŒ|Ðr1   rŽ   c                óh   — |                       ¦   «          |€d S ||                      ¦   «         _        d S rX   )r–   r—   r(   ©rA   rV   s     r2   rÑ   zCT_TblPr.style~  s8   € à×ÒÑÔÐØˆ=ØˆFØ#(ˆ×ÒÑÔÔ Ð Ð r1   )r;   rÈ   )rV   rÈ   ©r;   r~   )rV   r~   ©rV   rŽ   )r+   r,   r-   r.   r/   Ú_tag_seqr   r�   ry   rÅ   rÇ   ro   rÊ   rp   rÎ   rÑ   r0   r1   r2   rs   rs   )  s+  € € € € € € ð3ð 3ð 2Ð1Ð1Ñ1Ø&Ð&Ð&Ñ&Ø8Ð8Ð8Ñ8Ø*Ð*Ð*Ñ*Ø*Ð*Ð*Ñ*Ø"Ð"Ð"Ñ"Ø(Ð(Ð(Ñ(ð€Hð( "+ Ø ¨!¨"¨"¤ð"ñ "ô "€Hð ð ð ñ ð #, )Ø 8¨A¨B¨B¤<ð#ñ #ô #€Jð ð ð ñ ð !�yØ˜8 A B Bœ<ðñ ô €Bð ð ð ñ ð *3¨Ø (¨2¨3¨3¤-ð*ñ *ô *€Ið ð ð ñ ð 	àð9ð 9ð 9ñ „Xð9ð Ôð3ð 3ð 3ñ Ôð3ð ðHð Hð Hñ „XðHð „^ð9ð 9ð 9ñ „^ð9ð ðð ñ „Xðð „\ð)ð )ð )ñ „\ð)ð )ð )r1   rs   c                  ó   — e Zd ZdZdS )r]   z÷`w:tblPrEx` element, exceptions to table-properties.

    Applied at a lower level, like a `w:tr` to modify the appearance. Possibly used when
    two tables are merged. For more see:
    http://officeopenxml.com/WPtablePropertyExceptions.php
    N)r+   r,   r-   r.   r0   r1   r2   r]   r]   †  s   € € € € € ðð ð ð r1   r]   c                  óˆ   — e Zd ZU dZ ede¦  «        Zded<    ede¦  «        Z	e
dd„¦   «         Zej        dd„¦   «         ZdS )ÚCT_TblWidthzJUsed for `w:tblW` and `w:tcW` and others, specifies a table-related width.r°   r<   rš   rµ   r;   r'   c                óD   — | j         dk    rdS t          | j        ¦  «        S )z>EMU length indicated by the combined `w:w` and `w:type` attrs.ÚdxaN)r¶   r   rš   ri   s    r2   r‰   zCT_TblWidth.width˜  s$   € ð Œ9˜ÒÐØ�4Ý�T”V‰}Œ}Ðr1   rV   r   c                óF   — d| _         t          |¦  «        j        | _        d S )NrÛ   )r¶   r   r    rš   rÓ   s     r2   r‰   zCT_TblWidth.widthŸ  s   € àˆŒ	Ý�U‘”Ô!ˆŒˆˆr1   N©r;   r'   ©rV   r   )r+   r,   r-   r.   r   r   rš   r/   r   r¶   ro   r‰   rp   r0   r1   r2   rÙ   rÙ   �  sŽ   € € € € € € ØTÐTð
 Ð˜u fÑ-Ô-€AÐ-Ð-Ð-Ñ-ØÐ˜X {Ñ3Ô3€Dàðð ð ñ „Xðð „\ð"ð "ð "ñ „\ð"ð "ð "r1   rÙ   c                  ó,  — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<    ed¦  «        Zded<    ed¦  «        Z ed¦  «        Z	e
dKd„¦   «         Zd„ Ze
dKd„¦   «         Ze
dKd„¦   «         Zej        dLd„¦   «         Ze
dMd„¦   «         Zd„ Ze
dKd„¦   «         ZdNd„ZedOd „¦   «         Ze
dKd!„¦   «         Ze
dKd"„¦   «         Ze
dPd$„¦   «         Zej        dQd%„¦   «         Ze
dRd'„¦   «         Zej        dSd)„¦   «         ZdTd*„ZdUdVd0„ZdWd2„Ze
dXd4„¦   «         ZdTd5„ZdYd7„Ze
dZd8„¦   «         Z d9„ Z!d:„ Z"d[d<„Z#d\d?„Z$d]d@„Z%e
d^dB„¦   «         Z&e
dOdC„¦   «         Z'e
dZdD„¦   «         Z(e
d_dF„¦   «         Z)e
d_dG„¦   «         Z*e
d`dI„¦   «         Z+e
dKdJ„¦   «         Z,d+S )arF   z`w:tc` table cell element.zCallable[[], CT_P]Úadd_pzCallable[[], CT_TcPr]Úget_or_add_tcPrz
list[CT_P]Úp_lstzlist[CT_Tbl]Útbl_lstzCallable[[CT_Tbl], CT_Tbl]Ú_insert_tblÚ_new_pzw:tcPrzCT_TcPr | NoneÚtcPrúw:púw:tblr;   r<   c                ón   — | j         �%| j        }|�|j         t          j        k    r|j        S | j        dz   S )zìThe row index that marks the bottom extent of the vertical span of this cell.

        This is one greater than the index of the bottom-most row of the span, similar
        to how a slice of the cell's rows would be specified.
        NrÂ   )ÚvMergeÚ	_tc_belowr   ÚCONTINUEÚbottomÚ_tr_idx)rA   Útc_belows     r2   rí   zCT_Tc.bottom´  s=   € ð Œ;Ð"Ø”~ˆHØÐ#¨¬½8Ô;LÒ(LÐ(LØ”Ð&ØŒ|˜aÑÐr1   c                ó`   — |                       d¦  «        D ]}|                      |¦  «         ŒdS )a/  Remove all content elements, preserving `w:tcPr` element if present.

        Note that this leaves the `w:tc` element in an invalid state because it doesn't
        contain at least one block-level element. It's up to the caller to add a
        `w:p`child element as the last content element.
        z./*[not(self::w:tcPr)]N)ÚxpathÚremove)rA   Úes     r2   Úclear_contentzCT_Tc.clear_contentÁ  s;   € ð —’Ð4Ñ5Ô5ð 	ð 	ˆAØ�KŠK˜‰NŒNˆNˆNð	ð 	r1   c                ó|   — | j         j        }t          d„ |                      d¦  «        D ¦   «         ¦  «        }||z   S )zƒStarting offset of `tc` in the layout-grid columns of its table.

        A cell in the leftmost grid-column has offset 0.
        c              3  ó$   K  — | ]}|j         V — Œd S rX   )rH   )Ú.0rK   s     r2   ú	<genexpr>z$CT_Tc.grid_offset.<locals>.<genexpr>Ó  s5   è è € ð &
ð &
ØˆBŒLð&
ð &
ð &
ð &
ð &
ð &
r1   z./preceding-sibling::w:tc)Ú_trrD   Úsumrñ   )rA   rD   Úpreceding_tc_grid_spanss      r2   rE   zCT_Tc.grid_offsetÌ  sU   € ð ”hÔ*ˆÝ"%ð &
ð &
Ø#'§:¢:Ð.IÑ#JÔ#Jð&
ñ &
ô &
ñ #
ô #
Ðð Ð4Ñ4Ð4r1   c                ó&   — | j         }|€dn|j        S )zzThe integer number of columns this cell spans.

        Determined by ./w:tcPr/w:gridSpan/@val, it defaults to 1.
        NrÂ   )ræ   rH   ©rA   ræ   s     r2   rH   zCT_Tc.grid_spanØ  s   € ð ŒyˆØ�Lˆqˆq d¤nÐ4r1   rV   c                ó<   — |                       ¦   «         }||_        d S rX   )rá   rH   ©rA   rV   ræ   s      r2   rH   zCT_Tc.grid_spaná  s   € à×#Ò#Ñ%Ô%ˆØˆŒˆˆr1   úlist[CT_P | CT_Tbl]c                ó,   — |                       d¦  «        S )zÔGenerate all `w:p` and `w:tbl` elements in this document-body.

        Elements appear in document order. Elements shaded by nesting in a `w:ins` or
        other "wrapper" element will not be included.
        z./w:p | ./w:tbl©rñ   ri   s    r2   Úinner_content_elementszCT_Tc.inner_content_elementsæ  s   € ð �zŠzÐ+Ñ,Ô,Ð,r1   c              #  ó†   K  — t          d¦  «        t          d¦  «        t          d¦  «        f}| D ]}|j        |v r|V — ŒdS )zpGenerate a reference to each of the block-level content elements in this
        cell, in the order they appear.rç   rè   zw:sdtN)r   Útag)rA   Úblock_item_tagsÚchilds      r2   Úiter_block_itemszCT_Tc.iter_block_itemsï  sV   è è € õ ˜e™9œ9¥b¨¡k¤kµ2°g±;´;Ð?ˆØð 	ð 	ˆEØŒy˜OÐ+Ð+Ø���øð	ð 	r1   c                ó   — | j         S )z?The grid column index at which this ``<w:tc>`` element appears.)rE   ri   s    r2   Úleftz
CT_Tc.left÷  s   € ð ÔÐr1   Úother_tcc                ó°   — |                       |¦  «        \  }}}}| j        j        |                              |¦  «        }|                     ||¦  «         |S )z½Return top-left `w:tc` element of a new span.

        Span is formed by merging the rectangular region defined by using this tc
        element and `other_tc` as diagonal corners.
        )Ú_span_dimensionsÚ_tblrP   rL   Ú_grow_to)rA   r  Útopr
  Úheightr‰   Útop_tcs          r2   ÚmergezCT_Tc.mergeü  sV   € ð $(×#8Ò#8¸Ñ#BÔ#BÑ ˆˆT�6˜5Ø”Ô! #Ô&×8Ò8¸Ñ>Ô>ˆØ�Š˜˜vÑ&Ô&Ð&Øˆr1   c           	     óf   — t          t          t          dt          d¦  «        z  ¦  «        ¦  «        S )zUA new `w:tc` element, containing an empty paragraph as the required EG_BlockLevelElt.z<w:tc %s><w:p/></w:tc>rš   )r   rF   r   r   )rŒ   s    r2   rh   z	CT_Tc.new  s(   € õ •E�9Ð%=ÅÈÁÄÑ%LÑMÔMÑNÔNÐNr1   c                ó    — | j         | j        z   S )a  The grid column index that marks the right-side extent of the horizontal span
        of this cell.

        This is one greater than the index of the right-most column of the span, similar
        to how a slice of the cell's columns would be specified.
        )rE   rH   ri   s    r2   ÚrightzCT_Tc.right  s   € ð Ô $¤.Ñ0Ð0r1   c                ó`   — | j         �| j         t          j        k    r| j        S | j        j        S )z9The top-most row index in the vertical span of this cell.)rê   r   ÚRESTARTrî   Ú	_tc_abover  ri   s    r2   r  z	CT_Tc.top  s.   € ð Œ;Ð $¤+µÔ1AÒ"AÐ"AØ”<ÐØŒ~Ô!Ð!r1   rŽ   c                ó&   — | j         }|€dS |j        S )zCValue of ./w:tcPr/w:vMerge/@val, |None| if w:vMerge is not present.N)ræ   Ú
vMerge_valrý   s     r2   rê   zCT_Tc.vMerge  s   € ð ŒyˆØˆ<Ø�4ØŒÐr1   c                ó<   — |                       ¦   «         }||_        d S rX   )rá   r  rÿ   s      r2   rê   zCT_Tc.vMerge%  s   € à×#Ò#Ñ%Ô%ˆØˆŒˆˆr1   r'   c                ó&   — | j         }|€dS |j        S )zDEMU length represented in `./w:tcPr/w:tcW` or |None| if not present.N)ræ   r‰   rý   s     r2   r‰   zCT_Tc.width*  s   € ð ŒyˆØˆ<Ø�4ØŒzÐr1   r   c                ó<   — |                       ¦   «         }||_        d S rX   )rá   r‰   rÿ   s      r2   r‰   zCT_Tc.width2  s   € à×#Ò#Ñ%Ô%ˆØˆŒ
ˆ
ˆ
r1   c                ól   — | j         r*|j         r%t          | j         |j         z   ¦  «        | _         dS dS dS )z‰Add the width of `other_tc` to this cell.

        Does nothing if either this tc or `other_tc` does not have a specified width.
        N)r‰   r   )rA   r  s     r2   Ú_add_width_ofzCT_Tc._add_width_of7  sG   € ð
 Œ:ð 	=˜(œ.ð 	=Ý ¤
¨X¬^Ñ ;Ñ<Ô<ˆDŒJˆJˆJð	=ð 	=ð 	=ð 	=r1   Nr‰   r  r  úCT_Tc | Nonec                ó¾   ‡ ‡— dˆˆ fd„}|€‰ n|}‰                       || ||¦  «        ¦  «         ‰dk    r'‰ j        }|€J ‚|                     |‰dz
  |¦  «         dS dS )z¾Grow this cell to `width` grid columns and `height` rows.

        This is accomplished by expanding horizontal spans and creating continuation
        cells to form vertical spans.
        r  rF   c                óL   •— | ‰urt           j        n‰dk    rd nt           j        S ©NrÂ   )r   rì   r  )r  r  rA   s    €€r2   r  z"CT_Tc._grow_to.<locals>.vMerge_valF  s8   ø€ ð  Ð%Ð%õ Ô!Ð!ð ˜Q’;�;ð �TåÔ%ðr1   NrÂ   )r  rF   )Ú_span_to_widthrë   r  )rA   r‰   r  r  r  rï   s   ` `   r2   r  zCT_Tc._grow_to?  s�   øø€ ð	ð 	ð 	ð 	ð 	ð 	ð 	ð  ˜��¨VˆØ×Ò˜E 6¨:¨:°fÑ+=Ô+=Ñ>Ô>Ð>Ø�AŠ:ˆ:Ø”~ˆHØÐ'Ð'Ð'Ø×Ò˜e V¨a¡Z°Ñ8Ô8Ð8Ð8Ð8ð ˆ:r1   ÚCT_TcPrc                ó2   — |                       d|¦  «         |S )z#Override default `._insert_tcPr()`.r   r`   rý   s     r2   Ú_insert_tcPrzCT_Tc._insert_tcPrV  s   € ð 	�Š�A�tÑÔÐØˆr1   r~   c                óØ   — t          |                      ¦   «         ¦  «        }t          |¦  «        dk    rdS |d         }t          |t          ¦  «        ot          |j        ¦  «        dk    S )z=True if this cell contains only a single empty `w:p` element.rÂ   Fr   )Úlistr  r�   Ú
isinstancer   Úr_lst)rA   Úblock_itemsÚ	only_items      r2   Ú	_is_emptyzCT_Tc._is_empty]  sd   € õ ˜4×0Ò0Ñ2Ô2Ñ3Ô3ˆÝˆ{ÑÔ˜aÒÐØ�5ð   ”Nˆ	Ý˜)¥TÑ*Ô*ÐH­s°9´?Ñ/CÔ/CÀqÒ/HÐHr1   c                óò   — || u rdS | j         rdS |                     ¦   «          |                      ¦   «         D ]}|                     |¦  «         Œ|                      |                      ¦   «         ¦  «         dS )zxAppend the content of this cell to `other_tc`.

        Leaves this cell with a single empty ``<w:p>`` element.
        N)r/  Ú_remove_trailing_empty_pr  Úappendrå   )rA   r  Úblock_elements      r2   Ú_move_content_tozCT_Tc._move_content_toh  s…   € ð
 �tÐÐØˆFØŒ>ð 	ØˆFØ×)Ò)Ñ+Ô+Ð+à!×2Ò2Ñ4Ô4ð 	+ð 	+ˆMØ�OŠO˜MÑ*Ô*Ð*Ð*à�Š�D—K’K‘M”MÑ"Ô"Ð"Ð"Ð"r1   r”   c                ó    — t          d¦  «        ‚)NzDuse CT_Tbl.new_tbl() to add a new table, specifying rows and columns)ÚNotImplementedErrorri   s    r2   Ú_new_tblzCT_Tc._new_tblx  s   € Ý!ØRñ
ô 
ð 	
r1   c                óD   — |                       d¦  «        }|r|d         ndS )zThe `w:tc` element immediately following this one in this row, or |None| if
        this is the last `w:tc` element in the row.z./following-sibling::w:tcr   Nr  )rA   Úfollowing_tcss     r2   Ú_next_tczCT_Tc._next_tc}  s+   € ð Ÿ
š
Ð#>Ñ?Ô?ˆØ#0Ð:ˆ}˜QÔÐ°dÐ:r1   c                ó`   — |                       ¦   «         }|€J ‚|                     | ¦  «         dS )z-Remove this `w:tc` element from the XML tree.N)rO   rò   )rA   Úparent_elements     r2   Ú_removezCT_Tc._remove„  s7   € àŸšÑ)Ô)ˆØÐ)Ð)Ð)Ø×Ò˜dÑ#Ô#Ð#Ð#Ð#r1   c                óè   — t          |                      ¦   «         ¦  «        }|d         }t          |t          ¦  «        sdS |}t	          |j        ¦  «        dk    rdS |                      |¦  «         dS )zJRemove last content element from this cell if it's an empty `w:p` element.éÿÿÿÿNr   )r*  r  r+  r   r�   r,  rò   )rA   r-  Úlast_content_elmÚps       r2   r1  zCT_Tc._remove_trailing_empty_pŠ  sm   € å˜4×0Ò0Ñ2Ô2Ñ3Ô3ˆØ& rœ?ÐÝÐ*­DÑ1Ô1ð 	ØˆFØˆÝˆqŒw‰<Œ<˜!ÒÐØˆFØ�Š�A‰Œˆˆˆr1   útuple[int, int, int, int]c                ó*  — dd„}dd„} || |¦  «          || |¦  «         t          | j        |j        ¦  «        }t          | j        |j        ¦  «        }t          | j        |j        ¦  «        }t          | j        |j        ¦  «        }||||z
  ||z
  fS )z¨Return a (top, left, height, width) 4-tuple specifying the extents of the
        merged cell formed by using this tc and `other_tc` as opposite corner
        extents.ÚarF   Úbc                óÆ   — | j         |j         k    r| j        |j        k    rt          d¦  «        ‚| j        |j        k    r| j        |j        k    rt          d¦  «        ‚d S d S ©Nzrequested span not rectangular©r  rí   r
   r
  r  )rD  rE  s     r2   Úraise_on_inverted_Lz3CT_Tc._span_dimensions.<locals>.raise_on_inverted_Lš  sf   € ØŒu˜œŠ~ˆ~ !¤(¨a¬hÒ"6Ð"6Ý&Ð'GÑHÔHÐHØŒv˜œÒÐ A¤G¨q¬wÒ$6Ð$6Ý&Ð'GÑHÔHÐHð  ÐÐ$6Ð$6r1   c                ó2  — | j         |j         k     r| |fn|| f\  }}|j         |j         k     r|j        |j        k    rt          d¦  «        ‚| j        |j        k     r| |fn|| f\  }}|j        |j        k     r|j        |j        k    rt          d¦  «        ‚d S d S rG  rH  )rD  rE  Útop_mostÚotherÚ	left_mosts        r2   Úraise_on_tee_shapedz3CT_Tc._span_dimensions.<locals>.raise_on_tee_shaped   s«   € Ø()¬°´ª¨˜q !˜f˜f¸A¸q¸6‰OˆH�eØŒ|˜eœiÒ'Ð'¨H¬O¸e¼lÒ,JÐ,JÝ&Ð'GÑHÔHÐHà)*¬°!´&ª¨  1˜v˜v¸qÀ!¸fÑˆI�uØŒ~ ¤
Ò*Ð*¨y¬ÀÄÒ/LÐ/LÝ&Ð'GÑHÔHÐHð +Ð*Ð/LÐ/Lr1   )rD  rF   rE  rF   )Úminr  r
  Úmaxrí   r  )rA   r  rI  rN  r  r
  rí   r  s           r2   r  zCT_Tc._span_dimensions•  s½   € ð
	Ið 	Ið 	Ið 	Ið	Ið 	Ið 	Ið 	Ið 	Ð˜D (Ñ+Ô+Ð+ØÐ˜D (Ñ+Ô+Ð+å�$”(˜HœLÑ)Ô)ˆÝ�4”9˜hœmÑ,Ô,ˆÝ�T”[ (¤/Ñ2Ô2ˆÝ�D”J ¤Ñ/Ô/ˆà�D˜& 3™,¨°©Ð4Ð4r1   Ú
grid_widthrê   c                ó–   — |                       |¦  «         | j        |k     r!|                      ||¦  «         | j        |k     °!|| _        dS )a†  Incorporate `w:tc` elements to the right until this cell spans `grid_width`.

        Incorporated `w:tc` elements are removed (replaced by gridSpan value).

        Raises |ValueError| if `grid_width` cannot be exactly achieved, such as when a
        merged cell would drive the span width greater than `grid_width` or if not
        enough grid columns are available to make this cell that wide. All content from
        incorporated cells is appended to `top_tc`. The val attribute of the vMerge
        element on the single remaining cell is set to `vMerge`. If `vMerge` is |None|,
        the vMerge element is removed if present.
        N)r4  rH   Ú_swallow_next_tcrê   )rA   rQ  r  rê   s       r2   r%  zCT_Tc._span_to_width³  sU   € ð 	×Ò˜fÑ%Ô%Ð%ØŒn˜zÒ)Ð)Ø×!Ò! *¨fÑ5Ô5Ð5ð Œn˜zÒ)Ð)àˆŒˆˆr1   c                óê   ‡ ‡— dˆˆ fd„}‰ j         } ||¦  «         |€J ‚|                     |¦  «         ‰                      |¦  «         ‰ xj        |j        z  c_        |                     ¦   «          dS )aÿ  Extend the horizontal span of this `w:tc` element to incorporate the
        following `w:tc` element in the row and then delete that following `w:tc`
        element.

        Any content in the following `w:tc` element is appended to the content of
        `top_tc`. The width of the following `w:tc` element is added to this one, if
        present. Raises |InvalidSpanError| if the width of the resulting cell is greater
        than `grid_width` or if there is no next `<w:tc>` element in the row.
        Únext_tcr!  c                ón   •— | €t          d¦  «        ‚‰j        | j        z   ‰k    rt          d¦  «        ‚d S )Nznot enough grid columnszspan is not rectangular)r
   rH   )rU  rQ  rA   s    €€r2   Úraise_on_invalid_swallowz8CT_Tc._swallow_next_tc.<locals>.raise_on_invalid_swallowÏ  sC   ø€ ØˆÝ&Ð'@ÑAÔAÐAØŒ~ Ô 1Ñ1°JÒ>Ð>Ý&Ð'@ÑAÔAÐAð ?Ð>r1   N)rU  r!  )r:  r4  r   rH   r=  )rA   rQ  r  rW  rU  s   ``   r2   rS  zCT_Tc._swallow_next_tcÄ  s¥   øø€ ð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð ”-ˆØ Ð  Ñ)Ô)Ð)ØÐ"Ð"Ð"Ø× Ò  Ñ(Ô(Ð(Ø×Ò˜7Ñ#Ô#Ð#ØˆŒ˜'Ô+Ñ+ˆŒØ�ŠÑÔÐÐÐr1   rN   c                ó^   — t          t          |                      d¦  «        d         ¦  «        S )z+The tbl element this tc element appears in.z./ancestor::w:tbl[position()=1]r   )r   rN   rñ   ri   s    r2   r  z
CT_Tc._tblÝ  s&   € õ •F˜DŸJšJÐ'HÑIÔIÈ!ÔLÑMÔMÐMr1   c                ó@   — | j                              | j        ¦  «        S )zAThe `w:tc` element immediately above this one in its grid column.)Ú	_tr_aboverL   rE   ri   s    r2   r  zCT_Tc._tc_aboveâ  s   € ð Œ~×/Ò/°Ô0@ÑAÔAÐAr1   c                óL   — | j         }|€dS |                     | j        ¦  «        S )z=The tc element immediately below this one in its grid column.N)Ú	_tr_belowrL   rE   )rA   Útr_belows     r2   rë   zCT_Tc._tc_belowç  s-   € ð ”>ˆØÐØ�4Ø×)Ò)¨$Ô*:Ñ;Ô;Ð;r1   r4   c                ó^   — t          t          |                      d¦  «        d         ¦  «        S )z*The tr element this tc element appears in.z./ancestor::w:tr[position()=1]r   )r   r4   rñ   ri   s    r2   rù   z	CT_Tc._trï  s&   € õ •F˜DŸJšJÐ'GÑHÔHÈÔKÑLÔLÐLr1   c                ó^   — |                       d¦  «        }|st          d¦  «        ‚|d         S )z�The tr element prior in sequence to the tr this cell appears in.

        Raises |ValueError| if called on a cell in the top-most row.
        z9./ancestor::w:tr[position()=1]/preceding-sibling::w:tr[1]zno tr above topmost tr in w:tblr   )rñ   rI   )rA   Ú	tr_abovess     r2   rZ  zCT_Tc._tr_aboveô  s8   € ð —J’JÐZÑ[Ô[ˆ	Øð 	@ÝÐ>Ñ?Ô?Ð?Ø˜Œ|Ðr1   úCT_Row | Nonec                óˆ   — | j         j        }|                     | j        ¦  «        }	 ||dz            S # t          $ r Y dS w xY w)zzThe tr element next in sequence after the tr this cell appears in, or |None|
        if this cell appears in the last row.rÂ   N)r  rP   rQ   rù   Ú
IndexError)rA   rP   rS   s      r2   r\  zCT_Tc._tr_belowÿ  sW   € ð ”Ô!ˆØ—’˜dœhÑ'Ô'ˆð	Ø˜& 1™*Ô%Ð%øÝð 	ð 	ð 	Ø�4�4ð	øøøs   ¨
3 ³
AÁ Ac                óJ   — | j         j                             | j        ¦  «        S )z;The row index of the tr element this tc element appears in.)r  rP   rQ   rù   ri   s    r2   rî   zCT_Tc._tr_idx
  s   € ð ŒyÔ×%Ò% d¤hÑ/Ô/Ð/r1   rk   ©rV   r<   )r;   r   )r  rF   r;   rF   )r;   rF   r§   rÕ   rÝ   rÞ   )r  rF   rX   )r‰   r<   r  r<   r  r!  )ræ   r&  r;   r&  rÔ   )r;   r”   )r;   r!  )r  rF   r;   rB  )rQ  r<   r  rF   rê   rŽ   )rQ  r<   r  rF   )r;   rN   )r;   r4   )r;   ra  )-r+   r,   r-   r.   r/   r   ræ   r   rA  rR   ro   rí   rô   rE   rH   rp   r  r  r
  r  r¨   rh   r  r  rê   r‰   r   r  r(  r/  r4  r7  r:  r=  r1  r  r%  rS  r  r  rë   rù   rZ  r\  rî   r0   r1   r2   rF   rF   ¥  sn  € € € € € € Ø$Ð$àÐÐÑØ*Ð*Ð*Ñ*ØÐÐÑØÐÐÑØ+Ð+Ð+Ñ+ØÐÐÑð %˜9 XÑ.Ô.€DÐ.Ð.Ð.Ñ.Øˆ	�%ÑÔ€AØ
ˆ)�GÑ
Ô
€Càð
 ð 
 ð 
 ñ „Xð
 ð	ð 	ð 	ð ð	5ð 	5ð 	5ñ „Xð	5ð ð5ð 5ð 5ñ „Xð5ð Ôðð ð ñ Ôðð ð-ð -ð -ñ „Xð-ðð ð ð ð ð  ð  ñ „Xð ð	ð 	ð 	ð 	ð ðOð Oð Oñ „[ðOð ð1ð 1ð 1ñ „Xð1ð ð"ð "ð "ñ „Xð"ð ðð ð ñ „Xðð „]ð ð  ð  ñ „]ð ð ðð ð ñ „Xðð „\ðð ð ñ „\ðð=ð =ð =ð =ð9ð 9ð 9ð 9ð 9ð.ð ð ð ð ðIð Ið Iñ „XðIð#ð #ð #ð #ð 
ð 
ð 
ð 
ð
 ð;ð ;ð ;ñ „Xð;ð$ð $ð $ð	ð 	ð 	ð5ð 5ð 5ð 5ð<ð ð ð ð"ð ð ð ð2 ðNð Nð Nñ „XðNð ðBð Bð Bñ „XðBð ð<ð <ð <ñ „Xð<ð ðMð Mð Mñ „XðMð ðð ð ñ „Xðð ðð ð ñ „Xðð ð0ð 0ð 0ñ „Xð0ð 0ð 0r1   rF   c                  ó  — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   d
ed<   d
ed<   dZ ededd…         ¬¦  «        Zded<    ededd…         ¬¦  «        Zded<    ededd…         ¬¦  «        Z	ded<    ededd…         ¬¦  «        Z
ded <   [ed0d#„¦   «         Zej        d1d%„¦   «         Zed&„ ¦   «         Zej        d2d(„¦   «         Zed)„ ¦   «         Zej        d3d+„¦   «         Zed4d-„¦   «         Zej        d5d/„¦   «         ZdS )6r&  z5``<w:tcPr>`` element, defining table cell properties.zCallable[[], CT_DecimalNumber]Úget_or_add_gridSpanzCallable[[], CT_TblWidth]Úget_or_add_tcWzCallable[[], CT_VerticalJc]Úget_or_add_vAlignzCallable[[], CT_VMerge]Ú_add_vMergerº   Ú_remove_gridSpanÚ_remove_vAlignÚ_remove_vMerge)ú
w:cnfStyleúw:tcWú
w:gridSpanzw:hMergeúw:vMergezw:tcBordersrÀ   zw:noWrapzw:tcMarzw:textDirectionzw:tcFitTextúw:vAlignz
w:hideMarkz	w:headersz	w:cellInsz	w:cellDelzw:cellMergezw:tcPrChangero  é   Nr«   zCT_TblWidth | NoneÚtcWrp  é   úCT_DecimalNumber | NoneÚgridSpanrq  é   zCT_VMerge | Nonerê   rr  é   zCT_VerticalJc | NoneÚvAlignr;   r<   c                ó&   — | j         }|€dn|j        S )zsThe integer number of columns this cell spans.

        Determined by ./w:gridSpan/@val, it defaults to 1.
        NrÂ   )rw  r(   )rA   rw  s     r2   rH   zCT_TcPr.grid_span=  s   € ð ”=ˆØÐ$ˆqˆq¨(¬,Ð6r1   rV   c                óp   — |                       ¦   «          |dk    r||                      ¦   «         _        d S d S r$  )rk  rg  r(   rÓ   s     r2   rH   zCT_TcPr.grid_spanF  s>   € à×ÒÑÔÐØ�1Š9ˆ9Ø-2ˆD×$Ò$Ñ&Ô&Ô*Ð*Ð*ð ˆ9r1   c                ó&   — | j         }|€dS |j        S )z¯Value of `w:val` attribute on  `w:vAlign` child.

        Value is |None| if `w:vAlign` child is not present. The `w:val` attribute on
        `w:vAlign` is required.
        N)rz  r(   )rA   rz  s     r2   Ú
vAlign_valzCT_TcPr.vAlign_valL  s   € ð ”ˆØˆ>Ø�4ØŒzÐr1   ú!WD_CELL_VERTICAL_ALIGNMENT | Nonec                óh   — |€|                       ¦   «          d S ||                      ¦   «         _        d S rX   )rl  ri  r(   rÓ   s     r2   r~  zCT_TcPr.vAlign_valX  s8   € àˆ=Ø×ÒÑ!Ô!Ð!ØˆFØ',ˆ×ÒÑ Ô Ô$Ð$Ð$r1   c                ó&   — | j         }|€dS |j        S )zeThe value of the ./w:vMerge/@val attribute, or |None| if the w:vMerge element
        is not present.N)rê   r(   )rA   rê   s     r2   r  zCT_TcPr.vMerge_val_  s   € ð ”ˆØˆ>Ø�4ØŒzÐr1   rŽ   c                óh   — |                       ¦   «          |�||                      ¦   «         _        d S d S rX   )rm  rj  r(   rÓ   s     r2   r  zCT_TcPr.vMerge_valh  s<   € à×ÒÑÔÐØÐØ%*ˆD×ÒÑÔÔ"Ð"Ð"ð Ðr1   r'   c                ó&   — | j         }|€dS |j        S )zJEMU length in `./w:tcW` or |None| if not present or its type is not 'dxa'.N)rt  r‰   )rA   rt  s     r2   r‰   zCT_TcPr.widthn  s   € ð ŒhˆØˆ;Ø�4ØŒyÐr1   r   c                ó<   — |                       ¦   «         }||_        d S rX   )rh  r‰   )rA   rV   rt  s      r2   r‰   zCT_TcPr.widthv  s   € à×!Ò!Ñ#Ô#ˆØˆŒ	ˆ	ˆ	r1   rk   re  )rV   r  rÕ   rÝ   rÞ   )r+   r,   r-   r.   r/   rÖ   r   rt  rw  rê   rz  ro   rH   rp   r~  r  r‰   r0   r1   r2   r&  r&    sb  € € € € € € Ø?Ð?à7Ð7Ð7Ñ7Ø-Ð-Ð-Ñ-Ø2Ð2Ð2Ñ2Ø(Ð(Ð(Ñ(Ø(Ð(Ð(Ñ(Ø&Ð&Ð&Ñ&Ø&Ð&Ð&Ñ&ð€Hð( (˜iØ˜H Q R RœLðñ ô €Cð ð ð ñ ð )2¨	Ø ¨!¨"¨"¤ð)ñ )ô )€Hð ð ð ñ ð  )˜yØ˜x¨¨¨œ|ð ñ  ô  €Fð ð ð ñ ð $- 9Ø˜x¨¨¨œ}ð$ñ $ô $€Fð ð ð ñ ð 	àð7ð 7ð 7ñ „Xð7ð Ôð3ð 3ð 3ñ Ôð3ð
 ð	ð 	ñ „Xð	ð Ôð-ð -ð -ñ Ôð-ð ðð ñ „Xðð Ôð+ð +ð +ñ Ôð+ð
 ðð ð ñ „Xðð „\ðð ð ñ „\ðð ð r1   r&  c                  ób  — e Zd ZU dZded<   dZ ededd…         ¬¦  «        Zd	ed
<    ededd…         ¬¦  «        Zd	ed<    ededd…         ¬¦  «        Z	ded<   [e
dd„¦   «         Ze
dd„¦   «         Ze
dd„¦   «         Zej        dd„¦   «         Ze
d„ ¦   «         Zej        d d„¦   «         ZdS )!rc   z4``<w:trPr>`` element, defining table row properties.zCallable[[], CT_Height]Úget_or_add_trHeight)rn  zw:divIdúw:gridBeforeúw:gridAfterz	w:wBeforezw:wAfterzw:cantSplitú
w:trHeightzw:tblHeaderr¿   r¾   zw:hiddenzw:inszw:delzw:trPrChangerˆ  rÃ   Nr«   rv  Ú	gridAfterr‡  ru  Ú
gridBeforer‰  rÄ   zCT_Height | NoneÚtrHeightr;   r<   c                ó&   — | j         }|€dn|j        S r>   )rŠ  r(   )rA   rŠ  s     r2   r?   zCT_TrPr.grid_after�  s   € ð ”Nˆ	ØÐ%ˆqˆq¨9¬=Ð8r1   c                ó&   — | j         }|€dn|j        S rC   )r‹  r(   )rA   r‹  s     r2   rD   zCT_TrPr.grid_before£  s   € ð ”_ˆ
ØÐ&ˆqˆq¨J¬NÐ:r1   r)   c                ó&   — | j         }|€dn|j        S )zCReturn the value of `w:trHeight@w:hRule`, or |None| if not present.N)rŒ  r*   ©rA   rŒ  s     r2   rU   zCT_TrPr.trHeight_hRule©  s   € ð ”=ˆØÐ'ˆtˆt¨X¬^Ð;r1   rV   c                óR   — |€	| j         €d S |                      ¦   «         }||_        d S rX   )rŒ  r†  r*   ©rA   rV   rŒ  s      r2   rU   zCT_TrPr.trHeight_hRule¯  s/   € àˆ=˜Tœ]Ð2ØˆFØ×+Ò+Ñ-Ô-ˆØˆŒˆˆr1   c                ó&   — | j         }|€dn|j        S )zAReturn the value of `w:trHeight@w:val`, or |None| if not present.N)rŒ  r(   r�  s     r2   r[   zCT_TrPr.trHeight_val¶  s   € ð ”=ˆØÐ'ˆtˆt¨X¬\Ð9r1   r'   c                óR   — |€	| j         €d S |                      ¦   «         }||_        d S rX   )rŒ  r†  r(   r’  s      r2   r[   zCT_TrPr.trHeight_val¼  s/   € àˆ=˜Tœ]Ð2ØˆFØ×+Ò+Ñ-Ô-ˆØˆŒˆˆr1   rk   rl   rm   rn   )r+   r,   r-   r.   r/   rÖ   r   rŠ  r‹  rŒ  ro   r?   rD   rU   rp   r[   r0   r1   r2   rc   rc   |  s   € € € € € € Ø>Ð>à0Ð0Ð0Ñ0ð€Hð" *3¨Ø (¨1¨2¨2¤,ð*ñ *ô *€Ið ð ð ñ ð +4¨)Ø 8¨A¨B¨B¤<ð+ñ +ô +€Jð ð ð ñ ð "+ Ø ¨!¨"¨"¤ð"ñ "ô "€Hð ð ð ñ ð 	àð9ð 9ð 9ñ „Xð9ð
 ð;ð ;ð ;ñ „Xð;ð
 ð<ð <ð <ñ „Xð<ð
 Ôðð ð ñ Ôðð ð:ð :ñ „Xð:ð
 Ôðð ð ñ Ôðð ð r1   rc   c                  ó6   — e Zd ZU dZ ede¦  «        Zded<   dS )ÚCT_VerticalJcz:`w:vAlign` element, specifying vertical alignment of cell.r&   r   r(   N)r+   r,   r-   r.   r   r   r(   r/   r0   r1   r2   r–  r–  Ä  sH   € € € € € € ØDÐDà&7Ð&7ØÐ+ñ'ô '€Cð ð ð ñ ð ð r1   r–  c                  óD   — e Zd ZU dZ edeej        ¬¦  «        Zded<   dS )Ú	CT_VMergezG``<w:vMerge>`` element, specifying vertical merging behavior of a cell.r&   )ÚdefaultrŽ   r(   N)	r+   r,   r-   r.   r   r   rì   r(   r/   r0   r1   r2   r˜  r˜  Ì  sQ   € € € € € € ØQÐQà'Ð'Ø� 8Ô#4ðñ ô €Cð ð ð ñ ð ð r1   r˜  N)=r.   Ú
__future__r   Útypingr   r   r   Údocx.enum.tabler   r   r	   Údocx.exceptionsr
   Údocx.oxml.nsr   r   Údocx.oxml.parserr   Údocx.oxml.sharedr   Údocx.oxml.simpletypesr   r   r   r   r   Údocx.oxml.text.paragraphr   Údocx.oxml.xmlchemyr   r   r   r   r   r   r   Údocx.sharedr   r   r   r   Údocx.enum.textr    r!   r"   Údocx.oxml.text.parfmtr#   r%   r4   rN   ru   r¯   r´   rs   r]   rÙ   rF   r&  rc   r–  r˜  r0   r1   r2   ú<module>r§     se  ðØ (Ð (à "Ð "Ð "Ð "Ð "Ð "à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø &Ð &Ð &Ð &Ð &Ð &Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *àð ,Ø2Ð2Ð2Ð2Ð2Ð2Ø1Ð1Ð1Ð1Ð1Ð1Ø4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ø+Ð+Ð+Ð+Ð+Ð+ðð ð ð ð �ñ ô ð ð^ð ^ð ^ð ^ð ^ˆ_ñ ^ô ^ð ^ðBnð nð nð nð nˆ_ñ nô nð nðb	Gð 	Gð 	Gð 	Gð 	G�ñ 	Gô 	Gð 	Gð/ð /ð /ð /ð /�Oñ /ô /ð /ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ðZ)ð Z)ð Z)ð Z)ð Z)ˆñ Z)ô Z)ð Z)ðzð ð ð ð �ñ ô ð ð"ð "ð "ð "ð "�/ñ "ô "ð "ð,h0ð h0ð h0ð h0ð h0ˆOñ h0ô h0ð h0ðVið ið ið ið iˆoñ iô ið iðXEð Eð Eð Eð Eˆoñ Eô Eð EðPð ð ð ð �Oñ ô ð ðð ð ð ð �ñ ô ð ð ð r1   