python3-doc-3.6.15-150300.10.57.1<>,eyp9|o8, :~y8PϮ@$`'(L$ˠZ;\7PilZi@AX%1sL^T!5dB֧]i(VZ]<Lj }>rxI?Ĝwt*_R䬅AMpVB$V?X8!ݎ2pXpу<벌7$_ܹ K7`F{|iF[# }16'dk''xDkx C\!eh 5oMf.欟JI%>A?d $ G  9Ze {!4! v! "! 3<! 7! ;!LD!`!uu!Hx(89@:BFG !H*!I;(!X?LY?XZ?[?\?!]P!^!bKcdzeflu!v z8HLTX\bCpython3-doc3.6.15150300.10.57.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.eyh02-armsrv3VWSUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxaarch64e?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# {5E#F% -7 i%{cs -3TDmI%Zd' q mg4x', Il!EczO z<o U~T;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 ˅C8Tn??!8 >O )jV"vh*[O &H{]p>#$LZn5~O52f`eU]Hcm5Hd2a -de-y2@BKmQ &8CS]1nS6z'E[U7Q9O+ b"A"]:7tbx2)m*q$gQu8M[zYl5CURT&L 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큤exexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexex6aa499d7c3461364544167e66f6dbbfd8b05c8e4a4dd7c61645e0b3fc1d5789368316b92abab82bbfae78a09d600a8a043c8feb37b13f75db3fa2aea444a6e9866ca0604b9e41bab114e68b7407cfb2a2ee65558d3d31ab364847d9e0cb3ef26667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a36ee1cc2e08d6f0ccc0714aea55b412593635a4c82e2688034be4b2eadbc8e33f9e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e61240056ffd112649b2ec6b0b90451b5ae86322bbaffdbba6a54acb637a49d73e15b898d0ebed85d25349a766fd0659270a28d2738e8cbbf8a899cd7e3836c3311d6c473871ad4562764fea7c62a09e90b4717f1e3c16e2afbf22827898eff6f104095440035b62dfaa19cdf5d2a9da10932252da5fe4596aa67fb5dd493c8f5ab39d309e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8543f067633c754314e41b6590876b310fc14120d6b6bedd4ffecdf965bc4ec375e962cac6ec219c7e6084346d85ddbcc5c3f81e7c65404191aa7b69826225dd8e1fc6e043509f379b3405f36d2ea1f6ed3b90aff3161fded688f0f87c2a8b95f47db348ef82ea1481286c12ad68a788305aed2d95e17183a7640526eca45a9d39042918a36fa26b1122c0254b1acdf0999c29efa41b701c3a6becd6cb4c0c8964dc395f3f94b51c3d8cadeea326c225ac86d768ddb9418407b8d8aea50b1af487f9b923ce8865b8136978cb0257b9087f116d1ec236478f6c165e177bfc08efce1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc1eabc9e89bf440e9453ea8bf223cbaa548b1dc3143b0b8071b9a6d5f501b456867ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467b170294984476012a2b4d9439572ca1abeb37b503361043aaddd15e47891654ebc563a7ee487c395283da502061e15020a15d2a5ac07a6ed429eea0c16de70de0349f4f436705f1c0557a6ed959225f3c2c37d57ca86dc0a755dca8da33d91dedbf257dd9f5b340b733cf2eb0fda20bc7bfe4d4f43cae08edfb20c97776353c02fec25fd62cefb31fc857f9e07f37274ebb6193e092c32997eff3acd825355a1880bd324f6d29be02476aca6b5291d0aeb82bed20de9d9c3d6c106994bbd4320f4e386ca84660e741365580262b3da0ac58b3358e2a89149606f977eb3842ae710bad158062087b225e669c2556360d882b6d1c883e181a9b2403c8897e49f2230c542f1261829858583589813fdad1d0473612aa681571d4c3b752459ffd72509ab24df71583315c0c67a95bc8c0332130bac7f2ed3b5f72acbcec57a63e027aa33bc1ebb5f3dbe444c9799cec41b49d3ba713eabf8b793944d9c2d2f070d0bbf28eef505e6842d8a7729cd633e757ad89784712b5a025afbbd416f325cc282ba97eec1ef77d1e3d73d0715ffe8c4fc295d91502d7bdffde9e9677415df5415238cb26339911b2d4bd54c1e61fc2c7b2a340388a24f735b0e9070f3a0e8d87f0e4ffdcc85bf073264f10cdd777a30022292ef6b71b68bc5c00aca79ec6b8f0b65d399a5a6bfc45ba067160cfc0b17b91e2472eeb975e7892db2fcfcd711720063944c4773641b23bf1cc98dae1ccce6f218d817419df4d94e2b2f84fafb6c28daf0cc35540de3b27128b4b22bbaedeb8e0ed84e2875d9d65359937d547338e29da7bda50a866005b2dffb1a1931a079bb1d583c434528c643f812c8771eda09fe752387bcdb9cc0694293ac434de6f1cc0d5a77ee1d9fe1d285d699df753c8a41b2b7000f4d2e6d44d9dda25d3e5080bed8f855b1983c983d6eb7f65b1ad96e9310f72f7446921a54bff08c81ef4fdc0b54f6241d333d93db7af76508b51ce4384a4655c83fbdc7c9921fe174b47d640b3f786173a8c27a34941e91aa83850bcbfdc0ed1e29b11e8b56bd1a84cad6ded4052cb2f50ee9200355c10f522ea2b07833083f8abd8a53b0698027f1fe450df39cc527ff808a9bdf6a6e01f673076daf68bbbd23e11c1485428595b6a70e66cd42b5cca5e711957c824f6a9bdc697babc4c58745fb9dda6ea1e64e4a2d59b8e412d49fb0a7f768f624d9120a9ea4a49f549bb4de45482506e646e55ddb9dd84daed5b18b92c341095f835cd37847cdc968e1d4176c5e824d7ed04b462766f63a462ad11f847e765befa2eebc36fd87775ae6f2248f4bfbbeb0902a9495c7ec91b814930cc566958a0df889d2e6f301f85ed47176ca644cadc170da60e5ecfaeea3658e5a55464f491be0df86ab10d7fbf9bf7fbf2512d9977ef1816758ec374b96743f8d3d81e486d1974d3b3f021489316f58cd574597e58996fbf425cafa7594a275a72f3aa5a9b0484d94a3aa3056619bef4f564ea34bf31576ec0bb23c3046bf2fc6078565530f62c49f08c212c67b103c6aebee15f6ce38293821ce56c326f0ce9e88b0c306c8766ec8edb81ff3fb11cd200163e79d68d9848e727c715b727aeb9974f7ed5754ea680301d883f471b8f34804c6ba5c3aafca5f7c75b0e10d2b4250668a5746de02099c0f4096fb7580bc4174511c7a18cbb47fc65f803e2aab7db1881e61c42315925c9b21490f80a8dd784c3beeb273224a2ef03a0d9db86b031439f0e2b7b9d1026020b85341dfe82739272d573da40be79c19cadfc9bd7ad4226325db8e1a8934b470c2aed790b807e2cd7606defb6436711bf53e2d7b21adff9d77a2082f184e626b46e9fedc2db3d2630e78770cc867deaabff4dce6c70837f9f92e342b1887c35a754e2b68b4340f8c7c991fd3f3ebbd04bf00c86d1518741cd31015f8ee9f64e1bb5de8a4d1df78dd13ebab63f49b0fec91d9ef086d4b7e4410bae16af822eeec08e3216f4cd0268e738a0d9d939ebbcda8ebc46d67d173cb95d25bf86da848569a0582e5ab1f12759ffa9cf5d88eaffc3c4c30fbaae41d11fa76853c647e6fe32ec09a928f3b1671ee52aa367e3ff50fad717d0a3f7c164e320e8892df1b67f9f240f9b5937ff2f3ad94eda3e6b2eaa80edf8b7b31e6c66cbb064f7791d647e49598538dc4866a6fce1ea1f892c11a40718670a32545d1781f84d5771c8adab1bc2a2ac3dab410f3db7607029aeeb1798d3849dd82d6b7ca990be426ea995b20d049e4d66563ba01a4733e06446f2239370da2b1c0a6e3856c4ffb24180b8af98996f843beed7bb572dadb631b1f5977439e2be8b11e081ee894adc7e62a803a51d83a193424572a5af88e40c62fa10ec94f4ff8853931d3a0b616fd9485dd20f78255dc1c6157228a9ce96bf01fc7b84aca888b8e7b844c11d6931da22e8896622fa41e18cb070632b93f4b3ca004ddbf6a89fc45bff5c11c5c95a4607f0dcee1f602201cbfa1806facf7bab9f4aeb9f5c053645007ab3b455d78dbe2e25407960d625b5a7c7b881316648c849a3012af7146813d895fb2679e4de5172783872e5627b62431223107c026252bb67131715f504dd384a9517333389890c7cd29198db333adfa8fcdbf5af1b841c4f60601e1b9e3e72e18c738d905352d838e25f95801d2990ffeb955cb629cd54ad217a28f924bf84c9d2db588516cd988eb4145283a3ded08c0da413f6083487674133764e3a7f9a57084da7668c0b946e276eaf4646210c6c26fdb60e716b2c1d706122b650d4818a154fde60089b0f8865bd2f374b3ccc78df8ea507f88ae713f4d1cd8c6ae2976f7d959c7e962487d94701dd172796b42d485f35733eac7f375ba8b0060bc371e6877419dae8dd4b7e329eef77076ffb742f86aa84a75ca80e7e46b79987343e055e6f5b38dc24628140f55ccd22c44e1ac1d66fbf70b249d807c87032269957ba9938f5e2233d4dd66d01c3e459ff5bbc59fa14c40e0fc76574e2f80f7951e2949dd1da1078cd367e3ed6b8cc36c880549e2595e4164fb27829c89becdb72165eb82ded7a75f93c810f9de11cc3e06d9a0f7f4ce7bb72638fad64aa1e599e77716b8d26e2ab9c6e81ff28006a258b1e3bb1eb3cea355c145dc7c65205046262acc28de1f33a28c5ccfa99fa044cc961455aa44392595936ee04648653ccc657b54b238dbea6e7b90998a7a306a7f1fdaf9699362555d9845ebc7752600aa69c9161f77b6dc3187ab2b1c9200687396ef8203eebce22954e6a29a91ba6c5854c323b25c798ce3b33dd6ec246fc72bb59163eda5128d4e6962ba11ccd32c127672dcbb484690d73e05adf1550abde39af8366952ad547a64110c917634cbf4a1685dcc27e1da1b38a2d5f20992e0988c3fa0806eeaf9605669fbf7a2707cbf4563dde4869615abae4c0d50e0d78f3e3cc782388fad6b2ce913ed808c4f3688dc043254b0e913c8d6bcb6d90163cff669f30c2af8e6fc8724dcd2eb00d6d73a8be3d00e4eb6f1e3932f5e97b041462a7b4716f756e1b5fe8aeed863cbc58c7366d4376b463a06714ab6e7c6db4b947fac54c39462ea9e2006e5a5631de78acfebf77deef3e836361c0a31cd2346b7d4eb5b1740fee0a1197988b1d4dd3fc282d60234981b76af8a150a3501046f615ae1683152125a1bd0901dc6fb8444d6095f03751406d5dd799a1d09f26e043d6e6d441fe8ec639bd9d428fe838194e540fe33e12b2dd2b69a8552a44d05ac4de309a6bc55496ddea34046fac0ba99f4a08fcd9b97df8b29a539e414c4c0fac3afb86ac1927ab06ed4e4e103e70d7d1bc8ac9985454643f89b7028a44d9048df62fe7902f659b50572c856ef718720c83b009d9aec25582fd8809511773b62b817e575d9edc1e757b28a35f897f12e5c7ec0efe088fac2d1ed9ea6dc0c31844eded828e3507bd09eb4b9f52c4a1b95849ea6a9ab6f4ec0b0dba5d9cc33112ed74fd60f7a2dd06ec5017b8f7112c200c74b285a8d1b7a2361629dbff3479ab84df8f70eecc732cc09f3538ecfab24a3f34c26e46bca5fdaa66513f345d20d93ebf44cc903bd7b14e7a7f614030d0f9a287e6550ae055df68f63b38a5719033948af540a794a7d038bab6717d35deb7f4b601036de6337d7cf2bf54ba04a5bc7bdb9abdff94168fb1d26fd6b607d93a2f109daa5da328e41a7f9dc56db983ae8d3cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56c7a398d30665f67d9f685e144476c0de832c19b9ced37215982a7e5a8620b57290656ee55c64e58e5a73aa24ec12c8e673f1feae56b68230d6067b7a8993bccae08be16edf2262b224a99fc8918e4ea6319b3a9e8f6821d023e717826864251bfb992eadfc05321955787a4a609e307c00383812ea9b030ab9906c1c433e6a1d3f27fac82d1c6521803db86be6bf470590cc76ef60f35c60ff68ccc3f871a131c72c370076003f0f0770c8b0ddfe4be2c9338ead06c792de1b4140d5501fc940aab75bb93e8e8a71d27e457dfdb451db4280893fc788318ed3310251b9abb5d70982ab1202f44014912e52922d038c7b7a005292b12bb4d1ccd417dafa0b6a296dd20816c9b6d5ad533e5d9dfb95cd917c168e7db9905b4ab69483fbdb3b5205f1e6f33af887262154701a76a9c0dc02a0758b0aff30ab9058dc682d80b10f88fa743d20aa3a24d7c71c023fe271673c4a87928ad6808ae1312ef44f748148ca6777f20e255e0afbbee50b6b5711ef200e187b758a66cde030e55dfd8cfbb875ba12efe13ff082f927edafebc42682ff5681e61fae41057e2916e1f2b3e73201f2e46b1fa59bd296e74e008442df275afaa26727de8049b328c1140fe25a6fcebfb33ad8e344750fa1867e1dbd89748013cd7ad2f8c6ff41b198991af0db4521e1692f92ef264ba175bb6724b628ffb2619d489ecbcdad97b9c9d2dd11b07fa0810a5fb56b818b335d901ded9418a45fa32651a5cb5ff81d033b0cea732758a557b6e31a04003b5ca235931cb9a1aea86c94b8bbbc2d9ccab380e954a60543841d86b441da4c63e4e009b7115b9b9bceb2697980cf3ebad637a5e6f0d979c56c9274416684bd397655bae2808b5545644e3450f37ea1667794de4522a3c2303537eb1aced93a7fab2087d2e578459f69515033aef9abc01ebd5991145c14391a48dfb8ad3ca335387e86cdf43dff216d5a8fe2e551fad35dac46e66f6e3325bbb2d6a097a8cfc2851b3b04028ec37e6fd5b890ef30dc74f07e5512522c867a21fed711a15a77bada38eef358a878965daa56db155a7a9b1712fcc664e12358c8d18675e24dec81a0b5bc519aa5e135e88c70f6e6568e825803604f93049e5d2c48c35fba87a7879d7a53c45795d1201b442706114bd5eca64d0f0821357aaa8fa3301ec229e0bceee647cc4aef75f2b9368a1b60552ebba538d0a40fff1841514ce188d11fa51cf46355d14373496294d675ea5b9f894dcfe518d5e703a8ae4830dcc9382f4f10da514d6664530a6bc622dae75758f9b3dc97d249826c4af4b94a26c2f4605e4c086a7f04705d36ece8666c8f575a817622ab6b695cbe18618817b5ce177a79da922744d7c1a149bd161276f535ec550dde37b478a1014d7f45f34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2c909d23baed0f42db8e6b2743d322fe1befca35326846c6f27e71a01a526f9dc75d5152ca230ff717600e760fd94e3addf763c471ac1f315c5f1db97d97ebb756e95db9ca214de39dfb3d146100fe450fbeb05b5fe8ad499a175e0c5a24f901c2d36a0d3da83d4a21c2350f81e8581e271e7a720a75d18beb867bcd924287796ffa0fcc2108c8533ca79f601ce90acfedb0afb0d43d53bdb37be69afe4d6c51382feab78095c51db3b6ed20f62f38e41b5546d7ead75faa5b4f46af5604549ee081390441f6c2bc11eb44f13f327fd188ac73f4ac8607177908f06cb1e63150dfcc9f83d4349141ec171f99bf34dc22fe280e7f42973cc5f7e621aa845576b86bf1eb926f436280e4e3714bfda069790eb32b3b2287959706952d95e0e71ca28b1d173f26bd44cd30e04a458f81939c999340ac81e244bd61c072ace38be403948c7238487d8a4777503260cb1c3869caf28cec627141c82344814b02c0a35e22aceacae1d7e9ec474b38a7a3cf310593e1eddabf29f668b4c08df503427bfd65436067c88594b8024a2c8e8c235f0cd64f6c5083e46cfd9d3c6b0931fa434755c5e017122a5eae671670759ec650be761687a856f65208b27545b40e885e68ef557a2fc646b0813635e79b00d1f9cb8126f267f7d5d2d73e06341c5bb9b42e78a5b2a001f54aa58d6a179bf349e1c4defc8d6812dd62ac1bfb9f4db991506c6daaf898ed3bfa900d7375d49f48dc72c68e8360ba8c6fdfc5673c65b131c916341be00d98de520493ba5a2867159549023b0bcb59f18d04c143d254cc77f57090a1b46955a14685abc96d988cb909435d21e57877b79b28fa0c538e0f2c75882ddbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401da4ae6506f4372204ae1bba0a7eaa9e46b732a7ff632d8ab6dc31cb14acd25f8096858eeacbe175a60a70612d04864b738b2c13d4325b5792cd38d2a0b3c281f17653e2d3ff9bf0a699885f0a8348e6a02458222d60b9fd63590840f572cb39992d7516f4a59f86e41c77b8b3753417a2931b43ec8a578b7cda3d05f9ca6952a69971c446be1207f81ef67388ba7206d10076e17fb9a5a773f601cd243ccc510530ddb046fdcd9125dec6f375664c655ac4a669863f544ad88f313490c08b5b835b8f5e80976761c96d55886d7b209375e91d8fce830fa409f7c219c46429ee284353cb2e2b3a62844a6bba7a9758008e26f2d69e8e370ee9173b1560f3288f5620d1e22bee18f31e423dbfc6b1736831445ac086279ad549cdf59b60ce7ed05bc826c72dfed65593b9e9291021693b3fe5b06d1aff6f0c3fd87fae9238bab602c74e894ecf6f62835db74b4a40a1a0108a4fac847036bf928609d36235fabfddae3655e364564879dc90aeb6edac6e0534cdff3cc9f056977dd061887f45ac32d503dccd215933addd34f1f14a1676a4496ffa804c2019af0f0b9f1c89e6e6954b8f1203cd71c25497b86aca7bf61a925ea4b0bf531b72cd4611cbbbd59efbc5b5981d15a3976c602c1be1c1e380d8620057ba4a39751274a60c820b16556fca567ef20b5c948610cbc2e9177424e8bf119f8ffb7e29127a0ddd73c230faa6dc41a3f29b3f5c1095f6be2674b8478c20e0d7e69ddd56adb0ea9a9c3b52a721f4e2fabbd20a51dbeeb6f93b05e330f92e056ae35f19ea292d624434d40621545a44e8c51cccc64ad974d29eb7bfa2b48822d3c59256c2ad4cf2614a68d617d9584bee84706e3e511f22883e4462ff36c9c7a1d392bfd6dc5fd464ba8a135f20bbeefe6cff47702d41721799726f83ce406a7833a94ce3db71793ab9a65460d028020f45da0b6d5add5dbf786e62d0f7ddf0d6cbcbf63fa4eaecf34b554f1a6658f1f97d709bc7334c3ef56b753bbc168ccc26f6dea37ffac38734739234129ba9ded050f82b43eb0a97827d66bb8226899aeeafa6fdce79848dba51f72b2b29d52784e383ce6120f3eceada2d4913fe68439f0f01373fce2528b9c2c57f7dea7bfca2413756b2a18d3b8650b76465ac7d9ddc42382503a1f8908f650e08f73b40faabc3b0fd577bab77ee42a211bd7b74837df97acd36026ef6ab856a2922486319af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6ab39381203e0c8047871a72ccf55c9e377fc789d36ff514c46ef2ebf3d544c49c3c0b05c13772af3f749ac3064058c0da5bbc96cb80d5eded98e0872bfe309bd75ccade26097d318fb758abed5ff39912ae6dc993310abe249c0b609c6756c3d9ef279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b81931e59c0625e7645ce86013019a1e8b554048b27ea4458c46c1fc2bcac5dd2b1fdf0a0c9bf3393b7cc46b6b1b5ff2dc9bb3c7d38fceb398fc484a6775b99843098a4129327efc5923daeae586c90fd98b4cf305a49d488bf1a28eb09a87522e3584046b4916bcf0342d8b4c080b7ef61aa6c423ca3f1eac6cf9220fb23b9230268c245c21d753cac86eeacfd6454331105981d19ad1c68a4e75c6ed0f3004b951c72b0d9b7008eec7112d14657bc54557b9011157e278e800d86d3ef644e2b9024d64edff3911360bdcc2fc34b3373ed6ddd7c1b526b01bb150b4ed360b9c7c93838f448e3b6c725a5f8c69fabdcd0635076b884cd14903bd102b2d80527fe44f891fd89d80bd558d93c93949666a129f2e785165af6913d3ee6cc0211c622e1c7e7496ea8d2bb0d49ae2915b12cd2c5891e3e91dce823168d030cf7cc04bdbed9873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b459d008de14bb1fee04a35ae49e5545ae8095d1a8ccc354f95293cc2b832be97ca5312242506b8d70bc7607cdfcf8021e763c7e853b9bef3ad4905e4ea313da685307dadcc494466684a7bc3126dc76df5b27f0186b684d0debe60acf3bf5b8c46b0cf8d550bb69119608ee777c26d48d2d7d5cd368222aeb79c381dc3016387a5a8a460b3648f4e8d9a45208badfb76056ef60ed24beed2ab3c6681e100455393a63e2269b6a0e3e23357cdb51161d990b1de1fd12d304a974bb0be13ca1750f147c5779e0dec79216b17b8aa24245c965eb288b9f8db860fcab69af8abf2678f28723ff25da3450e9e5e9a5b09d4e0e1bb3e37b6e7c12d18542c9f071c9b2fa36765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9f3925f3904d2089cc9efad42324bf0ad49ec05d637b265230d8e31d8db9f662e4a2244cbfbb47859ea86adfca4708f92610e5cc59b2ccbe31eab47c2edeceef413e02e6b07c4f5ab6976051ecaffc1e3d9227e708fe0ee0af738db7a6c073b02a795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedeccc15746b56f8d7fea5a052f012b48fb0ae19360c11f1cbfa7678e2b1f194f1571e90ad76bcfe9bcb7061d3265a0ad08925e5d5724d9e63b8636c3e876c0ba43cff5aa32759bd25b9e7c2ea962ba8cc42203579b2e91bd2473825ac91a05cac2d0edbc897c10e9e1082f4e1405114cd8c0929429fb0b7ad86b37acd6ce03f7deb60b03ae256148bff321813b0b16f647f3ffd9e19b42d3a591e9d2241f4cb4b22851cd1638d72118a9dbc5c180bb6efc2a363c180a9bf41bc8a8c4e8a8b41bca4e2be43d0cf890ff792bb1ade093b3bd51b72beef39a5786c52a67693a6e571b65ae6f4819a232c1257a06566f426ab5564b2ccbd9a9934f1541b61292f3a176dff145f8551eca72cb79a0f24b95eac3b97a15ff58aad7ff1d26357e59f111bd6e951def8128fb0b539c719312ae9acef4ee8f14f36b0848f7ee45eb18c3afa6d5246643597d98a9039184be8a28451d287d675314e34b83e567ccd6d00fb085588e36cdd41318ae4f2aec931182e95a13f8ac2049837f6e60a6ed9c18e97dac262980ad2d3c7704648daa5800f095d6e862f79d4b1b84a80470b8d868bfbbf2b429c5e51e9f0663a29b057252012be8682301a83e0813731ddd3800cff96b037073fe50d5c1f6629ec375ae45f7be412e5fa8152fa03a70e6f121e3bc9b7d21ba4d225bd41b115dae37b92803892d8ddf57bd89fe544d051e12ac0be39045cb5118aa62af31840efbc41236bb009ddb75f732d65d74ce4b6fcbc7205f68883986ef33e8588805b425d492cea4b171df8d491e4c78acbf7ef4fb4f04c518958a01ff9882d75059baf6d1260baabeb48ef5b2946bb065452c1e18f10827feda5f9af12def9559f1ed7c56c23c3d0ece44534a2920b6525819148ac1555ba957eedc238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7fa2bd1231f214def9a786e3ad756df7da2b51a50364398ac509778baf79d617d04ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18841c8b6db6f3ef37a3da7c68e382145f4ba546242ccf479f24552987856cdbf14d9ca73c9984b439e26df2a16d424b0bd215f66bcd47016207a7c903dbeaf4664e39092ffed737305e467ef97fbdcf61cd718ac838a4fa09c1514d9b9e55ddfc43710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31b101d34f71bc9cd19173a240af5a2c64fc09a6360948b90d1b40a7f0aa3d29a5417933b3f0ae5e64ce7cae68ad3be325966d39d3f7df12932892f678508e2c9fd87bd11632184a5d4faf3025fa193a294aae0b2d2a18e1be1d95504ef727a161c8bb4b4c9722f2c0f4e30b27c75e24377e525bf05db0d8725c71a71930590f4d9fc6a28fbde1c4ba22525aa76d16e573a8230dc7f0b9fcfdc28d7bf47b46896f256cc2cd88165eaf5a1674cb42f55f5d87390c0c1625437c260438c76985a6ae92e004480fd63000ff2e31ec8c7bf3c6f8ea1d4a824f0494dcd612fdb610b14bde752d386fc98c48aff1a57baa26f4fdc6c232d8e451899fb6a673b7b0be112003f4d70a952dfd6ea7a1fd77e28a70b94e05cd9816ea3ce6da38d6095c6bb84d68f1d7e14adcd9ee88cf25c1c100d7d046f3c331f99ae7ab870280671385f28e729a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf65eba4e9db6903e21af8d44230877ea547973b370ffbabaca760f6525e1311083e43bd80c454dee24e899553bf6f7cd385a23fb3b93a613d5cadc075879b869832334fcd68fc3d067e59b8cacf9232703cff2bba36b0f22f462f104353997a040ec3252b17ac95a2a6c2d41b8bc8c282372919763149f858703add7d103fa55f5f143611012cc7e3735e99b5e6745e2d841090e45e91cd8a4a8a7c847ca32e78269096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b014c62b6b70d23ea34f28b845d1a969ca4b1c8175f78222774855ac3aa6f8a690b586155c0df83be429431ffcb0608b7c328180425011a00597498ba1f5a588db056c44cdb435f6a1f3263541fa3fe1cb004dca9848cd8d5b591e6aff223149228836c92b2d006ddc5a163b5590220737e3e5c7376f7598a3fd2f3f625b9cc1c0eecbea9b45ccb5545746f98e4037c541f48f994c46674dc139f10d7eafe7b2b90416f88bd8c31aff889b8424eeb05b43cb88687082f5cf145c41ae8bf546eab45317e269b02078077e22e79e7399ca4707382cb684e9eccc8f8d650a8d31a3329d019b123e504e008eb2624ced96c52e60c4e5f8c55ce68e4e382606ced23b2cd0762d0d9d24ae2a7eba2bcb1dc8ca8b0579e9874a13562e0c089a9e7dbd3e7cc1297e10dc0805ccb1ff032f3a3d04a5f55bdfded4754ee7743b5df1628c81b63ee6ce2cb2e672498b518a56110a0d725921a2e082b00e218994841663c0a305a3b9630ffa5cd96abf3abd0bf232d03f8aadbc1382d72e19d21531c2c8ff1b1ab66e56797ddfc1a3787d78e7055b551b73403eb526a845dc830ab8b4a4adbc409afb32f38dcd19822171a5e98d2c697b55056333c2b5a5eff32b697864b1c56ede57bcd4c2fe437f8ad89ee5a1781db9dd93eeb6ff0912e23634d29d96f0237685e2f1c973091640e309ac6e3c66166de82dfb39c2a866672320cd21ee66ee2ab1d49e3dca20f730fae2c03ce02a01f3d1a4b038d596275aa5fe7a58e5af4462a17e0016544a8532403bf11c5c12b84ac2e41bae3ff86dd3a6cf4d441ed6a56a455bc7f5e16e2f90148d6aad05edb04fd253ae643c796c94cea48eadd9c7f77fc2f0aa8a6631755719496d1337685f7c3a35f32abf35b5ce3d7f0ba71b9e11375427dcf88db454747fa6416b50be91dafe9c29104dda1c8d0e2b2f6efd649a003296bdef07f50eb063b937c54adb08edeb615694286f3aa852fbcde925983c45b6157aae5d02448443e015dd133b86be1dbc1c44b30715c739e3696818e2778c251d9b0c9fe48f89566eba4c3006e5d67996101ee5ec0840bad49825a6366152be46b5135c04f9efce7cf8ae874228a1f33b80fb6d6c5fe675f3a5bc77e5afdc4bfd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f08dcf681aa328c817c070cfbee2f94409760dcf2f72a66c7a87980079d5735cb34f703ad89e8305e0237d451c54469fdd91e21028a80a50e158eb641c84a258e9e8ad9b4f2ba684aa159f0fe9703626bcf04cd64accc64838fe71ed5067978dc1456a16aa8b0b823af422f4a104582b44178f4d4a112f313aadb2b31384c8a7904eeb0b253cc63ca9ccc709dc59f6323e63be98d8cae5e2642e0a131350224410eda368917f33d208cd6867930a7119519ef1181373f7e6a593576bc07864306afb83e96149a56bf3d085e268391ed28378332e1b130023e740a34a7b3e826faccbb13a8b1224867f3ff08078df7fa183b6efbbc68323aaedd1214c0d6de05b80ae6b4ecf034e52cd897abaff1814a659c5083aae4d609010ac6efbf36dc406e0d20e4938c9eb9724804c8bff9e00e8564018f5e6fdabf36a86a3510440108c0160f5aca3537437e34936a6b00c5c467c44eb747c94065cf6938d4aa433f50f7728e438555de7ad7502c338eb97fdcc3e4869f5ce436b2417b110b4caff907cd525ba4d1a191fc7d1a96f1698a2ea141b49d16c32016deb90cb6afc9f16fa08943a558875e65228f1508a21dd610502076a77b0f681d99764bb9199708bff3ff0c7b846beae2820e69d1dc4046ef2d5bd58091e55bea962ef8ce4773816a87e275418defc6570361a2b497afe14664661e42269109e2995c37c9fac34a2e3e174c561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c80b12582ade092198df9ba358ee66321262071071dd5690e0a486cacb8a705205b60f4222e465a10edb2a918bd6a485600b9723c5673eadb600c5b64c692b62aeac0a27aa51596a664bcf1682eebe15ce8e68bdb8aa13c5db12cbdb98dbce6809b71c9017ff70b120872ad84d44dc8d4d3954845870e6b40c6767cb7f5e8c71fd2312bab8eee6684e3de7e6d0b6c300a6d93c01394d7f78812b3b9452a3d655c3d01929c10894e39e745696c316779c4ad18f64532cde25b1a1cd3b66cb073456d51fd7bf77b6c099752e2ec536f3500a170a6dba06d3526267fb00cf888678e67135dd69a551a723650cecb7718cabaeff7183681107af0443e5715f9b200bc24c8f4ab44de020f68511a5dd53615fbedbed923229082a24bee46c127331b8cb341ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361e0b7f88d39cbb47f9f8d66fdd0685245c4d0b2fbef8fce4500bbe1b9079a4970b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3770e8b3de4126adbbdd93dd62163cf4881e7ebe04f9577ebe9f470abd19403be94beb522f66876030f4852169237e7efcf97e98bedf1b703a337d9090941d8fdd46a76cbf0846a3356b103c6ec4a921340ea69aa59b1c2d3b5908d159f152c75caa8a2cf5b3c84f14743c7cb8fd279241804976875de59845e9b63f2e308d9fe91b3b032dffa0f68c7bf7ac91f2f635b5949223a4b3083c97e86f512bec7242c1b44d5310b82c85531ab7bc1628689ec828bf3ae42593526287080ffcb94f3a884783d4c370c0df2e6629dcda7cc7e82723eec4f76799d0ef013ad66a68323b7d8ee28d81cbac792ad68d8ed06c1533daa50e56377c52dca0d05266172ed988533843bc144c7977c1175376d4d6548ac32bdd084f93ccb69174fa42cd070d833f5356c4403d215c6dcd618c9d29c85e300a6deab3c2dfeca0557eb5c28c4b83637872e8c16ea2be47c17c7193602e2e5bae1bb3297d75183c97b344a1de5fa56aa2a75e087bc6fd77da868d9606ffe462ee29a18ab8f842bbdd2c9ca14c924e50eaacc908b958c72858906c371c8d18d9915adfa759a6d4e3dc04c9bcf6057c9e5cb4ab721eefe488404d69167151bdb0488d8d41ebf11cd916e1edb745376e1437baaf8eec23065540fc5dc1d48fac46a7e9713880a0afe5f8a8ff365c35cb6796d12a4c79fef5c6f0c52f038c5b5753a1d678c07a06937fcda40f48bb10fb0bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc7a5d6d4d6dbec62555ffd1ed2463748c663de51ed0af22b7e45d31519de6c389764338c14445fe952197c813fcf19f337efa26b83f7adc0c48f48925533e3b302f605ab5c0e02c97f06bda62407a066b2f95f71d2591e295a7dd3eaa1fff7debb0ea2acdb5d3654a6f1c5daa50b66d3f281fb46b0548426a70d245e7000eadb0c4e36b2c68820728f360ed225b7d011349f2d1190c5e46484fd6a3a1f7bd56599a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523ed81292671a0e73d69b7f8dbe003e7929c18c3d51000cef36d1f203831aa74806144096ccc89d7de20fd951f07b86b246684bd1dbb43bf95f49d778e3d3aac23f7811d988843590806e67993eb372b7927f4dc1722e4bb33bbf4ba8cce89f9df6c42a2b57a548e185e1b925b60ce803a9585464bbefa142be855aac011ced8c14ff3cd6f97fe156060cfe5e41d81087764d7dc6ce5858137ae20ddbf0f9a551229757f34fede7795aaa8bd09c263840a5e5a92e28b7121d8e9ffade5eafa02493f59daedb431760f285c9d6d003b25f6fb235a5f65e5a9a8d6888680ac0c9286dd49927ae32ae90dd05ab18c9b8256bbefc705e2dcc04a0cf6ed218405609c5127fcfc5a021d147e30aa8464d6449b99d07d6b40ac8f890dcaa4e5e665cba5f7fd022e895e5be1a8dcca3f6890240b13d5e10a10d7e18b26edeedda3b0ccdc3133b3050aaeffee4825ce89caa0b07cf09a7b4bcc94aca216d75bc629059667533c4035ad627bf0d1107029da4a52a951e77d5b3393d4233eb75aa0c3b7201b856bf752753f0550d5925396b62228fbca5f00c4da96c66f179c00529fc41ab9c99e8473dca4e4e1fe8c7021206acf5ddf586fe2b9745ad3a84cd0ef25da7846d0804abcb22ea21f12aec51e203e7b0ce68e15baa50466a532cd08a7cfcdf7dcdf2dcf6b1a9bbb07f175dbd0b630dfcdc9022ad1fb2c94960624764df87502b91ed9445e6ccdef332a6ca1cf8a791902ea05f72fe9fc66173a9b6e4130cb60210f464d6943face7ee082d59de7717de05da3055f67056d39eb502472df4891346bc58692b536d14d75a837fe2335f9ecc65ffda4003b82e6554247dec9bf8e71a94d1db1e526d28715e680a5766341b95bd2b2a998b4d32e14c887c010819fabd428096d833154032b440e77d1ee6ec39698cb1462fbca20f43cb87a2aae139381da29f609e24ac3f2c7be36e2d1d38be61a6dcb20d6add36f246a1c15a2d379646439535a6445e9d871115826deb704aa1e7400de5b245be82ab80fc35d5c4c1ff61019ddd959193790ccfc4ab17e106244aaa3f75587e11c654bd13d8897778fb68b785ac1f1baa4b29c91b51ae0504273cb0f1a0caf58b6fff763641d68b6b7bbafb9fba9d12ace06f611529e7c3bc39ee33680e77884042e43c81fbdf15e43282b9a45f13413f81651522cbf193246a2ea03f1b272001b2886c9514c54f48b868adba21172eb4bcb516d176f313f3b129a89c8d5b7f6d86694d63379ff3603ea517145ac0fc6dfbbb6008d528dbfd8a571ad7e07f8c1b89b25cee3aa5295fe95caac01d5fbfa6abe6cc9e7fdb67dea8d42893e3171e368f3e5e80d21d7b855c767e316a591e18ddb764e7a46232a903e216f1fff7a9ee03588dc93e37a792f67d933b9229970951670306512cacc5b1ef24131c5288e9499f2bd8e900484113ff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a84282d139db71eaec0133f52fbc3ef244952e9770ab6a0c3224b3fcdcb30cb8a75706c4a3a32cde59d5379097d2494c2c417edc168864b26bdb065349c2bdfac837a60806ccc46d8fbfa8ba258cca149ecde3c496b9c1963fe094b7046cce33b8a1c755cc97f0476c446372b2707e6429814b861b05e329accb9e61c322bccdfb3ea918e73c85189d053586e45ce49840999d039ebfdb1f1f578288d03d58cf12a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855bdd938b1362b9418822a521aeac86398d0b33727b685ef6e230e76c755c81fee9c37998992de898358ab47f7b09034844da203124a3f862ea4bd4c96a6334f52cb6d2202359c68746df968a7c80543cc23b5d0c6806827380ba2997d724ba6e020feed56bced02f2172e9260607056020df1450a8dcd2ec9abb8957046a9ef71a51057ae6c5e813b744f4fc058ea7daeedbf756a94c1e5c35014beb8e8cd2a37092d6c35d5cf3499121cabbcbac056fcbe3ef63bdedf5530d6c18175c0946abccbcaef7912b5cfc5deab5ef88f4577d5b234c1ab85e5e1d1f9490b21883c880ce430cc751413d38c39f4212278aca7b7fa54d0e8795c18aad573ed440efdcd24c22044722c93608580199405678d8ec8cd23cf2ff73d63f792321f7c4f98a5fb83c17122ec1596a99830cb143052f657cd5ae1e8ff400bf3eb4d1fd9c11853d3b75f82f0740980fa015cf7f41e03bcbdcd8cd22b0adb429ff5b8e38ecf5a0de909cf6696ba384eacff2858e6ad7864250a89726c4017ec534e7a6fa3be57270522c15e61eda7ac3c9e0ad4e57770ae0d292ec5af8388d84705c74bc7cabd97c36970017be01daacd72831528515ef30f0cd64fd77f57eddd6331fbee9d102c583c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cbbf420fd490033c899ca258cbfbab8fea5fb2accf9033bc1479cba93c8dcbaab89aaf4282ad57b8c984b720c24a7b9f3af637bc6a47d4a9a49713dea594e6babd7844197485b5351859f0eebd611a9f35b4dcdb0675a6e6edd765709e78f0b5a80fa7207279e96086174fba8dcfe72660eb404480c2562e8de7875f669e336ad6f83af0226520e0952ebf27ee8cfc4622812cb48752a5a85a4155d5a2dc91590c5d8608d40c1f69bd2ccb74d1eb84aeaeda7db74409224d61ebe926eb13ce006942dd2a6d62eba38e8d8cfbc4032167e3e2bc698ac49e1785444ee8cb2754e74ed2e204c6313cf71b36924a6851f48ac97fbd0771b91b49790846633dfbbf258da7876a0b2374fe0658acf878fa1c786448f7c687dd17602768c5318f0dcb5401cbf2dc18df23ee2c14eeb02b1f779f726464ec9174e59096dcc327e2ebf7f67c241a358483676da9842820b74326dccd555a008c19a0ba134cbe4217a4d1e585dc3e021a38b0a57a51704e1d223d289acd19e7b00987b0aacd731bb9d22a8f3590ff40665377ed47ce2499db248e1c42a9d35e2868284b31612ed8d3bf28192a35ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c41dac8f98872581bd86d2240768329c33f97d37f4a4b53557b75cf00b6afb7a4881ef6d9cef1a834714be830e60385119361806f60fb79c186c1e7747d6c272fd5f467e098460b4b7b9e84f11accfd45a5175e71188b7987dfb37d99dcceb6f614e4e068e223b7c488fb53ea70d6382cab3ce9af327533ff68936938894df857ec4237f25a634bc119303985ba419c69424031ac9cdf57bd66ff2b09ec1d743438f7626ec6ca5f1c3117cbe3782ac41dd6d98ec9ac0b668ffac6881f1c881b9c3c9a844da5354434c66ae81c7d6ff3a214227ac7585d93131bcc23f645bb1eda4bfb29d052849e9e34868f70133b7ce3c6a88315b59e7efc361217861ca1e48b505add292802d9194022fe5434eafe4e29f77adcc5473b5446f49f0b37e7f20baa8fcb52e774d16efa508ce92ba5754776a3ba84635cc8a877cbf4970368e001a05495c8df16248ab5e08afb56044235e1ab03c45d447c4faa43dbab8096caf2a43486ce96c886513c186e71df0e32bd9daaa334ccf246f4575cdc9831da363a01d59daba64b600652e0e567a32a62996359b316c267a30b56b30817bf3545418c3d8505e4448dae071848563a03dbe56e1229c15cae2fed47e39e79b621c70f79c608bcce447a77da7be7f475e1865d6d795aef7501121219daa80021b9a5b13f3f988350bfc92aa21e23a2bdfc37959789a00f54fb7fb20211df7011298c687e665d43c1163978f436952423a8f41d5787c7037d8c0d3226a50a9072d377741188fff5da07bc84cd468abe47d5db558b66e060861211dd26f1baeb47548427d55a2f83c6cb8c6f4ae651525c699c1a9471c87dd4509ad25e7254db5062c86d37cc23034c44f88e88f1a9093c74566dcaa5db6d5e0d6b8b2de3c8b939271fc152d20e79615905121d980fce48b269e94bb6f62c25cfb46e58c7fe14576946cab2888f2079db7185150388a48f47bfb3f02e1618034a41323066426308d84008786279c58e7602aa47b3c8e696a495150b3ab6572ac7823a83a2cf901c1186086c9fa0ffbee0f9b2b2119a90f30d5a7e7878b002bc49fbd61af4407482fa756d0909a41aea5c642d5f52f7a0a23d967614c64db83195b710b87c110d750336ee104dba80eb28301d9b86d01ab2f27c5e1424e3a505ff47ed6ddb8980015957535f57c30ce192b61b468ae2de064c31f641d2982c5972254f2fc42b68cc83ab9b44a525c673c33603e4e77bc24d156c8d346bced7003784ed2dc44f4db43f6acee0763120aadc9a03abc9f84afc295a1ab7e940415ee3d26da585355fcdf0e03378f648a2fb3673a5f7a91cd17850941b32655ec64c314ffff8c2822e8b3ae1a1607cd2c1b9f87687875c1eede8116685a48147de137055637f86fdbbed8fcf1893226c0bfc1461bdaa39a206a0fac0c8de14b6c105d6b0eeb2ea4a40a4b9107eed73681d72fd60f6d0e45152394c7becbe965e1285c920b7a54cc1bb373c6c4d393d2585917560bc57a1a4f314e64374c553e5f5eea90f7f6a58b69c67c6b5b95929b6b82f6d0bd9db1136e1505d68134ff0266002db437868155b7e355af5ca2975dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f90db2917fa00a945133669bd1c4ed46f24f3eaff9dadd7732eaf38e5277826899ee344e0af93d7bcaceea338aedee62eb6f1baa2ea8c46052a7110bca75e0f0c19ebeb5f16b709fdf5728f8c0b225468b7ad5d662d6f6bac8ceac8c3a2d3c47d3bbea0422ecaca746530f0e647504d620e56242b9aba26c0acfa498ddfcf8ab5374b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c588cad20e0c7609029e68e96b001ad526933a013a9550f9d3d94aece7d03f93c5a44a9cf69d657510975c4be0119e51dd6f76d2a59036431831b5f9ea79b39c71c0d58ca31f569d50a8e331b01b0f899c10f9b4ce8129490f6a74826e0fc209eb69d3e18fa4bc4d51c9771bdb5850376f3a35fad2e0de520f392c8a0cee69a1e35d4b20b24f875fec58d6cbd0bdd2c8658c7826b4c1dbf70197b2ed1eb6f409c080bf3b4ff19ff0075209a2add76883140b8ce67814dace02472c798fd60172faed12546eb730d0160b69f2e1247a308d21238526b6b5ba58e7ad4d938656d67ccaac5a6f4e453935ab921be9d74f29d47856fce04d8860c28f0e6894849f7ca83dc3c279e42b7aa854cb125f1d41aef3ae9f5e1da72f9e54e82fdaf5ac3ae931bb292443097abed4fe0b0f3bb02baa7bca99153c16037658a616641a1168a05bba2116b9d7dee683295d12bba5e5fdbb42caf0b43c0178cdf8cebcda0d0255649112ec2ddf5c741ac46389b9d7af9a51c223a6576ba2b912908a256ab9b813f8ba5c10cf764a542383136ecffeca4c769ac1553a7c17d1d17b05a5b06d1b48f54e44e432eceb4b145b7b1d8459c48ecdd5b46385ba8e079762ab9701c8bf3d840900ab582d2dc5ed0b156e2be4700ea61f4111bd06959db8ee410373d9d6fd045e8acaf07c6c79810a54b93c63d96b5ef854984bcf3786bfe1e878e310b48c5abc0d7f02b785236fb0824c9e46f645b00f199d8f7f63dba2e53012fb8269078b8fa1ead8eab3a201d614d6747b22cc078a63cd2d828c642560712d4e05660742beabd55ca40cce142dc291436e32a6260c4cfaf80ca5377195460ccb7e2ed764ea6c07b357a98d25805fd77909115cbdf32ebf6aa8ff84ea85dda876c10932ce20551f2ee873c9b6bb3372aff7d30bc0ecd94f9dec3ca719734fff4709bace8b78025aa2f5fa1f500f7e2d043941630305e4657fca6fcbdd83d580a21272b3cbc9e6fd5bcd440b93b571455f6bba0a9688b19a1f224476f730e000da0e59f9ea187ae8a15d5de17cba62ccb7580219730c19acae623463e6da0f2807e1e31aa13394ed63ff5065fe3aa0a240a9cbf9acae4bd84075aa1d49a3dc3c8cfc0c50ed575e25280f8ae0b397660f0dd7f58b3482d4dff82f249253eb283892b614ec0b84ac85a14a1f6a63b467908735eb868002e6f7b9669530bad0c6ea7f83967f19e847d1f1c8df817d940d5d0134be07769fef7d5d80f935d5cff1ef9affa61f135f0b6bca402f969a7626eb7e90e40296e36ff4087a8c13ace15008b40be46596425fa091c171eb6195c71065fc20ba0c076a27f5652f15331104358d4a0590b57fa367267a066f0846d3832868b14f4354de8f265dde5d5262c42be930d4a2d935beda0555c4d9b84cff79eaaf3fa97b0be44e332656f767c39e3939562f027ef914a8ced5aac4eb4423fa636841342ac410e37ed221e9b88d117ccb21a65097c68bd38bd23666e01d5b65d4da0d1d0b1af302b0997d7790f4479bf2ec7c2ffc69a7fecb3efe2e4ef6c57a6a50e9a2f5842188040a0042a63ef8abd7f70bd3f8e3a0d0adaef30f7733346c8d99f224576020b2912a8fe6e43e352d899c2fc1b3450f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa0fc39011107a05f1638054788ed49e9d65533f29989ce54a4bbe8d89e73ce8a95d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2fa3d6cf351f97f403ee8128e55317e4ab17d88010ff3408bf10224deba6d7786acc84d1ad3e40648425cea6402468fb4ae5ede479b5314b2aacc6e164272dde80737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa52901602e11113f4cbe12fa3a2a76011643036f3accbff3ceec27b4f0687f60def3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1f63a9274a946b68069af217f81e270b89473c8c61280d4fd5dc663d46a00bc6e576cecc8f40d39334e3e1ed29274bf78ed761fc754708f78d82a7dad2e2814c8c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec895c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e0d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de4cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4747e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008f85ba3a086cf955d3b46e51a00e19adfb56c1b984f7cbf05137c6eadfdae7dab54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d7256cbbcecfb9a97e5c4f2ffbd8a11f00d9fdef0aeff835e167c5092117f843447a6c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835faf21e4e3f5dd5c44358c0e41840e73c7e9617bd6c5ef05ee30a46b2b9c0662597047cfbd663b2cac546ff55428a3b09155b8450e415dc42ccd6b71a69b29caa0d55104d7739d9fdb738c8151837b9fb19cd85b03885bdd76ed0a07c03ba35c1bf808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e93502180fb63dc404b6f3d32584692fdd10755edc8f0a2b79e60ff73cf40e689b4c1f95beaa07adb46673196bb1c08bf4ee53933aa9877dc804cc0f9987b7b95e3cdd00afc59e9206057f0932dac5790314d6dc7ced5c94af9a42f9acfb6a5f1b89f70accffbba31e3e106f3028e4a4bf7a89d132a89ef2f3dda637528f491fec4c8dbb5c90567ea0a7f75a58231c4ce6ea759f5e29f538ca5ceacb16f3c78f1ac2be1d28d7977ae0b82a58000738edbe951b187c20a0b54c805ca0ce1261904fb47c8d8061622c4a95bce6c890d2e51b43a981a457acd750388f1144ee69a8244e29f5f910c2fc5893f67ec402772b40b16f8fe7b372cc5ddff389eaaa0932e4564105997de2f4d0d5a13ccab7388532786c8a35a808a6c9dea709ff7be9e4509281e02d0c693b1cc06eabcb96de238cd805a7cb09fe5633070e35b1c675a2683878901f56930d9b8e3787b1d16f812467c34511a6f6b1cdfe73301171f906a6171f4546328c4df10c1ac6c22fb5be69fbde3f7a8f9e15b9d34f35fecbfb5ed78300f2241a65329b31ae13bf469d348c1793d036f14cc2504f7f62a2e95679e988080750fee7a932c9b3c6e74d827a9de03629b0ad00583e8c5d1d2c7b68b7d5875797d8aace815b1857fb23b37038e6913f10c6eee51d16fe7db46946783ad83103766bbffbcdb5738f96403b6e10c6c5f2ff905666956523415cba1a71b6f59c28bc0c5b2ea0d2b36d5f510f5ed84f197a9ecea5252d81a7a8a40bc60da382340d0db60f4fff24847f1d2afd080f35c028103dfa088be635d3f58171da43ae947ea72463670a6e809f09b675751aaa98116b136b71c26ee56f725f21dfb5d7441349453f77a225576ad14db5a4577b98eabd20125269b87c2c71f095c181eddaea3223e36d66fd5d3bf777af6229bca8260290f049c072d1c9a24b4cda2ecd40f17183781429a8270bedc08700e119b16b192b9a099d73252ac60f3c1a69353e97535133208be9e6da804f47d469b60e894761d093b6e31e61aebba1ab875477d59f58cf5d59c2cb1a9172deb7ada1eb274746ab7b4698da3448f02d31e650c756f21fafe2b8db12f8013d25f8551db58aec25fd1797db213018a38ad218039beeb8e76b5f956aa2848d6f858a3524944f1948a4278e3c9ad16a2bb6497ee9519d4d7b3626f60c441d937a8d5e8c1dd2438b9fd14a66fe9df820173e38535f6d4c6947dbc526f90a9a4a3c07737470b6fe4fb84d23d18022d39d7e5dfc3ed084c0b6955f36929e78f646570eca1b2a5f8c4c31a51586995cb1d8c395cea7bc9b65bb8a95c89c067c40c14cf501de08d566f6ea54f374f31bf5443e0d8a09fb12863c61784212e91d86844d41878558d139d81aa90e6e12e5d8dcde9374ca589e4db7deddd1b43e857ca648f55ea9055830aabc5a2b19dcf7dd22e356182d8c2397f11b56e8651b6055cfa6b6a379b3ab919d0c0b197258b380daf8f3879650ff794e1e297a6fea82ebb65064e79a05949c4e3c918a1ef6235604ea2ca03fff8a20618be406f8830aac63221f3e10a5a660def3e51e70bf8689e196945580220bdb243aeaa652f13919a401f721664beccac3513514d940f00490d59a910bb998a6c0295e37a3ae744a588216874db88e3a835ddfa8849b6fa4f123904afe10fb2a45b6431cf96b9d8984805e437ed508c6d593a84c918ebb944652be3b1904245cc10520fc2950d841c2e9e6e91c3f68ac0c6b9530aca5e575f1ba3049e5cda1033f52431dadeea805226c5fe9384339abc6093694d528d4cd245076a1265261cd00da87d5006093072c27a4609bc76a6ee9bfaf063dded723846a5be971a3f67d1dbd7bfeecf8a08a701849ea3d70028b6585b276279cb2dcb49057a484b7c6c16ce0056aee3b43a62af69c9fbc7b06e42a9ebc627857d637010387d0eb6e6d46b0643a32bf702c1638386c4f2fb596feb63ec4a651aa8b00389e437cafa1768f15c2076af9c69bc9cd431ac633fa10f70f0940858336c1342f5ad9b784f6086a3bf64fb08653034dde8d4de051a73ca766366b056a24c3e5ced00699d77b3246be15d015670815491be4592ba78215e2a22c0762e37e4258a32e13425e427e6454cecf58a4f5118620d7280d42cfad6b3f88a4d110cd2c38e6bb99740cc9b45f1a58df9c8f763c66fc9cde95dff28db11c33fe1215675e918e64cb809d7f8ad48aad9b48d437ad88d0f692874d396403faa16ecd31e050a6a7fde111766a8874d2ea1995f10779db5ddca0dee746c44087d0f9de9e8e472f5f7fdb64f15a6c35c3f87f24f31ae96cda9422fc04e4e0607e073960f35f5df40e7ad3570c2d8867438fd7218136e59c877b41a7bbc5e70a72ca9aded7b6abcdd04a3d254e2f7addd971707888d3783c64d35d51cbc5b99620f2132ada24252a1ef0ad9bcd11b58f1d901ccbb0722a3f930c401dd312e0e373afab776028722c8198bc334d9646d1ea9315ee6a0186d7526999ec492e2f487c3032c199f03b2e76886ca0ece9632ec871ee4faa6dee3e31b8a64e6bff99df70924f58385a522400c0ee67b17b3a3540de98805ca45fde956165bab9955891f49bf9ae9d635a7162638fcfda4ff8245d72317320a138e9319fa9beb0bd902269e3434894dcadb6b6fe3002a46abffae6684108dcdf326d96eb8703242f2946ffec39b6baa8f9729452dcf14d82cc28a122a2098418cf14ec395802cf373f4ac7dc6c4fa2352f02324cdc68b76d8be7997441d36622fffede0df2a686532b316b95a19af9b78e2389f61cd0448dc70784a7181a4e460f7fe3cc6130759253f01ae64d54aa0ee845b6eb6637221bd7170c235a67e5f7570f34561905d71e172f403c32004388225942fa13c9b9e9ccc7c946092d645952e6379dba6ef4a707641b809db35f77fe18701ea6a67d5c938c4119b970881f4f46046e6763e4ea815f37dc12b384ce0ec5b089232833fd74530310aaf676c8fb27fd302c8aeebbf0aab84fa8146df5d4a4f378f27cb459f5b3d4ede25cf1d01d0f186bf153d4d1b33e25fe93a381e1adb22ceffb1421d49d950e86aef294de630d4d8399d3250da4a9cad5354fc760f93c24411eacc883430459745f67f3ead970cd926f5f877d6567be9cdcc9165fa05df2a825a79e01fe8ccc035c76c3382acf8fab8ce9dcb4397334c4a17210b0866823eb8cef3ff7a619f366024a573b6cb4ff602dd0d2b2930a5b5dfbd0041960cd448fa6d56a25f18b03104cd59cedeff760c10b113f1a495f3a3b3288ae3113cefbe1fac3b52de020cab7806ff17d985c3dfe193904bb6f085cf19b15f4f79b2f37483ecae671700fd70a15c9436d4c1da45990db93d4fece8ca5c497233f7af32962f145378596584f6705fc77efd37f2fcdde388ad633e1a7d7beb93a1526c4604f712fd89659d3fd1cc59827e5fdc5a1dd024e7365d9bf5541ca0a201fb7ce8342cb9f82c42a5af59532d9690ebdcd3acae7c5175075a152b3fa8903ad47107b64192c6a052df607307df5cc13f735081e04ed611fbf60eab0ead62af40320ac3474774068e86feb5d48bac88479790c53bd7ce12cdb761dbeda4bf02de000abe04ddcae19ea41c32f099249c97ff6b405605dcc15be5d526a7533b57fd0f4150a1d5eaf353195b770c8651d11e56660467c3ac89526239247fc5cb3c482eb73067072616a053aa9b3a6ef050aaecb31d4e375e8fce9c6d910280fb579e6b27e74b1d0aee65434637febfe9e9047acc7a4c9019b8e8380fc2fab292acced8cc5dcbdb4c7716223ac3017ac180a9b1b2867a8f9c70c92801b236fa8f8d87b401544ee5d4b4baf4d5f3d821aba607b59d676a06c79faea195d8031a17853be889bcc00c0ad37b5bc7e74e8da5a00a481c218f8dfb2eba05a1cf670ea2b685932f6e2cfd0f93d99c120e8580a31b5090a208d0671f757b4daac2876ca5f37860ff63d2e216cdec45ad194ce65c2199e34c024abde522c989c0f7ec38949519ddc816c3def4a467bef4733334a5e74f57be18bb5bf0847f269fbfa49c571b2d96f62cd94fedd3548f7786ee6445db8bb4663bbb080b681946e62e96a2e20a830ee49a477cdc775e3a7b2c202458cb356b905329df18ffe2cdf8f745733dbb6fd6d99d7ee60cdd77ae05d73ad37e3855b4ea0a47b424c17a3a115ae1bc1f6339ee6ade2ff8cfe9995a31f7c90b7e26c4674b3a0e6454e5bbdf0afea7a1ff5957a6ff4fba1b18e8f0e0537fc190ce5b69c3416d940afc02cdd013c037d7ef73356865e53819fc90132f1a0975591425d560376081822b0ca57fbe89b5bec4f3e28d8945a91136422d67256b823f2546eb65d54176907482940e367206ec96aca0a3ea64c269ac300077f6b13f035741e2b7978aa0cb6ba6bc1488d93926ad4a03d477180d9abeb4f6bcfc88130ef538831a1745cca89cff2dc264be2c6b59c16925ee2d0b190b6d59d8f776cbf032a34a623027246301f416ae3e15674defc9abe1e967da07b98f6d5947e37e60e7b85b7c34a931d32bc8f2255a06562631a9fad890661d5013c59e7f4b65f90e807a4bddc887d4238302cf6bf9c8f660c549bb8170bdc46d2344d2bebbbb296d9f3227198dbf108bc42f29e1aeef964ec7de06ca20b8653db0c95a052fbc4c74306daf2dc85b5c43c4b27adca5067bc8c3e3f55d062761297f14c728aa238894ef9aa566086db4f1a6d2a6de3edfdef773429f221bc80fc6a05145682e9a1ad91cf1be97f5b80f875bd6bb05a79a9a0f730e6da59a75f2c4d8535e0b75b500921e4b2c47fe1a19f8b61a68eba8e3d6ab9e79e5d7e4d8b8c5343acceb6560c31535fc7f40a56583619498f981224d41655dc8730fb03af83f8b2a11feaa44555b75bcc5a3f7e568c79579ec86685330968e7e73ede734724c7de3ebd69c3b673dcd02d4f3a4cd7b480ce51bb3c24a5273b549ad0bbf4ebffe39e423afd1bac19f07d220bbe4e9980d348bc8447c3eda235806117f7a4f88ae8ec1bee8ffb2a63d4c508aaf7be030642094675473819cea52d2bf2d8e253d8a1617273aaeb20227583075e6ec0d66d08e36da317c554a5608ff3e63e286c45ddd28dd667f792ea10ca1e4b44b881ddac98a0c383af7c7f53569e4957555205b05c60b4aebeb164901cdcecf6f81f662890cb434e37f2d4f742d32539f948e06940275f28ff8e5cc293164bc0ce7d00b09896f47a09a330d0343cf10f6de0866b2bb6529b158b7045a98def133d73e58321025adaf0912cb44d3cd9f04d60520c3d23a2d6e7312445cc8471df44c96846b7a3fd77a3ceb018c8726464c2d8adae85a5c64cc1bef0b146376d5c186fe67d6c65f8c71790ac628638f91f3dbca425a14700729f04afd6ab79a4895b818a57a71b1b168b869039bb7314f66f3136ff914fb2f40db969655c46e3801e75f5525cc24bfd7bd270d4796c5d95a8fd03aa3ea1c2ece8e221dea52409dd0f32dd9fce350ed281ad3688592b0bf02914e3c778b0ad39b042d81f57ab84c763071a256cc69c352edac913ccc88d454efc8084b7a8f6ec5127c5836d2966ae6346fcda583e31e96602561a1506fa16db162bb468bb1150afea5ada6512724c10546d4e62addf2efe08bb5d429585ab9edc3fa654eeaf2abb74e37ea628555b2e63fac3b380f2e785d62a18d6dcf8f207fc09254ad055ed1e79e4bb4effd02588fdc0c0d409a20a46e0d1e51ccc7503f91968fa83b5ef494045257b7c35e005f55cf8a707865442d7b1658fb6d0db972cb97215affcca48cc01bce4fa5b465db1012d1006dcb7a4945c62ffa53f881e48c838d4ee98a652e11bf56c09210ec280561a7dc9e59f967dd4d79933b83661ef5b0d49ff62eadcfc2aa5cbe455520d1b1b0142690f5ec108c279a789e7d0678abc5d47f4cb3f8a40606f044fdf1eea870444f61665a8a4d65ab0d5a7cfe30855c067111f869b0cd7e485b57f14ba6dcc2af39ba195f7747bbdd6883e5a390e61fe1056101e182cc77c34be2281c8b1c0ef3704d2a1f7a8068aeff7a877503825c7ae2ebd4aa3a8b426a98f3dba206ac5bf3a6e424e7aa6b4654d5754a0f56336f689116d5b546e12102ac972171d9bcfa9318a67325e11e98980706a40014e9ce8e15028423e661e972d556f09afed9069d5f9fc905f5a7ecf19e0c8479fa686dc06cdc063c43e025a331f974861f95dc8268abae70c81ef23aa7923b720d5071abbbfcda3c5c5015a40e04620e343ac5d73f5446208b91300260b78d9eb9f43c9eea30c439caca804a0b8fbbacb587d4e920adb775d0b27d78b0b522c354d0b8fb9967533fb2fee5097fe12135dc758efa45a8d083a9f0bc9fd5d63da8f1ec351e86316f46b20ebbd63a60f48cb507fa98972593b1b7ed6e59131a88704f39df446bb2b910ad17602c1284e28301529026051c8b25a83bc38f3e80233ecfc15973593322f4e899b9737fccd6accaf2818aa347022bfdc1a0139784052bc628082a2be420a07517ed80a1c7715aa63f09dc7041a7de48cd00fc6828adf0ef17430ac7f7e314271e8e4ea138c075a7af3d78a616684bca5cf608468a1281d8372fd80687d96f8fa0b485f609c01181759f56653e1568bd8330921ac11868f9955a900baa7f04f9823d4fbb99be01320794d74e6edb1141fa868aaa4a30b86f5abfe352d46a52336aaff037446b4970d03d49bc03878009a25c953a2c78cef8fcecc351539cce5a7fd830bf2def92a6500fc51cf357bcf98c5ee012be8f51849ba42691775994c1688be682025a6216804406896f20989e4e772480f464bc2b8c3619744b225bc6faac57353b03825e02d73d7764242f43e4f5e6caab9c0bdd1aee6085887b145ad5ee1b7bd2b0921775cad331338441dbd5b3bf8e7360c612100a8b09c439719e82c44136d748cf52594f37741380721319cfb2a910657506085b13f67263261bae855b41e2dd5393e394e6370b4483dc5b009827bb52940e39ba11cfa5477529df7363698aa3e89f920e9c873c42b566d134cf448371682e8a8b998d39934de20fb58adefef73d5bc30b680dc9c09d419c6717bb8f49ae1f8faf920124150c4459c6d33933ec467807c6938d19d549211c53300e654103b7ac3ca47be8b812aac67257d1708416098c419793bdaa42e3e0564e99ba35815a5a053ce6dfba34b58bc2029cf77b8f97536d2dc0ae02f063957cdc998b742c451436c5aed847e19d17138039ae0397b5f2e6222782f71cad235162d4d863fdf3bb138acf9c75fde78c21d2f6446a17e4f1ed5aea87393966d1fc5b9b099edbf2df59bab1ab5bada92dab1054f44db35eff477195bb21bbf39a8c4c14a49c7de6b1266caf74af81403167132935c28bdcdfd2969667f36db3d66d23bbfc6abc8c181687d6b06624f29725d220d2e2f1b864a8cdd7d33afc25111ad8641488c18db36a111486563819993bb47530892ce08331db097b045628af0e4da172432744d22d93ac1b28f73566029f28bc419f48c64366698eb3f012f8b43fab75aa278478176d65c4a2ec7fbb9fc297c9cff58170a59feea955bbc309435c2c4ea8ee3a4044d4af6b30b6986de2aee0acb0834362d9a6a1d6e6f9b14e7058a522ff687c8e994dfaca8c228866ca5faade92ca80ccd9c62b6e12ab3678335f233768d2349b06e909eb9e45832a6036bd09082310738713ccd2f1eeb5aa6e23db5eeaa55c2da54fd3e3743657007d4e22abc3ee5745314fb4fc80fbb9de2e04899178d9b4f967b60955b43f12cc1d05ac82711adfe9a2141f08a0e6c1c25dbbd6209c4f8ef0b902099a839aec1f2e441b29e0818de3999f6966e62d7144fbc6dac35c319edd2c5bd14a1b228ab04c074dc6674bfa0b28af36cf9c41aefc627712cbb9e468b173d75c65cdb9f01aa589a503f3e3f849877f7edf95877a455875930788042175c704492ca69cabbf8b299c340b006eea18ca35a459fe2782ee9444d519e390fd6ea1c80f849a5daca8aef3c0ef412be6b9e03daf511c3f7381ba9ddcf067486d0e540314013cc18b8ff608be55d5652342a31bab46cb50b9f02fa89f16536ad17a071f925471454adc7435905d3d93fed8beb4ef918bba39f1b1d4020eb4f3b949a66f1b7eb3292bf474c6dad4677f6f166f3adf14bec6297034f2faa6a0d69a74935552df9a68fae2fed5e80d3740aae22bfc36b794b34a969d833b33c42db2655207695b5990633f56f57aa16e0d998a78ed76c8be76da932378bfea704123cd9f5da6a4adb9136fd460600a58e4069a08b0477a0a738789cf9b4e28c108b8aaf5297773c0b02afd2aef9c4ad9e5831c4a2f4dd86ea2228b47b5df0308f1a2c72675907c3514156c4f62d53d5b196ceda5eaa56b30cc4aefacd0ba07efbb0c17029b8f6affe0416a13b705c58a3c6b8dac538490b446f43c76b1a4e566fe3589501c8881331599c8a92646bfc5bb623f50754716b404d886e844ea42d6d59ac3a7ce2db5495e8d5674f6305133b394804045d4607cee727e66f2579d1c7c132dd9849f8e948f558b958489afd1df821c5ded95f40e71aace20901deb7f45907a72562abf100583217d263498efbda1bc637a9a7009d0245aec59f06ca8190bdf3405850abfcd70694a893f9560b19423484cdf3e5b64e5cc76531460466fceb6df7f3ccab9fb1e3b72244acb3d88b28b278764b4b566459a2f2808735bc980ac9ef80e1ea38fd22116f2da1923ca863fd270391d0ea67b29e7d4fc3bd264a92b6a064906dad60d2ae1473d63df29e5fd069bdbda7bfdcdbfa933aa84572ab57b869610dfd1b097d5eb14314b6776288aaca5f666193b4ef23a687aceb2007719d148540c3a390d8fa429943d9233f1d127686535e2e15e334e6e303e5744ccd997ffdbf95a9f4b126599f051c7ec630652022996e9cd0a568f471f8986465a78b4b5e53aaa19adb8351255c7033c8bdb54f7f500bf545f67c76ad418c827a53d6617fc179a2a1de1586f1749b1007366a649efe37aaa0b01f8d2be25dbf17a5bcdf9ca351fdd94f87b1ce7b25ce8f69567651ff23307e5db26a7c3d4eb96da8597cc9431a71cf3562c59b03f52cbe4854973ef64ef63055f65e5f3a35bbffde693a9d12457dd56c608df6279d24b0564fc253edbec3ebaedc97358491e9012a87505977a15e1d2777ce8eea404493b4d670852d6102c8f1e24bd2642036e43c6f0254267c3156f862115102c58ef3e64d928189c8d6410bbde6d8a89cfaa833812e9e9ff5c49ccf9718629a19498728ff7fd872b6eda57b2d1f87f711b1ee1b8e56b254b4c3b8fda0fcdd2434d60b89b3d778243c955ba63c4c4132c57649b3b2680d837e1df7f9a1753d54da6fabfb6ff0e8044b765bda74f278461d248645a4634a411b8727149d6a57adc69e3d736ee97cd0bed4bc6afe968d511016ce3815f400108d1e986ed5bfeb3f9222f3683c9647c4fc2e88bb674f5380107f70da543237ef701e0fe9f83f5807193c477d6e056ffb81db3b0112ce351df9872c9c13c81c8935fc6663cd0f607b31fd1ae91857e48b3aed3b4bba516f2c9ed5229fd74a837626be33281f0b8e1a9ba958cb62b7652210ae8e1c75e8033858880d912f4d36468b773bb21d614c1661dc1d22c33ff703283fe13d894240661f6f1bba1a62db7fd0962971d03e43850a1f9495593dc7b741e5d4098bf3d425650b712dd65499c37720b545bfd51a7a4e2f27250fe3d955cc9e192cc38f8f7b8cb5fef1df0f999ba8d9cd8079fb5ede51001233584c549c020aa51cd9175d04f01c1e598b2fe62f7cfcdf197c43ddbcc76edcbd89bc9b2f9601ccb151f53660a2e2853302599bd41e886ba0e889d9c25b9d8d76c7b6aa7ff498fc6fbbd5825cb9a7c54dc9c00904e6a3b38e7ae962227a164d1a0c3bdfbb7d164572de39a366dcdd8c3b19c525983683c585619e11c21bb0a14814cf5730f981b40e36048c37761bbd6706af507fe7c44169b498a59ab863f14a45277276d0c7eb95b71dfcfb8ceb38b30f9ccf13520b9e02b6e0402fbc3c6092d325d6f7cd8f442b97ab744d49a232eabbf719ae480e33cf6617faf87729f2001945c82dcef278b05a3a0776664b375d38163f417dc6cb2c959adc4139e4449a19d37273c76a16ae150060198904c34e12c04f783a15c1be7236d8e7eb6e823e51ca85d0f6ad922adb8dfcb2d90b367894b32642a6d2b1bd4adc9dbcd6e5349c063741d48b20b75fd7140c74e728372812c35ddbadb6b58d6fa1229a2b18ec337c2a5f1723c7c99a3e554c2ea67ebd0327a6d123750e62b7ecceed71911a16743ea91af4360d38a43cc7993d7c53bd3d06641024b43c03f70ee971dab9dd66158fc7621ec3369d4709526b7367fd6af3fc03d49ba73881ae57212438164221d3c8558819f9ca171bdc00994349e3be831efd988ed75c96cc7874f16710961e82770c0f10fc51343b43159085f4dd06d97b832a70820119417a7f933e543cbdf318f3212304d93a82d358ac23671ea21e638479a924756c1acea7d02bd93c73bb0e232a03614ac01c2689f2bcc3fb5071043039a69c02080b8466a75d799fe13001b215a56d3635f21469c4bc0b07fffd4de4337f688f53e1d24cc4c9ed8dbf234084b2eba057d7efdb4609395b5fb3734005e45ac153e2b95453b617c0e893b1b80e2a385fde3485c1f980fc2d4e10dee18d988ea53e6c6a3e899b8f5df849948f274ab364821b0738421cbc5843a442ebea35353addeb853c4e89549ac351db58398b0ca5dad49f85c7caa3220cb5f6faefaceca38ada0f1078e0cff60e2b7f36b4f32f2bb7ed40d8b472db13e92bc53140a64e6731c41a82720749f075c8339104e6d7f009e760ea93aa8173e6c92a614e78e3f01792f030f8c2f948338fa807556534e8ba9082b96c580a8e19dbdc5f84bcbd87bdb66478b021ca91fbce9fcc787b0d162fa267c211edf5df63ee585f2ec79f5782a63195b631ec704ab47edbc5c794c4004ba12451ac264a6ab1e4c635d90b5c2d1ab49d23bb2f4623b22de7b12e2bb732d5ef598153411d3b3124a60c954daa491b527c1fddeec5e68793dd969f00f0369bc5f8f05ca1d74394186f88efd64edc48c0e7a3b5b3093bbde1d4c5abd45bfc52ea6dd1279fd0852fb7fb95b432a78e229b76688fab54d71bf5d29b37e0d880799055053d846a8702be69227262e5bf67d118af7fe65c444ff31798ff4de0964619eef609b0ba6e02d0b3924e74ebcc46bcc994b45780e4070c06a1bdf38a800df76ba3201b7cc64ee68d30881f6a269835e1b5eb0e82cf055882f0bd21de42ba91d08a340a50513c7a50459e84d725572086fb5e2ca728ad4590c7f9b6fbb31e8e67de5012a200f629069dc7b7b0b32877294b26911b1b702353b114f0744e007180f4f31b19778990823477a4979e6b62f0955dc6910fe460fcb97a41682f64e515089172a2d704556e2b1f2334c7c0fd0aa85f4cbd7ef73352a7953878970d6ad774be990df64570c64f0e2d71556625d28a8befc3afe79f4eb9f3a273a3a1cac63c52e744b548e482dc36ea774ab4f0174fa217462607e44ecb61dae1562d23ed80353408efaef47ff5c580f390766beb07c3b0ba403b8e96b15b1a1f489057a30d2589aa08cdafd5ebdd3863a05931f4975b4119136675a7ce7f41c1175c495268ec0cf517c11d22565f0728e00c891de5423a08a9df9f4704248298f238e1ef5ede2aab4a0be954f1248d51cd049a3629428dfbc2c877271a161dbbb885cd3699d1bc02f3f593fc684704572e03dfe79fa586fc1e0a48f7926763d9024d1dd5e2bb2effc2c69a6ac10c3002326415edad1b90d6ef2247a94faafc950c52961a3b6c8d10610399ccd3e0251a988d8f0ad155de006a5d51703fad441837aa169a402e584fb4aff14d9b9da5057b071290b11f7c2e2669629125bef92fccaa065a831215e665b0a5f49a9e7072a59eada98736464319646e160673abef29730545f533071afcdfc2254194d307c67b13049b0cd4a4a49c0057c2148468c8b32603a9c394b85f8e3b8c11d03aad29d1e27f7821ded89c7f23490574237067f0390ce2c53bd4e457720f363c19b5c27ef083a918b6b68193893b17736f5d09e975be9a57559a440e4e1cbba840fc492d2b705b187f04ed440355261eef6adb0747b14be9ccf9b02d555a910bafd02ac297d04eb098192cd39640aebd341d3b9250080e221c5d90321f42fcf6f870215ebd0ae281fd0543dd18910b85683f408376e31b0c1918ccd0dd54b7c2f9934016c7159a264ed3ac12d68d986d34b9c2df6af4d79c8387715afcb43111ce7531c8ca78030eef6f80d7c0d28ed2f9ce4c056e5123a24b12a9f4d98466b75cd775c75068b17d408bda50d86c21094bcac4b954ac71d4efd5aad90c89b64709a4eec3c5b25c5c7b0161395c7f36cfd582be8151eba9c8d29efc95168838c0c1c6955bcf09c31cd1de60b6b6fbb9cb554fed9c23511abb335026b57522e8a1f1c9f11a378e1c20f593cbeeb437395467c5e3ec0b814918be80556d62bd9ccbc17e1c88a74a8e8952ab0ced9119f199ea47d411d11a13060d5f191f884cf03e93e3341f8717f163c740212b6424f5203a4c4add70a029728b9698dadb6d063d5b3f5e18373eeacb08041a432e5bb97d558f3dd16dea1f05a94d63e90d8de54769e60212a9ec060eadb38f10cbd60a7f03836cbb6c6793e7dcd37c12979f23ee7daf078f80808882e01b2a8f01dbca3170df098e474c984ad283701431ce65606c5596e3b56e5e47576304ca8dfc17fae547225147d282d5168aa4e5c58cee28fd4a8afbca55325f0147d2a5ecf44c749e8752924c8505e5b3b5af2fbf334b6f3467f8528a45ce5ffcd5c5b272c95b1e91293cb3428e2790899d1acac0a3e84f1e56740b63c77694bb7f30fbd9d89bf4ac3c716c7fbc986476a125c7aba06f57e24654f1d2d258d4b1e9ca14cf7cd76244fe84b6b9f1defc912d6f5a9735b0e1e72aafc7dc9c015807b9d7f12143eb18d255bbd148dfd60a3c5da61fc6c445013cec687cbdef3a1afa0d7352fe41aabda54d2f210aef395decf8b20cedb53552d1096d210155eeec5e198fabe88e82cd04d5877cb6096bb0800930a8c75cf65c4c1a2469e7f7e2b98eb62f6c16a121e3c90a5d1479089cbd975413c86576ce50f4b067668ff574dbe371e3f2b86343e1a4609c9c45bcace2d7dd5f57bd1427932662064caddbf5d57fd2034d68b7797bd81caa57bafa6b40dd764d82e5e66b93be4b77b7088efbc68e4bbbb738daa849023b5f1b1383876221910b26aedc05af4bd32753cf5153090fb19868329c486eb7f790266f814054ff626ea7b56508541db114524076062f23d260220fa23d396d4ed79647cf9d57af44fb0f9e9ae945fe79968abdc102d064375e28979071e15fb5ae46f3f203da1ab1be5691574ffb5a8cf370bc1bb46337fb7ceaf9b675190689e7bdadc04d75ca8ea7c824687e3be7e901fb1f8df45e05bdf6de557146fac245ce7dce473ac09bdebd3f23a8829da5eb7fd43b44e9b458d73f2adc5a839b10f1f502bf1ca61ffb1bc009fa3d10207c9e64d437a31fc1fb3193a28e4ad778ba53a62512a5a59d525cb5881c99767acef4d7db8adf41cdc68c977913d441198f9a19444a7feaec2d3935f80e7e3b1458daef41958d469e77d9f7bb8566cefa40bcd13e19045fbcc428b360d2ebc255fa9a5ebe17030ff061b60789d7ad092d04577d7ed99317e97a4b397589cbf873b58de9b40a54c1c45c019f8a793c2d8d820e164cb55b5fcb57ee05fc7881a868ba2edba951854cb08b1c26f2eec66d31de584290ca2688ac8987663b34408565b6aa5018cdb43818c09502c51cae4bae05a3ff28e90424099491ad2ccca8dd8369295a3656340217db292b19d32d4ffecc65d26c9ea05e93512bb120ea74bd4eb74072ab5130453d167ea06bdfe682ce10ea3adf1d816d54871145ed34908d99d4d0f4c0965f07c76774cb3bd3d5c92f94675012c5b03786b2251b9ebe5ef63f8746ecbbbb76c5125dc338cec3aa16f4521dbbd2fc73955e572492d9194a8f5285be29f7ea700fcae73a23b098b86924b6841aac76e8f13528488c517d496d07f19d65f080ff45fdc98c84504dfacda72c5d88ba990b7726ff9725c3718e852d5ab5d68bab96c43a1173fca01c46d945b2c3f1d23360f7a2690eb9f563d7780a3f122cd8af74d9d8451efb590fd245f164a62f2e1b9599de918230bf53fb7272d65bd280b0ff7cf9a188031f9e334e822c457df93de5f767c40b09ac14e40a6b863c7363fda02d75d74cca6870f1895045439ba6cedbcf26ccf53b329299ab3cec1914ca621b81c8e10d707ae9ffe531d96b7825623028e9c8a2213b0b47443744be37d0c00bdd3de844ba235da9c5144c96d0442289d93a6cab520819854a030eda14b233b473e2e3f7b2c0dbc60a4b83431b5d5c49288b88f17aaa32d12be36166e174ee5d9767c421320325b58fc882191081e07552f0b9d46885076d22c372a97db56c18c4f70231b86c8e5f31d29e877b346f2ac336740acdba7e876711f0f04f7aad141f148b9fe50ffef25961ef969800c1711158f2e2fb20142fc134ade316a98925a279727119518e5e4ca4ef26b723872ca06b71c7960123cb99451f4c567c7458c6405bb2198271cc2856ac378c5ed059f9183ebee336dc4c0e9018026c9596f676530b0d7dffb8272fb52e3fca50dc05ee3ce12603aee06eb684cb7b2e4f6bbb54684922a1ac77ab2e75062c73bae746886b59651375fa3e65526e7af293934e9592253e8ea3a313b5af07d437b996c086d8d388b5417ca6dc1d5633e7d9469719ecf90b6f12c28f5da35c7fabf035abb7bd4d688d43650412e5861e7df2fa6b67490af3eda3a89f4befcce549d535cdf7f08e16fe72050f988669531417f69448021e706eebc88bbe769abd65f695ee7b76314c858e0b427f30503e3f9fa5dcbea704b22711c6db5390f4c2e6666f383ece5a4ad1786a819d61b8dfe29030387662ffc80d80587edefcbda50f9ff68c9ac3d65eab0aaf1219404c4ec3f671b3365e811be2105dd57c215d27f89cfdb123c89a5eef95c010092c39761107a4f669d1086b48108fbcd38b64e26c52d3d18b89fc51506622b74f0e8e3163f2ae0b0a8c957823ab6033fbc96cbf28f4a39ccde501c4c83a3fe5257fc5d8046ccb5fe8ad431ab979d26b2a6a6e89e4a58b83ac4f9929353ff7d509d759c9a2056c98c31da387a8f0cc1a7aaf8f82d4ba92e0ea20cd8760e92c587910f052cbff3f03c218ebfc349bc0fc5e1d445b0208e6628dc5d51b50f3b9ca945ef27a2571504f2df2b2e0c161a3efb9fd88407d993891664e32234e8778f5cd97101a58c92b65b6c6a0d7b16a47209d291f4aeb05f49dff672379b63aa0229d99a25a57249af7e10345d839baa7d70590d5fae4c181d14684e3fa3aa1b298ea55fe3fd4230662a213a70c39cce67395925108c9e048451b368a06e5a89fae7ca53d81fbb66c662cbbf939841d53cda5ddb52e3a6c5881b8bfc64fe393de96d8d38941d526906aec1ae8ac9b9481dc382407ff4ed13f57740712ec65c01b732b88cbdefc02ef2050d9513a16a76183936cc748a568e96a2fe7dfdf78d39e6f12cd87770f864fcc85f4f51287ebf1530f2c143e77f22917928971c70fb164c0d23954c72e8830fd06c5b51f1c50991f628e2811ca4bba9834da463de2601a4e3f9c16aa3ff158bcfaf3c6ba0e62c19605ea03a603264409b8680f0e1bb807f44fc33c8945334d3bce53c97de39bc24ae1e95fcf388d8676709186085ec3460dacc9196d6b56eeed99ca0116d59365e50fbf0a38986d8ac22247c3a6d25f8780ccb0d096d5ddbd940898f5fc395bf981c5ab51d5e23275b6ed9fdd077607c62d0dbcdc0581e750f1465cadbe72e200a45bb8188d540b8e69b4d6d77261fdb75cd0dcc24a6e171b3dfce2edefc975045c0f916de7f05c971b09192d62ee22b6d36c2e287d78638eca1415b4d723f721adf989a93a02c35ad500176fa0b226294d5fe27ba155cd9099b23b12826e38a59557339923c70b5631fbcb8c68d510be39e9b8848e95ab65a235f57d499355e8bd097de6361b832928855267bb022e319ce775cd97eb6e13e7b826fb539840e1a7186be4313a84b8e9c14878fab16c6b4a1852c995ab41dd6190d24c13751c4fd4c091e9d6fa6c406ff11d44feae0f98f50b4dbb284b5c0e11f3bc4dcd4e540310ab2221c4ee589d04377cc7a83ec47bb81bcad5ed9588a820179ba9efbd3c82f5d3d58dc812225e39f1d08eddf88839a7ce88d6e6954cef4d9b909326ec9b2c87578b51a7a6fc2d61e3e3046c0e7ff85be89e57f7d62645096f06d1ca9bbba64a7d5a66daaa55214806ba236f8792afe28f3fed03c7e906c51d6ec51f29412acf982820c2a6128041a6f3edcffefa356a99b8d30190c40f69a43cc0840e244039c3ae7895d5d9e750d60702060fbef5eb8bf392d8c5983110cdf5413df5c39aa3a139e007911d5521b3176241d1189f66f0339b13cc0f2bfd6ef44182429988fb8a940b060b05d153cfdb4ca9d73cec03244edbd98d2323a22afd336e9d7dd0b7e334147d26d263053514138e7c8905cba20e209027064617396ddaa0b7609910e3081faa217fe12460ab856ccbb173ce1d55a4bc772697666e9d21f4ee9da262b60536fecdccbb95077b7a5fcce8a5533840adc004823008ae1ee77b6d0221670356f834cf3e27b2a39c6ee7afcdee9902f0ac8e33f7398c20e22bca389e970628a61fa5aa9311e560315aabb6a2f58953584f3d7add51b174c193f594ae6c83a024a2285d97d420d5f2893b4d88267d767602492bd2c3d80ce15de286523b51dfc4e64f788624c6f68fd8f4d5f9e33c18154d10c8cf0659df0d1cd07de342b46945d21c509d866ea973f90b739b3f1b6bdb1ef781fb6f27466308d07d594ecc70e86fe2a728a96851d31f97e0ce2726720bcdc305760270da3abb6492d3faa211f668ed3665995df60e6f9f192b02b2532cf06afbe78e11db7c613d988a80f352f3f35cca01e2eb08dbf97c4edcb3a7e328f6500dfdf10a3aeb676876e844df12182dfa2dee68fe4a523b1c68b869d862f086d8a8dc0013e2680c644c71b6dfc765db07adccf2266a906a2f3b78a7c8bd5874cb51a14348966f2dd16fa87cee4011737e63536d6ac1dfd709b510637fd2164f0b374255a47ff990ec9a4387d67bfce57a14ffade6fd24d3507566a0586daa35efb7987b9062dea0a9bab83eec76a4c2ae0bb0c4e378a2697f20260194d22d0eee0920e7b93956c888ba6382ff5a18396a3a8175913406db36e2a8fae87e950d2ca041c2d438c657264182a27d8765fcff51b0c773d580b8be6703e835bfb71f1114fc7506d9dfea015ad1b3a8a7da73ed73a8b95e6e0b919bd88b671dd17eacda597162092d56fe7bfdfdb2a826cc50b2213cd63eb7b16318a5585349b132944862a0240ba26d727ad98fc11a8b699aaec1aa34cc5ac6bbcb046902785ca8ff0eb445fa8579c91f253192bee8fe65f844f0015fddf0647f7946fc0cbfe4c1023df826751e34d361354db90c1e9746c77de4aefb542e1095b77ddb9fc2d381a297d7dfe8af47fb39d1e4e5847922fe87e68ddd048e5b9d2e54924fa163f89c328f3d8c8364d5ea25c61d28ef0dc7d25aadff9a2ab980f3e0223b358f8188ffc378fd1f9d0cd9f51e3786d5f3ccbe8bee8740aec0e9503f1b1a1052d6e0f33554b0243c9c392e7040b8d849b9d0c10c41086ea443bdf3d33df82574602ead76d6051173ae6ad4493dd29b6b50d33bf4cee478cabdb86163acf366fe730d4b7d86b4c589b6dd32450703e6e48b3e18ed917c426d2cc0e3abef6477a35459aa7046dc2b0430a10d3bc9d32e3a88b0236430497ceea72ac81d0d2b625699e9fd462b3cc1bc8491d908c0f3ea00b693051c67c7106e408529c7153d26db9e94be3c7b9fed2f257a7ee1f310376c64c2a0c6878035be0bd097720d4704ab98c9e2f6c871d595f434a6425cf5cd310f179cb9cf68b17159d798699530796968c0ab1554e4b0a386f600106638c4afd899a8738a7861d9f44102aa08b5170fba1e33454a6f6cd0ffcd6bb6ff5abf5bb167c1dfc725bbe436d9f762058ababa21c4041fbeb12ee46dee33b09a7076db76c13bea9740d253e7d84df95aea1cbdd460b10eba5fd17728c77c2d08f26115fa67d88be65dc713235f286dd595a2812e1ba53334096d5e22f192bd9cf8d9e36131d22fc45adbab6ca72472daf9bbe095f5fd0f4956ce8315dd8d365d08fda5a4b89a7fc6c032bfb9ad0062c6bfd4547d476e3669d8178cdd3751a1eb1d94ad70632d4f9f73884a1e83e27cc46cd3086e6d3b7030c1f5669e6d3b0e13bc32dc4ef38000121ad11c576b379331b5706642f6db1cd538a0b1dbac6fe8301fa42fbdfa7f576ac11b181b63f44b57bae78adcb63f1caf8bbae1866c7e1257db49ee23fdfaad4c6f94a60c60bfc99fd4d33c75665c3e8dd8be4e163b6af9c5f8f4d8322e7afd4f072f49cf54b928dea2b6d75295b6283d4cffe454dfae2b14c0d756412da3a97c25376f280063b3894fb68658274d14315ec458e42bafba65f5a3c6d7e6cb2aba9efeaeeb5a7fd352138a831c69d953ec3a9dbcd0d5cbe23c073042fb5c485aa05acdf046a905b321066176e4afc0e6a5c78ca248c60e2e1fcd3921828992fdea96c7158d1d6a3913af2a2720a69df595209dac92bbe2d3bda8c4b4bc1ef0f9ff24f3bfba32e992d2d3a61072217e722573677faa6ac645d1ad7ad089ae0ee3eb7b0879ecf843d60c47fd82c76096897d6b0821392a4f08b5a3223ee344643311f49915269a74bc348cddfa3b68452b9b234c04241390ca3108cc1d834d17ca98693ef85a53b18eeb5d2a4ab2017ec84af230315ee5cf8edca2cf63a4f1aa3258aa8a4ddebbce4030b80989e6f3ba400e90ccf830a5374468650e6998c1223b5f13eeb51c3d5c78e4ef2865f84e88cfdf427b833d9455be22e6bd162ecd2c05c1f0dfed8c19c801958d10c92da5284c08c1be1c61725f49d8a582cc2652318948a6e4a74e3c4988ef91e120667a7dbf1cb8d5684e70a8054555bab5441e8bc3e1d2ef209b0fce877027392900581460687268fdb0f5351ca793e9f0be04caf21365ae93324b09e9c619a5ebec6c0cce851626b253e766c3773f7a433bdbd0a62303201f8998ae540f7da5e43f9884b8df03615371d21e4b4c69f1f476b30d25327ec1d5d7db4a17987f8b27b36673a1ecd22398767e146ef9450dc9a357f04fd0ca464e3e7931e9b645b04ebcc73819e64505c655f5d9c3047e3e2bbca9bada4186553d5b729b5437efff12ef17f3c38f101699fcbaf988034a35e4c954411164f4677b5c5dd41c0088a5fd7576d5f8d68d4f1b7d2630c464c1178d6f85c91fa70d4b54c9ae957567a48fb4a6e9c073ecc947d4b7b7e199fc0d4443523cccb8694aacae15bfad5e5ba84c654fb2745f00e6183904c3230626b7a0f16a4f94ee7f7f3cc74f347017699c15266a12a151d1977253433862902553627b312fff70398186d4c937a5871a277edca973d6f840ffbe1bae7ecf7c09af175fdfad326ffc8f5b58095aa73231495f49d34cc5d229340c1d3f8ddb8d4397faa177188ae6bbb7af92d22a5ad30e9ee9cb9b57b99805e35858e123df4963d136bcd54164cb2c15d574ad2e71aada78109899ba94e943f35d7702df62adfc97a9b5ae440a20e933baa4532b19a9e02469c0097fcf82be70d4d252bbc5f17d6424d6c8f991a6ecb11b4a01fa288eb1c47fdd234365d4248a355b294233ad9c6e3a99c6b6ed71145280f9621ceaef491230e9385cdd419a950f6ad01c5c7fe42fb41256a7449bdef0c2a98d9a9a5d14f9152429dace2604b64a222c3fcc9c378154f1ef1d080a974a93e0bea321215673963184eeec4253a530bc7c09fbfc556086f1d8867e2f16f11b5aa3930ae5d069177e713a562b27c39240f3b8bea505304ab656ea46473d255dd9a19528898a8a848071d21c707c5bc5c1e3ec5756f1f1de0799a9f05aef55dda958d1ac6474671657ed6ca706c18d09cbc9104f3b24b4f8cc492f51addf84827a98fa4077dd65d7f186b01024908547208ed727c6a42fd3ded45b350371be77e20dfef52380425866505f4d08b3526502c7a994d52c359839ec5c94ba50d33606a702772abc7897f421e192da95b99938818b8fa779b988deb9e6d79dc563af266496fe3c0c690ff6e07fbd9a81dcf136e47949c0e071d74d67e574810933333e51158987f895521f6cb13b35bbc04a5e7ac895878c2affb94e4015c8905e2b28e9050ec53495a5214db1464daad3c4ebd19630e554e399ccae5691f1f7c47721dff627b4065af78729a8269bec48d1c9a7c580a1c26c27cb73633fc2dfbffce8fccee2fb11fdd33f6278302614970eb447926ce5ef462d73e4599d0cc734a0f6cdf39904c6a5fd734bd9c333b12c7c3bd9cee5b864ec894803d032aae8e8e8a450b560e3eb1a966fca0f6d91483e15652d434ba93afc3bc2110adea6b2ca488b9f2a6c08e687cc0cd756cdbd2240817fe1b5a1bc2b0e5da9b2145e138aca5b1de5941b94bf4fd19eca9743f5e05a430907d874f4be3e80351166233bd19fea5d7cfa996e2319045eb832b81a8e400fcd2b710f12cd8a862bd3a1a4cc7c3fcae5515218e84f5ff6422585f587cfcfbe2069b5fd0bacde9e74a74280c990d6f45520154cfa23ff58476b2de50d0b81bf8a315b0a030655ef7153256c171ecbc353bdd1a2eac8404c1e6b88773c43777e5139f7fb537b22f760fbbd071f878ec87794e79badf4af77647f01c85e66c6f0bfde25840971bd5764213d7bb5ea0e937982dee74ed7878a38532e8a6b813d774fa9e657db2a5c4e5b4a6723682c7c7c624351422a5a8d2fa54c1337390dc33e729782512dde7496714463a47c5a56be8d210127a2d5dca8de5c57e4d7c9015ed6ff29e78d1322d8272ff3d79c0f9518ac900859bf55e8e4c37e867dea5489628403bf1c00292663e0c6adaf3232c221b90ab40596e56480abd042db522c14a9f16de2656a4f432f1ef4ddac66c5f99755def052f99f53f911e126e30104e88665721e2ebe125e61994aa4c93b5cf5616f13c7476f114bab6ddd61509ba9cab57862419d258656a9823dc52698cbd7d45dfbfcf8d5e0a258614caf14dafee43ce7103f27c75d96655785d2c5a8f9ff03faa7767f14f02d4fc7fda4efa8e39fe9017e440135223a5a686fc80ee6e72204101167685f797afbb8626446a4007a11aae60d28f8ca413a674c34a56f71dba6363e9ff26c8d9959d530111a90df84fec96423b8ab6053f985e287bd41d9f5b10ac1a28f8bbd34b6d77dd56abb7082df0f342171170492c9d6ab889a7b4937b4be74959d89d4caa94de48f74d563ceda37a3ee1f34eed9cb93d375126b13b321f9ec2db2e1bfa5b4ad45695ce3b523cdeb1b46c34a1628982a5335f4b78f7951d262c92e2f6e7402c5af102c553538e3e6b2af56d59fac5bba6daa2583f20cab5107c59670b699f620597273041c435f7201f3a076ce675cc15a248f6455ea355bc2554d8aaf84cf541baa538b2be2115ebc10e8f04228e0203ae19e491621d1b9a99189d4e23686e8ee48f7214662d045e0e52dd1e2a90ac368a94008ff908ffc28dc0ea7418b5eab36ddfa1b5f351815723cea2a607e832b69d26aae97d91a9ee3041ce290db001b481be3e0b3e3ea306928700849dd4a5b87bfba54ff01afeaa7c9cd1afa4b64a6e652ba11d8e28ad3c9601c3890898e02def4f6ea12f2dc1e6f838711adf822850be6a3d14811c5cfed3ae4e60e8d9a2b2d723f7685c897646aee379e16f9352ca6fea76a80b0171f84b69b12127a389c48105e00d8ef6cb00068cf0ba3a22cc73de06118bc3967bd47a6e6356b48876e9cb7a5d4dd48528f9400244c0bd585c1ee1eb898a72fbec0e6ed12c905cf81c8f6481a741aeb686e780734da571b1a6649125954dc907ddce6e433f21293d8267331991b30779846c5d0002f9e447249d872751005d30c90baf2284104669b2cde8915f3320adf93d7f5c182cdd1b7469f3678a627d1e8870cbc25d6d222f6df6ae14f13ddb49fdb0d6ff0f66343a998bbe2f15213b4667b4b39fe01fab9f07aea9e4cd66e88856dc2065b9b0fac30450e79009143e2b024cfb0c76a0dcfcb4070ae9f48f7e7fef20c6b07659e426889d2013101314454fa8c9b9021c012ad6ad1acf898c26a073dec0c7b3f6501d58160032974bb12554eed52262c210955371e029ce9bc3a9bd6f4801a1552be2b8abf86869b6d685a4978869d69709b0b8b2d24828b3e1b8011d96b9d9131869a9b2923a4056c0842bd8c45600835ae799186766960a4dfcfd8978e9111887e488c37e19aced5fd2d52ee6abac1a33a20d090d39d42fa6b249e48accc6067d44826ddf802a86375e5967ed08b6dfe5204e1fb471a7615154210d2e7809489f6f6e4ce4e01fc84dbe809ee40da758d03654e1bfa8c669e2c3ba5b42d52b9841726005b4906e653467b1d8ebffa5f4a39f08e44aeadc719c9a75a109c2fa0b8c2279e82bf96838d52ae8816d3d39168bf9f84caea198c6c991d3498f8de74ee4ee6c0ca62a9cb5ee59154rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-documentation-3.6.15-150300.10.57.1.src.rpmpython3-docpython3-docpython3-doc(aarch-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3e؈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@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- (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-doch02-armsrv3 1709209862  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !3.6.153.6.15-150300.10.57.13.6.15-150300.10.57.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:32814/SUSE_SLE-15-SP3_Update/532eb78792f00c0547b46f8708cdf2b2-python3.SUSE_SLE-15-SP3_Update:docdrpmxz5aarch64-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 terminators6F&TP{eWpython33.6utf-8f30c14843bd309dbe3fe6e46a98e4edf0644ae89430720f041f0f8a7b1711ff5?7zXZ !t/,]"k%a ZmۢL,%?H AAR&XUAqdޱ.\Bg9]i6 vrT#-H9 ڱ=mdDQZoYAgv6X" uXLP֬"{ui #K9LֽB%w8MmT, t:nݽ =l~^Da%&_ "-CؐDd$(UJ6O41_Co|ӂE߷[nxD O f[ϤGR18<&ai{S˅B8eJ>ĭ]擿KEE/7 VF*r7J^eE$z⌼bf>VA8vd-Xsz,5I]y&ԶW%d4bII]l"-%|Oz «΃Ã5.kc`"_,rTV3w@2cH/Jm-ᚢgӵVjeZ A})n\f7aPN)dy;,6Zwӆɚ?:o,MwpuSՎ8['zȖQ ~ajX^ex[IH#hwM+ k5[*=p*}57,j %E/ @I%KeFS$`qep)1ɏ!H>0tPjBƯ z[)qvO^ĝ'6\LR%+cE1ed׶Pu~H!_-.Y#rTQQƣ=( $3e"r( R 9s - tsdJwc9+؇z(6mtJ)a"i2aͦr~L ͍~Vc/##36ֳ l9 -xHJ#J}Ԭ)?͆*! ^F-#.!h:> _Ke`/xX;wysF1 L~L&{mR' ;,#Ss1;muj~<6h6QBjM|k(q< {m HJ*$ !L,Vz1wcX,Iʬم wͭ5˥MI 7@{#d`ʹxB5k ^xYb1/;齢?"uzF)ct ϻsWLԽ:W _D} #pO"r&3?_ϨJk#L.4-TO>{4ZF@GJqȐbA":)gT`.9__:$1jJ& ”QJa):0hV'?Ap~@34UL'v312nY/]xh%CG52췎O?-E[ п ))cQA=v@(O %6L; Tc{muԝzU/@k윮|P,=Vʉ+Ճ(0Mg[2e+Hjl ֢0$e/5ES27 "ML,]̋ wD"*yh)Hw-dgkl7Cn->#\S4گo#>M !6qaW{H}e<̜m@G/nM!$͈md @g'eSL$ ߺ4K" }h0O6 }#p#[wdMc:F/E-l\,n/*El*@iXRl$Jo9K8W |Sd}GeFΦ"jMe#I* Qu cD3t>GfrÖ*h3bV?wB'K%Q Ⱥ5MG$O5.ؗO2S@^?yH͚$ vBMYu/W]wBq+F]Mbt4Cp \rF>#l dn Q'. sNgXݒS- @z[۹)W$[yȿeDWy zg%* 'NhEN泮bboWp1@8s8hB@:* ~2U9jys>bXrM%tgWY}Lҩh!&X"CnLog X9Y&"[ A;^;kײ]y'P\nr=Y hV?^O*e%`&^_Kq"z1[ꋃ M@% v9لatf0GفU|=Fcr9v]G*wHNl~R8en%0X!O[QHܻ{Y w=jjٷؽôЂr*6'P&X"m[٘XѲ"<覸 HFP\{gd^GPh WgTF:Ya%B^E-KJ>4487򼺴9"ģ&nYUT~>Ξ'M֚&ᄄd%<h^"]ܻ$g˕sa`vp--0<GѬPu%::w:x h~Lc&5B=H1^xe.2x*CfNx×a*f 'KWy{D0c8#h{5I"Kjk1،L#HRaAМry=N*w9ݶ٬g =[ݧIYQ)? a_p8r4,?Q/Lebmtk|/cE-"#z ~:s,Q}M8A1$+۷VDحYx(Y6yRAHjA6itmkΌNSdzσ| aJ.BZL|gNh u[F&dxjrs⥟=Ɛx6WV]"E2OM-f8I2Q2yxՖTIZ%S$Z|8H!Jpm./5#^Ҽ`,- F#Eb|j!}O" DdNE=GRTfhpސD\uyӿ,_&UȈâ+P0;DL j!TSrhvC;V喤/9p.%(6@G;ٕF|TgEp?SXKЅn>Aq>΅Ɖbvs,("A# DhQ> i-G-HQ<;uSaVp_20qЛ+ԥ.bV<m 4 L_드'L/n#rS2Szh3X0\u9rb*rj ۇke lG^䤠c]qa˽X %9>H2vwCw%{^rk)J][٬O:V;M `Bk8RT ~/u˞>!zغC°5e'f0YC֠2`A%|tor5+oa)[]5gW,[z3`Xkż:/3a\ZbcmZmoÓQxdR,&5YV0ܶ YZ