§
    £”jrc  ã                  ó6  — d Z ddlmZ ddlZddlmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZ ddlmZmZmZ dd	lmZ erdd
lmZ ddlmZ d+d„Z G d„ de¦  «        Z e
d¦  «        Z G d„ de ¦  «        Z! G d„ d¦  «        Z" G d„ de"¦  «        Z# G d„ de"¦  «        Z$ G d„ d¦  «        Z% G d„ de%¦  «        Z& G d„ de%¦  «        Z' G d „ d!e%¦  «        Z( G d"„ d#e%¦  «        Z) G d$„ d%e%¦  «        Z* G d&„ d'e%¦  «        Z+ G d(„ d)ej        e!¬*¦  «        Z,dS ),z?Enabling declarative definition of lxml custom element classes.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚCallableÚSequenceÚTypeÚTypeVar)Úetree)ÚElementBaseÚ_Element)ÚInvalidXmlError)ÚNamespacePrefixedTagÚnsmapÚqn)Úlazyproperty)ÚBaseXmlEnum)ÚBaseSimpleTypeÚelementr   c                óN   — t          j        | dd¬¦  «        }t          |¦  «        S )z[Serialize `element` to human-readable XML suitable for tests.

    No XML declaration.
    ÚunicodeT)ÚencodingÚpretty_print)r
   ÚtostringÚ	XmlString)r   Úxmls     úa/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/docx/oxml/xmlchemy.pyÚserialize_for_readingr      s&   € õ
 Œ.˜¨9À4Ð
HÑ
HÔ
H€CÝ�S‰>Œ>Ðó    c                  ój   — e Zd ZdZ ej        d¦  «        Zdd„Zdd„Zdd„Z	dd„Z
edd„¦   «         ZdS )r   z]Provides string comparison override suitable for serialized XML that is useful
    for tests.z)( *</?[\w:]+)(.*?)(/?>)([^<]*</[\w:]+>)?$ÚotherÚobjectÚreturnÚboolc                ó&  — t          |t          ¦  «        sdS |                      ¦   «         }|                     ¦   «         }t          |¦  «        t          |¦  «        k    rdS t	          ||¦  «        D ]\  }}|                      ||¦  «        s dS ŒdS )NFT)Ú
isinstanceÚstrÚ
splitlinesÚlenÚzipÚ_eq_elm_strs)Úselfr    ÚlinesÚlines_otherÚlineÚ
line_others         r   Ú__eq__zXmlString.__eq__+   sž   € Ý˜%¥Ñ%Ô%ð 	Ø�5Ø—’Ñ!Ô!ˆØ×&Ò&Ñ(Ô(ˆÝˆu‰:Œ:�˜[Ñ)Ô)Ò)Ð)Ø�5Ý # E¨;Ñ 7Ô 7ð 	ð 	ÑˆD�*Ø×$Ò$ T¨:Ñ6Ô6ð Ø�u�uðàˆtr   c                ó.   — |                       |¦  «         S ©N)r0   )r+   r    s     r   Ú__ne__zXmlString.__ne__7   s   € Ø—;’;˜uÑ%Ô%Ð%Ð%r   Úattrsr&   ú	list[str]c                óp   — |                      ¦   «         }|                     ¦   «         }t          |¦  «        S )z‹Return a sequence of attribute strings parsed from `attrs`.

        Each attribute string is stripped of whitespace on both ends.
        )ÚstripÚsplitÚsorted)r+   r4   Úattr_lsts      r   Ú	_attr_seqzXmlString._attr_seq:   s,   € ð
 —’‘”ˆØ—;’;‘=”=ˆÝ�hÑÔÐr   r.   Úline_2c                óò   — |                       |¦  «        \  }}}}|                       |¦  «        \  }}}	}
||k    rdS |                      |¦  «        |                      |¦  «        k    rdS ||	k    rdS ||
k    S )zZReturn True if the element in `line_2` is XML equivalent to the element in
        `line`.F)Ú_parse_liner;   )r+   r.   r<   Úfrontr4   ÚcloseÚtextÚfront_2Úattrs_2Úclose_2Útext_2s              r   r*   zXmlString._eq_elm_strsC   sŽ   € ð %)×$4Ò$4°TÑ$:Ô$:Ñ!ˆˆu�e˜TØ,0×,<Ò,<¸VÑ,DÔ,DÑ)ˆ�˜' 6Ø�GÒÐØ�5Ø�>Š>˜%Ñ Ô  D§N¢N°7Ñ$;Ô$;Ò;Ð;Ø�5Ø�GÒÐØ�5Ø�vŠ~Ðr   útuple[str, str, str, str]c                óŽ   ‡— | j                              |¦  «        Š‰€dS ˆfd„t          dd¦  «        D ¦   «         \  }}}}||||fS )zI(front, attrs, close, text) 4-tuple result of parsing XML element `line`.N)Ú rH   rH   rH   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS © )Úgroup)Ú.0ÚnÚmatchs     €r   ú
<listcomp>z)XmlString._parse_line.<locals>.<listcomp>V   s#   ø€ Ð$IÐ$IÐ$I¸ U§[¢[°¡^¤^Ð$IÐ$IÐ$Ir   é   é   )Ú_xml_elm_line_pattrN   Úrange)Úclsr.   r?   r4   r@   rA   rN   s         @r   r>   zXmlString._parse_lineP   s^   ø€ ð Ô&×,Ò,¨TÑ2Ô2ˆØˆ=Ø!�>Ø$IÐ$IÐ$IÐ$I½UÀ1Àa¹[¼[Ð$IÑ$IÔ$IÑ!ˆˆu�e˜TØ�e˜U DÐ(Ð(r   N)r    r!   r"   r#   )r4   r&   r"   r5   )r.   r&   r<   r&   )r.   r&   r"   rF   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚreÚcompilerR   r0   r3   r;   r*   Úclassmethodr>   rJ   r   r   r   r      s£   € € € € € ðð ð $˜œÐ$PÑQÔQÐð
ð 
ð 
ð 
ð&ð &ð &ð &ð ð  ð  ð  ðð ð ð ð ð)ð )ð )ñ „[ð)ð )ð )r   r   Ú_Tc                  ó   — e Zd ZdZd
d„Zd	S )ÚMetaOxmlElementzMetaclass for BaseOxmlElement.Úclsnamer&   Úbasesútuple[type, ...]Ú	namespaceúdict[str, Any]c                óÞ   — t           t          t          t          t          t
          t          f}|                     ¦   «         D ]+\  }}t          ||¦  «        r| 	                    | |¦  «         Œ,d S r2   )
