
    khNb                     4   d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	l	m
Z
mZmZ dd
lmZ ddlmZmZ ej$                  dk\  reZ	 	 	 	 	 	 ddZ G d de      Zd Zd Z G d de      Zd Zd Zd Z eg g g       Zd Zd Z d Z!d Z"y)    N   )	documentsresults)lists   )complex_fields)dingbats)
node_types
XmlElementnull_xml_element)Styles)replace_fragmenturi_to_zip_entry_name)   c                 ^    |t         j                  }t        | |||||      }t        |      S )N)	numberingcontent_typesrelationshipsstyles	docx_filefiles)r   EMPTY_create_reader_BodyReader)r   r   r   r   r   r   read_alls          Q/var/www/teggl/fontify/venv/lib/python3.12/site-packages/mammoth/docx/body_xml.pyreaderr      s;     ~##H x      c                       e Zd Zd Zd Zy)r   c                     || _         y N)	_read_all)selfr   s     r   __init__z_BodyReader.__init__+   s	    !r   c                 x    | j                  |      }t        j                  |j                  |j                        S r"   )r#   r   Resultelementsmessages)r$   r(   results      r   r   z_BodyReader.read_all.   s)    )~~foov??r   N)__name__
__module____qualname__r%   r    r   r   r   r   *   s    "@r   r   c                 *    !"#$%&'()*+,-./0123456789 g -g +g .t        g d      d }&(,468fd}'fd&3fd4d 3d 8d 6#$%(.fd	}'fd
%+fd,+-0fd}	-1fd04fd1-fd}
)fd'd ) fd#d $d }d }d }d }(*7fd}'fd7(fd}(9fd}d 9d *(fd55fd}(fd }d! }d" }!fd#} fd$!"fd% fd&"fd'fd(fd)"fd*}d+ }d, }5fd-}35fd.}i d/|d0|d1|d2|	d3|
d4|d5|d6|d7|d8|d9|d:|d;5d<5d=5d>5d?5i d@5dA5dB5dC5dD5dE|dF|dG|dH|dI|dJ|dK|dL |dM      dN |dO      dP|dQ|dR|//fdS22fdT((S )UN)zoffice-word:wrapzv:shadowzv:shapetypezw:annotationRefzw:bookmarkEndzw:sectPrz
w:proofErrzw:lastRenderedPageBreakzw:commentRangeStartzw:commentRangeEndw:delzw:footnoteRefzw:endnoteRefw:pPrw:rPrw:tblPrz	w:tblGridw:trPrw:tcPrc                 P    t        t        j                  t        |                   S r"   )_successr   Text_inner_textelements    r   textz_create_reader.<locals>.textR   s    	{7';<==r   c                 |  	
 | j                  d      }|j                  d      j                  j                  d      |j                  d      j                  j                  d      |j                  d      j                  j                  d      }t        |      rt	        |      dz  nd  |j                  d             |j                  d	            	 |j                  d
             |j                  d             |j                  d             |j                  d            
 |j                  d      j                  j                  d            fd}t        j                   |       | j                        j                  |      	
f
d      S )Nr2   zw:vertAlignw:valzw:rFontszw:asciizw:szr   zw:bzw:izw:uzw:strikezw:capszw:smallCapszw:highlightc                 J            }|| S t        j                  dd| i|gS )Nchildrenr.   r   	hyperlink)r@   hyperlink_kwargscurrent_hyperlink_kwargss     r   add_complex_field_hyperlinkz@_create_reader.<locals>.run.<locals>.add_complex_field_hyperlinkk   s4    79'!++RXRAQRSSr   c                 T   
 t        j                  || d   | d   
	      S )Nr   r   )r@   style_id
