python-idle-2.7.18-150000.44.1<>,Epc)Jp9||[rEu91g5uLvsM_/-|ӷ]$aC ϋ\Gv99Wބha?kubʑvf&JŠNxᨘU~T6sy0 `P< v¤\|l]aɚ=Ym&'z {ZCgr3[ޚdhɟ>?d ! R04@D]~ 11  1  h1 ,1 []1 ]1a1g1mm1rs sH t (te8tlW9uW:{WFKG`1H$1I1XY8\|1]@1^bc=deflu1vw1xH1y z(8<BCpython-idle2.7.18150000.44.1An Integrated Development Environment for PythonIDLE is a Tkinter based integrated development environment for Python. It features a multi-window text editor with multiple undo, Python colorizing, and many other things, as well as a Python shell window and a debugger.c)Js390zl35!zESUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Development/Languages/Pythonhttp://www.python.org/linuxs390x a ]#LLC00 C WWJ<IW%% &"""G<DDݴw(M)UHgHgx[MN  lf`}OIUE%??Dpp:  HL6'%_Z-p??+ffLLMM! RR F!!' n nO! e==:EE*#44YY 44nn f++~rrCC :+///p3t51818= ? ?-60J0J:/c/c ww'' _WW877 K ; ;4NNw%!- - PPM,1i1iX  QBB0// NTTv2u4k41HHH I!: fA큤A큤A큤A큤A큤c):c)2c)2c)2c)2c)+c):cc)3c)3cc)3c)7cc)3c)3cc)3c)3c)2cc)3c)3cc)3c)3c)2cc)3c)3cc)3c)7cc)3c)3cc)3c)3cc)3c)3cc)3c)7cc)3c)7cc)3c)3cc)3c)3c)2cc)3c)3cc)3c)3c)2c)2c)2c)2c)2c)2c)2c)2c)2c)2c)2c)2c)2c)2c)2cc)3c)3cc)3c)7cc)3c)3c)2cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)7cc)3c)7cc)3c)7c)2cc)3c)7cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3c)2cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3c):c):c):c):cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3c)2c)2cc)3c)3c)2c)2cc)3c)3c)2c):c)2cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)3cc)3c)7cc)3c)7cc)3c)7cc)3c)3cc)3c)3c):c)F^^^^^c):c):c):c):e9a0afb565dd64cc30f062eaa9d6378b184ef6bb02c1b8df395c3b950b3abb0a3370804a789de79c9633e2ac3920aaca50fc589d729aee49b584817aff266245bcefe0cb4c5fa37d80f7508bc7c8efcc028d7fd74752860831d43650dff02b0a2749ea4c95c05856fe745d26d20d6354c2ea1cb5dc9fad7be2b21a2b7a0970f8553d04d748fe166c4997868f7ab6d1d9d780e1ebab3025f62508db00eff8e2b3a3ffd0d82f4b642a4dd737e13d25c7273e1c83239354ae7ba23b6a0e0229f155ec795cf41ac28bbcdbac57db414b538df71e0068cc7fa64aa931c0b63d59687cec795cf41ac28bbcdbac57db414b538df71e0068cc7fa64aa931c0b63d59687caa9f2ffbc70d9eca20409b661312e833f6d19656f66d4d161debfd972faace1c37b800b2e53438addf1ff3da49b02d2d031c41edab1a75a78ecbc042eb1531fa84aedf5929031f53d51bd3446077c16ce0c013ea669fc02d70e1853e5506d5b08447e6928e7be6d9bd2213609c645b2a353b69a8c8b915e1ebc8cf4f3db0578bd60a103ddfd2342ab53fe247480e9c65323951684140df4de58d29a5fbccceb7d60a103ddfd2342ab53fe247480e9c65323951684140df4de58d29a5fbccceb70f8ade6353b9241672db6c81f619cf5e70f8b373098d56c060ecac2b8bfe4cd17705b4d684602cd3d9fd40e42647bce749be1b363790fc70c2841dc3ea29fc667705b4d684602cd3d9fd40e42647bce749be1b363790fc70c2841dc3ea29fc66c7a0cc61079c6e2df53457e63b413e0389f2c0061eb55e80229da932c8f8dbd6067f359b48e53ff378f4a3a022515325c570ec4033ed2370ae8358f00663ff8f5d42276494acbd10fc73a0b2e01238aa29838deda87883964be51f2c9d37a2b65d42276494acbd10fc73a0b2e01238aa29838deda87883964be51f2c9d37a2b6d1db52cc42a6e67cd375248b34b335b432475a4676ff193bb9308916c1f09ef5a5f230a2dff6532eb93c7ddddeb8ace2783b5064295903fa7cce958c32d0b55ba5f230a2dff6532eb93c7ddddeb8ace2783b5064295903fa7cce958c32d0b55bf8d8896b5a64164249bc8c2875bf4bd854d2acaaad9c526abc5cfc48f17c795704dbda8d418068055b5fbdf905359677ef4d9937a75ff648d3a56b09f5ca3cd06a35f3806a134928c7f50b7c6772fb2dbb6b3d2cd4d2b14845dfae4c97b016876a35f3806a134928c7f50b7c6772fb2dbb6b3d2cd4d2b14845dfae4c97b0168716a3f0024f70618a2ce5f9d4b07c0ee8b097c1a491855b165dc03e38c081d90b4884e11e6a757800ddc5fab79431dabc3ab829409a7607e79bc8e6dbefd3044966a995a6958c91ee73a8be702d039468b2cb39c3079cd0639850576d148ab220e59a93dd15b8a9914d785066e4f876ded9a26e1b26ba8ab4a3869c005dcdf5eb6319931f09022c30b50c83b81ca19cf246a8de9f4239d2844c0fb645682758716319931f09022c30b50c83b81ca19cf246a8de9f4239d2844c0fb645682758711780833e989c613bb4fb79940acc57e64521ae038a9c3753bd9b68ef8d0ec465370136d58d9df4c628b1dca49e9baef9db7655c73e8c607732493ef3c2d97062370136d58d9df4c628b1dca49e9baef9db7655c73e8c607732493ef3c2d970621a92680bcf6975a4ed05b7ce32b0f8cc7a19d6f10302c61baab60caf4a457fd93eb43bc6c24283faebe182dd00aaccc3766d17fc318f417ab20483f539dbc2033eb43bc6c24283faebe182dd00aaccc3766d17fc318f417ab20483f539dbc203fa09ef6317bcb667d1de85c5b5b4d8b3872ff77f238936e86d54241f0996ab839057316f1a42e5c99ad2427aed82d5805987e8e89ea236f7ba255b6c95386afbbccba047273aef5da3dbde175d00483db49c55e8b64b336926a41d718d31e49677ed0038bba5fc3e977f3effbba5fb59b6a78598f95e437701423efe19fe28cfa962050e648d2db772bbac2eb2b75cc43917d7c982f47e9c005c957eca809e9eaf8c39ed1460ff16e0831e3c910d8387e877fdadb72994c17fe00a4fb04e383a26939bfaf123309a329f82ec593b5074a445776657e8b3ee4e747f254fa49e2484bf214428a6f918fb5db8317ea2779e42868de5ffb812cced0d83a90c4f26f784bf214428a6f918fb5db8317ea2779e42868de5ffb812cced0d83a90c4f26f73f9304e8cdc1d2474b494eb0d22c91c51842bcf77c7b45e0e976a2dd80fd7c0b91c4829cf2cc5e628561bcc6c44b6ac30940d79bcdc2bf73a9378497e19fe94a91c4829cf2cc5e628561bcc6c44b6ac30940d79bcdc2bf73a9378497e19fe94a4f3354076dc3aa8961f963c267e66e6507e267734bf501f0cf6fb678116d15f54460462cc57607c1991775e6721b7bd2f79df70ed16b9da59a5ae8ac8df1eb1f47d4f978529bc0bac310b0a78150fec68de9b790b143a8b8b137e4243b93e29f47d4f978529bc0bac310b0a78150fec68de9b790b143a8b8b137e4243b93e29f0493c6e200f420232a619ee8d918d169adf4229ac9c1adf61fe6efbce6317cb3e6474efa90848b9d5ee7fc6946075c164de8a6f6088ba64c2211c0c4d780dedbe6474efa90848b9d5ee7fc6946075c164de8a6f6088ba64c2211c0c4d780dedb7c98d566a13fd599d1c11a375f387fef69b6c595c4f18c5d88c188a860be0e55bfe9c9b62bf4a4b1cb8419282f78bc98f4cde453a0d6bbfce8a7b76177a1af94ae74eb8119aa88532734a84dd782830f8f5cb4dff01cfa4372b1e4afa35653134ad97f34e64abd93e1e32aff017ff8914e3204a76044f1486bc9fbefa07bfdbb26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb765042963d5f8d5d1259e9874a263a6621ca6dd1d57608faa5f28f7d61f349583e07814a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aa37484901eb40eefa846308e1da3ff6f240ea98f769a2afc3cf4fdba00327ecbef9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65afc11c3d934f8de7d3285f616d0a9129f8113b158157501829c2e452101d067a49a59e2abf1840156e9db8f85a38822fd56ab79a139eb95ec86f1fba1bb87326bfcea17dee8413652327d3d1f7565ac6b32b392a5e424947ede2088e27600346909878665b07bcb76fb3222ea1b4947a553ad0af76fc12b31651d1707980791dca932fd307c4bdc223ae39165f413b2a530b2dbf6323e8a272865da6627535ea3bf69ddebc20a0e6820941d9f96776738019f4eb99858834390ce17cf96d13010f76b3c599b8ea145f90b2617b41fbb01fa7a3be4953d14d39b194a1916ffb6c0f76b3c599b8ea145f90b2617b41fbb01fa7a3be4953d14d39b194a1916ffb6c0e4553bbf2717bc92627040459aef992aaddeaed0c92d1f58847cd4cd7f20c911a43d766ee2d46b5e3b37ed19f97ab68fb77d2316c60ccd0933f0eec97b8ff06e5a0f4e0f01724b61b704852c54e0169123d24eeba0505418eef232c3b47c463bcc57937d546d1d56776ade6b00f59ea6a478ee711b4e5cf69c0a1d822ed29a7e1b9f1926263dae1263fc24432c74f3356c466102f313da63b9f19d2a93938d871b9f1926263dae1263fc24432c74f3356c466102f313da63b9f19d2a93938d87d77d55936a0e60586102820034a6222cd4687f0c61b3f41cf121a45ec2bc4606c2606b972224ca3122621b22ca4cb3b914a42dc440974e4c4033447ee9ef57c21bc117a6aac6a10f4ac19d182677c7cf5a5f2006db4f5420fa36c1ad4faae05e1bc117a6aac6a10f4ac19d182677c7cf5a5f2006db4f5420fa36c1ad4faae05e86a87afa7ff7d0e74abffd39d5e924b4624fd6ec1cbd1f7c52570ad1673ef0980dcf9c389ebe30ef8b777f0b58cd3a150876ad2285a01bcd2d5538381e41e9230dcf9c389ebe30ef8b777f0b58cd3a150876ad2285a01bcd2d5538381e41e923091aa52b4cea5ced27e9293252d0dcedf8838e2608bb1090f267da09385a90f1e4db11dd664beebc7eee753cfbd068e4379d00bf0bf9367e7e18f8b8ebfb6fc6e4db11dd664beebc7eee753cfbd068e4379d00bf0bf9367e7e18f8b8ebfb6fc65f2444b5056b1520decd5db0dda6cd75817eefaada6e16b1802d49403070a08de58bc581f32cc69aa136d4145667fa33ad9a7a83fd34f66cad402ef7f35a7e6be58bc581f32cc69aa136d4145667fa33ad9a7a83fd34f66cad402ef7f35a7e6b2c86fc8d91a10e769aa3e93119dcea7c1ffec2e21c26c7cdf4122ce4d68222d0ea6007839c5c43b165e6744efac7ef18b7fd0153152842781cd43e7a97f1927b5324732b1af0d518d542d821d8f81a086892648562eb52847628c706432a5bbbd937a665872aaa592f157b28157b04e49da798c0dd36aec253abf65064bcf44ce2711525a89c67686f8de2a50cc634d650f5f37f80201bbc79c46393153323afa51816621bb8475f0eaca8ea6a58af65d9665dc5fafb4a9ededcfb7b357b944dcd466b0516c363cedbdfa293a2285d812299473ee37f7d0a3244055b73936b9169b8f358a4799e4895eff610cbc2840e1f11bae3cada7b0029ffce29f7e7a46ec6c976fa3160047fd81688d880c357554c7ab6df0eac78068085717e800f2d9c4d4a20c039b4fdcfb7a242eb932675b32a6200700eea0bc23891dc8689979a7bf3a73dea8234f66af391835d0b8894ec5a851bc5bf806696419020f105d0647243671ba0a9d2e62755d71b42571603e1a2698c3acd2a9e35d976bc9288bd188c414581592d6f9a8f1ebe8bf11353b8408568be2168377231fce64c344693c5986f6f145e2c2274621776f32a1e8cfbc2778078dd50b18628465323e5dc4cfd7f81f4efdc1c6ffaf6abd1208ea8266caea859e8d256cce8202c9c766436af497081f4efdc1c6ffaf6abd1208ea8266caea859e8d256cce8202c9c766436af4970d8277df4c8d68e74f83bd58ba8b94a2718537ab6fc0a31b1bd578e9da3d9b69643fc67bdd66933c78ee506cced319d096d5f566455217eba75076cd620340bc343fc67bdd66933c78ee506cced319d096d5f566455217eba75076cd620340bc37d31fe0d400ad9a42aa87399bb85f02b0f107e8224a7956e88671a0355ae8811f8ea2453557271af53c07ee87195d70136712c89d370bb7dd9f980a3ba8255faf8ea2453557271af53c07ee87195d70136712c89d370bb7dd9f980a3ba8255fa4e5d320a6c34bea34f1746bf8a85d00cf77d6d8a3b52d8649c93b2282d3f64e6d100f1dca80e0c40adc51292e4ce268df93b7229b8526aca0129e6aa5f88dba5d100f1dca80e0c40adc51292e4ce268df93b7229b8526aca0129e6aa5f88dba58b24c7cd67e4ba93352aea4a3afd17d7d0a7c05bc4e9d2105265b91940d28f675d01a9ce1a482350a585d0768ecbbd2eab9ec049aaef7b824000f389bc8d162e5d01a9ce1a482350a585d0768ecbbd2eab9ec049aaef7b824000f389bc8d162e5ccd3fc356db47046ded0c041b4035c2d6ae459e53972908fe8aacb7458c44de478ea86cbf2582e1eee709e92795564b990ad359961209a3a6ce93b9b9798745478ea86cbf2582e1eee709e92795564b990ad359961209a3a6ce93b9b97987451beaad785e59b21a9b784d4116c31b54e6138d98a4f5ba55123398a52a8a08bacc708fa3163bdc0e5f2ecf6b3cb92e171f69691b1ca9bf969a2ba4fcc9e5c0b3cc708fa3163bdc0e5f2ecf6b3cb92e171f69691b1ca9bf969a2ba4fcc9e5c0b3e5d1e6a2d08ee3e35fb162c881b6bc73d3a87b403e92b01a7847eed37516e87e6308bd7a191c0b6289628db9edc70d71d0022f941f4f956fb39fa74160c700f16308bd7a191c0b6289628db9edc70d71d0022f941f4f956fb39fa74160c700f19c78b6d0b1f41a33d7d04efa27de9b6f120d195ab4657e97b3557d2d9d69b2d4fe94bebf300ec2e3b0480aac93fdbab12db7d4793a515d5608560475694fd627fe94bebf300ec2e3b0480aac93fdbab12db7d4793a515d5608560475694fd627f88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89318e74f6b14f4668093431e14f1336049d2342e83ba348266de97a9dbad8886ebf074628ec44703aff20ae25cdc863ad204b94a8d09ddf9ce5eeabee9eb6a923bf074628ec44703aff20ae25cdc863ad204b94a8d09ddf9ce5eeabee9eb6a9239ba9f979dfd7ec5f82a4014fe0c839aa3076904f14498050e69af79894299b7f1938ed2a57434f514ffda5a2a393dd25a95a41fdc8aff798ee7abcf2c9b799271938ed2a57434f514ffda5a2a393dd25a95a41fdc8aff798ee7abcf2c9b79927b63326878babe4bb3102c821add39922746b94b0334a78e22ef00647d45eb1a1918537ee30473d36ff791f3433e886d03ae37a9c701dec86f18025cc75d8636c918537ee30473d36ff791f3433e886d03ae37a9c701dec86f18025cc75d8636c0cfdeeeadc50b94d3d599a708549d71332feeeca6f6757c1a19d0b6fff4c882a4029639701cc17bd0934a27532725f0369c9229e0d2e5e71b113f8823e82435c4029639701cc17bd0934a27532725f0369c9229e0d2e5e71b113f8823e82435ce6270c2efb4d1b77e88276c2afc1325b9817cd68c8cc71a98afcbff72ac70ed2a76de531e7a1259aaaa0e9ad6f94a21f0a9b1a3bdf93928ea7b2317f2effb540a76de531e7a1259aaaa0e9ad6f94a21f0a9b1a3bdf93928ea7b2317f2effb5408e337755af548c7dfdb8b237d469a241109019f49b8f574f9ff53a1166c36440d690cde05c4065592e632398e4edb6c11bbdfe4dbd5d060b088aa2945d5b3f50d690cde05c4065592e632398e4edb6c11bbdfe4dbd5d060b088aa2945d5b3f50ecd580374d51e2ed1e0b4bd1269214eebf9aae2d7d54213040a9034dc471e8f247579ff1b9bddeafc26e03779785d3fb308338f2109bf4f4fb2073a694aaa1c147579ff1b9bddeafc26e03779785d3fb308338f2109bf4f4fb2073a694aaa1c1d05ee2cbe1b243ff6d299683d6077bc940de43c1e42313e94863108debe587e1dcc113ed391bac5f3ceeaedecc554683fe86f0d71e81196cb9470a457b920cb3dcc113ed391bac5f3ceeaedecc554683fe86f0d71e81196cb9470a457b920cb38963ecfa7dca22827835e9aade13bf055ac04d9170a346a55a0f22945f2000d05e9d395cd5c01b04f3b567ba12db90e7fc62787271b62a07dd0521bc7c5a9bdf5e9d395cd5c01b04f3b567ba12db90e7fc62787271b62a07dd0521bc7c5a9bdf1d609492fcdb473230de2309f7767675962811d6b855f5d013040ad8be62b757ce2e88863bed38c0b5230ddc79ed3a7c7360222f06bd52dde68a6e0b45658644ce2e88863bed38c0b5230ddc79ed3a7c7360222f06bd52dde68a6e0b4565864407146d1dc8afa51062e31308a4082508dbffde14c7f7871bdc58e38975c183a4327d08586ccda62fe4e0ad9ba987dd5545aa44b31f3b3b3cea2a429f0060d608327d08586ccda62fe4e0ad9ba987dd5545aa44b31f3b3b3cea2a429f0060d608562d13ba5a1f9d8ff5ae5cc7d391272071412cda384217bca4440edf0a9084207052d56c15d0cba981281b2b2993e0a63f2c23d59692dcfb7187ed174c125fce7052d56c15d0cba981281b2b2993e0a63f2c23d59692dcfb7187ed174c125fceb4928fd09e9e7209a234cc6d8d7551e940317b3f17a96db621695d30543ba9f1d41dd59a24a9a9c0f5b705ff93015fef2be8d1cb9c1764f1cfcb54eef8a9e341d41dd59a24a9a9c0f5b705ff93015fef2be8d1cb9c1764f1cfcb54eef8a9e341ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c630a25b6f93762f8ec4d6b1b9a69a4f70d88c9dbde91925c45073937f74977971c05a4494e6738e5225149326b2359e7beff32094dfba7d72ae94c95f1592b9de2ad25d8600795cb193ebc2e4c55e7e243203d4eb1658522917d15c4bb06bc53e2ad25d8600795cb193ebc2e4c55e7e243203d4eb1658522917d15c4bb06bc53ffb96214d4975050127530bc58f0326fc7dae119b9da01de5d49ddc2e08c15f915a3977f0d2c6a8e87db2ef7050ea10afb3a88b064bf5ef95439924e424641145013f7a6875bec61c30478ba35b9d34dea1662a81d61589a22e2baed81bd25e3233bf9466afb83d168de846a76b732c1302599899b8a0fcfb883f958e64c2384233bf9466afb83d168de846a76b732c1302599899b8a0fcfb883f958e64c2384ca13c01f83239d042a2a43d541176c637032e73aca10bd9b2ae761558f035d43b7f9403044b4693c05d081f5d79b842b9de4f1dd37c3904407906560c6c4908a7667920f545d0bb0ccb5bae12d130f9f52fca3e259b5486b4c1bdcb6c6f2bd9bf054243eee87b1ca0e5dcaeaa2f9ec39e0f468e9394765c1aa291c9371b4e564f054243eee87b1ca0e5dcaeaa2f9ec39e0f468e9394765c1aa291c9371b4e56470801546822d7300d72667225aa310b7dcdbb3bf5133c66e801e5b7dc4b9f8e1a912d50c2dce6ab10f97a1c873500dc66bd7c030899591489998332e4c4f3066a912d50c2dce6ab10f97a1c873500dc66bd7c030899591489998332e4c4f3066f188303acd1b5f5275a33fcd1883de537fd35ed886ec610e971331a58da2ed5342aaac9142325a74e07e4db9471c39fda9ce8c17765c0f2d71827e202fa01a1a42aaac9142325a74e07e4db9471c39fda9ce8c17765c0f2d71827e202fa01a1a29082169d71910d4e09cb76b6cb578c6011ccba4c1c86f6f23db814a72ba586257b8f161c53229c1f9ba3cb9d13ae3e5dd5af0a429fcaf7552e7eb3a7e378d0c57b8f161c53229c1f9ba3cb9d13ae3e5dd5af0a429fcaf7552e7eb3a7e378d0c080bfa30a9672749d9d8aa7296ec165c339b81d338c846ec3b8f1f491ceab2e2c339e5cf2707e07cfa1de6f35e6bcc4f084a33babc979981691f5d1867344563c339e5cf2707e07cfa1de6f35e6bcc4f084a33babc979981691f5d18673445639f6183a68b2b3a980cb18b5516c35baf81f4e5bbfd67e77fb6919942b260ad63a9702ee834efb9cccdd0baadcde606832b0aaad68d01fcbc006bb3a742fb7921a9702ee834efb9cccdd0baadcde606832b0aaad68d01fcbc006bb3a742fb7921f18ff1d8e6693e36ba442f343ee823038a9a91bf33f5640665b993f509c362559fdc97ab8a8a19018cb72f89309bf1ac0a8a3a1568d5ce42656b7fecdad682c99fdc97ab8a8a19018cb72f89309bf1ac0a8a3a1568d5ce42656b7fecdad682c93bf0211c1a60483a99fcfaa61c163b1fa8cf4fca8bbda294102763e47dcc2fc4417da21d1c2af3a1aa534c2c752ce10ad2253bf2419bc3fab61df87628961cd6417da21d1c2af3a1aa534c2c752ce10ad2253bf2419bc3fab61df87628961cd6b09f5b109cafb693758cea77ea3a7d24e5849aa891a672ab21d598ff04ac7a136ab763882af104de01c8d088c102839a75d02d4d17a98c4f19bf4b32870c0e696ab763882af104de01c8d088c102839a75d02d4d17a98c4f19bf4b32870c0e69630dd2206a4ffe5b8b194e0e674a8ff4808a31a65f412bfd62387a09a05685bb4a68ac0e932abdbca5e2045e9063823a59b8aaaa430272bfd75909348243e2fb4a68ac0e932abdbca5e2045e9063823a59b8aaaa430272bfd75909348243e2fb6e8c706653671c627bca47ca3751ed3e73279bcc888eb39d5fffbd25f0bb0da7cae79467940bbc926f0a5960bd02d5b540131b541a56ac80c0a0ac75614be556cae79467940bbc926f0a5960bd02d5b540131b541a56ac80c0a0ac75614be55695320c34909ab5b53edebc454bd1c10cf00e489944171be3514532252f11977664df66cb62804a7f29366bd19e1e641364b17e7fd2a5e9f3bba005a4c9a5c9f164df66cb62804a7f29366bd19e1e641364b17e7fd2a5e9f3bba005a4c9a5c9f12435f6d51ad27e1a096cb193d4a2809c7806e243269e788cb383ff49afd6375b06f11e5ee07943b0e485d1e3c8c1a14ed40551295f8cd95ffa063a7b7bd93f2506f11e5ee07943b0e485d1e3c8c1a14ed40551295f8cd95ffa063a7b7bd93f25f72ce58dbb0ece4b2d4fa3f81c50bef1bfea7b89b8e7043907d8d5a39b4acde59c7628feeae50637aeef6b3e0750b31075a0c8e18735daf87c1bb1bc4eeea0299c7628feeae50637aeef6b3e0750b31075a0c8e18735daf87c1bb1bc4eeea029106176ab4686f13c09b5fba64f91e3c0e2006954b1d38ac1bbb6e94cf3af64869a4e42e06d9cff0fa024c87513045671693376bf354d1f4218d8ca957d1721b49a4e42e06d9cff0fa024c87513045671693376bf354d1f4218d8ca957d1721b4fd5372282f97eed305c94cd36ed2042ae157e14470a31355c304db295328e5b21a47123ef9a4437240f07dcfa6e5510a96af34c94f991ed18647135a0c1ccbd51a47123ef9a4437240f07dcfa6e5510a96af34c94f991ed18647135a0c1ccbd5b4553759e7941625bb83083e17810e1a3f950f31ae6d94037873c9302572607a0c1f4c99c6242b3bf3b03740aba68d6bf61c529f40d31a4a41b76d78aaf31da40c1f4c99c6242b3bf3b03740aba68d6bf61c529f40d31a4a41b76d78aaf31da4be656645a0aa1d7578a11dbfd6985094b6bfdcbdfcf40d4bf48f4924b3bfb89be9da34efbc98649ca9a4e5fc17783158a6e1112d1e4cf7b33fdd1f85c6170971e9da34efbc98649ca9a4e5fc17783158a6e1112d1e4cf7b33fdd1f85c61709716d1616aabe21b118f7881202fb11b825bf2ab7d5e12651e75bbc36f4f68eee2b76d73896c12b2600026c8b7523896d12f04e59a958fa0cc3fafc0f9c5e5c2fb676d73896c12b2600026c8b7523896d12f04e59a958fa0cc3fafc0f9c5e5c2fb6516a23b27c2e2f063535f2f878b5f8e6b44762955fe0ffe63e833476d172f368d3b4b148c6159ad1d3ae04ffa266bdfcacc9545f3d6fbfcca0d2a3c89bbd14c2d3b4b148c6159ad1d3ae04ffa266bdfcacc9545f3d6fbfcca0d2a3c89bbd14c2d8f7dc682ad8cbc6960cc4ab8d7bbc50e3b7b7af07c41c20e668aaaf35f1f8ea9f580e9525736c19d26cde21a6c4eebf8e2395e2beb8011906eafc6b78d897ef9f580e9525736c19d26cde21a6c4eebf8e2395e2beb8011906eafc6b78d897ef9ad085b1826dbddb85fd854190192d5d2ee3026be7a279ed08cc56aeb57a94b1e6f6efe6bc1cba62de2784e696b882f010210ff5743af43d32084390f5aea0f7e6f6efe6bc1cba62de2784e696b882f010210ff5743af43d32084390f5aea0f78e76c888a9a5d2e625e709008e85fa8332ed98aec468c7f22f04197f8c346086b6c2afa29a10fed6fab08f0911bb727451fa985269319c9ac7d6d48f9fc349bdb6c2afa29a10fed6fab08f0911bb727451fa985269319c9ac7d6d48f9fc349bddc5b655bbc0b742f403173499cd29c1928927439a193506833b1ee5df14ec8dbd6ac8a88c69e3ca08e8292db1d40e70107015cd8b9bdd6be961c5d8a378ba675d6ac8a88c69e3ca08e8292db1d40e70107015cd8b9bdd6be961c5d8a378ba67554854231e1411d0420ec65445242ab876b99f371f1b317885d9a480c3e8f5c41f26c5f40bc9ee51389f74a308d2602eccf17aa903a7f38d6a7b7c2cef861bcd8f26c5f40bc9ee51389f74a308d2602eccf17aa903a7f38d6a7b7c2cef861bcd802fac1b063673cabb30180460745fa67758f1830a8ed0bea8de250d668055f13ae73dfcc4ef2b51fd266ed30edaed4b9c66379d068d0f80a38276db7816a72b3ae73dfcc4ef2b51fd266ed30edaed4b9c66379d068d0f80a38276db7816a72b3a9e59a629d4ee97cc7223a074d78887c16aea625760652960f61fedad2c3583fa6503e0ef42a73c70d269bc39eaee575a329bb5ff95d63888ab68e739861f295a6503e0ef42a73c70d269bc39eaee575a329bb5ff95d63888ab68e739861f295106ba4e8ae1ee7c4c780f2f23526147d80a372be0f5f289425af6dd05eb3e7823a57358f86600ddb70e05bd75dfff012142961c086c7d78422eaa395086e6f763a57358f86600ddb70e05bd75dfff012142961c086c7d78422eaa395086e6f760e7592d2e6ee0838e408ec43a9c1ac4cc37d19af859e17f9b3d698424688e4e95365e8de295abe229f4936659d1a17191cbd982a3b4bf9d14b43ed28ec5bb09ed28826f9e5b0df1d2491e84a0a839bc2233a9a0c3d4ecf3483b5ba9f22d4527dea1db3464072e9b70baa5c940bd0b9d30180c0ea21f72681e749a2efb948567430c877ffd0fb07228976731c8389a7be1c920d8def751cb7751025faa2075404a46a8c894ab575f744f77f0ea1069766bba956299dd9f3a26cd65a75485cf7869ee08c2fe1f88be79aa8578d36a779f600a86549c5b1711c8a43600ccca687db05a5369d40cf7eaf1e7e30870d6da0b0b444bb0703c03f9cfead5f2359df127d0b9bb61e9a5f7df7ec667efc94ff0001ff9984f7261347d9ef256ab0579d62bb13ab20e0c42f5c0f2ff10334436b310208080949a20283dbd1f92e124cbeb2533fe91c1668edce48ddb88e72de7fbac503e1817606406f6a13166e2637e766313fe91c1668edce48ddb88e72de7fbac503e1817606406f6a13166e2637e7663132c07432df422e856420d31a461cefa0d28a6f8e03bc58189873e6eda61f5751bc144e4ea1f84595ff43854a102b77a78880b0d81d97b04433034858cacf4cabbc144e4ea1f84595ff43854a102b77a78880b0d81d97b04433034858cacf4cabfaa2bd4db391d2fb44828da3f865ccd3bbb8a8300c31ff7081db8310c5b1d650f8d8896b5a64164249bc8c2875bf4bd854d2acaaad9c526abc5cfc48f17c7957d77d55936a0e60586102820034a6222cd4687f0c61b3f41cf121a45ec2bc46064d4a20c039b4fdcfb7a242eb932675b32a6200700eea0bc23891dc8689979a7bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb7650424a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aaf9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65a5a1f4e4d0f2f0ff28b47955356a6767cc24b9e09f2eeaf1f69a18a332b7bffe4/etc/idle/config-extensions.def/etc/idle/config-highlight.def/etc/idle/config-keys.def/etc/idle/config-main.defrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-2.7.18-150000.44.1.src.rpmapplication()application(idle.desktop)config(python-idle)mimehandler(text/x-python)python-idlepython-idle(s390-64)python2-idle@@@     /usr/bin/python/usr/bin/python2.7config(python-idle)python(abi)python-basepython-tkrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)2.7.18-150000.44.12.72.7.183.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1cbb@b@b@ba@a@a(@aim@aI@a'@a#aj@a`t`8`_T^J^@^@^>^>^;^8 @^.^g@^ @]f@]@]]]d@]d@]@]z@]V]y@]9]1]\t@\\7\7\\J@\J@\C@\2[[#@[6@[@[ @[Za@Z@ZxG@ZtRZp^@Z CVE-2021-3737-fix-HTTP-client-infinite-line-reading-after-a-HTTP-100-Continue.patch (boo#1189241, CVE-2021-3737)- Renamed patch for assigned CVE: * bpo43075-fix-ReDoS-in-request.patch -> CVE-2021-3733-fix-ReDoS-in-request.patch (boo#1189287, CVE-2021-3733) - Fix python-doc build (bpo#35293): * sphinx-update-removed-function.patch - Update documentation formatting for Sphinx 3.0 (bpo#40204).- Add bpo43075-fix-ReDoS-in-request.patch which fixes ReDoS in request (bpo#43075, boo#1189287). - Add missing security announcement to bpo44022-fix-http-client-infinite-line-reading-after-a-HTTP-100-Continue.patch.- Add bpo44022-fix-http-client-infinite-line-reading-after-a-HTTP-100-Continue.patch which fixes http client infinite line reading (DoS) after a http 100 (bpo#44022, boo#1189241).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- Add CVE-2021-23336-only-amp-as-query-sep.patch which forbids use of semicolon as a query string separator (bpo#42967, bsc#1182379, CVE-2021-23336).- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- Add patch configure_PYTHON_FOR_REGEN.patch which makes configure.ac to consider the correct version of PYTHON_FO_REGEN (bsc#1078326).- Use python3-Sphinx on anything more recent than SLE-15 (inclusive).- Update to 2.7.18, final release of Python 2. Ever.: - Newline characters have been escaped when performing uu encoding to prevent them from overflowing into to content section of the encoded file. This prevents malicious or accidental modification of data during the decoding process. - Fixes a ReDoS vulnerability in `http.cookiejar`. Patch by Ben Caller. - Fixed line numbers and column offsets for AST nodes for calls without arguments in decorators. - bsc#1155094 (CVE-2019-18348) Disallow control characters in hostnames in http.client. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - Fix urllib.urlretrieve failing on subsequent ftp transfers from the same host. - Fix problems identified by GCC's -Wstringop-truncation warning. - AddRefActCtx() was needlessly being checked for failure in PC/dl_nt.c. - Prevent failure of test_relative_path in test_py_compile on macOS Catalina. - Fixed possible leak in `PyArg_Parse` and similar functions for format units "es#" and "et#" when the macro `PY_SSIZE_T_CLEAN` is not defined. - Remove upstreamed patches: - CVE-2019-18348-CRLF_injection_via_host_part.patch - python-2.7.14-CVE-2017-1000158.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-16056-email-parse-addr.patch- Add CVE-2019-9674-zip-bomb.patch to improve documentation warning about dangers of zip-bombs and other security problems with zipfile library. (bsc#1162825 CVE-2019-9674)- Change to Requires: libpython%{so_version} == %{version}-%{release} to python-base to keep both packages always synchronized (add %{so_version}) (bsc#1162224).- Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Provide python-testsuite from devel subkg to ease py2->py3 dependencies- Add python-2.7.17-switch-off-failing-SSL-tests.patch to switch off tests coliding with the combination of modern Python and ancient OpenSSL on SLE-12.- libnsl is required only on more recent SLEs and openSUSE, older glibc supported NIS on its own.- Add provides in gdbm subpackage to provide dbm symbols. This allows us to use %%{python_module dbm} as a dependency and have it properly resolved for both python2 and python3- Drop appstream-glib BuildRequires and no longer call appstream-util validate-relax: eliminate a build cycle between as-glib and python. The only thing would would gain by calling as-uril is catching if upstream breaks the appdata.xml file in a future release. Considering py2 is dying, chances for a new release, let alone one breaking the xml file, are slim.- Unify packages among openSUSE:Factory and SLE versions. (bsc#1159035) ; add missing records to this changelog. - Add idle.desktop and idle.appdata.xml to provide IDLE in menus (bsc#1153830)- Add python2_split_startup Provide to make it possible to conflict older packages by shared-python-startup.- Move /etc/pythonstart script to shared-python-startup package.- Add bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792- Add adapted-from-F00251-change-user-install-location.patch fixing pip/distutils to install into /usr/local.- Update to 2.7.17: - a bug fix release in the Python 2.7.x series. It is expected to be the penultimate release for Python 2.7. - Removed patches included upstream: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-16935-xmlrpc-doc-server_title.patch - CVE-2019-9636-netloc-no-decompose-characters.patch - CVE-2019-9947-no-ctrl-char-http.patch - CVE-2019-9948-avoid_local-file.patch - python-2.7.14-CVE-2018-1000030-1.patch - python-2.7.14-CVE-2018-1000030-2.patch - Renamed remove-static-libpython.diff and python-bsddb6.diff to remove-static-libpython.patch and python-bsddb6.patch to unify filenames.- Add CVE-2019-16935-xmlrpc-doc-server_title.patch fixing bsc#1153238 (aka CVE-2019-16935) fixing a reflected XSS in python/Lib/DocXMLRPCServer.py- Add bpo36302-sort-module-sources.patch (boo#1041090)- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, CVE-2019-16056]- boo#1141853 (CVE-2018-20852) add CVE-2018-20852-cookie-domain-check.patch fixing http.cookiejar.DefaultPolicy.domain_return_ok which did not correctly validate the domain: it could be tricked into sending cookies to the wrong server.- Skip test_urllib2_localnet that randomly fails in OBS- bsc#1138459: add CVE-2019-10160-netloc-port-regression.patch which fixes regression introduced by the previous patch. (CVE-2019-10160) Upstream gh#python/cpython#13812- Set _lto_cflags to nil as it will prevent to propage LTO for Python modules that are built in a separate package.- bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- bsc#1130847 (CVE-2019-9948) add CVE-2019-9948-avoid_local-file.patch removing unnecessary (and potentially harmful) URL scheme local-file://.- bsc#1129346: add CVE-2019-9636-netloc-no-decompose-characters.patch Characters in the netloc attribute that decompose under NFKC normalization (as used by the IDNA encoding) into any of ``/``, ``?``, ``#``, ``@``, or ``:`` will raise a ValueError. If the URL is decomposed before parsing, or is not a Unicode string, no error will be raised (CVE-2019-9636). Upstream commits e37ef41 and 507bd8c.- (bsc#1111793) Update to 2.7.16: * bugfix-only release: complete list of changes on https://github.com/python/cpython/blob/2.7/Misc/NEWS.d/2.7.16rc1.rst * Removed openssl-111.patch and CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch which are fully included in the tarball. * Updated patches to apply cleanly: CVE-2019-5010-null-defer-x509-cert-DOS.patch bpo36160-init-sysconfig_vars.patch do-not-use-non-ascii-in-test_ssl.patch openssl-111-middlebox-compat.patch openssl-111-ssl_options.patch python-2.5.1-sqlite.patch python-2.6-gettext-plurals.patch python-2.7-dirs.patch python-2.7.2-fix_date_time_compiler.patch python-2.7.4-canonicalize2.patch python-2.7.5-multilib.patch python-2.7.9-ssl_ca_path.patch python-bsddb6.diff remove-static-libpython.patch * Update python-2.7.5-multilib.patch to pass with new platlib regime.- bsc#1109847 (CVE-2018-14647): add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo-34623.- bsc#1073748: add bpo-29347-dereferencing-undefined-pointers.patch PyWeakref_NewProxy@Objects/weakrefobject.c creates new isntance of PyWeakReference struct and does not intialize wr_prev and wr_next of new isntance. These pointers can have garbage and point to random memory locations. Python should not crash while destroying the isntance created in the same interpreter function. As per my understanding, both wr_prev and wr_next of PyWeakReference instance should be initialized to NULL to avoid segfault.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746 (CVE-2019-5010). An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Add patch openssl-111.patch to work with openssl-1.1.1 (bsc#1113755)- Apply "CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch" which converts shutil._call_external_zip to use subprocess rather than distutils.spawn. [bsc#1109663, CVE-2018-1000802]- Apply "CVE-2018-1061-DOS-via-regexp-difflib.patch" to prevent low-grade poplib REDOS (CVE-2018-1060) and to prevent difflib REDOS (CVE-2018-1061). Prior to this patch mail server's timestamp was susceptible to catastrophic backtracking on long evil response from the server. Also, it was susceptible to catastrophic backtracking, which was a potential DOS vector. [bsc#1088004 and bsc#1088009, CVE-2018-1061 and CVE-2018-1060]- Apply "CVE-2017-18207.patch" to add a check to Lib/wave.py that verifies that at least one channel is provided. Prior to this check, attackers could cause a denial of service (divide-by-zero error and application crash) via a crafted wav format audio file. [bsc#1083507, CVE-2017-18207]- Apply "python-sorted_tar.patch" (bsc#1086001, boo#1081750) sort tarfile output directory listing- update to 2.7.15 * dozens of bugfixes, see NEWS for details - removed obsolete patches: * python-ncurses-6.0-accessors.patch * python-fix-shebang.patch * gcc8-miscompilation-fix.patch - add patch from upstream: * do-not-use-non-ascii-in-test_ssl.patch- Add gcc8-miscompilation-fix.patch (boo#1084650).- Apply "python-2.7.14-CVE-2017-1000158.patch" to prevent integer overflows in PyString_DecodeEscape that could have resulted in heap-based buffer overflow attacks and possible arbitrary code execution. [bsc#1068664, CVE-2017-1000158]- exclude test_socket & test_subprocess for PowerPC boo#1078485 (same ref as previous change)- Add python-skip_random_failing_tests.patch bypass boo#1078485 and exclude many tests for PowerPC- Add patch python-fix-shebang.patch to fix bsc#1078326- exclude test_regrtest for s390, where it does not segfault as it should (fixes bsc#1073269) - fix segfault while creating weakref - bsc#1073748, bpo#29347 (this is actually fixed by the 2.7.14 update; mentioning this for purposes of bugfix tracking)- update to 2.7.14 * dozens of bugfixes, see NEWS for details * fixed possible integer overflow in PyString_DecodeEscape (CVE-2017-1000158, bsc#1068664) * fixed segfaults with dict mutated during search * fixed possible free-after-use problems with buffer objects with custom indexing * fixed urllib.splithost to correctly parse fragments (bpo-30500) - drop upstreamed python-2.7.13-overflow_check.patch - drop unneeded python-2.7.12-makeopcode.patch - drop upstreamed 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch - Apply "python-2.7.14-CVE-2018-1000030-1.patch" and "python-2.7.14-CVE-2018-1000030-2.patch" to remedy a bug that would crash the Python interpreter when multiple threads used the same I/O stream concurrently. This issue is not classified as a security vulnerability due to the fact that an attacker must be able to run code, however in some situations -- such as function as a service -- this vulnerability can potentially be used by an attacker to violate a trust boundary. [bsc#1079300, CVE-2018-1000030]- Call python2 instead of python in macros- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch- drop SUSE_ASNEEDED=0 as it is not needed anymore- Add libnsl-devel build requires for glibc obsoleting libnsl- obsolete/provide python-argparse and provide python2-argparse, because the argparse module is available from python 2.7 up- SLE package update (bsc#1027282) - refresh python-2.7.5-multilib.patch - dropped upstreamed patches: python-fix-short-dh.patch python-2.7.7-mhlib-linkcount.patch python-2.7-urllib2-localnet-ssl.patch CVE-2016-0772-smtplib-starttls.patch CVE-2016-5699-http-header-injection.patch CVE-2016-5636-zipimporter-overflow.patch python-2.7-httpoxy.patch - Add python-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1. (dimstar@opensuse.org)- Add reproducible.patch to allow reproducible builds of various python packages like python-amqp Upstream: https://github.com/python/cpython/pull/296- update to 2.7.13 * dozens of bugfixes, see NEWS for details * updated cipher lists for openssl wrapper, support openssl >= 1.1.0 * properly fix HTTPoxy (CVE-2016-1000110) * profile-opt build now applies PGO to modules as well - update python-2.7.10-overflow_check.patch with python-2.7.13-overflow_check.patch, incorporating upstream changes (bnc#964182) - add "-fwrapv" to optflags explicitly because upstream code still relies on it in many places- provide python2-* symbols, for support of new packages built as python2-foo - rename macros.python to macros.python2 accordingly - require python-rpm-macros package, drop macro definitions from macros.python2- initial packaging of `python27` side-by-side variant (fate#321075, bsc#997436) - renamed `python` to `python27` in package names and requires - removed Provides and Obsoletes clauses - dropped SLE12-only patch python-2.7.9-sles-disable-verification-by-default.patch, companion sle_tls_checks_policy.py file and the python-strict-tls-checks subpackage - dropped profile files - removed /usr/bin/python and /usr/bin/python2, along with other unversioned aliases - rewrote macros file to enable stand-alone packages depending on py2.7 - re-included downloaded version of HTML documentation- update to 2.7.12 * dozens of bugfixes, see NEWS for details * fixes multiple security issues: CVE-2016-0772 TLS stripping attack on smtplib (bsc#984751) CVE-2016-5636 zipimporter heap overflow (bsc#985177) CVE-2016-5699 httplib header injection (bsc#985348) (this one is actually fixed since 2.7.10) - removed upstreamed python-2.7.7-mhlib-linkcount.patch - refreshed multilib patch - python-2.7.12-makeopcode.patch - run newly-built python interpreter to make opcodes, in order not to require pre-built python - update LD_LIBRARY_PATH to use $PWD instead of "." because the test process escapes to its own directory - modify shebang-fixing scriptlet to ignore makeopcodetargets.py- CVE-2016-0772-smtplib-starttls.patch: smtplib vulnerability opens startTLS stripping attack (CVE-2016-0772, bsc#984751) - CVE-2016-5636-zipimporter-overflow.patch: heap overflow when importing malformed zip files (CVE-2016-5636, bsc#985177) - CVE-2016-5699-http-header-injection.patch: incorrect validation of HTTP headers allow header injection (CVE-2016-5699, bsc#985348) - python-2.7-httpoxy.patch: HTTPoxy vulnerability in urllib, fixed by disregarding HTTP_PROXY when REQUEST_METHOD is also set (CVE-2016-1000110, bsc#989523)- Add python-2.7.10-overflow_check.patch to fix broken overflow checks. [bnc#964182]- copy strict-tls-checks subpackage from SLE to retain future compatibility (not built in openSUSE) - do this properly to fix bnc#945401 - update SLE check to exclude Leap which also has version 1315, just to be sure- Add python-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- add missing ssl.pyc and ssl.pyo to package - implement python-strict-tls-checks subpackage * when present, Python will perform TLS certificate checking by default. it is possible to remove the package to turn off the checks for compatibility with legacy scripts. * as discussed in fate#318300 * this is not built for openSUSE, but retained here in case we want to build the package for a SLE system- python-fix-short-dh.patch: Bump DH parameters to 2048 bit to fix logjam security issue. bsc#935856- add __python2 compatibility macro (used by Fedora) (fate#318838)- update to 2.7.10 - removed obsolete python-2.7-urllib2-localnet-ssl.patch- Reenable test_posix on aarch64- python-2.7.4-aarch64.patch: Remove obsolete patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- update to 2.7.9 * contains full backport of ssl module from Python 3.4 (PEP466) * HTTPS certificate validation enabled by default (PEP476) * SSLv3 disabled by default (bnc#901715) * backported ensurepip module (PEP477) * fixes several missing CVEs from last release: CVE-2013-1752, CVE-2013-1753 * dozens of minor bugfixes - dropped upstreamed patches: python-2.7.6-poplib.patch, smtplib_maxline-2.7.patch, xmlrpc_gzip_27.patch - dropped patch python-2.7.3-ssl_ca_path.patch because we don't need it with ssl module from Python 3 - libffi was upgraded upstream, seems to contain our changes, so dropping libffi-ppc64le.diff as well - python-2.7-urllib2-localnet-ssl.patch - properly remove unconditional "import ssl" from test_urllib2_localnet that caused it to fail without ssl- skip test_thread in qemu_linux_user modes390zl35 1663676490  !"##%&&())+,-./01224557899;<<>?@ABCDEFGHIJKLMNNPQRSTTVWXXZ[[]^^`aacdefghijklmnopqqsttvwwyzz|}}       !""$%%'()*+,-./012.7.18-150000.44.12.7.18-150000.44.12.7.18-150000.44.12.7.18 idleconfig-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defidleidlelibAutoComplete.pyAutoComplete.pycAutoComplete.pyoAutoCompleteWindow.pyAutoCompleteWindow.pycAutoCompleteWindow.pyoAutoExpand.pyAutoExpand.pycAutoExpand.pyoBindings.pyBindings.pycBindings.pyoCREDITS.txtCallTipWindow.pyCallTipWindow.pycCallTipWindow.pyoCallTips.pyCallTips.pycCallTips.pyoChangeLogClassBrowser.pyClassBrowser.pycClassBrowser.pyoCodeContext.pyCodeContext.pycCodeContext.pyoColorDelegator.pyColorDelegator.pycColorDelegator.pyoDebugger.pyDebugger.pycDebugger.pyoDelegator.pyDelegator.pycDelegator.pyoEditorWindow.pyEditorWindow.pycEditorWindow.pyoFileList.pyFileList.pycFileList.pyoFormatParagraph.pyFormatParagraph.pycFormatParagraph.pyoGrepDialog.pyGrepDialog.pycGrepDialog.pyoHISTORY.txtHyperParser.pyHyperParser.pycHyperParser.pyoIOBinding.pyIOBinding.pycIOBinding.pyoIconsfolder.gifidle.icnsidle.icoidle_16.gifidle_16.pngidle_32.gifidle_32.pngidle_48.gifidle_48.pngminusnode.gifopenfolder.gifplusnode.gifpython.giftk.gifIdleHistory.pyIdleHistory.pycIdleHistory.pyoMultiCall.pyMultiCall.pycMultiCall.pyoMultiStatusBar.pyMultiStatusBar.pycMultiStatusBar.pyoNEWS.txtObjectBrowser.pyObjectBrowser.pycObjectBrowser.pyoOutputWindow.pyOutputWindow.pycOutputWindow.pyoParenMatch.pyParenMatch.pycParenMatch.pyoPathBrowser.pyPathBrowser.pycPathBrowser.pyoPercolator.pyPercolator.pycPercolator.pyoPyParse.pyPyParse.pycPyParse.pyoPyShell.pyPyShell.pycPyShell.pyoREADME.txtRemoteDebugger.pyRemoteDebugger.pycRemoteDebugger.pyoRemoteObjectBrowser.pyRemoteObjectBrowser.pycRemoteObjectBrowser.pyoReplaceDialog.pyReplaceDialog.pycReplaceDialog.pyoRstripExtension.pyRstripExtension.pycRstripExtension.pyoScriptBinding.pyScriptBinding.pycScriptBinding.pyoScrolledList.pyScrolledList.pycScrolledList.pyoSearchDialog.pySearchDialog.pycSearchDialog.pyoSearchDialogBase.pySearchDialogBase.pycSearchDialogBase.pyoSearchEngine.pySearchEngine.pycSearchEngine.pyoStackViewer.pyStackViewer.pycStackViewer.pyoTODO.txtToolTip.pyToolTip.pycToolTip.pyoTreeWidget.pyTreeWidget.pycTreeWidget.pyoUndoDelegator.pyUndoDelegator.pycUndoDelegator.pyoWidgetRedirector.pyWidgetRedirector.pycWidgetRedirector.pyoWindowList.pyWindowList.pycWindowList.pyoZoomHeight.pyZoomHeight.pycZoomHeight.pyo__init__.py__init__.pyc__init__.pyoaboutDialog.pyaboutDialog.pycaboutDialog.pyoconfig-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defconfigDialog.pyconfigDialog.pycconfigDialog.pyoconfigHandler.pyconfigHandler.pycconfigHandler.pyoconfigHelpSourceEdit.pyconfigHelpSourceEdit.pycconfigHelpSourceEdit.pyoconfigSectionNameDialog.pyconfigSectionNameDialog.pycconfigSectionNameDialog.pyodynOptionMenuWidget.pydynOptionMenuWidget.pycdynOptionMenuWidget.pyoextend.txthelp.htmlhelp.pyhelp.pychelp.pyohelp.txtidle.batidle.pyidle.pycidle.pyoidle.pywidle_testREADME.txt__init__.py__init__.pyc__init__.pyohtest.pyhtest.pychtest.pyomock_idle.pymock_idle.pycmock_idle.pyomock_tk.pymock_tk.pycmock_tk.pyotest_autocomplete.pytest_autocomplete.pyctest_autocomplete.pyotest_autoexpand.pytest_autoexpand.pyctest_autoexpand.pyotest_calltips.pytest_calltips.pyctest_calltips.pyotest_config_name.pytest_config_name.pyctest_config_name.pyotest_configdialog.pytest_configdialog.pyctest_configdialog.pyotest_delegator.pytest_delegator.pyctest_delegator.pyotest_editmenu.pytest_editmenu.pyctest_editmenu.pyotest_formatparagraph.pytest_formatparagraph.pyctest_formatparagraph.pyotest_grep.pytest_grep.pyctest_grep.pyotest_helpabout.pytest_helpabout.pyctest_helpabout.pyotest_hyperparser.pytest_hyperparser.pyctest_hyperparser.pyotest_idlehistory.pytest_idlehistory.pyctest_idlehistory.pyotest_io.pytest_io.pyctest_io.pyotest_parenmatch.pytest_parenmatch.pyctest_parenmatch.pyotest_pathbrowser.pytest_pathbrowser.pyctest_pathbrowser.pyotest_rstrip.pytest_rstrip.pyctest_rstrip.pyotest_searchdialogbase.pytest_searchdialogbase.pyctest_searchdialogbase.pyotest_searchengine.pytest_searchengine.pyctest_searchengine.pyotest_text.pytest_text.pyctest_text.pyotest_textview.pytest_textview.pyctest_textview.pyotest_warning.pytest_warning.pyctest_warning.pyotest_widgetredir.pytest_widgetredir.pyctest_widgetredir.pyoidlever.pyidlever.pycidlever.pyokeybindingDialog.pykeybindingDialog.pyckeybindingDialog.pyomacosxSupport.pymacosxSupport.pycmacosxSupport.pyorpc.pyrpc.pycrpc.pyorun.pyrun.pycrun.pyotabbedpages.pytabbedpages.pyctabbedpages.pyotextView.pytextView.pyctextView.pyoidle.desktoppython-idleChangeLogNEWS.txtREADME.txtTODO.txtextend.txtidle.pngidle.pngidle.pngidle.appdata.xml/etc//etc/idle//usr/bin//usr/lib64/python2.7//usr/lib64/python2.7/idlelib//usr/lib64/python2.7/idlelib/Icons//usr/lib64/python2.7/idlelib/idle_test//usr/share/applications//usr/share/doc/packages//usr/share/doc/packages/python-idle//usr/share/icons/hicolor/16x16/apps//usr/share/icons/hicolor/32x32/apps//usr/share/icons/hicolor/48x48/apps//usr/share/mime/packages/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:26006/SUSE_SLE-15_Update/3c4a72f70b5bfb44d756bab100f0b2b2-python.SUSE_SLE-15_Updatedrpmxz5s390x-suse-linux  directoryASCII textPython script, ASCII text executablepython 2.7 byte-compiledUTF-8 Unicode textASCII text, with very long linesGIF image data, version 89a, 15 x 13GIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 32 x 32PNG image data, 32 x 32, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 48 x 48PNG image data, 48 x 48, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 11 x 11GIF image data, version 89a, 16 x 13GIF image data, version 89a, 14 x 11Non-ISO extended-ASCII textHTML document, UTF-8 Unicode text, with very long linesDOS batch file, ASCII text, with CRLF line terminatorsXML 1.0 document, UTF-8 Unicode text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPPPseԔI0Outf-88950079d6bf89b133362980dadb2777733fbcdb25d92da5fa6051478162b80d5? 7zXZ !t/8]"k%js)  8ZQfn/sϝvѭx(AF/~hE!1`MEC꽸={} +7$IvE.Ui\:ؔۇz׭ Q,aI,s.r^/jܤ _Nz_|)A6+[,víg* q* i0IQt[볋sU}O,1t_6-E=fnX<8Oy[sݱز5pi. /VKSlk2˙Lw]#`*R}pآ ScdY4&Zx8Y(zfL MqC xL8<$(ri0l!H1xOM!hꅭ$]@&cԗ"TWٔ%0q kBIE5֢?=oIS[ $.5<31'Gihl-5p6.Nr-)SqG gV,j97dU3C ,Dp:B79ϟr)r\yibFB1^[1]hɟᤑcQ8ٍgn;g5OXf Ux)VyECەVNF9L T~ >̪N^q۹xQc)v C &ǸtHُq8u,C+0_4P'89hB+0/s([h$_@4f ,Ril y6\Ą"H(5_Uۊk\d(wTžqO _tBg6^KZ2yj4tP,@|eo6ȃQ%4zp`T|ۥwl: hL릸u~%aB-NI&IpQm| iu ˤl,z MD᳃| j:謵9wtKylJzzցQ$ CzyM ,opQ,Bd@"(@8ʤ-zs;+<6j:@g"X.$ܽ`=voAM{b4M+r %z|%@Xiהk9?gof3 gtI>!.У42{\JFesc?S` ?:yJ4=r'6$ceX&obW&%{|zB tD b:؎7k6.2.ؤm.2JI /o|}t}#^ N O)6x=r |82}Q7cL&ޅI{io%IaJViBmv0R6|V~ k(< #9\aݚZ x[=2ݱ2]ĖՍ* Ɨqv +1uy5dʨSϏ(E²f@ZxΧ(D}uE8D%t4g;0e +X0XoF'!nwvpJGmyXwH.̰yk= oqy%Grzn֊,Y~[̵JY]uޒFl ޗ2)*_ ހM af^jꉻh]Y/ ] lԄ$eWm[GN뵬4H;D~}; e>k"={6/m@x޻kp_^ezDiQf2w 2zhϵv31"ʆ D?쑀qre1,̥Q=s[j'Kn얟eՊz1V'Nz:Y64j^}A yp[6AM}$44g=TwMłvԾ:tKM-@Ef/z5X43OM=q~ljL*"GĮyr/>YfȏJB`.yr/kz5X9Yz @N.SPH G !sn)LвGp Ǜ/?UL7zHW0iQE59ȠH_N^B!rzPKUWt>@\ӐP8n5@q9:9sU Lf[?69w$P6σna7Np vdB&|I>VvN9GR#eeV@}`Z=fhrP7tAa%7!p`zQwz$w0;C rjp +A2fCKc!'. =s/bO3gE{heCJ4vK@羢q(=I[lh f2dٍٳ-a#Pp#.Danʅt5ޚ7Ym݌/om/Y[F5?SroNjKU1Jz" ZFjp!3yY. P-"z@Ó"(~}Ү];iV2.9g ˯K@u Q~x-eN@> 0\D1cn=FjQA1B2CX# ;8MP,[aCU\bˇEF9ksqaҹLb੽v{*ΘJ/ּ' !լl'Pu^)?Ztp4Rk80uJV*CS:~-C3ʃ2&~Zi//slS{>jnɈClp7y|`0DC HnQa-M4I,&6fCGϜ}#MJ5Fl:y{-F;CGzP cͻQ"<7UQN.?eL J-'19#1OͷSk^9aĩ3j*_ike*ș9Jjk`Cp',W/&E,އ w+l"D4Q;o,ZeVd̙2P o*;ں,_;W;!rOvMVNwqisSVy,;D([e7YQ8ͯ|]w=%څgvPYȧy~/Mkꮍn5 N%{Mɫ}hd"ty cBy,%(ZV[pH1aПcN˅ZY\ix,CZ0j<3 =ZvU0?8wJjƪ6LjJu=Pew)ݬ)-Y"0U!ѭgmxkJm?gu+*q/:/B٬@{'h FBN)eMM(A!\HBZR!2e#I_fxI5 Tl9V%S.>S1n:AvVB1ӞDq$sIۼjwF >F&!P@%,r9ВP,'%-N/5J!~+*H:`W!1Rn{s$[YR R,np'[?H\)gޙ0Hɏu骺Vz8j?y?GR.b +?a֫+2Zn\gidQD5*<VKg)2W9;zv >BXʝ}ng[MLCq:NI~3y?IK}L@J\m~Dƙa^FooCCfU =ʄ ('>ΚO:΢ NN}shM,ΑVfv v]wlQ;*Ygq69eMmR" ՚=)*2v.9,VS~&e^3) 'fXJ$GNIt`O\GmMel@ cXS$7Dp1r'{"OϮK4&b7 R ;Ei]tL`,/v 9*yIj<p$*ILƊ=!CSMY︒(,kX6 ';3 {bjqdu9* 𾣻emXVJgOF6V#a]>xcaulrƀ ' tCqfŔ<<$s1 dlk #rH ?0fJw#fˁvgUD+K#Ƿr3'Ckt`ʭybj*T >JwK/ucEZ/Wgtl5 Wz`wY0# Б.ae^[Ǘ*]|ay kW\. 3SNP߶6@XËb6WJW3QZ:SZZڌCgs\g!4# i_2iE5`[ /.!Kt1%ޮ=/ Qb/\gA Om(I6 ӧef_1L"zv4YM2 qD r FNf4 ×eJGlM;_~4k``}A!/޳&& ]E#Mt52I- qPeفDluZRVƯ|"\ٻ!k$"<5I=ü򖶀eu$ÁUW{)ter>G7jo\G|KSdfQ2U/&[{Y5 v֤pZ1=8"1L~\B˿O`LCis0op ey")iv)ʮ}hHn)V[O_7ku> Gyq\LTmظѨ>2揞. jc !R'p2%Ƕv0 z›`I <b>1ۘU|5%W* 梛 I0%aMЯZf:^冓ʻe(5aEKfHE»;xk|[g}}rѿu9JIw~R~e _Pq3F=@CڀR+$0?tT7˔K/I Aͯi⁔j*nȱ% N ѼyK`ZǙDArFV|0Q϶9iI]QZ:: zOʴZ8뀾W/iQ[aRkxL!/N+>mgPđRHѫl JjgYu@ЬڛBK[!(oyDv:eKh",rj0c#pT< ~A4drvx$c -tP}V/J71HjK&rrǾ7^ZWBqx? AA"J鏡4VAuV\{&F $|w&, p-4ŶXFGkL|q7uTb~N@cr<PR d%DA:SZT $0]NsP/sLDoP:&%;Zui_Z߰M+}ڸ\X.j׊bί2/ƿ*!$G`0s}Xdд=L}5{9;L:F? b I8(fͯ~!g5}'0*t#F^j Ip PN5pyl򉭓4<֣0_}ew#*YK ^)m ,DA;˨BݡC4<$;2tPaKoP ,j%:FvJZ{{J6IEm&>].!ݳ4G9hxGf[^FݥL¡*/'>oRWy/Zu(3Wא݈DU&/t(k:&7rF\htr6Z]7 898"39p˚Te~g%&%G8N6=+e S+BGSqtrH!,7E赈rYfʀtGiVzNp987ڻ%۾p$6jWU96X[?ӍvC*IM=oR5T yPؔFon|U+'S/h)c+ވ΄͎=3A3dW9XxkQ֝'7CX"AQ?hiAe<IXiNh; l]yO.?'A'Mx57''cxWP9D\1ܕxASspCo` ܓ1~>pa2{n,#lnmfŮd7"s,D7K ,=$^zçDb& Iw zW*/7@K`%)7U3-;.Wf)ZH7É_!!O&.vh$搭Ťĝ_"H*vhtfPK m%( mvۓX#Ы7]G D.TYTD)3Ta)6\c1AvG m$$ItJg[njSF8,sxݹfER`Ju%2`a @E[MJGT*(3!hdLù>;~=dWKDpn߾Գyh,Y5 dzG.#,KpjZ%>SPB;JI_ύc酈`JMfm6Ƭ˷h#EtcH0䭥v"<P@zs0Y*o:KX>ſŹ:ܑ3(,#X=qeIZ@RUZu"9a7wP&>,*G(s3M~U71s/,*P2YIOb 3]u @3F^j4&c$|ȵ% /e^osQUv.S2SCXe(qv.q}? ߷ jK(}{MA yxozKL*^jk6\^"l\x jq LzL/KNCzن&xM#d萷02nҷ"?zm=!`>VLopcף)H5 (ڗ㎀+"! iO,c4SNJLL%PFzAU ۡUI(_4 îp Soc2">!-Q< `r=7rVӬN0Ϋs) h;(#QEX1uW1_F+ƢWٯd>,}nkeNXv}UW.G.-pD{:VY/XFF5^=,ȏ,=`W(b:kk$24B+T? Zh E%8a d'F"W0jB9+G)$rmWRIA)|T9Q{"L`#~sV=-IiK/9w@B}OM}9c1,V- f58#{ u;}k9P}ӥ^㿄>zGwFL꩞u"|=m\ :._YPeĹw4[)~/1X,3}[ 6 Rb)7S\zVj]h4bw3} 6->ev8w6 ydyߵZd,$OۢLğ 2^l8$_1 H: jUOc+7K='c0KC>ںv}:yupsO60b&}?sz{ ;Ymy .RVfL ʂ2}NLjt F`)9`Grgì.T]1]яzYK0u,(]IZ:40u0bfQ}EH# 4w>=I4aU9euvk9iYN8(OTxs/>{QCarXc%mjOX,sIFq ]7,apT9liΒ;-4` ]9al+߄ͻP~WS7]k;\W+7ؽu셴bRL5-v$Pp2#`X 7Q‹|1A'VW=z%/>M6hp_H6Aw -ʥ;4?$Uj_H]nѷ'Ǹ5ވ>cb^=Gel!.C$'RIF>h-r|{ؖoԞ/L6ζ>tكWY+­_>?npRna%甖Wޑnuꑐ<0V%xֱ9?Adc[ʯ'EC~L0mWvs5}9nGm &x6Yl 9ƋzbGSBɏ V눧dBkHjeQ[nu,aW׈9G3'hgCOiarqF ;U˰$pҟof\]KQ&ъ G7o)fŲ)0xol0*Y-!, /-+}h$PK ˖02J>[Oy~H2HVg[(gD|]tb9y\Zؐ62'ǭf9YUwg{$ Y,T֖)Jhj$-43Thx82rv`9ՙN}0Aj)~g4a8z2B%{4 Ff&A|uh+Nqdҫ/pQ9 ˿Ks`нc䲆LyÜ< QsI#I"YW|9'1`wV>k7tTqY֋fͣwqXvȥk:C `CaLO(iá,_hbTI`RB:QWǃ8Eޯÿ()/<"pv>##={SBVۯT}AD3bE?x^"[ymO2Go昵2hfZyj>qc'`bd_4ƒ#QIDLt3wGXmiJFU)ϰfr)l2Qt{-eڎ""܌ż?7(PϼFt\,) <:Zwy/flJXLSɵss͒3Οұg+ yl{#fY[EaT m_d8+{:. $7J"ytrI%|1>:̦Aa/5*k_en}w1xY4?G=3=nV]s&22(lQ7hV{2 l\״_'&D7kq#6շ~:i@3}sF!"g;yDӢֿ;āL<!Td>%S\A8ȇ JpDe=Kʧ+UDk#v ļ H^E&.x}t_ <-(1IBOxai3h] ކGp=ZVC_٬ 8$yU5}xL rl9^% .]9 uW$Ak3Ʀ3ƶJC IpPiӚEM?,56b^MQٜVaQj ̥T@v-N 8U2?^:PR˽eo)f)sOЏle:g \|'eKx5;Nnov8"o鶴pj8hYSԻ"Oo-omI_'S 7 ( G2'2KF{},bb'֭O#*bR(кUv2RYQTLbO~_%7|>T׺jNJMҖr0;v%@; bfu7="'<]SL2EN#vƍΆ䄪⼟Gv'ͮq"c4ˑp{'`4 /SzsZweP =3([Ӌw75N/hН&^ Ŵ[ 0˝"f 1&.g.0g".QU@$ i:SeY ̇8a&kY68˛U2\LuKɰoL^qv(ಇ`aO3 2k-ڕCG;BnZ M瓖UCavB5[`b)I{E3PQ<) cbě" Xooٗ#lO<>_5y8P sFOYyrНp-AYMC?b \ڔw,){xD%p]7xDщ:sb֏v\=:}~)ݖz+%KV*)l^Kp7e(bƼk cٿq>d8bdqŷ.n5<(̺ #9D[Vxg]N+'rSܰA_=,ٶTPIFgt' +$+B*6TO5O<2BlZqqѩ) YZ