ÚOneAndOnlyOneÚ	OneOrMoreÚOptionalAttributeÚRequiredAttributeÚ
ZeroOrMoreÚ	ZeroOrOneÚZeroOrOneChoiceÚitemsr%   Úpopulate_class_members)rT   r_   r`   rb   ÚdispatchableÚkeyÚvalues          r   Ú__init__zMetaOxmlElement.__init__`   sp   € åÝÝÝÝÝÝð
ˆð $Ÿ/š/Ñ+Ô+ð 	7ð 	7‰JˆC�Ý˜% Ñ.Ô.ð 7Ø×,Ò,¨S°#Ñ6Ô6Ð6øð	7ð 	7r   N)r_   r&   r`   ra   rb   rc   )rU   rV   rW   rX   rq   rJ   r   r   r^   r^   ]   s.   € € € € € Ø(Ð(ð7ð 7ð 7ð 7ð 7ð 7r   r^   c                  óx   ‡ — e Zd ZdZdˆ fd„Zdd„Zd„ Zed„ ¦   «         Zedd„¦   «         Z	edd„¦   «         Z
ˆ xZS )ÚBaseAttributezZBase class for OptionalAttribute and RequiredAttribute.

    Provides common methods.
    Ú	attr_namer&   Úsimple_typeú(Type[BaseXmlEnum] | Type[BaseSimpleType]c                ór   •— t          t          | ¦  «                             ¦   «          || _        || _        d S r2   )Úsuperrs   rq   Ú
_attr_nameÚ_simple_type)r+   rt   ru   Ú	__class__s      €r   rq   zBaseAttribute.__init__u   s4   ø€ Ý�m˜TÑ"Ô"×+Ò+Ñ-Ô-Ð-Ø#ˆŒØ'ˆÔÐÐr   Úelement_clsr^   Ú	prop_namer"   ÚNonec                óJ   — || _         || _        |                      ¦   «          dS ©z-Add the appropriate methods to `element_cls`.N)Ú_element_clsÚ
_prop_nameÚ_add_attr_property©r+   r|   r}   s      r   rm   z$BaseAttribute.populate_class_membersz   s)   € à'ˆÔØ#ˆŒà×ÒÑ!Ô!Ð!Ð!Ð!r   c                ór   — t          | j        | j        d¦  «        }t          | j        | j        |¦  «         dS )zæAdd a read/write `.{prop_name}` property to the element class.

        The property returns the interpreted value of this attribute on access and
        changes the attribute value to its ST_* counterpart on assignment.
        N)ÚpropertyÚ_getterÚ_setterÚsetattrr�   r‚   ©r+   Ú	property_s     r   rƒ   z BaseAttribute._add_attr_property�   s6   € õ ˜Tœ\¨4¬<¸Ñ>Ô>ˆ	å�Ô! 4¤?°IÑ>Ô>Ð>Ð>Ð>r   c                óJ   — d| j         v rt          | j         ¦  «        S | j         S )Nú:)ry   r   ©r+   s    r   Ú_clark_namezBaseAttribute._clark_name‹   s'   € à�$”/Ð!Ð!Ý�d”oÑ&Ô&Ð&ØŒÐr   ú'Callable[[BaseOxmlElement], Any | None]c                ó   — d S r2   rJ   rŽ   s    r   r‡   zBaseAttribute._getter‘   s   € ØBEÀ#r   ú-Callable[[BaseOxmlElement, Any | None], None]c                ó   — d S r2   rJ   rŽ   s    r   rˆ   zBaseAttribute._setter”   s	   € ð 9<¸r   )rt   r&   ru   rv   ©r|   r^   r}   r&   r"   r~   ©r"   r�   )r"   r’   )rU   rV   rW   rX   rq   rm   rƒ   r†   r�   r‡   rˆ   Ú__classcell__©r{   s   @r   rs   rs   o   s»   ø€ € € € € ðð ð
(ð (ð (ð (ð (ð (ð
"ð "ð "ð "ð?ð ?ð ?ð ðð ñ „Xðð
 ØEÐEÐEñ „XØEàð<ð <ð <ñ „Xð<ð <ð <ð <ð <r   rs   c                  ón   ‡ — e Zd ZdZ	 ddˆ fd	„Zed
„ ¦   «         Zedd„¦   «         Zedd„¦   «         Zˆ xZ	S )rg   a  Defines an optional attribute on a custom element class.

    An optional attribute returns a default value when not present for reading. When
    assigned |None|, the attribute is removed, but still returns the default value when
    one is specified.
    Nrt   r&   ru   rv   Údefaultú0BaseXmlEnum | BaseSimpleType | str | bool | Nonec                óh   •— t          t          | ¦  «                             ||¦  «         || _        d S r2   )rx   rg   rq   Ú_default)r+   rt   ru   r™   r{   s       €r   rq   zOptionalAttribute.__init__¢   s1   ø€ õ 	Õ Ñ&Ô&×/Ò/°	¸;ÑGÔGÐGØˆŒˆˆr   c                ó0   — | j         j        › d| j        › d�S )z;String to use as `__doc__` attribute of attribute property.ú type-converted value of ``z•`` attribute, or |None| (or specified default value) if not present. Assigning the default value causes the attribute to be removed from the element.©rz   rU   ry   rŽ   s    r   Ú
_docstringzOptionalAttribute._docstring«   s0   € ð Ô Ô)ð :ð :Ø”/ð:ð :ð :ð	
r   r"   r�   c                ó,   ‡ — dˆ fd„}‰ j         |_        |S )zJFunction suitable for `__get__()` method on attribute property descriptor.ÚobjÚBaseOxmlElementr"   ú
Any | Nonec                ó~   •— |                       ‰j        ¦  «        }|€‰j        S ‰j                             |¦  «        S r2   )Úgetr�   rœ   rz   Úfrom_xml©r¢   Úattr_str_valuer+   s     €r   Úget_attr_valuez1OptionalAttribute._getter.<locals>.get_attr_value»   s>   ø€ ð !ŸWšW TÔ%5Ñ6Ô6ˆNØÐ%Ø”}Ð$ØÔ$×-Ò-¨nÑ=Ô=Ð=r   ©r¢   r£   r"   r¤   ©r    rX   ©r+   rª   s   ` r   r‡   zOptionalAttribute._getterµ   s3   ø€ ð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð "&¤ˆÔØÐr   ú&Callable[[BaseOxmlElement, Any], None]c                ó   ‡ — dˆ fd„}|S )zJFunction suitable for `__set__()` method on attribute property descriptor.r¢   r£   rp   r¤   c                ó  •— |�|‰j         k    r‰j        | j        v r| j        ‰j        = d S ‰j                             |¦  «        }|€‰j        | j        v r| j        ‰j        = d S |                      ‰j        |¦  «         d S r2   )rœ   r�   Úattribrz   Úto_xmlÚset©r¢   rp   Ú	str_valuer+   s      €r   Úset_attr_valuez1OptionalAttribute._setter.<locals>.set_attr_valueÊ   s‘   ø€ Øˆ} ¨¬Ò 6Ð 6ØÔ# s¤zÐ1Ð1Øœ
 4Ô#3Ð4Ø�ØÔ)×0Ò0°Ñ7Ô7ˆIØÐ ØÔ# s¤zÐ1Ð1Øœ
 4Ô#3Ð4Ø�Ø�GŠG�DÔ$ iÑ0Ô0Ð0Ð0Ð0r   )r¢   r£   rp   r¤   rJ   ©r+   r¶   s   ` r   rˆ   zOptionalAttribute._setterÆ   s)   ø€ ð
	1ð 
	1ð 
	1ð 
	1ð 
	1ð 
	1ð Ðr   r2   )rt   r&   ru   rv   r™   rš   r•   ©r"   r®   )
