+
    =i:                   "   ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHtHtHt ^ RIHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t) ^ RI*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@ ^ RIAHBtB ^ RICHDtDHEtE ^ RIFHGtG ^ RIHHItJ ^ RIHHKtL ^ RIHHMtN ^ RIHHOtP ^ RIHHQtR ^ RIHHStT ^ RIHHUtV ^ RIHHWtX ^ RIHHYtZ ^ RIHH[t\ ^ RI]H^t^ ^ RI_H`ta ^ RIbHctd ^ RIeHftf ^ R IgHhthHiti ^ R!IjHktkHltl ^ R"ImHntnHoto ]P                  ! ]q4      tr]rP                  tsR# R$ ltt]t! ]^4      tu ! R% R&4      tv ! R' R(]h4      tw ! R) R*]h4      txR+ R, ltyR- tzR. t{R/ R0 lt|R1 R2 lt}R3 R4 lt~R# )5    )annotationsN)array)defaultdict)datetime	timedelta)sha1)chain)floor)Path)pack)warn)BULLET_CONVERSIONBULLET_PREFIXESBULLET_SUFFIXES)RGB	AlignmentBorder
BorderTypeCellCustomFormatting
FormattingFormattingTypeHorizontalJustificationMergeAnchor
MergedCellMergeReferencePaddingTypeStyleVerticalJustification_decode_date_format)ALLOWED_FORMATTING_PARAMETERSCOLON_TRACT_NODECUSTOM_FORMAT_TYPE_MAPCUSTOM_TEXT_PLACEHOLDERDEFAULT_COLUMN_WIDTHDEFAULT_DOCUMENTDEFAULT_FONTDEFAULT_PRE_BNC_BYTESDEFAULT_ROW_HEIGHTDEFAULT_TABLE_OFFSETDEFAULT_TEXT_INSETDEFAULT_TEXT_WRAPDEFAULT_TILE_SIZEDOCUMENT_IDEPOCHFORMAT_TYPE_MAPMAX_TILE_SIZE
PACKAGE_IDCellInteractionTypeCellValueType
FormatType	OwnerKind)ObjectStore)UnsupportedErrorUnsupportedWarningTableFormulas)TNArchives_pb2)TSAArchives_pb2)TSCEArchives_pb2)TSDArchives_pb2)TSKArchives_pb2)TSPArchiveMessages_pb2)TSPMessages_pb2)TSSArchives_pb2)TSTArchives_pb2)TSWPArchives_pb2)FONT_NAME_TO_FAMILY)StrokePatternArchive)CharacterStylePropertiesArchive)find_extension)	Cacheablecache)NumbersUUIDuuid_to_hex)	CellRangeScopedNameRefCachec                    V ^8  d   QhRRRR/# )   font_mapdictreturn )formats   "w/Users/tonyclaw/.openclaw/workspace/scripts/youtube-playlists/venv/lib/python3.14/site-packages/numbers_parser/model.py__annotate__rX   [   s      4 D     c                T    / pV P                  4        F  w  r#W19  g   K  W!V&   K  	  V# Nitems)rR   new_font_mapkvs   &   rW   create_font_name_mapra   [   s/    L  O ! rY   c                  |    ] tR t^ftR R ltR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR tRtR# )
MergeCellsc                   V ^8  d   QhRR/# rQ   rT   NonerU   )rV   s   "rW   rX   MergeCells.__annotate__g   s     6 6$ 6rY   c                	(    \        R  4      V n        R# )c                     R # )FrU   rU   rY   rW   <lambda>%MergeCells.__init__.<locals>.<lambda>h   s    urY   N)r   _referencesselfs   &rW   __init__MergeCells.__init__g   s    &}5rY   c               (    V ^8  d   QhRRRRRRRR/# )rQ   rowintcolrecttuplerT   rf   rU   )rV   s   "rW   rX   rg   j   s(     = = =3 =e = =rY   c                	4    \        V!  V P                  W3&   R # r[   )r   rl   )rn   rr   rt   ru   s   &&&&rW   add_referenceMergeCells.add_referencej   s    '5t'<#$rY   c               (    V ^8  d   QhRRRRRRRR/# )rQ   rr   rs   rt   sizerv   rT   rf   rU   )rV   s   "rW   rX   rg   m   s(     9 9c 9 95 9T 9rY   c                	8    \        V4      V P                  W3&   R # r[   )r   rl   )rn   rr   rt   r{   s   &&&&rW   
add_anchorMergeCells.add_anchorm   s    '24'8#$rY   c                    V ^8  d   QhRRRR/# rQ   row_colrv   rT   boolrU   )rV   s   "rW   rX   rg   p   s     E E% ED ErY   c                	D    \        V P                  V,          \        4      # r[   )
isinstancerl   r   rn   r   s   &&rW   is_merge_referenceMergeCells.is_merge_referencep   s    $**73^DDrY   c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   rg   t   s     B Bu B BrY   c                	D    \        V P                  V,          \        4      # r[   )r   rl   r   r   s   &&rW   is_merge_anchorMergeCells.is_merge_anchort   s    $**73[AArY   c                    V ^8  d   QhRRRR/# )rQ   r   rv   rT   zMergeAnchor | MergeReferencerU   )rV   s   "rW   rX   rg   x   s     ) )5 )%A )rY   c                	(    V P                   V,          # r[   rl   r   s   &&rW   getMergeCells.getx   s    ((rY   c                    V ^8  d   QhRRRR/# rQ   r   rv   rT   rU   )rV   s   "rW   rX   rg   {        . .E .e .rY   c                	<    V P                   V,          P                  # r[   )rl   r{   r   s   &&rW   r{   MergeCells.size{       (---rY   c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   rg   ~   r   rY   c                	<    V P                   V,          P                  # r[   )rl   ru   r   s   &&rW   ru   MergeCells.rect~   r   rY   c                	    V P                   P                  4        UUu. uF   w  rV P                  V4      '       g   K  VNK"  	  upp# u uppi r[   )rl   r]   r   )rn   r_   r`   s   &  rW   merge_cellsMergeCells.merge_cells   s<    "..446R6da$:N:Nq:Q6RRRs
   AAr   N)__name__
__module____qualname____firstlineno__ro   rx   r}   r   r   r   r{   ru   r   __static_attributes__rU   rY   rW   rc   rc   f   s2    6=9EB)..SrY   rc   c                      ] tR t^tRtRR R llt]! 4       R R l4       tR R ltR	 R
 lt	R t
R R ltR R ltRtR# )	DataListszFModel for TST.DataList with caching and key generation for new values.Nc               (    V ^8  d   QhRRRRRRRR/# )	rQ   modelobjectdatalist_namestr
value_attr
str | NonerT   rf   rU   )rV   s   "rW   rX   DataLists.__annotate__   s)     , ,f ,S ,j ,\` ,rY   c                	8    Wn         / V n        W0n        W n        R # r[   )_model
_datalists_value_attr_datalist_name)rn   r   r   r   s   &&&&rW   ro   DataLists.__init__   s    %+rY   c                    V ^8  d   QhRRRR/# rQ   table_idrs   rT   rf   rU   )rV   s   "rW   rX   r      s     < <# <$ <rY   c                   V P                   P                  V,          P                  p\        W P                  4      P
                  pV P                   P                  V,          p^ p/ V P                  V&   / V P                  V,          R&   / V P                  V,          R&   / V P                  V,          R&   W@P                  V,          R&   W0P                  V,          R&   \        VP                  4       F  w  rgVP                  V8  g   K  VP                  pWpP                  V,          R,          VP                  &   W`P                  V,          R,          VP                  &   V P                  \        WpP                  4      4      pVP                  V P                  V,          R,          V&   K  	  V^,           V P                  V,          R&   R# )z5Cache a new datalist for a table if not already seen.by_keyby_value	key_indexdatalistidnext_keyN)r   objectsbase_data_storegetattrr   
identifierr   	enumerateentrieskey	value_keyr   )	rn   r   r   datalist_idr   max_keyientryr   s	   &&       rW   	add_tableDataLists.add_table   sd    ++--h7GGo/B/BCNN;;&&{3$&!.0!(+02!*-13!+.08!*-*5!$'!("2"23HAyy7"))AF)(3EII>DE)+6uyyA NN75:J:J+KL	CH99)*5i@ 4 18!!*-rY   c                    V ^8  d   QhRRRR/# rQ   r   rs   rT   rU   )rV   s   "rW   rX   r      s     / /3 /3 /rY   c                	X    V P                  V4       V P                  V,          R ,          # )r   r   r   rn   r   s   &&rW   r   DataLists.id   s"    x x(..rY   c                    V ^8  d   QhRRRR/# )rQ   r   rs   r   rU   )rV   s   "rW   rX   r      s     8 8S 8s 8rY   c                f    V P                  V4       V P                  V,          R,          V,          # )z9Return the an entry in a table's datalist matching a key.r   r   rn   r   r   s   &&&rW   lookup_valueDataLists.lookup_value   s'    x x(2377rY   c                	@    \        VR 4      '       d   \        V4      # V# )
DESCRIPTOR)hasattrrepr)rn   values   &&rW   r   DataLists.value_key   s    5,'';rY   c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r      s     M MS MT MrY   c                p   V P                  V4       / V P                  V,          R&   / V P                  V,          R&   / V P                  V,          R&   ^V P                  V,          R&   ^V P                  V,          R,          n        \        V P                  V,          R,          P                  4       R# )z#Remove all entries from a datalist.r   r   r   r   r   N)r   r   
nextListIDclear_field_containerr   r   s   &&rW   initDataLists.init   s    x .0!(+02!*-13!+.01!*-;<!*-8dooh7
CKKLrY   c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r      s      3 # rY   c                n   V P                  V4       V P                  V4      pW0P                  V,          R,          9  Ed_   V P                  V,          R,          pV P                  V,          R;;,          ^,          uu&   V P                  V,          R,          ;P                  ^,          un        RW@P                  VR^/p\
        P                  P                  ! R/ VB pV P                  V,          R,          P                  P                  V4       W`P                  V,          R,          V&   \        V P                  V,          R,          P                  4      ^,
          V P                  V,          R,          V&   W@P                  V,          R,          V&   V# V P                  V4      pV P                  V,          R,          V,          pV P                  V,          R,          V,          pV P                  V,          R,          P                  V,          ;P                  ^,          un        V# )	z
Return the key associated with a value for a particular table entry.
If the value is not in the datalist, allocate a new entry with the
next available key.
r   r   r   r   refcountr   r   rU   )r   r   r   r   r   TSTArchivesTableDataList	ListEntryr   appendlenr   )rn   r   r   r   r   attrsr   indexs   &&&     rW   
lookup_keyDataLists.lookup_key   s    	x NN5)	OOH5jAA//(+J7COOH%j1Q61OOH%j1<<A<C!1!15*aHE--77@%@EOOH%j199@@G7<OOH%h/4DOOH-j9AABQF OOH%k237 @COOH%j1)< 
 u-I//(+J7	BCOOH-k:3?EOOH%j199%@IIQNI
rY   )r   r   r   r   r[   )r   r   r   r   __doc__ro   rK   r   r   r   r   r   r   r   rU   rY   rW   r   r      s?    P, W< <,/8

M rY   r   c                     ] tR t^tRtR R ltR R ltR R ltR tRR
 lt	R R lt
RR R lltR R lt]! 4       R 4       tRR ltRR ltRR ltR tRR R lltRR R lltR R ltR t]! ^ R7      R 4       tR R  ltR! tR" R# ltRR$ R% llt]! 4       R& 4       t]! ^ R7      R' 4       t]! ^R7      R( R) l4       t]! ^R7      R* R+ l4       tR, R- lt R. R/ lt!R0 R1 lt"R2 R3 lt#R4 R5 lt$R6 R7 lt%R8 R9 lt&]! ^R7      R: R; l4       t']! ^R7      R< R= l4       t(R> R? lt)R@ RA lt*]! ^ R7      RB 4       t+RC RD lt,]! 4       RE RF l4       t-]! ^ R7      RG 4       t.]! ^ R7      RH 4       t/RI RJ lt0]! 4       RK RL l4       t1]! 4       RM RN l4       t2]! 4       RO RP l4       t3RQ t4RR RS lt5]! 4       RT RU l4       t6RV RW lt7]! 4       RX RY l4       t8]! 4       RZ R[ l4       t9]! ^R7      R\ R] l4       t:R^ R_ lt;R` Ra lt<Rb Rc lt=Rd Re lt>]! 4       RRf Rg ll4       t?Rh Ri lt@RRj Rk lltARl Rm ltBRn tCRo Rp ltDRRq Rr lltERs Rt ltFRRu Rv lltGRRw Rx lltHRRy Rz lltIR{ R| ltJR} R~ ltKR tLRR R lltMRR R lltNR R ltOR R ltP]QR 4       tR]! ^ R7      R R l4       tSR R ltTR R ltUR R ltVR R ltWR R ltXR R ltYR R ltZR R lt[]QR R l4       t\R R lt]]! 4       R R l4       t^]! ^R7      R R l4       t_R R lt`R R ltaR R ltbR R ltcR R ltdR R lteR R ltfR R ltgR R lthR R ltiR R ltjR R ltkR R ltlR R ltmR R ltnR R ltoR R ltpR R ltqR R ltrR R ltsR R lttR R ltuR R ltv]! 4       R R l4       twR R ltxR R ltyR R ltzR t{]! ^ R7      R 4       t|]! 4       R R l4       t}Rt~R	# )_NumbersModelz
Loads all objects from Numbers document and provides decoding
methods for other classes in the module to abstract away the
internal structures of Numbers document data structures.

Not to be used in application code.
c                    V ^8  d   QhRRRR/# )rQ   filepathr   rT   rf   rU   )rV   s   "rW   rX   _NumbersModel.__annotate__   s     ( ( ($ (rY   c           	     	`   Vf   \        \        4      p\        V4      V n        \	        \
        4      V n        / V n        / V n        \        V RR4      V n
        \        V RR4      V n        \        V RR4      V n        \        V RR4      V n        \        V R	R
4      V n        / V n        / V n        / V n        R V n        / V n        R V n        R V n        R V n        R\	        4       R\	        4       R\	        4       R\	        4       /V n        \1        V 4      V n        / V n        V P7                  4        R # )Nformat_tablerV   
styleTable	referencestringTablestringcontrol_cell_spec_table	cell_specformula_tableformulatoprightbottomleft)r   r&   r7   r   r   rc   _merge_cells_row_heights_col_widthsr   _table_formats_table_styles_table_strings_control_specs	_formulas_table_data_table_categories_data_table_categories_row_mapper_styles_images_custom_formats_custom_format_archives_custom_format_ids_strokesrO   name_ref_cachemissing_fontscalculate_table_uuid_map)rn   r   s   &&rW   ro   _NumbersModel.__init__   s   ,-H"8,'
3'nhG&t\;G'mXF'.GU"4)D&(#,.)#'+$"&;=[]kmKM	
 16%%'rY   c               $    V ^8  d   QhRRRRRR/# )rQ   r   r   packager   rT   rf   rU   )rV   s   "rW   rX   r     s!     - -T -D -T -rY   c                	<    V P                   P                  W4       R # r[   )r   save)rn   r   r  s   &&&rW   r  _NumbersModel.save  s    (,rY   c                    V ^8  d   QhRRRR/# )rQ   refr   rT   listrU   )rV   s   "rW   rX   r     s     + +S +T +rY   c                	8    V P                   P                  V4      # r[   )r   	find_refs)rn   r  s   &&rW   r  _NumbersModel.find_refs  s    ||%%c**rY   c                	    V P                   \        ,          P                   Uu. uF  qP                  NK  	  up# u upi r[   )r   r.   sheetsr   )rn   os   & rW   	sheet_ids_NumbersModel.sheet_ids  s-    &*ll;&?&F&FG&F&FGGGs   ;Nc                	    Vf0   WP                   9  d   R # V P                   V,          P                  # W P                   V,          n        R # r[   )r   name)rn   sheet_idr   s   &&&rW   
sheet_name_NumbersModel.sheet_name
  s;    =||+<<)...&+X#rY   c               $    V ^8  d   QhRRRRRR/# rQ   r   rs   datar  rT   rf   rU   )rV   s   "rW   rX   r     s!     * *s *$ *4 *rY   c                	"    W P                   V&   R # r[   )r	  )rn   r   r-  s   &&&rW   set_table_data_NumbersModel.set_table_data  s    %)"rY   c                    V ^8  d   QhRRRR/# )rQ   r(  
