Ë
    M/Åe‚f  ã                   óz  — d Z ddlm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 dd
lmZ ddlmZ ddlmZ ddlm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Zi dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7d8d9d:d;d<d=d>d?œ	¥Zi ej5                  «       D � �ci c]  \  } }e| z   |“Œ c}} ¥Zd@edAefdB„Z G dC„ dDej>                  e«      Z  G dE„ dFe «      Z! e!d(«      Z" e!dG«      Z# G dH„ dIejH                  «      Z% G dJ„ dKejH                  ejL                  «      Z& G dL„ dMe «      Z' e'dN«      Z( e'dO«      Z) e'dP«      Z* e'dQ«      Z+ e'dR«      Z, e'dS«      Z- e'dT«      Z. e'dU«      Z/ G dV„ dWej>                  «      Z0 G dX„ dYejH                  «      Z1 G dZ„ d[e1«      Z2 G d\„ d]ejH                  «      Z3 G d^„ d_«      Z4 ed`da¬b«      Z5 G dc„ dae3«      Z6 G dd„ dee6«      Z7 G df„ dge6«      Z8 G dh„ die2«      Z9 G dj„ dke3«      Z: G dl„ dme1«      Z; G dn„ doe3«      Z< G dp„ dqe<«      Z= G dr„ dse<«      Z> G dt„ due2«      Z? G dv„ dwejH                  «      Z@ G dx„ dye2«      ZA G dz„ d{ejH                  «      ZB G d|„ d}e3«      ZC G d~„ de2«      ZD G d€„ d�eC«      ZEyc c}} w )‚zACME protocol messages.é    )ÚHashableN)ÚAny)ÚDict)ÚIterator)ÚList)ÚMapping)ÚMutableMapping)ÚOptional)ÚTuple)ÚType)ÚTypeVar)Ú
challenges)Úerrors)Úfields)Újws)Úutilzurn:ietf:params:acme:error:ÚaccountDoesNotExistz4The request specified an account that does not existÚalreadyRevokedzOThe request specified a certificate to be revoked that has already been revokedÚbadCSRz2The CSR is unacceptable (e.g., due to a short key)ÚbadNoncez1The client sent an unacceptable anti-replay nonceÚbadPublicKeyz>The JWS was signed by a public key the server does not supportÚbadRevocationReasonz;The revocation reason provided is not allowed by the serverÚbadSignatureAlgorithmz@The JWS was signed with an algorithm the server does not supportÚcaaz\Certification Authority Authorization (CAA) records forbid the CA from issuing a certificateÚcompoundzBSpecific error conditions are indicated in the "subproblems" arrayÚ
connectionz?The server could not connect to the client to verify the domainÚdnszAThere was a problem with a DNS query during identifier validationÚdnssecz4The server could not validate a DNSSEC signed domainÚincorrectResponsez;Response received didn't match the challenge's requirementsÚinvalidEmailz1The provided email for a registration was invalidÚinvalidContactz$The provided contact URI was invalidÚ	malformedz!The request message was malformedÚrejectedIdentifierz9The server will not issue certificates for the identifierzLThe request attempted to finalize an order that is not ready to be finalizedz,There were too many requests of a given typez(The server experienced an internal errorz=The server experienced a TLS error during domain verificationz)The client lacks sufficient authorizationz@A contact URL for an account used an unsupported protocol schemez*The server could not resolve a domain namez'An identifier is of an unsupported typez,The server requires external account binding)	ÚorderNotReadyÚrateLimitedÚserverInternalÚtlsÚunauthorizedÚunsupportedContactÚunknownHostÚunsupportedIdentifierÚexternalAccountRequiredÚerrÚreturnc                 ó`   — t        | t        «      r| j                  �t        | j                  v S y)z#Check if argument is an ACME error.F)Ú
isinstanceÚErrorÚtypÚERROR_PREFIX)r-   s    ú//usr/lib/python3/dist-packages/acme/messages.pyÚis_acme_errorr5   @   s'   € ä�#”uÔ 3§7¡7Ð#6Ü˜sŸw™wÐ&Ð&Øó    c                   ó˜   ‡ — e Zd ZU dZdZeZeed f   e	d<   deddfˆ fd„Z
defd„Zed	edd fd
„«       Zdefd„Zdedefd„Zdefd„Zˆ xZS )Ú	_ConstantzACME constant.©ÚnameÚPOSSIBLE_NAMESr:   r.   Nc                 óN   •— t         ‰| �  «        | | j                  |<   || _        y ©N)ÚsuperÚ__init__r;   r:   ©Úselfr:   Ú	__class__s     €r4   r?   z_Constant.__init__L   s%   ø€ Ü‰ÑÔØ$(ˆ×Ñ˜DÑ!Øˆ�	r6   c                 ó   — | j                   S r=   r9   ©rA   s    r4   Úto_partial_jsonz_Constant.to_partial_jsonQ   s   € Ø�y‰yÐr6   Újobjc                 ó€   — || j                   vr"t        j                  | j                  › d�«      ‚| j                   |   S )Nz not recognized)r;   ÚjoseÚDeserializationErrorÚ__name__©ÚclsrF   s     r4   Ú	from_jsonz_Constant.from_jsonT   s=   € à�s×)Ñ)Ñ)Ü×+Ñ+¨s¯|©|¨n¸OÐ,LÓMÐMØ×!Ñ! $Ñ'Ð'r6   c                 óN   — | j                   j                  › d| j                  › d�S )Nú(ú))rB   rJ   r:   rD   s    r4   Ú__repr__z_Constant.__repr__Z   s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I¨;°aÐ8Ð8r6   Úotherc                 ób   — t        |t        | «      «      xr |j                  | j                  k(  S r=   )r0   Útyper:   )rA   rR   s     r4   Ú__eq__z_Constant.__eq__]   s%   € Ü˜%¤ d£Ó,ÒH°·±¸t¿y¹yÑ1HÐHr6   c                 óD   — t        | j                  | j                  f«      S r=   )ÚhashrB   r:   rD   s    r4   Ú__hash__z_Constant.__hash__`   s   € Ü�T—^‘^ T§Y¡YÐ/Ó0Ð0r6   )rJ   Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__ÚNotImplementedr;   r   ÚstrÚ__annotations__r?   rE   ÚclassmethodrM   rQ   r   ÚboolrU   ÚintrX   Ú__classcell__©rB   s   @r4   r8   r8   G   sŽ   ø… ÙØ€IØ-;€N�D˜˜kÐ)Ñ*Ó;ð˜Sð  Tõ ð
 ó ð ð(˜Sð ( [ò (ó ð(ð
9˜#ó 9ðI˜Cð I Dó Ið1˜#÷ 1r6   r8   c                   ó*   — e Zd ZU dZi Zeeef   ed<   y)ÚIdentifierTypezACME identifier type.r;   N©	rJ   rY   rZ   r[   r;   r   r^   r8   r_   © r6   r4   rf   rf   d   s   … ÙØ+-€N�D˜˜i˜Ñ(Ô-r6   rf   Úipc                   ó†   — e Zd ZU dZ ej
                  dej                  ¬«      Zee	d<    ej
                  d«      Z
ee	d<   y)Ú
IdentifierzJACME identifier.

    :ivar IdentifierType typ:
    :ivar str value:

    rT   ©Údecoderr2   ÚvalueN)rJ   rY   rZ   r[   rH   Úfieldrf   rM   r2   r_   rn   r^   rh   r6   r4   rk   rk   m   s;   … ñð %˜$Ÿ*™* V°^×5MÑ5MÔN€CˆÓNØ�—‘˜GÓ$€Eˆ3Ô$r6   rk   c                   óð  — e Zd ZU dZ ej
                  ddd¬«      Zeed<    ej
                  dd¬«      Z	eed<    ej
                  d	d¬«      Z
eed	<    ej
                  d
ej                  d¬«      Zed   ed
<    ej
                  dd¬«      Zeed      ed<   ej"                  deeeef      ded   fd„«       Zedededd fd„«       Zedee   fd„«       Zedee   fd„«       Zdededdfd„Zdefd„Zy)r1   aê  ACME error.

    https://datatracker.ietf.org/doc/html/rfc7807

    Note: Although Error inherits from JSONObjectWithFields, which is immutable,
    we add mutability for Error to comply with the Python exception API.

    :ivar str typ:
    :ivar str title:
    :ivar str detail:
    :ivar Identifier identifier:
    :ivar tuple subproblems: An array of ACME Errors which may be present when the CA
            returns multiple errors related to the same request, `tuple` of `Error`.

    rT   Tzabout:blank©Ú	omitemptyÚdefaultr2   Útitle©rr   ÚdetailÚ
identifier©rm   rr   rk   Úsubproblems)r1   .rn   r.   c                 ó&   — t        d„ | D «       «      S )Nc              3   óF   K  — | ]  }t         j                  |«      –— Œ y ­wr=   )r1   rM   )Ú.0Ú
subproblems     r4   ú	<genexpr>z$Error.subproblems.<locals>.<genexpr>“   s   è ø€ ÒI°Z”U—_‘_ Z×0ÑIùó   ‚!©Útuple©rn   s    r4   ry   zError.subproblems‘   s   € äÑIÀ5ÔIÓIÐIr6   ÚcodeÚkwargsc                 óT   — |t         vrt        d|z  «      ‚t        |z   } | dd|i|¤ŽS )zœCreate an Error instance with an ACME Error code.

        :str code: An ACME error code, like 'dnssec'.
        :kwargs: kwargs to pass to Error.

        z4The supplied code: %s is not a known ACME error coder2   rh   )ÚERROR_CODESÚ