rU   rV   rW   rX   rq   r†   r    r‡   rˆ   r–   r—   s   @r   rg   rg   š   s®   ø€ € € € € ðð ð EIð	 ð  ð  ð  ð  ð  ð  ð ð
ð 
ñ „Xð
ð ðð ð ñ „Xðð  ðð ð ñ „Xðð ð ð ð r   rg   c                  óX   — e Zd ZdZed„ ¦   «         Zed	d„¦   «         Zed
d„¦   «         ZdS )rh   a¤  Defines a required attribute on a custom element class.

    A required attribute is assumed to be present for reading, so does not have a
    default value; its actual value is always used. If missing on read, an
    |InvalidXmlError| is raised. It also does not remove the attribute if |None| is
    assigned. Assigning |None| raises |TypeError| or |ValueError|, depending on the
    simple type of the attribute.
    c                ó0   — | j         j        ›d| j        ›d�S )zaReturn the string to use as the ``__doc__`` attribute of the property for
        this attribute.rž   z`` attribute.rŸ   rŽ   s    r   r    zRequiredAttribute._docstringã   s&   € ð
 ÔÔ&Ð&Ð&ØŒOˆOˆOð
ð 	
r   r"   ú Callable[[BaseOxmlElement], Any]c                ó,   ‡ — dˆ fd„}‰ j         |_        |S )zDfunction object suitable for "get" side of attr property descriptor.r¢   r£   r"   r¤   c                ó®   •— |                       ‰j        ¦  «        }|€t          d‰j        ›d| j        ›�¦  «        ‚‰j                             |¦  «        S )Nz
required 'z#' attribute not present on element )r¦   r�   r   ry   Útagrz   r§   r¨   s     €r   rª   z1RequiredAttribute._getter.<locals>.get_attr_valueð   s_   ø€ Ø ŸWšW TÔ%5Ñ6Ô6ˆNØÐ%Ý%�oØKOÌ?È?È?Ð\_Ô\cÐ\cÐdñô ð ð Ô$×-Ò-¨nÑ=Ô=Ð=r   r«   r¬   r­   s   ` r   r‡   zRequiredAttribute._getterì   s3   ø€ ð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð "&¤ˆÔØÐr   r®   c                ó   ‡ — dˆ fd„}|S )zIfunction object suitable for "set" side of attribute property descriptor.r¢   r£   rp   r   c                óœ   •— ‰j                              |¦  «        }|€t          d|› d�¦  «        ‚|                      ‰j        |¦  «         d S )Nzcannot assign z to this required attribute)rz   r²   Ú
ValueErrorr³   r�   r´   s      €r   r¶   z1RequiredAttribute._setter.<locals>.set_attr_valueÿ   sV   ø€ ØÔ)×0Ò0°Ñ7Ô7ˆIØÐ Ý Ð!T°%Ð!TÐ!TÐ!TÑUÔUÐUØ�GŠG�DÔ$ iÑ0Ô0Ð0Ð0Ð0r   )r¢   r£   rp   r   rJ   r·   s   ` r   rˆ   zRequiredAttribute._setterû   s)   ø€ ð	1ð 	1ð 	1ð 	1ð 	1ð 	1ð Ðr   N)r"   r»   r¸   )rU   rV   rW   rX   r†   r    r‡   rˆ   rJ   r   r   rh   rh   Ù   sy   € € € € € ðð ð ð
ð 
ñ „Xð
ð ðð ð ñ „Xðð ð	ð 	ð 	ñ „Xð	ð 	ð 	r   rh   c                  ó  ‡ — e Zd ZdZd!d"ˆ fd„Zd#d„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ed„ ¦   «         Zd„ Zd$d„Zed%d„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed „ ¦   «         Zˆ xZS )&Ú_BaseChildElementzœBase class for the child-element classes.

    The child-element sub-classes correspond to varying cardinalities, such as ZeroOrOne
    and ZeroOrMore.
    rJ   Ú