int | NonerT   r  rU   )rV   s   "rW   rX   r     s     

 

* 

 

rY   c                   V P                  R4      pV Uu. uFf  pVe9   V P                  V,          P                  P                  P                  V8X  g   K?  V P                  V,          P
                  P                  NKh  	  up# u upi )zZ
Return a list of table IDs for a given sheet ID or all table
IDs id the sheet ID is None
TableInfoArchive)r  r   superparentr   
tableModel)rn   r(  table_info_idst_ids   &&  rW   	table_ids_NumbersModel.table_ids  sz    
 (:; '
& DLL$6$<$<$C$C$N$NRZ$Z 5DLL))44&
 	
 
s   <B+Bc                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r   #  s      c c rY   c                    V P                   P                  R4       Uu. uF3  pV P                   V,          P                  P                  V8X  g   K1  VNK5  	  ppV^ ,          # u upi )z4Return the TableInfoArchive ID for a given table ID.r4  )r   r  r7  r   )rn   r   xidss   &&  rW   table_info_id_NumbersModel.table_info_id#  sb     \\++,>?
?||A))44@ A? 	 

 1v
s   .A"A"c                	   \         P                  \        V P                  V,          P                  4      4      pV P                  V,          P
                  pVP                  P                   Uu. uF  qDP                  NK  	  pp^ pV F>  pV P                  V,          P                   F  pWbVP                  &   V^,          pK  	  K@  	  V# u upi r   )rS   fromkeysranger   number_of_rowsr   
rowHeadersbucketsr   headersr   )	rn   r   row_bucket_mapbdsr>  
bucket_idsidx	bucket_idheaders	   &&       rW   row_storage_map_NumbersModel.row_storage_map,  s     uT\\(-C-R-R'STll8$44,/NN,B,BC,Bqll,B
C#I,,y199/2v||,q : $  Ds   /Cc                	r    Ve   W P                   V,          n        V P                   V,          P                  # r[   )r   rF  )rn   r   num_rowss   &&&rW   rF  _NumbersModel.number_of_rows<  s,    4<LL"1||H%444rY   c                	r    Ve   W P                   V,          n        V P                   V,          P                  # r[   )r   number_of_columns)rn   r   num_colss   &&&rW   rV  _NumbersModel.number_of_columnsA  s,    7?LL"4||H%777rY   c                	v    Vf   V P                   V,          P                  # W P                   V,          n        R # r[   )r   
table_namern   r   r   s   &&&rW   rZ  _NumbersModel.table_nameF  s.    =<<)444,1X)rY   c                	    \        \        P                  ! V P                  4        UUu. uF1  qP	                  V4       Uu. uF  q P                  V4      NK  	  upNK3  	  upp4      4      # u upi u uppi r[   )r  r	   from_iterabler$  r:  rZ  )rn   sidtids   &  rW   table_names_NumbersModel.table_namesL  s_    RVR`R`RbcRb3..2EF2E3//#&2EFRbc
 	
Fcs   A1 A,A1,A1c                    V ^8  d   QhRRRR/# )rQ   r   rs   enabledbool | NonerU   )rV   s   "rW   rX   r   S  s     9 93 9 9rY   c                	v    Ve   W P                   V,          n        R # V P                   V,          P                  # r[   )r   table_name_enabled)rn   r   rd  s   &&&rW   rg   _NumbersModel.table_name_enabledS  s/    8?LL"5||H%888rY   c               $    V ^8  d   QhRRRRRR/# )rQ   r   rs   rd  re  rT   r   rU   )rV   s   "rW   rX   r   Y  s!     	3 	3 	3k 	3T 	3rY   c                	T   V P                   V P                  V4      ,          pVe   V'       * VP                  n        R # VP                  P                  P
                  pV P                   V,          pVP                  P                  R8X  d   R# VP                  P                  '       * # )NStandinCaptionArchiveF)r   r@  r5  caption_hiddencaptionr   r   r'  )rn   r   rd  
table_infocaption_info_idcaption_archives   &&&   rW   caption_enabled_NumbersModel.caption_enabledY  s    \\$"4"4X">?
29kJ+$**22==,,7%%**.EE##2222rY   c                   V ^8  d   QhRR/# )rQ   style_substrr   rU   )rV   s   "rW   rX   r   d  s     2 2# 2rY   c                	    V P                   V P                  4       ,          pVP                   Uu. uF%  q1VP                  P	                  4       9   g   K#  VNK'  	  ppV^ ,          P
                  P                  # u upi rC  )r   stylesheet_ididentifier_to_style_mapr   lowerstyle)rn   rt  
stylesheetr>  caption_styless   &&   rW   find_style_id_NumbersModel.find_style_idd  sn    \\$"4"4"67
!99
9!Q\\M_M_Ma=aAA9 	 
 a &&111
s    A:A:c                	   V P                  R 4       Uu/ uFD  pRV P                  V,          P                  P                  9   g   K1  WP                  V,          bKF  	  pp\	        \        VP                  4       4      4      # u upi )ParagraphStyleArchiveCaption)r  r   r5  r'  nextiterkeys)rn   r>  	style_maps   &  rW   caption_paragraph_style_id(_NumbersModel.caption_paragraph_style_idk  su     ^^$;<
<DLLO11666 A||A< 	 

 D)*++
s   .BB)num_argsc                	2    V P                  R 4      ^ ,          # )StylesheetArchive)r  rm   s   &rW   rv  _NumbersModel.stylesheet_ids  s    ~~12155rY   c               $    V ^8  d   QhRRRRRR/# )rQ   objr   ref_idrs   rT   rf   rU   )rV   s   "rW   rX   r   w  s&     @ @ @ @ @rY   c                	R    VP                  \        P                  ! VR 7      4       R# )r   N)	MergeFromTSPMessages	Reference)rn   r  r  s   &&&rW   set_reference_NumbersModel.set_referencew  s    k++v>?rY   c                	   R p\         P                  ! RR\         P                  ! \        P                  ! V P                  V4      RR7      \        P                  ! \        P                  P                  \        P                  P                  P                  \        P                  ! RRR7      .R7      \        P                  P                  \        P                  P                  P                  \        P                  ! VRR7      .R7      \        P                  P                  \        P                  P                  P                  \        P                  ! W"R7      .R7      \        P                  P                  \        P                  P                  P                  \        P                  ! RVR7      .R7      \        P                  P                  \        P                  P                  P                  R7      \        P                  P                  \        P                  P                  P                  \        P                  ! RRR7      .R7      .R7      R7      R	7      # )
g      Y@F        )widthheightr>  y)typepoints)r  )elements)naturalSizepath)horizontalFlipverticalFlipbezier_path_source)TSDArchivesPathSourceArchiveBezierPathSourceArchiver  Sizetable_widthr   ElementElementTypemoveToPointlineTocloseSubpath)rn   r   box_sizes   && rW   create_path_source_archive(_NumbersModel.create_path_source_archivez  s   ,, *BB',,43C3CH3MVYZ %%#((00!,!1!1!=!=!D!D$/$5$5s$C#D 1  $((00!,!1!1!=!=!D!D$/$5$5C$H#I 1  $((00!,!1!1!=!=!D!D$/$5$5$M#N 1  $((00!,!1!1!=!=!D!D$/$5$5x$H#I 1  $((00!,!1!1!=!=!J!J 1  $((00!,!1!1!=!=!D!D$/$5$5s$C#D 1 ) !
 !	
rY   c                   V ^8  d   QhRR/# re   rU   )rV   s   "rW   rX   r     s     L
 L
$ L
rY   c                	T   V P                  V4      pV P                  V,          pV P                  P                  R R^R^/\        P                  4      w  rEV P                  P                  R RRRRV//\        P
                  4      w  rgV P                  P                  R RR.RR	R
RV P                  4       /RRR^ RRV P                  4       //./RRR^ RRV P                  R4      //./RRR^ R^ R^ /./RRR^ R^ R^ /./RRR^ /.//\        P                  4      w  rVV P                  R4      V P                  R4      V P                  4       3 F%  p
V P                  V
R V P                  4       R7       K'  	  VP                  P                  \        P                  ! R	\        P                   ! VR7      \        P                   ! VR7      \"        P$                  ! V P'                  V^ R^R7      RV P                  R4      /RV P)                  V4      R7      R7      4       V P+                  VP                  P,                  V4       V P/                  V P1                  4       4      pVP2                  P5                  \6        P8                  ! V\;        4       P<                  R7      4       R# ) CalculationEnginecaption_anchor_locationdrawable_anchor_locationchildInfoKindr  	placementr   textin_documentTstyle_sheettable_para_styler   character_indexr   table_list_style	liststyletable_para_startsfirstsecondtable_para_biditable_drop_cap_stylerm  locationcomponent_idr  i  )flagsr  )r5  ry  strokePatternOffsetDistance
pathsource)is_text_boxowned_storagedeprecated_storager5  )r   uuidN)r@  r   create_object_from_dictTSAArchivesCaptionPlacementArchiveCaptionInfoArchiverv  r  r|  TSWPArchivesStorageArchiveadd_component_referencer5  r  ShapeInfoArchiver  r  r  ShapeArchivecreate_drawabler  r  rm  metadata_componentcalc_engine_idobject_uuid_map_entriesr   TSPArchiveMessagesObjectUUIDMapEntryrL   	protobuf2)rn   r   r@  rn  caption_placement_id_ro  caption_info
storage_idstorage	object_id	components   &&          rW   create_caption_archive$_NumbersModel.create_caption_archive  s   **84\\-0
"&,,"F"F)1*A //#
 )-(L(Li|EY6Z[**)
%
 #llBBtd.@.@.BC"-q$|T5T5T5V&W % #-q$|T5G5G5T&U % $i3DaRSU]_`2a1b%c!I1BAwPQS[]^0_/`#a&6G5K4L(M-0 ''5

: y){+++-	
I ((,!//1 ) 
 	$$)) )33zJ#.#8#8J#O!....}aA.N'););I)FG03#>>xH		
	
 	:++33_E++D,?,?,AB	))0011* ],,	
rY   c               $    V ^8  d   QhRRRRRR/# )rQ   r   rs   rm  r   rT   r   rU   )rV   s   "rW   rX   r     s!     8 8S 8: 8 8rY   c                	   V P                   V P                  V4      ,          pVP                  P                  P                  pV P                   V,          pVP
                  P                  R 8X  dK   Vf   R# V P                  V4       VP                  P                  P                  pV P                   V,          pVP                  P                  P                  pVeU   \        V P                   V,          P                  4       V P                   V,          P                  P                  V4       R# \        V P                   V,          P                  4      ^ 8X  d   R# V P                   V,          P                  ^ ,          # )rk  Nr  )r   r@  r5  rm  r   r   r'  r  r  r   r  r   r   )rn   r   rm  rn  ro  rp  caption_storage_ids   &&&    rW   caption_text_NumbersModel.caption_text  s"   \\$"4"4X">?
$**22==,,7%%**.EE ''1(..66AAO"ll?;O,22@@KK!$,,/A"B"G"GHLL+,1188At||./445:||./44Q77rY   c                	    V P                   V,          P                  pVP                  P                   Uu. uF)  q0P                   VP                  P                  ,          NK+  	  up# u upi r[   )r   r   tilestiler   )rn   r   rK  ts   &&  rW   table_tiles_NumbersModel.table_tiles  sJ    ll8$449<IAQVV..//IIIs   /A(c                	:   V P                   \        ,          P                  P                  P                  pV P                   V,          p\        VP                  4       UUu/ uF,  w  r4\        V4      P                  VP                  V,          bK.  	  upp# u uppi r[   )
r   r.   r5  custom_format_listr   r   uuidsrL   hexcustom_formats)rn   custom_format_list_idr  r   us   &    rW   custom_format_map_NumbersModel.custom_format_map  s     $[ 9 ? ? R R ] ]!\\*?@ ""4":":;
; N 2 A A! DD;
 	
 
s   !2Bc               $    V ^8  d   QhRRRRRR/# rQ   r   rs   r   rT   r   rU   )rV   s   "rW   rX   r     s&     F FS Fs Fs FrY   c                L    V P                   P                  W4      P                  # )zEReturn the format associated with a format ID for a particular table.)r  r   rV   r   s   &&&rW   table_format_NumbersModel.table_format  s!     ""//>EEErY   c               $    V ^8  d   QhRRRRRR/# rQ   r   rs   format_typer   
formattingr   rU   )rV   s   "rW   rX   r     s'     H Hs H HU_ HrY   c                    \         V,           Uu/ uF  qD\        W44      bK  	  pp\        V,          VR&   \        P                  ! R/ VB pV P
                  P                  W4      # u upi )zLCreate a table format from a Formatting spec and return the table format ID.r  rU   )r!   r   r0   TSKArchivesFormatStructArchiver  r   )rn   r   r  r  r>  r   format_archives   &&&&   rW   r  _NumbersModel.format_archive  sh     5RR]4^_4^qGJ**4^_.{;m$88A5A""--hGG	 `s   A'c                    V ^8  d   QhRRRR/# )rQ   	parent_idrs   r  r   rU   )rV   s   "rW   rX   r     s      # : rY   c                	p   R R/.pVP                    Fm  p\        V\        4      '       d,   VP                  R RRRVRR\        P
                  ///4       KD  VP                  R RRRVRR\        P                  ///4       Ko  	  V P                  P                  R	V 2R
V/\        P                  R4      w  rVV# )cell_value_typeNIL_TYPESTRING_TYPEstring_valuer   rV   r  NUMBER_TYPEnumber_valuezIndex/Tables/DataList-	tsce_itemT)popup_valuesr   r   r   r5   TEXTDECIMALr   r  r   PopUpMenuModel)rn   r
  r  
tsce_itemsitempopup_menu_idr  s   &&&    rW   cell_popup_model_NumbersModel.cell_popup_model  s    (*56
++D$$$!!)=&#T$}joo&F) !!)=&#T$}j6H6H&I) ,*  <<??$YK0*%&&	
 rY   c               $    V ^8  d   QhRRRRRR/# r  rU   )rV   s   "rW   rX   r   =  s-     C CC $C 	CrY   c                   V\         P                  8X  d(   \        P                  ! \        P
                  R7      pEMV\         P                  8X  d*   \        P                  ! \        P                  RRRR7      pMV\         P                  8X  dH   \        P                  ! \        P                  VP                  VP                  VP                  R7      pMvV P                  V P                  P                  V4      V4      p\        P                  ! \        P                  \        P                   ! VR7      VP"                  '       * R7      pV P                  P%                  W4      # )zRCreate control cell archive from a Formatting spec and return the table format ID.)interaction_typer  g      @      ?)r  range_control_minrange_control_maxrange_control_incr  )r  chooser_control_popup_modelchooser_control_start_w_first)r   TICKBOXr   CellSpecArchiver3   TOGGLERATINGSLIDERminimummaximum	incrementr  r  r   POPUPr  r  
allow_noner   )rn   r   r  r  r   popup_ids   &&&&  rW   control_cell_archive"_NumbersModel.control_cell_archive=  s    .000#33EXE_E_`IN111#33!4!;!;"%"%"%	I N111#33!4!;!;","4"4","4"4","6"6	I ,,T-@-@-C-CH-MzZH#33!4!:!:,7,A,AX,V3=3H3H.II
 ""--hBBrY   c                    V ^8  d   QhRRRR/# rQ   r  r   rT   rf   rU   )rV   s   "rW   rX   r   ]  s      ?C ?C<L ?CQU ?CrY   c                   VP                   pVP                  pVP                  pVP                  pVP                  pV^ 8X  d   RpM(V\
        P                  8X  d   RV,          pM	RV,          pV^8  d   \        P                  ! RRV4      pMV^8  d   \        P                  ! RRV4      pV^ 8  dE   V\
        P                  8X  d   VRRV,          ,           ,          pMVRRV,          ,           ,          pV^ 8  d   V\
        P                  8w  d   TM^ pV\
        P                  8X  d   TM^ p	V\
        P                  8X  d   TM^ p