ValueErrorr3   )rL   rƒ   r„   r2   s       r4   Ú	with_codezError.with_code•   sE   € ð ”{Ñ"Üð %Ø'+ñ,ó -ð -ä˜TÑ!ˆñ Ñ%�sÐ%˜fÑ%Ð%r6   c                 ó@   — t         j                  | j                  «      S )z�Hardcoded error description based on its type.

        :returns: Description if standard ACME error or ``None``.
        :rtype: str

        )ÚERROR_TYPE_DESCRIPTIONSÚgetr2   rD   s    r4   ÚdescriptionzError.description¥   s   € ô '×*Ñ*¨4¯8©8Ó4Ð4r6   c                 ój   — t        | j                  «      j                  dd¬«      d   }|t        v r|S y)z¥ACME error code.

        Basically self.typ without the ERROR_PREFIX.

        :returns: error code if standard ACME code or ``None``.
        :rtype: str

        ú:é   )ÚmaxsplitéÿÿÿÿN)r^   r2   Úrsplitr†   )rA   rƒ   s     r4   rƒ   z
Error.code¯   s6   € ô �4—8‘8‹}×#Ñ# C°!Ð#Ó4°RÑ8ˆØ”;ÑØˆKØr6   r:   Nc                 ó0   — t         j                  | ||«      S r=   )ÚobjectÚ__setattr__)rA   r:   rn   s      r4   r•   zError.__setattr__¿   s   € Ü×!Ñ! $¨¨eÓ4Ð4r6   c                 óv  — dj                  d„ | j                  | j                  | j                  | j                  fD «       «      j                  «       }| j                  rd| j                  j                  › d�|z   }| j                  r1t        | j                  «      dkD  r| j                  D ]
  }|d|› �z  }Œ |S )Ns    :: c              3   óD   K  — | ]  }|�|j                  dd«      –— Œ y ­w)NÚasciiÚbackslashreplace©Úencode)r|   Úparts     r4   r~   z Error.__str__.<locals>.<genexpr>Ã   s*   è ø€ ò !Ø9=àÐð �K‰K˜Ð!3×4ñ!ùs   ‚ zProblem for z: r   ú
)
Újoinr2   rŒ   rv   rt   Údecoderw   rn   ry   Úlen)rA   Úresultr}   s      r4   Ú__str__zError.__str__Â   s±   € Ø—‘ñ !à�X‰X�t×'Ñ'¨¯©°d·j±jÐAô!ó !÷ "(¡£ð 	ð �?Š?Ø# D§O¡O×$9Ñ$9Ð#:¸"Ð=ÀÑFˆFØ×Ò¤ D×$4Ñ$4Ó 5¸Ò 9Ø"×.Ñ.ò ,�
Ø˜B˜z˜lÐ+Ñ+‘ð,àˆr6   )rJ   rY   rZ   r[   rH   ro   r2   r^   r_   rt   rv   rk   rM   rw   r
   ry   r   rm   r   r   r   r`   rˆ   ÚpropertyrŒ   rƒ   r•   r¢   rh   r6   r4   r1   r1   x   sh  … ñð ˆt�z‰z˜&¨D¸-ÔH€CˆÓHØ�—‘˜G¨tÔ4€Eˆ3Ó4Ø�$—*‘*˜X°Ô6€FˆCÓ6Ø)3¨¯©Ø˜j×2Ñ2¸dô*D€J�˜Ñ&ó Dà1;°·±¸MÐUYÔ1Z€K�˜% Ñ-Ñ.ÓZð ×ÑðJ˜4  S¨# X¡Ñ/ð J°E¸,Ñ4Gò Jó ðJð ð&˜Sð &¨Cð &°Gò &ó ð&ð ð5˜X c™]ò 5ó ð5ð ð�h˜s‘mò ó ðð5 ð 5¨Cð 5°Dó 5ð
˜ô 
r6   r1   c                   ó*   — e Zd ZU dZi Zeeef   ed<   y)ÚStatuszACME "status" field.r;   Nrg   rh   r6   r4   r¥   r¥   Ï   s   … ÙØ+-€N�D˜˜i˜Ñ(Ô-r6   r¥   ÚunknownÚpendingÚ
processingÚvalidÚinvalidÚrevokedÚreadyÚdeactivatedc                   ó®   — e Zd ZdZ G d„ dej
                  «      Zdeee	f   ddfd„Z
dede	fd	„Zdede	fd
„Zdeee	f   fd„Zedeee	f   dd fd„«       Zy)Ú	DirectoryzmDirectory.

    Directory resources must be accessed by the exact field name in RFC8555 (section 9.7.5).
    c                   ó8  ‡ — e Zd ZU dZ ej
                  dd¬«      Zeed<    ej
                  dd¬«      Z	eed<    ej
                  dd¬«      Z
ee   ed<    ej
                  d	d¬«      Zeed
<   deddfˆ fd„Zedefd„«       Zdee   fˆ fd„Zdedefd„Zˆ xZS )úDirectory.MetazDirectory Meta.ÚtermsOfServiceTru   Ú_terms_of_serviceÚwebsiteÚcaaIdentitiesÚcaa_identitiesr,   Úexternal_account_requiredr„   r.   Nc                 ó”   •— |j                  «       D ��ci c]  \  }}| j                  |«      |“Œ }}}t        ‰| �  di |¤Ž y c c}}w ©Nrh   ©ÚitemsÚ_internal_namer>   r?   ©rA   r„   ÚkÚvrB   s       €r4   r?   zDirectory.Meta.__init__ë   sF   ø€ Ø<B¿L¹L»N×K±D°A°q�d×)Ñ)¨!Ó,¨aÑ/ÐKˆFÑKÜ‰GÑÑ&˜vÓ&ùó Ló   •Ac                 ó   — | j                   S )zURL for the CA TOS)r³   rD   s    r4   Úterms_of_servicezDirectory.Meta.terms_of_serviceï   s   € ð ×)Ñ)Ð)r6   c              #   óP   •K  — t         ‰| �  «       D ]  }|dk(  r|dd  n|–— Œ y ­w)Nr³   r�   ©r>   Ú__iter__r@   s     €r4   rÅ   zDirectory.Meta.__iter__ô   s8   øè ø€ ô ™Ñ(Ó*ò H�Ø"&Ð*=Ò"=�d˜1˜2‘hÀ4ÓGñHùs   ƒ#&r:   c                 ó   — |dk(  rd|z   S |S )NrÂ   Ú_rh   ©rA   r:   s     r4   r¼   zDirectory.Meta._internal_nameú   s   € Ø!%Ð);Ò!;�3˜‘:ÐEÀÐEr6   )rJ   rY   rZ   r[   rH   ro   r³   r^   r_   r´   r¶   r   r·   ra   r   r?   r£   rÂ   r   rÅ   r¼   rc   rd   s   @r4   ÚMetar±   ä   sÁ   ø… ÙØ!+ §¡Ð,<ÈÔ!MÐ˜3ÓMØ!�t—z‘z )°tÔ<ˆ�Ó<Ø$. D§J¡J¨È$Ô$Oˆ˜˜S™	ÓOØ*4¨$¯*©*Ð5NÐZ^Ô*_Ð! 4Ó_ð	' Sð 	'¨Tõ 	'ð 
ð	* cò 	*ó 
ð	*ð	H˜h s™mõ 	Hð	F sð 	F¨s÷ 	Fr6   rÉ   rF   r.   Nc                 ó   — || _         y r=   )Ú_jobj©rA   rF   s     r4   r?   zDirectory.__init__ý   s	   € Øˆ�
r6   r:   c                 óX   — 	 | |   S # t         $ r}t        t        |«      «      ‚d }~ww xY wr=   )ÚKeyErrorÚAttributeErrorr^   )rA   r:   Úerrors      r4   Ú__getattr__zDirectory.__getattr__   s0   € ð	-Ø˜‘:ÐøÜò 	-Ü ¤ U£Ó,Ð,ûð	-ús   ‚ ‡	)�$¤)c                 óZ   — 	 | j                   |   S # t        $ r t        d|› d�«      ‚w xY w)NzDirectory field "z" not found)rË   rÎ   rÈ   s     r4   Ú__getitem__zDirectory.__getitem__  s=   € ð	BØ—:‘:˜dÑ#Ð#øÜò 	BÜÐ.¨t¨f°KÐ@ÓAÐAð	Bús   ‚ ‘*c                 óD   — t        j                  | j                  d„ «      S )Nc                 ó   — | S r=   rh   )r¾   s    r4   ú<lambda>z+Directory.to_partial_json.<locals>.<lambda>  s   € °1€ r6   )r   Úmap_keysrË   rD   s    r4   rE   zDirectory.to_partial_json  s   € Ü�}‰}˜TŸZ™Z©Ó5Ð5r6   c                 ón   — | j                   j                  |j                  di «      «      |d<    | |«      S )NÚmeta)rÉ   rM   ÚpoprK   s     r4   rM   zDirectory.from_json  s/   € à—x‘x×)Ñ)¨$¯(©(°6¸2Ó*>Ó?ˆˆV‰Ù�4‹yÐr6   )rJ   rY   rZ   r[   rH   ÚJSONObjectWithFieldsrÉ   r   r^   r   r?   rÑ   rÓ   r   rE   r`   r	   rM   rh   r6   r4   r¯   r¯   Þ   sŸ   „ ñô
Fˆt×(Ñ(ô Fð2˜W S¨# XÑ.ð °4ó ð- ð -¨ó -ðB ð B¨ó Bð6  c¨3 h¡ó 6ð ð˜^¨C°¨HÑ5ð ¸+ò ó ñr6   r¯   c                   ó@   — e Zd ZU dZ ej
                  d«      Zded<   y)ÚResourcezOACME Resource.

    :ivar acme.messages.ResourceBody body: Resource body.

    ÚbodyÚResourceBodyN)rJ   rY   rZ   r[   rH   ro   rÞ   r_   rh   r6   r4   rÝ   rÝ     s   … ñð
 &˜4Ÿ:™: fÓ-€Dˆ.Ô-r6   rÝ   c                   ó@   — e Zd ZU dZ ej
                  d«      Zeed<   y)ÚResourceWithURIzKACME Resource with URI.

    :ivar str uri: Location of the resource.

    ÚuriN)	rJ   rY   rZ   r[   rH   ro   râ   r^   r_   rh   r6   r4   rá   rá     s   … ñð
 ˆt�z‰z˜%Ó €CˆÔ r6   rá   c                   ó   — e Zd ZdZy)rß   zACME Resource Body.N©rJ   rY   rZ   r[   rh   r6   r4   rß   rß   '  s   „ Úr6   rß   c                   óT   — e Zd ZdZedej                  dededede	ee
f   f
d„«       Zy)	ÚExternalAccountBindingzACME External Account BindingÚaccount_public_keyÚkidÚhmac_keyÚ	directoryr.   c                 ó€  — t        j                  |j                  «       «      j                  «       }t        j
                  j                  |«      }|d   }t        j                  j                  |t        j                  j                  |¬«      t        j                  j                  d||«      }|j                  «       S )zLCreate External Account Binding Resource from contact details, kid and hmac.Ú
