§
    õ(ÂjÈ}  ã                   óh  — d Z 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	m
Z
mZmZmZ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 ddlmZ ddlmZ ddlmZm Z m!Z! ddl"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z) dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2e-de.de/de0de2de1diZ3 ej4        d ej5        ¦  «        Z6 ed!¦  «        Z7d"e,› d#e-› d$e.› d%e/› d&e0› d'e2› d(e1› d)�Z8d*e7d+e7fd,„Z9d*e:d+ej        fd-„Z;d*ej        d+e:fd.„Z<e9fd/ed0d1d2e:d3e
e	ge	f         d+ee=e:                  f
d4„Z> G d5„ d6e¦  «        Z? G d7„ d1ee(¦  «        Z@dS )8z~
Anything related to Extensible Metadata Platform (XMP) metadata.

https://en.wikipedia.org/wiki/Extensible_Metadata_Platform
é    N)ÚIterator©Ú	hexdigits)ÚAnyÚCallableÚOptionalÚTypeVarÚUnionÚcast)ÚExpatBuilderNS)ÚDocument)ÚElement)ÚOptions)Ú
ExpatErrorÚXMLParserTypeé   )Úget_configuration)ÚXmpInformationProtocol)Ú
StreamTypeÚdeprecate_with_replacementÚdeprecation_no_replacement)ÚLimitReachedErrorÚPdfReadErrorÚXmpDocumentError)ÚContentStreamÚ	PdfObjectÚStreamObjecti@KL i † z+http://www.w3.org/1999/02/22-rdf-syntax-ns#z http://purl.org/dc/elements/1.1/zhttp://ns.adobe.com/xap/1.0/zhttp://ns.adobe.com/pdf/1.3/zhttp://ns.adobe.com/xap/1.0/mm/zhttp://ns.adobe.com/pdfx/1.3/zhttp://www.aiim.org/pdfa/ns/id/ÚdcÚxmpÚpdfÚxmpMMÚpdfaidÚpdfxa{  
        (?P<year>[0-9]{4})
        (-
            (?P<month>[0-9]{2})
            (-
                (?P<day>[0-9]+)
                (T
                    (?P<hour>[0-9]{2}):
                    (?P<minute>[0-9]{2})
                    (:(?P<second>[0-9]{2}(.[0-9]+)?))?
                    (?P<tzd>Z|[-+][0-9]{2}:[0-9]{2})
                )?
            )?
        )?
        ÚKuƒ   <?xpacket begin="ï»¿" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="pypdf">
    <rdf:RDF xmlns:rdf="z?">
        <rdf:Description rdf:about=""
            xmlns:dc="z"
            xmlns:xmp="z"
            xmlns:pdf="z"
            xmlns:xmpMM="z"
            xmlns:pdfaid="z"
            xmlns:pdfx="zM">
        </rdf:Description>
    </rdf:RDF>
</x:xmpmeta>
<?xpacket end="r"?>ÚvalueÚreturnc                 ó   — | S ©N© ©r%   s    ú0/tmp/pip-target-1l1kndlc/lib/python/pypdf/xmp.pyÚ	_identityr,   q   s   € Ø€Ló    c           	      ó¦  — t                                | ¦  «        }|€t          d| › �¦  «        ‚t          |                     d¦  «        ¦  «        }t          |                     d¦  «        pd¦  «        }t          |                     d¦  «        pd¦  «        }t          |                     d¦  «        pd¦  «        }t          |                     d¦  «        pd¦  «        }t          j        |                     d	¦  «        pd¦  «        }|                     t
          j        ¦  «        }||z
  d
z  }	t          |¦  «        }
t          |	¦  «        }|                     d¦  «        pd}t          j	        ||||||
|¦  «        }|dk    rKd„ | 
                    d¦  «        D ¦   «         \  }}|dz  }|dk     r|dz  }|t          j        ||¬¦  «        z   }|S )NzInvalid date format: ÚyearÚmonthÚ1ÚdayÚhourÚ0ÚminuteÚsecondi@B ÚtzdÚZc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r(   )Úint)Ú.0Úxs     r+   ú	<genexpr>z"_converter_date.<locals>.<genexpr>ˆ   s(   è è € Ð!AÐ!A¨Q¥# a¡&¤&Ð!AÐ!AÐ!AÐ!AÐ!AÐ!Ar-   ú:éÿÿÿÿr   )ÚhoursÚminutes)Úiso8601ÚmatchÚ
ValueErrorr:   ÚgroupÚdecimalÚDecimalÚto_integralÚROUND_FLOORÚdatetimeÚsplitÚ	timedelta)r%   Úmatchesr/   r0   r2   r3   r5   r6   Úseconds_decÚmilliseconds_decÚsecondsÚmillisecondsr7   ÚdtÚ	tzd_hoursÚtzd_minutess                   r+   Ú_converter_daterU   u   s¹  € Ý�mŠm˜EÑ"Ô"€GØ€ÝÐ8°Ð8Ð8Ñ9Ô9Ð9Ýˆw�}Š}˜VÑ$Ô$Ñ%Ô%€DÝ�—’˜gÑ&Ô&Ð-¨#Ñ.Ô.€EÝ
ˆg�mŠm˜EÑ"Ô"Ð) cÑ
*Ô
*€CÝˆw�}Š}˜VÑ$Ô$Ð+¨Ñ,Ô,€DÝ�—’˜xÑ(Ô(Ð/¨CÑ0Ô0€FÝŒ_˜WŸ]š]¨8Ñ4Ô4Ð;¸Ñ<Ô<€FØ×$Ò$¥WÔ%8Ñ9Ô9€KØ Ñ,°	Ñ9Ðå�+ÑÔ€GÝÐ'Ñ(Ô(€Là
�-Š-˜Ñ
Ô
Ð
% #€CÝ	Ô	˜4 ¨¨T°6¸7ÀLÑ	QÔ	Q€BØ
ˆc‚z€zØ!AÐ!A°#·)²)¸C±.´.Ð!AÑ!AÔ!AÑˆ	�;Ø�R‰ˆ	Ø�qŠ=ˆ=Ø˜2ÑˆKØ•(Ô$¨9¸kÐJÑJÔJÑJˆØ€Ir-   c                 óÖ   — | j         �8|                      ¦   «         �$|                      t          j        j        ¦  «        } |                      d¬¦  «        } |                      d¦  «        S )z‰Format a datetime as UTC with trailing 'Z'.

    - If the input is timezone-aware, convert to UTC first.
    - If naive, assume UTC.
    N)Útzinfoz%Y-%m-%dT%H:%M:%S.%fZ)rW   Ú	utcoffsetÚ
