����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 : 172.67.215.126  /  Your IP : 108.162.242.52
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ip-172-31-19-221 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.1.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/self/root/usr/lib/python3.10/test/support/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/usr/lib/python3.10/test/support/__pycache__/__init__.cpython-310.pyc
o

}�5h��@s�dZedkr
ed��ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZzddlmZWneyOdZYnwgd�Zd	Zejd
krcdejvrcdZnejd
krjdZdZdZdZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�dej�Zdd�Z dd�Z!dd �Z"dZ#dZ$da%da&dZ'd!Z(da)d"d#�Z*d$d%�Z+d&d'�Z,d(d)�Z-d*d+�Z.�dd,d-�Z/d.d/�Z0d0d1�Z1d2d3�Z2d4d5�Z3d!d!d!d6�d7d8�Z4�dd!d!d!d6�d9d:�Z5d;d<�Z6d=Z7d>Z8e�9e:�;d?��<d@�dA�Z=�d	dCdD�Z>�d
dFdG�Z?�ddIdJ�Z@�ddLdM�ZAe�9edN�ZBej�<dO�ZCeDedP�ZEejdQv�r<eE�r9dRndSZFndZFdTZGd!ZHd!ZIejJ�KejJ�LeM��ZNejJ�KeN�ZOejJ�PeOdU�ZQdVdW�ZR�ddXdY�ZSdZd[�ZT�d
ddd]�d^d_�ZUd`da�ZVejWdbdc��ZXddde�ZYdfdg�ZZdhdi�Z[djdk�Z\ejWdldm��Z]dndo�Z^dpZ_dqZ`eDedr��r�dse_Z_dtZ`e_duZadvdw�Zbdxdy�ZcdzZdd{Zed|d}�ZfejWd~d��Zgd�d��Zhd�Zid�eiZjd�ejZkd�ejZlejmZnd�d��ZoGd�d��d��Zp�dd�d��Zqd�d��ZrGd�d��d��Zsd�d��Ztd�d��Zud�d��Zv�dd�d��Zwd�d��Zxd�d��Zyd�d��Zzd�d��Z{d�d��Z|d�d��Z}da~dada�d�d��Z�d�d��Z��dd�d��Z�d�d��Z�d�d��Z�d�d��Z�ey��oNejd
k�oNe	��d��Z�e�jdu�oWe�Z�e�9e�d��Z��dd�d��Z�d�d��Z�d!a�d�d��Z�ejWd�d���Z�ejWd�d���Z�d�d��Z�d�d��Z�Gd�d„d�e��Z�da�d�dĄZ�Gd�dƄdƃZ�d�dȄZ�d�dʜd�d̄Z�	�	ɐdd�d΄Z��dd�dЄZ�Gd�d҄d҃Z�d�dԄZ�ejWd�dք�Z�d�d؄Z��dd�dڄZ�gfd�d܄Z�da�d�dބZ�ejWd�d��Z�Gd�d�d�Z�d�d�Z�Gd�d�d�Z�e��Z�Gd�d�d�Z�e��Z�ej�Gd�d�d��Z�e��Z�ej�Gd�d�d��Z�e��Z�d�d�Z�ej�j�Z�e�d�v�s)J�d�d�Z�Gd�d�d�Z�dd�d�d��Z�d�d��Z�ejW�dd�d���Z�d�d��Z�d�e�d�e��de�f�d�d�Z��de��ddf�d�d�Z�ejW�d�d��Z�dS(z7Supporting definitions for the Python regression tests.ztest.supportz.support must be imported from the test package�N�)�get_test_runner)�unicode_legacy_string)B�
PIPE_MAX_SIZE�verbose�
max_memuse�
use_resources�failfast�Error�
TestFailed�
TestDidNotRun�ResourceDenied�record_original_stdout�get_original_stdout�captured_stdout�captured_stdin�captured_stderr�is_resource_enabled�requires�requires_freebsd_version�requires_linux_version�requires_mac_ver�check_syntax_error�BasicTestRunner�run_unittest�run_doctest�
requires_gzip�requires_bz2�
requires_lzma�
bigmemtest�bigaddrspacetest�cpython_only�
get_attribute�requires_IEEE_754�
requires_zlib�anticipate_failure�load_package_tests�detect_api_mismatch�check__all__�skip_if_buggy_ucrt_strfptime�check_disallow_instantiation�check_sanitizer�skip_if_sanitizer�	is_jython�
is_android�check_impl_detail�
unix_shell�setswitchinterval�open_urlresource�
reap_children�run_with_locale�	swap_item�findfile�	swap_attr�Matcher�set_memlimit�SuppressCrashReport�sortdict�run_with_tz�PGO�missing_compiler_executable�	ALWAYS_EQ�NEVER_EQ�LARGEST�SMALLEST�LOOPBACK_TIMEOUT�INTERNET_TIMEOUT�
SHORT_TIMEOUT�LONG_TIMEOUTg@�win32z
 32 bit (ARM)�
�vxworksgN@g>@g�r@c@�eZdZdZdS)r
z*Base class for regression test exceptions.N��__name__�
__module__�__qualname__�__doc__�rPrP�,/usr/lib/python3.10/test/support/__init__.pyr
g�r
c@rJ)r�Test failed.NrKrPrPrPrQrjrRrcs(eZdZdZ�fdd�Zdd�Z�ZS)�TestFailedWithDetailsrScs&||_||_||_t��|||�dS�N)�msg�errors�failures�super�__init__)�selfrVrWrX��	__class__rPrQrZoszTestFailedWithDetails.__init__cCs|jSrU)rV�r[rPrPrQ�__str__uszTestFailedWithDetails.__str__)rLrMrNrOrZr_�
__classcell__rPrPr\rQrTmsrTc@rJ)rzTest did not run any subtests.NrKrPrPrPrQrxrRrc@rJ)r
z�Test skipped because it requested a disallowed resource.

    This is raised when a test calls requires() for a resource that
    has not be enabled.  It is used to distinguish between expected
    and unexpected skips.
    NrKrPrPrPrQr
{rRr
cCs|rtjSdd�S)z�Decorator to mark a test that is known to be broken in some cases

       Any use of this decorator should have a comment identifying the
       associated tracker issue.
    cS�|SrUrP��frPrPrQ�<lambda>��z$anticipate_failure.<locals>.<lambda>)�unittest�expectedFailure)�	conditionrPrPrQr%�sr%cCsF|durd}tj�tj�tj�t���}|j|||d�}|�|�|S)z�Generic load_tests implementation for simple test packages.

    Most packages can implement load_tests using this function as follows:

       def load_tests(*args):
           return load_package_tests(os.path.dirname(__file__), *args)
    Nztest*)�	start_dir�
top_level_dir�pattern)�os�path�dirname�__file__�discover�addTests)�pkg_dir�loader�standard_testsrk�top_dir�
package_testsrPrPrQr&�s
���
r&cCs2zt||�}W|Styt�d||f��w)z?Get an attribute, raising SkipTest if AttributeError is raised.zobject %r has no attribute %r)�getattr�AttributeErrorrf�SkipTest)�obj�name�	attributerPrPrQr"�s��r"FcCs|adSrU)�_original_stdout)�stdoutrPrPrQr�srcCs
tptjSrU)r}�sysr~rPrPrPrQr��
rc
Gstz||�WSty9}z(tdkr$td|jj|f�td|j|f�t�|tj�||�WYd}~Sd}~ww)N�z%s: %szre-run %s%r)	�OSErrorr�printr]rLrl�chmod�stat�S_IRWXU)rm�func�args�errrPrPrQ�
_force_run�s
��r�c
sttd�rtjSddl}d}tj�d�r|��rd}n�tj�d�rpddl�ddl�d}d}G�fdd�d�j	�}�j
j}|��}|sF��
��|�}�j��}|�||��|���|���|��}	|	sf��
��t|j|@�sod}nHtjd	kr�dd
lm}
m�m}m	}ddlm}
|
�|
d��}|��dkr�d
}n!G�fdd�d|�}|�}||�}|�|�dks�|�|�dkr�d}|s�zddlm}|�}|� �|�!�|�"�Wn-t#y�}z!t$|�}t%|�dkr�|dd�d}d�&t'|�j(|�}WYd}~nd}~ww|t_)|t_tjS)N�resultr�winz(gui is not available on Windows IoT Corercs.eZdZd�jjfd�jjfd�jjfgZdS)z*_is_gui_available.<locals>.USEROBJECTFLAGS�fInherit�	fReserved�dwFlagsN)rLrMrN�wintypes�BOOL�DWORD�_fields_rP)�ctypesrPrQ�USEROBJECTFLAGS�s



�r�z,gui not available (WSF_VISIBLE flag not set)�darwin)�cdll�c_int�pointer�	Structure)�find_library�ApplicationServicesz0gui tests cannot run without OS X window managercseZdZd�fd�fgZdS)z._is_gui_available.<locals>.ProcessSerialNumber�
highLongOfPSN�lowLongOfPSNN)rLrMrNr�rP)r�rPrQ�ProcessSerialNumber�s�r�z#cannot run without OS X gui process)�Tk�2z [...]zTk unavailable due to {}: {})*�hasattr�_is_gui_availabler��platformr�
startswith�win32_is_iotr��ctypes.wintypesr��windll�user32�GetProcessWindowStation�WinErrorr�r��GetUserObjectInformationW�byref�sizeof�boolr�r�r�r��ctypes.utilr��LoadLibrary�CGMainDisplayID�GetCurrentProcess�SetFrontProcess�tkinterr��withdraw�update�destroy�	Exception�str�len�format�typerL�reason)r�r��	UOI_FLAGS�WSF_VISIBLEr��dll�h�uof�needed�resr�r�r�r��app_servicesr��psn�psn_pr��root�e�
err_stringrP)r�r�rQr��sx

��
���r�cCstdup|tvS)z�Test whether a resource is enabled.

    Known resources are set by regrtest.py.  If not running under regrtest.py,
    all resources are assumed enabled unless use_resources has been set.
    N)r��resourcerPrPrQrsrcCs@t|�s|durd|}t|��|dkrt�sttj��dSdS)z@Raise ResourceDenied if the specified resource is not available.Nz"Use of the %r resource not enabled�gui)rr
r�r�)r�rVrPrPrQrs
�rcCs�ddl}d�tt|��}|���dd�d}|��|kr9zttt|�d���}Wnt	y3d}Ynw||k}nd}t
�||�d|�d|���S)	z�Decorator raising SkipTest if the OS is `sysname` and the version is less
    than `min_version`.

    For example, @_requires_unix_version('FreeBSD', (7, 2)) raises SkipTest if
    the FreeBSD version is less than 7.2.
    rN�.�-rFz	 version z or higher required, not )r��join�mapr��release�split�system�tuple�int�
ValueErrorrf�skipIf)�sysname�min_versionr��min_version_txt�version_txt�version�skiprPrPrQ�_requires_unix_version(s"�
��r�cG�
td|�S)z�Decorator raising SkipTest if the OS is FreeBSD and the FreeBSD version is
    less than `min_version`.

    For example, @requires_freebsd_version(7, 2) raises SkipTest if the FreeBSD
    version is less than 7.2.
    �FreeBSD�r��r�rPrPrQrC�
rcGr�)z�Decorator raising SkipTest if the OS is Linux and the Linux version is
    less than `min_version`.

    For example, @requires_linux_version(2, 6, 32) raises SkipTest if the Linux
    version is less than 2.6.32.
    �Linuxr�r�rPrPrQrLr�rc��fdd�}|S)z�Decorator raising SkipTest if the OS is Mac OS X and the OS X
    version if less than min_version.

    For example, @requires_mac_ver(10, 5) raises SkipTest if the OS X version
    is lesser than 10.5.
    cs"t�����fdd��}�|_|S)Ncs�tjdkr:ddl}|��d}zttt|�d���}Wn	ty$Ynw|�kr:d�tt	���}t
�d||f���|i|��S)Nr�rr�z&Mac OS X %s or higher required, not %s)rr��mac_verr�r�r�r�r�r�r�rfry)r��kwr�r�r�r�)r�r�rPrQ�wrapper]s 
���z4requires_mac_ver.<locals>.decorator.<locals>.wrapper)�	functools�wrapsr��r�r�r��r�rQ�	decorator\sz#requires_mac_ver.<locals>.decoratorrP)r�r�rPr�rQrUsr��address�memory�ubcCsx|s
|s
|s
td��t�d�pd}t�d�pd}d|vpd|v}d|vp'd|v}d|vp/d	|v}|r4|p;|o7|p;|o;|S)
z9Returns True if Python is compiled with sanitizer supportz3At least one of address, memory, or ub must be True�CFLAGS��CONFIG_ARGSz-fsanitize=memoryz--with-memory-sanitizerz-fsanitize=addressz-fsanitize=undefinedz#--with-undefined-behavior-sanitizer)r��	sysconfig�get_config_var)r�r�r��_cflags�_config_args�memory_sanitizer�address_sanitizer�ub_sanitizerrPrPrQr+rs$�����r+cCs"|sd}t|||d�}t�||�S)z>Decorator raising SkipTest if running with a sanitizer active.z"not working with sanitizers activer�)r+rfr�)r�r�r�r�r�rPrPrQr,�sr,cst����fdd��}|S)z5Skip the test on TLS certificate validation failures.c
sFz
�|i|��WdSty"}zdt|�vrt�d���d}~ww)N�CERTIFICATE_VERIFY_FAILEDz.system does not contain necessary certificates)r�r�rfry)r��kwargsr�rbrPrQ�dec�s
��z&system_must_validate_cert.<locals>.dec)r�r�)rcrrPrbrQ�system_must_validate_cert�sri@i�double�IEEEztest requires IEEE 754 doubles�
requires zlibcC�0zddl}Wntyd}Ynwt�||�S�Nr)�zlib�ImportErrorrf�
skipUnless)r�rrPrPrQr$���r$�
requires gzipcCrr)�gziprrfr	)r�rrPrPrQr�r
r�requires bz2cCrr)�bz2rrfr	)r�rrPrPrQr�r
r�
requires lzmacCrr)�lzmarrfr	)r�rrPrPrQr�r
rzrequires legacy Unicode C API�java�getandroidapilevel)rGrIz/system/bin/shz/bin/shzhttp://www.pythontest.net�datacCsXtjdkrdSddl}d}|�d�}|��\}}t|�|d��t|�td|�dS)zOAssure user that loud errors generated by macOS libc's malloc are
    expected.r�Nrz NOTICE z� may generate "malloc can't allocate region"
warnings on macOS systems. This behavior is known. Do not
report a bug unless tests are also failing. See bpo-40928.r�)rr��shutil�get_terminal_sizer��center)�	test_namerrV�detail�padding�_rPrPrQ�darwin_malloc_err_warning�s

rcCsbtj�|�r|S|durtj�||�}tgtj}|D]}tj�||�}tj�|�r.|Sq|S)a[Try to find a file on sys.path or in the test directory.  If it is not
    found the argument passed to the function is returned (this does not
    necessarily signal failure; could still be the legitimate path).

    Setting *subdir* indicates a relative path to use to find the file
    rather than looking directly in the path directories.
    N)rlrm�isabsr��
TEST_HOME_DIRr�exists)�filename�subdirrm�dn�fnrPrPrQr6sr6cCs,t|���}dd�|D�}d�|�}d|S)z%Like repr(dict), but in sorted order.cSsg|]}d|�qS)z%r: %rrP)�.0�pairrPrPrQ�
<listcomp>szsortdict.<locals>.<listcomp>z, z{%s})�sorted�itemsr�)�dictr'�	reprpairs�
withcommasrPrPrQr;s
r;r�)�lineno�offsetcCs�|�t|��}t|dd�Wd�n1swY|j}|�|j�|dur0|�|j|�|�|j�|durC|�|j|�dSdS)Nz
<test string>�exec)�assertRaisesRegex�SyntaxError�compile�	exception�assertIsNotNoner+�assertEqualr,)�testcase�	statement�errtextr+r,�cmr�rPrPrQrs��rc
s�ddl}ddl}ddlm}zddl}Wntyd}Ynw��dd��|j�|�d�	d�d}t
j�t
|�}���fdd	�}t
j�|�rV||�}	|	durR|	S||�td
�tretd|t�d�|j��}
|rr|
j�d
�|
j|td�}	|r�|	j�d�dkr�|j|	d�}	z,t|d��}|	��}|r�|�|�|	��}|s�Wd�n1s�wYW|	��n|	��w||�}	|	dur�|	Std|��)Nrr)�unlink�checkr��/���csDt|g��Ri���}�dur|S�|�r|�d�|S|��dSr)�open�seek�close)r"rc�r�r9r�rPrQ�check_valid_file8s
z*open_urlresource.<locals>.check_valid_file�urlfetchz	fetching %s ...��file)zAccept-Encodingr��timeoutzContent-Encodingr)�fileobj�wbzinvalid resource %r) �urllib.request�urllib.parse�	os_helperr8rr�pop�parse�urlparser�rlrmr��
TEST_DATA_DIRrrrr�r�request�build_opener�
addheaders�appendr<rD�headers�get�GzipFile�read�writer>r)
�urlr�r��urllibr8rrr"r@rc�opener�out�srPr?rQr2*sP�	

����r2c
csR�ddl}tt|�}tt||���ztt|�VWtt||�dStt||�w)z�Return a context manager used by captured_stdout/stdin/stderr
    that temporarily replaces the sys stream *stream_name* with a StringIO.rN)�iorwr�setattr�StringIO)�stream_namer]�orig_stdoutrPrPrQ�captured_outputas�
rbcC�td�S)z�Capture the output of sys.stdout:

       with captured_stdout() as stdout:
           print("hello")
       self.assertEqual(stdout.getvalue(), "hello\n")
    r~�rbrPrPrPrQrm�rcCrc)z�Capture the output of sys.stderr:

       with captured_stderr() as stderr:
           print("hello", file=sys.stderr)
       self.assertEqual(stderr.getvalue(), "hello\n")
    �stderrrdrPrPrPrQrvrercCrc)a	Capture the input to sys.stdin:

       with captured_stdin() as stdin:
           stdin.write('hello\n')
           stdin.seek(0)
           # call test code that consumes from sys.stdin
           captured = input()
       self.assertEqual(captured, "hello")
    �stdinrdrPrPrPrQrs
rcCs2ddl}|��trt�d�|��|��dS)a�Force as many objects as possible to be collected.

    In non-CPython implementations of Python, this is needed because timely
    deallocation is not guaranteed by the garbage collector.  (Even in CPython
    this can be the case in case of reference cycles.)  This means that __del__
    methods may be called later than expected and weakrefs may remain alive for
    longer than expected.  This function tries its best to force all garbage
    objects to disappear.
    rN皙�����?)�gc�collectr-�time�sleep)rirPrPrQ�
gc_collect�s

rmccsH�ddl}|��}|��zdVW|r|��dSdS|r#|��wwr)ri�	isenabled�disable�enable)ri�have_gcrPrPrQ�
disable_gc�s��
�rrcCs6t�d�pd}d}|��D]	}|�d�r|}q
|dvS)z,Find if Python was built with optimizations.�	PY_CFLAGSr�z-O)r�z-O0z-Og)r�r�r�r�)�cflags�	final_opt�optrPrPrQ�python_is_optimized�s
�rw�nP�0n�
getobjects�2P�0P�ncC�ddl}|�t|t�Sr)�struct�calcsize�_header�_align��fmtrrPrPrQ�calcobjsize��r�cCr~r)rr��_vheaderr�r�rPrPrQ�calcvobjsize�r�r�i@icCspddl}t�|�}t|�tkr|jt@s!t|�tkr&t|�jt@r&||j7}dt|�||f}|�|||�dS)Nrz&wrong size for %s: got %d, expected %d)	�_testinternalcapir�	getsizeofr��	__flags__�_TPFLAGS_HEAPTYPE�_TPFLAGS_HAVE_GC�SIZEOF_PYGC_HEADr3)�test�o�sizer�r�rVrPrPrQ�check_sizeof�s

�r�c
gs��zddl}t||�}|�|�}Wnty�d}}Yn|D]}z	|�||�WnYq$zdVW|rF|rH|�||�dSdSdS|rU|rV|�||�wwwr)�localerw�	setlocalerx)�catstr�localesr��category�orig_locale�locrPrPrQr4�s,�
��r4cr�)Ncs"��fdd�}�j|_�j|_|S)Nc	s�ztj}Wntyt�d��wdtjvrtjd}nd}�tjd<|�z�|i|��W|dur8tjd=n|tjd<t��S|durKtjd=n|tjd<t��w)Nztzset required�TZ)rk�tzsetrxrfryrl�environ)r��kwdsr��orig_tz)r��tzrPrQ�inner�s(

�




�


z-run_with_tz.<locals>.decorator.<locals>.inner)rLrO)r�r��r�r�rQr��szrun_with_tz.<locals>.decoratorrP)r�r�rPr�rQr<�sr<i�r��cCs�dttdtd�}t�d|tjtjB�}|durtd|f��tt|�	d��||�	d��
��}|a|tkr9t}|t
dkrFtd|f��|adS)Nr�)�k�m�g�tz(\d+(\.\d+)?) (K|M|G|T)b?$zInvalid memory limit %rr�z$Memory limit %r too low to be useful)�_1M�_1G�re�match�
IGNORECASE�VERBOSEr�r��float�group�lower�real_max_memuse�MAX_Py_ssize_t�_2Gr)�limit�sizesr��memlimitrPrPrQr9s"�
�$r9c@�(eZdZdZdd�Zdd�Zdd�ZdS)	�_MemoryWatchdogz`An object which periodically watches the process' memory consumption
    and prints it out.
    cCsdjt��d�|_d|_dS)Nz/proc/{pid}/statm)�pidF)r�rl�getpid�procfile�startedr^rPrPrQrZ7s