newAccount)ÚkeyN)ÚjsonÚdumpsrE   r›   rH   Úb64Ú	b64decoder   ÚJWSÚsignÚjwkÚJWKOctÚjwaÚHS256)	rL   rç   rè   ré   rê   Úkey_jsonÚdecoded_hmac_keyÚurlÚeabs	            r4   Ú	from_dataz ExternalAccountBinding.from_data.  s�   € ô
 —:‘:Ð0×@Ñ@ÓBÓC×JÑJÓLˆÜŸ8™8×-Ñ-¨hÓ7ÐØ˜Ñ%ˆä�g‰g�l‰l˜8¤T§X¡X§_¡_Ð9I _Ó%JÜŸ8™8Ÿ>™>¨4Ø ó%ˆð ×"Ñ"Ó$Ð$r6   N)rJ   rY   rZ   r[   r`   rH   ÚJWKr^   r¯   r   r   rü   rh   r6   r4   ræ   ræ   +  sH   „ Ù'àð%¨4¯8©8ð %¸#ð %Èð %Ø&ð%Ø+/°°S°©>ò%ó ñ%r6   ræ   ÚGenericRegistrationÚRegistration)Úboundc                   óî  ‡ — e Zd ZU dZ ej
                  ddej                  j                  ¬«      Zej                  e	d<    ej
                  ddd¬«      Z
eedf   e	d<    ej
                  d	d¬
«      Zee	d	<    ej
                  dd¬
«      Zee	d<    ej
                  dd¬
«      Zee	d<    ej
                  dd¬
«      Zee	d<    ej
                  dd¬
«      Zeeef   e	d<   dZdZe	 	 	 d$dee   dee   dee   deeeef      dedefd„«       Zdeddfˆ fd„Zdedeedf   fd„Zdeeef   deeef   fd„Zdeeef   fˆ fd „Z deeef   fˆ fd!„Z!e"deedf   fd"„«       Z#e"deedf   fd#„«       Z$ˆ xZ%S )%rÿ   z»Registration Resource Body.

    :ivar jose.JWK key: Public key.
    :ivar tuple contact: Contact information following ACME spec,
        `tuple` of `str`.
    :ivar str agreement:

    rí   T©rr   rm   Úcontactrh   rq   .Ú	agreementru   ÚstatusÚtermsOfServiceAgreedÚterms_of_service_agreedÚonlyReturnExistingÚonly_return_existingÚexternalAccountBindingÚexternal_account_bindingztel:zmailto:NrL   ÚphoneÚemailr„   r.   c                 óF  — d|v }t        |j                  dd«      «      }|�|j                  | j                  |z   «       |�;|j	                  |j                  d«      D �cg c]  }| j                  |z   ‘Œ c}«       |s|rt        |«      |d<   |r||d<    | di |¤ŽS c c}w )a  
        Create registration resource from contact details.

        The `contact` keyword being passed to a Registration object is meaningful, so
        this function represents empty iterables in its kwargs by passing on an empty
        `tuple`.
        r  rh   ú,r  )ÚlistrÚ   ÚappendÚphone_prefixÚextendÚsplitÚemail_prefixr�   )rL   r  r  r  r„   Úcontact_providedÚdetailsÚmails           r4   rü   zRegistration.from_data[  sª   € ð %¨Ð.Ðô �v—z‘z )¨RÓ0Ó1ˆØÐØ�N‰N˜3×+Ñ+¨eÑ3Ô4ØÐØ�N‰NÀÇÁÈCÓ@PÖQ¸˜C×,Ñ,¨tÓ3ÒQÔRñ Ñ&Ü % g£ˆF�9Ñá#Ø1IˆFÐ-Ñ.á‰}�V‰}Ðùò Rs   Á Bc                 ód   •— d|v r|d   �t         j                  | dd«       t        ‰| �  di |¤Ž y)z;Note if the user provides a value for the `contact` member.r  NÚ_add_contactTrh   )r”   r•   r>   r?   )rA   r„   rB   s     €r4   r?   zRegistration.__init__|  s7   ø€ à˜Ñ 6¨)Ñ#4Ð#@ä×Ñ˜t ^°TÔ:Ü‰ÑÑ"˜6Ó"r6   Úprefixc                 ó@   ‡— t        ˆfd„| j                  D «       «      S )Nc              3   ó\   •K  — | ]#  }|j                  ‰«      r|t        ‰«      d  –— Œ% y ­wr=   )Ú
startswithr    )r|   rv   r  s     €r4   r~   z/Registration._filter_contact.<locals>.<genexpr>„  s2   øè ø€ ò *Ø%+Ø× Ñ  Ô(ð ”3�v“;�<Ô ñ*ùs   ƒ),)r�   r  )rA   r  s    `r4   Ú_filter_contactzRegistration._filter_contactƒ  s!   ø€ Üó *Ø/3¯|©|ô*ó *ð 	*r6   rF   c                 óH   — t        | dd«      r| j                  d«      |d<   |S )aÁ  
        The `contact` member of Registration objects should not be required when
        de-serializing (as it would be if the Fields' `omitempty` flag were `False`), but
        it should be included in serializations if it was provided.

        :param jobj: Dictionary containing this Registrations' data
        :type jobj: dict

        :returns: Dictionary containing Registrations data to transmit to the server
        :rtype: dict
        r  Fr  )Úgetattrr›   rÌ   s     r4   Ú_add_contact_if_appropriatez(Registration._add_contact_if_appropriateˆ  s'   € ô �4˜¨Ô/Ø"Ÿk™k¨)Ó4ˆD�‰Oàˆr6   c                 óB   •— t         ‰| �  «       }| j                  |«      S )z2Modify josepy.JSONDeserializable.to_partial_json())r>   rE   r"  ©rA   rF   rB   s     €r4   rE   zRegistration.to_partial_json™  s!   ø€ ä‰wÑ&Ó(ˆØ×/Ñ/°Ó5Ð5r6   c                 óB   •— t         ‰| �  «       }| j                  |«      S )z;Modify josepy.JSONObjectWithFields.fields_to_partial_json())r>   Úfields_to_partial_jsonr"  r$  s     €r4   r&  z#Registration.fields_to_partial_jsonž  s!   ø€ ä‰wÑ-Ó/ˆØ×/Ñ/°Ó5Ð5r6   c                 ó8   — | j                  | j                  «      S )z*All phones found in the ``contact`` field.)r  r  rD   s    r4   ÚphoneszRegistration.phones£  ó   € ð ×#Ñ# D×$5Ñ$5Ó6Ð6r6   c                 ó8   — | j                  | j                  «      S )z*All emails found in the ``contact`` field.)r  r  rD   s    r4   ÚemailszRegistration.emails¨  r)  r6   )NNN)&rJ   rY   rZ   r[   rH   ro   rý   rM   rí   r_   r  r   r^   r  r  r¥   r  ra   r	  r  r   r   r  r  r`   r   rþ   r
   rü   r?   r  r"  rE   r&  r£   r(  r+  rc   rd   s   @r4   rÿ   rÿ   A  s  ø… ñð �D—J‘J˜u°¸d¿h¹h×>PÑ>PÔQ€Cˆ�‰ÓQð  *˜tŸz™z¨)¸tÈRÔP€GˆU�3˜�8‰_ÓPØ�T—Z‘Z °tÔ<€IˆsÓ<Ø�T—Z‘Z °DÔ9€FˆFÓ9Ø$. D§J¡JÐ/EÐQUÔ$VÐ˜TÓVØ!+ §¡Ð,@ÈDÔ!QÐ˜$ÓQØ/9¨t¯z©zÐ:RØDHô0JÐ˜d 3¨ 8™nó Jð €LØ€LàØIMØ)-ØGKñ�tÐ/Ñ0ð ¸À#¹ð Ø! #™ðà,4°T¸#¸s¸(±^Ñ,Dðð  ðð %8òó ðð@# ð #¨õ #ð* cð *¨e°C¸°H©oó *ð
°°S¸#°X±ð À4ÈÈSÈÁ>ó ð"6  c¨3 h¡õ 6ð
6¨¨S°#¨X©õ 6ð
 ð7˜˜c 3˜h™ò 7ó ð7ð ð7˜˜c 3˜h™ò 7ó ô7r6   c                   ó   — e Zd ZdZy)ÚNewRegistrationzNew registration.Nrä   rh   r6   r4   r-  r-  ®  s   „ Úr6   r-  c                   ó   — e Zd ZdZy)ÚUpdateRegistrationzUpdate registration.Nrä   rh   r6   r4   r/  r/  ²  s   „ Úr6   r/  c                   ó¼   — e Zd ZU dZ ej
                  dej                  ¬«      Zee	d<    ej
                  dd¬«      Z