nsptagnamer&   Ú
successorsútuple[str, ...]c                ór   •— t          t          | ¦  «                             ¦   «          || _        || _        d S r2   )rx   rÃ   rq   Ú_nsptagnameÚ_successors)r+   rÄ   rÅ   r{   s      €r   rq   z_BaseChildElement.__init__  s6   ø€ ÝÕ Ñ&Ô&×/Ò/Ñ1Ô1Ð1Ø%ˆÔØ%ˆÔÐÐr   r|   r^   r}   r"   r~   c                ó"   — || _         || _        dS )zFBaseline behavior for adding the appropriate methods to `element_cls`.N)r�   r‚   r„   s      r   rm   z(_BaseChildElement.populate_class_members  s   € à'ˆÔØ#ˆŒˆˆr   c                óh   ‡ — dˆ fd„}d‰ j         z  |_        ‰                      ‰ j        |¦  «         dS )	zGAdd an ``_add_x()`` method to the element class for this child element.r¢   r£   r4   r   c                óÜ   •— t          | ‰j        ¦  «        } |¦   «         }|                     ¦   «         D ]\  }}t          |||¦  «         Œt          | ‰j        ¦  «        } ||¦  «         |S r2   )ÚgetattrÚ_new_method_namerl   r‰   Ú_insert_method_name)r¢   r4   Ú
new_methodÚchildro   rp   Úinsert_methodr+   s          €r   Ú
_add_childz0_BaseChildElement._add_adder.<locals>._add_child  sw   ø€ Ý   dÔ&;Ñ<Ô<ˆJØ�J‘L”LˆEØ#Ÿkšk™mœmð +ð +‘
��UÝ˜˜s EÑ*Ô*Ð*Ð*Ý# C¨Ô)AÑBÔBˆMØˆM˜%Ñ Ô Ð ØˆLr   úSAdd a new ``<%s>`` child element unconditionally, inserted in the correct sequence.N)r¢   r£   r4   r   )rÈ   rX   Ú_add_to_classÚ_add_method_name)r+   rÓ   s   ` r   Ú
_add_adderz_BaseChildElement._add_adder  sZ   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð#Ø%)Ô%5ñ6ð 	Ôð 	×Ò˜4Ô0°*Ñ=Ô=Ð=Ð=Ð=r   c                óh   — | j         }d| j        z  |_        |                      | j        |¦  «         dS )z�Add a ``_new_{prop_name}()`` method to the element class that creates a new,
        empty element of the correct type, having no attributes.zYReturn a "loose", newly created ``<%s>`` element having no attributes, text, or children.N)Ú_creatorrÈ   rX   rÕ   rÎ   )r+   Úcreators     r   Ú_add_creatorz_BaseChildElement._add_creator+  sC   € ð ”-ˆð(Ø*.Ô*:ñ;ð 	Œð 	×Ò˜4Ô0°'Ñ:Ô:Ð:Ð:Ð:r   c                óh   — t          | j        dd¦  «        }t          | j        | j        |¦  «         dS )z]Add a read-only ``{prop_name}`` property to the element class for this child
        element.N)r†   r‡   r‰   r�   r‚   rŠ   s     r   Ú_add_getterz_BaseChildElement._add_getter5  s4   € õ ˜Tœ\¨4°Ñ6Ô6ˆ	å�Ô! 4¤?°IÑ>Ô>Ð>Ð>Ð>r   c                óh   ‡ — dˆ fd„}d‰ j         z  |_        ‰                      ‰ j        |¦  «         dS )zJAdd an ``_insert_x()`` method to the element class for this child element.r¢   r£   rÑ   c                ó.   •—  | j         |g‰j        ¢R Ž  |S r2   )Úinsert_element_beforerÉ   ©r¢   rÑ   r+   s     €r   Ú_insert_childz6_BaseChildElement._add_inserter.<locals>._insert_child?  s&   ø€ Ø%ˆCÔ% eÐ?¨dÔ.>Ð?Ð?Ð?Ð?ØˆLr   zYReturn the passed ``<%s>`` element after inserting it as a child in the correct sequence.N)r¢   r£   rÑ   r£   )rÈ   rX   rÕ   rÏ   )r+   râ   s   ` r   Ú_add_inserterz_BaseChildElement._add_inserter<  sZ   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð
)Ø+/Ô+;ñ<ð 	Ôð 	×Ò˜4Ô3°]ÑCÔCÐCÐCÐCr   c                ór   — d| j         z  }t          | j        dd¦  «        }t          | j        ||¦  «         dS )z‚Add a read-only ``{prop_name}_lst`` property to the element class to retrieve
        a list of child elements matching this type.z%s_lstN)r‚   r†   Ú_list_getterr‰   r�   )r+   r}   r‹   s      r   Ú_add_list_getterz"_BaseChildElement._add_list_getterI  s?   € ð ˜tœÑ.ˆ	Ý˜TÔ.°°dÑ;Ô;ˆ	Ý�Ô! 9¨iÑ8Ô8Ð8Ð8Ð8r   c                ó   — d| j         z  S )Nz_add_%s©r‚   rŽ   s    r   rÖ   z"_BaseChildElement._add_method_nameP  ó   € à˜4œ?Ñ*Ð*r   c                óh   ‡ — dˆ fd„}d‰ j         z  |_        ‰                      ‰ j        |¦  «         dS )z<Add a public ``add_x()`` method to the parent element class.r¢   r£   c                óF   •— t          | ‰j        ¦  «        } |¦   «         }|S r2   )rÍ   rÖ   )r¢   Úprivate_add_methodrÑ   r+   s      €r   Ú	add_childz6_BaseChildElement._add_public_adder.<locals>.add_childW  s)   ø€ Ý!(¨¨dÔ.CÑ!DÔ!DÐØ&Ð&Ñ(Ô(ˆEØˆLr   rÔ   N©r¢   r£   )rÈ   rX   rÕ   Ú_public_add_method_name)r+   rí   s   ` r   Ú_add_public_adderz#_BaseChildElement._add_public_adderT  sZ   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð#Ø%)Ô%5ñ6ð 	Ôð 	×Ò˜4Ô7¸ÑCÔCÐCÐCÐCr   ÚnameÚmethodúCallable[..., Any]c                ó`   — t          | j        |¦  «        rdS t          | j        ||¦  «         dS )zbAdd `method` to the target class as `name`, unless `name` is already defined
        on the class.N)Úhasattrr�   r‰   )r+   rñ   rò   s      r   rÕ   z_BaseChildElement._add_to_classb  s9   € õ �4Ô$ dÑ+Ô+ð 	ØˆFÝ�Ô! 4¨Ñ0Ô0Ð0Ð0Ð0r   ú,Callable[[BaseOxmlElement], BaseOxmlElement]c                ó$   ‡ ‡— ddl mŠ dˆˆ fd„}|S )zHCallable that creates an empty element of the right type, with no attrs.r   )ÚOxmlElementr¢   r£   c                ó$   •—  ‰‰j         ¦  «        S r2   ©rÈ   )r¢   rø   r+   s    €€r   Únew_child_elementz5_BaseChildElement._creator.<locals>.new_child_elementn  s   ø€ Ø�;˜tÔ/Ñ0Ô0Ð0r   rî   )Údocx.oxml.parserrø   )r+   rû   rø   s   ` @r   rÙ   z_BaseChildElement._creatori  sC   øø€ ð 	1Ð0Ð0Ð0Ð0Ð0ð	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð !Ð r   c                ó2   ‡ — dˆ fd„}d‰ j         z  |_        |S )zÑReturn a function object suitable for the "get" side of the property
        descriptor.

        This default getter returns the child element with matching tag name or |None|
        if not present.
        r¢   r£   c                óR   •— |                       t          ‰j        ¦  «        ¦  «        S r2   )Úfindr   rÈ   ©r¢   r+   s    €r   Úget_child_elementz4_BaseChildElement._getter.<locals>.get_child_element|  s    ø€ Ø—8’8�B˜tÔ/Ñ0Ô0Ñ1Ô1Ð1r   z0``<%s>`` child element or |None| if not present.rî   ©rÈ   rX   ©r+   r  s   ` r   r‡   z_BaseChildElement._getters  s>   ø€ ð	2ð 	2ð 	2ð 	2ð 	2ð 	2ð ?ÀÔAQÑQð 	Ô!ð !Ð r   c                ó   — d| j         z  S )Nz