z_MemoryWatchdog.__init__c
Cs�ddl}zt|jd�}Wn!ty-}z|�d�|�t�tj�	�WYd}~dSd}~wwddl
}|�td�}|jtj
|g||jd�|_Wd�n1sPwYd|_dS)Nr�rz!/proc not available for stats: {}zmemory_watchdog.py)rgrfT)�warningsr<r�r��warnr��RuntimeWarningrrf�flush�
subprocessr6�Popen�
executable�DEVNULL�mem_watchdogr�)r[r�rcr�r��watchdog_scriptrPrPrQ�start;s(�
��
��
z_MemoryWatchdog.startcCs"|jr|j��|j��dSdSrU)r�r��	terminate�waitr^rPrPrQ�stopMs
�z_MemoryWatchdog.stopN)rLrMrNrOrZr�r�rPrPrPrQr�2s
r�Tcs���fdd�}|S)atDecorator for bigmem tests.

    'size' is a requested size for the test (in arbitrary, test-interpreted
    units.) 'memuse' is the number of bytes per unit for the test, or a good
    estimate of it. For example, a test that needs two byte buffers, of 4 GiB
    each, could be decorated with @bigmemtest(size=_4G, memuse=2).

    The 'size' argument is normally passed to the decorated test method as an
    extra argument. If 'dry_run' is true, the value passed to the test method
    may be less than the requested value. If 'dry_run' is false, it means the
    test doesn't support dummy runs when -M is not specified.
    cs ���fdd����_��_�S)Ncs��j}�j}tsd}n|}ts�s"t||kr"t�d||d��tr=tr=t�tdj||dd��t�}|�	�nd}z