astimezonerJ   ÚtimezoneÚutcÚreplaceÚstrftimer*   s    r+   Ú_format_datetime_utcr^   �   sZ   € ð „|Ð E§O¢OÑ$5Ô$5Ð$AØ× Ò ¥Ô!2Ô!6Ñ7Ô7ˆà�MŠM ˆMÑ&Ô&€EØ�>Š>Ð1Ñ2Ô2Ð2r-   ÚelementÚselfÚXmpInformationÚ	list_typeÚ	converterc                 ó  — |                       t          |¦  «        }g }t          |¦  «        rZ|D ]U}|                      t          d¦  «        D ]7}|                     |¦  «        } ||¦  «        }|                     |¦  «         Œ8ŒV|S d S )NÚli)ÚgetElementsByTagNameNSÚRDF_NAMESPACEÚlenÚ	_get_textÚappend)	r_   r`   rb   rc   Ú
containersÚretvalÚ	containerÚitemr%   s	            r+   Ú_generic_getro   �   s    € ð ×/Ò/µ¸yÑIÔI€JØ€FÝ
ˆ:�„ð Ø#ð 	%ð 	%ˆIØ!×8Ò8½ÈÑMÔMð %ð %�ØŸš tÑ,Ô,�Ø!˜	 %Ñ(Ô(�Ø—’˜eÑ$Ô$Ð$Ð$ð%ð ˆØˆ4r-   c                   óÊ   ‡ — e Zd ZdZddee         ddfˆ fd„Zdededee         d	ee         d
edee         dee         ddfd„Z	dede
e         ddfˆ fd„Zdeddfˆ fd„Zˆ xZS )Ú_XmpBuilderac  
    Custom XML parser denying all entity declarations.

    This is a stripped down and typed version inspired by what *defusedxml* does.

    Why do we need this? The default limits of *libexpat* used by Python only block exponential entity expansion,
    but not cases like quadratic entity expansion which can still cause quite some memory usage.
    NÚoptionsr&   c                 ó€   •— t          ¦   «                              |¬¦  «         d| _        t          ¦   «         | _        d S )N)rr   r   )ÚsuperÚ__init__Ú_element_countr   Ú_configuration)r`   rr   Ú	__class__s     €r+   ru   z_XmpBuilder.__init__¶   s:   ø€ Ý‰Œ×Ò ÐÑ)Ô)Ð)ØˆÔÝ/Ñ1Ô1ˆÔÐÐr-   Úentity_nameÚis_parameter_entityr%   ÚbaseÚ	system_idÚ	public_idÚnotation_namec                 ó&   — t          d|›�¦  «        ‚)NzForbidden entities: )r   )r`   ry   rz   r%   r{   r|   r}   r~   s           r+   Ú!custom_entity_declaration_handlerz-_XmpBuilder.custom_entity_declaration_handler»   s   € õ Ð?°Ð?Ð?Ñ@Ô@Ð@r-   ÚnameÚ
attributesc                 óÒ   •— | xj         dz  c_         | j         | j        j        k    rt          d| j        j        › d�¦  «        ‚t	          ¦   «                              ||¬¦  «         d S )Nr   zXMP metadata exceeds limit of z
 elements.)r�   r‚   )rv   rw   Úxmp_maximum_element_countr   rt   Ústart_element_handler)r`   r�   r‚   rx   s      €r+   r…   z!_XmpBuilder.start_element_handlerÉ   sv   ø€ ØÐÔ˜qÑ ÐÔØÔ Ô!4Ô!NÒNÐNÝ#Øj°Ô1DÔ1^ÐjÐjÐjñô ð õ 	‰Œ×%Ò%¨4¸JÐ%ÑGÔGÐGÐGÐGr-   Úparserc                 óz   •— t          ¦   «                              |¦  «         | j        |_        | j        |_        d S r(   )rt   Úinstallr€   ÚEntityDeclHandlerr…   ÚStartElementHandler)r`   r†   rx   s     €r+   rˆ   z_XmpBuilder.installÑ   s5   ø€ Ý‰Œ�Š˜ÑÔÐà#'Ô#IˆÔ Ø%)Ô%?ˆÔ"Ð"Ð"r-   r(   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ru   ÚstrÚboolr€   Úlistr…   r   rˆ   Ú__classcell__)rx   s   @r+   rq   rq   ¬   sU  ø€ € € € € ðð ð2ð 2 ¨Ô 1ð 2¸Tð 2ð 2ð 2ð 2ð 2ð 2ð
AàðAð
 "&ðAð ˜C”=ðAð ˜3”-ðAð ðAð   ”}ðAð $ Cœ=ðAð 
ðAð Að Að AðH¨#ð H¸4À¼9ð HÈð Hð Hð Hð Hð Hð Hð@˜mð @°ð @ð @ð @ð @ð @ð @ð @ð @ð @ð @r-   rq   c                   óÂ  — e Zd ZdZdeddfd„ZedUd„¦   «         Z	 dVdede	e
edf         ddfd„Zd	e
d
e
de
dee         fd„Zd	e
d
e
dee         fd„Zdede
fd„Zefd
e
de
dee
gef         dee         fd„Zd
e
de
deee
                  fd„Zefd
e
de
deegef         deee                  fd„Zd
e
de
deeeef                  fd„Zedeee
                  fd„¦   «         Zej        deee
                  ddfd„¦   «         Zedee
         fd„¦   «         Zej        dee
         ddfd„¦   «         Zedeee
                  fd„¦   «         Z e j        deee
                  ddfd„¦   «         Z edeee!j!                          fd„¦   «         Z"e"j        deee	e
e!j!        f                           ddfd„¦   «         Z"edeee
e
f                  fd„¦   «         Z#e#j        deee
e
f                  ddfd „¦   «         Z#edee
         fd!„¦   «         Z$e$j        dee
         ddfd"„¦   «         Z$edee
         fd#„¦   «         Z%e%j        dee
         ddfd$„¦   «         Z%edeee
                  fd%„¦   «         Z&e&j        deee
                  ddfd&„¦   «         Z&edeee
                  fd'„¦   «         Z'e'j        deee
                  ddfd(„¦   «         Z'edeee
                  fd)„¦   «         Z(e(j        deee
                  ddfd*„¦   «         Z(edeee
e
f                  fd+„¦   «         Z)e)j        deee
e
f                  ddfd,„¦   «         Z)edee
         fd-„¦   «         Z*e*j        dee
         ddfd.„¦   «         Z*edeee
                  fd/„¦   «         Z+e+j        deee
                  ddfd0„¦   «         Z+edeee
e
f                  fd1„¦   «         Z,e,j        deee
e
f                  ddfd2„¦   «         Z,edeee
                  fd3„¦   «         Z-e-j        deee
                  ddfd4„¦   «         Z-edee
         fd5„¦   «         Z.e.j        dee
         ddfd6„¦   «         Z.edee
         fd7„¦   «         Z/e/j        dee
         ddfd8„¦   «         Z/edee
         fd9„¦   «         Z0e0j        dee
         ddfd:„¦   «         Z0edee!j!                 fd;„¦   «         Z1e1j        dee!j!                 ddfd<„¦   «         Z1edee!j!                 fd=„¦   «         Z2e2j        dee!j!                 ddfd>„¦   «         Z2edee!j!                 fd?„¦   «         Z3e3j        dee!j!                 ddfd@„¦   «         Z3edee
         fdA„¦   «         Z4e4j        dee
         ddfdB„¦   «         Z4edee
         fdC„¦   «         Z5e5j        dee
         ddfdD„¦   «         Z5edee
         fdE„¦   «         Z6e6j        dee
         ddfdF„¦   «         Z6edee
         fdG„¦   «         Z7e7j        dee
         ddfdH„¦   «         Z7edee
         fdI„¦   «         Z8e8j        dee
         ddfdJ„¦   «         Z8edeeef         fdK„¦   «         Z9dWd	e
defdM„Z:d
e
de
ddfdN„Z;d
e
de
dee
         ddfdO„Z<d
e
de
deee
                  ddfdP„Z=d
e
de
deee
                  ddfdQ„Z>d