V^ 8  d
   V^,           MTpV^8X  d   ^ pM	V^ 8X  d   ^pV\
        P                  8X  d   TM^ pRV9   ;'       d    V^ 8  ;'       g    V	^ 8H  p\        P                  ! VP                  \        P                  \        P                  \        P                   ! R/ R	V^ 8  bR
VbRVbR\        P                  bRRbRVbRVbRVbR^ bRV	bRV
bRRbRRbRT;'       d    V^ 8  bRVbRRb R7      pV P#                  W4       R# )z,Create a custom format from the format spec. #0z(...)(...)$z,\1,\2z(...)$z,\1.contains_integer_tokencustom_format_stringdecimal_widthr  fraction_accuracyl    index_from_right_last_integer
is_complexmin_integer_widthnum_hash_decimal_digitsnum_nonspace_decimal_digitsnum_nonspace_integer_digitsrequires_fraction_replacementFscale_factorr  show_thousands_separatortotal_num_decimal_digitsuse_accounting_styler'  format_type_pre_bncr  default_formatNrU   )integer_formatdecimal_formatnum_integersnum_decimalsrE  r   NONEresubZEROSSPACESr  CustomFormatArchiver'  r5   CUSTOM_NUMBERr  add_custom_format_archive)rn   r  rK  rL  rM  rN  rE  format_stringr?  rA  rB  r=  r;  r>  r  s   &&             rW   !add_custom_decimal_format_archive/_NumbersModel.add_custom_decimal_format_archive]  s   #22#22!..!..#-#F#F 1M{///,.M,.M!FF>9mLMAFF9fmDM!!1!11s\'9!99s\'9!99 )1,;CSCS1SLYZ 	 7EHYHY6Yl_`#6DHYHY6Yl_`#<H1<Lq(8R^%(A-,-)*a/,-)(6+:L:L(LRSM) 
 
!EE%@A%E 	 %88 * 8 8"00&:: '3a'7%2 , '44	
 #- /L & #4 )* -H -H /4 ! *B)V)VlUVFV *7  &+!	
. 	&&zBrY   c                    V ^8  d   QhRRRR/# r3  rU   )rV   s   "rW   rX   r     s      
C 
C=M 
CRV 
CrY   c           
     	   \         P                  ! VP                  \        P                  \        P                  \         P
                  ! VP                  \        P                  R 7      R7      pV P                  W4       R# )r:  r  rH  N)r  rT  r'  r5   CUSTOM_DATEr  rV   rV  )rn   r  r  s   && rW   "add_custom_datetime_format_archive0_NumbersModel.add_custom_datetime_format_archive  s[    $88 * 6 6"..&::%/%6%6&22	
 	&&zBrY   c               $    V ^8  d   QhRRRRRR/# )rQ   r  r   r  r   rT   rf   rU   )rV   s   "rW   rX   r     s(     5 5$5 5 
	5rY   c                	   \        4       P                  pWP                  VP                  &   W P                  VP                  &   W0P
                  VP                  &   V P                  \        ,          P                  P                  P                  pV P                  V,          pVP                  P                  V4       VP                  P                  V4       R # r[   )rL   r  r  r'  r  _custom_format_uuidsr   r.   r5  r  r   r  r   r  )rn   r  r  format_uuidr  r  s   &&&   rW   rV  '_NumbersModel.add_custom_format_archive  s    
 "m--0:Z__-8F$$Z__55@!!*//2 $[ 9 ? ? R R ] ]!\\*?@))00@  ''4rY   c               $    V ^8  d   QhRRRRRR/# )rQ   r   rs   r  r   rT   rU   )rV   s   "rW   rX   r     s'     G G G:J Gs GrY   c                $   \         VP                  ,          pV P                  VP                  ,          p\        P
                  ! V\        P                  ! VP                  VP                  R7      R7      pV P                  P                  W4      # )zALook up the custom format and return the format ID for the table.)rx  upper)r  
custom_uid)r#   r  rb  r'  r  r  r  UUIDrx  rg  r  r   )rn   r   r  r  rc  custom_formats   &&&   rW   custom_format_id_NumbersModel.custom_format_id  sl    ,Z__=//
@#77#"''k.?.?{GXGXY
 ""--hFFrY   c                    V ^8  d   QhRRRR/# r3  rU   )rV   s   "rW   rX   r     s     C C9I Cd CrY   c           
     	0   VP                   P                  R \        4      p\        P                  ! VP
                  \        P                  \        P                  \        P                  ! V\        P                  R7      R7      pV P                  W4       R# )z%sr\  rH  N)
rV   replacer$   r  rT  r'  r5   CUSTOM_TEXTr  rV  )rn   r  rW  r  s   &&  rW   add_custom_text_format_archive,_NumbersModel.add_custom_text_format_archive  sn    "))11$8OP$88 * 6 6"..&::%2&22	
 	&&zBrY   c               $    V ^8  d   QhRRRRRR/# r  rU   )rV   s   "rW   rX   r     s!     > >C >c >c >rY   c                    V P                   P                  W4      pV P                  VP                  P                  ,          # )zCReturn the style associated with a style ID for a particular table.)r  r   r   r   r   )rn   r   r   style_entrys   &&& rW   table_style_NumbersModel.table_style  s5     ((55hD||K11<<==rY   c               $    V ^8  d   QhRRRRRR/# r  rU   )rV   s   "rW   rX   r     s!      S s s rY   c                r     V P                   P                  W4      P                  #   \         d     R# i ; i)zEReturn the string associated with a string ID for a particular table.r5  )r  r   r   KeyErrorr   s   &&&rW   table_string_NumbersModel.table_string  s6    	&&33HBIII 		s   $' 66c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r     s     + +3 +4 +rY   c                <    V P                   P                  V4       R# )zBCache table strings reference and delete all existing keys/values.N)r  r   r   s   &&rW   init_table_strings _NumbersModel.init_table_strings  s      *rY   c               $    V ^8  d   QhRRRRRR/# )rQ   r   rs   r   r   rT   rU   )rV   s   "rW   rX   r     s!     ? ? ?S ?S ?rY   c                8    V P                   P                  W4      # )z
Return the key associated with a string for a particular table. If
the string is not in the strings table, allocate a new entry with the
next available key.
)r  r   r[  s   &&&rW   table_string_key_NumbersModel.table_string_key  s     ""--h>>rY   c                    V P                  4       pVf   / # / pVP                  P                  P                   F.  p\	        VP
                  4      P                  W#P                  &   K0  	  V# )zx
"
Extracts the mapping table from Owner IDs to UUIDs. Returns a
dictionary mapping the owner ID int to a 128-bit UUID.
)calc_enginedependency_trackerowner_id_map	map_entryrL   owner_idr  internal_owner_id)rn   r  r  es   &   rW   r  _NumbersModel.owner_id_map  sb    & &&(I//<<FFA0;AJJ0G0K0KL,,- GrY   c                   V ^8  d   QhRR/# re   rU   )rV   s   "rW   rX   r     s     "
 "
$ "
rY   c           
     	   V P                  R 4       Uu. uF7  pV P                  V,          P                  \        P                  8X  g   K5  VNK9  	  pp\        V4      ^ 8X  d
   / V n        R# V Uu/ uFN  p\        V P                  V,          P                  4      \        V P                  V,          P                  4      bKP  	  ppV P                  4        Uu/ uFC  pWCP                  \        V P                  V,          P                  P                  4      R4      bKE  	  upV n        V Uu/ uF*  p\        V P                  V,          P                  4      VbK,  	  upV n        R# u upi u upi u upi u upi )FormulaOwnerDependenciesArchiveN)r  r   
owner_kindr6   HAUNTED_OWNERr   _table_id_to_base_idrM   formula_owner_uidbase_owner_uidr:  r   haunted_owner	owner_uid"_table_base_id_to_formula_owner_id)rn   obj_idhaunted_owner_idsformula_owner_to_base_owner_mapr   s   &    rW   r  &_NumbersModel.calculate_table_uuid_map  sl    ..)JK
K||F#..)2I2II FK 	 

  !Q&(*D% ,	+
 , V,>>?V$33B  ,	 	( +
 !NN,%
 - 99DLL2@@JJK 
 -%
! Te3
SdKV,;;<fDSd3
/7
+
%
3
s   2E'E'0AE,A	E1-0E6c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r   +  s     7 7c 7c 7rY   c                8    V P                   P                  V4      # )z"Finds the UUID of a table.)r  r   r   s   &&rW   table_base_id_NumbersModel.table_base_id*  s     ((,,X66rY   c                Z    V P                  R4      p\        V4      ^ 8X  d   ^ # V^ ,          # )z9Return the CalculationEngine ID for the current document.CalculationEngineArchive)r  r   rn   ce_ids   & rW   r  _NumbersModel.calc_engine_id0  s*     9:u:?QxrY   c                Z    V P                  4       pV^ 8X  d   R# V P                  V,          # )z=Return the CalculationEngine object for the current document.N)r  r   r  s   & rW   r  _NumbersModel.calc_engine8  s+     ##%A:||E""rY   c                   V ^8  d   QhRR/# re   rU   )rV   s   "rW   rX   r   @  s     K KSW KrY   c           
     	X   \        R VVVVV4       W2,
          ^,           WT,
          ^,           3p\        W#^,           4       FB  p\        WE^,           4       F)  pV P                  V,          P                  VVW$W534       K+  	  KD  	  V P                  V,          P	                  W$V4       R# )z(Add merge: table_id=%d, [%d,%d]->[%d,%d]N)debugrE  r  rx   r}   )	rn   r   	row_startrow_end	col_startcol_endr{   rr   rt   s	   &&&&&&   rW   add_merge_range_NumbersModel.add_merge_range@  s    6	
 #a')<q)@AaK0CY!4!!(+997< 5 1 	(#..yTJrY   c                   V ^8  d   QhRR/# rQ   rT   rs   rU   )rV   s   "rW   rX   r   T  s       rY   c                	   R  R lpV P                   V,          pVP                  P                  P                  p\	        V4      ^ 8X  d   \        RV P                  V4      4       ^ # ^ pV F  pVP                  P                  P                  ^ ,          pVP                  \        8w  d   KA  V^,          pV P                  VVP                  P                  ^ ,          P                  V! VP                  P                  ^ ,          4      VP                  P                   ^ ,          P                  V! VP                  P                   ^ ,          4      4       K  	  \        RV P                  V4      V4       V# )c                    V ^8  d   QhRRRR/# )rQ   archiver   rT   rs   rU   )rV   s   "rW   rX   I_NumbersModel.calculate_merges_using_formula_stores.<locals>.__annotate__U  s     	_ 	_v 	_# 	_rY   c                `    V P                  R 4      '       d   V P                  # V P                  # 	range_endHasFieldr  range_begin)r  s   &rW   r  F_NumbersModel.calculate_merges_using_formula_stores.<locals>.range_endU  s)    (/(8(8(E(E7$$^7K^K^^rY   z!table=%s: no formula store mergesz'table=%s: %d formula store merges found)r   merge_ownerformula_storeformulasr   r  rZ  r   AST_node_arrayAST_nodeAST_node_typer"   r  AST_colon_tractabsolute_rowr  absolute_column)rn   r   r  table_modelr  merge_countr   nodes   &&      rW   %calculate_merges_using_formula_stores3_NumbersModel.calculate_merges_using_formula_storesS  s-   	_ ll8,**88AAx=A5tx7PQG??11::1=D!!%551K  $$11!4@@$..;;A>?$$44Q7CC$..>>qAB   	79RT_`rY   c                   V ^8  d   QhRR/# r  rU   )rV   s   "rW   rX   r   p  s      c rY   c           	     \   V P                  4       pV P                  V4      pV P                  R4      p^ pV F  pV P                  V,          pVP                  \
        P                  8w  d   K7  VP                  P                   F  pVP                  P                  p	W),          V8X  g   K(  VP                  P                  p
V^,          pV P                  VV
P                  V
P                  V
P                  V
P                   4       K  	  K  	  \#        RV P%                  V4      V4       V# )z0Extract all the merge cell ranges for the Table.r  z,table=%s: %d dependency archive merges found)r  r  r  r   r  r6   MERGE_OWNERrange_dependenciesback_dependencyinternal_range_referencer  rE  r  top_left_rowbottom_right_rowtop_left_columnbottom_right_columnr  rZ  )rn   r   r  r  formula_table_idsr  
formula_iddependenciesrecordto_owner_idrecord_ranges   &&         rW   *calculate_merges_using_dependency_archives8_NumbersModel.calculate_merges_using_dependency_archiveso  s    ((***84 NN+LM+J<<
3L&&)*?*??&99II$==FF,=#)#B#B#H#HL1$K(( $11$55$44$88 J	 ,  	:OOH%	

 rY   c                   V ^8  d   QhRR/# re   rU   )rV   s   "rW   rX   r     s     
 
T 
rY   c                	   V P                   V,          P                  pVP                  P                  ^ 8X  d   \	        RV P                  V4      4       R# ^ pV P                   VP                  P                  ,          pVP                   F  pVP                  P                  ^,	          VP                  P                  R,          rvVP                  P                  ^,	          VP                  P                  R,          rWy,           ^,
          p
Wh,           ^,
          pV^,          pV P                  WWV4       K  	  \	        RV P                  V4      V4       R# )r   ztable=%s: no merge_region_mapNi  z*table=%s: %d merge_region_map merges found)r   r   merge_region_mapr   r  rZ  
cell_rangeorigin
packedDatar{   r  )rn   r   r   r  cell_rangesr  r  r  num_columnsrS  r  r  s   &&          rW   !calculate_merges_using_region_map/_NumbersModel.calculate_merges_using_region_map  s   ,,x0@@++66!;14??83LMll?#C#C#N#NO%00J!!,,2!!,,v5 "
 **b0**V3 #  *Q.G-1G1K  g'R 1 	8OOH%	
rY   c                	    V P                  V4      ^ 8  d   V P                  V,          # V P                  V4      ^ 8  d   V P                  V,          # V P                  V4       V P                  V,          # rC  )r  r  r  r  r   s   &&rW   r   _NumbersModel.merge_cells  si    55h?!C$$X..::8DqH$$X....x8  **rY   c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r     s     
 
S 
S 
rY   c                	P   a a \        V V3R  lS P                  4        4       R4      # )c              3  X   <"   T F  pSSP                  V4      9   g   K  Vx  K!  	  R # 5ir[   )r:  ).0r(  rn   r   s   & rW   	<genexpr>5_NumbersModel.table_id_to_sheet_id.<locals>.<genexpr>  s&     _&6((dnnU]F^:^XX&6s   *
*Nr  r$  r   s   ffrW   table_id_to_sheet_id"_NumbersModel.table_id_to_sheet_id  s"    _dnn&6_
 	
rY   c                   V ^8  d   QhRR/# )rQ   rT   r2  rU   )rV   s   "rW   rX   r     s     	
 	
z 	
rY   c                	P   a a \        V V3R  lS P                  4        4       R4      # )c              3     <"   T F7  pSP                  V4       F  pSSP                  V4      8X  g   K  Vx  K!  	  K9  	  R # 5ir[   )r:  r  )r  r(  r   rn   
table_uuids   &  rW   r  2_NumbersModel.table_uuids_to_id.<locals>.<genexpr>  sC       0H $x 8H!3!3H!==  8  0s
   ,AANr  )rn   r  s   ffrW   table_uuids_to_id_NumbersModel.table_uuids_to_id  s)     $ 0 
 	
rY   c               $    V ^8  d   QhRRRRRR/# )rQ   r   rs   rr   rt   rU   )rV   s   "rW   rX   r     s&     `
 `
C `
c `
 `
rY   c                	.   R  pR pVP                  R4      '       d<   \        VP                  P                  4      P                  pV P                  V4      pMRpVP                  R4      '       Ed   V! VP                  P                  VP                  P                  VP                  P                  VR4      p	V! VP                  P                  VP                  P                  VP                  P                  VR4      p
V! VP                  P                  VP                  P                  VP                  P                  VR4      pV! VP                  P                  VP                  P                  VP                  P                  VR4      p\!        T V	R8X  d   RMT	V
R8X  d   RMT
VR8X  d   RMTVR8X  d   RMTVP                  P                  VP                  P                  VP                  P                  VP                  P                  VVR7      # VP"                  P$                  '       d   VP"                  P&                  MW$P"                  P&                  ,           pVP(                  P$                  '       d   VP(                  P*                  MW4P(                  P*                  ,           pVP                  R4      '       d<   VP                  R	4      '       g%   \!        V VVP"                  P$                  VVR
7      # VP                  R	4      '       d<   VP                  R4      '       g%   \!        V VVP(                  P$                  VVR7      # \!        V VVVP"                  P$                  VP(                  P$                  VVR7      # )c                    V '       d   V^ ,          P                   # V'       g   V^ ,          P                   V8X  d   V# W2^ ,          P                   ,           # rC  )r  is_absoluteabsolute_listrelative_listoffsetmax_vals   &&&&&rW   resolve_range0_NumbersModel.node_to_ref.<locals>.resolve_range  sD    $Q'333 ]1%5%A%AW%L!,8888rY   c                    V '       d   \        V^ ,          4      # V'       g   \        V^ ,          4      V8X  d   V# V\        V^ ,          4      ,           # rC  r  r  s   &&&&&rW   resolve_range_end4_NumbersModel.node_to_ref.<locals>.resolve_range_end  sC     q!122 Y}Q/?%@G%KImA&6777rY   $AST_cross_table_reference_extra_infoNr    )r   r  r  r  r  row_start_is_absrow_end_is_abscol_start_is_abscol_end_is_absfrom_table_idto_table_idAST_row
AST_column)r   r  r  r  r  )r   r  r  r  r  )r   r  r  r  r  r  r  )r  rL   r  r   r  r  AST_sticky_bitsbegin_row_is_absoluter  r  relative_rowend_row_is_absolutebegin_column_is_absoluter  relative_columnend_column_is_absoluterN   r  absoluterr   r  column)rn   r   rr   rt   r  r  r  r  r  	row_beginr  	col_beginr  s   &&&&&        rW   node_to_ref_NumbersModel.node_to_ref  s   	9	8 ==?@@$T%N%N%W%WX\\J00<KK==*++%$$::$$11$$11I ($$88$$11$$11G &$$==$$44$$44I ($$;;$$44$$44G "+z"9$y ': 57"+v"5$9 '6 1w!%!5!5!K!K#33GG!%!5!5!N!N#33JJ&'  #',,"7"7"7dllS<<CSCS=S(,(@(@(@doo$$cOOLbLbFb==##DMM,,G,G!%!6!6&'  ==&&t}}Y/G/G!%!9!9&'  !\\22!__55"#
 	
rY   c                   V ^8  d   QhRR/# rQ   r   rs   rU   )rV   s   "rW   rX   r   (  s      C rY   c                	   V P                   V,          P                  pVP                  P                  pV P                   V,          p/ pVP                   F/  pVP
                  P                  P                  WVP                  &   K1  	  V# r[   )	r   r   r   r   r   r   r  r  r   )rn   r   rK  formula_table_idr   r  r   s   &&     rW   formula_ast_NumbersModel.formula_ast'  sm    ll8$44,,77%56$,,G$+OO$B$B$K$KH[[! -rY   c                    V ^8  d   QhRRRR/# )rQ   r   rs   rT   r  rU   )rV   s   "rW   rX   r   2  s        rY   c           	     	6   . pV P                  V4       F  pVP                  '       g   R p\        V4      hVP                   FO  p\	        VP
                  VP                  V P                  V4      VP                  4      pVP                  V4       KQ  	  K  	  V# )zPre-BNC storage is unsupported)
r  last_saved_in_BNCr8   rowInfosget_storage_buffers_for_rowcell_storage_buffercell_offsetsrV  has_wide_offsetsr   )rn   r   buffersr  msgrbuffers   &&     rW   storage_buffers_NumbersModel.storage_buffers1  s    $$X.D)))6&s++]]4))NN**84&&	 v& #	 / rY   c               (    V ^8  d   QhRRRRRRRR/# )rQ   r   rs   rr   rt   rT   bytesrU   )rV   s   "rW   rX   r   C  s(     	0 	0s 	0 	03 	05 	0rY   c                	    V P                  V4      V,          pVf   R # V P                  V4      pV\        V4      8  d   R # V\        WT,          4      8  d   R # WT,          V,          # r[   )rP  r2  r   )rn   r   rr   rt   
row_offsetr2  s   &&&&  rW   storage_buffer_NumbersModel.storage_bufferB  sa    ))(3C8
..x8_--#o122*3//rY   c               $    V ^8  d   QhRRRRRR/# r,  rU   )rV   s   "rW   rX   r   N  s!     + + +4 +D +rY   c                	2   V P                   V,          P                  pV P                   VP                  P                  ^ ,          P                  ,          p\        VP                  4       \        \        V4      4       F  pWP                  9   d3   WPP                  V,          9   d   V P                  V,          V,          pMRp\        P                  P                  V\        W%,          4      V^ R7      pVP                  P                  V4       K  	  R# )r   r  r   numberOfCellsr{   hidingStateN)r   r   rG  rH  r   r   rI  rE  r   r  r   HeaderStorageBucketHeaderr   )rn   r   r-  r   rH  rr   r  rO  s   &&&     rW   recalculate_row_headers%_NumbersModel.recalculate_row_headersN  s    ,,x0@@,,99AA!DOOPgoo.T#C,,,8I8I(8S1S**84S9 44;;!$)n	 < F OO""6* $rY   c               $    V ^8  d   QhRRRRRR/# r,  rU   )rV   s   "rW   rX   r   _  s!     + +3 +d +t +rY   c                	   / p\        V P                  V4      4       F  pV P                  W4      W4&   K  	  V P                  V,          P                  pV P                  VP
                  P                  ,          p\        VP                  4       \        V!   Uu. uF  p\        V4      NK  	  pp\        V4       F  w  rI\        V	4      \        V	 Uu. uF  p\        V\        4      NK  	  up4      ,
          p
W4,          p\         P"                  P%                  VV
V^ R7      pVP                  P'                  V4       K  	  R# u upi u upi )r   r<  N)rE  rV  	col_widthr   r   columnHeadersr   r   rI  zipr  r   r   sumr   r   r   r?  r@  r   )rn   r   r-  current_column_widthsrt   r   rH  r>  col_datacellsrS  r  rO  s   &&&          rW   recalculate_column_headers(_NumbersModel.recalculate_column_headers_  s    "//9:C)-)F!& ; ,,x0@@,,<<GGHgoo.%($Z0ZDGZ0#H-JC5zCE(REqAz)BE(R$SSH).E 44;;&	 < F OO""6* . 1 )Ss   EEc                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r   u  s     K K K KrY   c                	   V P                  V4      pV P                  P                  R / \        P                  4      w  r4V P                  V4      pVP                  4        F  pVP                  V4      p\        P                  ! V^,          ^,          V^ ,          ,          R7      p\        P                  ! V^,          ^,          V^ ,          ,          R7      p\        P                  ! WxR7      p	VP                  P                  V	4       K  	  V P                  V,          P                  p
V P                  V
P                  V4       R# )r  )r  )r  r{   N)r   r   r  r   MergeRegionMapArchiver{   CellID	TableSizerN   r  r   r   r  r  )rn   r   r   merge_map_id	merge_mapr   r{   cell_id
table_sizer  r   s   &&         rW   recalculate_merged_cells&_NumbersModel.recalculate_merged_cellsu  s   &&x0"&,,"F"F--#
 &&x0"..0G##G,D!((WQZ25EPQ
5RTG$..47b=4PQ7;RTJ$..gOJ  ''
3 1 ,,x0@@?;;\JrY   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rQ   r   rs   r-  r  tile_row_offsetrr   rT   zTSTArchives.TileRowInforU   )rV   s   "rW   rX   r     s<        	
  