style_nameis_bold	is_italicis_underlineis_strikethroughis_all_capsis_small_capsvertical_alignmentfont	font_size	highlight)r   run)styler@   rP   rQ   rR   rM   rI   rJ   rN   rL   rK   rO   s     r   <lambda>z-_create_reader.<locals>.run.<locals>.<lambda>u   s?    IMM!q 8#)!1'+#5##% r   )
find_child_or_null
attributesget_is_intint
find_child_ReadResultmap_resultsr@   map)r;   
propertiesfont_size_stringrE   rP   rQ   rR   rM   rI   rJ   rN   rL   rK   rO   _read_run_style_read_xml_elementsrD   read_boolean_elementread_highlight_valueread_underline_elements       @@@@@@@@@@r   rS   z_create_reader.<locals>.runU   s   //8
'.ZG 	 ,,Z8CCGG	R%88@KKOOPWX#$,-1II&z'<'<U'CD()>)>u)EF	-j.C.CE.JK/
0E0Ej0QR*:+@+@+JK,Z-B-B=-QR()F)F})U)`)`)d)del)mn		T &&J'w//0445PQ  	r   c                 .     | ddj                         S )Nzw:rStyleRun)find_character_style_by_idr_   _read_styler   s    r   ra   z'_create_reader.<locals>._read_run_style   s    :z5&:[:[\\r   c                 L    | y | j                   j                  d            S )NFr>   rW   rX   )r;   read_boolean_attribute_values    r   rc   z,_create_reader.<locals>.read_boolean_element   s'    ?/0B0B0F0Fw0OPPr   c                 
    | dvS )N)false0r.   values    r   rm   z4_create_reader.<locals>.read_boolean_attribute_value   s    N**r   c                 D    | xr | j                   j                  d      dvS )Nr>   )Nro   rp   nonerl   r:   s    r   re   z._create_reader.<locals>.read_underline_element   s$    ^7--11':B^^^r   c                     | r| dk(  ry | S )Nrt   r.   rq   s    r   rd   z,_create_reader.<locals>.read_highlight_value   s    Lr   c                    | j                  d      j                  d      j                  d      }|(| j                  D ]  }j                  |        t        S j                  d      j
                  j                  d       j                  d            | j                  }r
|z   }d d = t        j                   	       
|      fd      j                         S )Nr1   r2   r0   zw:jcr>   zw:indc                 z    t        j                  || d   | d    | d   j                  d                  S )Nr   r   zw:numPr)paragraph_style_idr;   )r@   rG   rH   r   	alignmentindent)r   	paragraphrV   )rT   r@   _read_numbering_propertiesry   rz   r_   s     r   rU   z3_create_reader.<locals>.paragraph.<locals>.<lambda>   sH    	(;(;%"1X$Qx8+08 * = =i H (!
) r   )
rV   r[   r@   append_empty_resultrW   rX   r\   r]   append_extra)r;   
is_deletedchildchildren_xmlry   rz   r_   r|   _read_paragraph_indent_read_paragraph_stylerb   deleted_paragraph_contentss       @@@r   r{   z!_create_reader.<locals>.paragraph   s    //8
227;FFwO
! )) 9*11%89   #55f=HHLLWUI+J,I,I',RSF"++L)9LH.q1**%j1"<0
  <>"r   c                 .     | ddj                         S )Nzw:pStyle	Paragraph)find_paragraph_style_by_idri   s    r   r   z-_create_reader.<locals>._read_paragraph_style   s    :z;@a@abbr   c                  v    t              D ]*  } t        | t        j                        s| j                  c S  y r"   )reversed
isinstancer	   	Hyperlinkkwargs)complex_fieldcomplex_field_stacks    r   rD   z0_create_reader.<locals>.current_hyperlink_kwargs   s9    %&9: 	,M-)A)AB$+++	, r   c                    | j                   j                  d      }|dk(  r0j                  t        j                  |              d d = t        S |dk(  r{j                         }t        |t        j                        r |      }t        |t        j                        r)t        t        j                  |j                              S t        S |dk(  r)j                         } |      }j                  |       t        S )Nzw:fldCharTypebeginfld_charendcheckedseparate)rW   rX   r}   r	   r   popr   BeginCheckboxr7   r   checkboxr   r~   )r;   fld_char_typer   complex_field_separater   current_instr_textparse_current_instr_texts       r   read_fld_charz%_create_reader.<locals>.read_fld_char   s    **..?G#&&~';';W'MN"1%  e#/335M-)=)=> 8 G-)@)@A	 2 2=;P;P QRR  j(%8%<%<%>"45KLM&&}5r   c                     dj                        }t        | t        j                        r| j                  }nt
        } ||      S )N r   )joinr   r	   r   r   r   )r   