e
de
deee
e
f                  ddfdR„Z?d
e
de
fdS„Z@dXdT„ZAdS )Yra   zÕ
    An object that represents Extensible Metadata Platform (XMP) metadata.
    Usually accessed by :py:attr:`xmp_metadata()<pypdf.PdfReader.xmp_metadata>`.

    Raises:
      PdfReadError: if XML is invalid

    Ústreamr&   Nc                 óè  — || _         	 | j                              ¦   «         }t          ¦   «         }t          |¦  «        x}|j        k    rt          d|› d|j        › d�¦  «        ‚t          ¦   «                              |¦  «        }n+# t          t          f$ r}t          d|› �¦  «        ‚d }~ww xY w|                     t          d¦  «        }|st          d¦  «        ‚|d         | _        i | _        d S )NzXMP stream size z exceeds limit of ú.z#XML in XmpInformation was invalid: ÚRDFz?XML in XmpInformation was invalid: Missing rdf:RDF root elementr   )r”   Úget_datar   rh   Úxmp_maximum_input_lengthr   rq   ÚparseStringÚAttributeErrorr   r   rf   rg   Úrdf_rootÚcache)r`   r”   ÚdataÚconfigurationÚlengthÚdoc_rootÚeÚ	rdf_rootss           r+   ru   zXmpInformation.__init__â   s  € ØˆŒð		JØ”;×'Ò'Ñ)Ô)ˆDÝ-Ñ/Ô/ˆMÝ˜d™)œ)Ð#� }Ô'MÒMÐMÝ'Øj vÐjÐjÀÔAgÐjÐjÐjñô ð õ "-¡¤×!:Ò!:¸4Ñ!@Ô!@ˆHˆHøÝ¥
Ð+ð 	Jð 	Jð 	JÝÐHÀQÐHÐHÑIÔIÐIøøøøð	Jøøøà×3Ò3µMÀ5ÑIÔIˆ	Øð 	ÝØQñô ð ð %.¨a¤LˆŒØ%'ˆŒ
ˆ
ˆ
s   ‰A=B ÂB/ÂB*Â*B/c                 ó’   — t          dd¦  «        }|                     t                               d¦  «        ¦  «          | |¦  «        S )z¤
        Create a new XmpInformation object with minimal structure.

        Returns:
            A new XmpInformation instance with empty metadata fields.
        Núutf-8)r   Úset_dataÚ_MINIMAL_XMPÚencode)Úclsr”   s     r+   ÚcreatezXmpInformation.createö   sA   € õ ˜t TÑ*Ô*ˆØ�Š�×+Ò+¨GÑ4Ô4Ñ5Ô5Ð5Øˆs�6‰{Œ{Ðr-   Úencryption_keyc                 ó€   — t          ddd¦  «         |�t          dd¦  «         | j                             |¦  «         d S )NzXmpInformation.write_to_streamzPdfWriter.xmp_metadataz6.0.0z/the encryption_key parameter of write_to_streamz5.0.0)r   r   r”   Úwrite_to_stream)r`   r”   r«   s      r+   r­   zXmpInformation.write_to_stream  s\   € õ 	#Ø,Ø$Øñ	
ô 	
ð 	
ð
 Ð%Ý&ØAÀ7ñô ð ð 	Œ×#Ò# FÑ+Ô+Ð+Ð+Ð+r-   Ú	about_uriÚ	namespacer�   c              #   óþ   K  — | j                              t          d¦  «        D ]Y}|                     t          d¦  «        |k    r8|                     ||¦  «        }|�|V — |                     ||¦  «        E d {V —† ŒZd S ©NÚDescriptionÚabout)rœ   rf   rg   ÚgetAttributeNSÚgetAttributeNodeNS)r`   r®   r¯   r�   ÚdescÚattrs         r+   Úget_elementzXmpInformation.get_element  s�   è è € Ø”M×8Ò8½ÈÑVÔVð 	Hð 	HˆDØ×"Ò"¥=°'Ñ:Ô:¸iÒGÐGØ×.Ò.¨y¸$Ñ?Ô?�ØÐ#Ø�J�J�JØ×6Ò6°yÀ$ÑGÔGÐGÐGÐGÐGÐGÐGÐGøð	Hð 	Hr-   c              #   óN  K  — | j                              t          d¦  «        D ]�}|                     t          d¦  «        |k    r`t	          |j        j        ¦  «        D ]-}|j                             |¦  «        }|r|j        |k    r|V — Œ.|j	        D ]}|j        |k    r|V — ŒŒ‚d S r±   )
rœ   rf   rg   r´   Úranger‚   r    rn   ÚnamespaceURIÚ
childNodes)r`   r®   r¯   r¶   Úir·   Úchilds          r+   Úget_nodes_in_namespacez%XmpInformation.get_nodes_in_namespace  sÆ   è è € Ø”M×8Ò8½ÈÑVÔVð 	$ð 	$ˆDØ×"Ò"¥=°'Ñ:Ô:¸iÒGÐGÝ˜tœÔ5Ñ6Ô6ð #ð #�AØœ?×/Ò/°Ñ2Ô2�DØð # Ô 1°YÒ >Ð >Ø"˜
˜
˜
øØ!œ_ð $ð $�EØÔ)¨YÒ6Ð6Ø#˜˜˜øøð	$ð 	$r-   r_   c                 óR   — d}|j         D ]}|j        |j        k    r
||j        z  }Œ|S ©NÚ )r¼   ÚnodeTypeÚ	TEXT_NODErž   )r`   r_   Útextr¾   s       r+   ri   zXmpInformation._get_text#  s:   € ØˆØÔ'ð 	#ð 	#ˆEØŒ~ ¤Ò0Ð0Ø˜œ
Ñ"�øØˆr-   rc   c                 óV  — | j                              |i ¦  «                             |¦  «        }|r|S d }|                      d||¦  «        D ]/}|j        |j        k    r|j        }n|                      |¦  «        } |� ||¦  «        }| j                              |i ¦  «        }|||<   |S rÁ   )r�   Úgetr¸   rÃ   ÚATTRIBUTE_NODEÚ	nodeValueri   Ú
setdefault)r`   r¯   r�   rc   Úcachedr%   r_   Úns_caches           r+   Ú_get_single_valuez XmpInformation._get_single_value*  sÃ   € ð ”—’ 	¨2Ñ.Ô.×2Ò2°4Ñ8Ô8ˆØð 	ØˆMØˆØ×'Ò'¨¨I°tÑ<Ô<ð 	ð 	ˆGØÔ 7Ô#9Ò9Ð9ØÔ)��àŸš wÑ/Ô/�ØØÐØ�I˜eÑ$Ô$ˆEØ”:×(Ò(¨°BÑ7Ô7ˆØˆ�‰Øˆr-   c                 óÆ  — | j                              |i ¦  «                             |¦  «        }|r t          t          t                   |¦  «        S g }|                      d||¦  «        D ]V}t          || d¬¦  «        x}�|                     |¦  «         Œ,|                      |¦  «        }| 	                    |¦  «         ŒW| j          
                    |i ¦  «        }|||<   |S )NrÂ   ÚBag©rb   )r�   rÇ   r   r‘   r�   r¸   ro   Úextendri   rj   rÊ   )	r`   r¯   r�   rË   rl   r_   Úbagsr%   rÌ   s	            r+   Ú_getter_bagzXmpInformation._getter_bag@  sá   € Ø”—’ 	¨2Ñ.Ô.×2Ò2°4Ñ8Ô8ˆØð 	+Ý��Sœ	 6Ñ*Ô*Ð*ØˆØ×'Ò'¨¨I°tÑ<Ô<ð 	%ð 	%ˆGÝ$ W¨d¸eÐDÑDÔDÐD�ÐQØ—’˜dÑ#Ô#Ð#Ð#àŸš wÑ/Ô/�Ø—’˜eÑ$Ô$Ð$Ð$Ø”:×(Ò(¨°BÑ7Ô7ˆØˆ�‰Øˆr-   c                 ó.  — | j                              |i ¦  «                             |¦  «        }|r t          t          t                   |¦  «        S g }|                      d||¦  «        D ]Š}t          || d|¬¦  «        x}�|                     |¦  «         Œ-t          || d¬¦  «        x}�|                     |¦  «         ŒW ||                      |¦  «        ¦  «        }	| 	                    |	¦  «         Œ‹| j          
                    |i ¦  «        }
