Ë
    \RðiJƒ  ã                  ó<  — 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<y-).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                  óJ   — e Zd ZU dZ ede«      Zded<    ede«      Z	ded<   y)	Ú	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*   © ó    úJ/var/www/html/Extract/venv/lib/python3.12/site-packages/docx/oxml/table.pyr%   r%   &   s5   … ÙLá*Ø�ó€Cˆó ñ (9ØÐ%ó(€EÐ$ô r1   r%   c                  ó@  — 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y)#Ú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:tcc                ó8   — | j                   }|€y|j                  S ©zCThe number of unpopulated layout-grid cells at the end of this row.r   )r:   Ú
grid_after©Úselfr:   s     r2   r=   zCT_Row.grid_after?   s   € ð �y‰yˆØˆ<ØØ�‰Ðr1   c                ó8   — | j                   }|€y|j                  S ©zEThe number of unpopulated layout-grid cells at the start of this row.r   )r:   Úgrid_beforer>   s     r2   rB   zCT_Row.grid_beforeG   s!   € ð �y‰yˆØˆ<ØØ×ÑÐr1   c                óœ   — || 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=)rB   r8   Ú	grid_spanÚ
ValueError)r?   Úgrid_offsetÚremaining_offsetÚtcs       r2   Útc_at_grid_offsetzCT_Row.tc_at_grid_offsetO   sf   € ð '¨×)9Ñ)9Ñ9Ðà—+‘+ò 		-ˆBà !Ò#Ùà 1Ò$Ø’	ð  §¡Ñ,Ñð		-ô Ð:¸;¸-ÐHÓIÐIr1   c                ót   — t        t        | j                  «       «      }|j                  j	                  | «      S )z?Index of this `w:tr` element within its parent `w:tbl` element.)r   ÚCT_TblÚ	getparentÚtr_lstÚindex)r?   Útbls     r2   Útr_idxzCT_Row.tr_idxd   s,   € ô ”6˜4Ÿ>™>Ó+Ó,ˆØ�z‰z×Ñ Ó%Ð%r1   c                ó8   — | j                   }|€y|j                  S )zFThe value of `./w:trPr/w:trHeight/@w:hRule`, or |None| if not present.N)r:   ÚtrHeight_hRuler>   s     r2   rR   zCT_Row.trHeight_hRulej   s!   € ð �y‰yˆØˆ<ØØ×"Ñ"Ð"r1   c                ó2   — | j                  «       }||_        y ©N)r6   rR   ©r?   Úvaluer:   s      r2   rR   zCT_Row.trHeight_hRuler   s   € à×#Ñ#Ó%ˆØ#ˆÕr1   c                ó8   — | j                   }|€y|j                  S )zHReturn the value of `w:trPr/w:trHeight@w:val`, or |None| if not present.N)r:   ÚtrHeight_valr>   s     r2   rX   zCT_Row.trHeight_valw   s!   € ð �y‰yˆØˆ<ØØ× Ñ Ð r1   c                ó2   — | j                  «       }||_        y rT   )r6   rX   rU   s      r2   rX   zCT_Row.trHeight_val   s   € à×#Ñ#Ó%ˆØ!ˆÕr1   c                ó(   — | j                  d|«       y ©Nr   ©Úinsert)r?   r9   s     r2   Ú_insert_tblPrExzCT_Row._insert_tblPrEx„   s   € Ø�‰�A�wÕr1   c                óh   — | j                   }|�|j                  |«       y | j                  d|«       y r[   )r9   Úaddnextr]   )r?   r:   r9   s      r2   Ú_insert_trPrzCT_Row._insert_trPr‡   s+   € Ø—,‘,ˆØÐØ�O‰O˜DÕ!à�K‰K˜˜4Õ r1   c                ó*   — t         j                  «       S rT   )ÚCT_TcÚnew©r?   s    r2   Ú_new_tczCT_Row._new_tcŽ   s   € Ü�y‰y‹{Ðr1   N©ÚreturnÚint)rF   ri   rh   rc   ©rh   r)   ©rV   r)   ©rV   r'   )r9   Ú
CT_TblPrEx)r:   ÚCT_TrPr)r+   r,   r-   r.   r/   r   r9   r:   r   rH   Úpropertyr=   rB   rI   rP   rR   ÚsetterrX   r^   ra   rf   r0   r1   r2   r4   r4   1   sñ   … ÙàÓØ*Ó*Ø$Ó$àÓá!*¨;Ó!7€GÐÓ7á$ XÓ.€Dˆ.Ó.Ù	�FÓ	€Bàòó ðð ò ó ð óJð* ò&ó ð&ð
 ò#ó ð#ð ×Ñò$ó ð$ð ñ!ó ð!ð ×Ñò"ó ð"ó ó!ór1   r4   c                  óJ  — 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d d„«       Zedd„«       Zy)!rK   z``<w:tbl>`` element.zCallable[[], CT_Row]Úadd_trzlist[CT_Row]rM   zw:tblPrÚCT_TblPrÚtblPrz	w:tblGridÚ