�||�W|rL|�
�SS|rT|�
�ww)Ni�'not enough memory: %.1fG minimum needed�@z* ... expected peak memory use: {peak:.1f}G)�peak)r��memuser�rfryrr�r�r�r�r�)r[r�r��maxsize�watchdog)�dry_runrcr�rPrQr�as6
���


�
�z.bigmemtest.<locals>.decorator.<locals>.wrapper)r�r�rb�r�r�r��rcr�rQr�`szbigmemtest.<locals>.decoratorrP)r�r�r�r�rPr�rQrSs
!rcr�)z0Decorator for tests that fill the address space.cs<ttkrtdkrtdkrt�d��t�dtd���|�S)Nl����lz-not enough memory: try a 32-bit build insteadr�r�)rr�rfryr^rbrPrQr��s���z!bigaddrspacetest.<locals>.wrapperrPr�rPrbrQr �sr c@seZdZdd�ZdS)rcCst��}||�|SrU)rf�
TestResult)r[r�r�rPrPrQ�run��zBasicTestRunner.runN)rLrMrNr�rPrPrPrQr�srcCrarUrP)rzrPrPrQ�_id��r�cCs6|dkr
t�s
t�tj�St|�rtSt�d�|��S)Nr�zresource {0!r} is not enabled)r�rfr�r�rr�r�r�rPrPrQ�requires_resource�s
r�cCstdd�|�S)z9
    Decorator for tests only applicable on CPython.
    T)�cpython)�impl_detail�r�rPrPrQr!�sr!cKsZtdi|��r	tS|dur(t|�\}}|rd}nd}t|���}|�d�|��}t�|�S)Nz*implementation detail not available on {0}z%implementation detail specific to {0}z or rP)	r/r��
_parse_guardsr&�keysr�r�rfr�)rV�guards�
guardnames�defaultrPrPrQr��s
r�cCsH|sddidfSt|���d}t|���|gt|�ksJ�||fS)Nr�TFr)�list�valuesr�)r��is_truerPrPrQr��s

r�cKst|�\}}|�tjj|�S)a5This function returns True or False depending on the host platform.
       Examples:
          if check_impl_detail():               # only on CPython (default)
          if check_impl_detail(jython=True):    # only on Jython
          if check_impl_detail(cpython=False):  # everywhere except on CPython
    )r�rTr�implementationr{)r�r�rPrPrQr/�sr/cs(ttd�s�St����fdd��}|S)zEDecorator to temporarily turn off tracing for the duration of a test.�gettracec	s:t��}zt�d��|i|��Wt�|�St�|�wrU)rr��settrace)r�r��original_tracer�rPrQr��s

zno_tracing.<locals>.wrapper)r�rr�r�r�rPr�rQ�
no_tracing�s

r�cCstt|��S)aDecorator for tests which involve reference counting.

    To start, the decorator does not run the test if is not run by CPython.
    After that, any trace function is unset during the test to prevent
    unexpected refcounts caused by the trace function.

    )r�r!r�rPrPrQ�
refcount_test�sr�cCsNg}|jD]}t|tj�rt||�|�|�q||�r!|�|�q||_dS)z>Recursively filter test cases in a suite based on a predicate.N)�_tests�
isinstancerf�	TestSuite�
_filter_suiterR)�suite�pred�newtestsr�rPrPrQr��s


�
r�cCs�ttjttdud�}|�|�}tdurt�|���|js"|j	s"t
�|��sht|j
�dkr8|js8|j
dd}nt|j�dkrJ|j
sJ|jdd}nd}tsR|d7}dd�|j
D�}d	d�|jD�}t|||��dS)
z2Run tests from a unittest.TestSuite-derived class.N)�	verbosity�capture_outputrrzmultiple errors occurredz!; run in verbose mode for detailscS�g|]
\}}t|�|f�qSrP�r��r#�tc�exc_strrPrPrQr%
�z_run_suite.<locals>.<listcomp>cSr�rPr�r�rPrPrQr%r�)rrr~r�junit_xml_listr�rR�get_xml_element�testsRun�skippedr�
wasSuccessfulr�rWrXrT)r��runnerr�r�rWrXrPrPrQ�
_run_suite�s(�
�rcCstdurdSt|���S�NT)�_match_test_func�idr�rPrPrQ�
match_testsrcCsd|vo
t�d|�S)Nr�z[?*\[\]])r��search)rkrPrPrQ�_is_full_match_testsrcs�|durd}|durd}d��|tkrt|�\}�|tkr$t|�\}�t|�at|�a�dus4�dur?��fdd�}|adSdS)NrPcs*d}d}�r
�|�}�r�|�}|o|S)NTFrP)�test_id�accept�ignore��accept_func�ignore_funcrPrQ�match_function=s
z'set_match_tests.<locals>.match_function)�_accept_test_patterns�_compile_match_function�_ignore_test_patternsr�r)�accept_patterns�ignore_patternsrrPrrQ�set_match_tests(s	�rcsr|s
d}d}||fSttt|��rt|�j}||fSddl}d�t|j|��}t�	|�j
��fdd�}|}||fS)NrPr�|cs �|�rdStt�|�d���S)NTr�)�anyr�r�)r	��regex_matchrPrQ�match_test_regexYsz1_compile_match_function.<locals>.match_test_regex)�allr�r�set�__contains__�fnmatchr��	translater�r0r�)�patternsr�r�regexrrPrrQrIs�
�rcGs�tjtjf}t��}|D]/}t|t�r(|tjvr$|�t�tj|��qt	d��t||�r3|�|�q|�t�
|��qt|t�t
|�dS)z1Run tests from unittest.TestCase-derived classes.z)str arguments must be keys in sys.modulesN)rfr��TestCaser�r�r�modules�addTest�
findTestCasesr��	makeSuiter�rr)�classes�valid_typesr��clsrPrPrQris



rcC�dS)z,Just used to check if docstrings are enabledNrPrPrPrPrQ�_check_docstrings�rer+�WITH_DOC_STRINGSztest requires docstringscCs`ddl}|durt}nd}|j|||d�\}}|r!td||f��tr,td|j|f�||fS)aRun doctest on the given module.  Return (#failures, #tests).

    If optional argument verbosity is not specified (or is None), pass
    support's belief about verbosity on to doctest.  Else doctest's
    usual behavior is used (it searches sys.argv for -v).
    rN)r�optionflagsz%d of %d doctests failedz,doctest (%s) ... %d tests with zero failures)�doctestr�testmodrr�rL)�moduler�r-r.rcr�rPrPrQr�s�rcCs(|��D]
}td|��tjdd�qdS)NzWarning -- T)rCr�)�
splitlinesr�r�
__stderr__)rV�linerPrPrQ�
print_warning�s�r4cCsfttd�r
ttd�sdS	zt�dtj�\}}Wn
ty"YdSw|dkr)dStd|���daq
)z�Use this function at the end of test_main() whenever sub-processes
    are started.  This will help ensure that no extra children (zombies)
    stick around to hog resources and create problems when looking
    for refleaks.
    �waitpid�WNOHANGNTr;rz%reap_children() reaped child process )r�rlr5r6r�r4�environment_altered)r��statusrPrPrQr3�s	��r3c