_insert_%srè   rŽ   s    r   rÏ   z%_BaseChildElement._insert_method_name„  ó   € à˜dœoÑ-Ð-r   c                ó2   ‡ — dˆ fd„}d‰ j         z  |_        |S )z[Return a function object suitable for the "get" side of a list property
        descriptor.r¢   r£   c                óR   •— |                       t          ‰j        ¦  «        ¦  «        S r2   )Úfindallr   rÈ   r   s    €r   Úget_child_element_listz>_BaseChildElement._list_getter.<locals>.get_child_element_list�  s    ø€ Ø—;’;�r $Ô"2Ñ3Ô3Ñ4Ô4Ð4r   zPA list containing each of the ``<%s>`` child elements, in the order they appear.rî   r  )r+   r	  s   ` r   rå   z_BaseChildElement._list_getterˆ  sA   ø€ ð
	5ð 	5ð 	5ð 	5ð 	5ð 	5ð Ø"&Ô"2ñ3ð 	Ô&ð &Ð%r   c                ó   — d| j         z  S )a
  add_childElement() is public API for a repeating element, allowing new
        elements to be added to the sequence.

        May be overridden to provide a friendlier API to clients having domain
        appropriate parameter names for required attributes.
        zadd_%srè   rŽ   s    r   rï   z)_BaseChildElement._public_add_method_name–  s   € ð ˜$œ/Ñ)Ð)r   c                ó   — d| j         z  S ©Nz
_remove_%srè   rŽ   s    r   Ú_remove_method_namez%_BaseChildElement._remove_method_name   r  r   c                ó   — d| j         z  S )Nz_new_%srè   rŽ   s    r   rÎ   z"_BaseChildElement._new_method_name¤  ré   r   ©rJ   )rÄ   r&   rÅ   rÆ   r”   )rñ   r&   rò   ró   )r"   rö   )rU   rV   rW   rX   rq   rm   r×   rÛ   rÝ   rã   ræ   r   rÖ   rð   rÕ   r†   rÙ   r‡   rÏ   rå   rï   r  rÎ   r–   r—   s   @r   rÃ   rÃ     s±  ø€ € € € € ðð ð&ð &ð &ð &ð &ð &ð &ð
$ð $ð $ð $ð
>ð >ð >ð$;ð ;ð ;ð?ð ?ð ?ðDð Dð Dð9ð 9ð 9ð ð+ð +ñ „\ð+ðDð Dð Dð1ð 1ð 1ð 1ð ð!ð !ð !ñ „Xð!ð ð!ð !ñ „Xð!ð  ð.ð .ñ „\ð.ð ð&ð &ñ „Xð&ð ð*ð *ñ „\ð*ð ð.ð .ñ „\ð.ð ð+ð +ñ „\ð+ð +ð +ð +ð +r   rÃ   c                  óx   — e Zd ZdZed„ ¦   «         Zdd„Zd„ Zed„ ¦   «         Ze	d„ ¦   «         Z
e	d„ ¦   «         ZdS )ÚChoicezVDefines a child element belonging to a group, only one of which may appear as a child.c                ó   — | j         S r2   rú   rŽ   s    r   rÄ   zChoice.nsptagname¬  s   € àÔÐr   r|   r^   Úgroup_prop_namer&   rÅ   rÆ   r"   r~   c                óø   — || _         || _        || _        |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          dS r€   )r�   Ú_group_prop_namerÉ   rÝ   rÛ   rã   r×   Ú_add_get_or_change_to_method)r+   r|   r  rÅ   s       r   rm   zChoice.populate_class_members°  sz   € ð (ˆÔØ /ˆÔØ%ˆÔà×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐØ�ŠÑÔÐØ×)Ò)Ñ+Ô+Ð+Ð+Ð+r   c                óh   ‡ — dˆ fd„}d‰ j         z  |_        ‰                      ‰ j        |¦  «         dS )zZAdd a ``get_or_change_to_x()`` method to the element class for this child
        element.r¢   r£   c                ó¶   •— t          | ‰j        ¦  «        }|�|S t          | ‰j        ¦  «        } |¦   «          t          | ‰j        ¦  «        } |¦   «         }|S r2   )rÍ   r‚   Ú_remove_group_method_namerÖ   )r¢   rÑ   Úremove_group_methodÚ