ee	d<    ej
                  dd¬«      Zee	d<   y)	ÚRegistrationResourcez²Registration Resource.

    :ivar acme.messages.Registration body:
    :ivar str new_authzr_uri: Deprecated. Do not use.
    :ivar str terms_of_service: URL for the CA TOS.

    rÞ   rl   Únew_authzr_uriTru   rÂ   N)rJ   rY   rZ   r[   rH   ro   rÿ   rM   rÞ   r_   r2  r^   rÂ   rh   r6   r4   r1  r1  ¶  sW   … ñð $˜Ÿ™ F°L×4JÑ4JÔK€Dˆ,ÓKØ$˜$Ÿ*™*Ð%5ÀÔF€N�CÓFØ&˜DŸJ™JÐ'9ÀTÔJÐ�cÔJr6   r1  c                   óì  ‡ — e Zd ZU dZdZ ej                  ddd¬«      Zee	d<    ej                  de
j                  de¬	«      Ze
e	d<    ej                  d
d¬«      Zej"                  e	d
<    ej                  dej                  dd¬	«      Zee	d<   deddfˆ fd„Zdedefˆ fd„Zdeeef   fˆ fd„Zedeeef   deeef   fˆ fd„«       Zedefd„«       Zdedefd„Zdee   fˆ fd„Z dedefd„Z!ˆ xZ"S )ÚChallengeBodya>  Challenge Resource Body.

    .. todo::
       Confusingly, this has a similar name to `.challenges.Challenge`,
       as well as `.achallenges.AnnotatedChallenge`. Please use names
       such as ``challb`` to distinguish instances of this class from
       ``achall``.

    :ivar acme.challenges.Challenge: Wrapped challenge.
        Conveniently, all challenge fields are proxied, i.e. you can
        call ``challb.x`` to get ``challb.chall.x`` contents.
    :ivar acme.messages.Status status:
    :ivar datetime.datetime validated:
    :ivar messages.Error error:

    )Úchallrú   TNrq   Ú_urlr  )rm   rr   rs   Ú	validatedru   rÐ   r„   r.   c                 ó”   •— |j                  «       D ��ci c]  \  }}| j                  |«      |“Œ }}}t        ‰| �  di |¤Ž y c c}}w r¹   rº   r½   s       €r4   r?   zChallengeBody.__init__à  sF   ø€ Ø8>¿¹»×G±°°1�$×%Ñ% aÓ(¨!Ñ+ÐGˆÑGÜ‰ÑÑ"˜6Ó"ùó HrÀ   r:   c                 ó@   •— t         ‰| �  | j                  |«      «      S r=   )r>   r›   r¼   r@   s     €r4   r›   zChallengeBody.encodeä  s   ø€ Ü‰w‰~˜d×1Ñ1°$Ó7Ó8Ð8r6   c                 óv   •— t         ‰| �  «       }|j                  | j                  j                  «       «       |S r=   )r>   rE   Úupdater5  r$  s     €r4   rE   zChallengeBody.to_partial_jsonç  s.   ø€ Ü‰wÑ&Ó(ˆØ�‰�D—J‘J×.Ñ.Ó0Ô1Øˆr6   rF   c                 ój   •— t         ‰| �  |«      }t        j                  j	                  |«      |d<   |S )Nr5  )r>   Úfields_from_jsonr   Ú	ChallengerM   )rL   rF   Újobj_fieldsrB   s      €r4   r=  zChallengeBody.fields_from_jsonì  s3   ø€ ä‘gÑ.¨tÓ4ˆÜ)×3Ñ3×=Ñ=¸dÓCˆ�GÑØÐr6   c                 ó   — | j                   S )zThe URL of this challenge.)r6  rD   s    r4   râ   zChallengeBody.uriò  s   € ð �y‰yÐr6   c                 ó.   — t        | j                  |«      S r=   )r!  r5  rÈ   s     r4   rÑ   zChallengeBody.__getattr__÷  s   € Ü�t—z‘z 4Ó(Ð(r6   c              #   óJ   •K  — t         ‰| �  «       D ]  }|dk(  rdn|–— Œ y ­w)Nr6  râ   rÄ   r@   s     €r4   rÅ   zChallengeBody.__iter__ú  s.   øè ø€ ô ‘GÑ$Ó&ò 	4ˆDØ 6š>‘%¨tÓ3ñ	4ùs   ƒ #c                 ó   — |dk(  rdS |S )Nrâ   r6  rh   rÈ   s     r4   r¼   zChallengeBody._internal_name   s   € Ø šˆvÐ0¨DÐ0r6   )#rJ   rY   rZ   r[   r\   rH   ro   r6  r^   r_   r¥   rM   ÚSTATUS_PENDINGr  r   Úrfc3339r7  Údatetimer1   rÐ   r   r?   r›   r   rE   r`   r   r=  r£   râ   rÑ   r   rÅ   r¼   rc   rd   s   @r4   r4  r4  Ã  sQ  ø… ñð  €Ið
 �—
‘
˜5¨D¸$Ô?€Dˆ#Ó?Ø�T—Z‘Z °&×2BÑ2BØ"&°ô@€FˆFó @à#1 6§>¡>°+ÈÔ#N€Iˆx× Ñ ÓNØ�4—:‘:˜g¨u¯©Ø!%¨tô5€Eˆ5ó 5ð# ð #¨õ #ð9˜3ð 9 3õ 9ð  c¨3 h¡õ ð
 ð G¨C°¨HÑ$5ð ¸$¸sÀC¸x¹.ô ó ðð
 ð�Sò ó ðð) ð )¨ó )ð4˜( 3™-õ 4ð1 3ð 1¨3÷ 1r6   r4  c                   óœ   — e Zd ZU dZ ej
                  dej                  ¬«      Zee	d<    ej
                  d«      Z
ee	d<   edefd„«       Zy)ÚChallengeResourcez‡Challenge Resource.

    :ivar acme.messages.ChallengeBody body:
    :ivar str authzr_uri: URI found in the 'up' ``Link`` header.

    rÞ   rl   Ú
