§
    êXÊjIF  ã                   ó>  — 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mZmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZ d dlmZmZ ddlmZ eZeZ eZ! G d	„ d
e¦  «        Z" ee"¦  «        Z# ee#¦  «        Z$ G d„ de¦  «        Z% ee%¦  «        Z& G d„ de¦  «        Z' G d„ de¦  «        Z(er	ee(         Z)n ee(¦  «        Z) G d„ de¦  «        Z* G d„ de¦  «        Z+ ee+¦  «        Z, G d„ de¦  «        Z- ee-¦  «        Z. G d„ de¦  «        Z/ ee/¦  «        Z0 ee0¦  «        Z1 G d„ de¦  «        Z2 G d„ de¦  «        Z3 ee3¦  «        Z4 G d„ de¦  «        Z5 ee5¦  «        Z6 G d„ d e¦  «        Z7 ee7¦  «        Z8 ee¦  «        Z9dZ:d!Z;d"Z<d#Z=dZ> ed$¦  «        Z?d%Z@d&ZAd'ZBd(ZCd)ZDd*ZEd+ZFd,ZGd-ZHd.ZId/ZJd0ZKd#ZLd1ZMd0ZNd2ZOeBeCz  eDz  eEz  eFz  eGz  eHz  eIz  eJz  ZP ed3¦  «        ZQ ed4¦  «        ZRd5eSd6ed7ed8efd9„ZTeQjU        ZUe8e9feU_V        eTeU_W        eQjX        ZXeee!ee
feX_V        e eX_Y        eTeX_W        eQjZ        ZZe eeeee$feZ_V        eeZ_Y        eQj[        Z[eeefe[_V        e#e[_Y        eTe[_W        eQj\        Z\ee#ee e)ee
e1fe\_V        ee\_Y        eTe\_W        eQj]        Z]e	e0e4e6fe]_V        ee]_Y        eQj^        Z^e efe^_V        ee^_Y        eTe^_W        eQj_        Z_e0fe__V        eQj`        Z`e#fe`_V        eQja        Zaefea_V        eRjb        Zbeeeeeee
feb_V        eeb_Y        	 dHd:ejc        d;edee         d<efdz  d8dfd=„Zgd:ejc        d>edz  d?e d@e
dAe)d<efdz  dBehd8dfdC„Zid:ejc        dDedee         d?e d@e
dAe)d<efdz  dBehd8dfdE„Zje jk        dFejc        d8ejl        d         fdG„¦   «         ZmdS )Ié    N)ÚWinDLL©ÚWinError)
ÚPOINTERÚ	StructureÚc_char_pÚc_ulongÚc_void_pÚ	c_wchar_pÚcastÚcreate_unicode_bufferÚpointerÚsizeof)
ÚBOOLÚDWORDÚHANDLEÚLONGÚLPCSTRÚLPCVOIDÚLPCWSTRÚ
LPFILETIMEÚLPSTRÚLPWSTR)ÚTYPE_CHECKINGÚAnyé   )Ú_set_ssl_context_verify_modec                   ó0   — e Zd ZdefdefdefdefdeffZdS )ÚCERT_CONTEXTÚdwCertEncodingTypeÚpbCertEncodedÚcbCertEncodedÚ	pCertInfoÚ
hCertStoreN)Ú__name__Ú
__module__Ú__qualname__r   r
   Ú