add_methodr+   s       €r   Úget_or_change_to_childzCChoice._add_get_or_change_to_method.<locals>.get_or_change_to_childÅ  sc   ø€ Ý˜C ¤Ñ1Ô1ˆEØÐ Ø�Ý")¨#¨tÔ/MÑ"NÔ"NÐØÐÑ!Ô!Ð!Ý   dÔ&;Ñ<Ô<ˆJØ�J‘L”LˆEØˆLr   zFReturn the ``<%s>`` child, replacing any other group element if found.Nrî   )rÈ   rX   rÕ   Ú_get_or_change_to_method_name)r+   r  s   ` r   r  z#Choice._add_get_or_change_to_methodÁ  sZ   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð UØÔñ*ÐÔ&ð 	×Ò˜4Ô=Ð?UÑVÔVÐVÐVÐVr   c                óp   — d| j         v r| j                              d¦  «        dz   nd}| j         |d…         S )zDProperty name computed from tag name, e.g. a:schemeClr -> schemeClr.r�   rP   r   N)rÈ   Úindex)r+   Ústarts     r   r‚   zChoice._prop_nameÔ  sD   € ð 47¸$Ô:JÐ3JÐ3J�Ô ×&Ò& sÑ+Ô+¨aÑ/Ð/ÐPQˆØÔ   Ô'Ð'r   c                ó   — d| j         z  S )Nzget_or_change_to_%srè   rŽ   s    r   r  z$Choice._get_or_change_to_method_nameÚ  s   € à$ t¤Ñ6Ð6r   c                ó   — d| j         z  S r  )r  rŽ   s    r   r  z Choice._remove_group_method_nameÞ  s   € à˜dÔ3Ñ3Ð3r   N)r|   r^   r  r&   rÅ   rÆ   r"   r~   )rU   rV   rW   rX   r†   rÄ   rm   r  r‚   r   r  r  rJ   r   r   r  r  ©  sª   € € € € € Ø`Ð`àð ð  ñ „Xð ð,ð ,ð ,ð ,ð"Wð Wð Wð& ð(ð (ñ „Xð(ð
 ð7ð 7ñ „\ð7ð ð4ð 4ñ „\ð4ð 4ð 4r   r  c                  óF   ‡ — e Zd ZdZdˆ fd„Zdˆ fd