authzr_urir.   c                 ó.   — | j                   j                  S )zThe URL of the challenge body.)rÞ   râ   rD   s    r4   râ   zChallengeResource.uri  s   € ð �y‰y�}‰}Ðr6   N)rJ   rY   rZ   r[   rH   ro   r4  rM   rÞ   r_   rI  r^   r£   râ   rh   r6   r4   rH  rH    sT   … ñð %˜$Ÿ*™* V°]×5LÑ5LÔM€Dˆ-ÓMØ �d—j‘j Ó.€J�Ó.àð�Sò ó ñr6   rH  c                   óš  — e Zd ZU dZ ej
                  dej                  d¬«      Zee	d<    ej
                  dd¬«      Z
ee   e	d<    ej
                  ddej                  ¬«      Zee	d<    ej                   d	d¬«      Zej$                  e	d	<    ej
                  d
d¬«      Zee	d
<   e
j*                  deeeef      deedf   fd„«       Z
y)ÚAuthorizationzÔAuthorization Resource Body.

    :ivar acme.messages.Identifier identifier:
    :ivar list challenges: `list` of `.ChallengeBody`
    :ivar acme.messages.Status status:
    :ivar datetime.datetime expires:

    rw   Trx   r   ru   r  r  ÚexpiresÚwildcardrn   r.   .c                 ó&   — t        d„ | D «       «      S )Nc              3   óF   K  — | ]  }t         j                  |«      –— Œ y ­wr=   )r4  rM   )r|   r5  s     r4   r~   z+Authorization.challenges.<locals>.<genexpr>,  s   è ø€ ÒG¸”]×,Ñ,¨U×3ÑGùr   r€   r‚   s    r4   r   zAuthorization.challenges*  s   € äÑGÀÔGÓGÐGr6   N)rJ   rY   rZ   r[   rH   ro   rk   rM   rw   r_   r   r   r4  r¥   r  r   rE  rM  rF  rN  ra   rm   r   r^   r   r   rh   r6   r4   rL  rL    sÝ   … ñð (˜TŸZ™Z¨¸j×>RÑ>RÐ^bÔc€J�
ÓcØ&0 d§j¡j°ÈÔ&N€J��]Ñ#ÓNà�T—Z‘Z °DÀ&×BRÑBRÔS€FˆFÓSð
 "0 §¡°	ÀTÔ!J€GˆX×ÑÓJØ�T—Z‘Z 
°dÔ;€HˆdÓ;ð ×ÑðH˜$˜t C¨ H™~Ñ.ð H°5¸ÈÐ9KÑ3Lò Hó ñHr6   rL  c                   ó   — e Zd ZdZy)ÚNewAuthorizationzNew authorization.Nrä   rh   r6   r4   rR  rR  /  s   „ Úr6   rR  c                   ó   — e Zd ZdZy)ÚUpdateAuthorizationzUpdate authorization.Nrä   rh   r6   r4   rT  rT  3  s   „ Úr6   rT  c                   óŠ   — e Zd ZU dZ ej
                  dej                  ¬«      Zee	d<    ej
                  dd¬«      Z