CT_TblGridÚtblGridzw:trc                óL   — | j                   j                  }|€y|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(   )r?   rx   s     r2   ÚbidiVisual_valzCT_Tbl.bidiVisual_valœ   s&   € ð —Z‘Z×*Ñ*ˆ
ØÐØØ�~‰~Ðr1   c                ó~   — | j                   }|€|j                  «        y t        |«      |j                  «       _        y rT   )rt   Ú_remove_bidiVisualÚboolÚget_or_add_bidiVisualr(   )r?   rV   rt   s      r2   ry   zCT_Tbl.bidiVisual_val§   s1   € à—
‘
ˆØˆ=Ø×$Ñ$Õ&ä04°U³ˆE×'Ñ'Ó)Õ-r1   c                ó@   — t        | j                  j                  «      S )z)The number of grid columns in this table.)Úlenrv   ÚgridCol_lstre   s    r2   Ú	col_countzCT_Tbl.col_count¯   s   € ô �4—<‘<×+Ñ+Ó,Ð,r1   c              #  óX   K  — | j                   D ]  }|j                  D ]  }|–— Œ Œ y­w)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)rM   r8   )r?   ÚtrrH   s      r2   Úiter_tcszCT_Tbl.iter_tcs´   s3   è ø€ ð —+‘+ò 	ˆBØ—i‘iò �Ø“ññ	ùs   ‚(*c           
     óV   — t        t        t        | j                  |||«      «      «      S )zˆReturn a new `w:tbl` element having `rows` rows and `cols` columns.

        `width` is distributed evenly between the columns.
        )r   rK   r   Ú_tbl_xml)ÚclsÚrowsÚcolsÚwidths       r2   Únew_tblzCT_Tbl.new_tbl¿   s#   € ô ”FœI c§l¡l°4¸¸uÓ&EÓFÓGÐGr1   c                óL   — | j                   j                  }|€y|j                  S )zH`w:tblPr/w:tblStyle/@w:val` (a table style id) or |None| if not present.N)rt   ÚtblStyler(   ©r?   r�   s     r2   ÚtblStyle_valzCT_Tbl.tblStyle_valÇ   s&   € ð —:‘:×&Ñ&ˆØÐØØ�|‰|Ðr1   c                ól   — | j                   }|j                  «        |€y||j                  «       _        y)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(   )r?   ÚstyleIdrt   s      r2   r�   zCT_Tbl.tblStyle_valÏ   s2   € ð —
‘
ˆØ×ÑÔ Øˆ?ØØ$+ˆ×ÑÓÕ!r1   c           	     ó¨   — |dkD  rt        ||z  «      n
t        d«      }dt        d«      › d| j                  ||«      › | j                  |||«      › 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Û   sa   € à*.°ª(”C˜ ™Ô&¼¸A»ˆ	à”g˜c“l�^ð $ð ×Ñ  iÓ0Ð1Ø�|‰|˜D $¨	Ó2Ð3Øð	ð	
r1   c                óX   — 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ë   sA   € àˆÜ�yÓ!ò 	CˆAØÐ0°9·?±?ÑBÑB‰Cð	CàÐ!Ñ!ˆØˆ
r1   c                ó4   — d| j                  ||«      › d�|z  S )Nz	  <w:tr>
z
  </w:tr>
)Ú_tcs_xml)r‡   Ú	row_countr�   r˜   s       r2   r—   zCT_Tbl._trs_xmló   s"   € à˜CŸL™L¨°IÓ>Ð?¸{Ð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+   € ð0à09·±Ð/@ð Aðð ñð 	r1   N)rh   zbool | None)rV   zWD_TABLE_DIRECTION | None)rˆ   ri   r‰   ri   rŠ   r   rh   rK   ©rh   ú
str | None)r“   r£   rh   ÚNone)rˆ   ri   r‰   ri   rŠ   r   rh   Ústr)r�   ri   r˜   r   rh   r¥   )r    ri   r�   ri   r˜   r   rh   r¥   )r+   r,   r-   r.   r/   r   rt   rv   r   rƒ   ro   ry   rp   r�   r„   Úclassmethodr‹   r�   r†   r–   r—   rŸ   r0   r1   r2   rK   rK   ’   s  … Ùà Ó ØÓá# IÓ.€Eˆ8Ó.Ù'¨Ó4€GˆZÓ4Ù	�FÓ	€Bàòó ðð ×Ñò<ó ð<ð ñ-ó ð-ò	ð òHó ðHð òó ðð ×Ñò	,ó ð	,ð ò
ó ð
ð òó ðð òXó ðXð òó ñr1   rK   c                  ó:   — e Zd ZU dZded<   ded<    edd¬«      Zy	)
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     s"   … ñð
 -Ó,Ø$Ó$á˜Ð1EÔF�Gr1   ru   c                  ó@   — e Zd ZU dZ ede«      Zded<   edd„«       Z	y)ÚCT_TblGridColzB`w:gridCol` element, child of `w:tblGrid`, defines a table column.úw:wr'   r•   c                ót   — t        t        | j                  «       «      }|j                  j	                  | «      S )zHIndex of this `w:gridCol` element within its parent `w:tblGrid` element.)r   ru   rL   r€   rN   )r?   rv   s     r2   ÚgridCol_idxzCT_TblGridCol.gridCol_idx  s.   € ô ”z 4§>¡>Ó#3Ó4ˆØ×"Ñ"×(Ñ(¨Ó.Ð.r1   Nrg   )