„Zed„ ¦   «         Zˆ xZS )re   z5Defines a required child element for MetaOxmlElement.rÄ   r&   c                óZ   •— t          t          | ¦  «                             |d¦  «         d S )NrJ   )rx   re   rq   )r+   rÄ   r{   s     €r   rq   zOneAndOnlyOne.__init__æ  s)   ø€ Ý�m˜TÑ"Ô"×+Ò+¨J¸Ñ;Ô;Ð;Ð;Ð;r   r|   r^   r}   r"   r~   c                ó‚   •— t          t          | ¦  «                             ||¦  «         |                      ¦   «          dS r€   )rx   re   rm   rÝ   ©r+   r|   r}   r{   s      €r   rm   z$OneAndOnlyOne.populate_class_membersé  s;   ø€ å�m˜TÑ"Ô"×9Ò9¸+ÀyÑQÔQÐQØ×ÒÑÔÐÐÐr   c                ó2   ‡ — dˆ fd„}d‰ j         z  |_        |S )úXReturn a function object suitable for the "get" side of the property
        descriptor.r¢   r£   c                óˆ   •— |                       t          ‰j        ¦  «        ¦  «        }|€t          d‰j        z  ¦  «        ‚|S )Nz+required ``<%s>`` child element not present)rÿ   r   rÈ   r   rá   s     €r   r  z0OneAndOnlyOne._getter.<locals>.get_child_elementó  sH   ø€ Ø—H’H�R Ô 0Ñ1Ô1Ñ2Ô2ˆEØˆ}Ý%ØAÀDÔDTÑTñô ð ð ˆLr   z Required ``<%s>`` child element.rî   r  r  s   ` r   r‡   zOneAndOnlyOne._getterî  s;   ø€ ð
	ð 	ð 	ð 	ð 	ð 	ð %GÈÔIYÑ$YÐÔ!Ø Ð r   )rÄ   r&   r”   )	rU   rV   rW   rX   rq   rm   r†   r‡   r–   r—   s   @r   re   re   ã  s|   ø€ € € € € Ø?Ð?ð<ð <ð <ð <ð <ð <ðð ð ð ð ð ð
 ð!ð !ñ „Xð!ð !ð !ð !ð !r   re   c                  ó$   ‡ — e Zd ZdZd	ˆ fd„Zˆ xZS )
rf   zYDefines a repeating child element for MetaOxmlElement that must appear at least
    once.r|   r^   r}   r&   r"   r~   c                óB  •— t          t          | ¦  «                             ||¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          t          ||¦  «         dS r€   )	rx   rf   rm   ræ   rÛ   rã   r×   rð   Údelattrr&  s      €r   rm   z OneOrMore.populate_class_members  s‘   ø€ å�i˜ÑÔ×5Ò5°kÀ9ÑMÔMÐMØ×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐØ�ŠÑÔÐØ×ÒÑ Ô Ð Ý�˜YÑ'Ô'Ð'Ð'Ð'r   r”   ©rU   rV   rW   rX   rm   r–   r—   s   @r   rf   rf   ÿ  sG   ø€ € € € € ðð ð(ð (ð (ð (ð (ð (ð (ð (ð (ð (r   rf   c                  ó$   ‡ — e Zd ZdZd	ˆ fd„Zˆ xZS )
ri   z@Defines an optional repeating child element for MetaOxmlElement.r|   r^   r}   r&   r"   r~   c                óB  •— t          t          | ¦  «                             ||¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          t          ||¦  «         dS r€   )	rx   ri   rm   ræ   rÛ   rã   r×   rð   r,  r&  s      €r   rm   z!ZeroOrMore.populate_class_members  s‘   ø€ å�j˜$ÑÔ×6Ò6°{ÀIÑNÔNÐNØ×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐØ�ŠÑÔÐØ×ÒÑ Ô Ð Ý�˜YÑ'Ô'Ð'Ð'Ð'r   r”   r-  r—   s   @r   ri   ri     sC   ø€ € € € € ØJÐJð(ð (ð (ð (ð (ð (ð (ð (ð (ð (r   ri   c                  óF   ‡ — e Zd ZdZdˆ fd„Zd	„ Zd
„ Zed„ ¦   «         Zˆ xZ	S )rj   z6Defines an optional child element for MetaOxmlElement.r|   r^   r}   r&   r"   r~   c                óJ  •— t          t          | ¦  «                             ||¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          dS r€   )	rx   rj   rm   rÝ   rÛ   rã   r×   Ú_add_get_or_adderÚ_add_removerr&  s      €r   rm   z ZeroOrOne.populate_class_members  s“   ø€ å�i˜ÑÔ×5Ò5°kÀ9ÑMÔMÐMØ×ÒÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐØ�ŠÑÔÐØ×ÒÑ Ô Ð Ø×ÒÑÔÐÐÐr   c                óh   ‡ — dˆ fd„}d‰ j         z  |_        ‰                      ‰ j        |¦  «         dS )zTAdd a ``get_or_add_x()`` method to the element class for this child
        element.r¢   r£   c                ót   •— t          | ‰j        ¦  «        }|€t          | ‰j        ¦  «        } |¦   «         }|S r2   )rÍ   r‚   rÖ   )r¢   rÑ   r  r+   s      €r   Úget_or_add_childz5ZeroOrOne._add_get_or_adder.<locals>.get_or_add_child-  s;   ø€ Ý˜C ¤Ñ1Ô1ˆEØˆ}Ý$ S¨$Ô*?Ñ@Ô@�
Ø"˜
™œ�ØˆLr   z>Return the ``<%s>`` child element, newly added if not present.Nrî   )rÈ   rX   rÕ   Ú_get_or_add_method_name)r+   r6  s   ` r   r2  zZeroOrOne._add_get_or_adder)  sZ   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð MØÔñ$ÐÔ ð 	×Ò˜4Ô7Ð9IÑJÔJÐJÐJÐJr   c                óh   ‡ — dˆ fd„}d‰ j         z  |_        ‰                      ‰ j        |¦  «         dS )zIAdd a ``_remove_x()`` method to the element class for this child element.r¢   r£   c                ó<   •— |                       ‰j        ¦  «         d S r2   )Ú
remove_allrÈ   r   s    €r   Ú_remove_childz-ZeroOrOne._add_remover.<locals>._remove_child<  s   ø€ Ø�NŠN˜4Ô+Ñ,Ô,Ð,Ð,Ð,r   z#Remove all ``<%s>`` child elements.Nrî   )rÈ   rX   rÕ   r  )r+   r;  s   ` r   r3  zZeroOrOne._add_remover9  sS   ø€ ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð "GÈ$ÔJZÑ ZˆÔØ×Ò˜4Ô3°]ÑCÔCÐCÐCÐCr   c                ó   — d| j         z  S )Nzget_or_add_%srè   rŽ   s    r   r7  z!ZeroOrOne._get_or_add_method_nameB  s   € à ¤Ñ0Ð0r   r”   )
rU   rV   rW   rX   rm   r2  r3  r   r7  r–   r—   s   @r   rj   rj     s‚   ø€ € € € € Ø@Ð@ðð ð ð ð ð ðKð Kð Kð Dð Dð Dð ð1ð 1ñ „\ð1ð 1ð 1ð 1ð 1r   rj   c                  ó|   ‡ — e Zd ZdZddd„Zdˆ fd„Zd„ Zd„ Zed„ ¦   «         Z	e
d„ ¦   «         Ze
d„ ¦   «         Zˆ xZS )rk   zeCorrespondes to an ``EG_*`` element group where at most one of its members may
    appear as a child.rJ   ÚchoicesúSequence[Choice]rÅ   rÆ   c                ó"   — || _         || _        d S r2   )Ú_choicesrÉ   )r+   r>  rÅ   s      r   rq   zZeroOrOneChoice.__init__K  s   € ØˆŒØ%ˆÔÐÐr   r|   r^   r}   r&   r"   r~   c                ó   •— t          t          | ¦  «                             ||¦  «         |                      ¦   «          | j        D ]#}|                     || j        | j        ¦  «         Œ$|                      ¦   «          dS r€   )rx   rk   rm   Ú_add_choice_getterrA  r‚   rÉ   Ú_add_group_remover)r+   r|   r}   Úchoicer{   s       €r   rm   z&ZeroOrOneChoice.populate_class_membersO  s€   ø€ å�o˜tÑ$Ô$×;Ò;¸KÈÑSÔSÐSØ×ÒÑ!Ô!Ð!Ø”mð 	Zð 	ZˆFØ×)Ò)¨+°t´ÈÔHXÑYÔYÐYÐYØ×ÒÑ!Ô!Ð!Ð!Ð!r   c                óh   — t          | j        dd¦  «        }t          | j        | j        |¦  «         dS )z“Add a read-only ``{prop_name}`` property to the element class that returns
        the present member of this group, or |None| if none are present.N)r†   Ú_choice_getterr‰   r�   r‚   rŠ   s     r   rC  z"ZeroOrOneChoice._add_choice_getterW  s5   € õ ˜TÔ0°$¸Ñ=Ô=ˆ	å�Ô! 4¤?°IÑ>Ô>Ð>Ð>Ð>r   c                óX   ‡ — dˆ fd„}d|_         ‰                      ‰ j        |¦  «         dS )zSAdd a ``_remove_eg_x()`` method to the element class for this choice
        group.r¢   r£   c                óF   •— ‰j         D ]}|                      |¦  «         Œd S r2   )Ú_member_nsptagnamesr:  )r¢   Útagnamer+   s     €r   Ú_remove_choice_groupz@ZeroOrOneChoice._add_group_remover.<locals>._remove_choice_groupb  s4   ø€ ØÔ3ð (ð (�Ø—’˜wÑ'Ô'Ð'Ð'ð(ð (r   z9Remove the current choice group child element if present.Nrî   )rX   rÕ   Ú _remove_choice_group_method_name)r+   rL  s   ` r   rD  z"ZeroOrOneChoice._add_group_remover^  sM   ø€ ð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð (cÐÔ$Ø×Ò˜4Ô@ÐBVÑWÔWÐWÐWÐWr   c                ó"   ‡ — dˆ fd„}d|_         |S )r(  r¢   r£   c                ó"   •—  | j         ‰j        Ž S r2   )Úfirst_child_found_inrJ  r   s    €r   Úget_group_member_elementz@ZeroOrOneChoice._choice_getter.<locals>.get_group_member_elementn  s   ø€ Ø+�3Ô+¨TÔ-EÐFÐFr   zbReturn the child element belonging to this element group, or |None| if no member child is present.rî   )rX   )r+   rQ  s   ` r   rG  zZeroOrOneChoice._choice_getteri  s<   ø€ ð
	Gð 	Gð 	Gð 	Gð 	Gð 	Gð4ð 	!Ô(ð (Ð'r   c                ó$   — d„ | j         D ¦   «         S )zjSequence of namespace-prefixed tagnames, one for each of the member elements
        of this choice group.c                ó   — g | ]	}|j         ‘Œ
S rJ   )rÄ   )rL   rE  s     r   rO   z7ZeroOrOneChoice._member_nsptagnames.<locals>.<listcomp>{  s   € Ð>Ð>Ð> f�Ô!Ð>Ð>Ð>r   )rA  rŽ   s    r   rJ  z#ZeroOrOneChoice._member_nsptagnamesw  s   € ð ?Ð>°´Ð>Ñ>Ô>Ð>r   c                ó   — d| j         z  S r  rè   rŽ   s    r   rM  z0ZeroOrOneChoice._remove_choice_group_method_name}  r  r   r  )r>  r?  rÅ   rÆ   r”   )rU   rV   rW   rX   rq   rm   rC  rD  r†   rG  r   rJ  rM  r–   r—   s   @r   rk   rk   G  sÒ   ø€ € € € € ðð ð&ð &ð &ð &ð &ð"ð "ð "ð "ð "ð "ð?ð ?ð ?ð	Xð 	Xð 	Xð ð(ð (ñ „Xð(ð ð?ð ?ñ „\ð?ð
 ð.ð .ñ „\ð.ð .ð .ð .ð .r   rk   c                  ór   ‡ — e Zd ZdZd„ Zdd„Zdd