ee	d<   y)ÚAuthorizationResourcez~Authorization Resource.

    :ivar acme.messages.Authorization body:
    :ivar str new_cert_uri: Deprecated. Do not use.

    rÞ   rl   Únew_cert_uriTru   N)rJ   rY   rZ   r[   rH   ro   rL  rM   rÞ   r_   rW  r^   rh   r6   r4   rV  rV  7  s=   … ñð %˜$Ÿ*™* V°]×5LÑ5LÔM€Dˆ-ÓMØ"˜Ÿ
™
 >¸TÔB€L�#ÔBr6   rV  c                   ó‚   — e Zd ZU dZ ej
                  dej                  ej                  ¬«      Zej                  e
d<   y)ÚCertificateRequestz~ACME newOrder request.

    :ivar jose.ComparableX509 csr:
        `OpenSSL.crypto.X509Req` wrapped in `.ComparableX509`

    Úcsr©rm   ÚencoderN)rJ   rY   rZ   r[   rH   ro   Ú
decode_csrÚ
encode_csrrZ  ÚComparableX509r_   rh   r6   r4   rY  rY  B  s3   … ñð  *˜tŸz™z¨%¸¿¹ÐRV×RaÑRaÔb€Cˆ×	Ñ	Ôbr6   rY  c                   óx   — e Zd ZU dZ ej
                  d«      Zeed<    ej
                  d«      Z	e
edf   ed<   y)ÚCertificateResourcea  Certificate Resource.

    :ivar josepy.util.ComparableX509 body:
        `OpenSSL.crypto.X509` wrapped in `.ComparableX509`
    :ivar str cert_chain_uri: URI found in the 'up' ``Link`` header
    :ivar tuple authzrs: `tuple` of `AuthorizationResource`.

    Úcert_chain_uriÚauthzrs.N)rJ   rY   rZ   r[   rH   ro   rb  r^   r_   rc  r   rV  rh   r6   r4   ra  ra  L  s?   … ñð %˜$Ÿ*™*Ð%5Ó6€N�CÓ6Ø1;°·±¸IÓ1F€GˆUÐ(¨#Ð-Ñ.ÔFr6   ra  c                   ó°   — e Zd ZU dZ ej
                  dej                  ej                  ¬«      Zej                  e
d<    ej
                  d«      Zee
d<   y)Ú
Revocationz„Revocation message.

    :ivar jose.ComparableX509 certificate: `OpenSSL.crypto.X509` wrapped in
        `jose.ComparableX509`

    Úcertificater[  ÚreasonN)rJ   rY   rZ   r[   rH   ro   Údecode_certÚencode_certrf  r_  r_   rg  rb   rh   r6   r4   re  re  Y  sP   … ñð (2 t§z¡zØ˜t×/Ñ/¸×9IÑ9Iô(K€K�×$Ñ$ó Kà�$—*‘*˜XÓ&€FˆCÔ&r6   re  c                   ó  — e Zd ZU dZ ej
                  dd¬«      Zee   e	d<    ej
                  de
j                  d¬«      Ze
e	d<    ej
                  dd¬«      Zee   e	d<    ej
                  dd¬«      Zee	d<    ej
                  d	d¬«      Zee	d	<    ej$                  d
d¬«      Zej(                  e	d
<    ej
                  ddej                  ¬«      Zee	d<   ej.                  deeeef      deedf   fd„«       Zy)ÚOrdera_  Order Resource Body.

    :ivar identifiers: List of identifiers for the certificate.
    :vartype identifiers: `list` of `.Identifier`
    :ivar acme.messages.Status status:
    :ivar authorizations: URLs of authorizations.
    :vartype authorizations: `list` of `str`
    :ivar str certificate: URL to download certificate as a fullchain PEM.
    :ivar str finalize: URL to POST to to request issuance once all
        authorizations have "valid" status.
    :ivar datetime.datetime expires: When the order expires.
    :ivar ~.Error error: Any error that occurred during finalization, if applicable.
    ÚidentifiersTru   r  rx   Úauthorizationsrf  ÚfinalizerM  rÐ   r  rn   r.   .c                 ó&   — t        d„ | D «       «      S )Nc              3   óF   K  — | ]  }t         j                  |«      –— Œ y ­wr=   )rk   rM   )r|   rw   s     r4   r~   z$Order.identifiers.<locals>.<genexpr>  s   è ø€ ÒN¸*”Z×)Ñ)¨*×5ÑNùr   r€   r‚   s    r4   rl  zOrder.identifiers}  s   € äÑNÈÔNÓNÐNr6   N)rJ   rY   rZ   r[   rH   ro   rl  r   rk   r_   r¥   rM   r  rm  r^   rf  rn  r   rE  rM  rF  r1   rÐ   rm   r   r   r   rh   r6   r4   rk  rk  e  s
  … ñð %/ D§J¡J¨}ÈÔ$M€K��jÑ!ÓMØ�T—Z‘Z °&×2BÑ2BÈdÔS€FˆFÓSØ * §