||
|<   |S )NrÂ   ÚSeq)rb   rc   rÏ   rÐ   )r�   rÇ   r   r‘   r   r¸   ro   rÑ   ri   rj   rÊ   )r`   r¯   r�   rc   rË   rl   r_   ÚseqsrÒ   r%   rÌ   s              r+   Ú_get_seq_valueszXmpInformation._get_seq_valuesO  s   € ð ”—’ 	¨2Ñ.Ô.×2Ò2°4Ñ8Ô8ˆØð 	+Ý��Sœ	 6Ñ*Ô*Ð*ØˆØ×'Ò'¨¨I°tÑ<Ô<ð 	%ð 	%ˆGÝ$ W¨d¸eÈyÐYÑYÔYÐY�ÐfØ—’˜dÑ#Ô#Ð#Ð#Ý& w°ÀÐFÑFÔFÐF�$ÐSð —’˜dÑ#Ô#Ð#Ð#à!˜	 $§.¢.°Ñ"9Ô"9Ñ:Ô:�Ø—’˜eÑ$Ô$Ð$Ð$Ø”:×(Ò(¨°BÑ7Ô7ˆØˆ�‰Øˆr-   c                 óR  — | j                              |i ¦  «                             |¦  «        }|r't          t          t          t          f         |¦  «        S i }|                      d||¦  «        D ]•}|                     t          d¦  «        }t          |¦  «        rQ|D ]M}|                     t          d¦  «        D ]/}|  	                    |¦  «        }	|	|| 
                    d¦  «        <   Œ0ŒNŒ}|  	                    |¦  «        |d<   Œ–| j                              |i ¦  «        }
||
|<   |S )NrÂ   ÚAltre   úxml:langz	x-default)r�   rÇ   r   Údictr   r¸   rf   rg   rh   ri   ÚgetAttributerÊ   )r`   r¯   r�   rË   rl   r_   ÚaltsÚaltrn   r%   rÌ   s              r+   Ú_get_langalt_valuesz"XmpInformation._get_langalt_valuesl  s8  € Ø”—’ 	¨2Ñ.Ô.×2Ò2°4Ñ8Ô8ˆØð 	0Ý��S¥#˜Xœ¨Ñ/Ô/Ð/Ø!#ˆØ×'Ò'¨¨I°tÑ<Ô<ð 	>ð 	>ˆGØ×1Ò1µ-ÀÑGÔGˆDÝ�4‰yŒyð >Øð Fð F�CØ #× :Ò :½=È$Ñ OÔ Oð Fð F˜Ø $§¢¨tÑ 4Ô 4˜Ø@E˜˜t×0Ò0°Ñ<Ô<Ñ=Ð=ðFðFð
 '+§n¢n°WÑ&=Ô&=��{Ñ#Ð#Ø”:×(Ò(¨°BÑ7Ô7ˆØˆ�‰Øˆr-   c                 ó8   — |                       t          d¦  «        S )z6Contributors to the resource (other than the authors).Úcontributor©rÓ   ÚDC_NAMESPACE©r`   s    r+   Údc_contributorzXmpInformation.dc_contributor~  s   € ð ×Ò¥¨mÑ<Ô<Ð<r-   Úvaluesc                 ó>   — |                       t          d|¦  «         d S )Nrá   ©Ú_set_bag_valuesrã   ©r`   ræ   s     r+   rå   zXmpInformation.dc_contributorƒ  s    € à×Ò�\¨=¸&ÑAÔAÐAÐAÐAr-   c                 ó8   — |                       t          d¦  «        S )z4Text describing the extent or scope of the resource.Úcoverage©rÍ   rã   rä   s    r+   Údc_coveragezXmpInformation.dc_coverage‡  s   € ð ×%Ò%¥l°JÑ?Ô?Ð?r-   r%   c                 ó>   — |                       t          d|¦  «         d S )Nrì   ©Ú_set_single_valuerã   ©r`   r%   s     r+   rî   zXmpInformation.dc_coverageŒ  s    € à×Ò�|¨Z¸Ñ?Ô?Ð?Ð?Ð?r-   c                 ó8   — |                       t          d¦  «        S )zVA sorted array of names of the authors of the resource, listed in order of precedence.Úcreator)r×   rã   rä   s    r+   Ú