cs��t||�r%t||�}t|||�z|VWt|||�dSt|||�wt|||�zdVWt||�r<t||�dSdSt||�rIt||�ww)a�Temporary swap out an attribute with a new object.

    Usage:
        with swap_attr(obj, "attr", 5):
            ...

        This will set obj.attr to 5 for the duration of the with: block,
        restoring the old value at the end of the block. If `attr` doesn't
        exist on `obj`, it will be created and then deleted at the end of the
        block.

        The old value (or None if it doesn't exist) will be assigned to the
        target of the "as" clause, if there is one.
    N)r�rwr^�delattr)rz�attr�new_val�real_valrPrPrQr7�s�


��r7c	csr�||vr||}|||<z
|VW|||<dS|||<w|||<zdVW||vr/||=dSdS||vr8||=w)a�Temporary swap out an item with a new object.

    Usage:
        with swap_item(obj, "item", 5):
            ...

        This will set obj["item"] to 5 for the duration of the with: block,
        restoring the old value at the end of the block. If `item` doesn't
        exist on `obj`, it will be created and then deleted at the end of the
        block.

        The old value (or None if it doesn't exist) will be assigned to the
        target of the "as" clause, if there is one.
    NrP)rz�itemr;r<rPrPrQr5�s�
�r5cC�ddl}|��S)znReturn a list of command-line arguments reproducing the current
    settings in sys.flags and sys.warnoptions.rN)r��_args_from_interpreter_flags�r�rPrPrQ�args_from_interpreter_flags�rAcCr>)zgReturn a list of command-line arguments reproducing the current
    optimization settings in sys.flags.rN)r��"_optim_args_from_interpreter_flagsr@rPrPrQ�!optim_args_from_interpreter_flagsrBrDc@� eZdZdZdd�Zdd�ZdS)r8)rV�messagecKs<d}|D]}||}|�|�}|�|||�sd}|Sq|S)a.
        Try to match a single dict with the supplied arguments.

        Keys whose values are strings and which are in self._partial_matches
        will be checked for partial (i.e. substring) matches. You can extend
        this scheme to (for example) do regular expression matching, etc.
        TF)rT�match_value)r[�dr�r�r��v�dvrPrPrQ�matches&s
�zMatcher.matchescCsLt|�t|�krd}|St|�tus||jvr||k}|S|�|�dk}|S)zT
        Try to match a single stored value (dv) with a supplied value (v).
        Fr)r�r��_partial_matches�find)r[r�rJrIr�rPrPrQrG7s��zMatcher.match_valueN)rLrMrNrLrKrGrPrPrPrQr8"sr8cCsXddl}tdur!tjdkr|��ddkrt��jdkrdandatr*t�	d	�|�S|S)
