python3-doc-devhelp-3.6.12-lp151.6.36.1<>,_냅/=„3DK{̯B p#͑(šD`JDs'gD ]EBXb.v[ܯ.V/u <")a.>ku>ռz{vb$ 'Ԝ"0Z 7Mx ڢ63]t/E.&/K,uLbvvL2>̣fpbbγHź;?d * j8<HL_hs * h* * * * *  ***XČ*4dt(8a9πa: aF8<G8P*H@*II*XKYK\K*]T*^rObu6cudvtevyfv|lv~uv*v8z"48>Cpython3-doc-devhelp3.6.12lp151.6.36.1Additional Package Documentation for Python 3 in devhelp formatTutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in format for devhelp._냅cloud130ֿ[openSUSE Leap 15.1openSUSEPython-2.0http://bugs.opensuse.orgUnspecifiedhttps://www.python.org/linuxx86_648+,b)= $RZ@Z +ci`/lc P's0K#9P `-WI\%(ID9CIU%O@00;Sj"m7 ^&1K>@8Γ+6GP+'݉4,"b>mV*zc>SE0,U}<5 "A8,01]kHV_|SY]9$@s!z=c%dK9.pZ%,m^J# qjB4jA;le03$)Ngvq)#7YBj`LU67M][v*sYEqn9-NVw+f >Ozr3*S #Xg&rKƓ*7n^8%0!'6((_~K+9A./B=#&ThL1vV{y/EU[Xa[!#dHX6}h.Caco#e,7 1v>ppO&Kcb`P$di-?9z:i-eeZp& (?(Ttm};I$ #KN;ɝ!,b5P_r1 _[>|;q$J-,&k;9Vv%1Dx> h {<#E$qQy/T_BQbyDd' pyA(!S(Jq<=` :F9b.NfG'W,eB,3)O*I::&W:w:w!aeT DnܱӼK%4m?7 V+ plW0(tBd~ sAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r7a7a49de3ce28ea172ee624c9e44f788f8ec1b577fd9ed98bb8dd31fb120104e170294984476012a2b4d9439572ca1abeb37b503361043aaddd15e47891654ebc563a7ee487c395283da502061e15020a15d2a5ac07a6ed429eea0c16de70de0349f4f436705f1c0557a6ed959225f3c2c37d57ca86dc0a755dca8da33d91dedbf257dd9f5b340b733cf2eb0fda20bc7bfe4d4f43cae08edfb20c97776353c02fec25fd62cefb31fc857f9e07f37274ebb6193e092c32997eff3acd825355a1880bd324f6d29be02476aca6b5291d0aeb82bed20de9d9c3d6c106994bbd4320f5d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2b61fc4383784ca3ff8589a1bb48d19d06fddc78d6120cbc9ad31f275f62f4cceee031df1060f6d49ffbddadf05bbe624393a82b189eb7c2558894c62927288660737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa52901602e11113f4cbe12fa3a2a76011643036f3accbff3ceec27b4f0687f60def3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1ba5080dd83bfbc09c8440ecc3e163b7352073f7428a92facb9dfcd04ba29188bdf5ea966ea695711bce4e1130616449195fa4a77cd67b54ecf01ab8888006534c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec895c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e0d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de47e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc0081b62388f6164882e77278bbd671877f7b89355217ae4e6b6aa7f9ce4a1be610454115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d7256cbbcecfb9a97e5c4f2ffbd8a11f00d9fdef0aeff835e167c5092117f843447a6c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835fe8d039d87d8f443d02abb76df25715de53a329a7a35cb58d4767c08a574fbe007047cfbd663b2cac546ff55428a3b09155b8450e415dc42ccd6b71a69b29caa035b6caeaaf73e8794897ca18d4c4189df952fb27263d75e155896964c1a19a77f808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e935023e61ad44de4625bdd7aa3b1ac8ddad355c919de8a23bd16fb36053901ff23cb9dd7ead2a9cc613e78af767a3384e03f1e76a58c45bfa1e18ada3a5a0e9562883413ebd96632cf98e5aab06d80b329bba9f158eb925904a0463eae404d89cb50bc61cf168406acf32958d09585c769413238c9d3fe6845876d8a69696e552843a40b45037bddbde3b006a0b074e176048b04a414d433e860b1511b94129ab6f3f30cfa754e09b7961bd972ff598a2f89f923c490607a262ae3d6ed2f42e5fe8ad324bbbe111df356a14b385c077767b622317b9d0f8d31e06019f72fa85b0ae1bb58c47d5ff1ea9c465528e1cc30b99c487ff457cc3c177a2addd11009f9910703a54e7a9792e228cd5b9f38d44534540a4b8af256788d375b22478aaa2e6c13d801b4235f587510c525d1bfb087336b2a80854b4b25600081245a7c87978d841a03718932667294171bdcc85141e4364de83ad54b27dcaab9698c09744af6cf5c494ea054e5401a02463e54adf3b07eb2838aa03f9900f85d50f9e1168d6e7034623425028f7911bf193f81ddbcd02180b8035f3c64cb38bb1a7f2817fe5e14df2555df0fc928bf0e0b41afb851b67bd132344a85d77fd6d52ec7e84ce02f351b0646f9cc61a807cf9421bb6d3b501a58f9a8bced7efa4e69b3a4a829ffb24aad225d6c75613e2e31fb0f4ffcc44f054ead2257a3ccdadf9ff21a7bcd8ab9f62bc9a6cb2edf83ba8b9497845fd37ccc494424049b3c7d26640650236146755b02ba2dfa73116c79dc443347fc018e6b39af335a24b7249db28926e177f899c1826047c4ca3a41be6fc7bee2dfedd38671bd0ffc7d2ce05695e89f9e58701f22f716a46ce1b99ce4fb6e89f5f8c846f34ea1a880d6946a7d77849d55765ab0a8b6bfd989cc67b0969ef18d578a6e47e63d08659c730c9871f5b36ce351c7ef8a4bce983ae7ad1e9aa5179bcf1313c3880a9665b6ce2dadec3b3f03daf044c9ac558820a92d8b2f529d741f6dd51b044340289ca51516a048a4fd9906e3c7890748c94133a6ab8105b1fd251301441952b3b89b584dc72c29c0f6bd672bd9f038aaad7418708a3fef190f382ff8a6e21409292ad1dad022d36e5745982afa85a806593998086a6f24869b8cfc974e4c4fa284be226cb60ac398846953118b3dc9a9706e1fb969d2f98dbce6e5ebb47e4950a33f0966ac18717861a3a854f4ee9d7b29cfd36f856f3fbe7dc21839ebbb0ad6b550e7ad6c4a06ddb331b4dbc431ecf369fe3647d8d798c20bc14326154d822d1da72d25674d172bc622890b2e3b28a76bd39405eae5c5b91979a99367375d4fe97bbf2a043d3abc41adfe053fc536d95d26b0c800cd0485eb8bd801a6a4af19fcbc0106a022aae69854fe25a12b9c426fd83c1b042b83851e9ee102eeb1a9396cfdb58d0dd74fc8a77e701b70e9bb457a4bbe0e3802a8df9ab10ada30195c296eb75805dd4538b0057e71cdb14864080d0407a3e29bf7277423167a65fadf4d223ae5c2daccaf1e9154ec6431158f94286f3e1cb6802923c50502bb5e41d85379efcf021225f1599b28e95ed4d64cd4cb7aed72964093c43ce41576d31f2e3ca1425daf0300f5cdd8867b4a2e9af4fe0f664ad5fbfef2daec15321acb8b510b53688a460f2f78fa7753aac43617c00dbb7bdf47d78523698d2e9bafed1afa972a60759203a104190055ffec3c9abf327172d487cb57e2892c171b494e3d228de246976f17ac977d167b649d61b067dd7d73d169437fdf62f90051198bcd6aa8c6e4d0e816da34004b51232a83c8cf2c2b8ad58315f491398cb25b2492ecc328c04ed46756d09a490cbca1ad99e1ea19d375c46bda74e0f240c494514b5347bc2453db0fc4b161b897e778d377e9245202cec8aebf4e9c975f0cc0e1bcec23e097279ffd74658420ed42b715e0f4fbbd4d52df53f61c5b412d844d7e59fca69d838d2abb111ceaad11d8a17ee340121d6ab62ac1dbd20c602130da8b17ae39e08348def04058d4fd349bdc41035ff2b0aa64c143caadc0e917d3a77cafea19d18297abf02773a809eb4df9886506e268c86abcea45a71dd85ec9e085d8775007d860f8a747844d9c94e41905dfebc62b7c3ae5b0c74314203e2e629d079b3bdbc2d02d1a8757f92fb17544e6d9c01fbd4b9668f0415c62488475fbcec61c2918d57bc42c502033ff8c82401340a5651d70981fb26ff1082873c081fe3653aca286597b7ac55c122befa65137dee2ad0a6f39bbd8cb07fe93dcbc20f5328656ceb2d5d037edd15b40cb3bac64288f3f9a3ff181a1447344342ae22c0d31429d6def279f2812f010b0ecd2f9e6ad2a94359c76462ea650ad363f11867e30506ad2e1157487d4dcdcdce0bfee67f00acfc4c59f094be40fa1f52df869e5462a0a3a9f3002d3b1db40b41898352aa99320c6e71ebf8360a396b467931ee9f52e46211e5c527bed1ac2c388055b77d577b9536d8534892648154480eabfb22847601b40d7e197a416b5a2f3e6721d212ef7336d82175ab804162dec26bbd9ed7ad7847c7a23e15fdf4db78934f70961a4722e8149a2c87cfc6dba629b3aca2fa133aa2b4f7e0fd5c77ed2ea38643bbfeac03537f61937b11fb3d1530d1e3c2a529a3d057392181219772db081df27d48bfd1005a607e9449f4434013cabb5058d5a31bd17523a50843c6dc1b94549b461754427f0a367de9502abf633a5ca768e6624225a20542242b0691a76dbb010c93ebd83a83ba48480ba4b8a37989f4a7a8ba246bb2af2479869f411bee2c94a7e06c153b7cedf751ad0466b0800ddf5e0ea3339923db3caf20ba638afcd658abcdb7010c14c8975a13eb0a810fc61abc82ce1c3a305e541939aa44e38c520dee8800d066657acc4f10dfe901bcff5e8ce9d846ed4eafc5e245f87f1d0e1812598d5ee6be8f14549c9cf5c56d884b534becf931584c182efeb187720f688e4728353b168c9fee346a932de8ab4a5a936f2457eebf84cb05322a145591daa72ac81da18c009facefeb7fb10b0e93ed5638f321390818a68aaabf2220dbb9ba456197c8a06a41a8aced43a6c1e9797444e797897db2a51bccd6e4d4accc45659b12f766bd109b9cf6e04b67a6a81393fc658a7dcf43e129e83fa89e02556b7bf4e398fc591818222b32596bcf30ee2a2315f45196104daaa793a16d982ff63858afdf773c983a7a9d966e0d4bdffc033cbfe04d9f5a6b7c8f1835fcdf04a210f55d853bc1dd24b13e42eb6fc0905a0a31cc4df15fac9c2d855763dcdc9f39c56a5ab264483a56e148124a571047d9979c25ed7178df36070ff6eca8d1a13edc643602625e4487be3f6f315a86cdf31b5663778af6e357b710806123a3b976695fcb14ea30a0079f7c54b6b94fe5a9d95bcb28bfaee45eb3bb1f236e07ad937ec10fad8239c7e2ae730554eeba1074b78b4b99af98f73aaee3ef9b781ecc9b079c2024d34ebe2da2fa483d577f1d5863fb91df43bf8b880583413c3bbfb345fc601be2a7d0cc812c07fc95eea592f8bc0c3eddb4d4e9b4160d68f8d785e57a63038a1291b3c7d1451a4b3df4ca630d3f52c44ba490c54a92099b982a8576e7e4e12d761c8decc0854f5dd74c2b9816b001d21f6345214c524a733ec9553d4c5e59e46d72577ecac9357e4721c6b47ba7539df6cda4eda2c6744e92b385b0f7c0f3d4ad5112191dc65aee14242a3cda1b4250c70c2b6f7b6ad15ce6f69baee7622936b9f3e77c7389f7eefc66c38932aaa58c3ee6f0ec45aba1ba41acb9d40763c3b689b1165a4cb57b76a0fd91e15826dd07d63edf625f46e33819a1aba02054b80194fb9dbdd2c0bb6ada0af97faf2de7a9b23583d71ef28d9a3102959453d6c89d0d9c5e40a839e4c13f3d0ddc8b3ecfd36ec9a8e9103dbbfcfd98eab1d01ad940c2bf4ec0ad6a8c06fa041986e9031f256812aed54d17e50523044546586f0af5da70034e7a053ad8c4fe708b3e1b99fde506c4885cc9545cb0b5d8cb1923a6c08c8b278e25890e1b7fdf28174ba3d09388a7033c7dcaabc3d206bf650eedd525ab11a31fbf6c4ac32d3b9faf3cc4fba9db5c348f3f86d9a0bc2e423823c2f906d5b7cab16e147b9418f4f4bdb75cf227c6acdcdb9570c41f8b1a0066ae95947451f34f63f1eada4e990b994e8656497c706545e51774af5926ff4369a9edb330352de3bdf3e34881082350ba7123dbfef4da2cc3a3ba0e3fe9be19351443e67379f52578697ffc329df2d074abb62cbd0687ae36c34ab1f6b0cc2603990a8392480da46a0b9e322ec0a273bc14e28be317069f9dc4fda63ff63c8441c8ae6ab71498dc55f0a96cd88e1e12fb009964b25564bcb854fc8d6abf5b338b4bd2c3229e5d5497fed77638d4311a92045021acb49045dfa6f8d2eb63e09194688686a79c23e4682f9a755ac2c255c31c73642c0a8c335c6685469c33107def6bae38659f8ff13d1bd1a5215d4be04a330e5f33ca38e9ec52b1c892c995399d2b932a3b0a94676474be5352ea43b409d1966379cc77a23f15c013e8ad02a485389442f1f2935ae711e1b3eb8626e7cfe3332f810c1c932a886023fca70b8e23052a1f68ea5d852a7ff0d1893ca637036a7253361ceb0e811309cea28169c1f2595aa9aa258739594abf1fb8c44cad59f4d18110e8266d680ee781f1a49f9800dabd5f81d0b478b789b6a21e503fe48781afe4719e139c4ef2f11ee48ad4cca52c59c25ca221b65a3f6fb50ebc390fd2d0b7895384c12777b2288ca45265aba4bf1e44ac5e76d0bbd0afc1b6674da72f2f5526a6db46963c5ca98516be58b2ee7ab8080c05ba3de6f9d8bf56c88637b1280c988a096a6f59d977a3a469f2a405001ec4c687c03d3f0df622660532afb2491f9bcd17ac8ce5dff333ffa9b018a298aa949e77fbc37a88d632f1a2954c6784401627ef875cfb7be5a535d43f9f77d25cf4b13477d8bb31598ae2f226f4b02233e16ed3fb6cf837a360f0e5cf87c8b1dcd36a05b744c80581d5197175b240d7529ee6ae1341ef40cdf55d6affcea7542fd3eb638382cc1a42839f96f714db0a9bd07bf6d089856a860666a7ac3dfbd451a05645f939df138eacf5369ca4db4e81f762257ebb22fb3cade2be659051abb3cb4ea1c9b419844852b8f50d9a57b44873bfe5c264ad87b712c7df1eda2679106580dcdedd62facb6ed9303dcab557a89df107f30aae4eb28e4089dcd924efec8a8460cca20f315f1b2da538648e037eb5c5b83b6f654d831c10ef4887741e7d7a2043b194583800a4f581f23d6acb3267a183d42cc1cc9148bb405d0e3faad0e6c282ec2363104aff53458e368acb6940a2313190e4c89107990b7adb802fb2d024eabddf9d1c5e919b13de3688bd83091430c1d0f5eb9cea2622e45bc387c97815f9af17c090cfa022555e4c5d64aa4b7f61062ca81ab5a878ce329ac61d37780846639f5b92c9b78c9668cb2385c4fbc241d7131ed0002b893694120c6a6d9852d6b14f3eae12ad4d027fb15a239451428e59964225d6604d71e9dc568bac556a61a33c58e4bd236458a044eaee1ed3782810f09616bcda1168d10a42b6935cf15ec025300166b7dd5d6e8e075c24d8eae3af872fd214f2aa8021dd87ef181e47c5090a97239303e4df160026976bc61617feeea060477f5f65ccede9f1af15e3d06eadade9a7b887871ffc9bd4a1b7582be3123646eb1d0d4981f58ac28eee8742f87ed44592e4fd8fb236ffe21a84f7c728c6d607589809787844028f4040051061bd5142bdd305c45d49d61abb1ad815bd2cdabd0cd571cc86c8b209337a2055aa905ca1e79e2b16bb2df30364718b3fabe61929305c5d811bad7ddb5714f3455a99972f5dcad3b978d000514d334b101f00613c9ad5a07d23a3515a96158b979212420c2226c1fe5eb53712f481aeea069832daae0833d48c16aced367ca4e755665bfc7931fa89d5b4918f7941fe58108f7540243169034885b9e2475ad6c1e9113b09f0c963d0c70c83108a29dbc17f20a7b396ab4ddde9753a9e4e67ca1ee53e59b16437bd64153b70ee039b8373f0bea86dc4af4a352cf23ef4659517b867d9a8642ab5c8a9d152ca4125544cbab98e028c81ee64b76c1079323a8791671979b1a97d5a1fed83a92993ac3ecb37a38192ab535fa557249e7ed96e5fe3e90dc2b15394aad5833bf10934939e34d518e2fa1cf9eec12b1a6a39ed9ddfaa91d440515c28e2030d1ab791f22fca00aeee7b71969180d61e5c1bd91877099d93c45da87b14406e07bec3b8b5f50f46f77f9734023c34240af8c3760b3b847a17177c75e30f068db821c22aa11a54800430e4978af1fe6a27f160197534bed7b59057ae304ee8259e515045768a4a0cc8b51ef477fd3f08768d790db1a602b08daf8d2a7f813946e47b8ce7f49b525eaaaa71c6a6a854af9857127c498731cb9f5820db5f5b43274deb3c05230fea282e1eed9e5ae54ddd4d7a7a4217be9a67014e4289e4a025c1314f3f27f4a52c0de7e6c4f8199673e163c905f22b36a84a0f8f20a5b0361d123df87ec230c4e3fc48a2fe4c57bb41612db5c378e91a2e7c2f66f99a6b18b9b12af23f99544e8dd3fa2b084a2e097ce6465b4d24a27ee64f3db63a4f37c58e7761183bd1aa24264534f6083a00e9af4770bb8aefc09191ad3d6f4848079fd62d504bab452105a012b640778b5deea3e89426dd31ec22273d13115581b32969e06290ba3888fec88bc10589d25289e241d7bd48abbe553c334dba8097c11ff1eb3c4e8a0c12a7e3979ef1b09d7153f50ffb0df20ad764d1f43c1493fa636a4e452da32a2e27014b2919e16eacd23b0db6157a3d027e2f62d1318afdd14a2998e246cc1b41938b58ac0633b3b63864212a7ad04b86bb1e0e517b859a34771f911dd9019296d9c99e1f81402fb5352360c120570c178749b124e13198152d7cf130e60ac4a3e08cffce62ac1a0200c40b7cbd99aec65948bfb7d64c54d27189b1f26ceeb2fef8004c7249b2f1ee13322fba50a15331443f37a3282a5c675ae4c1ecb89e1b9af8b975e87c3430f33cbe5f1fd5f47a8f12648a60209c4f4d587263692747ec6ca44a16a1191aabe1e3eba27fbe7137c8ae22ca083367d32395c117f36c618531a7794188aaec580fbaf2b75fadf2df0b9ff22650c700d73001c19beb3f0d9abf337ade4c6d7b2be88c23b4b544d529e6add45572f3b90e29584ae73707d5cc368ec7ff6fc8217849e5986a6986cfeb92e00e690d1b8563589282fad02c5064615cef08e4b43fb0917ba2665b154de75c2cda317e951efecf98628bd61b853019dd9a02435ceb4273b63800d1a40bca163508490ca71cc1d7962380ffaaf63479ef0e325e6c58e72c39f9ddc43fef4764c747c95b17adae25723ca8b95123331ed3d0898f979f5e42ed21abc4097698709364e13017b899cac8c508ec700f6c546d7c4e52235f56cb38fc1e55f34dddf95e97ce6df38cc526cd211624a1b752a5c37a8bae3fc7a4d5fb711ec8ee2bae78bd03a27b00b3ffeedcc3b7af386bb405217fbd9130962112302680e1325cdf38b7633155dce85486a3aa3b9b42123d916c43f615040cfefb2cb0e870f3fff0baf58417a82dd06e1d48dda1fd07b24bc32f0634f2b1657d24a41a0e911c7c990decd1b7287d90f6156ac9a63abd05103b5514a3b4f09d70883c8dda6b8b04b73584aec716eed0d6a2c9a2a0f65c74b227283d262b46f08205757a285dc0d5b6ddffc78daeefb215fd82545728d3f519b6f6e572bb1d57d483ffb0b2b374ed9ac5d713fc8b0e1fdb2fb0b99393a4b15e0f74f8fd932b5e73e90f13c1b0b8b1426c8c702ed3af2ea82f33442b1785242cddf2546f037cfce4502a3dacd326f2ac511b6042bf13d69c348373dfc83921229ed8e746407a263fbd9ac3099e537524ebc206a6bfbc55c80f5e5c86c35d669e3d415801fcd3aaf5bd5dee718067217b3ca3d63248d4009435a3985411bfa6cc3ffeea1133e69183ba5c9ec7ac621743b413cb8ca2157790ddd506c7eee525ebf766f2dd29d161920e81b616244c5daaaa95842d341b2f8ada2b43bb262d0157774362e4ba94bf9cd5f0bc57e0bcaf87fc0197a35859f8a587c1c224b0d4a8f9cbfd22605a10ca599016c7aa2a947fa1a1bacee87d171ed0e7750f6ef2519f563a056c3096e71d3c3cd15de222d1075e38487033bd3c3d715e11a48fdf3c4139a735de33bf85e259097881e92ea32142e4ade80d1e075e2147b01f229f5eec3a97687e172ad7c3b70fcfa230da463455087b35ccd5c346368f0c491d1220a41825cd8cde4250c4aae8f5e188ae6b43b2bd6d1a2fda0d9524a24b5b794dd3153182aec152381777fa9594cb5469b6d4a23fe09b0fa05543f99f8d6eae3d7cab32d12b1fd2d792a389c2dd30afcfaa10e078ee016b16c0429f6515242acebdcc1f6c9cc3ea974861eca221c2955aea32ad3faf0cbb4049fe3f74021e279c44298fa21d5b4f48091c9a3498a28c396fb8db61dd0687cb94d138b64b32612b32352b6c8ebd34316dc288ff7c4ba3b2a54dfc576b5dd92eca1cac343ca4426415ffebd4e0cae437659353aa2413c4aed71d507e598a90217317c33c950403633e87a6377eb3008e841f1fa8efef0fbfe8b91984c7ee1b5b3371d546c6647b40650664fffc1d19711c5089f734b621c495c693c7253ffee22eb44e511f8d695bfd8f533f92dbfd3f0830c724bb15dc9fc5af22b8035211edbfb73933d60a0ff44e80baa3bd7967fb53c6be8ef0612968b9ada2483cd4f384c3fe40b17a4fd1370a2330bebac3239d434cb1f648d89df063c9c5c4a5b483481467e3e6b0db61f477089fa4190c6ac7c4373f99507cb1a03ecce4708bb6e05bdb02d4d868f82273abb52742575e66838cfce5df6be6b57947e8529260432bfc003d729c87a513b61de0e294847a19b80c18275e4f6a7e6895825b90e8080c1bbe860119604a8755b0d8650dac4a927d8d3db0b19a0e4bf6e3dceb7807e89fe6a3acbf3d2004cbee4229999fa974703cf182b1303db27d6a2fddb315735d23dd3ff3eb43b63a20c77e5388a019e45425aa12ec0d2629460e68aa992b301ca3f6cbd55850a750f25aaae553befc01a0c6bb21249446ca53f3e7b2e148559b8ebfcd502cb9fe9469b53dc3787dff1cbfd5e74a1f41dac0fbcedaad26b9a5349e9660d110f08d8caca29ca6143f00b2bbc4d8190efaaebbf399bb95b2e974c4246a44a5d0e4e1273571e92d31939120f3eecce0736e52409242a86f2d1fa2e5ff102bda890f5ea4ab6b705da44aa4398a63ea5a72ce4669f1d8f3dc2d9ff37a18843867b32cf854bd3eef79891073610c26123205f358c7aced037dc3f2fb12a3f7f1674a60e42954d41c73ceab13550160796db7d008d34a90c05ceba4c68fbfa5298ec62c7f95c5fdf2ffb09c28dcfd359bc74b55f6a06ddfd93a4add0cf01148a47e3caf264413d401cd5ed3735fc0272276be497e140ae890bc372237d5680e38d2ebf8fc336afafc64f2db4038ac50fc920acbefb1cd65cf1f8a8552cefc62f01fb15647feefddd1ce9c965d5b73387ca4c23aeaf2aebcc1c69e68d431ef4f0aa3ae3dd85da870d829577ad07eebb60f10c214cf50276077261641fd105015698753670e8ff364bf28522821cdada0ab5bfa4e7a9e70e643e977339bbd7becddf222b1c5b65e5e3f34e86a89fe3de288a30d45f70e63404aaa0e0eed85d52ffb5f0ae68f1380acbd37071fe7b90408ad271fc5474489ddcd9eed4808c8e0691e38fc62e9a81b92b7c6508e7a8f77c32ca7b1cdb7f0cbefd0b5cd6e6da866592d9f13fead4c78fba3b230509b470d736451f369afed6edd78966fb7895664b73fd8aa349e8df992737fdf8fd18a7067d85939953cbdc871c97f541aae3f8db73caa440d90a97f044fc50f5cd3535af2ba62cb9e8c5888fa63c311f6bd8941cf98b67df8798a20a7c9d35ef80a16dce97b19cae0ad7a4ac8fe96c0f9bc77d0536baf972456e1b248a067f8ca07d8b62c26950f59c0880fa7a207da1d1e71feefc55138c1581c843b7139923ef25b6a626e81f7d19d2382d6df02ea06741e7c6ecc4a6afa5630c73cf8ccd6635071aa22507d642628343b4b9f7fea296e274bfd5d0e8b3510b83096682a6511cd1eeffbbd7cb323f3df5208782859fdbc4e853708ccac9a95cadbf5acd1de0bca0929d23841660363a58ff5f75fefe07f92888c21f8683aa5a954fe57d7285ab350dfe8ac3f6e10e32489f231da5fe18f8e48978ef566d978ed10e2bbd10ff374c9427620b7a2bd4f4b494318d1a4a05e24e0c8103c284d5a2ab59fa8825438011290e9d10082476d23b4b687c17499f7b4b75658601f83cf32120777037208e1b1faf791b73f5c152697cd7f490ff23273f818b4abd6ddb7e6b41b92812b7a5974c048f515b240c495f0a8a32e38dd26926e65b26e94258be2e2cac2f3876eb7e8954742762d0e3b429df78a2ce6d4946e3400efe4822c7e29ecfdfc5b146d9a9db63f66fe88f6bdb622af15abdcaa2eb271438f07d3390f4041b5fb3168798b9bf8fde1202f3714b890eea11c6e64240eec1720055772c7741b3f101a2085de8db92dfe3df55b7b31d30ba723e5d54cfc808d27bb188c20a9df09a93cd397a215534a0b265b1f527186b2bcd1a06e5d2744e93485a56f7e89531814c58b63d008faa0c390ce8718dd22ee17ae2da66bbe258eeb316fca00e4651466bb45c6850f276ad84635ae8b14bc8472d240e1ffba29413d9eae7c976bc0d11d87161a37ed75f82c835f4798d759569cf45c085e1389f6f015167840e64caeea75355fe2bb4c612f7cd6d38cc168417d4cc02814dfd100d879b325ed96cee2df8dbb2b4490e003b826fa528c05f9cb5f098fd7748a769ed83d832f4fde9e6a6e027ec58868f398a10b7d16e1b7dba0b796227932197224c8addd5ed8582815af18aad15c4d4021e89a57dd258c392c7f4050cb51285ee7f9ceb51bc7cd6e38dec5952ca8a3be76bc74456f49a96bee8125e6cc49534f7e2a29ab5f3fa1da9aa976fdabd27514346f102f367295f37ce5ae10a1b100fad8dd7287ee95725b159b50b562abdde0ade30fb7f9893ad1b0ae0d8a6ca6e6a8a3eda2d98f7c6fa387396395f44556a15fdd4332693b1720fdfa7d2776cb5b847de9181554dee593a9e7f43f4a9b742e9d1533ecfeec2cad818f807491fca65a00b047edd1c9b29997a3559fb8be8c0a422ba51ae8ef4c1ddc92dc28e1c09daa4b3b1924cdd2ec8f4f45559ceca45085bd640d799cac5176ccdf7d8fd549e0749cefc56db913eaff240f95ab7beb101dc4764cb82569ef190641e091ceca35e2bd758f985872567742aff77cb30255760eccd4137c5b9b28376b5896c9e4f31b19589e6135b2270cf336e843cc702ffb437512eb1a596ea558490d5aa15aa04a7194cc19a6011a34d6a28d7cf2eeda6d8ebffd13ad4d905b439347e0d80e7ac352705f233f8e6f3606af7543fc6b92026c3ab55a563c27548452ad4f35a83b054ee44592f25df6fc12622ee5afaee01816db1247b8cbf2e35923e2cdaf7c596851b1743c06a2174bcb79faadcca6a92d2882a8341f653efea58e11165bfd66b8bf0dec13e4dd8c3eb1b9b4e130ed74b1e0d2596c9fd6ae88b00fc715d7c3b7b88e383bf46856a2953c2449458d07c163bf94720e38e12a8ee0d84244963d386315bc8a007a611dbcaae5ccefe7240a8a10b04badd7d89632c2ca523bddfceefb138f4292f6e0b4c1dbb4bdc82f5d248a6eccd56e1e4d86cd6f3a5a2c95552a28330297518e58a8c14e546a267b59d875fac6ee9a100dc13cc3851a09ca764d00229a990e263cdaa15eb2126b82883a5f6fd3616b9993047e61c956fc8961975d6ba1f813f497b6a4a569d16ac16216e0dba83a0888e6536741bb169dbdfdbec491bf9ced33832c879217b074ff379efcb823be325efb419914a0563324a89eb3b20442cdcb11d792abdcdf91681180874585c0fb9bf138fb0d2af54fd7e1bd5d0553e4be1fde9ad22f404072c17ed67d751649ada9f0135fc5d72e1d943cfff78c9f8dedc03dfc90b8565eb22a76c22d70639ba9422c82874354f2c421190d50f17451166c2c8525f61283d1694e8a75efa6e1e8598cd1665df669173caba7240aa9602113848a8b62f23cbf7a919643207eb331487be40f59568a08221981445d27d159c83873c45936f1386ef31bef57555513624a14a0ecde90d13e2b5d41efd443439a0dff0f59e21c89f0e91ef8f920d2e0f7a10ab483702b7adcca2d5a3f1ce99c25e0ba5d51894c2f89adef901e03507123d84939a1f19375347de430e09e5533b33fbf93aef87d45cdfa6a36604ae71ebd0ba52128ecc8eecf270fc1b819dd675fea2c4d364c77b2683a97f2d231ad709946f1a18c8b7fffe0bfc0dfdc2a9485653049222045bd22e186ad2843dc820c53c814a75ca810b77e20544191f4b472b73f4c2f102f4ff95282dc6a46d15519404d830443571466da5ea98832320546183af41adcaf42be13c24ef312d85a825a09fbbeb6b22f1cba24f2173284420157b390fe334b4bfb8f0cd49f1664e57737fe5b3e6535609b372f673bf1316d1af005a09bd778afd56736f26ea3f76d797827881deb4e7f2162c05b98ab387dafca3a8684bfa9dc450d494e9963e52c3f04e7f2c732dc1775fab0b8b8ee7b62e7ff4683526eb4283d194589f274415234a99e7a90cc00ee729ebc34472c18a3abf92f6180419520c827b89e99bff38f91506eeb2528c1108c685553a4cd2d98e052981bb8f79a10dbb397c4b134c3e8e480cdf9fca16b58effb1967e768f08ecdfd5cb0be76b46a18e46c71dfa764eab4d40d901d15a0442b7d4f644017866d0cacc48a4a3c729b011ab7f828292710db02753e766bf1047d6f7e62279c637f55c9462a3deadcfc6dd9cff8c5e6ed8f617668ff4b6bcb7cd4d666f87b8cb72b08f7d19a049a5a2bfe7fef312955448a5307732dd2afc0782730889554b1c91479a05c1f0bcbe99aca1a538c7d9b7b6df3075f752316fe201cf3478ed2b2fa2d94576684f39ffa4a18b01ba64d500a0b33649b5f3ce29377c869a06f81e6680be94a083a19a23b2b9153dbd63b15d8bfba13c399449962991dab6a1dee2f99b82d331ab354d687c8b5f18b6d739451d4929c066274cdcf756590236c7b40439dcc3cebf22df783456d6384a77834afebc2ee6073d6aa06c7621fca97d1433acf887ec46c097e48cb5f7bf35bab63344d1e3d25f472e8efafcb41d01b0f2de44182eb88e9c95498a3d9fb881393474ad417bfac926ca907aa9cf04ed7d807ae0479cae614cf236f6aee6744983b333850c9831c228263aaabbb006b69f65762e8ccef770b2373948fdda51b1d7e858e507e8c7090152ffabfcd5ce406cad75092d8134929416542b1bd48dc4f34f04f0d2da75b61acd55033daf6aa4bf3c4ce24fc70e47d8a2732f8b582d8bffe852b2a01af9cbe58a60c67edf6d2fbc084d784307fc5c400e8a2142d85915b359b3037266de006417bde038780b74179e10e483eaccb5b3029b608701f18b3998464f6c049f822e948da947502b0a3e8decdfdd138ac2522c79d96100abe100fef33bca809675dcc3996ba761d3b2eed1520d278b00e10e2f4cab7e11e1ced5f9fc05535c493cf07030e546702a999ea63f1918ef1f5e0980c1a43d2eef52525ac0f30d387c64b546484d2434e6f279fcddb83cd1a9ac78a6661830b996675ad335652ae2e17862c946cb89a3ce021fd049ff1201a194619143ad50130021960d911f0f68d06b2c4ddd33ea698b60ad0147ed9fd7341ca9598995f0164d62f7aa45085e4664ffb8bd9bf241edf46335f354042b7d3900062f394cf7ca9b949fe512be122add1398254494feada164b2b8b3fa77ac10b72487fc209eca5c124ce555efe46cab277738e6c673bcb2099e9d6ccb7990d24d888bec328868d50369d85086239295a017715d9a824acaabc84bc5819a070e05e04e21805007f55cc1b7ac42f0c23f464e63912e87c1e80f58fea7a8a50d2f2a05780d085ea6125a9e7d645f85eb3dec77eb4d607e1871b571fcd7f9a87adde6a820be3accac73e4904b16bab727bff2a00d8185f00642287b02eebf10b94a03eaa181b85d176a827d5d12bb162d117bbce8b686393badd8c5eafeb6e35d23ee1fe0de484d36490f997e8048e7a904d4499e845692d6651d2deaafee20aa1038060f29c5804aae6a2c802f70652463712e7aa73e1ff5ddd8ea4fee68b9125a2ea88d85d214b92b5fb394a32c30508a43522c95e81189a0b1d1dff149e69779c95bf753a71e2e64532ca902d2bd85326eba27d8485c4b551447eda1e14ead0d793546ea8aab0cdebefa3917fd21d976cdd3b733858e3126ab376f161526d8dd1d9ea2a6d21109646242c86f43e7193d0bf74bd3eef5a12eb54d15e1fd746d79f7338f51373d555db423790d2ce5e23e7bd3ebb1b447c17b4777aadd4f56e9d5d0b02d40e90d33d8729318c2cfc434bec2054e6b8e99cbbdb0e277cec5b0e2628dfb8fa32c33e01f8047114ad94f75f1ebf471162abbc7eb5b3a5680a218112d59f69208cab219e76a939e4157638f710a3886d7b5a59ec95eeb00d8410218601ecc43f5841635f935515e7f5aa82981b5b98b8d87e53cb46fabe48f6de5a35e345eadaa1c684b24727d4485fa10b38c6bd442ae7428e914d00e1c67d9773fcf2d1b8a05dec6e751139d6e67d53232f97afee0257b62fcf59e4bcfe88c39212cd397f0ae8d2540e845c0760f4b9672c245504203eab64381dd5bcffe35c1e7afd52347a118bc6e794e4e71f1cef8d84006b71e674f1019d6786342f105c2ae88a223634e8872bb607ce8d4ada037c2bf8ad3c96438f492db1bb9afe5d9e0f450c3edaadb77d7f95179e3adf18669790766170c124e17250f76c65fe1ca8a9f34151567e9cc2c7e02ec9dfd9321ecf030215c2031bb1dd4734d795f5bd9ae00812790c5a534fa4150b6f239b4753578d4b7e0ca831ab0d1d20f06ad00556a7adbebbc93f708876ff1bf300002135791e17c0551d4981d11b878a6e8cce7511852d2d6fb06ac08c33f73213062c2614a999be662d6058dd5bf88c8fdbe44dc22aa5ea3d04864080028833509ee0b677a6c2f7deb0c686d803c2c8cf377af761fc46e4223a2d531b7110a59e4a81ccf0713356ec30dd8fb49a674dd4e4199d2feaf84c01230c67cb707159b70397f239017ca42e9684df47252f9aefc77a44521356fff35e5d3dbe1ea478dceb245f941b443f2cdd6ed3fbe4253774e13f793e24600799edffc7d4a9470a3300f4e5cbae8e6a518f7be0745232f76f592475397473b161c4f293e5645b71f31f06a1ddd45c757465bb56659d48fe121ec3b3af83b7c6076a52dcc6efacc08166eaa048ebce155e7b2222c5f8026bbc99caa292be33ce8b61e04f547694dccda3d4409115ac463b92fdc67b4a164e95a71b19f06834186e4ecd41135face4b10816ce7b209c626374bbea143a2650094dab0c65199d2899a6125a4de6d5d7af68c34365b901647080373fbb32e0eb73fa1f0721d585ed14ac0ee2f19f03c4b3a34c002ab4c3f17652292f6edbd615e0a61eee23e738ba383715a5e80fa5f3204869608d460b6ba05137ac14cdb5e44278e50acb378581346311f47bc8fcd4397677766563c11d1b0f0276b09b7d7cfd8b13b061d2a18543a36e3b778cba020073ed128e2027370881dcf9aaab630175b13a86bac1c8df41fc4eea38aa202ed2a2711e4369840452bc22342f7f7cb65d463357a2227db00d65b75def4bb1bfb245539732de7819df2eac4f785f9ee5dc207f0554c64faaab81b7a2596d278a194bec4c1678dfd7cc69070a9bf4ca0f97530336049aaa7f8355b0732fbacccd74ba567195d8764a08d9ecdc3e15084306d298f867144ee537a97ee397038914720b5a63b517f4304be936b7c6acad2e90796d7cb65958f1ee47f602446fa0730624387ec52c78a4c3ac874c152f8f6f829759cbc7216017ba3bc14b0320f81c43c737e6958d14384d86838f711472c05bbc6eaa941a7e1a87a732687d43c85140cfcd4ab1ae3090784b08f09366e3b0d190a8dee9e84724429f9966b70dcc55d289897c61ced2544b31bf62510e9b2bfe1941f104c6d9059c282cbd30d67052b5f7b8d3ab4ccfaa25dda9d9f4ad29a1c27df42de6f0304b4331df7d64aff0f811dd41f8d0fc890ed21d1302b25a025d2394aaa13052cc930d486deb3d6e157256346edfdf9a076f8ded362d42605f950b6964c2b8c7debe21a2f75d078ee8d6404d83a6032155fa50b0214159261410d47e32e01990a621c4f5bfcd3bcf27f9e7b3d6ded01684557fd7acb08a05677b64a0d604ffd21afeaf8cadcdf1cbb86cd562a62f1992b8bbdbcea4c44bef3d58632f82030c226506fe858f538e34685dc50a179176ad64dc821abd6c1bd9cbe73e45867ff764a144d3ea82365e8ab644a4e03d765f12d8cf24e73cbe67c8cac67b6ceefef6a1c5359818de4f666fd2b4880f64d4f396a85aee7cf9bdb679db09edcc561263721945df5abc27677ff5ea604c3c7798ce2e3a851dd8db748c6e197766a91ff0dcd2f974a48f178e2234bfe6026e506905f6fd989946b10b4a2b6eaa996f2c1d7e20bcc172854bcf3da4e654a1198057d8676318e6faf05d16f846db99f8584f253d3ae42a56462a706a937770fbfb39d57b65a5df81c0a86bc02b505a3f4679a205e4917849bee93ee6d7142e97a19ba801ade759e2eca3b8c0f22d073cff123a1edad4b3a89c81dce7ca264c3ffd063c5220fd6f262f6e3c322da53145f5755ac1abbb044cb142b1a29bf9b4c14efe15af69b028b8a27db86928ba1a89f263d612dcf9185a5a21fa593be3e13ce44d833479d0ede4496a7b59cbc2de05233ffef878aa17d4b209ffba980eae034ac9b8e7ab0ba45561e447ecd836909eae5c2f600070eeb1ab3f39fc15ab21c2bf721fceed80e7c4bf22794ca699861d3ecb0c51b087aa1f128814accd2401d937b02f80e78e68a3321a1b9a70a3c06ec613f188d2f18c021da99b107a06bc1d8fe7e541a61189847501f0d559f3778ee90500e5e6583f7ce5f693862211b31a77d1dae4d73275a12b7f3732b97e9dc3120b65289dd710e5db15f492795b4d2c90718584cec58db97d5ee6ddd38545f4839e86638de323c9444e7f54a62955fca839b492467526ce2442566ae42112ba399abf62d533abe0233117c8b4ca19648d5551d795eb437494d1cf1390d477748b30f978fbd5df2173ac7dab1e3003b8641081d5da39e1acafb4595fa94950b02cd71da9373b94f04f00fa470f808ebad6019241621be55b2513e5529c6b02875be19e8cb4ed52c73bd7af79248afacd2e6bf35f7d29904f93171e9d7ebabdad77ddda88c61b778a8727e35d3a552f6a4dfe2da142ec86147169e5fd04e263da4827e3c4b78de1dca1808b1250bafec093bb546ba452e833fe7397c97420b478e4ed5038a5f2821f5f4b2a30c7cc19d3bbd5285dfdf386052d78796754e50ca185955e71f04951eba752138dabd214f438d221a88c30702ba3a1e19abf6f6a030a269b50dc22b1a5c646bbe998d6cae08b0ce47e190219b64f8e8a16f48fefdcd1f481b4af142c736089f561389fe6770979d7a8aea802fd211727b101d35fee9604eb3accb8d8abeffb70bfac6cc43533d75eebec6d045c54185a4c7c59199ed55039731d12658dd3395a4eea084006dda544ca0af34394424bd0d124e5b6b68244bff15476aa3fe7bdaf9a9452cdfe8da34c23ed85fde66b6ba2fe4caa43aebad6f5ed03b33f60333dd1749aacd986e55a553956a500b882f2147e6fdfd8717c69e8c1efcb2d7aef62d2ba0f067c21a3e6dc16958a452ddb7b0f31899d76eb69ea8e9dbe3294d75fe60478e646cee959d9998ad4803dc27d4aa106cc8e54c8a2c4a00c1cc8256cebb756a1acc563da20ba0f80f005eb1ebe7ff545b512f6e0ebe91fbb0d8bc995a84a4fa355681fd1142a5a4b7d6300ec85da5b4c711e82be23ba6addd387cd2119736c593e0eda9367b8e292bab50e043b402ccbeaae509b03b0c8c9a8252aca158c4508555d4cedc2b13fc06c78872a3a80a39094c5bf8e3d46d525870e3f435b6edbd89fef6fc1f4606b5e728d359cb6cfc3bb75b103dd759bbe4dd3c8279dffedc88266adbce01688e8cc847f169366b94ab18681c1cfd77bf4654063476470d8da32e7544963b5a2b9d7fcd4704b2cdf16e4f89e2fb1ce449747bf7a835619935b806b2e232a7d627e1b8173f8f21563e4193e155e9b0fee300efae48d01a300f8bbde0d659df764a25b9f610c4bcb5b0d8b89abfaf3330b139760c0b162b1002b6b95e8e34b1e72a3f651257bb45512ad98d5b16ac56a0ff8edfca7e6a269a5ccefd11ccf61a3e5b45f904980b81c55936f7abebbe36a7bf6ee50f9d1cfea49ff132c202c658f02ffce195fcfd15546b7af4c187c8de6a9ea2a594c11ca5d6be53117275576bcae26a10cafc515595f1408f8ea6060543ae12dd729f66ce7af5f61624d5461e5ec69c4e447512fa600205425357a9a4cceb4a99646bffbc5b9989c81f9e06fff2fe5dfb2362208fde7aa9c29f779938ff8611b03dbf191e11f14f9261d62598b24c1a1ad854d45d65b3e8e9ddbbe855e83fe48f8b4ec26cfd3da38c7276cd02dd5e9e52900592e5904e2ea201b9c9cf1b1ab8f001947425dd77fe2af601b5081f014bee9c6c2ab8444469d574c43854cbf58a881685bc7ec44c8ebc534369ae0e0f1d9070b24c7fefb0a274a0934af4603c1745c3085979e673a23e663c472857048a2cd314a7092bdac0b95cdc298a98dc6f3ce1bdaa560eeb5382de8a0bb79c0c413c7faf519415153c9218b3a6b288f56a0ec440608a8c796ba0b212cbf30326baf2fe1b698b019331de5a93b3ceda5d978d6545d24ffa3cfd2461e51728b5580f6c927adf1d751ed985ec0695f315bae8155c2b9f40aade93251308dceb5b7774ac75b53f5cd6963f071a4a0f42a531a27b3c2c2e3b8b928c59873af717c47a4a973a3487bb7919426237052a56c370d67c29559ad36e01203c681934b62d6b68440ab144e80a57785e9d65ae7a29b1569c26280c5ffcb5cbecf33f4ed27048645f56fd9c8322568e2c6574ff9029332385a53ae3fe294459454365b0da457c4db55077481271e62fc959496e9baaa55186d49b413b029cf66cfdfdd5b4d08280b7ebe23319509ec358d3c98a2f267b87e3f41ee167b05ecd3374c1fef8d83bd335399ee48af3806732674b49322f297b44e2cc097bbacd14dfef7e265d18ecfa9089430d1023d9275eabae3a786dc7cce906d0774f51cfe3c56daabd876eee6620d090d1241a466db816bb31a662841e78dbf46f2aa85be55d84a8f170d82435eb728be55369ae0ea133c2d2433e928c836ad2e04c1037333ffe5720dbcc72a7bbbf3b7b8e9828dc02d1b3e83e5c5f4ee0fce0f36ff5d9ceab8b0463b0ed9468b00e2e8a511a70e62a9acf57ed61a31d3ee87cf827e1f47357c53ac8d818ca7dc30b79bb3d91726193ce42312409453eded19ac2695f4db6d5b2cc2d4fb4dea9375e4a8b7c4039e8dc82cb349cbcce4bb117e40e6832e111b1f6739bb5f1749a05ccbdc0d1f784f0ccbc589afb6b7e0f949368f207aa62abf2bc60be1f895031eb109aa5f0e89e0bfff5626244bf9f5f3ec73bbda367c46c9a48d3736ead56b96c7a01872b0fa1bae0776da5738a3167896c2f4f95e3c6552803132f3939517a627713f4746a3ede13dca507dd4d9c715778c292c6a26d5fc330a830bcb11216ed46b9e789b43a3ee20813c77eca38eb872ecb0b8ba24673b860569b5ac689f988da75cfc267cf2e3278c117790fdb7660664f87c518784df27836b787f504e4401afde2cf191e3bd3d806bbb7f1903b71951f2758f93f5dbf84f9cdc8d6f50e10da92090286b4da581c4781b5cfa661c486b5197bf5b9db534f1da58d8a2ef87cf72f3f42d205398bb54becd16a93a42aa3b4d48386fcbd3c04749d3fe2962b1ca609d1f6202fea43e342ef1765aaf0bf82002f541b44c1d32e3295a1c408d0f952b09c20e50c9d5d92d0616e70938ed92b5bdc70319259442c6b2316486526e46c4f3418b4686307cb57f5e4637f29183cc45b11cda6e65518701f5042878b0854da5c8bb919dc590fec603e4596c28bed335b17997231d354bf5c1ddb37b462c92799f3f26e3d6205a4eda11064842607ef186fd59353d2ee9b82927e4de9945446f3b60c251af3033b0a7b681a5e6761a9d729366758e9dbd351cebf958a145690676e8874901709a5eea577f009b61610fa81528b187dae8d623272214b1196140b24adffe7128797e418f9a032a5d5a9f0b3ebd3e0846c5d8f895167960f63b4d13d951aacb53a5c677758389576b0942f1d6dae47930fb1f5009ff0737c82e9df234c224a235357253367e28d9cb3abcf899dc840f200ca81d3e7854509058d29782aa85b9d1e91697c6660ad5a04e398fb8a1d4ae425e8290e603921e9146d2f548b1a620d4252c6b2f164bf085a99ffcab96017ea1579e8c39293196c19e6890b66fb75816900728dc8c69edce5daa2f7be75967e28c7dfcbc7765ad542ea08c49f55b20ad7a3af10dd7f499c92656b848b66552324671f476c8ddf35e514e7d38fa9785ebb50ab99dc06d626aa092f7f3b04f482bc1cb3030c6689702dd5bf16a5a68781638ea8c2a135c797d9be4029c6e5032f9f81afc7474b36a3b35f2f764df78e821774d1b84da813f48003c29647c8fff49ff617cd73e316948682b5677ef7adacef941203081c7a3e351230073bffb86a9ee4108e12d181b299683be280e30b6accfa9caf3ceda42f8b84ec06d95628828da00f2c4da15df730bcca15e00d554b6903c30e27630de9ab040ccf3ef7bdf0c1e1146acacdb0c47d82ef17ef767f5fcbeb04e1dbe201148b129e3600e52018a15735d22a35432e3efaebe0945f819f73faf7ff613e59fc47d86154bac1c6dd45409727ac1e4b56ba22a2dc0d53a08464b6671e33789a456521aff7ed3aea4e79e66b8f637c8d09933f76b630d8d470207cec09072a07a0da12416cd86f60369acf985febe3a14d7160dce01b2c2711eda91311339e183a00bed689ed40b4e406d6524900aa74a68227e04b8936976af9d167dd283668b2e8739edbdf2b5f5e34f8c874d65b49575d99de5b103b572dcd96715148a0d8c411f1fd8dcee30ac7e714ecdabb17dd503b0166cccc49affc87a3e3893d0b22342b8570fe023eb385945f6fea416ee181e47f944611792da3e64f5ef4bf4a7dc63ec882b7c1da163d9f40ac5a0cefc4059f844621e8bc4f58142993fe7496da8e6d6c7085f88d4d5892d272bd52cb0806b3f94ae8718c34fbb3bca08c20d97b5dd4ac02686cd23620ef035eb1d01a39f055adb040bd62c6225e684321625927fb280efb1d5bedc2ca16cb2938a4d7a9a2bda7525932c450d3851b4305f99cd3b183e7e9247b76c1e8c5dfeec8f3cae1e6460c5287bc877bc9150488f52a2133a1fbf0e495d3e68f7fbd34684911c1b90a93fb9fd8dd582a55d4b1348cc5472ffe40b788596e5a27608812f291e75c003fdcb2190e382a7e68e8b98c760641cdf2e01e12816cfd6d7536fd8d34c1c68505ba1acb269d1185497d43046a07dca33f57d5482e79b1e819c3a1128800d991a1f18a46bbcb460d4736fc6b4f3306c6920cf926e59dd204b094e7a3a110eb8248b376f934e87ef3400b6056fab3695a67949ba4debea5ec25cb3dab682c359b0368fe4747dc8dfa5f38c65c40dae9832ad4cb4fe0034b3b8a069e34b4e40d4b750ef509b04d308e96ce54b9b1e576cb12286fe6fa3bf41c99b5a951ce442bc244d0eb91ae4e9ab63498af6e6c12ca09c253cef56b9d8bd70b631785ee1bfc45e669b426fcb8760bdeeb59aebb1c19d4be7c8e740803de67568000eae0b0d9dbd30791b625bf2b5f543cde4695f0cf0f7a71ef37c5de3818a0bc9af98222d093f0d2bac4488ba7937b0c6c441ba7e5d5ff50fe66687da256b72bcd65dd03428249f87c8a3b2fd84c036b4b2ee92f61f7ca3eba06629d66500265f9a07393e3edd3ccfeeda485b57768d8466ef28865a380b02b97cc8de865e9b7321b97bf21119f9cfbdbeabaecba24f55eee3cf826c937670670b45750fefc633b8cf8839c5a20cf625a2dd8c4e402139d2bf4f2270aeb96e577d9ace63e105618eab651447425a7574551e4028ce7672eebd734d95281d8a766b3297fb994fadb70a942d3d69f8b6617362b400e80581321e8b1be596d9fc3e2f200c4c8fd6f4c9b17e8e953887c387f41e871a1c4b17eb633eed6b2b1da0a1d53fdee64327e4d460b9174ee3a71b313645e833504b55e6dc0489f01d31e3d651b511207b5bf8fe5adadba75ee74cac28b82cf6935ba0c42b2a8096e3c688cf519515a0579eaa13c1fbfc298fb4d7a56dd000b819a1a170b14f0c8c52ef1e05560a0a36f87fb917be24953c81e73c32b9f9ab9d8c57d15163f7rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-documentation-3.6.12-lp151.6.36.1.src.rpmpython3-doc-devhelppython3-doc-devhelp(x86-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-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 Bugzillacloud130 1609270149  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*3.6.12-lp151.6.36.13.6.12-lp151.6.36.1     gtk-dochtmlPython3.6Python.devhelp.gz_imageshashlib-blake2-tree.pnglogging_flow.pngpathlib-inheritance.pngtulip_coro.pngturtle-star.pngwin_installer.png_staticajax-loader.gifbasic.cssclassic.csscomment-bright.pngcomment-close.pngcomment.pngcopybutton.jsdefault.cssdoctools.jsdocumentation_options.jsdown-pressed.pngdown.pngfile.pngjquery-3.2.1.jsjquery.jsminus.pngopensearch.xmlplus.pngpy.pngpydoctheme.csspygments.csssearchtools.jssidebar.jsswitchers.jsunderscore-1.3.1.jsunderscore.jsup-pressed.pngup.pngwebsupport.jsabout.htmlbugs.htmlc-apiabstract.htmlallocation.htmlapiabiversion.htmlarg.htmlbool.htmlbuffer.htmlbytearray.htmlbytes.htmlcapsule.htmlcell.htmlcode.htmlcodec.htmlcomplex.htmlconcrete.htmlconversion.htmlcoro.htmldatetime.htmldescriptor.htmldict.htmlexceptions.htmlfile.htmlfloat.htmlfunction.htmlgcsupport.htmlgen.htmlimport.htmlindex.htmlinit.htmlintro.htmliter.htmliterator.htmllist.htmllong.htmlmapping.htmlmarshal.htmlmemory.htmlmemoryview.htmlmethod.htmlmodule.htmlnone.htmlnumber.htmlobjbuffer.htmlobject.htmlobjimpl.htmlrefcounting.htmlreflection.htmlsequence.htmlset.htmlslice.htmlstable.htmlstructures.htmlsys.htmltuple.htmltype.htmltypeobj.htmlunicode.htmlutilities.htmlveryhigh.htmlweakref.htmlcontents.htmlcopyright.htmldistributingindex.htmldistutilsapiref.htmlbuiltdist.htmlcommandref.htmlconfigfile.htmlexamples.htmlextending.htmlindex.htmlintroduction.htmlpackageindex.htmlsetupscript.htmlsourcedist.htmluploading.htmldownload.htmlextendingbuilding.htmlembedding.htmlextending.htmlindex.htmlnewtypes.htmlnewtypes_tutorial.htmlwindows.htmlfaqdesign.htmlextending.htmlgeneral.htmlgui.htmlindex.htmlinstalled.htmllibrary.htmlprogramming.htmlwindows.htmlgenindex-A.htmlgenindex-B.htmlgenindex-C.htmlgenindex-D.htmlgenindex-E.htmlgenindex-F.htmlgenindex-G.htmlgenindex-H.htmlgenindex-I.htmlgenindex-J.htmlgenindex-K.htmlgenindex-L.htmlgenindex-M.htmlgenindex-N.htmlgenindex-O.htmlgenindex-P.htmlgenindex-Q.htmlgenindex-R.htmlgenindex-S.htmlgenindex-Symbols.htmlgenindex-T.htmlgenindex-U.htmlgenindex-V.htmlgenindex-W.htmlgenindex-X.htmlgenindex-Y.htmlgenindex-Z.htmlgenindex-_.htmlgenindex-all.htmlgenindex.htmlglossary.htmlhowtoargparse.htmlclinic.htmlcporting.htmlcurses.htmldescriptor.htmlfunctional.htmlindex.htmlinstrumentation.htmlipaddress.htmllogging-cookbook.htmllogging.htmlpyporting.htmlregex.htmlsockets.htmlsorting.htmlunicode.htmlurllib2.htmlindex.htmlinstallindex.htmlinstallingindex.htmllibrary2to3.html__future__.html__main__.html_dummy_thread.html_thread.htmlabc.htmlaifc.htmlallos.htmlarchiving.htmlargparse.htmlarray.htmlast.htmlasynchat.htmlasyncio-dev.htmlasyncio-eventloop.htmlasyncio-eventloops.htmlasyncio-protocol.htmlasyncio-queue.htmlasyncio-stream.htmlasyncio-subprocess.htmlasyncio-sync.htmlasyncio-task.htmlasyncio.htmlasyncore.htmlatexit.htmlaudioop.htmlbase64.htmlbdb.htmlbinary.htmlbinascii.htmlbinhex.htmlbisect.htmlbuiltins.htmlbz2.htmlcalendar.htmlcgi.htmlcgitb.htmlchunk.htmlcmath.htmlcmd.htmlcode.htmlcodecs.htmlcodeop.htmlcollections.abc.htmlcollections.htmlcolorsys.htmlcompileall.htmlconcurrency.htmlconcurrent.futures.htmlconcurrent.htmlconfigparser.htmlconstants.htmlcontextlib.htmlcopy.htmlcopyreg.htmlcrypt.htmlcrypto.htmlcsv.htmlctypes.htmlcurses.ascii.htmlcurses.htmlcurses.panel.htmlcustominterp.htmldatatypes.htmldatetime.htmldbm.htmldebug.htmldecimal.htmldevelopment.htmldifflib.htmldis.htmldistribution.htmldistutils.htmldoctest.htmldummy_threading.htmlemail.charset.htmlemail.compat32-message.htmlemail.contentmanager.htmlemail.encoders.htmlemail.errors.htmlemail.examples.htmlemail.generator.htmlemail.header.htmlemail.headerregistry.htmlemail.htmlemail.iterators.htmlemail.message.htmlemail.mime.htmlemail.parser.htmlemail.policy.htmlemail.utils.htmlensurepip.htmlenum.htmlerrno.htmlexceptions.htmlfaulthandler.htmlfcntl.htmlfilecmp.htmlfileformats.htmlfileinput.htmlfilesys.htmlfnmatch.htmlformatter.htmlfpectl.htmlfractions.htmlframeworks.htmlftplib.htmlfunctional.htmlfunctions.htmlfunctools.htmlgc.htmlgetopt.htmlgetpass.htmlgettext.htmlglob.htmlgrp.htmlgzip.htmlhashlib.htmlheapq.htmlhmac.htmlhtml.entities.htmlhtml.htmlhtml.parser.htmlhttp.client.htmlhttp.cookiejar.htmlhttp.cookies.htmlhttp.htmlhttp.server.htmli18n.htmlidle.htmlimaplib.htmlimghdr.htmlimp.htmlimportlib.htmlindex.htmlinspect.htmlinternet.htmlintro.htmlio.htmlipaddress.htmlipc.htmlitertools.htmljson.htmlkeyword.htmllanguage.htmllinecache.htmllocale.htmllogging.config.htmllogging.handlers.htmllogging.htmllzma.htmlmacpath.htmlmailbox.htmlmailcap.htmlmarkup.htmlmarshal.htmlmath.htmlmimetypes.htmlmisc.htmlmm.htmlmmap.htmlmodulefinder.htmlmodules.htmlmsilib.htmlmsvcrt.htmlmultiprocessing.htmlnetdata.htmlnetrc.htmlnis.htmlnntplib.htmlnumbers.htmlnumeric.htmloperator.htmloptparse.htmlos.htmlos.path.htmlossaudiodev.htmlothergui.htmlparser.htmlpathlib.htmlpdb.htmlpersistence.htmlpickle.htmlpickletools.htmlpipes.htmlpkgutil.htmlplatform.htmlplistlib.htmlpoplib.htmlposix.htmlpprint.htmlprofile.htmlpty.htmlpwd.htmlpy_compile.htmlpyclbr.htmlpydoc.htmlpyexpat.htmlpython.htmlqueue.htmlquopri.htmlrandom.htmlre.htmlreadline.htmlreprlib.htmlresource.htmlrlcompleter.htmlrunpy.htmlsched.htmlsecrets.htmlselect.htmlselectors.htmlshelve.htmlshlex.htmlshutil.htmlsignal.htmlsite.htmlsmtpd.htmlsmtplib.htmlsndhdr.htmlsocket.htmlsocketserver.htmlspwd.htmlsqlite3.htmlssl.htmlstat.htmlstatistics.htmlstdtypes.htmlstring.htmlstringprep.htmlstruct.htmlsubprocess.htmlsunau.htmlsuperseded.htmlsymbol.htmlsymtable.htmlsys.htmlsysconfig.htmlsyslog.htmltabnanny.htmltarfile.htmltelnetlib.htmltempfile.htmltermios.htmltest.htmltext.htmltextwrap.htmlthreading.htmltime.htmltimeit.htmltk.htmltkinter.htmltkinter.scrolledtext.htmltkinter.tix.htmltkinter.ttk.htmltoken.htmltokenize.htmltrace.htmltraceback.htmltracemalloc.htmltty.htmlturtle.htmltypes.htmltyping.htmlundoc.htmlunicodedata.htmlunittest.htmlunittest.mock-examples.htmlunittest.mock.htmlunix.htmlurllib.error.htmlurllib.htmlurllib.parse.htmlurllib.request.htmlurllib.robotparser.htmluu.htmluuid.htmlvenv.htmlwarnings.htmlwave.htmlweakref.htmlwebbrowser.htmlwindows.htmlwinreg.htmlwinsound.htmlwsgiref.htmlxdrlib.htmlxml.dom.htmlxml.dom.minidom.htmlxml.dom.pulldom.htmlxml.etree.elementtree.htmlxml.htmlxml.sax.handler.htmlxml.sax.htmlxml.sax.reader.htmlxml.sax.utils.htmlxmlrpc.client.htmlxmlrpc.htmlxmlrpc.server.htmlzipapp.htmlzipfile.htmlzipimport.htmlzlib.htmllicense.htmlpy-modindex.htmlreferencecompound_stmts.htmldatamodel.htmlexecutionmodel.htmlexpressions.htmlgrammar.htmlimport.htmlindex.htmlintroduction.htmllexical_analysis.htmlsimple_stmts.htmltoplevel_components.htmlsearch.htmltutorialappendix.htmlappetite.htmlclasses.htmlcontrolflow.htmldatastructures.htmlerrors.htmlfloatingpoint.htmlindex.htmlinputoutput.htmlinteractive.htmlinterpreter.htmlintroduction.htmlmodules.htmlstdlib.htmlstdlib2.htmlvenv.htmlwhatnow.htmlusingcmdline.htmlindex.htmlmac.htmlunix.htmlwindows.htmlwhatsnew2.0.html2.1.html2.2.html2.3.html2.4.html2.5.html2.6.html2.7.html3.0.html3.1.html3.2.html3.3.html3.4.html3.5.html3.6.htmlchangelog.htmlindex.html/usr/share//usr/share/gtk-doc//usr/share/gtk-doc/html//usr/share/gtk-doc/html/Python3.6//usr/share/gtk-doc/html/Python3.6/_images//usr/share/gtk-doc/html/Python3.6/_static//usr/share/gtk-doc/html/Python3.6/c-api//usr/share/gtk-doc/html/Python3.6/distributing//usr/share/gtk-doc/html/Python3.6/distutils//usr/share/gtk-doc/html/Python3.6/extending//usr/share/gtk-doc/html/Python3.6/faq//usr/share/gtk-doc/html/Python3.6/howto//usr/share/gtk-doc/html/Python3.6/install//usr/share/gtk-doc/html/Python3.6/installing//usr/share/gtk-doc/html/Python3.6/library//usr/share/gtk-doc/html/Python3.6/reference//usr/share/gtk-doc/html/Python3.6/tutorial//usr/share/gtk-doc/html/Python3.6/using//usr/share/gtk-doc/html/Python3.6/whatsnew/-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/f2062f5aeadc2f86544b9fd5601ae64c-python3.openSUSE_Leap_15.1_Update:docdrpmxz5x86_64-suse-linux   directoryUTF-8 Unicode text, with very long lines, with no line terminators (gzip compressed data, was "Python.devhelp", last modified: Tue Dec 29 19:28:47 2020, max compression)PNG image data, 500 x 320, 8-bit colormap, non-interlacedPNG image data, 955 x 758, 8-bit/color RGB, non-interlacedPNG image data, 538 x 495, 8-bit/color RGBA, non-interlacedPNG image data, 1062 x 513, 8-bit/color RGB, non-interlacedPNG image data, 250 x 250, 8-bit/color RGB, non-interlacedPNG image data, 670 x 414, 8-bit/color RGBA, non-interlacedGIF image data, version 89a, 16 x 16ASCII textPNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit gray+alpha, non-interlacedASCII text, with very long linesPNG image data, 11 x 11, 8-bit grayscale, non-interlacedXML 1.0 document, ASCII textUTF-8 Unicode textHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesHTML document, ASCII textHTML document, ASCII text, with very long linest^Lcxutf-811d5c27bf6094bbb0c5be911268c8e57b74ceb944ff54947a33cca116c7e05a0?P7zXZ !t/#Y]"k%a Zm[EW t-KtDSG#<YATzF3HmyYi)]vK y37@=\s!f3qaX A* vv~:Vm({>% e 'Ѷğ؀ s .oL^x*3g=_-YAMK4Xq!Cʇ1#S?-C 3}®kZ0FaQǚS]vo^(%__"NR6`"wV{Ehȵѵ|#%2x6lz FnSHR ZV Ooi(1}b s̘6ks+u@rb;"~N(3.!X2L \/[!sp1M4a&֯@5U niݝ1۾0ѰDWLI6>[<;l`N$BN{8-Ȼ9xՓ"l0j^Z:׹7҆ Tm:[)Ѝ{s ȯ!XGI=Oy/@MU/Fhz4L^+{ٴG"v@֠h'4/cW X|ef}HF6Κ sWƋm~|>_9J]w{m4iQYӌWĻ)X L]vHK)C)OFcƢ4 js+hMiDp ^͇u'Vp t-e_8<\ \d &K|iaH|hz&P6,:,H]A9N6jCWTp51TVz#'\FvzGL][<_15 Iᬬ I$D@ `8$ 4Q3K3C*YDMN%'ڊ~}yWkxġ e3Ǎ}CV%@j T?8gC|M7Vih}sJOgۉIc&%~i03kFBedДGnӡ/:Q^soyڃI|){ƹ$fS&PSBw';|ws>QRA\3md*Wty~*EeȌKJRAEpAKQrqêڔR7Y6-%?,%g]qlK;hk04&~y7,!'_ꋞ3%%]t<Ġ lFVnB*7`+ J6'u|1·o^3Z8+<22%yT Y,. Ɓ0wX#њ̯5HlUBIΚd[<ѳs? αP2e|Wze_L{XiPo2@evzˆ$L @DZg.a=:B$~ [4I,81ϚEƋؙns!X%Pg5ݚ!Xه~){"un'O6d>2{ G3ORQ4ZUiϽ2 9yc'Y'2-҆_Qܽn|hڽԳ'oH 9xY6ZݹƸx6E{TΚ##f/L-L/51yH1?67llBcr-52gH!K?BNGƉ6,HF^Ww33D~0B;Xu(?AzаMvBȓ^&zynL_ .a{EѕUj̜J(?#P[@;szyPa; `ON~ynStܪQTvD ($e+/sak4i-ž%6`|VuXEQ}*'އ}onnn:RSg` >k9Ad ~ut1tXnt*ת]S,QlNm;No-'ZS㉀9^QB\!W>Ѵ9$>Pn(%9`sI|Oz1oG|&62hc$؄wl ๳hirY3Ygp!7x>#wv:¨-O%: 1S#%xp#>r 7n *r jFIB2 mڲƹŹ (e#ec-VvV 7of*/xr|hmʋ eϢlXlX ~AM(x*GH'vlL?o 0eחbO|bc6,V,~vC+hs["k&,BC=}vvy+vg7uip {@iI>V\y$SN>rpb5ETtedݽ:w8& +I "R3SSÿW:p߃9C&P4sxk$d _^_aTpIRv8yLuzhf_ y^"e5yq\0ex!dߪD(I[. OBH$` C+; &BҖu?O|쩌 WGGbf[,OJZ+pkDkP<{\ LS\\$3'+8$;0Zh5-|N^_l"j \JΏhզ(>vtɺ'9X¾e,w ^FT*7{~9s;x&\̪BvJ [nV|&ϽG[ [h"Ě[]FTu3<bls2 arh <V$R$FtXA Mѐ YtF#+Tjt;C6ED9i |8b$s¾9 0 "6 ^Vty /^?-g[U{Fnz tWr:,kaD&ÝukRwvW I'XGQH4)ȼ|@buq^rK f"4ِTT&iB4yyfT&;6;( ܣpMu➟C>ʷ]b+bh{m"]ЕݾKu]q42K DxS#T!T-T(@v.ѭV]n>ɞr&` nV$JUV'vrSBds~"kc<Â+h%imhv-y|͜<$Z<'lCһ4[Rj;+ +] fւXμO#6!NN^F{={QWa T`vB'fR_E j=PN6&LSw6&6?v7Å ڰl>Nqjh);V{`fv)˼Z]:tDWf _LazTSV8u\ DZ$pϟy[C+LEfL&x F ӻv YZ