dc_creatorzXmpInformation.dc_creator�  s   € ð ×#Ò#¥L°)Ñ<Ô<Ð<r-   c                 ó>   — |                       t          d|¦  «         d S )Nrô   )Ú_set_seq_valuesrã   rê   s     r+   rõ   zXmpInformation.dc_creator•  ó    € à×Ò�\¨9°fÑ=Ô=Ð=Ð=Ð=r-   c                 óD   — |                       t          dt          ¦  «        S )zXA sorted array of dates of significance to the resource. The dates and times are in UTC.Údate)r×   rã   rU   rä   s    r+   Údc_datezXmpInformation.dc_date™  s   € ð ×#Ò#¥L°&½/ÑJÔJÐJr-   c                 óJ  — |€|                       t          dd ¦  «         d S g }|D ]a}t          |t          j        ¦  «        r#|                     t          |¦  «        ¦  «         Œ?|                     t          |¦  «        ¦  «         Œb|                       t          d|¦  «         d S )Nrú   )r÷   rã   Ú
isinstancerJ   rj   r^   r�   )r`   ræ   Údate_stringsr%   s       r+   rû   zXmpInformation.dc_datež  s©   € àˆ>Ø× Ò ¥¨v°tÑ<Ô<Ð<Ð<Ð<àˆLØð 4ð 4�Ý˜e¥XÔ%6Ñ7Ô7ð 4Ø ×'Ò'Õ(<¸UÑ(CÔ(CÑDÔDÐDÐDà ×'Ò'­¨E©
¬
Ñ3Ô3Ð3Ð3Ø× Ò ¥¨v°|ÑDÔDÐDÐDÐDr-   c                 ó8   — |                       t          d¦  «        S )zSA language-keyed dictionary of textual descriptions of the content of the resource.Údescription©rß   rã   rä   s    r+   Údc_descriptionzXmpInformation.dc_description«  s   € ð ×'Ò'­°mÑDÔDÐDr-   c                 ó>   — |                       t          d|¦  «         d S )Nr   ©Ú_set_langalt_valuesrã   rê   s     r+   r  zXmpInformation.dc_description°  s    € à× Ò ¥¨}¸fÑEÔEÐEÐEÐEr-   c                 ó8   — |                       t          d¦  «        S )zThe mime-type of the resource.Úformatrí   rä   s    r+   Ú	dc_formatzXmpInformation.dc_format´  ó   € ð ×%Ò%¥l°HÑ=Ô=Ð=r-   c                 ó>   — |                       t          d|¦  «         d S )Nr  rð   rò   s     r+   r  zXmpInformation.dc_format¹  ó    € à×Ò�|¨X°uÑ=Ô=Ð=Ð=Ð=r-   c                 ó8   — |                       t          d¦  «        S )z"Unique identifier of the resource.Ú
identifierrí   rä   s    r+   Údc_identifierzXmpInformation.dc_identifier½  s   € ð ×%Ò%¥l°LÑAÔAÐAr-   c                 ó>   — |                       t          d|¦  «         d S )Nr  rð   rò   s     r+   r  zXmpInformation.dc_identifierÂ  s    € à×Ò�|¨\¸5ÑAÔAÐAÐAÐAr-   c                 ó8   — |                       t          d¦  «        S )zAAn unordered array specifying the languages used in the resource.Úlanguagerâ   rä   s    r+   Údc_languagezXmpInformation.dc_languageÆ  ó   € ð ×Ò¥¨jÑ9Ô9Ð9r-   c                 ó>   — |                       t          d|¦  «         d S )Nr  rè   rê   s     r+   r  zXmpInformation.dc_languageË  ó    € à×Ò�\¨:°vÑ>Ô>Ð>Ð>Ð>r-   c                 ó8   — |                       t          d¦  «        S )z&An unordered array of publisher names.Ú	publisherrâ   rä   s    r+   Údc_publisherzXmpInformation.dc_publisherÏ  s   € ð ×Ò¥¨kÑ:Ô:Ð:r-   c                 ó>   — |                       t          d|¦  «         d S )Nr  rè   rê   s     r+   r  zXmpInformation.dc_publisherÔ  s    € à×Ò�\¨;¸Ñ?Ô?Ð?Ð?Ð?r-   c                 ó8   — |                       t          d¦  «        S )zLAn unordered array of text descriptions of relationships to other documents.Úrelationrâ   rä   s    r+   Údc_relationzXmpInformation.dc_relationØ  r  r-   c                 ó>   — |                       t          d|¦  «         d S )Nr  rè   rê   s     r+   r  zXmpInformation.dc_relationÝ  r  r-   c                 ó8   — |                       t          d¦  «        S )z`A language-keyed dictionary of textual descriptions of the rights the user has to this resource.Úrightsr  rä   s    r+   Ú	dc_rightszXmpInformation.dc_rightsá  s   € ð ×'Ò'­°hÑ?Ô?Ð?r-   c                 ó>   — |                       t          d|¦  «         d S )Nr  r  rê   s     r+   r   zXmpInformation.dc_rightsæ  s    € à× Ò ¥¨x¸Ñ@Ô@Ð@Ð@Ð@r-   c                 ó8   — |                       t          d¦  «        S )zCUnique identifier of the work from which this resource was derived.Úsourcerí   rä   s    r+   Ú	dc_sourcezXmpInformation.dc_sourceê  r	  r-   c                 ó>   — |                       t          d|¦  «         d S )Nr#  rð   rò   s     r+   r$  zXmpInformation.dc_sourceï  r  r-   c                 ó8   — |                       t          d¦  «        S )z\An unordered array of descriptive phrases or keywords that specify the topic of the content.Úsubjectrâ   rä   s    r+   Ú
dc_subjectzXmpInformation.dc_subjectó  s   € ð ×Ò¥¨iÑ8Ô8Ð8r-   c                 ó>   — |                       t          d|¦  «         d S )Nr'  rè   rê   s     r+   r(  zXmpInformation.dc_subjectø  rø   r-   c                 ó8   — |                       t          d¦  «        S )z9A language-keyed dictionary of the title of the resource.Útitler  rä   s    r+   Údc_titlezXmpInformation.dc_titleü  s   € ð ×'Ò'­°gÑ>Ô>Ð>r-   c                 ó>   — |                       t          d|¦  «         d S )Nr+  r  rê   s     r+   r,  zXmpInformation.dc_title  s    € à× Ò ¥¨w¸Ñ?Ô?Ð?Ð?Ð?r-   c                 ó8   — |                       t          d¦  «        S )z@An unordered array of textual descriptions of the document type.Útyperâ   rä   s    r+   Údc_typezXmpInformation.dc_type  s   € ð ×Ò¥¨fÑ5Ô5Ð5r-   c                 ó>   — |                       t          d|¦  «         d S )Nr/  rè   rê   s     r+   r0  zXmpInformation.dc_type
  s    € à×Ò�\¨6°6Ñ:Ô:Ð:Ð:Ð:r-   c                 ó8   — |                       t          d¦  «        S )z:An unformatted text string representing document keywords.ÚKeywords©rÍ   ÚPDF_NAMESPACErä   s    r+   Úpdf_keywordszXmpInformation.pdf_keywords  ó   € ð ×%Ò%¥m°ZÑ@Ô@Ð@r-   c                 ó>   — |                       t          d|¦  «         d S )Nr3  ©rñ   r5  rò   s     r+   r6  zXmpInformation.pdf_keywords  ó    € à×Ò�}¨j¸%Ñ@Ô@Ð@Ð@Ð@r-   c                 ó8   — |                       t          d¦  «        S )z-The PDF file version, for example 1.0 or 1.3.Ú