!rY   c                	*   \         P                  ! 4       p^Vn        WC,
          Vn        ^ Vn        RpR.\        V^ ,          4      ,          p^ p\        \        W$,          4      4       Fd  p	W$,          V	,          P                  4       p
V
f   K&  Wj,          pV^,	          Wy&   V\        V
4      ,          pV;P                  ^,          un        Kf  	  \        R\        V4       R2.VO5!  Vn	        \        Vn        Wen        \        Vn        RVn        V# )   rY   <hT)r   TileRowInfostorage_versiontile_row_index
cell_countr   rE  
_to_bufferr   r,  r(   cell_offsets_pre_bncr+  cell_storage_buffer_pre_bncr-  )rn   r   r-  rZ  rr   row_infocell_storageoffsetscurrent_offsetrt   r1  s   &&&&&      rW   recalculate_row_info"_NumbersModel.recalculate_row_info  s     **,#$ "%"7$T!W%TY(CYs^..0F!&-2#f+-##q(# ) !%qWa%8 C7 C(=%'3$/D,$(!rY   c                    V ^8  d   QhRRRR/# )rQ   r   zstr | int | NonerT   rs   rU   )rV   s   "rW   rX   r     s     	/ 	/,< 	/ 	/rY   c                   V P                   \        ,          P                   Uu/ uF  q"P                  VbK  	  pp\	        V\
        4      '       d8   VP                  4        UUu. uF  w  rBVP                  V8X  g   K  VNK  	  pppM6VP                  4        UUu. uF  w  rBVP                  V8X  g   K  VNK  	  pppW5^ ,          ,          # u upi u uppi u uppi )zJReturn the ID of an object in the document metadata given it's name or ID.)r   r2   
componentsr   r   r   r]   preferred_locator)rn   r   ccomponent_mapr>  component_idss   &&    rW   r   _NumbersModel.metadata_component  s     37,,z2J2U2UV2UQq2UVi%%+1133daq7J7Ji7W3  M ,9+>+>+@^+@41ALLT]D]QQ+@M^1-.. W _s   C$C>CC5Cc               (    V ^8  d   QhRRRRRRRR/# )rQ   r  rs   r6  r   locatorrT   rf   rU   )rV   s   "rW   rX   r     s/     A A AS A3 ASW ArY   c           
        VP                  V4      p\        P                  ! RRV4      p\        P                  ! VVVR. RO. RO^R7      pV P
                  \        ,          P                  P                  V4       V P                  WR7       R# )zMAdd a new ComponentInfo record to the parent object in the document metadata.z\-\d+.*r5  F)r   rv  rp   is_stored_outside_object_archivedocument_read_versiondocument_write_version
save_token)r  N)rQ   r   r   )
rV   rP  rQ  r  ComponentInfor   r2   ro  r   r  )rn   r  r6  rv  rp  component_infos   &&&&  rW   add_component_metadata$_NumbersModel.add_component_metadata  sx    ..+FF:r7;+99 /-2"+#,
 	Z ++22>B$$Y$@rY   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rQ   r  rs   r  r   r  r2  is_weakr   rT   rf   rU   )rV   s   "rW   rX   r     s<     
 

 
 !	

 
 

rY   c                    T P                  T;'       g    T4      pVe   RVRV/pMRV/pV'       d   RVR&   VP                  P                  \        P                  ! R/ VB 4       R# )z?Add an external reference to an object in a metadata component.Nobject_identifiercomponent_identifierTr  rU   )r  external_referencesr   r  ComponentExternalReference)rn   r  r  r  r  r  paramss   &&&&&  rW   r  %_NumbersModel.add_component_reference  sm     ++H,D,DE	#)96Ll[F,i8F $F9%%,,99CFC	
rY   c               $    V ^8  d   QhRRRRRR/# r,  rU   )rV   s   "rW   rX   r     s!     ;0 ;0s ;0$ ;04 ;0rY   c                	   V P                   V,          p\        V4      Vn        \        V^ ,          4      Vn        V P	                  V4       V P                  W4       V P                  W4       V P                  V4       V P                  4        V P                  W4       VP                  R4       ^ p\        V4      ^,	          pV P                   V,          P                  pVP                  P                  R4       \        V^ ,          4      \        8  d   RVP                  n        WE8:  Ed   V\        ,          p\        V4      V,
          \        8  d   \        pV\        ,           p	M\        V4      V,
          pWx,           p	R^ R^ R^ RVR^R	. R
RRR/p
V P                   P                  RV
\         P"                  4      w  r\%        Wy4       F0  pV P'                  WW}4      pVP(                  P+                  V4       K2  	  \         P,                  P#                  4       pWOn        VP0                  P3                  \4        P6                  ! VR7      4       VP                  P                  P+                  V4       \        VP                  n        V P;                  VRR4       V^,          pEK  V P                   P=                  4        R# )r   base_column_row_uidsr  T	maxColumnmaxRownumCellsnumrowsra  r)  r(  should_use_wide_rowszIndex/Tables/Tile-{}r  r  zTables/Tile-{}N)r   r   rF  rV  r  rA  rL  rW  update_paragraph_stylesupdate_cell_styles
ClearFieldr   r  r1   r  r  r   TilerE  rk  r)  r   TileStoragetileidr  r  r  r  	tile_sizer~  update_object_file_store)rn   r   r-  r  tile_idxmax_tile_idxr   r  rS  r  	tile_dicttile_idr  rr   rg  tile_refs   &&&             rW   recalculate_table_data$_NumbersModel.recalculate_table_data  sE   ll8,%(Y"(+DG%)$$X4''7%%h/$$&/564yA~,,x0@@((1tAw<-'9=O!!6& =0ID	I%6(#m3t9y0#. Q!A8!1B#T&	I !LL@@&  MG
 Y044XYT$$X. 1 #..335H&OMM##K$9$9W$MN!!''..x8.;O!!+''1DFVWMH--/rY   c                	    V P                   P                  R R\        P                  P                  P
                  R^/\        P                  4      w  rV P                  VRR4       W3# )Index/Tables/DataList-{}listTyper   r  Tables/DataList-{})r   r  r   r   ListTypeSTRINGr~  )rn   table_strings_idtable_stringss   &  rW   create_string_table!_NumbersModel.create_string_table  se    *.,,*N*N&22;;BBLRST%%+
'
 	##$46IK_`..rY   c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r     s      S S rY   c                    Rp\        V P                  V4      4       F  pW P                  W4      ,          pK  	  \        V4      # )z'Return the height of a table in points.r  )rE  rF  
row_heightr
   )rn   r   r  rr   s   &&  rW   table_height_NumbersModel.table_height  s<    ,,X67Cooh44F 8V}rY   c               (    V ^8  d   QhRRRRRRRR/# )rQ   r   rs   rr   r  r2  rT   rU   )rV   s   "rW   rX   r   &  s)     +0 +03 +0S +0* +0PS +0rY   c           	     	   Ve7   WP                   9  d   / V P                   V&   W0P                   V,          V&   V# WP                   9   d2   W P                   V,          9   d   V P                   V,          V,          # V P                  V,          pV P                  V,          P                  pVP                  P                  ^ ,          P
                  pV P                  V,          P                  pV Uu/ uF  qP                  VbK  	  p	pW)9   d4   W,          P                  R8w  d   \        W,          P                  4      pM\        VP                  4      pV P                  V,          p
\        R.\        \        W,          4      4       Uu. uFW  pW,          V,          P                  P                   f   K*  W,          V,          P                  P                   P"                  NKY  	  up,           4      p\        R.\        \        W,          4      4       Uu. uFW  pW,          V,          P                  P$                  f   K*  W,          V,          P                  P$                  P"                  NKY  	  up,           4      pW<^,          ,          pW=^,          ,          pWP                   9  d   / V P                   V&   \'        V4      V P                   V,          V&   V P                   V,          V,          # u upi u upi u upi Nr  )r  r   r   rG  rH  r   rI  r   r{   rounddefault_row_heightr	  maxrE  r   borderr   r  r   r
   )rn   r   rr   r  r  rK  rN  rH  r>  