a-
    Skip decorator for tests that use buggy strptime/strftime

    If the UCRT bugs are present time.localtime().tm_zone will be
    an empty string, otherwise we assume the UCRT bugs are fixed

    See bpo-37552 [Windows] strptime/strftime return invalid
    results with UCRT version 17763.615
    rNrGr�cp65001r�TFz!buggy MSVC UCRT strptime/strftime)
r��_buggy_ucrtrr��getdefaultlocalerk�	localtime�tm_zonerfr�)r�r�rPrPrQr)Es

r)c@sjeZdZdZddd�Zejdkrdd�Zndd�Zd	d
�Zdd�Z	d
d�Z
dd�dd�Zdd�dd�ZdS)�
PythonSymlinkz3Creates a symlink for the current Python executableNcCsLddlm}|p
tj�|�|_g|_tj�tj	�|_
g|_d|_|�
�dS)Nr)�TESTFN)rJrTrlrm�abspath�link�_linked�realpathrr��real�
_also_link�_env�_platform_specific)r[rVrTrPrPrQrZ\szPythonSymlink.__init__rGc
Csddl}ddl}tj�|j�rtj�|j�s|�d�|_|�tj	�}tj�
|�}tj�
|j�}|j�
|tj�|tj�|��f�|�tj�|�|�d��D]}|j�
|tj�|tj�|��f�qMdd�tjD�|_tj�
|j�|jd<t�d�r�tj�
tj�|jd<dSdS)Nrzvcruntime*.dllcSsi|]
}|��t�|��qSrP)�upperrl�getenv)r#r�rPrPrQ�
<dictcomp>r�z4PythonSymlink._platform_specific.<locals>.<dictcomp>�
PYTHONHOMET�
PYTHONPATH)�glob�_winapirlrm�lexistsrYr�GetModuleFileNamer�	dllhandlernrVrZrRr��basename�escaper�r[r��is_python_buildro)r[rbrcr��src_dir�dest_dir�runtimerPrPrQr\is*��
�z PythonSymlink._platform_specificcCsdSrUrPr^rPrPrQr\�r�cCsJt�|j|j�|j�|j�|jD]\}}t�||�|j�|�q|SrU)rl�symlinkrYrVrWrRrZ)r[rYrVrPrPrQ�	__enter__�szPythonSymlink.__enter__cCsV|jD]%}zt�|�Wqty(}ztrtd�||��WYd}~qd}~wwdS)Nzfailed to clean up {}: {})rWrl�remove�IOErrorrr�r�)r[�exc_type�	exc_value�exc_tbrV�exrPrPrQ�__exit__�s
���zPythonSymlink.__exit__c	Csxddl}|g|�}|j||j|j|d�}|��}|j|kr:tr2tt|d��tt|d�tj	d�t
d�|j���|S)Nr)r~rf�envrrBz'unexpected return code: {0} (0x{0:08X}))r�r��PIPE�communicate�
returncoderr��reprrrf�RuntimeErrorr�)	r[�pythonr�rvryr��cmd�pr�rPrPrQ�_call�s

�

�zPythonSymlink._callr)rycGs|�|j|d|�SrU)rrY�r[ryr�rPrPrQ�	call_real�szPythonSymlink.call_realcGs|�|j||j|�SrU)rrVr[r�rPrPrQ�	call_link�szPythonSymlink.call_linkrU)
rLrMrNrOrZrr�r\rnrurr�r�rPrPrPrQrSZs