instr_textr   r   parse_instr_texts      r   r   z0_create_reader.<locals>.parse_current_instr_text   s?    WW/0
m^%9%9:$--H'H
X>>r   c                    t        j                  d|       }|.t        j                  t	        |j                  d                  S t        j                  d|       }|.t        j                  t	        |j                  d                  S t        j                  d|       }|i|j                  d      j                  d      }|j                  d	      }| |j                  d
            }n |      }t        j                  |      S y )Nz\s*HYPERLINK "(.*)"r   hrefz\s*HYPERLINK\s+\\l\s+"(.*)"anchorz\s*FORMCHECKBOX\s*zw:ffDataz
w:checkBoxz	w:checkedz	w:defaultr   )	rematchr	   rB   dictgrouprV   r[   r   )	r   r   external_link_resultinternal_link_resultcheckbox_resultcheckbox_elementchecked_elementr   rc   s	           r   r   z(_create_reader.<locals>.parse_instr_text   s    !xx(>
K+!++D6J6P6PQR6S,TUU!xx(F
S+!++D8L8R8RST8U,VWW((#8*E&'##J/##L1  /99+FO&./?/J/J;/WX.?!**7;;r   c                 D    j                  t        |              t        S r"   )r}   r9   r~   )r;   r   s    r   read_instr_textz'_create_reader.<locals>.read_instr_text   s    !!+g"67r   c                     g }| j                  |      j                  j                  d      }|d }n1 ||      }|d }|j                   ||             n|j                  }t        ||gg |      S )Nr>   )rV   rW   rX   r}   namer\   )	r_   style_tag_name
style_typefind_style_by_idr)   rG   rH   rT   _undefined_style_warnings	           r   rj   z#_create_reader.<locals>._read_style  sz    /ZG 	 J$X.E}!
 8X NO"ZZ
Hj12x@@r   c                 L    t        j                  dj                  | |            S )NzD{0} style with ID {1} was referenced but not defined in the document)r   warningformat)r   rG   s     r   r   z0_create_reader.<locals>._undefined_style_warning  s.    ellmw  zB   C  D  	Dr   c                    |j                  d      j                  j                  d      }|j                  d      j                  j                  d      }||j                  ||      S | j	                  |       }||S y )Nzw:numIdr>   zw:ilvl)rV   rW   rX   
find_level find_level_by_paragraph_style_id)rx   r;   num_idlevel_indexlevelr   s        r   r|   z2_create_reader.<locals>._read_numbering_properties  s    ++I6AAEEgN00:EEII'R+"9''<<)>>?QRE r   c                    | j                   }t        j                  |j                  d      xs |j                  d      |j                  d      xs |j                  d      |j                  d      |j                  d            S )Nzw:startzw:leftzw:endzw:rightzw:firstLinez	w:hanging)startr   
first_linehanging)rW   r   paragraph_indentrX   )r;   rW   s     r   r   z._create_reader.<locals>._read_paragraph_indent$  sl    ''
))..+Gz~~h/Gw'D:>>)+D!~~m4NN;/	
 	
r   c                 <    t        t        j                               S r"   )r7   r   tabr:   s    r   r   z_create_reader.<locals>.tab-  s    	((r   c                 P    t        t        j                  t        d                  S )Ni   )r7   r   r<   unichrr:   s    r   no_break_hyphenz'_create_reader.<locals>.no_break_hyphen1  s    	vf~677r   c                 >    t        t        j                  d            S )N   ­)r7   r   r<   r:   s    r   soft_hyphenz#_create_reader.<locals>.soft_hyphen5  s    	y122r   c                    | j                   j                  d      }| j                   j                  d      }t        j                  |t        |d      f      }|:t	        j
                  d|      r$t        j                  |t        |dd  d      f      }|0t        j                  dj                  ||            }t        |      S t        t        j                  t        |                  S )Nzw:fontzw:char   z^F0..r   zOA w:sym element with an unsupported character was ignored: char {0} in font {1})rW   rX   r
   rZ   r   r   r   r   r   _empty_result_with_messager7   r   r<   r   )r;   rP   charunicode_code_pointr   s        r   symbolz_create_reader.<locals>.symbol8  s    !!%%h/!!%%h/%\\4T2*?@%"((7D*A!)tSab25F.G!H%oo&w&~&~' G .g66INN62D+EFGGr   c                     | j                  d      }t        j                   |       | j                        j	                        d       S )Nr3   c                 >    t        j                  || d   | d         S )Nr   r   )r@   rG   rH   )r   table)rT   r@   s     r   rU   z/_create_reader.<locals>.table.<locals>.<lambda>S  s     IOO!q 8% r   )rV   r\   r]   r@   flat_map)r;   r_   rb   calculate_row_spansread_table_styles     r   r   z_create_reader.<locals>.tableL  sL    //	:
&&Z(w//0-.

 
	
r   c                 .     | ddj                         S )Nz
w:tblStyleTable)find_table_style_by_idri   s    r   r   z(_create_reader.<locals>.read_table_style[  s    :|Wf>[>[\\r   c                     | j                  d      }t        |j                  d             | j                        j	                  fd      S )Nr4   zw:tblHeaderc                 2    t        j                  |       S )Nr@   	is_header)r   	table_rowr   s    r   rU   z3_create_reader.<locals>.table_row.<locals>.<lambda>c  s    )"5"5!## r   )rV   boolr[   r@   r^   )r;   r_   r   rb   s     @r   r   z!_create_reader.<locals>.table_row_  sJ    //9
..}=>	!'"2"23S  	r   c                     | j                  d      j                  d      j                  j                  d      }|dnt        |       | j                        j                  fd      S )Nr5   z
w:gridSpanr>   r   c                 T    t        t        j                  |                    S )N)r@   colspan_vmerge)
_add_attrsr   
table_cell)r@   r   r_   read_vmerges    r   rU   z4_create_reader.<locals>.table_cell.<locals>.<lambda>u  s*    *$$%# $J/# r   )rV   rW   rX   rZ   r@   r^   )r;   gridspanr   r_   rb   r   s     @@r   r   z"_create_reader.<locals>.table_celli  sk    //9
-ZG 	 G(mG!'"2"23S  	r   c                 t    | j                  d      }|y|j                  j                  d      }|dk(  xs | S )Nzw:vMergeFr>   continue)r[   rW   rX   )r_   vmerge_elementvals      r   r   z#_create_reader.<locals>.read_vmerge}  sC    #..z:! ++//8C*$/C/r   c                 (   t        d | D              }|r t        | t        j                  d      g      S t        d | D              }|r t        | t        j                  d      g      S i }| D ]Y  }d}|j                  D ]F  }|j
                  r||v r||   xj                  dz  c_        n|||<   d|_        ||j                  z  }H [ | D ];  }t        j                  d |j                        |_        |j                  D ]  }|` = t        |       S )	Nc              3   R   K   | ]  }t        |t        j                          ! y wr"   )r   r   TableRow).0rows     r   	<genexpr>z>_create_reader.<locals>.calculate_row_spans.<locals>.<genexpr>  s(      "
 3	 2 233"
s   %'zBunexpected non-row element in table, cell merging may be incorrectc              3   t   K   | ]0  }|j                   D ]  }t        |t        j                          ! 2 y wr"   )r@   r   r   	TableCell)r   r   cells      r   r   z>_create_reader.<locals>.calculate_row_spans.<locals>.<genexpr>  sA      #
#
  4!4!455#
5#
s   68zGunexpected non-cell element in table row, cell merging may be incorrectr   r   Fc                     | j                    S r"   r   )r   s    r   rU   z=_create_reader.<locals>.calculate_row_spans.<locals>.<lambda>  s    5E r   )any_elements_result_with_messagesr   r   r@   r   rowspanr   r   filterr7   )rowsunexpected_non_rowsunexpected_non_cellscolumnsr   
cell_indexr   s          r   r   z+_create_reader.<locals>.calculate_row_spans  s?   ! "
"
 
 1$T: 9    # #
#
  

  1$Y: 9    	+CJ +<<J'$9J'//14/*.GJ'#(DLdll*
+	+  	!C <<(Es||TCL !L!	!
 ~r   c                 (     | j                         S r"   )r@   )r;   rb   s    r   read_child_elementsz+_create_reader.<locals>.read_child_elements  s    !'"2"233r   c                 0     |       j                         S r"   )to_extrar;   r  s    r   pictz_create_reader.<locals>.pict  s    "7+4466r   c                 P   | j                   j                  d      }| j                   j                  d      }| j                   j                  d      xs d  | j                        fd}|(j                  |      }|t	        ||      } ||      S |	 ||      S S )Nr:idzw:anchorz
w:tgtFramec                  0     j                   fd      S )Nc                 4    t        j                  d| dS )N)r@   target_framer.   rA   )r@   r   r  s    r   rU   zC_create_reader.<locals>.hyperlink.<locals>.create.<locals>.<lambda>  s'    	8K8K 9!)9 9 r   )r^   )r   children_resultr  s   `r   createz1_create_reader.<locals>.hyperlink.<locals>.create  s    "&& (  r   r   r   )rW   rX   r@   find_target_by_relationship_idr   )	r;   relationship_idr   r  r   r  r  rb   r   s	        @@r   rB   z!_create_reader.<locals>.hyperlink  s    !,,008##''
3))--l;Ct,W-=-=>	 & ??PD!'f5t$$((""r   c                     | j                   j                  d      }|dk(  rt        S t        t	        j
                  |            S )Nzw:name_GoBack)rW   rX   r~   r7   r   bookmark)r;   r   s     r   bookmark_startz&_create_reader.<locals>.bookmark_start  s<    !!%%h/9  I..t455r   c                 N   | j                   j                  d      }|r|dk(  rt        t        j                        S |dk(  rt        t        j
                        S |dk(  rt        t        j                        S t        j                  dj                  |            }t        |      S )Nzw:typetextWrappingpagecolumnzUnsupported break type: {0})rW   rX   r7   r   