HCERTSTOREÚ_fields_© ó    úDC:\Projects\Historical\venv\Lib\site-packages\truststore/_windows.pyr   r   '   s=   € € € € € à	˜uÐ%Ø	˜(Ð#Ø	˜%Ð Ø	�hÐØ	�zÐ"ð€H€H€Hr+   r   c                   ó0   — e Zd Zdefd ee¦  «        ffZdS )ÚCERT_ENHKEY_USAGEÚcUsageIdentifierÚrgpszUsageIdentifierN)r%   r&   r'   r   r   r   r)   r*   r+   r,   r.   r.   5   s-   € € € € € à	˜UÐ#Ø	  ¨¡¤Ð0ð€H€H€Hr+   r.   c                   ó   — e Zd ZdefdeffZdS )ÚCERT_USAGE_MATCHÚdwTypeÚUsageN)r%   r&   r'   r   r.   r)   r*   r+   r,   r2   r2   ?   s&   € € € € € à	�5ÐØ	Ð#Ð$ð€H€H€Hr+   r2   c            
       óH   — e Zd Zdefdefdefdefdefdefdefdefd	eff	Zd
S )ÚCERT_CHAIN_PARAÚcbSizeÚRequestedUsageÚRequestedIssuancePolicyÚdwUrlRetrievalTimeoutÚfCheckRevocationFreshnessTimeÚdwRevocationFreshnessTimeÚpftCacheResyncÚpStrongSignParaÚdwStrongSignFlagsN)	r%   r&   r'   r   r2   r   r   r
   r)   r*   r+   r,   r6   r6   F   s_   € € € € € à	�5ÐØ	Ð+Ð,Ø	"Ð$4Ð5Ø	  %Ð(Ø	(¨$Ð/Ø	$ eÐ,Ø	˜:Ð&Ø	˜HÐ%Ø	˜eÐ$ð
€H€H€Hr+   r6   c                   ó   — e Zd ZdefdeffZdS )ÚCERT_TRUST_STATUSÚdwErrorStatusÚdwInfoStatusN)r%   r&   r'   r   r)   r*   r+   r,   rA   rA   Z   s%   € € € € € à	˜%Ð Ø	˜Ðð€H€H€Hr+   rA   c                   ó<   — e Zd ZdefdefdefdefdefdefdeffZ	dS )	ÚCERT_CHAIN_ELEMENTr7   ÚpCertContextÚTrustStatusÚpRevocationInfoÚpIssuanceUsageÚpApplicationUsageÚpwszExtendedErrorInfoN)
r%   r&   r'   r   ÚPCERT_CONTEXTrA   r
   ÚPCERT_ENHKEY_USAGEr   r)   r*   r+   r,   rE   rE   a   sP   € € € € € à	�5ÐØ	˜Ð'Ø	Ð)Ð*Ø	˜HÐ%Ø	Ð-Ð.Ø	Ð0Ð1Ø	  'Ð*ð€H€H€Hr+   rE   c                   óN   — e Zd Zdefdefdefd ee¦  «        fdefdefdeffZ	dS )	ÚCERT_SIMPLE_CHAINr7   rG   ÚcElementÚ
rgpElementÚpTrustListInfoÚfHasRevocationFreshnessTimer<   N)
r%   r&   r'   r   rA   r   ÚPCERT_CHAIN_ELEMENTr
   r   r)   r*   r+   r,   rO   rO   p   sY   € € € € € à	�5ÐØ	Ð)Ð*Ø	�UÐØ	�w�wÐ2Ñ3Ô3Ð4Ø	˜8Ð$Ø	&¨Ð-Ø	$ eÐ,ð€H€H€Hr+   rO   c            	       óT   — e Zd Zdefdefdefd ee¦  «        fdefdefdefdeffZ	d	S )
ÚCERT_CHAIN_CONTEXTr7   rG   ÚcChainÚrgpChainÚcLowerQualityChainContextÚrgpLowerQualityChainContextrS   r<   N)
r%   r&   r'   r   rA   r   ÚPCERT_SIMPLE_CHAINr
   r   r)   r*   r+   r,   rV   rV      sa   € € € € € à	�5ÐØ	Ð)Ð*Ø	�5ÐØ	�W�WÐ/Ñ0Ô0Ð1Ø	$ eÐ,Ø	&¨Ð1Ø	&¨Ð-Ø	$ eÐ,ð	€H€H€Hr+   rV   c                   ó*   — e Zd ZdefdefdefdeffZdS )Ú SSL_EXTRA_CERT_CHAIN_POLICY_PARAr7   Ú