rScCs$tpt}d}|r|St�|�|�S)z;Skip decorator for tests not run in (non-extended) PGO taskz#Not run for (non-extended) PGO task)r=�PGO_EXTENDEDrfr�)r��okrVrPrPrQ�skip_if_pgo_task�s
r�rP)rcCs>tt|��tt|��}|r|t|�8}tdd�|D��}|S)aReturns the set of items in ref_api not in other_api, except for a
    defined list of items to be ignored in this check.

    By default this skips private attributes beginning with '_' but
    includes all magic methods, i.e. those starting and ending in '__'.
    css(�|]}|�d�r|�d�r|VqdS)r�__N)r��endswith)r#r�rPrPrQ�	<genexpr>�s���z&detect_api_mismatch.<locals>.<genexpr>)r�dir)�ref_api�	other_apir�
missing_itemsrPrPrQr'�s
r'cCs�|dur	|jf}nt|t�r|f}t|�}t|�D])}|�d�s$||vr%qt||�}t|dd�|vs=t|d�sBt|tj	�sB|�
|�q|�|j|�dS)a)Assert that the __all__ variable of 'module' contains all public names.

    The module's public names (its API) are detected automatically based on
    whether they match the public name convention and were defined in
    'module'.

    The 'name_of_module' argument can specify (as a string or tuple thereof)
    what module(s) an API could be defined in in order to be detected as a
    public API. One case for this is when 'module' imports part of its public
    API from other modules, possibly a C backend (like 'csv' and its '_csv').

    The 'extra' argument can be a set of names that wouldn't otherwise be
    automatically detected as "public", like objects without a proper
    '__module__' attribute. If provided, it will be added to the
    automatically detected ones.

    The 'not_exported' argument can be a set of names that must not be treated
    as part of the public API even though their names indicate otherwise.

    Usage:
        import bar
        import foo
        import unittest
        from test import support

        class MiscTestCase(unittest.TestCase):
            def test__all__(self):
                support.check__all__(self, foo)

        class OtherTestCase(unittest.TestCase):
            def test__all__(self):
                extra = {'BAR_CONST', 'FOO_CONST'}
                not_exported = {'baz'}  # Undocumented name.
                # bar imports part of its API from _bar.
                support.check__all__(self, bar, ('bar', '_bar'),
                                     extra=extra, not_exported=not_exported)

    NrrM)
rLr�r�rr�r�rwr��types�
ModuleType�add�assertCountEqual�__all__)�	test_caser0�name_of_module�extra�not_exported�expectedr{rzrPrPrQr(�s")


�
�
�r(cCs�zddl}Wn
tyYdSw|�|j|jB|jB|jB�t|d�rG|j|j	|j
fD]}|r@|�||j�|�
||j�q-|�|d�q-dSdS)Nr�CrtSetReportMode)�msvcrtr�SetErrorMode�SEM_FAILCRITICALERRORS�SEM_NOALIGNMENTFAULTEXCEPT�SEM_NOGPFAULTERRORBOX�SEM_NOOPENFILEERRORBOXr��CRT_WARN�	CRT_ERROR�
CRT_ASSERTr��CRTDBG_MODE_FILE�CrtSetReportFile�CRTDBG_FILE_STDERR)rr�r�rPrPrQ�suppress_msvcrt_asserts�s(����
�r�c@s(eZdZdZdZdZdd�Zdd�ZdS)r:z�Try to prevent a crash report from popping up.

    On Windows, don't display the Windows Error Reporting dialog.  On UNIX,
    disable the creation of coredump file.
    Nc
	Cs�tj�d�rOzddl}Wn
tyYdSw|��|_|�|j|jB�t	|d�rMi|_
|j|j|j
fD]}|�||j�}|�||j�}||f|j
|<q5|Sz	ddl}||_Wntydd|_Ynw|jdur�z|j�|jj�|_|j�|jjd|jdf�Wnttfy�Ynwtjdkr�ddl}gd�}|j||j|jd�}|�|��d}	Wd�n1s�wY|	��d	kr�td
ddd
�|S)z�On Windows, disable Windows Error Reporting dialogs using
        SetErrorMode() and CrtSetReportMode().

        On UNIX, try to save the previous core file size limit, then set
        soft limit to 0.
        r�rNr�rr�)z/usr/bin/defaultsrVzcom.apple.CrashReporter�
DialogType)r~rfs	developerz:this test triggers the Crash Reporter, that is intentionalr�T)�endr�)rr�r�r�r�GetErrorMode�	old_valuer�r�r��	old_modesr�r�r�r�r�r�r�r��	getrlimit�RLIMIT_CORE�	setrlimitr�r�r�r�rwrx�stripr�)
r[r��report_type�old_mode�old_filer�r�r}�procr~rPrPrQrnsh�

���#�

�
��
���zSuppressCrashReport.__enter__c	Gs�|jdurdStj�d�r6ddl}|�|j�|jr2|j��D]\}\}}|�||�|�	||�qdSdS|j
durUz
|j
�|j
j|j�WdSt
tfyTYdSwdS)zARestore Windows ErrorMode or core file behavior to initial value.Nr�r)r�rr�r�r�r�r�r'r�r�r�r�r�r�r�)r[�
ignore_excr�r�r�r�rPrPrQru]s$
�
��zSuppressCrashReport.__exit__)rLrMrNrOr�r�rnrurPrPrPrQr:sBr:c	spt���d�z�j��Wnttfyt��d��Ynwd�����fdd�}|�|�t��|�dS)z�Override 'object_to_patch'.'attr_name' with 'new_value'.

    Also, add a cleanup procedure to 'test_instance' to restore
    'object_to_patch' value for 'attr_name'.
    The 'attr_name' should be a valid attribute for 'object_to_patch'.

    FNTcs"�r
t����dSt���dSrU)r^r9rP��
attr_is_local�	attr_name�object_to_patchr�rPrQ�cleanup�szpatch.<locals>.cleanup)rw�__dict__rx�KeyError�
addCleanupr^)�
test_instancer�r��	new_valuer�rPr�rQ�patchrs

�
r�c
cs6�z|dd�}dVW||dd�<dS||dd�<w)z-Like unittest.mock.patch.dict, but for lists.NrP)�orig�savedrPrPrQ�
patch_list�s
�r�cCsDzddl}Wn	tyYn
w|��rt�d��ddl}|�|�S)zi
    Run code in a subinterpreter. Raise unittest.SkipTest if the tracemalloc
    module is enabled.
    rNzUrun_in_subinterp() cannot be used if tracemalloc module is tracing memory allocations)�tracemallocr�
is_tracingrfry�	_testcapi�run_in_subinterp)�coder�r�rPrPrQr��s�

r�csHG��fdd�d|�}d�|||���|�tt��t�|���dS)NcseZdZ��fdd�ZdS)z%check_free_after_iterating.<locals>.Acs(d�zt��WdStyYdSwr)�next�
StopIterationr^��done�itrPrQ�__del__�s�z-check_free_after_iterating.<locals>.A.__del__N)rLrMrNr�rPr�rPrQ�A�sr�F)�assertRaisesr�r�rm�
assertTrue)r��iterr)r�r�rPr�rQ�check_free_after_iterating�s	r�cCs�ddlm}m}m}m}|��}|�|�|jdkr,z|��Wn|j	y+YdSw|j
D]-}|r8||vr8q/t||�}|rJ|dusIJd|��n|sMq/|�|d�dur\|dSq/dS)a<Check if the compiler components used to build the interpreter exist.

    Check for the existence of the compiler executables whose names are listed
    in 'cmd_names' or all the compiler executables when 'cmd_names' is empty
    and return the first missing executable or None when none is found
    missing.

    r)�	ccompilerr��spawnrW�msvcNz%the '%s' executable is not configured)
�	distutilsr�r�r�rW�new_compiler�customize_compiler�
compiler_type�
initialize�DistutilsPlatformError�executablesrw�find_executable)�	cmd_namesr�r�r�rW�compilerr{r}rPrPrQr>�s.


�


���r>cCsHd}tr||krtdurddl}|�ddg���dkatr|}t�|�S)Ng�h㈵��>r�getpropzro.kernel.qemu�1)r.�_is_android_emulatorr��check_outputr�rr1)�interval�minimum_intervalr�rPrPrQr1�s��
r1c
cs^�ddl}tj��}|��}z|��dVW|r"|j|dd�dSdS|r.|j|dd�ww)NrT)rC�all_threads)�faulthandlerrr2�fileno�
is_enabledrorp)r��fdr�rPrPrQ�disable_faulthandler�s�
��r�c@r�)	�SaveSignalsz�
    Save and restore signal handlers.

    This class is only able to save/restore signal handlers registered
    by the Python signal module: see bpo-13285 for "external" signal
    handlers.
    c	CsZddl}||_|��|_dD]}zt||�}Wn	ty Yqw|j�|�qi|_dS)Nr)�SIGKILL�SIGSTOP)�signal�
valid_signals�signalsrwrxro�handlers)r[r��signame�signumrPrPrQrZs
�
zSaveSignals.__init__cCs0|jD]}|j�|�}|durq||j|<qdSrU)r�r��	getsignalr��r[r��handlerrPrPrQ�saves
�zSaveSignals.savecCs&|j��D]\}}|j�||�qdSrU)r�r'r�r�rPrPrQ�restore)s�zSaveSignals.restoreN)rLrMrNrOrZr�r�rPrPrPrQr�s

r�cCsddl}|jSr)r��
WITH_PYMALLOC)r�rPrPrQ�
with_pymalloc.sr�c@rE)�
_ALWAYS_EQz+
    Object that is equal to anything.
    cCr*rrP�r[�otherrPrPrQ�__eq__7r�z_ALWAYS_EQ.__eq__cCr*�NFrPr�rPrPrQ�__ne__9r�z_ALWAYS_EQ.__ne__N)rLrMrNrOr�r�rPrPrPrQr�3sr�c@r�)	�	_NEVER_EQz/
    Object that is not equal to anything.
    cCr*r�rPr�rPrPrQr�Br�z_NEVER_EQ.__eq__cCr*rrPr�rPrPrQr�Dr�z_NEVER_EQ.__ne__cCr*)NrrPr^rPrPrQ�__hash__Fr�z_NEVER_EQ.__hash__N)rLrMrNrOr�r�rrPrPrPrQr>s
rc@rE)�_LARGESTz?
    Object that is greater than anything (except itself).
    cC�
t|t�SrU)r�rr�rPrPrQr�Pr�z_LARGEST.__eq__cCr*r�rPr�rPrPrQ�__lt__Rr�z_LARGEST.__lt__N)rLrMrNrOr�rrPrPrPrQrK�rc@rE)�	_SMALLESTz<
    Object that is less than anything (except itself).
    cCrrU)r�rr�rPrPrQr�\r�z_SMALLEST.__eq__cCr*r�rPr�rPrPrQ�__gt__^r�z_SMALLEST.__gt__N)rLrMrNrOr�rrPrPrPrQrWrrcCsddl}|jjS)zDReturn the global event loop policy if one is set, else return None.rN)�asyncio.events�events�_event_loop_policy)�asynciorPrPrQ�maybe_get_event_loop_policycsr)� �@c