line_break
page_breakcolumn_breakr   r   r   r   )r;   
break_typer   s      r   break_z_create_reader.<locals>.break_  s    ''++H5
Z>9I00116!I00118#I2233oo&C&J&J:&VWG-g66r   c                 l   | j                  d      j                  }|j                  dd      j                         r|j                  d      }n|j                  d      }| j	                  d      j	                  d      j	                  d      j	                  d      j	                  d	      } ||      S )
Nzwp:docPrdescrr   titlez	a:graphicza:graphicDatazpic:piczpic:blipFillza:blip)rV   rW   rX   stripfind_children)r;   r_   alt_textblips_read_blipss       r   inlinez_create_reader.<locals>.inline  s    //
;FF
>>'2&,,.!~~g.H!~~g.H%%k2]?+]9%]>*]8$	 	
 5(++r   c                 `    t         j                  t        j                  fd|             S )Nc                      |       S r"   r.   )blip
_read_blipr(  s    r   rU   z5_create_reader.<locals>._read_blips.<locals>.<lambda>  s    D(9S r   )r\   concatr   r^   )r)  r(  r/  s    `r   r*  z#_create_reader.<locals>._read_blips  s!    !!%)),SUZ"[\\r   c                 j     |       }| t        j                  d      }t        |      S  ||      S )Nz,Could not find image file for a:blip element)r   r   r   )r;   r(  
blip_imager   _find_blip_image_read_images       r   r/  z"_create_reader.<locals>._read_blip  s:    %g.
oo&TUG-g66z844r   c                     | \  }}j                  |      }t        j                  |||      }|dv rg }n%t        j                  dj                  |            g}t        ||      S )N)r(  content_typeopen)z	image/pngz	image/gifz
image/jpegzimage/svg+xmlz
image/tiffz8Image of type {0} is unlikely to display in web browsers)find_content_typer   imager   r   r   _element_result_with_messages)
image_filer(  
image_path
open_imager6  r9  r)   r   s          r   r4  z#_create_reader.<locals>._read_image  si    !+
J$66zBS]^bbH(b(i(ijv(wxyH,UH==r   c                     | j                   j                  d      }| j                   j                  d      }| |      S | |      S y )Nzr:embedzr:linkrl   )r;   embed_relationship_idlink_relationship_id_find_embedded_image_find_linked_images      r   r3  z(_create_reader.<locals>._find_blip_image	  sX     ' 2 2 6 6y A&1155h? ,'(=>>!-%&:;;r   c                 T    j                  |       }t        d|      fd}|fS )Nwordc                  l    j                        } t        | d      r| S t        j                  |       S )N__exit__)r7  hasattr
contextlibclosing)r;  r   r<  s    r   r=  z@_create_reader.<locals>._find_embedded_image.<locals>.open_image  s2    "
3Jz:.!!!))*55r   )r  r   )r  targetr=  r<  r   r   s      @r   rA  z,_create_reader.<locals>._find_embedded_image  s1    ==oN*66:
	6 :%%r   c                 <    j                  |       fd}|fS )Nc                  &     j                        S r"   )r7  )r   r<  s   r   r=  z>_create_reader.<locals>._find_linked_image.<locals>.open_image$  s    ::j))r   )r  )r  r=  r<  r   r   s     @r   rB  z*_create_reader.<locals>._find_linked_image!  s%    "AA/R
	* :%%r   c                     | j                   j                  d      }| t        j                  d      }t	        |      S | j                   j                  d      }  |      |      S )Nr  z;A v:imagedata element without a relationship ID was ignoredzo:title)rW   rX   r   r   r   )r;   r  r   r%  rA  r4  s       r   read_imagedataz&_create_reader.<locals>.read_imagedata)  sb    !,,008"oo&cdG-g66&&**95E3ODeLLr   c                       fd}|S )Nc                 \    t        t        j                  | j                  d               S Nzw:id)r7   r   note_referencerW   )r;   	note_types    r   rR  zE_create_reader.<locals>.note_reference_reader.<locals>.note_reference3  s'    I44Y@R@RSY@Z[\\r   r.   )rS  rR  s   ` r   note_reference_readerz-_create_reader.<locals>.note_reference_reader2  s    	] r   c                 X    t        t        j                  | j                  d               S rQ  )r7   r   comment_referencerW   r:   s    r   read_comment_referencez._create_reader.<locals>.read_comment_reference8  s#    	33G4F4Fv4NOPPr   c                 2     | j                  d            S )Nzmc:Fallback)rV   r  s    r   alternate_contentz)_create_reader.<locals>.alternate_content;  s    "7#=#=m#LMMr   c                 $   | j                  d      j                  d      }|W|j                  d      }|d uxr!  |j                  j                  d            }t	        t        j                  |            S  | j                  d            S )Nzw:sdtPrzwordml:checkboxzwordml:checkedz