r+   r,   r-   r.   r   r   r•   r/   ro   r°   r0   r1   r2   r­   r­     s/   … ÙLá(Øˆó€A€}ó ð ò/ó ñ/r1   r­   c                  ó.   — e Zd ZU dZ ede«      Zded<   y)Ú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²     s    … ññ )ØÐ"ó€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                  d+d&„«       Zy),rs   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 | Nonerx   r¼   é   zCT_Jc | NoneÚjcr¿   é   zCT_TblLayoutType | NoneÚ	tblLayoutc                óL   — | j                   }|€yt        d|j                  «      S )zAHorizontal alignment of table, |None| if `./w:jc` is not present.NúWD_TABLE_ALIGNMENT | None)rÃ   r   r(   )r?   rÃ   s     r2   Ú	alignmentzCT_TblPr.alignmentW  s'   € ð �W‰WˆØˆ:ØÜÐ/°·±Ó8Ð8r1   c                ól   — | j                  «        |€y | j                  «       }t        d|«      |_        y )Nr    )r¹   r¶   r   r(   )r?   rV   rÃ   s      r2   rÈ   zCT_TblPr.alignment_  s1   € à�‰ÔØˆ=ØØ×ÑÓ!ˆÜÐ*¨EÓ2ˆ�r1   c                ó@   — | j                   }|€dS |j                  dk7  S )zg|False| when there is a `w:tblLayout` child with `@w:type="fixed"`.

        Otherwise |True|.
        TÚfixed)rÅ   r´   )r?   rÅ   s     r2   ÚautofitzCT_TblPr.autofitg  s&   € ð —N‘Nˆ	Ø Ð(ˆtÐG¨i¯n©nÀÑ.GÐGr1   c                óF   — | j                  «       }|rd|_        y d|_        y )NrÌ   rË   )r·   r´   )r?   rV   rÅ   s      r2   rÌ   zCT_TblPr.autofitp  s   € à×-Ñ-Ó/ˆ	Ù&+˜ˆ	�°ˆ	�r1   c                ó8   — | j                   }|€y|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    € ð —=‘=ˆØÐØØ�|‰|Ðr1   c                óT   — | j                  «        |€y || j                  «       _        y rT   )r‘   r’   r(   ©r?   rV   s     r2   rÏ   zCT_TblPr.style~  s'   € à×ÑÔØˆ=ØØ#(ˆ×ÑÓÕ r1   )rh   rÇ   )rV   rÇ   ©rh   r|   )rV   r|   ©rV   r£   )r+   r,   r-   r.   r/   Ú_tag_seqr   r�   rx   rÃ   rÅ   ro   rÈ   rp   rÌ   rÏ   r0   r1   r2   rs   rs   )  s?  … ñ3ð 2Ó1Ø&Ó&Ø8Ó8Ø*Ó*Ø*Ó*Ø"Ó"Ø(Ó(ð€Hñ( "+Ø ¨!¨" ô"€HÐó ñ #,Ø 8¨A¨B <ô#€J�ó ñ !Ø˜8 A B˜<ô€Bˆó ñ *3Ø (¨2¨3 -ô*€IÐ&ó ð 	àò9ó ð9ð ×Ñò3ó ð3ð òHó ðHð ‡^�^ò9ó ð9ð ñó ðð ‡\�\ò)ó ñ)r1   rs   c                  ó   — e Zd ZdZy)rm   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   rm   rm   †  s   „ òr1   rm   c                  óx   — 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y)ÚCT_TblWidthzJUsed for `w:tblW` and `w:tcW` and others, specifies a table-related width.r®   ri   r•   r³   c                óL   — | j                   dk7  ryt        | j                  «      S )z>EMU length indicated by the combined `w:w` and `w:type` attrs.ÚdxaN)r´   r   r•   re   s    r2   rŠ   zCT_TblWidth.width˜  s!   € ð �9‰9˜ÒØÜ�T—V‘V‹}Ðr1   c                óF   — d| _         t        |«      j                  | _        y )NrÙ   )r´   r   r›   r•   rÑ   s     r2   rŠ   zCT_TblWidth.widthŸ  s   € àˆŒ	Ü�U“×!Ñ!ˆ�r1   N©rh   r'   ©rV   r   )r+   r,   r-   r.   r   r   r•   r/   r   r´   ro   rŠ   rp   r0   r1   r2   r×   r×   �  sN   … ÙTñ
 ˜u fÓ-€A€sÓ-Ù˜X {Ó3€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<    ed«      Zded<    ed«      Z ed«      Z	e
d6d„«       Zd„ Ze
d6d„«       Ze
d6d„«       Zej                  d7d„«       Ze
d8d„«       Zd„ Ze
d6d„«       Zd9d„Zed:d„«       Ze
d6d„«       Ze
d6d„«       Ze
d;d„«       Zej                  d<d„«       Ze
d=d „«       Zej                  d>d!„«       Zd?d"„Zd@dAd$„ZdBd%„Ze
dCd&„«       Zd?d'„ZdDd(„Ze
dEd)„«       Z d*„ Z!d+„ Z"dFd,„Z#dGd-„Z$dHd.„Z%e
dId/„«       Z&e
d:d0„«       Z'e
dEd1„«       Z(e
dJd2„«       Z)e
dJd3„«       Z*e
dKd4„«       Z+e
d6d5„«       Z,y#)Lrc   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:tblc                ó¦   — | j                   �7| 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.
        rÀ   )ÚvMergeÚ	_tc_belowr   ÚCONTINUEÚbottomÚ_tr_idx)r?   Útc_belows     r2   rë   zCT_Tc.bottom´  sG   € ð �;‰;Ð"Ø—~‘~ˆHØÐ#¨¯©¼8×;LÑ;LÒ(LØ—‘Ð&Ø�|‰|˜aÑÐr1   c                óR   — | j                  d«      D ]  }| j                  |«       Œ y)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)r?   Úes     r2   Úclear_contentzCT_Tc.clear_contentÁ  s(   € ð —‘Ð4Ó5ò 	ˆAØ�K‰K˜�Nñ	r1   c                óz   — | j                   j                  }t        d„ | j                  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  ó4   K  — | ]  }|j                   –— Œ y ­wrT   )rD   )Ú.0rH   s     r2   ú	<genexpr>z$CT_Tc.grid_offset.<locals>.<genexpr>Ó  s   è ø€ ò &