„Zdd„Zedd„¦   «         Z	dˆ fd„Z
edd„¦   «         Zˆ xZS )r£   zvEffective base class for all custom element classes.

    Adds standardized behavior to all classes in one place.
    c                óJ   — d| j         j        | j        t          | ¦  «        fz  S )Nz<%s '<%s>' at 0x%0x>)r{   rU   Ú_nsptagÚidrŽ   s    r   Ú__repr__zBaseOxmlElement.__repr__‰  s*   € Ø%ØŒNÔ#ØŒLÝˆt‰HŒHð)
ñ 
ð 	
r   Útagnamesr&   r"   ú_Element | Nonec                ó`   — |D ]*}|                       t          |¦  «        ¦  «        }|�|c S Œ+dS )z9First child with tag in `tagnames`, or None if not found.N)rÿ   r   )r+   rZ  rK  rÑ   s       r   rP  z$BaseOxmlElement.first_child_found_in�  sA   € àð 	ð 	ˆGØ—I’I�b ™kœkÑ*Ô*ˆEØÐ Ø���ð !àˆtr   Úelmr   c                ót   —  | j         |Ž }|�|                     |¦  «         n|                      |¦  «         |S r2   )rP  ÚaddpreviousÚappend)r+   r]  rZ  Ú	successors       r   rà   z%BaseOxmlElement.insert_element_before˜  sE   € Ø-�DÔ-¨xÐ8ˆ	ØÐ Ø×!Ò! #Ñ&Ô&Ð&Ð&à�KŠK˜ÑÔÐØˆ
r   r~   c                óˆ   — |D ]>}|                       t          |¦  «        ¦  «        }|D ]}|                      |¦  «         ŒŒ?dS )z>Remove child elements with tagname (e.g. "a:p") in `tagnames`.N)r  r   Úremove)r+   rZ  rK  ÚmatchingrÑ   s        r   r:  zBaseOxmlElement.remove_all   s[   € àð 	#ð 	#ˆGØ—|’|¥B w¡K¤KÑ0Ô0ˆHØ!ð #ð #�Ø—’˜EÑ"Ô"Ð"Ð"ð#ð	#ð 	#r   c                ó    — t          | ¦  «        S )z—XML string for this element, suitable for testing purposes.

        Pretty printed for readability and without an XML declaration at the top.
        )r   rŽ   s    r   r   zBaseOxmlElement.xml§  s   € õ % TÑ*Ô*Ð*r   Ú	xpath_strr   c                óT   •— t          ¦   «                              |t          ¬¦  «        S )z�Override of `lxml` _Element.xpath() method.

        Provides standard Open XML namespace mapping (`nsmap`) in centralized location.
        )Ú
namespaces)rx   Úxpathr   )r+   rf  r{   s     €r   ri  zBaseOxmlElement.xpath¯  s   ø€ õ
 ‰wŒw�}Š}˜Yµ5ˆ}Ñ9Ô9Ð9r   c                ó4   — t          j        | j        ¦  «        S r2   )r   Úfrom_clark_namer¾   rŽ   s    r   rW  zBaseOxmlElement._nsptag¶  s   € å#Ô3°D´HÑ=Ô=Ð=r   )rZ  r&   r"   r[  )r]  r   rZ  r&   )rZ  r&   r"   r~   )r"   r&   )rf  r&   r"   r   )rU   rV   rW   rX   rY  rP  rà   r:  r†   r   ri  rW  r–   r—   s   @r   r£   r£   ƒ  sÒ   ø€ € € € € ðð ð

ð 
ð 
ðð ð ð ðð ð ð ð#ð #ð #ð #ð ð+ð +ð +ñ „Xð+ð:ð :ð :ð :ð :ð :ð ð>ð >ð >ñ „Xð>ð >ð >ð >ð >r   r£   )Ú	metaclass)r   r   )-rX   Ú
__future__r   rY   Útypingr   r   r   r   r   r	   Úlxmlr
   Ú
lxml.etreer   r   Údocx.oxml.exceptionsr   Údocx.oxml.nsr   r   r   Údocx.sharedr   Údocx.enum.baser   Údocx.oxml.simpletypesr   r   r&   r   r\   Útyper^   rs   rg   rh   rÃ   r  re   rf   ri   rj   rk   r£   rJ   r   r   ú<module>rw     s\  ðð FÐ Eà "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ Hà Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø $Ð $Ð $Ð $Ð $Ð $àð 5Ø*Ð*Ð*Ð*Ð*Ð*Ø4Ð4Ð4Ð4Ð4Ð4ðð ð ð ð8)ð 8)ð 8)ð 8)ð 8)�ñ 8)ô 8)ð 8)ðv €WˆT�]„]€ð7ð 7ð 7ð 7ð 7�dñ 7ô 7ð 7ð$(<ð (<ð (<ð (<ð (<ñ (<ô (<ð (<ðV<ð <ð <ð <ð <˜ñ <ô <ð <ð~,ð ,ð ,ð ,ð ,˜ñ ,ô ,ð ,ð^^+ð ^+ð ^+ð ^+ð ^+ñ ^+ô ^+ð ^+ðB74ð 74ð 74ð 74ð 74Ðñ 74ô 74ð 74ðt!ð !ð !ð !ð !Ð%ñ !ô !ð !ð8(ð (ð (ð (ð (Ð!ñ (ô (ð (ð(ð (ð (ð (ð (Ð"ñ (ô (ð (ð(1ð (1ð (1ð (1ð (1Ð!ñ (1ô (1ð (1ðV8.ð 8.ð 8.ð 8.ð 8.Ð'ñ 8.ô 8.ð 8.ðx5>ð 5>ð 5>ð 5>ð 5>�eÔ'°?ð 5>ñ 5>ô 5>ð 5>ð 5>ð 5>r   