PDFVersionr4  rä   s    r+   Úpdf_pdfversionzXmpInformation.pdf_pdfversion  s   € ð ×%Ò%¥m°\ÑBÔBÐBr-   c                 ó>   — |                       t          d|¦  «         d S )Nr<  r9  rò   s     r+   r=  zXmpInformation.pdf_pdfversion  s    € à×Ò�}¨l¸EÑBÔBÐBÐBÐBr-   c                 ó8   — |                       t          d¦  «        S )z6The name of the tool that saved the document as a PDF.ÚProducerr4  rä   s    r+   Úpdf_producerzXmpInformation.pdf_producer   r7  r-   c                 ó>   — |                       t          d|¦  «         d S )Nr@  r9  rò   s     r+   rA  zXmpInformation.pdf_producer%  r:  r-   c                 óD   — |                       t          dt          ¦  «        S )zYThe date and time the resource was originally created. Returned as a UTC datetime object.Ú
CreateDate©rÍ   ÚXMP_NAMESPACErU   rä   s    r+   Úxmp_create_datezXmpInformation.xmp_create_date)  ó   € ð ×%Ò%¥m°\Å?ÑSÔSÐSr-   c                 óœ   — |r-t          |¦  «        }|                      t          d|¦  «         d S |                      t          dd ¦  «         d S )NrD  ©r^   rñ   rF  ©r`   r%   Údate_strs      r+   rG  zXmpInformation.xmp_create_date.  óT   € àð 	FÝ+¨EÑ2Ô2ˆHØ×"Ò"¥=°,ÀÑIÔIÐIÐIÐIà×"Ò"¥=°,ÀÑEÔEÐEÐEÐEr-   c                 óD   — |                       t          dt          ¦  «        S )zTThe date and time the resource was last modified. Returned as a UTC datetime object.Ú
ModifyDaterE  rä   s    r+   Úxmp_modify_datezXmpInformation.xmp_modify_date6  rH  r-   c                 óœ   — |r-t          |¦  «        }|                      t          d|¦  «         d S |                      t          dd ¦  «         d S )NrO  rJ  rK  s      r+   rP  zXmpInformation.xmp_modify_date;  rM  r-   c                 óD   — |                       t          dt          ¦  «        S )zjThe date and time that any metadata for this resource was last changed. Returned as a UTC datetime object.ÚMetadataDaterE  rä   s    r+   Úxmp_metadata_datez XmpInformation.xmp_metadata_dateC  s   € ð ×%Ò%¥m°^Å_ÑUÔUÐUr-   c                 óœ   — |r-t          |¦  «        }|                      t          d|¦  «         d S |                      t          dd ¦  «         d S )NrS  rJ  rK  s      r+   rT  z XmpInformation.xmp_metadata_dateH  sT   € àð 	HÝ+¨EÑ2Ô2ˆHØ×"Ò"¥=°.À(ÑKÔKÐKÐKÐKà×"Ò"¥=°.À$ÑGÔGÐGÐGÐGr-   c                 ó8   — |                       t          d¦  «        S )z=The name of the first known tool used to create the resource.ÚCreatorTool)rÍ   rF  rä   s    r+   Úxmp_creator_toolzXmpInformation.xmp_creator_toolP  s   € ð ×%Ò%¥m°]ÑCÔCÐCr-   c                 ó>   — |                       t          d|¦  «         d S )NrW  )rñ   rF  rò   s     r+   rX  zXmpInformation.xmp_creator_toolU  s    € à×Ò�}¨m¸UÑCÔCÐCÐCÐCr-   c                 ó8   — |                       t          d¦  «        S )zGThe common identifier for all versions and renditions of this resource.Ú
DocumentID©rÍ   ÚXMPMM_NAMESPACErä   s    r+   Úxmpmm_document_idz XmpInformation.xmpmm_document_idY  ó   € ð ×%Ò%¥o°|ÑDÔDÐDr-   c                 ó>   — |                       t          d|¦  «         d S )Nr[  ©rñ   r]  rò   s     r+   r^  z XmpInformation.xmpmm_document_id^  ó    € à×Ò�°¸eÑDÔDÐDÐDÐDr-   c                 ó8   — |                       t          d¦  «        S )zZAn identifier for a specific incarnation of a document, updated each time a file is saved.Ú
InstanceIDr\  rä   s    r+   Úxmpmm_instance_idz XmpInformation.xmpmm_instance_idb  r_  r-   c                 ó>   — |                       t          d|¦  «         d S )Nrd  ra  rò   s     r+   re  z XmpInformation.xmpmm_instance_idg  rb  r-   c                 ó8   — |                       t          d¦  «        S )zMThe part of the PDF/A standard that the document conforms to (e.g., 1, 2, 3).Úpart©rÍ   ÚPDFAID_NAMESPACErä   s    r+   Úpdfaid_partzXmpInformation.pdfaid_partk  s   € ð ×%Ò%Õ&6¸Ñ?Ô?Ð?r-   c                 ó>   — |                       t          d|¦  «         d S )Nrh  ©rñ   rj  rò   s     r+   rk  zXmpInformation.pdfaid_partp  s!   € à×ÒÕ/°¸Ñ?Ô?Ð?Ð?Ð?r-   c                 ó8   — |                       t          d¦  «        S )zFThe conformance level within the PDF/A standard (e.g., 'A', 'B', 'U').Úconformanceri  rä   s    r+   Úpdfaid_conformancez!XmpInformation.pdfaid_conformancet  s   € ð ×%Ò%Õ&6¸ÑFÔFÐFr-   c                 ó>   — |                       t          d|¦  «         d S )Nro  rm  rò   s     r+   rp  z!XmpInformation.pdfaid_conformancey  s!   € à×ÒÕ/°ÀÑFÔFÐFÐFÐFr-   c                 ó6  — t          | d¦  «        �si | _        |                      dt          ¦  «        D ]ß}|j        }d}	 |                     d|¦  «        }|dk    rn||dz   |dz   …         }t          |¦  «        d	k    st          d
„ |D ¦   «         ¦  «        s|dz   }Œ`|d|…         t          t          |d¬¦  «        ¦  «        z   ||dz   d…         z   }|dz   }Œœ|j
        |j        k    r|j        }n|                      |¦  «        }|| j        |<   Œà| j        S )zÎ
        Retrieve custom metadata properties defined in the undocumented pdfx
        metadata schema.

        Returns:
            A dictionary of key/value items for custom metadata properties.

        Ú_custom_propertiesrÂ   r   Tu   â†‚r?   r   é   é   c              3   ó(   K  — | ]}|t           v V — Œd S r(   r   )r;   Úcs     r+   r=   z3XmpInformation.custom_properties.<locals>.<genexpr>’  s&   è è € Ð2RÐ2RÀa°1½	°>Ð2RÐ2RÐ2RÐ2RÐ2RÐ2Rr-   Né   )r{   )Úhasattrrs  r¿   ÚPDFX_NAMESPACEÚ	localNameÚfindrh   ÚallÚchrr:   rÃ   rÈ   rÉ   ri   )r`   ÚnodeÚkeyÚstartÚidxÚhex_idr%   s          r+   Úcustom_propertiesz XmpInformation.custom_properties}  sK  € õ �tÐ1Ñ2Ô2ñ 	5Ø&(ˆDÔ#Ø×3Ò3°B½ÑGÔGð 5ð 5�Ø”n�Ø�ð$àŸ(š( 8¨UÑ3Ô3�CØ˜b’y�yØØ   q¡¨3°©7Ð!2Ô3�FÝ˜6‘{”{ aÒ'Ð'­sÐ2RÐ2RÈ6Ð2RÑ2RÔ2RÑ/RÔ/RÐ'ð !$ a¡˜Ø Ø˜d˜s˜dœ)¥c­#¨f¸2Ð*>Ñ*>Ô*>Ñ&?Ô&?Ñ?À#ÀcÈAÁgÀiÀiÄ.ÑP�CØ !™G�Eð$ð ”= DÔ$7Ò7Ð7Ø œN�E�Eà ŸNšN¨4Ñ0Ô0�EØ/4�Ô'¨Ñ,Ð,ØÔ&Ð&r-   rÂ   c                 ón  — | j                              t          d¦  «        D ]%}|                     t          d¦  «        |k    r|c S Œ&| j         j        }|€t          d¦  «        ‚|                     t          d¦  «        }|                     t          d|¦  «         | j                              |¦  «         |S )zBGet or create an rdf:Description element with the given about URI.r²   r³   NúXMP Document is Nonezrdf:Descriptionz	rdf:about)	rœ   rf   rg   r´   ÚownerDocumentr   ÚcreateElementNSÚsetAttributeNSÚappendChild)r`   r®   r¶   Údocs       r+   Ú_get_or_create_descriptionz)XmpInformation._get_or_create_description   s¶   € à”M×8Ò8½ÈÑVÔVð 	ð 	ˆDØ×"Ò"¥=°'Ñ:Ô:¸iÒGÐGØ���ð Hð ŒmÔ)ˆØˆ;Ý"Ð#9Ñ:Ô:Ð:Ø×"Ò"¥=Ð2CÑDÔDˆØ×Ò�M¨;¸	ÑBÔBÐBØŒ×!Ò! $Ñ'Ô'Ð'Øˆr-   c                 óT   — | j                              |¦  «        }|r	||v r||= dS dS dS )z<Remove a cached value for a given namespace/name if present.N)r�   rÇ   )r`   r¯   r�   rÌ   s       r+   Ú_clear_cache_entryz!XmpInformation._clear_cache_entry®  sB   € à”:—>’> )Ñ,Ô,ˆØð 	˜ Ð(Ð(Ø˜���ð	ð 	Ð(Ð(r-   c                 óŒ  — |                       ||¦  «         |                      ¦   «         }t          |                     ||¦  «        ¦  «        }|D ]}|                     |¦  «         Œ|                     ||¦  «        x}r|                     |¦  «         |�™| j        j        }|€t          d¦  «        ‚|  
                    |¦  «        }	|                     ||	› d|› �¦  «        }|                     t          |¦  «        ¦  «        }
|                     |
¦  «         |                     |¦  «         |                      ¦   «          dS )z&Set or remove a single metadata value.Nr†  r>   )rŽ  rŒ  r‘   rf   ÚremoveChildrµ   ÚremoveAttributeNoderœ   r‡  r   Ú_get_namespace_prefixrˆ  ÚcreateTextNoder�   rŠ  Ú_update_stream)r`   r¯   r�   r%   r¶   Úexisting_elementsÚelemÚexisting_attrr‹  ÚprefixÚ	text_nodes              r+   rñ   z XmpInformation._set_single_value´  sQ  € à×Ò 	¨4Ñ0Ô0Ð0Ø×.Ò.Ñ0Ô0ˆå  ×!<Ò!<¸YÈÑ!MÔ!MÑNÔNÐØ%ð 	#ð 	#ˆDØ×Ò˜TÑ"Ô"Ð"Ð"à ×3Ò3°I¸tÑDÔDÐDˆ=ð 	4Ø×$Ò$ ]Ñ3Ô3Ð3àÐØ”-Ô-ˆCØˆ{Ý&Ð'=Ñ>Ô>Ð>Ø×/Ò/°	Ñ:Ô:ˆFØ×&Ò& y°VÐ2DÐ2D¸dÐ2DÐ2DÑEÔEˆDØ×*Ò*­3¨u©:¬:Ñ6Ô6ˆIØ×Ò˜YÑ'Ô'Ð'Ø×Ò˜TÑ"Ô"Ð"à×ÒÑÔÐÐÐr-   c                 óü  — |                       ||¦  «         |                      ¦   «         }t          |                     ||¦  «        ¦  «        }|D ]}|                     |¦  «         Œ|rþ| j        j        }|€t          d¦  «        ‚|                      |¦  «        }| 	                    ||› d|› �¦  «        }| 	                    t          d¦  «        }	|D ]i}
| 	                    t          d¦  «        }|                     t          |
¦  «        ¦  «        }|                     |¦  «         |	                     |¦  «         Œj|                     |	¦  «         |                     |¦  «         |                      ¦   «          dS )z+Set or remove bag values (unordered array).Nr†  r>   zrdf:Bagúrdf:li©rŽ  rŒ  r‘   rf   r�  rœ   r‡  r   r’  rˆ  rg   r“  r�   rŠ  r”  )r`   r¯   r�   ræ   r¶   r•  r–  r‹  r˜  Úbagr%   re   r™  s                r+   ré   zXmpInformation._set_bag_valuesÌ  ó‚  € à×Ò 	¨4Ñ0Ô0Ð0Ø×.Ò.Ñ0Ô0ˆå  ×!<Ò!<¸YÈÑ!MÔ!MÑNÔNÐØ%ð 	#ð 	#ˆDØ×Ò˜TÑ"Ô"Ð"Ð"àð 	#Ø”-Ô-ˆCØˆ{Ý&Ð'=Ñ>Ô>Ð>Ø×/Ò/°	Ñ:Ô:ˆFØ×&Ò& y°VÐ2DÐ2D¸dÐ2DÐ2DÑEÔEˆDØ×%Ò%¥m°YÑ?Ô?ˆCàð $ð $�Ø×(Ò(­¸ÑAÔA�Ø×.Ò.­s°5©z¬zÑ:Ô:�	Ø—’˜yÑ)Ô)Ð)Ø—’ Ñ#Ô#Ð#Ð#à×Ò˜SÑ!Ô!Ð!Ø×Ò˜TÑ"Ô"Ð"à×ÒÑÔÐÐÐr-   c                 óü  — |                       ||¦  «         |                      ¦   «         }t          |                     ||¦  «        ¦  «        }|D ]}|                     |¦  «         Œ|rþ| j        j        }|€t          d¦  «        ‚|                      |¦  «        }| 	                    ||› d|› �¦  «        }| 	                    t          d¦  «        }	|D ]i}
| 	                    t          d¦  «        }|                     t          |
¦  «        ¦  «        }|                     |¦  «         |	                     |¦  «         Œj|                     |	¦  «         |                     |¦  «         |                      ¦   «          dS )z.Set or remove sequence values (ordered array).Nr†  r>   zrdf:Seqr›  rœ  )r`   r¯   r�   ræ   r¶   r•  r–  r‹  r˜  Úseqr%   re   r™  s                r+   r÷   zXmpInformation._set_seq_valuesè  rž  r-   c                 óT  — |                       ||¦  «         |                      ¦   «         }t          |                     ||¦  «        ¦  «        }|D ]}|                     |¦  «         Œ|�r)| j        j        }|€t          d¦  «        ‚|                      |¦  «        }| 	                    ||› d|› �¦  «        }| 	                    t          d¦  «        }	|                     ¦   «         D ]‚\  }
}| 	                    t          d¦  «        }|                     d|
¦  «         |                     t          |¦  «        ¦  «        }|                     |¦  «         |	                     |¦  «         Œƒ|                     |	¦  «         |                     |¦  «         |                      ¦   «          dS )z*Set or remove language alternative values.Nr†  r>   zrdf:Altr›  rÚ   )rŽ  rŒ  r‘   rf   r�  rœ   r‡  r   r’  rˆ  rg   ÚitemsÚsetAttributer“  r�   rŠ  r”  )r`   r¯   r�   ræ   r¶   r•  r–  r‹  r˜  rÞ   Úlangr%   re   r™  s                 r+   r  z"XmpInformation._set_langalt_values  s¢  € à×Ò 	¨4Ñ0Ô0Ð0Ø×.Ò.Ñ0Ô0ˆå  ×!<Ò!<¸YÈÑ!MÔ!MÑNÔNÐØ%ð 	#ð 	#ˆDØ×Ò˜TÑ"Ô"Ð"Ð"àñ 	#Ø”-Ô-ˆCØˆ{Ý&Ð'=Ñ>Ô>Ð>Ø×/Ò/°	Ñ:Ô:ˆFØ×&Ò& y°VÐ2DÐ2D¸dÐ2DÐ2DÑEÔEˆDØ×%Ò%¥m°YÑ?Ô?ˆCà%Ÿ|š|™~œ~ð $ð $‘��eØ×(Ò(­¸ÑAÔA�Ø—’ 
¨DÑ1Ô1Ð1Ø×.Ò.­s°5©z¬zÑ:Ô:�	Ø—’˜yÑ)Ô)Ð)Ø—’ Ñ#Ô#Ð#Ð#à×Ò˜SÑ!Ô!Ð!Ø×Ò˜TÑ"Ô"Ð"à×ÒÑÔÐÐÐr-   c                 ó8   — t                                |d¦  «        S )z?Get the appropriate namespace prefix for a given namespace URI.Úunknown)Ú_NAMESPACE_PREFIX_MAPrÇ   )r`   r¯   s     r+   r’  z$XmpInformation._get_namespace_prefix!  s   € å$×(Ò(¨°IÑ>Ô>Ð>r-   c                 ó    — | j         j        }|€t          d¦  «        ‚|                     d¬¦  «        }| j                             |¦  «         dS )z/Update the stream with the current XML content.Nr†  r¥   )Úencoding)rœ   r‡  r   Útoxmlr”   r¦   )r`   r‹  Úxml_datas      r+   r”  zXmpInformation._update_stream%  sO   € àŒmÔ)ˆØˆ;Ý"Ð#9Ñ:Ô:Ð:à—9’9 g�9Ñ.Ô.ˆØŒ×Ò˜XÑ&Ô&Ð&Ð&Ð&r-   )r&   ra   r(   )rÂ   )r&   N)Br‹   rŒ   r�   rŽ   r   ru   Úclassmethodrª   r   r
   r�   Úbytesr­   r   r   r¸   r¿   Ú
XmlElementri   r,   r   r   rÍ   r‘   rÓ   r×   rÛ   rß   Úpropertyrå   Úsetterrî   rõ   rJ   rû   r  r  r  r  r  r  r   r$  r(  r,  r0  r6  r=  rA  rG  rP  rT  rX  r^  re  rk  rp  r„  rŒ  rŽ  rñ   ré   r÷   r  r’  r”  r)   r-   r+   ra   ra   Ø   s,  € € € € € ðð ð(˜|ð (°ð (ð (ð (ð (ð( ð	ð 	ð 	ñ „[ð	ð MQð,ð ,Ø ð,Ø27¸¸UÀDÐ8HÔ2Ið,à	ð,ð ,ð ,ð ,ðH Sð H°Sð HÀð HÈÐQTÌð Hð Hð Hð Hð	$°ð 	$Àð 	$ÈÐQTÌð 	$ð 	$ð 	$ð 	$ð ð °ð ð ð ð ð +4ð	ð àðð ðð ˜S˜E 3˜JÔ'ð	ð
 
�#Œðð ð ð ð, Sð °ð ¸ÀÀcÄÔ8Kð ð ð ð ð& +4ð	ð àðð ðð ˜S˜E 3˜JÔ'ð	ð
 
�$�s”)Ô	ðð ð ð ð:¨Sð ¸ð ÀÈÈcÐSVÈhÌÔ@Xð ð ð ð ð$ ð= ¨¨c¬Ô 3ð =ð =ð =ñ „Xð=ð ÔðB X¨d°3¬iÔ%8ð B¸Tð Bð Bð Bñ ÔðBð ð@˜X cœ]ð @ð @ð @ñ „Xð@ð Ôð@ ¨#¤ð @°4ð @ð @ð @ñ Ôð@ð ð=˜H T¨#¤YÔ/ð =ð =ð =ñ „Xð=ð Ôð> ¨$¨s¬)Ô!4ð >¸ð >ð >ð >ñ Ôð>ð ðK˜ $ xÔ'8Ô"9Ô:ð Kð Kð Kñ „XðKð „^ð
E˜h t¨E°#°xÔ7HÐ2HÔ,IÔ'JÔKð 
EÐPTð 
Eð 
Eð 
Eñ „^ð
Eð ðE ¨¨c°3¨h¬Ô 8ð Eð Eð Eñ „XðEð ÔðF X¨d°3¸°8¬nÔ%=ð FÀ$ð Fð Fð Fñ ÔðFð ð>˜8 Cœ=ð >ð >ð >ñ „Xð>ð Ôð>˜x¨œ}ð >°ð >ð >ð >ñ Ôð>ð ðB˜x¨œ}ð Bð Bð Bñ „XðBð ÔðB 8¨C¤=ð B°Tð Bð Bð Bñ ÔðBð ð:˜X d¨3¤iÔ0ð :ð :ð :ñ „Xð:ð Ôð? (¨4°¬9Ô"5ð ?¸$ð ?ð ?ð ?ñ Ôð?ð ð;˜h t¨C¤yÔ1ð ;ð ;ð ;ñ „Xð;ð Ôð@ 8¨D°¬IÔ#6ð @¸4ð @ð @ð @ñ Ôð@ð ð:˜X d¨3¤iÔ0ð :ð :ð :ñ „Xð:ð Ôð? (¨4°¬9Ô"5ð ?¸$ð ?ð ?ð ?ñ Ôð?ð ð@˜8 D¨¨c¨¤NÔ3ð @ð @ð @ñ „Xð@ð ÔðA ¨¨c°3¨h¬Ô 8ð A¸Tð Að Að Añ ÔðAð ð>˜8 Cœ=ð >ð >ð >ñ „Xð>ð Ôð>˜x¨œ}ð >°ð >ð >ð >ñ Ôð>ð ð9˜H T¨#¤YÔ/ð 9ð 9ð 9ñ „Xð9ð Ôð> ¨$¨s¬)Ô!4ð >¸ð >ð >ð >ñ Ôð>ð ð?˜( 4¨¨S¨¤>Ô2ð ?ð ?ð ?ñ „Xð?ð „_ð@˜x¨¨S°#¨X¬Ô7ð @¸Dð @ð @ð @ñ „_ð@ð ð6˜ $ s¤)Ô,ð 6ð 6ð 6ñ „Xð6ð „^ð;˜h t¨C¤yÔ1ð ;°dð ;ð ;ð ;ñ „^ð;ð ðA˜h sœmð Að Að Añ „XðAð ÔðA (¨3¤-ð A°Dð Að Að Añ ÔðAð ðC ¨¤ð Cð Cð Cñ „XðCð ÔðC H¨S¤Mð C°dð Cð Cð Cñ ÔðCð ðA˜h sœmð Að Að Añ „XðAð ÔðA (¨3¤-ð A°Dð Að Að Añ ÔðAð ðT ¨(Ô*;Ô!<ð Tð Tð Tñ „XðTð ÔðF X¨hÔ.?Ô%@ð FÀTð Fð Fð Fñ ÔðFð ðT ¨(Ô*;Ô!<ð Tð Tð Tñ „XðTð ÔðF X¨hÔ.?Ô%@ð FÀTð Fð Fð Fñ ÔðFð ðV 8¨HÔ,=Ô#>ð Vð Vð Vñ „XðVð ÔðH x°Ô0AÔ'Bð HÀtð Hð Hð Hñ ÔðHð ðD (¨3¤-ð Dð Dð Dñ „XðDð ÔðD h¨s¤mð D¸ð Dð Dð Dñ ÔðDð ðE 8¨C¤=ð Eð Eð Eñ „XðEð ÔðE x°¤}ð E¸ð Eð Eð Eñ ÔðEð ðE 8¨C¤=ð Eð Eð Eñ „XðEð ÔðE x°¤}ð E¸ð Eð Eð Eñ ÔðEð ð@˜X cœ]ð @ð @ð @ñ „Xð@ð Ôð@ ¨#¤ð @°4ð @ð @ð @ñ Ôð@ð ðG H¨S¤Mð Gð Gð Gñ „XðGð ÔðG¨°¬ð G¸$ð Gð Gð Gñ ÔðGð ð ' 4¨¨S¨¤>ð  'ð  'ð  'ñ „Xð 'ðDð °Cð Àð ð ð ð ð¨Cð °sð ¸tð ð ð ð ð¨3ð °cð À(È3Ä-ð ÐTXð ð ð ð ð0¨ð °Cð ÀÈ$ÈsÌ)ÔATð ÐY]ð ð ð ð ð8¨ð °Cð ÀÈ$ÈsÌ)ÔATð ÐY]ð ð ð ð ð8¨Sð ¸ð ÀXÈdÐSVÐX[ÐS[ÌnÔE]ð Ðbfð ð ð ð ð:?¨sð ?°sð ?ð ?ð ?ð ?ð'ð 'ð 'ð 'ð 'ð 'r-   )ArŽ   rJ   rF   ÚreÚcollections.abcr   Ústringr   Útypingr   r   r   r	   r
   r   Úxml.dom.expatbuilderr   Úxml.dom.minidomr   r   r®  Úxml.dom.xmlbuilderr   Úxml.parsers.expatr   r   rw   r   Ú
_protocolsr   Ú_utilsr   r   r   Úerrorsr   r   r   Úgenericr   r   r   ÚXMP_MAX_INPUT_LENGTHÚXMP_MAX_ELEMENT_COUNTrg   rã   rF  r5  r]  rz  rj  r§  ÚcompileÚVERBOSErB   r$   r§   r,   r�   rU   r^   r‘   ro   rq   ra   r)   r-   r+   ú<module>rÁ     s¿  ððð ð €€€Ø €€€Ø 	€	€	€	Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 0Ð /Ð /Ð /Ð /Ð /Ø $Ð $Ð $Ð $Ð $Ð $Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø &Ð &Ð &Ð &Ð &Ð &Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à -Ð -Ð -Ð -Ð -Ð -Ø .Ð .Ð .Ð .Ð .Ð .Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;à Ð ØÐ à=€Ø1€Ø.€Ø.€Ø3€ð( 1€ð 5Ð ð �$Ø�5Ø�5Ø�WØ�hØ�FðÐ ð ˆ"Œ*ðð „Jñ!ô €ð( €GˆC�L„L€ðà&ðð ð $ð	ð ð
 &ðð ð &ðð ð *ðð ð ,ðð ð (ðð ð €ð �Qð ˜1ð ð ð ð ð˜3ð  8Ô#4ð ð ð ð ð6
3 Ô 1ð 
3°cð 
3ð 
3ð 
3ð 
3ð hqðð ØðØ#3ðØ@CðØPXÐZ]ÐY^Ð`cÐYcÔPdðàˆd�3ŒiÔðð ð ð ð)@ð )@ð )@ð )@ð )@�.ñ )@ô )@ð )@ðXT	'ð T	'ð T	'ð T	'ð T	'Ð+¨Yñ T	'ô T	'ð T	'ð T	'ð T	'r-   