ØˆB�L�Lñ&
ùs   ‚z./preceding-sibling::w:tc)Ú_trrB   Úsumrï   )r?   rB   Úpreceding_tc_grid_spanss      r2   rF   zCT_Tc.grid_offsetÌ  sC   € ð —h‘h×*Ñ*ˆÜ"%ñ &
Ø#'§:¡:Ð.IÓ#Jô&
ó #
Ðð Ð4Ñ4Ð4r1   c                ó:   — | j                   }|€dS |j                  S )zzThe integer number of columns this cell spans.

        Determined by ./w:tcPr/w:gridSpan/@val, it defaults to 1.
        rÀ   )rä   rD   ©r?   rä   s     r2   rD   zCT_Tc.grid_spanØ  s    € ð �y‰yˆØ�LˆqÐ4 d§n¡nÐ4r1   c                ó2   — | j                  «       }||_        y rT   )rß   rD   ©r?   rV   rä   s      r2   rD   zCT_Tc.grid_spaná  s   € à×#Ñ#Ó%ˆØˆ�r1   c                ó$   — | j                  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ï   re   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 sŒ|–— Œ y­w)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)r?   Úblock_item_tagsÚchilds      r2   Úiter_block_itemszCT_Tc.iter_block_itemsï  s@   è ø€ ô ˜e›9¤b¨£k´2°g³;Ð?ˆØò 	ˆEØ�y‰y˜OÒ+Ø“ñ	ùs   ‚4>·>c                ó   — | j                   S )z?The grid column index at which this ``<w:tc>`` element appears.)rF   re   s    r2   Úleftz
CT_Tc.left÷  s   € ð ×ÑÐr1   c                ó¦   — | j                  |«      \  }}}}| j                  j                  |   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Ú_tblrM   rI   Ú_grow_to)r?   Úother_tcÚtopr  ÚheightrŠ   Útop_tcs          r2   ÚmergezCT_Tc.mergeü  sO   € ð $(×#8Ñ#8¸Ó#BÑ ˆˆT�6˜5Ø—‘×!Ñ! #Ñ&×8Ñ8¸Ó>ˆØ�‰˜˜vÔ&Øˆr1   c           	     óL   — 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   rc   r   r   )r‡   s    r2   rd   z	CT_Tc.new  s    € ô ”Eœ9Ð%=ÄÈÃÑ%LÓMÓNÐNr1   c                ó4   — | 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.
        )rF   rD   re   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  re   s    r2   r  z	CT_Tc.top  s9   € ð �;‰;Ð $§+¡+´×1AÑ1AÒ"AØ—<‘<ÐØ�~‰~×!Ñ!Ð!r1   c                ó8   — | j                   }|€y|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‰yˆØˆ<ØØ�‰Ðr1   c                ó2   — | j                  «       }||_        y rT   )rß   r  rý   s      r2   rè   zCT_Tc.vMerge%  s   € à×#Ñ#Ó%ˆØˆ�r1   c                ó8   — | j                   }|€y|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‰yˆØˆ<ØØ�z‰zÐr1   c                ó2   — | j                  «       }||_        y rT   )rß   rŠ   rý   s      r2   rŠ   zCT_Tc.width2  s   € à×#Ñ#Ó%ˆØˆ�
