����JFIFXX�����    $.' ",#(7),01444'9=82<.342  2!!22222222222222222222222222222222222222222222222222����"��4�� ���,�PG"Z_�4�˷����kjز�Z�,F+��_z�,�© �����zh6�٨�ic�fu���#ډb���_�N�?��wQ���5-�~�I���8����TK<5o�Iv-�����k�_U_�����~b�M��d����Ӝ�U�Hh��?]��E�w��Q���k�{��_}qFW7HTՑ��Y��F�?_�'ϔ��_�Ջt��=||I ��6�έ"�����D���/[�k�9���Y�8ds|\���Ҿp6�Ҵ���]��.����6�z<�v��@]�i%��$j��~�g��J>��no����pM[me�i$[����s�o�ᘨ�˸ nɜG-�ĨU�ycP�3.DB�li�;��hj���x7Z^�N�h������N3u{�:j�x�힞��#M&��jL P@_���� P��&��o8������9�����@Sz6�t7#O�ߋ �s}Yf�T���lmr����Z)'N��k�۞p����w\�Tȯ?�8`�O��i{wﭹW�[�r�� ��Q4F�׊���3m&L�=��h3����z~��#�\�l :�F,j@�� ʱ�wQT����8�"kJO���6�֚l����}���R�>ډK���]��y����&����p�}b��;N�1�m�r$�|��7�>e�@B�TM*-iH��g�D�)� E�m�|�ؘbҗ�a��Ҿ����t4���o���G��*oCN�rP���Q��@z,|?W[0�����:�n,jWiE��W��$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S����VN;�}�s?.����� w�9��˟<���Mq4�Wv'��{)0�1mB��V����W[�����8�/<� �%���wT^�5���b��)iM� pg�N�&ݝ��VO~�q���u���9� ����!��J27����$O-���! �:�%H��� ـ����y�ΠM=t{!S�� oK8������t<����è:a������[�����ա�H���~��w��Qz`�po�^ ����Q��n� �,uu�C�$ ^���,������8�#��:�6��e�|~���!�3�3.�\0��q��o�4`.|� ����y�Q�`~;�d�ׯ,��O�Zw�������`73�v�܋�<���Ȏ�� ـ4k��5�K�a�u�=9Yd��$>x�A�&�� j0� ���vF��� Y�|�y��� ~�6�@c��1vOp�Ig����4��l�OD���L����� R���c���j�_�uX6��3?nk��Wy�f;^*B� ��@�~a�`��Eu������+���6�L��.ü>��}y���}_�O�6�͐�:�YrG�X��kG�����l^w���~㒶sy��Iu�!� W ��X��N�7BV��O��!X�2����wvG�R�f�T#�����t�/?���%8�^�W�aT��G�cL�M���I��(J����1~�8�?aT ���]����AS�E��(��*E}� 2��#I/�׍qz��^t�̔���b�Yz4x���t�){ OH��+(E��A&�N�������XT��o��"�XC��'���)}�J�z�p� ��~5�}�^����+�6����w��c��Q�|Lp�d�H��}�(�.|����k��c4^�"�����Z?ȕ ��a<�L�!039C� �Eu�C�F�Ew�ç ;�n?�*o���B�8�bʝ���'#Rqf���M}7����]����s2tcS{�\icTx;�\��7K���P���ʇ Z O-��~��c>"��?�������P��E��O�8��@�8��G��Q�g�a�Վ���󁶠�䧘��_%#r�>�1�z�a��eb��qcPѵ��n���#L��� =��׀t� L�7�`��V���A{�C:�g���e@�w1 Xp3�c3�ġ����p��M"'-�@n4���fG��B3�DJ�8[Jo�ߐ���gK)ƛ��$���� ���8�3�����+���� �����6�ʻ���� ���S�kI�*KZlT _`���?��K����QK�d����B`�s}�>���`��*�>��,*@J�d�oF*����弝��O}�k��s��]��y�ߘ��c1G�V���<=�7��7����6�q�PT��tXԀ�!9*4�4Tހ3XΛex�46���Y��D ����� �BdemDa����\�_l,��G�/���֌7���Y�](�xTt^%�GE�����4�}bT���ڹ�����;Y)���B�Q��u��>J/J �⮶.�XԄ��j�ݳ�+E��d ��r�5�_D�1 ��o�� �B�x�΢�#���<��W�����8���R6�@g�M�.��� dr�D��>(otU��@x=��~v���2� ӣ�d�oBd��3�eO�6�㣷�����ݜ6��6Y��Qz`��S��{���\P�~z m5{J/L��1������<�e�ͅPu�b�]�ϔ���'������f�b� Zpw��c`"��i���BD@:)ִ�:�]��hv�E�w���T�l��P���"Ju�}��وV J��G6��. J/�Qgl߭�e�����@�z�Zev2u�)]կ�����7x���s�M�-<ɯ�c��r�v�����@��$�ޮ}lk���a���'����>x��O\�ZFu>�����ck#��&:��`�$�ai�>2Δ����l���oF[h��lE�ܺ�Πk:)���`�� $[6�����9�����kOw�\|���8}������ބ:��񶐕��I�A1/�=�2[�,�!��.}gN#�u����b��� ~��݊��}34q����d�E��Lc��$��"�[q�U�硬g^��%B �z���r�pJ�ru%v\h1Y�ne`ǥ:g���pQM~�^�Xi� ��`S�:V29.�P���V�?B�k�� AEvw%�_�9C�Q����wKekPؠ�\�;Io d�{ ߞo�c1eP����\� `����E=���@K<�Y���eڼ�J���w����{av�F�'�M�@/J��+9p���|]�����Iw &`��8���&M�hg��[�{��Xj��%��Ӓ�$��(����ʹN���<>�I���RY���K2�NPlL�ɀ)��&e����B+ь����( � �JTx���_?EZ� }@ 6�U���뙢ط�z��dWI�n` D����噥�[��uV��"�G&Ú����2g�}&m��?ċ�"����Om#��������� ��{�ON��"S�X��Ne��ysQ���@Fn��Vg���dX�~nj�]J�<�K]:��FW��b�������62�=��5f����JKw��bf�X�55��~J �%^����:�-�QIE��P��v�nZum� z � ~ə ���� ���ة����;�f��\v���g�8�1��f24;�V���ǔ�)����9���1\��c��v�/'Ƞ�w�������$�4�R-��t���� e�6�/�ġ �̕Ecy�J���u�B���<�W�ַ~�w[B1L۲�-JS΂�{���΃������A��20�c#��@ 0!1@AP"#2Q`$3V�%45a6�FRUq��� ����^7ׅ,$n�������+��F�`��2X'��0vM��p�L=������5��8������u�p~���.�`r�����\���O��,ư�0oS ��_�M�����l���4�kv\JSd���x���SW�<��Ae�IX����������$I���w�:S���y���›R��9�Q[���,�5�;�@]�%���u�@ *ro�lbI �� ��+���%m:�͇ZV�����u�̉����θau<�fc�.����{�4Ա� �Q����*�Sm��8\ujqs]{kN���)qO�y�_*dJ�b�7���yQqI&9�ԌK!�M}�R�;������S�T���1���i[U�ɵz�]��U)V�S6���3$K{�ߊ<�(� E]Զ[ǼENg�����'�\?#)Dkf��J���o��v���'�%ƞ�&K�u�!��b�35LX�Ϸ��63$K�a�;�9>,R��W��3�3� d�JeTYE.Mϧ��-�o�j3+y��y^�c�������VO�9NV\nd�1 ��!͕_)a�v;����թ�M�lWR1��)El��P;��yوÏ�u 3�k�5Pr6<�⒲l�!˞*��u־�n�!�l:����UNW ��%��Chx8vL'��X�@��*��)���̮��ˍ��� ���D-M�+J�U�kvK����+�x8��cY������?�Ԡ��~3mo��|�u@[XeY�C�\Kp�x8�oC�C�&����N�~3-H���� ��MX�s�u<`���~"WL��$8ξ��3���a�)|:@�m�\���^�`�@ҷ)�5p+��6���p�%i)P M���ngc�����#0Aruz���RL+xSS?���ʮ}()#�t��mˇ!��0}}y����<�e� �-ή�Ԩ��X������ MF���ԙ~l L.3���}�V뽺�v�����멬��Nl�)�2����^�Iq��a��M��qG��T�����c3#������3U�Ǎ���}��לS�|qa��ڃ�+���-��2�f����/��bz��ڐ�� �ݼ[2�ç����k�X�2�* �Z�d���J�G����M*9W���s{��w���T��x��y,�in�O�v��]���n����P�$�JB@=4�OTI�n��e�22a\����q�d���%�$��(���:���: /*�K[PR�fr\nڙdN���F�n�$�4�[�� U�zƶ����� �mʋ���,�ao�u 3�z� �x��Kn����\[��VFmbE;�_U��&V�Gg�]L�۪&#n%�$ɯ�dG���D�TI=�%+AB�Ru#��b4�1�»x�cs�YzڙJG��f��Il��d�eF'T� iA��T���uC�$����Y��H?����[!G`}���ͪ� �纤Hv\������j�Ex�K���!���OiƸ�Yj�+u-<���'q����uN�*�r\��+�]���<�wOZ.fp�ێ��,-*)V?j-kÊ#�`�r��dV����(�ݽBk�����G�ƛk�QmUڗe��Z���f}|����8�8��a���i��3'J�����~G_�^���d�8w������ R�`(�~�.��u���l�s+g�bv���W���lGc}��u���afE~1�Ue������Z�0�8�=e�� f@/�jqEKQQ�J��oN��J���W5~M>$6�Lt�;$ʳ{���^��6�{����v6���ķܰg�V�cnn �~z�x�«�,2�u�?cE+Ș�H؎�%�Za�)���X>uW�Tz�Nyo����s���FQƤ��$��*�&�LLXL)�1�" L��eO��ɟ�9=���:t��Z���c��Ž���Y?�ӭV�wv�~,Y��r�ۗ�|�y��GaF�����C�����.�+� ���v1���fήJ�����]�S��T��B��n5sW}y�$��~z�'�c ��8 ��� ,! �p��VN�S��N�N�q��y8z˱�A��4��*��'������2n<�s���^ǧ˭P�Jޮɏ�U�G�L�J�*#��<�V��t7�8����TĜ>��i}K%,���)[��z�21z ?�N�i�n1?T�I�R#��m-�����������������1����lA�`��fT5+��ܐ�c�q՝��ʐ��,���3�f2U�եmab��#ŠdQ�y>\��)�SLY����w#��.���ʑ�f��� ,"+�w�~�N�'�c�O�3F�������N<���)j��&��,-� �љ���֊�_�zS���TǦ����w�>��?�������n��U仆�V���e�����0���$�C�d���rP �m�׈e�Xm�Vu� �L��.�bֹ��� �[Դaզ���*��\y�8�Է:�Ez\�0�Kq�C b��̘��cө���Q��=0Y��s�N��S.���3.���O�o:���#���v7�[#߫ ��5�܎�L���Er4���9n��COWlG�^��0k�%<���ZB���aB_���������'=��{i�v�l�$�uC���mƎҝ{�c㱼�y]���W�i ��ߧc��m�H� m�"�"�����;Y�ߝ�Z�Ǔ�����:S#��|}�y�,/k�Ld� TA�(�AI$+I3��;Y*���Z��}|��ӧO��d�v��..#:n��f>�>���ȶI�TX��� 8��y����"d�R�|�)0���=���n4��6ⲑ�+��r<�O�܂~zh�z����7ܓ�HH�Ga롏���nCo�>������a ���~]���R���̲c?�6(�q�;5%� |�uj�~z8R=X��I�V=�|{v�Gj\gc��q����z�؋%M�ߍ����1y��#��@f^���^�>N�����#x#۹��6�Y~�?�dfPO��{��P�4��V��u1E1J �*|���%���JN��`eWu�zk M6���q t[�� ��g�G���v��WIG��u_ft����5�j�"�Y�:T��ɐ���*�;� e5���4����q$C��2d�}���� _S�L#m�Yp��O�.�C�;��c����Hi#֩%+) �Ӎ��ƲV���SYź��g |���tj��3�8���r|���V��1#;.SQ�A[���S������#���`n�+���$��$I �P\[�@�s��(�ED�z���P��])8�G#��0B��[ى��X�II�q<��9�~[Z멜�Z�⊔IWU&A>�P~�#��dp<�?����7���c��'~���5 ��+$���lx@�M�dm��n<=e�dyX��?{�|Aef ,|n3�<~z�ƃ�uۧ�����P��Y,�ӥQ�*g�#먙R�\���;T��i,��[9Qi歉����c>]9�� ��"�c��P�� �Md?٥��If�ت�u��k��/����F��9�c*9��Ǎ:�ØF���z�n*�@|I�ށ9����N3{'��[�'ͬ�Ҳ4��#}��!�V� Fu��,�,mTIk���v C�7v���B�6k�T9��1�*l� '~��ƞF��lU��'�M ����][ΩũJ_�{�i�I�n��$���L�� j��O�dx�����kza۪��#�E��Cl����x˘�o�����V���ɞ�ljr��)�/,�߬h�L��#��^��L�ф�,íMƁe�̩�NB�L�����iL����q�}��(��q��6IçJ$�W�E$��:������=#����(�K�B����zђ <��K(�N�۫K�w��^O{!����)�H���>x�������lx�?>Պ�+�>�W���,Ly!_�D���Ō�l���Q�!�[ �S����J��1��Ɛ�Y}��b,+�Lo�x�ɓ)����=�y�oh�@�꥟/��I��ѭ=��P�y9��� �ۍYӘ�e+�p�Jnϱ?V\SO%�(�t� ���=?MR�[Ș�����d�/ ��n�l��B�7j� ��!�;ӥ�/�[-���A�>�dN�sLj ��,ɪv��=1c�.SQ�O3�U���ƀ�ܽ�E����������̻��9G�ϷD�7(�}��Ävӌ\�y�_0[w ���<΍>����a_��[0+�L��F.�޺��f�>oN�T����q;���y\��bՃ��y�jH�<|q-eɏ�_?_9+P���Hp$�����[ux�K w�Mw��N�ی'$Y2�=��q���KB��P��~������Yul:�[<����F1�2�O���5=d����]Y�sw:���Ϯ���E��j,_Q��X��z`H1,#II ��d�wr��P˂@�ZJV����y$�\y�{}��^~���[:N����ߌ�U�������O��d�����ؾe��${p>G��3c���Ė�lʌ�� ת��[��`ϱ�-W����dg�I��ig2��� ��}s ��ؤ(%#sS@���~���3�X�nRG�~\jc3�v��ӍL��M[JB�T��s3}��j�Nʖ��W����;7��ç?=X�F=-�=����q�ߚ���#���='�c��7���ڑW�I(O+=:uxq�������������e2�zi+�kuG�R��������0�&e�n���iT^J����~\jy���p'dtG��s����O��3����9* �b#Ɋ�� p������[Bws�T�>d4�ۧs���nv�n���U���_�~,�v����ƜJ1��s�� �QIz��)�(lv8M���U=�;����56��G���s#�K���MP�=��LvyGd��}�VwWBF�'�à �?MH�U�g2�� ����!�p�7Q��j��ڴ����=��j�u��� Jn�A s���uM������e��Ɔ�Ҕ�!)'��8Ϣ�ٔ��ޝ(��Vp���צ֖d=�IC�J�Ǡ{q������kԭ�߸���i��@K����u�|�p=..�*+����x�����z[Aqġ#s2a�Ɗ���RR�)*HRsi�~�a &f��M��P����-K�L@��Z��Xy�'x�{}��Zm+���:�)�) IJ�-i�u���� ���ܒH��'�L(7�y�GӜq���� j��� 6ߌg1�g�o���,kر���tY�?W,���p���e���f�OQS��!K�۟cҒA�|ս�j�>��=⬒��˧L[�� �߿2JaB~R��u�:��Q�] �0H~���]�7��Ƽ�I���(}��cq '�ήET���q�?f�ab���ӥvr� �)o��-Q��_'����ᴎo��K������;��V���o��%���~OK ����*��b�f:���-ťIR��`B�5!RB@���ï�� �u �̯e\�_U�_������� g�ES��3�������QT��a����x����U<~�c?�*�#]�MW,[8O�a�x��]�1bC|踤�P��lw5V%�)�{t�<��d��5���0i�XSU��m:��Z�┵�i�"��1�^B�-��P�hJ��&)O��*�D��c�W��vM��)����}���P��ܗ-q����\mmζZ-l@�}��a��E�6��F�@��&Sg@���ݚ�M����� ȹ 4����#p�\H����dYDo�H���"��\��..R�B�H�z_�/5˘����6��KhJR��P�mƶi�m���3�,#c�co��q�a)*Pt����R�m�k�7x�D�E�\Y�閣_X�<���~�)���c[[�BP����6�Yq���S��0����%_����;��Àv�~�| VS؇ ��'O0��F0��\���U�-�d@�����7�SJ*z��3n��y��P����O���������m�~�P�3|Y��ʉr#�C�<�G~�.,! ���bqx���h~0=��!ǫ�jy����l�O,�[B��~��|9��ٱ����Xly�#�i�B��g%�S��������tˋ���e���ې��\[d�t)��.+u�|1 ������#�~Oj����hS�%��i.�~X���I�H�m��0n���c�1uE�q��cF�RF�o���7� �O�ꮧ� ���ۛ{��ʛi5�rw?׌#Qn�TW��~?y$��m\�\o����%W� ?=>S�N@�� �Ʈ���R����N�)�r"C�:��:����� �����#��qb��Y�. �6[��2K����2u�Ǧ�HYR��Q�MV��� �G�$��Q+.>�����nNH��q�^��� ����q��mM��V��D�+�-�#*�U�̒ ���p욳��u:�������IB���m���PV@O���r[b= �� ��1U�E��_Nm�yKbN�O���U�}�the�`�|6֮P>�\2�P�V���I�D�i�P�O;�9�r�mAHG�W�S]��J*�_�G��+kP�2����Ka�Z���H�'K�x�W�MZ%�O�YD�Rc+o��?�q��Ghm��d�S�oh�\�D�|:W������UA�Qc yT�q������~^�H��/��#p�CZ���T�I�1�ӏT����4��"�ČZ�����}��`w�#�*,ʹ�� ��0�i��課�Om�*�da��^gJ݅{���l�e9uF#T�ֲ��̲�ٞC"�q���ߍ ոޑ�o#�XZTp����@ o�8��(jd��xw�]�,f���`~�|,s��^����f�1���t��|��m�򸄭/ctr��5s��7�9Q�4�H1꠲BB@l9@���C�����+�wp�xu�£Yc�9��?`@#�o�mH�s2��)�=��2�.�l����jg�9$�Y�S�%*L������R�Y������7Z���,*=�䷘$�������arm�o�ϰ���UW.|�r�uf����IGw�t����Zwo��~5 ��YյhO+=8fF�)�W�7�L9lM�̘·Y���֘YLf�큹�pRF���99.A �"wz��=E\Z���'a� 2��Ǚ�#;�'}�G���*��l��^"q��+2FQ� hj��kŦ��${���ޮ-�T�٭cf�|�3#~�RJ����t��$b�(R��(����r���dx� >U b�&9,>���%E\� Ά�e�$��'�q't��*�א���ެ�b��-|d���SB�O�O��$�R+�H�)�܎�K��1m`;�J�2�Y~9��O�g8=vqD`K[�F)k�[���1m޼c��n���]s�k�z$@��)!I �x՝"v��9=�ZA=`Ɠi �:�E��)`7��vI��}d�YI�_ �o�:ob���o ���3Q��&D&�2=�� �Ά��;>�h����y.*ⅥS������Ӭ�+q&����j|UƧ����}���J0��WW< ۋS�)jQR�j���Ư��rN)�Gű�4Ѷ(�S)Ǣ�8��i��W52���No˓� ۍ%�5brOn�L�;�n��\G����=�^U�dI���8$�&���h��'���+�(������cȁ߫k�l��S^���cƗjԌE�ꭔ��gF���Ȓ��@���}O���*;e�v�WV���YJ\�]X'5��ղ�k�F��b 6R�o՜m��i N�i����>J����?��lPm�U��}>_Z&�KK��q�r��I�D�Չ~�q�3fL�:S�e>���E���-G���{L�6p�e,8��������QI��h��a�Xa��U�A'���ʂ���s�+טIjP�-��y�8ۈZ?J$��W�P� ��R�s�]��|�l(�ԓ��sƊi��o(��S0��Y� 8�T97.�����WiL��c�~�dxc�E|�2!�X�K�Ƙਫ਼�$((�6�~|d9u+�qd�^3�89��Y�6L�.I�����?���iI�q���9�)O/뚅����O���X��X�V��ZF[�یgQ�L��K1���RҖr@v�#��X�l��F���Нy�S�8�7�kF!A��sM���^rkp�jP�DyS$N���q��nxҍ!U�f�!eh�i�2�m���`�Y�I�9r�6� �TF���C}/�y�^���Η���5d�'��9A-��J��>{�_l+�`��A���[�'��յ�ϛ#w:݅�%��X�}�&�PSt�Q�"�-��\縵�/����$Ɨh�Xb�*�y��BS����;W�ջ_mc�����vt?2}1�;qS�d�d~u:2k5�2�R�~�z+|HE!)�Ǟl��7`��0�<�,�2*���Hl-��x�^����'_TV�gZA�'j� ^�2Ϊ��N7t�����?w�� �x1��f��Iz�C-Ȗ��K�^q�;���-W�DvT�7��8�Z�������� hK�(P:��Q- �8�n�Z���܃e貾�<�1�YT<�,�����"�6{/ �?�͟��|1�:�#g��W�>$����d��J��d�B��=��jf[��%rE^��il:��B���x���Sּ�1հ��,�=��*�7 fcG��#q� �eh?��2�7�����,�!7x��6�n�LC�4x��},Geǝ�tC.��vS �F�43��zz\��;QYC,6����~;RYS/6���|2���5���v��T��i����������mlv��������&� �nRh^ejR�LG�f���? �ۉҬܦƩ��|��Ȱ����>3����!v��i�ʯ�>�v��オ�X3e���_1z�Kȗ\<������!�8���V��]��?b�k41�Re��T�q��mz��TiOʦ�Z��Xq���L������q"+���2ۨ��8}�&N7XU7Ap�d�X��~�׿��&4e�o�F��� �H����O���č�c�� 懴�6���͉��+)��v;j��ݷ�� �UV�� i��� j���Y9GdÒJ1��詞�����V?h��l����l�cGs�ځ�������y�Ac�����\V3�? �� ܙg�>qH�S,�E�W�[�㺨�uch�⍸�O�}���a��>�q�6�n6����N6�q������N ! 1AQaq�0@����"2BRb�#Pr���3C`��Scst���$4D���%Td�� ?���N����a��3��m���C���w��������xA�m�q�m���m������$����4n淿t'��C"w��zU=D�\R+w�p+Y�T�&�պ@��ƃ��3ޯ?�Aﶂ��aŘ���@-�����Q�=���9D��ռ�ѻ@��M�V��P��܅�G5�f�Y<�u=,EC)�<�Fy'�"�&�չ�X~f��l�KԆV��?�� �W�N����=(� �;���{�r����ٌ�Y���h{�١������jW����P���Tc�����X�K�r��}���w�R��%��?���E��m�� �Y�q|����\lEE4���r���}�lsI�Y������f�$�=�d�yO����p�����yBj8jU�o�/�S��?�U��*������ˍ�0������u�q�m [�?f����a�� )Q�>����6#������� ?����0UQ����,IX���(6ڵ[�DI�MNލ�c&���υ�j\��X�R|,4��� j������T�hA�e��^���d���b<����n�� �즇�=!���3�^�`j�h�ȓr��jẕ�c�,ٞX����-����a�ﶔ���#�$��]w�O��Ӫ�1y%��L�Y<�wg#�ǝ�̗`�x�xa�t�w��»1���o7o5��>�m뭛C���Uƃߜ}�C���y1Xνm�F8�jI���]����H���ۺиE@I�i;r�8ӭ����V�F�Շ| ��&?�3|x�B�MuS�Ge�=Ӕ�#BE5G�����Y!z��_e��q�р/W>|-�Ci߇�t�1ޯќd�R3�u��g�=0 5��[?�#͏��q�cf���H��{ ?u�=?�?ǯ���}Z��z���hmΔ�BFTW�����<�q�(v� ��!��z���iW]*�J�V�z��gX֧A�q�&��/w���u�gYӘa���; �i=����g:��?2�dž6�ى�k�4�>�Pxs����}������G�9��3 ���)gG�R<>r h�$��'nc�h�P��Bj��J�ҧH� -��N1���N��?��~��}-q!=��_2hc�M��l�vY%UE�@|�v����M2�.Y[|y�"Eï��K�ZF,�ɯ?,q�?v�M 80jx�"�;�9vk�����+ ֧�� �ȺU��?�%�vcV��mA�6��Qg^M����A}�3�nl� QRN�l8�kkn�'�����(��M�7m9و�q���%ޟ���*h$Zk"��$�9��: �?U8�Sl��,,|ɒ��xH(ѷ����Gn�/Q�4�P��G�%��Ա8�N��!� �&�7�;���eKM7�4��9R/%����l�c>�x;������>��C�:�����t��h?aKX�bhe�ᜋ^�$�Iհ �hr7%F$�E��Fd���t��5���+�(M6�t����Ü�UU|zW�=a�Ts�Tg������dqP�Q����b'�m���1{|Y����X�N��b �P~��F^F:����k6�"�j!�� �I�r�`��1&�-$�Bevk:y���#yw��I0��x��=D�4��tU���P�ZH��ڠ底taP��6����b>�xa����Q�#� WeF��ŮNj�p�J* mQ�N����*I�-*�ȩ�F�g�3 �5��V�ʊ�ɮ�a��5F���O@{���NX��?����H�]3��1�Ri_u��������ѕ�� ����0��� F��~��:60�p�͈�S��qX#a�5>���`�o&+�<2�D����: �������ڝ�$�nP���*)�N�|y�Ej�F�5ټ�e���ihy�Z �>���k�bH�a�v��h�-#���!�Po=@k̆IEN��@��}Ll?j�O������߭�ʞ���Q|A07x���wt!xf���I2?Z��<ץ�T���cU�j��]��陎Ltl �}5�ϓ��$�,��O�mˊ�;�@O��jE��j(�ا,��LX���LO���Ц�90�O �.����a��nA���7������j4 ��W��_ٓ���zW�jcB������y՗+EM�)d���N�g6�y1_x��p�$Lv:��9�"z��p���ʙ$��^��JԼ*�ϭ����o���=x�Lj�6�J��u82�A�H�3$�ٕ@�=Vv�]�'�qEz�;I˼��)��=��ɯ���x �/�W(V���p�����$ �m�������u�����񶤑Oqˎ�T����r��㠚x�sr�GC��byp�G��1ߠ�w e�8�$⿄����/�M{*}��W�]˷.�CK\�ުx���/$�WPw���r� |i���&�}�{�X� �>��$-��l���?-z���g����lΆ���(F���h�vS*���b���߲ڡn,|)mrH[���a�3�ר�[1��3o_�U�3�TC�$��(�=�)0�kgP���� ��u�^=��4 �WYCҸ:��vQ�ר�X�à��tk�m,�t*��^�,�}D*� �"(�I��9R����>`�`��[~Q]�#af��i6l��8���6�:,s�s�N6�j"�A4���IuQ��6E,�GnH��zS�HO�uk�5$�I�4��ؤ�Q9�@��C����wp�BGv[]�u�Ov���0I4���\��y�����Q�Ѹ��~>Z��8�T��a��q�ޣ;z��a���/��S��I:�ܫ_�|������>=Z����8:�S��U�I�J��"IY���8%b8���H��:�QO�6�;7�I�S��J��ҌAά3��>c���E+&jf$eC+�z�;��V����� �r���ʺ������my�e���aQ�f&��6�ND��.:��NT�vm�<- u���ǝ\MvZY�N�NT��-A�>jr!S��n�O 1�3�Ns�%�3D@���`������ܟ 1�^c<���� �a�ɽ�̲�Xë#�w�|y�cW�=�9I*H8�p�^(4���՗�k��arOcW�tO�\�ƍR��8����'�K���I�Q�����?5�>[�}��yU�ײ -h��=��% q�ThG�2�)���"ו3]�!kB��*p�FDl�A���,�eEi�H�f�Ps�����5�H:�Փ~�H�0Dت�D�I����h�F3�������c��2���E��9�H��5�zԑ�ʚ�i�X�=:m�xg�hd(�v����׊�9iS��O��d@0ڽ���:�p�5�h-��t�&���X�q�ӕ,��ie�|���7A�2���O%P��E��htj��Y1��w�Ѓ!����  ���� ࢽ��My�7�\�a�@�ţ�J �4�Ȼ�F�@o�̒?4�wx��)��]�P��~�����u�����5�����7X ��9��^ܩ�U;Iꭆ 5 �������eK2�7(�{|��Y׎ �V��\"���Z�1� Z�����}��(�Ǝ"�1S���_�vE30>���p;� ΝD��%x�W�?W?v����o�^V�i�d��r[��/&>�~`�9Wh��y�;���R��� ;;ɮT��?����r$�g1�K����A��C��c��K��l:�'��3 c�ﳯ*"t8�~l��)���m��+U,z��`(�>yJ�?����h>��]��v��ЍG*�{`��;y]��I�T� ;c��NU�fo¾h���/$���|NS���1�S�"�H��V���T���4��uhǜ�]�v;���5�͠x��'C\�SBpl���h}�N����� A�Bx���%��ޭ�l��/����T��w�ʽ]D�=����K���ž�r㻠l4�S�O?=�k �M:� ��c�C�a�#ha���)�ѐxc�s���gP�iG��{+���x���Q���I= �� z��ԫ+ �8"�k�ñ�j=|����c ��y��CF��/��*9ж�h{ �?4�o� ��k�m�Q�N�x��;�Y��4膚�a�w?�6�>e]�����Q�r�:����g�,i"�����ԩA�*M�<�G��b�if��l^M��5� �Ҩ�{����6J��ZJ�����P�*�����Y���ݛu�_4�9�I8�7���������,^ToR���m4�H��?�N�S�ѕw��/S��甍�@�9H�S�T��t�ƻ���ʒU��*{Xs�@����f�����֒Li�K{H�w^���������Ϥm�tq���s� ���ք��f:��o~s��g�r��ט� �S�ѱC�e]�x���a��) ���(b-$(�j>�7q�B?ӕ�F��hV25r[7 Y� }L�R��}����*sg+��x�r�2�U=�*'WS��ZDW]�WǞ�<��叓���{�$�9Ou4��y�90-�1�'*D`�c�^o?(�9��u���ݐ��'PI&� f�Jݮ�������:wS����jfP1F:X �H�9dԯ���˝[�_54 �}*;@�ܨ�� ð�yn�T���?�ןd�#���4rG�ͨ��H�1�|-#���Mr�S3��G�3�����)�.᧏3v�z֑��r����$G"�`j �1t��x0<Ɔ�Wh6�y�6��,œ�Ga��gA����y��b��)��h�D��ß�_�m��ü �gG;��e�v��ݝ�nQ� ��C����-�*��o���y�a��M��I�>�<���]obD��"�:���G�A��-\%LT�8���c�)��+y76���o�Q�#*{�(F�⽕�y����=���rW�\p���۩�c���A���^e6��K������ʐ�cVf5$�'->���ՉN"���F�"�UQ@�f��Gb~��#�&�M=��8�ט�JNu9��D��[̤�s�o�~������ G��9T�tW^g5y$b��Y'��س�Ǵ�=��U-2 #�MC�t(�i� �lj�@Q 5�̣i�*�O����s�x�K�f��}\��M{E�V�{�υ��Ƈ�����);�H����I��fe�Lȣr�2��>��W�I�Ȃ6������i��k�� �5�YOxȺ����>��Y�f5'��|��H+��98pj�n�.O�y�������jY��~��i�w'������l�;�s�2��Y��:'lg�ꥴ)o#'Sa�a�K��Z� �m��}�`169�n���"���x��I ��*+� }F<��cГ���F�P�������ֹ*�PqX�x۩��,� ��N�� �4<-����%����:��7����W���u�`����� $�?�I��&����o��o��`v�>��P��"��l���4��5'�Z�gE���8���?��[�X�7(��.Q�-��*���ތL@̲����v��.5���[��=�t\+�CNܛ��,g�SQnH����}*F�G16���&:�t��4ُ"A��̣��$�b �|����#rs��a�����T�� ]�<�j��BS�('$�ɻ� �wP;�/�n��?�ݜ��x�F��yUn�~mL*-�������Xf�wd^�a�}��f�,=t�׵i�.2/wpN�Ep8�OР���•��R�FJ� 55TZ��T �ɭ�<��]��/�0�r�@�f��V��V����Nz�G��^���7hZi����k��3�,kN�e|�vg�1{9]_i��X5y7� 8e]�U����'�-2,���e"����]ot�I��Y_��n�(JҼ��1�O ]bXc���Nu�No��pS���Q_���_�?i�~�x h5d'�(qw52] ��'ޤ�q��o1�R!���`ywy�A4u���h<קy���\[~�4�\ X�Wt/� 6�����n�F�a8��f���z �3$�t(���q��q�x��^�XWeN'p<-v�!�{�(>ӽDP7��ո0�y)�e$ٕv�Ih'Q�EA�m*�H��RI��=:��� ���4牢) �%_iN�ݧ�l]� �Nt���G��H�L��� ɱ�g<���1V�,�J~�ٹ�"K��Q�� 9�HS�9�?@��k����r�;we݁�]I�!{ �@�G�[�"��`���J:�n]�{�cA�E����V��ʆ���#��U9�6����j�#Y�m\��q�e4h�B�7��C�������d<�?J����1g:ٳ���=Y���D�p�ц� ׈ǔ��1�]26؜oS�'��9�V�FVu�P�h�9�xc�oq�X��p�o�5��Ա5$�9W�V(�[Ak�aY錎qf;�'�[�|���b�6�Ck��)��#a#a˙��8���=äh�4��2��C��4tm^ �n'c���]GQ$[Wҿ��i���vN�{Fu ��1�gx��1┷���N�m��{j-,��x�� Ūm�ЧS�[�s���Gna���䑴�� x�p 8<������97�Q���ϴ�v�aϚG��Rt�Һ׈�f^\r��WH�JU�7Z���y)�vg=����n��4�_)y��D'y�6�]�c�5̪�\� �PF�k����&�c;��cq�$~T�7j ���nç]�<�g ":�to�t}�159�<�/�8������m�b�K#g'I'.W�����6��I/��>v��\�MN��g���m�A�yQL�4u�Lj�j9��#44�t��l^�}L����n��R��!��t��±]��r��h6ٍ>�yҏ�N��fU�� ���� Fm@�8}�/u��jb9������he:A�y�ծw��GpΧh�5����l}�3p468��)U��d��c����;Us/�֔�YX�1�O2��uq�s��`hwg�r~�{ R��mhN��؎*q 42�*th��>�#���E����#��Hv�O����q�}�����6�e��\�,Wk�#���X��b>��p}�դ��3���T5��†��6��[��@�P�y*n��|'f�֧>�lư΂�̺����SU�'*�q�p�_S�����M�� '��c�6�����m�� ySʨ;M��r���Ƌ�m�Kxo,���Gm�P��A�G�:��i��w�9�}M(�^�V��$ǒ�ѽ�9���|���� �a����J�SQ�a���r�B;����}���ٻ֢�2�%U���c�#�g���N�a�ݕ�'�v�[�OY'��3L�3�;,p�]@�S��{ls��X�'���c�jw�k'a�.��}�}&�� �dP�*�bK=ɍ!����;3n�gΊU�ߴmt�'*{,=SzfD� A��ko~�G�aoq�_mi}#�m�������P�Xhύ����mxǍ�΂���巿zf��Q���c���|kc�����?���W��Y�$���_Lv����l߶��c���`?����l�j�ݲˏ!V��6����U�Ђ(A���4y)H���p�Z_�x��>���e��R��$�/�`^'3qˏ�-&Q�=?��CFVR �D�fV�9��{�8g�������n�h�(P"��6�[�D���< E�����~0<@�`�G�6����Hг�cc�� �c�K.5��D��d�B���`?�XQ��2��ٿyqo&+�1^� DW�0�ꊩ���G�#��Q�nL3��c���������/��x ��1�1[y�x�პCW��C�c�UĨ80�m�e�4.{�m��u���I=��f�����0QRls9���f���������9���~f�����Ǩ��a�"@�8���ȁ�Q����#c�ic������G��$���G���r/$W�(��W���V�"��m�7�[m�A�m����bo��D� j����۳� l���^�k�h׽����� ��#� iXn�v��eT�k�a�^Y�4�BN��ĕ��0 !01@Q"2AaPq3BR������?���@4�Q�����T3,���㺠�W�[=JK�Ϟ���2�r^7��vc�:�9 �E�ߴ�w�S#d���Ix��u��:��Hp��9E!�� V 2;73|F��9Y���*ʬ�F��D����u&���y؟��^EA��A��(ɩ���^��GV:ݜDy�`��Jr29ܾ�㝉��[���E;Fzx��YG��U�e�Y�C���� ����v-tx����I�sם�Ę�q��Eb�+P\ :>�i�C'�;�����k|z�رn�y]�#ǿb��Q��������w�����(�r|ӹs��[�D��2v-%��@;�8<a���[\o[ϧw��I!��*0�krs)�[�J9^��ʜ��p1)� "��/_>��o��<1����A�E�y^�C��`�x1'ܣn�p��s`l���fQ��):�l����b>�Me�jH^?�kl3(�z:���1ŠK&?Q�~�{�ٺ�h�y���/�[��V�|6��}�KbX����mn[-��7�5q�94�������dm���c^���h� X��5��<�eޘ>G���-�}�دB�ޟ� ��|�rt�M��V+�]�c?�-#ڛ��^ǂ}���Lkr���O��u�>�-D�ry� D?:ޞ�U��ǜ�7�V��?瓮�"�#���r��չģVR;�n���/_� ؉v�ݶe5d�b9��/O��009�G���5n�W����JpA�*�r9�>�1��.[t���s�F���nQ� V 77R�]�ɫ8����_0<՜�IF�u(v��4��F�k�3��E)��N:��yڮe��P�`�1}�$WS��J�SQ�N�j�ٺ��޵�#l���ј(�5=��5�lǏmoW�v-�1����v,W�mn��߀$x�<����v�j(����c]��@#��1������Ǔ���o'��u+����;G�#�޸��v-lη��/(`i⣍Pm^���ԯ̾9Z��F��������n��1��� ��]�[��)�'������:�֪�W��FC����� �B9،!?���]��V��A�Վ�M��b�w��G F>_DȬ0¤�#�QR�[V��kz���m�w�"��9ZG�7'[��=�Q����j8R?�zf�\a�=��O�U����*oB�A�|G���2�54 �p��.w7� �� ��&������ξxGHp� B%��$g�����t�Џ򤵍z���HN�u�Я�-�'4��0��;_��3 !01"@AQa2Pq#3BR������?��ʩca��en��^��8���<�u#��m*08r��y�N"�<�Ѳ0��@\�p��� �����Kv�D��J8�Fҽ� �f�Y��-m�ybX�NP����}�!*8t(�OqѢ��Q�wW�K��ZD��Δ^e��!� ��B�K��p~�����e*l}z#9ң�k���q#�Ft�o��S�R����-�w�!�S���Ӥß|M�l޶V��!eˈ�8Y���c�ЮM2��tk���� ������J�fS����Ö*i/2�����n]�k�\���|4yX�8��U�P.���Ы[���l��@"�t�<������5�lF���vU�����W��W��;�b�cД^6[#7@vU�xgZv��F�6��Q,K�v��� �+Ъ��n��Ǣ��Ft���8��0��c�@�!�Zq s�v�t�;#](B��-�nῃ~���3g������5�J�%���O������n�kB�ĺ�.r��+���#�N$?�q�/�s�6��p��a����a��J/��M�8��6�ܰ"�*������ɗud"\w���aT(����[��F��U՛����RT�b���n�*��6���O��SJ�.�ij<�v�MT��R\c��5l�sZB>F��<7�;EA��{��E���Ö��1U/�#��d1�a�n.1ě����0�ʾR�h��|�R��Ao�3�m3 ��%�� ���28Q� ��y��φ���H�To�7�lW>����#i`�q���c����a��� �m,B�-j����݋�'mR1Ήt�>��V��p���s�0IbI�C.���1R�ea�����]H�6����������4B>��o��](��$B���m�����a�!=��?�B� K�Ǿ+�Ծ"�n���K��*��+��[T#�{E�J�S����Q�����s�5�:�U�\wĐ�f�3����܆&�)����I���Ԇw��E T�lrTf6Q|R�h:��[K�� �z��c֧�G�C��%\��_�a�84��HcO�bi��ؖV��7H �)*ģK~Xhչ0��4?�0��� �E<���}3���#���u�?�� ��|g�S�6ꊤ�|�I#Hڛ� �ա��w�X��9��7���Ŀ%�SL��y6č��|�F�a 8���b��$�sק�h���b9RAu7�˨p�Č�_\*w��묦��F ����4D~�f����|(�"m���NK��i�S�>�$d7SlA��/�²����SL��|6N�}���S�˯���g��]6��; �#�.��<���q'Q�1|KQ$�����񛩶"�$r�b:���N8�w@��8$�� �AjfG|~�9F ���Y��ʺ��Bwؒ������M:I岎�G��`s�YV5����6��A �b:�W���G�q%l�����F��H���7�������Fsv7��k�� 403WebShell
403Webshell
Server IP : 213.165.242.4  /  Your IP : 216.73.216.78
Web Server : Apache
System : Linux amsngx344.inmotionhosting.com 4.18.0-553.40.1.lve.el8.x86_64 #1 SMP Wed Feb 12 18:54:57 UTC 2025 x86_64
User : aquafi9 ( 1305)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib64/python3.12/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib64/python3.12/__pycache__/ssl.cpython-312.opt-2.pyc
�

�֦i���
�n�	ddlZddlZddlmZddlmZmZm	Z
ddlmZddlZddlm
Z
mZmZddlmZmZmZddlmZmZmZmZmZmZmZddlmZmZdd	lmZmZm Z 	dd
lm!Z!ddl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�e��e
j^de0d�e��ej^de0d�e��ej^de0d�e��e
j^de0d�e��ej^de0d�e��e1jdxZ3e1_3e1jhjk�D��cic]\}}||��
c}}Z6e7e1dd�Z8ee�Gd�d��Z9ee�Gd�d��Z:ee�Gd�d ��Z;ee�Gd!�d"��Z<ejzd#k(rdd$lm>Z>m?Z?dd%l@m@Z@mAZAmBZBdd&l@mCZCmDZDmEZEddl@ZFddlGZGddlHZHddlIZIeJZKd'gZLeMed(�ZNe-ZOeZPd)�ZQd*�ZRd+�ZSed,d-�ZTd.�ZUGd/�d0ed0d1��ZVGd2�d3eVe�ZWGd4�d5e�ZXeWj�fdddd6�d7�ZZdGe[d8eWj�dddddd9�d:�Z\eZZ]e\Z^Gd;�d<�Z_d=�Z`Gd>�d?e@�ZaeaeX_be_eX_cd@�ZddAZedBZfdC�ZgdD�ZheideEfdE�ZjdF�Zky#e"$rY��JwxYwcc}}w)H�N)�
namedtuple)�Enum�IntEnum�IntFlag)�_simple_enum)�OPENSSL_VERSION_NUMBER�OPENSSL_VERSION_INFO�OPENSSL_VERSION)�_SSLContext�	MemoryBIO�
SSLSession)�SSLError�SSLZeroReturnError�SSLWantReadError�SSLWantWriteError�SSLSyscallError�SSLEOFError�SSLCertVerificationError)�txt2obj�nid2obj)�RAND_status�RAND_add�
RAND_bytes)�RAND_egd)
�HAS_SNI�HAS_ECDH�HAS_NPN�HAS_ALPN�	HAS_SSLv2�	HAS_SSLv3�	HAS_TLSv1�HAS_TLSv1_1�HAS_TLSv1_2�HAS_TLSv1_3)�_DEFAULT_CIPHERS�_OPENSSL_API_VERSION�
_SSLMethodc�2�|jd�xr|dk7S)N�	PROTOCOL_�PROTOCOL_SSLv23��
startswith��names �/usr/lib64/python3.12/ssl.py�<lambda>r0}s������-�K�$�:K�2K�K�)�source�Optionsc�$�|jd�S)N�OP_r+r-s r/r0r0�s
������'r1�AlertDescriptionc�$�|jd�S)N�ALERT_DESCRIPTION_r+r-s r/r0r0�s�����!5�6r1�SSLErrorNumberc�$�|jd�S)N�
SSL_ERROR_r+r-s r/r0r0�s
������.r1�VerifyFlagsc�$�|jd�S)N�VERIFY_r+r-s r/r0r0�s
������+r1�
VerifyModec�$�|jd�S)N�CERT_r+r-s r/r0r0�s
������)r1�PROTOCOL_SSLv2c��eZdZejZejZejZ	ejZejZ
ejZej Zy)�
TLSVersionN)�__name__�
__module__�__qualname__�_ssl�PROTO_MINIMUM_SUPPORTED�MINIMUM_SUPPORTED�PROTO_SSLv3�SSLv3�PROTO_TLSv1�TLSv1�
PROTO_TLSv1_1�TLSv1_1�
PROTO_TLSv1_2�TLSv1_2�
PROTO_TLSv1_3�TLSv1_3�PROTO_MAXIMUM_SUPPORTED�MAXIMUM_SUPPORTED�r1r/rDrD�sQ���4�4�����E����E�� � �G�� � �G�� � �G��4�4�r1rDc�&�eZdZ	dZdZdZdZdZdZy)�_TLSContentType������N)	rErFrG�CHANGE_CIPHER_SPEC�ALERT�	HANDSHAKE�APPLICATION_DATA�HEADER�INNER_CONTENT_TYPErWr1r/rYrY�s*������E��I���
�F��r1rYc��eZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$y#)$�
_TLSAlertTyper�
rZr[r\��(�)�*�+�,�-�.�/�0�1�2�3�<�F�G�P�V�Z�d�m�n�o�p�q�r�s�t�xN)%rErFrG�CLOSE_NOTIFY�UNEXPECTED_MESSAGE�BAD_RECORD_MAC�DECRYPTION_FAILED�RECORD_OVERFLOW�DECOMPRESSION_FAILURE�HANDSHAKE_FAILURE�NO_CERTIFICATE�BAD_CERTIFICATE�UNSUPPORTED_CERTIFICATE�CERTIFICATE_REVOKED�CERTIFICATE_EXPIRED�CERTIFICATE_UNKNOWN�ILLEGAL_PARAMETER�
UNKNOWN_CA�
ACCESS_DENIED�DECODE_ERROR�
DECRYPT_ERROR�EXPORT_RESTRICTION�PROTOCOL_VERSION�INSUFFICIENT_SECURITY�INTERNAL_ERROR�INAPPROPRIATE_FALLBACK�
USER_CANCELED�NO_RENEGOTIATION�MISSING_EXTENSION�UNSUPPORTED_EXTENSION�CERTIFICATE_UNOBTAINABLE�UNRECOGNIZED_NAME�BAD_CERTIFICATE_STATUS_RESPONSE�BAD_CERTIFICATE_HASH_VALUE�UNKNOWN_PSK_IDENTITY�CERTIFICATE_REQUIRED�NO_APPLICATION_PROTOCOLrWr1r/rgrg�s�����L����N����O������N��O� �����������J��M��L��M��������N����M�������"����&)�#�!$������!�r1rgc�f�eZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZy)�_TLSMessageTyper����������
���rZr[r\r]��C�r_N)rErFrG�
HELLO_REQUEST�CLIENT_HELLO�SERVER_HELLO�HELLO_VERIFY_REQUEST�NEWSESSION_TICKET�END_OF_EARLY_DATA�HELLO_RETRY_REQUEST�ENCRYPTED_EXTENSIONS�CERTIFICATE�SERVER_KEY_EXCHANGE�CERTIFICATE_REQUEST�SERVER_DONE�CERTIFICATE_VERIFY�CLIENT_KEY_EXCHANGE�FINISHED�CERTIFICATE_URL�CERTIFICATE_STATUS�SUPPLEMENTAL_DATA�
KEY_UPDATE�
NEXT_PROTO�MESSAGE_HASHr`rWr1r/r�r��s�����M��L��L������������K������K������H��O������J��J��L��r1r��win32)�enum_certificates�	enum_crls)�socket�SOCK_STREAM�create_connection)�
SOL_SOCKET�SO_TYPE�_GLOBAL_DEFAULT_TIMEOUT�
tls-unique�HOSTFLAG_NEVER_CHECK_SUBJECTc��	|sy|jd�}|s!|j�|j�k(S|dkDrtdj|���|j	d�\}}}d|vrtdj|���|stdj|���|dk7rtdj|���|j	d�\}}}|r|sy|j�|j�k(S)	NF�*r�z1too many wildcards in certificate DNS name: {!r}.�.z9wildcard can only be present in the leftmost label: {!r}.z>sole wildcard without additional labels are not support: {!r}.z<partial wildcards in leftmost label are not supported: {!r}.)�count�lower�CertificateError�format�	partition)�dn�hostname�	wildcards�dn_leftmost�sep�dn_remainder�hostname_leftmost�hostname_remainders        r/�_dnsname_matchr�s���������
�I���x�x�z�X�^�^�-�-�-��1�}��?�F�F�r�J�L�	L�&(�\�\�#�%6�"�K��l�
�l���
��F�2�J� �	 ���
��F�2�J� �	 ��c���
��F�2�J� �	 �2:�1C�1C�C�1H�.��s�.��C������#5�#;�#;�#=�=�=r1c��		tj|�}tj|�|k(r|Stdj	|���#t
$rYnwxYw	tjtj|�S#t
$rtdj	|���t$rYnwxYwtdj	|���)Nz'{!r} is not a quad-dotted IPv4 address.z+{!r} is neither an IPv4 nor an IP6 address.z{!r} is not an IPv4 address.)	�_socket�	inet_aton�	inet_ntoa�
ValueErrorr��OSError�	inet_pton�AF_INET6�AttributeError)�ipname�addrs  r/�_inet_patonr�Is����
�� � ��(��
���T�"�f�,��K��9�@�@��H��
���
��
��
�� � ��!1�!1�6�:�:���4��$�$*�F�6�N�4�	4��
��
���3�:�:�6�B�
C�Cs#�A�	A�A�#B�+B.�-B.c�@�	t|j��}||k(S�N)r��rstrip)�cert_ipaddress�host_ip�ips   r/�_ipaddress_matchr�ls&���
�^�*�*�,�	-�B�
��=�r1�DefaultVerifyPathszQcafile capath openssl_cafile_env openssl_cafile openssl_capath_env openssl_capathc�b�	tj�}tjj	|d|d�}tjj	|d|d�}ttjj|�r|ndtjj|�r|ndg|���S)Nrr�r�r�)	rH�get_default_verify_paths�os�environ�getr��path�isfile�isdir)�parts�cafile�capaths   r/rr|s�����)�)�+�E��Z�Z�^�^�E�!�H�e�A�h�
/�F�
�Z�Z�^�^�E�!�H�e�A�h�
/�F�������v�(>�f�D�(*���
�
�f�(=�f�4�&�$�&�&r1c�L��eZdZ	dZ�fd�Ze�fd��Ze�fd��Z�xZS)�_ASN1ObjectrWc�:��t�|�|gt|d�����S)NFr-��super�__new__�_txt2obj)�cls�oid�	__class__s  �r/rz_ASN1Object.__new__�s����w��s�?�X�c��%>�?�?r1c�8��	t�|�|gt|����Sr�)rr�_nid2obj)r�nidrs  �r/�fromnidz_ASN1Object.fromnid�s ���	��w��s�3�X�c�]�3�3r1c�<��	t�|�|gt|d�����S)NTr-r
)rr.rs  �r/�fromnamez_ASN1Object.fromname�s#���	��w��s�?�X�d��%>�?�?r1)	rErFrG�	__slots__r�classmethodrr�
__classcell__�rs@r/rr�s=�����I�@��4��4�
�@��@r1rznid shortname longname oidc��eZdZ	dZdZy)�Purposez1.3.6.1.5.5.7.3.1z1.3.6.1.5.5.7.3.2N)rErFrG�SERVER_AUTH�CLIENT_AUTHrWr1r/rr�s���%�K�%�Kr1rc�h��eZdZ	dZdZdZdd�Zd�Z				dd�Z		d d�Z	d�Z
d�Zd	�Zd
�Z
ejfd�Zeed�r<e�fd
��Zej*�fd��Ze�fd��Zej*�fd��Ze�fd��Zej*�fd��Zeed�red��Zej*d��Zned��Ze�fd��Zej*�fd��Ze�fd��Ze�fd��Zej*�fd��Ze�fd��Zej*�fd��Z�xZS)!�
SSLContext)�CA�ROOTNc�z�|�"tjdtd��t}t	j
||�}|S)Nz9ssl.SSLContext() without protocol argument is deprecated.r�)�category�
stacklevel)�warnings�warn�DeprecationWarning�PROTOCOL_TLSrr)r�protocol�args�kwargs�selfs     r/rzSSLContext.__new__�s;�����M�M�K�+��
�
$�H��"�"�3��1���r1c��|�yt|t�r |jd�jd�S|jd�S)N�idna�ascii)�
isinstance�str�encode�decode)r0r�s  r/�_encode_hostnamezSSLContext._encode_hostname�s>�����
��#�
&��?�?�6�*�1�1�'�:�:��?�?�7�+�+r1c	�F�|jj|||||||��S)N)�sock�server_side�do_handshake_on_connect�suppress_ragged_eofs�server_hostname�context�session)�sslsocket_class�_create)r0r:r;r<r=r>r@s       r/�wrap_socketzSSLContext.wrap_socket�s7���#�#�+�+��#�$;�!5�+���,�
�	
r1c�b�|jj||||j|�||��S)N)r;r>r@r?)�sslobject_classrBr8)r0�incoming�outgoingr;r>r@s      r/�wrap_biozSSLContext.wrap_bio�s<���#�#�+�+��h�K� �1�1�/�B��T�,�
�	
r1c�<�tjdtd��t�}|D]`}t	|d�}t|�dk(st|�dkDrt
d��|jt|��|j|��b|j|�y)N�'ssl NPN is deprecated, use ALPN insteadr��r(r3r�z(NPN protocols must be 1 to 255 in length)
r)r*r+�	bytearray�bytes�lenr�append�extend�_set_npn_protocols)r0�
npn_protocols�protosr-�bs     r/�set_npn_protocolszSSLContext.set_npn_protocols�s����
�
�5���	
�
���%�H��h��(�A��1�v��{�c�!�f�s�l��I�J�J��M�M�#�a�&�!��M�M�!��&�	
����'r1c�b�����d�_yt��std����fd�}|�_y)Nznot a callable objectc�:���j|�}�|||�Sr�)r8)�sslobj�
servername�sslctxr0�server_name_callbacks   ��r/�shim_cbz3SSLContext.set_servername_callback.<locals>.shim_cb�s"���!�2�2�:�>�
�+�F�J��G�Gr1)�sni_callback�callable�	TypeError)r0r\r]s`` r/�set_servername_callbackz"SSLContext.set_servername_callback�s6����'� $�D���0�1�� 7�8�8�
H�!(�D�r1c��t�}|D]`}t|d�}t|�dk(st|�dkDrtd��|j	t|��|j|��b|j
|�y)Nr3rrLz)ALPN protocols must be 1 to 255 in length)rMrNrOrrPrQ�_set_alpn_protocols)r0�alpn_protocolsrTr-rUs     r/�set_alpn_protocolszSSLContext.set_alpn_protocols�sl�����&�H��h��(�A��1�v��{�c�!�f�s�l��J�K�K��M�M�#�a�&�!��M�M�!��'�	
� � ��(r1c�*�	t|�D]2\}}}|dk(s�
|dus|j|vs� 	|j|���4y#t$r"}t	j
d|���Yd}~�\d}~wwxYw#t$rt	j
d�YywxYw)N�x509_asnT)�cadataz.Bad certificate in Windows certificate store: z-unable to enumerate Windows certificate store)r�r�load_verify_locationsrr)r*�PermissionError)r0�	storename�purpose�cert�encoding�trust�excs       r/�_load_windows_store_certsz$SSLContext._load_windows_store_certss���
	K�):�9�)E�%��h���z�)���}����u�(<�d� �6�6�d�6�C�*F�� (�d�$�M�M�,Z�[^�Za�*b�c�c��d���	K��M�M�I�J�	K�s?�A1�A1�A�A1�	A.�A)�$A1�)A.�.A1�1B�Bc���t|t�st|��tjdk(r#|j
D]}|j
||��|j�y)Nr�)r4rr`�sys�platform�_windows_cert_storesrq�set_default_verify_paths)r0rlrks   r/�load_default_certszSSLContext.load_default_certssO���'�;�/��G�$�$��<�<�7�"�!�6�6�	��.�.�y�'�B�7��%�%�'r1�minimum_versionc�*��tt�|��Sr�)rDrrx�r0rs �r/rxzSSLContext.minimum_version�����e�g�5�6�6r1c���|tjk(r$|xjtjzc_t
tt�j||�yr�)	rDrL�optionsr3�OP_NO_SSLv3rr#rx�__set__�r0�valuers  �r/rxzSSLContext.minimum_versions?����
�(�(�(�����!4�!4� 4�4���*�j�9�A�A�$��Nr1c�*��tt�|��Sr�)rDr�maximum_versionrzs �r/r�zSSLContext.maximum_version#r{r1c�J��ttt�
j||�yr�)rr#r�rr�s  �r/r�zSSLContext.maximum_version's����*�j�9�A�A�$��Nr1c�*��tt�|��Sr�)r3rr}rzs �r/r}zSSLContext.options+s����u�w��'�'r1c�J��ttt�
j||�yr�)rr#r}rr�s  �r/r}zSSLContext.options/s���
�j�*�-�5�5�d�E�Br1r�c�b�|jtjz}|tjk7Sr���_host_flagsrHr�)r0�ncss  r/�hostname_checks_common_namez&SSLContext.hostname_checks_common_name4s)���"�"�T�%F�%F�F�C��$�;�;�;�;r1c��|r%|xjtjzc_y|xjtjzc_yr�r�)r0r�s  r/r�z&SSLContext.hostname_checks_common_name9s6���� � �T�%F�%F�$F�F� �� � �D�$E�$E�E� r1c��y�NTrW�r0s r/r�z&SSLContext.hostname_checks_common_name@s��r1c�8��	t�|�}|�|jSyr�)r�
_msg_callback�
user_function)r0�innerrs  �r/r�zSSLContext._msg_callbackDs)���	�>��%�����&�&�&�r1c�������#ttt�
j|d�yt	�d�st��d����fd�}�|_ttt�
j||�y)N�__call__z is not callable.c�.��	t|�}	t|�}|tjk(rt}n |tjk(rt
}nt}	||�}�||||||�S#t$rY�gwxYw#t$rY�jwxYw#t$rY�6wxYwr�)rDr�rYrdrargr�)�conn�	direction�version�content_type�msg_type�data�msg_enum�callbacks       �r/r�z'SSLContext._msg_callback.<locals>.innerts����
�$�W�-��
�.�|�<����5�5�5�*����!6�!6�6�(��*��
�#�H�-���D�)�W�(�(�D�:�
:��'�
��
��
�
��
���
��
�s4�A*�A9�B�*	A6�5A6�9	B�B�	B�B)rr#r�r�hasattrr`r�)r0r�r�rs ` �r/r�zSSLContext._msg_callbackksf������*�j�7�?�?��d�K���x��,��x�j�(9�:�;�;�	:�2'���
�j�*�3�;�;�D�%�Hr1c�*��tt�|��Sr�)r'rr-rzs �r/r-zSSLContext.protocol�s����%�'�*�+�+r1c�*��tt�|��Sr�)r<r�verify_flagsrzs �r/r�zSSLContext.verify_flags�s����5�7�/�0�0r1c�J��ttt�
j||�yr�)rr#r�rr�s  �r/r�zSSLContext.verify_flags�s���
�j�*�2�:�:�4��Gr1c�R��t�|�}	t|�S#t$r|cYSwxYwr�)r�verify_moder?r�r�s  �r/r�zSSLContext.verify_mode�s1�����#��	��e�$�$���	��L�	�s�
�&�&c�J��ttt�
j||�yr�)rr#r�rr�s  �r/r�zSSLContext.verify_mode�s���
�j�*�1�9�9�$��Fr1r�)FTTNN)FNN)rErFrGrurArErr8rCrHrVrarerqrr rwr�r�propertyrx�setterr�r}rHr�r�r-r�r�rrs@r/r#r#�s����>�)���O��O�	�,�-2�,0�)-�26�
� 8=�/3�
�(� (�	)�K�*1�)<�)<�(��{�-�.�	�	7�
�	7�
�	�	�	O�
 �	O�

�	7�
�	7�
�	�	�	O�
 �	O��(��(�
�^�^�C��C��t�3�4�	�	<�
�	<�
%�	+�	+�	F�
,�	F�
�	�
�	��$��$�L���#I��#I�J�,��,��1��1����H��H��������G��Gr1r#)rr	rhc��	t|t�st|��|tjk(r"tt�}t|_d|_	n.|tjk(rtt�}nt|��|s|s|r|j|||�n$|jtk7r|j|�t!|d�rBt"j$j'd�}|r!t(j*j,s||_|S)NT�keylog_filename�
SSLKEYLOGFILE)r4rr`rr r#�PROTOCOL_TLS_CLIENT�
CERT_REQUIREDr��check_hostnamer!�PROTOCOL_TLS_SERVERr�ri�	CERT_NONErwr�rrrrs�flags�ignore_environmentr�)rlrr	rhr?�
keylogfiles      r/�create_default_contextr��s�����g�{�+��� � �
�'�%�%�%��0�1��+���!%���	�G�'�'�	'��0�1����!�!�
��6��%�%�f�f�f�=�	�	�	�	�	)�	�"�"�7�+��w�)�*��Z�Z�^�^�O�4�
��c�i�i�:�:�&0�G�#��Nr1F)�	cert_reqsr�rl�certfile�keyfilerr	rhc�n�	t|t�st|��|tjk(r	|�.t
}n'|tjk(r	|�t}nt|��t|�}	||	_
|�||	_|rd|	_
|r
|std��|s|r|	j||�|s|s|r|	j|||�n$|	jtk7r|	j|�t!|	d�rBt"j$j'd�}
|
r!t(j*j,s|
|	_|	S)NTzcertfile must be specifiedr�r�)r4rr`rr r�r!r�r�r#r�r��load_cert_chainrir�rwr�rrrrsr�r�r�)r-r�r�rlr�r�rr	rhr?r�s           r/�_create_unverified_contextr��s ����g�{�+��� � �
�'�%�%�%���*�H�	�G�'�'�	'���*�H���!�!���"�G�+�G����'����!%����x��5�6�6��7�����'�2���6��%�%�f�f�f�=�	�	�	�	�	)�	�"�"�7�+��w�)�*��Z�Z�^�^�O�4�
��c�i�i�:�:�&0�G�#��Nr1c��eZdZ	d�Ze		dd��Zed��Zejd��Zed��Z	e	jd��Z	ed��Z
ed	��Zed
��Zdd�Z
d�Zdd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdd�Zd�Zd�Zy)�	SSLObjectc�F�t|jj�d���)NzU does not have a public constructor. Instances are returned by SSLContext.wrap_bio().�r`rrE�r0r.r/s   r/�__init__zSSLObject.__init__s+����~�~�&�&�'�(L�
M�
�	
r1Nc�d�|j|�}|j||||||��}||_|S)N)r;r>�ownerr@)r�	_wrap_bio�_sslobj)	rrFrGr;r>r@r?r0rYs	         r/rBzSSLObject._create#sD���{�{�3����"�"��h�K�+���#�
��
����r1c�0�	|jjSr��r�r?r�s r/r?zSSLObject.context/s��6��|�|�#�#�#r1c�&�||j_yr�r��r0�ctxs  r/r?zSSLObject.context4s��"����r1c�0�	|jjSr��r�r@r�s r/r@zSSLObject.session8s��/��|�|�#�#�#r1c�&�||j_yr�r��r0r@s  r/r@zSSLObject.session=s��&����r1c�0�	|jjSr��r��session_reusedr�s r/r�zSSLObject.session_reusedAs��<��|�|�*�*�*r1c�0�	|jjSr�)r�r;r�s r/r;zSSLObject.server_sideFs��3��|�|�'�'�'r1c�0�	|jjSr�)r�r>r�s r/r>zSSLObject.server_hostnameKs��	#��|�|�+�+�+r1c�~�	|�|jj||�}|S|jj|�}|Sr�)r��read)r0rO�buffer�vs    r/r�zSSLObject.readQsG��	�
�����!�!�#�v�.�A������!�!�#�&�A��r1c�:�	|jj|�Sr�)r��write�r0r�s  r/r�zSSLObject.write]s��	�
�|�|�!�!�$�'�'r1c�:�	|jj|�Sr�)r��getpeercert�r0�binary_forms  r/r�zSSLObject.getpeercertes��	��|�|�'�'��4�4r1c�>�	tjdtd��y�NrJr�rK)r)r*r+r�s r/�selected_npn_protocolzSSLObject.selected_npn_protocolns��	�	�
�
�5���	
r1c�8�	|jj�Sr�)r��selected_alpn_protocolr�s r/r�z SSLObject.selected_alpn_protocolxs��	��|�|�2�2�4�4r1c�8�	|jj�Sr�)r��cipherr�s r/r�zSSLObject.cipher~s��	(��|�|�"�"�$�$r1c�8�	|jj�Sr�)r��shared_ciphersr�s r/r�zSSLObject.shared_ciphers�s��	��|�|�*�*�,�,r1c�8�	|jj�Sr�)r��compressionr�s r/r�zSSLObject.compression�s��	P��|�|�'�'�)�)r1c�8�	|jj�Sr�)r��pendingr�s r/r�zSSLObject.pending�s��F��|�|�#�#�%�%r1c�:�	|jj�yr�)r��do_handshaker�s r/r�zSSLObject.do_handshake�s��*����!�!�#r1c�8�	|jj�Sr�)r��shutdownr�s r/�unwrapzSSLObject.unwrap�s��/��|�|�$�$�&�&r1c�:�	|jj|�Sr�)r��get_channel_binding�r0�cb_types  r/r�zSSLObject.get_channel_binding�s��	M��|�|�/�/��8�8r1c�8�	|jj�Sr��r�r�r�s r/r�zSSLObject.version�s��	!��|�|�#�#�%�%r1c�6�|jj�Sr�)r��verify_client_post_handshaker�s r/r�z&SSLObject.verify_client_post_handshake�s���|�|�8�8�:�:r1)FNNN��N�F�r�)rErFrGr�rrBr�r?r�r@r�r;r>r�r�r�r�r�r�r�r�r�r�r�r�r�r�rWr1r/r�r�s��
�
��5:�=A�	��	��$��$�
�^�^�#��#��$��$�
�^�^�'��'��+��+��(��(��,��,�

�(�5�
�5�%�
-�*�
&�$�'�9�&�
;r1r�c�Z�	tt|j�j|_|Sr�)�getattrr�rE�__doc__)�funcs r/�_sslcopydocr�s"��4��9�d�m�m�4�<�<�D�L��Kr1c�\��eZdZ	d�Ze			d*�fd�	�Zeed���Zejd��Zeed���Z
e
jd��Z
eed���Zd�Zd+d	�Z
d
�Zd,d�Zd�Zed-d
��Zed��Zed��Zed��Zed��Zed��Zd.�fd�	Zd+�fd�	Zd�Zd.�fd�	Zd/�fd�	Zd0�fd�	Zd1�fd�	Zd0�fd�	Zd1�fd�	Zd�Z d�Z!ed��Z"�fd�Z#ed ��Z$ed!��Z%�fd"�Z&ed-d#��Z'�fd$�Z(d%�Z)d&�Z*�fd'�Z+ed2d(��Z,ed)��Z-�xZ.S)3�	SSLSocketc�F�t|jj�d���)NzX does not have a public constructor. Instances are returned by SSLContext.wrap_socket().r�r�s   r/r�zSSLSocket.__init__�s)����~�~�&�&�'�((�
)�
�	
r1c���|jtt�tk7rt	d��|r|rtd��|�td��|jr
|std��|j�}t|j|j|j|j���}	|j|fi|	��}
tt|
�Bdi|	��|j#�	||
_||
_d|
_d|
_||
_|j/|�|
_||
_||
_	|
j7�d}|
jM|�||
_'|rk|
j$jQ|
||
j0|
|
j&��|
_|r0|
j�}|dk(rtd
��|
jS�|
S#t8$r�}|j:t:j<k7r�d}|
j?�}
|
jAd�	|
jCd�}nE#t8$r9}|j:t:j<t:jDfvr�d	}Yd}~nd}~wwxYw|
jA|
�|r0d
}tGj:|�}||_$d|_%	|�#d}wxYwYd}~��rd}~wwxYw#	|
jU��#t8$rY�wxYwxYw)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)�family�type�proto�filenoFTr�r1z5Closed before TLS handshake with data in recv buffer.�r�r@�zHdo_handshake_on_connect should not be specified for non-blocking socketsrW)+�
getsockoptr�r�r��NotImplementedErrorr�r��
gettimeout�dictrrrrrrrr��detach�_context�_session�_closedr�r;r8r>r<r=�getpeernamer��errno�ENOTCONN�getblocking�setblocking�recv�EINVALr�reason�library�
settimeout�
_connected�_wrap_socketr��close)rr:r;r<r=r>r?r@�sock_timeoutr/r0�	connected�e�blocking�notconn_pre_handshake_datar� notconn_pre_handshake_data_error�timeoutrs                  �r/rBzSSLSocket._create�s�����?�?�:�w�/�;�>�%�&I�J�J��� �"2�3�3��"� �"/�0�0��!�!�/��F�G�G����(����;�;�T�Y�Y�d�j�j��;�;�=�
���s�{�{�3�)�&�)��
�i��'�1�&�1����
�C	�#�D�M�#�D�M� �D�L��D�L�*�D��#*�#;�#;�O�#L�D� �+B�D�(�(<�D�%�#
!�� � �"�D!�	��O�O�L�)�'�D�O��#�}�}�9�9��+�t�';�';���
�
� :� ���+�"�o�o�/�G��#�~�(�)s�t�t��%�%�'����o�
@��7�7�e�n�n�,��!�	��+�+�-��� � ��'�
5�
26���1��.���5��w�w�u�~�~�u�|�|�&D�D��14�.��	5��
� � ��*�-�U�F�7?�����7P�4�>D�4�;�?C�4�<�@�>�>��<@�8��.��%
@��b	�
��
�
��
���
���
�s��%AJ9�-G�=BJ9�	J6�AJ1�H#�"J1�#	I%�,/I �J1� I%�%<J1�"J$�$J(�(J1�+J9�1J6�6J9�9K�<K
�K�
	K�K�K�Kc��|jSr�)rr�s r/r?zSSLSocket.contexts���}�}�r1c�4�||_||j_yr�)rr�r?r�s  r/r?zSSLSocket.contexts����
�"����r1c�H�|j�|jjSyr�r�r�s r/r@zSSLSocket.session$s#���<�<�#��<�<�'�'�'�$r1c�N�||_|j�||j_yyr�)rr�r@r�s  r/r@zSSLSocket.session*s$����
��<�<�#�#*�D�L�L� �$r1c�H�|j�|jjSyr�r�r�s r/r�zSSLSocket.session_reused0s#���<�<�#��<�<�.�.�.�$r1c�F�td|jjz��)NzCan't dup() %s instances)rrrEr�s r/�dupz
SSLSocket.dup6s$��!�"<�"&�.�.�"9�"9�#:�;�	;r1c��yr�rW)r0�msgs  r/�_checkClosedzSSLSocket._checkClosed:s��r1c�>�|js|j�yyr�)rrr�s r/�_check_connectedzSSLSocket._check_connected>s�����

����r1c�F�	|j�|j�td��	|�|jj||�S|jj|�S#t$r4}|j
dtk(r|jr|�Yd}~yYd}~y�d}~wwxYw)Nz'Read on closed or unwrapped SSL socket.rr1)r0r�r�r�rr.�
SSL_ERROR_EOFr=)r0rOr��xs    r/r�zSSLSocket.readFs���	-�	
�����<�<���F�G�G�	��!��|�|�(�(��f�5�5��|�|�(�(��-�-���	��v�v�a�y�M�)�d�.G�.G��%�����	�s#�A#�A#�#	B �,$B�B�B c��	|j�|j�td��|jj|�S)Nz(Write on closed or unwrapped SSL socket.)r0r�r�r�r�s  r/r�zSSLSocket.write[s@��	9�	
�����<�<���G�H�H��|�|�!�!�$�'�'r1c�x�|j�|j�|jj|�Sr�)r0r2r�r�r�s  r/r�zSSLSocket.getpeercertds/�����������|�|�'�'��4�4r1c�\�|j�tjdtd��yr�)r0r)r*r+r�s r/r�zSSLSocket.selected_npn_protocoljs(�������
�
�5���	
�
r1c��|j�|j�tjsy|jj	�Sr�)r0r�rHrr�r�s r/r�z SSLSocket.selected_alpn_protocolts4�������<�<��t�}�}���<�<�6�6�8�8r1c�p�|j�|j�y|jj�Sr�)r0r�r�r�s r/r�zSSLSocket.cipher|s.�������<�<����<�<�&�&�(�(r1c�p�|j�|j�y|jj�Sr�)r0r�r�r�s r/r�zSSLSocket.shared_ciphers�s.�������<�<����<�<�.�.�0�0r1c�p�|j�|j�y|jj�Sr�)r0r�r�r�s r/r�zSSLSocket.compression�s.�������<�<����<�<�+�+�-�-r1c����|j�|j�8|dk7rtd|jz��|jj	|�St
�|�||�S)Nrz3non-zero flags not allowed in calls to send() on %s)r0r�r�rr�r�send)r0r�r�rs   �r/r>zSSLSocket.send�sd��������<�<�#���z� �I��N�N�#�$�$��<�<�%�%�d�+�+��7�<��e�,�,r1c���|j�|j�td|jz��|�t�|�||�St�|�|||�S)Nz%sendto not allowed on instances of %s)r0r�r�rr�sendto)r0r��
flags_or_addrr�rs    �r/r@zSSLSocket.sendto�s^��������<�<�#��D�!�^�^�,�-�
-�
�\��7�>�$�
�6�6��7�>�$�
�t�<�<r1c�2�td|jz��)Nz&sendmsg not allowed on instances of %s�rrr�s   r/�sendmsgzSSLSocket.sendmsg�s ��"�"J�"&�.�.�#1�2�	2r1c���|j�|j�}|dk7rtd|jz��d}t	|�5}|jd�5}t
|�}||kr|j||d�}||z
}||kr�ddd�ddd�yt�|�%||�S#1swY�"xYw#1swYyxYw)Nrz6non-zero flags not allowed in calls to sendall() on %s�B)
r0r�r�r�
memoryview�castrOr>r�sendall)	r0r�r�r��view�	byte_view�amountr�rs	        �r/rIzSSLSocket.sendall�s���������<�<�#���z� �L��N�N�#�$�$��E��D�!�T�4�9�9�S�>�Y��Y����f�n��	�	�)�E�F�"3�4�A��Q�J�E��f�n�,:�!�!��7�?�4��/�/�
,:�>��!�!�s$�B7�/B+�
B7�+B4	�0B7�7Cc�f��	|j�|j|||�St�|�
|||�Sr�)r��_sendfile_use_sendr�sendfile)r0�file�offsetr�rs    �r/rOzSSLSocket.sendfile�s?���	��<�<�#��*�*�4���?�?��7�#�D�&�%�8�8r1c���|j�|j�.|dk7rtd|jz��|j	|�St
�|�||�S)Nrz3non-zero flags not allowed in calls to recv() on %s)r0r�r�rr�rr�r0�buflenr�rs   �r/rzSSLSocket.recv�s^��������<�<�#���z� �I��N�N�#�$�$��9�9�V�$�$��7�<���.�.r1c�*��|j�|�)|�%t|�5}|j}ddd�|sd}nd}|j�/|dk7rt	d|j
z��|j
||�St�|�!|||�S#1swY�\xYw)Nr�rz8non-zero flags not allowed in calls to recv_into() on %s)	r0rG�nbytesr�r�rr�r�	recv_into)r0r�rVr�rJrs     �r/rWzSSLSocket.recv_into�s���������>��!���'�4�!�[�[�F�(��!�F����<�<�#���z� �L��.�.�!�"�"��9�9�V�V�,�,��7�$�V�V�U�;�;�(�'�s�
B	�	Bc���|j�|j�td|jz��t�|�||�S)Nz'recvfrom not allowed on instances of %s)r0r�r�rr�recvfromrSs   �r/rYzSSLSocket.recvfrom�sI��������<�<�#��F�!�^�^�,�-�
-��7�#�F�E�2�2r1c���|j�|j�td|jz��t�|�|||�S)Nz,recvfrom_into not allowed on instances of %s)r0r�r�rr�
recvfrom_into)r0r�rVr�rs    �r/r[zSSLSocket.recvfrom_into�sK��������<�<�#��K�!�^�^�,�-�
-��7�(����?�?r1c�2�td|jz��)Nz&recvmsg not allowed on instances of %srCr�s   r/�recvmsgzSSLSocket.recvmsg�s��!�"J�"&�.�.�#1�2�	2r1c�2�td|jz��)Nz+recvmsg_into not allowed on instances of %srCr�s   r/�recvmsg_intozSSLSocket.recvmsg_into�s ��!�#'�)-���#8�9�	9r1c�p�|j�|j�|jj�Sy�Nr)r0r�r�r�s r/r�zSSLSocket.pending�s.�������<�<�#��<�<�'�'�)�)�r1c�R��|j�d|_t�|�
|�yr�)r0r�rr�)r0�howrs  �r/r�zSSLSocket.shutdowns#����������
����r1c��|jr#|jj�}d|_|Stdt|�z���NzNo SSL wrapper around )r�r�r�r5)r0�ss  r/r�zSSLSocket.unwraps<���<�<����%�%�'�A��D�L��H��5��D�	�A�B�Br1c�|�|jr|jj�Stdt|�z��re)r�r�r�r5r�s r/r�z&SSLSocket.verify_client_post_handshakes1���<�<��<�<�<�<�>�>��5��D�	�A�B�Br1c�0��d|_t�|�	�yr�)r�r�_real_closerzs �r/rizSSLSocket._real_closes������
���r1c��|j�|j�}	|dk(r|r|jd�|jj	�|j|�y#|j|�wxYw)Nr
)r2r
rr�r�)r0�blockr&s   r/r�zSSLSocket.do_handshake s]�������/�/�#��	%��#�~�%�����%��L�L�%�%�'��O�O�G�$��D�O�O�G�$�s�2A&�&A9c���|jrtd��|js|j�td��|jj|d|j||j��|_	|rt�|�%|�}nd}t�|�)|�|s#d|_|jr|j�|S#ttf$r	d|_�wxYw)Nz!can't connect in server-side modez/attempt to connect already-connected SSLSocket!Fr	T)r;r�rr�r?rr>rr�
connect_ex�connectr<r�r�)r0r�rm�rcrs    �r/�
_real_connectzSSLSocket._real_connect+s��������@�A�A��?�?�d�l�l�6��N�O�O��|�|�0�0��%��-�-���
�
�1�
���
	���W�'��-��������%��"&����/�/��%�%�'��I����$�	��D�L��	�s
�6A	C�Cc�*�	|j|d�y)NF�rp�r0r�s  r/rnzSSLSocket.connectEs��	����4��'r1c�(�	|j|d�Sr�rrrss  r/rmzSSLSocket.connect_exJs��	��!�!�$��-�-r1c���	t�|��\}}|jj||j|j
d��}||fS)NT)r<r=r;)r�acceptr?rCr<r=)r0�newsockr�rs   �r/rvzSSLSocket.acceptOsV���	>����(�
����,�,�*�*�7�,0�,H�,H�)-�)B�)B� $�+�&����}�r1c��|j�|jj|�S|tvrtdj	|���y)Nz({0} channel binding type not implemented)r�r��CHANNEL_BINDING_TYPESr�r�r�s  r/r�zSSLSocket.get_channel_binding[sJ���<�<�#��<�<�3�3�G�<�<��3�3� �>�E�E�g�N���r1c�P�|j�|jj�Syr�r�r�s r/r�zSSLSocket.versionfs"���<�<�#��<�<�'�'�)�)�r1)FTTNNNr�r�r�)r)rN)r�rrar�)/rErFrGr�rrBr�rr?r�r@r�r-r0r2r�r�r�r�r�r�r�r�r>r@rDrIrOrrWrYr[r]r_r�r�r�r�rir�rprnrmrvr�r�rrs@r/rr�s���;�
��FJ�;?�&*�\��\�|������
�^�^�#��#���(���(�
�^�^�+��+�
��/���/�;�
���*(��5��5�
�����9��9��)��)��1��1��.��.�	-�=�2�0� 9�	/�<�&3�@�2�9������
�C��C��C��C���%��%��4(�
.�

��������r1rc���	ddlm}ddlm}d}d}	|j	|ddj��dz}||dd|�}||d|f|dd	z�S#t$rt
d
|�d|�d���wxYw)
Nr)�strptime)�timegm)�Jan�Feb�Mar�Apr�May�Jun�Jul�Aug�Sep�Oct�Nov�Decz %d %H:%M:%S %Y GMTr�r�r�r�z
time data z does not match format "%b�")�timer|�calendarr}�index�titler�)�	cert_timer|r}�months�time_format�month_number�tts       r/�cert_time_to_secondsr�us�������F�(�K�
7��|�|�I�b�q�M�$7�$7�$9�:�Q�>���i���m�[�
1���r�!�u�l�+�b��1�g�5�6�6���F��-6��E�F�	F�F�s�%A�A3z-----BEGIN CERTIFICATE-----z-----END CERTIFICATE-----c��	ttj|�dd�}tg}|t	dt|�d�D�cgc]
}|||dz��c}z
}|j
tdz�dj|�Scc}w)N�ASCII�strictr�@�
)	r5�base64�standard_b64encode�
PEM_HEADER�rangerOrP�
PEM_FOOTER�join)�der_cert_bytes�f�ss�is    r/�DER_cert_to_PEM_certr��s��&�	�F�%�%�n�5�w��I�A�
��B��e�A�s�1�v�r�2�
3�2��1�Q�q��t�9�2�
3�3�B��I�I�j�4�� ��9�9�R�=���4s�A?c�b�	|jt�stdtz��|j�j	t
�stdt
z��|j�t
t�t
t
�}tj|jdd��S)Nz(Invalid PEM encoding; must start with %sz&Invalid PEM encoding; must end with %sr�r�)
r,r�r��strip�endswithr�rOr��decodebytesr6)�pem_cert_string�ds  r/�PEM_cert_to_DER_certr��s���4��%�%�j�1��C�%�&�'�	'�� � �"�+�+�J�7��A�%�&�'�	'������J���Z��0@�A�A����a�h�h�w��9�:�:r1c�(�	|\}}|�t}nt}t|||��}t||��5}|j	||��5}	|	jd�}
ddd�ddd�t

�S#1swY�xYw#1swYt

�SxYw)N)r�r)r&)r>T)r�r��_create_stdlib_contextr�rCr�r�)r��ssl_version�ca_certsr&�host�portr�r?r:�sslsock�dercerts           r/�get_server_certificater��s�����J�D�$���!�	��	�$�[�/8�,4�6�G�
�4��	1�T�
�
 �
 ��t�
 �
<���)�)�$�/�G�=�
2� ��(�(�=�
<��
2� ��(�(�s#�A>�A2�A>�2A;	�7A>�>Bc�.�tj|d�S)Nz	<unknown>)�_PROTOCOL_NAMESr)�
protocol_codes r/�get_protocol_namer��s�����}�k�:�:r1r�)lrsr�collectionsr�enumr�_Enumr�_IntEnumr�_IntFlagrrHrr	r
rrr
rrrrrrrrrrrrrrr�ImportErrorrrrrrr r!r"r#r$r%r&�	_convert_rEr'r,r*�__members__�itemsr�r��_SSLv2_IF_EXISTSrDrYrgr�rtr�r�r�r�r�r�r�r�r�r�rr)r��socket_errorryr��HAS_NEVER_CHECK_COMMON_NAME�_RESTRICTED_SERVER_CIPHERSr�r�r�r�r�rrrr#r r�r�r��_create_default_https_contextr�r�rrrArEr�r�r�r�r�r�r�r�)r.r�s00r/�<module>r�sa��X�t�	�"�H�H���N�N�3�3����:�2�2�	�����8������(�K���
����
�x�'���
������6���
�����h�.���
�����8�+���
�����(�)���
0:�/F�/F�F��*�,�2<�2H�2H�2N�2N�2P�Q�2P�;�4��5�$�;�2P�Q���:�'7��>���h��5�5��5��h�������h��&"�&"��&"�R�h�� � �� �:�<�<�7��1�9�9�?�?��
�����%���%�d�,J�K��.��+��.>�b D�F	� � 4����&�@�*�]�,H�I�@�*&�k�5�&�AG��AG�H$+�#6�#6�$�$�"&�t�$�L4�9�*/��9L�9L�$(�$�"&�t�D�4�n!7��4��X;�X;�v�|��|�@'�
��&�
��
7�<+�
�
(�
��;�.A�$(�2I�)�,;��g*�	��	��TRs�J%�=
J1�%J.�-J.

Youez - 2016 - github.com/yon3zu
LinuXploit