dwAuthTypeÚ	fdwChecksÚpwszServerNameN)r%   r&   r'   r   r   r)   r*   r+   r,   r]   r]   �   s5   € € € € € à	�5ÐØ	�uÐØ	�eÐØ	˜7Ð#ð	€H€H€Hr+   r]   c                   ó$   — e Zd ZdefdefdeffZdS )ÚCERT_CHAIN_POLICY_PARAr7   ÚdwFlagsÚpvExtraPolicyParaN)r%   r&   r'   r   r
   r)   r*   r+   r,   rb   rb   ™   s-   € € € € € à	�5ÐØ	�EÐØ	˜hÐ'ð€H€H€Hr+   rb   c                   ó0   — e Zd ZdefdefdefdefdeffZdS )ÚCERT_CHAIN_POLICY_STATUSr7   ÚdwErrorÚlChainIndexÚlElementIndexÚpvExtraPolicyStatusN)r%   r&   r'   r   r   r
   r)   r*   r+   r,   rf   rf   ¤   s=   € € € € € à	�5ÐØ	�EÐØ	˜ÐØ	˜$ÐØ	 Ð)ð€H€H€Hr+   rf   c                   ó`   — e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefdefdeffZdS )ÚCERT_CHAIN_ENGINE_CONFIGr7   ÚhRestrictedRootÚhRestrictedTrustÚhRestrictedOtherÚcAdditionalStoreÚrghAdditionalStorerc   r:   ÚMaximumCachedCertificatesÚCycleDetectionModulusÚhExclusiveRootÚhExclusiveTrustedPeopleÚdwExclusiveFlagsN)r%   r&   r'   r   r(   r
   r)   r*   r+   r,   rl   rl   ±   s}   € € € € € à	�5ÐØ	˜JÐ'Ø	˜ZÐ(Ø	˜ZÐ(Ø	˜UÐ#Ø	˜xÐ(Ø	�EÐØ	  %Ð(Ø	$ eÐ,Ø	  %Ð(Ø	˜:Ð&Ø	" JÐ/Ø	˜UÐ#ð€H€H€Hr+   rl   i   s   Memoryé   s   1.3.6.1.5.5.7.3.1i   i    é   é   é   é@   é    é€   i   i €  i @  i   é   i   zcrypt32.dllzkernel32.dllÚresultÚ_ÚargsÚreturnc                 ó&   — | st          ¦   «         ‚|S ©Nr   )r   r€   r�   s      r,   Ú_handle_win_errorr…   î   s   € Øð å‰jŒjÐØ€Kr+   Ússl_contextÚ
cert_chainÚserver_hostnamec           
      óH  — |st          j        d¦  «        ‚d}t          t          dddd¦  «        }	 |dd…         D ]5}t	          |t
          t          z  |t          |¦  «        t          d¦  «         Œ6|d         }t          t
          t          z  |t          |¦  «        ¦  «        }t          ¦   «         }d|_        t          dz  t          ¦  «        |_        t          ¦   «         }||_        t#          ¦   «         }	||	_        t'          |	¦  «        |	_        t+          |	¦  «        }
| j        t           j        z  rt0          }n| j        t           j        z  rt4          }nd}	 t7          | d|||
||¬¦  «         nc# t           j        $ rQ}|                      d¬¦  «        }|r.	 t;          | ||||
||¬¦  «         n# t           j        $ r |d‚w xY w‚ Y d}~nd}~ww xY wt=          |d¦  «         |rt?          |¦  «         dS dS # t=          |d¦  «         |rt?          |¦  «         w w xY w)z9Verify the cert_chain from the server using Windows APIs.z#Peer sent no certificates to verifyNr   r   )Úchain_flagsT)Úbinary_form) ÚsslÚSSLCertVerificationErrorÚCertOpenStoreÚCERT_STORE_PROV_MEMORYÚ CertAddEncodedCertificateToStoreÚX509_ASN_ENCODINGÚPKCS_7_ASN_ENCODINGÚlenÚCERT_STORE_ADD_USE_EXISTINGÚCertCreateCertificateContextr.   r/   r   ÚOID_PKIX_KP_SERVER_AUTHr0   r2   r4   r6   r8   r   r7   r   Úverify_flagsÚVERIFY_CRL_CHECK_CHAINÚ!CERT_CHAIN_REVOCATION_CHECK_CHAINÚVERIFY_CRL_CHECK_LEAFÚ$CERT_CHAIN_REVOCATION_CHECK_END_CERTÚ_get_and_verify_cert_chainÚget_ca_certsÚ_verify_using_custom_ca_certsÚCertCloseStoreÚCertFreeCertificateContext)r†   r‡   rˆ   rF   ÚhIntermediateCertStoreÚ
cert_bytesÚ	leaf_certÚcert_enhkey_usageÚcert_usage_matchÚchain_paramsÚ
pChainPararŠ   ÚeÚcustom_ca_certss                 r,   Ú_verify_peercerts_implrª   C  sÕ  € ð ð RÝÔ*Ð+PÑQÔQÐQà€LÝ*Õ+AÀ1ÀdÈAÈtÑTÔTÐðK5à$ Q R Rœ.ð 	ð 	ˆJÝ,Ø&Ý!Õ$7Ñ7ØÝ�J‘”Ý+Øñô ð ð ð ˜q”Mˆ	Ý3ÝÕ 3Ñ3°YÅÀIÁÄñ
ô 
ˆõ
 .Ñ/Ô/ÐØ-.ÐÔ*Ý2:¸Q±,Õ@WÑ1XÔ1XÐÔ.Ý+Ñ-Ô-ÐØ!2ÐÔÝ&Ñ(Ô(ˆØ&6ˆÔ#Ý$ \Ñ2Ô2ˆÔÝ˜\Ñ*Ô*ˆ
àÔ#¥cÔ&@Ñ@ð 	Ý;ˆKˆKØÔ%­Ô(AÑAð 	Ý>ˆKˆKàˆKð#	õ 'ØØØ&ØØØØ'ðñ ô ð ð øõ Ô+ð 	ð 	ð 	ð
 3>×2JÒ2JØ ð 3Kñ 3ô 3ˆOð ð ð&Ý1Ø#Ø'Ø.Ø$Ø"Ø'Ø$/ðñ ô ð ð øõ Ô3ð &ð &ð &Ø Ð%ð&øøøð ðð ð ð ð øøøøð	øøøõ2 	Ð-¨qÑ1Ô1Ð1Øð 	5Ý& |Ñ4Ô4Ð4Ð4Ð4ð	5ð 	5øõ 	Ð-¨qÑ1Ô1Ð1Øð 	5Ý& |Ñ4Ô4Ð4Ð4ð	5øøøsN   ²D+G= ÅE5 Å4G= Å5GÆGÆF4Æ3GÆ4GÇGÇG= ÇGÇG= Ç=$H!ÚhChainEnginer¡   ÚpPeerCertContextr§   rŠ   c           
      óp  — d }	 t          t          ¦   «         ¦  «        }t          ||d |||d |¦  «         |j        }t	          ¦   «         }	t          |	¦  «        |	_        t          |	_        d|	_	        | j
        du rt          |	_	        |rt          |¦  «        |	_        t          ¦   «         }
t          t          |	¦  «        t           ¦  «        |
_        | j        t&          j        k    r|
xj        t,          z  c_        t          |
¦  «        |
_        t          |
¦  «        }t/          ¦   «         }t          |¦  «        |_        t          |¦  «        }t1          t2          |||¦  «         |j        }|r’t7          d¦  «        }t9          t:          t<          z  d |d|t          |¦  «        d ¦  «        }|dk    rd|d›d|j        › d�}n|j          !                    ¦   «         }t'          j"        |¦  «        }||_#        ||_$        |d ‚	 |rtK          |j        ¦  «         d S d S # |rtK          |j        ¦  «         w w xY w)Nr   Fi   zCertificate chain policy error z#xz [ú])&r   ÚPCERT_CHAIN_CONTEXTÚCertGetCertificateChainÚcontentsr]   r   r7   ÚAUTHTYPE_SERVERr^   r_   Úcheck_hostnameÚ$SECURITY_FLAG_IGNORE_CERT_CN_INVALIDr   r`   rb   r   r
   rd   Úverify_moderŒ   Ú	CERT_NONErc   Ú(CERT_CHAIN_POLICY_VERIFY_MODE_NONE_FLAGSrf   Ú CertVerifyCertificateChainPolicyÚCERT_CHAIN_POLICY_SSLrg   r   ÚFormatMessageWÚFORMAT_MESSAGE_FROM_SYSTEMÚFORMAT_MESSAGE_IGNORE_INSERTSri   ÚvalueÚstripr�   Úverify_messageÚverify_codeÚCertFreeCertificateChain)r†   r«   r¡   r¬   r§   rˆ   rŠ   ÚppChainContextÚpChainContextÚ ssl_extra_cert_chain_policy_paraÚchain_policyÚpPolicyParaÚpolicy_statusÚpPolicyStatusÚ
