python3-doc-3.6.15-150300.10.75.1<>,טgmp9|FLnS~;G^]305RH  bOQM-\2zI*gԲYGFLij ߸*-K7CLt-Y}%%wJdd2旂' w&J>^iuP"xUFɘ[Yg " Ŕ-3 $ ݪ\C}pj'x%Dۻ/ /W xu V]؍mwRKª A ?d $ G  9Ze {!4! v! "! 3<! 7! ;!LD!`!uu!Ht(8 9h:RB(eF(qG(!H9 !II!XMYMZM[M\N!]^!^5!bc\deflu!v z Cpython3-doc3.6.15150300.10.75.1Package Documentation for Python 3Tutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in HTML format.gmxinomavrobSUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxppc64lee?M(a- +CC5B%Aq +,b ]wW<#mj4W Y  32e̟pOih( Sy , GZ)y E0 ] d6&Z A KOuXz(A!R!w%@12 .bD a=[Qf zLa/̡]$cA7-WH+{`T%>}.3O/H*<(!P4VYbR8<#vc>58U)(2"y*X f$n6d( 2=#B& Cn @MZ%#8 *m9b7$ut7i$M# 1{5E#F% -7 l%{cs -3TDmI%Zd' q mg4x', Il!EczO z<o U`;oi hc)^WCO8'&o,t cH(.S U5J-,@E ;,u]KO "% n;*mA 3  Pod HG.P0 ]*n" @9i;CB%*6[ j\ w&M; Md",6!fH)?Y/2gX}y /'EVII5' Rlhu  S"8PNSP&7^W'BS_<'/e=Z:Cb6Xv#)S[  wh_:+ RC lD]*M;& l''v^C ,0Unk+K*= $a6R*_Z@Z +:`/lc !a1&W9*^(:;]cU&/ 0XSwE%L%Og/93;G^p+T= '.XKINB5)BX"3aa4,q`z@4$LuOK7W#iՏ5r;I y!-?:dISdK iD)&c%CC3SJGL:J'>'{t,?)U1)"/BM6.&t ˅C8n??!8>O )jV"vh*[O &H{]p>#$LZn5~O52f`eU]Hcm5Hd2a -de-y2@BKmQ &8CS]1nS6z'E[U7Q9O+ b"A"]:7tbx2)m*q$gQu8OzYl5CURT,Y Io M[kb0+u4BDuF5*#scl/+H}072XF,+Ex' FH)Cco4|  y'ߞ<2<@#955Gp=$f>KG{ 'H+VHD9K-;=>мb(s Z<ǼC7>|ry?E+- E3<@>[CPn6'b+8hRNahp({~c 0P@a0yhvIA*|p68"fc<vR0Pgw-Gg76=8-$]$Ev'HX}r<{)f'x$@R.g8%CJTCg0}8!uuix)6Swq:}j^Ld Bt!FZo`(SWonN?jHk YgY¨Y ~HAA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤gmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgm6aa499d7c3461364544167e66f6dbbfd8b05c8e4a4dd7c61645e0b3fc1d5789368316b92abab82bbfae78a09d600a8a043c8feb37b13f75db3fa2aea444a6e9866ca0604b9e41bab114e68b7407cfb2a2ee65558d3d31ab364847d9e0cb3ef26667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a36ee1cc2e08d6f0ccc0714aea55b412593635a4c82e2688034be4b2eadbc8e33f9e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e61240056ffd112649b2ec6b0b90451b5ae86322bbaffdbba6a54acb637a49d73e15b898d0ebed85d25349a766fd0659270a28d2738e8cbbf8a899cd7e3836c3311d6c473871ad4562764fea7c62a09e90b4717f1e3c16e2afbf22827898eff6f104095440035b62dfaa19cdf5d2a9da10932252da5fe4596aa67fb5dd493c8f5ab39d309e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8543f067633c754314e41b6590876b310fc14120d6b6bedd4ffecdf965bc4ec375e962cac6ec219c7e6084346d85ddbcc5c3f81e7c65404191aa7b69826225dd8e1fc6e043509f379b3405f36d2ea1f6ed3b90aff3161fded688f0f87c2a8b95f47db348ef82ea1481286c12ad68a788305aed2d95e17183a7640526eca45a9d39042918a36fa26b1122c0254b1acdf0999c29efa41b701c3a6becd6cb4c0c8964dc395f3f94b51c3d8cadeea326c225ac86d768ddb9418407b8d8aea50b1af487f9b923ce8865b8136978cb0257b9087f116d1ec236478f6c165e177bfc08efce1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc1eabc9e89bf440e9453ea8bf223cbaa548b1dc3143b0b8071b9a6d5f501b456867ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467b170294984476012a2b4d9439572ca1abeb37b503361043aaddd15e47891654ebc563a7ee487c395283da502061e15020a15d2a5ac07a6ed429eea0c16de70de0349f4f436705f1c0557a6ed959225f3c2c37d57ca86dc0a755dca8da33d91dedbf257dd9f5b340b733cf2eb0fda20bc7bfe4d4f43cae08edfb20c97776353c02fec25fd62cefb31fc857f9e07f37274ebb6193e092c32997eff3acd825355a1880bd324f6d29be02476aca6b5291d0aeb82bed20de9d9c3d6c106994bbd4320f4e386ca84660e741365580262b3da0ac58b3358e2a89149606f977eb3842ae710bad158062087b225e669c2556360d882b6d1c883e181a9b2403c8897e49f2230c542f1261829858583589813fdad1d0473612aa681571d4c3b752459ffd72509ab24df71583315c0c67a95bc8c0332130bac7f2ed3b5f72acbcec57a63e027aa33bc1ebb5f3dbe444c9799cec41b49d3ba713eabf8b793944d9c2d2f070d0bbf28eef505e6842d8a7729cd633e757ad89784712b5a025afbbd416f325cc282ba97eec1ef77d1e3d73d0715ffe8c4fc295d91502d7bdffde9e9677415df5415238cb26339911b2d4bd54c1e61fc2c7b2a340388a24f735b0e9070f3a0e8d87f0e4ffdcc85bf073264f10cdd777a30022292ef6b71b68bc5c00aca79ec6b8f0b65d399a5a6bfc45ba067160cfc0b17b91e2472eeb975e7892db2fcfcd711720063944c4773641b23bf1cc98dae1ccce6f218d817419df4d94e2b2f84fafb6c28daf0cc35540de3b27128b4b22bbaedeb8e0ed84e2875d9d65359937d547338e29da7bda50a866005b2dffb1a1931a079bb1d583c434528c643f812c8771eda09fe752387bcdb9cc0694293ac434de6f1cc0d5a77ee1d9fe1d285d699df753c8a41b2b7000f4d2e6d44d9dda25d3e5080bed8f855b1983c983d6eb7f65b1ad96e9310f72f7446921a54bff08c81ef4fdc0b54f6241d333d93db7af76508b51ce4384a4655c83fbdc7c9921fe174b47d640b3f786173a8c27a34941e91aa83850bcbfdc0ed1e29b11e8b56bd1a84cad6ded4052cb2f50ee9200355c10f522ea2b07833083f8abd8a53b0698027f1fe450df39cc527ff808a9bdf6a6e01f673076daf68bbbd23e11c1485428595b6a70e66cd42b5cca5e711957c824f6a9bdc697babc4c58745fb9dda6ea1e64e4a2d59b8e412d49fb0a7f768f624d9120a9ea4a49f549bb4de45482506e646e55ddb9dd84daed5b18b92c341095f835cd37847cdc968e1d4176c5e824d7ed04b462766f63a462ad11f847e765befa2eebc36fd87775ae6f2248f4bfbbeb0902a9495c7ec91b814930cc566958a0df889d2e6f301f85ed47176ca644cadc170da60e5ecfaeea3658e5a55464f491be0df86ab10d7fbf9bf7fbf2512d9977ef1816758ec374b96743f8d3d81e486d1974d3b3f021489316f58cd574597e58996fbf425cafa7594a275a72f3aa5a9b0484d94a3aa3056619bef4f564ea34bf31576ec0bb23c3046bf2fc6078565530f62c49f08c212c67b103c6aebee15f6ce38293821ce56c326f0ce9e88b0c306c8766ec8edb81ff3fb11cd200163e79d68d9848e727c715b727aeb9974f7ed5754ea680301d883f471b8f34804c6ba5c3aafca5f7c75b0e10d2b4250668a5746de02099c0f4096fb7580bc4174511c7a18cbb47fc65f803e2aab7db1881e61c42315925c9b21490f80a8dd784c3beeb273224a2ef03a0d9db86b031439f0e2b7b9d1026020b85341dfe82739272d573da40be79c19cadfc9bd7ad4226325db8e1a8934b470c2aed790b807e2cd7606defb6436711bf53e2d7b21adff9d77a2082f184e626b46e9fedc2db3d2630e78770cc867deaabff4dce6c70837f9f92e342b1887c35a754e2b68b4340f8c7c991fd3f3ebbd04bf00c86d1518741cd31015f8ee9f64e1bb5de8a4d1df78dd13ebab63f49b0fec91d9ef086d4b7e4410bae16af822eeec08e3216f4cd0268e738a0d9d939ebbcda8ebc46d67d173cb95d25bf86da848569a0582e5ab1f12759ffa9cf5d88eaffc3c4c30fbaae41d11fa76853c647e6fe32ec09a928f3b1671ee52aa367e3ff50fad717d0a3f7c164e320e8892df1b67f9f240f9b5937ff2f3ad94eda3e6b2eaa80edf8b7b31e6c66cbb064f7791d647e49598538dc4866a6fce1ea1f892c11a40718670a32545d1781f84d5771c8adab1bc2a2ac3dab410f3db7607029aeeb1798d3849dd82d6b7ca990be426ea995b20d049e4d66563ba01a4733e06446f2239370da2b1c0a6e3856c4ffb24180b8af98996f843beed7bb572dadb631b1f5977439e2be8b11e081ee894adc7e62a803a51d83a193424572a5af88e40c62fa10ec94f4ff8853931d3a0b616fd9485dd20f78255dc1c6157228a9ce96bf01fc7b84aca888b8e7b844c11d6931da22e8896622fa41e18cb070632b93f4b3ca004ddbf6a89fc45bff5c11c5c95a4607f0dcee1f602201cbfa1806facf7bab9f4aeb9f5c053645007ab3b455d78dbe2e25407960d625b5a7c7b881316648c849a3012af7146813d895fb2679e4de5172783872e5627b62431223107c026252bb67131715f504dd384a9517333389890c7cd29198db333adfa8fcdbf5af1b841c4f60601e1b9e3e72e18c738d905352d838e25f95801d2990ffeb955cb629cd54ad217a28f924bf84c9d2db588516cd988eb4145283a3ded08c0da413f6083487674133764e3a7f9a57084da7668c0b946e276eaf4646210c6c26fdb60e716b2c1d706122b650d4818a154fde60089b0f8865bd2f374b3ccc78df8ea507f88ae713f4d1cd8c6ae2976f7d959c7e962487d94701dd172796b42d485f35733eac7f375ba8b0060bc371e6877419dae8dd4b7e329eef77076ffb742f86aa84a75ca80e7e46b79987343e055e6f5b38dc24628140f55ccd22c44e1ac1d66fbf70b249d807c87032269957ba9938f5e2233d4dd66d01c3e459ff5bbc59fa14c40e0fc76574e2f80f7951e2949dd1da1078cd367e3ed6b8cc36c880549e2595e4164fb27829c89becdb72165eb82ded7a75f93c810f9de11cc3e06d9a0f7f4ce7bb72638fad64aa1e599e77716b8d26e2ab9c6e81ff28006a258b1e3bb1eb3cea355c145dc7c65205046262acc28de1f33a28c5ccfa99fa044cc961455aa44392595936ee04648653ccc657b54b238dbea6e7b90998a7a306a7f1fdaf9699362555d9845ebc7752600aa69c9161f77b6dc3187ab2b1c9200687396ef8203eebce22954e6a29a91ba6c5854c323b25c798ce3b33dd6ec246fc72bb59163eda5128d4e6962ba11ccd32c127672dcbb484690d73e05adf1550abde39af8366952ad547a64110c917634cbf4a1685dcc27e1da1b38a2d5f20992e0988c3fa0806eeaf9605669fbf7a2707cbf4563dde4869615abae4c0d50e0d78f3e3cc782388fad6b2ce913ed808c4f3688dc043254b0e913c8d6bcb6d90163cff669f30c2af8e6fc8724dcd2eb00d6d73a8be3d00e4eb6f1e3932f5e97b041462a7b4716f756e1b5fe8aeed863cbc58c7366d4376b463a06714ab6e7c6db4b947fac54c39462ea9e2006e5a5631de78acfebf77deef3e836361c0a31cd2346b7d4eb5b1740fee0a1197988b1d4dd3fc282d60234981b76af8a150a3501046f615ae1683152125a1bd0901dc6fb8444d6095f03751406d5dd799a1d09f26e043d6e6d441fe8ec639bd9d428fe838194e540fe33e12b2dd2b69a8552a44d05ac4de309a6bc55496ddea34046fac0ba99f4a08fcd9b97df8b29a539e414c4c0fac3afb86ac1927ab06ed4e4e103e70d7d1bc8ac9985454643f89b7028a44d9048df62fe7902f659b50572c856ef718720c83b009d9aec25582fd8809511773b62b817e575d9edc1e757b28a35f897f12e5c7ec0efe088fac2d1ed9ea6dc0c31844eded828e3507bd09eb4b9f52c4a1b95849ea6a9ab6f4ec0b0dba5d9cc33112ed74fd60f7a2dd06ec5017b8f7112c200c74b285a8d1b7a2361629dbff3479ab84df8f70eecc732cc09f3538ecfab24a3f34c26e46bca5fdaa66513f345d20d93ebf44cc903bd7b14e7a7f614030d0f9a287e6550ae055df68f63b38a5719033948af540a794a7d038bab6717d35deb7f4b601036de6337d7cf2bf54ba04a5bc7bdb9abdff94168fb1d26fd6b607d93a2f109daa5da328e41a7f9dc56db983ae8d3cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56c7a398d30665f67d9f685e144476c0de832c19b9ced37215982a7e5a8620b57290656ee55c64e58e5a73aa24ec12c8e673f1feae56b68230d6067b7a8993bccae08be16edf2262b224a99fc8918e4ea6319b3a9e8f6821d023e717826864251bfb992eadfc05321955787a4a609e307c00383812ea9b030ab9906c1c433e6a1d3f27fac82d1c6521803db86be6bf470590cc76ef60f35c60ff68ccc3f871a131c72c370076003f0f0770c8b0ddfe4be2c9338ead06c792de1b4140d5501fc940aab75bb93e8e8a71d27e457dfdb451db4280893fc788318ed3310251b9abb5d70982ab1202f44014912e52922d038c7b7a005292b12bb4d1ccd417dafa0b6a296dd20816c9b6d5ad533e5d9dfb95cd917c168e7db9905b4ab69483fbdb3b5205f1e6f33af887262154701a76a9c0dc02a0758b0aff30ab9058dc682d80b10f88fa743d20aa3a24d7c71c023fe271673c4a87928ad6808ae1312ef44f748148ca6777f20e255e0afbbee50b6b5711ef200e187b758a66cde030e55dfd8cfbb875ba12efe13ff082f927edafebc42682ff5681e61fae41057e2916e1f2b3e73201f2e46b1fa59bd296e74e008442df275afaa26727de8049b328c1140fe25a6fcebfb33ad8e344750fa1867e1dbd89748013cd7ad2f8c6ff41b198991af0db4521e1692f92ef264ba175bb6724b628ffb2619d489ecbcdad97b9c9d2dd11b07fa0810a5fb56b818b335d901ded9418a45fa32651a5cb5ff81d033b0cea732758a557b6e31a04003b5ca235931cb9a1aea86c94b8bbbc2d9ccab380e954a60543841d86b441da4c63e4e009b7115b9b9bceb2697980cf3ebad637a5e6f0d979c56c9274416684bd397655bae2808b5545644e3450f37ea1667794de4522a3c2303537eb1aced93a7fab2087d2e578459f69515033aef9abc01ebd5991145c14391a48dfb8ad3ca335387e86cdf43dff216d5a8fe2e551fad35dac46e66f6e3325bbb2d6a097a8cfc2851b3b04028ec37e6fd5b890ef30dc74f07e5512522c867a21fed711a15a77bada38eef358a878965daa56db155a7a9b1712fcc664e12358c8d18675e24dec81a0b5bc519aa5e135e88c70f6e6568e825803604f93049e5d2c48c35fba87a7879d7a53c45795d1201b442706114bd5eca64d0f0821357aaa8fa3301ec229e0bceee647cc4aef75f2b9368a1b60552ebba538d0a40fff1841514ce188d11fa51cf46355d14373496294d675ea5b9f894dcfe518d5e703a8ae4830dcc9382f4f10da514d6664530a6bc622dae75758f9b3dc97d249826c4af4b94a26c2f4605e4c086a7f04705d36ece8666c8f575a817622ab6b695cbe18618817b5ce177a79da922744d7c1a149bd161276f535ec550dde37b478a1014d7f45f34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2c909d23baed0f42db8e6b2743d322fe1befca35326846c6f27e71a01a526f9dc75d5152ca230ff717600e760fd94e3addf763c471ac1f315c5f1db97d97ebb756e95db9ca214de39dfb3d146100fe450fbeb05b5fe8ad499a175e0c5a24f901c2d36a0d3da83d4a21c2350f81e8581e271e7a720a75d18beb867bcd924287796ffa0fcc2108c8533ca79f601ce90acfedb0afb0d43d53bdb37be69afe4d6c51382feab78095c51db3b6ed20f62f38e41b5546d7ead75faa5b4f46af5604549ee081390441f6c2bc11eb44f13f327fd188ac73f4ac8607177908f06cb1e63150dfcc9f83d4349141ec171f99bf34dc22fe280e7f42973cc5f7e621aa845576b86bf1eb926f436280e4e3714bfda069790eb32b3b2287959706952d95e0e71ca28b1d173f26bd44cd30e04a458f81939c999340ac81e244bd61c072ace38be403948c7238487d8a4777503260cb1c3869caf28cec627141c82344814b02c0a35e22aceacae1d7e9ec474b38a7a3cf310593e1eddabf29f668b4c08df503427bfd65436067c88594b8024a2c8e8c235f0cd64f6c5083e46cfd9d3c6b0931fa434755c5e017122a5eae671670759ec650be761687a856f65208b27545b40e885e68ef557a2fc646b0813635e79b00d1f9cb8126f267f7d5d2d73e06341c5bb9b42e78a5b2a001f54aa58d6a179bf349e1c4defc8d6812dd62ac1bfb9f4db991506c6daaf898ed3bfa900d7375d49f48dc72c68e8360ba8c6fdfc5673c65b131c916341be00d98de520493ba5a2867159549023b0bcb59f18d04c143d254cc77f57090a1b46955a14685abc96d988cb909435d21e57877b79b28fa0c538e0f2c75882ddbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401da4ae6506f4372204ae1bba0a7eaa9e46b732a7ff632d8ab6dc31cb14acd25f8096858eeacbe175a60a70612d04864b738b2c13d4325b5792cd38d2a0b3c281f17653e2d3ff9bf0a699885f0a8348e6a02458222d60b9fd63590840f572cb39992d7516f4a59f86e41c77b8b3753417a2931b43ec8a578b7cda3d05f9ca6952a69971c446be1207f81ef67388ba7206d10076e17fb9a5a773f601cd243ccc510530ddb046fdcd9125dec6f375664c655ac4a669863f544ad88f313490c08b5b835b8f5e80976761c96d55886d7b209375e91d8fce830fa409f7c219c46429ee284353cb2e2b3a62844a6bba7a9758008e26f2d69e8e370ee9173b1560f3288f5620d1e22bee18f31e423dbfc6b1736831445ac086279ad549cdf59b60ce7ed05bc826c72dfed65593b9e9291021693b3fe5b06d1aff6f0c3fd87fae9238bab602c74e894ecf6f62835db74b4a40a1a0108a4fac847036bf928609d36235fabfddae3655e364564879dc90aeb6edac6e0534cdff3cc9f056977dd061887f45ac32d503dccd215933addd34f1f14a1676a4496ffa804c2019af0f0b9f1c89e6e6954b8f1203cd71c25497b86aca7bf61a925ea4b0bf531b72cd4611cbbbd59efbc5b5981d15a3976c602c1be1c1e380d8620057ba4a39751274a60c820b16556fca567ef20b5c948610cbc2e9177424e8bf119f8ffb7e29127a0ddd73c230faa6dc41a3f29b3f5c1095f6be2674b8478c20e0d7e69ddd56adb0ea9a9c3b52a721f4e2fabbd20a51dbeeb6f93b05e330f92e056ae35f19ea292d624434d40621545a44e8c51cccc64ad974d29eb7bfa2b48822d3c59256c2ad4cf2614a68d617d9584bee84706e3e511f22883e4462ff36c9c7a1d392bfd6dc5fd464ba8a135f20bbeefe6cff47702d41721799726f83ce406a7833a94ce3db71793ab9a65460d028020f45da0b6d5add5dbf786e62d0f7ddf0d6cbcbf63fa4eaecf34b554f1a6658f1f97d709bc7334c3ef56b753bbc168ccc26f6dea37ffac38734739234129ba9ded050f82b43eb0a97827d66bb8226899aeeafa6fdce79848dba51f72b2b29d52784e383ce6120f3eceada2d4913fe68439f0f01373fce2528b9c2c57f7dea7bfca2413756b2a18d3b8650b76465ac7d9ddc42382503a1f8908f650e08f73b40faabc3b0fd577bab77ee42a211bd7b74837df97acd36026ef6ab856a2922486319af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6ab39381203e0c8047871a72ccf55c9e377fc789d36ff514c46ef2ebf3d544c49c3c0b05c13772af3f749ac3064058c0da5bbc96cb80d5eded98e0872bfe309bd75ccade26097d318fb758abed5ff39912ae6dc993310abe249c0b609c6756c3d9ef279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b81931e59c0625e7645ce86013019a1e8b554048b27ea4458c46c1fc2bcac5dd2b1fdf0a0c9bf3393b7cc46b6b1b5ff2dc9bb3c7d38fceb398fc484a6775b99843098a4129327efc5923daeae586c90fd98b4cf305a49d488bf1a28eb09a87522e3584046b4916bcf0342d8b4c080b7ef61aa6c423ca3f1eac6cf9220fb23b9230268c245c21d753cac86eeacfd6454331105981d19ad1c68a4e75c6ed0f3004b951c72b0d9b7008eec7112d14657bc54557b9011157e278e800d86d3ef644e2b9024d64edff3911360bdcc2fc34b3373ed6ddd7c1b526b01bb150b4ed360b9c7c93838f448e3b6c725a5f8c69fabdcd0635076b884cd14903bd102b2d80527fe44f891fd89d80bd558d93c93949666a129f2e785165af6913d3ee6cc0211c622e1c7e7496ea8d2bb0d49ae2915b12cd2c5891e3e91dce823168d030cf7cc04bdbed9873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b459d008de14bb1fee04a35ae49e5545ae8095d1a8ccc354f95293cc2b832be97ca5312242506b8d70bc7607cdfcf8021e763c7e853b9bef3ad4905e4ea313da685307dadcc494466684a7bc3126dc76df5b27f0186b684d0debe60acf3bf5b8c46b0cf8d550bb69119608ee777c26d48d2d7d5cd368222aeb79c381dc3016387a5a8a460b3648f4e8d9a45208badfb76056ef60ed24beed2ab3c6681e100455393a63e2269b6a0e3e23357cdb51161d990b1de1fd12d304a974bb0be13ca1750f147c5779e0dec79216b17b8aa24245c965eb288b9f8db860fcab69af8abf2678f2813c71e51d6a6504975671ba1f1e669562f95b907fa784c5df286ede1a71dd70765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9f3925f3904d2089cc9efad42324bf0ad49ec05d637b265230d8e31d8db9f662e4a2244cbfbb47859ea86adfca4708f92610e5cc59b2ccbe31eab47c2edeceef413e02e6b07c4f5ab6976051ecaffc1e3d9227e708fe0ee0af738db7a6c073b02a795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedeccc15746b56f8d7fea5a052f012b48fb0ae19360c11f1cbfa7678e2b1f194f1571e90ad76bcfe9bcb7061d3265a0ad08925e5d5724d9e63b8636c3e876c0ba43cff5aa32759bd25b9e7c2ea962ba8cc42203579b2e91bd2473825ac91a05cac2dbcde702ec7b5e8b0bc01e32c852745fc2dccafdfbfea53a48cd0c656f8a03f2160b03ae256148bff321813b0b16f647f3ffd9e19b42d3a591e9d2241f4cb4b22851cd1638d72118a9dbc5c180bb6efc2a363c180a9bf41bc8a8c4e8a8b41bca4e2be43d0cf890ff792bb1ade093b3bd51b72beef39a5786c52a67693a6e571b65ae6f4819a232c1257a06566f426ab5564b2ccbd9a9934f1541b61292f3a176dff145f8551eca72cb79a0f24b95eac3b97a15ff58aad7ff1d26357e59f111bd6e951def8128fb0b539c719312ae9acef4ee8f14f36b0848f7ee45eb18c3afa6d5246643597d98a9039184be8a28451d287d675314e34b83e567ccd6d00fb085588e36cdd41318ae4f2aec931182e95a13f8ac2049837f6e60a6ed9c18e97dac262980ad2d3c7704648daa5800f095d6e862f79d4b1b84a80470b8d868bfbbf2b429c5e51e9f0663a29b057252012be8682301a83e0813731ddd3800cff96b037073fe50d5c1f6629ec375ae45f7be412e5fa8152fa03a70e6f121e3bc9b7d21ba4d225bd41b115dae37b92803892d8ddf57bd89fe544d051e12ac0be39045cb5118aa62af31840efbc41236bb009ddb75f732d65d74ce4b6fcbc7205f68883986ef33e8588805b425d492cea4b171df8d491e4c78acbf7ef4fb4f04c518958a01ff9882d75059baf6d1260baabeb48ef5b2946bb065452c1e18f10827feda5f9af12def9559f1ed7c56c23c3d0ece44534a2920b6525819148ac1555ba957eedc238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7fa2bd1231f214def9a786e3ad756df7da2b51a50364398ac509778baf79d617d04ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18841c8b6db6f3ef37a3da7c68e382145f4ba546242ccf479f24552987856cdbf14d9ca73c9984b439e26df2a16d424b0bd215f66bcd47016207a7c903dbeaf4664e39092ffed737305e467ef97fbdcf61cd718ac838a4fa09c1514d9b9e55ddfc43710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31b101d34f71bc9cd19173a240af5a2c64fc09a6360948b90d1b40a7f0aa3d29a5417933b3f0ae5e64ce7cae68ad3be325966d39d3f7df12932892f678508e2c9fd87bd11632184a5d4faf3025fa193a294aae0b2d2a18e1be1d95504ef727a161c8bb4b4c9722f2c0f4e30b27c75e24377e525bf05db0d8725c71a71930590f4d9fc6a28fbde1c4ba22525aa76d16e573a8230dc7f0b9fcfdc28d7bf47b46896f256cc2cd88165eaf5a1674cb42f55f5d87390c0c1625437c260438c76985a6ae92e004480fd63000ff2e31ec8c7bf3c6f8ea1d4a824f0494dcd612fdb610b14bde752d386fc98c48aff1a57baa26f4fdc6c232d8e451899fb6a673b7b0be112003f4d70a952dfd6ea7a1fd77e28a70b94e05cd9816ea3ce6da38d6095c6bb84d68f1d7e14adcd9ee88cf25c1c100d7d046f3c331f99ae7ab870280671385f28e729a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf65eba4e9db6903e21af8d44230877ea547973b370ffbabaca760f6525e1311083e43bd80c454dee24e899553bf6f7cd385a23fb3b93a613d5cadc075879b869832334fcd68fc3d067e59b8cacf9232703cff2bba36b0f22f462f104353997a040ec3252b17ac95a2a6c2d41b8bc8c282372919763149f858703add7d103fa55f5f143611012cc7e3735e99b5e6745e2d841090e45e91cd8a4a8a7c847ca32e78269096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b014c62b6b70d23ea34f28b845d1a969ca4b1c8175f78222774855ac3aa6f8a690b586155c0df83be429431ffcb0608b7c328180425011a00597498ba1f5a588db056c44cdb435f6a1f3263541fa3fe1cb004dca9848cd8d5b591e6aff223149228836c92b2d006ddc5a163b5590220737e3e5c7376f7598a3fd2f3f625b9cc1c0eecbea9b45ccb5545746f98e4037c541f48f994c46674dc139f10d7eafe7b2b90416f88bd8c31aff889b8424eeb05b43cb88687082f5cf145c41ae8bf546eab45317e269b02078077e22e79e7399ca4707382cb684e9eccc8f8d650a8d31a3329d019b123e504e008eb2624ced96c52e60c4e5f8c55ce68e4e382606ced23b2cd0762d0d9d24ae2a7eba2bcb1dc8ca8b0579e9874a13562e0c089a9e7dbd3e7cc1297e10dc0805ccb1ff032f3a3d04a5f55bdfded4754ee7743b5df1628c81b63ef8c6fa15e6e08a8f4ade4a66c95c89307a0f7c3864a1977ba50946fa77569f92b9630ffa5cd96abf3abd0bf232d03f8aadbc1382d72e19d21531c2c8ff1b1ab66e56797ddfc1a3787d78e7055b551b73403eb526a845dc830ab8b4a4adbc409afb32f38dcd19822171a5e98d2c697b55056333c2b5a5eff32b697864b1c56ede57bcd4c2fe437f8ad89ee5a1781db9dd93eeb6ff0912e23634d29d96f0237685e2f1c973091640e309ac6e3c66166de82dfb39c2a866672320cd21ee66ee2ab1d49e3dca20f730fae2c03ce02a01f3d1a4b038d596275aa5fe7a58e5af4462a17e0016544a8532403bf11c5c12b84ac2e41bae3ff86dd3a6cf4d441ed6a56a455bc7f5e16e2f90148d6aad05edb04fd253ae643c796c94cea48eadd9c7f77fc2f0aa8a6631755719496d1337685f7c3a35f32abf35b5ce3d7f0ba71b9e11375427dcf88db454747fa6416b50be91dafe9c29104dda1c8d0e2b2f6efd649a003296bdef07f50eb063b937c54adb08edeb615694286f3aa852fbcde925983c45b6157aae5d02448443e015dd133b86be1dbc1c44b30715c739e3696818e2778c251d9b0c9fe48f89566eba4c3006e5d67996101ee5ec0840bad49825a6366152be46b5135c04f9efce7cf8ae874228a1f33b80fb6d6c5fe675f3a5bc77e5afdc4bfd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f08dcf681aa328c817c070cfbee2f94409760dcf2f72a66c7a87980079d5735cb34f703ad89e8305e0237d451c54469fdd91e21028a80a50e158eb641c84a258e9e8ad9b4f2ba684aa159f0fe9703626bcf04cd64accc64838fe71ed5067978dc1456a16aa8b0b823af422f4a104582b44178f4d4a112f313aadb2b31384c8a7904eeb0b253cc63ca9ccc709dc59f6323e63be98d8cae5e2642e0a131350224410eda368917f33d208cd6867930a7119519ef1181373f7e6a593576bc07864306afb83e96149a56bf3d085e268391ed28378332e1b130023e740a34a7b3e826faccbb13a8b1224867f3ff08078df7fa183b6efbbc68323aaedd1214c0d6de05b80ae6b4ecf034e52cd897abaff1814a659c5083aae4d609010ac6efbf36dc406e0d20e4938c9eb9724804c8bff9e00e8564018f5e6fdabf36a86a3510440108c0160f5aca3537437e34936a6b00c5c467c44eb747c94065cf6938d4aa433f50f7728e438555de7ad7502c338eb97fdcc3e4869f5ce436b2417b110b4caff907cd525ba4d1a191fc7d1a96f1698a2ea141b49d16c32016deb90cb6afc9f16fa08943a558875e65228f1508a21dd610502076a77b0f681d99764bb9199708bff3ff0c7b846beae2820e69d1dc4046ef2d5bd58091e55bea962ef8ce4773816a87e275418defc6570361a2b497afe14664661e42269109e2995c37c9fac34a2e3e174c561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c80b12582ade092198df9ba358ee66321262071071dd5690e0a486cacb8a705205b60f4222e465a10edb2a918bd6a485600b9723c5673eadb600c5b64c692b62aeac0a27aa51596a664bcf1682eebe15ce8e68bdb8aa13c5db12cbdb98dbce6809b71c9017ff70b120872ad84d44dc8d4d3954845870e6b40c6767cb7f5e8c71fd2312bab8eee6684e3de7e6d0b6c300a6d93c01394d7f78812b3b9452a3d655c3d01929c10894e39e745696c316779c4ad18f64532cde25b1a1cd3b66cb073456d51fd7bf77b6c099752e2ec536f3500a170a6dba06d3526267fb00cf888678e67135dd69a551a723650cecb7718cabaeff7183681107af0443e5715f9b200bc24c8f4ab44de020f68511a5dd53615fbedbed923229082a24bee46c127331b8cb341ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361e0b7f88d39cbb47f9f8d66fdd0685245c4d0b2fbef8fce4500bbe1b9079a4970b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3770e8b3de4126adbbdd93dd62163cf4881e7ebe04f9577ebe9f470abd19403be94beb522f66876030f4852169237e7efcf97e98bedf1b703a337d9090941d8fdd46a76cbf0846a3356b103c6ec4a921340ea69aa59b1c2d3b5908d159f152c75caa8a2cf5b3c84f14743c7cb8fd279241804976875de59845e9b63f2e308d9fe91b3b032dffa0f68c7bf7ac91f2f635b5949223a4b3083c97e86f512bec7242c1b44d5310b82c85531ab7bc1628689ec828bf3ae42593526287080ffcb94f3a884783d4c370c0df2e6629dcda7cc7e82723eec4f76799d0ef013ad66a68323b7d8ee28d81cbac792ad68d8ed06c1533daa50e56377c52dca0d05266172ed988533843bc144c7977c1175376d4d6548ac32bdd084f93ccb69174fa42cd070d833f5356c4403d215c6dcd618c9d29c85e300a6deab3c2dfeca0557eb5c28c4b83637872e8c16ea2be47c17c7193602e2e5bae1bb3297d75183c97b344a1de5fa56aa2a75e087bc6fd77da868d9606ffe462ee29a18ab8f842bbdd2c9ca14c924e50eaacc908b958c72858906c371c8d18d9915adfa759a6d4e3dc04c9bcf6057c9e5cb4ab721eefe488404d69167151bdb0488d8d41ebf11cd916e1edb745376e1437baaf8eec23065540fc5dc1d48fac46a7e9713880a0afe5f8a8ff365c35cb6796d12a4c79fef5c6f0c52f038c5b5753a1d678c07a06937fcda40f48bb10fb0bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc7a5d6d4d6dbec62555ffd1ed2463748c663de51ed0af22b7e45d31519de6c389764338c14445fe952197c813fcf19f337efa26b83f7adc0c48f48925533e3b302f605ab5c0e02c97f06bda62407a066b2f95f71d2591e295a7dd3eaa1fff7debb0ea2acdb5d3654a6f1c5daa50b66d3f281fb46b0548426a70d245e7000eadb0c4e36b2c68820728f360ed225b7d011349f2d1190c5e46484fd6a3a1f7bd56599a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523ed81292671a0e73d69b7f8dbe003e7929c18c3d51000cef36d1f203831aa74806144096ccc89d7de20fd951f07b86b246684bd1dbb43bf95f49d778e3d3aac23f7811d988843590806e67993eb372b7927f4dc1722e4bb33bbf4ba8cce89f9df6c42a2b57a548e185e1b925b60ce803a9585464bbefa142be855aac011ced8c14ff3cd6f97fe156060cfe5e41d81087764d7dc6ce5858137ae20ddbf0f9a551229757f34fede7795aaa8bd09c263840a5e5a92e28b7121d8e9ffade5eafa02493f59daedb431760f285c9d6d003b25f6fb235a5f65e5a9a8d6888680ac0c9286dd49927ae32ae90dd05ab18c9b8256bbefc705e2dcc04a0cf6ed218405609c5127fcfc5a021d147e30aa8464d6449b99d07d6b40ac8f890dcaa4e5e665cba5f7fd022e895e5be1a8dcca3f6890240b13d5e10a10d7e18b26edeedda3b0ccdc3133b3050aaeffee4825ce89caa0b07cf09a7b4bcc94aca216d75bc629059667533c4035ad627bf0d1107029da4a52a951e77d5b3393d4233eb75aa0c3b7201b856bf752753f0550d5925396b62228fbca5f00c4da96c66f179c00529fc41ab9c99e8473dca4e4e1fe8c7021206acf5ddf586fe2b9745ad3a84cd0ef25da7846d0804abcb22ea21f12aec51e203e7b0ce68e15baa50466a532cd08a7cfcdf7dcdf2dcf6b1a9bbb07f175dbd0b630dfcdc9022ad1fb2c94960624764df87502b91ed9445e6ccdef332a6ca1cf8a791902ea05f72fe9fc66173a9b6e4130cb60210f464d6943face7ee082d59de7717de05da3055f67056d39eb502472df4891346bc58692b536d14d75a837fe2335f9ecc65ffda4003b82e6554247dec9bf8e71a94d1db1e526d28715e680a5766341b95bd2b2a998b4d32e14c887c010819fabd428096d833154032b440e77d1ee6ec39698cb1462fbca20f43cb87a2aae139381da29f609e24ac3f2c7be36e2d1d38be61a6dcb20d6add36f246a1c15a2d379646439535a6445e9d871115826deb704aa1e7400de5b245be82ab80fc35d5c4c1ff61019ddd959193790ccfc4ab17e106244aaa3f75587e11c654bd13d8897778fb68b785ac1f1baa4b29c91b51ae0504273cb0f1a0caf58b6fff763641d68b6b7bbafb9fba9d12ace06f611529e7c3bc39ee33680e77884042e43c81fbdf15e43282b9a45f13413f81651522cbf193246a2ea03f1b272001b2886c9514c54f48b868adba21172eb4bcb516d176f313f3b129a89c8d5b7f6d86694d63379ff3603ea517145ac0fc6dfbbb6008d528dbfd8a571ad7e07f8c1b89b25cee3aa5295fe95caac01d5fbfa6abe6cc9e7fdb67dea8d42893e3171e368f3e5e80d21d7b855c767e316a591e18ddb764e7a46232a903e216f1fff7a9ee03588dc93e37a792f67d933b9229970951670306512cacc5b1ef24131c5288e9499f2bd8e900484113ff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a84282d139db71eaec0133f52fbc3ef244952e9770ab6a0c3224b3fcdcb30cb8a75706c4a3a32cde59d5379097d2494c2c417edc168864b26bdb065349c2bdfac837a60806ccc46d8fbfa8ba258cca149ecde3c496b9c1963fe094b7046cce33b8a1c755cc97f0476c446372b2707e6429814b861b05e329accb9e61c322bccdfb3ea918e73c85189d053586e45ce49840999d039ebfdb1f1f578288d03d58cf12a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855bdd938b1362b9418822a521aeac86398d0b33727b685ef6e230e76c755c81fee9c37998992de898358ab47f7b09034844da203124a3f862ea4bd4c96a6334f52cb6d2202359c68746df968a7c80543cc23b5d0c6806827380ba2997d724ba6e020feed56bced02f2172e9260607056020df1450a8dcd2ec9abb8957046a9ef71a51057ae6c5e813b744f4fc058ea7daeedbf756a94c1e5c35014beb8e8cd2a37092d6c35d5cf3499121cabbcbac056fcbe3ef63bdedf5530d6c18175c0946abccbcaef7912b5cfc5deab5ef88f4577d5b234c1ab85e5e1d1f9490b21883c880ce430cc751413d38c39f4212278aca7b7fa54d0e8795c18aad573ed440efdcd24c22044722c93608580199405678d8ec8cd23cf2ff73d63f792321f7c4f98a5fb83c17122ec1596a99830cb143052f657cd5ae1e8ff400bf3eb4d1fd9c11853d3b75f82f0740980fa015cf7f41e03bcbdcd8cd22b0adb429ff5b8e38ecf5a0de909cf6696ba384eacff2858e6ad7864250a89726c4017ec534e7a6fa3be57270522c15e61eda7ac3c9e0ad4e57770ae0d292ec5af8388d84705c74bc7cabd97c36970017be01daacd72831528515ef30f0cd64fd77f57eddd6331fbee9d102c583c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cbbf420fd490033c899ca258cbfbab8fea5fb2accf9033bc1479cba93c8dcbaab89aaf4282ad57b8c984b720c24a7b9f3af637bc6a47d4a9a49713dea594e6babd7844197485b5351859f0eebd611a9f35b4dcdb0675a6e6edd765709e78f0b5a80fa7207279e96086174fba8dcfe72660eb404480c2562e8de7875f669e336ad6f83af0226520e0952ebf27ee8cfc4622812cb48752a5a85a4155d5a2dc91590c5d8608d40c1f69bd2ccb74d1eb84aeaeda7db74409224d61ebe926eb13ce006942dd2a6d62eba38e8d8cfbc4032167e3e2bc698ac49e1785444ee8cb2754e74ed2e204c6313cf71b36924a6851f48ac97fbd0771b91b49790846633dfbbf258da7876a0b2374fe0658acf878fa1c786448f7c687dd17602768c5318f0dcb5401cbf2dc18df23ee2c14eeb02b1f779f726464ec9174e59096dcc327e2ebf7f67c241a358483676da9842820b74326dccd555a008c19a0ba134cbe4217a4d1e585dc3e021a38b0a57a51704e1d223d289acd19e7b00987b0aacd731bb9d22a8f3590ff40665377ed47ce2499db248e1c42a9d35e2868284b31612ed8d3bf28192a35ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c41dac8f98872581bd86d2240768329c33f97d37f4a4b53557b75cf00b6afb7a4881ef6d9cef1a834714be830e60385119361806f60fb79c186c1e7747d6c272fd5f467e098460b4b7b9e84f11accfd45a5175e71188b7987dfb37d99dcceb6f614e4e068e223b7c488fb53ea70d6382cab3ce9af327533ff68936938894df857ec4237f25a634bc119303985ba419c69424031ac9cdf57bd66ff2b09ec1d743438f7626ec6ca5f1c3117cbe3782ac41dd6d98ec9ac0b668ffac6881f1c881b9c3c9a844da5354434c66ae81c7d6ff3a214227ac7585d93131bcc23f645bb1eda4bfb29d052849e9e34868f70133b7ce3c6a88315b59e7efc361217861ca1e48b505add292802d9194022fe5434eafe4e29f77adcc5473b5446f49f0b37e7f20baa8fcb52e774d16efa508ce92ba5754776a3ba84635cc8a877cbf4970368e001a05495c8df16248ab5e08afb56044235e1ab03c45d447c4faa43dbab8096caf2a43486ce96c886513c186e71df0e32bd9daaa334ccf246f4575cdc9831da363a01d59daba64b600652e0e567a32a62996359b316c267a30b56b30817bf3545418c3d8505e4448dae071848563a03dbe56e1229c15cae2fed47e39e79b621c70f79c608bcce447a77da7be7f475e1865d6d795aef7501121219daa80021b9a5b13f3f988350bfc92aa21e23a2bdfc37959789a00f54fb7fb20211df7011298c687e665d43c1163978f436952423a8f41d5787c7037d8c0d3226a50a9072d377741188fff5da07bc84cd468abe47d5db558b66e060861211dd26f1baeb47548427d55a2f83c6cb8c6f4ae651525c699c1a9471c87dd4509ad25e7254db5062c86d37cc23034c44f88e88f1a9093c74566dcaa5db6d5e0d6b8b2de3c8b939271fc152d20e79615905121d980fce48b269e94bb6f62c25cfb46e58c7fe14576946cab2888f2079db7185150388a48f47bfb3f02e1618034a41323066426308d84008786279c58e7602aa47b3c8e696a495150b3ab6572ac7823a83a2cf901c1186086c9fa0ffbee0f9b2b2119a90f30d5a7e7878b002bc49fbd61af4407482fa756d0909a41aea5c642d5f52f7a0a23d967614c64db83195b710b87c110d750336ee104dba80eb28301d9b86d01ab2f27c5e1424e3a505ff47ed6ddb8980015957535f57c30ce192b61b468ae2de064c31f641d2982c5972254f2fc42b68cc83ab9b44a525c673c33603e4e77bc24d156c8d346bced7003784ed2dc44f4db43f6acee0763120aadc9a03abc9f84afc295a1ab7e940415ee3d26da585355fcdf0e03378f648a2fb3673a5f7a91cd17850941b32655ec64c314ffff8c2822e8b3ae1a1607cd2c1b9f87687875c1eede8116685a48147de137055637f86fdbbed8fcf1893226c0bfc1461bdaa39a206a0fac0c8de14b6c105d6b0eeb2ea4a40a4b9107eed73681d72fd60f6d0e45152394c7becbe965e1285c920b7a54cc1bb373c6c4d393d2585917560bc57a1a4f314e64374c553e5f5eea90f7f6a58b69c67c6b5b95929b6b82f6d0bd9db1136e1505d68134ff0266002db437868155b7e355af5ca2975dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f90db2917fa00a945133669bd1c4ed46f24f3eaff9dadd7732eaf38e5277826899ee344e0af93d7bcaceea338aedee62eb6f1baa2ea8c46052a7110bca75e0f0c19ebeb5f16b709fdf5728f8c0b225468b7ad5d662d6f6bac8ceac8c3a2d3c47d3bbea0422ecaca746530f0e647504d620e56242b9aba26c0acfa498ddfcf8ab5374b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c588cad20e0c7609029e68e96b001ad526933a013a9550f9d3d94aece7d03f93c5a44a9cf69d657510975c4be0119e51dd6f76d2a59036431831b5f9ea79b39c71c0d58ca31f569d50a8e331b01b0f899c10f9b4ce8129490f6a74826e0fc209eb69d3e18fa4bc4d51c9771bdb5850376f3a35fad2e0de520f392c8a0cee69a1e35d4b20b24f875fec58d6cbd0bdd2c8658c7826b4c1dbf70197b2ed1eb6f409c080bf3b4ff19ff0075209a2add76883140b8ce67814dace02472c798fd60172faed12546eb730d0160b69f2e1247a308d21238526b6b5ba58e7ad4d938656d67ccaac5a6f4e453935ab921be9d74f29d47856fce04d8860c28f0e6894849f7ca83dc3c279e42b7aa854cb125f1d41aef3ae9f5e1da72f9e54e82fdaf5ac3ae931bb292443097abed4fe0b0f3bb02baa7bca99153c16037658a616641a1168a05bba2116b9d7dee683295d12bba5e5fdbb42caf0b43c0178cdf8cebcda0d0255649112ec2ddf5c741ac46389b9d7af9a51c223a6576ba2b912908a256ab9b813f8ba5c10cf764a542383136ecffeca4c769ac1553a7c17d1d17b05a5b06d1b48f54e44e432eceb4b145b7b1d8459c48ecdd5b46385ba8e079762ab9701c8bf3d840900ab582d2dc5ed0b156e2be4700ea61f4111bd06959db8ee410373d9d6fd045e8acaf07c6c79810a54b93c63d96b5ef854984bcf3786bfe1e878e310b48c5abc0d7f02b785236fb0824c9e46f645b00f199d8f7f63dba2e53012fb8269078b8fa1ead8eab3a201d614d6747b22cc078a63cd2d828c642560712d4e05660742beabd55ca40cce142dc291436e32a6260c4cfaf80ca5377195460ccb7e2ed764ea6c07b357a98d25805fd77909115cbdf32ebf6aa8ff84ea85dda876c10932ce20551f2ee873c9b6bb3372aff7d30bc0ecd94f9dec3ca719734fff4709bace8b78025aa2f5fa1f500f7e2d043941630305e4657fca6fcbdd83d580a21272b3cbc9e6fd5bcd440b93b571455f6bba0a9688b19a1f224476f730e000da0e59f9ea187ae8a15d5de17cba62ccb7580219730c19acae623463e6da0f2807e1e31aa13394ed63ff5065fe3aa0a240a9cbf9acae4bd84075aa1d49a3dc3c8cfc0c50ed575e25280f8ae0b397660f0dd7f58b3482d4dff82f249253eb283892b614ec0b84ac85a14a1f6a63b467908735eb868002e6f7b9669530bad0c6ea7f83967f19e847d1f1c8df817d940d5d0134be07769fef7d5d80f935d5cff1ef9affa61f135f0b6bca402f969a7626eb7e90e40296e36ff4087a8c13ace15008b40be46596425fa091c171eb6195c71065fc20ba0c076a27f5652f15331104358d4a0590b57fa367267a066f0846d3832868b14f4354de8f265dde5d5262c42be930d4a2d935beda0555c4d9b84cff79eaaf3fa97b0be44e332656f767c39e3939562f027ef914a8ced5aac4eb4423fa636841342ac410e37ed221e9b88d117ccb21a65097c68bd38bd23666e01d5b65d4da0d1d0b1af302b0997d7790f4479bf2ec7c2ffc69a7fecb3efe2e4ef6c57a6a50e9a2f5842188040a0042a63ef8abd7f70bd3f8e3a0d0adaef30f7733346c8d99f224576020b2912a8fe6e43e352d899c2fc1b3450f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa0fc39011107a05f1638054788ed49e9d65533f29989ce54a4bbe8d89e73ce8a95d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2fa3d6cf351f97f403ee8128e55317e4ab17d88010ff3408bf10224deba6d7786acc84d1ad3e40648425cea6402468fb4ae5ede479b5314b2aacc6e164272dde80737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa52901602e11113f4cbe12fa3a2a76011643036f3accbff3ceec27b4f0687f60def3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1f63a9274a946b68069af217f81e270b89473c8c61280d4fd5dc663d46a00bc6e576cecc8f40d39334e3e1ed29274bf78ed761fc754708f78d82a7dad2e2814c8c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec895c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e0d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de4cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4747e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008f85ba3a086cf955d3b46e51a00e19adfb56c1b984f7cbf05137c6eadfdae7dab54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d7256cbbcecfb9a97e5c4f2ffbd8a11f00d9fdef0aeff835e167c5092117f843447a6c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835faf21e4e3f5dd5c44358c0e41840e73c7e9617bd6c5ef05ee30a46b2b9c0662597047cfbd663b2cac546ff55428a3b09155b8450e415dc42ccd6b71a69b29caa0d55104d7739d9fdb738c8151837b9fb19cd85b03885bdd76ed0a07c03ba35c1bf808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e93502180fb63dc404b6f3d32584692fdd10755edc8f0a2b79e60ff73cf40e689b4c1f34bf68edd5b5431a04f5cfb87435ac1f71700f3ea7d3c40308a4bb5e85829dfe786ba6227e84e0b99c102dce38e93a987c66e5e0a2b915775f1e233b93b2f1e4a1c43e7ac9e04982ddbe7b9f5339b0041473f05d5a941235409566821961a35a7419f8ec3768d9df6e226e4edb3c09a83615aefb962313ea411b49e9c450a2a7b5becd42eb826c2eaf3ba802b1ccab1a41ca699736cc9cd9628a4bfc41535f03726b5bb5a423c8f0698fead48804bb6e7dd877b9d90834e999fe17080ca98caf8be198c97eeb09ecda4d5d23eba3dd88eada3612eaa9e0d3441e4c1633c6d4bbf026cb401d95041d0ab572b8461970dbedec9dd61609a285a687cd3b7924c98db260a711656dcd79fcae837cdd2d038ea09e80fc8886811d45e8ef9126156b3b2f411ebabfa73bd495670e8e6e05a9544b0fc33c1519e52bbd47ad40c1d5c9388da6993aeec4ceab499cb43fd7f7a253f3a29580192d1e699314acc4b104f5bc78e2175bda55ac731d16284247227fb8fb15cbcdabd05a4396866dee3761409fb5906141cecf694026cc67f20b67737ae020c926da7375fccc914434d955fd2c3b3b3f3971ac4b0d5bbc199e9af86161c01905081e6a50262260cf744aa38d576b4ba4b3956dc6fd787d47b19e92794529b8d0cbf595c2b3b8160822aff68188eaeea57da3bb06218363d96328e03e2d1d5bb33fc6e9a6928236b6bc7b437dd9871a0b125973fd5b8db01f342500f38df6c4a36209075cf7a60a844406f0716593add0efb80e6f0fb4a44cf670a991208896e654d3646a08ed2b482625ba2459ce72ecda5d05e9ede91788748bb3b317e18ba60967be06197bcc03bbc855c800889cd2550ea84657c4257668ca6f33d5bad01d4306988f8a9bb4c14f6ef3b3ed15a8d0a557934b3a70979d52a97e25cd48a8dcf068d716982a28d669476b0f0a607a648ef6aee9221aea0fdc5e7082d4c5580842d51c89011d5878c2ba012dc12edbec1be6a30e7fc48a9e6d0bd3cf1c832115a61bca24e466160abde4262d0093c0730dc644555872edd20d9b9857696ea631af961ad51f79adbd6b57f9f3be82feaef219e870139fa3b08f300a6bdc49f03e0081979eb06bc71ebea8f3de2913f849c0644f1bfb92b9abf96e23ee7f92e9db83b2d216c50095250d2ff268b26bebf39a1d9013bb61cb9c5ed4a5968f72ff32de74f83da15ed5a255bdff1efcab7b01e564e302748f9c572d1560e85dba194dd6eee8f1b0d0a77fbd36ca73f771f536ca7209248854e695365189b1f4bc2b1356c585b5d6b631a130963b0056c54ac61b929e5c09f1e062d38a939aaa78ad283289f824f8d9a806c861805177fbb9d4d7684c041fbdf902dae2954201756735e1f9e2197c2e3918eb90ee25b53b42c789e4eecfea4b4fc5410d6aa9bbff169535f4150065274a41220c41f5508dbc111be36f214ea9c62ab4b8b5f54c5f782e0ecdf64cc2afc6c944291b11db043335ef93d4f90520dc63fda2686e82e03c1396393181083a6378cabfc9638f9e0e88f31872db3b243bcb7fdc82061e29de3c35ee4f579f4ac5e96d2a4a2f54afc590d17abcb2711f1ec172a701f7e50e62b2034c6ada741ef07349f6d00eeabc0bb51c34bbaa7b37fb4246a8080801743acd8ac55f7db1a8843b7a55812b7195744514b5b7674f6876ffd41d1dc17ddb5e73f69b2b08667b1cc12145c8df29400715972b9384743786b00aa5b812ba92a9e819026369cdbe231f2b8a0c79cb7f77f98b8aa8098efd394f22341149d9061711c5ad7b30ebced957a712286feb6d6820d4ffb3188aa8850ba914ef7598cd3715f26a6d9d47d526e38866739a1be436d5dc87fee872b109083ff692633e41b1fce31d1de8b6a13d2a58a7e504d876b7d6e3f9f93c1b762c9879d6fcf4aaaeb6dafd02334fd0e9bdd0627ed83207d39a10a44620acb46079c4edd1561f505765683760b18e8c06ef98ea2bf99d16bfaf511b49f8ce2bbc651f6a58cdf6163f47751d0e4121e9f904cde76595d1912b8508763db3a51fb9bb8f0e22e3539adf2862f2b0cadb905706368c6e18cfe4eb2ef803156cba60179c01de485ccaac41c33ad1b2c27e0a458e891c629bac9a8816d18bd314cd7f11d8857ad684e1395679d9f8b1859fce6c308f6c26313b519684e53ce74c08423f848c0b8e99e6a7dbaf6b36167db057f0a9e7b8ee5187e8a8b956e350a73d91e2f6af754312c6cbfeedef974aac7dacbd73fa0f14457ce3cd51d1d764149d0eba7b9cb0bc7dc309a014727fa8721ace5d9ca9a1910b2c6312b27762ceadfc54a1b7ce34de7af772310b12496759d8c79b16ef51768d6e3016fc0ca0e2e05efd56da4541412d813ec56a791e132ea641e7e2558eca9fae6b26de4f6d9b74380fee195446eebf74842b2c0951b0204173b70351c843e0c5b03116f6c1f01ad32b21fb22821d994cdb1ce4b1eeeb15458170df16213537638c3e999bfece27ff922d64e9b86ae2153a80e2989f617fa4894468198c350b05115bfe97dd4c99844533bdbc039392b4669529fb8098f7ba43fe96b6f465b5ddd84369c10c375ae4bbe0e0effab11d9b1067dbe974f41a25d7ebbb061c6ae5346053cf6269be9a0cd518da9e2ac12f1c0d61fb7a45aa343d8f6307d8e3de59a31b68100962f6afa1528c72bd4446a9d07c575c611c2804b8cce6b7dde468ead6e069ef98e52e6adfdc5f20552e1ba18ed2deaad4ae11de818aa2ff5a94b851060b0af7d618fc51fa608ced24f90e00a366ca0a325f470fe615348ad07acd904242e317d4cbc5fcf05978876ba0720b8687dee817fb32a53f742e0885d22c42f79195c3c244de1f5a259dca0a9192ef972082a307d77af038c78b32cb1bd89b948dbf50586c3e2d3fa6c6aed07e37c784f50b353b155cdbc454033f16ba03f1bde640995e9c3498876812d3bb1d86d91acb8635cf95a4c0d8609f466488b6b5de02193b11c3f606a3539a810c6cb97f2109dc283f4b6848d27168cbf246b6072cfc287d9d54496fd7a855053754c74c85e33628500cc229c84b2d0053f80c8d64abab5321b10b354e4af198d4d538238f5aef9ef5e361464338d8e3d25a69ae81e77841c7e08afdd96b2ecf1caa5bae3b25a9709fe313835937a6b791af993e9f80339fe745b1ff3edf0f53eda0fde75d7fdfbadb8e6e8e9c1fd2919d3e100e5ebaa7bcacf11cb4909002b30b6232d2425f8d10808e1a19ab3628aaf87cff82cf2798d4dc22974002e3360573cb215a4a26419c494cb5189ce7aa334b4f000b47662d784fd066061fe7b0cc0e4031587997b93c89981d720652b3c614cda3fe6f4af8271f43430f00a57d9ee0e617158b9f7e2ee92543acc679342999f2ea42b78a97bf2f362da5590b92c9bbe704eeaadb8dba2670535952d84c838f607521b0e9933a2755aa4fd8d8e6ffc29cfd099de815621cea5e2b17b7cc352c1674c4c112d1ee2b2797ebeb6b64f1ac87b4edfc1967ffd79ac493561d5f8bca73a58d6a58ed12b20c9388fca18629ecfbfc119f56e47c5a76c660e07eadf6c4eae64a561bd27be0244fdea18c10abe4c631a7cc65edd6c1c3ed6a9513be3c690a0efd2c2a2101fba5cdc225b30c21b4b68e373ef02a8dd349231b2c5dcca1450e6bb7108a5ae201112dd6d29b6e47f9066dd11781eb4c8cfba7f701ce08609951b68279a6b02f93fcbead35a057359574832d1ae0f69fea70fdf0495ef9be54e178e99aa962b51bba25cc030e694157ab5bd025f16b2ec7e40859f571cdd243712ebcbbbfdc646028a2e7ef96beb0c4fa20a0ad9c38749f5e6a4b82171ead7bb74b73e3e122eacfa398fa1ee7186f553a756003d7bbb0e05e5e0db6d37285cd23f1e1799c804a8cbd336f0672c77c8dd7943f382bff77fc756389d5d503ecead040ea7fcd6c0b0db6373f89fa97f7b0151f8bbc9603fec5148ff9ab7707981fc0c396ed9d729934e20cb5e61fd1de404cf05c1bfbda7e93c5aceb5b207347b64e73288ad4bed23151b4ca5a5d0c93daa85a54b00c8528ba84a6a46315447d51c99a40d1492bdb212534213ca0f217baa934f26262adbf005731be8e97416bcf4fc0af631902b38c5abe82b57ac84d158d11b4b4a6429922e78d71652e7ac76c34ebe74ab9c844b358024293e973ae9fe46fa26f607e5051c9ff97b9456ee34dadd18b45393a85db2188d2fcd55237b6c3fda5468cf667352c1b45637df8c8e542f70b54a7bd163778f030c4967da6855bf22a86c89f20170bcd6ff2821a9d980e484b3d508ef912aa3509528050dd26be3c4c7b01ea527c42921ad58457505bbe08c9acb3d143c92c3c9ab68699f027bbe1d75eb6bf0b79ab71c0c91acd4322b23547a760c961053d08f172d895a4ea1a75fa4aa4b9afdc8f8023e2937de21d141f2b9f6b846411a5c764a826951ef597449ae5debef4a21ea2991b2a11d64f0050d57882a139607649b23f018bf970a3fc55ec834b7e297bb30007c9a567804abb0e94ae8819ea5f6c134c48362c65bb9053abb6c6322769e1436d36546aae29c604cec6e956e79f370e895df22ed992535ecfa0d143fb850147b6646e1a27ffb3c68d06a588ca2611b801724736fab945e6f6806ba334e16b95a82852ddef09843545c93da7b367de1f4d14a107678010e204cbc29ad8d58f691512ee1280f4ff933d1fe5eae0f131ef195002cda38eb09dc74fdb90757e6818362d9108236261bbd967ec0af764226ff1d21bc165af307c2a8e961b288ec9195a59b073f8996ff9e367b927dc56909e847144109d1072d355e25e2ceaee97b7bc70cb331b896d2bbf450210bc476b470047b9c306ffeda99c4a38fb5d63b88d9d13c187e36ae39d15333b22840379aa8f3acc436b1d7890978dea190f3ab7dc77cda097fed7aea1e2b964ee03664dfde09b379bcee55cc32d8e3cfc2b8c9898a512ae76f9246027e638162e685da596e2e05210c415e088c189d59716f4eb30faffa2091369ed977239cefdde2601af7113ce612c8655ba06ef57d246985673a7adc5cc9d442ae6445e5059a8d8a2ef673f9dd5151d73ba070a3e79b1ffd7de7dde979effb8ac85ea1bba3cc44e6872c080a40e516c6515fb6f1278bf1fab6c3580303ceff0b0f0c7e00d999a6d10d95d9c69d7ff6fe571481b1071a7ccb372b30043eba5c5590bb3f0764371d7465acfa06ae9854b8da806ac0fc42c96854f3edfbb8a9d0b12347ade0d723aa1a1ce5292ee3e1494a8feea5c82fd13a5670f36f38cc33e151735ab5695ee6894eb3f3a1ecf01238988b28691381c777327bb1ba443e081adb48386ce536c0dc4d35bbbe2b7eb32b8c7f522e5aae3911163fed5a630e5ed802ad9a1d8072d8c09f3949290f5d7add7fde5d2f4e095d5d3a190dc943a9d73ab29b2aa9ecd8dc533805a1954ad1955178866e07a6991c21d0d2d769b7e19bc4cc889b0d5fb6bd07190a2c4a5ef4f8663a328d8e2f4dbb6d81f5c726c1a53d3c0bd2753153b8a58175e18c2a6adb08da2a4115fc7b26c358c958d71c49f95c30d23f6c45af4d7aec69314a25251f57a8867329ea182155917fe5a97aabae6802587b5e89deae7c6e1a5e859b2fbb76abd1230ec68bd2a3cb226287d109e13b468c45f72f43a7233177f40c12973f0cc17473c698dc079273c6d3b6e73927a44799ad5fa2b51906be257635a85c5cd9539ec826a3d1fa87140aea108950857ddb11fb7e90a2b6da60903a9fb3e2f92691df5e603b5f4224f31cf3bc593042f2b610e1d6b1a760b09377da592f5d132ee8cad5e6dc9e9cfbbb2e412c01b2ea43f667be366f068af8f52f9a20b8c4f8f2feec0b9697765c41ec8d75c1f29aa56999e1694d2d39560f3c6c3f4bb550c6d26a7fe7ebab7f6af3402d55b8149ad581dc7fe7b0828a3222d8da2bd1b45764d0a7559b028d99d18b1dda766996264ed867979a8cc322debc5d7d359974738c7f6ba4ac7f833ed1ee74f3c02d4e1857f7fc9fa7f4df0ba084b323893222eb8840b32ad1e3faf1396016776be6d407fc122d0398ce635baad180d32b38b31f20e3560b8dd37b3f6a2c4fd8d5f5d21ecb6c251ec151e1c1435dd4eda517b5368f58d43a877552ebb0b50e99a56d86d8d8c3882e21636ac3978eeceac100e71091cfdad3a9fa690a9e0dac6393c1e9135db95ebad42f12a94fede0e9061ace5ef316ab7e990a25f139fcaad2f4e09feec17651e051ebd62e80824dda804ddce84ecf7bafee01a300b6eab927dcc6aec85dd5830fc53ad7e735c8f1e797675560bb0416eeff206b4a6e73aeddec291e3b140cbbc272123eb549ce73d21654dc017fcde45d6f7bfc365f98181792c97acff4a0c59c47d3b0d97922a73a72e181c28adf953b0504026594781796701becf9f1ed3a5c3e7de20a73a719de3017e7d9e3655f8b3e840d7d2f6a1dad88d7bc12b5a843bfdf4e211c729b9a46f762adfc214a81982316ffd439ea919f739956bf2156c5495f8976e6e018a07e6fcd78479c2942c9f5551cec1170b7a0eaed09c6c668961e42bc63599534adb718a1e666a4f5af482b119fa1ee1b815d7cd09f8bddc136dea466d18b5423aea4b2210e60ea931220a2d8d3269d99e29725dacaca340dce0d08e1ce60b8a85e9b781c0c55224bc467257f2bd119af5592b6b2f2befce109b7ef1d694b7b69c32c8f6e0ae11eaf33490b0287dd9ed02b085421afc9f72ea5b958bbaa227cac879916ab9edc1d1b5411bb82a5c0e9be30efd1164855336aa71c39b22ac9f2dec213ada0af2b223ae72091592b0ca530f75dd847c8bddc402cc30a03d4643f661bd318b62d24294e0845d87b8bef4e7122f8815e5ebbd6c072b95a03c889f29ad878ed690e7c42d9d5753c2ed5df8ff659307e14e2d2f005bf37ad8ba6ed6a6299b74b3c7372cefdfcc6f26738d7ad09ac461e38202106d4d4843bb5233697453b753fc90675411ac0e59310f42df5b9dbbba3a0e17ce2e06f17f313a1ebdbdec999de35d8f872976fe414f81812c061f1a05ebafbb65f9b034364b6ea58c33411240d1a6dfebe8d8d514f65645f49b92a14b8e48b9ab686485aaa9c970874c41998daec53db449c2a9e46cb68b1c73efbf0f489a757d61396d1a33a543ba0c4931c71ca0129e0fe0694c8ded83f6ac231e0f26cd619990c204b0b372afcdfbbac151ea45ddd8b67a1908bdb931534dfee5606ca73337aec8c9c5a22abe84510c5a54b8468894809e038c0923aed4638b1581c41d50eefc03c719afd446c6b0d70d3d43312414f7c16abfc8f49a687094e3b2e5d71afa6e6d99b416cba12aed65ab55fabe604fd1aeb0d27de5c4c6ca2bebd1eb78dd50595d8cfd1ae02360c0fdda31ea9097bc1f733b2362c2ce0deb3257152a98dd03440a7511c065cd784680b3e44085f67ad37d4d844112e414b3c0666105bb2f754b336ab76de2108d71dd86dab589b1507bf06cc5b6aa1be2691ca9a1ba9785a4f31aa12cab521ebdd6bbc8ef911fe12f73eeacfd7f1b1a688292af77f604e16f68d9cc7d21536f461b22702a24e58999fec57750c04712daff44e56385f1ab8d8b943e196e58d8a928abeb298dc9cd75b4cd0945e3a9ea29809da7bcac090906e3883b8f6b5c45fdb2400b070ea0bc4187f9df581a4d721fcea857399ebefb33e133ffd5553e0b6030a3526c240d1dd428fa66416f16f86a8410df0e24c058258aca1f71c6d3123437e1d4eee25522134852dd0df67bade1af81a016be356b18b6cba29c4968035728598136619b506a2d4dc2cecdde586dd224187d41869ec045daf5c1f674e038fb7e27489548c464fd156c4aea7febd4b4e17f2cc5b062a1fc733c63a131b55749505ad29e4f5a0530734fd0a4ba2b738246464928a792372f03de01c6a1d188354253f3d1568c85c1906a2eae0d9d2186ed681cc3dc8f596a9a2185a39810928e0b00d4e994b409afc954b5e02911011c930dca97479a8dba9dcbc235d1ae38b08d7110a280e5e6a11ead564de8b962959fef77a6a9ba14fff9a0832b51d00a11e46664ac5ec54fb8500823f079bfecb0c48073f5d64b1049ee861606abfda22b1663f82cb921a7c71648c7d2c0f33404816073ef2919e255c6d8a1bb061191256c452d70d241c3877bc22f7227ad2c7de88322009c85a8c6f9d0dce63f857b519eedc4cd44fb5325919d05b27ffbf4d3f8f351a1eee382729f2a37af39a730776c3b84e8e32acc94f48bc6fc6edb221b5a5f2900a99e16fb23737fb0d5034f21a5eb6676fad7f5d13d64ba9073bc1cfacc40da06d06f91a97cbc05f4d048f20925462b7f6a480586d0878fb31548bf2c18972e1e642db7d57c30a6e58db27ac114ceecd86fc6d7154b12291ccf624e060f29a8cc8f4f3e0a8e454feeef293dafc7e1b3ed614998527f00aeb9ba41a1b30ff93fc8236a4e3c7c44f2a0441d7487a5c05c09084e0e8c7f29a9ca3d8c0be407ccd34171f542839915a1d6cd7f9979c049bed24d440a7c8936fe4114aae9a401a67562bed187cb54eddc9602d02e426d1ab5e43012c94f9a4f72e85c6a618f7b66589f095307b7d28cc81e30481258dc2759e2b759997284e350d3860d2ae59a8cf346a85deec41cc97365d9a2823c48b8c88a510080cd633e7c277877b1802c4b948e39fc8af5223d0741f2b17b8458121231079ced9d89a46fa642c5b66ae45585e0806cfe8559fcbc226d7f59c5abd5e0c957da090f66ce7808dc79b1c3833b4017007c6c749a9625e949f7640a5842ffc2cc01ee9b583ced2034053d484b7d199f6302ba77338aa2077fde13c38e22675c81dcd7493c54524a7ab2609c05445b321a26337650355403793bd15ed69a84fb2179d9057085afa6b7c92b6c4f8cbe1af478e4e0cc229c8e63e39c9797bf6cb75a748b3b8b52ecba3ed3597cd9d3c414f78d52d26763cb079e440347f9464b9720f2f6bb0cba3a2c064259bd17d1433278ffdf948cb788a5bc758d58384efe2c2c887e29feaa9a78685d945758b2fc8333aaac5c08f7b050e7b0af2e8c6e1f0e4e2b0d5f595664b12656277b0a06b635badb2ec9f66bbdbc736c5798dc1b4d3fb7001d9d44a0034859033781d912f899474866da8f15a72cae410c936f76ed1244240a15383c6cdd127be2f1d7540ade1dc8bce686a1cd8d63cbde49882c6d2b1deb5cbf2a8b8d235e325ef400123a0dd2c5901f2dee599175d96e61ce3df0f378f74659341188f8a1dadcda8c7162f074665a8da3d47e5670a18d25b006ac54d0633fb671201dc6276e8a48b36a2b920862b7ef33128f28022b3984459964cd234f5cad02bdd5f17531a9c4997500ef177e41e7c040b4525bf080926c214c061ccd62aa5c6aec0ee5503214608ee48b62e7a7ce4552c8246d68577269296a412a99e90e1d9d8dd8db4153beba184a2882cdfa891491357a3c7e4b563c47a2cc7a1f245e55c56c70842f8d0672a06945128fc3a0adbbdfb6a9b9cd4d37a15dbb1c05727feee7ec31b12b11345d08acda1e1f2d0011186d8f86f380cd958e021c9d3db9cf43b84ff937363600dc9394981ecaf1a1f1583b7b5b9fd9bfa83e9831986c06d9890b076955368b51ee7ad3a12359007c89a51d00607a1c650ee5b0cafb4b5ec08668240088f86ad59c8c4d5f461d1d2100399ceaf5b045507ba6ff33ce68d0d7c9f61b49cfb0cbfee2cc314d2568c5f8cf3057388507af0cde812ec1e47f837dbf13edaaf338dcb99b416cde8e898fb540f8252295c528f77a654c6a653d6e7f08e99fced730f6e72fc5b210020d26ea72ccadc9d13baf6aa5aae849a95d24fa01298f275e9b809a14da62790f62ce6d533319d0b628b92ac6c474eaa6ba7cd6c3f86c76206ca7e6bb1e45309512d4c1025abdda63fb04c44ecc8c665b2a4c5c9df70c9adee7f3adf91b63bdf2dec2955987121e73bbcd4930df5b68a8dd2200209b6f54b61b4d0be05caa9d9f41c3d484c9f150c3274f62e6b65235c8129b8f1019b50fe8099d980902f8ed65d1a3864c97fd705e9d803c633e5ec5af2bba204c2bfd81f71d1e9e2ea5cf59c16aea3c4ab334a8babc893b0b8e087834cca6c88c22be962f658fa38aff9b1f065a8d347424a9f1e42132a0249bf3a80904e2a2f7c9900ad755daf6314002b46e930f56c618fd381470e9e535faf003d1be474c1a12cf4f230e6743dc860f7542237051d159fe8ac745527bdcd159e445560e8ab775a437a99d8ce12643ea47452f63957ff6eb69953a7a3c138e663f9c81defdcff3d76b94f1ae0d7ca1683d82f16bfd3f123e4afce97bc60d49b92568278b49b4dcc2513c59dce7f75759d46aa615dd9f7c6d0ad6119394f612e2943a3d89ab36d46ac64e61cb98a25387abce4f32c0126fd375258310ca536f52deedb998df04178616a6586529bbf80cae3355f2af1f7bc7e7ca0b5fcbe61135d4af49bddc33854d276918a1614d580563ba57cbddd41ce259429edc288ec77802de40103b98fa3d4cecd3e4e761adfb421a2d43b7d40e9ea2875643ce83ff33ead1ef4a4a7b675eff14a9fcfa59bac1fbef27ee633b2ce76de04d01497345824b95ca3ba9c31993084f01c701325bb81e4550ae156c41854781e0bd02d1e4eca6be015d0bf753094c55578f724ddbaa861034fdd338ab4bf83315e823f181b784de4639834430d733df3c276de1db7c0eb55fdb9e59bebad93d0ad22215e46efbddd52a908aae290d99b5072c7ff780b0e073eda6ee6ac2e99b3f0f8db887485584d5a993bfb6c6eb94a5624bccbbd694ddc2e67401d916262fa75fc1b3bfe8cbbb10091819e3dec7a00960ef0a3e235b90c6d4264a7648ca8c2a7298428e59a6d7638146200424f6a5d9ad86cfa31951beab3473fc62792c5ec0722730602594834966bfacb79b966dcb4f50c6484f0d9043894301a2428acc6a2a08e582b03acdb2cbce3c78056c9f23b60131de041b9f5191ccb8de0cdb9164aba8d4e4b23d0f42cc5903c916c93d1b9c7574d31d309c874e316dfa67667e347b966a4f537f5c5746d71ab152516646903fdddd403e761e7970875dcd45fd5ed3f983e323cf0f9ef2157814a1f88a23f40a1edcf207699c34f79c26545c45b999186529970357f76dc54d31cd38846ada8f4287d0d74ef64e52be94dd0237e6f9db7d70a3a10d69d58663aff47dc216a811aa08f053054381d2eb1aa0101465dfa1d4054b3586cefad2aeb4e286d334885b7ca4545548f2dfbb51277ffa3e6c437d0a4d21e2e57af10dcfa15b96b8a9e95b359b61885a40e59bff18ed6499f768eeb54d8e782381f1e9c795658f23117ee2580e910998da79e4d0b08d0578ec1c9fd4839d81b35285c16b4bd22c8826aa67823030c4f8051ddc5b0d4c704ac3ebe5085fe51acfbbf7cbede014eb740a96dfb259c372b6712230bf4a7da59a3167a3cd31d9980bd26b6e9436077aa558f603aae22d3bfa8aba77f40ea873288bfe047ee7c2e67564da8a371c71c05d057a244d5e46b73ab780f0f25b812c420e7c3045efe820cd69e631b4f34db0915cb53b7c6fdee64a4375eea11d8337620369fcc098682dbf6a6c8cb54813c3a846a3798ca4fee76f4184aa80e69749b7a5bcd8320cfca56727d38d11667903086111ca207bbde4fe3d3c58a805268f5e46690ec8d04108cf5d67e5a8ca7fc1dd117f83d381c324a191471356c5ae73f963e9e4f3bc5ebdd3403c844857118c442e3fcc8e5192f958cf2e65ab3df02bb8ea9c6fcad0f8759685ad71835f29c03555bb7668f47bfe83086970cf5461b14e476c1666de16da799f8ed430c79d5a431649f6a64be513854f24114e7423a0a3ea2534e1d32b9efc9548ca542c38692cc270d8f0eee0fed970c2312cb11fec83cc8e869989abf34709063a9e8458d6886a01b97275639553d4cff45ed51a75c9d518d887aa83af8d40b0fb9dbe42626557d2329d3a1a2ac3b4e97896797d55c2021827f934a0ec99be5340f8a599cf376df21408b57a48366969075f0c82844d9226ecec8c404f0e273ccbd795fa23d36564b36bd0afa12b35fe4fbd1e7be682f57d2131e79d657767cf1511e2ae1ffac740dc72ccb60382e5a61a8b56db3a62336e937fe0600a9995a149f72bb48faeb765c214b35802a66761b218d2df1855d174b7dcb842ef1daae88a8581ad9b7724d944e742aaff6f09f51476a5528aa76ed00194c66155fabf10ca352b2b8c4f032c9f43c58b45576528fb5c25453bf1e604d831c69d3b4de610771bf1a1ecd75ddf09fd4afe6c05a84f76d077d5b4c211e735d500da1f6326922983334b7ea9be53bdb3e0c388aa47c8e3d8715ff29e40f95438d63e5ab4422fad9b106f485e1a2debc8324d04acbac1daa008ede337704eacb3cbac136aa77d5d730203508d500a9fbe92b988d6b2ceed9753a0473b5996e3a29b3a96d937c0f257ad45afecb6e1c6d4d45b6d3e6ee9165e53688daaee986711a7b6ede3cb2cfb75ac41b1d88fdea181a2aadcb4a2ecdfe2926ff54433bdfd0a180bc76f1aa671692899e00ad68baae3d291535b30137214ba664adc89b6bbd822e56a3c332f0df2f8406ba1f48642956e7dd08416d41c7cc84e0c78d43999cc138968eda523f85513e183bdde2705ebd87fdc1c4c39a340751e18e904ff274adeec573ad62e90ca2fc3937101383b187ea48b7bc640d71f4e8015a3d64a674a4dc6ae7393f2cdb34c39b31c98cf4b6fd0325ff77c21322eee0be79dec1d64ea6698550a32506281164b5dc3ef1d692763844c00e70e55cd86410e5f6f8abf0b55e0d1ad1463bdc03270f1b73f9c42c4d5d5b1ec2e1b318fe5b42c401a9bec9735e73f22c6cba7630c2cb036bcde58fe3748eba9e8cdd0b2ea5f06c56756c74c44c49451756bb07d2e3c4647cfb3f63521156fe376bbfb6e81f724fb39f2433bd086b622c62c3b51e5e0797bea2ae2916159343ce9a2feae491632f18441ce688239f9889728a598ac1334a2bb7c7d3568099e4afa632517b7a7edbba697eb7cff715e29eadcc95e4151340232937b8fc52795cf646f7d4bc38c5ab976751e750cf388b783716f67c61fbdd50391bdf3027dbc71407320f5568bc3deaaa04a5cf97b64a7b3808e1d8601f1fe21fe450dfbcabb68e0490f3c5cd8355451b29b1dbbec735dda7703718a59aa337958857de0451a124a664a177de1d670ac1adc3867279a657ed9e4975e0680b53ad65e5d6fa00179e8fc7f74ad02fc8c2f375ad615cc695cbded1681c7e6d5b451ceea465c6c369b118b84110f28bd98cf578f841d514617aa87b1bd4e43f90d6306e6f63d7121c58a3ff30faaac04cb6068715af822b94fe74c6ddba1355089ccc1375551ccf9da858fc8d151abee4057414e191cdabef7500f42532d9fca218645c2dcaf52ff514be826f946b50a9f86ce86d36ecc12826a170bfa7aaa3264a49d73f22884de8bfacc54dc0381a1a6662aa4d739ab77d823e15037c49e30784607d4f93aee9190b26dc4e82fafe9cefc5fb9be9a0bc26f3b92da600176d322480014eda2809159bb6873d653981766da8c0efdd1c6f22a457ecb966ad33d38017a49144eabf2a83d4541318b53b0900d42089f0046d4fbec54f1874cb597fcec354ae55295369e2552e9659ebb2e0f96a8605df352a80e47cef210ff82ce4932df80878995896aaa6a94b2c271fc7e9c3266b56a559a7fe15f35cd3fde6278420bb205a9fbb4732d4fa9eeac0b40ce48d0b631c5ae081d5c771fbfed54de549ed8f36ca057ab134cdbb0972f09c102d1a99e33d803a6a61a2827170ec43232e0aae03b38ea8661619745e5a59e4468e6143e43c63b68e00c22b01f6bcee4a6a795e2854ffeef90ef054ae4984bd6856f738f7b09c367450ec324fd76fe595c917b28ff2d15d8e1c76bab85ea8b5bb0488bb1e368c7de997e029fec97c343abedf815c053c194771e8bd644d8a77b4a87a133b91ac888f45a1ad7874d3382c4b3e54b2b82d9c11e58829bc1e488dfeb14eedb7128400b33c44150f3185601066913ef190f4914111c5799d265ac3b32001944b2e0e6aca7d946711e6032c28c4e11c29d97fbfab1a4ff9be70f235161dc32e9c88226e33a0b98deef68bd1c26426a999ed662cf240f9fbc7fa208a5299ae13bf1e99f545550d1bae5739bf67812298afa5898e3cd64870855260e363531bdf2158cc462c3e0243361c3d0010dc085a730e98abab212c32f6b1ee5864c9913bef30248a2f8eb84b3ae0f64bec171b171906c5409b20981a93ad85c81b582b05b4d68818e5489f7694b6537218e88ea12caa395b807039153ac5d002d5abba2146fa4f386f6ac78941d5372ef6e8f1873379942f5cfa343abf8da9c02057adca91c0cc631d88cc0ffd64d5ad28b23b916c10d5d4b6f56d90fbb9e057841409e5ea2edbeb82e1a7244ccfb94b2167b2755a7383774c1c70f9a3aaf42425951342910c850c8f48da6c295224c81de703095d334c75a0196c574fbc221cbaf876b1f90e03194698953efd8c0bdeb6f52e1a7010a45bbbb9224a7513f35384c01bf2c3446ff2d174d9847264341cd6f3c3e9f17db28b0e977cf2f90c45fa8b36719274d6dd26895b1503f729b2ac45c549400bd8c4d3d35b1337b49c39b11f178423097cb1904a3ad802fc1db6d474b763f4fd8e1d9942b88afdbc86c469c51ed62e7ffaab150f92231f248e42650ca3955c6aa0eb785f4a41d716402968e05e75e25fe379e3752f0b0711451eca5439579edb483c133ed98b56ccd0b64b283f53f521bdc5b69afbb64e64a62d0235d75f3281a8098ec1db98adad3f6f1f14405531e784692f7df233b67ac71dfc29451df5d6d0af36f2643c670fdcd65a4c0c614642eaf053557787a04b210ca597a236e4c51e8875ec0cc2847e8a4b57152be9d7cc6829a7a2075391a824510c8392b05ec5c391592fbb3ce184a4769479db1e8484d2304b84cb7741ccd21b937a878b1b976d0f9d0c7e99afdaf4b2f92d99809f2a93100e8279bc6fb168e165bb1dfccd79911b4eaeaf136132808adf7d15c2a1f49467eb8905f7c1c1d0847e825369100fec41cc306a48816dbbd1c2d1411a1d748b703d73bb432f41513414d35cfd0fc99972134ea6038fd2cfc6e534dde06e954cd372d3accaa65c8d2a9c333ed81edca9ede9b7dcdad7e255837a0d7d9b686bcc7e75f1b76b61f66916bb7e604ee77959bf09fbf9b56b1436e94ed35bd2a4f85d4456f5464849952d321fc9bd26461790b319e2f2e8fe6ded5a615348dce563b12c9a786eb52633285c1f20b58afd9d7f7a9b4bfc1f1e8913de946e6538d2d16f07c32a02ba3599e2387e21e7d4a12cbd5493cc9c3716c71fa15729eced744d338258170263a010e0c1571bfe08605e39df91cc28f5001b78097081ec42325f2814ec7ced497500f9f7cb5c598ba057c48c2b06c58c5aee5af60a9ad05d6e29928fbc74b46a94e70d8e4a9321f5fad074b29dba07115b86f4ff4809e2a6c2bafd68221abe66034710da00e3f734e817823a923e58cb54530575a0bf59ab4d555b593b6e9ee5b7503db41459ef0629f316a633a1e023325dadc2a107a6efb3bf62022c6c916c1af8eaec7c6608c8497363e20782db9ece9ee2d5ca78aa1bbc1f301db2aad861f5634cd0a067c7cf2c3665edda74233ce7246f153392cbc07a3ad2892b16a7a1928a6eafe25a306fe1ed2bbac8f64a3f40213d9934fe625b00ef47c213a379663cbdbcb4afae29a3d58a88b6479d3cb05d5c6ff2cdd4730834cc7ca8df640710b1d0c68f619d6101aff9d9e2200ae805fe75e08bf27602e613942bcfa1bef7ca1f3e776c1edfedcb117cfd2e5dccbea44e1028f8eac8352fc8b2104b199c1f7c249b2285bd9e2cd23de6d76eb2672ad5aea889f51f3e7dfaad06999e11739ac8a19b62d309d3b96e7f1a17bc99af28d3a903c769cb994d44b504742ba50edcc591dbbbedb504e64fa7c935fc38894d70605ff592c435e50bedd5e245624d76b6ebec76307f461e6ab075fc15e1a221aad853956dd4cbae9b1b4a9663625012919f44a22d0372cb3be02896ddac6538048678e76c9389b4c27b1e3f38a546629c712060db4fa3a7aefbb2fe680911ef0d8468d624c81c550446f77c69b5638d640d2c6f73c39f7a9e4c4769bf1b2dd008c3af0ecfacbf2fc1025d15f09261c442be094d25679b4e18ee2b8fd750272423c61c03643b7a110953f32033ba7c91f3d385ffbdebf471f7415e7ee0c10357679de9aa14b91b4902a0ff2dd0d5dcbed876633b34ee234c60b0f2edae12a2f3d4232d2055c8b051adf1a9745ee178fb209ca0a7d0a9e8987fbd1ea631b3cc86f408c4983539f1058f2dc7a8ac6403fa87a58dea7ae10d6a1fee25de73542330b73f6f5eeaf4efac9a127990009ac7519da0f1f6b51b360361e46fb8f547f347d183acbd8904fd438c69d4455f09be8d88d03bbb60ea232a5edae06b51863f2972dae809e33dadd4d37f593b611cc701c8b87f9be4b243ebae5f4cb9c1afe84ab2b095b935b5620538d69aae69c59142332a2438ed6bb8701a2f66a734c3cf76782f05a83d06019957c2fa08594b4aea210216158dd6d8099992777a2bfce767b6a3f09c6cf7a977f57af5adecfdba14bd900dd003542bc690a7a7742fc27362c3073e01e3c06af0d91a45363cf22a29b1c169ae74eb8efd1964615cebbb01cef3b9b6f854018e1b4d78693439e55a63063870dd9eebbb5bb3fe0c9282d8de11e9d59364be302f34e28dca65a3d7b16c4bd1c00e9a93e2afd4a4620969626d94f16f2a75815114bd29e1c6ecca155911f0d8d2670d6304fffa20e6296576853c19169635bc024f27db0b77bf516581ad50894094fe3a684fb6911d48f837d29d6d5eab555e44eb5f3e1c29fa615fe9eeb03cb2e19cdc039840c91f8f23ca6eb1bd47ac313a6d565c46ee7c5d44137981c0a6f18cc6e93d81e8b3d20f0260ae4fdbc06d37cdaf572c91c0a49e731b9e5e657316f4c0ecd7896e2eaa359908420a65964eac6420317fb331cc21515307fc238f391ef64008d74d7e3f74df4428aff319973cc461406b36c7925c172a05247af67357ba508ea1eb5279c86afc92c995628896851ba4877532ee805691ead487d25b63ee49a6f9459c9569f927fc6f29cd2ab1feec4531762d2ca08ee6b19f72b34bcb9b2ba669da6bc2cbb31dcaa97913c22b590753f666bd97bb2dbec9d7162aadb11cfa1b99d5ee42b49d999ded6db711be30b79a167b43e90385f7b7d14de0ba26ab3875ccc348cda9c35ba10c18c9cf645fada65257610b056bb83a0d5ca1c8d9c4c1a426cb52885c5b880e56d3502c56a952713451f681107dce016f856c8b1e8598a0f15842cd548409ddb3ed88a34718567dd05be63ab8fec03243c2730424a4554f57ac6bd26378f12db7b1b7409c38c1880aacadcafe4fbbc8b5dda71a5f82d8a492405f51c5890ff77d25a4afe7422e234a3943b4a492cd84f63492f9c1576f0657534a07d450684a2888b51899b11a9bf96d6869a441b0c765f12296b370575a7efd779315686a27a1b30b5bd56051f9cf25b75faae484c2b07702ecf82fc008559679c701ffd8398b00cbe5da6e7b7fc0c73f5da4a769544a6b20349f7d7cc05a184a1b09704d20e0279905cb2c75b19eee0ee5119f5d297a772a0388c23618bd8275e79bcef4b918171dfaa8013efdc7dc7ef7e9e843c74d5d2dec5e57d6066ba233a1aed9f401ec2dff180d316ffc38b3dc1c42aa710e097a50d1629539ad1ad2f5dfa2d69e30b57f862aa98b63a59779b5805c725e0383403588d07b05e1d9695294a323f7f833a7d2193bfb396a368c1dea6893af5e2efff6bbb85b31fe797a6264d68318747dd76b95198d127fb96fce9cf1eabf77568a18319ce6d3680f890c4a5d7b191d4aee461a07271024d2d4cea42638aca3a0231ded8559b4d1132b6d9b711bb8c3d1a849db281decd6e4623a944a2975420c820ef1e86cea75e8f6e39e81a4922c2bef1439a7678b7bc0971149fc2566f7ca6223c0b30b8f24cfbb639ef4ab84031fd46de1c737de1b6012e3998a042f0152e90380efe18b89a160729920862061f629ee72771075b2f0f0b14ba09e11c2bbd39cd986c6f631d93d91fe554a0a92afffdea480508d8320079ae7316f9d65fdb4302518ae8a889520aa54785f4419d003f128993502fe95a27b2d619dcbf3257f43f5ea2aa5d81ad8191fa443a5a502528e092a0d1c76ba47ee23455774a71f773c621e0a8fe32bfd2b080d493ff4877de813c1249b32f691a260cf2c417c95e8424d19856bf08cef17df49237e85b35ba5daeaf7f2879895fd6b880b0fbd431e9d6f8fd081595a0e30063fee3f6a5c6c736378124338292b07a1d34d97919449ddd72e6368f951fbb2086ea63eddf89b6ab9eee260482b3b23c87a7ff68e354bbaa7f7a9be928a27b4c172366ca17d8fafb6b0abf7c47482863ef84e4da91231e29a8f778814714fa2b136abc0d3999ed3a7aa227fe07dbd54fc42e753c373cee2d4e66289452aa7e2ac99121e7bba8e28f40da30b95cea7fa3a865652f61fc8b82f7d82adafab225ccec48a21e3d644592d15cb5cddaafc9be58e8454e72560b1248fde9c5901ec27aab93fcd02edf756dcdb93fa558824dcd001569f75edb5a0ca179c59769e0e3f8e12bf3987091c5f174cb5e4663892b35ebadcc897b1957cf70e7d7e85661fddda77ea73b697f6995b711dd258048969d0f00729e1e8c7522563fec96aa0e5af50aa8ab160ae0861294030d66ed26efc085bcb3c5b7be4b723cd1e331ac2185462fea55719624000f84ba14d5e7ac95fff196d4dc2449c753dd6cdf2f6a73e30dd36ecdc08cc4e296a3616d2432ea88404377d0e10f0cfaad339dfdd083616e1d69f5c944c4e06d3592144a356aea263ea94f8639362051b3d92132617f5052ec726652a4f133112292777814aaa2d3dfa42fc80577bbd3f0b011f18605fb10542a6ccb57d4254b87e4f49ace5c2a00326dccc2f2d6a5d6fb05caaeeeb4278a82d3626cc7fb659f511688efb7be917f219353555d209562dcc54e167785767efb31da1b787ebd0739036599af573a3d43323b65db5898345638902d93c1a3fe1f39e638b91482f4acf9afab009f2f011a8013bca9a69e7563c693ecbf46273c658f98893ecc008e787499903d330b323e045d1daaca38b5e43d66d6d4e4541ab469c2b3aca674ce4fc92dfdeeb2280e5627dbd6e623ee028d3d9a9cd19243d97f3df0303bfe4fe077d1bdcd350367d75a732e7088f417e27bf55528212987059571dcdc066c9ef5d2f058aa044aa8f0c0b683e57f9fb17bce3cc9a22afd5f0b0c851ce952261706f7e799897f70cac43d58231af444a09c8956eae16d8f4c8fa31de5bed996d325d1d00ba61838df98e1833253d06466ab1306aaf516f1ecbf1686dc9cda3c2f757bbe8467ce32418df35d7e3d991da8dd9eb6d78de7aba5db7f89759cab867064cd3a6824fad0e2e742ca86cd9aa200571d3c5a34f5068877c80e250d07caf1721a6aece93e51fef2919be4343f4113ad96936a04f45956ac6fc7e6f907cd85a60798abce1d6fc643407d974d7b8a6d34877becd28413fc9fbabc461bc8cf195e8b712ac7ad5b6acadf0e9b46017cda311219511eda7edd77062c592888ca1ef2d8e58630ff41c31d50d22c8e9d8afd3045f7f22a8e8d4a6f336ebe43ea2d2caf198d3347a6da0a3e1242be454c74f631af22ce4fb66f325e50a51b32d17145033c779a5ae7203c246e91aa4f09d4c122eb7fff3a1abc961abf417751a688c6d7a67f321577d62e34e408277b686bb3b09a3ed26355b1bc55fe9ec45a44665b97238a594d5078aa99299955e0905e351817c811b332a79d8be81f8059eeec7e808fbae3716119d8faf6eb56283940ead2e4ad3154c2ded0393eebaf9be803cefc4aba259725a8091277c96f7230c3a0e345c46fecbba485ffe67182dc1c6bd86f881057b3e8ef06e6d70252fd25378f5937ab5bea7734476643c66ac7b67b6022b2657ca9ae6bdfdc4253b78e17e244745d9110a6683eb0f87d200f069fa20ce18ae42009e70b181fa2d743305f0ece98a8d27d0ee083c8dd8423704d1442947d623a462f2eeda974b15ca63d5cb083dae0f9304f3c22e1e520d4df8e07a418d8e71d3f9a879affb7be512981c4b1c3f7768f607b4128b6cc3bce0dd3a32957142d973d56ca924e656fff1880b428dbf460c0e3fde87e21bb726f739dea4754b1875f375361c3232d07fd60686f6cafb95c1bd1e18282b35154099f14ab17428225950fce55c6f3beca59ea0957df506457d7a8a3354523f6d7177f1812c50a4d438164dc7c166ec3a550a5b2ab18672829063410c12905e66c3df91d87c6468773d069f344c75e1d63312a9a52086f1665b89fc6126b2c2dd623a02ccd6b2c7b77256bff32c46e0b8e17ab35a422d81a82f66f12510032c8dc942690c5569523261db08b952464f3a45af364caad92179ca17fd521c290464e2c0ddb814ec99977bf26800952e70d04eee5a1d6096740fa091372fab805fda0122a0c64deb058dcbc32f409a2657604f81553fc14f8741c165b78eb5491a4e1b0a0fed62192cd50125e59485f4d4c3c833d3495e1c9398e78294bd14be5f011bc1405b2cedbb03aab9b3790d6f71c5d71001fef08a5e301d6fc3fd7dab961b568f9948fa7288298c2ced682572ad06d227855ad0d15a1063ba1252db3756590ab5ebfee775fe8c1f9e9b179090da9c74d0715e92382c21763a43e169796f33bb5679d520a8373712625d65c390c732b1dfee07cbebaf486d3eb0245d5e32f450fe4ad911f487df6880bd155378c1bdf8efa9a434a970a42be2065daf1cce28fd308324a0d7db27a5f6b912a9df38cd5a15a8b2747ab0a1f5c5538a43ce16ea781e71f0d51b5befe582a070e06ad701c118b03eb676baa935963ac7e39b0989803bde51080a06cfca6fb64ab2cea792967c14667f3b5477d0b821f639476bf441587ff019f0e986a372ab5340e5c481aeb654ba91b44f933e660ab8bf14b2c84f5ece4a4b80ec36e0e7ba2fbb064dfbd33d48548e783ed1a205f0d2c179b1e1e6834772b58875f22538ba8a0f83a480895a48e3d85b0748f3efdfc962c1e1ef9e08446049d148d116bd22b0cf8efbeecc4af4275bc7ea1265e1e275ff0019630a157add116e82274c60de6070522fb783d60f29e5a882d6c96b41bee1a950a2fc0fc52eb534df99da5f7100959e41bb725e53b58daecb307f79890aedb805a6c0d757870c9c316e8cbd17ab732b6a123d37ef38f2b2b6bd679d5b54ba1c76f18491b8b03b19197a05aef31b84c704c50580f23eb7ea93b08a59be8a79522058571a6895b919b982fb1824babc27f0be839005e4ae6dc751d22c37d37a2f303b9e305eeb0be4c55ec1e69d0c9704b0e1861f1e9da166f584d590e008ebd677e472466df2418433019ac3f73c02d00e3d4375de84a9c47b03d41ae6df9fa619e9ee2aceb1b421e7ff6a34137305a9f86310a906ecc2d1a9bd6edd9a1e07ec5b18f0c5d4a684991edac3f28df55c8e81b35b7c70d5c3f89e80183cfc478962ba58bb56d3ea0efac3e141417684eaf128d9a068a3823e7d40d02cd1d086b7dd3312330547e9c1f90968cc40f8f2b343b66fa07fb2fe9751df902bb4d5b78004d34967a0cdc63b1d2afc7044a91134db0d16929015a137205c2483574cc000bf9cb7a405eb7b6e32ff4cf6c01804e284f2cf990ac0e77bad724586b5b59a236f7d9bba8ae64b8eee092f62b0bef9c8cead27268a2b555068277c9607a25ec738efcbf0df15a18530db8cfb907e9900d7292263cba7b73776b47d21a53ce0c19624ae6ce11d55d4ba663edd63073c2bfdd38d938c6033e185de79fa62361d2776934c124363214e6dbcc2b83be407b385d9ee76de67f8ebc780a2de7d2279b7636e6df4e866c683b57f83276fc252b82866aa6ca5be5d94dadf28a9a6e867f85c076edad132e6f7798dafebb74a905bb18846e516cd4178dd32b2cd048b28bb435a38e8919b48b760aee2937154d9c8214a63e5d5ee3a942673ee0ec2274cfc700567038ac831faf9ec1c4794f204ea67763ec563de8ead771007502fb7d08e1f128f000ce7760aa519c05df19db4730a30e15f6cbc8a44a1a40d14b1f4ed7a08ffe6e86edd24ea8f073c9ac6a7951a483cd5c4ab24dc077030259b23a946056e3aceb8f9d7cd3c35f35a8d83d4f266f0a73932158b74db5cdea9e229c15306b0c58b66f408f690667b8221bba325886085b71ae4ecae63a4045aa9358fcb1122716fa6a42de6d684d0623a72fbfbb85dd88b405898241ea7f722f8f343abd1d73d61cbbc5cea00f3c76bd3ac1f102e26c9718ab01dac821589b5250308a0e48790c710edd44971938ab9e2999c722bb80c78c1820770c9005728729d49f81e55a7bd00c55955c1cfccd67b41e53fcd20f99e033cfd99be5d46adcd419f8dddfa3cacaba25374d3315d471273f6b65c090e83da6e7e8819a69fd5ae28d95ccbec97b69e03e9e5ce65cd4bdc0cca563beff67de1c44b7fe493ad08324e5598f1270032de372e36279eedf49d1f27fc7bd00acafe7d4373667b364b4a3058125c3d6d6b1fafbaa82c84fc96fb45532ce8bc6rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-documentation-3.6.15-150300.10.75.1.src.rpmpython3-docpython3-docpython3-doc(ppc-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3g6f5fff@fIf@fz@fuk@f:f*Ee؈e4@d@dVA@dRLd>@d@c>@ccv"@ck@c[@c$e@cbb@b@a@a*@a*@aaaayay?@af@a]aLl@aLl@aA@a'@aj@```t`[``@``/@``U_T__@_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;mcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comschwab@suse.demcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.deqydwhotmail@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commeissner@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commmachova@suse.commcepl@suse.commcepl@suse.commcalabkova@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comtchvatal@suse.comschwab@suse.demcalabkova@suse.commcalabkova@suse.commcalabkova@suse.commcepl@suse.commcalabkova@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@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- Add CVE-2024-9287-venv_path_unquoted.patch to properly quote path names provided when creating a virtual environment (bsc#1232241, CVE-2024-9287)- Drop .pyc files from docdir for reproducible builds (bsc#1230906).- Add CVE-2024-6232-ReDOS-backtrack-tarfile.patch prevent ReDos via excessive backtracking while parsing header values (bsc#1230227, CVE-2024-6232).- Add CVE-2024-5642-switch-off-NPN.patch switching off the NPN support eliminating bsc#1227233 (CVE-2024-5642).- Add CVE-2024-6923-email-hdr-inject.patch to prevent email header injection due to unquoted newlines (bsc#1228780, CVE-2024-6923). - Add CVE-2024-7592-quad-complex-cookies.patch fixing quadratic complexity in parsing cookies with backslashes (bsc#1229596, CVE-2024-7592) - %{profileopt} variable is set according to the variable %{do_profiling} (bsc#1227999)- Remove %suse_update_desktop_file macro as it is not useful any more.- Stop using %%defattr, it seems to be breaking proper executable attributes on /usr/bin/ scripts (bsc#1227378).- Add CVE-2024-4032-private-IP-addrs.patch to fix bsc#1226448 (CVE-2024-4032) rearranging definition of private v global IP addresses.- Add CVE-2024-0397-memrace_ssl.SSLContext_cert_store.patch fixing bsc#1226447 (CVE-2024-0397) by removing memory race condition in ssl.SSLContext certificate store methods.- Add bpo38361-syslog-no-slash-ident.patch (bsc#1222109, gh#python/cpython!16557) fixes syslog making default "ident" from sys.argv[0]. - Update CVE-2023-52425-libexpat-2.6.0-backport.patch so that it uses features sniffing, not just comparing version number (bsc#1220664, bsc#1219559, bsc#1221563, bsc#1222075). - Remove support-expat-CVE-2022-25236-patched.patch, which was the previous name of this patch. - Add CVE-2023-52425-remove-reparse_deferral-tests.patch skipping failing tests. - Refresh patches: - CVE-2023-27043-email-parsing-errors.patch - fix_configure_rst.patch - skip_if_buildbot-extend.patch- bsc#1221854 (CVE-2024-0450) Add CVE-2024-0450-zipfile-avoid-quoted-overlap-zipbomb.patch detecting the vulnerability of the "quoted-overlap" zipbomb (from gh#python/cpython!110016). - Add bh42369-thread-safety-zipfile-SharedFile.patch (from gh#python/cpython!26974) required by the previous patch. - Add expat-260-test_xml_etree-reparse-deferral.patch to make the interpreter work with patched libexpat in our distros. - Move all patches from locally sourced to the branch opensuse-3.6 branch at GitHub repo, and move all metadata to commits themselves (readable in the headers of each patch). - Add bpo-41675-modernize-siginterrupt.patch to make Python build cleanly even on more recent SPs of SLE-15 (gh#python/cpython#85841). - Remove patches: - bpo36263-Fix_hashlib_scrypt.patch - fix against bug in OpenSSL fixed in 1.1.1c (gh#openssl/openssl!8483), so this patch is redundant on all SUSE-supported distros - python-3.3.0b1-test-posix_fadvise.patch - protection against the kernel issues which has been fixed in gh#torvalds/linux@3d3727cdb07f, which has been included in all our kernels more recent than SLE-11. - python-3.3.3-skip-distutils-test_sysconfig_module.patch - skips a test, which should be relevant only for testing on Mac OS X systems with universal builds. I have no valid record, that this test would be ever problematic on Linux. - bpo-36576-skip_tests_for_OpenSSL-111.patch, which was included already in Python 3.5.- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory. - Merge together bpo-36576-skip_tests_for_OpenSSL-111.patch into skip_SSL_tests.patch, and make them include all conditionals.- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043).- Add CVE-2023-40217-avoid-ssl-pre-close.patch fixing gh#python/cpython#108310, backport from upstream patch gh#python/cpython#108315 (bsc#1214692, CVE-2023-40217)- Add 99366-patch.dict-can-decorate-async.patch fixing gh#python/cpython#98086 (backport from Python 3.10 patch in gh#python/cpython!99366), fixing bsc#1211158.- Add CVE-2007-4559-filter-tarfile_extractall.patch to fix CVE-2007-4559 (bsc#1203750) by adding the filter for tarfile.extractall (PEP 706).- Use python3 modules to build the documentation.- Add bpo-44434-libgcc_s-for-pthread_cancel.patch which eliminates unnecessary and dangerous calls to PyThread_exit_thread() (bsc#1203355).- Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, bsc#1208471) blocklists bypass via the urllib.parse component when supplying a URL that starts with blank characters- Add bpo27321-email-no-replace-header.patch to stop email.generator.py from replacing a non-existent header (bsc#1208443, gh#python/cpython#71508).- Add bsc1188607-pythreadstate_clear-decref.patch to fix crash in the garbage collection (bsc#1188607).- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Add CVE-2022-37454-sha3-buffer-overflow.patch to fix bsc#1204577 (CVE-2022-37454, gh#python/cpython#98517) buffer overflow in hashlib.sha3_* implementations (originally from the XKCP library).- Add CVE-2020-10735-DoS-no-limit-int-size.patch to fix CVE-2020-10735 (bsc#1203125) to limit amount of digits converting text to int and vice vera (potential for DoS). Originally by Victor Stinner of Red Hat.- Add patch CVE-2021-28861-double-slash-path.patch: * http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. (bsc#1202624, CVE-2021-28861)- Add CVE-2015-20107-mailcap-unsafe-filenames.patch to avoid CVE-2015-20107 (bsc#1198511, gh#python/cpython#68966), the command injection in the mailcap module. - Rename support-expat-245.patch to support-expat-CVE-2022-25236-patched.patch to unify the patch with other packages. - Add bpo-46623-skip-zlib-s390x.patch skipping two failing tests on s390x.- Update bundled pip wheel to the latest SLE version patched against bsc#1186819 (CVE-2021-3572).- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- Rename 22198.patch into more descriptive remove-sphinx40-warning.patch.- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use OpenSSL 1.1 on platforms which don't have it.- Remove shebangs from from python-base libraries in _libdir (bsc#1193179, bsc#1192249). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- build against openssl 1.1 as it is incompatible with openssl 3.0+ (bsc#1190566)- 0001-allow-for-reproducible-builds-of-python-packages.patch: ignore permission error when changing the mtime of the source file in presence of SOURCE_DATE_EPOCH- The previous construct works only on the current Factory, not in SLE.- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Due to conflicting demands of bsc#1183858 and platforms where Python 3.6 is only in interpreter+pip set we have to make complicated ugly construct about Sphinx BR.- Make python36 primary interpreter on SLE-15- Make build working even on older SLEs.- Update to 3.6.15: - bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of \r and \n characters to avoid (unlikely) command injection. Library - bpo-45001: Made email date parsing more robust against malformed input, namely a whitespace-only Date: header. Patch by Wouter Bolsterlee. Tests - bpo-38965: Fix test_faulthandler on GCC 10. Use the “volatile” keyword in faulthandler._stack_overflow() to prevent tail call optimization on any compiler, rather than relying on compiler specific pragma. - bpo-40791: Make compare_digest more constant-time (bsc#1214691, CVE-2022-48566). - Remove upstreamed patches: - faulthandler_stack_overflow_on_GCC10.patch- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.6.14: * Security - bpo-44022 (bsc#1189241, CVE-2021-3737): mod:http.client now avoids infinitely reading potential HTTP headers after a 100 Continue status response from the server. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-42988 (CVE-2021-3426, bsc#1183374): Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo-43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo-43075 (CVE-2021-3733, bsc#1189287): Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - Upstreamed patches were removed: - CVE-2021-3426-inf-disclosure-pydoc-getfile.patch - CVE-2021-3733-ReDoS-urllib-AbstractBasicAuthHandler.patch - Refreshed patches: - python3-sorted_tar.patch - riscv64-ctypes.patch- Rebuild to get new headers, avoid building in support for stropts.h (bsc#1187338).- Use versioned python-Sphinx to avoid dependency on other version of Python (bsc#1183858).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- add 22198.patch to build with Sphinx 4- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Add CVE-2021-3426-inf-disclosure-pydoc-getfile.patch to remove getfile feature from pydoc, which is a security nightmare (among other things, CVE-2021-3426, allows disclosure of any file on the system; bsc#1183374, bpo#42988).Update to 3.6.13, final release of 3.6 branch: * Security - bpo#42967 (bsc#1182379, CVE-2021-23336): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. - bpo#42938 (bsc#1181126, CVE-2021-3177): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. - bpo#42103: Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - bpo#42051: The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - bpo#40791: Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. * Core and Builtins - bpo#35560: Fix an assertion error in format() in debug build for floating point formatting with “n” format, zero padding and small width. Release build is not impacted. Patch by Karthikeyan Singaravelan. * Library - bpo#42103: InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). * Tests - bpo#42794: Update test_nntplib to use offical group name of news.aioe.org for testing. Patch by Dong-hee Na. - bpo#41944: Tests for CJK codecs no longer call eval() on content received via HTTP. - Patches removed, because they were included in the upstream tarball: - CVE-2020-27619-no-eval-http-content.patch - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- Provide the newest setuptools wheel (bsc#1176262, CVE-2019-20916) in their correct form (bsc#1180686).- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- 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 (bsc#1179756). - 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, CRLF_injection_via_host_part.patch, and CVE-2019-18348-CRLF_injection_via_host_part.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 Bugzillapython3-docxinomavro 1729850838  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !3.6.153.6.15-150300.10.75.13.6.15-150300.10.75.13.6.15      python3.6MiscACKSHISTORYNEWSPortingREADMEREADME.coverityREADME.valgrindSpecialBuilds.txtcoverity_model.cgdbinitindent.propython-config.inpython-config.sh.inpython-wing3.wprpython-wing4.wprpython-wing5.wprpython.manpython.pc.insvnmap.txtvalgrind-python.suppvgrindefshtml_imageshashlib-blake2-tree.pnglogging_flow.pngpathlib-inheritance.pngtulip_coro.pngturtle-star.pngwin_installer.png_sourcesabout.rst.txtbugs.rst.txtc-apiabstract.rst.txtallocation.rst.txtapiabiversion.rst.txtarg.rst.txtbool.rst.txtbuffer.rst.txtbytearray.rst.txtbytes.rst.txtcapsule.rst.txtcell.rst.txtcode.rst.txtcodec.rst.txtcomplex.rst.txtconcrete.rst.txtconversion.rst.txtcoro.rst.txtdatetime.rst.txtdescriptor.rst.txtdict.rst.txtexceptions.rst.txtfile.rst.txtfloat.rst.txtfunction.rst.txtgcsupport.rst.txtgen.rst.txtimport.rst.txtindex.rst.txtinit.rst.txtintro.rst.txtiter.rst.txtiterator.rst.txtlist.rst.txtlong.rst.txtmapping.rst.txtmarshal.rst.txtmemory.rst.txtmemoryview.rst.txtmethod.rst.txtmodule.rst.txtnone.rst.txtnumber.rst.txtobjbuffer.rst.txtobject.rst.txtobjimpl.rst.txtrefcounting.rst.txtreflection.rst.txtsequence.rst.txtset.rst.txtslice.rst.txtstable.rst.txtstructures.rst.txtsys.rst.txttuple.rst.txttype.rst.txttypeobj.rst.txtunicode.rst.txtutilities.rst.txtveryhigh.rst.txtweakref.rst.txtcontents.rst.txtcopyright.rst.txtdistributingindex.rst.txtdistutilsapiref.rst.txtbuiltdist.rst.txtcommandref.rst.txtconfigfile.rst.txtexamples.rst.txtextending.rst.txtindex.rst.txtintroduction.rst.txtpackageindex.rst.txtsetupscript.rst.txtsourcedist.rst.txtuploading.rst.txtextendingbuilding.rst.txtembedding.rst.txtextending.rst.txtindex.rst.txtnewtypes.rst.txtnewtypes_tutorial.rst.txtwindows.rst.txtfaqdesign.rst.txtextending.rst.txtgeneral.rst.txtgui.rst.txtindex.rst.txtinstalled.rst.txtlibrary.rst.txtprogramming.rst.txtwindows.rst.txtglossary.rst.txthowtoargparse.rst.txtclinic.rst.txtcporting.rst.txtcurses.rst.txtdescriptor.rst.txtfunctional.rst.txtindex.rst.txtinstrumentation.rst.txtipaddress.rst.txtlogging-cookbook.rst.txtlogging.rst.txtpyporting.rst.txtregex.rst.txtsockets.rst.txtsorting.rst.txtunicode.rst.txturllib2.rst.txtinstallindex.rst.txtinstallingindex.rst.txtlibrary2to3.rst.txt__future__.rst.txt__main__.rst.txt_dummy_thread.rst.txt_thread.rst.txtabc.rst.txtaifc.rst.txtallos.rst.txtarchiving.rst.txtargparse.rst.txtarray.rst.txtast.rst.txtasynchat.rst.txtasyncio-dev.rst.txtasyncio-eventloop.rst.txtasyncio-eventloops.rst.txtasyncio-protocol.rst.txtasyncio-queue.rst.txtasyncio-stream.rst.txtasyncio-subprocess.rst.txtasyncio-sync.rst.txtasyncio-task.rst.txtasyncio.rst.txtasyncore.rst.txtatexit.rst.txtaudioop.rst.txtbase64.rst.txtbdb.rst.txtbinary.rst.txtbinascii.rst.txtbinhex.rst.txtbisect.rst.txtbuiltins.rst.txtbz2.rst.txtcalendar.rst.txtcgi.rst.txtcgitb.rst.txtchunk.rst.txtcmath.rst.txtcmd.rst.txtcode.rst.txtcodecs.rst.txtcodeop.rst.txtcollections.abc.rst.txtcollections.rst.txtcolorsys.rst.txtcompileall.rst.txtconcurrency.rst.txtconcurrent.futures.rst.txtconcurrent.rst.txtconfigparser.rst.txtconstants.rst.txtcontextlib.rst.txtcopy.rst.txtcopyreg.rst.txtcrypt.rst.txtcrypto.rst.txtcsv.rst.txtctypes.rst.txtcurses.ascii.rst.txtcurses.panel.rst.txtcurses.rst.txtcustominterp.rst.txtdatatypes.rst.txtdatetime.rst.txtdbm.rst.txtdebug.rst.txtdecimal.rst.txtdevelopment.rst.txtdifflib.rst.txtdis.rst.txtdistribution.rst.txtdistutils.rst.txtdoctest.rst.txtdummy_threading.rst.txtemail.charset.rst.txtemail.compat32-message.rst.txtemail.contentmanager.rst.txtemail.encoders.rst.txtemail.errors.rst.txtemail.examples.rst.txtemail.generator.rst.txtemail.header.rst.txtemail.headerregistry.rst.txtemail.iterators.rst.txtemail.message.rst.txtemail.mime.rst.txtemail.parser.rst.txtemail.policy.rst.txtemail.rst.txtemail.utils.rst.txtensurepip.rst.txtenum.rst.txterrno.rst.txtexceptions.rst.txtfaulthandler.rst.txtfcntl.rst.txtfilecmp.rst.txtfileformats.rst.txtfileinput.rst.txtfilesys.rst.txtfnmatch.rst.txtformatter.rst.txtfpectl.rst.txtfractions.rst.txtframeworks.rst.txtftplib.rst.txtfunctional.rst.txtfunctions.rst.txtfunctools.rst.txtgc.rst.txtgetopt.rst.txtgetpass.rst.txtgettext.rst.txtglob.rst.txtgrp.rst.txtgzip.rst.txthashlib.rst.txtheapq.rst.txthmac.rst.txthtml.entities.rst.txthtml.parser.rst.txthtml.rst.txthttp.client.rst.txthttp.cookiejar.rst.txthttp.cookies.rst.txthttp.rst.txthttp.server.rst.txti18n.rst.txtidle.rst.txtimaplib.rst.txtimghdr.rst.txtimp.rst.txtimportlib.rst.txtindex.rst.txtinspect.rst.txtinternet.rst.txtintro.rst.txtio.rst.txtipaddress.rst.txtipc.rst.txtitertools.rst.txtjson.rst.txtkeyword.rst.txtlanguage.rst.txtlinecache.rst.txtlocale.rst.txtlogging.config.rst.txtlogging.handlers.rst.txtlogging.rst.txtlzma.rst.txtmacpath.rst.txtmailbox.rst.txtmailcap.rst.txtmarkup.rst.txtmarshal.rst.txtmath.rst.txtmimetypes.rst.txtmisc.rst.txtmm.rst.txtmmap.rst.txtmodulefinder.rst.txtmodules.rst.txtmsilib.rst.txtmsvcrt.rst.txtmultiprocessing.rst.txtnetdata.rst.txtnetrc.rst.txtnis.rst.txtnntplib.rst.txtnumbers.rst.txtnumeric.rst.txtoperator.rst.txtoptparse.rst.txtos.path.rst.txtos.rst.txtossaudiodev.rst.txtothergui.rst.txtparser.rst.txtpathlib.rst.txtpdb.rst.txtpersistence.rst.txtpickle.rst.txtpickletools.rst.txtpipes.rst.txtpkgutil.rst.txtplatform.rst.txtplistlib.rst.txtpoplib.rst.txtposix.rst.txtpprint.rst.txtprofile.rst.txtpty.rst.txtpwd.rst.txtpy_compile.rst.txtpyclbr.rst.txtpydoc.rst.txtpyexpat.rst.txtpython.rst.txtqueue.rst.txtquopri.rst.txtrandom.rst.txtre.rst.txtreadline.rst.txtreprlib.rst.txtresource.rst.txtrlcompleter.rst.txtrunpy.rst.txtsched.rst.txtsecrets.rst.txtselect.rst.txtselectors.rst.txtshelve.rst.txtshlex.rst.txtshutil.rst.txtsignal.rst.txtsite.rst.txtsmtpd.rst.txtsmtplib.rst.txtsndhdr.rst.txtsocket.rst.txtsocketserver.rst.txtspwd.rst.txtsqlite3.rst.txtssl.rst.txtstat.rst.txtstatistics.rst.txtstdtypes.rst.txtstring.rst.txtstringprep.rst.txtstruct.rst.txtsubprocess.rst.txtsunau.rst.txtsuperseded.rst.txtsymbol.rst.txtsymtable.rst.txtsys.rst.txtsysconfig.rst.txtsyslog.rst.txttabnanny.rst.txttarfile.rst.txttelnetlib.rst.txttempfile.rst.txttermios.rst.txttest.rst.txttext.rst.txttextwrap.rst.txtthreading.rst.txttime.rst.txttimeit.rst.txttk.rst.txttkinter.rst.txttkinter.scrolledtext.rst.txttkinter.tix.rst.txttkinter.ttk.rst.txttoken.rst.txttokenize.rst.txttrace.rst.txttraceback.rst.txttracemalloc.rst.txttty.rst.txtturtle.rst.txttypes.rst.txttyping.rst.txtundoc.rst.txtunicodedata.rst.txtunittest.mock-examples.rst.txtunittest.mock.rst.txtunittest.rst.txtunix.rst.txturllib.error.rst.txturllib.parse.rst.txturllib.request.rst.txturllib.robotparser.rst.txturllib.rst.txtuu.rst.txtuuid.rst.txtvenv.rst.txtwarnings.rst.txtwave.rst.txtweakref.rst.txtwebbrowser.rst.txtwindows.rst.txtwinreg.rst.txtwinsound.rst.txtwsgiref.rst.txtxdrlib.rst.txtxml.dom.minidom.rst.txtxml.dom.pulldom.rst.txtxml.dom.rst.txtxml.etree.elementtree.rst.txtxml.rst.txtxml.sax.handler.rst.txtxml.sax.reader.rst.txtxml.sax.rst.txtxml.sax.utils.rst.txtxmlrpc.client.rst.txtxmlrpc.rst.txtxmlrpc.server.rst.txtzipapp.rst.txtzipfile.rst.txtzipimport.rst.txtzlib.rst.txtlicense.rst.txtreferencecompound_stmts.rst.txtdatamodel.rst.txtexecutionmodel.rst.txtexpressions.rst.txtgrammar.rst.txtimport.rst.txtindex.rst.txtintroduction.rst.txtlexical_analysis.rst.txtsimple_stmts.rst.txttoplevel_components.rst.txttutorialappendix.rst.txtappetite.rst.txtclasses.rst.txtcontrolflow.rst.txtdatastructures.rst.txterrors.rst.txtfloatingpoint.rst.txtindex.rst.txtinputoutput.rst.txtinteractive.rst.txtinterpreter.rst.txtintroduction.rst.txtmodules.rst.txtstdlib.rst.txtstdlib2.rst.txtvenv.rst.txtwhatnow.rst.txtusingcmdline.rst.txtindex.rst.txtmac.rst.txtunix.rst.txtwindows.rst.txtwhatsnew2.0.rst.txt2.1.rst.txt2.2.rst.txt2.3.rst.txt2.4.rst.txt2.5.rst.txt2.6.rst.txt2.7.rst.txt3.0.rst.txt3.1.rst.txt3.2.rst.txt3.3.rst.txt3.4.rst.txt3.5.rst.txt3.6.rst.txtchangelog.rst.txtindex.rst.txt_staticajax-loader.gifbasic.cssclassic.csscomment-bright.pngcomment-close.pngcomment.pngcopybutton.jsdefault.cssdoctools.jsdocumentation_options.jsdown-pressed.pngdown.pngfile.pngjquery-3.2.1.jsjquery.jslanguage_data.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.htmlobjects.invpy-modindex.htmlreferencecompound_stmts.htmldatamodel.htmlexecutionmodel.htmlexpressions.htmlgrammar.htmlimport.htmlindex.htmlintroduction.htmllexical_analysis.htmlsimple_stmts.htmltoplevel_components.htmlsearch.htmlsearchindex.jstutorialappendix.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/doc/packages//usr/share/doc/packages/python3.6//usr/share/doc/packages/python3.6/Misc//usr/share/doc/packages/python3.6/html//usr/share/doc/packages/python3.6/html/_images//usr/share/doc/packages/python3.6/html/_sources//usr/share/doc/packages/python3.6/html/_sources/c-api//usr/share/doc/packages/python3.6/html/_sources/distributing//usr/share/doc/packages/python3.6/html/_sources/distutils//usr/share/doc/packages/python3.6/html/_sources/extending//usr/share/doc/packages/python3.6/html/_sources/faq//usr/share/doc/packages/python3.6/html/_sources/howto//usr/share/doc/packages/python3.6/html/_sources/install//usr/share/doc/packages/python3.6/html/_sources/installing//usr/share/doc/packages/python3.6/html/_sources/library//usr/share/doc/packages/python3.6/html/_sources/reference//usr/share/doc/packages/python3.6/html/_sources/tutorial//usr/share/doc/packages/python3.6/html/_sources/using//usr/share/doc/packages/python3.6/html/_sources/whatsnew//usr/share/doc/packages/python3.6/html/_static//usr/share/doc/packages/python3.6/html/c-api//usr/share/doc/packages/python3.6/html/distributing//usr/share/doc/packages/python3.6/html/distutils//usr/share/doc/packages/python3.6/html/extending//usr/share/doc/packages/python3.6/html/faq//usr/share/doc/packages/python3.6/html/howto//usr/share/doc/packages/python3.6/html/install//usr/share/doc/packages/python3.6/html/installing//usr/share/doc/packages/python3.6/html/library//usr/share/doc/packages/python3.6/html/reference//usr/share/doc/packages/python3.6/html/tutorial//usr/share/doc/packages/python3.6/html/using//usr/share/doc/packages/python3.6/html/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.suse.de/SUSE:Maintenance:36159/SUSE_SLE-15-SP3_Update/d0fb0892f7f97fc840683c308ef31986-python3.SUSE_SLE-15-SP3_Update:docdrpmxz5ppc64le-suse-linux directoryUTF-8 Unicode textAlgol 68 source, UTF-8 Unicode textASCII textRuby script, ASCII textPython script, ASCII text executablePOSIX shell script, ASCII text executabletroff or preprocessor input, ASCII textPNG 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-interlacedLaTeX document, ASCII textPython script, UTF-8 Unicode text executableC source, UTF-8 Unicode textAlgol 68 source, ASCII textHTML document, ASCII textUTF-8 Unicode text, with very long linesPython script text executable Python script, ASCII text executableASCII text, with very long linesGIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit gray+alpha, non-interlacedPNG image data, 11 x 11, 8-bit grayscale, non-interlacedXML 1.0 document, ASCII textHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesHTML document, ASCII text, with very long linesASCII text, with very long lines, with no line terminators3T{bSpython33.6utf-8ea36c5239e737ad373ee89a147f2fde1bb8dc986b7d46ce8328660993b393da6?7zXZ !t/(3]"k%a ZmۢL,%?2qu'/ cڢTYsMCX& "z%W[hr]0 E 397y9GIW\F@`HN629kY.vflJ70L0_g`4!5)5R*i*,EwjbLefBZ-s48%{^ a%_4D/+9%f`  M=LA(k*эLG qu$>tlpӄ8A  .Tdsx3:(HshE7A85j(B{_g9Y,1j@SD'?n:!̟ \&yIC#hJKy4dXܯ 7rpZ7юZpлZH0Cث@)k\©uRM53yFcY`f}bPIޅlU_9t;mPklgR"zvY9ˌr0 ̿p!:ݽTӧ%1/Om&lGɺDa-WSP#! Oq2LkXˣ9п9`SյƩ]&}T3)j\vNzZgMJvb{cX'~U{ފs7\H]N"mޓ`~}8}_LAԵ#nP7u>[9=Q?G (Kj?UvJ_Y՘u21Hbֳ}H'O-S<ъ9+:tv%QMjߑM~W/&g0zǑ`)Ŭ%a3ȥ.gy=OFkZ>+Px4z6AEY>2]7~g|0W7~];6+^Tkݧ|Zo6  wzE#\Y)Y~O$'82u2+Rtb'^ ~xq٘Ae>G1)R/V+ADkbvCgxs:T% %m5fx8(txJ{ԓG>KtLu)$2>J'ȿI\,i!>M}v4CbRٔc"M$a\-4œ ١ Dm˪Cd3jY™h?ܑ[]TWڲ<|AQlXr7[8j %i:ޏpߜ5ơWao ;7eRL#fֽA`ϵJ"D4gaG?Z1ss I; OJ=(/;9c$VNsħYSa(ZPŜ 4Rn+BᥟaߍoyvBz\xy1n% MnfKd;x&d8ŧę5y?έ<;5~Q[H:53\+htvg,ӴUP3&'oķU}Q۪^Nju^F j ގ"VƯ!a]0_>}+ASOQq#gf4d=LVs\->gT$yھG;뢔{o묰PdB^pMX9>ۀR6' V S6긌TY;hȫzfoTŰ5FN,A֍}襾w9i;jRKK1ݽXWssgJV,7+kfI7VO .EHyYT=)Jm;"V)S\(1p/ve֩al'酃^v!nzrs%;6zp\Nf?YkG!L0yO/* h~vVa([Q#ԡvgIC7 YM2XQ9Uy(.oI(4~bTS#k.Rch!$/^ƮW_D005#=/LAbPCQ=Np{U7j %?Zfc#PUf?jC=V1t ?`rF]:cF%wnj$3y[7Mey;ѝôuJL7R-W;H:4tF>[ ~| M].F_Y8컝>,e{,32zj,Uw[Z\$`#NCbK*hm""$@/ٟ(kmr4a ;Uw壍+~}\f)f`{q=P_|txR4M a87mb*/X̯Qh0 &C|,Di%(~{NBglTYkQv􌞑4*lUm5Np` W33,OrQ>Ȋ/;xĮj+q6e~QX4sSY]2iJ}jJ=.Gz^k'e4kޱ[dMkښ[|KN j5Jup>|+p^EDQp4gp}g9tbUL2 [CFpxFkJD$ILͬ;Q#0fè2wFjK4ȗ{+uԞ)~6ҢSEOAfJ_+t8('AuKDG\1t[rԜC3pp8`Wdضm W#y̓?4`-*!GDӹ㺟4=̀rU|pL+eJsao 5㺬Z[J|X֕}a ؼumG>j]m-1n5[m^Qx2mgeDpb3!5oa^7Ј| p2#{ 쯐wg14JIZإT'GU#^ˠ]D I]+qeXμ %Jn։ 8]p51c~ P(?&vݷoBJۦN}QJn-2.E9\pNݚҶ !UCޭRVvKvJ."}?{ϑS%.LF.Лpwjn7{@1Zl7a1l<lKu_>&곛-˭D*m4aKh98M ~ٜ7҄H.[@ꇢQl'<{ m*L<~&pH KK!RThH[8CvſC;m('N=]%<0ZUx&Âd{P>B V}Dl_pޥ7qrMi]ޕ}/K/ipiUC)=~DFW#5PHYuSQ?2DU߄ 3B\鎣%QCX._=6D>*aQ\/n3\1^2dJ)jlCwy XDhW'*Iּ-s}% F[fه9b_,W{)Jf9t.Se&$Bl ^@sQ]+Oh-~-kx ^sFhFmq]gC)HuVȊq_5*IHdpv !HN6W-Bx)[}}Jg* >)ʙb'q\#.Qy9i7e8rjP(K(`ڴ"~l"*2LPeã%BCMc猕3^UMGOXn~`>S IZh*b 4T8Wc#}6@zKi E$e Oj-X U2PTeTQݝ7AL'kk > xV}_ ='<2\Cx 9ա*  %CI}\C%u=vX.cOm ǛN KT󰠺&.R6vЂc-N=} r nP۫*=Gbl玮0LEq,k?N_f,0]IVhv|~{nn!3 ҈p꿤/"#<½EX4MZoI ֹ"A)pro[QenFR P_jYll4'3޶֘ `^u;3q9>A> lV#C~"te6viwNf"/e&ȴE=o-FpucK(d "f1H"%@֨7'm.IhG2ޝO{R4qt@KhHNjcMjAj2P8z YZ