r1   c                ó†   — | j                   r5|j                   r(t        | j                   |j                   z   «      | _         yyy)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   )r?   r  s     r2   Ú_add_width_ofzCT_Tc._add_width_of7  s1   € ð
 �:Š:˜(Ÿ.š.Ü §
¡
¨X¯^©^Ñ ;Ó<ˆD�Jð )ˆ:r1   Nc                ó¬   ‡ ‡— dˆˆ fd„}|€‰ n|}‰ j                  || ||«      «       ‰dkD  r'‰ j                  }|€J ‚|j                  |‰dz
  |«       yy)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.
        c                óZ   •— | ‰urt         j                  S ‰dk(  rd S t         j                  S ©NrÀ   )r   rê   r  )r  r  r?   s    €€r2   r  z"CT_Tc._grow_to.<locals>.vMerge_valF  s@   ø€ ð  Ñ%ô ×!Ñ!ðð ˜Q’;ð ðô
 ×%Ñ%ðr1   NrÀ   )r  rc   )Ú_span_to_widthré   r  )r?   rŠ   r  r  r  rí   s   ` `   r2   r  zCT_Tc._grow_to?  sc   ù€ ö	ð  ˜‘¨VˆØ×Ñ˜E 6©:°fÓ+=Ô>Ø�AŠ:Ø—~‘~ˆHØÐ'Ð'Ð'Ø×Ñ˜e V¨a¡Z°Õ8ð r1   c                ó*   — | j                  d|«       |S )z#Override default `._insert_tcPr()`.r   r\   rû   s     r2   Ú_insert_tcPrzCT_Tc._insert_tcPrV  s   € ð 	�‰�A�tÔØˆr1   c                ó°   — t        | j                  «       «      }t        |«      dkD  ry|d   }t        |t        «      xr 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)r?   Úblock_itemsÚ	only_items      r2   Ú	_is_emptyzCT_Tc._is_empty]  sR   € ô ˜4×0Ñ0Ó2Ó3ˆÜˆ{Ó˜aÒØð   ‘Nˆ	Ü˜)¤TÓ*ÒH¬s°9·?±?Ó/CÀqÑ/HÐHr1   c                óÒ   — || u ry| j                   ry|j                  «        | j                  «       D ]  }|j                  |«       Œ | j                  | j	                  «       «       y)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ã   )r?   r  Úblock_elements      r2   Ú_move_content_tozCT_Tc._move_content_toh  s]   € ð
 �tÑØØ�>Š>ØØ×)Ñ)Ô+à!×2Ñ2Ó4ò 	+ˆMØ�O‰O˜MÕ*ð	+ð 	�‰�D—K‘K“MÕ"r1   c                ó   — t        d«      ‚)NzDuse CT_Tbl.new_tbl() to add a new table, specifying rows and columns)ÚNotImplementedErrorre   s    r2   Ú_new_tblzCT_Tc._new_tblx  s   € Ü!ØRó
