python3-idle-3.6.12-lp151.6.36.1<>,4_h/=„dut+  *ݼ%( z+1 &\ӁtJ_S9}[=꽏oiu^y^6!b$}DoRRόDwZ{)Su-ž7~ 37I:P"0ҒEu89MOKr%jYMkXb2;\8u|ǃLHކ =9l`5@ʩH]>>H?8d # T48DH[do $ L$ $ $ l$ $ p$$$hŒ$   (8a9Μa:)aF7XG7p$H@$IH$XJYJ\K$]S$^bcdAeFfIlKu`$vw$x$yz4Cpython3-idle3.6.12lp151.6.36.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._harmbuild014uL;3<77 J/&*&9747*** = = =c2c[;_$lMu Y(, "!4`J/l::8VJ,=#2R:"11+"+  **&&""",n+,(}(M(}]dadiii q D q44  b  _ L _ZZcc d3U'U_.c+H.c8 8 878i:7:O'O$$$ ^ &@&&@<]6S<]T p & p  6N-k 2i8"%tg;w! u dQ#xf R8 vH-P q%E$  g-UemB  3P%wH$ y :Np0NRdCxj \03fV:+' <(%x!: fA큤A큤A큤A큤A큤A큤A큤AAA큤AA큤AA큤A큤__끺_끺_끺_끺___끺_끺_끺_끻_끺_끺_끺_끺_끺_끺_끺_끺_끺_끺_끺_끺_끺_끻_끺_끺_끺_끺_______________________________________________________________________________________________________________________________________________________________________________________________________________끺___끺_____끺__끺__끻___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________Y_7_7_7_7_7____________e75df0b77ff61253be457af636d5eb7c55a3ff2b6a733beea844d2b294972ebfd22eea091d1f8f7b11a320cedb5acd822469c0c7ad3629d1f50f6fde6194593dc263472e71b9b557264dd066c5f06ea76d0935d25b19b92e9ac7bc49de82f15763485c7ce263c2c8e1076c52d6044dc008a75794aefd670dd259e75b1288c343251aa57bcef1bc9567a229154ee1370395c03cc241fb814555731338d2b695aac7a0cc61079c6e2df53457e63b413e0389f2c0061eb55e80229da932c8f8dbd61abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8531067a78ad392f25631aba1d885f40786cf5f47854577162c9f90ff1f33164c7c98d566a13fd599d1c11a375f387fef69b6c595c4f18c5d88c188a860be0e55bfe9c9b62bf4a4b1cb8419282f78bc98f4cde453a0d6bbfce8a7b76177a1af94ae74eb8119aa88532734a84dd782830f8f5cb4dff01cfa4372b1e4afa35653134ad97f34e64abd93e1e32aff017ff8914e3204a76044f1486bc9fbefa07bfdbb26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb765042963d5f8d5d1259e9874a263a6621ca6dd1d57608faa5f28f7d61f349583e07814a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aa37484901eb40eefa846308e1da3ff6f240ea98f769a2afc3cf4fdba00327ecbef9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65afc11c3d934f8de7d3285f616d0a9129f8113b158157501829c2e452101d067a49a59e2abf1840156e9db8f85a38822fd56ab79a139eb95ec86f1fba1bb87326bfcea17dee8413652327d3d1f7565ac6b32b392a5e424947ede2088e27600346909878665b07bcb76fb3222ea1b4947a553ad0af76fc12b31651d1707980791dca932fd307c4bdc223ae39165f413b2a530b2dbf6323e8a272865da6627535ea3c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae9c89a3b513501ebace8e428aea68dce39d0af9f29196e08fc9ea49c99605e79e72fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df893f8058df4fec56eb20ff67ff84c86fd3d9697e2384c5a290ed696f6d3187aa45f8f55514d26791588de02fe685af0ab129174b32ab93efa39faf6140b6795d9d20b5d4c84b982e407d98879d1e09db53c5b0c007aa3c5717d968352936fbe9e9a81c5585e7827bcf293ce38c8cd8994f939f50ac0bd5ca5fbe55be8ce9eda0c920b5d4c84b982e407d98879d1e09db53c5b0c007aa3c5717d968352936fbe9e99044d8713b7a6233c5c372f1d0011653a0d206f1fb18a387fa7caa49df8e28aa1a7391484dbb361aa4dc0ed6afe0a75de4eefe7d7cb367e301f10e4961f91cc49044d8713b7a6233c5c372f1d0011653a0d206f1fb18a387fa7caa49df8e28aa110c8b75513ee06c79a6e00f8e08da9e8de826acc4ad3c57e47e8593b4df6ec2dc3ea0833e78baf9b2451afc81a9e6f85787825dab123a4960196d836d3856f0110c8b75513ee06c79a6e00f8e08da9e8de826acc4ad3c57e47e8593b4df6ec2cc7e7cb69615783b0f010df472c47978142225d8d3fa93701d0a695a5439b2d9a189b59cda9d48752fce4f057244b27b12436b51af4e04b1e9e4ef8389c3ed2ccc7e7cb69615783b0f010df472c47978142225d8d3fa93701d0a695a5439b2d93b3326550dcce4f8bd979931dd24bc1083d588f70fa7bf9963ec4606c4e80e5cdd68c7b60d2056a1bb67fccea5b79d8a2a01057a5b15db1ad3d72340b83458a5296c144a83479e34036040b15cfb9768466415625707b39932e9ef9ad895f601a8f1cd964c39b6af695886a4fc1466be1088a38edaca0c1bc56ccafa4ef6c96ac398e766139806aa30897cce066f58ddaa95e5fa080bdf2439c683f478846ccea8f1cd964c39b6af695886a4fc1466be1088a38edaca0c1bc56ccafa4ef6c96a08b4c7de5e222aece596d51a4cd25ef0e397c894da2e7385b3a467a1dcf183cff0845109920c63815786da993f38c3e406e306e2d30fc682b74a2a2dbb09212308b4c7de5e222aece596d51a4cd25ef0e397c894da2e7385b3a467a1dcf183cfed8c3cced953f679580a6c0bf2fa8ccd3fd008596c7b89150cf5faddaf56286bfa279642a1422ad73a6fa2dc24ec2d6f9ecb800a8ddb1b9f95f4f271c258dd08ed8c3cced953f679580a6c0bf2fa8ccd3fd008596c7b89150cf5faddaf56286b32ddc9ac1db560fa61caf1cf81b2263938dac91917bf64d46431c3c41e01f3c6f03aed381504792783da56ba439d4234fdaa28d2c56e788c8258baaa885e7e5532ddc9ac1db560fa61caf1cf81b2263938dac91917bf64d46431c3c41e01f3c6dc8dac93753d710da1dfbdb0d5d86aa1b3afe386b1ac7b401fbe0654d0ae979f63ba0759a09bb2f8a43735776412adbb5b4b214e087a0433006e60223906a64583f7ff424dea1ae5c65ab457a433ab7c5627d8f5ccc6071c27b8a7ce83535c2a4dcbd375d1744f2c160dc7f01e3f7c2ce1713a0081e723ee3ed251acf8e32d1806f58ae6ea65ec05951caca56744e2777c4de17e6b28367d2c9ca31092edbddd4dcbd375d1744f2c160dc7f01e3f7c2ce1713a0081e723ee3ed251acf8e32d1842d02d39db36521c54b13edd22c3adbc10f0abbc0852a4a4c0cdaff5d7d243ccb2aaa8e4b2cdc0e23791697392ad2d1aa039b3867c4291097e9a6fba86c88be642d02d39db36521c54b13edd22c3adbc10f0abbc0852a4a4c0cdaff5d7d243cc56a6100acfc7be4d45ebc6e1ddba7961c18bae90c333a7460a84e7e3b2d5a64eaa4ba4f2211dbf83ef938039b9d8ced9a586f510ae90682b6c1584e6bef2aed356a6100acfc7be4d45ebc6e1ddba7961c18bae90c333a7460a84e7e3b2d5a64e1e9714d5dffa8976b6df79b0130833a1a5e70c0eabfe675b7838890ffdf9bbe0913c28d7ca42db9d68e497c3494dba6d8be4d5a81c6b76b842cec0d22a04ae1a1e9714d5dffa8976b6df79b0130833a1a5e70c0eabfe675b7838890ffdf9bbe0f1ecf230fa96082170b2cb14a849dadaf0008d5b4b93dc8c666375006363d535242e81df17e1fa75d7b82d89dff3e706d518411bf99d46136c1be65e6365b451f1ecf230fa96082170b2cb14a849dadaf0008d5b4b93dc8c666375006363d535a17a3286ec0971f9c5da5bd875e4eb28eca6830bb98ceec968a43592d008a46a4f39b665a21adab2339b8a7dc059787fa6a3eb89474075e5785dad2e415631cba1d71d9141f784578158df5521e52ba83f8174cda8585f031d8f24ad34f2a27fffbcd2a60032abb7b1075da5a79b6ca33cb255b4c9f548fda16b5acf7f2ed6b9ffbcd2a60032abb7b1075da5a79b6ca33cb255b4c9f548fda16b5acf7f2ed6b9ffbcd2a60032abb7b1075da5a79b6ca33cb255b4c9f548fda16b5acf7f2ed6b92915389cf234ee8146a5be62d03045f1c1274fe9bf2950d3d593c2d59a08e7b22915389cf234ee8146a5be62d03045f1c1274fe9bf2950d3d593c2d59a08e7b22915389cf234ee8146a5be62d03045f1c1274fe9bf2950d3d593c2d59a08e7b29783ce6f07ffe2aa961dcce93088d8779ed9bd1de06edb59279e89facb40df63bc1ebad0d79ea9f3ce439bf71a7c62b69df6e8d6e9b84d93c1ade9c7bcb7090b9783ce6f07ffe2aa961dcce93088d8779ed9bd1de06edb59279e89facb40df631686b460587b0c9135efe8891a3852393e9b62da070abf5718b263bfdc529c5122e49eb78ccd6a4b9dff1af5336275c317163d426c9daaf6edbf484a2094b56a1686b460587b0c9135efe8891a3852393e9b62da070abf5718b263bfdc529c51737c1e9c9ba1347ec26615e14ca3d257b394bff16cbebe956d44712f514616a9ffae601fa80c1141354ebf673769dc4a1f60b8b0ce9222254084a242043be3af94be5fd6bcabdfe604faa4ab6e961ceff2b4593c8a05aa48550670f8c0bcb76bb2e1472974fc38853f972a28bcdb1bc739f6303ca75a1c466813a07f56e76618b98c2daca551cf0d86a18af2d2bba9259971aa5cbaf79c299b363b21f6c1f44768367edb3260ec4a65178a32abdb7cec4be2974b598df1ed120f8878113806c0e9a335d0b42b6a8ccb312cf010454c6568f5fad305c601b2ed35ddf480b2c4b3d075e506133a2716a735656748fc9167d8345b61cd0190bdd5c10ca3ab5928e2e9a335d0b42b6a8ccb312cf010454c6568f5fad305c601b2ed35ddf480b2c4b3692fbde5b6c0098fec07624b6eedf42e28cc3d04ab223799b09c74e69290a505162b17f163c6d34fbfe35c18598e2310e8c45568be4c7b6e97da3ff1850aac84692fbde5b6c0098fec07624b6eedf42e28cc3d04ab223799b09c74e69290a505c9b3a3b3d3daced98362084b83c4d2fef7c63ac1783cbcd5792e27718faa180557b0a9bb07647c523a5a108939511d11fe43430e350443dd982c51fc4a5c2becc9b3a3b3d3daced98362084b83c4d2fef7c63ac1783cbcd5792e27718faa1805f2b6dbc926f3ed4918351813183b8d56ba600dd6082e72eea78ed05ffaa7d28fa81c5bf688dcf41dfae15bd938094c925941a506112cd86bf62038d9690474fef2b6dbc926f3ed4918351813183b8d56ba600dd6082e72eea78ed05ffaa7d28f8fe6786bcf87ae79f2fc84c4030d35489920539f46983f6ac09595883112c27cf4c6a9f0346c4d6c69a5976255c6344107cb438a61e2c1d99fd03b073eda9ce28fe6786bcf87ae79f2fc84c4030d35489920539f46983f6ac09595883112c27cb675c7e351fbf8b6eb833ee59b569ec01fb23bdd2b40befb4d0001244e7bbde2b675c7e351fbf8b6eb833ee59b569ec01fb23bdd2b40befb4d0001244e7bbde2b675c7e351fbf8b6eb833ee59b569ec01fb23bdd2b40befb4d0001244e7bbde22a011946f65d3fdaa28f3223cb743e3396422cc290d12490c394f2dedc9cd033517138f20b0d4c1a755e52ea360026f7879d9788287236ba515f671aa20dc4a72a011946f65d3fdaa28f3223cb743e3396422cc290d12490c394f2dedc9cd0337628ddd842a34b1b7f146cecfd90b339fc87b082319472889e9ef85eae3704d592f5c4d5cb3aeadf0614f4e6507a62446fde63a062235f8f51522804800ea81f7628ddd842a34b1b7f146cecfd90b339fc87b082319472889e9ef85eae3704d593704e5659d051e23befef5a3c26d79db97055750a23b3b9c25e6c49a498cef97748845c0a5c33d73cdf797f496c0aa315371d618a647dfc4c57ddcb95421fd993704e5659d051e23befef5a3c26d79db97055750a23b3b9c25e6c49a498cef94cea3397cdab4fd11c32622bca041521773bc1a3c23365a255da25a3ba1f2e832df1209c6dbed879ab4e238251fde0395d1ad1fef4590a43c57239f58d393589fb45e080020e228b9a4a7eeb43a45d140012ebe5be847e64e304f79779081af20c062693037dbbd28eaf77f3e288fdac701ac231475a03b6e2c6ec842fc27a8e942a40c0cab7e84dc3dc16e42a306b859c0e99471522c9517c352b9a823047c90c062693037dbbd28eaf77f3e288fdac701ac231475a03b6e2c6ec842fc27a8e7ada0169cedd3ed23c39dd81ff8570fe6b9f86e2ac8b887a75a76ef6e42f3e24da46798c6817ae76a258966c2634fedc54e249dfa1f132e9ff9796f92c564e9b7ada0169cedd3ed23c39dd81ff8570fe6b9f86e2ac8b887a75a76ef6e42f3e244edd1e20ccf801b93f8d301151ac49f056f0f7ce72cc008f930026bcf8bdcec79140f5d0691fcd2e63403da5719e73c6e55c4a9f8cf7c330b41c5df44a4ec2014edd1e20ccf801b93f8d301151ac49f056f0f7ce72cc008f930026bcf8bdcec7b04679bc76b592a30bfce8b44ff089421b7e6b6001bcf2a63d512bfa4701618cda84c537de2d64c36bac0249183ff3a539150043fe1359fb0cf5e9a6cd870bf0b04679bc76b592a30bfce8b44ff089421b7e6b6001bcf2a63d512bfa4701618cb467c224ff423e0d44f42f7733233ef60b18be15195100367a783b99de4996e1b467c224ff423e0d44f42f7733233ef60b18be15195100367a783b99de4996e11b161f8b42620b18a6e7ef25bea8a62a2584ef915833a144f5a25e049d2206192ae62c3fd14a18d562b2bb6870a86563e924886939ef07ef75c9249ec2975e4e675fe7bde1e7e455c62273e8071e45d3027a542b25ef9610d0be9c37b70b00e9a0e5c363317c0ef54cd9214ccf7a30bc9c961cb948c9bf0552fc1bb7ccd4c3e4d24d0e9ab7ed13a00bee27afda6937d144741b6fc85d71e74414f85aaa1b2fb85b39b9539fe9c0b14170a6d162b11545abbe38db5fba9017b34b697edf2e983d88547f0e74d4663457029e2f8633713f31a9e6d96f0ef94504a7c25408d060136fd06da03ba37a840838f83b6b84936e1922ba544381fa1e46719551583950c5447c95e734957d9da91fd082cab6631c78d2f4d4f50df8bf220dfd26d353b3df6fd06da03ba37a840838f83b6b84936e1922ba544381fa1e46719551583950c5019667bff77a028ed1927d7601ce2959c75e15d7231243e7bcc61c04b5baa2f20b5f795b1d18598a893e413bd08b9c6235f3b0de66a8386e176491f7621b26c7019667bff77a028ed1927d7601ce2959c75e15d7231243e7bcc61c04b5baa2f2bd5ace77e08711723b68b1926c621dcde1daeafca98d6be63d978126bb195c2c7a046b0508cb36fdb3b11cde18b45142354722eb34151b1752660684aa60c8c6bd5ace77e08711723b68b1926c621dcde1daeafca98d6be63d978126bb195c2cb60c1667579e3724c352686402e50244800e4262f218e575b02e5ed4d18df40cdb712eb767a4eadc3e27fd2023891b1a3acf001973405a396c0af23ca5f200dafc4bf4d7964bde2627645ed601fce95c1735caceb6fec5eb5eec2683c7cc146892763d6539056928e9574cc48eee9527394c1e893e6fbdeffaf895b61db68122c688877521bac4bfcd14a07359f9214afbfb3efb842b25abb58378f6a367515892763d6539056928e9574cc48eee9527394c1e893e6fbdeffaf895b61db6812265ca18612b6fe819690cf40b17e548620dd3a6e5e6afb3cd65e4d5417ff9d0e15202a48c75ac4be134b075dc247caeec9741ae83b1b6424e7510346e7cd52d8bdfbdfb48d968984e1bfacdce61da165f0c513fc96d17497c56a11681546f5f78150e3b9eab9dfbd3848363e9645f49c2819bf6f2be509d2056abf317f80f97069de1e9215d3acb65afbc3fbebb08f0a0c15b6db5892a36d96d9c5cd7a7a1f5ac150e3b9eab9dfbd3848363e9645f49c2819bf6f2be509d2056abf317f80f9706eb3741df78a9679061a00eef9c3bcc1854994398af7a090e5e7ab2e7e6d2be79eb3741df78a9679061a00eef9c3bcc1854994398af7a090e5e7ab2e7e6d2be79eb3741df78a9679061a00eef9c3bcc1854994398af7a090e5e7ab2e7e6d2be799cb5e6775294d2e74c6da9c5b2550fa59e31826bf66dc4296f5bdcff55c002ae934a65b29380878882e16ed36a4fe24fda5514b436cf41169ccf430bf23491d09cb5e6775294d2e74c6da9c5b2550fa59e31826bf66dc4296f5bdcff55c002ae89697e3ab62e491d692da7921488fbaa53865b243e4f2c358803b9a5a5566a51484ef343bca3c195cbcb5f01a93c45a56296e52b0277985bc026c6a41c14d08889697e3ab62e491d692da7921488fbaa53865b243e4f2c358803b9a5a5566a51fe6757ccaf80c3cdc1a0337db45854ceded5a2655a95d698dbe1ffb935fecdfd365a0688ed828049fda2b0b3987a18eca476ecca265b4ab84c4c88fd981ce442fe6757ccaf80c3cdc1a0337db45854ceded5a2655a95d698dbe1ffb935fecdfd8c36c827c16c9bc16bed98097049d03093c900052a145fd49d446b407e08b01ef7bc6bdb2b133fd61f4d4ec7cfce312e2e18425c35f316dd1b960eae2bea83c861910c290c4d711f2d2524c9d9108dedd2ea800145f8113437127fd0b5189175a99d18a169ecc5f1cb7d63fc7a57ca04a21b7d9c9eac826f4864af89b7023d9fa99d18a169ecc5f1cb7d63fc7a57ca04a21b7d9c9eac826f4864af89b7023d9fa99d18a169ecc5f1cb7d63fc7a57ca04a21b7d9c9eac826f4864af89b7023d9fe9f541bb5199442f27b04088f42d78e28f10c55935d33572e4dcf7aeb905de79e9f541bb5199442f27b04088f42d78e28f10c55935d33572e4dcf7aeb905de79e9f541bb5199442f27b04088f42d78e28f10c55935d33572e4dcf7aeb905de79af29808be88aceff617312fe823969991d1ff318c0e97a69be5f96aeb98f7023a5d7c14415620bb130d14e55f80735df861c888e136e3cdde05c739c944e0d4daf29808be88aceff617312fe823969991d1ff318c0e97a69be5f96aeb98f7023841979b8fdeaeda31202a2a1317408a2b8e7dfef2d048da18135c495dd806004a2cb980ba4170db5226302f1c68519d3f17d381805f69a2309f38087acb6aa8e841979b8fdeaeda31202a2a1317408a2b8e7dfef2d048da18135c495dd8060042b921e7bf8d7c2324bf28f2c89a54f2ffeb0bf3298cd7675613a78589e546409e9a92e5d98c55b6fb1a7411827a537a662574f6a1c942dadfd6bb482db12d0e02b921e7bf8d7c2324bf28f2c89a54f2ffeb0bf3298cd7675613a78589e546409270123b955bf320b22a7b351b064763ad5dc8ef264816935b7467210a3d4cf9f270123b955bf320b22a7b351b064763ad5dc8ef264816935b7467210a3d4cf9f270123b955bf320b22a7b351b064763ad5dc8ef264816935b7467210a3d4cf9f1d7b4c5f77339235ea60c1595c804fd8f4803c20a4384a17eee87cf73e8fd3021d7b4c5f77339235ea60c1595c804fd8f4803c20a4384a17eee87cf73e8fd3021d7b4c5f77339235ea60c1595c804fd8f4803c20a4384a17eee87cf73e8fd3020d10c2c21b57bf428ab36bb6546e59572b25f8eb08693a4ff7943f0c3a128fb87aa3d968491958b093169513cd17e2b2a74d264de25cf1b6d2efcf8a034b3ff00d10c2c21b57bf428ab36bb6546e59572b25f8eb08693a4ff7943f0c3a128fb868c85bfe358225c507f77f4ed7b6244da1dd22e06e00a78ec6c9764f421c753368d498614fda82da87038eb3e473f6c56e4cadc1c63fc3936d14f883071a9ac668c85bfe358225c507f77f4ed7b6244da1dd22e06e00a78ec6c9764f421c7533e614f387dbdeb17760d9bb4cd50ae3091545f1285b9be0f5ad4b9a8c9eb930e96cabe6c0114a39fc378d91238279ed629b1a1ba65a3a9d792b4dc75b318c39137ffddac56236387d1143a42f07be881b625621be976faf3034b6f932fd79fe53c8eb28ef7addf5a664a7e3addfbfebe29040a8695e1db515828305aacba2ee4e28e8243b6a3f3fe92243ad474f808c12dffe608019627d48bc2e4d7b39185b455d580f5399568b375efe24fb7db6218d9264822dec25adec25c6d9640b854b65020cef86b5c31e96a3439d09252183f3eef21d4a103a4a909538bac3d0f1d4e4de42667bb690368459585dca6bffecaef498217ff74b9266cac74bb8af98e26730caf7524234fb85e08f01beb716e1a34aa233051fc0c3798a6b085aeac5b4663a7a35f40aa5d22c7fa74a889838f5c69631eaad0a9f4b70e6a439999d419630813aa76a1d93176dc33843b9e5bd4e6165886162d91b19e080e9c5adb30c05da1fb2a050c4e7c354b1434063e2a661edfe08852aa8a23a6f1621509832384856e9e38f992c807348eec7ddf175025ec6c149c20a7c2f597c99352caaa03e45577142ec668ee870cc3b09b7ced4a0592a9a2da5f7ccf8a314b1ed906fd7a30248db8add0abc885fc629c6746aca77cd40026b2dac8d7edb93f1fcf6ea9d28334f4e583b43fdf9bd4a731d70e074ee597aba03f3c8c36302bdc7e74650fb1fcc115c2cee869bed6e5169e410c4cebafab702449b8743c6614c0c90c85130b1ec7d1595e2034eaa93c2ca61854038e64197541906b3402c448b176e34a5af9b6b09b51f28a5d49a8a6775fad9bb944b47d65da733908b432b6cd0038ba99e7e3975ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26f690842feab34887e9863ee013180f93949b36cf3ac9643940968ddc1acb443ea7600c9cf97163c89799bff4dce3996f68fa6efccd4f66eb3867b754762f8cceb2fe1e3de8fad3c95d83407a829abcc028b8b02f85e4661c9c934129af1ea98ee037eff39bb5253b3bc2048ba149f43deec680fdb1f7dde421d9514ea3b32ba37b21cc6acb2a24ace550fc1a55852ed068fb2ecd13011ffa3ba5291b7346d0d8e97a030281647351ebbe56d9b72a581af69a9feeca7a8f5d09a9d3179963c0bd81f83b170583a900f3779f0cf8662ccd25479ffd2f063a6c4fde668a198ee015a3977f0d2c6a8e87db2ef7050ea10afb3a88b064bf5ef95439924e4246411433ffa2f718e123fd1c4e536bb4a471978515787ee9fbf7806a92073a787a733a26101d297127132c5e9634499f41ad00e125ea308343a20b278bee9e9225eb5cbfe6188362a0bc7db8b94c3dd313b97c83ad6d10b79451fd2a8a4bd773cd392b228f8efbf4c316bd701b09a72b084a08248e26a346c6a7636a142391a8b3e67457da5001245dbf74c7881126082050208d25204e48d6b53eb6aa9e67477c6de7e5e6c8ddf5c85d8a517666f61d46963d2a6ec428ed6c89e299997d5f0ea45a8f57da5001245dbf74c7881126082050208d25204e48d6b53eb6aa9e67477c6de704177aea6300a91e6235994aca64c02e05fe4a3f08161771ecb0de3a6d9977f3367e55eeafab5a90d75f49639c6a2addc4a8682846c6d4505c3021c4cb33ff7704177aea6300a91e6235994aca64c02e05fe4a3f08161771ecb0de3a6d9977f32f6379b56d238fb1730decf914a0fed38e367477a0b6a4895b0bd0af18d8bb88e651fd066a201d99506d7a7016ef9f7beccac569891a83429a18b935811051342f6379b56d238fb1730decf914a0fed38e367477a0b6a4895b0bd0af18d8bb880cb0ff73ed6e22377dc31b2d7ad28d3b8f827ccccca6fe4be4e73029e233673e67e2565dc40ff66cfd876e6f7f15d72a2e639655918a3ee5b27d16dc96d96c260cb0ff73ed6e22377dc31b2d7ad28d3b8f827ccccca6fe4be4e73029e233673efdd0bc9336c4360e60f4f29a7b5ad8de0de7ab0fef464d9c6a73e9a44ba960825d5382e214e053fb41f0c422c90eef1b5aa08e5e15b86a8ed347f23229ff8e95fdd0bc9336c4360e60f4f29a7b5ad8de0de7ab0fef464d9c6a73e9a44ba960823f76990907738d6abcec62f366a484b13acf68e42b5f5a8abca00d408ce2610847b06539a34bb26ca1925accf5d4a9035d46b313dd134cfc726b94d1037f78c13f76990907738d6abcec62f366a484b13acf68e42b5f5a8abca00d408ce26108ba76c7696a9a2ba027e4e1171e7764375c75ae3107149aed53f21491fef55398a453cb2c75859c71ae25eddaecebfc14421acfb3aadd8b91d04d3e7ba0778a9bba76c7696a9a2ba027e4e1171e7764375c75ae3107149aed53f21491fef553983ee51b373b88cf7f7386f8c12b79c6667402f4c507c96bc568455fa8354e03902e5f6ba3e37f04de153b26a63d59163686b808b0a754d8fa64f6b8571648d9f93ee51b373b88cf7f7386f8c12b79c6667402f4c507c96bc568455fa8354e03905152b0e1b5524f7a28e6746f8cc1ea98f6345db7f0e86f5e4578d7fd5a55e5ce2c43b25a202b133e450fa256cd2836ec50f55a2c9f1477a738977a5718a1c9585152b0e1b5524f7a28e6746f8cc1ea98f6345db7f0e86f5e4578d7fd5a55e5cea2f71b63355940165e010826c743ff961d2ff567872cbea610a241590c02c13008e39aa2e3bdec8a9ddf481677c0807988bd8bd7c3d5665dda81cc7c73e1c725add7458e76c994bfac2a7dc2dbf9a90775a0a6090d7a69711f18eb830c0292adcdace37e4a6d167528655170b3118a80333655b61a4a61f2f1bd9a1efceeba39ff42fa62d61da5f9dddb11f5a65b1f58f85504857f0f02c596946b28900b86d6cdace37e4a6d167528655170b3118a80333655b61a4a61f2f1bd9a1efceeba398bf854a93fbf441108f187a79fdfadc12dc02783ae7b350cd1a73d22b63e57cbed4253188dfc923de279bb37eaee5e2f684456b2e30568521338a696095366478bf854a93fbf441108f187a79fdfadc12dc02783ae7b350cd1a73d22b63e57cb2b26d8fc067494381e7d0e87ed0383bc6143909bbe2624a1ba00ffd8cd7d7047cfde2feea8ca463e7dd776e6fc28d55ce97902e904bd6fdad0df99fc55228a6e2b26d8fc067494381e7d0e87ed0383bc6143909bbe2624a1ba00ffd8cd7d7047dbba05690436bbec93e98e8b7489b77b1fb0db48f63f817a75b936d95b39cf0e5eb28ceccc7af6a02a5950a5b7cdfd17091ee9b3cce959fa0890a60f3387415cdbba05690436bbec93e98e8b7489b77b1fb0db48f63f817a75b936d95b39cf0edabda809b58edc7c4d7428c3ee01cb74f3caba9684706695fb1acc433b059c2723a29b0763d6cae453e2588ccddc2a0b37d7d7005d816e9e5d92f545f0bf42a5dabda809b58edc7c4d7428c3ee01cb74f3caba9684706695fb1acc433b059c27f81eb21c73aa6a22fbc6d078507ae0394e42ba8d567e571f73fd36632f7c4bfe5dd2023cca0460794382906e721904fe47369c4aa817b197b874524854f72582f81eb21c73aa6a22fbc6d078507ae0394e42ba8d567e571f73fd36632f7c4bfe09a24d12eb194ce4a617f5fd698275aefee75bfda5f0685a51bfc6512d5f36dfd1cbc35884ff56addad1707ac2983b565efe605a6179de1282d132dac260903709a24d12eb194ce4a617f5fd698275aefee75bfda5f0685a51bfc6512d5f36df94a07953cd12b9738e5c5d81293f648cd5b2fb772761b69d75c6d92a2121b801ae6110a252be187c42015c0763db8e4f52665c0bfd04363dc05e504316dbddbc94a07953cd12b9738e5c5d81293f648cd5b2fb772761b69d75c6d92a2121b801b50dc31a505746f28b2ea97910f99b241b941dda6b2d189cd792773065931e0305269f74162d6eff0522bab1b16b209429969a99abb171dd4044f19a04a724eeb50dc31a505746f28b2ea97910f99b241b941dda6b2d189cd792773065931e0370c7c6e7c70d369ab409d8af0405a1befa8d431391fad3ef7ef9f8a836efbd55be8cce727992bb8ae20ca805a7f298334467bfe1606095e3d7845975108fade170c7c6e7c70d369ab409d8af0405a1befa8d431391fad3ef7ef9f8a836efbd557a708beb7733b1c2831d888e0b69dc4f76c333928f13b5c167cc6a3fc0ba6cbc6bfc194171ee5d5849e8294fff2415261d5a22797bc58dedd28240806ebfee5b7a708beb7733b1c2831d888e0b69dc4f76c333928f13b5c167cc6a3fc0ba6cbc2471fc9ceca34389d7922be4b57a434114b1b5a3ae451d082f3af3e4b949aedb8db59d078671c6d08d694663f9b3c4dae510a7dcb4167d9458fdae7bb97ff1512471fc9ceca34389d7922be4b57a434114b1b5a3ae451d082f3af3e4b949aedba2ec4a6668377df252851930740341cd626415f504faaf101dbc04fa673a5dc697bda754b552f2a9c1103421dede9820d8f705c222cb45fc4561d4dbc38ff02fa2ec4a6668377df252851930740341cd626415f504faaf101dbc04fa673a5dc62d3d25c1acc3b72336a848f7082aff8ad18d51856cce84a0fbbf744f75eb14a1bcebf6e206dd8db089248335bf4412bb83210a7b370e7c6f62a3faeab526bd4e2d3d25c1acc3b72336a848f7082aff8ad18d51856cce84a0fbbf744f75eb14a1ce772cb48c8748f684625c6d7a002c24736115b33fef4cbf10a34dac818ca0413ee6f50c0ca5b7badefb7e6b06f8c86c91b0eff240dc643aa821f74cd7f7aae9ce772cb48c8748f684625c6d7a002c24736115b33fef4cbf10a34dac818ca0412675fdfdf4443ef19a861072bcd8745881dc9227927d2dc1b077536d7e359e05d2895d44fed9278347960d5dc2db10e1ed6ae472aad2ed334f085f12beb80e092675fdfdf4443ef19a861072bcd8745881dc9227927d2dc1b077536d7e359e05ead119ca0f9e7050ad683359f73508ebdbb633781b6517e384f3bc2982014758f07fd220b22de59e94c297c7f8bbb1100f088c1964c229ea08eb20419ee13dcaead119ca0f9e7050ad683359f73508ebdbb633781b6517e384f3bc2982014758e33c874ecfc22f48ae38e8d4e5083141b4cc559824253bbe1ea85228b015f9b39dc31214b631e7c153db88e0b4ca22ee51ce625b72a96231845ebffbde06a45be33c874ecfc22f48ae38e8d4e5083141b4cc559824253bbe1ea85228b015f9b3f6bcd7352f6963d84186b38c95e26516e397ce36bf292b535e98991de01dbc4648a42b9ff07610b1246d88a049a9d97b983758f158cae686be2bf4f56c5f93e3f6bcd7352f6963d84186b38c95e26516e397ce36bf292b535e98991de01dbc4608142701eccec9dd43de6030bfe6c6411f852101cf196a089228c11bd42596bcd905e9155c209972a5b36c9a3358e2b85c249b0ce4e4dcef7379b28dcf22b97e08142701eccec9dd43de6030bfe6c6411f852101cf196a089228c11bd42596bc4217cbccb84b0d8e518bf89c8febea6c002e9dd9825d1fb0b667b389d280a15c02bd75804ddc3c35d4b2d2da762723ed0351ddf8ddc74af68e60325723b930397c723d520bcdcbf3fb0c8afeced236bea5f167301f2e54a261527897f499e946852cdc894746c817e2d7d31b457d0597dc4acbd8117fb042991d40295e6b91bb6fbe5e9e3c257829b653ab4bcda1e9c3cdffda0da4ac83623ff4a02f5dcc744a852cdc894746c817e2d7d31b457d0597dc4acbd8117fb042991d40295e6b91bbe0705d1ea1a4aaca1aa58bf7b82e5e14b3a437d2f90337932411ca7954ef0440a6a3e3ff44011217b2523b1c85ff785193170e3d8b0484aa3687146713731d41e0705d1ea1a4aaca1aa58bf7b82e5e14b3a437d2f90337932411ca7954ef0440816f3f419c7f374a0ebad2aea9a61ec5b0951ff08477c693f7e8bcee2bc7822be155cea0d41d28e02aba0a04eaa801bd9f597a840336788ff4820ca1b0ff4f62816f3f419c7f374a0ebad2aea9a61ec5b0951ff08477c693f7e8bcee2bc7822b473a779654981ee5cbd80a8431ce7d700f623fa20608d332da4be710133a7355d9f439f3cd159c4e6dba6104873688283a33702fd9ae610879ba6ed64646e02b473a779654981ee5cbd80a8431ce7d700f623fa20608d332da4be710133a7355f29eb1ec97ac0b7dccfdbaf146990c999d2136093ae485f083b5bcef51673790f803ca9b760b1871eb0f22a496aadbbfc1604e0323b3d570b2654c0b9035552cf29eb1ec97ac0b7dccfdbaf146990c999d2136093ae485f083b5bcef516737900a531b8d9081e081bca826faefe77bd3e7cadf68e576def1f8fc30223bd0d16205b8f31fd6a6e7c41bfcb33af105be057455e8c130ec14d2bf2371fc6e3cd00b0a531b8d9081e081bca826faefe77bd3e7cadf68e576def1f8fc30223bd0d1624bb3cffb7052169bf16889b886d6b252da2c8c7a500a24743ac657787e1446c50f14d2786a88f31cf1a0052bd6a3cde183438df7b7c8ff83d0b85e6b69cd8f944bb3cffb7052169bf16889b886d6b252da2c8c7a500a24743ac657787e1446c59cf260324f4154d1456686084bf48196e1cb5bad2cb3f282545b78094e6c27ed444358cba5ab2411b550949dcd31a61cecc4fcda223d1e00775d9ce51bc0a30c9cf260324f4154d1456686084bf48196e1cb5bad2cb3f282545b78094e6c27ede38d3b6b0e01ec2e2a39f780edf00903bf1f04cd93b917e4e3e31f3877046bbff4f11cb8c627efa10ed6daa6673cac2124f6656642559f1e959f2fc347b4859ce38d3b6b0e01ec2e2a39f780edf00903bf1f04cd93b917e4e3e31f3877046bbf973a044a2d78d749ef2d48ab5b7b5fd69337e0884b48a9cf181771f8372e126bcd49e05883d453dc29d81b08f4991bf983f9ccb63817c69593840880ea52bf6a973a044a2d78d749ef2d48ab5b7b5fd69337e0884b48a9cf181771f8372e126ba00d1667d082dfbbe2d633d3faf0c754ac448a2ead8aa60c3c90914982978631bcf5b22919aca046f54af152eff0fac53ffa300b435a83d128ca1b430ac970a6a00d1667d082dfbbe2d633d3faf0c754ac448a2ead8aa60c3c909149829786313a9eb92228315e12d493b56cd199df6e27a3edb4923dc3407f91636776fbf1c505f1fc6a21b8d81b900bd199463ebef88cbf939be542358bc72823ab82e08ef13a9eb92228315e12d493b56cd199df6e27a3edb4923dc3407f91636776fbf1c5d848b47b49de5fdee5f226864ca2c87dc60f62add4ff9093ad9d17ae8e640b20f08d595d5e9f3430b3de0f6bfc70b2a7fee57c09163c15bf16fa21adbc7a0e9fd848b47b49de5fdee5f226864ca2c87dc60f62add4ff9093ad9d17ae8e640b200424e0c0f03997658189f14743f9ed08cf5bf90a89d6c979c2bd7518558241fecb7d022274606be0b367239f4daae04ed8b5f603a2fb8d972b4168bf1e9d3ee90424e0c0f03997658189f14743f9ed08cf5bf90a89d6c979c2bd7518558241fe91496d3b06c112a4a270335263213d537a78325cfa201e89b4366eb6d1b69039f1d142db051bba705a9222b219c86145a8b393e086ed238a6c0177f553ca3d9291496d3b06c112a4a270335263213d537a78325cfa201e89b4366eb6d1b69039ad8c2432b55308575638d5d3a0b8efc4d9580b9cb63c6a1c93a849baa8cbc87dc9db71acd9d0916a19360be6c84c62985610c011b1634c0c937cd66e0eb87f6aad8c2432b55308575638d5d3a0b8efc4d9580b9cb63c6a1c93a849baa8cbc87d99978135aa2647e611ee3aa4862073ebef313d2197731d9fb50d3ee09c7844c2f6f987f0129208b45c4ca92fa9f0e4b1c78bbaf75bf1572bca0b623203009f3399978135aa2647e611ee3aa4862073ebef313d2197731d9fb50d3ee09c7844c251685d74a7d0189bf82694affe4e538d878d2806d1e2c7c1a14452fd481a9f5331978a67bdb019940b7a3be4815988fcffc25193b0f555d130fc525e6d338e2551685d74a7d0189bf82694affe4e538d878d2806d1e2c7c1a14452fd481a9f5365ab053e233c7253a14dee165236e4fab272a2a76623646c4fe5bff6926cf8132f98a2e1172c4673ccc3f238dd2c2c2b8c33a811775cfdc4efd061c642a1b62b65ab053e233c7253a14dee165236e4fab272a2a76623646c4fe5bff6926cf813638525ca5c0f6c7f8bcf736d22c230f58f3c47a382a53295e65855b637bede6b716cedddda71e24f281f6fb2b6977bb058ce9dce52325ffc82af2dced38844cb638525ca5c0f6c7f8bcf736d22c230f58f3c47a382a53295e65855b637bede6b63863747f23424a8c3b24b496d84c75e7f0d0551cf5304e0be26efaa003ffd14513fc9160a56cfd2e5c8187eba626add4a8df8008ac4d9420685016ac9f86dcb63863747f23424a8c3b24b496d84c75e7f0d0551cf5304e0be26efaa003ffd143e292273ee32484dee661f840e6cc75ea62f4863ab81c4ecc79f45a064dec8c1d81c4ce1c6701d41b31c98a6ed2fa360fb87706d10646d625b642e7dce07730f3e292273ee32484dee661f840e6cc75ea62f4863ab81c4ecc79f45a064dec8c141d0eee83886c266bb5a2ff7a1b7b27b38f9ed34ce245499c294124028f32d0967a74f28ac04467484c3e495bafc362ec988fa98995bd1387c2fcb30f66899e341d0eee83886c266bb5a2ff7a1b7b27b38f9ed34ce245499c294124028f32d09b6232dbc309532315a10b4309c1d0bdcd62d6bea703bbdb5eb715e6264bdcce427273142006abbfa0c77c7d6a8ea15710292a523818ca3a8c9cf4a23154b70feb6232dbc309532315a10b4309c1d0bdcd62d6bea703bbdb5eb715e6264bdcce4141002c66fca6c6e85735f328d89a6ecd49672d690e17fe54842f793f7ea6b16da290bc9b917561f36a4b0942ddcc331830b9e924dbf52b03773830f9cd05cfb141002c66fca6c6e85735f328d89a6ecd49672d690e17fe54842f793f7ea6b16f9caac06bb4ff62eb1856944de405b8aab8f6e54b1b809861c8aebb40f229f99f9caac06bb4ff62eb1856944de405b8aab8f6e54b1b809861c8aebb40f229f99f9caac06bb4ff62eb1856944de405b8aab8f6e54b1b809861c8aebb40f229f99f1d9a23dee96e348201f79ee1cc73a372b47cf0b9f3e5cca9fd0786ffe37f5ac63701e788f05d310727065c6a37d131d74c55a33cd02ad64c8ed1e18c365e49af1d9a23dee96e348201f79ee1cc73a372b47cf0b9f3e5cca9fd0786ffe37f5ac165b18248bf85de9325e520135422f1948f7f6f05b1b9289ebc8570d937fe3a06577f15b1b98f55d205bb603ce0cf1a856906caad4b8fd49b8831b47654980a1165b18248bf85de9325e520135422f1948f7f6f05b1b9289ebc8570d937fe3a062a62e68becf2cd23fad5534f7339d5eb873d892e4a4aec177b6c31b762fadba2413bc9d79f5d8623ced3468e274d3bccb9edfc928df44e2dc134b15f7b20ad862a62e68becf2cd23fad5534f7339d5eb873d892e4a4aec177b6c31b762fadba017217dd3eac92048038a945aa317b2b91b1683596057a2bf3c6e2fd88b66ed6d5ec2edc32babc67757c42b65367b2d93c2f7c2597cf17a3851438ad50b74589017217dd3eac92048038a945aa317b2b91b1683596057a2bf3c6e2fd88b66ed6820eddea82241c30f7498a809b7e3dbf8e6587fbb0a23cd80203b5f05a8615710b910d8b5636dbdc887e6c6579b6c2da414753dc70c4cbbee506c8912e55aabc820eddea82241c30f7498a809b7e3dbf8e6587fbb0a23cd80203b5f05a8615716c9626928213003b3819ede11ab16488de0b6aeab7a87bb29ac5dd04d98832da87af5f553fe109977f01e43fe741bc350a15f3cad3fb5f2e09220744193d391f1e17e29c173171fcd763b2139b6629df2c0ce6792b057db2012edd3e0a49ea7743421286ad234a4240f8d4bc09f67bb58da0bf9d9b07bf93010989ef2c17f2f8cdae01f8da8411c2190dc4efae37e0496503a57445ea8b3d43a9e5fc50d74f7030ab335b5312af5ca57b26945c7297bec89f31e90d70e7c8cb0a2283599ab40f5d2d4ff90ab4bc9ef0903585d2fe7f4272263535af1dac98dd4a7a31b5f1759b78d40b3fbfcc67c431ad234b516d1825b17498a5dfc77ef1957d0fee36d311aa6df5742e1340743cc9932f3876bafe243e3053cd3a5f060935201708181666667462c048c689f82c3ae6b5782a18776762f88055b80ae77a92243b6c0606e004f00aea254728b67ce3b77880b3bff50b4fa66ba25ed71122d3453fa9319370783f4b14a1bc6adb09319e651fbd51cefbba97a2633e548c3c3a13c1a311377970e4e793bae777b06206a3e368053a2c94218cec72b03ff462aa22b09051c2dce20607730edb3911e3c72b8bcb0f11f27cd131cd54caa619c9afbb9f62a7f77c6dd3aa8c8a3bebaa05f55a03bbd904bda7adfdbc7b82443abd2b007e96c4fd35231881dcf94b0a44fe355f2acabfe25d8d67871402bbc19aaab37c6ff955575f1def57a0f52368c104b2a3b3551b3979751168b1ac42b7eafa1c8d5319bc95dc30e35a9f45b223d5c7e7f3bbfd8bc6495b1156c40b0ce3747ade0aed7b41aa23ac22d74368ba175175b9c14315f9d82fd7ddde60ae93d2e5572e9a647de7e869eb559d39df8c1ff38d177943f245b87f5379ee5ea93399fd6b5f7bfa882e6ed8caed3800137d48ffcf86ecb71afe5a24cd9ed381571f23036438ba8a97f502326a001464d2ef94de500cb053cd345164d696f7f84cf38fa522c77327ab04d32982d4cea5fdba68fb9e361541820d44eed003c317f4ef14bb9df3406b8d2c53ef7c73097d2c8187a17ae6a83ab6e2cf935a1309ada7dac041598e77bc618b0fa3e1e39288f4326136cadb4fab81fe31223187136bc3d9bdf65a9d67fd152e50a6e91d152088e94e1faa3df4b900cf2904458bbcc72045dd3d830c317fe2c9d9c1c66319fe7810ed91786b503de80701a291a4f9abe54c9e101c19c0917b709e62f3b8c48f3280ddc7156fd22f58360c617e25c8d145931a9aee74a2fa7c209779c2a2435bb75863215a3ecfdb268f52508ab001d6c52431ccb51595109ba013a4322ae5fde71364b4d201b1b691bfe21a91fe6c0257d6c1ca334b0f7898e8c69238c6a3d836f26771782f53685da5987a1bf57f41159e8a38352131656d07ae3dad883aff74861ca976307358c0ea3487fc783717abd5516059b9c5f88114141e684f24b52dbc02c8e59a971b1666cd0f41cf768c0837e8abe744a7f6a559ef9ede58e39e9bad047053a0dc5f27a31ff163452166c9db4ece043f7c77f985bbafa9e0ab7c528b32bc9b74d659dc4d5323e7b6d2d718d4eada7d0cc73efc350dff6da7d9c5085ff5c64232897f6ee0a09258a41a35f153f47ff0f3b8fa97ec67be9e133b134a46b23cf2c635be3116415fd388e3a1c1581bf1a77d7f7f0aff3a725bed01d8a3a88b85b65322b2256d3d90c746ee6194e0b46afd1b0c7a873ea24716a242e91b093b93210ab422d5c638d7a57feacbdd99357b3b0a90dbf5274570ce229553dd85ecb87d114bad1e615f4f9aa0c0cf01ebb5c2b116638eb78cbe4304517c1fe16da359e01f3cdfdf3f7aead4283e8b8e1107522b72f59d4c4f3ade4c5a90f03398bba5f1d3ebb705df137a81f0cc627dcea2cec72ee6d5610e734a231e2d997f442002389b3dadb47ed8134947c664a32ef637f43afdcbd1b5c1382339ae48e477969cee58822d528ae73bcb689154d92631f97b478006a7944600e510e8f647672359066df3ee2a8bf2fce14fa15037adc10d974719b9c3608cb1e44264a834dc230d397725f398d905d0746321d543c56644e5c89af59fe3fedb61a84ec601c8786daf0564e978c97c0e14095c23f9a08bb64950f9cb541b074b3ac0550b241c99a566f61929515ca97aedf99f73568df3dfe93078ed22cb54892b6c617c8e7122ae9b675af5389f5634b9b88643ad2752509f416aedfa2a81542bfcae1d871416a9bc216ad2ede3d418de48e8a8450f93de08256aa2388948ebc852eff97903ee737a4118785fa3f73759574d39d20591919577d9126cea7ba540483502cfbfce0ac87198cfd6d0ec7e5eec68834042ed949875730a35764c83ca0e9b262b9ad0046cbb0af1101a651fcb88cd1cba38e474b863abbb074b260a0296437194c674ad031297b060e590387062fa29455c2c7131ed9c7eaeb644db7bf504b395504eb46f2ab40b2587b84b971c4cdbb6001eacd1a452fef7db8d7c49ec7c2cfaecb92c5953ab48f1ac131615c7e9815671a743903aaabd4453a7d7f97d98e9ac69099676f38aba5a6cbc607f196bfd7b691554c4e3bbaea46b2c8fcdc5178b2dd77d794938fa52adce719d4948a92ba1a689068cec1fb6888d033e0ed1efc442b3fb93de89fb0988c73f8536fc5099afb761d2b69ec101c239c8c193336f2b6994f5aacca9689f32249db20a8dac36934314b7d5ba391d94169d63c66300aa47014a5c2dfc9bc0d6c3fb234dff4e4b60a6527d4cdfbb8c416f99df447acba7570e479457fec822f02dfbd78096641cbd6b6d997d18e82b8c31a01648a2be05a654a420c7b691d7a0ce7952c84b687d7387b271fcda7a8c956cbd0f58343f2bdbc30aed247a1aef9f2032e540101b46a674456967bf626b0d34a86f5f277f16699b17c3fd176c1b259959ed235bb9bb59d54731203c9c33c2e0e431729ea34280f0b51c476c951da31291f8f646630d56a7da6602a3365808a57c797bcaeb2076b6412093b234620aee37ce8be16100880af85ba6752e3652b2678b7ef122e13c385a135cbbbe8b1d87efeed43ddd3e0be9ddd8aa24b267b61fac42870d0bf5c92b0f2a5fe25ddf95729f6cba8a9ac48c7c0d1c2fdd7a7532586f2ea46be7d55a95c96f5bdffc7869acfea19c33c62a23ef9515d4f2f9e5b93b38b905b59664d1da4cfe90df4316370fd33e3a69f5b6371d1ade46bca444c14bab9284a21fcb75abf82243eb66fad0466b1d737cb51d6b957a8ec2acde3a01fbffc5a256f1b0189ee127902c0022ba8a8660b6b824801612ab1772a04800d886ea4361f9bd3a01148a0d6627692f4ef22f93361cd19e4e279510c45a522ef10ff6650daedef66d754b3202068593d714c7bfe09dcbf9e0525a59faa09b1a2b1de640cd57ac1182488554201e30bc180aa461a708bcdab3efcc019451b46351c61c2468ec9e4e0710e1441867b17a238159e89017ff6bc76b4d42d3e133d9e8809159423616094ef8df925afde07c0920da1882853184948c4a03aeb4dc99d50c363722fdf48c7c995feaf4c73b7b4c978d33747dcbdf14ae5654bfc807b15799c63fa694529bbf957aa2e3d3e66e624810c6ad7e81015f43eb4c41dd7ac5f2d77161f75c9163965d21b2df016c01202c56010e873a7353715e43429f763c89df40f8abd187ced93dc1209703237acc8e0413a9b1ef07775f45c18847d0a3d5987f13edc3287fa8beff020087d2614966840987f4a1e858d8b3051dc7a5afcb2a0f30edd1d05c1084a10bb4d2c563f089cc20fca49582f334d861cbbca4a01c94e81976926a667aa9936ec65cd80b2650d2f0f3434c2ee54f0be91939259add06ef7fd4488b992b184ebc4233ca856f1fcf817d4a0204dd34dc0833d46fa1839c862fafb8830eed0a417f1d8b60d047d8c958f624ea5649483077927067c93c23259048e90348fbdcca2b672271ee2a3759c5b73f34a0bc9b3764f83e3ab79f2182c1e277ef465907f0be250fe49a0897a708735972b6803cac22055ed760a861fce4036c6c8c30e4ae91de1da9ff290f44187d24df84aaca6995a3538fd8e6a126ae3096b743b854108908f25aedb8cd9c067cae60e41482d56af14cb8249cf8e5a96565c24986eb3e32bdd658c238b484e096fefe347488e1a22f9e99667cd0c288e6c9d2d33e969507af34a1634cec335e7c097c5421b441b9d84ae74c37c7da0d10ec55086e47ddb99c9922338a9e0b88b04511b4cd233c887159d82ba4ccf1978b1abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae92fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb7650424a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aaf9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65a4fe845553b7ffbd7696ea3bf437851cbf73df723573d3b35ed7a699f9f4de8a2/etc/idle3.6/config-extensions.def/etc/idle3.6/config-highlight.def/etc/idle3.6/config-keys.def/etc/idle3.6/config-main.defrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-3.6.12-lp151.6.36.1.src.rpmapplication()application(idle3.6.desktop)config(python3-idle)metainfo()metainfo(idle3.6.appdata.xml)mimehandler(text/x-python)python3-idlepython3-idle(armv7hl-32)@@@     /usr/bin/python3/usr/bin/python3.6config(python3-idle)python(abi)python3python3-tkrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.6.12-lp151.6.36.13.63.6.123.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1__@_v@_0@_0@_@_G@___P_P_m_O@_N7_L@_?@_>e_>e_=@_@_______^^g@^>^>^8 @^0"@]f@]+]@]m]y@]v>]8H@]8H@]1]]@\\8\@\E@\C@["@[6@ZZԐ@Zx@Z@Z@Z Z Zz@Zhu@Z`@ZLZ"Z }YYX@Yo@Y@YY@Y@YI@XӸXƉXXqX@Xv@W@Wx@W_W@Vm@VhV*!@VCV }@U@U@U@UU[%UT@UCjU@TeT;Marcus Meissner Matej Cepl Matej Cepl Matej Cepl Steve Kowalik Markéta Machová Matej Cepl Matej Cepl Marketa Calabkova Dominique Leuenberger Matej Cepl Dominique Leuenberger Matej Cepl Matej Cepl Tomáš Chvátal Andreas Schwab Marketa Calabkova Marketa Calabkova Marketa Calabkova Matej Cepl Marketa Calabkova Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Matej Cepl Matej Cepl Matej Cepl Matej Cepl Tomáš Chvátal Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matěj Cepl mcepl@suse.comMatěj Cepl mcepl@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.compsimons@suse.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.netjmatejek@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comjmatejek@suse.com- readd --with-fpectl (bsc#1180377)- Adjust sphinx-update-removed-function.patch- (bsc#1179630) Update sphinx-update-removed-function.patch to work with all versions of Sphinx (not binding the Python documentation build to the latest verison of Sphinx). Updated version mentioned on gh#python/cpython#13236.- Add CVE-2020-27619-no-eval-http-content.patch fixing CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support calls eval() on content retrieved via HTTP.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function (gh#python/cpython#13236). As a consequence, no longer pin Sphinx version.- Pin Sphinx version to fix doc subpackage- Change setuptools and pip version numbers according to new wheels - Add ignore_pip_deprec_warn.patch to switch of persistently failing test.- Replace bundled wheels for pip and setuptools with the updated ones (bsc#1176262 CVE-2019-20916).- Handful of changes to make python36 compatible with SLE15 and SLE12 (jsc#ECO-2799, jsc#SLE-13738) - Rebase bpo23395-PyErr_SetInterrupt-signal.patch- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Fix installing .desktop file- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Add faulthandler_stack_overflow_on_GCC10.patch to make build working even with GCC10 (bpo#38965).- Just cleanup and reordering items to synchronize with python38- Format with spec-cleaner- riscv64-support.patch: bpo-33377: add triplets for mips-r6 and riscv (#6655) - riscv64-ctypes.patch: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) - Update list of tests to exclude under qemu linux-user- Update the python keyring - Correct libpython name- Drop patches which are not mentioned in spec: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * F00102-lib64.patch * F00251-change-user-install-location.patch * OBS_dev-shm.patch * SUSE-FEDORA-multilib.patch * bpo-31046_ensurepip_honours_prefix.patch * bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * bpo36302-sort-module-sources.patch * bpo40784-Fix-sqlite3-deterministic-test.patch * bsc1167501-invalid-alignment.patch * python3-imp-returntype.patch - Working around missing python-packaging dependency in python-Sphinx (bsc#1174571) is not necessary anymore.- Update to 3.6.12 (bsc#1179193) * Ensure python3.dll is loaded from correct locations when Python is embedded * The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address). * Prevent http header injection by rejecting control characters in http.client.putrequest(…). * Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. * Avoid infinite loop when reading specially crafted TAR files using the tarfile module - Drop merged fixtures: * CVE-2020-14422-ipaddress-hash-collision.patch * CVE-2019-20907_tarfile-inf-loop.patch * recursion.tar - This release also fixes CVE-2020-26116 (bsc#1177211) and CVE-2019-20907 (bsc#1174091).- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Make library names internally consistent- Disable profile optimalizations as they deadlock in test_faulthandler- Disable lto as it causes mess and works with 3.7 onwards only- Sync the test disablements from the python3 in sle15- Update to 3.6.11: - bpo-39073: Disallow CR or LF in email.headerregistry. Address arguments to guard against header injection attacks. - bpo-38576 (bsc#1155094): Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. - bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7. - Remove merged patch CVE-2020-8492-urllib-ReDoS.patch- Fix minor issues found in the staging.- Do not set ourselves as a primary interpreter- Add CVE-2020-14422-ipaddress-hash-collision.patch fixing CVE-2020-14422 (bsc#1173274, bpo#41004), where hash collisions in IPv4Interface and IPv6Interface could lead to DOS.- Change name of idle3 icons to idle3.png to avoid collision with Python 2 version (bsc#1165894).- 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) - 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)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Reame idle icons to idle3 in order to not conflict with python2 variant of the package bsc#1165894 * renamed the icons * renamed icon load in desktop file- Add pep538_coerce_legacy_c_locale.patch to coerce locale to C.UTF-8 always (bsc#1162423).- Update to 3.6.10 (still in line with jsc#SLE-9426, jsc#SLE-9427, bsc#1159035): - Security: - bpo-38945: 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. - bpo-37228: Due to significant security concerns, the reuse_address parameter of asyncio.loop.create_datagram_endpoint() is no longer supported. This is because of the behavior of SO_REUSEADDR in UDP. For more details, see the documentation for loop.create_datagram_endpoint(). (Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in bpo-37228.) - bpo-38804: Fixes a ReDoS vulnerability in http.cookiejar. Patch by Ben Caller. - bpo-38243: Escape the server title of xmlrpc.server.DocXMLRPCServer when rendering the document page as HTML. (Contributed by Dong-hee Na in bpo-38243.) - bpo-38174: Update vendorized expat library version to 2.2.8, which resolves CVE-2019-15903. - bpo-37461: Fix an infinite loop when parsing specially crafted email headers. Patch by Abhilash Raj. - bpo-34155: Fix parsing of invalid email addresses with more than one @ (e.g. a@b@c.com.) to not return the part before 2nd @ as valid email address. Patch by maxking & jpic. - Library: - bpo-38216: Allow the rare code that wants to send invalid http requests from the http.client library a way to do so. The fixes for bpo-30458 led to breakage for some projects that were relying on this ability to test their own behavior in the face of bad requests. - bpo-36564: Fix infinite loop in email header folding logic that would be triggered when an email policy’s max_line_length is not long enough to include the required markup and any values in the message. Patch by Paul Ganssle - Remove patches included in the upstream tarball: - CVE-2019-16935-xmlrpc-doc-server_title.patch (and also bpo37614-race_test_docxmlrpc_srv_setup.patch, which was resolving bsc#1174701). - CVE-2019-16056-email-parse-addr.patch - Move idle subpackage build from python3-base to python3 (bsc#1159622). appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Unify all Python 3.6* SLE packages into one (jsc#SLE-9426, jsc#SLE-9427, bsc#1159035) - Patches which were already included upstream: - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch- 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 bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792 - Add bpo36263-Fix_hashlib_scrypt.patch which works around bsc#1151490- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, bnc#1149955, CVE-2019-16056]- jsc#PM-1350 bsc#1149121 Update python3 to the last version of the 3.6 line. This is just a bugfix release with no changes in functionality. - The following patches were included in the upstream release as so they can be removed in the package: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - CVE-2019-9947-no-ctrl-char-http.patch - Patch bpo23395-PyErr_SetInterrupt-signal.patch has been reapplied on the upstream base without changing any functionality. - Add patch aarch64-prolong-timeout.patch to fix failing test_utime_current_old test.- FAKE RECORD FROM SLE-12 CHANNEL 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]- FAKE RECORD FROM SLE-12 CHANNEL bsc#1109847: add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo#34623.- 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.- 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- FAKE RECORD FROM SLE-12 CHANNEL bsc#1137942: Avoid duplicate files with python3* packages (https://fate.suse.com/327309)- bsc#1094814: Add bpo23395-PyErr_SetInterrupt-signal.patch to handle situation when the SIGINT signal is ignored or not handled- Update to 3.6.8: - bugfixes only - removed patches (subsumed in the upstream tarball): - CVE-2018-20406-pickle_LONG_BINPUT.patch - refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - Python-3.0b1-record-rpm.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.3.3-skip-distutils-test_sysconfig_module.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch - subprocess-raise-timeout.patch - switch off LTO and PGO optimization (bsc#1133452) - 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#1129346: add CVE-2019-9636-urlsplit-NFKC-norm.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 gh#python/cpython#12224- bsc#1120644 add CVE-2018-20406-pickle_LONG_BINPUT.patch fixing bpo#34656 Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. 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.- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it. (bsc#1107030)- 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]- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Apply "python-3.6-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]- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750, bsc#1086001)- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.6 (bsc#1027282): * fixed potential crash in PyUnicode_AsDecodedObject() in debug build * fixed possible DoS and arbitrary execution in gettext plurals * fix possible use of uninitialized memory in operator.methodcaller * fix possible Py_DECREF on unowned object in _sre * fix possible integer overflow in _csv module * prevent HTTPoxy attack (CVE-2016-1000110) * fix selectors incorrectly retaining invalid fds - drop upstreamed python-3.4-CVE-2016-1000110-fix.patch - move _elementtree to python3.rpm to match its pyexpat dependency (bsc#1029377)- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- FAKE RECORD FROM SLE-12 CHANNEL apply fix for CVE-2016-1000110 - CGIHandler: sets environmental variable based on user supplied Proxy request header: python-3.4-CVE-2016-1000110-fix.patch (fixes bsc#989523, CVE-2016-1000110) - refresh python3-urllib-prefer-lowercase-proxies.patch- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.5 check: https://docs.python.org/3.4/whatsnew/changelog.html (fixes bsc#984751, CVE-2016-0772) (fixes bsc#985177, CVE-2016-5636) (fixes bsc#985348, CVE-2016-5699) - drop upstreamed werror-declaration-after-statement.patch- FAKE RECORD FROM SLE-12 CHANNEL Due to being fixed upstream (differently), removed outdated patch CVE-2014-4650-CGIHTTPServer-traversal.patch (bsc#983582)- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- FAKE RECORD FROM SLE-12 CHANNEL Issue #21121: Don't force 3rd party C extensions to be built with -Werror=declaration-after-statement. (werror-declaration-after-statement.patch, bsc#951166)- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillaarmbuild01 1609270632  !"#"%&%()(+,+./0121454787:;:=>?@A@CDCFGFIJILMLOPQRRRUUUXYX[\[^_`abcdedghgjkjmnmpqpsssvwvyzy|}|     ! #$#&'&)*),-,/0/232565898;<;>?>ABADEDGHGJKJMNMPQPSTSVWXYZY\]\_`_bcbefehihklknonqrqtutwxwz{z}~}      !"#$%3.6.12-lp151.6.36.13.6.12-lp151.6.36.13.6.12-lp151.6.36.1   idle3.6config-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defidle3.6idlelibCREDITS.txtChangeLogHISTORY.txtIconsfolder.gifidle.icnsidle.icoidle_16.gifidle_16.pngidle_32.gifidle_32.pngidle_48.gifidle_48.pngminusnode.gifopenfolder.gifplusnode.gifpython.giftk.gifNEWS.txtNEWS2x.txtREADME.txtTODO.txt__init__.py__main__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.opt-2.pyc__init__.cpython-36.pyc__main__.cpython-36.opt-1.pyc__main__.cpython-36.opt-2.pyc__main__.cpython-36.pyc_pyclbr.cpython-36.opt-1.pyc_pyclbr.cpython-36.opt-2.pyc_pyclbr.cpython-36.pycautocomplete.cpython-36.opt-1.pycautocomplete.cpython-36.opt-2.pycautocomplete.cpython-36.pycautocomplete_w.cpython-36.opt-1.pycautocomplete_w.cpython-36.opt-2.pycautocomplete_w.cpython-36.pycautoexpand.cpython-36.opt-1.pycautoexpand.cpython-36.opt-2.pycautoexpand.cpython-36.pycbrowser.cpython-36.opt-1.pycbrowser.cpython-36.opt-2.pycbrowser.cpython-36.pyccalltip.cpython-36.opt-1.pyccalltip.cpython-36.opt-2.pyccalltip.cpython-36.pyccalltip_w.cpython-36.opt-1.pyccalltip_w.cpython-36.opt-2.pyccalltip_w.cpython-36.pyccodecontext.cpython-36.opt-1.pyccodecontext.cpython-36.opt-2.pyccodecontext.cpython-36.pyccolorizer.cpython-36.opt-1.pyccolorizer.cpython-36.opt-2.pyccolorizer.cpython-36.pycconfig.cpython-36.opt-1.pycconfig.cpython-36.opt-2.pycconfig.cpython-36.pycconfig_key.cpython-36.opt-1.pycconfig_key.cpython-36.opt-2.pycconfig_key.cpython-36.pycconfigdialog.cpython-36.opt-1.pycconfigdialog.cpython-36.opt-2.pycconfigdialog.cpython-36.pycdebugger.cpython-36.opt-1.pycdebugger.cpython-36.opt-2.pycdebugger.cpython-36.pycdebugger_r.cpython-36.opt-1.pycdebugger_r.cpython-36.opt-2.pycdebugger_r.cpython-36.pycdebugobj.cpython-36.opt-1.pycdebugobj.cpython-36.opt-2.pycdebugobj.cpython-36.pycdebugobj_r.cpython-36.opt-1.pycdebugobj_r.cpython-36.opt-2.pycdebugobj_r.cpython-36.pycdelegator.cpython-36.opt-1.pycdelegator.cpython-36.opt-2.pycdelegator.cpython-36.pycdynoption.cpython-36.opt-1.pycdynoption.cpython-36.opt-2.pycdynoption.cpython-36.pyceditor.cpython-36.opt-1.pyceditor.cpython-36.opt-2.pyceditor.cpython-36.pycfilelist.cpython-36.opt-1.pycfilelist.cpython-36.opt-2.pycfilelist.cpython-36.pycgrep.cpython-36.opt-1.pycgrep.cpython-36.opt-2.pycgrep.cpython-36.pychelp.cpython-36.opt-1.pychelp.cpython-36.opt-2.pychelp.cpython-36.pychelp_about.cpython-36.opt-1.pychelp_about.cpython-36.opt-2.pychelp_about.cpython-36.pychistory.cpython-36.opt-1.pychistory.cpython-36.opt-2.pychistory.cpython-36.pychyperparser.cpython-36.opt-1.pychyperparser.cpython-36.opt-2.pychyperparser.cpython-36.pycidle.cpython-36.opt-1.pycidle.cpython-36.opt-2.pycidle.cpython-36.pyciomenu.cpython-36.opt-1.pyciomenu.cpython-36.opt-2.pyciomenu.cpython-36.pycmacosx.cpython-36.opt-1.pycmacosx.cpython-36.opt-2.pycmacosx.cpython-36.pycmainmenu.cpython-36.opt-1.pycmainmenu.cpython-36.opt-2.pycmainmenu.cpython-36.pycmulticall.cpython-36.opt-1.pycmulticall.cpython-36.opt-2.pycmulticall.cpython-36.pycoutwin.cpython-36.opt-1.pycoutwin.cpython-36.opt-2.pycoutwin.cpython-36.pycparagraph.cpython-36.opt-1.pycparagraph.cpython-36.opt-2.pycparagraph.cpython-36.pycparenmatch.cpython-36.opt-1.pycparenmatch.cpython-36.opt-2.pycparenmatch.cpython-36.pycpathbrowser.cpython-36.opt-1.pycpathbrowser.cpython-36.opt-2.pycpathbrowser.cpython-36.pycpercolator.cpython-36.opt-1.pycpercolator.cpython-36.opt-2.pycpercolator.cpython-36.pycpyparse.cpython-36.opt-1.pycpyparse.cpython-36.opt-2.pycpyparse.cpython-36.pycpyshell.cpython-36.opt-1.pycpyshell.cpython-36.opt-2.pycpyshell.cpython-36.pycquery.cpython-36.opt-1.pycquery.cpython-36.opt-2.pycquery.cpython-36.pycredirector.cpython-36.opt-1.pycredirector.cpython-36.opt-2.pycredirector.cpython-36.pycreplace.cpython-36.opt-1.pycreplace.cpython-36.opt-2.pycreplace.cpython-36.pycrpc.cpython-36.opt-1.pycrpc.cpython-36.opt-2.pycrpc.cpython-36.pycrstrip.cpython-36.opt-1.pycrstrip.cpython-36.opt-2.pycrstrip.cpython-36.pycrun.cpython-36.opt-1.pycrun.cpython-36.opt-2.pycrun.cpython-36.pycrunscript.cpython-36.opt-1.pycrunscript.cpython-36.opt-2.pycrunscript.cpython-36.pycscrolledlist.cpython-36.opt-1.pycscrolledlist.cpython-36.opt-2.pycscrolledlist.cpython-36.pycsearch.cpython-36.opt-1.pycsearch.cpython-36.opt-2.pycsearch.cpython-36.pycsearchbase.cpython-36.opt-1.pycsearchbase.cpython-36.opt-2.pycsearchbase.cpython-36.pycsearchengine.cpython-36.opt-1.pycsearchengine.cpython-36.opt-2.pycsearchengine.cpython-36.pycsqueezer.cpython-36.opt-1.pycsqueezer.cpython-36.opt-2.pycsqueezer.cpython-36.pycstackviewer.cpython-36.opt-1.pycstackviewer.cpython-36.opt-2.pycstackviewer.cpython-36.pycstatusbar.cpython-36.opt-1.pycstatusbar.cpython-36.opt-2.pycstatusbar.cpython-36.pyctextview.cpython-36.opt-1.pyctextview.cpython-36.opt-2.pyctextview.cpython-36.pyctooltip.cpython-36.opt-1.pyctooltip.cpython-36.opt-2.pyctooltip.cpython-36.pyctree.cpython-36.opt-1.pyctree.cpython-36.opt-2.pyctree.cpython-36.pycundo.cpython-36.opt-1.pycundo.cpython-36.opt-2.pycundo.cpython-36.pycwindow.cpython-36.opt-1.pycwindow.cpython-36.opt-2.pycwindow.cpython-36.pyczoomheight.cpython-36.opt-1.pyczoomheight.cpython-36.opt-2.pyczoomheight.cpython-36.pyczzdummy.cpython-36.opt-1.pyczzdummy.cpython-36.opt-2.pyczzdummy.cpython-36.pyc_pyclbr.pyautocomplete.pyautocomplete_w.pyautoexpand.pybrowser.pycalltip.pycalltip_w.pycodecontext.pycolorizer.pyconfig-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defconfig.pyconfig_key.pyconfigdialog.pydebugger.pydebugger_r.pydebugobj.pydebugobj_r.pydelegator.pydynoption.pyeditor.pyextend.txtfilelist.pygrep.pyhelp.htmlhelp.pyhelp_about.pyhistory.pyhyperparser.pyidle.batidle.pyidle.pywidle_testREADME.txt__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.opt-2.pyc__init__.cpython-36.pychtest.cpython-36.opt-1.pychtest.cpython-36.opt-2.pychtest.cpython-36.pycmock_idle.cpython-36.opt-1.pycmock_idle.cpython-36.opt-2.pycmock_idle.cpython-36.pycmock_tk.cpython-36.opt-1.pycmock_tk.cpython-36.opt-2.pycmock_tk.cpython-36.pyctemplate.cpython-36.opt-1.pyctemplate.cpython-36.opt-2.pyctemplate.cpython-36.pyctest_autocomplete.cpython-36.opt-1.pyctest_autocomplete.cpython-36.opt-2.pyctest_autocomplete.cpython-36.pyctest_autocomplete_w.cpython-36.opt-1.pyctest_autocomplete_w.cpython-36.opt-2.pyctest_autocomplete_w.cpython-36.pyctest_autoexpand.cpython-36.opt-1.pyctest_autoexpand.cpython-36.opt-2.pyctest_autoexpand.cpython-36.pyctest_browser.cpython-36.opt-1.pyctest_browser.cpython-36.opt-2.pyctest_browser.cpython-36.pyctest_calltip.cpython-36.opt-1.pyctest_calltip.cpython-36.opt-2.pyctest_calltip.cpython-36.pyctest_calltip_w.cpython-36.opt-1.pyctest_calltip_w.cpython-36.opt-2.pyctest_calltip_w.cpython-36.pyctest_codecontext.cpython-36.opt-1.pyctest_codecontext.cpython-36.opt-2.pyctest_codecontext.cpython-36.pyctest_colorizer.cpython-36.opt-1.pyctest_colorizer.cpython-36.opt-2.pyctest_colorizer.cpython-36.pyctest_config.cpython-36.opt-1.pyctest_config.cpython-36.opt-2.pyctest_config.cpython-36.pyctest_config_key.cpython-36.opt-1.pyctest_config_key.cpython-36.opt-2.pyctest_config_key.cpython-36.pyctest_configdialog.cpython-36.opt-1.pyctest_configdialog.cpython-36.opt-2.pyctest_configdialog.cpython-36.pyctest_debugger.cpython-36.opt-1.pyctest_debugger.cpython-36.opt-2.pyctest_debugger.cpython-36.pyctest_debugger_r.cpython-36.opt-1.pyctest_debugger_r.cpython-36.opt-2.pyctest_debugger_r.cpython-36.pyctest_debugobj.cpython-36.opt-1.pyctest_debugobj.cpython-36.opt-2.pyctest_debugobj.cpython-36.pyctest_debugobj_r.cpython-36.opt-1.pyctest_debugobj_r.cpython-36.opt-2.pyctest_debugobj_r.cpython-36.pyctest_delegator.cpython-36.opt-1.pyctest_delegator.cpython-36.opt-2.pyctest_delegator.cpython-36.pyctest_editmenu.cpython-36.opt-1.pyctest_editmenu.cpython-36.opt-2.pyctest_editmenu.cpython-36.pyctest_editor.cpython-36.opt-1.pyctest_editor.cpython-36.opt-2.pyctest_editor.cpython-36.pyctest_filelist.cpython-36.opt-1.pyctest_filelist.cpython-36.opt-2.pyctest_filelist.cpython-36.pyctest_grep.cpython-36.opt-1.pyctest_grep.cpython-36.opt-2.pyctest_grep.cpython-36.pyctest_help.cpython-36.opt-1.pyctest_help.cpython-36.opt-2.pyctest_help.cpython-36.pyctest_help_about.cpython-36.opt-1.pyctest_help_about.cpython-36.opt-2.pyctest_help_about.cpython-36.pyctest_history.cpython-36.opt-1.pyctest_history.cpython-36.opt-2.pyctest_history.cpython-36.pyctest_hyperparser.cpython-36.opt-1.pyctest_hyperparser.cpython-36.opt-2.pyctest_hyperparser.cpython-36.pyctest_iomenu.cpython-36.opt-1.pyctest_iomenu.cpython-36.opt-2.pyctest_iomenu.cpython-36.pyctest_macosx.cpython-36.opt-1.pyctest_macosx.cpython-36.opt-2.pyctest_macosx.cpython-36.pyctest_mainmenu.cpython-36.opt-1.pyctest_mainmenu.cpython-36.opt-2.pyctest_mainmenu.cpython-36.pyctest_multicall.cpython-36.opt-1.pyctest_multicall.cpython-36.opt-2.pyctest_multicall.cpython-36.pyctest_outwin.cpython-36.opt-1.pyctest_outwin.cpython-36.opt-2.pyctest_outwin.cpython-36.pyctest_paragraph.cpython-36.opt-1.pyctest_paragraph.cpython-36.opt-2.pyctest_paragraph.cpython-36.pyctest_parenmatch.cpython-36.opt-1.pyctest_parenmatch.cpython-36.opt-2.pyctest_parenmatch.cpython-36.pyctest_pathbrowser.cpython-36.opt-1.pyctest_pathbrowser.cpython-36.opt-2.pyctest_pathbrowser.cpython-36.pyctest_percolator.cpython-36.opt-1.pyctest_percolator.cpython-36.opt-2.pyctest_percolator.cpython-36.pyctest_pyparse.cpython-36.opt-1.pyctest_pyparse.cpython-36.opt-2.pyctest_pyparse.cpython-36.pyctest_pyshell.cpython-36.opt-1.pyctest_pyshell.cpython-36.opt-2.pyctest_pyshell.cpython-36.pyctest_query.cpython-36.opt-1.pyctest_query.cpython-36.opt-2.pyctest_query.cpython-36.pyctest_redirector.cpython-36.opt-1.pyctest_redirector.cpython-36.opt-2.pyctest_redirector.cpython-36.pyctest_replace.cpython-36.opt-1.pyctest_replace.cpython-36.opt-2.pyctest_replace.cpython-36.pyctest_rpc.cpython-36.opt-1.pyctest_rpc.cpython-36.opt-2.pyctest_rpc.cpython-36.pyctest_rstrip.cpython-36.opt-1.pyctest_rstrip.cpython-36.opt-2.pyctest_rstrip.cpython-36.pyctest_run.cpython-36.opt-1.pyctest_run.cpython-36.opt-2.pyctest_run.cpython-36.pyctest_runscript.cpython-36.opt-1.pyctest_runscript.cpython-36.opt-2.pyctest_runscript.cpython-36.pyctest_scrolledlist.cpython-36.opt-1.pyctest_scrolledlist.cpython-36.opt-2.pyctest_scrolledlist.cpython-36.pyctest_search.cpython-36.opt-1.pyctest_search.cpython-36.opt-2.pyctest_search.cpython-36.pyctest_searchbase.cpython-36.opt-1.pyctest_searchbase.cpython-36.opt-2.pyctest_searchbase.cpython-36.pyctest_searchengine.cpython-36.opt-1.pyctest_searchengine.cpython-36.opt-2.pyctest_searchengine.cpython-36.pyctest_squeezer.cpython-36.opt-1.pyctest_squeezer.cpython-36.opt-2.pyctest_squeezer.cpython-36.pyctest_stackviewer.cpython-36.opt-1.pyctest_stackviewer.cpython-36.opt-2.pyctest_stackviewer.cpython-36.pyctest_statusbar.cpython-36.opt-1.pyctest_statusbar.cpython-36.opt-2.pyctest_statusbar.cpython-36.pyctest_text.cpython-36.opt-1.pyctest_text.cpython-36.opt-2.pyctest_text.cpython-36.pyctest_textview.cpython-36.opt-1.pyctest_textview.cpython-36.opt-2.pyctest_textview.cpython-36.pyctest_tooltip.cpython-36.opt-1.pyctest_tooltip.cpython-36.opt-2.pyctest_tooltip.cpython-36.pyctest_tree.cpython-36.opt-1.pyctest_tree.cpython-36.opt-2.pyctest_tree.cpython-36.pyctest_undo.cpython-36.opt-1.pyctest_undo.cpython-36.opt-2.pyctest_undo.cpython-36.pyctest_warning.cpython-36.opt-1.pyctest_warning.cpython-36.opt-2.pyctest_warning.cpython-36.pyctest_window.cpython-36.opt-1.pyctest_window.cpython-36.opt-2.pyctest_window.cpython-36.pyctest_zoomheight.cpython-36.opt-1.pyctest_zoomheight.cpython-36.opt-2.pyctest_zoomheight.cpython-36.pychtest.pymock_idle.pymock_tk.pytemplate.pytest_autocomplete.pytest_autocomplete_w.pytest_autoexpand.pytest_browser.pytest_calltip.pytest_calltip_w.pytest_codecontext.pytest_colorizer.pytest_config.pytest_config_key.pytest_configdialog.pytest_debugger.pytest_debugger_r.pytest_debugobj.pytest_debugobj_r.pytest_delegator.pytest_editmenu.pytest_editor.pytest_filelist.pytest_grep.pytest_help.pytest_help_about.pytest_history.pytest_hyperparser.pytest_iomenu.pytest_macosx.pytest_mainmenu.pytest_multicall.pytest_outwin.pytest_paragraph.pytest_parenmatch.pytest_pathbrowser.pytest_percolator.pytest_pyparse.pytest_pyshell.pytest_query.pytest_redirector.pytest_replace.pytest_rpc.pytest_rstrip.pytest_run.pytest_runscript.pytest_scrolledlist.pytest_search.pytest_searchbase.pytest_searchengine.pytest_squeezer.pytest_stackviewer.pytest_statusbar.pytest_text.pytest_textview.pytest_tooltip.pytest_tree.pytest_undo.pytest_warning.pytest_window.pytest_zoomheight.pyiomenu.pymacosx.pymainmenu.pymulticall.pyoutwin.pyparagraph.pyparenmatch.pypathbrowser.pypercolator.pypyparse.pypyshell.pyquery.pyredirector.pyreplace.pyrpc.pyrstrip.pyrun.pyrunscript.pyscrolledlist.pysearch.pysearchbase.pysearchengine.pysqueezer.pystackviewer.pystatusbar.pytextview.pytooltip.pytree.pyundo.pywindow.pyzoomheight.pyzzdummy.pyidle3.6.desktoppython3-idleChangeLogNEWS.txtREADME.txtTODO.txtextend.txthicolor16x16appsidle3.6.png32x32appsidle3.6.png48x48appsidle3.6.pngmetainfoidle3.6.appdata.xml/etc//etc/idle3.6//usr/bin//usr/lib/python3.6//usr/lib/python3.6/idlelib//usr/lib/python3.6/idlelib/Icons//usr/lib/python3.6/idlelib/__pycache__//usr/lib/python3.6/idlelib/idle_test//usr/lib/python3.6/idlelib/idle_test/__pycache__//usr/share/applications//usr/share/doc/packages//usr/share/doc/packages/python3-idle//usr/share/icons//usr/share/icons/hicolor//usr/share/icons/hicolor/16x16//usr/share/icons/hicolor/16x16/apps//usr/share/icons/hicolor/32x32//usr/share/icons/hicolor/32x32/apps//usr/share/icons/hicolor/48x48//usr/share/icons/hicolor/48x48/apps//usr/share//usr/share/metainfo/-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.opensuse.org/openSUSE:Maintenance:15440/openSUSE_Leap_15.1_Update_ports/f2062f5aeadc2f86544b9fd5601ae64c-python3.openSUSE_Leap_15.1_Updatedrpmxz5armv7hl-suse-linux   directoryASCII textPython script, ASCII text executableUTF-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 11python 3.6 byte-compiledHTML document, UTF-8 Unicode text, with very long linesDOS batch file, ASCII text, with CRLF line terminatorsPython script, UTF-8 Unicode text executableXML 1.0 document, UTF-8 Unicode text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPPPPP&^E-đutf-8d8aaf0f8d64a8a73105601e72340aa207317df435a5d925e911561a3ed3c6d3d? 7zXZ !t/L']"k%pa ~SРQi.Dri *<̟֠&@zTc|H"\Bкz+Z G1^Jvj̐[y/ ܨp[EwHrBO~TzM]|e'2/s$p ib倵_ /Zy%e!.Z蒬荟L(s,rpl,; i[aJ© f6ZOd}Iyr͇ bԺ} Wr{zsZ2Zzհ,Kv pX ePg<u]io"1uz4K(r2\XYz $I/EHZd^am4!$Z"5ճuA~|PEU?+42j]GeHMk?[Խs|k?_:d{ńXvd8B﷍=Dt5?:(8W\~x]M3,ȘeL-N%q_c7"Ш1k"υ%^h:[PłR4C<*f@*=c]+L%L;LY̎PsȲ ^ Zࠁ%E,ix$(+0 Nr򴌄Ȅx"ZL ݵu]D+TBgM]PQ,ۈ|NKX.Ww-T0i9Sۢ{x8mJŁ'PaBAI[ZؒɎRX//x/VjNJ{JGLS2ʱ_lu:m=$B?\V$)oCԪl(ڏ< >T iв*`W! - {%@-pd(g .'>MFtb:'D-kr~*Ye-s4dg m'T {csos9VB;8M SX'\ŻUICj|c[OXJOwjޏ8(q9m Y 窆ʆ0emSY3K?FSHqUjXp~"sQ7ƒ뒱= b{D]\j?f"`ÈJ"b.m\ta_]:{pH۽, SDi |"ey{\MT@jg9deʺu-f6(?P"?">KBL:&s_2[L!\.= yzeTE)nXb yjEyWvwFbCo s,פ⦈b "g l ]) _!e(\9^%M_KVrxiLsX D҄SKeǦ9l3uHp/1ّvĐ&rg7Z[F=}&5O|ïdTa9- yHCיR'V]WӖ {hVip# JF\p u0IF8:bD+ z8.j+Яc k(Rqn"(_\>E7M\ok {] Dnz c=ё]3-ʃs% lȥ 6m0Bm(ǟ`&$K%ͶeM}:)g'Bi2 sh~z^A6''(>o;~'쮧%͸4L~lxvZ@DO_ %~[aRx3M9ګ&҅m8]V\\ dF~6m"MTuJ|:ByhqF[sOp[rg5T>Nf8>7P<V{9Zki"u.:i\al5`@8 ;&k]b~X숞o3k puP:ئYQ> 2^<y`i/!";dP# ґ3E!·IqILʣ -$F@@~6Sc.c/D+T {[\U`h蟰aS 4Vw9֩~Q]݈BpP))LFZB.)-S:؉}7,L?lzv9{dP')pqD8,|`:jR5T+z^nlt ٥i)n&@M9Uw YH[ۗuJu=8$Qc1eoIǮ5҆k3_XDƤ0+ٝe«! ݾ@~JUO`t`e0f}'ɫT +k|{#d*_X;0),@R}1W>>ڬ$woKCl|4 r8>ȷKlw#Q9]Z;^WU3aT6 &"^wwIN$uR&[aYȡif;W)܈n(JW!V( EXސK#ؿBHv9`_Lq{5ʰFݎS,w'=5ziPQ!IO؉_+oۗM=m;%m/Q#~54loq;=_*{Nq*,q ([%JCuz4/sMb&{6CٽaҖXdVCRQ"$"l(8B3v;u)&!r- &J/ˋ ``"MsH:y$ doH* `]r&xl!ԼEaýk78f_}+e{V We )y+NQǤ)sp !h64G UгRqTM uMـ17+ Sm6{f:Ҧ7N0yn{ȿrTbs9ngvbi)cҼK(lq+qMtcb ֥d} ۍR&8xh ^ZkjjOn ^uMԶ$&1|c峩"Yavgx‡:!-p  :q {pbt6 h [wFa@|=j] Xs5X:2L9[M?HÐ2FKxbɢ[OJ?j1ZFbαsf{4߲d ΁ $8 0k.4wJA6qD1.kyV1Dr/[û23\v&[Zv> W<,rS5gWOkȦX`JΔϐ@Ae!@?|7|uK*&s+Oy\=#5фc=?%\$@MK_]=ogP ~:J:[4keҪnD)#?ĵ5f>]+3ɞ:"íq_.Th倪{@.11kME^Mɍ5^'&oHXqtIJ{ ifBbXL6j싳)mHeZVS(C;*dŀJ 6z~yT8磧ɉ[<R8f yގ)L ɀ>fvUc` r4皌1 73t3c:pHRrݵi I#l?9j6!|x9)Mף}aaw[\>]` 67 󱴂rvԍY *3ʟ_J$I&:1 k|YẻJ#^=a( UWYe"z!TKQiL'姭*,u!~ @5PZz=R?|-+VŴGnԞ,+93u͡_Q ;;POm5d` %A SxȓI׭Vl/F5늖0HÍQ*H{kwoB,9M!:4,h2vg^ "ǁ t`W<“Yo,]k\ڇ!sGZ u$D.dI!sٚD\nNAd. jd>h+k7 Db{MM3Ε HuҩA_ ҟ|:f78Ol pkHLtcJmnh6J;FL,4XgH9W;9cpto:d<Ȱ"fI[a fEC<& *?lpCl"S򦏰u1"Ug%w|rC juP 6# *tS*\no帤l(V& #Ő{\z+r-/]9ȝD>1,ϲ#vmCQ*| RFOn40+xe5T*uk4yݓhL~of&~j#(%1Zio8 |5F6{YOL#>Q/6g8aAwnTD3H:̀Y̳P*Iz@@jdzm[H4n79J.q ԯ I>~YHvQ:WW]W+yn[mf |&dCs 04/v)tԘYuշ<[6\KZI-JǴҹ}Q}:$&uc^is س.kG;b)^4]g"5+ [y-"%  I ZFh1\,wtP0^j9`r%^Xc2Wt3rYN ,3=rp|Nly&^z}'{5ԓ23h_[=CZRCX\辦jA)GZK#0<7~YbT=+h2ɒ0u1k8?H+K;<ؘl4?ɓJXݠ{mƒ1\['8F"11'H!dVMZ@04A4 }pg27Luql |;AM ~tsH׵ehݵoK﹃@`׻ܯfَ]:KKrefBF?}7kW58W$x?O%Ʊ-EȣyEL6[Q T`+}R8%