¡
Ð+;ÀtÔ L€N�D˜‘IÓLØ!�t—z‘z -¸4Ô@€K�Ó@Ø�D—J‘J˜z°TÔ:€HˆcÓ:Ø!/ §¡°	ÀTÔ!J€GˆX×ÑÓJØ�4—:‘:˜g°¸u¿¹ÔO€Eˆ5ÓOð ×ÑðO˜4  S¨# X¡Ñ/ð O°E¸*Àc¸/Ñ4Jò Oó ñOr6   rk  c                   óx  — e Zd ZU dZ ej
                  dej                  ¬«      Zee	d<    ej
                  ddd„ d„ ¬«      Z
ee	d<    ej
                  d	«      Zee   e	d	<    ej
                  d
d¬«      Zee	d
<    ej
                  dd¬«      Zee   e	d<   ej$                  deeeef      deedf   fd„«       Zy)ÚOrderResourcea™  Order Resource.

    :ivar acme.messages.Order body:
    :ivar bytes csr_pem: The CSR this Order will be finalized with.
    :ivar authorizations: Fully-fetched AuthorizationResource objects.
    :vartype authorizations: `list` of `acme.messages.AuthorizationResource`
    :ivar str fullchain_pem: The fetched contents of the certificate URL
        produced once the order was finalized, if it's present.
    :ivar alternative_fullchains_pem: The fetched contents of alternative certificate
        chain URLs produced once the order was finalized, if present and requested during
        finalization.
    :vartype alternative_fullchains_pem: `list` of `str`
    rÞ   rl   Úcsr_pemTc                 ó$   — | j                  d«      S ©Nzutf-8rš   )Úss    r4   rÖ   zOrderResource.<lambda>™  ó   € °!·(±(¸7Ó2C€ r6   c                 ó$   — | j                  d«      S ru  )rŸ   )Úbs    r4   rÖ   zOrderResource.<lambda>š  rw  r6   )rr   rm   r\  rm  Úfullchain_pemru   Úalternative_fullchains_pemrn   r.   .c                 ó&   — t        d„ | D «       «      S )Nc              3   óF   K  — | ]  }t         j                  |«      –— Œ y ­wr=   )rV  rM   )r|   Úauthzs     r4   r~   z/OrderResource.authorizations.<locals>.<genexpr>¥  s   è ø€ ÒOÀÔ*×4Ñ4°U×;ÑOùr   r€   r‚   s    r4   rm  zOrderResource.authorizations£  s   € äÑOÈÔOÓOÐOr6   N)rJ   rY   rZ   r[   rH   ro   rk  rM   rÞ   r_   rs  Úbytesrm  r   rV  rz  r^   r{  rm   r   r   r   rh   r6   r4   rr  rr  ‚  sè   … ñð �$—*‘*˜V¨U¯_©_Ô=€Dˆ%Ó=Ø�T—Z‘Z 	°Tñ )DÙ(Cô	E€GˆUó 	Eð 3=°$·*±*Ð=MÓ2N€N�DÐ.Ñ/ÓNØ#˜Ÿ™ O¸tÔD€M�3ÓDØ,6¨D¯J©JÐ7SØAEô-GÐ  S¡	ó Gð
 ×ÑðP˜d 4¨¨S¨¡>Ñ2ð P°uÐ=RÐTWÐ=WÑ7Xò Pó ñPr6   rr  c                   ó   — e Zd ZdZy)ÚNewOrderz
New order.Nrä   rh   r6   r4   r�  r�  ¨  s   „ Úr6   r�  )Fr[   Úcollections.abcr   rF  rî   Útypingr   r   r   r   r   r	   r
   r   r   r   ÚjosepyrH   Úacmer   r   r   r   r   r3   r†   r»   rŠ   ÚBaseExceptionra   r5   ÚJSONDeSerializabler8   rf   ÚIDENTIFIER_FQDNÚIDENTIFIER_IPrÛ   rk   r1   r¥   ÚSTATUS_UNKNOWNrD  ÚSTATUS_PROCESSINGÚSTATUS_VALIDÚSTATUS_INVALIDÚSTATUS_REVOKEDÚSTATUS_READYÚSTATUS_DEACTIVATEDr¯   rÝ   rá   rß   ræ   rþ   rÿ   r-  r/  r1  r4  rH  rL  rR  rT  rV  rY  ra  re  rk  rr  r�  )r:   Údescs   00r4   ú<module>r’     s�  ðÙ Ý $Û Û Ý Ý Ý Ý Ý Ý !Ý Ý Ý Ý ã å Ý Ý Ý Ý à,€ðØÐQðàð ðð ÐBð	ð
 ÐCðð ÐTðð ÐXðð Ð_ðð 