bucket_mapr-  rt   max_top_bordermax_bottom_borders   &&&&          rW   r  _NumbersModel.row_height&  sn   000.0!!(+/5h',M(((S4E4Eh4O-O$$X.s33ll8,ll8$44NN**1-88	,,y)11*12'Qggqj'
2!5!5!<:?//0F;99:F)E !TY00C9S>((,, 0	#%%))//0
  E !TY00C9S>((// 3	#%%,,220
 	1$$a'',,,*,Dh'+0=(#C(  *3//; 3s   4K<'L
;1L
'L
1L
c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r   S  s      C C rY   c                    Rp\        V P                  V4      4       F  pW P                  W4      ,          pK  	  \        V4      # )z&Return the width of a table in points.r  )rE  rV  rE  r  )rn   r   r  rr   s   &&  rW   r  _NumbersModel.table_widthS  s<    //9:C^^H22E ;U|rY   c               (    V ^8  d   QhRRRRRRRR/# )rQ   r   rs   rt   r  r2  rT   rU   )rV   s   "rW   rX   r   Z  s(     +/ +/# +/C +/
 +/c +/rY   c                	   Ve7   WP                   9  d   / V P                   V&   W0P                   V,          V&   V# WP                   9   d2   W P                   V,          9   d   V P                   V,          V,          # V P                  V,          pV P                  V,          P                  pVP                  P                  pV P                  V,          P
                  pV Uu/ uF  qP                  VbK  	  p	pW)9   d4   W,          P                  R8w  d   \        W,          P                  4      pM\        VP                  4      pV P                  V,          p
\        R.\        \        V
4      4       Uu. uFW  pW,          V,          P                  P                  f   K*  W,          V,          P                  P                  P                   NKY  	  up,           4      p\        R.\        \        V
4      4       Uu. uFW  pW,          V,          P                  P"                  f   K*  W,          V,          P                  P"                  P                   NKY  	  up,           4      pW<^,          ,          pW=^,          ,          pWP                   9  d   / V P                   V&   \%        V4      V P                   V,          V&   V P                   V,          V,          # u upi u upi u upi r  )r  r   r   rF  r   rI  r   r{   r  default_column_widthr	  r  rE  r   r  r   r  r   r
   )rn   r   rt   r  r  rK  rN  rH  r>  r  r-  rr   max_left_bordermax_right_borders   &&&&          rW   rE  _NumbersModel.col_widthZ  sa   ///-/  *.3X&s+L'''C3C3CH3M,M##H-c22ll8,ll8$44%%00	,,y)11*12'Qggqj'
2!5!5!<*/../E+::;E)E !T++C9S>((-- 1	#%%**00+
 E !T++C9S>((.. 2	#%%++11+
 	1$$A%%+++)+DX&*/,"3')#..; 3s   #K8'K$
$1K$
?'K)
+1K)
c               $    V ^8  d   QhRRRRRR/# rQ   r   rs   num_headersr2  rT   rU   )rV   s   "rW   rX   r     s"     1 1 1* 1PS 1rY   c                T    V P                   V,          pVe   W#n        VP                  # )z%Return/set the number of header rows.)r   number_of_header_rowsrn   r   r  r  s   &&& rW   num_header_rows_NumbersModel.num_header_rows  s(    ll8,"0;-000rY   c               $    V ^8  d   QhRRRRRR/# r  rU   )rV   s   "rW   rX   r     s"     4 4 4* 4PS 4rY   c                T    V P                   V,          pVe   W#n        VP                  # )z(Return/set the number of header columns.)r   number_of_header_columnsr  s   &&& rW   num_header_cols_NumbersModel.num_header_cols  s(    ll8,"3>0333rY   c                    V ^8  d   QhRRRR/# )rQ   r   rs   rT   ztuple[float]rU   )rV   s   "rW   rX   r     s     
 
# 
, 
rY   c                	    V P                   V P                  V4      ,          pVP                  P                  P                  P
                  VP                  P                  P                  P                  3# r[   )r   r@  r5  geometrypositionr>  r  rn   r   rn  s   && rW   table_coordinates_NumbersModel.table_coordinates  s[    \\$"4"4X">?
%%..00%%..00
 	
rY   c                    V ^8  d   QhRRRR/# )rQ   r   rs   rT   r   rU   )rV   s   "rW   rX   r     s     + + + +rY   c                ^    V P                   V P                  V4      ,          pVP                  # )zTable is a pivot table.)r   r@  is_a_pivot_tabler  s   && rW   r  _NumbersModel.is_a_pivot_table  s'    \\$"4"4X">?
***rY   c                   a a S P                  V4      R,          o\        V V3R lS P                  V4       4       4      pS P                  S4      V,           # )z&Y offset of the last table in a sheet.c              3     <"   T FX  pVS8X  g   K  SP                   SP                  V4      ,          P                  P                  P                  P
                  x  KZ  	  R # 5ir[   )r   r@  r5  r  r  r  )r  r>  rn   r   s   & rW   r  2_NumbersModel.last_table_offset.<locals>.<genexpr>  sN      
-H} JDLL++A./55>>GGII-s   	A#AA#r_  )r:  r  r  )rn   r(  y_offsetr   s   f& @rW   last_table_offset_NumbersModel.last_table_offset  sN    >>(+B/ 
^^H-
 
   *X55rY   c               4    V ^8  d   QhRRRRRRRRRRRRR	R
/# )rQ   r(  rs   r>  floatr  r  r  r  rT   r   rU   )rV   s   "rW   rX   r     sP     
 

 
 	

 
 
 
 

rY   c                4   Ve   TMRpVe   TMV P                  V4      \        ,           p\        P                  ! \        P
                  ! VR7      \        P                  ! RV\        P                  ! WxR7      \        P                  ! WVR7      R7      R7      # )z4Create a DrawableArchive for a new table in a sheet.r  r  r  )r  r  )angler  r  r{   )r6  r  )	r  r*   r  DrawableArchiver  r  GeometryArchiver  r  )	rn   r(  r>  r  r  r  r  table_xtable_ys	   &&&&&&&  rW   r  _NumbersModel.create_drawable  s|     }!#}!$*@*@*JMa*a**((H= 00$**W@ %%VA	
 	
rY   c               8    V ^8  d   QhRRRRRRRRRRR	RR
RRR/# )rQ   r(  rs   rZ  r   r  r>  r  r  rS  rW  rT   rU   )rV   s   "rW   rX   r     sd     _ __ _ 	_
 _ _ _ _ 
_rY   c
                	   V P                   V,          p
V P                  4       w  r\        V
4      pV P                   P                  R R\	        \        4       4      P                  4       RVRVRVRRR\        R\        R	VR
V	RRRR/VC\        P                  4      w  r^ VP                  n        V P                   P                  RR^/\        P                  4      w  ppV P                  VR R4       V P                   P                  R R^R^ R^ /\        P                  4      w  ppV P!                  VP"                  V4       V P                   P                  RR\        P$                  P&                  P(                  R^/\        P$                  4      w  ppV P                  VR R4       V P                   P                  RR\        P$                  P&                  P*                  R^/\        P$                  4      w  ppV P                  VR R4       V P                   P                  RR\        P$                  P&                  P(                  R^/\        P$                  4      w  ppV P                  VR R4       \        V
P,                  4      pRV/VR&   RV/VR&   RV/VR&   RV/VR&   RV/VR&   VP,                  P/                  \        P0                  ! R+R\        P2                  ! ^R 7      R!^R"^ R#\        P4                  ! 4       R$\        P4                  ! 4       R%\        P6                  ! \8        RR&7      /VB 4       V P                   P                  RR^/\        P                  4      w  ppV P                  VR R4       VP,                  P:                  P<                  P?                  \@        PB                  ! VR'7      4       V P                   P                  R / \        PD                  4      w  ppVPF                  P/                  \@        PB                  ! VR'7      4       VPH                  P/                  V PK                  WV4      4       V PM                  VVVVV	4      pVPN                  PP                  P/                  VPR                  4       V PU                  4        \W        V4       UUu. uF5  p\W        V4       Uu. uF  p\X        PZ                  ! VVVV 4      NK  	  upNK7  	  uppV P\                  V&   V P_                  WP\                  V,          4       V Pa                  VR(V Pc                  4       R)7       V Pe                  V4       V Pg                  VR*4       V P                   V,          Ph                  P?                  \@        PB                  ! VR'7      4       V Pj                  Pm                  4        V# u upi u uppi ),r  r   rF  rV  rZ  rg  Tr  r  r  r  header_rows_frozenheader_columns_frozenz#Index/Tables/HeaderStorageBucket-{}bucketHashFunctionzTables/HeaderStorageBucket-{}	max_ordercolumn_count	row_countr  r  r   r  zIndex/Tables/TableDataList-{}zTables/TableDataList-{}r   r   rF  r   r   format_table_pre_bncrG  )r  nextRowStripIDnextColumnStripIDrowTileTreecolumnTileTreer  )r  r  r  Documentr  FrU   )7r   r  field_referencesr  r   rL   rg  r)   r%   r   TableModelArchivecategory_ownerr   r?  r~  StrokeSidecarArchiver  stroke_sidecarr   r  STYLEFORMULAr   r  	DataStoreHeaderStorageTableRBTreer  r-   rG  rH  r   r  r  r4  r7  r5  r  add_formula_ownerr  r  r  r  rE  r   _empty_cellr	  r  r  r  r  rq  drawable_infosr  
mark_dirty)rn   r(  rZ  r  r>  r  rS  rW  r  r  
from_tabler  r  from_table_refstable_model_idr  column_headers_idcolumn_headers
sidecar_idr  style_table_idr#  format_table_pre_bnc_iddata_store_refsrow_headers_idr@  rn  haunted_owner_uuidrr   rt   s   &&&&&&&&&&                    rW   r   _NumbersModel.add_table  s    \\-0
*.*B*B*D' +:6&*ll&J&JC.446 (#Xj$d$&8&(<')>*,D$d' " ))!'
#& 12""-,0LL,P,P1!1%++-
)>
 	##+	
 <<!^QQ?,,

A
 	;55zB LL@@&22;;AA<QRS%%

 	##N4GI]^"llBB+22;;CC\STU%%
!
 	##%	
 &*\\%I%I+22;;AA<QRS%%&