ð 	
r1   c                ó6   — | j                  d«      }|r|d   S 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ÿ   )r?   Úfollowing_tcss     r2   Ú_next_tczCT_Tc._next_tc}  s%   € ð Ÿ
™
Ð#>Ó?ˆÙ#0ˆ}˜QÑÐ:°dÐ:r1   c                óN   — | j                  «       }|€J ‚|j                  | «       y)z-Remove this `w:tc` element from the XML tree.N)rL   rð   )r?   Úparent_elements     r2   Ú_removezCT_Tc._remove„  s(   € àŸ™Ó)ˆØÐ)Ð)Ð)Ø×Ñ˜dÕ#r1   c                óº   — t        | j                  «       «      }|d   }t        |t        «      sy|}t	        |j
                  «      dkD  ry| j                  |«       y)zJRemove last content element from this cell if it's an empty `w:p` element.éÿÿÿÿNr   )r%  r  r&  r   r   r'  rð   )r?   r(  Úlast_content_elmÚps       r2   r,  zCT_Tc._remove_trailing_empty_pŠ  sP   € ä˜4×0Ñ0Ó2Ó3ˆØ& r™?ÐÜÐ*¬DÔ1ØØˆÜˆq�w‰w‹<˜!ÒØØ�‰�A�r1   c                óN  — 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.c                óú   — | j                   |j                   k(  r$| j                  |j                  k7  rt        d«      ‚| j                  |j                  k(  r%| j                  |j                  k7  rt        d«      ‚y y ©Nzrequested span not rectangular©r  rë   r
   r  r  )ÚaÚbs     r2   Úraise_on_inverted_Lz3CT_Tc._span_dimensions.<locals>.raise_on_inverted_Lš  s_   € Ø�u‰u˜Ÿ™Š~ !§(¡(¨a¯h©hÒ"6Ü&Ð'GÓHÐHØ�v‰v˜Ÿ™Ò A§G¡G¨q¯w©wÒ$6Ü&Ð'GÓHÐHð %7Ðr1   c                óŠ  — | j                   |j                   k  r| |fn|| f\  }}|j                   |j                   k  r$|j                  |j                  kD  rt        d«      ‚| j                  |j                  k  r| |fn|| f\  }}|j                  |j                  k  r%|j                  |j                  kD  rt        d«      ‚y y r?  r@  )rA  rB  Útop_mostÚotherÚ	left_mosts        r2   Úraise_on_tee_shapedz3CT_Tc._span_dimensions.<locals>.raise_on_tee_shaped   s¤   € Ø()¯©°·±ª˜q !™f¸A¸q¸6‰OˆH�eØ�|‰|˜eŸi™iÒ'¨H¯O©O¸e¿l¹lÒ,JÜ&Ð'GÓHÐHà)*¯©°!·&±&ª  1™v¸qÀ!¸fÑˆI�uØ�~‰~ §
¡
Ò*¨y¯©ÀÇÁÒ/LÜ&Ð'GÓHÐHð 0MÐ*r1   )rA  rc   rB  rc   )Úminr  r  Úmaxrë   r  )r?   r  rC  rH  r  r  rë   r  s           r2   r	  zCT_Tc._span_dimensions•  s‹   € ó
	Ió	Iñ 	˜D (Ô+Ù˜D (Ô+ä�$—(‘(˜HŸL™LÓ)ˆÜ�4—9‘9˜hŸm™mÓ,ˆÜ�T—[‘[ (§/¡/Ó2ˆÜ�D—J‘J §¡Ó/ˆà�D˜& 3™,¨°©Ð4Ð4r1   c                ó–   — | j                  |«       | j                  |k  r"| j                  ||«       | j                  |k  rŒ"|| _        y)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)r/  rD   Ú_swallow_next_tcrè   )r?   Ú
grid_widthr  rè   s       r2   r!  zCT_Tc._span_to_width³  sC   € ð 	×Ñ˜fÔ%Ø�n‰n˜zÒ)Ø×!Ñ! *¨fÔ5ð �n‰n˜zÓ)àˆ�r1   c                óè   ‡ ‡— dˆˆ fd„}‰ j                   } ||«       |€J ‚|j                  |«       ‰ j                  |«       ‰ xj                  |j                  z  c_        |j	                  «        y)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.
        c                ón   •— | €t        d«      ‚‰j                  | j                  z   ‰kD  rt        d«      ‚y )Nznot enough grid columnszspan is not rectangular)r
   rD   )Únext_tcrM  r?   s    €€r2   Úraise_on_invalid_swallowz8CT_Tc._swallow_next_tc.<locals>.raise_on_invalid_swallowÏ  s<   ø€ ØˆÜ&Ð'@ÓAÐAØ�~‰~ × 1Ñ 1Ñ1°JÒ>Ü&Ð'@ÓAÐAð ?r1   N)rP  úCT_Tc | None)r5  r/  r  rD   r8  )r?   rM  r  rQ  rP  s   ``   r2   rL  zCT_Tc._swallow_next_tcÄ  sb   ù€ ö	Bð —-‘-ˆÙ  Ô)ØÐ"Ð"Ð"Ø× Ñ  Ô(Ø×Ñ˜7Ô#Ø�Š˜'×+Ñ+Ñ+�Ø�‰Õr1   c                óF   — t        t        | j                  d«      d   «      S )z+The tbl element this tc element appears in.z./ancestor::w:tbl[position()=1]r   )r   rK   rï   re   s    r2   r
  z
CT_Tc._tblÝ  s    € ô ”F˜DŸJ™JÐ'HÓIÈ!ÑLÓMÐMr1   c                óL   — | j                   j                  | j                  «      S )zAThe `w:tc` element immediately above this one in its grid column.)Ú	_tr_aboverI   rF   re   s    r2   r  zCT_Tc._tc_aboveâ  s   € ð �~‰~×/Ñ/°×0@Ñ0@ÓAÐAr1   c                óV   — | j                   }|€y|j                  | j                  «      S )z=The tc element immediately below this one in its grid column.N)Ú	_tr_belowrI   rF   )r?   Útr_belows     r2   ré   zCT_Tc._tc_belowç  s-   € ð —>‘>ˆØÐØØ×)Ñ)¨$×*:Ñ*:Ó;Ð;r1   c                óF   — t        t        | j                  d«      d   «      S )z*The tr element this tc element appears in.z./ancestor::w:tr[position()=1]r   )r   r4   rï   re   s    r2   r÷   z	CT_Tc._trï  s    € ô ”F˜DŸJ™JÐ'GÓHÈÑKÓLÐLr1   c                óH   — | j                  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ï   rE   )r?   Ú	tr_abovess     r2   rU  zCT_Tc._tr_aboveô  s,   € ð —J‘JÐZÓ[ˆ	ÙÜÐ>Ó?Ð?Ø˜‰|Ðr1   c                ó”   — | j                   j                  }|j                  | j                  «      }	 ||dz      S # t        $ r Y y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
  rM   rN   r÷   Ú