Cs�||}}ddl}|���K}|��d}t|d�|_|�|�}|d||}||}	||	}
||
}||d|d|||	d|	}t|�t|���fWd�S1s[wYdS)Nrr��r)�decimal�localcontext�
bit_length�max�prec�Decimalr��sqrt)
�nbins�nballsr}r�r�ctx�bitsr!�p1empty�	meanempty�occupied�
collisions�varrPrPrQ�collision_statsps


($�r c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�catch_unraisable_exceptiona�
    Context manager catching unraisable exception using sys.unraisablehook.

    Storing the exception value (cm.unraisable.exc_value) creates a reference
    cycle. The reference cycle is broken explicitly when the context manager
    exits.

    Storing the object (cm.unraisable.object) can resurrect it if it is set to
    an object which is being finalized. Exiting the context manager clears the
    stored object.

    Usage:

        with support.catch_unraisable_exception() as cm:
            # code creating an "unraisable exception"
            ...

            # check the unraisable exception: use cm.unraisable
            ...

        # cm.unraisable attribute no longer exists at this point
        # (to break a reference cycle)
    cCsd|_d|_dSrU)�
unraisable�	_old_hookr^rPrPrQrZ�s
z#catch_unraisable_exception.__init__cCs
||_dSrU)r")r[r"rPrPrQ�_hook�s
z catch_unraisable_exception._hookcCstj|_|jt_|SrU)r�unraisablehookr#r$r^rPrPrQrn�r�z$catch_unraisable_exception.__enter__cGs|jt_|`dSrU)r#rr%r")r[�exc_inforPrPrQru�sz#catch_unraisable_exception.__exit__N)rLrMrNrOrZr$rnrurPrPrPrQr!�sr!rDcCs$tjdkrcddl}|durt}t��}d}d}	t�|tj�\}}|dkr&n<t��|}	|	|krUzt�||j	�t�|d�Wn	t
yHYnwtd|�d|	d	�d
���t|d|�}t�
|�qnt�|d�\}}t�|�}
|
|kr�td|�d|
�d
|�d���||kr�td|�d|����dS)a�
    Wait until process pid completes and check that the process exit code is
    exitcode.

    Raise an AssertionError if the process exit code is not equal to exitcode.

    If the process runs longer than timeout seconds (LONG_TIMEOUT by default),
    kill the process (if signal.SIGKILL is available) and raise an
    AssertionError. The timeout feature is not available on Windows.
    �ntrNg����MbP?rhTzprocess z is still running after z.1fz secondsr�z exited with code z, but exit code z is expectedzpid z != pid )rlr{r�rFrk�	monotonicr5r6�killr�r��AssertionError�minrl�waitstatus_to_exitcode)r��exitcoderEr��t0rl�	max_sleep�pid2r8�dt�	exitcode2rPrPrQ�wait_process�sF
�

�
�

��r3c
Csfddlm}|d�|d�}tjdkr1z	|jdd�WdSty0}zt�d|����d}~wwdS)	z�
    Skip tests if the multiprocessing.synchronize module is missing, if there
    is no available semaphore implementation, or if creating a lock raises an
    OSError (on Linux only).
    r)�
import_module�_multiprocessingzmultiprocessing.synchronize�linuxN)rz broken multiprocessing SemLock: )�
import_helperr4rr��Lockr�rfry)r4�synchronize�excrPrPrQ�*skip_if_broken_multiprocessing_synchronize�s
���r;�Kc	cs8�t��}zt�|�dVWt�|�dSt�|�wrU)r�getrecursionlimit�setrecursionlimit)�	max_depth�original_depthrPrPrQ�infinite_recursions�
rAcOs\|j}|j}|dkr|�d|��}n|�}dt�|��d�}|jt||g|�Ri|��dS)z�
    Check that given type cannot be instantiated using *args and **kwds.

    See bpo-43916: Add Py_TPFLAGS_DISALLOW_INSTANTIATION type flag.
    �builtinsr�zcannot create 'z' instancesN)rMrLr�rhr.�	TypeError)r4�tpr�r��modr{�qualnamerVrPrPrQr*s r*r0�like�returncCs,t�}tjdt||dt|��d�d�|S)Nr�
(?#support�))r�r0rF)�objectr��filterwarnings�DeprecationWarningr)r0rG�tokenrPrPrQ�ignore_deprecations_from%s�rO�tokensc	Gs�|std��g}tdd�|D��}tjD]-\}}}}}|dkr7|tur7t|tj�r-|j}n|p0d}|�	|�r7q|�
|||||f�qtj|krT|tjdd�<t��dSdS)Nz<Provide token or tokens returned by ignore_deprecations_fromcss �|]}dt|��d�VqdS)rIrJN)r)r#rNrPrPrQr�5s�z-clear_ignored_deprecations.<locals>.<genexpr>rr�)r�r�r��filtersrMr�r��Patternrkr�rR�_filters_mutated)	rP�new_filtersr��actionrFr�r0r+rVrPrPrQ�clear_ignored_deprecations0s 

�rVc	cs8�t��}zt�|�dVWt�|�dSt�|�w)z>Temporarily change the integer string conversion length limit.N)r�get_int_max_str_digits�set_int_max_str_digits)�
max_digits�currentrPrPrQ�adjust_int_max_str_digitsDs�
r[rU)r)r)r
)r)r�)T)NNr)NrPrP)F)rP)r<)�rOrLr�
contextlibr�rlr�r�rr�rkr�rfr��
testresultrr�rr�rCr�r�rDrErFr�r
rrTrryr
r%r&r"rrrr�r�r	r}rrr�r�rrr�rrrr+r,rr�
SOCK_MAX_SIZEr	r��
__getformat__r�r#r$rrr�requires_legacy_unicode_capir-r�r.r0�
TEST_HTTP_URLr=r�rmrnrUro�TEST_SUPPORT_DIRrr�rNrr6r;rr2�contextmanagerrbrrrrmrrrwr�r�r�r�r�r�r�r�r4r<r�r�r��_4Gr�r�r9r�rr rr�r�r!r�r�r/r�r�r�rrrrrrrrrr+r��MISSING_C_DOCSTRINGS�HAVE_DOCSTRINGS�requires_docstringsrr4r7r3r7r5rArDrKr8rOr)rSr�r'r(r�r:r�r�r�r�r>r�r1r�r�r�r�r?rr@�total_orderingrrArrBr�	hash_info�width�	NHASHBITSr r!r3r;rAr*r�rOrVr[rPrPrPrQ�<module>s��,

	M			��
7
		



#!0


! �
���


"R�;`"
	 
'			",4	

Youez - 2016 - github.com/yon3zu
LinuXploit