ð ðð ÐTðð ð ðð 
ÐNðð ÐDðð  ÐXð!ð$ ÐGð%ð& Ð<ð'ð( Ð4ð)ð* ÐUð+ð, dØAØ@ØJØ?Ø\Ø?ØFØMò=€ðBØ0;×0AÑ0AÓ0C÷Ù", $¨€L�4Ñ˜Ñóð Ð ð
�}ð ¨ó ô1�×'Ñ'¨ô 1ô:.�Yô .ñ
 ! Ó'€Ù˜tÓ$€ô%�×*Ñ*ô %ôTˆD×%Ñ% v§|¡|ô Tôn.ˆYô .ñ
 ˜	Ó"€Ù˜	Ó"€Ù˜<Ó(Ð Ù�g‹€Ù˜	Ó"€Ù˜	Ó"€Ù�g‹€Ù˜MÓ*Ð ô4�×'Ñ'ô 4ôn.ˆt×(Ñ(ô .ô!�hô !ô�4×,Ñ,ô ÷%ñ %ñ& Ð3¸>ÔJÐ ôj7�<ô j7ôZ�lô ô˜ô ô
K˜?ô 
Kô>1�Lô >1ôB˜ô ô H�Lô Hô6�}ô ô ˜-ô  ôC˜Oô Côc˜×2Ñ2ô cô
G˜/ô 
Gô	'�×*Ñ*ô 	'ôOˆLô Oô:#P�Oô #PôLˆuõ ùó[s   ÃJ7