IndexError)r?   rM   rP   s      r2   rW  zCT_Tc._tr_belowÿ  sK   € ð —‘×!Ñ!ˆØ—‘˜dŸh™hÓ'ˆð	Ø˜& 1™*Ñ%Ð%øÜò 	Ùð	ús   ³; »	AÁAc                ó`   — | j                   j                  j                  | j                  «      S )z;The row index of the tr element this tc element appears in.)r
  rM   rN   r÷   re   s    r2   rì   zCT_Tc._tr_idx
  s#   € ð �y‰y×Ñ×%Ñ% d§h¡hÓ/Ð/r1   rg   ©rV   ri   )rh   zlist[CT_P | CT_Tbl])r  rc   rh   rc   )rh   rc   r¢   rÓ   rÛ   rÜ   )r  rc   rT   )rŠ   ri   r  ri   r  rR  )rä   ÚCT_TcPrrh   r`  rÒ   )rh   r¤   )rh   rR  )r  rc   rh   ztuple[int, int, int, int])rM  ri   r  rc   rè   r£   )rM  ri   r  rc   )rh   rK   )rh   r4   )rh   zCT_Row | None)-r+   r,   r-   r.   r/   r   rä   r   r<  rO   ro   rë   rò   rF   rD   rp   r   r  r  r  r¦   rd   r  r  rè   rŠ   r  r  r#  r*  r/  r2  r5  r8  r,  r	  r!  rL  r
  r  ré   r÷   rU  rW  rì   r0   r1   r2   rc   rc   ¥  s]  … Ù$àÓØ*Ó*ØÓØÓØ+Ó+ØÓñ % XÓ.€Dˆ.Ó.Ù�%Ó€AÙ
�GÓ
€Càò
 ó ð
 ò	ð ò	5ó ð	5ð ò5ó ð5ð ×Ñòó ðð ò-ó ð-òð ò ó ð ó	ð òOó ðOð ò1ó ð1ð ò"ó ð"ð òó ðð ‡]�]ò ó ð ð òó ðð ‡\�\òó ðó=ô9ó.ð òIó ðIó#ó 
ð
 ò;ó ð;ò$ò	ó5ó<ó"ð2 òNó ðNð òBó ðBð ò<ó ð<ð òMó ðMð òó ðð òó ðð ò0ó ñ0r1   rc   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#„ «       Zej                  d+d$„«       Zed%„ «       Zej                  d,d&„«       Zed-d'„«       Zej                  d.d(„«       Zy)/r`  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:tcPrChangerj  é   Nr©   zCT_TblWidth | NoneÚtcWrk  é   úCT_DecimalNumber | NoneÚgridSpanrl  é   zCT_VMerge | Nonerè   rm  é   zCT_VerticalJc | NoneÚvAlignc                ó:   — | j                   }|€dS |j                  S )zsThe integer number of columns this cell spans.

        Determined by ./w:gridSpan/@val, it defaults to 1.
        rÀ   )rr  r(   )r?   rr  s     r2   rD   zCT_TcPr.grid_span=  s!   € ð —=‘=ˆØÐ$ˆqÐ6¨(¯,©,Ð6r1   c                óZ   — | j                  «        |dkD  r|| j                  «       _        y y r   )rf  rb  r(   rÑ   s     r2   rD   zCT_TcPr.grid_spanF  s+   € à×ÑÔØ�1Š9Ø-2ˆD×$Ñ$Ó&Õ*ð r1   c                ó8   — | j                   }|€y|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)ru  r(   )r?   ru  s     r2   Ú