wordml:valr   zw:sdtContent)rV   r[   rW   rX   r7   r   r   )r;   r   r   
is_checkedrm   r  s       r   read_sdtz _create_reader.<locals>.read_sdt>  s    --i8CCDUV&112BCOt+ [,_-G-G-K-KL-YZ  I..zBCC&w'A'A.'QRRr   zw:tzw:rzw:pz	w:fldCharzw:instrTextzw:tabzw:noBreakHyphenzw:softHyphenzw:symzw:tblzw:trzw:tczw:inszw:objectz
w:smartTagz	w:drawingzv:groupzv:rectzv:roundrectzv:shapez	v:textboxzw:txbxContentzw:pictzw:hyperlinkzw:bookmarkStartzw:brz	wp:inlinez	wp:anchorzv:imagedatazw:footnoteReferencefootnotezw:endnoteReferenceendnotezw:commentReferencezmc:AlternateContentzw:sdtc                     j                  | j                        }|M| j                  vr9t        j                  dj	                  | j                              }t        |      S t        S  ||       S )Nz(An unrecognised element was ignored: {0})rX   r   r   r   r   r   r~   )r;   handlerr   _ignored_elementshandlerss      r   readz_create_reader.<locals>.readp  sd    ,,w||,?||#44!//*T*[*[\c\h\h*ij1'::$$7##r   c                 p    t        d |       }t        j                  t        j                  |            S )Nc                 "    t        | t              S r"   )r   r   nodes    r   rU   z<_create_reader.<locals>._read_xml_elements.<locals>.<lambda>}  s    z$
'C r   )r  r\   r0  r   r^   )nodesr(   rc  s     r   rb   z*_create_reader.<locals>._read_xml_elements|  s,    CUK!!%))D(";<<r   )set):r   r   r   r   r   r   r<   rS   r{   r   r   r   r   r   r   r   r   r   r  rB   r  r"  r+  rN  rT  rW  rY  r\  r3  rA  rB  ra  r/  r*  r4  r|   r   r   ra   rj   rb   r   r   r   rD   r   r   rb  r   r   rc  rm   rc   r  rd   r   re   r   s:   ``````                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@r   r   r   3   s   
 "$  ,>. .`]Q+_ "  "Dc*?2A$D
)83H(
](0$N47#267,]5
>&&MQNS#t#s# 	y# 	]	#
 	# 	# 	?# 	# 	# 	# 		# 	
# 	$# 	'# 	)#  	(!#" 	&##$ 	%%#& 	*'#( 	&)#* 	(+#, 	,-#. 	$/#0 	y1#2 	>3#4 	5#6 	V7#8 	V9#: 	~;#< 	4Z@=#> 	3I>?#@ 	4A#B 	0C#D 	E#HJ	$= r   c                     | j                   t        j                  k(  r| j                  S dj	                  d | j
                  D              S )Nr   c              3   2   K   | ]  }t        |        y wr"   )r9   )r   r   s     r   r   z_inner_text.<locals>.<genexpr>  s     Ee{5)Es   )	node_typer   r<   rr   r   r@   rf  s    r   r9   r9     s5    ~~(zzwwEt}}EEEr   c                   J    e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
