PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 131
a i @sddlZddlZddlmZddlmZmZm Z ddl Z ddl m Z m Z mZddl mZmZmZddl mZmZmZmZmZmZmZddl mZmZddl mZmZmZm Z zdd l m!Z!Wne"yYn0dd l m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,dd l m-Z-m.Z.ej/d e0d de de j/de0dde dej/de0dde dej/de0dde de j/de0dde dej/de0dde de1j2Z3e1_3dde1j45DZ6e7e1ddZ8GdddeZ9Gdd d eZ:Gd!d"d"eZ;Gd#d$d$eZZ>m?Z?dd'l@m@Z@mAZAmBZBdd(l@mCZCmDZDddl@ZEddlFZFddlGZGddlHZHeIZJd)gZKeLe d*ZMe-ZNeZOd+d,ZPd-d.ZQd/d0ZRd1d2ZSed3d4ZTd5d6ZUGd7d8d8ed8d9ZVGd:d;d;eVeZWGdd?d@ZZe2fe[dAeWjYddddddBdCdDZ\eZZ]e\Z^GdEdFdFZ_dGdHZ`GdIdJdJe@ZaeaeX_be_eX_cdddAe[e2ddKdKdf dLdMZddNdOZedPZfdQZgdRdSZhdTdUZie2dfdVdWZjdXdYZkdS)ZN) namedtuple)EnumIntEnumIntFlag)OPENSSL_VERSION_NUMBEROPENSSL_VERSION_INFOOPENSSL_VERSION) _SSLContext MemoryBIO SSLSession)SSLErrorSSLZeroReturnErrorSSLWantReadErrorSSLWantWriteErrorSSLSyscallError SSLEOFErrorSSLCertVerificationError)txt2objnid2obj) RAND_statusRAND_add RAND_bytesRAND_pseudo_bytes)RAND_egd) HAS_SNIHAS_ECDHHAS_NPNHAS_ALPN HAS_SSLv2 HAS_SSLv3 HAS_TLSv1 HAS_TLSv1_1 HAS_TLSv1_2 HAS_TLSv1_3)_DEFAULT_CIPHERS_OPENSSL_API_VERSION _SSLMethodcCs|do|dkS)NZ PROTOCOL_PROTOCOL_SSLv23 startswithnamer,/usr/lib64/python3.9/ssl.py}r.)sourceOptionscCs |dS)NZOP_r(r*r,r,r-r.r/ZAlertDescriptioncCs |dS)NZALERT_DESCRIPTION_r(r*r,r,r-r.r/ZSSLErrorNumbercCs |dS)NZ SSL_ERROR_r(r*r,r,r-r.r/ VerifyFlagscCs |dS)NZVERIFY_r(r*r,r,r-r.r/ VerifyModecCs |dS)NZCERT_r(r*r,r,r-r.r/cCsi|]\}}||qSr,r,).0r+valuer,r,r- r/r6ZPROTOCOL_SSLv2c@s6eZdZejZejZejZ ej Z ej Z ejZejZdS) TLSVersionN)__name__ __module__ __qualname___sslZPROTO_MINIMUM_SUPPORTEDZMINIMUM_SUPPORTEDZ PROTO_SSLv3SSLv3Z PROTO_TLSv1ZTLSv1Z PROTO_TLSv1_1ZTLSv1_1Z PROTO_TLSv1_2ZTLSv1_2Z PROTO_TLSv1_3ZTLSv1_3ZPROTO_MAXIMUM_SUPPORTEDZMAXIMUM_SUPPORTEDr,r,r,r-r7sr7c@s$eZdZdZdZdZdZdZdZdS)_TLSContentTypeN) r8r9r:CHANGE_CIPHER_SPECALERTZ HANDSHAKEZAPPLICATION_DATAHEADERZINNER_CONTENT_TYPEr,r,r,r-r=s r=c@seZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#S)$ _TLSAlertTyper r>r?r@()*+,-./0123<FGPVZdmnopqrstxN)%r8r9r:Z CLOSE_NOTIFYZUNEXPECTED_MESSAGEZBAD_RECORD_MACZDECRYPTION_FAILEDZRECORD_OVERFLOWZDECOMPRESSION_FAILUREZHANDSHAKE_FAILUREZNO_CERTIFICATEZBAD_CERTIFICATEZUNSUPPORTED_CERTIFICATEZCERTIFICATE_REVOKEDZCERTIFICATE_EXPIREDZCERTIFICATE_UNKNOWNZILLEGAL_PARAMETERZ UNKNOWN_CAZ ACCESS_DENIEDZ DECODE_ERRORZ DECRYPT_ERRORZEXPORT_RESTRICTIONZPROTOCOL_VERSIONZINSUFFICIENT_SECURITYZINTERNAL_ERRORZINAPPROPRIATE_FALLBACKZ USER_CANCELEDZNO_RENEGOTIATIONZMISSING_EXTENSIONZUNSUPPORTED_EXTENSIONZCERTIFICATE_UNOBTAINABLEZUNRECOGNIZED_NAMEZBAD_CERTIFICATE_STATUS_RESPONSEZBAD_CERTIFICATE_HASH_VALUEZUNKNOWN_PSK_IDENTITYZCERTIFICATE_REQUIREDZNO_APPLICATION_PROTOCOLr,r,r,r-rGsDrGc@sdeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdS)_TLSMessageTyper r>r?r@rACrCN)r8r9r:Z HELLO_REQUESTZ CLIENT_HELLOZ SERVER_HELLOZHELLO_VERIFY_REQUESTZNEWSESSION_TICKETZEND_OF_EARLY_DATAZHELLO_RETRY_REQUESTZENCRYPTED_EXTENSIONSZ CERTIFICATEZSERVER_KEY_EXCHANGEZCERTIFICATE_REQUESTZ SERVER_DONEZCERTIFICATE_VERIFYZCLIENT_KEY_EXCHANGEFINISHEDZCERTIFICATE_URLZCERTIFICATE_STATUSZSUPPLEMENTAL_DATAZ KEY_UPDATEZ NEXT_PROTOZ MESSAGE_HASHrDr,r,r,r-rfs,rfwin32)enum_certificates enum_crls)socket SOCK_STREAMcreate_connection) SOL_SOCKETSO_TYPE tls-uniqueHOSTFLAG_NEVER_CHECK_SUBJECTcCs|sdS|d}|s&||kS|dkrsole wildcard without additional labels are not support: {!r}.z.shim_cb)Z sni_callbackcallable TypeError)rrrr,rr-set_servername_callbacks z"SSLContext.set_servername_callbackcCs`t}|D]F}t|d}t|dks0t|dkr8td|t|||q ||dS)Nrrrz)ALPN protocols must be 1 to 255 in length)rrrr rrZ_set_alpn_protocols)rZalpn_protocolsrrrr,r,r-set_alpn_protocols#s  zSSLContext.set_alpn_protocolscCstt}zYn0|tjkrPt}n|tjkr`t}nt}z ||}WntyYn0||||||Sr)r7rr=rFrErGrf)conn directionversionZ content_typeZmsg_typedataZmsg_enumcallbackr,r-rs(        z'SSLContext._msg_callback..inner)rrrrhasattrrr)rrrrrr-rs  cs ttjSr)r&rrrrr,r-rszSSLContext.protocolcs ttjSr)r2r verify_flagsrrr,r-r szSSLContext.verify_flagscstttj||dSr)rrr rrrr,r-r scs.tj}z t|WSty(|YS0dSr)r verify_moder3rrrr,r-r s   zSSLContext.verify_modecstttj||dSr)rrr rrrr,r-r s)FTTNN)FNN) r8r9r:rrr PROTOCOL_TLSrrrrrrrrrrrrr propertyrsetterrrr;rrrr r rr,r,rr-rsh           &%r)rrrcCst|tst|tt}|tjkr0t|_d|_ |s<|s<|rL| |||n|jt kr`| |t |drtjd}|rtjjs||_|S)NTkeylog_filename SSLKEYLOGFILE)rrrrr rr CERT_REQUIREDr check_hostnamer CERT_NONErrrrrrflagsignore_environmentr)rrrrr keylogfiler,r,r-create_default_contexts        rF) cert_reqsrrcertfilekeyfilerrrc Cst|tst|t|} |s$d| _|dur2|| _|rs zSSLObject.__init__FNc Cs*||}|j||||||d}||_|S)N)rrownerr)rZ _wrap_bio_sslobj) rrrrrrrrrr,r,r-rDs zSSLObject._createcCs|jjSrr"rrr,r,r-rPszSSLObject.contextcCs ||j_dSrr#rctxr,r,r-rUscCs|jjSrr"rrr,r,r-rYszSSLObject.sessioncCs ||j_dSrr&rrr,r,r-r^scCs|jjSrr"session_reusedrr,r,r-r)bszSSLObject.session_reusedcCs|jjSr)r"rrr,r,r-rgszSSLObject.server_sidecCs|jjSr)r"rrr,r,r-rlszSSLObject.server_hostnamecCs(|dur|j||}n |j|}|Sr)r"read)rrbuffervr,r,r-r+rs zSSLObject.readcCs |j|Sr)r"writerrr,r,r-r.~szSSLObject.writecCs |j|Sr)r" getpeercertrZ binary_formr,r,r-r0szSSLObject.getpeercertcCstjr|jSdSr)r;rr"selected_npn_protocolrr,r,r-r2szSSLObject.selected_npn_protocolcCstjr|jSdSr)r;rr"selected_alpn_protocolrr,r,r-r3sz SSLObject.selected_alpn_protocolcCs |jSr)r"cipherrr,r,r-r4szSSLObject.ciphercCs |jSr)r"shared_ciphersrr,r,r-r5szSSLObject.shared_cipherscCs |jSr)r" compressionrr,r,r-r6szSSLObject.compressioncCs |jSr)r"pendingrr,r,r-r7szSSLObject.pendingcCs|jdSr)r" do_handshakerr,r,r-r8szSSLObject.do_handshakecCs |jSr)r"shutdownrr,r,r-unwrapszSSLObject.unwraprcCs |j|Sr)r"get_channel_bindingrZcb_typer,r,r-r;szSSLObject.get_channel_bindingcCs |jSrr"rrr,r,r-rszSSLObject.versioncCs |jSr)r"verify_client_post_handshakerr,r,r-r>sz&SSLObject.verify_client_post_handshake)FNNN)r*N)F)r)r8r9r:r rrr rr rr)rrr+r.r0r2r3r4r5r6r7r8r:r;rr>r,r,r,r-r/sB           rcCstt|jj|_|Sr)getattrrr8__doc__)funcr,r,r- _sslcopydocsrBcseZdZddZedWfdd Zeedd Zej d d Zeed d Z e j d d Z eeddZ ddZ dXddZ ddZdYddZddZedZddZeddZedd Zed!d"Zed#d$Zed%d&Zd[fd(d) Zd\fd*d+ Zd,d-Zd]fd.d/ Zd^fd0d1 Zd_fd2d3 Zd`fd4d5 Zdafd6d7 Zdbfd8d9 Zd:d;Z dd?Z"fd@dAZ#edBdCZ$edDdEZ%fdFdGZ&edcdHdIZ'fdJdKZ(dLdMZ)dNdOZ*fdPdQZ+edddSdTZ,edUdVZ-Z.S)e SSLSocketcOst|jjddS)NzX does not have a public constructor. Instances are returned by SSLContext.wrap_socket().rrr,r,r-r s zSSLSocket.__init__FTNc sf|tttkrtd|r8|r(td|dur8td|jrJ|sJtdt|j|j |j | d}|j |fi|} t t| jfi||} ||| _|| _d| _d| _|| _||| _|| _|| _z | Wnty} z| jtjkrd} | } | dz| !d}Wn@tyb} z&| jtjtj"fvrJd}WYd} ~ n d} ~ 00| | |rd }t#| j|}||_$d|_%z | &WntyYn0z |Wd}nd}0WYd} ~ nd} ~ 00d } | '| | | _(| rbzH| jj)| || j| | jd | _|r<| }|d kr4td | *Wn"ttfy`| &Yn0| S)Nz!only stream sockets are supportedz4server_hostname can only be specified in client modez,session can only be specified in client modez'check_hostname requires server_hostname)familytypeprotofilenoFrgr/z5Closed before TLS handshake with data in recv buffer.Tr!rzHdo_handshake_on_connect should not be specified for non-blocking sockets)+ getsockoptr~rr|NotImplementedErrorrrdictrDrErFrGrrrCr  gettimeoutdetach_context_session_closedr"rrrrr getpeernamererrnoZENOTCONN getblocking setblockingrecvEINVALr reasonZlibraryclose settimeout _connected _wrap_socketr8)rrrrrrrrrrZ sock_timeouteZ connectedblockingZnotconn_pre_handshake_datarXZ notconn_pre_handshake_data_errortimeoutrr,r-rs         "   zSSLSocket._createcCs|jSr)rOrr,r,r-r:szSSLSocket.contextcCs||_||j_dSr)rOr"rr$r,r,r-r?scCs|jdur|jjSdSrr&rr,r,r-rDs zSSLSocket.sessioncCs||_|jdur||j_dSr)rPr"rr'r,r,r-rJs cCs|jdur|jjSdSrr(rr,r,r-r)Ps zSSLSocket.session_reusedcCstd|jjdS)NzCan't dup() %s instances)rKrr8rr,r,r-dupVsz SSLSocket.dupcCsdSrr,)rmsgr,r,r- _checkClosedZszSSLSocket._checkClosedcCs|js|dSr)r[rRrr,r,r-_check_connected^szSSLSocket._check_connectedr*c Cs||jdurtdz*|dur4|j||WS|j|WSWn`ty}zH|jdtkr|jr|dur~WYd}~dSWYd}~dSnWYd}~n d}~00dS)Nz'Read on closed or unwrapped SSL socket.rr/)rbr"rr+r rZ SSL_ERROR_EOFr)rrr,xr,r,r-r+fs zSSLSocket.readcCs&||jdurtd|j|S)Nz(Write on closed or unwrapped SSL socket.)rbr"rr.r/r,r,r-r.{s zSSLSocket.writecCs|||j|Sr)rbrcr"r0r1r,r,r-r0szSSLSocket.getpeercertcCs*||jdustjsdS|jSdSr)rbr"r;rr2rr,r,r-r2szSSLSocket.selected_npn_protocolcCs*||jdustjsdS|jSdSr)rbr"r;rr3rr,r,r-r3sz SSLSocket.selected_alpn_protocolcCs$||jdurdS|jSdSr)rbr"r4rr,r,r-r4s zSSLSocket.ciphercCs$||jdurdS|jSdSr)rbr"r5rr,r,r-r5s zSSLSocket.shared_cipherscCs$||jdurdS|jSdSr)rbr"r6rr,r,r-r6s zSSLSocket.compressionrcsF||jdur4|dkr(td|j|j|St||SdS)Nrz3non-zero flags not allowed in calls to send() on %s)rbr"rrr.rsend)rrrrr,r-res  zSSLSocket.sendcsL||jdur"td|jn&|dur8t||St|||SdS)Nz%sendto not allowed on instances of %s)rbr"rrrsendto)rrZ flags_or_addrrrr,r-rfs zSSLSocket.sendtocOstd|jdS)Nz&sendmsg not allowed on instances of %srKrrr,r,r-sendmsgszSSLSocket.sendmsgc s||jdur|dkr(td|jd}t|f}|d<}t|}||krn|||d}||7}qJWdn1s0YWdq1s0Ynt ||SdS)Nrz6non-zero flags not allowed in calls to sendall() on %sB) rbr"rr memoryviewcastrrersendall)rrrrview byte_viewamountr-rr,r-rls HzSSLSocket.sendallcs,|jdur||||St|||SdSr)r"_sendfile_use_sendrsendfile)rfileoffsetrrr,r-rqs zSSLSocket.sendfilecsD||jdur2|dkr(td|j||St||SdS)Nrz3non-zero flags not allowed in calls to recv() on %s)rbr"rrr+rrVrbuflenrrr,r-rVs  zSSLSocket.recvcsj||r|durt|}n |dur*d}|jdurV|dkrJtd|j|||St|||SdS)Nr*rz8non-zero flags not allowed in calls to recv_into() on %s)rbrr"rrr+r recv_intorr,nbytesrrr,r-rvs    zSSLSocket.recv_intocs4||jdur"td|jnt||SdS)Nz'recvfrom not allowed on instances of %s)rbr"rrrrecvfromrtrr,r-rys  zSSLSocket.recvfromcs6||jdur"td|jnt|||SdS)Nz,recvfrom_into not allowed on instances of %s)rbr"rrr recvfrom_intorwrr,r-rz s  zSSLSocket.recvfrom_intocOstd|jdS)Nz&recvmsg not allowed on instances of %srgrr,r,r-recvmsgszSSLSocket.recvmsgcOstd|jdS)Nz+recvmsg_into not allowed on instances of %srgrr,r,r- recvmsg_intoszSSLSocket.recvmsg_intocCs$||jdur|jSdSdS)Nr)rbr"r7rr,r,r-r7s  zSSLSocket.pendingcs|d|_t|dSr)rbr"rr9)rhowrr,r-r9!szSSLSocket.shutdowncCs.|jr|j}d|_|Stdt|dSNzNo SSL wrapper around )r"r9rr)rsr,r,r-r:&s  zSSLSocket.unwrapcCs$|jr|jStdt|dSr~)r"r>rrrr,r,r-r>/s z&SSLSocket.verify_client_post_handshakecsd|_tdSr)r"r _real_closerrr,r-r6szSSLSocket._real_closec CsP||}z.|dkr(|r(|d|jW||n ||0dS)NrI)rcrMrZr"r8)rblockr_r,r,r-r8:s   zSSLSocket.do_handshakec s|jrtd|js|jdur&td|jj|d|j||jd|_z@|rVt |}nd}t ||s~d|_|j r~| |WSt tfyd|_Yn0dS)Nz!can't connect in server-side modez/attempt to connect already-connected SSLSocket!FrHT)rrr[r"rr\rrPr connect_exconnectrr8r)rrrrcrr,r- _real_connectEs* zSSLSocket._real_connectcCs||ddS)NFrrrr,r,r-r_szSSLSocket.connectcCs ||dSrrrr,r,r-rdszSSLSocket.connect_excs.t\}}|jj||j|jdd}||fS)NT)rrr)racceptrrrr)rZnewsockrrr,r-riszSSLSocket.acceptrcCs4|jdur|j|S|tvr,td|dSdS)Nz({0} channel binding type not implemented)r"r;CHANNEL_BINDING_TYPESrrr<r,r,r-r;us  zSSLSocket.get_channel_bindingcCs|jdur|jSdSdSrr=rr,r,r-rs  zSSLSocket.version)FTTNNN)N)r*N)F)r)N)r)rN)r*r)Nr)r*r)Nr)F)r)/r8r9r:r rrr rBrr rr)r`rbrcr+r.r0r2r3r4r5r6rerfrhrlrqrVrvryrzr{r|r7r9r:r>rr8rrrrr;rrr,r,rr-rCs_                          rCTc Csl|r|std|r |s tdt|} || _|r<| ||rL| ||| rZ| | | j||||dS)Nz5certfile must be specified for server-side operationsr)rrrr)rrr rrZ set_ciphersr) rrrrr ssl_versionca_certsrrZciphersrr,r,r-rs"   rcCsddlm}ddlm}d}d}z||ddd}Wn"ty`td||fYn00||dd|}||d|f|d d SdS) Nr)strptime)timegm) ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecz %d %H:%M:%S %Y GMTrirgz*time data %r does not match format "%%b%s"rhrl)timerZcalendarrindextitler)Z cert_timerrZmonthsZ time_formatZ month_numberttr,r,r-cert_time_to_secondss    rz-----BEGIN CERTIFICATE-----z-----END CERTIFICATE-----csRtt|ddtg}|fddtdtdD7}|tdd|S)NASCIIstrictcsg|]}||dqS)@r,)r4ifr,r- r/z(DER_cert_to_PEM_cert..rr ) rbase64Zstandard_b64encode PEM_HEADERrangerr PEM_FOOTERr)Zder_cert_bytesssr,rr-DER_cert_to_PEM_certs "rcCs\|tstdt|ts0tdt|tttt }t| ddS)Nz(Invalid PEM encoding; must start with %sz&Invalid PEM encoding; must end with %srr) r)rrstripendswithrrrZ decodebytesr)Zpem_cert_stringdr,r,r-PEM_cert_to_DER_certs rc Cs|\}}|durt}nt}t|||d}t|D}||}|d} Wdn1s\0YWdn1sz0Yt| S)N)rrT)rr_create_stdlib_contextr}rr0r) rrrhostportrrrZsslsockZdercertr,r,r-get_server_certificates  FrcCs t|dS)Nz )_PROTOCOL_NAMESr)Z protocol_coder,r,r-get_protocol_namesr)lrr collectionsrenumrZ_Enumr_IntEnumrZ_IntFlagr;rrrr r r r r rrrrrrrrrrrrrr ImportErrorrrrrrrr r!r"r#r$r% _convert_r8r&r r' __members__itemsrr?Z_SSLv2_IF_EXISTSr7r=rGrfrryrzr{r|r}r~rrrrSrrZ socket_errorrrZHAS_NEVER_CHECK_COMMON_NAMEZ_RESTRICTED_SERVER_CIPHERSrrrrrrrrrrrrrrZ_create_default_https_contextrrrBrCrrrrrrrrrrr,r,r,r-^s $ 0   )  1# 9| # />