Q{[J D SSKrSSKrSSKrSSKJr SSKJr SSKJr SSK J r SSK J r SSK J r SSK J r SS K Jr SS K Jr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK!r!SSK"r"SSK#r#SS K$J%r% SSK&r&\ RP"S 5r)SSK*r*SS K)J+r+J,r,J-r-J.r.J/r/ \R`=(a \RBS:Hr1\2"\)Rf5r4\ Rjr5\)RlS:r7\"Rp"S5r90r:SH(ur;r<\="\)\;5r;\="\)RX\<5r<\<\:\;'M* Sr?\?"S5r@\R"\@5rB\?"S5rC\?"S5rD\R"\C5rE\R"\D5rF\?"S5rG\?"S5rHSrI\?"S5rJ\R"\J5rK\?"SS5rL\?"SS5rMSSSSSS S!S".rN\?"S#5rO\?"S$5rP\?"S%5rQS&rRS'S(S)S*S+S,S-SS S!S.. rS\?"S/5rTS0rU\?"S15rVS2rW\?"S35rXS4rY\?"S55rZ\?"SS65r[\?"S75r\\?"S85r]\?"S95r^S&r_S:r`\?"S;5ra\?"S<5rb\?"S=5rc\?"S>5rd\?"S?5re\?"S@5rf\?"SA5rg\?"SB5rh\R"\h5ri\="\)SCS5rj\="\)SDS5rk\="\)SES5rl\="\)SFS5rm\="\)SGS5rnSHro\o"5(aSIrpOSJrpSKrq\#RSL5rsSMrtSNruSOrv\R"\xSP9ry\)RSSSSSQ.SRjr{SSq|Sq}\P4STSU.SVjjr~"SWSX\R5r"SYSZ\R5r"S[S\\R5r"S]S^\R5r"S_S`\R5r"SaSb\R5r\GR "Sc5"SdSe\R55rSSfjrSgrSShKJr "SiSj\R 5r"SkSl\R 5rSSmjrSSnjrSor"SpSq\R5r\GR$"\s"Sr5Ss5"StSu\R55r\"\)GR*Sv5r\GR$"\Sw5r"SxSy\R5rSzr"S{S|\R5r"S}S~\R5rSr\S:Xa\GR<"5 gg!\'a Sr&GNvf=f!\>a GMf=f)N) literal_eval)Thread)support) import_helper) os_helper) socket_helper)threading_helper)warnings_helper)asyncore) nullcontextssl)Purpose TLSVersion_TLSContentType_TLSMessageType _TLSAlertTypewin32)rrPY_SSL_DEFAULT_CIPHERS))PROTOCOL_SSLv3SSLv3)PROTOCOL_TLSv1TLSv1)PROTOCOL_TLSv1_1TLSv1_1c[RR"[RR[5S/UQ76$)Ncertdata)ospathjoindirname__file__names 4/opt/alt/python313/lib64/python3.13/test/test_ssl.py data_filer&Bs) 77<<1: E EEz keycert.pemz ssl_cert.pemz ssl_key.pemzkeycert.passwd.pemzssl_key.passwd.pemsomepasscapathz 4e1295a3.0z 5ed36f99.0)) countryNameXY) localityNamezCastle Anthrax)organizationNamezPython Software Foundation)) commonName localhostzJan 24 04:21:36 2043 GMTzNov 25 04:21:36 2023 GMT(53E14833F7546C29256DD0F034F776C5E983004C))DNSr2rissuernotAfter notBefore serialNumbersubjectsubjectAltNameversionzrevocation.crlz keycert3.pemz cert3.pemr2)z)http://testca.pythontest.net/testca/ocsp/)z0http://testca.pythontest.net/testca/pycacert.cer)z2http://testca.pythontest.net/testca/revocation.crl)r*))r0Python Software Foundation CA))r1z our-ca-serverzOct 28 14:23:16 2037 GMTzAug 29 14:23:16 2018 GMTCB2D80995A69525C) OCSP caIssuerscrlDistributionPointsr6r7r8r9r:r;r<z keycert4.pem fakehostnamezkeycertecc.pemz localhost-ecczleaf-missing-aki.keycert.pemz example.comzleaf-missing-aki.ca.pemz ceff1710.0z allsans.pemz idnsans.pemz nosan.pemzself-signed.pythontest.net nullcert.pem badcert.pemzXXXnonexisting.pem badkey.pemz nokia.pemznullbytecert.pemztalos-2019-0758.pemz ffdh3072.pemOP_NO_COMPRESSIONOP_SINGLE_DH_USEOP_SINGLE_ECDH_USEOP_CIPHER_SERVER_PREFERENCEOP_ENABLE_MIDDLEBOX_COMPATc[SSS9nSUR5;sSSS5 $!,(df  g=f![a gf=f)Nz/etc/os-releasezutf-8)encodingubuntuF)openreadFileNotFoundError)fs r% is_ubunturRsA#g 6!qvvx'7 6 6 s# :) : 7:: AAcUHcn[US5(dMUR[RR::dM@UR S:dMRUR S5 Me g)Nminimum_versionz@SECLEVEL=1:ALL)hasattrrTr rrsecurity_level set_ciphers)ctxsctxs r%seclevel_workaroundr[sMC.//##s~~'='==""Q& 12 r'cgN)rYs r%r[r[s r'c[U[5(a[[US5nUcgU[R[R [R 1;agURn[U[S5S5$)NFT PROTOCOL_) isinstancestrgetattrr PROTOCOL_TLSPROTOCOL_TLS_SERVERPROTOCOL_TLS_CLIENTr$has_tls_versionlen)protocolr$s r%has_tls_protocolrjsu (C  3$/   #11   ==D 4K 0 12 33r'cl[U[5(a[RRUn[ [SUR 35(dg[(aU[RR:ag[R[R5n[US5(a8UR[RR:waXR:ag[US5(a8UR[RR:waXR:agg)NHAS_FrTmaximum_versionT)rarbr r __members__rcr$IS_OPENSSL_3_0_0TLSv1_2 SSLContextrfrVrTMINIMUM_SUPPORTEDrmMAXIMUM_SUPPORTED)r<rZs r%rgrgs'3..,,W5 3$w||n- . .Gcnn&<&<< ..00 1C C* + +   3>>#C#C C )) )&'' s~~???%%% r'c^U4SjnU$)NcJ>^[R"T5UU4Sj5nU$)Ncf>[T5(d[R"TS35eT"U0UD6$)Nz is not available.)rgunittestSkipTest)argskwfuncr<s r%wrapper8requires_tls_version..decorator..wrappers7"7++''7)3E(FGGT(R((r') functoolswraps)r{r|r<s` r% decorator'requires_tls_version..decorators%   )  ) r'r^)r<rs` r%requires_tls_versionrs  r'cSR[R"[R"555n[ R (a"[RRX-5 gg)N ) r tracebackformat_exceptionsys exceptionrverbosestdoutwrite)prefix exc_formats r% handle_errorrsB)44S]]_EFJ ,-r'c[R(a4[R"5RS:a[R*$[R *$Nr)timedaylight localtimetm_isdstaltzonetimezoner^r'r% utc_offsetrs5 }})22Q6 } MM>r')category) cert_reqsca_certscipherscertfilekeyfilec URS5(d-[US'[R[R5nO#[R[R 5nUb!U[R :XaSUlXlUbURU5 UcUbURXE5 UbURU5 UR"U40UD6$)N server_sideserver_hostnameF) getSIGNED_CERTFILE_HOSTNAMEr rqrfre CERT_NONEcheck_hostname verify_modeload_verify_locationsload_cert_chainrX wrap_socket)sockrrrrrkwargscontexts r%test_wrap_socketr!s ::m $ $$< !..!8!89..!8!89  %%*G "'%%h/w22G$   t .v ..r'FT server_chainc[(a [b[$U[:Xa[nO-U[:Xa[ nOU[ :Xa[nO [U5e[R[R5nUR[5 [R[R5nURU5 U(aUR[5 [(a [bX4U4qX4U4$r])USE_SAME_TEST_CONTEXT _TEST_CONTEXTSIGNED_CERTFILErSIGNED_CERTFILE2SIGNED_CERTFILE2_HOSTNAME NOSANFILENOSAN_HOSTNAME ValueErrorr rqrfr SIGNING_CArer) server_certrhostnameclient_contextserver_contexts r%testing_contextr:s   $ o%+ ( (,  !!%%^^C$;$;;S5S5r Sr!Sr"\R:"\#RHS:HS5S5r%\R:"\#RHS:HS5S 5r&S!r'S"r(S#r)S$r*S%r+\R:"\,"5S&5S'5r-S(r.\R^"S)S*5S+5r0S,r1S-r2S.r3g/)0BasicSocketTestsi\c[R [R [R [R [R [R [R UR[RS5 UR[RS5 UR[RS5 UR[RS5 [R [R [R [R [R" [R$ UR[R&[R(5 g)NT)r r CERT_OPTIONAL CERT_REQUIREDrIrGrHrF assertEqualHAS_SNIHAS_ECDH HAS_TLSv1_2 HAS_TLSv1_3 OP_NO_SSLv2 OP_NO_SSLv3 OP_NO_TLSv1 OP_NO_TLSv1_3 OP_NO_TLSv1_1 OP_NO_TLSv1_2rdPROTOCOL_SSLv23selfs r%test_constantsBasicSocketTests.test_constants^s    ''    d+ t, $/ $/       ))3+>+>?r'c[[5HYnURS5(dMURUS9 [ [U5nUR USSU35 SSS5 M[ g!,(df  Mm=f)NOP_optionrssl.)dirr startswithsubTestrcassertGreaterEqual)rr$values r% test_optionsBasicSocketTests.test_optionsrseHD??5))T*T*''qD-@+*+*s 'A.. A= c[R[R[R[R[R [R /nUHAnURUS9 UR[S5 SUl SSS5 SSS5 MC [R"U[R5 g!,(df  N@=f!,(df  M=f)N)ssl_typezimmutable type) _ssl _SSLContext _SSLSocket MemoryBIO Certificate SSLSessionSSLErrorrassertRaisesRegex TypeErrorrrcheck_disallow_instantiation)r ssl_typesrs r%test_ssl_typesBasicSocketTests.test_ssl_types{s    OO NN    OO MM  "Hx0++I7GH%)HNI10" ,,T43C3CDIH10s$1CC C C C C* cUR[S5 [R"5n[R U5 SSS5 SSS5 g!,(df  N=f!,(df  g=fNzpublic constructor)rrsocketr SSLSocketrss r%test_private_init"BasicSocketTests.test_private_initsH  # #I/C DA a !E D E Ds"A%AA% A" A%% A3c2[RnUR[U5SUR-5 UR[ U5[ UR55 [R U5nURURU5 g)Nz$<_SSLMethod.PROTOCOL_TLS_CLIENT: %r>) r rfrreprrrbrqassertIsrirprotorZs r%test_str_for_enums#BasicSocketTests.test_str_for_enumssj'' e&Lu{{&Z[ US%56nnU# cllE*r'cn[R5n[R(a5[R R SX=(a S=(d S4-5 U(a1[RS5nUR[U5S5 O/UR[R[RS5 UR[[RS5 [RSS5 [RSS5 [R[S 5S5 g) Nz RAND_status is %d (%s) zsufficient randomnesszinsufficient randomnesszthis is a random stringgR@sthis is a random bytes objects!this is a random bytearray object)r RAND_statusrrrrr RAND_bytesrrh assertRaisesrrRAND_add bytearray)rvdatas r% test_randomBasicSocketTests.test_randoms OO  ?? JJ  : !$A*A$: 9 ;; < >>"%D   SY +   cllCNNB ? *cnnb9 .5 5t< YCDdKr'cjUR[RR[5[ 5 UR[RR[ 5[5 [RR[5n[R(a9[RRS[R"U5-S-5 URUSS5 URUSS5 URUSS5 URUSS 5 g) N r;))r4zprojects.developer.nokia.com)r4zprojects.forum.nokia.comr?)zhttp://ocsp.verisign.comr@)z0http://SVRIntl-G3-aia.verisign.com/SVRIntlG3.cerrA)z0http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl)rr r_test_decode_certCERTFILE CERTFILE_INFOrSIGNED_CERTFILE_INFO NOKIACERTrrrrrpprintpformatrps r%test_parse_cert BasicSocketTests.test_parse_certs  HH & &x 0    HH & & 7   HH & &y 1 ?? JJ  TFNN1$55< = +,?  6$AB ;N P 23N Pr'c [RR[5n[R (a9[ RRS[R"U5-S-5 URUSSSSSSSS .5 g) Nr ))r+UK))r1zcody-cazJun 14 18:00:58 2028 GMTzJun 18 18:00:58 2018 GMT02)r))r1#codenomicon-vm-2.test.lal.cisco.com))r4rrr5) r rr TALOS_INVALID_CRLDPrrrrrrrrrs r%test_parse_cert_CVE_2019_5010.BasicSocketTests.test_parse_cert_CVE_2019_5010sw HH & &': ; ?? JJ  TFNN1$55< =  L67 $H#E  r'c[RR[5n[R (a9[ RRS[R"U5-S-5 SnURUSU5 URUSU5 [RS:aSnOSnURUSU5 g) Nr )))r+US))stateOrProvinceNameOregon))r. Beavertonr/))organizationalUnitNamezPython Core Development))r1znull.python.orgexample.org)) emailAddresszpython-dev@python.orgr:r6)r )r4zaltnull.python.orgexample.comemailz null@python.orguser@example.orgURIz)http://null.python.orghttp://example.org IP Addressz 192.0.2.1)r-z2001:DB8:0:0:0:0:0:1)r'r(r*r,)r-z r;) r rr  NULLBYTECERTrrrrrrrr_OPENSSL_API_VERSION)rrr:sans r%test_parse_cert_CVE_2013_4238.BasicSocketTests.test_parse_cert_CVE_2013_4238s HH & &| 4 ?? JJ  TFNN1$55< =A 9w/ 8g.  # #y 0;C0C +,c2r'ct[RR[5nUR USS5 g)Nr;) )r4allsans othernamez r5)r)zuser@example.org)r4zwww.example.org)DirName)r*r-r/))r1zdirname example)r+zhttps://www.python.org/)r- 127.0.0.1)r-z0:0:0:0:0:0:0:1)z Registered IDz 1.2.3.4.5)r rr  ALLSANFILErrs r%test_parse_all_sans$BasicSocketTests.test_parse_all_sanss1 HH & &z 2 +,  r'c [[S5nUR5nSSS5 [R W5n[R U5n[R U5nUR X55 UR[RS-5(dURSU-5 URS[R-S-5(dURSU-5 gg!,(df  N=f)Nrr z-DER-to-PEM didn't include correct header: %r z-DER-to-PEM didn't include correct footer: %r ) rN CAFILE_CACERTrOr PEM_cert_to_DER_certDER_cert_to_PEM_certrr PEM_HEADERfailendswith PEM_FOOTER)rrQpemd1p2d2s r%test_DER_to_PEM BasicSocketTests.test_DER_to_PEMs - %&&(C&  % %c *  % %b )  % %b )  }}S^^d233 IIG"L M{{4#..04788 IIG"L M9& %s C55 DcR[Rn[Rn[RnUR U[ 5 UR U[ 5 UR U[5 URUS5 URUS5 UupEpgnURUS5 URUS5 URUS5 URUS5 URUS5 URUS5 URUS5 URUS5 URUS5 URUS5 S US 3n US :aS US S US S US 3n OS US S US S US 3n URURXS45X2[U545 g)Nii@rUr?z LibreSSL drzOpenSSL .zAWS-LC)r OPENSSL_VERSION_NUMBEROPENSSL_VERSION_INFOOPENSSL_VERSIONassertIsInstanceinttuplerbr assertLessassertLessEqual assertTruerhex) rntrmajorminorfixpatchstatus libressl_ver openssl_vers r%test_openssl_version%BasicSocketTests.test_openssl_versions  & &  $ $    a% a' a% :. :&+,(c& q) q! q) s# Q' S! q) UB' * VR("5), A:$U1IQuQiqq BK$U1IQuQiqQ@K  LL+X> ? 3q6N r'c*[R"[R5n[U5n[R"U5n[ R "S[45 ASSS5 URU"5S5 g!,(df  N&=f)N) rAF_INETrweakrefrefr check_warningsResourceWarningr)rrsswrs r% test_refcycleBasicSocketTests.test_refcycle?se MM&.. ) a  [[_  + +R,A BC t$C Bs "B Bc l[R"[R5n[U5nUR[UR S5 UR[UR [S55 UR[URS5 UR[UR[S5S5 UR[URS5 UR[URSS5 UR[UR5 UR[URS/SSS5 UR[URS5 UR[UR [S5/5 SSS5 g!,(df  g=f)NrUx)z0.0.0.0rr^rd)rrirrOSErrorrecv recv_intorrecvfrom recvfrom_intosendsendtoNotImplementedErrordupsendmsgrecvmsg recvmsg_intorrrns r%test_wrapped_unconnected)BasicSocketTests.test_wrapped_unconnectedJs- MM&.. ) a B   grww 2   gr||Yt_ E   gr{{A 6   gr'7'74! L   grww 5   gryy$ G   1266 :   12::#fb!^ =   12::s C   12??(~. 0! s E,F%% F3c SHkn[R"[R5nURU5 [U5nUR XR 55 SSS5 Mm g!,(df  M=f)N)Ng@)rri settimeoutrr gettimeout)rtimeoutrrns r% test_timeoutBasicSocketTests.test_timeout\s[(G fnn-A LL !!!$  --/:%$(%$s  A33 B cp[R[R[R[R/n[R [R [R[R/n[RR[RR[RR/nUHnURUS9 [R[R5nUR!["5nU=R$U-slSSS5 UR'S[)WR*55 SSS5 M UHn[-U5(dMURUS9 UR!["5n[RU5 SSS5 UR'SUR.S3[)WR*55 SSS5 M UHn[1U5(dMURUS9 [R[R5nUR!["5nXlSSS5 UR4R6<SUR.<3n UR'SU S3[)WR*55 SSS5 M g!,(df  GN=f!,(df  GM =f!,(df  GN>=f!,(df  GM=f!,(df  N=f!,(df  GM4=f)Nrz4ssl.OP_NO_SSL*/ssl.OP_NO_TLS* options are deprecated)rirz is deprecated)r<rQ)r rrrrrrPROTOCOL_TLSv1_2rdrrrrrrqrf assertWarnsDeprecationWarningoptionsrrbwarningrjr$rgrT __class____name__) rr protocolsversionsrrZcmrir< version_texts r%test_openssl111_deprecations-BasicSocketTests.test_openssl111_deprecationsesN OO                      NN NN NN " "  FV,nnS%<%<=%%&89RKK6)K:  J O -,"H#H--x0%%&89RNN8,:  8==/8 O10" G"7++g.nnS%<%<=%%&89R*1':*1*;*;*D*DgllS   <.7 O /. %:9-,:910:9/.sm9KK --K L"K/8;L%9L%L%AL% K K K, / K> 9L L  L" L%% L5 c[RR[RR[5=(d [R SU5n[ R "5nURUR5 UR[R5 [UUS9 SSS5 g!,(df  g=f)Nrr) rrr r!r"curdirr addCleanupcloserr rrrrrs r% bad_cert_testBasicSocketTests.bad_cert_testsw77<< 9 FRYY *H6}}  #   s|| , T&. 0- , ,s ) B== C c&URS5 g)NrCrrs r%test_empty_cert BasicSocketTests.test_empty_certs >*r'c&URS5 g)NrDrrs r%test_malformed_cert$BasicSocketTests.test_malformed_certs =)r'c&URS5 g)NrErrs r%test_malformed_key#BasicSocketTests.test_malformed_keys <(r'c [R[R5n[R"5nUR [ UR USSS9 SSS5 g!,(df  g=f)NTz some.hostnamer)r rqrerrrr)rrZrs r%test_server_side!BasicSocketTests.test_server_sidesMnnS445 ]]_   j#//4.=  ?__s "A$$ A2c[R"S5n[R"[R5nURUR 55 [ USS9nUR [5 URS5 SSS5 SSS5 UR5 g!,(df  N'=f!,(df  N0=f)Nr8rFdo_handshake_on_connectz unknown-type) r create_serverriconnect getsocknamerrrget_channel_bindingr)rrcrns r%test_unknown_channel_binding-BasicSocketTests.test_unknown_channel_bindings  !1 2 MM&.. ) !--/" a ?2"":.&&~6/@  /.@ ?s$$B>:B- B>- B; 7B>> C  tls-unique*'tls-unique' channel binding not availablec[R"[R5n[U5nURUR S55 SSS5 [R"[R5n[US[ S9nURUR S55 SSS5 g!,(df  Nk=f!,(df  g=f)NrT)rr)rrir assertIsNonerr rs r%test_tls_unique_channel_binding0BasicSocketTests.test_tls_unique_channel_bindings MM&.. ) a B   b44\B C! MM&.. ) aTH E   b44\B CF E ! F Es!B6 !C6 C Ccd[[R"[R55n[U5nUR [ 5nSn[ R"5 SSS5 URU[WRRS55 g!,(df  NA=fr) rrrirrrmr gc_collectassertInrbrry)rrnr=rs r%test_dealloc_warn"BasicSocketTests.test_dealloc_warnss fmmFNN; < H   o ."B    / aRZZ__Q/01/ .s B!! B/c[R5nUR[U5S5 UR U[R 5 [ R"5n[US'[US'[R5nURUR[5 URUR[5 SSS5 g!,(df  g=f)N SSL_CERT_DIR SSL_CERT_FILE) r get_default_verify_pathsrrhrUDefaultVerifyPathsrEnvironmentVarGuardCAPATHr cafiler))rpathsenvs r%test_get_default_verify_paths.BasicSocketTests.test_get_default_verify_pathss,,. UQ' eS%;%;<  * * ,"(C #+C 002E   U\\8 4   U\\6 2 - , ,s %A'C C#rWindows specificc8UR[RS55 UR[RS55 UR[[R5 UR[ [RS5 [ 5nSHn[RU5nURU[5 UHnURU[5 UR[U5S5 UupVnURU[5 URUSS15 URU[[ [45 [!U[[ 45(dMUR#U5 M M SnURX5 g) NCAROOTrh)rrrx509_asn pkcs_7_asn1.3.6.1.5.5.7.3.1)rZr enum_certificatesrr WindowsErrorsetrUlistrWrrhbytesr frozensetboolraupdate) r trust_oids storenamestoreelementcertenctrust serverAuths r%test_enum_certificates'BasicSocketTests.test_enum_certificatess4 --d34 --f56 )S%:%:; ,(=(=rBU 'I)))4E  ! !% . %%gu5  Wq1#* 5%%dE2 cJ #=>%%eid-CDei%566%%e,!()  j-r'cUR[RS55 UR[[R5 UR[ [RS5 [RS5nUR U[5 UHdnUR U[5 UR[U5S5 UR US[5 URUSSS15 Mf g)NrrhrrUrr) rZr enum_crlsrrrrUrrWrrhrr)rcrlsrs r%test_enum_crlsBasicSocketTests.test_enum_crlss  d+, )S]]3 , r:}}T" dD)G  ! !'5 1   S\1 -  ! !'!*e 4 MM'!*z<&@ A r'cSn[RS5nURX!5 URURS5 URURS5 URUR S5 URUR S5 URU[R5 UR[[RS5 [RRS5nURX!5 URU[R5 UR[[RRS5 UR[S5 [RRS5 SSS5 [S 5Hn[RRU5nURUR[5 URUR[5 URUR [5 URUR [[S545 M [RR!S5nURX!5 URU[R5 UR[RR!S5U5 UR[RR!S5U5 UR[S 5 [RR!S 5 SSS5 g!,(df  GN=f![a GMf=f!,(df  g=f) N)rTLS Web Server Authenticationrrrrrzunknown NID 100000izunknown object 'serverauth' serverauth)r _ASN1Objectrnid shortnamelongnameoidrUrrfromnidrrangerVrbtypefromname)rexpectedvaliobjs r%test_asn1object BasicSocketTests.test_asn1object sp)oo12 ' #&  5 'FG "56 c3??3 *coo|Doo%%c* ' c3??3 *coo&=&=rB  # #J0D E OO # #F +FtA Boo--a0%%cggs3%%cmmS9%%cllC8%%cggT$Z/@Aoo&&'FG ' c3??3 11,?J 112EF! #  # #J0M N OO $ $\ 2O N'F E   O Ns*3 M*M M) M M&%M&) M7cP[RS5nUR[RR[R5 UR [RRU5 UR [RRR S5 UR [RRRS5 UR [RRRS5 [RS5nUR[RR[R5 UR [RRU5 UR [RRR S5 UR [RRRS5 UR [RRRS5 g)Nrrrz1.3.6.1.5.5.7.3.2 clientAuth) r rrUr SERVER_AUTHrrrr CLIENT_AUTH)rrs r%test_purpose_enum"BasicSocketTests.test_purpose_enum0sXoo12 ckk55sG 00#6 0044c: 00::LI 00441 3oo12 ckk55sG 00#6 0044c: 00::LI 00441 3r'c[R"[R[R5nURUR5 UR [ 5n[U[RS9 SSS5 UR[WR5S5 [R[R5nUR [ 5nURU5 SSS5 UR[UR5S5 g!,(df  N=f!,(df  NE=f)Nrz!only stream sockets are supported)rri SOCK_DGRAMrrrr|rr rrrbrrqrfr)rrcxrZs r%test_unsupported_dtls&BasicSocketTests.test_unsupported_dtlsAs MM&..&*;*; <    2 3r Q#-- 84 R\\*,OPnnS445   2 3r OOA 4 R\\*,OP 4 34 3s$D""D3" D03 EcNUR[RU5U5 gr])rr cert_time_to_seconds)r timestring timestamps r% cert_time_okBasicSocketTests.cert_time_okLs 11*=yIr'cUR[5 [RU5 SSS5 g!,(df  g=fr])rrr r)rrs r%cert_time_failBasicSocketTests.cert_time_failOs*   z *  $ $Z 0+ * *s 5 Az)local time needs to be different from UTCcLURSS5 URSS5 g)NzMay 9 00:00:00 2007 GMTgCAJan 5 09:34:43 2018 GMTѓA)rrs r%"test_cert_time_to_seconds_timezone3BasicSocketTests.test_cert_time_to_seconds_timezoneSs& 4lC 4lCr'cSnSnURX5 UR[RUS9U5 URSU5 URSU5 UR S5 UR S5 UR S5 UR S 5 UR S 5 UR S 5 UR S 5 S nURSU5 URSU5 URSS5 URSS5 URSS5 UR S5 URSS5 g)Nrr) cert_timezJan 05 09:34:43 2018 GMTzJaN 5 09:34:43 2018 GmTzJan 5 09:34 2018 GMTzJan 5 09:34:43 2018zJan 5 09:34:43 2018 UTCzJan 35 09:34:43 2018 GMTzJon 5 09:34:43 2018 GMTzJan 5 24:00:00 2018 GMTzJan 5 09:60:43 2018 GMTgWAzDec 31 23:59:60 2008 GMTzJan 1 00:00:00 2009 GMTzJan 5 09:34:59 2018 GMTiFOZzJan 5 09:34:60 2018 GMTiFOZzJan 5 09:34:61 2018 GMTiFOZzJan 5 09:34:62 2018 GMTzDec 31 23:59:59 9999 GMTg MB)rrr rr)rrts newyear_tss r%test_cert_time_to_seconds*BasicSocketTests.test_cert_time_to_seconds[s?/  *) 11J1GL 4b9 4b9 34 23 67 67 67 67 67!  4jA 4jA 4jA 4jA 4jA 67 4nEr'LC_ALLrhcSnU"5R5S:XaURS5 URSS5 URU"5S-5 g)Nc0[R"SS5$)Nz%b) rUrrrLrrrr)rstrftimer^r'r%local_february_nameNBasicSocketTests.test_cert_time_to_seconds_locale..local_february_names=='BC Cr'febz>locale-specific month name needs to be different from C localezFeb 9 00:00:00 2007 GMTg`rAz 9 00:00:00 2007 GMT)lowerskipTestrr)rr,s r% test_cert_time_to_seconds_locale1BasicSocketTests.test_cert_time_to_seconds_locale~sZ D  & & (E 1 MM4 5 4lC /14KKLr'c$[R"[R5nURUR5 [R "U5n[ [R"[R5[RS9nURUR5 UR[U45n[R[R[R[R4nUR!XE5 g)Nr)rrirrr bind_portrr r connect_exHOSTerrno ECONNREFUSED EHOSTUNREACH ETIMEDOUT EWOULDBLOCKr)rserverportrrcerrorss r%test_connect_ex_error&BasicSocketTests.test_connect_ex_errorsv~~.  %&&v. V]]6>>:&)&7&7 9  \\4, '    2 2EOO     b!r'c[5upn[US9nU UR[R"5US9nUR [ UR 45 URURS5S5 URURS5S5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)Nrrrr') rThreadedEchoServerrrrr6r=rrvrzrrrrr<rs r%test_read_write_zero%BasicSocketTests.test_read_write_zeros3B3D0#N; ++FMMO[R[R5nURS5 [ SUR 555n1SknUR U5nUR[U5SS[U5S[U535 g)NAESGCMc3*# UH oSv M g7f)r$Nr^).0rPs r% 0ContextTests.test_get_ciphers..s9'8!fI'8s>AES128-GCM-SHA256AES256-GCM-SHA384DHE-RSA-AES128-GCM-SHA256DHE-RSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384rz got: z expected: ) r rqrfrXrrf intersectionrrhsorted)rrZnamesrrys r%test_get_ciphersContextTests.test_get_cipherssnnS445 !9s'899  ))(3    qGF5M?,vhGWFX"Y r'c[R[R5n[R[R-[R -nU[ [-[-[-[--nURX!R5 [R"5 U=R[R-sl SSS5 URU[R-UR5 [R"5 UR[R)-Ul SSS5 URX!R5 SUl URSUR[R )-5 UR!["5 SUl SSS5 UR!["5 SS-Ul SSS5 UR![$5 SUl SSS5 g!,(df  GN@=f!,(df  N=f!,(df  N=f!,(df  Nh=f!,(df  g=f)Nrrrrtabc)r rqrfOP_ALLrrrFrIrGrHrJrrr rlrr OverflowErrorr)rrZdefaults r%rContextTests.test_optionssnnS445::/#//A%(CC$%'9:./ 0 ++. + + - KK3?? *K. 3??2CKK@ + + -;;#//)99CK. ++.  CKK3??*::;  } -CK.   } -s(CK.   y )CK* )'. - . -. - - - ) )s<+$H$H*H+ H<7I  H H(+ H9< I  Ic[R"5 [R[R5nSSS5 UR WR [R5 [RUlUR UR [R5 [RUlUR UR [R5 [RUlUR UR [R5 UR[5 SUlSSS5 UR[5 SUlSSS5 [R[R5nUR UR [R5 URUR5 [R[R 5nUR UR [R5 UR#UR5 g!,(df  GN=f!,(df  GN=f!,(df  GN=fNrT)r rlr rqrdrrrrrrrrre assertFalserrfrZr]s r%test_verify_mode_protocol&ContextTests.test_verify_mode_protocols  + + -..!1!12C. #--8++ #*;*;<++ #*;*;<-- #--8   y )"CO*   z * CO+nnS445 #--8 ++,nnS445 #*;*;< **++. -* ) * *s#$I>I#I( I I%( I7c[R[R5nURUR5 [R (agSUlURUR5 SUlUR UR5 SUlURUR5 gUR[5 SUlSSS5 g!,(df  g=fNTF) r rqrfrZhostname_checks_common_nameHAS_NEVER_CHECK_COMMON_NAMErrAttributeErrorr]s r% test_hostname_checks_common_name-ContextTests.test_hostname_checks_common_namesnnS445 778  * *.2C + OOC;; <.3C +   S<< =.2C + OOC;; <"">226/322s C!! C/c [R[R5n[RR[RR [RR 1n[RR[RR1nURURU5 URURU5 [RRUl [RR Ul URUR[RR5 URUR[RR 5 [RRUl [RR Ul URUR[RR5 URUR[RR 5 [RRUl URUR[RR5 [RRUl URUR[RR [RR[RR15 [RRUl URUR[RR [RR15 UR[ 5 SUl SSS5 [#[R$5(a[R[R$5nURURU5 URUR[RR5 UR[ 5 [RRUl SSS5 UR[ 5 [RR Ul SSS5 gg!,(df  GN=f!,(df  N_=f!,(df  g=fr)r rqrerrrrrprsTLSv1_3rrTrmrrrrrrjr)rrZ minimum_range maximum_ranges r%test_min_max_version!ContextTests.test_min_max_version&s1nnS445 NN , , NN NN " "   NN , , NN " "          "nn44!nn44    !7!7     !7!7 "nn>>!nn22    !A!A     !5!5 "nn>>    !A!A "nn>>    ^^ ! !3>>#9#93>>;O;O P "nn>>    ^^ # #S^^%;%; <   z *"$C + C00 1 1..!5!56C MM##]    ##S^^%E%E "":.&)nn&F&F#/"":.&)nn&:&:#/. 2+ */...s$R!: R37 S! R03 S SrWzrequires OpenSSL >= 1.1.0c[R[R5n1SknURURU5 g)N>rrUrrrLr*)r rqrfrrW)rrZsecurity_level_ranges r%test_security_level ContextTests.test_security_levelus7 nnS445  c((*>?r'c[R[R5n[[SS5nUR UR [R U-5 [RUlUR UR [R5 [RUlUR UR [R5 [R UlUR UR [R 5 [RUlUR UR [R5 [R[R-UlUR UR [R[R-5 UR[5 SUlSSS5 g!,(df  g=f)NVERIFY_X509_TRUSTED_FIRSTr) r rqrercr verify_flagsVERIFY_DEFAULTVERIFY_CRL_CHECK_LEAFVERIFY_CRL_CHECK_CHAINVERIFY_ALLOW_PROXY_CERTSVERIFY_X509_STRICTrr)rrZtfs r%test_verify_flagsContextTests.test_verify_flagssTnnS445 S5q 9 ))3+=+=+BC44 ))3+D+DE55 ))3+E+EF-- ))3+=+=>77 ))3+G+GH44s7M7MM ))22S5K5KK M   y )#C * ) )s G%% G3c8[R[R5nUR[SS9 UR[[S9 UR [ UR[S9 UR [5nUR[5 SSS5 URWRR[R5 URS5 UR[5 SSS5 URS5 UR[ 5 SSS5 [R[R5nUR["[$5 UR["[$S9 UR[&[(S9 URS5 UR["5 SSS5 URS5 UR[$5 SSS5 URS5 UR[$["S9 SSS5 [R[R5n[*R,"S[*R.5nURU5 UR[0[$5 SSS5 UR[2[4S9 UR[2[4R75S9 UR[2[9[4R755S9 UR["[:[45 UR["[:[4R755 UR["[:[9[4R7555 UR[ S5 UR[2SS9 SSS5 UR [R5 UR[2SS9 SSS5 UR[<S 5 UR[2S S -S9 SSS5 S nS nSnSnSnSn Sn "SS5n UR[2US9 UR[2US9 UR[2US9 UR[2U "5S9 UR[2U "5R>S9 UR [R5 UR[2US9 SSS5 UR[<S 5 UR[2US9 SSS5 UR[ S5 UR[2U S9 SSS5 UR[@S5 UR[2U S9 SSS5 UR[U S9 g!,(df  GN=f!,(df  GN)=f!,(df  GN=f!,(df  GNd=f!,(df  GN8=f!,(df  GN =f!,(df  GN=f!,(df  GN=f!,(df  GNV=f!,(df  GN2=f!,(df  GNq=f!,(df  GNP=f!,(df  GN/=f!,(df  GN=f)N)rPEM (lib|routines)rrz|( key values mismatch # OpenSSL | KEY_VALUES_MISMATCH # AWS-LC ))passwordzshould be a stringTbadpasszcannot be longeraic[$r] KEY_PASSWORDr^r'r%getpass_unicode:ContextTests.test_load_cert_chain..getpass_unicodes r'c*[R5$r])rencoder^r'r% getpass_bytes8ContextTests.test_load_cert_chain..getpass_bytess&&( (r'c<[[R55$r])rrrr^r'r%getpass_bytearray.getpass_bytearrays\0023 3r'cg)Nrr^r^r'r%getpass_badpass:ContextTests.test_load_cert_chain..getpass_badpasssr'c SS-$)Nrir^r^r'r% getpass_huge7ContextTests.test_load_cert_chain..getpass_huges ;' 'r'cg)Nr%r^r^r'r%getpass_bad_type;ContextTests.test_load_cert_chain..getpass_bad_typesr'c[S5e)N getpass error) Exceptionr^r'r%getpass_exception.getpass_exceptions O, ,r'c \rSrSrSrSrSrg):ContextTests.test_load_cert_chain..GetPassCallableic[$r]rrs r%__call__CContextTests.test_load_cert_chain..GetPassCallable.__call__##r'c[$r]rrs r%getpassBContextTests.test_load_cert_chain..GetPassCallable.getpassrr'r^N)rrHrIrJrrrPr^r'r%GetPassCallablers  $ $r'rzmust return a stringr)!r rqrerr rrruNONEXISTINGCERTrrr7ENOENTrrBADCERT EMPTYCERTONLYCERTONLYKEYBYTES_ONLYCERT BYTES_ONLYKEYrecompileXr>CERTFILE_PROTECTEDrrrONLYKEY_PROTECTEDrrr) rrZrregexrrrrrrrrs r%test_load_cert_chain!ContextTests.test_load_cert_chains#nnS445 Hd3 Hh7 )S%8%8(K   w '2    0( ++U\\:  # #CLL2F G    (H  # #CLL2F G    *HnnS445 Hg. Xw? ^]K  # #CLL2F G    )H  # #CLL2F G    (H  # #CLL2F G   (  CHnnS445  dd   # #CLL% 8    w 79 .F .9L9L9NO .%.|/B/B/D%E  G H&7F H&79L9L9NO H&7%l&9&9&;< >  # #I/C D    2T  BE   s|| ,    2Y  G-  # #J0B C    2TF]  K D   ) 4  (  - $ $ .I .G .9JK .9JK .%4%6%>%>  @   s|| ,    2_  M-  # #J0B C    2\  JD  # #I/E F    2=M  NG  # #I ?    2=N  O@ H/@Ac( 'H G G GH G G G G G9 8E D , , C C>- , C C F F ? ?sX :X28Y#Y!Y(Y:(Z Z Z0?[[[&;[8.\  X/2 Y Y Y%( Y7: Z  Z Z-0 Z? [ [#& [58 \ \c[R[R5nUR[5 UR[SS9 UR[ 5 UR[ SS9 UR [UR5 UR [URSSS5 UR [5nUR[5 SSS5 URWRR[R5 UR[RS5 UR[ 5 SSS5 UR[["5 UR[[$S9 UR [URSS5 g!,(df  N=f!,(df  Nt=f)N)rr)rr)T)r rqrerr BYTES_CERTFILErrrurrrr7rrrrr BYTES_CAPATHrrZrs r%test_load_verify_locations'ContextTests.test_load_verify_locationssFnnS445 !!(+ !!$!? !!.1 !!!E )S%>%>? )S%>%>dDQ   w '2  % %o 6( ++U\\:  # #CLL2F G  % %g .H !!(F3 !!(<!@ )S%>%>dK( 'H GsF3G3 G Gc[[5nUR5nSSS5 [R W5n[[ 5nUR5nSSS5 [R W5n[R [R5nURUR5SS5 URUS9 URUR5SS5 URUS9 URUR5SS5 URUS9 URUR5SS5 [R [R5nSRX$45nURUS9 URUR5SS5 [R [R5nSUSUS US /nURSRU5S9 URUR5SS5 [R [R5nURUS9 URUS9 URUR5SS5 URUS9 URUR5SS5 [R [R5nS RX545nURUS9 URUR5SS5 [R [R5nUR[UR[S9 UR[R S 5 URS S9 SSS5 UR[R S5 URSS9 SSS5 UR[R 5 URUS-S9 SSS5 g!,(df  GN=f!,(df  GN=f!,(df  N=f!,(df  N~=f!,(df  g=f)Nx509_carcadatarUrr headotheragaintailr'z4no start line: cadata does not contain a certificatebrokenz6not enough data: cadata does not contain a certificatesbrokenA)rNr>rOr r?CAFILE_NEURONIOrqrfrcert_store_statsrr rrobjectrr)rrQ cacert_pem cacert_der neuronio_pem neuronio_derrZcombineds r%test_load_verify_cadata$ContextTests.test_load_verify_cadatas - AJ!--j9 / "a668L#// = nnS445 --/ :A> !!!4 --/ :A> !!!6 --/ :A> !!!6 --/ :A>nnS44599j78 !!!2 --/ :A>nnS445Jw &* !!8)<!= --/ :A>nnS445 !!!4 !!!6 --/ :A> !!!4 --/ :A>nnS44588Z67 !!!2 --/ :A>nnS445 )S%>%>vN  # # LL B   % %X % 6   # # LL D   % %Y % 7    s|| ,  % %Z$-> % ?- ,y! # "^    - ,s;P P+P=Q=Q P(+ P:= Q  Q Q-c,[R[R5nUR[5 [RS:waUR[5 UR[UR5 UR[URS5 UR[5nUR[5 SSS5 URWR R"["R$5 UR[R&5nUR[(5 SSS5 g![ a [ (aURS5 ef=f!,(df  N=f!,(df  g=f)N"not supported on Win32 debug buildnt)r rqreload_dh_paramsDHFILE RuntimeErrorPy_DEBUG_WIN32r0rr$ BYTES_DHFILErrrPrrrr7rrr rs r%test_load_dh_params ContextTests.test_load_dh_paramsIsnnS445    v & 77d?   | , )S%7%78 )S%7%7>   0 1R    /2 ++U\\:   s|| ,   x (- , ~ BC  2 1- ,s#E 9E4*F (E14 F Fc[R[R1HDn[RU5nUR UR 5SSSSSSSSSSSS. 5 MF g)Nr) numberr connect_goodconnect_renegotiateaccept accept_goodaccept_renegotiatehitsmissestimeouts cache_full)r rfrerqr session_statsrs r%test_session_statsContextTests.test_session_stats[sk--s/F/FGE..'C   S..0 !'( &' 3 Hr'cj[R[R5nUR5 gr])r rqrfset_default_verify_pathsr]s r%test_set_default_verify_paths*ContextTests.test_set_default_verify_pathsls$nnS445 $$&r'z#ECDH disabled on this OpenSSL buildc[R[R5nURS5 URS5 UR [ UR5 UR [ URS5 UR [ URS5 UR [ URS5 g)N prime256v1s prime256v1foofoo)r rqreset_ecdh_curverrrr]s r%test_set_ecdh_curve ContextTests.test_set_ecdh_curversnnS445 <( =) )S%7%78 )S%7%7> *c&8&8%@ *c&8&8&Ar'c[R[R5nUR[UR 5 UR[UR S5 UR[UR S5 UR[UR U5 SnUR S5 UR U5 g)NrLrhcgr]r^)r servernamerZs r% dummycallback5ContextTests.test_sni_callback..dummycallback r')r rqrerrset_servername_callback)rrZr s r%test_sni_callbackContextTests.test_sni_callback|snnS445 )S%@%@A )S%@%@!D )S%@%@"E )S%@%@#F  ##D) ##M2r'c[R[R5nU4SjnURU5 [R "U5nAA[ R"5 URU"5S5 g)Ncgr]r^)rrrZcycles r%r >ContextTests.test_sni_callback_refcycle..dummycallbackr"r') r rqrer#rjrkgccollectr)rrZr ros r%test_sni_callback_refcycle'ContextTests.test_sni_callback_refcyclesZnnS4457:  ##M2 [[    bdD!r'c[R[R5nURUR 5SSSS.5 UR [ 5 URUR 5SSSS.5 UR[ 5 URUR 5SSSS.5 UR[5 URUR 5SSSS.5 g)Nr)rcrlx509rUr) r rqrfrrrr rr>r]s r%test_cert_store_stats"ContextTests.test_cert_store_statssnnS445 --/!Q / 1 H% --/!Q / 1 !!(+ --/!Q / 1 !!-0 --/!Q / 1r'c P[R[R5nURUR 5/5 UR [ 5 URUR 5/5 UR [5 URUR 5SSSSSSSS./5 [[5nUR5nSSS5 [RW5nURUR S5U/5 g!,(df  NF=f) N)))r0zRoot CA))r#zhttp://www.cacert.org))r1zCA Cert Signing Authority))r$zsupport@cacert.orgzMar 29 12:29:49 2033 GMTzMar 30 12:29:49 2003 GMT00)z!https://www.cacert.org/revoke.crlr)r6r7r8r9rAr:r<T) r rqrfr get_ca_certsrr r>rNrOr?)rrZrQrEders r%test_get_ca_certsContextTests.test_get_ca_certssnnS445 ))+R0 !!(+ ))+R0 !!-0 ))+D55"'ME   - A&&(C!&&s+ ))$/#7! s D D%c[R[R5nUR5 [R[R5nUR[RR 5 UR5 [R[R5nUR[RR 5 [R[R5nUR[URS5 UR[URS5 g)Nr ) r rqrfload_default_certsrr r rrr]s r%test_load_default_certs$ContextTests.test_load_default_certssnnS445  nnS445 s{{667  nnS445 s{{667nnS445 )S%;%;TB )S%;%;]Kr'rznot-Windows specificc4[R[R5n[R"5n[ US'[ US'UR5 URUR5SSSS.5 SSS5 g!,(df  g=f)NrrrrU)r/r0r) r rqrfrrrr r:rr)rrZrs r%test_load_default_certs_env(ContextTests.test_load_default_certs_envsqnnS445  * * ,"(C #+C  " " $   S113QVW5X Y - , ,s AB  Brz3Debug build does not share environment between CRTsc[R[R5nUR5 UR 5n[R[R5n[ R "5n[US'[US'UR5 US==S- ss'URUR 5U5 SSS5 g!,(df  g=f)Nrrr0rU) r rqrfr:rrrrr r)rrZstatsrs r%#test_load_default_certs_env_windows0ContextTests.test_load_default_certs_env_windowssnnS445  $$&nnS445  * * ,"(C #+C  " " $ &MQ M   S113U ; - , ,s '>? #*;*;< ))C,I,II66 8 ))C,B,BB** , **+ $$S) * VVXF(( 606)8 s'>'>? #*;*;< $$S)(()@)@A s'>'>? #--8 $$S) s I Ic[R5nURUR[R5 URUR [R 5 URUR5 URU5 [[R5(a[R"5 [R[R5nSSS5 URUR[R5 URUR [R 5 URU5 [R"5 [R[R[RSS9nSSS5 URUR[R5 URUR [R5 UR!UR5 URU5 [R[R"R$S9nURUR[R&5 URUR [R 5 URU5 g!,(df  GN=f!,(df  GN2=f)NT)rrpurpose)r _create_stdlib_contextrrirfrrrrrFrjrr rlrrrZrr rer]s r%test__create_stdlib_context(ContextTests.test__create_stdlib_contexts((* s'>'>? #--8 ++, $$S) C.. / / //1001C1CD2   S\\3+=+= >   S__cmm <  ( ( -  + + -,,$$++#-C. s';';< #*;*;< **+ $$S)((1H1H(I s'>'>? #--8 $$S))21 . -s$J9.2K 9 K Kc[R"5 [R[R5nSSS5 UR WR 5 URUR[R5 SUlURUR 5 URUR[R5 SUl[RUlUR UR 5 URUR[R5 SUl[RUlSUlUR UR 5 URUR[R5 SUlURUR 5 URUR[R5 SUl[RUlSUlUR UR 5 URUR[R5 SUlURUR 5 URUR[R5 UR[5 [RUlSSS5 SUlUR UR 5 [RUlURUR[R5 g!,(df  GN=f!,(df  N=fr)r rlr rqrdrrrrrrZrrrrr]s r%test_check_hostname ContextTests.test_check_hostname0s;  + + -..!1!12C. ++, #--8" **+ #*;*;<"++ ++, #*;*;<#--" ++, #--8! **+ #*;*;<"++" ++, #*;*;<! **+ #*;*;<  z *!mmCO+" ++,-- #--8S. -H+ *s$L11M1 M Mc[R[R5nURUR5 UR UR [R5 [R[R5nURUR5 UR UR [R5 gr]) r rqrfrZrrrrrerrr]s r%test_context_client_server'ContextTests.test_context_client_server\snnS445 **+ #*;*;<nnS445 ++, #--8r'c"SS[R5n"SS[R5n[R[R5nXlX#lUR[R"5SS9nURXA5 SSS5 UR[R5[R5SS9nURXR5 g!,(df  NU=f)Nc\rSrSrSrg);ContextTests.test_context_custom_class..MySSLSocketihr^NrrHrIrJrPr^r'r% MySSLSocketr[h r'r]c\rSrSrSrg);ContextTests.test_context_custom_class..MySSLObjectikr^Nr\r^r'r% MySSLObjectr`kr^r'raTr) r r SSLObjectrqresslsocket_classsslobject_classrrrUwrap_bior)rr]rarZrrs r%test_context_custom_class&ContextTests.test_context_custom_classgs #--  #-- nnS445)) __V]]_$_ ?4  ! !$ 4@ll3==?CMMOlN c/@ ?s C&& C4c[R[R5nURURS5 SUlURURS5 SUlURURS5 UR [ 5 SUlSSS5 UR [5 SUlSSS5 [R[R5nURURS5 UR [ 5 SUlSSS5 g!,(df  N=f!,(df  N=f!,(df  g=f)NrrUrr) r rqrer num_ticketsrrrrfr]s r%test_num_tickestContextTests.test_num_tickestwsnnS445 !, !, !,   z * CO+   y )"CO*nnS445 !,   z *CO+ *+ * ) ) + *s$D5E$E5 E E E%r^N)1rrHrIrJrVr^rwrLrrir|rrrignore_deprecationrrVr rqrrrrrrrrrrr$r,r1r7r;skipIfrrNr>rPy_DEBUGrBrFrKrQrTrWrgrkrPr^r'r%rRrRs :0/14FH +H + &  D,0 7L;L;\ 01# @  @$(WBrL&?@B)$"' 'LMBNB 3 " 188 L__S\\W,.DEZFZ02DE __W%%JL <LF <R"*2*<*9X 90  r'rRc,\rSrSrSrSrSrSrSrg) SSLErrorTestsic8[RSS5nUR[U5S5 URURS5 [R SS5nUR[U5S5 URURS5 g)NrUr)r rrrbr7SSLZeroReturnError)res r%test_strSSLErrorTests.test_strst LLE " Q' !$  " "1e , Q' !$r'c.[R[R5nUR[R5nUR [ 5 SSS5 URWRRS5 SnURURRU5 [UR5nUR!SU;U5 g!,(df  N=f![a [(aURS5 ef=f)NrPEMz+(NO_START_LINE|UNSUPPORTED_PUBLIC_KEY_TYPE) NO_START_LINE)r rqrfrrrr rrr0rrlibrary assertRegexreasonrbrZ)rrZrrrs r%test_lib_reasonSSLErrorTests.test_lib_reasonsnnS445 ""3<<0B""8,1 --u5= ,,e4   1,a010 ~ BC  s)C,CC, C)%C,)C,,(Dc[R[R5nSUl[RUl[ R"S5n[ R"UR55nURS5 URUSSS9nUR[R5nUR5 SSS5 [WR 5nUR#UR%S5U5 UR'UR R([R*5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f)NFrrz%The operation did not complete (read))r rqrfrrrrrcreate_connectionr setblockingrrSSLWantReadError do_handshakerbrrZrrr7SSL_ERROR_WANT_READ)rrZrrrs r% test_subclassSSLErrorTests.test_subclasssnnS445"--  ! !"2 3q((9A MM% E5IQ&&s';';<NN$= % -T UWXY  !3!3S5L5LM J4 3=<JI4 3s>AE3 E"=EA2E"E3 E E"" E0 ,E33 Fc[R5nUR[5 UR [R 5[R 5SS9 SSS5 UR[5 UR [R 5[R 5SS9 SSS5 UR[ 5 UR [R 5[R 5SS9 SSS5 g!,(df  N=f!,(df  Ns=f!,(df  g=f)Nrhrz .example.orgzexample.orgevil.com)r rIrrrfrrr]s r%test_bad_server_hostname&SSLErrorTests.test_bad_server_hostnames((*   z * LL#--/)+  -+  z * LL#--/)7  9+  y ) LL#--/)B  D* ) + *+ ** )s#6D=6D 6D1 D D.1 D?r^N) rrHrIrJrur}rrrPr^r'r%rqrqs%1"N$ Dr'rqc2\rSrSrSrSrSrSrSrSr g) MemoryBIOTestsicz[R5nURS5 URUR 5S5 URUR 5S5 URS5 URS5 URUR 5S5 URUR 5S5 URS5 URUR S5S5 URUR S5S 5 URUR S5S5 g) Nrr'barsfoobarbazrsbarUz)r rrrrOrbios r%test_read_writeMemoryBIOTests.test_read_writesmmo & V, S) & & Y/ S) & !e, !d+ !c*r'c[R5nURUR5 UR UR 5S5 URUR5 UR S5 URUR5 UR5 URUR5 UR UR S5S5 URUR5 UR UR S5S5 URUR5 UR UR 5S5 URUR5 g)Nr'rrsforUo) r rreofrrOr write_eofrZrs r%test_eofMemoryBIOTests.test_eofsmmo ! S) ! & !  ! !e, ! !d+   S)  r'c$[R5nURURS5 UR S5 URURS5 [ S5H6nUR S5 URURSU- S- 5 M8 [ S5H3nUR S5 URURUS-5 M5 UR 5 URURS5 g)NrrrrUrs)r rrpendingrrrO)rrrs r% test_pendingMemoryBIOTests.test_pendingsmmo a( & a(qA HHQK   S[[!A#a% 0qA IIdO   S[[!A# .   a(r'c@[R5nURS5 URUR 5S5 UR[ S55 URUR 5S5 UR[ S55 URUR 5S5 [ [ S55nUSSS2nUR[5 UR[ U55 SSS5 g!,(df  g=f)Nrrrs noncontig) r rrrrOr memoryviewr BufferError)rrmnoncontig_writables r%test_buffer_types MemoryBIOTests.test_buffer_typessmmo & V, )F#$ V, *V$% V, y. /ttW   { + IIj!34 5, + +s +D Dc4[R5nUR[URS5 UR[URS5 UR[URS5 UR[URS5 g)NrTrU)r rrrrrs r%test_error_typesMemoryBIOTests.test_error_typessemmo )SYY6 )SYY5 )SYY5 )SYY2r'r^N) rrHrIrJrrrrrrPr^r'r%rrs +! ) 63r'rc \rSrSrSrSrSrg)SSLObjectTestsic[R5nUR[S5 [R X5 SSS5 g!,(df  g=fr)r rrrrcrs r%r SSLObjectTests.test_private_init s7mmo  # #I/C D MM# #E D Ds A  Ac$[5upn[R5n[R5n[R5n[R5nURXEUS9nURXgSS9n [ S5Hn UR 5 UR(aURUR55 U R 5 UR(dMhURUR55 M UR 5 U R 5 UR[R 5 UR5 SSS5 URUR55 U R5 URUR55 UR5 g![R a GNEf=f![R a GNf=f!,(df  N=f)NrTrbr*) rr rrfrrrrrrOrunwrap) r client_ctx server_ctxrc_inc_outs_ins_outclientr<_s r% test_unwrapSSLObjectTests.test_unwraps+:+<( }} }} $$T($K$$Td$CqA ##%}} 5::<( ##%}}} 5::<(   s33 4 MMO5 5::<   5::<  7''   ''  5 4s0 G G&H G#"G#&G>=G> Hr^N)rrHrIrJrrrPr^r'r%rrs $ (r'rc\rSrSrSrSrSrSrSrSr Sr S r S r \ R"\R S :HS 5S 5rSrSrSrSrSrSrSrSrSrSrSrSrSrg)SimpleBackgroundTestsi8c[R[R5UlURR [ 5 [ URS9nURU5 [UR4Ul g)NrC) r rqrerrrrD enterContextr6r= server_addr)rr<s r%setUpSimpleBackgroundTests.setUp;s\!nnS-D-DE ++O<#D,?,?@ &! &++.r'c[[R"[R5[RS9nUR UR 5 UR0UR55 URUR5 SSS5 [[R"[R5[R[S9nUR UR 5 URUR55 URUR5 SSS5 g!,(df  N=f!,(df  g=f)Nrrr)rrrir rrrr getpeercertrrrrrZrs r% test_connect"SimpleBackgroundTests.test_connectBs fmmFNN;&)mm589 IId&& '   R 1   Q]] + 5fmmFNN;&)&7&7%/145 IId&& ' OOAMMO ,   Q]] + 115511sAD8AE 8 E Ecd[[R"[R5[RS9nUR UR 5 [R"S[R5nUR[RUURUR5 g)Nr|( certificate verify failed # OpenSSL | CERTIFICATE_VERIFY_FAILED # AWS-LC ))rrrir rrrrrrrrrr)rrrs r%test_connect_fail'SimpleBackgroundTests.test_connect_failQsy V]]6>>:&)&7&7 9    dd  s||U yy$*:*: >:&)&7&7%/ 1   ALL)9)9:;  (r'c[[R"[R5[R[ SS9nUR UR5 URS5 URUR5nURUS[R[R45 [R"/U//S5 UR!5 UR'UR)55 g![R"a [R"U///S5 O3[R$a [R"/U//S5 Of=fM)NF)rrrrr)rrrir rrrrrr5rrr7 EINPROGRESSr;selectrrSSLWantWriteErrorrZrrrr>s r%test_non_blocking_connect_ex2SimpleBackgroundTests.test_non_blocking_connect_exjs V]]6>>:&)&7&7%/49 ;   e \\$** + b1e//1B1BCD b1#r3' 0   ( '' 0 qc2r3/(( 0 b1#r3/ 0 sD.E&6-E&%E&c[R[R5nSUl[RUlUR [R"[R55nURUR5 UR0UR55 SSS5 UR [R"[R5SS9nURUR5 SSS5 [RUlUR[5 UR [R"[R55nURUR5 UR5nUR!U5 SSS5 g!,(df  GN=f!,(df  N=f!,(df  g=f)NFdummyr)r rqrfrrrrrrirrrrrrrrZrrZrrs r%test_connect_with_context/SimpleBackgroundTests.test_connect_with_contexts6nnS445"-- __V]]6>>: ;q IId&& '   R 1<__V]]6>>:,3589 IId&& '5++ !!*- __V]]6>>: ;q IId&& '==?D OOD !< ;< ;55 < ;s$3>:-EGJK IId&& '==?D OOD ! GnnS445 !!!6 __V]]6>>:-EGJK IId&& '==?D OOD ! GGGGGGs-=E$=E5$ E25 Fc[[5nUR5nSSS5 [R W5n[R [R 5nURUS9 UR[R"[R5[S9nURUR5 UR5nURU5 SSS5 [R [R 5nURUS9 UR[R"[R5[S9nURUR5 UR5nURU5 SSS5 g!,(df  GN=f!,(df  N=f!,(df  g=f)Nrr)rNrrOr r?rqrfrrrrirrrrrZ)rrQrEr6rZrrs r%test_connect_cadata)SimpleBackgroundTests.test_connect_cadatasM * &&(C&&s+nnS445 !!!- __V]]6>>:-EGJK IId&& '==?D OOD ! GnnS445 !!!- __V]]6>>:-EGJK IId&& '==?D OOD ! GG  GGGGs#F&=F+=F< F(+ F9< G rz*Can't use a socket as a file under Windowsc`[[R"[R55nURUR5 UR 5nUR 5nUR5 [R"US5 UR5 [R"5 UR[5n[R"US5 SSS5 URWRR [ R"5 g!,(df  NC=fr)rrrirrfilenomakefilerrrOr*r+rrurrr7EBADF)rrnfdrQrts r%test_makefile_close)SimpleBackgroundTests.test_makefile_closes fmmFNN; < 4##$ YY[ KKM   A     w '1 GGBN( **EKK8( 's D D-cv[R"[R5nURUR5 UR S5 [ U[ RSS9nURUR5 SnUS- nUR5 [R(a#[ R"R%SU-5 gg![ Ra [R"U///5 O2[ Ra [R"/U//5 Of=fM)NFrrrrUz9 Needed %d calls to do_handshake() to establish session. )rrirrrrr rrrrrrrrrrrr)rrcounts r%test_non_blocking_handshake1SimpleBackgroundTests.test_non_blocking_handshakes MM&.. ) $""# e Q&)mm49 ;   +   ?? JJ  Z]bb c  '' + qc2r*(( + b1#r* +s C-D6,D65D6c>[U/URQ7S[06 g)Nr)_test_get_server_certificaterrrs r%test_get_server_certificate1SimpleBackgroundTests.test_get_server_certificates$TND,<,<N:Nr'c ^URup/mU4SjnURRU5 [R X45nU(dUR SU<SU<S35 [R X4[ S9nU(dUR SU<SU<S35 [R(a,[RRSU<SU<SU<S35 URTX/5 g) Nc(>TRU5 gr])append)ssl_sock server_nameinitial_context server_namess r% servername_cbLSimpleBackgroundTests.test_get_server_certificate_sni..servername_cbs    ,r'No server certificate on :!r Verified certificate for  is r ) rrr#r get_server_certificaterBrrrrrrr)rhostr=rrErs @r%test_get_server_certificate_sni5SimpleBackgroundTests.test_get_server_certificate_snis%%   - 33MB(($6 II4F G(($ (K II4F G ?? JJ  DRVX[\ ] |4r'c0[U/URQ76 gr])!_test_get_server_certificate_failrrs r% test_get_server_certificate_fail6SimpleBackgroundTests.test_get_server_certificate_fails *$B1A1ABr'cSnURRU5 UR[R5 [ R UR[SS9 SSS5 g!,(df  g=f)Nc0[R"S5 g)N皙?)rsleeprrrs r%rPSimpleBackgroundTests.test_get_server_certificate_timeout..servername_cbs JJsOr'皙?)rr) rr#rrrr rrr)rrs r%#test_get_server_certificate_timeout9SimpleBackgroundTests.test_get_server_certificate_timeoutsY  33MB   v~~ .  & &t'7'7*/2 ' 4/ . .s $A++ A9c[[R"[R5[RSS9nUR UR 5 SSS5 [[R"[R5[RSS9nUR UR 5 SSS5 UR[RS5 [R"[R5n[U[RSS9nUR UR 5 SSS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  N9=f!,(df  g=f)NrY)rrrZr[r\) rrrir rrrrr)rrrs r%r^"SimpleBackgroundTests.test_ciphers%s  fmmFNN;'*}}eEHI IId&& 'EfmmFNN;'*}}iILM IId&& 'I # #CLL2M Nv~~.$$T.1mmEWY $**+/O NEEII /.O Ns;E E%E=5E,9E= E E), E: 6E== F c[R[R5nUR[S9 UR UR 5/5 UR[R"[R5SS9nURUR5 UR5nURU5 SSS5 UR [UR 55S5 g!,(df  N8=f)Nrr2rrU)r rqrfrrrr5rrrirrrrZrhrs r%test_get_ca_certs_capath.SimpleBackgroundTests.test_get_ca_certs_capath3snnS445 !!!0 ))+R0 __V]]6>>:-8:=> IId&& '==?D OOD ! : S--/0!4 ::s =C88 Dc[R[R5nUR[S9 [R[R5nUR[S9 [ R "[ R 5nURUSS9nURUR5 URURU5 URURRU5 X$l URURU5 URURRU5 SSS5 g!,(df  g=f)Nrr2r) r rqrfrrrrirrrrr_sslobj)rctx1ctx2rrns r%test_context_setget)SimpleBackgroundTests.test_context_setget?s~~c556 ""&"1~~c556 ""&"1 MM&.. )   a  = JJt'' ( MM"**d + MM"**,,d 3J MM"**d + MM"**,,d 3 > = =s !B&E EcURS[R5nSn[R"U5Hn Sn US- nU"U6n UR5n URU 5 U c OUU [R:XdMLURS5n U (aURU 5 MwUR5 M [R(a-[R RSXR"4-5 W $![R aFn U R [R[R4;aeU R n Sn A GNSn A ff=f)NrrrUiz"Needed %d calls to complete %s(). )rr SHORT_TIMEOUT busy_retryr rr7rSSL_ERROR_WANT_WRITErOsendallrvrrrrrr)rrincomingoutgoingr{ryrrrrr7retrtbufs r% ssl_io_loop!SimpleBackgroundTests.ssl_io_loopNs **Y(=(=>##G,AE QJE Dk--/C LL }#111ii&NN3'&&(/-0 ?? JJ  B %}}56 7 -<< 773#:#:#&#;#;#==  sDE";EE"c[R"[R5nURUR5 UR UR 5 [ R5n[ R5n[ R[ R5nURUR5 URUR[ R5 UR[ 5 UR#X#S[$5nUR'UR(R*U5 UR-UR/55 UR-UR155 UR-UR355 UR5[6UR85 S[ R:;a4UR15S:wa UR-UR=S55 UR?XX5R@5 URUR/55 UR-UR355 URCUR155 URUR955 S[ R:;a4UR15S:wa URUR=S55 UR?XX5RD5 UR5[ RHURJS5 g![ RFa NBf=f)NFrTLSv1.3r)&rrirrrrr rrqrfrZrrrrrrrfrrrownerrcipherr<shared_ciphersrrrrMrr%rassertIsNotNonerSSLSyscallErrorrr)rrr!r"rZsslobjs r%test_bio_handshake(SimpleBackgroundTests.test_bio_handshakepsA}}V^^,  # T%%&==?==?nnS445 **+ #*;*;< !!*-h%68 fnn**F3 &--/* &..*+ &//12 *f&8&89 344 49IY9V   f88F G 3F3FG  ( &//12 V^^-. **,- 344 49IY9V OOF66|D E    TX}} E #,, f= ""   s#L++MMc[R"[R5nURUR5 UR UR 5 [ R5n[ R5n[ R[ R5nSUl [ RUl URX#S5nURXX5R5 SnURXX5R U5 URXX5R"S5nUR%US5 URXX5R&5 g)NFFOO sfoo )rrirrrrr rrqrfrrrrfr%rrrOrr)rrr!r"rZr.reqr$s r%test_bio_read_write_data.SimpleBackgroundTests.test_bio_read_write_datas}}V^^,  # T%%&==?==?nnS445"--h%8 3F3FG <<EtxdK h' ==Ar'c[5upn[R"[R5nURUR5 [ R 5n[ R 5nURXVUS9nURXEXgR5 UR5 UR[ RUR5 SSS5 g!,(df  g=f)Nr)rrrirrr rrfr%rrr SSLEOFErrorrO)rrrrrr!r"r.s r%test_transport_eof(SimpleBackgroundTests.test_transport_eofs3B3D0 ]]6>> *d LL)) *}}H}}H#,,X=E-GF   TX7J7J K      coov{{ ;+ * *s B*C%% C3)rrN)rrHrIrJrrrrrrrrrrwrnrr$rrrrrrr^rrr%r/r5r9rPr^r'r%rr8s/ ,< ))4"(=&"."*__RWW_&RS9T9$d*O5*C 4 , 5 4 D">HB" rz!REMOTE_HOST responded too quicklyzNetwork unreachable.)rtransient_internet REMOTE_HOSTrrrir rrrrr5r0r7 ENETUNREACHrEAGAINr;rs r%test_timeout_connect_ex&NetworkedTests.test_timeout_connect_exs - -k : v~~!>*-*;*;8=?A OOAGG $ LL #{C01BQw ABu((( 45 MM"u||U->->? @; : :s C,D Dz Needs IPv6walltimec[R"S5 [USS5 [USS5 SSS5 g!,(df  g=f)Nzipv6.google.comr?)rr@rrrs r% test_get_server_certificate_ipv6/NetworkedTests.test_get_server_certificate_ipv6s: - -.? @ (/@# F -d4Es KA @ @s ; A r^N) rrHrIrJrDrwrLr IPV6_ENABLEDrrequires_resourcerHrPr^r'r%r=r=sEA 33\B z*L+CLr'r=c b[RX45nU(dURSU<SU<S35 [RX4US9nU(dURSU<SU<S35 [R(a-[ R RSU<SU<SU<S35 gg)Nrrrrrrr )r rrBrrrrr)testrr=rrEs r%rrsy $ $d\ 2C  tTBC $ $d\D $ AC  tTBC dTWXYr'c [R"U5 [RX4[S9nUR SU<SU<SU<S35 SSS5 g![R aAn[R(a"[RRSU-5 SnANYSnAff=f!,(df  g=f)NrzGot server certificate z for rrz%s ) r check_no_resource_warningr rr rBrrrrrr)rMrr=rExs r%rrs  2 24 8 R,,d\H,MC IIT4P Q 9 8|| -   !, - 9 8s3B1AB1B.-7B)$B1)B..B11 B?)make_https_servercz\rSrSr"SS\R 5rS SjrSrSr SSjr S r S r S r S rg)rDic8\rSrSrSrSrSrSrSrSr Sr g ) $ThreadedEchoServer.ConnectionHandlericXlSUlX lX0lURR S5 SUl[ RRU5 SUl gNFT) r<runningraddrrsslconn threadingr__init__daemon)rr<connsockrXs r%r[-ThreadedEchoServer.ConnectionHandler.__init__sL K DL II II ! !$ 'DL    % %d +DKr'cURRRURSS9UlURR R URR55 URRR URR55 URRR[R:XGaURR5n[R(aTURR(a9[ R"R%S[&R("U5-S-5 URRS5n[R(ajURR(aOUc [ R"R%S5 O,[ R"R%S[+U5S35 URR-5n[R(aIURR(a.[ R"R%S[/U5-S-5 g![0[2[44anURR6R [/U55 URR(a$[9S [;UR<5-S -5 S UlURA5 SnAg SnAf[RB[D4anURR6R [/U55 URR(a$[9S [;UR<5-S -5 URF[FRH:wa+[ RJS :waS UlURA5 SnAg SnAff=f) NTrbz client cert is r z client did not provide a cert z cert binary is zb z" server: connection cipher is now z' server: bad connection attempt from z: Fdarwin)&r<rrrrYselected_alpn_protocolsrselected_alpn_protocolr+rr rrrrchattyrrrrrrhr*rbConnectionResetErrorBrokenPipeErrorConnectionAbortedError conn_errorsrrrXrWrrrur7 EPROTOTYPErN)rr cert_binaryr*rts r% wrap_conn.ThreadedEchoServer.ConnectionHandler.wrap_conns: #{{22>>II4 ? 1  33::4<<;^;^;`aR **11$,,2M2M2OP;;&&22c6G6GG<<335D4;;+=+= (();fnnT>R)RUY)YZ"&,,":":4"@K4;;+=+=&.JJ,,-OPJJ,,/?K@P?QQT-UV,,.??t{{'9'9JJ$$%ICPVK%WZ^%^_m)/;QR  ''..s1v6;;%% !KdSWS\S\o!]`e!ef$  LL'*  ''..s1v6;;%% !KdSWS\S\o!]`e!ef 77e...3<<83K#(DLJJL+ s&A0I88O3 BLO33B6O..O3cUR(aURR5$URRS5$)Nr3)rYrOrrvrs r%rO)ThreadedEchoServer.ConnectionHandler.read7 s/||||((**yy~~d++r'cUR(aURRU5$URRU5$r])rYrrrz)rrs r%r*ThreadedEchoServer.ConnectionHandler.write= s1||||))%00yy~~e,,r'cUR(aURR5 gURR5 gr])rYrrrs r%r*ThreadedEchoServer.ConnectionHandler.closeC s'|| ""$ !r'c SUlURR(dUR5(dgUR(GaUR 5nUR 5nU(d@SUlUR R5UlSUlUR5 GOUS:Xa`[R(a:URR(a[RR!S5 UR5 gURR(a~US:Xax[R(a:URR(a[RR!S5 UR!S5 UR5(dgGOURR(aUR (aUS:Xa[R(a:URR(a[RR!S 5 UR!S5 UR R5UlSUl[R(a:URR(a[RR!S 5 GOUS :Xa[R(a:URR(a[RR!S 5 UR R#S 5nUR![%U5R'S5S-5 GOuUS:Xa}[R(a:URR(a[RR!S5 UR R)5 UR!S5 GOUS:XaAUR R/5bUR!S5 GOUR!S5 GOUS:XaHUR R/5nUR![%U5R'S5S-5 GO]US:XaSUR R0R35nUR![5U5R7SS5S-5 GOUS:XaRUR R0R95nUR![5U5R7SS5S-5 O[R(awURR(a\UR =(a S=(d Sn[RR!SU<SU<SUR;5<SU<S3 5 UR!UR;55 UR(aGMgg![a GNPf=f![*R,a6nUR![%U5R'S5S-5 SnANlSnAff=f![an[=U[>5(adURR@(a-[R(a[CS URD35 UR5 SUlSnAgURR@(a [R(a [GS!5 UR!S"5 O![a Of=fUR5 SUlSnAGNrSnAff=f)#NTFsoverz" server: client closed connection STARTTLSz2 server: read STARTTLS from client, sending OK... OK ENDTLSz0 server: read ENDTLS from client, sending OK... z* server: connection is now unencrypted... s CB tls-uniquez@ server: read CB tls-unique from client, sending our CB data... rus-ascii PHAz( server: initiating post handshake auth HASCERTTRUE FALSE GETCERTs VERIFIEDCHAINrUbigsUNVERIFIEDCHAIN encrypted unencryptedz server: read z (z), sending back z)... z Connection reset by peer: zTest server failure: sERROR )$rWr<starttls_serverrjrOstriprYrrrurrrconnectionchattyrrrrrrverify_client_post_handshaker rrrget_verified_chainrhto_bytesget_unverified_chainr/raConnectionErrorrcprintrXr)rmsgstrippedrrtrcertsctypes r%run(ThreadedEchoServer.ConnectionHandler.runI sDL;;..~~'',,,[)))+C"yy{H#', 0(, (;(;(=DI,0DL !W,"??t{{/K/KJJ,,-RS ++55"k1"??t{{/K/KJJ,,-bc 7+#~~//" 0++55$,,&)3"??t{{/K/KJJ,,-`a 7+$(LL$7$7$9 '+ "??t{{/K/KJJ,,-Z[!%55"??t{{/K/KJJ,,-pq#||?? M 4:#4#4Z#@5#HI!V+"??t{{/K/KJJ,,-XY0 LLEEG!JJw/!Z/<<335A JJy1 JJz2!Z/#||779 4:#4#4Z#@5#HI!%55 $ 4 4 G G I 3u:#6#6q%#@5#HI!%77 $ 4 4 I I K 3u:#6#6q%#@5#HI#OO KK88%)\\%Ak$SmEJJ,,03UCIIK.PQ 399;/Q,,, '!! !N #||K JJtAw~~j'AE'IJJK2)!!_55 ;;--'//!$? {"KL ', {{))goo$%=> :."JJL#(DLL')s .Y;W$Y3A%YBY2DY;BYAY/W5 Y2YY#A Y1AY AY"B+Y$ W2.Y1W22Y5X? ,X:5Y:X??Y ] A4];]\] \ ]\  ]])rXr\rWr<rrYN) rrHrIrJr[rjrOrrrrPr^r'r%ConnectionHandlerrTs"  ; z ,  -  " a )r'rNc U (aXlO[RUbUO[R5UlUbUO[RURlU(aURR U5 U(aURRU5 U(aURRU5 U (aURRU 5 XPl X`l Xpl [R"5Ul[R "UR5UlSUlSUl/Ul/Ul/Ul[.R0R3U5 SUlSUlgrV)rr rqrerrrrset_alpn_protocolsrXrcrrrrrr4r=flagactiverar+rgrZrr[r\ _in_context) r certificate ssl_versioncertreqscacertsrcrralpn_protocolsrrs r%r[ThreadedEchoServer.__init__ s "L>>-8-D+6/2/F/FHDL5=4H-0]] LL $ 227; ,,[9 //? ((1 0.MMO !++DII6   ')$ !!$'  r'cUR(a [S5eSUlUR[R"55 UR R 5 U$)Nz&Re-entering ThreadedEchoServer contextT)rrstartrZEventrwaitrs r% __enter__ThreadedEchoServer.__enter__ sE   EF F 9??$%  r'cRSUlUR5 UR5 gNF)rstopr rrys r%__exit__ThreadedEchoServer.__exit__ s   r'cUR(d [S5eXl[RR U5 g)N4ThreadedEchoServer must be used as a context manager)rrrrZrrrrs r%rThreadedEchoServer.start s6FH H t$r'c\UR(d [S5eURRS5 URR S5 SUlUR (aUR R5 UR (aURR5up[R(a?UR(a.[RRS[U5-S-5 UR!XU5nUR#5 UR%5 UR (aMUR/5 g![&aCn[R(a$[RRSU<S35 SnANlSnAf[(a UR+5 N[,a^n[R(a?UR(a.[RRS[U5-S-5 SnANSnAff=f) Nrg?r*Tz server: new connection from r z connection timeout z connection handling failed: )rrrrlistenrrrrrrrcrrrrrrr TimeoutErrorKeyboardInterruptr BaseExceptionr)rnewconnconnaddrhandlerrts r%rThreadedEchoServer.run ssFH H S!  99 IIMMOkk J$(II$4$4$6!??t{{JJ$$%E'+H~&68<&=>00I  kkk&   E??JJ$$';A5%CD$    J??t{{JJ$$7$q'ADHJ Js,B"E H+'9F%%H+ H+ AH&&H+cbURb"URR5 SUlggr])rrrs r%rThreadedEchoServer.close s& 99 IIOO DI !r'cSUlgr)rrs r%rThreadedEchoServer.stop s  r') rrrcrgrrr\rr=rar+rr) NNNNTFFNNNr])rrHrIrJrZrrr[rrrrrrrPr^r'r%rDrDsL@)I,,@)D6:(,FK $'+ !!F %> r'rDcl\rSrSr"SS\R 5rSrSrSr Sr S S jr S r S r S rg)AsyncoreEchoServeri cP\rSrSr"SS\R 5rSrSrSr Sr g) AsyncoreEchoServer.EchoServeri c8\rSrSrSrSrSrSrSrSr Sr g ) /AsyncoreEchoServer.EchoServer.ConnectionHandleri c[USUSS9Ul[RR XR5 SUlUR 5 g)NTF)rrr)rrr dispatcher_with_sendr[_ssl_accepting_do_ssl_handshake)rconnrs r%r[8AsyncoreEchoServer.EchoServer.ConnectionHandler.__init__ sG.t7?FKM --66t[[I&*#&&(r'c[UR[R5(aNURR 5S:a0UR 5 URR 5S:aM0g)NrT)rarr rrhandle_read_eventrs r%readable8AsyncoreEchoServer.EchoServer.ConnectionHandler.readable sRdkk3==99++--/!3..0++--/!3r'cURR5 SUlg![R[R 4a g[R a UR5s$[Ra e[a@nURS[R:XaUR5sSnA$SnAgSnAff=f)NFr) rrrr rrr8 handle_closerruryr7 ECONNABORTEDrerrs r%rAAsyncoreEchoServer.EchoServer.ConnectionHandler._do_ssl_handshake! s 0KK,,.+0D',,c.C.CD/,,..||3xx{e&8&88#002293s'$$C  #C /C  0C<C C cXUR(aUR5 gURS5n[R(a+[ R RS[U5-5 U(dUR5 gURUR55 g)Nr3z server: read %s from client ) rrrvrrrrrrrrzr/)rrs r% handle_read;AsyncoreEchoServer.EchoServer.ConnectionHandler.handle_read0 sf&&**,99T?D (()JTRVZ)WX  $**,/r'cUR5 [R(a-[RR SUR -5 gg)Nz server: closed connection %s )rrrrrrrrs r%r)rrr<rs r%__str__AsyncoreEchoServer.__str__[ s NN33T[[AAr'cUR[R"55 URR 5 U$r])rrZrrrrs r%rAsyncoreEchoServer.__enter__^ s( 9??$%  r'c[R(a[RR S5 UR 5 [R(a[RR S5 UR 5 [R(a[RR S5 [R"SS9 g)Nz cleanup: stopping server. z! cleanup: joining server thread. z cleanup: successfully joined. T) ignore_all) rrrrrrr r close_allrs r%rAsyncoreEchoServer.__exit__c sp ?? JJ  ; < ?? JJ  A B ?? JJ  ? @d+r'NcNXl[RRU5 gr])rrZrrrs r%rAsyncoreEchoServer.starto s t$r'cSUlUR(aURR5 UR(a+[R"S5 UR(aM*gg! N=f)NTrU)rrrr looprs r%rAsyncoreEchoServer.runs sJ 99 IIMMOkk  a kkk s A00A4cFSUlURR5 gr)rr<rrs r%rAsyncoreEchoServer.stop} s  r')rr\rr=r<r])rrHrIrJr rrr[rrrrrrrPr^r'r%rr s;Bh))BHB ,%r'rc 0n[UUSS9nU UR[R"5XVS9n U R[UR 45 U[ U5[U54Hn U(a7[R(a"[RRSU-5 U RU 5 U R5n U(a7[R(a"[RRSU -5 XR5:wdM[SU SS[!U 5USSR5[!U54-5e U RS5 U(a4[R(a[RRS 5 UR#U R%5U R'5U R)5U R+5U R-5U R.U R0S .5 U R35 SSS5 UR4US 'UR6US 'SSS5 U$!,(df  N6=f!,(df  U$=f) NFrrcr)rsession client: sending %r...  client: read %r 4bad data <<%r>> (%d) received; expected <<%r>> (%d) over  client: closing connection. ) compressionr*peercertclient_alpn_protocolr<session_reusedrserver_alpn_protocolsserver_shared_ciphers)rDrrrr6r=rrrrrrrrOr/AssertionErrorrhrrr*rrbr<rrrrar+) rrindatarcrsni_namerrAr<rargoutdatas r%server_params_testr s E '-168F   ' '  ((;>? IItV[[) * & 1:f3EF# ((7&@B &&(# (()>)HIlln,(O"3B<W!#2;,,.F ==>>G GGI ??JJ$$%FG LL }}((*MMO()(@(@(B99;"#"2"299  GGI?;@*0)G)G%&)/)>)>%&E F LE;; F Ls*$I,C*I"D I+&I, I) %I,, I;c Uc[Rn[RS[RS[RS0Un[R (a_U=(a S=(d Sn[ RRU[RU5[RU5U4-5 [R"5 [RU5nU=RU-sl [RU5n U =RU-sl SSS5 [RUS5n U bY[!W S5(aHU[R":Xa4U R$U :a$[R"5 XlSSS5 WR&[R":XaUR)S5 [+W U5 X4H3n X;lU R/[05 U R3[45 M5 [7XSSS 9n U(d:[9S [RU5<S [RU5<S 35eUS LaX,S:wa[9SU<SU S<35egg!,(df  GNh=f!,(df  GN=f![R:a U(aeg[<a0n U(dU R>[>R@:waeSn A gSn A ff=f)Nrrrz %s->%s %s z {%s->%s} %s rTrYF)rcrzClient protocol z succeeded with server protocol rTr<zversion mismatch: expected z, got )!r rrrrrrrrget_protocol_namer rlrqrPROTOCOL_TO_TLS_VERSIONrrVrdrTrirXr[rrrrrrrrrur7 ECONNRESET)server_protocolclient_protocolexpect_success certsreqsserver_optionsclient_optionscerttype formatstrrr min_versionrZrArts r%try_protocol_combor sMM  { ? ? H #6K;K  //@//@"$$ %  ' ' )8.08.0 **--otDK N$5 6 6 s// /  * *[ 8 + + --8 *. #"2"22""5)7/# O, !!*-0G">*/%I ((9((9;< <D( )$44 $2E)4D"FG G5)c * )". -( <<     QWW(8(88 9s7AJJ J, J J),L L&K>>LcbUR5HnUHnSU3US;dM g M g)NzKx= descriptionTF)rf)rZaliasesr*aliass r%supports_kx_aliasr s8//#EUG}} 55$ r'c\rSrSr\R "S5S5r\R"\RS5S5r Sr Sr Sr \R"\RS 5S 5rS r\R"\S 5S 5rSrSPSjrSr\"S5S5rSrSrSr\"S5S5r\"S5S5r\"S5S5r\"S5S5rSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,\"S5S+5r-\"S5\"S5\.S,555r/\"S5\.S-55r0\"S5\"S5\.S.555r1\"S5S/5r2S0r3\R"S1\Rh;S25S35r5S4r6\R"\7"\S55S65S75r8S8r9S9r:S:r;S;rS>r?S?r@S@rASArBSBrCSCrDSDrESErFSFrGSGrHSHrISIrJSJrK\"S5\R"\RSK5SL55rM\"S5\R"\RSK5SM55rNSNrOgO)Q ThreadedTestsi rFc d[R(a[RR S5 [ 5upnUR [R[RS9 [UUSSUS9 SSS5 SUl UR [R[RS9 UR[R5n[UUSSUS9 SSS5 URS[WR 55 SSS5 UR [R[RS9 UR[R5n[UUSSS9 SSS5 URS[WR 55 SSS5 UR [R[RS9 UR[R5n[UUSSS9 SSS5 URS[WR 55 SSS5 g!,(df  GN=f!,(df  GNk=f!,(df  GNP=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  g=f)Nr )rr<T)rrrcrrFz@Cannot create a client socket with a PROTOCOL_TLS_SERVER context)rrrcr)rrrrrrrr rfrerrrrrrbr)rrrrrts r% test_echoThreadedTests.test_echo s ?? JJ  T "3B3D0 \\!8!8AXAX\ Y n.<&*T(0 2Z ).% \\!8!8AXAX\ Y""3<<0A".2@*.,461 MMRAKK   Z\\!8!8AXAX\ Y""3<<0A".2@*.G1 MMRAKK   Z\\!8!8AXAX\ Y""3<<0A".2@*.G1 MMRAKK  " Z Y9Z Y10Z Y10Z Y10Z Ysx.H77 II %-I I?& I-3-I? J!4 J-J!7 I I I I*- I< 7I?? J  J J!! J/z*test is only useful if the GIL is disabledc /nSqURURURUR[ R "URSS9URUR4HEn[S5H3nURX#S9 UR[US95 SSS5 M5 MG [R"5nUH+nURUS9 UR!5 SSS5 M- UH+nURUS9 UR#5 SSS5 M- UR$b5['UR$[(R*5(d UR$eSSS5 Sqg!,(df  GM=f!,(df  M=f!,(df  M=f!,(df  NH=f!Sqf=f)NTF)warnings_filtersr*)r{numtarget)thread)rrtest_alpn_protocolstest_getpeercerttest_crl_checkr~partialtest_check_hostname_idntest_wrong_cert_tls12test_wrong_cert_tls13rrrrr catch_threading_exceptionrr exc_valuerarwrx)rthreadsr{r#rr&s r%test_ssl_in_multiple_threads*ThreadedTests.test_ssl_in_multiple_threads6 st!% *((%%##!!00%***** !8C49vT':;:9$ $";;=%FV4 54&&FV4 54&<<+%bllH4E4EFF ll*>%* !!:9 5454 >=%* !smBF>E6!%F>F-F , F- FAF-+F>6 F F> F F- F* %F-- F;7F>>Gc[R(a[RR S5 [ 5upn[ USS9nU UR[R"5SUS9nUR[UR45 UR[5 UR5 SSS5 UR5 UR5nUR!US5 UR#5n[R(ad[RR [$R&"U5S-5 [RR S[)U5-S-5 SU;a(UR+S [$R&"U5-5 S US;aUR+S 5 UR-S U5 UR-S U5 [.R1US 5n[.R1US 5n UR3X5 SSS5 SSS5 g!,(df  GN=f!,(df  N)=f!,(df  g=f)Nr Frrc)rrCan't get peer certificate.zConnection cipher is z. r:z$No subject field in certificate: %s.r/zkMissing or invalid 'organizationName' field in certificate subject; should be 'Python Software Foundation'.r8r7)rrrrrrrDrrrr6r=rrrrrZr*rrrbrBrr rrX) rrrrr<rrr*beforeafters r%r(ThreadedTests.test_getpeercert_ s ?? JJ  T "3B3D0#N5I ++FMMODIH&H II/H1I I G) $G,, G;> H H H H  H.1 H? ;I I I I!z)test requires hostname_checks_common_namec[5upnSUl[USS9nU UR[R"5US9nUR [ UR45 SSS5 SSS5 [[5upnSUl[USS9nU UR[R"5US9nUR[R5 UR [ UR45 SSS5 SSS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  NA=f!,(df  NJ=f!,(df  g=f)NFTr4r) rrrDrrrr6r=rrr SSLCertVerificationErrorrEs r%r.ThreadedTests.test_hostname_checks_common_name s(4C3D05:2$N4H ++FMMO? FVFFVs%$E8A;E3E E E E#z2test requires RFC 5280 check added in OpenSSL 3.0+c[R5nUR[5 [n[R[ R S9nUR[5 [USS9nU UR[R"5US9nUR[R5 UR[UR 45 SSS5 SSS5 SSS5 [R5nUR[5 U=R"[R$)-sl[R[ R S9nUR[5 [USS9nU UR[R"5US9nUR[UR 45 UR'5nUR)US5 SSS5 SSS5 g!,(df  GN'=f!,(df  GN1=f!,(df  GN;=f!,(df  NM=f!,(df  g=f)NrNTr4rr5)r rIrLEAF_MISSING_AKI_CA"LEAF_MISSING_AKI_CERTFILE_HOSTNAMErr rLEAF_MISSING_AKI_CERTFILErDrrrrrr6r=rrrrZ)rrrrr<rrs r%test_verify_strict ThreadedTests.test_verify_strict s335,,-@A533G(>'>>#33G? FVFFVs%$F ,A;E8'F 8 F F  Fc[R(a[RR S5 [ R [ R5nUR[5 [ R [ R5n[ RUl SUl UR[5 /SQnUHupV[!USS9nU UR#[$R$"5US9nUR'UR(U5 UR+[,UR.45 UR15n UR'UR(U5 UR3U S5 SSS5 SSS5 M [!USS9nU UR#[$R$"5SS9nUR5[ R65 UR+[,UR.45 SSS5 SSS5 SSS5 [!USS9nU(a[8R:"U5O [=5 UR5[>5 UR#[$R$"5SS9 SSS5 SSS5 SSS5 [!USS9nU(a[8R:"U5O [=5 UR5[@5 UR#[$R$"5S S9 SSS5 SSS5 SSS5 g!,(df  GN=f!,(df  GMz=f!,(df  GNM=f!,(df  GNW=f!,(df  GNa=f!,(df  N=f!,(df  GN=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  g=f) Nr T))ukönig.idn.pythontest.netxn--knig-5qa.idn.pythontest.net)rXrX)sxn--knig-5qa.idn.pythontest.netrX)u(königsgäßchen.idna2003.pythontest.net.xn--knigsgsschen-lcb0w.idna2003.pythontest.net)rYrY)s.xn--knigsgsschen-lcb0w.idna2003.pythontest.netrY).xn--knigsgchen-b4a3dun.idna2008.pythontest.netrZ)s.xn--knigsgchen-b4a3dun.idna2008.pythontest.netrZr4rr5zpython.example.orgz.pythontest.netsknig.idn.pythontest.net)!rrrrrr rqrer IDNSANSFILErfrrrrrrDrrrrrr6r=rrZrr>r rOr UnicodeErrorUnicodeDecodeError) rr"rr idn_hostnamesrexpected_hostnamer<rrs r%r+%ThreadedTests.test_check_hostname_idn< s ?? JJ  T "(?(?@&&{3..!8!89!//!%%%j1 .3@ .O'tLF((9H)JMN$$Q%6%68IJIItV[[12==?D$$Q%6%68IJOOD*GH J3@$N4H $$V]]_5I%KNO&&s';';<IItV[[12=K ~d Cv$ 99$? ]#   l +    AR  S , # D ~d Cv$ 99$? ]#   0 1     >   2 # D C7JJ=<KKV , + ## D C" 2 1 ## D Cs$L1MM( (NN $M:N  N$(O O"$N/OO L. )L11 M  M M M% M(( M7: N N  N N N,/ N= 9O O O Oc^[5upnUR[5 [RUl[R RUl[USSS9nU UR[R"5US9nUR[UR45 URS5 SSS5 SSS5 g![R aAn["R$(a"[&R(R+SU-5 SnANaSnAf[,a`nUR.[.R0:wae["R$(a"[&R(R+SU-5 SnANSnAff=f!,(df  N=f!,(df  g=f)NTrrz'Use of invalid cert should have failed!z SSLError is %r z socket.error is %r )rrr r rrrrprmrDrrrr6r=rBrrrrrrrur7r rrrrr<rrts r%r,#ThreadedTests.test_wrong_cert_tls12 s< 4C3D0&&x0%(%6%6"),)?)?&#"4$ **6==?;C+EHI E 4-. CD!EV<< ???JJ$$%9A%=> C77e...??JJ$$%=%AB  CEEVsa$$FF  !C +F <F F !7DF  F *AFF F  F  F F F,rc[5upnUR[5 [RUl[R RUl[R RUl[USSS9nU UR[R"5USS9nUR[UR45 UR[ S5 UR#S5 UR%S5 UR#S5 UR%S5 SSS5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f) NTrFrsuppress_ragged_eofszsalert unknown ca|EOF occurred|TLSV1_ALERT_UNKNOWN_CA|closed by the remote host|Connection reset by peer|Broken pipedatarsshould have failed already)rrr r rrrrrTrDrrrr6r=rrurrOrEs r%r-#ThreadedTests.test_wrong_cert_tls13 s3B3D0&&x0%(%6%6"),)?)?&),)?)?&#"4$   ' ' 8@=B(DGH IItV[[) *'' t 56t  DV  DDVs=%E (8E AD>%E-E > E E E E  E.c^^^^^[R"5m[R"5m[R"5m[R"T[ 5mUUU4SjnUUUU4Sjn[R "US9nUR5 U"5 UR5 g!UR5 f=f)Nc>TR5 TR5 TR5upUR5 TR5 TR5 gr])rrrr)newsockrX listener_gonelistener_readyrs r%listener2ThreadedTests.test_rude_shutdown..listener sC HHJ    HHJMG MMO GGI    r'c,>TR5 [R"5nUR[T45 TR5 [ U5nTR S5 SSS5 g![ a Nf=f!,(df  g=f)Nz2connecting to closed SSL socket should have failed)rrrr6rrBru)rrrlrmr=rs r% connector3ThreadedTests.test_rude_shutdown..connector sx    !A 4,'""$T/2HIIRS!  !s/(B A5B5 B?BBB Br$) rZrrrr4r6rrr )rrnrqr]rlrmr=rs` @@@@r%test_rude_shutdown ThreadedTests.test_rude_shutdown s#*!) MMO&&q$/   T T   H -    K FFHAFFHs B..Cc[R(a[RR S5 [ R [ R5nUR[5 [ R [ R5n[USS9nU UR[R"5[S9nUR[ UR"45 UR%S5 SSS5 SSS5 g![ R&anSnUR)U[ R*5 UR-UR.S5 UR-UR0U5 SUS 3nUR3[5U5U5 [6R8"S [6R:5nUR3[5U5U5 SnANSnAff=f!,(df  N=f!,(df  g=f) Nr Tr4rzExpected connection failurez&unable to get local issuer certificater(z|CERTIFICATE_VERIFY_FAILED)z( certificate verify failed # OpenSSL | CERTIFICATE_VERIFY_FAILED # AWS-LC ))rrrrrr rqrerrrfrDrrrrr6r=rBrrUrAr verify_codeverify_messager{rrrr)rrrr<rrtrrs r%test_ssl_cert_verify_error(ThreadedTests.test_ssl_cert_verify_error s~ ?? JJ  T "(?(?@&&7..!8!89#N4H $$V]]_5M%ORS5IItV[[12II;< OV || 5BC))!S-I-IJ$$Q]]B7$$Q%5%5s;u$?@E$$T!We4JJ($$  E $$T!We44 5 OOVsI(G6G%2D 8G6 G"B;GG%G""G%% G3 /G66 Hcj[R(a[RR S5 [ S5(a)[ [R[RS5 [ [R[RS5 [ S5(a)[ [R[RS5 [ S5(a8[ [R[RS[R5 [ [R[RS[R5 [ S5(a8[ [R[RS[R5 [ S5(a8[ [R[RS[R5 [ [R[RS[R5 [ S5(a8[ [R[RS[R5 [ S5(a6[ [R[RS[RS9 [ [R[RS[R[R-S9 [ S5(a7[ [R[RS[RS9 gg)Nr rFTr)r)rrrrrrgrr rdrrrrrrrrs r%test_PROTOCOL_TLSThreadedTests.test_PROTOCOL_TLS s ?? JJ  T " 7 # # s//1C1CU K3++S-=-=tD 7 # # s//1C1CW M 7 # # s//1C1CUCL]L] ^3++S-=-=tSEVEVW 7 # # s//1C1CWcN_N_ ` 7 # # s//1C1CUCL]L] ^3++S-=-=tSEVEVW 7 # # s//1C1CWcN_N_ ` 7 # # s//1C1CU*-// ; 3++S-=-=t*-//COO*K M 7 # # s//1C1CU.1oo ? $r'rc\[R(a[RR S5 [ [ R[ RS5 [ [ R[ RS[ R5 [ [ R[ RS[ R5 [ [ R[ RS[ RS9 [ [ R[ RS5 g)Nr rFr) rrrrrrr rrrrdrrrs r%test_protocol_sslv3!ThreadedTests.test_protocol_sslv37 s ?? JJ  T "3--s/A/A7K3--s/A/A7CL]L]^3--s/A/A7CL]L]^3--s/?/?*-// ;3--s/A/A5Ir'rc|[R(a[RR S5 [ [ R[ RS5 [ [ R[ RS[ R5 [ [ R[ RS[ R5 [S5(a)[ [ R[ RS5 [ [ R[ RS[ RS9 g)Nr rrFr)rrrrrrr rrrrgrrdrrs r%test_protocol_tlsv1!ThreadedTests.test_protocol_tlsv1C s ?? JJ  T "3--s/A/A7K3--s/A/A7CL]L]^3--s/A/A7CL]L]^ 7 # # s1133E3Eu M3--s/?/?*-// ;r'rc[R(a[RR S5 [ [ R[ RS5 [S5(a)[ [ R[ RS5 [ [ R[ RS[ RS9 [ [ R[ RS5 [ [ R[ RS5 [ [ R[ RS5 g)Nr TLSv1.1rFr) rrrrrrr rrgrrdrrrs r%test_protocol_tlsv1_1#ThreadedTests.test_protocol_tlsv1_1P s ?? JJ  T "3//1E1EyQ 7 # # s33S5G5G O3//1A1A5*-*;*; = 3++S-A-A9M3//1E1EuM3//1E1EuMr'rpc,[R(a[RR S5 [ [ R[ RS[ R[ R-[ R[ R-S9 [S5(a)[ [ R[ RS5 [ [ R[ RS[ RS9 [ [ R[ RS5 [[ R5(aR[ [ R[ RS5 [ [ R[ RS5 [[ R 5(aS[ [ R[ R S5 [ [ R [ RS5 gg)Nr TLSv1.2)rrrFr)rrrrrrr rrrrgrrdrrjrrrs r%test_protocol_tlsv1_2#ThreadedTests.test_protocol_tlsv1_2` sA ?? JJ  T "3//1E1Ey*-//#//*I*-//#//*I L 7 # # s33S5G5G O3//1A1A5*-*;*; = 3++S-A-A9M C.. / / s33S5G5G O s1133G3G O C00 1 1 s33S5I5I5 Q s33S5I5I5 Q 2r'cSn[[SSSS9nSnU [R"5nURS5 UR [ UR 45 [R(a[RRS5 UGHn[R(a"[RRSU-5 U(a"WRU5 UR5nO"URU5 URS5nUR5R!5nUS:Xa]UR#S 5(aG[R(a"[RRS U-5 [%U5nSnGMUS :XabUR#S 5(aL[R(a"[RRS U-5 WR'5nSnGMo[R(dGM[RRS U-5 GM [R(a[RRS5 U(aWRS5 OURS5 U(aWR)5 OUR)5 SSS5 g!,(df  g=f)N)smsg 1sMSG 2rssMSG 3smsg 4rusmsg 5smsg 6T)rrcrFr rr3rssokz/ client: read %r from server, starting TLS... ruz- client: read %r from server, ending TLS... z client: read %r from server rr)rDr rrrr6r=rrrrrrOrzrvrr/rrrr) rmsgsr<wrappedrrrrrs r% test_starttlsThreadedTests.test_starttlsv sc#H48+/59;  A MM$  IItV[[) *   &??JJ$$3f<>JJv&"iikGFF6NffTlGmmo++-[(S^^E-B-B ((N!"#,A.D"Gy(S^^E-B-B ((L!"# A#G ((=CE;>   !BC 9%y!  ]VVsHKB-K K c[U[S9n[R(a[R R S5 [[S5nUR5nSSS5 SnSURS3n[R[S9n[RR!XVS9nUR#5R%S 5nU(ak['U5S :a\UR['U55n[R(a-[R R S [)U5U4-5 UR+5 UR-WU5 g!,(df  GN =f!UR+5 f=f) Nrr rbrhzhttps://localhost:z /test_ssl.pyrrCzcontent-lengthrz/ client: read %d bytes from remote server '%s' )rQrrrrrrrNr"rOr=r rIrurllibrequesturlopeninforrVrhrr)rr<rQrFrHurlrdlens r%test_socketserverThreadedTests.test_socketserver s"4/B ?? JJ  T " (D !QB" "6;;-|<,,J,? NN " "3 " 8 668<< 01DTQVVCI&??JJ$$Jr7F+,- GGI R #" ! GGIsE'3BE9' E69F c [R(a[RR S5 Sn[ [ 5nU [[R"55nURSUR45 [R(a"[RR SU-5 UR U5 UR5n[R(a"[RR SU-5 XAR5:wa>URSUSS[U5USSR5[U54-5 UR S5 [R(a[RR S 5 UR5 [R(a[RR S 5 SSS5 g!,(df  g=f) Nr r2r8rrrrrrz client: connection closed. )rrrrrrr rrrr=rOr/rBrhr)rrr<rrs r%test_asyncore_server"ThreadedTests.test_asyncore_server sI ?? JJ  T "#H-  1A II{FKK0 1   /&8: GGFOffhG   !6!@A,,.( Ks|S\cr{((*CK99: GGI    !BC GGI   !AB)VVs F%G66 Hc  ^[R(a[RR S5 [ [ [R[R[ SSS9nU [[R"5S[ [ [RS9mTR[UR45 U4SjnU4SjnSTRS/[ 4S TR"SS /[ 4S TR$S/S 4/nS TR&S/4STR(SS /4SUS/4SUS/4/nSnUHupxpn Xg-R+S5n U"U /U Q76n SR-U5nUR/X"U 5US9 TR15nXR35:wa;UR5SR-XSS[!U5U SS[!U 5S95 MM UHunnpXg-R+S5n TRU 5 U"U 6nXR35:wa;UR5SR-XSS[!U5U SS[!U 5S95 MM SnTRU5 [=[!U55nUR/TR1SU5[!U55 UR/UU5 [>b^[>R@[!U5-nURCU5nTR%U5 UR/TR15U5 URE[FTRH5 URE[FTRJS/5 URE[FTRLS 5 URE[FTRN[=S 5/5 TR S!5 URE[6TR&S5 URE[6TR0S5 TRQ5 SSS5 g![6avnU (aUR5SR-US95 [9U5R;U5(d&UR5SR-UUS95 SnAGMiSnAGMpSnAff=f![6anU (aUR5SR-US95 [9U5R;U5(dUR5SR-UUS95 TR15 SnAGMMSnAff=f!,(df  g=f)"Nr TFrrrrcrrrrrcF>[S5nTRU5nUSU$Nsd)rrw)brrs r% _recv_into0ThreadedTests.test_recv_send.._recv_into s&i( A%y r'cJ>[S5nTRU5upUSU$r)rry)rrrXrs r%_recvfrom_into4ThreadedTests.test_recv_send.._recvfrom_into s)i(ooa0 %y r'rzr{z some.addressr cgr]r^)rPs r%.ThreadedTests.test_recv_send..s4r'rvrxrwryPREFIX_asciizsending with {}rzpWhile sending with <<{name:s}>> bad data <<{outdata:r}>> ({nout:d}) received; expected <<{indata:r}>> ({nin:d}) r)r$rnoutrninz>Failed to send with method <<{name:s}>>; expected to succeed. r#zFMethod <<{name:s}>> failed with unexpected exception message: {exp:s} )r$expzrWhile receiving with <<{name:s}>> bad data <<{outdata:r}>> ({nout:d}) received; expected <<{indata:r}>> ({nin:d}) zAFailed to receive with method <<{name:s}>>; expected to succeed. rgrrtr))rrrrrrDr r rrerrrr6r=rzrhr{r rvrxrformatrrOr/rBrrbrrctypesc_ubytefrom_buffer_copyrr|r}r~rrr)rr<rr send_methods recv_methods data_prefix meth_name send_methrry ret_val_methrr#rrrt recv_methrbufferubyte byteslikers @r%test_recv_sendThreadedTests.test_recv_send s ?? JJ  T "#H-0]]030G0G,4+/5: <  ,1)1)1*--- 9A IItV[[) * !  !r3/188U^,C$HffhG,,.0 BBH&%. %(\'-cr{F CIC1&2>?K: 9n%199'BFF6N'.G,,.0 BBH&%. %(\'-cr{F CIC1 ?K@D FF4Ls4y)F   QVVB/T ;   VT *!T2!2248  )$  40   1155 9   1199wi H   1199c B   1nny~.> @ GGI    j!&&" 5   j!&&" 5 GGIwVf" % 55;VV5Kq6,,Y77 ;;A6%.A.BicSS- gNrUrr^rs r%__len__CThreadedTests.test_recv_into_buffer_protocol_len..B.__len__s !r'r^N)rrHrIrJrrPr^r'r%Brs r'rrsdata)rDr rrrr6r=rrrrzarrayrrwrr)rr<rr$rs r%"test_recv_into_buffer_protocol_len0ThreadedTests.test_recv_into_buffer_protocol_lens#H- &!  $ $dFKK%8 9  QU ;   wkk#1v& S)1- sBQ1    wd S)1- s[1r'c :^^[[[R[R[SSS9nU [ [ R "5S[[[RS9mTR[UR45 TRS5 [S5mUU4SjnUR[R[R4U5 TRS5 TR5 SSS5 g!,(df  g=f)NTFrri c,>TRT5 Mr])rz)r$rsr% fill_buffer8ThreadedTests.test_nonblocking_send..fill_buffersFF3Kr')rDr r rrerrrr6r=rrrrrr)rr<rr$rs @@r%test_nonblocking_send#ThreadedTests.test_nonblocking_sends#H-0]]030G0G,4+/5: <  ,1)1)1*--- 9A IItV[[) * MM% D/C    s44"3356A C MM$  GGI)VVs C D  Dc^^^[R"[R5mSn[R"T5n[R "5mSmUUU4Sjn[R "US9nUR5 TR5 [R"[R5nURS5 URX45 UR[S[U5 UR5 [R"[R5n[U5nURS5 UR[SURX45 UR5 SmUR5 TR5 g!WR5 f=f!UR5 f=f!SmUR5 TR5 f=f)Nr8Fc&>TR5 TR5 /nT(dN[R"T///S5upnTU;a"URTR 5S5 T(dMNUHnUR 5 M g)Nrr)rrrrrr)connsr=wrtrfinishr<starteds r%serve3ThreadedTests.test_handshake_timeout..servess MMO KKME --"b#>aQ;LL!34 f  r'r$r z timed outT)rrirr4rZrrrrrrrrrrr ) rrr=rr]rrr<rs @@@r%test_handshake_timeout$ThreadedTests.test_handshake_timeoutsZv~~.&&v.//#    E *     MM&..1 S! 4,'&&|['7<  MM&..1$Q' S!&&|['(yy4,@ F FFH LLN  F FFH LLNs8A#F 8G A#F5,G F22G 5GG $G.cP^ ^ ^ ^ [5upn[R"[R5m Sn[R"T 5nUR T SS9m UR T R5 [R"5m Sm Sm U U U U 4Sjn[R"US9nUR5 T R5 UR [R"5US9nURX545 URS5 UR5 UR!5n UR#5 UR%5 T R#5 T R#5 UR'T [(R*5 UR-T U 5 g)Nr8Trbc>TR5 TR5 TR5ummTRTR S55 g)NrL)rrrrzrv)evtpeerremoter<sr%r/ThreadedTests.test_server_accept..serves8 MMO GGI!==?LFD KK A 'r'r$rrg)rrrirr4rrZrrZrrrrrrzrvrrr rUr rr)rrrrrr=rr]r client_addrrrrr<s @@@@r%test_server_accept ThreadedTests.test_server_accepts@,;+<( v~~.&&v.''D'A **+oo ( (   E *    '' MMOX(  '( G ((*      fcmm4 {+r'c[R[R5nSUlUR [ R "55nUR [5nUR5 SSS5 URWRR[R5 SSS5 g!,(df  NK=f!,(df  g=fr) r rqrfrrrrrurrrr7ENOTCONNrrrrs r%test_getpeercert_enotconn'ThreadedTests.test_getpeercert_enotconn s..!8!89!&   1T""7+r  ",   R\\// @2 1++2 1$C %B;6[5upn[RRUlUR S5 UR S5 [ US9nUR[R"5US9nUR[5 UR[UR45 SSS5 SSS5 SSS5 URSWRS5 g!,(df  N>=f!,(df  NG=f!,(df  NP=f)NAES128AES256rCrNO_SHARED_CIPHERr)rr rrprmrXrDrrrrurr6r=rrgrEs r%test_no_shared_ciphers$ThreadedTests.test_no_shared_cipherss3B3D0),)?)?&""8,""8,  76++FMMOE AE E E E,c[5upn[RRUl[ US9nUR [R"5US9nUR[UR45 URUR5S1Sk5 URUR5S5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)NrCrr>TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256r()rr rrrTrDrrrr6r=rr*rr<rEs r% test_tls1_3ThreadedTests.test_tls1_3=s3B3D0),)?)?&  76++FMMO :C Crrc[R(a[RR S5 [ 5upn[ RRUl [USSS9nU UR[R"5US9nUR[UR45 UR!S5n[R(a.[RR SR#U55 UR%U5 UR'5S:XaUR)[+U5S 5 OUR)[+U5S 5 UR S 5 UR-5R/5nUR)U[1U5R3S 55 SSS5 UR[R"5US9nUR[UR45 UR!S5n[R(a.[RR S R#U55 UR5WU5 UR%U5 UR'5S:XaUR)[+U5S 5 OUR)[+U5S 5 UR S 5 UR-5R/5nUR)U[1U5R3S 55 SSS5 SSS5 g!,(df  GN=f!,(df  N)=f!,(df  g=f)Nr TFrrrz! got channel binding data: {0!r} r(0 sCB tls-unique rvz(got another channel binding data: {0!r} )rrrrrrr rrprmrDrrrr6r=rrr,r<rrhrOrrrassertNotEqual) rrrrr<rcb_datapeer_data_repr new_cb_datas r%r-ThreadedTests.test_tls_unique_channel_bindings ?? JJ  T "3B3D0*-)?)?&#N+/5:<++MMO$,,.12 4-.// =??JJ$$<CCGLN$$W-99;)+$$S\26$$S\26*+!"!1  !%g!5!5j!AC).0 ++MMO$,,.12 4-.33LA ??JJ$$CJJ') ##G[9$$W-99;)+$$S\26$$S\26*+!"!1  !%k!2!9!9*!EG'.3V..0..3Vs>.$MD+L6=+M(D=M%M6 M M M M M'c[5upn[XSSUS9n[R(a1[R R SRUS55 URUS1Sk5 g)NTrcrrz got compression: {!r} r>NRLEZLIB) rrrrrrrrrrrrrrAs r%test_compressionThreadedTests.test_compressionsc3B3D0">*.,46 ?? JJ  7>>u]?ST U eM*,CDr'rFz*ssl.OP_NO_COMPRESSION needed for this testc[5upnU=R[R-slU=R[R-sl[ XSSUS9nUR USS5 g)NTrr)rrr rFrrr!s r%test_compression_disabled'ThreadedTests.test_compression_disabledsi4C3D0#"7"77#"7"77">*.,46 eM*D1r'c|[5upnU=R[R-sl[ XSSUS9 gNTrrrr rErrrrrs r%test_legacy_server_connect(ThreadedTests.test_legacy_server_connects83B3D0#">">>>*.,4 6r'c~[5upnU=R[R)-sl[ XSSUS9 gr(r)r*s r%test_no_legacy_server_connect+ThreadedTests.test_no_legacy_server_connects;3B3D03#?#?"??>*.,4 6r'cN[5upn1Skn[X5(a[X$5(dURS5 [RR UlUR[5 URS5 [RR Ul[XSSUS9nUSSnURS 5nURU5(dURS US-5 gg![a [(aURS5 ef=f) N>ADHDHEEDHz#libssl doesn't support ephemeral DHrkEDHTrr*rrEzNon-DH key exchange: )rrr0r rrprmrrrrrXrrJryrB)rrrr dhe_aliasesrAr*partss r%test_dh_paramsThreadedTests.test_dh_paramss4C3D0+ !.>>%nBB MM? @),)?)?&   ) )& 1 ""6*),)?)?&">*.,46x# S!''.. II-q 9 :/ ~ BC  s #C<<(D$c [5upnURS5 URS5 [RR Ul[XSSUS9n[5upnURS5 URS5 [RR Ul[XSSUS9n[5upnURS5 URS5 URS5 [RR UlUR[R5 [XSSUS9 SSS5 g!,(df  g=f)N secp384r1zECDHE:!eNULL:!aNULLTrr) rrrXr rrprTrrrr!s r%test_ecdh_curveThreadedTests.test_ecdh_curves"3B3D0%%k2""#89),)?)?&">*.,46 4C3D0%%k2""#89),)?)?&">*.,46 4C3D0%%l3%%k2""#89),)?)?&   s|| , ~&*T(0 2- , ,s 3 E  Ec`[5upn[XSSUS9nURUSS5 g)NTrr)rrrr!s r%test_selected_alpn_protocol)ThreadedTests.test_selected_alpn_protocol<s93B3D0">*.,46 e23T:r'c[5upnURSS/5 [XSSUS9nURUSS5 g)NrbarTrr)rrrrr!s r%/test_selected_alpn_protocol_if_server_uses_alpn=ThreadedTests.test_selected_alpn_protocol_if_server_uses_alpnDsK3B3D0))5%.9">*.,46 e23T:r'c /SQnSS/S4SS/S4S/S4SS/S4/nUHup4[5upVnURU5 URU5 [UUSSUS9nS [ U5<S [ U5<S [ U5<S 3n US n UR XXS4-5 [US5(aUSSOSn UR XXS4-5 M g![Ra n U nSn A NSn A ff=f)N)rrA milkshakerrArEzhttp/3.0zhttp/4.0Trzfailed trying z (s) and z (c). was expecting z, but got %s from the %srrrrnothingr<)rrrr rrbrrh) rserver_protocolsprotocol_testsclient_protocolsrrrrrArtr client_result server_results r%r'!ThreadedTests.test_alpn_protocolsMsA6U^U #U^U #]K (* %t ,   +9 & 7F7H 4NH  - -.> ?  - -.> ? *>+926<@4< >+,c2B.CH 'C""89M   ] 8#<< >u4566""9:2>/+9<<  s CC;/C66C;cgr]r^rs r%test_npn_protocols ThreadedTests.test_npn_protocolsosr'cZ[R[R5nUR[5 [R[R5nUR[ 5 [R[R 5nUR[5 XU4$r]) r rqrerrrrfrr)rr other_contextrs r% sni_contextsThreadedTests.sni_contextsrst(?(?@&&7s'>'>? %%&67(?(?@,,Z8n<USnURSU44US5 g)Nrr1r:)r)rrAr$rs r%check_common_nameThreadedTests.check_common_name{s&Z  d+-tI?r'c^^/mUR5unmnSUlUU4SjnURU5 [X!SSS9nUR TSU4/5 UR US5 /m[X!SSS9nUR TSU4/5 UR U[ 5 /mURS5 [X!SSS9nUR U[ 5 UR T/5 g)NFc@>TRX45 UbTUlggr])rr)rrrcallsrQs r%r6ThreadedTests.test_sni_callback..servername_cbs% LL+7 8� 'r'T supermessagercrrBnotfunny)rRrr#rrrUr)rrrrrArYrQs @@r%r$ThreadedTests.test_sni_callbacks8<8I8I8K5 ~(-% 1 ..}=">*.,:< ..!A BC un5">*.,02 $!7 89 u&>?..t4">*.,68 u&>? #r'c&UR5upnSnURU5 UR[R5n[ X1SSS9nSSS5 UR WRRS5 g!,(df  N5=f)Nc"[R$r])r ALERT_DESCRIPTION_ACCESS_DENIEDr s r%cb_returning_alertAThreadedTests.test_sni_callback_alert..cb_returning_alerts66 6r'Fr[r\TLSV1_ALERT_ACCESS_DENIED) rRr#rr rrrrr|)rrrQrrbrrAs r%test_sni_callback_alert%ThreadedTests.test_sni_callback_alerts{8<8I8I8K5~ 7../AB   s|| ,&~.30>@E- ,,.IJ - ,s  B Bc UR5upnSnURU5 [R"5nUR [ R 5n[X1SSS9nSSS5 SnURWRRU5 URURR[5 SSS5 g!,(df  Ni=f!,(df  g=f)NcSS- grr^r s r% cb_raising;ThreadedTests.test_sni_callback_raising..cb_raisings aCr'Fr[r\z0(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE))rRr#rcatch_unraisable_exceptionrr rrr{rr|r unraisableexc_typeZeroDivisionError) rrrQrricatchrrArs r%test_sni_callback_raising'ThreadedTests.test_sni_callback_raisings8<8I8I8K5~ ..z:  / / 1U""3<<0B*>274BD1 GE   R\\00% 8   U--668I J2 1002 1s$ C C )AC C C C+c UR5upnSnURU5 [R"5nUR [ R 5n[X1SSS9nSSS5 URWRRS5 URURR[5 SSS5 g!,(df  Ng=f!,(df  g=f)Ncg)Nrr^r s r%cb_wrong_return_typeOThreadedTests.test_sni_callback_wrong_return_type..cb_wrong_return_typesr'Fr[r\TLSV1_ALERT_INTERNAL_ERROR)rRr#rrkrr rrrrr|rlrmr)rrrQrrtrorrAs r%#test_sni_callback_wrong_return_type1ThreadedTests.test_sni_callback_wrong_return_types9=8I8I8K5~ ../CD  / / 1U""3<<0B*>274BD1   R\\002N O   U--66 B2 1002 1s$ C C )AC C C C)c8^ [5upnURS5 URS5 /SQn[XUS9nUSSnUR[ U5S5 UH3um px[ U 4SjU55(aM"UR T 5 M5 g)Nz AES128:AES256z AES256:eNULL)rzAES-256 TLS_CHACHA20TLS_AESrrrc3,># UH oT;v M g7fr]r^)rnalgr$s r%ro4ThreadedTests.test_shared_ciphers..s2 #>,46/03 3w<+'. #D+$E",46 "  # 7<<+ 7??A. **+ 777; /01"002  8,a0 6*A.#>+2G"002  8,a0 6*A. ./0# gjj1 + +  w||<  0 0'//B#>,46 /01# HKK4 H."002  8,a0 6*A.#>+2G ./0# gjj1 +  w||<  0 0'//B"002  8,a0 6*A.r'c[5upn[5un n[RRUl[RRUl[ USS9nU UR [R"5US9nURURS5 URURS5 UR[UR45 URnURU5 UR[ 5n ["Ul SSS5 UR[%W R&5S5 SSS5 UR [R"5US9nUR[UR45 UR[(5n WUl SSS5 UR[%W R&5S5 SSS5 UR [R"5US9nWUl UR[UR45 URURR*UR*5 URURU5 URURS5 SSS5 UR [R"5US9nUR[(5n WUl UR[UR45 SSS5 UR[%W R&5S5 SSS5 SSS5 g!,(df  GN/=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  N=f!,(df  g=f)NFr4rzValue is not a SSLSession.z#Cannot set session after handshake.Tz)Session refers to a different SSLContext.)rr rrprmrDrrrrrrr6r=rZrrrrbrrr) rrrrclient_context2rr<rrrts r%test_session_handling#ThreadedTests.test_session_handlingAs3B3D0 / 1A*-)?)?&*-..*@*@'#N5I ++FMMOO Oz&TLS-PSK disabled on this OpenSSL buildc^^^^ ^ [RS5m [R[R5nSUl[R Ul[RRUl URS5 URU 4Sj5 [R[R5n[RRUl URS5 URU 4Sj5 [US9nU UR!["R""55nUR%[&UR(45 SSS5 SSS5 [RS5m URU 4Sj5 [US9nU UR!["R""55nTR+[R,5 UR%[&UR(45 SSS5 SSS5 SSS5 S mS mUUU U4S jnUU U4S jnURU5 URUT5 [US9nU UR!["R""55nUR%[&UR(45 SSS5 SSS5 TR/[R,S 5 URUT5 SSS5 TR/[R,S5 URU5 SSS5 SmSmURU5 URUT5 [US9nU UR!["R""55nUR%[&UR(45 SSS5 SSS5 g!,(df  GNd=f!,(df  GNn=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GNp=f!,(df  GNz=f!,(df  GNQ=f!,(df  GN)=f!,(df  N=f!,(df  g=f)NdeadbeefFrac >ST4$r]r^)hintpsks r%r(ThreadedTests.test_psk..}s T3Kr'c>T$r]r^)identityrs r%rrsr'rCcafebabec >ST4$r]r^)r incorrect_psks r%rrs T=TRUT5 TT4$r]r)rclient_identity identity_hintrrs r%client_callback/ThreadedTests.test_psk..client_callbacks   T= 1"C' 'r'c,>TRUT5 T$r]rrrrrs r%server_callback/ThreadedTests.test_psk..server_callback   X 7Jr'zCannot add PSK server callbackzCannot add PSK client callbacku 身份暗示u 客户身份)rfromhexr rqrfrrrrrprmrXset_psk_client_callbackreset_psk_server_callbackrDrrrr6r=rrr) rrrr<rrrrrrrs ` @@@@r%test_pskThreadedTests.test_pskss mmJ'(?(?@(-%%(]]"),)?)?&""5)../GH(?(?@),)?)?&""5)../CD$N; ++FMMO< 4-.=  j1 ../QR#N; ++FMMO<&&s||4IItV[[125= ( + ( (  ..?.. N#N; ++FMMO< 4-.=  # #CLL2R S  2 2?M RT  # #CLL2R S  2 2? CT' (..?.. N#N; ++FMMO< 4-.=VY=<V54=<V*=<V T S S S=<Vs%O7"N6O%O> O,#"OO, O> %P""P'P"P4Q%Q)"Q%Q)6 O O O O) $O,, O; 6O>> P  P P"" P14 Q Q Q& "Q)) Q7c,^^^ [RS5m SnSmUU U4SjnUU U4Sjn[R[R5nSUl[R Ul[RRUl URS5 URU5 [R[R5n[RRUl URS5 URX15 [US9nU UR!["R""55nUR%[&UR(45 SSS5 SSS5 g!,(df  N=f!,(df  g=f) Nrrrc.>TRU5 TT4$r])r)rrrrs r%r6ThreadedTests.test_psk_tls1_3..client_callbacks   d #"C' 'r'c,>TRUT5 T$r]rrs r%r6ThreadedTests.test_psk_tls1_3..server_callbackrr'FrarC)rrr rqrfrrrrrrTrXrrerrDrrrr6r=) rrrrrrr<rrrs ` @@r%test_psk_tls1_3ThreadedTests.test_psk_tls1_3smmJ'' + (  (?(?@(-%%(]]"),)?)?&""5)..?(?(?@),)?)?&""5)..N#N; ++FMMO< 4-.=V<<Vs$%F"E4#F4 F >F Fr^N)T)PrrHrIrJrrKrrwrLPy_GIL_DISABLEDr1r(r)rTr rrrLrorRrUr+r,rr-rsryr|rrrrrrrrrrrrrrrrrrrmrr r rrrMrr"rVr%r+r.r7r;r>rBr'rNrRrUr$rerprwrrrrrHAS_PSKrrrPr^r'r%rr s z**"+*"X002^_&*`&*P"/H+EZ#2J '')T33*@*)MOEOE<@4N`#EJ)$%8'R5>?B'" J# J'" ;# ;)$ N% N)$R%R*7r!4C:FP6&2*:/b&,PAA A-&)$ 9% 9)$'" 9#% 9)$ 9% 9)$'"D#%D '" 7# 75")B)BBEG<GG<G|E&9:EG2G266;42>;; >D=@&$P KK&C& $ = >7/r0Nd)$ &NO@/P%@/D)$ &NO/P%/r'rrzTest needs TLS 1.3c\\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrg)TestPostHandshakeAuthic[R[R/nUGHbn[RU5nUR UR S5 SUlUR UR S5 [R UlUR UR[R 5 UR UR S5 SUlUR UR[R 5 UR UR S5 [RUlSUlUR UR[R5 UR UR S5 GMe grV) r rerfrqrpost_handshake_authrrr)rrrirZs r%test_pha_setter%TestPostHandshakeAuth.test_pha_setters"  # #S%<%< "H..*C   S44e <&*C #   S44d ;!//CO   S__c.?.? @   S44d ;&+C #   S__c.?.? @   S44e <!//CO&*C #   S__c.?.? @   S44d ;%"r'c[5upnSUl[RUlSUlUR [ 5 [USS9nU UR[R"5US9nUR[UR45 URS5 URURS5S5 URS5 URURS5S 5 URS5 URURS5S 5 URS5 URURS5S 5 URS 5 URS 5R!S 5nUR#SU5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)NTFr4rryr3r{rxrtrzr|irvr=)rrr rrrrrDrrrr6r=rrrvdecoder)rrrrr<r cert_texts r%test_pha_required'TestPostHandshakeAuth.test_pha_requiredsd3B3D0-1*%(%6%6"-1*&&7#N5I ++FMMOG Gc[5upnSUl[RUlSUlSnXBlXAl[ USS9nU UR[R"5USS9nUR[UR45 URS5 UR[S5 URS5nUR!US 5 URS 5 URS5 SSS5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f) NTc[R(a?U[R:Xa*XX#XE4n[R R SU<S35 ggg)NzTLS: r )rrrALERTrrr)r directionr< content_typemsg_typerrs r%msg_cb>TestPostHandshakeAuth.test_pha_required_nocert..msg_cbsE %D;1A D*:ADD*D; D' #D** D8 4D;; E cT[R(a[RR S5 [ 5upnSUl[RUl SUlUR[5 [RUl [USS9nU UR[R"5US9nUR!["UR$45 UR S5 UR'UR)S5S5 UR S 5 UR'UR)S5S 5 UR S5 UR'UR)S5S 5 SSS5 SSS5 g!,(df  N=f!,(df  g=f) Nr TFr4rryr3r{rxrtrz)rrrrrrrr rrrrrrDrrrr6r=rrvrEs r%test_pha_optional'TestPostHandshakeAuth.test_pha_optional5s7 ?? JJ  T "3B3D0-1*%(%6%6"-1*&&7&)%6%6"#N5I ++FMMO#J ,D1r'rkeylog_filenamez0test requires OpenSSL 1.1.1 with keylog callbackc\rSrSr\R 4Sjr\S5r\S5r \\ R"\ RRS5S55rSrSrS rS rg ) TestSSLDebugicv[U5n[[U55sSSS5 $!,(df  g=fr])rNrhr)rfnamerQs r% keylog_linesTestSSLDebug.keylog_liness %[AtAw<[[s* 8cUR[R[R5 [R [R 5nURURS5 UR[RR[R55 [RUlURUR[R5 UR![RR[R55 URUR#5S5 SUlURURS5 UR%[&[(45 [RR+[RR-[R55UlSSS5 UR%[.5 SUlSSS5 g![a [(aURS5 ef=f!,(df  N_=f!,(df  g=f)NrrU)rrrrr rqrfrrrrrisfilerrr0rZr rIsADirectoryErrorPermissionErrorr!abspathrr]s r%test_keylog_defaults!TestSSLDebug.test_keylog_defaultss  (()*:*:;nnS445 ,,d3  (8(89: "+"2"2C  ,,i.>.>? y'7'789 **,a0" ,,d3    1?C D"$''// 0 01#3C E   y )"#C * )! ~ BC  E D * )s%+HAH-1H>(H*- H;> I cUR[R[R5 [ 5upn[RUl[USS9nU UR[R"5US9nUR[UR45 SSS5 SSS5 URUR!5S5 SUl[RUl[USS9nU UR[R"5US9nUR[UR45 SSS5 SSS5 UR#UR!5S5 [RUl[RUl[USS9nU UR[R"5US9nUR[UR45 SSS5 SSS5 UR#UR!5S5 SUlSUlg![ a [(aURS5 ef=f!,(df  GN=f!,(df  GN=f!,(df  GNA=f!,(df  GNK=f!,(df  N=f!,(df  N=f)NrFr4rr )rrrrrrrrr0rDrrrr6r=rr rrEs r%test_keylog_filename!TestSSLDebug.test_keylog_filename9s*  (()*:*:;3B3D0 -6-=-=N * $N5I ++FMMOMM"FG 2 1s&&BF)9E> A(F)>(F&&F)) F7c[5upnSnURURS5 XAlURURU5 UR[5 [ 5UlSSS5 g!,(df  g=f)Ncgr]r^rrr<rrrs r%r.TestSSLDebug.test_msg_callback..msg_cb|r"r')rrrrrr)rrrrrs r%test_msg_callbackTestSSLDebug.test_msg_callbackysh3B3D0  n22D9'-$ n22F;   y )+18N (* ) )s $A== B c^^[5upn[RRUl/mUU4SjnXAl[ USS9nU UR[R"5US9nUR[UR45 SSS5 SSS5 TRS[R[R[R 4T5 TRS[R[R"[R"4T5 g!,(df  N=f!,(df  N=f)Nc>TRU[R5 TRU[5 TR USS15 TR XX445 g)NrOr)rUr rrrr)rrr<rrrrrs r%r4TestSSLDebug.test_msg_callback_tls12..msg_cbsK  ! !$ 6  ! !$ . MM)fg%6 7 JJ LC Dr'Fr4rrOr)rr rrprmrrDrrrr6r=rr HANDSHAKErSERVER_KEY_EXCHANGECHANGE_CIPHER_SPEC)rrrrrr<rrs` @r%test_msg_callback_tls12$TestSSLDebug.test_msg_callback_tls12s3B3D0),)?)?& E (.$#N5I ++FMMO.msg_cbr"r'c>TUlgr]rC)rrrZserver_context2s r%sni_cb@TestSSLDebug.test_msg_callback_deadlock_bpo43577..sni_cbs *DLr'Fr4r) rr sni_callbackrDrrrr6r=) rrrrrr3r<rr2s @r%#test_msg_callback_deadlock_bpo435770TestSSLDebug.test_msg_callback_deadlock_bpo43577s3B3D0)+A.  +(.$&,##N5I ++FMMO/r'rc UR[R[R[R "SSS55 g)NiirUr) setsockoptr SOL_SOCKET SO_LINGERstructpackrs r%)set_socket_so_linger_on_with_zero_timeoutrCs+OOF%%v'7'7T1a9PQr'cV\rSrSr"SS\R 5rSrSrSr Sr Sr g ) TestPreHandshakeCloseicN^\rSrSrSS.U4SjjrSrSrU4SjrSrS r U=r $) 6TestPreHandshakeClose.SingleConnectionTestServerThreadiN)rc>X lSUlSUlSUlSUlUc[ R UlOX0l[TU]%US9 g)Nr'r#) call_after_accept received_data wrap_errorrnr=rrrsuperr[)rr$rIrrs r%r[?TestPreHandshakeClose.SingleConnectionTestServerThread.__init__sM%6 "!$D "DO DMDI&44 & G $  'r'c&UR5 U$r])rrs r%r@TestPreHandshakeClose.SingleConnectionTestServerThread.__enter__s JJLKr'cUR(aURR5 UR5 SUlg![a N$f=fr])rnrrur rKrs r%r?TestPreHandshakeClose.SingleConnectionTestServerThread.__exit__sD ==MM'') IIK"DO  s+A AAc@>[R[RR5Ul[R URlURR[S9 URR[[S9 [R"5Ul [R"UR5UlURR!UR"5 URR%S5 [&TU]Q5 g)NrrrU)r rIrr ssl_ctxrrrrrrrrnrr4r=rrrrLr)rrs r%rDI MM $ $T\\ 2 MM  # GMOr'c<URR5upURR5 U UR U5(a SSS5 gUR R USS9nURS5UlSSS5 g![a URR5 gf=f!URR5 f=f![a N^f=f![anX@l SnANwSnAff=f!,(df  g=f)NTrb) rnrrrrIrSrrvrJrurK)rraddress tls_socketrs r%r:TestPreHandshakeClose.SingleConnectionTestServerThread.runs & $ 4 4 6 g  ##%))$//!%!9!9$D!9!QJ-7__S-A*    ##%   ##%# *&)OO* spBD C08C  B>!C=B>>CC C-*D ,C--D 0 D :DD D  D  D)rIrnr=rJrSrrK) rrHrIrJr[rrrrrP __classcell__)rs@r% SingleConnectionTestServerThreadrGs)?C ( (  #   r'r[c [RS;ag[U[5(dr[U[5(aUR [ R :Xd?[R"S[[USS55[R5(a*URS[RSU<35 Sngg!Snf=f)N)linuxandroidzwrong.version.numberr|rhz!Could not recreate conditions on z: err=) rrNrardrur7EINVALrsearchrbrcrr0rs r%"non_linux_skip_if_other_okay_error8TestPreHandshakeClose.non_linux_skip_if_other_okay_errors <</ /  s0 1 1 W % %#))u||*C II,c'#x2L.Mrtt T T  A#,,P'"%)* Us &CC c(^^[R"5m[R"5mUU4SjnURUSS9nURU5 [R"5nUR UR R55 [U5 URS5 TR5 URS5 UR5 SSS5 TR5 UR5 URnSUlUR!SUR"5 UR%U[&5 UR)U5 UR%U[*R,5 UR/SUR0S5 UR/SUR25 UR5S UR0S 5 UR7UR8S S 9 SnSng!,(df  GN=f!SnSnf=f) Nc>TR5 TR[R5(d [ S5eg)Nz+wrap_socket event never set, test may fail.F)rrrrr)unusedready_for_server_wrap_socketserver_accept_calleds r%rIPTestPreHandshakeClose.test_preauth_data_to_tls_server..call_after_accepts5 $ $ &/44W5J5JKK"#PQQr'preauth_data_to_tls_serverrIr$FsDELETE /data HTTP/1.0 r'before TLS handshake with datarUrattr must existr)rZrr[rrrrnrrCrrrzrrr rKrrJrUrurar rrryr|rrrz)rrIr<rrKrfrgs @@r%test_preauth_data_to_tls_server5TestPreHandshakeClose.test_preauth_data_to_tls_servers(0'0'8$  66"3173 &! ]]_ NN6??668 9 5f =   u % % % ' KK8 9 LLN %((* &&      S&"6"6 7  ! !*g 6  3 3J ?  ! !*cll ; MM:JOOAR@"U5 SnSSS5 Sng![&anUnSnSnAGNSnAff=f!,(df  GN-=f!,(df  N?=f![>R@"U5 SnSSS5 Snf!,(df  Snf=f=f)Nc>TR[R5(d [S5 [ U5 UR S5 UR 5 TR5 g)Nz ERROR: test client took too longsWHTTP/1.0 307 Temporary Redirect Location: https://example.com/someone-elses-server T)rrrrrCrzrr)conn_to_client$client_can_continue_with_wrap_socket$server_can_continue_with_wrap_sockets r%rIPTestPreHandshakeClose.test_preauth_data_to_tls_client..call_after_acceptHs]7<\rSrSrU4SjrSrg)eTestPreHandshakeClose.test_https_client_non_tls_response_ignored..SynchronizedHTTPSConnectionicn>[RRRU5 TR [ R 5(d4[ R(a[RRS5 URRURURS9Ul g)Nz"server_responding event never set.r)httprHTTPConnectionrrrrrrrr_contextrrr)rserver_respondings r%rmTestPreHandshakeClose.test_https_client_non_tls_response_ignored..SynchronizedHTTPSConnection.connectsw **2248)--g.C.CDDJJ$$%IJ MM55 4996> r'rBN)rrHrIrJrrP)rsr%SynchronizedHTTPSConnectionr{s  > >r'rc~>[U5 URS5 UR5 TR5 g)Ns!HTTP/1.0 402 Payment Required T)rCrzrr)rqrs r%rI[TestPreHandshakeClose.test_https_client_non_tls_response_ignored..call_after_accepts; 5n E      "  ! ! #r'g@non_tls_http_RST_responder)rIr$rr)r=rrHEADz/testHostr2)headers)rZrr}rHTTPSConnectionr[rrCrnrr=r rIr rOrrur getresponser )rrrIrr< connectionresponsers @r%*test_https_client_non_tls_response_ignored@TestPreHandshakeClose.test_https_client_non_tls_response_ignoreds%OO- >$++*E*E > 66"317! &!1&//B0++-a0[[224   6 6t <!!'*   vw8M  N!--/H+=  +*= ($D- D>- D; 7D>> E r^N) rrHrIrJrZrr[rarmrwrrPr^r'r%rErEs+:9+;+;:x2*X9v3r'rEcP\rSrSrSrSrSrSrSrSr Sr S r S r S r S rg )TestEnumerationsicl"SS[R5n[R"U[5 g)Nc\rSrSr\R r\Rr\Rr \Rr \Rr\Rr\R"rSrg);TestEnumerations.test_tlsversion..CheckedTLSVersionir^N)rrHrIrJrPROTO_MINIMUM_SUPPORTEDrr PROTO_SSLv3r PROTO_TLSv1r PROTO_TLSv1_1r PROTO_TLSv1_2rp PROTO_TLSv1_3rPROTO_MAXIMUM_SUPPORTEDrsrPr^r'r%CheckedTLSVersionrsQ $ < < $$E$$E((G((G((G $ < < r'r)enumIntEnum_test_simple_enumr)rrs r%test_tlsversion TestEnumerations.test_tlsversions% =  = 0*=r'cl"SS[R5n[R"U[5 g)Nc,\rSrSrSrSrSrSrSrSr Sr g ) DTestEnumerations.test_tlscontenttype..Checked_TLSContentTypeirrrMr^N) rrHrIrJr+rr)APPLICATION_DATAHEADERINNER_CONTENT_TYPErPr^r'r%Checked_TLSContentTypers% "$ EI! F!& r'r)rrrr)rrs r%test_tlscontenttype$TestEnumerations.test_tlscontenttypes% 'T\\ ' 5Gr'cl"SS[R5n[R"U[5 g)Nc\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&g%)&@TestEnumerations.test_tlsalerttype..Checked_TLSAlertTypeir rrr()rT+,-./r123<FGPVZrtmnopqrstxr^N)'rrHrIrJ CLOSE_NOTIFYUNEXPECTED_MESSAGEBAD_RECORD_MACDECRYPTION_FAILEDRECORD_OVERFLOWDECOMPRESSION_FAILUREHANDSHAKE_FAILURENO_CERTIFICATEBAD_CERTIFICATEUNSUPPORTED_CERTIFICATECERTIFICATE_REVOKEDCERTIFICATE_EXPIREDCERTIFICATE_UNKNOWNILLEGAL_PARAMETER UNKNOWN_CA ACCESS_DENIED DECODE_ERROR DECRYPT_ERROREXPORT_RESTRICTIONPROTOCOL_VERSIONINSUFFICIENT_SECURITYINTERNAL_ERRORINAPPROPRIATE_FALLBACK USER_CANCELEDNO_RENEGOTIATIONMISSING_EXTENSIONUNSUPPORTED_EXTENSIONCERTIFICATE_UNOBTAINABLEUNRECOGNIZED_NAMEBAD_CERTIFICATE_STATUS_RESPONSEBAD_CERTIFICATE_HASH_VALUEUNKNOWN_PSK_IDENTITYCERTIFICATE_REQUIREDNO_APPLICATION_PROTOCOLrPr^r'r%Checked_TLSAlertTypers L!# N "  O$& ! " N O&( #"$ "$ "$  " JMLM!# ! $& !N%' "M"  # $' !'* $ # .1 +), &#& #& &) #r'r)rrrr)rrs r%test_tlsalerttype"TestEnumerations.test_tlsalerttypes&& *4<<& *N 3]Cr'cl"SS[R5n[R"U[5 g)Ncl\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrg)DTestEnumerations.test_tlsmessagetype..Checked_TLSMessageTypeirrUrrrLr*rr&rr rOrrrrrCrr^N)rrHrIrJ HELLO_REQUEST CLIENT_HELLO SERVER_HELLOHELLO_VERIFY_REQUESTNEWSESSION_TICKETEND_OF_EARLY_DATAHELLO_RETRY_REQUESTENCRYPTED_EXTENSIONS CERTIFICATEr*CERTIFICATE_REQUEST SERVER_DONECERTIFICATE_VERIFYCLIENT_KEY_EXCHANGEFINISHEDCERTIFICATE_URLCERTIFICATE_STATUSSUPPLEMENTAL_DATA KEY_UPDATE NEXT_PROTO MESSAGE_HASHr+rPr^r'r%Checked_TLSMessageTypers~ MLL#$ !  ! "# #$ K"$ "$ K!# "$ H O!#  " JJL!' r'r )rrrr)rr s r%test_tlsmessagetype$TestEnumerations.test_tlsmessagetypes% (T\\ (6 5Gr'c[R"[RSSS[RS9nUR Ul[R"U[R5 g)N _SSLMethodr c<URS5=(a US:g$)Nr`rrr#s r%r1TestEnumerations.test_sslmethod..sT__[9WdFW>WWr'source) r _old_convert_rr rrdrrr)rChecked_SSLMethods r%test_sslmethodTestEnumerations.test_sslmethodsN .. lEWxx ->,J,J) 0#..Ar'c[R"[RSSS[RS9n[R "U[R 5 g)NOptionsr c$URS5$)Nrrr#s r%r/TestEnumerations.test_options..&s T__U3r'r)rrIntFlagr rrr)rCheckedOptionss r%rTestEnumerations.test_options#s=++ i3xx ~s{{;r'c[R"[RSSS[RS9n[R "U[R 5 g)NAlertDescriptionr c$URS5$)NALERT_DESCRIPTION_rr#s r%r8TestEnumerations.test_alertdescription...sT__-ABr'r)rrrr rrr")rCheckedAlertDescriptions r%test_alertdescription&TestEnumerations.test_alertdescription+sB"&"4"4 0%Bxx# 68L8LMr'c[R"[RSSS[RS9n[R "U[R 5 g)NSSLErrorNumberr c$URS5$)N SSL_ERROR_rr#s r%r6TestEnumerations.test_sslerrornumber..6s T__\:r'r)rrrr rrr*)rChecked_SSLErrorNumbers r%test_sslerrornumber$TestEnumerations.test_sslerrornumber3sB!%!3!3 .:xx" 5s7I7IJr'c[R"[RSSS[RS9n[R "U[R 5 g)N VerifyFlagsr c$URS5$)NVERIFY_rr#s r%r3TestEnumerations.test_verifyflags..>s T__Y7r'r)rrrr rrr2)rCheckedVerifyFlagss r%test_verifyflags!TestEnumerations.test_verifyflags;s?!// mU7xx 13??Cr'c[R"[RSSS[RS9n[R "U[R 5 g)N VerifyModer c$URS5$)NCERT_rr#s r%r2TestEnumerations.test_verifymode..Fs T__W5r'r)rrrr rrr:)rCheckedVerifyModes r%test_verifymode TestEnumerations.test_verifymodeCs? .. lE5xx 0#..Ar'r^N)rrHrIrJrrrr rrr'r/r7r?rPr^r'r%rrs= > H(DTH<B<NKDBr'rc [R(Ga[R[RS.nUR 5H*upU"5nU(dMUS(dM!U<SU<3n O [ [R"55n[S[R<S[R<35 [SU-5 [S[R-5 [S[R-5 [S[R-5 [[ ["[$[&[([*[,[.[0[2[44 H@n[6R8R;U5(aM)[R<"S U-5e [>R@"5n[BRD"[>RF/UQ76 g![a Nf=f) N)MacWindowsrrztest_ssl: testing with z under %sz HAS_SNI = %rz OP_ALL = 0x%8xz OP_NO_TLSv1_1 = 0x%8xzCan't read certificate file %r)$rrrNmac_ver win32_veritemsrrr rTrSrrrrr rrrrrrrrrBADKEYrrrexists TestFailedr threading_setuprwaddModuleCleanupthreading_cleanup)platsr$r{platfilename thread_infos r% setUpModulerQLsl##))  ++-JD6DtQ"&- ( ))+,D  #":":< = "T)* &45 (3::56  3c6G6GG H .'>=): $ ww~~h''$$%E%PQ Q $#224K .@@O;O   s G## G0/G0__main__r])r2TFNN)Nrr)rrw unittest.mockastrrZrrMr test.supportrrrr r r rrrrr@rrr* http.clientr}rr7rurllib.requestrrrjrN sysconfigr~ contextlibr r ImportError import_moduler rrrrrrrorrz_PROTOCOL_NAMESrUr6rSroget_config_varrr rverrcrr&r fsencoderrrrrrrrrrrr>r r:rrrrrrrIrHrQrPrOrr9r[rrrArrrrGrr.rrrrFrGrHrIrJrRr[rj lru_cachergrrrignore_warningsrrmrrrrrTestCaserrRrqrrrrKr=rrtest.ssl_serversrQrDrrrrrrLrrVrq HAS_KEYLOGr8rrCrErrQrmainr^r'r%rfs &"&)(!  " !!%( TT!!=cllg&= 3&& ' ++y8"112JKJE3 U#cnnc*&)E"F ] #X& ^ $ M "X& G$ 3423 8 {{6" Hl3(L1 /++>-. " $ %N+ -& ;FT0++&-.$^,* 01. &&DE%2" 9:x . } %  & k " * n % M "01 <  k " +,  56 > "{{6" C!4a83 2A6S"6:%c+H!L$S*FJ ;;3 4* !!H". %44  #}}t!D$/, /44DJ 1x((J 1Z]  8$$]  @9DH%%9Dx@3X&&@3F.X&&.`y