y)	r\   c                     t        t        j                  d |       t        j                  d |       t        j                  d |             S )Nc                     | j                   S r"   r(   r*   s    r   rU   z$_ReadResult.concat.<locals>.<lambda>  
    &// r   c                     | j                   S r"   )extrarq  s    r   rU   z$_ReadResult.concat.<locals>.<lambda>  s
    &,, r   c                     | j                   S r"   )r)   rq  s    r   rU   z$_ReadResult.concat.<locals>.<lambda>  rr  r   )r\   r   r   r   s    r   r0  z_ReadResult.concat  s>    NN97CNN6@NN97CE 	Er   c                     t         || j                  |j                        g| j                  |j                  z   | j                  |j                  z         S r"   )r\   r(   rt  r)   )firstsecondfuncs      r   r]   z_ReadResult.map_results  sD    %..&//23KK&,,&NNV__,. 	.r   c                 .    || _         || _        || _        y r"   )r(   rt  r)   )r$   r(   rt  r)   s       r   r%   z_ReadResult.__init__  s     
 r   c                      || j                         }t        |t              s|g}t        || j                  | j
                        S r"   )r(   r   listr\   rt  r)   )r$   ry  r(   s      r   r^   z_ReadResult.map  s?    &(D) zHJJMM 	r   c                      || j                         }t        |j                   | j                  |j                  z   | j                  |j                  z         S r"   )r(   r\   rt  r)   )r$   ry  r*   s      r   r   z_ReadResult.flat_map  sD    dmm$OOJJ%MMFOO+- 	-r   c                 l    t        g t        | j                  | j                        | j                        S r"   )r\   _concatrt  r(   r)   r$   s    r   r
  z_ReadResult.to_extra  s$    2wtzz4==A4==QQr   c                 l    t        t        | j                  | j                        g | j                        S r"   )r\   r  r(   rt  r)   r  s    r   r   z_ReadResult.append_extra  s$    74==$**=r4==QQr   N)r+   r,   r-   staticmethodr0  r]   r%   r^   r   r
  r   r.   r   r   r\   r\     sE    E E . .!
-RRr   r\   c                 B    t        | t              s| g} t        | g g       S r"   )r   r|  r\   rp  s    r   r7   r7     s"    h%:xR((r   c                     t        | g|      S r"   )r   )r;   r)   s     r   r:  r:    s    )7)X>>r   c                     t        | g |      S r"   r\   )r(   r)   s     r   r   r     s    xX..r   c                     t        g g | g      S r"   r  )messages    r   r   r     s    r2y))r   c                  H    g }| D ]  }|D ]  }|j                  |         |S r"   )r}   )valuesr*   rr   r;   s       r   r  r    s8    F # 	#GMM'"	## Mr   c                 P    |j                         D ]  \  }}t        | ||        | S r"   )itemssetattr)objr   keyrr   s       r   r   r     s.    lln !
US% ! Jr   c                 @    | y	 t        |        y# t        $ r Y yw xY w)NFT)rZ   
ValueErrorrq   s    r   rY   rY     s/    }E
   s    	)NNNNNN)#rH  r   sysr   r   r   r   r	   r
   	xmlparserr   r   r   
styles_xmlr   urisr   r   version_infochrr   r   objectr   r   r9   r\   r7   r:  r   r~   r   r  r   rY   r.   r   r   <module>r     s     	 
      ? ?  9uF 
!0@& @M	`F*R& *RX)
?/ BB'*	r   