vAlign_valzCT_TcPr.vAlign_valL  s   € ð —‘ˆØˆ>ØØ�z‰zÐr1   c                óT   — |€| j                  «        y || j                  «       _        y rT   )rg  rd  r(   rÑ   s     r2   ry  zCT_TcPr.vAlign_valX  s'   € àˆ=Ø×ÑÔ!ØØ',ˆ×ÑÓ Õ$r1   c                ó8   — | j                   }|€y|j                  S )zeThe value of the ./w:vMerge/@val attribute, or |None| if the w:vMerge element
        is not present.N)rè   r(   )r?   rè   s     r2   r  zCT_TcPr.vMerge_val_  s   € ð —‘ˆØˆ>ØØ�z‰zÐr1   c                óT   — | j                  «        |�|| j                  «       _        y y rT   )rh  re  r(   rÑ   s     r2   r  zCT_TcPr.vMerge_valh  s*   € à×ÑÔØÐØ%*ˆD×ÑÓÕ"ð r1   c                ó8   — | j                   }|€y|j                  S )zJEMU length in `./w:tcW` or |None| if not present or its type is not 'dxa'.N)ro  rŠ   )r?   ro  s     r2   rŠ   zCT_TcPr.widthn  s   € ð �h‰hˆØˆ;ØØ�y‰yÐr1   c                ó2   — | j                  «       }||_        y rT   )rc  rŠ   )r?   rV   ro  s      r2   rŠ   zCT_TcPr.widthv  s   € à×!Ñ!Ó#ˆØˆ�	r1   rg   r_  )rV   z!WD_CELL_VERTICAL_ALIGNMENT | NonerÓ   rÛ   rÜ   )r+   r,   r-   r.   r/   rÔ   r   ro  rr  rè   ru  ro   rD   rp   ry  r  rŠ   r0   r1   r2   r`  r`    sk  … Ù?à7Ó7Ø-Ó-Ø2Ó2Ø(Ó(Ø(Ó(Ø&Ó&Ø&Ó&ð€Hñ( (Ø˜H Q R˜Lô€CÐ	ó ñ )2Ø ¨!¨" ô)€HÐ%ó ñ  )Ø˜x¨¨˜|ô €FÐó ñ $-Ø˜x¨¨˜}ô$€FÐ ó ð 	àò7ó ð7ð ×Ñò3ó ð3ð
 ñ	ó ð	ð ×Ñò-ó ð-ð ñó ðð ×Ñò+ó ð+ð
 òó ðð ‡\�\òó ñr1   r`  c                  ó   — 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y)rn   z4``<w:trPr>`` element, defining table row properties.zCallable[[], CT_Height]Úget_or_add_trHeight)ri  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©   rq  Ú	gridAfterr�  rp  Ú
gridBeforerƒ  rÂ   zCT_Height | NoneÚtrHeightc                ó:   — | j                   }|€dS |j                  S r<   )r„  r(   )r?   r„  s     r2   r=   zCT_TrPr.grid_after�  s!   € ð —N‘Nˆ	ØÐ%ˆqÐ8¨9¯=©=Ð8r1   c                ó:   — | j                   }|€dS |j                  S rA   )r…  r(   )r?   r…  s     r2   rB   zCT_TrPr.grid_before£  s!   € ð —_‘_ˆ
ØÐ&ˆqÐ:¨J¯N©NÐ:r1   c                ó:   — | j                   }|€dS |j                  S )zCReturn the value of `w:trHeight@w:hRule`, or |None| if not present.N)r†  r*   ©r?   r†  s     r2   rR   zCT_TrPr.trHeight_hRule©  s!   € ð —=‘=ˆØÐ'ˆtÐ;¨X¯^©^Ð;r1   c                óP   — |€| j                   €y | j                  «       }||_        y rT   )r†  r€  r*   ©r?   rV   r†  s      r2   rR   zCT_TrPr.trHeight_hRule¯  s(   € àˆ=˜TŸ]™]Ð2ØØ×+Ñ+Ó-ˆØˆ�r1   c                ó:   — | j                   }|€dS |j                  S )zAReturn the value of `w:trHeight@w:val`, or |None| if not present.N)r†  r(   rŠ  s     r2   rX   zCT_TrPr.trHeight_val¶  s!   € ð —=‘=ˆØÐ'ˆtÐ9¨X¯\©\Ð9r1   c                óP   — |€| j                   €y | j                  «       }||_        y rT   )r†  r€  r(   rŒ  s      r2   rX   zCT_TrPr.trHeight_val¼  s(   € àˆ=˜TŸ]™]Ð2ØØ×+Ñ+Ó-ˆØˆ�r1   rg   rj   rk   rl   )r+   r,   r-   r.   r/   rÔ   r   r„  r…  r†  ro   r=   rB   rR   rp   rX   r0   r1   r2   rn   rn   |  sö   … Ù>à0Ó0ð€Hñ" *3Ø (¨1¨2 ,ô*€IÐ&ó ñ +4Ø 8¨A¨B <ô+€JÐ'ó ñ "+Ø ¨!¨" ô"€HÐó ð 	àò9ó ð9ð
 ò;ó ð;ð
 ò<ó ð<ð
 ×Ñòó ðð ñ:ó ð:ð
 ×Ñòó ñr1   rn   c                  ó.   — e Zd ZU dZ ede«      Zded<   y)Ú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�  Ä  s   … ÙDá&7ØÐ+ó'€CÐ	#ô r1   r�  c                  óF   — e Zd ZU dZ edeej                  ¬«      Zded<   y)Ú	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’  Ì  s#   … ÙQá'Ø� 8×#4Ñ#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   rK   ru   r­   r²   rs   rm   r×   rc   r`  rn   r�  r’  r0   r1   r2   ú<module>r¡     s  ðÙ (å "ç 0Ñ 0ç ^Ñ ^Ý ,ß $Ý &Ý -÷õ õ *÷÷ ñ ÷ +Ñ *áÝ2Ý1ß4Ý+ô�ô ô^ˆ_ô ^ôBnˆ_ô nôb	G�ô 	Gô/�Oô /ô	�ô 	ôZ)ˆô Z)ôz�ô ô"�/ô "ô,h0ˆOô h0ôViˆoô iôXEˆoô EôP�Oô ô�õ r1   