"
 	###%	
 +:+E+EF*68H)I&,8:K+L()5~(F%,8:J+K(3?AX2Y./##--!! &44J  #$ (335	
  +668 "--/)- "	
 !LL@@1!1%++
 	##+	

 	##..66==!!^<	
 %)LL$H$H((%
!z
 	''(=(=(XY""4#7#7Q#GH!33!$
 	!!++556H6R6RS%%' X,
& JOxY#Tnc3=Y&,
( 	##N4D4D^4TU$$,,. 	% 	

 	##N3^U3X--44!!];	
 	&&(% Z,
s   0W"W $W Wc               0    V ^8  d   QhRRRRRRRRRRRR/# )	rQ   r@  rs   rS  rW  r  r  rT   rL   rU   )rV   s   "rW   rX   r   c  sN     u" u"u" u" 	u"
  #u" #&u" 
u"rY   c                6   \        4       pV P                  4       pVP                  P                  P                  p\        V U	u. uF  qP                  NK  	  up	4      ^,           p
R/ R/ R/ R/ R/ R/ /pR^ R^ R	V^,
          R
V^,
          /pRVRVR	V^,
          R
V^,
          /pV P                  P                  RRVP                  RV
R\        P                  R/ R/ RVRRVRV/RRVRV/RR/ /R/ RRV/R/ R/ R/ /\        P                  4      w  rVP                  P                  P                  \         P"                  ! VR7      4       VP                  \        P$                  P'                  V
VP(                  R7      4       \        4       p\        4       pV
^,          p
RR RR!R	R R
R!/pRVRV/pV P                  P                  RRVP                  RV
R\        P*                  R/ R/ RVRVRVRR/ /R/ R"VP                  R/ R/ R/ /\        P                  4      w  ppVP                  P                  P                  \         P"                  ! VR7      4       VP                  \        P$                  P'                  V
VP(                  R7      4       V# u up	i )#z
Create a FormulaOwnerDependenciesArchive that references a TableInfoArchive
so that cross-references to cells in this table will work.
volatile_time_cellsvolatile_random_cellsvolatile_locale_cellsvolatile_sheet_table_name_cellsvolatile_remote_data_cellsvolatile_geometry_cell_refsr  r  r  r  r  r  internal_formula_owner_idr  cell_dependenciesr  volatile_dependenciesspanning_column_dependenciestotal_range_for_tablebody_range_for_tablespanning_row_dependencieswhole_owner_dependenciesdependent_cellscell_errorsformula_ownerr   tiled_cell_dependenciesuuid_referencestiled_range_dependenciesr  )r  r  r
  r	  r  )rL   r  r  r  r  r  r  r   r  dict2r6   TABLE_MODELTSCEArchivesr  formula_owner_dependenciesr   r  r  OwnerIDMapArchiveOwnerIDMapArchiveEntry	protobuf4r  )rn   r@  rS  rW  r  r  formula_owner_uuidr  r  r>  next_owner_idr  r  r  formula_deps_idr  base_owner_uuidnull_range_refspanning_dependenciesformula_depss   &&&&&&              rW   r  _NumbersModel.add_formula_ownerc  s    )]&&("55BBLL,G,Q00,GH1L!2#R#R-r(")2!
 qA!8a<1	!
 71!8a<1	 
 "\\AA#%7%=%=+]i33#R$b')>.+-B*,@1 ,+-B*,@. +->,Cr,!>)2!2*B), 881
4 	&&AAHH!!_=	
 	**AA"/+55 B 	
 )]%-vJ!6
	
 $^"N!
 )-(L(L#%7%=%=+]i55#R$b')>.0E+-B*->,Cr /"7"7)2!2*B  88%)
%( 	&&AAHH!!_=	
 	**AA"/+55 B 	
 "!M Hs   Jc                    V ^8  d   QhRRRR/# )rQ   r)  r   rT   rs   rU   )rV   s   "rW   rX   r     s      C C rY   c                    V P                   P                  RRV/\        P                  4      w  r#V P	                  VR\
        RR7       V P                   \
        ,          P                  P                  \        P                  ! VR7      4       V# )z:Add a new sheet with a copy of a table from another sheet.r  r'  r  T)r  r  r  r  )
r   r  
TNArchivesSheetArchiver  r.   r"  r   r  r  )rn   r)  r(  r  s   &&  rW   	add_sheet_NumbersModel.add_sheet  s}    ll::Z ##
 	$$($	 	% 	
 	[!((//0E0EQY0Z[rY   c                	`    V P                   f   V P                  4       V n         V P                   # r[   )r  available_paragraph_stylesrm   s   &rW   styles_NumbersModel.styles  s&    <<::<DL||rY   c                   V ^8  d   QhRR/# )rQ   rT   zdict[str, Style]rU   )rV   s   "rW   rX   r     s        ,<  rY   c                	L   V P                   \        ,          P                  P                  p\	        V P                   V,          P
                  R 4      pV Uu/ uF^  pV P                   VP                  ,          P
                  P                  RVP                  RV P                   VP                  ,          /bK`  	  ppVP                  4        UUu/ uEF
  w  rVV\        \        \        VR,          P                  P                  4      \        ^ 4      4      V P                  VR,          4      V P                  VR,          4      V P!                  VR,          4      V P#                  VR,          4      V P%                  VR,          4      V P'                  VR,          4      V P)                  VR,          4      V P+                  VR,          4      VR,          R7
      bEK  	  pppVP-                  4        F!  pRVP.                  R&   RVP.                  R&   K#  	  V# u upi u uppi )paragraph_style_presetsr   r  )
	alignment
font_color	font_size	font_namebolditalic	underlinestrikethroughr'  _text_style_obj_idF_update_text_style_update_cell_style)r   r.   themer   rI   r5  r'  r]   r   r   r   para_propertiesrD  r   cell_font_colorcell_font_sizecell_font_namecell_is_boldcell_is_italiccell_is_underlinecell_is_strikethroughcell_style_namevalues__dict__)	rn   theme_idpresetsr>  presets_mapr_   r`   r?  ry  s	   &        rW   r>  (_NumbersModel.available_paragraph_styles  s   <<,22== h!7!=!=?XY 

 	 LL&,,11allt||ALL14   	 
. $))+!
  , u#+AeH,D,D,N,NO)!,  //%9--ah7--ah7&&qx0**1U84005:"885B))!E(3#$T7  ,! 	 
$ ]]_E38ENN/038ENN/0 % ;

s   A$HDH c                    V ^8  d   QhRRRR/# rQ   ry  r   rT   rs   rU   )rV   s   "rW   rX   r     s     D D D3 DrY   c           $     	   VP                   '       d   \        P                  P                  pM\        P                  P                  pVP
                  '       d   \        P                  P                  pM\        P                  P                  pR VP                  P                  4       P                  RR4      ,           pV P                  P                  RRRVP                  RV/R^RR	R
RRVP                  P                  ^,          RVP                  P                   ^,          RVP                  P"                  ^,          RRRR/RVP$                  RVP&                  RVRVRVP(                  R\*        VP,                  ,          RRR
RRVP                  P                  ^,          RVP                  P                   ^,          RVP                  P"                  ^,          RRRR///RRVP.                  P0                  RVP2                  RVP4                  RVP6                  //\8        P:                  4      w  rVV P                  \<        ,          P>                  P@                  pVPB                  P>                  PE                  \F        PH                  ! VR 7      4       V P                  V,          PJ                  PM                  \F        PH                  ! VR 7      4       V P                  V,          PN                  PM                  \P        PR                  PU                  V\F        PH                  ! VR 7      R!7      4       V P                  \<        ,          PV                  P@                  p\Y        V P                  V,          PB                  R"4      p	V	PM                  \F        PH                  ! VR 7      4       WPZ                  VP                  &   V# )#znumbers-parser- -DocumentStylesheetr5  r'  style_identifieroverride_countchar_propertiesrE  r   rgbr0  gbar  rgbspacesrgbrH  rI  rJ  
strikethrurF  rG  tsd_fillcolorrP  rD  first_line_indentleft_indentright_indentr  r   ry  rC  ).rJ  CharacterStyleUnderlineTypekSingleUnderlinekNoUnderlinerK  StrikethruTypekSingleStrikethrukNoStrikethrur'  rx  ro  r   r  rE  r0  ri  rj  rH  rI  rF  FONT_FAMILY_TO_NAMErG  rD  
horizontalfirst_indentrr  rs  r  r  r.   rz  r   r5  r  r  r  r?  r   rw  TSSArchivesr  IdentifiedStyleEntryrO  rI   r  )
rn   ry  rJ  rn  style_id_namepara_style_id
para_stylerv  r[  r\  s
   &&        rW   add_paragraph_style!_NumbersModel.add_paragraph_style  s   ???&44EEI&44AAI'66HHJ'66DDJ)EJJ,<,<,>,F,FsC,PP$(LL$H$H EJJ& !!! U--//#5U--//#5U--//#5S"F# EJJell *!4U__!E#U!1!1!3!3c!9!1!1!3!3c!9!1!1!3!3c!9&"	!$4 "!;!;'););!5#4#4"E$6$6	$A&N ..S*%
!V [1<<GG##--k.C.C}.]^]#**11+2G2GS`2ab]#;;BB))>>(!++}E ? 	
 <<,22== h!7!=!=?XY{,,FG#(UZZ rY   c                    V ^8  d   QhRRRR/# )rQ   ry  r   rT   rf   rU   )rV   s   "rW   rX   r   \  s     D DE Dd DrY   c                	:   VP                   '       d   \        P                  P                  pM\        P                  P                  pVP
                  '       d   \        P                  P                  pM\        P                  P                  pV P                  VP                  ,          pVP                  P                  ^,          VP                  P                  n        VP                  P                  ^,          VP                  P                  n        VP                  P                  ^,          VP                  P                  n        VP                   VP                  n        VP"                  VP                  n        W$P                  n         W4P                  n        VP&                  VP                  n        \(        VP*                  ,          VP                  n        VP                  P                  ^,          VP                  P,                  P.                  n        VP                  P                  ^,          VP                  P,                  P.                  n        VP                  P                  ^,          VP                  P,                  P.                  n        VP0                  P2                  VP4                  n        VP6                  VP4                  n        VP:                  VP4                  n        VP<                  VP4                  n        R# )   N)rJ  ru  rv  rw  rx  rK  ry  rz  r{  r   rL  rE  r0  rg  ri  rj  rH  rI  rn  rF  r|  rG  ro  rp  rD  r}  rP  r~  rq  rr  rs  )rn   ry  rJ  rn  	style_objs   &&   rW   update_paragraph_style$_NumbersModel.update_paragraph_style\  s   ???&44EEI&44AAI'66HHJ'66DDJLL!9!9:	161A1A1C1Cc1I	!!,,.161A1A1C1Cc1I	!!,,.161A1A1C1Cc1I	!!,,.).	!!&+0<<	!!(.7!!+/9!!,.3oo	!!+.A%//.R	!!+5:5E5E5G5G#5M	!!**0025:5E5E5G5G#5M	!!**0025:5E5E5G5G#5M	!!**002.3oo.H.H	!!+6;6H6H	!!3050A0A	!!-161C1C	!!.rY   c                   V ^8  d   QhRR/# re   rU   )rV   s   "rW   rX   r   w  s     / / /rY   c                   V P                   P                  4        Uu. uF  qP                  e   K  VNK  	  ppV P                   P                  4        Uu. uF)  pVP                  f   K  VP                  '       g   K'  VNK+  	  ppV F   pV P	                  V4      Vn        RVn        K"  	  V F  pV P                  V4       K  	  R# u upi u upi )zb
Create new paragraph style archives for any new styles that
have been created for this document.
NT)r?  rY  rL  rM  r  r  )rn   r>  
new_stylesupdated_stylesry  s   &    rW   r  %_NumbersModel.update_paragraph_stylesw  s    
 "&!3!3!5V!5A9M9Maa!5
V [['')
)## 454H4H A) 	 

  E'+'?'?'FE$'+E$   $E''. $ W
s   CCC*C>Cc               $    V ^8  d   QhRRRRRR/# r,  rU   )rV   s   "rW   rX   r     s&     N N3 Nd Nt NrY   c                   / p\        V4       EFC  w  rE\        V4       EF-  w  rFVP                  f   K  VP                  P                  '       g   K4  \        VP                  P
                  P                  4      \        VP                  P                  4      ,           \        VP                  P                  4      ,           \        VP                  P                  4      ,           \        VP                  P                  4      ,           \        VP                  P                  4      ,           pVP                  P                  e   V\        VP                  P                  P                  4      \        VP                  P                  P                  4      ,           \        VP                  P                  P                  4      ,           ,           pVP                  P                   e'   WvP                  P                   P"                  ,          pWs9  d   V P%                  VP                  4      W7&   W7,          VP                  n        EK0  	  EKF  	  R# )zc
Create new cell style archives for any cells whose styles
have changes that require a cell style.
N)r   _stylerN  r   ry  rD  verticalr~  rr  rs  
text_inset	text_wrapbg_colorr0  ri  rj  bg_imagefilenameadd_cell_style_cell_style_obj_id)rn   r   r-  cell_stylesr  rK  cellfingerprints   &&&     rW   r   _NumbersModel.update_cell_styles  s   
 !$HA$U+;;*t{{/M/M/MDJJ0099:djj5567djj4456 djj5567 djj334	5
 djj2234   {{++7&1

 3 3 5 56!$**"5"5"7"789!$**"5"5"7"789'
 {{++7#{{';';'D'DD"5373F3Ft{{3S05@5MDKK2) , (rY   c                    V ^8  d   QhRRRR/# r`  rU   )rV   s   "rW   rX   r     s     M ME Mc MrY   c                	   VP                   Ee   \        VP                   P                  4      P                  4       pW P                  9   d   V P                  V,          pMV P
                  \        ,          P                  pV P                  4       pVP                  \        P                  ! VVVP                   P                  VP                   P                  \        VP                   P                  4      R7      4       W0P                  V&   RRRRRRV/RR	///pMtVP                  ee   RR
RRRVP                  P                  ^,          RVP                  P                   ^,          RVP                  P"                  ^,          RRRR///pM/ pV P
                  P%                  RRRVP&                  RR/R^R/ VCRRVP(                  RVP(                  RVP(                  RVP(                  /R VP*                  R!VP,                  P.                  /C/\0        P2                  4      w  rgR"V 2pWP4                  n        V P
                  \8        ,          P:                  P<                  p	VP4                  P:                  P?                  \@        PB                  ! V	R#7      4       V P
                  V	,          PD                  P                  \@        PB                  ! VR#7      4       V P
                  V	,          PF                  P                  \H        PJ                  PM                  V\@        PB                  ! VR#7      R$7      4       V# )%N)r   digestpreferred_file_name	file_namematerialized_length	cell_fillimage	techniqueScaleToFill	imagedatar   $interpretsUntaggedImageDataAsGenericFrp  r   rh  r0  ri  rj  rk  r  rl  rm  rd  r5  r'  re  r5  rf  cell_propertiespaddingr   r   r   r   r  vertical_alignmentznumbers-parser-custom-r  rt  )'r  r   r-  r  r  r   r2   datasnext_image_identifierr   r  DataInfor  r   r  r0  ri  rj  r  r'  r  r  rD  r  r   CellStyleArchiver5  re  r.   rz  r   r  r  r  r?  rw  r  r  r  )
rn   ry  r  image_idr  color_attrscell_style_id
cell_styler  rv  s
   &&        rW   r  _NumbersModel.add_cell_style  s   >>%%..--.557F%<</Z066557&//#+%,1NN,C,C"'.."9"9,/0C0C,D (0V$#]#lH%=>K ^^'U^^--3U^^--3U^^--3S"F	K K$(LL$H$H EJJ& !!! 
$!
$ 0 0u//!1!1 %"2"2	   (%//*B*B
$$ (()%
!, 1@,9)[1<<GG##--k.C.C}.]^]#**11+2G2GS`2ab]#;;BB))>>(!++}E ? 	
 rY   c                    V ^8  d   QhRRRR/# rQ   r  r   rT   rs   rU   )rV   s   "rW   rX   r          * * *# *rY   c                	    VP                   f   R # V P                  P                  VP                  VP                   4      pVP                  P
                  # r[   )_text_style_idr  r   	_table_idr   r   rn   r  r   s   && rW   text_style_object_id"_NumbersModel.text_style_object_id  C    &""//@S@ST)))rY   c                    V ^8  d   QhRRRR/# r  rU   )rV   s   "rW   rX   r     r  rY   c                	    VP                   f   R # V P                  P                  VP                  VP                   4      pVP                  P
                  # r[   )_cell_style_idr  r   r  r   r   r  s   && rW   cell_style_object_id"_NumbersModel.cell_style_object_id  r  rY   c                   V ^8  d   QhRR/# rQ   rT   r   rU   )rV   s   "rW   rX   r     s        3  rY   c                   V P                   \        ,          P                  P                  pV P                  P                  4       pV Uu. uF$  p\        P                  ! RV4      '       g   K"  VNK&  	  ppV P                   V,          P                   Fq  pVP                  P                  p\        V P                   V,          P                  RR4      p\        P                  ! RV4      '       g   K`  VP                  V4       Ks  	  \        V4      ^ 8  dH   \        R4      pV Uu. uF  p\        W8R 4      NK  	  p	pR\        V	R,          ^,           4      ,           # R# u upi u upi )zX
Find custom styles in the current document and return the next
highest numbered style.
zCustom Style \d+r'  r5  zCustom Style NzCustom Style 1r_  )r   r.   rz  r   r?  r  rP  	fullmatchrw  ry  r   r5  r   r   rs   r   )
rn   rv  current_stylesr>  custom_stylesru  style_id
style_namer  custom_style_idss
   &         rW   custom_style_name_NumbersModel.custom_style_name  s   
 [1<<GG))+$2[NqbllCVXY6ZN[<<6NNK"((33H h!7!=!=vrJJ||/<<$$Z0	 O }!)F9FGAAgJG"S)9")=)A%BBB \  Hs   
E!.E!'E&c                   V ^8  d   QhRR/# )rQ   rT   zdict[str, CustomFormatting]rU   )rV   s   "rW   rX   r     s     $ $ ; $rY   c                	^   V P                   Ef   V P                  \        ,          P                  P                  P
                  pV P                  V,          P                  pV Uu. uF  q3P                  NK  	  pp\        V P                  V,          P                  4      p/ V n         / V n
        / V n        \        V4       FX  w  rg\        P                  ! W&,          4      V P                   V&   W&,          V P                  V&   WV,          V P                  V&   KZ  	  V P                   # u upi r[   )r  r   r.   r5  r  r   r  r'  r  r  r  rb  r   r   from_archive)rn   r  r  r>  custom_format_namescustom_format_uuidsr   format_names   &       rW   r  _NumbersModel.custom_formats  s    '$(LL$=$C$C$V$V$a$a!!\\*?@OON3A"B>a66>"B"&t||4I'J'P'P"Q#%D +-D((*D%"+,?"@4D4Q4QR`Rc4d$$[1<J<M,,[99L9O))+6 #A
 ### #Cs   &D*c                   V ^8  d   QhRR/# r  rU   )rV   s   "rW   rX   r   &  s     ! !C !rY   c                4   V P                   P                  4       pRV9  d   R# V Uu. uF5  p\        P                  ! RV4      ;p'       g   K$  VP	                  ^4      NK7  	  pp\        V4      ^ 8  d   \        VR,          4      pRV^,            2# R# u upi )zZ
Find custom formats in the current document and return the next
highest numbered format.
zCustom FormatzCustom Format (\d+)zCustom Format zCustom Format 1r_  )r  r  rP  r  groupr   rs   )rn   current_formatsr>  mlast_ids   &    rW   custom_format_name _NumbersModel.custom_format_name&  s    
 --224/1" /
 /1F\^_9`4`A4`JAGGAJ 	 
 !#/"-.G#GaK=11 
s   !BBc                   V ^8  d   QhRR/# r!  rU   )rV   s   "rW   rX   r   7  s     - -s -rY   c                	    \        W4      # r[   r:   r   s   &&rW   table_formulas_NumbersModel.table_formulas6  s    T,,rY   c               $    V ^8  d   QhRRRRRR/# )rQ   r   rs   
string_keyrT   rS   rU   )rV   s   "rW   rX   r   ;  s&     X X X X XrY   c                4   V P                   V,          P                  pV P                   VP                  P                  ,          pVP                   EF=  pW%P
                  8X  g   K  V P                   VP                  P                  ,          pV P                   VP                  P                  ,          pVP                  P                  p\        VP                  4      ^ 8  d   VP                  ^ ,          MRp	. p
\        V4       F  w  rVP                  P                  '       g   K#  V P                   VP                  P                  ,          p\        V\        P                  4      '       g   Kl  VP                   pV\        V4      ^,
          8  d   W^,           ,          P                   pM\        V	4      pWV pV
P#                  VVP$                  34       K  	  . p. pVP&                  P                  pVP(                  P                  pV Uu. uF  qP                   NK  	  pp\        V4       EF  w  ppV\        V4      ^,
          8X  d   VP#                  V	VR 4       M)VP#                  V	VVV^,           ,          ^,
           4       V\        V4      8  d
   VV,          pV P                   XP                  P                  ,          p\        VP*                  4      ^ 8  d   VP*                  ^ ,          pM<\        VP,                  4      ^ 8  d!   VP,                  ^ ,          p\/        VV4      pMRpVP#                  V4       EK  	  RT	R\0        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      RVR	VR
V
/u # 	  R# u upi )z:Extract bullets and hyperlinks from a rich text data cell.r5  Nr  bulletedc              3  (   "   T F  qR Jx  K
  	  R # 5ir[   rU   )r  rq  s   & rW   r  0_NumbersModel.table_rich_text.<locals>.<genexpr>  s     #H<aTM<s   TFbulletsbullet_chars
hyperlinks)r   r   rich_text_tabler   r   r   rich_text_payloadr  table_smartfieldr   r  r   r   r   r  HyperlinkFieldArchiver  r   url_refr  r  stringsnumber_typesformatted_numberany)rn   r   r  rK  r  r   payloadpayload_storagesmartfield_entries	cell_textr  r   r  r  startendurl_textr  r  payload_entriestable_list_stylesri  r  r  bullet_stylebullet_charnumber_types   &&&                        rW   table_rich_text_NumbersModel.table_rich_text:  s   D ll8$44,,s':':'E'EF$,,EYY&,,u'>'>'I'IJ"&,,w/I/I"J%4%E%E%M%M"7:?;O;O7PST7TO003Z\	
%&89DAxx***"ll188+>+>?%c<+M+MNN$%$5$5E 3'9#:Q#>>&8Q&?&O&O&))n'0s';H&--x.EF : !"1"B"B"J"J$3$D$D$L$L!6EFo,,oF!*7!3IAvCL1,,y'9:  y'!a%.1:L'MN 3011+<Q+?(#'<<0@0G0G0R0R#SL<//014&2&:&:1&=\667!;&2&?&?&B&6{A&F&* ''4) "4. I#H<#H#H<#H Hw"L * _ -0 Gs   Nc                    V ^8  d   QhRRRR/# )rQ   r  r   rT   r   rU   )rV   s   "rW   rX   r     s     D DD DV DrY   c                    VP                   e'   V P                  VP                  VP                   4      # V P                  VP                  ,          pVP                  \        VP                  4      9   d(   V P                  VP                  P                  ,          # VP                  \        VP                  4      9   d(   V P                  VP                  P                  ,          # VP                  ^ 8  dq   VP                  VP                  ,
          pW2P                  ,           pVP                  \        W44      9   d(   V P                  VP                  P                  ,          # V P                  VP                  P                  ,          # )zm
Return the text style object for the cell or, if none
is defined, the default header, footer or body style.
)r  rv  r  r   rr   rE  r  header_row_text_styler   rt   r  header_column_text_stylenumber_of_footer_rowsrF  footer_row_text_stylebody_text_style)rn   r  r  start_row_numend_row_nums   &&   rW   cell_text_style_NumbersModel.cell_text_style  s   
 *##DNND4G4GHHll4>>288u[>>??<< A A L LMM88u[AABB<< D D O OPP,,q0'669Z9ZZM'*K*KKKxx5<<||K$E$E$P$PQQ||K77BBCCrY   c                    V ^8  d   QhRRRR/# )rQ   r  r   rT   r   rU   )rV   s   "rW   rX   r     s     	/ 	/4 	/I 	/rY   c                	0   V P                  V4      p\        V P                  VR 4      4      pVP                  f   \        P
                  pMAV P                  VP                  VP                  4      p\	        V P                  VR4      4      p\        W44      # )rD  r  )
r  r   para_propertyr  r   TOPrv  r  cell_propertyr   )rn   r  ry  r}  r  s   &&   rW   cell_alignment_NumbersModel.cell_alignment  s    $$T*,T-?-?{-ST
&,00H$$T^^T5H5HIE,T-?-?G[-\]H..rY   c                    V ^8  d   QhRRRR/# )rQ   r  r   rT   ztuple | list[tuple]rU   )rV   s   "rW   rX   r     s      $ +> rY   c                	   VP                   f   R # V P                  VP                  VP                   4      pVP                  P                  pVP                  R4      '       d   \        VP                  4      # VP                  R4      '       d:   VP                  P                   Uu. uF  p\        VP                  4      NK  	  up# R # u upi )Nrp  gradient)
r  rv  r  r  r  r  rh  rp  r  stops)rn   r  ry  r  ss   &&   rW   cell_bg_color_NumbersModel.cell_bg_color  s    &  1D1DE//99##G,,,,--##J//,;,D,D,J,JK,JqS\,JKK Ls   (Cc                    V ^8  d   QhRRRR/# )rQ   ry  r   fieldr   rU   )rV   s   "rW   rX   r     s     5 56 5# 5rY   c                    VP                   P                  V4      '       gH   V P                  VP                  P                  P
                  ,          p\        VP                   V4      # \        VP                   V4      # )z_
Return a char_property field from a style if present
in the style, or from the parent if not.
)rg  r  r   r5  r6  r   r   rn   ry  r  r6  s   &&& rW   char_property_NumbersModel.char_property  _    
 $$--e44\\%++"4"4"?"?@F611599u,,e44rY   c               $    V ^8  d   QhRRRRRR/# rQ   ry  r   r  r   rT   r  rU   )rV   s   "rW   rX   r     !     5 56 5# 5% 5rY   c                    VP                   P                  V4      '       gH   V P                  VP                  P                  P
                  ,          p\        VP                   V4      # \        VP                   V4      # )z_
Return a para_property field from a style if present
in the style, or from the parent if not.
)rP  r  r   r5  r6  r   r   r!  s   &&& rW   r  _NumbersModel.para_property  r$  rY   c               $    V ^8  d   QhRRRRRR/# r&  rU   )rV   s   "rW   rX   r     r'  rY   c                    VP                   P                  V4      '       gH   V P                  VP                  P                  P
                  ,          p\        VP                   V4      # \        VP                   V4      # )z_
Return a cell_property field from a style if present
in the style, or from the parent if not.
)r  r  r   r5  r6  r   r   r!  s   &&& rW   r  _NumbersModel.cell_property  r$  rY   c                    V ^8  d   QhRRRR/# rQ   r  Cell | objectrT   r   rU   )rV   s   "rW   rX   r     s     1 1 1$ 1rY   c                	x    \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      # )rH  r   r   r  r"  rn   r  ry  s   && rW   rT  _NumbersModel.cell_is_bold  s3    -7T-B-B$$S)!!%00rY   c                    V ^8  d   QhRRRR/# r.  rU   )rV   s   "rW   rX   r     s     3 3- 3D 3rY   c                	x    \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      # )rI  r1  r2  s   && rW   rU  _NumbersModel.cell_is_italic  s3    -7T-B-B$$S)!!%22rY   c                    V ^8  d   QhRRRR/# r.  rU   )rV   s   "rW   rX   r     s     F F] Ft FrY   c                	    \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      pV\        P
                  P                  8g  # )rJ  )r   r   r  r"  ru  rv  rx  )rn   r  ry  rJ  s   &&  rW   rV  _NumbersModel.cell_is_underline  sI    -7T-B-B$$S)&&uk:	N88EEEErY   c                    V ^8  d   QhRRRR/# r.  rU   )rV   s   "rW   rX   r     s     I I I4 IrY   c                	    \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      pV\        P
                  P                  8g  # )rn  )r   r   r  r"  ru  ry  r{  )rn   r  ry  rn  s   &&  rW   rW  #_NumbersModel.cell_is_strikethrough  sI    -7T-B-B$$S)''|<
^::HHHHrY   c                    V ^8  d   QhRRRR/# r.  rU   )rV   s   "rW   rX   r     s        =  T  rY   c                	    \        V\        4      '       d   V P                  V4      MTpVP                  P                  # r[   )r   r   r  r5  r'  r2  s   && rW   rX  _NumbersModel.cell_style_name  s0    -7T-B-B$$S){{rY   c                    V ^8  d   QhRRRR/# )rQ   r  r/  rT   rv   rU   )rV   s   "rW   rX   r     s     < <= <U <rY   c                	    \        V\        4      '       d   V P                  V4      MTp\        V P	                  VR 4      4      # )rE  )r   r   r  rh  r"  r2  s   && rW   rQ  _NumbersModel.cell_font_color  s8    -7T-B-B$$S)4%%e\:;;rY   c                    V ^8  d   QhRRRR/# rQ   r  r/  rT   r  rU   )rV   s   "rW   rX   r     s     6 6- 6E 6rY   c                	x    \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      # )rF  r1  r2  s   && rW   rR  _NumbersModel.cell_font_size  s3    -7T-B-B$$S)!!%55rY   c                    V ^8  d   QhRRRR/# )rQ   r  r/  rT   r   rU   )rV   s   "rW   rX   r     s     . .- .C .rY   c                	*   \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      pV\        9  dB   W0P
                  9  d,   \        RV R\         2\        ^R7       RV P
                  V&   \        # \        V,          # )rG  zCustom font 'z' unsupported; falling back to )
stacklevelT)	r   r   r  r"  rF   r  r   r'   r9   )rn   r  ry  rG  s   &&  rW   rS  _NumbersModel.cell_font_name  s    -7T-B-B$$S)&&uk:	// 2 22#I;.Ml^\& 
 15""9-"9--rY   c                    V ^8  d   QhRRRR/# rD  rU   )rV   s   "rW   rX   r   	  s     > >] >u >rY   c                	x    \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      # )rq  r   r   r  r  r2  s   && rW   cell_first_indent_NumbersModel.cell_first_indent	  s4    -7T-B-B$$S)!!%)<==rY   c                    V ^8  d   QhRRRR/# rD  rU   )rV   s   "rW   rX   r   	  s     8 8M 8e 8rY   c                	x    \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      # )rr  rM  r2  s   && rW   cell_left_indent_NumbersModel.cell_left_indent	  s3    -7T-B-B$$S)!!%77rY   c                    V ^8  d   QhRRRR/# rD  rU   )rV   s   "rW   rX   r   	  s     9 9] 9u 9rY   c                	x    \        V\        4      '       d   V P                  V4      MTpV P                  VR 4      # )rs  rM  r2  s   && rW   cell_right_indent_NumbersModel.cell_right_indent	  s3    -7T-B-B$$S)!!%88rY   c                    V ^8  d   QhRRRR/# rQ   r  r   rT   r  rU   )rV   s   "rW   rX   r   	  s      D U rY   c                	    VP                   f   \        # V P                  VP                  VP                   4      pV P	                  VR4      pVP
                  # )Nr  )r  r+   rv  r  r  r   )rn   r  ry  r  s   &&  rW   cell_text_inset_NumbersModel.cell_text_inset	  sL    &%%  1D1DE$$UI6||rY   c                    V ^8  d   QhRRRR/# rY  rU   )rV   s   "rW   rX   r    	  s     6 64 6E 6rY   c                	    VP                   f   \        # V P                  VP                  VP                   4      pV P	                  VR4      # )Nr  )r  r,   rv  r  r  )rn   r  ry  s   && rW   cell_text_wrap_NumbersModel.cell_text_wrap 	  sC    &$$  1D1DE!!%55rY   c                    V ^8  d   QhRRRR/# )rQ   
stroke_runr   rT   r   rU   )rV   s   "rW   rX   r   &	  s     	 	f 	 	rY   c                &   VP                   P                  P                  pV\        P                  P
                  8X  d   R# V\        P                  P                  8X  d1   VP                   P                  P                  ^ ,          R8  d   R# R# R# )z(Return the stroke type for a stroke run.solidr  dotsdashesnone)strokepatternr  StrokePatternStrokePatternTypeTSDSolidPattern
TSDPattern)rn   rb  stroke_types   && rW   rn  _NumbersModel.stroke_type&	  sl     ''//44-99III-99DDD  ((003c9rY   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rQ   r   rs   sider   rr   rt   rT   r   rU   )rV   s   "rW   rX   r   1	  s/       3 S s v rY   c                	   V P                   V,          pV^ 8  g   V^ 8  d   R# V\        V4      8  g   V\        WS,          4      8  d   R# V P                   V,          V,          V,          p\        V\        4      '       da   VR8X  d   W6P                  8X  gF   VR8X  d   WFP
                  8X  g/   VR8X  d   W6P                  8X  g   VR8X  d   WFP                  8X  d   V# R# VP                  '       d   VR9   d   V#  R# V# )r   Nr   r   r   r   )r   r   )	r	  r   r   r   r  r  r  r  	is_merged)rn   r   rq  rr   rt   r-  r  s   &&&&&  rW   cell_for_stroke_NumbersModel.cell_for_stroke1	  s    )7cAg#d)sc$)n4)#.s3dJ''3..#8GO||(;H$)<FNsnn'<  ^^^& '  KrY   c               0    V ^8  d   QhRRRRRRRRRRR	R
/# )rQ   r   rs   rr   rt   rq  r   border_valuer   rT   rf   rU   )rV   s   "rW   rX   r   G	  sF     (> (>(> (> 	(>
 (> (> 
(>rY   c                   VR8X  d   V P                  VRW#4      ;pe   WVP                  n        V P                  VRV^,
          V4      ;pe   WVP                  n        WP                  9   dP   V P                  V,          P                  VR4       V P                  V,          P                  V^,
          R4       R# R# VR8X  d   V P                  VRW#4      ;pe   WVP                  n        V P                  VRW#^,           4      ;pe   WVP                  n        WP                  9   dP   V P                  V,          P                  VR4       V P                  V,          P                  V^,           R4       R# R# VR8X  d   V P                  VRW#4      ;pe   WVP                  n        V P                  VRV^,           V4      ;pe   WVP                  n        WP                  9   dP   V P                  V,          P                  VR4       V P                  V,          P                  V^,           R4       R# R# V P                  VRW#4      ;pe   WVP                  n        V P                  VRW#^,
          4      ;pe   WVP                  n        WP                  9   dP   V P                  V,          P                  VR4       V P                  V,          P                  V^,
          R4       R# R# )zASet the 2 borders adjacent to a stroke if within the table range.r   Nr   r   r   )	rt  _borderr   r   r  popr   r   r  )rn   r   rr   rt   rq  rw  r  s   &&&&&& rW   set_cell_border_NumbersModel.set_cell_borderG	  s    5=,,XucGGT#/ ,,Xxq#NN[&2#,,,!!(+//T:!!(+//a> - W_,,XwIIV%1",,Xvs!GLLY$0!+++  *..sD9  *..sQw= , X,,XxJJW&2#,,XucAgsKKX#/ ,,,!!(+//T:!!(+//a> - ,,XvsHHU$0!,,Xw1WMMZ%1"+++  *..sD9  *..sQw= ,rY   c               (    V ^8  d   QhRRRRRRRR/# )	rQ   r   rs   	layer_idsr  rq  r   rT   rf   rU   )rV   s   "rW   rX   r   q	  s/     ^ ^# ^$ ^c ^VZ ^rY   c           
     	   V EF>  pV P                   VP                  ,          pVP                   EF  p\        \	        VP
                  P                  ^4      \        VP
                  P                  4      V P                  V4      VP                  R7      pVR9   dQ   VP                  pVP                  p	\        WVP                  ,           4       F  p
V P                  WWV4       K  	  K  VP                  pVP                  p	\        WVP                  ,           4       F  pV P                  WWV4       K  	  EK  	  EKA  	  R# )rQ   )r  rp  ry  _orderN)r   r   )r   r   stroke_runsr   r  rh  r  rh  rp  rn  orderrow_column_indexr  rE  lengthr{  )rn   r   r~  rq  layer_idstroke_layerrb  rw  	start_rowstart_columnrt   rr   s   &&&&        rW   extract_strokes_in_layers'_NumbersModel.extract_strokes_in_layersq	  s   !H<<(;(;<L*66
%
 1 1 7 7;j//556**:6%++	  ,, , = =I#-#4#4L$\*BSBS3ST,,X#\Z  U !+ 1 1I#/#@#@L$YJ<M<M0MN,,XLP\]  O 7 "rY   c                    V ^8  d   QhRRRR/# r   rU   )rV   s   "rW   rX   r   	  s     a a a arY   c                	Z   V P                   V,          pV P                   VP                  P                  ,          pV P                  WP                  R 4       V P                  WP
                  R4       V P                  WP                  R4       V P                  WP                  R4       R# )r   r   r   r   N)r   r  r   r  top_row_stroke_layersleft_column_stroke_layersright_column_stroke_layersbottom_row_stroke_layers)rn   r   	table_objsidecar_objs   &&  rW   extract_strokes_NumbersModel.extract_strokes	  s    LL*	ll9#;#;#F#FG&&x1R1RTYZ&&x1V1VX^_&&x1W1WY`a&&x1U1UW_`rY   c               $    V ^8  d   QhRRRRRR/# )rQ   r  rs   r  rw  r   rU   )rV   s   "rW   rX   r   	  s!     7
 7
C 7
 7
F 7
rY   c                	<   \         P                  P                  P                  p\         P                  P
                  pVP                  \        P                  8X  d7   \         P                  ! \        P                  P                  R ^ . ROR7      pEMVP                  \        P                  8X  d6   \         P                  ! \        P                  P                  R ^. ROR7      pMVP                  \        P                  8X  dt   \         P                  ! \        P                  P                  R ^. R	OR7      p\         P                  P                  P                   p\         P                  P"                  pM4\         P                  ! \        P                  P$                  R ^ . ROR7      p\&        P(                  ! \&        P(                  P*                  \&        P(                  P,                  VP.                  P0                  ^,          VP.                  P2                  ^,          VP.                  P4                  ^,          RR7      pVP6                  p\8        P:                  P=                  VVVP>                  \         P                  ! VVVVRVR7      R7      # )
r  )r  phasecountri  r  )r   rl  r0  ri  rj  rk  g      @)rp  r  capjoinmiter_limitri  )r  r  r  rh  )r  r  r  r  r  r  )       @r  r  r  r  r  )g-C6?r  r  r  r  r  ) r  StrokeArchiveLineCapButtCapLineJoin	MiterJoinry  r   SOLIDrG   rj  rk  rl  DASHESrm  DOTSRoundCap	RoundJoinTSDEmptyPatternr  Colorrh  rm  rp  r0  ri  rj  r  r   StrokeLayerArchiveStrokeRunArchiver  )	rn   r  r  rw  line_cap	line_joinri  rp  r  s	   &&&&     rW   create_stroke_NumbersModel.create_stroke	  s   ,,44<<((22	!1!11!66"44DD6	G :#4#44!66"44??6	G :??2!66"44??9	G #0088AAH#,,66I!66"44DD6	G !!##'' &&++  ""S(  ""S(  ""S(
 ""-->>%%,,	 ? 
 	
rY   c               4    V ^8  d   QhRRRRRRRRRRR	RR
R/# )rQ   r   rs   rr   rt   rq  r   rw  r   r  rT   rf   rU   )rV   s   "rW   rX   r   	  sb     KP KPKP KP 	KP
 KP KP KP 
KPrY   c                	   V P                   V,          pV P                   VP                  P                  ,          pV;P                  ^,          un        VP                  Vn        VP                  Vn        VP                  Vn        VR8X  d   VP                  p	Tp
TpM@VR8X  d   VP                  p	Tp
TpM(VR8X  d   VP                  p	Tp
TpMVP                  p	Tp
TpRpV	 FN  pV P                   VP                  ,          P                  V
8X  g   K1  V P                   VP                  ,          pKP  	  VEe   RpVP                   EF  pVP                  pVP                  VP                   ,           p\#        VV4      pVV8:  d3   W,           V8  d&   VP%                  V P'                  WV4      4       RpKr  VV8X  d8   WoP                   8  d(   W,           Vn        VP                   V,
          Vn        K  VV9   d(   W,           V8X  d   VP                   V,
          Vn        K  VV9   g   K  W,           V9   g   K  VV,
          Vn        VP                  P)                  \*        P,                  P/                  4       4       VP                  R,          P%                  V4       W,           VP                  R,          n        VV,
          V,
          VP                  R,          n        EK  	  V'       g,   VP                  P)                  V P'                  WV4      4       VP                  P1                  R R7       R# V P                   P3                  R	R
V
/\*        P,                  4      w  ppVP                  P)                  V P'                  WV4      4       V	P)                  \4        P6                  ! VR7      4       R# )   r   r   r   NFTc                    V P                   # r[   )r  )r>  s   &rW   rj   *_NumbersModel.add_stroke.<locals>.<lambda>	
  s    rY   )r   r  r  r  r_  )r   r  r   r  rF  r  rV  r  r  r  r  r  r  r  r  r  r  rE  CopyFromr  r   r   r  r  sortr  r  r  )rn   r   rr   rt   rq  rw  r  r  r  r~  r  r  r  r  stroke_patchedrb  stroke_start
stroke_endstroke_rangestroke_layer_ids   &&&&&&&             rW   
add_stroke_NumbersModel.add_stroke	  s$    LL*	ll9#;#;#F#FG" ) 8 8#,#>#> )335=#99I"FW_#>>I"FX#<<I"F#==I"F!H||H//0AAEUU#||H,?,?@ " #"N*66
)00'..1B1BB
$\:>\)v:.M''(:(:6<(XY%)N|+9J9J0J(.J%(2(9(9F(BJ%|+Z0O(2(9(9F(BJ%|+\0Q(.(=J% ,,33#66GGI !,,R099*E:@/L,,R07:Dv:MPV:VL,,R07/ 70 "((//0B0B6S_0`a$$)).@)A,0LL,P,P#&(8 ..-)O\ $$++D,>,>v|,\][22oNOrY   c               $    V ^8  d   QhRRRRRR/# )rQ   r-  r5  r  r   rT   rf   rU   )rV   s   "rW   rX   r   
  s!     8 8 8 8 8rY   c                    RV 2pW0P                   P                  9   d   V R2p\        V4      hWP                   P                  V&   R# )z#Store image data in the file store.zData/z": image already exists in documentN)r   
file_store
IndexError)rn   r-  r  stored_filenamer/  s   &&&  rW   store_image_NumbersModel.store_image
  sG    !(,ll555J@ACS/!370rY   c                    V P                   \        ,          P                  pV Uu. uF  q"P                  NK  	  pp\	        V4      ^,           # u upi )zCReturn the next available ID in the list of images in the document.)r   r2   r  r   r  )rn   r  r>  	image_idss   &   rW   r  #_NumbersModel.next_image_identifier
  s@    Z(..+015a\\5	19~!! 2s   Ac                	    R  R lpV P                  R4       Uu/ uFK  p\        V P                  V,          P                  4      V! V P                  V,          P                  4      bKM  	  up# u upi )c                    V ^8  d   QhRRRR/# )rQ   
cell_valuezTSCEArchives.CellValueArchiverT   zstr | int | bool | datetimerU   )rV   s   "rW   rX   5_NumbersModel.group_uuid_values.<locals>.__annotate__&
  s     	 	5	(	rY   c                   V P                   pV\        P                  8X  d   V P                  P                  # V\        P
                  8X  d   V P                  P                  # V\        P                  8X  d   V P                  P                  # V\        P                  8X  dT   \        V P                  P                  P                  \        \        V P                  P                  R7      ,           4      # R# )z$Convert a CellValueArchive to a key.)secondsN)r  r4   r  r  r   r  r  BOOLEAN_TYPEboolean_value	DATE_TYPEr    
date_valuerV   date_time_formatr/   r   )r  r  s   & rW   cell_value_to_key:_NumbersModel.group_uuid_values.<locals>.cell_value_to_key&
  s     )88O-";";;!..444-";";;!..444-"<"<<!//555-"9"99*))00AAIj.C.C.I.IJJ  rY   GroupNodeArchive)r  rL   r   	group_uidgroup_cell_value)rn   r  _ids   &  rW   group_uuid_values_NumbersModel.group_uuid_values$
  so    	, ~~&89	
 : S)3346GS!227  :	
 	
 
s   AA.c                    V ^8  d   QhRRRR/# )rQ   r   rs   rT   z"tuple[dict[int, int], dict] | NonerU   )rV   s   "rW   rX   r   @
  s     S
 S
3 S
;] S
rY   c                	`  aaa V P                   V,          P                  P                  pV'       g!   R V P                  V&   R V P                  V&   R # V P                   V,          P
                  ^ ,          P                  pV P                   V,          pVP                  '       g!   R V P                  V&   R V P                  V&   R # V P                   V P                  V4      ,          pV P                   VP                  P                  ,          pV P                   VP                  P                  ,          pV P                  4       o\        VP                  P                  4       UU	u/ uF  w  r\        V	4      VbK  	  p
pp	VP                   Uu. uF  p\        VP                   V,          4      NK!  	  ppR V3R llo/ pS! R VP"                  P$                  V4       ^ p/ p/ p/ p. pV EF!  p	V	S9   d   VP'                  V	4      pRSV	,          R/ R. /W&   Vf   W,          VW,          R,          &   MAVV9  d   RSV,          R/ R. /VV&   VV,          pW,          VR,          W,          R,          &   V'       d!   VR	,          V8w  d   VP)                  4        K(  VP+                  V	4       K  W,          pV'       d?   VVR	,          ,          R,          P+                  V P,                  V,          V,          4       VW&   V^,          pEK$  	  R V3R llo/ V P                  V&   VP/                  4        F"  w  ppS! V4      V P                  V,          V&   K$  	  \        V3R lV 4       4       UU	u/ uF  w  rWV	,          bK  	  up	pV P                  V&   R # u up	pi u upi u up	pi )
Nc               $    V ^8  d   QhRRRRRR/# )rQ   r6  rL   childrenr  group_parentsrS   rU   )rV   s   "rW   rX   >_NumbersModel.calculate_table_categories.<locals>.__annotate__Z
  s'     	Q 	Q 	Q 	QUY 	QrY   c                   < V FK  p\        VP                  4      pWV&   \        VP                  4      ^ 8  g   K8  S! WCP                  V4       KM  	  R# )r   N)rL   r  r   child)r6  r  r  r  
child_uuidparent_relationshipss   &&&  rW   r  F_NumbersModel.calculate_table_categories.<locals>.parent_relationshipsZ
  sB    !(9
,2j)u{{#a'([[-P	 "rY   r   r  rowsc                   V ^8  d   QhRR/# )rQ   r  rS   rU   )rV   s   "rW   rX   r  
  s     	 	D 	rY   c                   < V R ,          '       g
   V R,          # / pV R ,          P                  4        F  w  r#S! V4      W&   K  	  V# )r  r  r\   )r  out	child_key
child_nodenode_to_structures   &   rW   r  C_NumbersModel.calculate_table_categories.<locals>.node_to_structure
  sJ    
##F|#C)-j)9)?)?)A%	!2:!> *BJrY   c              3  8   <"   T F  qS9  g   K  Vx  K  	  R # 5ir[   rU   )r  r  group_uuidss   & rW   r  ;_NumbersModel.calculate_table_categories.<locals>.<genexpr>
  s      '!2+6M!2s   
r_  )r   r  r   r
  r  group_by
is_enabledr@  category_orderuid_mapr  r   row_uid_lookupr  rL   row_uid_for_indexsorted_row_uidsgroup_node_rootr  r   rz  r   r	  r]   )rn   r   category_owner_idcategory_archive_idcategory_archivern  r  row_uid_maprr   r  row_uuid_to_offsetr   r  r  
row_mappernodesroot_childrenstackr6  parent_node
mapped_rowr   r  r  r  r  s   &&                     @@@rW   calculate_table_categories(_NumbersModel.calculate_table_categories?
  sc    LL2AALL 48D''1:>D--h7"ll+<=FFqITT<<(;<***48D''1:>D--h7\\$"4"4X">?
j&?&?&J&JKll>#9#9#D#DE,,.4=>N>]>]>c>c4d
4dysKs"4d 	 
 BMA^A^
A^AK33A67A^ 	 
	Q 	Q T#3#C#C#I#I=Y%'
)+ *,%D{"&**40$k$&7RQST>8=M%+e"45U*).F0CZQSU[]_(`f"'-KBG+K
+EK,>?b	V 3IIKT"/5
%)$V,33D4D4DX4Nz4Z[",
q- &0	 	 13##H-&,,.IC9J49PD''1#6 /
 ' '!2' 7
	 D))7
))(3w

p7
s   (N%N%8N*)r  r  r  r  rb  r  r  r  r  r  r  r  r  r
  r  r	  r  r  r  r  r  r  r   r[   )NNF)   g     l@g     ~@)r  r  )r   r   r   r   r   ro   r  r  r$  r)  r/  r:  r@  rK   rP  rF  rV  rZ  ra  rg  rq  r|  r  rv  r  r  r  r  r  r  r  r  r  r0  rX  r^  rV  rk  rq  rv  r{  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r$  r2  r8  rA  rL  rW  rk  r  r~  r  r  r  r  r  r  rE  r  r  r  r  r  r  r   r  r;  propertyr?  r>  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r  r  rT  rU  rV  rW  rX  rQ  rR  rS  rN  rR  rV  r[  r_  rn  rt  r{  r  r  r  r  r  r  r  r  r   rU   rY   rW   r   r      s   (<-+H*

 W 5
8

9	32, A6 6@#
JL
\8* WJ J A
 
 AF F AH H>C@?CB
C5GC A> >
 A +? A 6"
H W7 7
 A  A# #K& W 6 W > W
 
6+
 W	
 	
`
D W  W   A	0 	0+"+,K(B W	/ 	/A 
&;0z/+0Z+/Z14
+
	6
,_Bu"n&  
 A   DDLD6/$N:M^** ( $ $ !  W- - AX XtD(	/55513F
I
 <6.>896	,(>T^* Wa a7
rKPZ8" A
 
4 WS
 S
rY   r   c                   V ^8  d   QhRR/# )rQ   rT   r   rU   )rV   s   "rW   rX   rX   
  s     K K KrY   c                    \        \        V P                  ^,          4      \        V P                  ^,          4      \        V P                  ^,          4      4      # )z.Convert a TSPArchives.Color into an RGB tuple.)r   r  r0  ri  rj  r  s   &rW   rh  rh  
  s8    uSUUS[!5#5uSUUS[7IJJrY   c                `    V P                  R4      '       d   V P                  # V P                  # )z5Select end range for a IndexSetArchive.IndexSetEntry.r  r  r	  s   &rW   r  r  
  s%    
||K  }}??rY   c                |    \         V ,          pV\        V ,          ! V4      ,          pV\        V ,          ,          pV# )z@Returns the numbered index bullet formatted for different types.)r   r   r   )r  r   r  s   && rW   r  r  
  s6    !+.K$[1%88K?;//KrY   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rQ   r8  r5  ri  r  rW  rs   r-  r   rT   zlist[bytes]rU   )rV   s   "rW   rX   rX   
  s:     0 000 0 	0
 0rY   c                   \        RV4      P                  4       pV'       d   V Uu. uF  qD^,          NK  	  pp. p\        V4       F  pV\        V4      8  d    V# W,          pV^ 8  d   VP	                  R4       K8  V\        V4      ^,
          8X  d   \        V 4      pMMRp\        W^,           R 4       F$  w  rV
^ 8  g   K  WV	,           ^,           ,          p M	  Vf   \        V 4      pVP	                  WV 4       K  	  V# u upi )a  
Extract storage buffers for each cell in a table row.

Args:
----
    storage_buffer:  cell_storage_buffer or cell_storage_buffer for a table row
    offsets: 16-bit cell offsets for a table row
    num_cols: number of columns in a table row
    has_wide_offsets: use 4-byte offsets rather than 1-byte offset

Returns:
-------
     data: list of bytes for each cell in a row, or None if empty

r^  N)r   tolistrE  r   r   r   )r8  ri  rW  r-  r#  r-  rt   r  r  r   r>  s   &&&&       rW   r*  r*  
  s    * C!((*G")*'Qq55'*DX#g,( K% 19KK3w<!#$n%CC!'')"456!'A+.C 6 {.)N-.) , K3 +s   Dc                   V ^8  d   QhRR/# re   rU   )rV   s   "rW   rX   rX   
  s      $ rY   c                J    \        V 4      ^ 8  d   V P                  4       pK"  R# )z[
Remove all entries from a protobuf RepeatedCompositeFieldContainer
in a portable fashion.
N)r   rz  )r  r  s   & rW   r   r   
  s    
 c(Q,GGI rY   c                    V ^8  d   QhRRRR/# )rQ   r  r   rT   rS   rU   )rV   s   "rW   rX   rX   
  s      & T rY   c           
     4   V P                  4        Uu/ uFy  p\        \        W^ ,          P                  4      \        P
                  4      '       g   K?  V^ ,          P                  R\        W^ ,          P                  4      P                  /bK{  	  up# u upi )zNReturn a dict of all fields in an object that are references to other objects.r   )
ListFieldsr   r   r'  r  r  r   )r  r>  s   & rW   r  r  
  su     !!AgcQ499-{/D/DE 	F!		L'#tyy"9"D"DEE!  s   <B>B)
__future__r   loggingrP  r   collectionsr   r   r   hashlibr   	itertoolsr	   mathr
   pathlibr   structr   warningsr   numbers_parser.bulletsr   r   r   numbers_parser.cellr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    numbers_parser.constantsr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   numbers_parser.containersr7   numbers_parser.exceptionsr8   r9   numbers_parser.formular;   numbers_parser.generatedr<   r9  r=   r  r>   r*  r?   r  r@   r  rA   r  rB   r  rC   r  rD   r   rE   r   numbers_parser.generated.fontmaprF   (numbers_parser.generated.TSDArchives_pb2rG   rj  )numbers_parser.generated.TSWPArchives_pb2rH   ru  numbers_parser.iwafilerI   numbers_parser.numbers_cacherJ   rK   numbers_parser.numbers_uuidrL   rM   numbers_parser.xrefsrN   rO   	getLoggerr   loggerr  ra   r|  rc   r   r   rh  r  r  r*  r   r  rU   rY   rW   <module>r-     s%   "  	  # (       
    $     0 2 J 0 A C E C C Q C C C E @ 2 9 @ >			8	$ ++>? S S>R	 Rjy&
I y&
xMK
0frY   