error_codeÚerror_message_bufÚerror_message_charsÚerror_messageÚerrs                      r,   rœ   rœ   Ÿ  sŒ  € ð €NðM>å Õ!4Ñ!6Ô!6Ñ7Ô7ˆÝØØØØ"ØØØØñ		
ô 		
ð 		
ð 'Ô/ˆõ ,LÑ+MÔ+MÐ(Ý28Ø,ñ3
ô 3
Ð(Ô/õ 7FÐ(Ô3Ø56Ð(Ô2ØÔ%¨Ð.Ð.å4ð -Ô6ð ð 	YÝ>GÈÑ>XÔ>XÐ,Ô;å-Ñ/Ô/ˆÝ)-ÝÐ4Ñ5Ô5µxñ*
ô *
ˆÔ&ð Ô"¥c¤mÒ3Ð3ØÐ Ô Õ$LÑLÐ Ô Ý$ \Ñ2Ô2ˆÔå˜lÑ+Ô+ˆÝ0Ñ2Ô2ˆÝ% mÑ4Ô4ˆÔÝ Ñ.Ô.ˆÝ(Ý!ØØØñ		
ô 	
ð 	
ð #Ô*ˆ
Øð 	 å 5°dÑ ;Ô ;ÐÝ"0Ý*Õ-JÑJØØØØ!ÝÐ(Ñ)Ô)Øñ#ô #Ðð # aÒ'Ð'Ø qÀ*Ð qÐ qÐ qÐS`ÔSnÐ qÐ qÐ q��à 1Ô 7× =Ò =Ñ ?Ô ?�åÔ.¨}Ñ=Ô=ˆCØ!.ˆCÔØ(ˆCŒOØ˜4Ðð1	 ð4 ð 	>Ý$ ^Ô%<Ñ=Ô=Ð=Ð=Ð=ð	>ð 	>øˆ>ð 	>Ý$ ^Ô%<Ñ=Ô=Ð=Ð=ð	>øøøs   „G=H ÈH5r©   c           	      ó8  — d }t          t          dd dd ¦  «        }	 |D ]5}	t          |t          t          z  |	t          |	¦  «        t          d ¦  «         Œ6t          ¦   «         }
t          |
¦  «        |
_	        ||
_
        t          |
¦  «        }t          t          ¦   «         ¦  «        }t          ||¦  «         |j        }t          | ||||||¦  «         |rt!          |¦  «         t#          |d¦  «         d S # |rt!          |¦  «         t#          |d¦  «         w xY w)Nr   )rŽ   r�   r�   r‘   r’   r“   r”   rl   r   r7   rt   r   ÚHCERTCHAINENGINEÚ CertCreateCertificateChainEnginer±   rœ   ÚCertFreeCertificateChainEnginerŸ   )r†   r©   r¡   r¬   r§   rˆ   rŠ   r«   ÚhRootCertStorer¢   Úcert_chain_engine_configÚpConfigÚphChainEngines                r,   rž   rž   ù  s[  € ð €LÝ"Õ#9¸1¸dÀAÀtÑLÔL€Nð&*à)ð 	ð 	ˆJÝ,ØÝ!Õ$7Ñ7ØÝ�J‘”Ý+Øñô ð ð õ $<Ñ#=Ô#=Ð Ý*0Ð1IÑ*JÔ*JÐ Ô'Ø2@Ð Ô/ÝÐ2Ñ3Ô3ˆÝÕ 0Ñ 2Ô 2Ñ3Ô3ˆÝ(ØØñ	
ô 	
ð 	
ð %Ô-ˆõ 	#ØØØ"ØØØØñ	
ô 	
ð 	
ð ð 	9Ý*¨<Ñ8Ô8Ð8Ý�~ qÑ)Ô)Ð)Ð)Ð)øð ð 	9Ý*¨<Ñ8Ô8Ð8Ý�~ qÑ)Ô)Ð)Ð)øøøs   œB7C6 Ã6#DÚctxc              #   óØ   K  — | j         }| j        }d| _         t          | t          j        ¦  «         	 d V — || _         t          | |¦  «         d S # || _         t          | |¦  «         w xY w)NF)r³   rµ   r   rŒ   r¶   )rÖ   r³   rµ   s      r,   Ú_configure_contextrØ   -  s|   è è € àÔ'€NØ”/€KØ€CÔÝ  ¥c¤mÑ4Ô4Ð4ð7Øˆˆˆà+ˆÔÝ$ S¨+Ñ6Ô6Ð6Ð6Ð6øð ,ˆÔÝ$ S¨+Ñ6Ô6Ð6Ð6øøøs   ³A ÁA)r„   )nÚ
contextlibrŒ   ÚtypingÚctypesr   r   r   r   r   r	   r
   r   r   r   r   r   Úctypes.wintypesr   r   r   r   r   r   r   r   r   r   r   r   Ú_ssl_constantsr   rÏ   r(   ÚHCRYPTPROV_LEGACYr   rL   ÚPCCERT_CONTEXTr.   rM   r2   r6   ÚPCERT_CHAIN_PARArA   rE   rT   rO   r[   rV   r¯   ÚPCCERT_CHAIN_CONTEXTr]   rb   ÚPCERT_CHAIN_POLICY_PARArf   ÚPCERT_CHAIN_POLICY_STATUSrl   ÚPCERT_CHAIN_ENGINE_CONFIGÚPHCERTCHAINENGINEr‘   r’   r�   r”   ÚUSAGE_MATCH_TYPE_ORr–   r›   r™   Ú1CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGSÚ7CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAGÚ'CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAGÚ*CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAGÚ)CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAGÚ,CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAGÚ.CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGSÚ%CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAGÚ%CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAGr´   r²   r¹   r»   r¼   r·   ÚwincryptÚkernel32Úboolr…   rÐ   ÚargtypesÚerrcheckrŽ   Úrestyper�   r•   r°   r¸   rŸ   rÁ   r    rÑ   rº   Ú
SSLContextÚlistÚbytesÚstrrª   Úintrœ   rž   ÚcontextmanagerÚIteratorrØ   r*   r+   r,   ú<module>rý      s¼  ðØ Ð Ð Ð Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %Ð %Ð %à 8Ð 8Ð 8Ð 8Ð 8Ð 8àÐ Ø€
ØÐ ðð ð ð ð �9ñ ô ð ð �˜Ñ%Ô%€Ø�˜Ñ'Ô'€ðð ð ð ð ˜	ñ ô ð ð �WÐ.Ñ/Ô/Ð ðð ð ð ð �yñ ô ð ðð ð ð ð �iñ ô ð ð ð 0Ø˜Ô/ÐÐà�w˜Ñ/Ô/Ððð ð ð ð ˜	ñ ô ð ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð �gÐ0Ñ1Ô1Ð ð	ð 	ð 	ð 	ð 	˜	ñ 	ô 	ð 	ð �WÐ.Ñ/Ô/Ð ð
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ð �gÐ0Ñ1Ô1Ð Ø�wÐ2Ñ3Ô3Ð ðð ð ð ð  yñ ô ð ðð ð ð ð ˜Yñ ô ð ð "˜'Ð"8Ñ9Ô9Ð ðð ð ð ð ˜yñ ô ð ð $˜GÐ$<Ñ=Ô=Ð ðð ð ð ð ˜yñ ô ð ð$ $˜GÐ$<Ñ=Ô=Ð Ø�GÐ,Ñ-Ô-Ð àÐ Ø Ð Ø"Ð ØÐ ØÐ Ø"˜(Ð#7Ñ8Ô8Ð Ø'1Ð $Ø$.Ð !Ø4>Ð 1Ø:DÐ 7Ø*4Ð 'Ø-7Ð *Ø,6Ð )Ø/9Ð ,Ø1;Ð .Ø(2Ð %Ø(2Ð %Ø'1Ð $Ø€ØÐ Ø'Ð Ø *Ð ð 6Ø=ñ>à-ñ.ð 1ñ1ð 0ñ	0ð
 3ñ3ð 5ñ5ð ,ñ,ð ,ñ,ð )ð ˆ6�-Ñ Ô €Øˆ6�.Ñ!Ô!€ð˜dð  sð °#ð ¸#ð ð ð ð ð $,Ô#LÐ  àØð-Ð  Ô )ð ->Ð  Ô )àÔ&€Ø  %Ð):¸EÀ8ÐL€Ô Ø"€Ô Ø*€Ô à#+Ô#LÐ  àØ	ØØ	Ø	Øð-Ð  Ô )ð ,0Ð  Ô (à'ÔDÐ Ø).°¸%Ð(@Ð Ô %Ø'4Ð Ô $Ø(9Ð Ô %à"Ô:Ð àØØØØØ	ØØð	$Ð Ô  ð #'Ð Ô Ø#4Ð Ô  à#+Ô#LÐ  àØØØð	-Ð  Ô )ð ,0Ð  Ô (àÔ(€Ø% uÐ-€Ô Ø€Ô Ø+€Ô à#Ô<Ð Ø%8Ð$:Ð Ô !à%Ô@Ð Ø'4Ð&6Ð Ô #à!)Ô!HÐ Ø+;Ð*=Ð Ô 'àÔ(€à	ØØ	Ø	Ø
Ø	Øð€Ô ð €Ô ð #'ðY5ð Y5Ø”ðY5à�U”ðY5ð ˜4‘ZðY5ð 
ð	Y5ð Y5ð Y5ð Y5ðxW>Ø”ðW>à" TÑ)ðW>ð 'ðW>ð ð	W>ð
 !ðW>ð ˜4‘ZðW>ð ðW>ð 
ðW>ð W>ð W>ð W>ðt1*Ø”ð1*à˜%”[ð1*ð 'ð1*ð ð	1*ð
 !ð1*ð ˜4‘Zð1*ð ð1*ð 
ð1*ð 1*ð 1*ð 1*ðh Ôð	7˜CœNð 	7¨v¬¸tÔ/Dð 	7ð 	7ð 	7ñ Ôð	7ð 	7ð 	7r+   