python311-doc-3.11.5-150400.9.20.2<>,ep9|Mx(jכ 5,yk8p #b"ʃ) '܄(XrI ˌ ܾ{9F1jFn+R*9G!x߻GVŴWic7S̅/lK*XtvFi(ι^,!՜0W mVP괄4/ܼ:Q>\E b12.ہgV?"@ w}7oK͵ oJdSӛHr T4ٹ>>?d % H  9Ze {\ \ \ $\ 6\ H\ M8\^\tt\@x\ (89(:!F G$\H\I\X `Y h\ \]\^`#bgchydieifi li ui \vzzfx|Cpython311-doc3.11.5150400.9.20.2Package 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.eh01-armsrv2%PbSUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxaarch64vkjV?Mc- z6O8 UAq"{+>U:I {[L$BG*0 @m^'W" # !g3x (p+ x* W [s+ @,HOE~+= xL%(|y&1`d >e2i*N[  {20} $Wbb\:-LapMIk)m|_$A1_0S,)=!+ !B9 -$~6?-0y 5*i &+:%$/7]s%7H- BЅ5V[KS!K T'k# D?9{1=c8%zw YW# 4{5#H/ -7 i$rr E  #@HmW"m.'b": x)z06`<,Vn#+&/PTU <= V(Ppmz kQ6CpU'K7 It>G, s~U0 NL?2E!FJVOe )6&C$@vj  r' `#40 3 0o]#"F{~i))^=`5 VA'A1a>1#2O)lar T@(tH,K5UfL 8VZ *4JQcI,<yRvnw  'f;` Ul(,d +y*A/[ZZ?A*Gcs(7> @+ <$i 9 aZE, RN ugGc`,\;. }g'X@?^f a..V _bmc/cbK89.g6 4%dDc]*fTZ8Z)A] DLJ.Aa5yR?E>oW_JG92z}WPxOr7Mcl]l~@{XE<jJ}E8Ir_0yP_zs0*!LWH3l2B2wA! - !v@w&X/#FV* o&"" M@JMKIq bE"(~D"&ps?F+RV YZ77-C* 5S g>Uo( ZbWD1 adv2w)(HyP$1סjR#ZXd+Y  6/a8'6`D@J':1m;RSy[dCAsOR@E/VVR؞~q$IJG'[#?|F8; OX̜xIY8uDasB=-o^\*{qG J-t9^K\0%XU/*l&xCIo'B6N:~I]pÞkzNHId[p2~Y7bBWfFW 0b1&u AT6oB%<}jb;B:g`&Κ)5d5d[GؙZaÉm-*xK k`s2~x;"CSG>HI SX``,F^C5^tdOXRESoL$ ghd0Lpp[`Vv w6SR^E^sz_MyYtJmrm}cGjkkx5Dk*pNELQ pD!c PcI9ehfphh3o<@;9We~Bfo9CXcO9):S?C9q<xlX<5wJW3NI[ZHvlA&$0fjh[wZ ~@+Y@/9ѳj(0p C(7X>K.}E$yU9No, |9vb7 zf:Drk)U]b3QQ%rF Yl8TEdW<#=AU1AA큤AAA큤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큤A큤eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef160b7874300329bb91b3e98a63e3af10c659bf8284b4e8243a5f9e70cb30fa01247b282db48b322036677712add2df0f9f4faf4574153abfda9fd417dad11dbe99ab25e2b96b8ac9279aa963e494d22dc2faa8234409858bbcc7dc3f7030086667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a3d92157b536db0831dbc42ffe0eae04e469cdf4d8d311c8f2837972c54945c9359e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e6124005670b6daeb77665a0bd536593baf7830c947cb3811119986ed726500defa48a11075e141401abd39e62cc17a9ee32232d59613a2d8e16df88018435b50bf9c98adee06f52723b9bad40e39994b5f2dc69248b00fece45c385dc564978faef19319bd6aabcfb280555e5915ef4abe76c44a3ef11e65e5c28b75d012ff687f8030d9e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8f9ca92803ad69092eac297677b077823eed2d9a76966e4f5009def52609402d84380fc5c67e3b79e62e3b0b24beedb11fccb1a08e2c5f65c060c57422cdaf178239e8e726e704c04d3a4d1e48cdd96b99342d172e1eb7e64493b6430c494588ed9b514706d8f064537ac7b985636f19d70e42c5e92fa315a3f3513699cfdf2e80c14b30da04fe4ad74a33cc37261a817f586a6d17930a411ed4cfa7f68be8a82a4733adbed5385dca316e699a2dc25b7bb22b0741f2285132e05026a8c0dd35e749ef096efdd83d7ff3fae9850c59fe0d7b8aa971dedff668e13094d927451f9e1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc11decdb5b7893d8032946d74b2308a24a58b5000de00aff80c5b3ec34f6dbc5337ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467bd488b23208c21fe601bd6b2d4ba6c44d334bb075babbf7f0f751318903b6c5d4382828d64e88644e47e695d717ea8432ec1ef79a17f2d209b11aef4fdbfa4bf570d752f336a9ee7af4a56b8e5b3696b962b69793b274f76439165823c69cf5e04bd5db0b21f178fd8b16f7d999d0da20a00ca8d271cd556cfb1d26dea91aac88b21a9ea9ad785299a282cccc4b9a93cf9b1f028f65b0e90c0c41deea019953beb5528a56a8b0f2e5da3d6f20f47057cc0325273ff152816c202f8a114cd07138ba9abf87cadffa7027ca298ba11ceb6418f3a9abb32ac988c8d342e7c2b3fb2edcc0e6549fdb1ea3414f47ea41c509c75d881e7b70b48c7f8f756212139ccd3356201266373b56846ed89050dd688c78fed84df22dda096e2f45d9a424ff2850f1f559a308d4bb0215d25df449f0adfa6089248cfbd0a2a62e811c8c72bae01b1a692fce8313c81195681b3b9faf02a7bfb07977693c1aeecce5614f261ed3c1ef23fbcb9469cff3e56a6c81a6d720d61d5b96369a94493748f781d25931e91923c43e935407c621e4a2508b986f47284071d5a76ba71729a252abe45c20b3e89842fa74d6de0f15f28157b413fc38e26ddc193f0a01e807e045a4c4305becb5b29d8d26c55e839157e4694c2e9bdfa96734ecf1236055f59b18a5039447b7a324ee55954846befab6e063682d9206328bee45f2b399b8c9f526acda8ebcb6c0328c6264c37ae4c34f6dd93caaeacb105617532d95772ea8bdbb25a50e1067943d773f736c75635e6861d73498fce7c20fd6fdb523df3138b278d9c6bf2b29114478f1fcab5ebff38fa5462e696067256304f55da4a241c94318e306d723a62c1a962624d624953dd11331f1b624bd34587122b2f37b1b963f0027fa17238f138a085a8d875d9b7f9b5a079e169fd566b3f730d51756806c3a887bd40754666d837b291c5a7963aa1d83a3efd9f7ea892ad33b2c4e4cee5cc43c43069a1f7aa7920882674968ac38f34bba3b1bcc03271a553be35b64a7fbd1d55d844aa8576acb1438d204ad551a95010e0879d01270000432f6ce434c270a1ce43a8a0e1e65aae706c2331a4b8601315f7740d05e0871fafe1cf048508396ab4bdf20c7f306127a7198ce10c2454955cad6916894cf7f77dd785b2b0ee17299d6fb2b1e0fcf3609a7e5c15cddb3d7f3fa42a15ff6e70fa7ebd8dbac361958e8570df60ee9981d04969407a7366b358c3b8fead7e45b2ef5af67d258c46706fd705c8bdb9e8dfb38cbd6ef4eb9569fb86a4acaa3a463b3f0b5bb7c94e3514d2d2735f817a7842c83a13c1af43622e537d2e7e03f0641ecc09be5ae69a67e981a1bd47da4e143dec026a23082f072d96f5b6f088311faab0ab2c9230f1ee2f12d87d76319e5a369c6a1f2f4d21ba7d9320bbb073d4d75d3dd89d42652a0a4de203786fbd1ee35908b1515d6e057f6ae4c84e32c8550f4189c75183bd893d360b4bc5054d011ca85b25028204603ccb2b0acae4bf20eecf1900704c9498f13aa10910a2a0e45c6120b0dd4f08584c0e583e4201193d0fa4353d14b60acf09eff2deeb00ca7b759cefca1b821f27ad37376e4aed33a200ba028f23ff6f1afe5daef6566c0dffa51e63110c59578bfab41b26d8a26d5a531a656c752ad1438f5e3fb859d79eefe3ded6b95c6578d073bc27efff7c794e4aa20d21266515fbee85c9ed8726681b0b916572aa3e614d05551872c0f9832ba1761fc5b57e79cfbdf44866a980874f771d6952e9868cf07073408dfe1cec53d6e084c5dee967c7570acebbd0a27ee0556baf31aebece20b0db008811bdb5e574611fbf3847477fd097dcde1d0c9bda7d6686c87546d7534dd55b53ca5c61477d258acd36c683ac7c716092c91ee046af4bddf66490fca89a54e0e66dbf33eb8f00f4b7822ae62dbfa23057456ce4c8f1fda35aa2ac970356fea620a6752830eb1af114b7671fb3c0d7afe8c58ea5adac2e059068dbe8ea0b5ddeab9069302b9478d1bafc6d75883bc3975b96daf9e67f34537b53044b4354fe5df2110a161ba2389bd65ee896956a5c11b6ed6e65fb5a1ba5fe6bc9fdf37d444fea70ce53df8d6fa10e60e54d073e3b5a6b74749651460ab6c0b8f3ceff542209e2fac8ef80394a5ada3d3b46e8571407aa37a7edea87b2048001b55d461fb3aebbc452be3d9bd58225dd930910f897b9eef137c6561f389827610d25c5bf8cad3229c377ff82577751073966c570598a2d53a3c9ea83c5877545fe391eb30bd571f728a24d8adb3018cad6967d6193ffd04651b9c38ef5cc11c88031cec8b0f1affc96a8b7b5421402ca790f0056c132872f2f082165ce604fe8f58ada6e3842d9b06354fdccad35671d376400feeb64255fb030d2cbca42a1901004fc1dc3b45a5c535cd5ec2bfea1f1830158ab687d1ed8e263a7b83380ae6087500824ab962102a9435aaa5c4bfa290d00667cca63cf5ecab8bb1a0ad8e273e44da675d289680660a730ebce9d1723c8ebdd8d77b7181c14cb528a5ed0283f56545f15e96c70c2ba956c396bdce78b890f1dca9d9b6640e7722efa51b538a0be7e3cb1f96b13be9616f7432f7be13df6686e6a084a5854ea3448d5d8cbecc490dfafdce3797729602ec495959653883a067a506697cd30e088df091ae80c2c151faa41f993598e9b50eb766fc6b1c97e64ff1db7552a4e9d249d33cebc88510e211e8d85466798552dc9854434cea662a5d251561a987579cff92bedec1f95c7e79d0a9472879d935a80bc564884b13b2dbcf0c59f8481cc81e1d539ce3267c430f8146c3d1ea493d6806b550a402cac7e4c3928a323775825094094c1d7295f56722272a5ade7120034777cbc83c6592e50b1efb05cf901c6337c918e97e0f41e7fcbf1cf875452447016ec43c628dcc2eb82d3ee5506764b0edaeb6b66a59186db15b0cd7cd85dd1bb35c42ed0121ee3014e069943d7ecb7fe2eec18a4ea47c7653b586c3983819b23bb32d1237bb1b3a97a1cdaf0603cdb9dc2039119f12a294cb651382d4a424f8b4874bce2d6376b3e292ef2c2564772aaa403059c7dece0a5cc88dc8cdfc600922cf02b82bda04e01a899db37ec70df1cfb1e400aece3ae97d0919f8439f4c0d63a75a65b19337b4e855f36f301617d04109aec4abb642541dec64b14f80fa58e467e696381a5a7f577fe7152b9810ee2e91bf69534d630e314cc895d24ab43517e4eff0d49039b705faf8e2ce16b94b71074c83c6cc422c1b341d8864099a367735dd5ee2e93bcde5e32e43df63008a9ce86b3ce42cb97fe813626ccfb7cd5465eeddb6c9818473bc1800d869449fe09d999e5e6634a7f5444dd83da55ccb265bac825abf72ecddccf7e394f284636bd9df2d24de20ffe91cad4fac8a0fc4eb26a2da854ba81be232ebc49d28531ce40cc6291c1f6b451f568ac4d89dcfdb54aa4cc92c355dd9fa8ea2d7ae7a34991c6beccb9cbcbb141d8cb425ffd4160808e4393a420f7aeea2c28518f80d95cb8f64ed0e9a19660a3cda7969a680f5ebe4a0e9cafe00fce87f3fd7c7176b52ca1489eb80b03efe2f9eb58162b90eddad2cface23f96e94982a067dacb4cac44042346eb421660c769f7b361ac12fe0f7fe53b602f1018c223b45c0ba2d49fc57b0737c735ef789ec507386c7d0e239124af50760d92e7423bf251f52bcdc1932c24451184380fd8cee5bc52f078ee706c2b91c4ea17ad264aa64d0ff671743da906bebe98c963ce5f612614485c456f8cd07f7b370df873382ffd76dfaba8a597c292ec06bbfeb6ee53d4f90280ca5e38a4dba90e1bd556d09917bf2989fb229d5571b278edba40507771180f4652bb52be305db82e651d3b840a8b4e47941883c38700b62756ae6fc00444483683b76c38e3716a8ed9d80aab782e32fa05428bba7b0cf571020c82e10b6b5f337db4399ca9737d607ac770cf62de272b173c5c6a036e4b117577e010bdaf96f4ed50714691e71d86a5394384bb4585c666eb31f732d5c8a90bccf82a5066bc493d050906e0f32e8b7fce08307feb808ca6c417f7ad76c62e848aff6c1787da0ec7f5d2826fedfb0273657d3f77ce46fa980803becc42d3209169564ee787a2737e3ff4feb1b2aca7a96420587d244ccd43bf38d3be2badd0186db5e074f8745c78ac464f396ab142c5f0756478e01765c0fa958e325fca4f12752ad2eff4dc614da654c2b82e3002b2e429b7999059fdd6d9813dbd6da74bf522a92f1d067d9cad445aa3751104a85d4c51f9607a89f7fe2acd716f98518ce862a438777b18f47c1f1f02307379ba433cbaed8cf8f190cbb2a8e9a48e814f3ef2fa66d926bb224329f0f2ec3012fb33c6c8f66c54789cc717a9390bfb26ca86bb82dcd063ffe779bcc210fc6d86a1d78d73e8fafbcb2634b9e951f3bbb4cb5cba7354bf84cb6b2de6e2ea46aed4e7f22bfab91a9773e1fd3689c32569c812b8638f9c74ea43dcf93adc2401bcf6019dda2ddce42929e5a3087ead9843cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56cc204a8fe1873944f79fdc052aed8e3b1c15c40fe9dfe377e65c072a9303c54a205e56e8ea41edc6ff36260455023516feb2a3094248f8ffb1d4aaabb20bc23e2648bc2d476230c98f61571e9de969811150875996de2552d5c7656368b2df184fc614953032cd7f2e31ba19a63a8a012dcc034e56aa5b93fb866eb70c7e24d7d68d8e102b817d2643dc18f6bb8a0307b4059c5b02c6c809d374bbf576462ca2e05a4426decbe190d616b03d63696ee712bb4c4ad2fd880e547ba9340c2578bb5dfb9b44c03cb2a852ae496cdc7ed82ea325895e56cbff699f9d49ccbc87b02bb0ed5e63232859f9dcd58594e7390bc499bd4603e30f2c07a7984b1708cfa6d5c3500051a6db9b1dbf837cf8f473e937253e7cacd3b85d967b86c480b3f9c398e302a4a314315fc19ab2ad86f27a98495a04ee440822d61f04dbaf91c1ff904140e029d5005728bb9209a01a96c768fc74371b94cd1c041fe0bcb28f8abbfec8aa20dea1fdfb75421cd91e4eb67044e57896789be6f1901774784a17019f65b1626022705b59bce0161a0a72768c939317a672bd0f181e8ef3afd5468f19216f2aeb1fceae74f115d32c0d0f150f5d58bf0375412e353b5179e416a11f18b7724446e42e9f9517b0f22fce4b07985c3ca60ab2752722f8017a0456338a1593d67b709a6233364441fd0a651f32e26bb148b303db9706012aa2c2a43aeda6f5b123051cecb1c3710480a9f8b941600f9dff66476108a5f9d3190c70703cc9d59110f75601a5f210644782889445e1e6d1c41bfdbdc03e85bda1f44e546e219c1757baa90650947d6a56b4603288ce20e7b7baad34000fbc99c089b5d45690525fc52244a5fcceb04c341eb0f47fce0e4ec08d72eebfbd13a9372e8febd27c9c127d20b86d59c05071bf7c61eacc0dd79f2a1045a6b686c69f597dcaaea42cb793fe9f69766062b95b2f0d842e9a8f46d7c18bb867de6c422576e3e21d6cce8b4a91ca5e54809252a46916e22b590372f92849a4d490765f60290d71312ded9d2a512f06231ac21a9a69190cf6b7a80cf79a73f6debc46efd8da39d8d43fc91325fc6b27b854f12cb6ea8d9452ff28f870d63aefa0cffa60f123a609bf8316fba44e09bedacca60540a223dbfe5fd96ded0ddfe165fac8e7ca92ef6bda994a9ca4ca5b931958677d3b7a4b651b8e436538ab25934af615956caaf5876c6e00fd05ccaf75c80498e358bed0554ab1ac48e6e25ef508015ab02e3d8484cc3cbf4dadb714adfecfb057caed708b28bec88e1011e75cafbf0d61011f810310b3e7f13aa894402e6a0c8b33d7d85595df643f8465067f04b1389cbf4fe2eb5971b95af05772dcfbc1f3a88afdaf1df996897fa348d5227d88f21a14535fec031d2e29bc0cb0dc8febc1253a46369d88eaafa6ee85aff6ac4a0cb3938bbb34371226b51a50732cc57a510bda1e8908603e9a2d1cc94efa66110b3e3340d218ad9bb363d2d34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2c8720bfa66e3451568ba5d68201f64d16dbea97f4da87f7e0fbcb52f1558fe6c883af436749b84bdb7ef61808453bb371a3aedc98715ce45a9526420e0d7c3c200ec36a23443b8d289e76e0d5f89c7125afd4c1fe9c431d2954b8661fed0f533070c52fb8afd7b9b187b4e66e5b1aaa52950ae3df3a28c64739497ef66c71e715d1e486620655c1b7e302655392af21a5b6c70317baa423fd51c74a9a8f09712d7b5b152cfc9a2e536affa78a3dfc54cfa1cb454f31c2114e82d96cccb6e47074e3f824c744bf40efd1562e2bab24cf93708d569d8ce6325c06ae0da1d6e403a5b8463e591b76956ba1c61ef3ffc6f4a09186386cec1457b86842113f4e00ca86f59ca0ddb13771f67c84fc58eeafd8005e4b3a809f354d5421b047c8366098c1637a5914aeaad3c8686e98bd4b473e3e7cf74a2a427eb310ca6120e5dbbc5e7df594431decceb5242203efd9143d7336d407d246ec6613448d58a8fe9fe71c7410208e8733adc4f0c1933e770b1fa3405225468fdb2b02cedd6b89403b0a1236f3d1323b64257b84f12fc138882235020d93b34951d9dbf53efae3091f2a78ee7f248443c421afdf4d2af7a431aee2ff2421900cfda4087d22742c196b59342f17520f19e9c42992534f35407bc94e613510f4791ab6dea50156d422cb3b5914963b7dea2c8e619369a735d92722c53c2f78249abf3eb7fdfb0b0dd000f7a8d8bfd1b72f2e1cfeb2faf02380390ab430909ea89b4ae94e94a1ba2e45b3e0a0f1dcf94c86200b6932b9eeff46dd35db2a8e4b483258a00bfea7ade7a3a2c01587760b1f60c6ef0e1c2b2a68b8a250c714e15b936f482290bf702d877ff48cca543d1ab4a06c02700a9fd8c8585bd5c63160ac5f29ad0e62d10a836800ab53d4a09e5bdfc262459fb5cd2bccc5c87f63c166a2f8339ca6fd51999c9909aedeef6135767406f70b7a314c3cc654a96497f00d2e9c39ec337705efdf5d0ab203f67d4a8697050c1cfa5ba4f4827945fcdf3ab56d08022a5a64ad70b4d1ed761ba855e69bbf7e17d94903d113b5b15fab484841b7a6ef1acea4128f0365424e21af6c5d181067fbdad70f315bdc7f6060c763c6417a4d7f85217da13418fe8f5bd86bc572790ea531a32e5b488cbb086217ea8d093212fa4c39ef1a36847d49460610fa5d6e977380b3735af135f5d2792e4d79cef9d6c7491d8031553081da8a92b4dbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401db016574fa50d0601aa73153f9933a59edf0224c18a0873f305fa00b36a5710fdf2dbab9084043c829a5552810c98ef3a53aa2addd314c4464402ffe831bc78ceab4ae27801d03d496db3af447b181869a526d1edac36ed37d1f3e587719c226c644425d6efdd9083d3966a3e824767d1917c6bd38749e89202ed6e5d0181213efba0516b0c0b4f5a8b5515a65773cb3e11c0199ede9d8767b5eb23f61bae22f44ac3d0b8cae26422e087733e925072db79345bf4422c9e839cd6315450f6c81155b2613c2cd4bb4db090e678376cc149718eb4eace26e653d79b52e96ed1936e85c0751f0163c4cf6ffa3158461ce8a7941ab7f52f5a575d147b5d9e40ce0d07c114ee09626d204876cecec4ba1a46267eb7112a95a7f7a5f0883b9e7fdc9651c057d6984afae9dfb6e86c8aa22da2d853db86012496908bb314d84493ffda42d2abef168871f6bc106a1d4949b52cdaed500b0c22778a7b0a4188cc530b8ff49a98616e3f1335be79a0606a6fba2dc5799bb48a25115a3d3f77ea2d9fabc2a8898e0a88bb077558bd46d55a7ec361fcc3c234b44921f6f4b4b2135f3c12c6946b3c1a8a4e17785a8c9cd33729753afe2389d43ed204a6b0c9b3d48bb14f2c9728342b78975d1071af3536df53c3d52965b58342f5b58fff6bc8ee1ea14cc53455abe40092d02ba8574b00884b0b3df1028cfb778e87b32d5c601a0b277cc59f703dbee1c7af28bb6373e15e48a0c3b5901db71c4d2a00ad16a130e808465311617fd046bbe402bdb91d004222a004480f3dfb9311149d25c357552bf06313b237d078606fbed9a553bf89a45f27a833dc4e632a106d994c5c402a2391c13379390627e6ab6805a809ea68060f1835d48ad426508caeda1b94f182b2a82015b7cae9ce6f504a627049b58550b5fa35650682ecdd70c22915a589990ead39fac69b742ba2d32ecfad1152fb5578f3c4c74b949180eb273ba8a5d0881ec09981d7521a18823c137134b8d4bbe66fe8c3b8595b5c84ae02cbdaeef3332e1ffd11b4e32cc4bf966d8748c9eaaa5fbcdced7c40a5e5a4b69dd970ace0a65d931fb79a38f89309101e4d29e3232a716e1a00c488cba423b4cb9f7e0cec4b6d003ea0b06884f060038c161c1b514f2057a6812d61a574f3bf77573d2b427b439bf58c66f8083b381e3d6f3ece796cdad1ea7668f889974d918009b49bfa59006fcf078819af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6ab0e76dfdbaead7bf8d28b8834e740482f1e096f8749c277760155bc607f795bfb1eed4ba58abd11e3c29644d7dd4a08a9534f3d8731ed598c725b7be03b5aa4309a2a4a36d6cf03c67576b833db6d166fdd41795ab102d890f18a8e62c5b6e022f279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b8193b2854c985c9e933ae57ffd4aa89e4f950aea560d28bcdf773faa022a84ff850578a4d38337a11a0842e1ccdc1959ed11fe27bfe417f7ab9a1826d18df77ecf4228efe718e56d6cf8f8e631834d4606a304d52a68409752a58b4a9f2e0c7098f9637739e18b14be9aed90b0272d5e27fc9206dbeb3e406f131e51ed4b5503cc0cb42d9716d6fad9076f04b0c799ac13017de61a77df0aa7404a4969cb8e14b16075f3006ae99d8b17f714989c8d6107a21d51c5fd2ce271a103360088a89e864437a1b8053e37232e117857e98b08705ad8d0dce3eab55aee644a656f08228c3c2cf02b2bea066e0da2a5e31e5cb273ad7e13a66a27ec1fc753b2c364d3ae436931f4642876cb789c73561ff6663c4566afe1cd8a1abece5ad31373e36cdfc839f91765f3f623b1252e989bd1eb37c5ea60643b7ed613ca3fd83b9e266d21afefa6257eed25fc8aa9fe52629385ff941770625f6a39e01da1addbf2dba5c73257b34899f210d7e90a61b52a6a03d15a8452a3c1d6d4f68d70b2d6adf41f63b56f4a7298ec0944a946fe4cba63eaf35998e8ef345e3b620061ad66804a31d86e41873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b4593c1aa1e47731e2beaac3bcd3e6dcc102b30f16946ea6d883ea39dab2814ebfc06f5b668405ad9c3bd9300b0505fa4dd26a0e0c3eb3765a423e9a01264ebb949a44a127b96583a1b00518fa31589899b733b298d63bbf69b568e5cb45b3c769b7d834f9fa7e8d0cf0191ca1e8707dd47ff31ccb266dcc47208b205521655da1a49116f0161b67a4010150dfc59147d169da8e41052aa15c626b5ce9987d1c3b9f54782608ac2b5350da3af05700c73c3fc52a43e135ef5b8483ba2d522a66353f044e6da2c4710344567664c93d2bcab28163676fe802afcb0210d1b3452cfffb765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9f78ed4e3f9ba27effa0506bf0958235afc80ca01880b2634cef3d24d588b8e1f6afcc98821443f829c2d71e7a8da5d811e34474a9ed2881d8cc4db187c67e65a3d3a0d8bf9cb8be626bfa34ac3e994e6707bbb7fac2f3144037fc54b84d4a717e795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedec8e943480540b07d644ef9b6c568219aaa16819c8b8f5f1814228ffcdc360c434c4f96fff303ce08339dda9d0bb83f57162c73d8441e90e69c79b79a8a7ca3caa125d7a790d0db89d73af78293141846da9aca3ca52b85e25c18ad97d1d36b93945e4bead9b37d16cba6034db56d5a75ada2e899b569c09e6b928f26765956d06d8147a0b6a6e5c175eeba5302be2755ba742d29db0b1301fb18ee79e77a26ab7546bd12fca29ecc875ab63e85a301459dcd26c2f4145e580e303634f1933a26bff8f516f58b0eb0eb2ced86c43dbd773e642ac231d1f7a35bc7c2b9ea41e4d8517ab63f4bfd3e1e1e1594a679ac114dd9d6053164c40225f574d199f64f317a296f3dd89c6b204f63dd231db347aa88a4c2baf807eb41b8f6aa4f49f0b4b8d21fb846a6746b3f1a251086c965f4836f65cb9f81af1c4de2bcc23d0350c55acdac5442216921fa13d591c48713ff46f1dab6b26b659120365d4eb007ce408c2eb4026710e9628742588c131078fbc42b219767b4de63dabf96ce1136ffafac681e9ad9d95e8db80c418383af7b62b0c219ee749a0cd70ed960c7dfa50c4d031cea619581fcb30c6a9e8a0ea1871144be9a638d57dacfcf0e1f6df6b582c73347968d9dd06b0802653024d0aabc7a04bd5172bcbe9fca55382e928bbf695ea8b9d519406cf0e57cc40524979b3515447d4886a0909739213e1439886e3ceb08836aa9eb3f1270352f6714b7d0e088cceb81f7b49c3b6ed402f513b2b7989700613a6d0f1c0298780fda1fc534c10b1fca112b50a63164570b30980db41c5e88206c238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7fc4b88a028e530a1d10a824db30b100cbc5ae31fdb342bceeaefce417f06f70354ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18846cfa6e9bf3c95ecee850383242c84b00b5666e4cb73721821ab247430e7834566bf8b3c5f6b46b8058f704405d60ced7a513e0634ed0f14b1a9f09b5359a7a55a92f30cd9d6674ebf5e6cda184423b51441d0af655a80df39f0a1c7b110ad39e710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31bde89deecd408aa9fe8ce785aea19dbb0414cee9108de5d94358a688103312fec61f3c209293537f419a19ad56c7afa86bc35cf72f2406a7eae35d82c29da3effb516e262c9d180372087ee0fc2f82a7ac94c392126f3b69c573163f78119bddcf92eaa4f4beab5c42684acdae8849f85da6991f776e5f4be9a8435779286b8399e2ec76e77cf090a6dddb6c2b837aaf7325bfcd2bb9feb665d33c02f983931af0b0dadcbd3e00de3097987b7d94d712367cbab0bc65b1402a01de84cf21b4664623abb8c15e6f04512726950d2f0928d848c3921954d9f67f1449c6e29c70b88578443990831dc89628bde00b49ddc380da923a7b23063256406961bfbebbf22c18ade7b8ff4e7335434dab4d5f98b4424cbd3dc57f87a45730f85a99b6907c53aec07dab69d1fa403f6f7cc724822ad706facbe11faa3e6d03bbc21919802c5a07558205e562008c09962d3c6330c4a8084ad3b98588fee4614c2c4e032f4f329a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf6eabcebddef2b3accee23cf1ccc1080bead6a2a132f8211e80bd905c1b5df5bb3997c83cf37425b5f01cf3cfcd91a9ee623e7233e6e54b09a6d13f067327789907d8183e2897ae55c8e0bdfd6d681a1fa1ead19675a3c494b3e314f0fd68e84244dd033de38719d008681bc7b3eee65bf86686d6ff445b53361be2b67a34c821c920eef3f65c717408a7b3e154dc10d1ae8c6c572928035a40af571bdac18396c69096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b0140a9a570db861e7c801a56646fbcc82dc0a169217ae885e2a864e68b7d480de8335d0ce41c7c259659ee7e97fe9b08955d3a10a8eed0e3975f2f5a5eece98ec259c5b5b286442cefb88861179ba7ca1fc4ced0d0f5ac2f1b0e791acb6d0240d51cb6b3a43ca4f6eb78e1101382cc791a144d04d65725f37373f3b1399cf7de07ff5efe87ff3043c8965c890b8820c7594a314472bac4e868721835747572fac757125fcb40f8433cddf39286ffd5bad70ee5d48252955a6bbf5109442e7d095a22b08c795f5126d03cdf8270c8c7e3e5562fbbcb60500954896598f8fa48525a7988545d65712b627691675ad48a4f283cf4c46f437d834b732d54e4649ab2a3122f903189769ec0060d345ba8699af625165a704c591e5a802378822e91f7c0efdd86b5c4682bb7289fc154d29b508b582a85963e8de85477bfb65868d08c073de1286d4adf2e8b4e1dff1a28e7543944886a4ce5b1af102571392a22a42c129bc99d5fcb379a1e2df2209e1ffedbe89fde4582404dad4ff1a2b2213ed6ed21a5a337f9931b679e925497a2b5b16cb82383340a4ea47bd1591c3de19acb476e6446e2c7b9147ebe192f54aa2c1ffdd0e45e3e829b397b1e6d531c4ffd8bac53c5c3ae81eebcce8c08ebcbf4f6607c7fdeb32b09057985c375cc3cef3bbb9b7281f9d2019c034b9bca0d29c6f9e81629407d607d4841a2f937fd26a74d201438c946daf6cd30b6ddbfad7ba58a81021c6beef4e6b79b302b5eda8ed4bd6e23e0fdb65198f8676473d750df4777b7cdb5692180c2aad9f27e95f50dfb49f5ee864906c6f165f4bf782b18565406d5ab4e4d9d474848b4b28714d6a034ae2d9fedc38d3a4accf7e59835ecc43bf82fe5595f1503bed705e1cef53899f3005ada95a3d55ff30972b70fcac0e5bafee91614414d12785b6569d4c42d6ab3ec1efeea9a525cc950701719364de56ffd1b8eac27e3af7317e42af969fd36d2d4c20d8a64c9b8408d4c78904de4f0c35cf032699330f5f137454fb0846e24da79a234a0fc30160d906a557d9d529947f4b453dc11c2b5c0a8e22c0b12ed04f3dcb0d421eaa400e2a62146c012c670fa72a51a8af0ba312708657bccf87ae987518624de68542a02a4ee6d350bd4d03f5260ef2b7bd4bb27045e87eab75919823f4db45c58037df4578c6d334012ca63138a438cac4641ac379b40c7af066a7e2a2172295fd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f081815a4224fad4dca97a201abc51b192e215f9140159464fea471f3470c77c246c5c535b9cec2967748c419fb7e1ac1a4631143cf93dc5a38562ff05bde9de2c749ad1667052280b80b03290b80541cfcd195c12609e88161daab161c910aaa99be3120ea2b46f614b9a7aa5b85b1644aa24bcce0dff48ac7058a48201e4e1788fe3a24cdd70c213946681b39b9217dff0d5fc5bc63f7312472f399026ae5be291e3d2e1809bb1ca9a45e7c4cb2a8ed70c831efed4d85eae7360dfb0923f32945f9f7bb697a335a9cad5034c22e940e1483ee9f349d8d91194c4066359696805cf88365e9604d17d86bf8f70c0ac76551e47e7d3cdab03dbfed0a4c84ac01f3bca63f976143391f3c9aa6fa929795e2b666a103b4e26c4fa48de05b1543893ce589edc6b296fa991f57d21810d433c383ba83b782eb9adf4bbd194139c8c07633e846e5e23721bce99400ec86d71510136d3ae09d907f56e2f82d92387605dc6c1077864d45c33565bf0e0c18d18e2ce94779d8b30faf8d787da7db0e0d1392542f7e70e16220c7c4045a2d31f8fc929c5aee5a32243185bdbdb61874f7f3b4cc2e86851523f44e6a1c60b01deae3580a1009817634999a5e26d054d661ea00d30af45892ecefa9bbefa40166e7d01085d0ccccb3a67f67006baa9b8190614dec5acb53657dcc0b18098a40cac531737c6fed8fbc729f77f861848895f95f3307561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c806581a433b9cf3c11993196ea5dc37b3466cb3c0c74961d5137dc0dce22176592fff7ccbb08af1873077ccf742efc11a60ad6440a77e1ca458be7620a5dacc17334554e7382bd05a5cd59a521998505ee8b2f47db0115c80b7b1944f7e7c86186384a955aab3f5234f085cff42896828eacc61513a49f8dbd3c875b9a02cf97af7fd232402d82b9e5e1c6c41ac2491f6586c7d466934c13c5a4f96c6039928b768197890bd61d039a4441c55739c5e3b83c71738f749dfbb46d92dfdca524a99236d88ba1fcf8a5cfec442d1b45a6bc0c11581365745e002155920438b3e8a1d741ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361f804e1cf285b8aa26558402e9e2f51031be55887e83b338f8971d6872445f081b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3128b790efe2a1a9dcf48bba2b8d40bde20daf0d1ed66c1a1199d4049f0a65b71acc282d4d4e5082c0d2cd74b43a9bc0fbec0a40bac1c53e91b3b7b67a5ab44fecc74b8f6a19e590ea2ea9efef1c63b8d6cc338f208a586dff444c36c19a6dd7d75a5dbc7a2349950d0ab27b19bc6710e8fc4207df95e43726697ad3060307b533c46a35e58387ab923ee895121d8948f1c4dc0e2c2eab9393699f7b9c25c43944dd5eff21cb53269c9bb73d1396d9befc33a9858039f59b79bb4b3bfa4e3ffe8bb648dc4763d7d5f4d46a5690b4fef1629add47098380bc6331b4011b9efa41a9b602ff9b36b5c686ea34f98833c09c6778975b49098a5193a2f49059cbcd7d11fa4f85494b5cd4f4f04ec93ae7bf3c6180436b34473f647d495fd93c032c07c4f9b025e2b5ad22760644c7a9da35437f0f407d04e1162932880f690e6015de1b1734f821acee8561d4283d1163e1baab314a1a723ed28bfa6bc9b0d30738a628e1ad0cf633cab57af130393e31a092d4c79ee99e9731fbaf8ed8b9dc8672fc2690e1337bbc039684f3cdbb48c4619727224414f3371b3e6f1ca53d8b194018a84191a8995fdc8942dd5dd043335b98cae071d2d14bdf84ca0b8d655221ffc005d20c9f4f356a8d109d6dcfcee944ace466a5727b5c7a9ce880b36e0b200e44be05e6b8e9d4dc5d4b12ebd2d256d06e390be4673fa158f20c2a580d24c7e62a7bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc132d86d206b7eb06be624b9a1f3f7dfb5c58ea79301edf6cde5ee15092b8ce6ae235239081ecd9e96e874aeeac880da09207ef1bfa26662618f2ccd6059d023de10b5258a4c713093cbbfea67a0ae84357b3beee5c67b92c22faa1d07584d6039638146859c00da3ec64758647cfa15ed943702fcf66d993ad0048bf796bed8c05a4a8c3ecfcb534bdb8a7f81b9d36904a76f5deb613ca9b6f70491e8278ea639a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523ea0732fd64dab7ae13d638ec3369cebacd7873c3ca5fe44e3995187328c7f48b40b42d22b2f80d9a68f89f0f9b04ca9dfe7b4856f4ea7fe76700c42d2b50099bbce383887f1b72ae565a740cbb45fa040ac1186507d4e6d746da3b858a84817a4a30e40e898d30c13c6ff6f78351e39e60180860db0f58c93680a2d83aa78ef49690b5d93a4a464f06a121d273ac36da2ea2010843654ead63a2d3ef2d955bd7cede40f04b310d1f88b494cc6da013b5e01bb1ec08fe6e5df0d8915f30acd79c00a89560f35a86a6a327752579c3d11325d54e3cf443468da98c9c217b1f2bc342e0a0a1012ca13ebbbb2ac23cae3553992ee90eb035c86fa15560f0c6468e0ebd6f97f09cfe892d89c50fb1bf3d119d0ee0fdc5173be86932fe2555c45a70ec7238496222ae776ac9fa6f1853987e629835beac66d0b8895652244b9dcf9285152926544c8ddc2be034841652af83732954f0cd195367d76541c721c7fa5a45bca80e1b34a8a1baaa1a1e10230c98190d19933045813cb7f76f6477af00e9fcca0a4b99f2f8b0d240f0b40c6240dc0e9d60f6d0d1ea73620055248c9ea9199b6cf0c1209f4cea4ff7068ffe15dfa43b43177f3bc65d89a7f3a31cbc60210aaf2a578b34a9e26b09962d4b405a8f7a1be84b6a0653102a4fc4130bac7e27027e55d07022ebacd91278126e93a9f8c46b08c77152205c29cbf478302001f167b2539cc55a6ed64a0c67c4f1e1f923308a10f8967c81a13eaf44dcbc8a77e2f5b080cf8045128e341a551a6a393ca2e4c9fb34b376b4b3260f0877875ebde4e9af29ee7b9e544afb23ce0a3293154a1d702d8890b81b2a82d5b5fd5dffd8253a8ec4c0c0e15c0914826d251b60fa3840ea074b702df515df518d997c914d2a5d965bf21e3493da3fb2e1b934b21f5f8048c61622fb3d9c96de88b82aeb42acaccaea5ab08b557d353b4f2b6392e1b51544eb115ec8a56daa3af0abdfffef7e916218aeee33bcad136563ba8b3fbc1e5009bf1530a087a610bf38fc3a74f21b967beea033513f93f46fd412747a1249ba060516992387f4649d7e8f4bddce18aecba2a51fa6db65bd753efbe88075411a2fc61f08bb6ebd1dd6fb32e61284e585f75b5d2a51f2ce72f6f962931ced49ac6a311e9957042a5ebf4c2d542d989f45e8607d4e8bdfc71404eacafd049fdb1f1d01b9c5f5f9651e05cac178cc7dcb105799202892bdb4ee51dbc2fd2a4eebb1ba561b483b30f86c0ae10411a49d540b907617d88582f73af856866975ba4fcf711d1614faca185eafee38cdc898aea1eacabe9f8b8194c31de23f1281aa3f97a4a40444f97f4aecd5767baeefaa9cb7656bd4f5ca8c5d8a244f8585fb5114c6276fe29f76f4108c06373a77e49e63c57fca4b0779b7cc0c24b7e2e3a940846cab9adbb5ed6444a20579d2016e84d8f5dc64354394a64772742c316ea00869b1369140644947aa69f346e83ac44663b268eff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a388310c98e5dac68fb329762d1d414e126c0b6b5684ea4b0b32f0d7c3c48f249751f19b900122b5d00e6f90729ada7f3b27d7c4227868932b44f8ea088f92e072e643addd0ca38545fd9e9d428fa0585cad7ec499a9e55731f8f26b3d29161e01bf10a4f7cc6e0481db5304b7584b13e8d4dccab3b7bfb22d899df4cc4db12060bca2e8972010dd00248e63a3dae63c89b1807434b670971931ea81ad8a7bbc42a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855bb410235adbeb6efdc94d51325226e1195cdb743050f20368353bd0c1cb03147b52be50b90995290f2e59096717262da15d6c01285660af94c34b273b81825609e68fc1e476ae2fec8f0e40b942f877895fa0a75922f300999f9dbdc291914f860c906c73c5752cfade9f0a679ce994adb44f2e7f19bfcba119913d88dc972123fcdc240658262883cb944e2384c7112fa2f16500d033f5fc57fbcafb93d6c3cea057bfa7b316dfe36a4437adaecd833b33f956fd1cf0da36c4625af81ee6650001f8a0d575b7b2a47b26cb6c9d02574cc7cfb680e0fc36176992c4e2935dbb2e076c4088f826aa2143cb8ade42b3181f695795f1c29f6291f3bbe2cf8a965809f6c6815bb3b8084ce481154b581fe30148902e37ddc6d665a38296f41efec2de06159545831b7f6cb55c2d48fc5630c931331b55f749c44d4f8bf649d2726079f98e04255058f708e54012eeff571e5edd346cfc900a209b0f0417bcfe925abee168afa623a7934f47ba2a756fa32091fd14300d6629f1775b0f050f53a972831be6f3df47cc69f153a4172d5da8bb64e18037fb35c00f85614c150b1e010f85a7cdbd9339c0a12477959786400f22cae3127c65275a5c6958f0ee1d886b8e37d95d39868e28297b0553411729c16c733165e89487e16aaa073d89116e598c98988de72f268d9f1e7fd8539f784125541896f31e49edad7571bf772f80df27c6889596eb6313d04d618b3aaca0f29e202394e2f48556eb086dab2d37a7194ff5724329a0674cd8c8998f6126eea6b2cc0a57c1dbff11e8ff26ec9d7f02ca383cf350d19699fe88cc9a6952801184d45712e4a6d84e4833d23c22cf6797648942c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cbf072aa8106edb65c5d0e1b4439f0a395145535061e5c6e3575e0e0c440be8a5d981ba7922e4c1eba1d3a336c79fad2e3f63fc2c8c4a8e4527d4ce6891296c5761e5134d4add2d619ef7ba493b440a0b65163c15048d6b2cb0715593efc0eeb4b3eab81f5558aa8a59a885287f6cf1d081efb81cf86298aa52bf413c84ae9685073135247ba1a00783fa49fb91f05c8bbe5aca662b7197e3f33eaa580e9a11679e74f1433044785042ba14c45df87bbc70aae33ec2d46e189718d948742ea21245361bef07eda5abc04baf2611e9e33ecf1bec41435581d038c9f4f130d9269a5be87450080433bd092388451722a152cb05c5f4f68ac0c769c12afbc6336830eb40a2e24f4614c4f3a0541295ada422bb99c269cd7a1aad2516b1799742fee1085b6c413e4472e68928f169e4c0c7bc73add0bd5adda7e6e91aeba2dad1aed01bef78e1529ad80e12dd334386b83576baa2b550d3f435e9774b8ca03c1fb87fd36b0ed44d8478e2c79b2b9111ee273fa4c4204685c566d7278e5ab0ae2c9d28235ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c417a86e1805671d59cabd11330fe5685cec3c1ed302ac2fef948048e7de6e77491cd17f76bc7a93330543cb84ae778e7a481ce7eaabcd935a5d2ac5beb08928a534a34cb2c972f41a1a351c6f302030a093a696cac5b81232b9cdcc9000c0999501a47897e2c3370b59ed97c37a3624432070b1a1dbcd69b1d6b9bf504e6d4f0aa48c9aca437afa1b60dcbc95283f689e8422cdb7610401f57ef255cc45021eba7536eb662c97ca1b6297379be00f487587033645e7b5a2999fac10b9ef401591fe1e5bc2aadac34bc7b432c14fb642f4955bb39aa1bfce1278a47944ff98e71f8ba812f21bfd994c221cc43750469c8ea164701cf5b5fcf58b76d48a2c880f77c568fe60f120ea5ed02cb0df7041c8b3b2269a8f88bf5abf0918477659c73821cbab6951b23b6caeff0aaba54f3686a364043086d1f6a954aff75945a823b3f761ce1a6f5fb90a9ca21fd2f0c05ec238d45be63c66f55681d79512de4d91215ea4c79b162f38feaf815fba0bb8c4eae6d4686afa5416099469d3853178236981f2c44e5fe1892de9c2c3c6e2c6507a424b5de999cebb43a61c3aeb8fbe7d9adbd1e1e5472b749733cac5f22b8f551413c6adb26b13a7ba0a651bc4c2cdfde56caa814571e904c6c5a6fd61dbbd9972e4ff0ce944b9baa058a2f99199f92ffd0e6d3091982187e8475cd0ef0ad3ee464866ae4c456dd489d67c428690cccf7aa8480846682e838a8548208f8ad962187732cf41d99e2dfaa5d3bdb326aca50a124faa4908a9ea0b6c90a021218a0de1848261c434c16c7026f8d6ec980c768844133dd7c62bfd47f962558581b4834076c7b730b22370d734c99892a318332a22bbb2ae15db8734c690eee4c2a422c9dbcd5752334d950b10929191e87e26c8abae1996bcb9ffe8a847cc96d10364c42ba14f437112fac8d013686da347fb2f05b0e2274f97a064f0542a52aaea4e83ff07ebd5a5814f33d5aac212afb75bb0a666e888f204675d0fb34f11d937e877a20d1da80ee88dc1ef7a855560245b94e1690debc3140a0fd4706a58e6819b2a1b4014604c6287a60d8c1c3c52a600e67d1b9a67e3169744654dce0156847e2d848a5d32187bf691d0ac89352b04aa38392f28dea6710d30b6e92159c5d2b346a812a25db4cee7a96302efce64ee50f9c90862833e7bae684259c02a66405a28b1a3f5ab23d1e707dbfa07621891243789eeb5c3f0d071ccb5d242324da703bc6111e8d202af3a6cddccdac9b8ea4f2090583d99b922b384757f1ecdf99a0f8723068a4b2eb3a2e43d2f7f2a51863e43329a83492480132cb11e585a6486f581872d1717bbbb361633684d71577b6ecd031b708501239a06f812fbd0546230b9d1ea0687a2dbb2e225ed81f15c88977f7da55708fbb05559618216468e4bc0dc1f45b62479606717feed25b3ae5be836b85fb544f9867946cdf1ec5b5a5fcbd726e8cf07db24e1ce465779db863683095bdc9147c8ba76644ea839c410c70608f560a28915c42ad5aee38967e2e5ce4b459964689684097433e70ef790f83d9db879dbfbc2328d26cba16e306f870b7734b9bf3146e6beffd7f6035f417af548d43e1b9b58c065dfe58a19b78dcdca46da375dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f90c7ff7b9356950bda18e1647785b7998678c8cf0a6a00f33358e18d82a27f7b2bd915479615ff626210aade2abef2d402b8bdc2956576c78aff95cc83b0948aa00045ab4932bc0844dea15048ab90fc27ffeb2e08b1a5fd154f97b9727bf13fc1f7800f5c5a731c818b37a5f6f05ad8a79866cfbfaca23c99bf1da38e9eb42e624b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c58c5766ddd864601b50b54a1882f2fbec67945d421339ddea67cd545d3b0ffad5539cb99f8b47e1b8381eac2df80ab1c68a344341ab59cab4034958355ccf1586cce30b0dc930853f10c0789bc2f841b69bdd0168a242a2de0503b381785291c2aeddd812992aa24ed1c213b8fb1ab6ff43197352c4b8df6d1586438fd8e1cfa520c09ca192cd9a88c2d60362f78a51915d8957dd4e8bbc5947dc48d036e96166a8341aa3615b5101919ec04953aec2e0fbd2b7723fda15d91eff9b97cbd2b7a6bcbe35a0878b649eca9d05bbc27c6fa69aec607a4e8698343883f4ca27d187d692fb6533d10638f2e16a0d8a0fd3743fa5281450992b44936b9f72d756cd4f19457a9294ad1826bf8babaf9aa951e37c4a0a5b4c7cf4fb21fb574ae896a2c04690071fb2d468d1f45cb998a25398ef3abf72876f42080925c2e4dc920d374707848d1d6eb3bd537c680c7c7d1fe4fa537fc8d702d2b3639053a429725b310547905cae16853afbe75e901f26bfd66a0e2c36a64c2631997cc2bbc33d2f22a43800f5762521dbc235721f6bb07536edc154e561347b503c9b82a71760954f4a4aa69559b583918ad4b48251fd84130c99b31a05d4f402120996ea5e09baefb5b934d298f53de4413882adec70d311adb1d0f5e3774945a2ef5c112bd071a85f32df2f4243d916a0403c405cfc74f643e715af121223b771fd620ff7361cfbeff38f7a77760801d4c6380acb0ca8f8bc479ee256e2becbf1c0dbf6f703452577ae72302ae890407207a531ad89fc59fd52b71062b8c9f7630e053b86516d29cb4a3808244cff1b35346204892a1955d9c2ffe7c8203cb50dfb6ce2e3a1dae108e1c7cddcc583db0643981d8f32f4e327c68e608d781d7a6f868be2bc3258f5aa5480b7e6eae6c193b218ea6b6340f4bdb4679d3226e7c4cf37e3aa658bc764b22b22841fe3c9ffc49a3a1e7b5b9dd5ab5b5dfc30dfc1600e2f8e4da4ada3579ff03106bae61b79e8e93095517961a6cffa916e565f96d9b27ad91c71bc62c9b0a9c16ce1988843a84a273b45ce5605de4cb69f9e980ad4c51e5ce4b7655732bc4c553faa121680127d4e00a2291b65dc9aedbc28784d4913c68f2e6be968f6d3b0daea4ae3344e89566272f3f0900c53487dfed7fb3580c46eaf4ebbb86d5e9eb424ff6a5d80e15c843f93e48147411aef7dd22ee50516af2ddd69eb5442efa6c13ffb43890cd48b1492b0cca44d910d85a34382b9b520a1c9e69c178736140b183ebd3d30d2a82904f937fa04b7950b133561aa33b23d5864ac5cb330e27b743b69eb5143976b5e845cde34ce485b74fb0d59371b127784c9571878575b5777e3e61d43d4efaeb184fb9488cdfe3354a967a97f342c741b8d653dfa7b29f79367b11e1ef0e5c3e7c13b78863937dc3cf4ac7c709695fda0b955628932ef58a7727c5465b192b5c320193ec5d1a196b1bd044bec4d27703227d0c26f53d1a6ff7b79c0e966e60b487af2bac39d50b1e1cf2df360df293dcea6d2cd87656bb326e069805cc437bd3e1fad3ac51251280923ac702b6921acc51ecb3c59a9485fbb99bc070351b02cbed830e4776f3426214068e632c3f011c901d1e67f5ef43b3ba41a17aa6cbf8e93da01a4c9d34dc205867b70832595966015226abc38998e7ee1c78b58395d6d90196cb7985a152317e71ee90317151340c9cf37efd0383ef1a98bf2f69658af6d1d7c13c8e6d60150a5c624a1a206c62876c82445894243f14c4c6ab92a0c1aa8a214a288dce63d895a12c08e7b49e0df4b15a195cc8b1bec997cc3bc4c9bcc37437fa769446374e53ad97b080664bac9513f1091add92dc8d342756fad1f70fc84d81940e57764f69fef529b14edd0a85ed13d63656cdf98afd994118a13ff255e97777ce1991534b1501b8a54682dfa85a855a33ac76a9785750f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa139194c88ae6dbd803215ec05601f018a12178866eee9a8c8fac6c2c5c4b890c277bdba99ffd0fc3356293aff094e234837aaf9fa301c6498c50bd7a525646ce97e48f22946a092e28d4306491653c06183fa76151614d10b8fb7b51dbcca7add5cae8d8abe8a32ebd9a01374bb520640353c89e0d8a23d52d21fbbc7b04f600583d4a896c950c9633854df40de1d2805f768279e280b4d14dadeb4a90c80fd0f1af795443875f7184331d307aa28dba3fed73126d1d27baceedcf376de52a30f3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b15a001934886bdedcbabf89f6a81e8253c0c1bb47ac18e9c7b859f0fcb1d92406afd296801720a09e8caf04014637102f8828d601f9c4abd6b712ba64903151765c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3eefe6110d527be2563f0d8b7eff8e58c60b213b1b68be8fd51a26f2e19321a9cc416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d004ad6ad7e772d6f3c61c65a7fb255e2b36d8bf583044c08ab97e7e5e6b8442dd0fbeb27b75fd2c9163de2f25926bdd72f8cda9e2ed8a97c3002675f0847c9d647e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008aacc80a7392c51d971a98ef3dae6c908d9a14229615c83a5db97521dc4102c1e5feb4ac6abeab2760e40cabec66509fc36609e4a4f696292597f578d67881af954115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d72565865be8bcc0af888594903ea0112f6c8d923c5726c4081e8c856110cc7339cef0e2d097ec6582b8a0e035a7630ad3052bbb189f3abec9cb29822cd92d9ed86ab7029cabd6297c2a33d33024ab77167f9d7b2dafd5445ee24ca6e13a366426d46c7278fef0b7d6748faf50278bba7f6d78a85a9bce97f75700c9e434209491709d23c599fc95a194340402cec351ecc78b946ea27cff1da0ecc2b1f8b1a648b1dcc10f799cd0f6b65f95c4012445497e5ba3cb9f51964a9468940b27bde98b487218fb1c1fc72e9af6b866f430be2a67fa376392b4db2f4dbf32772671b6ae55c4f273752e4728fa558aa6a191eeb05231766e3a1c3702837be93eddf4d294b1a02cc4e81d3a5ccae5eec79eaa8c7ddfa77ed85b37b3c574eac8df7cc2e0b28cb644d27e5d3379ed13f45196a63d24889c2d6589367343251dc17f64b2da7ca1abe211a4e5a3389c1866e1b33f67c085083d7b91d72c0889fa244f307df02f13412037795b070107e5500f83c37dfa07be8267d07897391d51aeb2811ff549161c2a7941611005808211d3e74f9feb3c54b654bf825ce2d0ed2b317af2a795f3b040bf49f26ee893d6ef1736c4e3dcc75b2535aab0a05eaacfba57ebc6f963a2017bd0936663e5ea1a7f63eac7cf2357fa5d6c7e39aa0eb28ff39d2aa4dce590c8727c57d9c64366178e704cc3b4e6ca6f6f6e5f8fc43995d3d558b5bcfd33a1c95b11acc6e8b8d2b23754c3445e805bc305af87fd9e9c94805e81ab5f722e102a2389cd9d5c4bd9f944c2a8f8326ab1d872ac975254430ed1497f09a36fb18223c4c0d5681e13bdf65857afea01ba858abefe3e5197b4e02b4671df4eb465105aed3ee0e873d81cd754ea478d8eb3298127766c0fbdce48c3bfd3028224494b8ba0543298e10ba864947ae906021116bccd380e14d7dc579f60b9ff8e4006e55f4e63562102d94132a6ca69490e74b2a64cce7f48324fac0fc7654d621d5af9eef3c916a0102e2b4290a7bdcfdc970df7a9451e95cbff64f27243438ba9e196f71a3d713fe338920a07ecac56e55939154325b7246f147302a91969bcec255afbc92ce2ad103f2d8d01edd128eaa91639e8a9a6473e432bfa38ebc5eb435a82451d775f2e20c893b85d2714dd6e048d53ac12d3e9fb1f48646fc34526f94c3c7c562a0f5b36830f3cc9a692796e5310a0644e8dd560647bd06ae26093c2732133693fa6a44a35386b755fbb11dcbf4676843679876e743a98897cf1c194db79b81dc5a81a22feed8c8bc40801fa466117e30e67ff307d6ddc3d3cb0375867ce5ebdb6f9c191330cdf0c8f241b6e4b1db276d026fa7eedf22fcd0e807448ec043f49baa7abf7d5f95573e490a1893c0c721d4e07191bcc35d0bdfa5f571bf3a6023ece0d93e5165d4bb7af4a79b425777b638a92564f4f1acde79e2e48568c099d888683a15807029146219717801f529d74701c342da9b1961edadcdfc2a09f3dd9d52a6ece7a4697277e592816d3a90735a0ce94ab1bb86d85d7fdb02e184e37b4c79dcdd0f64b661ef78e1fe9a67283c25788ccfbb873c08d6abc0b4520b610406678abc8d2d5797de93d99e7f20466f3e6f2b55ab1c1440d1d9563d537ec195e6b691927d487833a9fc71ef75bfba19c19498bac55acacb1c08beecb117886302ca52c050098fe37a662f0b35a1c406e171224d0c6aae45a7c5150a3f8d2ce634328fddfba018a6fcd8bb8f13473c653a080c1381a92c409ed784d74db353c1ba424109b225dc70aec00ce6fd29f4c6a342ff9b9a73c21cb43733d8a233811a53f5ad797c454863bec4722284ca49583e602cf69ce292967a8fe41fb8471f55491aabd27aca1ee8c8825c26f1bbfb3a3d4c3263202a4d6156c782e143114db2e2b1f9c2dbe5d157e2d776396b61abe054d052cb357d267e78f80b9c75c4677b19f75cc767af9ea62cde4b69675279e8b89386ed9f5ddc031a2b6f7d33d6a846341a291651bd63f848ce649c7bbdaa74c7db7240de38f371ab25ab23432bfdd470eb7d7da1d366f9373da969fb20887e0c7cae29ce4770e6285caa529c11183a44bb0b9d04a12fa1d315e4196013b7e7035d2697d2bed4963f8daa29624d43bd2900e5d364febac078af93dd55bad4b9774830fe5807815cc861f08435a1b2e5bdcb6df9ea7227c0104e390aaf179ced4703ae6a8544058bf6791dcc9d0d65fe75d295a54f56b418213084e232034812f5e093941e3168f5c80fcf3e5053ed5e2d6aa5c22f646ced3ffbcc54b265d03a5a47238e55da84d1963d5c54817558523d648f0d726bd8dad3676be44cabc0048ae2975c4571f72bd82d73d758e13779215f192d27fca5697a1f933e58d16148b10e8f756ea94f251ac0c44464d4972fc93217e190073aba46ee101812aa3faf3973f51f88e0739a20458b77df9fa87eb3f20b36fa79948f0386daedc7389a45ac0b5d27092f2607adaba998a905fdee31f6c37f6085798b0e34781817dce05dc55bfdb5df3ad01d5065aa17f212db24bd976c23b93267374bdfb8d3347bf40dbc913c315c92d7ae037fe70a11ff800e7f76bff333e02dc0ceb96ed7b76f2b0b52d834ba6203a02d063f844ebc75b0cc6dd7a8a5c022506d144b0e6a065c1a4c545628684a849271fc06d4129f947abd56eb55ca8ccf7823b26d4fb5ff474c1530b1c54a557c66590df2eea1e693645df4285dcd5e07b497b9289630c645eb16a54d19896236c1a6fa17cc376294dfc7ef7ea2e26279c9065d2f4b4a5baec265e260641b86864cf06265978d368f0282675b5ed37e079528d257c8b62244274a8a3a0fc57daff788393bd8505c9c5a68a367874abe84d5e4848205b739401ce71ed52dbf98fa6af07358a9f0cb7ee45359c54794205824d9f47bf6d4b936c38cba4d4eb7e20bc320dfad62d25f42e4227e2f739005fc6529aaf8ef562940d3b00b42d1668507507d67d09503140cabeb7a9ff081d2d2d5e518b65b36f4bffc85113b91609aa372b500d5177b5bd2ac61fbc2d6697599b89f753cb50cf1110f37f271fe2021145b56f41f728f5c212c5cab4b41fd539e5a29b4e6770299463e7c3a33f2ea2fe6bff6f83b6e85a59c5b0c63de1f70ecc9082c3ba678b777baaf450a4c57c37a25781761dda699f25561d0cf0ad8f41a05a03ecc2b25b4bb9070299154a4999f052b16354ad1439ad5b3d5bb8f4e439619810f6e110e2a2f6419ea88f4e2969fa9d1dbcb5f86320ab592ee5c360b981115a7f17bacff51cb80b98504ba55c2ec489257ce1cfd8d1cb4d82536b491e8dcd89eb0673e3b66435e1d7b5b92b7043e372c9e8c5bfb1c9c75290e6dc90daf3bedf85dec6a9ae72f82dd0e9005333632cf98e6d5e54950d6073140ea33c18f7c73b645010aac278e0282a16aaa2aa164491e200ed06ed7b20f14cc9008be4b337161b97409f2db44c4b56f95c81e5906e8cbb7caa1347f646128ab116230331e35c752ee8fbf6aeac6cc4187eb6e0feb993b3920abb427f10c82313d9bdccdef147b053b0f1ddaa56cc6f6cb77763ae3aed7dec296484420c19a0ff4073130e6c20c2938523f2ee7ee1f6dea9ddb4662445d398741eaacc591cb980ed2ce765517730922bc0922b9e3bda1bb47ec9d8e302870da1d423d4b0a46b23aba0bf4032b2c99223484fd2eec843243acbeab1bfe8c051896a56e5e8f38c16b7c15decc2935d8258c7fc2b1adbb02e59aa5c99a201cf4e62e0b7f5017d91fcc0024591c5bd0af991574ec4325c99f9d64551034293e925729d6dbea3bf97495d69df5e5b6717b81d3414ab219baa2570413c792b87757712572a93084c64f21cde7a921c1b1f728c77d0ac7035ace376a3f5dc38f21b4da0bd251df3a1f53ef2fd69d5f610176e18e7ff94882b160fe4a344941febd401a8a3f35ed6189d934c2c1f3db7265f15bf367e4acd41488fccafe37c65445dc969c1b65aba722ec3d891cae5c5ac496a9beb925c630917c972adab0f9fab2a27f2f023ca28ba807ff351be660da465bf9e7256e75661559f5f1a8921bfe6d6e86bcd34634817029b8d8d60a29d3a6cbfebd4b5c8d81ea21f0ecc63dcddb0775f7fa3c793c4bcc3b062a36a014be26fed38b64070dc8c5b275b774b79106c63179d1bf2e8266efa406d15aadf9d06f201c8d0e99afd7cdbc5dc7297bf8d21cb6189aa3326a314addb81d6ab89384e9914b922875d4996ce62654a1b8fe22bf6f42b75cd337b7eb96376339b8a29fd518fb1cb0437dcda836b729f2f03ce997a9bbf50538fefee076f2eb5b3ee1f61ae8c68f350a2842232534304695eb8889b0ca654fecceab2da0e046266b0c8df6351301857be185b392a0032180ec8db5003f76bb9844d8c8b5461704857f918520a263beecc14c82afec01e6544b07cba95fcdcbfef1f5402ad8d9cdbc7d4bb092163e8440dc4641dd81289886dbb45dcabf76124fb902af8b7b456442430747b54e98fd91bab46da6500bc7e9aa9c6967b835350d1b14f507da55c9ed24988fcd256a0e1e593ad010a683f0e951f458806eceebe2e67f8cf9ba1a5b02fbec6dbc7fdc4de4e528fff656372dca3642daccf8cd01a0b564ac058a288518d786fa632ede88a7f434f2245a199e32aa9f8639bfd34e1fa5f6aab1d6f9fbc0a40ae30af5899182ea38c4582ab392637371389ff45dc4e0860866fda267e0b273b976bad532011dd1548ecd852081f30e988968c87949b098569fa1aba0fe06c9fac5ee12ac3db89e4e90f1be64ebdf98df457015aa041660ff47e1eec8749c74a09a904096f76cc4adaa382369031ada5700149de296f9fe32e49a234574ad6cb08ba351716d8ab6b4a6bcefe4dcafa6270bbc8a01d230552c685289e4bb172575e44bc0c8847f38c591b9eb48ca54df5cb6289ed6574966eed166eb2506ac0bd4f3cc498d6246b6354c44888bb16550ac304c5b3cbae7baaa293ce6ee8bc30ead1c7c83c705d7c4edd7b2ec7caf166b64d87ea59681083da6d5c538a03ef4ba50ba966ba24470fce30ebb44561572c7c5bad23e6eeafe0f5e57fd245ce8f38410e91b19d522b56a33730d6b09dde5aaaf2b92f7db1774bec0cde2bdad8c5b337566bb7ef2cd199ac8742f60b8408abcde8bf45cc68f923fed7ae3f9c51b547a989fb04aa3cbcf8dbe8aff57d67ba7a2fe22beb04f6647c9914af3328e21400d596402b17cf8ca80f79220d58e10b2d768106c00e5102a4681347eca9041e27ded65885612fd211699fd9ce1d3e9cc89fb61e8c58b105f05058dbbaa93d44fd34e30c7f303f8120962392010eb0a7e6379d87d09b79e220246be498e07124c0aa92edb9355135cacc5b938530398f94d6b9924808d870daac67461d06bde65faaa96af7958567739a3bf13dd736774a345dc3141fc95cc0bfa675ab53fac36d469a5779f16b349ba45401e3d2e08aeb02d04c307b9e2992a7d980d2ef1466a2a054cbed0f0a19c4676a2644f4f6e7c207681f6eb5b70a8af3cb66b854d9880eef3f5262e716941b7dba63da3d6763a53faea77b70945b7b457311f88cc5c6e355764aab860b8f0554f94078e70f284340945bccffdb478f1c543c97502c617cbb46d9372b77ab56869117035479bf9b03a50ab000bfb47bfb7e2be44f5d77fb7fa542a96e12cf0a62ad0ed2743d7b3e9f58f606b6a8ac51f8e0a515d509eb9bc88782fdf2f7ded96e79fb132b082a0372ff61865bc6f66fe1996fcbc0749e1a6ed6a7790c58db3b9189dfa5d00286eac8cddd2f1065db4770d0fe2d6c21f71615da584f99506afdcb583b94b8e91558e90d911a26bf2d636ba5452d5d339a93beba18aa09cd273cdad5879c4fa1c11f34ea5a41dd2f24fc76f6cc6509c3ccacd92acd6c90128f74b5712ec2bcaf1780bdb66d61b6c0e1c2095eacf7473994840c56f66e9c65909eea313fcb19f3bc3c390cd7e8b008023cab403316f5aaab189aefb381851836b72012df74081ea5a8b9969c774d7c219497590b3e6ae55ec03dd855419e00bfc9c332d9f4464aa866ea5fe6d147c0880b9c18c0046e5d753435fcb64573cc206c7af5e1dc8695f3f1f0126bf5bb8a43d32be6c9bb2377b6a885c08a68c87872b86370e3eba78f50375b44787a90c3d7eed3724fc03950f34ddf89d7987d02c2761ac5e9d37858e0b403c5a0ccb157bf1c557f800073db0fe5494cd6787e00e840b053f74d6910841042d629fe2cb436f539f9ea71193eb8eaafbe6cb7adc1bf508d84f11a3be86ef4aa83af928ad5c0b36f14254257cbfa92f49a08f819f9d3c33c2606bd3a04fceffa79f08125a0d253ac56cee7b54198f5794e17894680ed1b9a7646595711c44957a22b6724a9af43a0d7682d3f4b3ccf957ab56399369b75f07d9cd8c0d4c24637202f3412924a913ce3b7a1aaa83d646c1ef4801e1b470fe3207d02e4b24722bf5b5e307905cf7d1e6563fd08e75f355d3954e90dbdfefd577763c703c132e2e64985e0fa0f96699bc2f98dc7de66e99c0a788e4f3c1d29bf5dc1b92319c6792eb0d8d750051fa8639fcf34348f927b78eeaf35c1887753436d14d3b766b5ed32e9b5c07a0b603d64b646145ea8a9c42593b4ddf28bed2d5c777cad7dbff7642f3df413700bde6d8d6edab3aec222d9160b0b0b317360eae0a85cf8365d82f76551753729d05b5ff9fb7eed0193019ae4676f7cdb6c0aefd291fe79c2aa55afbe0085f225611f99f7ef132c1c9e2ebaed93e7342223654eeaa7bf761194924e8f2556e76341a63367cdb0d9c44620c6bffaf5d1a4a1e6cd934a75dd0b0101e4073dab7d2ba5003746be7ebb5f36bd07b70fc9b4b986d0fd4e487623fdcd330526a53d3e1c5233476e33ac0da1c9e2056f1395c87c03ed213123bdce084d6ff477e6838d75bccad4cd9dcbd11a89c903f64ad9be33baa1ade98e8fae38275d39ac216d21469bff19f20afdc1dd4b78c83fc1cef5407e686b4c9fbcdcc9d4f1716979076be6c48f6095b83eeeb0082d450b4779bc16ba177281047d21d45cf1982e4eba2d1320668136d631a49197fe8048248a4785f5a1c8dba67a8ddfc0687af9824a23e6dc8a8547f5f1ec79a5c9debcf9b9facaaedbffd948300a6c528aceea5017bf300eaa35f93aa0373ebc9ca56ee3bc074b8bbf4a606ef2ef3b326932f6010451e318910554ac657960dbaf834354f3887bbae77fc9c697ee541810da7dd5fafde6dcf51ff5690ad012e171df9ba04ca4eaeb0d801a7f78ec1e14dbec053de613a7b687713ab17b7f33f5d2cf90e5300fcbbbf9245f5bffaa0beab99206e348112c0dd47d1c0039a5f1ccec72f423330322b3da82ec31dc36344bcfc1192bbeccc449be0a939b5fdd6e637e3c3a7a58a3c08b7e5e1539e7aaceb938095780ad92ab307d68b2ebccf9c4aae92defca164343915c122a950a3409d83c8cde067586b7edc0e5363eb0bcded2fb7fd7398b8216b71091c505de93bd87bd20dfd46af19fe6f9c9000a7a00ccfb95d00558edcdcec96fcd1b91b5d0649dcd9430a94d5cf6781fd72171535105d1ce04f559365ef3df5a39da975cc26595f832d5307d293c37b4346700028bdc934a546198faabbabe506599725ebb983c468e86514e05c803a0e837e530de533813296eccb0622fc341ae4d8a90d94d141a6b12fbc0b691b23fe0805749963a20d5e82567abc3393b7f9ea9e7fe0ecfb1028c38715d557b7a1b0996c1da6bb6fbb0950353c866bf044375e0cd152ae826eb513b5a21d352998c297d504c71c1f3d009b4759e692d2c0ba6c9701801d794ce16c68595bea5f16490ef4428c26b033a224a093f7a44b46b687b081865d0dff213bfcc2ca7694841e9b0798e25c00b2946179790cdeb0f69e75f30092b6b0a3fe9613d654b0d55ec741176ee50b79011ddf7232760c5bf9e4043d3c43e1a0ee7d9b46aec2a2e08cc7d1f99bf7229422f9c723740d056e93bb39892863d40ab68c94bf5404900125c03db6a772052f45b24647be68f2da4b7433e4640e434995927c0c8cb85540e4466103e2f8ca52f6c4e59fe90d65b7bead693e2c2cc3470ec987d1f20a7363e54af3a6a63c75d10d4deb0c2daa220293f47dbdab4541bf6f776b73d6acdc1d9569fdc94bbc86df097c23eced6e049ee809bba8241d008c9d189e7128e2d228a58435d624f1872e4ce08f7b2abdbb7f8b47a76e68af3bbfaa49163803bb3c915617b63066183a6d163645c6243e291fe1bd90ae6ce4e26c1e075cdfacfc33e4e4b6b0ae7993f666b204d587dbad6b8154668a4b325f9596e86d3b40b6b718234f9ec37460fb88724512b831683b23e50095ee2ef014f0af849a87a61ad13fcd0e7fd8054df59a78e968b3af87bc16e83e4bb6d747422cfe880a38b0526d1ccd1a8a6d8aeac3dd79204da3740f45a76504e8dbd7f1a7c2f8c3b74d7ca6a2dd128ea3f83e7e4ff05c06e28a30e331351776da979cad73fe11de52dbe3c081f278e78b761aff1d493421fc85946533def171e6a8a57de2dcadd2726d856daa2e663da6b79bd2b6f6d79446bbc6d48fc0a783bdafd13f7cb448b3373e64f81a3e2dae4738ede63a3454fd315f166f4fff1d0730d6a8cb164ede50418e281f216e31db0e63f545d6a1ab6783e55671bb4775897702ba5997b680046d5d080445a36c1485bd57b3558284e5a4df905ab7975a063e6b886ff7ea06d9be0d8c3515d4938d47c103df92cc0f7f704d44f07313ff5bae3903c22e98ae0a2890fa1cc620b4315389c71a8bc4068f8f42f71723719fd32e7ec8455422e1b6dfe09bf0c9ea4b01a9264d26e0a78774c12ea9014a63f33b8e2e69b1e1c4186bc04e523c05a25ee80c23000a4dcdf3c683c8eb9df4d8142a7afa8d8355388977538d31741ce32e8527c07bb94a838fd766c2a7f526059f705e229afbe81e142b8475c4ed0c3ce9508f9441cdbe60e9fb8b9e8fbbfd0fac4d741d52abe45f9485979fcb65f2d8f2b8d9aa75726fcd23d1d012b24e35f1c1e014588545293c959124c2a2483b92fd012febd6c43f83d77db26c3966e6b495c7800af9366183f1d96fbb4c39e33711767cfd2a6fc22f89c26a77602e8b636bdc035b8f3e7af9b4ee2196c39e8970eb946ae364762fba9de9d94dd22a58a5459ba05a09c2019abfd2601fb2a9bf22f14369b3d3152fb7d8a9caa32d6edc906334eb4c5b7571c17f993f80e327d4bd1641db3680dfea0972f0d9c01390563fb1cc212b2be916c65fcd24373cb57ee975c00b5a82f14156f339ad67d7b16d4c8495637003c25d58e86912ead5df10857da289790cf465e7fcb17721f75bd9d509f35230766026e7f2f857409dec2989a6a1baa44720823040d787197873c4ed076b995c9ece6e407b05bdb2089fd920683f073e013cbc18a33a59ad9070d4eae0f4a355238e1a1433b7daa0677be6a5685fab54d5135bffb55e0d29b809132a159f93f098b5d29c9de1ba8d9cf480c4548abe0000e2e33987b63b7d30d997d86d8896fa5f13a49c86119c867f2e9801ccd525086d20c173847468cea531a876ef920e199d1aa470f7e8f0148c7d80da6b7baee3837847626af91239a99ade8018fde39ac25378b889be2d52c8a3bea6126664e3e5c970d03e3836f92870194019ec02b0b1e90efca348a2f50cb6b77a14856674b10efad3d56d2cd1d2b6922bb182ebee747fe6ceacaab061a59040a72c2863e20a38d34fb8ad71c62b947c4b95cce4185eb63c6fbdb0d17c4f9927dcff35861e2ecade07c830d52bb3f17f78944bd5c0e202485c1410539abee020f4e5062ff4dd88de46015fc16255a5657276e21e938bd7e51717a9aa5e7b486cb755c8c5c21fe583b5965e92a8216dbfa470fe834a62764f80d9a7ed7c9f9cec242dbab22794bb5724879dffde904d6832b692945b873bfb1740a81ea5fb19d20ba703c79f38142e54b35829be58e5445d96b1a0c7fa51c724fc31c79bfe5b287184ed8235da67ab52feab01bbe52910512ece5d35419173647ba8d66cc5f5caa08c63e7da622ec7006c5016968750aab85cb6a270b8ee0efbacaae5d1da7d93d9e219a36896a23d1d1222ba2c1a9777d367b852dc199ad6e28acd9792cc96e2b1dee3c12c7fcd06377c5759d07f4c593201908b6d236eeaaa6094b5c519c7ad217db2be34ae9acc9ca367dbe23bd3a9482234536998e4f608bddd85be27d89ef9b68cc40c938523785ec13ee368b713d7ec48bb0abe07d1f10458a37ff8e0d5d159b07d6732a765ec050ed485bdf202f17ff72a242b2e168afaea435b8ac386e00a6ee7202cb5a4a43d1ab20899a25d5c13418e60bb156e4e7ce9aa271c43fb93ad1322db07e292a34e8cdcb600dcccc700fcbbcc60d7b28a518303e3992b756adbc542ebea17e840d0b5e9e6a0e68f093054b31763a0f5f09deae83caae0fd1dd469c396a0ec9229881aeed6d0c0a8bd72327b16d0ace54afdc0f6fe15dbc6cf40e4fb149695673b206085102c7b211cc9534901810f6823a7298ea91b0d194821698ce9ca9ecbe7ae510041deb3fe99acfcc2aa196a90deaa150b5d675f3c1a3f6827c68453875b887d66cf32aee9846766ed677aac5c52f2d4b17cd5d742aff93f649ad129cef1be76ae642678cd04c9511a8d4fd0d386cb2e09c4acf4f670004063c323dcadfb8cc6a803f50ebb885a2f756637f7184120afdb17ae6654fe105f870d5246484738b5de661d255549f3a89d6551a60aa7563e4cae3ca9b2629da995c8d538f409bb316092501a58cc88ba6283d7dbeb4f8a83ab60786077f820a0b58e0427616bf719c84a9850b834349123d8f8a3fce5d244773c8db9296b16eccf01f0c746409d9ec2fd6614eb5976bec98981be59a8e01d51a2edbb2156e753573ba7a306ccca352d8ee7847b1977f2ab29d173a0d3ef89b9c2ba0e0d0c019424267096ae5aed43a80a047033c0d087cb08a713b5d8cd70a8a819144d750213a8204840a2f0401a8f8a5890fae39a1e0e34f4ab7755885ad8bf2996642c302709f444c14b16e977e030d99f044b5af1ff6488fb193a8cae9194b3c4da189dd5021de54879198eaeddf1906eb02e8ed75ea9779607b809a9e74ed916564b35efb47b2102905a1a837c292d7061ef4cdc471d432c27ac6ba45bceb6e85ab40f14c4c8437121333a9729ad5415b65fff4af9eed13b687c50908a80bae9a8d308aa238599ca4cae64702a16eb15d4959b774d9e79421fb01ac1252c44f10d72866b97018010a71855dc41d8a049923b3a6ac253741b545b55b3ce4ecc6ce2de57ffb9cfe3484a6cffa5733d3c1e946e45884c9e2060b883aaaa74191b93e43323936c6a51a80ba42c33c794f2103ec0df81ccc8aef39f51d0332e1e899e98bf3f99e3b2b2ecfb8aad1760ea690b13a82f007d2c9ed314594f2c566553fafa402b7e91f4753d9f1a83133510a7893d0c22501dd75c6e510a68d5d980d919c8ba476fab4afc3117f86733c6eef3357a9d9ecf9f569fd1132ba23ce8f176bd12f5df73fed19182d15fbf7852355ac68276993850dee1c2989e2609da3c2faf24b6ce761d7146cc975ec785f2bbcb0ec469f2136c29f39d4b2fe5072ff8ce5d3e1f75b977aab32ae9fe633fe40cd9f8e70e2928c52a10c2a52f0c060c7ab2ba2a2f11c51d6c260ef05f9172b2c0ce2150e839dd6cdfbd5a75cf64ec275984b254c58a16ffd4282680985a91161c2c7289834003e00df12d4cfbf21e93f5b1c8b8a74d8c7019afa54fcf22f8081182b5abf4781a5f8bf19050429f635a597ad5a0b39594f691a548687d3b76d74159fd8928305210bfd64605e0ff6dea8123da81b4f955f7fb11b8651aa30590b3f802d2158e3a7b4e69e5b2f8be32c501447b9ccc0925e88eba855a653d1e7aaa84ad35479dad31badbfa37b5bdb46b7f60b8176bc3d8048199830219c0f31046f6277bcffd43312187a6c06c5ba7c33d50c5c96786f34854eb9ab4490a90615981837877d3e23bce8c06e18c4c41f8d35ba60d26e3f926e0b85b0e2f1ec88ee34dccdcff96710e3665f9e17cff18a791cf668cb1cb756c0b162996f28cecf46209681c87c37ac5c257cf60f7499a25e8071a1eca6a21adb6eec478cef7f82fb5ba736b243c89403ce7afd399f927f8aac6a61fe4b111a1ca52fca07e965d8c8808d8ce30cc5fa54b5d605555162dcf1820fb85b3eb6af0513334c5f3bba4955f388202e9535ebd9ab906368fdce309365a405e3ac2d75c29f70eb58c1a7154889126880342e82d5f88acc65967ce058caee4fb65b7443f656407c9526e65a6fdc71367577300f61376d966afb6f6d973095bb3ef059db002e8bbbe7d089ca47e645f36e841a234891ef77d433b4d7c5491850fc30668c717eabbec24c88f2695d4c61181789d9aea81acb7aa0e23da22792800d5fb242f13d66c48ea9b576776cbb13eaff6399170d462ef5bd32b4a0784225382383b83a1f2ae1e16dc21758d11aa80ec51763f522149532ce714849981f75d6da434f6ec7a254df355a20d818ded77f708b268aa006e145494857f314f66f21be57a0fbfc44a048154e1ab6565704bfccc35261540d82d6d0b0a7dfad42b2305d0f8ef469c49050cca8ea6e85584ddbc93bbe6dc9fa1c53359ba2e4d7949b3a0fc1efe29864b8f9cda033fbdf5b12007582901ab80d7ea465ccb10d055e1d9f9b5879cff183c256c99020aaec58dadd7719d17ceda2dc3a3fe584b067746878aa88b1f0550915e2ea60f336c4887d6836fc19f0a4edeb515a732c00fee6d2b7c8fea7c3ee4fb2529e15d45732c90a9abb1a3217884463d3f1dfb07099fd8bfa8ebd7f52adbdf521e4a3392228d372d9d80da68134ba48ab7414811a8e23ca5ab39d2afd072ddae13bfd51ef2d4202f644f80cf2040e2adc7da67bae22eb518f2ec106766f448f99419f75388b3b57e9c7658eaca6a2976f29658aa1f11f9918947ac1aab8644639942f6563c840d091c9a1f1278c6804406828afb4d1542795eddc966ce0435e247091049356a96f45f88f9f6744009f9d0591f601898b4c347c6c8ed60ef4d789d41bf5816543d9cd6fc87fa9e95ea5de74a2f8074b34992cf8e56742d08158e9266cec3982ee63eb831a7cef2958bbe41a6db542dd998c632bd6d3e557406f9abd88351881fcf9f96597a0c08520268b3463688b16c541416c0404085e2ecb08d8242e51d6810c04d63a01de5fef0a294aa88f16000a7cb68420848597856d5372d8839aa78f485e07bf61b2272df794d3ebffd9a9346d36aab75644b776cbc0a458103667e5a3ffea94e8b55b9fc010bbbacd2c94c59b17626812c9dacb107d163bee70e99624484c86c8ef2b70eb1d63f28a5ac94f9ea6b03a3fcebe3b38eb1243fed135afdc4d337f9375b0fb4c0f1a969c3bdd55b57d0d16d6a6ae6533574d46b8964e9e5866b9c5a48ae00e450f72adb360ec81aaffd6e12fe5f80cd5599df4bac9fa280eb8cc44deba44bf9d52e2eff4252d87792ff603ce3c13cb26a92dc1c3539304de78fc4c46c8fa453b3fc1b2e6361e554a3b7404ced119dde14823a49f4a79300b1778760fbf51811c79a3954400430240348a44bee6ea667e196d96cbeea144435da42ddd67f3270312361e3b7d3d56ce634ebb89d25a5540ff6783e40d035473ae3478ed14041ee9648daf279a343c61f3d6c2ce29ee22029322678736b02a2ecf5bcb9ed07fe02ef6a8f9fc37e38d1464b49dbb74c1ee075a1b7d24f2549865a9fae4c1e1a4443877879cfd675877b705bfd344554668a38a84a90c18b86bc4c53d605814bec6c512c07b4fcf68def349383be09c8bac4ccc7a14405558107130bd747b35327372903abe1515a80977a2fc60ba8b9d8099564e8f0d8cac0e1aeaa07f1a39edce5d55d5272b06e474d5339426918bde5d8720af91491185bbdbc14f6d938144f6ea7eaa1cd08b307970e3cfa8a0eea1592edccb3fb63a962754ebf8139a6b1d700784bfb27a3d4f176f76029a611a82f96a52faf4762ddd4112b89c499668d4b61fb32af054f69203fc415714995b74a5627dbb366ca9f2a25c2c0bb416e049994c0c95d2d0c60a959a887085e8b963a1c2604600472693c4608fd113edf6cc745c02fc3d581d3f8a5a3bc98592dc670de9a2989c08fec7178eec700e73fb085656a900d2974185859b2d1c945ead945d5dd7a8bdfc94b20e3483dd35435f9214b607d60c05b584f1e180a67f35eeaadf8cc928befcb62aa0738bad562540eb90e136ff9f32d2559ae20133c103847d7ce010a00d909ef44e8efd0b6291e46a5c6d0ed1b2361a099cf9d2ddff5d6cbf85886a2795471c360ae8ef5086697e0876175166b6c6244e231863ad5c6bb46b2cd4c01c473db4273240201b1dc38f39f86370e29b3b5f78fd63b0dfed6d08293de159e6e48e3318e344d03e8aa63b34a9022d26e79855a356dc934f746ca9f668f28b304ff00e08589cb9977deb06e6d24a06bc683feddb26bb907f8c3b30bb13b33d56e984407b2a3c9b9f4abb90a227826a845c3de7c91d7b9a97f09e6b058fc9611bb222833995bdda70b7e9dd1eba39c40f3af089b5a90d8a6012eb3e34fc1e9c272c538a1f91893487f3f2c5a064fc32efacde67a8f3c292c0f343f2fbd014642fbe150eefd1354a646cf1550af881116c155a28ae6174ff2cb758a3d2a4f8b2f7ed404b05a5512ded59f993a9c926facf0cfe629ea1e4a65f0afa72207a18e51b375293c117cc1ff95e7fed3085829a2f6c621cedde458c16dc88526c6a122d3f30c3ba0277cadd59bc1a7b48a4ad56a7ff94e52680b6c8c5c3bfa0ae1ff15edf387693d6e49eecb778ad7fa12bd717bb0ad9dc733f01c9307d5413f3ca865ed09b7e8bb66e9c9c8eb1c31ee825f293885c9999de1e72ded93a20916f6214ef144c8e1a88048b2a56aa57b8cf97bb0c2d3437fbf8177c814b57afb1ac039c9a2c2ed9bb65a9e37cabb7b224e8c6d61fd03493a43dc6f331c326499a59385f1aa3261a07ed2a73ce1a978dc34ac9095e22f127f7895150ba1516c132d3d8e75935ef9de544bc0bdcdd921dd0717b381d10cf38188d4e3a0d1bfafff3c49b79ab0c0295dabf3b0a4c2ce0134a32ac10ecc58a3cc6553997784f59506a2a7957479e39503d9992b1c2ca2849afe9a87359f3b33b45d702fa66257f879a22f9f7b017e76e14f342cd6ed1cb828c74826b71ceff395e82e99ff6b86bfc412118b132b59f5a4ef89889a6531fef119d68ba3888432e8655c3c6f979a361c146885bdfc2c95d58b894fee7edac529e73f206eca75b55d34b05d9ee2e6acb3b3f98d66365f1d8c137363123c3fb72e1d20888bd275ed6e5d6352f4c312922e06a69f2fda5196396b4e058f0cbe60271f31193c91889b86e1b010c9c0df2c50578154c4766b50c5efa0d70aae8b4293b61e8530308eccc6563322b7c35fc789313fbb9b13ad62796c1a342cf66dc98d8e7a7ce2620efe4f160a896b1e4b78c58a50025513875cfea8b2315fdcfa0a964dee017421203e212df6dacb3709409e1af4244b00345c959463c7e33f02f7d1c79990503104873fd67168d00ad9d4f4c0b2a1729be63b2e27aee7c01ed3d95a9fb3fe9675646da4127da0768193bd381f26db3edd0844b7a4c6a28e21c5d08cfcc339b8614c7991ee857d69c71ce638a138d1ed7210b150cbb6b6d73c20ce736015fe634707594f2b2a31b3c3f02d228a4f6a4edd13721f31fe12ac7918e851d224a03103bd40776c9fd3a4acc5b071f68c65576bbb8bc8bedea3c707885c6e160d7fa114373a742e17c20fa3d885e3ed013d22946480decbc08b3ac22cc694319088a5279e544eef15999e1a33a79af9ee1b638727fe7ce5e1a7ff0623a736d49ba7520bdac7558731551e5a29088b2a3ab31e42b7096595101cb625c132c8c9b9d5abbc429ad276d5c7fd0d2b1489ba64b4b0821ace36a43dbb424f61268029cf5117414357a43520109f8a4cf80a6227d0fef36cceb8407eeafe254275a55bcd640722bba98e8dfb82a9e9f61efadb46fcc78d43fecfd69b4fff24e6f3b1ad15d22cde7b24ba7f7e470f03168663366f1ab9a8df749f428377bd420428adabccbc9b9edc73576207ecce2a903f72534e1477098afc762ee4fbc6c851f51a84d4101f671ab9bcdc89019e465cfd55239dea8728bb3eac84f1ab64c655f690eaa5e21d3fdb40b65329a96d401e4a92c865434dc9c30c6ebe7c20c27f8d599dde7918151e0757ad6425cf802707e42082d7abb0978f085d09968d6ffeaa7490a0124cbb73bc82587f775980015affa0ff5819419527b33821d8003ab81e2965c3e24b61f83e696d3d18d19fadf9cfbdb2c67f5569ff0f6c90e253257a8fcb8684b038b5f15699ec9e0bfd59060334f6e07767b51dffadc4f182e7a701cddfac798728f1a878a2df34ae8b0206be73ef0c8eb083dd74d4c080d9b3430456262f447a659f90ecc75944cadaaa92647454db14b9a818a40fc541a280513f268f6aa33b989e5761c358a24bb16e13d3d8580fae356b91ac577948038af8a161d862aea4516ecee09487edfaf62b20e3b7d3900bb183d47bc41da64159ff40707fe5c4e6bf5f60f0e908073b9fde028e10abfaea467a99ce1649e7ca5e5c34ba4b58255a2b9725357069dd42e4c07fdd4a56039944e98225bd53f3bf9e274378336f7b626a27cc1ef325b523a8da6d946f65b5a22c93328b3056568b8dce0131ab958dff9e40244742d4e0d9af3aaaeed427a57a058c27b9c0ac71eb07251357aacc95d0cf62333f385486b562007de74754caedfd6c2b63750089011926551f36b5655a07fbd1343ca34a0cb0acf1807c11f5698a032dfc9db777811bfb63de02a8c677cb7cd4b53579e75481b06f0412baea2854adda13d7d4a65e0532a65fbd2ce3284d42a27a74e00ee4dd0fd5ae4dbd6856b4545d149d4b8872e9e14480348ac36600e67886f0943b398882a3837034bbbcea7000ae046351eaae3eb4d6ac1478491f03e0bf598ac6cf435158deb5dfcdeead6c03099ec73f8d9c3cbe0b99e22db2c45d0561c652d9bd313e10b0ca502e2eeceebdfd765cab96ef74862b4a0f01fe3dd6b3311993c4810daa20acf43110e33c65919e8c6d6451558f029721f9c5f9e1b48fbc61044fb5f26e383b4ea491f211255e6447e6be6950eab2182b32ba298302843747d2e743b7c2d3620784b8d39e83e8383962b62cd784cd9d7da07e869a064009e873567751f9dc25ae90d7318e00de2984b5883d95b0a971316db91ef1905921e996272f78b59b3e711a9fa76b261a0d3c92b9dfa865608e3e4182ed4d3e1871743995de1418031f29b418d84c93ffbb6871beb6edd7772aab239a94c4ca00c9ad273d70710d9c0c0b274d406c29bb0e9d57ebe9ac299cd69351457054b575a5b72859f7d4a3dc56da52e5dfa0d033364f5f79b7f34c722a94c13bdef5567c3b2bb705bc690176a6e3f742fb7ae8ed5a9a8fc86aa741054b6659a566ab4b924f3aa2fd9ab57554ea4ca18a22fea2929d4e6894cb25ffc6ecc093e1e0776002bad958e17f27a88c136f4dc7c79f6805b6f08c5c5391fc199f3a1f326e784fcc829da58906eda3c7c7438084c66eaa1e876a6ec3cdda74b948a75357658763f39e3d79f0631edf08c0fb8227190c940c8d284b3eda7ec3553a80774037460bdbfa4e7799ab8ebf4eaf580446643b4d6445b334c2ce66b7872d13c9e4053de57266bd5609503c0e3fb5464cd430e0899e51cf678dd39af869ca82e6fe6bb26721ce44b21f9a475e88e645c342f0c09c2d4c521e6f005252c387bce990c7b2fe7093f97958dfc473620d5d736c0dad50bc1c5c7fb6ac4134f3dd820fee5563bbb7e98128b553f00c77a9a7307cbda8ec45bedfa9646fb228b8466e8eb5179e338cfc00d66be575f667c172d118f30a927507d8a8b69ed43cb775745e770b7be2d9e08e10137a2bb628dc00b4dc72916f476f0efedb3d1f607548c0a9f2e61876d423e8c8486f34cec36d29964d92f9f29ef86c7e2ffe9379e842691fc8451a4fe6d621e43272929f3a9d65507c1e3e2cf8735f1eea10035f7a07db1b0b8a93ddd171da86033426658b266d11850f098db2914a4533b5ccef2d5bd1c586a1790e406a502799e760441ba659da223d418bf2b1fb8371c43995c0794cdba852529a451f4485fe16bb0fe52e7ef7bf0a403ec33d1754aa80acb0d03c808a227dbc531d3c10077680cb7e3154996e17db08c35d6a3df4f1137aee08886f7ac100cde918138481223a7a9aca98697d33101f97937e4802153448f16ce621ab68dfb3e0aaa02f8259b757f0ce5725b5e9e9bfe9bbd76f3a1bb096b36e5e4d5356ef18e9e7cd408e857ed73354d95978aa910573d3976cacfb522ded408d3f3e2ae823ace68447f424820bb2786c18f5a4b16948a48d8db2ab4a2ec26954e4a2fb9790b60c13afc3ea045f74da9599c824ee2635f158ee0ea6c316d61988579161c62436be94f5f7f1c9913da1865071b6abb633bb9172bf420ac9cb4454d9a6b9291caa9165a415389a9932f16a495130606d521466aaa4618ed5e1435a19147cd0807a086660479025747d134ac8cf854ddbf42dc0151e664da50596852f3d9ed9fc4e06cbf6273eb48e7e60c03ff624199768c05ea3f2a03c052334e20c7e7393452223f5540f40ddad8d477207587d4ba6ec48dbd5cef58d60ecb7b51ddc1bdb0e71cdfee8ae8a8bc1858cb348073cdbe388b955154ec8da7e66ff4479410f5efdf7530766fef748a3091249e1b831bf286d0338aa8064d84171db1711f8e849f5ffd37b0785e5b5238a09ef9fa9392f9022207fab4f5b2915e9cb1ba95e41e5e25cb4f2e4f8ea456d402dbd1b21311be008510ac8d4234c635bd3c63f4dcfc2c6f7dfee3e59275887b1547174f59bbb9621d031935e986e874ffc8d6be0d1670db90a0a6419aca88e6fbcdadd6b0f42d7dfeb6eb972e7f85e7a876201cf0531b812f37b9e98ad782668203b420fd3f3d60dfd1362a7d248ca64c5481111f507facfdd67dc9baf0a0d77753fd6da190b49a2b1f3bef7935aa0450b421b62f66804b0c63c74b7722288f30151e68167481c0bfc952535f5a0f77064e5775ab3026cadb82d891a853514cb47aab8ed02f7ab84084d033cdfb3fe0c1c7124411d5458bf3d9e23af0c350527c6b8f380eb815d27c7c8ba24b33bf2bd84aef2d6ba2d876ed81e844815291769613d1c828fb261338b5d6d0bc93d3b7e5af99dbb97d3e4e168bdcbdd806d7bfdf6fbd570005096241efa32152a63ae2851f7ae4ed72cd658731d95e9184f19ae53b7da91fbaa39d8b051e1150251a944d94802d6218057f17dc286855c6c7b0f0f612641c57e17afb0a5c182a21a101cb49f3b0e3a25b6adf57f6b355253e77b724f5cda9176e9b83e5277fa9b1f6ca9309423edd7bc927373614c40595252bc364f0d3381a439e513c76026865d4f0e123fb54c1d4a5e1212f979d3aece83c180f5ffbd7802ea7b6ed42ff1a39936057caf7a8d6419f1b85518ef455ba5a10866ef175926198de6af97cdafaeb969c96e5e5d1477ea56017c506d0a7dbc827f37b34301d37ea10517573a39862ce9efe3ac8b086942bddb106a019d366a4947db89f637c8561a7358ead9cdf65e55783168f618b58a890820112024e27b068b8720ea483915aab927f8095246a0f2fe6c5eebf3b1430d041e92c92c0b1c2625704c0a398755fdfdec71a2a234bb341ed9b91f8110e162c80f10581d00ac7db0c5788055a640c476968e0177d7f253593e6af0b5032f421d61fa399a828ba93657d23521810d21d7ce1028e343dbb6095dd84b5082daac992cef95b8ef918a2b883ac889a62accdd4dc707b8ca83970ba9e02402b043f82505e7e899dc935c65b39eafab25ac00025f62b0b8d81aaaeacb3cca2a42d337cfaa128162f1ce155406d5214ad2399a1f8f4d85c366b1d0fc292c55cc5a2ba6a58b8ee41dc57647c17d99e4e85495ef28ba185b617a2223d267064af38de23e6ac2cc569de0a5fe2efb83986f0a5fc1f72f2b266cafa2ee3636fc6c61c6271d17850704d308d3a8ccb2e0e333f06a5669024dd2b3a48a1083d004e4bc6bc05bd7b0121e229e95bc90f4fedd5b58854db4940cb52730e28756692232d09b43c256f45f7005c08e382ba7f4fc877d5f7d92ac26644cdbb5d093e7dab798adabf409c2f6d4917e165ab93dc90750eb8133b3105ff8c89c3fe3bcc13abe6e1cc259334aa5a6eccfb6b7d03d229fe92411bffa2d306281ced73c35ead12499930aaa8e53eabeee0685157cd7ba333798ee7104e053688483493b263e034f62261b43d84a6dae8a08e4f7f0b743c6c9871a27b89905d8a6bdfb5a086d8b3bb748edb964c5a9ef0a4a35e9b6222a3e0d105d23f62c671c3f3e8a8c435c10a9052a7dd48ea4b8f7f88885cc1f42914c91b6ae144af731a553f9593642a65f7dd6527436ba7d1f8492fb635d5d604ea015028c745c290082bb8387ae202cfddc535ec02d7daeeb8ee57e6dd81e9b60271ad684ffc5ea1eb66bb8027605a710807d432d717909e6050b6f0762a5b80aa9bd4ada217f899da52cd4097c0e5ae20c75a52a91d53c3786a0527a3e26e3deab2c7063d10cfb88a2b81d66de6a20b2fe9af2dabef3f59f7f505285eaf576d422b49df58be38676c954976a435b3ff85cf49a3c6285895598ddcd3ca8ce6f854eb6e31058e0f08746d8a4cb6496f57aab55e625c72793130e6905ef037a6887da254f9cdd721d3a8cb9c88c07c187d402f84bac26ee564d9d1324ed6467f5b231c921c8429043721cb42d755b289a2c7cc0e255821de74ac7abd626e45922154007800943cf8d5239513e0e781dbfae552187d21abc21dfa35225c64fcdacbf6a2678a02f46b1c78be0d565a4a34600d731008ee6bfcf1d05c6e12f2c3705b7ee04fc4b6bb81746f50f33defa19493f94a640fe94a4ebc3d734b8298e9e32640194f7fee0e27c2a5c930f09fe5e2ab926547b87f2c49de7f4a800f84a9eab9fce977b21e1bc0378cf450e14b9dfd7cbf5b2f6a31f2efcf42286b1cb6b544d225700e79ea9b9972874d8e78fb78edab6f7de02b1eff9ec748737575ad6ed8bf9b412e6c25f2157f45440f3b03fdecc6ffcae4796a5c7c708774b4e782aa205b6e6346da436c57c904228bf3da6456f194c886e5a7aca5ab7f4de83cc3b9c207d5fae7a0b57ef657230ece7f0ea6886b4b73f4e750ed49a13bcf3f06c931348bef4373b326ce3978d7568f6e8c3a4a4e9c10302793c0111ef5b02ab3c13ead78dd386c745b97b69fa1161af7939214cd7430fd98ad19b73852b3535b7acbdb6cfbe8080058ba8470b433300332fd9d31e6c397dba8c915af675f49c836ebcd8b8ef8a6b5c5b0dfe381040f39991e78423d0ecca9c0cc85a8165e40e3fcc34b1a511f0aee71f6662b011f42e0328a82d8f425d99d790a890025b30de4a15ceb35000fa52ce10b8bca0152f29fd24c8dc51472e50be027bd6a4d5c621fee2bfec2aa44b98c7543b92560b632ce407d6afc98afd2fcd3e78bcf81d56345259f4a66ec182e64e269f3f6a4b08611b7a08409c4a6d74df9ab862fdba5096ed140b99bd039f42685fa8fe9103ac9d239cfae389f77b54255c91008f0a579902bd1ae78696cce376534bfa1397d9e220be39beddf85b238e51c270d28b9a0bc698190221db243382ab106568bf08acd2e69a8bf0d9c164f812de5f13cb6b09a7f4e3c9a9890fd8f69afd796920769b62a9813be5aff4dfc3b7b1156dfe6f7b24cb880f203a025f62869e777ba322a58d944c73822bea9c19b5f51aa4dba236f08fc01a3fc0bac1290229230e9dcf9b52c442293d00d3e3a75d5993eb50c692dfacbecdb885ad8da2de15fe343a2c692cc3e49b4823838263029183c5ccb44a395ebf97a0d89d226a57c69f2762b6d07cc1e3eca7701b9053cf90940b9e58d7f5c3bc872801294ef08f5e16347b4ef34f7a44cc7c2e8ee0142bdb91d6dd04703a8b88cf2c26b84f89cb2c1cba61d6c2ad9269fa5ab60d30b7177c192bab8609d7b1dfdb00ffbed7eb429dc3cad89fdd5eb1a8d2e0f9ca38e239ecfae32b060067a91e74b7145d0e4ed8b080a88dae8718aff31aa60a812e9dc1f080157f5f728b1e21b11682a72ba1af76c474a69698d065bba1ebc7e5e03024875137c30cda11d2ff00cb56384e8126ee9747e14f5b1a91c93ebfae8aa1e3322be0383e35bd9d60f1a28a4999cf9d7944fb5e5b786db8d2d68034692a849368a80e2f9baaba72715b9ca327d0b0ac26b48c13e3ae5b8bfcf1cfb04940713b14794a0fdedddb15d0e08a758f0b04e29f6ad79e3e5aa3c8e58f34dcd4e5f58ea1ba36dd1c388576f9ae7d3709da38928fc08c4694cc1c8fa91a81c2dafb857cd102d75bb9ef3d874c02d1a1690b94be3138f664425323c8779c32d73c6bc9cecf74ebba82a6e61506cdf8bc5b7a33aa2e0e6ac576cfc43dcddfa6a5c378075b2d7fc71251ad1382aae2bb158618f0646c1406977372f7b264f33ebb9ca9a2413cef1cbe6d8f37d6065482964548af01fbd521a376a1013591a0da235f41da7587da3d46dfbad062301dbc829b4e355d7f61863355108e7bdb62564a99aeb0d70a64daf96e48a2e24507d32c00f4baf2e31e95f9b0aca16ee5e2da875ebb50b7f3c43d4c1081bae86dd253c84601f85bac8a6c4acdb416e5613d0fff0b1aaaba8270f5e301f2487ea532f366c04171a22de6a3277bc5e98a64a8ae95f19340958b603d997ed66ee30f06a08ea56b7a360cf53b91bed2809039307e7fb91a4cd4bb1f14b47657d07930f61bdb1f7bb3a4fa3f0f5b3575c988cc1421704e0e1869797c7fc9f42872df065efdbe5f8b603c1372d8314dd956c9d5147bdf6811989ae41bc8be8eb8b006c2cd1e9067214c93b76f4d40286e9bcafde0bec5ce7513e2e3ef51d554656e4b8965e9e0d380ee781e1e3ebc58e2f0402ce9c446a5977f9ebaa1cc94d4bc569913ae0ca43b5f4f076e8c5702b440f97624c384a065d7b527b66e25158a6b00174f65a4f5f71769da16a4031cf191beac64ae0becb920bef77a643c6c869874856a8ea9f24212d6ef912904c46cc4e555467a58369bfed3ebcc4dd184390275cdc85af6fe978955d5a8959c625707a4ae73fc455a0e1ca160ee91e936f9e6282ab59e8b8ca47952bf0bda075c54f455542aaa59875751b20bb400b9b4a40efe9e1ca7d1ba44b4135998fe4e367cf34e5c8db12d5edaee47be08286ea27a4bea6c76dbb47fe81252eb2d800648603bde4643a74583e71d2a8de4e2973af9041f483c40320510710dc6cae461ccea0eebcfe9d6261ebc8901474e80edd2f82427ec13b4fd7d357e6b7bb436c9582ff77b05679c3331d7501d715ac29e1ce6e6abd3fbc3752be499224bed4b2e704514ad730e2ec48b1d43ffccb2224dbfad70e14a8386759ebc0dec1566555ff20e68d3f6b8cff4754b445d42434c604d46ef8d298ba885191f08409014c5fa8894ba9a99edd86a79da310aa1af5b368d0185118f15b35a8b52c79833e31cb07f088d0866320fc931f6d66121525812ec496b86c9e70367dd1b575dcbd97ac1b9a324499176d61f23e1d59c202cf8e12c2edb932e83be0f8993d0d54f345b59469ced0201cb07d1457ca6fababac931c5975f5f657f0072a7699a0f60d404c4a2385c00d8e3bc9b9c14f3428e1d165645e247e4249455c48d1c64171eb06c073f8253c5cdd41c6a61a83052a57b8f8c49ae966c89c50a131050d687b65f59859cf47924e25b4d8c1617ed16e0165e359ffca93bae683d67d63ac1c03433960fff0b290e85738512b4e84fe44a04c421cd11c9c6916a2d4d24b141210b7abb1f0b8eb2d10fe50f01d1e607b6af42fdfe8d5554f8b1a2ff62dd6149364417def969861f448073d2075a33ea6c434b57bffac22de1477c40e191dadad28c75d534502e4c62f13a4876d6545aabd933d7e4b10a0d8b4a8e49b532c74dd90f380e570407d568060cf8646d1a910f44c48e5d428ac399823f57f0adbbab1cf3e10728c089e37f8a73d23b7755a5ba43625b8411d626914a0edc0a9776145bd3a0a8a8396f10851d2436641a43eef98e7cc39f8101176b3651f8069f9198d63657994dc3df7bedec079adfa9b36df1b778197672d5fc3f2c003de23878cae0964e452ffa7ac6b094a35958b048454996eb86ef2491852dfa830b638e924a98c41b7da818fb44d299014bc69199c6a43e1d515358740ceb3682e586e284a8ca6c26cf7e4a5d9c3441b434434e9e7de1fef6cbca124aa7ff9630148debb9d7b34143rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython311-documentation-3.11.5-150400.9.20.2.src.rpmpython311-docpython311-doc(aarch-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3did@d@d˖d d}dNX@dJcd@c>@c@ck@c@cS@cck@cWcRc#cccb@b?b@b@bzSby@bs@b?@b@b a@a@a@a@aX@a@aa@af@a\>@a,@a(a @a` @` @`g@``r```@`N@`/@`"y@`!'`_T__԰_ _v@_u@_P_|\@_m_O@_N7_>e__@__A@___ @_X@_X@_X@_X@_X@_X@_X@_X@_X@^z^z^z^z^)@^^^^@^(@^3^@^'@^H^|@^h^`^>^>^8 @^8 @^ P@^[]f@]f@]]]]W]]c@]]]z@](]]]@]V]w@]i]g@]W@]Ik]6]!]G@\\9\~\@\\@\7\+@\\s\b@\b@\Q\C@\4\4\,\2\\\\&@[[@[^[ @[ͻ[ͻ[$@[ā@[/[[@["@[D[;e@[6@[4ZnZ@Z@ZZԐ@Zx@Z@Z Z Z Zz@ZxG@Zhu@Z`@ZLZ"Z }YYX@Yo@YY@YY@Y@YP@YI@XӸXƉXqX@Xv@W@V@Vm@VVhVCV }@U@U@U@U@UU[%UT@UT@UCjU@TeTBV@T;daniel.garcia@suse.comdmueller@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comkukuk@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.deschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comdcermak@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.decallumjfarmer13@gmail.commcepl@suse.comcallumjfarmer13@gmail.comcallumjfarmer13@gmail.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comdmueller@suse.comandreas.stieger@gmx.decallumjfarmer13@gmail.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commliska@suse.czmcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comstefan.bruens@rwth-aachen.destefan.bruens@rwth-aachen.demcepl@suse.commcepl@suse.commgorse@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.combwiedemann@suse.comtchvatal@suse.commcepl@suse.comguillaume.gardet@opensuse.orgjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commliska@suse.czmcepl@suse.commcepl@suse.commcepl@suse.comjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtoddrme2178@gmail.commcepl@suse.comjengelh@inai.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commimi.vx@gmail.comhpj@urpla.netjengelh@inai.detchvatal@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comtchvatal@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comjengelh@inai.deschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comjmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comjmatejek@suse.comschwab@suse.detoddrme2178@gmail.comarichardson.kde@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgdimstar@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.comjmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comcrrodriguez@opensuse.orgjmatejek@suse.com- Update to 3.11.5 (bsc#1214692): - Security - gh-108310: Fixed an issue where instances of ssl.SSLSocket were vulnerable to a bypass of the TLS handshake and included protections (like certificate verification) and treating sent unencrypted data as if it were post-handshake TLS encrypted data. Security issue reported as CVE-2023-40217 by Aapo Oksman. Patch by Gregory P. Smith. - Core and Builtins - gh-104432: Fix potential unaligned memory access on C APIs involving returned sequences of char * pointers within the grp and socket modules. These were revealed using a - fsaniziter=alignment build on ARM macOS. Patch by Christopher Chavez. - gh-77377: Ensure that multiprocessing synchronization objects created in a fork context are not sent to a different process created in a spawn context. This changes a segfault into an actionable RuntimeError in the parent process. - gh-106092: Fix a segmentation fault caused by a use-after-free bug in frame_dealloc when the trashcan delays the deallocation of a PyFrameObject. - gh-106719: No longer suppress arbitrary errors in the __annotations__ getter and setter in the type and module types. - gh-106723: Propagate frozen_modules to multiprocessing spawned process interpreters. - gh-105979: Fix crash in _imp.get_frozen_object() due to improper exception handling. - gh-105840: Fix possible crashes when specializing function calls with too many __defaults__. - gh-105588: Fix an issue that could result in crashes when compiling malformed ast nodes. - gh-105375: Fix bugs in the builtins module where exceptions could end up being overwritten. - gh-105375: Fix bug in the compiler where an exception could end up being overwritten. - gh-105375: Improve error handling in PyUnicode_BuildEncodingMap() where an exception could end up being overwritten. - gh-105235: Prevent out-of-bounds memory access during mmap.find() calls. - gh-101006: Improve error handling when read marshal data. - Library - gh-105736: Harmonized the pure Python version of OrderedDict with the C version. Now, both versions set up their internal state in __new__. Formerly, the pure Python version did the set up in __init__. - gh-107963: Fix multiprocessing.set_forkserver_preload() to check the given list of modules names. Patch by Dong-hee Na. - gh-106242: Fixes os.path.normpath() to handle embedded null characters without truncating the path (bsc#1214693, CVE-2023-41105). - gh-107845: tarfile.data_filter() now takes the location of symlinks into account when determining their target, so it will no longer reject some valid tarballs with LinkOutsideDestinationError. - gh-107715: Fix doctest.DocTestFinder.find() in presence of class names with special characters. Patch by Gertjan van Zwieten. - gh-100814: Passing a callable object as an option value to a Tkinter image now raises the expected TclError instead of an AttributeError. - gh-106684: Close asyncio.StreamWriter when it is not closed by application leading to memory leaks. Patch by Kumar Aditya. - gh-107077: Seems that in some conditions, OpenSSL will return SSL_ERROR_SYSCALL instead of SSL_ERROR_SSL when a certification verification has failed, but the error parameters will still contain ERR_LIB_SSL and SSL_R_CERTIFICATE_VERIFY_FAILED. We are now detecting this situation and raising the appropiate ssl.SSLCertVerificationError. Patch by Pablo Galindo - gh-107396: tarfiles; Fixed use before assignment of self.exception for gzip decompression - gh-62519: Make gettext.pgettext() search plural definitions when translation is not found. - gh-83006: Document behavior of shutil.disk_usage() for non-mounted filesystems on Unix. - gh-106186: Do not report MultipartInvariantViolationDefect defect when the email.parser.Parser class is used to parse emails with headersonly=True. - gh-106831: Fix potential missing NULL check of d2i_SSL_SESSION result in _ssl.c. - gh-106774: Update the bundled copy of pip to version 23.2.1. - gh-106752: Fixed several bug in zipfile.Path in name/suffix/suffixes/stem operations when no filename is present and the Path is not at the root of the zipfile. - gh-106602: Add __copy__ and __deepcopy__ in enum - gh-106530: Revert a change to colorsys.rgb_to_hls() that caused division by zero for certain almost-white inputs. Patch by Terry Jan Reedy. - gh-106052: re module: fix the matching of possessive quantifiers in the case of a subpattern containing backtracking. - gh-106510: Improve debug output for atomic groups in regular expressions. - gh-105497: Fix flag mask inversion when unnamed flags exist. - gh-90876: Prevent multiprocessing.spawn from failing to import in environments where sys.executable is None. This regressed in 3.11 with the addition of support for path-like objects in multiprocessing. - gh-106350: Detect possible memory allocation failure in the libtommath function mp_init() used by the _tkinter module. - gh-102541: Make pydoc.doc catch bad module ImportError when output stream is not None. - gh-106263: Fix crash when calling repr with a manually constructed SignalDict object. Patch by Charlie Zhao. - gh-105375: Fix a bug in _Unpickler_SetInputStream() where an exception could end up being overwritten in case of failure. - gh-105375: Fix bugs in sys where exceptions could end up being overwritten because of deferred error handling. - gh-105605: Harden pyexpat error handling during module initialisation to prevent exceptions from possibly being overwritten, and objects from being dereferenced twice. - gh-105375: Fix bug in decimal where an exception could end up being overwritten. - gh-105375: Fix bugs in _datetime where exceptions could be overwritten in case of module initialisation failure. - gh-105375: Fix bugs in _ssl initialisation which could lead to leaked references and overwritten exceptions. - gh-105375: Fix a bug in array.array where an exception could end up being overwritten. - gh-105375: Fix bugs in _ctypes where exceptions could end up being overwritten. - gh-105375: Fix a bug in the posix module where an exception could be overwritten. - gh-105375: Fix bugs in _elementtree where exceptions could be overwritten. - gh-105375: Fix bugs in zoneinfo where exceptions could be overwritten. - gh-105375: Fix bugs in pickle where exceptions could be overwritten. - gh-105497: Fix flag inversion when alias/mask members exist. - gh-105375: Fix bugs in pickle where exceptions could be overwritten. - gh-103171: Revert undocumented behaviour change with runtime-checkable protocols decorated with typing.final() in Python 3.11. The behaviour change had meant that objects would not be considered instances of these protocols at runtime unless they had a __final__ attribute. Patch by Alex Waygood. - gh-105375: Fix a bug in sqlite3 where an exception could be overwritten in the collation callback. - gh-105332: Revert pickling method from by-name back to by-value. - gh-104554: Add RTSPS scheme support in urllib.parse - gh-100061: Fix a bug that causes wrong matches for regular expressions with possessive qualifier. - gh-102541: Hide traceback in help() prompt, when import failed. - gh-99203: Restore following CPython <= 3.10.5 behavior of shutil.make_archive(): do not create an empty archive if root_dir is not a directory, and, in that case, raise FileNotFoundError or NotADirectoryError regardless of format choice. Beyond the brought-back behavior, the function may now also raise these exceptions in dry_run mode. - gh-94777: Fix hanging multiprocessing ProcessPoolExecutor when a child process crashes while data is being written in the call queue. - bpo-18319: Ensure gettext(msg) retrieve translations even if a plural form exists. In other words: gettext(msg) == ngettext(msg, '', 1). - Documentation - gh-107008: Document the curses module variables LINES and COLS. - gh-106948: Add a number of standard external names to nitpick_ignore. - gh-54738: Add documentation on how to localize the argparse module. - Tests - gh-105776: Fix test_cppext when the C compiler command -std=c11 option: remove -std= options from the compiler command. Patch by Victor Stinner. - gh-107237: test_logging: Fix test_udp_reconnection() by increasing the timeout from 100 ms to 5 minutes (LONG_TIMEOUT). Patch by Victor Stinner. - gh-101634: When running the Python test suite with -jN option, if a worker stdout cannot be decoded from the locale encoding report a failed testn so the exitcode is non-zero. Patch by Victor Stinner. - Build - gh-107814: When calling find_python.bat with -q it did not properly silence the output of nuget. That is now fixed. - gh-106881: Check for linux/limits.h before including it in Modules/posixmodule.c. - gh-104692: Include commoninstall as a prerequisite for bininstall - This ensures that commoninstall is completed before bininstall is started when parallel builds are used (make -j install), and so the python3 symlink is only installed after all standard library modules are installed. - gh-100340: Allows -Wno-int-conversion for wasm-sdk 17 and onwards, thus enables building WASI builds once against the latest sdk. - Windows - gh-106242: Fixes realpath() to behave consistently when passed a path containing an embedded null character on Windows. In strict mode, it now raises OSError instead of the unexpected ValueError, and in non-strict mode will make the path absolute. - gh-106844: Fix integer overflow in _winapi.LCMapStringEx() which affects ntpath.normcase(). - gh-99079: Update Windows build to use OpenSSL 3.0.9 - gh-105436: Ensure that an empty environment block is terminated by two null characters, as is required by Windows. - macOS - gh-107565: Update macOS installer to use OpenSSL 3.0.10. - gh-99079: Update macOS installer to use OpenSSL 3.0.9. - Tools/Demos - gh-107565: Update multissltests and GitHub CI workflows to use OpenSSL 1.1.1v, 3.0.10, and 3.1.2. - gh-95065: Argument Clinic now supports overriding automatically generated signature by using directive @text_signature. See How to override the generated signature. - gh-106970: Fix bugs in the Argument Clinic destination clear command; the destination buffers would never be cleared, and the destination directive parser would simply continue to the fault handler after processing the command. Patch by Erlend E. Aasland. - C API - gh-107916: C API functions PyErr_SetFromErrnoWithFilename(), PyErr_SetExcFromWindowsErrWithFilename() and PyErr_SetFromWindowsErrWithFilename() save now the error code before calling PyUnicode_DecodeFSDefault(). - gh-107915: Such C API functions as PyErr_SetString(), PyErr_Format(), PyErr_SetFromErrnoWithFilename() and many others no longer crash or ignore errors if it failed to format the error message or decode the filename. Instead, they keep a corresponding error. - gh-107226: PyModule_AddObjectRef() is now only available in the limited API version 3.10 or later. - gh-105375: Fix a bug in PyErr_WarnExplicit() where an exception could end up being overwritten if the API failed internally. - gh-99612: Fix PyUnicode_DecodeUTF8Stateful() for ASCII-only data: *consumed was not set.- restrict PEP668 to ALP/Tumbleweed- add externally_managed.in to label this build as PEP-668 managed- IT MEANS THAT bsc#1210638 STILL HAS NOT BEEN FIXED! - Add Revert-gh105127-left-tests.patch (gh#python/cpython!106941) partially reverting CVE-2023-27043-email-parsing-errors.patch, because of the regression in gh#python/cpython#106669. - (bsc#1210638, CVE-2023-27043) Add CVE-2023-27043-email-parsing-errors.patch, which detects email address parsing errors and returns empty tuple to indicate the parsing error (old API). (The patch is faulty, gh#python/cpython#106669, but upstream decided not to just revert it).- Update to Python 3.11.4: - gh-103142: The version of OpenSSL used in Windows and Mac installers has been upgraded to 1.1.1u to address CVE-2023-2650, CVE-2023-0465, CVE-2023-0466, CVE-2023-0464, as well as CVE-2023-0286, CVE-2022-4303, and CVE-2022-4303 fixed previously in 1.1.1t (gh-101727). - gh-102153: urllib.parse.urlsplit() now strips leading C0 control and space characters following the specification for URLs defined by WHATWG in response to CVE-2023-24329 (bsc#1208471). - gh-99889: Fixed a security in flaw in uu.decode() that could allow for directory traversal based on the input if no out_file was specified. - gh-104049: Do not expose the local on-disk location in directory indexes produced by http.client.SimpleHTTPRequestHandler. - gh-103935: trace.__main__ now uses io.open_code() for files to be executed instead of raw open(). - gh-102953: The extraction methods in tarfile, and shutil.unpack_archive(), have a new filter argument that allows limiting tar features than may be surprising or dangerous, such as creating files outside the destination directory. See Extraction filters for details (fixing CVE-2007-4559, bsc#1203750). - Remove upstreamed patches: - CVE-2007-4559-filter-tarfile_extractall.patch- Remove obsolete_python_versioned macro again. This mechanism has no business to be in Python 3.11, because we have abolished with it whole interpreter+setuptools+pip product. Python 3.11 should not be replaced by later versions anymore.- Add 103213-fetch-CONFIG_ARGS.patch (gh#python/cpython#103053). - Add skip_if_buildbot-extend.patch to avoid the bug altogether (extending what skip_if_buildbot covers). - Add CVE-2007-4559-filter-tarfile_extractall.patch to fix bsc#1203750 (CVE-2007-4559) and implementing "PEP 706 – Filter for tarfile.extractall".- Update to 3.11.3: - Security - gh-101727: Updated the OpenSSL version used in Windows and macOS binary release builds to 1.1.1t to address CVE-2023-0286, CVE-2022-4303, and CVE-2022-4303 per the OpenSSL 2023-02-07 security advisory. - Core and Builtins - gh-101975: Fixed stacktop value on tracing entries to avoid corruption on garbage collection. - gh-102701: Fix overflow when creating very large dict. - gh-102416: Do not memoize incorrectly automatically generated loop rules in the parser. Patch by Pablo Galindo. - gh-102356: Fix a bug that caused a crash when deallocating deeply nested filter objects. Patch by Marta Gómez Macías. - gh-102397: Fix segfault from race condition in signal handling during garbage collection. Patch by Kumar Aditya. - gh-102281: Fix potential nullptr dereference and use of uninitialized memory in fileutils. Patch by Max Bachmann. - gh-102126: Fix deadlock at shutdown when clearing thread states if any finalizer tries to acquire the runtime head lock. Patch by Kumar Aditya. - gh-102027: Fix SSE2 and SSE3 detection in _blake2 internal module. Patch by Max Bachmann. - gh-101967: Fix possible segfault in positional_only_passed_as_keyword function, when new list created. - gh-101765: Fix SystemError / segmentation fault in iter __reduce__ when internal access of builtins.__dict__ keys mutates the iter object. - gh-101696: Invalidate type version tag in _PyStaticType_Dealloc for static types, avoiding bug where a false cache hit could crash the interpreter. Patch by Kumar Aditya. - Library - gh-102549: Don’t ignore exceptions in member type creation. - gh-102947: Improve traceback when dataclasses.fields() is called on a non-dataclass. Patch by Alex Waygood - gh-102780: The asyncio.Timeout context manager now works reliably even when performing cleanup due to task cancellation. Previously it could raise a CancelledError instead of an TimeoutError in such cases. - gh-88965: typing: Fix a bug relating to substitution in . Pacustom classes generic over a ParamSpec. Previously, if . Pathe ParamSpec was substituted with a parameters list that . Paitself contained a TypeVar, the TypeVar in the parameters . Palist could not be subsequently substituted. This is now . Pafixed tch by Nikita Sobolev . - gh-101979: Fix a bug where parentheses in the metavar argument to argparse.ArgumentParser.add_argument() were dropped. Patch by Yeojin Kim. - gh-102179: Fix os.dup2() error message for negative fds. - gh-101961: For the binary mode, fileinput.hookcompressed() doesn’t set the encoding value even if the value is None. Patch by Gihwan Kim. - gh-101936: The default value of fp becomes io.BytesIO if HTTPError is initialized without a designated fp parameter. Patch by Long Vo. - gh-102069: Fix __weakref__ descriptor generation for custom dataclasses. - gh-101566: In zipfile, apply fix for extractall on the underlying zipfile after being wrapped in Path. - gh-101892: Callable iterators no longer raise SystemError when the callable object exhausts the iterator but forgets to either return a sentinel value or raise StopIteration. - gh-97786: Fix potential undefined behaviour in corner cases of floating-point-to-time conversions. - gh-101517: Fixed bug where bdb looks up the source line with linecache with a lineno=None, which causes it to fail with an unhandled exception. - gh-101673: Fix a pdb bug where ll clears the changes to local variables. - gh-96931: Fix incorrect results from ssl.SSLSocket.shared_ciphers() - gh-88233: Correctly preserve “extra” fields in zipfile regardless of their ordering relative to a zip64 “extra.” - gh-96127: inspect.signature was raising TypeError on call with mock objects. Now it correctly returns (*args, * *kwargs) as infered signature. - gh-95495: When built against OpenSSL 3.0, the ssl module had a bug where it reported unauthenticated EOFs (i.e. without close_notify) as a clean TLS-level EOF. It now raises SSLEOFError, matching the behavior in previous versions of OpenSSL. The options attribute on SSLContext also no longer includes OP_IGNORE_UNEXPECTED_EOF by default. This option may be set to specify the previous OpenSSL 3.0 behavior. - gh-94440: Fix a concurrent.futures.process bug where ProcessPoolExecutor shutdown could hang after a future has been quickly submitted and canceled. - Documentation - gh-103112: Add docstring to http.client.HTTPResponse.read() to fix pydoc output. - gh-85417: Update cmath documentation to clarify behaviour on branch cuts. - gh-97725: Fix asyncio.Task.print_stack() description for file=None. Patch by Oleg Iarygin. - Tests - gh-102980: Improve test coverage on pdb. - gh-102537: Adjust the error handling strategy in test_zoneinfo.TzPathTest.python_tzpath_context. Patch by Paul Ganssle. - gh-89792: test_tools now copies up to 10x less source data to a temporary directory during the freeze test by ignoring git metadata and other artifacts. It also limits its python build parallelism based on os.cpu_count instead of hard coding it as 8 cores. - gh-101377: Improved test_locale_calendar_formatweekday of calendar. - Build - gh-102711: Fix -Wstrict-prototypes compiler warnings.- Update to 3.11.2: Bug fixes, no changes in API and no security bugs.- Add python310 Obsoletes line to obsolete_python_versioned macro.- Add provides for readline and sqlite3 to the main Python package.- Disable NIS for new products, it's deprecated and gets removed- build GLIBC hwcaps optimized versions of the interpreter- Don't fail on Sphinx build warnings. - For jsc#PED-1570, jsc#PED-2217 and jsc#PED-68, providing Python 3.11 for SLE-15-SP4.- Update to 3.11.1: - python -m http.server no longer allows terminal control characters sent within a garbage request to be printed to the stderr server lo This is done by changing the http.server BaseHTTPRequestHandler .log_message method to replace control characters with a \xHH hex escape before printin - Avoid publishing list of active per-interpreter audit hooks via the gc module - The IDNA codec decoder used on DNS hostnames by socket or asyncio related name resolution functions no longer involves a quadratic algorithm. This prevents a potential CPU denial of service if an out-of-spec excessive length hostname involving bidirectional characters were decoded. Some protocols such as urllib http 3xx redirects potentially allow for an attacker to supply such a name (CVE-2022-45061). - Update bundled libexpat to 2.5.0 - Fix a shell code injection vulnerability in the get-remote-certificate.py example script. The script no longer uses a shell to run openssl commands. Issue reported and initial fix by Caleb Shortt. Patch by Victor Stinner. - Fix a crash when an object which does not have a dictionary frees its instance values. - Fix a bug in the tokenizer that could cause infinite recursion when showing syntax warnings that happen in the first line of the source. Patch by Pablo Galindo - Fix an issue that could cause frames to be visible to Python code as they are being torn down, possibly leading to memory corruption or hard crashes of the interpreter. - Fix a reference bug in _imp.create_builtin() after the creation of the first sub-interpreter for modules builtins and sys. Patch by Victor Stinner. - Fixed a bug that was causing a buffer overflow if the tokenizer copies a line missing the newline caracter from a file that is as long as the available tokenizer buffer. Patch by Pablo galindo - Fix bug where an ExceptionGroup subclass can wrap a BaseException. - Fix zip path for venv created from a non-installed python on POSIX platforms. - Fix an issue that could potentially cause incorrect error handling for some bytecode instructions. - Fix an issue that prevented PyThreadState and PyInterpreterState memory from being freed properly. - Fix failure in except* with unhashable exceptions. - Fix calculation of sys._base_executable when inside a POSIX virtual environment using copies of the python binary when the base installation does not provide the executable name used by the venv. Calculation will fall back to alternative names (“python”, “python.”). - Update faulthandler to emit an error message with the proper unexpected signal number. Patch by Dong-hee Na. - Fix location of SyntaxError for a try block with both except and except*. - Fix the error reporting positions of specialized traceback anchors when the source line contains Unicode characters. - Fix subscription of type aliases containing bare generic types or types like TypeVar: for example tuple[A, T][int] and tuple[TypeVar, T][int], where A is a generic type, and T is a type variable. - Lower the recursion depth for marshal on WASI to support wasmtime 2.0/main. - Fix multiple crashes in debug mode when str subclasses are used instead of str itself. - Fix an issue where member descriptors (such as those for __slots__) could behave incorrectly or crash instead of raising a TypeError when accessed via an instance of an invalid type. - Suppress ImportError for invalid query for help() command. Patch by Dong-hee Na. - Fix detection of MAC addresses for uuid on certain OSs. Patch by Chaim Sanders - Print exception class name instead of its string representation when raising errors from ctypes calls. - os.sched_yield() now release the GIL while calling sched_yield(2). Patch by Dong-hee Na. - Fix an issue that could delay the specialization of PRECALL instructions. - Bugfix: PyFunction_GetAnnotations() should return a borrowed reference. It was returning a new reference. - Ensure that all Python frame objects are backed by “complete” frames. - Fixed a missing incref/decref pair in Exception.__setstate__(). Patch by Ofey Chan. - Fix the Python path configuration used to initialized sys.path at Python startup. Paths are no longer encoded to UTF-8/strict to avoid encoding errors if it contains surrogate characters (bytes paths are decoded with the surrogateescape error handler). Patch by Victor Stinner. - Fix overly-broad source position information for chained comparisons used as branching conditions. - At Python exit, sometimes a thread holding the GIL can wait forever for a thread (usually a daemon thread) which requested to drop the GIL, whereas the thread already exited. To fix the race condition, the thread which requested the GIL drop now resets its request before exiting. Issue discovered and analyzed by Mingliang ZHAO. Patch by Victor Stinner. - Fix a possible assertion failure, fatal error, or SystemError if a line tracing event raises an exception while opcode tracing is enabled. - Fix undefined behaviour in C code of null pointer arithmetic. - Make sure that all frame objects created are created from valid interpreter frames. Prevents the possibility of invalid frames in backtraces and signal handlers. - Disable incorrect pickling of the C implemented classmethod descriptors. - On WASI ENOTCAPABLE is now mapped to PermissionError. The errno modules exposes the new error number. getpath.py now ignores PermissionError when it cannot open landmark files pybuilddir.txt and pyenv.cfg. - Allow pdb to locate source for frozen modules in the standard library. - Raise ValueError instead of SystemError when methods of uninitialized io.IncrementalNewlineDecoder objects are called. Patch by Oren Milman. - Fix a possible assertion failure in io.FileIO when the opener returns an invalid file descriptor. - Also escape s in the http.server BaseHTTPRequestHandler.log_message so that it is technically possible to parse the line and reconstruct what the original data was. Without this a xHH is ambiguious as to if it is a hex replacement we put in or the characters r”x” came through in the original request line. - asyncio.get_event_loop() now only emits a deprecation warning when a new event loop was created implicitly. It no longer emits a deprecation warning if the current event loop was set. - Fix bug when calling trace.CoverageResults with valid infile. - Fix a bug in handling class cleanups in unittest.TestCase. Now addClassCleanup() uses separate lists for different TestCase subclasses, and doClassCleanups() only cleans up the particular class. - Release the GIL when calling termios APIs to avoid blocking threads. - Fix ast.increment_lineno() to also cover ast.TypeIgnore when changing line numbers. - Fix bug in urllib.parse.urlparse() that causes URL schemes that begin with a digit, a plus sign, or a minus sign to be parsed incorrectly. - Check the number of arguments in substitution in user generics containing a TypeVarTuple and one or more TypeVar. - Fix substitution of ParamSpec followed by TypeVarTuple in generic aliases. - Fix substitution of TypeVarTuple and ParamSpec together in user generics. - Fixed bug where inspect.signature() reported incorrect arguments for decorated methods. - Fix SystemError in ctypes when exception was not set during __initsubclass__. - Remove older version of _SSLProtocolTransport.get_write_buffer_limits in asyncio.sslproto - fix negative numbers failing in verify() - Fix statistics.NormalDist pickle with 0 and 1 protocols. - enum.auto() is now correctly activated when combined with other assignment values. E.g. ONE = auto(), 'some text' will now evaluate as (1, 'some text'). - Update the bundled copy of pip to version 22.3.1. - Clean up refleak on failed module initialisation in _zoneinfo - Clean up refleaks on failed module initialisation in in _pickle - Clean up refleak on failed module initialisation in _io. - Fix memory leak in math.dist() when both points don’t have the same dimension. Patch by Kumar Aditya. - [3.11] Applied changes from importlib_metadata 4.11.4 through 4.13, including compatibility and robustness fixes for Distribution objects without _normalized_name, disallowing invalid inputs to Distribution.from_name, and refined behaviors in PathDistribution._name_from_stem and PathDistribution._normalized_name. - Fix argument typechecks in _overlapped.WSAConnect() and _overlapped.Overlapped.WSASendTo() functions. - Prevent crashing in traceback when retrieving the byte-offset for some source files that contain certain unicode characters. - Fix internal error in the re module which in very rare circumstances prevented compilation of a regular expression containing a conditional expression without the “else” branch. - Fix asyncio.StreamWriter.drain() to call protocol.connection_lost callback only once on Windows. - Add a mutex to unittest.mock.NonCallableMock to protect concurrent access to mock attributes. - Fix hang on Windows in subprocess.wait_closed() in asyncio with ProactorEventLoop. Patch by Kumar Aditya. - Fix infinite loop in unittest when a self-referencing chained exception is raised - tkinter.Text.count() raises now an exception for options starting with “-” instead of silently ignoring them. - On uname_result, restored expectation that _fields and _asdict would include all six properties including processor. - A createSocket() method was added to SysLogHandler. - Fix bug in urllib.parse.urlparse() that causes certain port numbers containing whitespace, underscores, plus and minus signs, or non-ASCII digits to be incorrectly accepted. - Allow venv to pass along PYTHON* variables to ensurepip and pip when they do not impact path resolution - On macOS, fix a crash in syslog.syslog() in multi-threaded applications. On macOS, the libc syslog() function is not thread-safe, so syslog.syslog() no longer releases the GIL to call it. Patch by Victor Stinner. - Allow BUILTINS to be a valid field name for frozen dataclasses. - Wrap network errors consistently in urllib FTP support, so the test suite doesn’t fail when a network is available but the public internet is not reachable. - Make sure patch.dict() can be applied on async functions. - Earlier in 3.11 we deprecated asyncio.Task.cancel("message"). We realized we were too harsh, and have undeprecated it. - Change deprecate warning message in unittest from It is deprecated to return a value!=None to It is deprecated to return a value that is not None from a test case - Fixes AttributeError when subprocess.check_output() is used with argument input=None and either of the arguments encoding or errors are used. - Fix is_private properties in the ipaddress module. Previously non-private networks (0.0.0.0/0) would return True from this method; now they correctly return False. - Avoid spurious tracebacks from asyncio when default executor cleanup is delayed until after the event loop is closed (e.g. as the result of a keyboard interrupt). - Avoid a crash in the C version of asyncio.Future.remove_done_callback() when an evil argument is passed. - Remove tokenize.NL check from tabnanny. - Fix generation of the default name of tkinter.Checkbutton. Previously, checkbuttons in different parent widgets could have the same short name and share the same state if arguments “name” and “variable” are not specified. Now they are globally unique. - Update bundled libexpat to 2.4.9 - Fix race condition in asyncio where process_exited() called before the pipe_data_received() leading to inconsistent output. Patch by Kumar Aditya. - Fixed check in multiprocessing.resource_tracker that guarantees that the length of a write to a pipe is not greater than PIPE_BUF. - Corrected type annotation for dataclass attribute pstats.FunctionProfile.ncalls to be str. - Fix repr of Any subclasses. - Work around missing socket functions in socket’s __repr__. - In inspect, fix overeager replacement of “typing.” in formatting annotations. - Fix handling of bytes path-like objects in os.ismount(). - Fix handling compiler warnings (SyntaxWarning and DeprecationWarning) in codeop.compile_command() when checking for incomplete input. Previously it emitted warnings and raised a SyntaxError. Now it always returns None for incomplete input without emitting any warnings. - To avoid apparent memory leaks when asyncio.open_connection() raises, break reference cycles generated by local exception and future instances (which has exception instance as its member var). Patch by Dong Uk, Kang. - Fixed flickering of the turtle window when the tracer is turned off. Patch by Shin-myoung-serp. - Fix asyncio subprocess transport to kill process cleanly when process is blocked and avoid RuntimeError when loop is closed. Patch by Kumar Aditya. - Prevent error when activating venv in nested fish instances. - TarFile.next() now returns None when called on an empty tarfile. - Document the optional callback parameter of WeakMethod. Patch by Géry Ogam. - Restrict use of sockets instead of pipes for stdin of subprocesses created by asyncio to AIX platform only. - shutil.copytree() now applies the ignore_dangling_symlinks argument recursively. - Fix IndexError in argparse.ArgumentParser when a store_true action is given an explicit argument. - Document that calling variadic functions with ctypes requires special care on macOS/arm64 (and possibly other platforms). - Remove extra row - Clarified the conflicting advice given in the ast documentation about ast.literal_eval() being “safe” for use on untrusted input while at the same time warning that it can crash the process. The latter statement is true and is deemed unfixable without a large amount of work unsuitable for a bugfix. So we keep the warning and no longer claim that literal_eval is safe. - Restructured the documentation for the os.wait* family of functions, and improved the docs for os.waitid() with more explanation of the possible argument constants. - Skip test_normalization() of test_unicodedata if it fails to download NormalizationTest.txt file from pythontest.net. Patch by Victor Stinner. - Correct test_marsh on (32 bit) x86: test_deterministic sets was failing. - Optional big memory tests in test_sqlite3 now catch the correct sqlite.DataError exception type in case of too large strings and/or blobs passed. - Fix a bug in the typing tests where a test relying on CPython-specific implementation details was not decorated with @cpython_only and was not skipped on other implementations. - Add tests for star-unpacking with PEP 646, and some other miscellaneous PEP 646 tests. - Added explicit coverage of Py_Initialize (and hence Py_InitializeEx) back to the embedding tests (all other embedding tests migrated to Py_InitializeFromConfig in Python 3.11) - Some C API tests were moved into the new Lib/test/test_capi/ directory. - Fix -Wimplicit-int, -Wstrict-prototypes, and - Wimplicit-function-declaration compiler warnings in configure checks. - Fix a compilation issue with GCC 12 on macOS. - Fix -Wimplicit-int compiler warning in configure check for PTHREAD_SCOPE_SYSTEM. - Fix a possible fd leak in Programs/_freeze_module.c introduced in Python 3.11. - Fix build with PYTHON_FOR_REGEN=python3.8. - Specify the full path to the source location for make docclean (needed for cross-builds). - Don’t use vendored libmpdec headers if --with-system-libmpdec is passed to configure. Don’t use vendored libexpat headers if --with-system-expat is passed to !configure. - Fix the build process of clang compiler for _bootstrap_python if LTO optimization is applied. Patch by Matthias Görgens and Dong-hee Na. - wasm32-emscripten builds for browsers now include concurrent.futures for asyncio and unittest.mock. - wasm32-emscripten platform no longer builds resource module, getresuid(), getresgid(), and their setters. The APIs are stubs and not functional. - Updated pegen regeneration script on Windows to find and use Python 3.9 or higher. Prior to this, pegen regeneration already required 3.9 or higher, but the script may have used lower versions of Python. - Fix a bug in the previous bugfix that caused IDLE to not start when run with 3.10.8, 3.12.0a1, and at least Microsoft Python 3.10.2288.0 installed without the Lib/test package. 3.11.0 was never affected. - The wasm_build.py script now pre-builds Emscripten ports, checks for broken EMSDK versions, and warns about pkg-config env vars. - The new tool Tools/wasm/wasm_builder.py automates configure, compile, and test steps for building CPython on WebAssembly platforms. - Fix handling of module docstrings in Tools/i18n/pygettext.py. - PyBUF_* constants were marked as part of Limited API of Python 3.11+. These were available in 3.11.0 with Py_LIMITED_API defined for 3.11, and are necessary to use the buffer API. - Fix use-after-free in Py_SetPythonHome(NULL), Py_SetProgramName(NULL) and _Py_SetProgramFullPath(NULL) function calls. Issue reported by Benedikt Reinartz. Patch by Victor Stinner. - Py_InitializeEx now correctly calls PyConfig_Clear after initializing the interpreter (the omission didn’t cause a memory leak only because none of the dynamically allocated config fields are populated by the wrapper function) - Removed upstreamed patches: - 98437-sphinx.locale._-as-gettext-in-pyspecific.patch - CVE-2022-45061-DoS-by-IDNA-decode.patch- 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.- Update to 3.11.0 (overall changes from 3.10.*): - General changes - PEP 657 -- Include Fine-Grained Error Locations in Tracebacks - PEP 654 -- Exception Groups and except* - PEP 680 -- tomllib: Support for Parsing TOML in the Standard Library - gh-90908 -- Introduce task groups to asyncio - gh-34627 -- Atomic grouping ((?>...)) and possessive quantifiers (*+, ++, ?+, {m,n}+) are now supported in regular expressions. - The Faster CPython Project is already yielding some exciting results. Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a 1.22x speedup on the standard benchmark suite. See Faster CPython for details. - Typing and typing language changes - PEP 673 -- Self Type - PEP 646 -- Variadic Generics - PEP 675 -- Arbitrary Literal String Type - PEP 655 -- Marking individual TypedDict items as required or potentially-missing - PEP 681 -- Data Class Transforms - (just changes from 3.11.0rc2): - Fix multiplying a list by an integer (list *= int): detect the integer overflow when the new allocated length is close to the maximum size. Issue reported by Jordan Limor. Patch by Victor Stinner. - On Linux the multiprocessing module returns to using filesystem backed unix domain sockets for communication with the forkserver process instead of the Linux abstract socket namespace. Only code that chooses to use the “forkserver” start method is affected. Abstract sockets have no permissions and could allow any user on the system in the same network namespace (often the whole system) to inject code into the multiprocessing forkserver process. This was a potential privilege escalation. Filesystem based socket permissions restrict this to the forkserver process user as was the default in Python 3.8 and earlier. This prevents Linux CVE-2022-42919. - Fix an issue where several frame objects could be backed by the same interpreter frame, possibly leading to corrupted memory and hard crashes of the interpreter. - Fix possible data corruption or crashes when accessing the f_back member of newly-created generator or coroutine frames. - Fix a crash occurring when PyEval_GetFrame() is called while the topmost Python frame is in a partially-initialized state. - Fix command line parsing: reject -X int_max_str_digits option with no value (invalid) when the PYTHONINTMAXSTRDIGITS environment variable is set to a valid limit. Patch by Victor Stinner. - Fix undefined behaviour in _testcapimodule.c. - When ValueError is raised if an integer is larger than the limit, mention the sys.set_int_max_str_digits() function in the error message. Patch by Victor Stinner. - Correctly raise SyntaxError on exception groups (PEP 654) on python versions prior to 3.11 - Document some places where an assignment expression needs parentheses. - Update the bundled copies of pip and setuptools to versions 22.3 and 65.5.0 respectively. - fix Flag to use boundary CONFORM - This restores previous Flag behavior of allowing flags with non-sequential values to be combined; e.g. - class Skip(Flag): TWO = 2 EIGHT = 8 - Skip.TWO | Skip.EIGHT -> - Fix ! in c domain ref target syntax via a conf.py patch, so it works as intended to disable ref target resolution. - Update tutorial introduction output to use 3.10+ SyntaxError invalid range.- Add 98437-sphinx.locale._-as-gettext-in-pyspecific.patch to allow building of documentation with the latest Sphinx 5.3.0 (gh#python/cpython#98366).- Update to 3.11.0rc2: - Converting between int and str in bases other than 2 (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) now raises a ValueError if the number of digits in string form is above a limit to avoid potential denial of service attacks due to the algorithmic complexity. This is a mitigation for CVE-2020-10735. This new limit can be configured or disabled by environment variable, command line flag, or sys APIs. See the integer string conversion length limitation documentation. The default limit is 4300 digits in string form. - Fix case of undefined behavior in ceval.c - Do not expose KeyWrapper in _functools. - Ensure that tracing, sys.setrace(), is turned on immediately. In pre-release versions of 3.11, some tracing events might have been lost when turning on tracing in a __del__ method or interrupt. - Fix use after free in trace refs build mode. Patch by Kumar Aditya. - When loading a file with invalid UTF-8 inside a multi-line string, a correct SyntaxError is emitted. - Make sure that incomplete frames do not show up in tracemalloc traces. - Remove two cases of undefined behavior, by adding NULL checks. - Fix possible NULL pointer dereference in _PyThread_CurrentFrames. Patch by Kumar Aditya. - Fix AttributeError missing name and obj attributes in object.__getattribute__(). Patch by Philip Georgi. - Loading a file with invalid UTF-8 will now report the broken character at the correct location. - Fixed a bug that caused _PyCode_GetExtra to return garbage for negative indexes. Patch by Pablo Galindo - Fix a deadlock in PyGILState_Ensure() when allocating new thread state. Patch by Kumar Aditya. - PyType_Ready() now initializes ht_cached_keys and performs additional checks to ensure that type objects are properly configured. This avoids crashes in 3rd party packages that don’t use regular API to create new types. - Skip over incomplete frames in PyThreadState_GetFrame(). - Fix format string in _PyPegen_raise_error_known_location that can lead to memory corruption on some 64bit systems. The function was building a tuple with i (int) instead of n (Py_ssize_t) for Py_ssize_t arguments. - Fix misleading contents of error message when converting an all-whitespace string to float. - ast.parse() will no longer parse function definitions with positional-only params when passed feature_version less than (3, 8). Patch by Shantanu Jain. - Fix incorrect error message in the io module. - Fix the faulthandler implementation of faulthandler.register(signal, chain=True) if the sigaction() function is not available: don’t call the previous signal handler if it’s NULL. Patch by Victor Stinner. - Correct conversion of numbers.Rational’s to float. - Fix TypeVarTuple.__typing_prepare_subst__. TypeError was not raised when using more than one TypeVarTuple, like [*T, *V] in type alias substitutions. - Fix asyncio.streams.StreamReaderProtocol to keep a strong reference to the created task, so that it’s not garbage collected - Fix a performance regression in logging TimedRotatingFileHandler. Only check for special files when the rollover time has passed. - Fix unused localName parameter in the Attr class in xml.dom.minidom. - Fix incorrect condition that causes sys.thread_info.name to be wrong on pthread platforms. - Remove an incompatible change from bpo-28080 that caused a regression that ignored the utf8 in ZipInfo.flag_bits. Patch by Pablo Galindo. - Fix asyncio.Runner to call asyncio.set_event_loop() only once to avoid calling attach_loop() multiple times on child watchers. Patch by Kumar Aditya. - Fix unittest.IsolatedAsyncioTestCase to set event loop before calling setup functions. Patch by Kumar Aditya. - When a task catches asyncio.CancelledError and raises some other error, the other error should generally not silently be suppressed. - Fail gracefully if EPERM or ENOSYS is raised when loading crypt methods. This may happen when trying to load MD5 on a Linux kernel with FIPS enabled. - Allow asyncio.StreamWriter.drain() to be awaited concurrently by multiple tasks. Patch by Kumar Aditya. - Fix ast.unparse() when ImportFrom.level is None - Improve discoverability of the higher level concurrent.futures module by providing clearer links from the lower level threading and multiprocessing modules. - What’s New 3.11 now has instructions for how to provide compiler and linker flags for Tcl/Tk and OpenSSL on RHEL 7 and CentOS 7. - Mitigate the inherent race condition from using find_unused_port() in testSockName() by trying to find an unused port a few times before failing. Patch by Ross Burton. - Build and test with OpenSSL 1.1.1q - Use support-expat-CVE-2022-25236-patched.patch from the current version of gh#python/cpython#93900 instead of the old support-expat-245.patch. - Reapply fix_configure_rst.patch.- Increase testsuite timeout for test_freeze_simple_script- fix import_failed.map to refer to the python 3.11 package versions- Update to 3.11.0rc1: - Core and Builtins - Update code object hashing and equality to consider all debugging and exception handling tables. This fixes an issue where certain non-identical code objects could be “deduplicated” during compilation. - _PyPegen_Parser_New now properly detects token memory allocation errors. Patch by Honglin Zhu. - Run Python code in tracer/profiler function at full speed. Fixes slowdown in earlier versions of 3.11. - Emit a warning in debug mode if an object does not call PyObject_GC_UnTrack() before deallocation. Patch by Pablo Galindo. - Prevented crashes in the AST constructor when compiling some absurdly long expressions like "+0"*1000000. RecursionError is now raised instead. Patch by Pablo Galindo - ast.AST node positions are now validated when provided to compile() and other related functions. If invalid positions are detected, a ValueError will be raised. - Fix error detection in some builtin functions when keyword argument name is an instance of a str subclass with overloaded __eq__ and __hash__. Previously it could cause SystemError or other undesired behavior. - Library - Update bundled pip to 22.2.2. - Fix asyncio.TaskGroup to propagate exception when asyncio.CancelledError was replaced with another exception by a context manger. Patch by Kumar Aditya and Guido van Rossum. - Update bundled pip to 22.2.1. - Fix GC crash when deallocating _lsprof.Profiler by untracking it before calling any callbacks. Patch by Kumar Aditya. - Fix asyncio.run() for asyncio.Task implementations without uncancel() method. Patch by Kumar Aditya. - Fix check for existence of os.EFD_CLOEXEC, os.EFD_NONBLOCK and os.EFD_SEMAPHORE flags on older kernel versions where these flags are not present. Patch by Kumar Aditya. - Fix concurrent.futures.Executor.map() to cancel the currently waiting on future on an error - e.g. TimeoutError or KeyboardInterrupt. - Ensure that timeouts scheduled with asyncio.Timeout that have already expired are delivered promptly. - Suppress writing an XML declaration in open files in ElementTree.write() with encoding='unicode' and xml_declaration=None. - Fix findtext in the xml module to only give an empty string when the text attribute is set to None. - Documentation - Fix stylesheet not working in Windows CHM htmlhelp docs and add warning that they are deprecated. Contributed by C.A.M. Gerlach. - Update library documentation with availability information on WebAssembly platforms wasm32-emscripten and wasm32-wasi. - Use consistent syntax for platform availability. The directive now supports a content body and emits a warning when it encounters an unknown platform. - Document a limitation in ThreadPoolExecutor where its exit handler is executed before any handlers in atexit. - Tests - Lib/test/test_asyncio/test_ssl.py exposed a bug in the macOS kernel where intense concurrent load on non-blocking sockets occasionally causes errno.ENOBUFS (“No buffer space available”) to be emitted. FB11063974 filed with Apple, in the mean time as a workaround buffer size used in tests on macOS is decreased to avoid intermittent failures. Patch by Fantix King. - Fix problem with test_ssl test_get_ciphers on systems that require perfect forward secrecy (PFS) ciphers. - Add a regression test for re exponentional slowdown when using rjsmin. - Build - Fix a regression in configure script that caused some header checks to ignore custom CPPFLAGS. The regression was introduced in gh-94802. - wasm32-wasi builds no longer depend on WASIX’s pthread stubs. Python now has its own stubbed pthread API. - Python now detects missing dup function in WASI and works around some missing errno, select, and socket constants. - Python now skips missing socket functions and methods on WASI. WASI can only create sockets from existing fd / accept and has no netdb. - Platforms wasm32-unknown-emscripten and wasm32-unknown-wasi have been promoted to PEP 11 tier 3 platform support. - IDLE - Document handling of extensions in Save As dialogs. - Include prompts when saving Shell (interactive input and output). - Fix the Shell context menu copy-with-prompts bug of copying an extra line when one selects whole lines. - In the Edit menu, move Select All and add a new separator. - Enable using IDLE’s module browser with .pyw files. - Add .pyi as a recognized extension for IDLE on macOS. This allows opening stub files by double clicking on them in the Finder. - C API - Restore the 3.10 behavior for multiple inheritance of C extension classes that store their dictionary at the end of the struct. - Added PyCode_GetVarnames(), PyCode_GetCellvars() and PyCode_GetFreevars() for accessing co_varnames, co_cellvars and co_freevars respectively via the C API.- Update to 3.11.0b5: - Core and Builtins - gh-93351: ast.AST node positions are now validated when provided to compile() and other related functions. If invalid positions are detected, a ValueError will be raised. - gh-94438: Fix an issue that caused extended opcode arguments and some conditional pops to be ignored when calculating valid jump targets for assignments to the f_lineno attribute of frame objects. In some cases, this could cause inconsistent internal state, resulting in a hard crash of the interpreter. - gh-95060: Undocumented PyCode_Addr2Location function now properly returns when addrq argument is less than zero. - gh-95113: Replace all EXTENDED_ARG_QUICK instructions with basic EXTENDED_ARG instructions in unquickened code. Consumers of non-adaptive bytecode should be able to handle extended arguments the same way they were handled in CPython 3.10 and older. - gh-91409: Fix incorrect source location info caused by certain optimizations in the bytecode compiler. - gh-94036: Fix incorrect source location info for some multi-line attribute accesses and method calls. - gh-94739: Allow jumping within, out of, and across exception handlers in the debugger. - gh-94949: ast.parse() will no longer parse parenthesized context managers when passed feature_version less than (3, 9). Patch by Shantanu Jain. - gh-94947: ast.parse() will no longer parse assignment expressions when passed feature_version less than (3, 8). Patch by Shantanu Jain. - gh-91256: Ensures the program name is known for help text during interpreter startup. - gh-94869: Fix the column offsets for some expressions in multi-line f-strings ast nodes. Patch by Pablo Galindo. - gh-94822: Fix an issue where lookups of metaclass descriptors may be ignored when an identically-named attribute also exists on the class itself. - gh-91153: Fix an issue where a bytearray item assignment could crash if it’s resized by the new value’s __index__() method. - gh-90699: Fix reference counting bug in bool.__repr__(). Patch by Kumar Aditya. - Library - gh-95087: Fix IndexError in parsing invalid date in the email module. - gh-95199: Upgrade bundled setuptools to 63.2.0. - gh-95194: Upgrade bundled pip to 22.2. - gh-95132: Fix a sqlite3 regression where *args and **kwds were incorrectly relayed from connect() to the Connection factory. The regression was introduced in 3.11a1 with PR 24421 (gh-85128). Patch by Erlend E. Aasland.` - gh-93157: Fix fileinput module didn’t support errors option when inplace is true. - gh-95105: wsgiref.types.InputStream.__iter__() should return Iterator[bytes], not Iterable[bytes]. Patch by Shantanu Jain. - gh-94857: Fix refleak in _io.TextIOWrapper.reconfigure. Patch by Kumar Aditya. - gh-94821: Fix binding of unix socket to empty address on Linux to use an available address from the abstract namespace, instead of “0”. - gh-89988: Fix memory leak in pickle.Pickler when looking up dispatch_table. Patch by Kumar Aditya. - bpo-47025: Drop support for bytes on sys.path. - Tests - gh-95212: Make multiprocessing test case test_shared_memory_recreate parallel-safe. - Build - gh-94847: Fixed _decimal module build issue on GCC when compiling with LTO and pydebug. Debug builds no longer force inlining of functions. - gh-94841: Fix the possible performance regression of PyObject_Free() compiled with MSVC version 1932. - gh-94801: configure now uses custom flags like ZLIB_CFLAGS and ZLIB_LIBS when searching for headers and libraries. - gh-94773: deepfreeze.py now supports code object with frozensets that contain incompatible, unsortable types. - C API - gh-94930: Fix SystemError raised when PyArg_ParseTupleAndKeywords() is used with # in (...) but without PY_SSIZE_T_CLEAN defined. - gh-94864: Fix PyArg_Parse* with deprecated format units “u” and “Z”. It returned 1 (success) when warnings are turned into exceptions. - gh-94731: Python again uses C-style casts for most casting operations when compiled with C++. This may trigger compiler warnings, if they are enabled with e.g. -Wold-style-cast `` or ``-Wzero-as-null-pointer-constant options for g++.- Switch from %primary_interpreter to prjconf-defined %primary_python (gh#openSUSE/python-rpm-macros#127).- Update to 3.11.0b4: - Fixes many bugs and adds following more significant changes - Security - gh-68966: The deprecated mailcap module now refuses to inject Coreunsafe text (filenames, MIME types, parameters) into shell Corecommands. Instead of using such text, it will warn and act Coreas if a match was not found (or for test commands, as if the Coretest failed). and Builtins - gh-93516: Lazily create a table mapping bytecode offsets to line numbers to speed up calculation of line numbers when tracing. - gh-93461: importlib.invalidate_caches() now drops entries from sys.path_importer_cache with a relative path as name. This solves a caching issue when a process changes its current working directory. - FileFinder no longer inserts a dot in the path, e.g. /egg/./spam is now /egg/spam. Library - gh-93896: Fix asyncio.run() and unittest.IsolatedAsyncioTestCase to always the set event loop as it was done in Python 3.10 and earlier. Patch by Kumar Aditya. - gh-94101: Manual instantiation of ssl.SSLSession objects is no longer allowed as it lead to misconfigured instances that crashed the interpreter when attributes where accessed on them. - gh-83658: Make multiprocessing.Pool raise an exception if maxtasksperchild is not None or a positive int. - gh-61162: Clarify sqlite3 behavior when Using the connection as a context manager. Tools/Demos - gh-94538: Fix Argument Clinic output to custom file destinations. Patch by Erlend E. Aasland. C API - gh-93937: The following frame functions and type are now directly available with #include , it’s no longer needed to add #include : PyFrame_Check() PyFrame_GetBack() PyFrame_GetBuiltins() PyFrame_GetGenerator() PyFrame_GetGlobals() PyFrame_GetLasti() PyFrame_GetLocals() PyFrame_Type- Update to 3.11.0b2: - many small updates - Add patch support-expat-245.patch: * Support Expat >= 2.4.4 (jsc#SLE-21253)- Refresh bluez-devel-vendor.tar.xz - Fix building with system-expat (gh#python/cpython#92875). Nope, it didn't work, worked around it.- Update to pre-release version 3.11.0b1: - PEP 657 – Include Fine-Grained Error Locations in Tracebacks - PEP 654 – Exception Groups and except* - PEP 673 – Self Type - PEP 646 – Variadic Generics - PEP 680– tomllib: Support for Parsing TOML in the Standard Library - PEP 675– Arbitrary Literal String Type - PEP 655– Marking individual TypedDict items as required or potentially-missing - bpo-46752– Introduce task groups to asyncio - The Faster Cpython Project is already yielding some exciting results. Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a 1.22x speedup on the standard benchmark suite. See https://docs.python.org/3.11/whatsnew/3.11.html#faster-cpython for details.- Switch primary_interpreter from python38 to python310- Update to 3.10.4: - bpo-46968: Check for the existence of the “sys/auxv.h” header in faulthandler to avoid compilation problems in systems where this header doesn’t exist. Patch by Pablo Galindo - bpo-23691: Protect the re.finditer() iterator from re-entering. - bpo-42369: Fix thread safety of zipfile._SharedFile.tell() to avoid a “zipfile.BadZipFile: Bad CRC-32 for file” exception when reading a ZipFile from multiple threads. - bpo-38256: Fix binascii.crc32() when it is compiled to use zlib’c crc32 to work properly on inputs 4+GiB in length instead of returning the wrong result. The workaround prior to this was to always feed the function data in increments smaller than 4GiB or to just call the zlib module function. - bpo-39394: A warning about inline flags not at the start of the regular expression now contains the position of the flag. - bpo-47061: Deprecate the various modules listed by PEP 594: - aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt, imghdr, msilib, nntplib, nis, ossaudiodev, pipes, smtpd, sndhdr, spwd, sunau, telnetlib, uu, xdrlib - bpo-2604: Fix bug where doctests using globals would fail when run multiple times. - bpo-45997: Fix asyncio.Semaphore re-aquiring FIFO order. - bpo-47022: The asynchat, asyncore and smtpd modules have been deprecated since at least Python 3.6. Their documentation and deprecation warnings and have now been updated to note they will removed in Python 3.12 (PEP 594). - bpo-46421: Fix a unittest issue where if the command was invoked as python -m unittest and the filename(s) began with a dot (.), a ValueError is returned. - bpo-40296: Fix supporting generic aliases in pydoc. - Update to 3.10.3: - bpo-46940: Avoid overriding AttributeError metadata information for nested attribute access calls. Patch by Pablo Galindo. - bpo-46852: Rename the private undocumented float.__set_format__() method to float.__setformat__() to fix a typo introduced in Python 3.7. The method is only used by test_float. Patch by Victor Stinner. - bpo-46794: Bump up the libexpat version into 2.4.6 - bpo-46820: Fix parsing a numeric literal immediately (without spaces) followed by “not in” keywords, like in 1not in x. Now the parser only emits a warning, not a syntax error. - bpo-46762: Fix an assert failure in debug builds when a ‘<’, ‘>’, or ‘=’ is the last character in an f-string that’s missing a closing right brace. - bpo-46724: Make sure that all backwards jumps use the JUMP_ABSOLUTE instruction, rather than JUMP_FORWARD with an argument of (2**32)+offset. - bpo-46732: Correct the docstring for the __bool__() method. Patch by Jelle Zijlstra. - bpo-46707: Avoid potential exponential backtracking when producing some syntax errors involving lots of brackets. Patch by Pablo Galindo. - bpo-40479: Add a missing call to va_end() in Modules/_hashopenssl.c. - bpo-46615: When iterating over sets internally in setobject.c, acquire strong references to the resulting items from the set. This prevents crashes in corner-cases of various set operations where the set gets mutated. - bpo-45773: Remove two invalid “peephole” optimizations from the bytecode compiler. - bpo-43721: Fix docstrings of getter, setter, and deleter to clarify that they create a new copy of the property. - bpo-46503: Fix an assert when parsing some invalid N escape sequences in f-strings. - bpo-46417: Fix a race condition on setting a type __bases__ attribute: the internal function add_subclass() now gets the PyTypeObject.tp_subclasses member after calling PyWeakref_NewRef() which can trigger a garbage collection which can indirectly modify PyTypeObject.tp_subclasses. Patch by Victor Stinner. - bpo-46383: Fix invalid signature of _zoneinfo’s module_free function to resolve a crash on wasm32-emscripten platform. - bpo-46070: Py_EndInterpreter() now explicitly untracks all objects currently tracked by the GC. Previously, if an object was used later by another interpreter, calling PyObject_GC_UnTrack() on the object crashed if the previous or the next object of the PyGC_Head structure became a dangling pointer. Patch by Victor Stinner. - bpo-46339: Fix a crash in the parser when retrieving the error text for multi-line f-strings expressions that do not start in the first line of the string. Patch by Pablo Galindo - bpo-46240: Correct the error message for unclosed parentheses when the tokenizer doesn’t reach the end of the source when the error is reported. Patch by Pablo Galindo - bpo-46091: Correctly calculate indentation levels for lines with whitespace character that are ended by line continuation characters. Patch by Pablo Galindo - bpo-43253: Fix a crash when closing transports where the underlying socket handle is already invalid on the Proactor event loop. - bpo-47004: Apply bugfixes from importlib_metadata 4.11.3, including bugfix for EntryPoint.extras, which was returning match objects and not the extras strings. - bpo-46985: Upgrade pip wheel bundled with ensurepip (pip 22.0.4) - bpo-46968: faulthandler: On Linux 5.14 and newer, dynamically determine size of signal handler stack size CPython allocates using getauxval(AT_MINSIGSTKSZ). This changes allows for Python extension’s request to Linux kernel to use AMX_TILE instruction set on Sapphire Rapids Xeon processor to succeed, unblocking use of the ISA in frameworks. - bpo-46955: Expose asyncio.base_events.Server as asyncio.Server. Patch by Stefan Zabka. - bpo-23325: The signal module no longer assumes that SIG_IGN and SIG_DFL are small int singletons. - bpo-46932: Update bundled libexpat to 2.4.7 - bpo-25707: Fixed a file leak in xml.etree.ElementTree.iterparse() when the iterator is not exhausted. Patch by Jacob Walls. - bpo-44886: Inherit asyncio proactor datagram transport from asyncio.DatagramTransport. - bpo-46827: Support UDP sockets in asyncio.loop.sock_connect() for selector-based event loops. Patch by Thomas Grainger. - bpo-46811: Make test suite support Expat >=2.4.5 - bpo-46252: Raise TypeError if ssl.SSLSocket is passed to transport-based APIs. - bpo-46784: Fix libexpat symbols collisions with user dynamically loaded or statically linked libexpat in embedded Python. - bpo-39327: shutil.rmtree() can now work with VirtualBox shared folders when running from the guest operating-system. - bpo-46756: Fix a bug in urllib.request.HTTPPasswordMgr.find_user_password() and urllib.request.HTTPPasswordMgrWithPriorAuth.is_authenticated() which allowed to bypass authorization. For example, access to URI example.org/foobar was allowed if the user was authorized for URI example.org/foo. - bpo-46643: In typing.get_type_hints(), support evaluating stringified ParamSpecArgs and ParamSpecKwargs annotations. Patch by Gregory Beauregard. - bpo-45863: When the tarfile module creates a pax format archive, it will put an integer representation of timestamps in the ustar header (if possible) for the benefit of older unarchivers, in addition to the existing full-precision timestamps in the pax extended header. - bpo-46676: Make typing.ParamSpec args and kwargs equal to themselves. Patch by Gregory Beauregard. - bpo-46672: Fix NameError in asyncio.gather() when initial type check fails. - bpo-46655: In typing.get_type_hints(), support evaluating bare stringified TypeAlias annotations. Patch by Gregory Beauregard. - bpo-45948: Fixed a discrepancy in the C implementation of the xml.etree.ElementTree module. Now, instantiating an xml.etree.ElementTree.XMLParser with a target=None keyword provides a default xml.etree.ElementTree.TreeBuilder target as the Python implementation does. - bpo-46521: Fix a bug in the codeop module that was incorrectly identifying invalid code involving string quotes as valid code. - bpo-46581: Brings ParamSpec propagation for GenericAlias in line with Concatenate (and others). - bpo-46591: Make the IDLE doc URL on the About IDLE dialog clickable. - bpo-46400: expat: Update libexpat from 2.4.1 to 2.4.4 - bpo-46487: Add the get_write_buffer_limits method to asyncio.transports.WriteTransport and to the SSL transport. - bpo-45173: Note the configparser deprecations will be removed in Python 3.12. - bpo-46539: In typing.get_type_hints(), support evaluating stringified ClassVar and Final annotations inside Annotated. Patch by Gregory Beauregard. - bpo-46491: Allow typing.Annotated to wrap typing.Final and typing.ClassVar. Patch by Gregory Beauregard. - bpo-46436: Fix command-line option -d/--directory in module http.server which is ignored when combined with command-line option --cgi. Patch by Géry Ogam. - bpo-41403: Make mock.patch() raise a TypeError with a relevant error message on invalid arg. Previously it allowed a cryptic AttributeError to escape. - bpo-46474: In importlib.metadata.EntryPoint.pattern, avoid potential REDoS by limiting ambiguity in consecutive whitespace. - bpo-46469: asyncio generic classes now return types.GenericAlias in __class_getitem__ instead of the same class. - bpo-46434: pdb now gracefully handles help when __doc__ is missing, for example when run with pregenerated optimized .pyc files. - bpo-46333: The __eq__() and __hash__() methods of typing.ForwardRef now honor the module parameter of typing.ForwardRef. Forward references from different modules are now differentiated. - bpo-46246: Add missing __slots__ to importlib.metadata.DeprecatedList. Patch by Arie Bovenberg. - bpo-46266: Improve day constants in calendar. - Now all constants (MONDAY … SUNDAY) are documented, tested, and added to __all__. - bpo-46232: The ssl module now handles certificates with bit strings in DN correctly. - bpo-43118: Fix a bug in inspect.signature() that was causing it to fail on some subclasses of classes with a __text_signature__ referencing module globals. Patch by Weipeng Hong. - bpo-26552: Fixed case where failing asyncio.ensure_future() did not close the coroutine. Patch by Kumar Aditya. - bpo-21987: Fix an issue with tarfile.TarFile.getmember() getting a directory name with a trailing slash. - bpo-20392: Fix inconsistency with uppercase file extensions in MimeTypes.guess_type(). Patch by Kumar Aditya. - bpo-46080: Fix exception in argparse help text generation if a argparse.BooleanOptionalAction argument’s default is argparse.SUPPRESS and it has help specified. Patch by Felix Fontein. - bpo-44439: Fix .write() method of a member file in ZipFile, when the input data is an object that supports the buffer protocol, the file length may be wrong. - bpo-45703: When a namespace package is imported before another module from the same namespace is created/installed in a different sys.path location while the program is running, calling the importlib.invalidate_caches() function will now also guarantee the new module is noticed. - bpo-24959: Fix bug where unittest sometimes drops frames from tracebacks of exceptions raised in tests. - bpo-44791: Fix substitution of ParamSpec in Concatenate with different parameter expressions. Substitution with a list of types returns now a tuple of types. Substitution with Concatenate returns now a Concatenate with concatenated lists of arguments. - bpo-14156: argparse.FileType now supports an argument of ‘-’ in binary mode, returning the .buffer attribute of sys.stdin/sys.stdout as appropriate. Modes including ‘x’ and ‘a’ are treated equivalently to ‘w’ when argument is ‘-’. Patch contributed by Josh Rosenberg - bpo-46463: Fixes escape4chm.py script used when building the CHM documentation file - bpo-46913: Fix test_faulthandler.test_sigfpe() if Python is built with undefined behavior sanitizer (UBSAN): disable UBSAN on the faulthandler_sigfpe() function. Patch by Victor Stinner. - bpo-46708: Prevent default asyncio event loop policy modification warning after test_asyncio execution. - bpo-46678: The function make_legacy_pyc in Lib/test/support/import_helper.py no longer fails when PYTHONPYCACHEPREFIX is set to a directory on a different device from where tempfiles are stored. - bpo-46616: Ensures test_importlib.test_windows cleans up registry keys after completion. - bpo-44359: test_ftplib now silently ignores socket errors to prevent logging unhandled threading exceptions. Patch by Victor Stinner. - bpo-46542: Fix a Python crash in test_lib2to3 when using Python built in debug mode: limit the recursion limit. Patch by Victor Stinner. - bpo-46576: test_peg_generator now disables compiler optimization when testing compilation of its own C extensions to significantly speed up the testing on non-debug builds of CPython. - bpo-46542: Fix test_json tests checking for RecursionError: modify these tests to use support.infinite_recursion(). Patch by Victor Stinner. - bpo-13886: Skip test_builtin PTY tests on non-ASCII characters if the readline module is loaded. The readline module changes input() behavior, but test_builtin is not intented to test the readline module. Patch by Victor Stinner. - bpo-38472: Fix GCC detection in setup.py when cross-compiling. The C compiler is now run with LC_ALL=C. Previously, the detection failed with a German locale. - bpo-46513: configure no longer uses AC_C_CHAR_UNSIGNED macro and pyconfig.h no longer defines reserved symbol __CHAR_UNSIGNED__. - bpo-45296: Clarify close, quit, and exit in IDLE. In the File menu, ‘Close’ and ‘Exit’ are now ‘Close Window’ (the current one) and ‘Exit’ is now ‘Exit IDLE’ (by closing all windows). In Shell, ‘quit()’ and ‘exit()’ mean ‘close Shell’. If there are no other windows, this also exits IDLE. - bpo-45447: Apply IDLE syntax highlighting to pyi files. Patch by Alex Waygood and Terry Jan Reedy. - bpo-46433: The internal function _PyType_GetModuleByDef now correctly handles inheritance patterns involving static types. - bpo-14916: Fixed bug in the tokenizer that prevented PyRun_InteractiveOne from parsing from the provided FD. - Remove upstreamed patches: - support-expat-245.patch- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- bsc#1195831 Obsolete older "most modern" versions of python packages (python39 for python310 and so forth). For next versions it is necessary just to edit the macro.- Remove second superfluous BR rpm-build-python- Remove second superfluous BR rpm-build-python - Add fix_configure_rst.patch, which removes duplicate link targets and make documentation with old Sphinx in SLE - Skip test_capi (bsc#1195140 and bpo#37169)- Update to 3.10.2: Bugfix only - bpo#46347 memory leak in PyEval_EvalCodeEx (especially visible with Cython code) - and many others- Upgrade to 3.10.1 (jsc#SLE-18038): - PEP 623 – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 – Allow writing union types as X | Y - PEP 612 – Parameter Specification Variables - PEP 626 – Precise line numbers for debugging and other tools. - PEP 618 – Add Optional Length-Checking To zip. - bpo-12782: Parenthesized context managers are now officially allowed. - PEP 632 – Deprecate distutils module. - PEP 613 – Explicit Type Aliases - PEP 634 – Structural Pattern Matching: Specification - PEP 635 – Structural Pattern Matching: Motivation and Rationale - PEP 636 – Structural Pattern Matching: Tutorial - PEP 644 – Require OpenSSL 1.1.1 or newer - PEP 624 – Remove Py_UNICODE encoder APIs - PEP 597 – Add optional EncodingWarning - Patches readjusted: - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch- Remove pdb_adjust_breakpoints.patch and instead just adjust location of the test breakpoint in Lib/test/test_pdb.py via sed, because we have shortened Lib/pdb.py by removing the shebang (bpo#45964).- Add pdb_adjust_breakpoints.patch fixing expectd results in test_pdb_breakpoints_preserved_across_interactive_sessions (bpo#45964).- Remove shebangs from from python-base libraries in _libdir (bsc#1193179). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- Move rpm-build-python construct to correct place.- 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.- Final release of 3.10.0: Complete list on https://www.python.org/downloads/release/python-3100/, but highlights are: - PEP 623 – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 – Allow writing union types as X | Y - PEP 612 – Parameter Specification Variables - PEP 626 – Precise line numbers for debugging and other tools. - PEP 618 – Add Optional Length-Checking To zip. - PEP 632 – Deprecate distutils module. - PEP 613 – Explicit Type Aliases - PEP 634 – Structural Pattern Matching: Specification - PEP 635 – Structural Pattern Matching: Motivation and Rationale - PEP 636 – Structural Pattern Matching: Tutorial - PEP 644 – Require OpenSSL 1.1.1 or newer - PEP 624 – Remove Py_UNICODE encoder APIs - PEP 597 – Add optional EncodingWarning - bpo-12782: Parenthesized context managers are now officially allowed.- Switch on option --with-system-libmpdec (bsc#1189356).- Reenable profileopt with qemu emulation, test_faulthandler is no longer run during profiling- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.10.0rc1 (the penultimate prerelease), which contains plenty of small bugfixes among others: - bpo#38605: from __future__ import annotations (PEP 563) used to be on this list in previous pre-releases but it has been postponed to Python 3.11 due to some compatibility concerns. - bpo-44600: Fix incorrect line numbers while tracing some failed patterns in match statements. Patch by Charles Burkland. - plenty of modifications in types.Union- Update to 3.10.0b4: https://docs.python.org/3.10/whatsnew/changelog.html#python-3-10-0-beta-4 - Remove python3-imp-returntype.patch which has been upstreamed.- Update to 3.10.0b2: - PEP 623 -- Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. - PEP 604 -- Allow writing union types as X | Y - PEP 612 -- Parameter Specification Variables - PEP 626 -- Precise line numbers for debugging and other tools. - PEP 618 -- Add Optional Length-Checking To zip. - bpo-12782: Parenthesized context managers are now officially allowed. - PEP 632 -- Deprecate distutils module. - PEP 613 -- Explicit Type Aliases - PEP 634 -- Structural Pattern Matching: Specification - PEP 635 -- Structural Pattern Matching: Motivation and Rationale - PEP 636 -- Structural Pattern Matching: Tutorial - PEP 644 -- Require OpenSSL 1.1.1 or newer - PEP 624 -- Remove Py_UNICODE encoder APIs - PEP 597 -- Add optional EncodingWarning - Removed patches (assumed upstream): - sphinx-update-removed-function.patch- Revert previous skip over test_capi - Add skip-test_pyobject_freed_is_freed.patch to skip failing test on SLE-15.- allow build with Sphinx >= 3.x- Exclude test_capi on Leap (test fails there)- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Update to 3.9.5: * Security - bpo-43434: Creating a sqlite3.Connection object now also produces a sqlite3.connect auditing event. Previously this event was only produced by sqlite3.connect() calls. Patch by Erlend E. Aasland. - 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-43472: Ensures interpreter-level audit hooks receive the cpython.PyInterpreterState_New event when called through the _xxsubinterpreters module. - bpo-36384: ipaddress module no longer accepts any leading zeros in IPv4 address strings. Leading zeros are ambiguous and interpreted as octal notation by some libraries. For example the legacy function socket.inet_aton() treats leading zeros as octal notatation. glibc implementation of modern inet_pton() does not accept any leading zeros. For a while the ipaddress module used to accept ambiguous leading zeros. - bpo-43075: 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. - bpo-42800: Audit hooks are now fired for frame.f_code, traceback.tb_frame, and generator code/frame attribute access. * Core and Builtins - bpo-43105: Importlib now resolves relative paths when creating module spec objects from file locations. - bpo-42924: Fix bytearray repetition incorrectly copying data from the start of the buffer, even if the data is offset within the buffer (e.g. after reassigning a slice at the start of the bytearray to a shorter byte string). * Library - bpo-43993: Update bundled pip to 21.1.1. - bpo-43937: Fixed the turtle module working with non-default root window. - bpo-43930: Update bundled pip to 21.1 and setuptools to 56.0.0 - bpo-43920: OpenSSL 3.0.0: load_verify_locations() now returns a consistent error message when cadata contains no valid certificate. - bpo-43607: urllib can now convert Windows paths with \\?\ prefixes into URL paths. - bpo-43284: platform.win32_ver derives the windows version from sys.getwindowsversion().platform_version which in turn derives the version from kernel32.dll (which can be of a different version than Windows itself). Therefore change the platform.win32_ver to determine the version using the platform module’s _syscmd_ver private function to return an accurate version. - bpo-42248: [Enum] ensure exceptions raised in _missing__ are released - bpo-43799: OpenSSL 3.0.0: define OPENSSL_API_COMPAT 1.1.1 to suppress deprecation warnings. Python requires OpenSSL 1.1.1 APIs. - bpo-43794: Add ssl.OP_IGNORE_UNEXPECTED_EOF constants (OpenSSL 3.0.0) - bpo-43789: OpenSSL 3.0.0: Don’t call the password callback function a second time when first call has signaled an error condition. - bpo-43788: The header files for ssl error codes are now OpenSSL version-specific. Exceptions will now show correct reason and library codes. The make_ssl_data.py script has been rewritten to use OpenSSL’s text file with error codes. - bpo-43655: tkinter dialog windows are now recognized as dialogs by window managers on macOS and X Window. - bpo-43534: turtle.textinput() and turtle.numinput() create now a transient window working on behalf of the canvas window. - bpo-43522: Fix problem with hostname_checks_common_name. OpenSSL does not copy hostflags from struct SSL_CTX to struct SSL. - bpo-42967: Allow bytes separator argument in urllib.parse.parse_qs and urllib.parse.parse_qsl when parsing str query strings. Previously, this raised a TypeError. - bpo-43176: Fixed processing of a dataclass that inherits from a frozen dataclass with no fields. It is now correctly detected as an error. - bpo-41735: Fix thread locks in zlib module may go wrong in rare case. Patch by Ma Lin. - bpo-36470: Fix dataclasses with InitVars and replace(). Patch by Claudiu Popa. - bpo-32745: Fix a regression in the handling of ctypes’ ctypes.c_wchar_p type: embedded null characters would cause a ValueError to be raised. Patch by Zackery Spytz. * Documentation - bpo-43959: The documentation on the PyContextVar C-API was clarified. - bpo-43938: Update dataclasses documentation to express that FrozenInstanceError is derived from AttributeError. - bpo-43755: Update documentation to reflect that unparenthesized lambda expressions can no longer be the expression part in an if clause in comprehensions and generator expressions since Python 3.9. - bpo-43739: Fixing the example code in Doc/extending/extending.rst to declare and initialize the pmodule variable to be of the right type. * Tests - bpo-43961: Fix test_logging.test_namer_rotator_inheritance() on Windows: use os.replace() rather than os.rename(). Patch by Victor Stinner. - bpo-43842: Fix a race condition in the SMTP test of test_logging. Don’t close a file descriptor (socket) from a different thread while asyncore.loop() is polling the file descriptor. Patch by Victor Stinner. - bpo-43811: Tests multiple OpenSSL versions on GitHub Actions. Use ccache to speed up testing. - bpo-43791: OpenSSL 3.0.0: Disable testing of legacy protocols TLS 1.0 and 1.1. Tests are failing with TLSV1_ALERT_INTERNAL_ERROR. - Refreshed patches: - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch - Add vendorized files from bluez-devel to enable building support for Bluetooth.- 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.- Update to 3.9.4: - bpo#43710: Reverted the fix for https://bugs.python.org/issue42500 as it changed the PyThreadState struct size and broke the 3.9.x ABI in the 3.9.3 release (visible on 32-bit platforms using binaries compiled using an earlier version of Python 3.9.x headers). - bpo#26053: Fixed bug where the pdb interactive run command echoed the args from the shell command line, even if those have been overridden at the pdb prompt. - bpo#42988 (bsc#1183374) CVE-2021-3426: 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#43439: Add audit hooks for gc.get_objects(), gc.get_referrers() and gc.get_referents(). Patch by Pablo Galindo. - bpo#43660: Fix crash that happens when replacing sys.stderr with a callable that can remove the object while an exception is being printed. Patch by Pablo Galindo. - bpo#43555: Report the column offset for SyntaxError for invalid line continuation characters. Patch by Pablo Galindo. - bpo#43517: Fix misdetection of circular imports when using from pkg.mod import attr, which caused false positives in non-trivial multi-threaded code. - bpo#35883: Python no longer fails at startup with a fatal error if a command line argument contains an invalid Unicode character. The Py_DecodeLocale() function now escapes byte sequences which would be decoded as Unicode characters outside the [U+0000; U+10ffff] range. - bpo#43406: Fix a possible race condition where PyErr_CheckSignals tries to execute a non-Python signal handler. - bpo#42500: Improve handling of exceptions near recursion limit. Converts a number of Fatal Errors in RecursionErrors. - bpo#43433: xmlrpc.client.ServerProxy no longer ignores query and fragment in the URL of the server. - bpo#35930: Raising an exception raised in a “future” instance will create reference cycles. - bpo#43577: Fix deadlock when using ssl.SSLContext debug callback with ssl.SSLContext.sni_callback(). - bpo#43521: ast.unparse can now render NaNs and empty sets. - bpo#43423: subprocess.communicate() no longer raises an IndexError when there is an empty stdout or stderr IO buffer during a timeout on Windows. - bpo#27820: Fixed long-standing bug of smtplib.SMTP where doing AUTH LOGIN with initial_response_ok=False will fail. The cause is that SMTP.auth_login _always_ returns a password if provided with a challenge string, thus non-compliant with the standard for AUTH LOGIN. Also fixes bug with the test for smtpd. - bpo#43332: Improves the networking efficiency of http.client when using a proxy via set_tunnel(). Fewer small send calls are made during connection setup. - bpo#43399: Fix ElementTree.extend not working on iterators when using the Python implementation - bpo#43316: The python -m gzip command line application now properly fails when detecting an unsupported extension. It exits with a non-zero exit code and prints an error message to stderr. - bpo#43260: Fix TextIOWrapper can not flush internal buffer forever after very large text is written. - bpo#42782: Fail fast in shutil.move() to avoid creating destination directories on failure. - bpo#37193: Fixed memory leak in socketserver.ThreadingMixIn introduced in Python 3.7. - bpo#43199: Answer “Why is there no goto?” in the Design and History FAQ. - bpo#43407: Clarified that a result from time.monotonic(), time.perf_counter(), time.process_time(), or time.thread_time() can be compared with the result from any following call to the same function - not just the next immediate call. - bpo#27646: Clarify that ‘yield from ’ works with any iterable, not just iterators. - bpo#36346: Update some deprecated unicode APIs which are documented as “will be removed in 4.0” to “3.12”. See PEP 623 for detail. - bpo#37945: Fix test_getsetlocale_issue1813() of test_locale: skip the test if setlocale() fails. Patch by Victor Stinner. - bpo#41561: Add workaround for Ubuntu’s custom OpenSSL security level policy. - bpo#43288: Fix test_importlib to correctly skip Unicode file tests if the fileystem does not support them. - bpo#43617: Improve configure.ac: Check for presence of autoconf-archive package and remove our copies of M4 macros. - bpo#42225: Document that IDLE can fail on Unix either from misconfigured IP masquerage rules or failure displaying complex colored (non-ascii) characters. - bpo#43283: Document why printing to IDLE’s Shell is often slower than printing to a system terminal and that it can be made faster by pre-formatting a single string before printing.- Update to 3.9.2: - bpo#42938 (bsc#1181126): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. This issue was assigned CVE-2021-3177. - bpo#42967 (bsc#1182379): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. This issue was assigned CVE-2021-23336. - Upstreamed patches were removed: - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch - bsc1167501-invalid-alignment.patch - skip_random_failing_tests.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch- Add Obsoletes for python3-base when primary interpreter is set to properly replace it during upgrades. (bsc#1181324)- Update to 3.9.1: Security bugs: - Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - 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. - Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. Core and Builtins - Allow assignment expressions in set literals and set comprehensions as per PEP 572. Patch by Pablo Galindo. - Fix a regression introduced by the new parser, where an unparenthesized walrus operator was not allowed within generator expressions. - types.GenericAlias objects can now be the targets of weakrefs. - Fixed a bug in the PEG parser that was causing crashes in debug mode. Now errors are checked in left-recursive rules to avoid cases where such errors do not get handled in time and appear as long-distance crashes in other places. - Fixed a possible crash in the PEG parser when checking for the ‘!=’ token in the barry_as_flufl rule. Patch by Pablo Galindo. - Fix handling of errors during creation of PyFunctionObject, which resulted in operations on uninitialized memory. Patch by Yonatan Goldschmidt. - Fix a bug in the parser, where a curly brace following a primary didn’t fail immediately. This led to invalid expressions like a {b} to throw a SyntaxError with a wrong offset, or invalid expressions ending with a curly brace like a { to not fail immediately in the REPL. - Fix possible buffer overflow in the new parser when checking for continuation lines. Patch by Pablo Galindo. - Run the parser two times. On the first run, disable all the rules that only generate better error messages to gain performance. If there’s a parse failure, run the parser a second time with those enabled. - Document the default implementation of object.__eq__. - Fix peephole optimizer misoptimize conditional jump + JUMP_IF_NOT_EXC_MATCH pair. - The garbage collector now tracks all user-defined classes. Patch by Brandt Bucher. - Fixed potential issues with removing not completely initialized module from sys.modules when import fails. - Star-unpacking is now allowed for with item’s targets in the PEG parser. - Fixed stack overflow in issubclass() and isinstance() when getting the __bases__ attribute leads to infinite recursion. - When loading a native module and a load failure occurs, prevent a possible UnicodeDecodeError when not running in a UTF-8 locale by decoding the load error message using the current locale’s encoding. - Correctly count control blocks in ‘except’ in compiler. Ensures that a syntax error, rather a fatal error, occurs for deeply nested, named exception handlers. Library - types.GenericAlias will now raise a TypeError when attempting to initialize with a keyword argument. Previously, this would cause the interpreter to crash if the interpreter was compiled with debug symbols. This does not affect interpreters compiled for release. Patch by Ken Jin. - CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed. Replace the special purpose getallmatchingheaders with generic get_all method and add relevant tests. - inspect.findsource() now raises OSError instead of IndexError when co_lineno of a code object is greater than the file length. This can happen, for example, when a file is edited after it was imported. PR by Irit Katriel. - Fix handling of trailing comments by inspect.getsource(). - ChainMap.__iter__ no longer calls __getitem__ on underlying maps - TracebackException no longer holds a reference to the exception’s traceback object. Consequently, instances of TracebackException for equivalent but non-equal exceptions now compare as equal. - We fixed an issue in pickle.whichmodule in which importing multiprocessing could change the how pickle identifies which module an object belongs to, potentially breaking the unpickling of those objects. - Clarify the error message for asyncio.IncompleteReadError when expected is None. - Extracting a symlink from a tarball should succeed and overwrite the symlink if it already exists. The fix is to remove the existing file or symlink before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and Senthil Kumaran. - Fixed tkinter.ttk.Style.map(). The function accepts now the representation of the default state as empty sequence (as returned by Style.map()). The structure of the result is now the same on all platform and does not depend on the value of wantobjects. - Fix various issues with typing.Literal parameter handling (flatten, deduplicate, use type to cache key). Patch provided by Yurii Karabas. - Fix the threading.Thread class at fork: do nothing if the thread is already stopped (ex: fork called at Python exit). Previously, an error was logged in the child process. - The onerror callback from shutil.rmtree now receives correct function when os.open fails. - Fix os.sendfile() on illumos. - Fixed writing binary Plist files larger than 4 GiB. - The repr() of typing types containing Generic Alias Types previously did not show the parameterized types in the GenericAlias. They have now been changed to do so. - webbrowser: Ignore NotADirectoryError when calling xdg-settings. - binhex.binhex() consisently writes macOS 9 line endings. - Fix a stack overflow error for asyncio Task or Future repr(). - The overflow occurs under some circumstances when a Task or Future recursively returns itself. - Fix memory leak in subprocess.Popen() in case an uid (gid) specified in user (group, extra_groups) overflows uid_t (gid_t). - Improve asyncio.wait function to create the futures set just one time. - 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). - Pickling heap types implemented in C with protocols 0 and 1 raises now an error instead of producing incorrect data. - plistlib: fix parsing XML plists with hexadecimal integer values - Fix an incorrectly formatted error from _codecs.charmap_decode() when called with a mapped value outside the range of valid Unicode code points. PR by Max Bernstein. - Fix pickling pure Python datetime.time subclasses. Patch by Dean Inwood. - Fixed a bug that was causing ctypes.util.find_library() to return None when triying to locate a library in an environment when gcc>=9 is available and ldconfig is not. Patch by Pablo Galindo - C14N 2.0 serialisation in xml.etree.ElementTree failed for unprefixed attributes when a default namespace was defined. - Fix a bug in the symtable module that was causing module-scope global variables to not be reported as both local and global. Patch by Pablo Galindo. - str() for the type attribute of the tkinter.Event object always returns now the numeric code returned by Tk instead of the name of the event type. - fix tkinter.EventType Enum so all members are strings, and none are tuples - Fix SQLite3 segfault when backing up closed database. Patch contributed by Peter David McCormick. - Fix the tarfile module to write only basename of TAR file to GZIP compression header. - Allow ctypes.wintypes to be imported on non-Windows systems. - shutil.which() now ignores empty entries in PATHEXT instead of treating them as a match. - Fix time-of-check/time-of-action issue in subprocess.Popen.send_signal. - Fix --outfile for cProfile / profile not writing the output file in the original directory when the program being profiled changes the working directory. PR by Anthony Sottile. - ZipFile truncates files to avoid corruption when a shorter comment is provided in append (“a”) mode. Patch by Jan Mazur. - Fixed KeyError exception when flattening an email to a string attempts to replace a non-existent Content-Transfer-Encoding header. Documentation - Fix the URL for the IMAP protocol documents. - Document __format__ functionality for IP addresses. - Clarify that subscription expressions are also valid for certain classes and types in the standard library, and for user-defined classes and types if the classmethod __class_getitem__() is provided. - Documented generic alias type and types.GenericAlias. Also added an entry in glossary for generic types. - In Programming FAQ “Sequences (Tuples/Lists)” section, add “How do you remove multiple items from a list”. - Fix RemovedInSphinx40Warning when building the documentation. Patch by Dong-hee Na. - Update the refcounts info of PyType_FromModuleAndSpec. - Fix tarfile’s extractfile documentation - Document some restrictions on the default string representations of numeric classes. Tests - Reenable test_gdb on gdb 9.2 and newer: https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb 10.1. - Fix test_asyncio.test_call_later() race condition: don’t measure asyncio performance in the call_later() unit test. The test failed randomly on the CI. - Include _testinternalcapi module in Windows installer for test suite - Fix test_logging.test_race_between_set_target_and_flush(): the test now waits until all threads complete to avoid leaking running threads. - Avoid a test failure in test_lib2to3 if the module has already imported at the time the test executes. Patch by Pablo Galindo. - Tests for CJK codecs no longer call eval() on content received via HTTP. - Fix test_site.test_license_exists_at_url(): call urllib.request.urlcleanup() to reset the global urllib.request._opener. Patch by Victor Stinner. - test_ssl: skip test_min_max_version_mismatch when TLS 1.0 is not available - Add tests for SIGINT handling in the runpy module. - Fixed a failure in test_tk.test_widgets.ScaleTest happening when executing the test with Tk 8.6.10. Build - Fix a race condition in “make regen-all” when make -jN option is used to run jobs in parallel. The clinic.py script now only use atomic write to write files. Moveover, generated files are now left unchanged if the content does not change, to not change the file modification time. - Update Py_UNREACHABLE to use __builtin_unreachable() if only the compiler is able to use it. Patch by Dong-hee Na. - Addressed three compiler warnings found by undefined behavior sanitizer (ubsan). IDLE - Fix reporting offset of the RE error in searchengine. - Get docstrings for IDLE calltips more often by using inspect.getdoc. - Mostly finish using ttk widgets, mainly for editor, settings, and searches. Some patches by Mark Roseman. - Use ‘IDLE Shell’ as shell title - Rewrite the Calltips doc section. - In calltips, stop reminding that ‘/’ marks the end of positional-only arguments. - Typing opening and closing parentheses inside the parentheses of a function call will no longer cause unnecessary “flashing” off and on of an existing open call-tip, e.g. when typed in a string literal. C API - Fix potential crash in deallocating method objects when dynamically allocated PyMethodDef’s lifetime is managed through the self argument of a PyCFunction. - Py_FileSystemDefaultEncodeErrors and Py_UTF8Mode are available again in limited API. - Readjustet and reapplied patches: - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch - bpo-31046_ensurepip_honours_prefix.patch - python-3.3.0b1-fix_date_time_compiler.patch - skip_random_failing_tests.patch - sphinx-update-removed-function.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.- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- Make python39-doc building again - Add no-skipif-doctests.patch, because SLE-15 version of Sphinx doesn't know about skipif directive in doctests.- Update sphinx-update-removed-function.patch patch to the latest version in python36.- Last try before this results in an editwar: * remove importlib_resources and importlib-metadata provides/obsoletes * import importlib_resources is not the same as import importlib.resources, same for metadata * The backport packages from PyPI needed for older flavors are specified as such for setuptools or in pyproject.toml. If a package requires them they typically add them with a python version qualifier and the packages have their own version numbers.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function and to make documentation build independent of the Sphinx version (bsc#1179630, gh#python/cpython#13236).- Don't require packages which break build on SLE-15 although we really don't need them (python3-python-docs-theme and python3-sphinxcontrib-qthelp).- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Update to the final version 3.9.0: Complete changelog with all (many) changes from previous version is on https://docs.python.org/release/3.9.0/whatsnew/3.9.html Changes from the previous RC versions (not that many) are on https://docs.python.org/release/3.9.0/whatsnew/changelog.html#changelog- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Update to 3.9.0rc1: * Core and Builtins - bpo-38156: Handle interrupts that come after EOF correctly in PyOS_StdioReadline. * Library - bpo-41497: Fix potential UnicodeDecodeError in dis module. - bpo-41490: Update ensurepip to install pip 20.2.1 and setuptools 49.2.1. - bpo-41467: On Windows, fix asyncio recv_into() return value when the socket/pipe is closed (BrokenPipeError): return 0 rather than an empty byte string (b''). - bpo-41425: Make tkinter doc example runnable. - bpo-41384: Raise TclError instead of TypeError when an unknown option is passed to tkinter.OptionMenu. - bpo-38731: Fix NameError in command-line interface of py_compile. - bpo-41317: Use add_done_callback() in asyncio.loop.sock_accept() to unsubscribe reader early on cancellation. - bpo-41364: Reduce import overhead of uuid. - bpo-41341: Recursive evaluation of typing.ForwardRef in get_type_hints. - bpo-41182: selector: use DefaultSelector based upon implementation - bpo-40726: Handle cases where the end_lineno is None on ast.increment_lineno(). * Documentation - bpo-41045: Add documentation for debug feature of f-strings. - bpo-41314: Changed the release when from __future__ import annotations becomes the default from 4.0 to 3.10 (following a change in PEP 563). * Windows - bpo-41492: Fixes the description that appears in UAC prompts. - bpo-40948: Improve post-install message to direct people to the “py” command. - bpo-41412: The installer will now fail to install on Windows 7 and Windows 8. Further, the UCRT dependency is now always downloaded on demand. - bpo-40741: Update Windows release to include SQLite 3.32.3. * IDLE - bpo-41468: Improve IDLE run crash error message (which users should never see). - bpo-41373: Save files loaded with no line ending, as when blank, or different line endings, by setting its line ending to the system default. Fix regression in 3.8.4 and 3.9.0b4.- Synchronize formatting and fixes with python38.- Increase testsuite timeout to account for super long running test_peg_generator- Removed CVE-2019-20907_tarfile-inf-loop.patch: fixed in upstream - Removed recursion.tar: contained in upstream - Update to 3.9.0b5: - bpo-41304: Fixes python3x._pth being ignored on Windows, caused by the fix for bpo-29778 (CVE-2020-15801). - bpo-41162: Audit hooks are now cleared later during finalization to avoid missing events. - bpo-29778: Ensure python3.dll is loaded from correct locations when Python is embedded (CVE-2020-15523). - bpo-39603: Prevent http header injection by rejecting control characters in http.client.putrequest(…). - bpo-41295: Resolve a regression in CPython 3.8.4 where defining “__setattr__” in a multi-inheritance setup and calling up the hierarchy chain could fail if builtins/extension types were involved in the base types. - bpo-41247: Always cache the running loop holder when running asyncio.set_running_loop. - bpo-41252: Fix incorrect refcounting in _ssl.c’s _servername_callback(). - bpo-41215: Use non-NULL default values in the PEG parser keyword list to overcome a bug that was ' preventing Python from being properly compiled when using the XLC compiler. Patch by Pablo Galindo. - bpo-41218: Python 3.8.3 had a regression where compiling with ast.PyCF_ALLOW_TOP_LEVEL_AWAIT would aggressively mark list comprehension with CO_COROUTINE. Now only list comprehension making use of async/await will tagged as so. - bpo-41175: Guard against a NULL pointer dereference within bytearrayobject triggered by the bytearray() + bytearray() operation. - bpo-39960: The “hackcheck” that prevents sneaking around a type’s __setattr__() by calling the superclass method was rewritten to allow C implemented heap types. - bpo-41288: Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. - bpo-39017: Avoid infinite loop when reading specially crafted TAR files using the tarfile module (CVE-2019-20907, bsc#1174091). - bpo-41235: Fix the error handling in ssl.SSLContext.load_dh_params(). - bpo-41207: In distutils.spawn, restore expectation that DistutilsExecError is raised when the command is not found. - bpo-39168: Remove the __new__ method of typing.Generic. - bpo-41194: Fix a crash in the _ast module: it can no longer be loaded more than once. It now uses a global state rather than a module state. - bpo-39384: Fixed email.contentmanager to allow set_content() to set a null string. - bpo-41300: Save files with non-ascii chars. Fix regression released in 3.9.0b4 and 3.8.4. - bpo-37765: Add keywords to module name completion list. Rewrite Completions section of IDLE doc. - bpo-40170: Revert PyType_HasFeature() change: it reads again directly the PyTypeObject.tp_flags member when the limited C API is not used, rather than always calling PyType_GetFlags() which hides implementation details.- 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.- Changed bpo-31046_ensurepip_honours_prefix.patch to include fix from py3.8- Spec file fixes - Re-added subprocess-raise-timeout.patch: now compatible - Removed bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch: contained in upstream- Fix minor issues found in the staging.- Do not set ourselves as primary interpreter- Update to 3.9.0b4: - PEP 584, Union Operators in dict - PEP 585, Type Hinting Generics In Standard Collections - PEP 593, Flexible function and variable annotations - PEP 602, Python adopts a stable annual release cadence - PEP 615, Support for the IANA Time Zone Database in the Standard Library - PEP 616, String methods to remove prefixes and suffixes - PEP 617, New PEG parser for CPython - bpo#38379, garbage collection does not block on resurrected objects; - bpo#38692, os.pidfd_open added that allows process management without races and signals; - bpo#39926, Unicode support updated to version 13.0.0; - bpo#1635741, when Python is initialized multiple times in the same process, it does not leak memory anymore; - A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 vectorcall; - A number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489; - A number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384. - Remove upstreamed patches: - F00102-lib64.patch - SUSE-FEDORA-multilib.patch - OBS_dev-shm.patch - subprocess-raise-timeout.patch - bpo36302-sort-module-sources.patch - bpo40784-Fix-sqlite3-deterministic-test.patch- Update pre_checkin.sh and regenerate- Convert few dependencies to their pkgconfig counterparts- Remove release requirement on libpython, it is not really needed to be equal as the abi changes with versions- Add provides python3-bla on all the subpkgs in case we are primary provider of the functionality- Remove unversioned files from devel subpkg too - Remove main python3 files from -base based whether we are primary interpreter or not - Fix idle to be co-installable - Add condition to be primary to provide/obsolete python3-* - Fix doc to build in versioned folder so the pythons can be installed next to each other- Revert the full versioning of calls on the macros. These are generic so they should really just call python3 X- For the doc package we can build with generic flavor, we don't need the our-interpreter based one- Add provides for pytohn3X-typing/etc to allow BR on those still to work when needed- Change macros.python3 to use full versioned 3.8 instead of just 3 for python interpreter- Reduce some now unused conditionals- Redux the -base dependencies to match up pre-merge layout- Generate baselibs in pre-checkin too- Generate the importlib-failed using pre_checking again - Add back the information about skipped tests on the pre_checkin output- Use %python_pkg_name instead of hardcoding python3 where applicable - Sort out preamble with spec-cleaner- Calculate required variables instead of relying on their continuous manual update- Fix the -base module build again to generate only the deps we need- Replace OBS_dev-shm.patch with the upstream PR#20944- Use the %{python_pkg_name} on more places to allow easier multiversioning - Switch to _multibuild approach for easier maintenance of this package. All is now in one spec file with 3 conditionals: * bcond_with base * bcond_with doc * bcond_with general- add requires python3-base on libpython subpackage (bsc#1167008)- build against Sphinx 2.x until python is compatible with Sphinx 3.x (see gh#python/cpython#19397, bpo#40204)- Fix build with SQLite 3.32 (bpo#40783) add bpo40784-Fix-sqlite3-deterministic-test.patch- Update to version 3.8.3: - Complete list of changes is available at https://docs.python.org/release/3.8.3/whatsnew/changelog.html#python-3-8-3-final, but most of them are just bugfixes. - Removed patch CVE-2020-8492-urllib-ReDoS.patch: contained in upstream- Add #!BuildIgnore: gdk-pixbuf-loader-rsvg to python3 SPEC- Add patch bsc1167501-invalid-alignment.patch (bsc#1167501, bpo#40052) to fix alignment in abstract.h header file.- Update list of skipped tests for qemu linux-user build, test_setegid (test.test_os.PosixUidGidTests) is confusing it- Update to 3.8.2: - Complete list of changes is available at https://docs.python.org/release/3.8.2/whatsnew/changelog.html#python-3-8-2-final, but most of them are just bugfixes. - Updated patches: - F00102-lib64.patch - OBS_dev-shm.patch - SUSE-FEDORA-multilib.patch - subprocess-raise-timeout.patch- 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).- Do not pull in bluez in base again, explain the cycle, it needs to be solved by bluez maintainer for us by providing just the headers separately- Reame idle icons to idle3 in order to not conflict with python2 variant of the package * renamed the icons * renamed icon load in desktop file- Add importlib_resources provide/obsolete as it is integral part of the lang since 3.7 release- Add -fno-semantic-interposition as it brings speed up: https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup- Update to 3.8.1: - This is mainly bugfix release and no significant changes to API are expected. The full changelog is available on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-1 - Remove bpo-38688_shutil.copytree_prevent-infinite-recursion.patch, which is included in the upstream tarball.- Add bpo-31046_ensurepip_honours_prefix.patch which makes ensurepip to honour the value of $(prefix). Proposed fix for bpo#31046..- Move bluez-devel dependency to base as it is needed for socket.AF_BLUETOOTH and otherwise does not work- Reintroduce QtHelp with the help of the new BR python-sphinxcontrib-qthelp.- Fix SUSE-FEDORA-multilib.patch, the platform agnostic infix for library installation is "lib", not "dir".- Move idle subpackage build from python3-base to python3. 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- Update to the final release 3.8.0. . - New Features: - Assignment expressions - Positional-only parameters - Parallel filesystem cache for compiled bytecode files - Debug build uses the same ABI as release build - f-strings support = for self-documenting expressions and debugging - PEP 578: Python Runtime Audit Hooks - PEP 587: Python Initialization Configuration - Vectorcall: a fast calling protocol for CPython - Pickle protocol 5 with out-of-band data buffers - New modules: - importlib.metadata - Improved modules: - ast asyncio, builtins, collections, curses, ctypes, datetime, functools, gc, gettext, gzip, idelib and IDLE, inspect, io, json.tool, math, mmap, multiprocessing, os, os.path, pathlib, pickle, plistlib, py_compile, shlex, shutil, socket, ssl, statistics, sys, tarfile, threading, tokenize, tkinter, time, typing, unicodedata, unittest, venv, weakref, xml - C API improvements - bdist_winnst command has been deprecated (use bdist_wheel) - https://docs.python.org/3.8/whatsnew/3.8.html remains rest of changes including documentation on how to port your programs to the current version of Python.- Add idle3.appdata.xml and idle3.desktop (originally from Fedora) to make Idle3 full GUI desktop application. (bsc#1153830)- Drop intltool from BuildRequires. Doesn't appear to be used.- Add folder version to allow tarball downloads even for beta/rc releases- Revert patches from Fedora (F00102-lib64.patch and F00251-change-user-install-location.patch) into their original prisitine Fedora versions, SUSE-FEDORA-multilib.patch refreshed accordingly.- Correct quotation of platsubdir in Lib/distutils/command/install.py- Replace python-3.6.0-multilib.patch with two patches from Fedora (F00102-lib64.patch and F00251-change-user-install-location.patch), and our own SUSE-FEDORA-multilib.patch to allow better cooperation with Fedora and better upstreaming. - Add OBS_dev-shm.patch fixing bpo#38377- Pull in just gettext and let solver to sort out between: gettext-runtime-mini and gettext-runtime- Update to 3.8.0rc1. Overall changes from 3.7: - PEP 572, Assignment expressions - PEP 570, Positional-only arguments - PEP 587, Python Initialization Configuration (improved embedding) - PEP 590, Vectorcall: a fast calling protocol for CPython - PEP 578, Runtime audit hooks - PEP 574, Pickle protocol 5 with out-of-band data - Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict) - Parallel filesystem cache for compiled bytecode - Debug builds share ABI as release builds, also the 'm' ABI tag was removed (irrelevant since 3.4), bpo#36707 - f-strings support a handy = specifier for debugging - continue is now legal in finally: blocks - on Windows, the default asyncio event loop is now ProactorEventLoop - on macOS, the spawn start method is now used by default in multiprocessing - multiprocessing can now use shared memory segments to avoid pickling costs between processes - typed_ast is merged back to CPython - LOAD_GLOBAL is now 40% faster - pickle now uses Protocol 4 by default, improving performance - Refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.6.0-multilib.patch - subprocess-raise-timeout.patch- Add bpo36302-sort-module-sources.patch (boo#1041090)- Try harder obsoleting importlib-metadata- Update to 3.8.0b4: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-4- Re-enable test_threading on aarch64- Remove xrpm from subpackage tk description- Update to 3.8.0b3: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-3 - Patches reapplied: - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.6.0-multilib.patch - subprocess-raise-timeout.patch- Add Provides: python3-importlib-metadata- Update to 3.8.0b2: Many bugfixes, full list on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-beta-2 - Patches included in upstream: - bpo-37169_PyObject_IsFreed.patch - Patches reapplied: - 00251-change-user-install-location.patch - distutils-reproducible-compile.patch - python-3.3.0b1-localpath.patch - python-3.6.0-multilib.patch- Update list of skipped tests for qemu linux-user build - Don't do profiling in qemu linux-user build- Update to 3.8.0b1 (changes since 3.7.*): - PEP 572, Assignment expressions - PEP 570, Positional-only arguments - PEP 587, Python Initialization Configuration (improved embedding) - PEP 590, Vectorcall: a fast calling protocol for CPython - PEP 578, Runtime audit hooks - PEP 574, Pickle protocol 5 with out-of-band data - Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict) - Parallel filesystem cache for compiled bytecode - Debug builds share ABI as release builds - f-strings support a handy = specifier for debugging - continue is now legal in finally: blocks - multiprocessing can now use shared memory segments to avoid pickling costs between processes - typed_ast is merged back to CPython - LOAD_GLOBAL is now 40% faster - pickle now uses Protocol 4 by default, improving performance - Remove patches which were included in the upstream: - 00251-change-user-install-location.patch - 00316-mark-bdist_wininst-unsupported.patch - CVE-2019-9947-no-ctrl-char-http.patch - raise_SIGING_not_handled.patch- Set _lto_cflags to nil as the package is using LTO via --enable-lto. That will prevent to propage LTO for Python modules that are built in a separate package.- Update to 3.8.0.a3: - PEP 572: Assignment Expressions. - Other (mostly small) changes are on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-alpha-3- 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.- Fix metadata of patches. - Rename boo1071941-make-install-in-sep-loc.patch to 00251-change-user-install-location.patch which is the original name, so it can be looked up in the Fedora VCS.- Mark distutils bdist_wininst command unsupported with 00316-mark-bdist_wininst-unsupported.patch - Remove Windows bdist_wininst executables from runtime package- Update to 3.7.3, which is the maintenance release without any significant changes in API. - Updated patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - distutils-reproducible-compile.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.6.0-multilib.patch - raise_SIGING_not_handled.patch- Remove building of Qt Develop help files.- Return distutils-reproducible-compile.patch which is still missing (still unfinished bpo#29708).- Update to 3.8.0a2: * List of all (mostly small) changes are on https://docs.python.org/3.8/whatsnew/changelog.html#python-3-8-0-alpha-2- Build nis module again.- Update to 3.8.0a1: * The most visible change so far is probably the implementation of PEP 572: Assignment Expressions. For a detailed list of changes, see: https://docs.python.org/3.8/whatsnew/changelog.html * Recover building of nis module properly in python3 package - Update patches: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * python-3.3.0b1-fix_date_time_compiler.patch * python-3.3.0b1-test-posix_fadvise.patch * python-3.6.0-multilib.patch * raise_SIGING_not_handled.patch- Put LICENSE file where it belongs (bsc#1121852)- 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.- Do not require full gettext in order to avoid pulling in the glib2 as a dependency- Update to 3.7.2: * bugfix release: https://docs.python.org/3.7/whatsnew/changelog.html#changelog- Stop applying python-3.6.0-multilib-new.patch (which is still WIP), and apply the old proven python-3.6.0-multilib.patch instead.- Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Upgrade to 3.7.2rc1: * bugfix release, for the full list of all changes see https://docs.python.org/3.7/whatsnew/changelog.html#changelog - Make run of the test suite more verbose- Write summaries without em dashes.- Remove python-3.3.0b1-curses-panel.patch it is unnecessary anymore. - Add boo1071941-make-install-in-sep-loc.patch to make pip and distutils in user environment install into separate location (boo#1071941) Set values of prefix and exec_prefix in distutils install command to /usr/local if executable is /usr/bin/python* and RPM build is not detected to make pip and distutils install into separate location - Remove finally python-3.3.3-skip-distutils-test_sysconfig_module.patch - Remove distutils-reproducible-compile.patch which doesn't make really much difference in reproducibility (see gh#python/cpython#8057 and discussion there).- Rename Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch to bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch- Add dependency on bluez-devel to build support for Bluetooth (boo#1109998)- Add devhelp subpackage and split qthelp into another subpackage.- Remove python-3.0b1-record-rpm.patch and Python-3.0b1-record-rpm.patch, as they are not needed anymore- Switch off test_threading for optimization builds.- Update to python-3.7.1. This is just a brief overview, complete changelog available at https://docs.python.org/3.7/whatsnew/changelog.html#python-3-7-1-final: Library bpo-34970: Protect tasks weak set manipulation in asyncio.all_tasks() - Patches already accepted upstream are removed: * 00307-allow-to-call-Py_Main-after-Py_Initialize.patch * 00308-tls-1.3.patch - New patches added: * Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * raise_SIGING_not_handled.patch - All other patches refreshed via quilt.- Add raise_SIGING_not_handled.patch to fix bsc#1094814- Add patch to fix importlib return types: * python3-imp-returntype.patch- bpo-34022 still not completely fixed, so we have to keep excluding test_cmd_line_script, test_multiprocessing_main_handling, and test_runpy from the test suite.- Update to python 3.7.1~rc2: Core and Builtins bpo-34879: Fix a possible null pointer dereference in bytesobject.c. Patch by Zackery Spytz. bpo-34854: Fixed a crash in compiling string annotations containing a lambda with a keyword-only argument that doesn’t have a default value. bpo-34320: Fix dict(od) didn’t copy iteration order of OrderedDict. Library bpo-34769: Fix for async generators not finalizing when event loop is in debug mode and garbage collector runs in another thread. bpo-34922: Fixed integer overflow in the digest() and hexdigest() methods for the SHAKE algorithm in the hashlib module. bpo-34900: Fixed unittest.TestCase.debug() when used to call test methods with subtests. Patch by Bruno Oliveira. bpo-34871: Fix inspect module polluted sys.modules when parsing __text_signature__ of callable. bpo-34872: Fix self-cancellation in C implementation of asyncio.Task bpo-34819: Use a monotonic clock to compute timeouts in Executor.map() and as_completed(), in order to prevent timeouts from deviating when the system clock is adjusted. bpo-34334: In QueueHandler, clear exc_text from LogRecord to prevent traceback from being written twice. bpo-6721: Acquire the logging module’s commonly used internal locks while fork()ing to avoid deadlocks in the child process. bpo-34172: Fix a reference issue inside multiprocessing.Pool that caused the pool to remain alive if it was deleted without being closed or terminated explicitly. Documentation bpo-32174: chm document displays non-ASCII charaters properly on some MBCS Windows systems. Tests bpo-32962: Fixed test_gdb when Python is compiled with flags - mcet -fcf-protection -O0. C API bpo-34910: Ensure that PyObject_Print() always returns -1 on error. Patch by Zackery Spytz.- Add Stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch to fix problems with SOURCE_DATE_EPOCH variable (bpo-34022)- Add patch to fix build with tls1.3 supported openssl * 00308-tls-1.3.patch - Add patch to fix Py_Main calls after Py_initialize * 00307-allow-to-call-Py_Main-after-Py_Initialize.patch- 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.- Fix ownership of _contextvars, _queue, and _xxtestfuzz- Switch off LTO for distros with older GCC - Fix %files- Add dependency over libuuid-devel- update to python 3.7.0 Complete overview of changes is available on https://docs.python.org/3/whatsnew/3.7.html, these are just highlights: * PEP 563, postponed evaluation of type annotations. * async and await are now reserved keywords. * New library modules: contextvars: PEP 567 – Context Variables dataclasses: PEP 557 – Data Classes importlib.resources * New built-in features: PEP 553, the new breakpoint() function. * Python data model improvements: PEP 562, customization of access to module attributes. PEP 560, core support for typing module and generic types. the insertion-order preservation nature of dict objects has been declared to be an official part of the Python language spec. * Significant improvements in the standard library: The asyncio module has received new features, significant usability and performance improvements. The time module gained support for functions with nanosecond resolution. * CPython implementation improvements: Avoiding the use of ASCII as a default text encoding: PEP 538, legacy C locale coercion PEP 540, forced UTF-8 runtime mode PEP 552, deterministic .pycs the new development runtime mode PEP 565, improved DeprecationWarning handling * C API improvements: PEP 539, new C API for thread-local storage * Documentation improvements: PEP 545, Python documentation translations New documentation translations: Japanese, French, and Korean. - drop python3-sorted_tar.patch - drop 0001-allow-for-reproducible-builds-of-python-packages.patch - refresh python-3.6.0-multilib-new.patch - refresh subprocess-raise-timeout.patch * new C API for thread-local storage * Deterministic pyc files * Built-in breakpoint() * Data Classes * Core support for typing module and generic types * Customization of access to module attributes * Postponed evaluation of annotations * Time functions with nanosecond resolution * Improved DeprecationWarning handling * Context Variables * Avoiding the use of ASCII as a default text encoding (PEP 538, legacy C locale coercion and PEP 540, forced UTF-8 runtime mode) * The insertion-order preservation nature of dict objects is now an official part of the Python language spec. * Notable performance improvements in many areas.- disable lto with gcc versions below 7 (results in link failures)- Use faster find subcommand execution strategies.- Do not mention the testsuite disabling in opts as it was moved to main pkg so base is test-free- 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- 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)- Drop python3-tk and python3-idle recommends to reduce python3 always pulling X stack bsc#1081751- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- Update skip_random_failing_tests.patch (for PowerPC) to avoid test_call_later failure- 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- Update RPM group for python documentation.- 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- drop db-devel from requirements- 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- 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- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Skip test_asyncio under qemu_user_space_build- 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- Build the docs in .qch format as well- 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- 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.- Fix source list for previous change (add dh2048.pem).- 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- drop the PDF subpackage (removes the massive texlive dependency, and most likely nobody is using the PDFs anyway)- 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- Only pkgconfig(x11) is required for build, not the whole set of packages provided by xorg-x11-devel metapackage.- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillah01-armsrv2 1695070946  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\3.11.5-150400.9.20.23.11.5-150400.9.20.2      !!!!!!!""""""""""""""""""""""python3.11MiscACKSHISTORYNEWSPortingREADMEREADME.coverityREADME.valgrindSpecialBuilds.txtcoverity_model.cgdbinitindent.propython-config.inpython-config.sh.inpython-embed.pc.inpython.manpython.pc.inrequirements-test.txtstable_abi.tomlsvnmap.txtvalgrind-python.suppvgrindefshtml_downloads6dc1f3f4f0e6ca13cb42ddf4d6cbc8aftzinfo_examples.py_imageshashlib-blake2-tree.pnglogging_flow.pngpathlib-inheritance.pngtk_msg.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.txtcall.rst.txtcapsule.rst.txtcell.rst.txtcode.rst.txtcodec.rst.txtcomplex.rst.txtconcrete.rst.txtcontextvars.rst.txtconversion.rst.txtcoro.rst.txtdatetime.rst.txtdescriptor.rst.txtdict.rst.txtexceptions.rst.txtfile.rst.txtfloat.rst.txtframe.rst.txtfunction.rst.txtgcsupport.rst.txtgen.rst.txtimport.rst.txtindex.rst.txtinit.rst.txtinit_config.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.txttypehints.rst.txttypeobj.rst.txtunicode.rst.txtutilities.rst.txtveryhigh.rst.txtweakref.rst.txtcontents.rst.txtcopyright.rst.txtdistributingindex.rst.txtdistutils_setuptools_disclaimer.rst.txtapiref.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.txthowtoannotations.rst.txtargparse.rst.txtclinic.rst.txtcporting.rst.txtcurses.rst.txtdescriptor.rst.txtenum.rst.txtfunctional.rst.txtindex.rst.txtinstrumentation.rst.txtipaddress.rst.txtisolating-extensions.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_thread.rst.txtabc.rst.txtaifc.rst.txtallos.rst.txtarchiving.rst.txtargparse.rst.txtarray.rst.txtast.rst.txtasynchat.rst.txtasyncio-api-index.rst.txtasyncio-dev.rst.txtasyncio-eventloop.rst.txtasyncio-exceptions.rst.txtasyncio-extending.rst.txtasyncio-future.rst.txtasyncio-llapi-index.rst.txtasyncio-platforms.rst.txtasyncio-policy.rst.txtasyncio-protocol.rst.txtasyncio-queue.rst.txtasyncio-runner.rst.txtasyncio-stream.rst.txtasyncio-subprocess.rst.txtasyncio-sync.rst.txtasyncio-task.rst.txtasyncio.rst.txtasyncore.rst.txtatexit.rst.txtaudioop.rst.txtaudit_events.rst.txtbase64.rst.txtbdb.rst.txtbinary.rst.txtbinascii.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.txtcontextvars.rst.txtcopy.rst.txtcopyreg.rst.txtcrypt.rst.txtcrypto.rst.txtcsv.rst.txtctypes.rst.txtcurses.ascii.rst.txtcurses.panel.rst.txtcurses.rst.txtcustominterp.rst.txtdataclasses.rst.txtdatatypes.rst.txtdatetime.rst.txtdbm.rst.txtdebug.rst.txtdecimal.rst.txtdevelopment.rst.txtdevmode.rst.txtdialog.rst.txtdifflib.rst.txtdis.rst.txtdistribution.rst.txtdistutils.rst.txtdoctest.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.txtfractions.rst.txtframeworks.rst.txtftplib.rst.txtfunctional.rst.txtfunctions.rst.txtfunctools.rst.txtgc.rst.txtgetopt.rst.txtgetpass.rst.txtgettext.rst.txtglob.rst.txtgraphlib.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.metadata.rst.txtimportlib.resources.abc.rst.txtimportlib.resources.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.txtmailbox.rst.txtmailcap.rst.txtmarkup.rst.txtmarshal.rst.txtmath.rst.txtmimetypes.rst.txtmm.rst.txtmmap.rst.txtmodulefinder.rst.txtmodules.rst.txtmsilib.rst.txtmsvcrt.rst.txtmultiprocessing.rst.txtmultiprocessing.shared_memory.rst.txtnetdata.rst.txtnetrc.rst.txtnis.rst.txtnntplib.rst.txtnumbers.rst.txtnumeric.rst.txtoperator.rst.txtoptparse.rst.txtos.path.rst.txtos.rst.txtossaudiodev.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.txtsecurity_warnings.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.txtsymtable.rst.txtsys.rst.txtsys_path_init.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.colorchooser.rst.txttkinter.dnd.rst.txttkinter.font.rst.txttkinter.messagebox.rst.txttkinter.rst.txttkinter.scrolledtext.rst.txttkinter.tix.rst.txttkinter.ttk.rst.txttoken.rst.txttokenize.rst.txttomllib.rst.txttrace.rst.txttraceback.rst.txttracemalloc.rst.txttty.rst.txtturtle.rst.txttypes.rst.txttyping.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.txtzoneinfo.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.txtconfigure.rst.txteditors.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.10.rst.txt3.11.rst.txt3.2.rst.txt3.3.rst.txt3.4.rst.txt3.5.rst.txt3.6.rst.txt3.7.rst.txt3.8.rst.txt3.9.rst.txtchangelog.rst.txtindex.rst.txt_staticbasic.csscaret-down.svgchangelog_search.jsclassic.csscopybutton.jsdefault.cssdoctools.jsdocumentation_options.jsfile.pngglossary.jsonjquery-3.5.1.jsjquery.jslanguage_data.jsmenu.jsminus.pngog-image.pngopensearch.xmlplus.pngpy.pngpy.svgpydoctheme.csspygments.csssearchtools.jssidebar.jsunderscore-1.13.1.jsunderscore.jsabout.htmlbugs.htmlc-apiabstract.htmlallocation.htmlapiabiversion.htmlarg.htmlbool.htmlbuffer.htmlbytearray.htmlbytes.htmlcall.htmlcapsule.htmlcell.htmlcode.htmlcodec.htmlcomplex.htmlconcrete.htmlcontextvars.htmlconversion.htmlcoro.htmldatetime.htmldescriptor.htmldict.htmlexceptions.htmlfile.htmlfloat.htmlframe.htmlfunction.htmlgcsupport.htmlgen.htmlimport.htmlindex.htmlinit.htmlinit_config.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.htmltypehints.htmltypeobj.htmlunicode.htmlutilities.htmlveryhigh.htmlweakref.htmlcontents.htmlcopyright.htmldistributingindex.htmldistutils_setuptools_disclaimer.htmlapiref.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.htmlhowtoannotations.htmlargparse.htmlclinic.htmlcporting.htmlcurses.htmldescriptor.htmlenum.htmlfunctional.htmlindex.htmlinstrumentation.htmlipaddress.htmlisolating-extensions.htmllogging-cookbook.htmllogging.htmlpyporting.htmlregex.htmlsockets.htmlsorting.htmlunicode.htmlurllib2.htmlindex.htmlinstallindex.htmlinstallingindex.htmllibrary2to3.html__future__.html__main__.html_thread.htmlabc.htmlaifc.htmlallos.htmlarchiving.htmlargparse.htmlarray.htmlast.htmlasynchat.htmlasyncio-api-index.htmlasyncio-dev.htmlasyncio-eventloop.htmlasyncio-exceptions.htmlasyncio-extending.htmlasyncio-future.htmlasyncio-llapi-index.htmlasyncio-platforms.htmlasyncio-policy.htmlasyncio-protocol.htmlasyncio-queue.htmlasyncio-runner.htmlasyncio-stream.htmlasyncio-subprocess.htmlasyncio-sync.htmlasyncio-task.htmlasyncio.htmlasyncore.htmlatexit.htmlaudioop.htmlaudit_events.htmlbase64.htmlbdb.htmlbinary.htmlbinascii.htmlbisect.htmlbuiltins.htmlbz2.htmlcalendar.htmlcgi.htmlcgitb.htmlchunk.htmlcmath.htmlcmd.htmlcode.htmlcodecs.htmlcodeop.htmlcollections.abc.htmlcollections.htmlcolorsys.htmlcompileall.htmlconcurrency.htmlconcurrent.futures.htmlconcurrent.htmlconfigparser.htmlconstants.htmlcontextlib.htmlcontextvars.htmlcopy.htmlcopyreg.htmlcrypt.htmlcrypto.htmlcsv.htmlctypes.htmlcurses.ascii.htmlcurses.htmlcurses.panel.htmlcustominterp.htmldataclasses.htmldatatypes.htmldatetime.htmldbm.htmldebug.htmldecimal.htmldevelopment.htmldevmode.htmldialog.htmldifflib.htmldis.htmldistribution.htmldistutils.htmldoctest.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.htmlfractions.htmlframeworks.htmlftplib.htmlfunctional.htmlfunctions.htmlfunctools.htmlgc.htmlgetopt.htmlgetpass.htmlgettext.htmlglob.htmlgraphlib.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.htmlimportlib.metadata.htmlimportlib.resources.abc.htmlimportlib.resources.htmlindex.htmlinspect.htmlinternet.htmlintro.htmlio.htmlipaddress.htmlipc.htmlitertools.htmljson.htmlkeyword.htmllanguage.htmllinecache.htmllocale.htmllogging.config.htmllogging.handlers.htmllogging.htmllzma.htmlmailbox.htmlmailcap.htmlmarkup.htmlmarshal.htmlmath.htmlmimetypes.htmlmm.htmlmmap.htmlmodulefinder.htmlmodules.htmlmsilib.htmlmsvcrt.htmlmultiprocessing.htmlmultiprocessing.shared_memory.htmlnetdata.htmlnetrc.htmlnis.htmlnntplib.htmlnumbers.htmlnumeric.htmloperator.htmloptparse.htmlos.htmlos.path.htmlossaudiodev.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.htmlsecurity_warnings.htmlselect.htmlselectors.htmlshelve.htmlshlex.htmlshutil.htmlsignal.htmlsite.htmlsmtpd.htmlsmtplib.htmlsndhdr.htmlsocket.htmlsocketserver.htmlspwd.htmlsqlite3.htmlssl.htmlstat.htmlstatistics.htmlstdtypes.htmlstring.htmlstringprep.htmlstruct.htmlsubprocess.htmlsunau.htmlsuperseded.htmlsymtable.htmlsys.htmlsys_path_init.htmlsysconfig.htmlsyslog.htmltabnanny.htmltarfile.htmltelnetlib.htmltempfile.htmltermios.htmltest.htmltext.htmltextwrap.htmlthreading.htmltime.htmltimeit.htmltk.htmltkinter.colorchooser.htmltkinter.dnd.htmltkinter.font.htmltkinter.htmltkinter.messagebox.htmltkinter.scrolledtext.htmltkinter.tix.htmltkinter.ttk.htmltoken.htmltokenize.htmltomllib.htmltrace.htmltraceback.htmltracemalloc.htmltty.htmlturtle.htmltypes.htmltyping.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.htmlzoneinfo.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.htmlconfigure.htmleditors.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.10.html3.11.html3.2.html3.3.html3.4.html3.5.html3.6.html3.7.html3.8.html3.9.htmlchangelog.htmlindex.html/usr/share/doc/packages//usr/share/doc/packages/python3.11//usr/share/doc/packages/python3.11/Misc//usr/share/doc/packages/python3.11/html//usr/share/doc/packages/python3.11/html/_downloads//usr/share/doc/packages/python3.11/html/_downloads/6dc1f3f4f0e6ca13cb42ddf4d6cbc8af//usr/share/doc/packages/python3.11/html/_images//usr/share/doc/packages/python3.11/html/_sources//usr/share/doc/packages/python3.11/html/_sources/c-api//usr/share/doc/packages/python3.11/html/_sources/distributing//usr/share/doc/packages/python3.11/html/_sources/distutils//usr/share/doc/packages/python3.11/html/_sources/extending//usr/share/doc/packages/python3.11/html/_sources/faq//usr/share/doc/packages/python3.11/html/_sources/howto//usr/share/doc/packages/python3.11/html/_sources/install//usr/share/doc/packages/python3.11/html/_sources/installing//usr/share/doc/packages/python3.11/html/_sources/library//usr/share/doc/packages/python3.11/html/_sources/reference//usr/share/doc/packages/python3.11/html/_sources/tutorial//usr/share/doc/packages/python3.11/html/_sources/using//usr/share/doc/packages/python3.11/html/_sources/whatsnew//usr/share/doc/packages/python3.11/html/_static//usr/share/doc/packages/python3.11/html/c-api//usr/share/doc/packages/python3.11/html/distributing//usr/share/doc/packages/python3.11/html/distutils//usr/share/doc/packages/python3.11/html/extending//usr/share/doc/packages/python3.11/html/faq//usr/share/doc/packages/python3.11/html/howto//usr/share/doc/packages/python3.11/html/install//usr/share/doc/packages/python3.11/html/installing//usr/share/doc/packages/python3.11/html/library//usr/share/doc/packages/python3.11/html/reference//usr/share/doc/packages/python3.11/html/tutorial//usr/share/doc/packages/python3.11/html/using//usr/share/doc/packages/python3.11/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:30615/SUSE_SLE-15-SP4_Update/5e864ca2c3852148280bc8c98d5817e3-python311.SUSE_SLE-15-SP4_Update:docdrpmxz5aarch64-suse-linux      directoryUTF-8 Unicode textAlgol 68 source, UTF-8 Unicode textASCII 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 colormap, non-interlacedPNG image data, 538 x 319, 8-bit colormap, non-interlacedPNG image data, 978 x 175, 8-bit/color RGB, non-interlacedPNG image data, 250 x 250, 8-bit/color RGB, non-interlacedPNG image data, 706 x 449, 8-bit/color RGBA, non-interlacedASCII text, with very long linesC source, ASCII textLaTeX document, ASCII textPython script, UTF-8 Unicode text executableHTML document, ASCII textPython script text executable Python script, ASCII text executableUTF-8 Unicode text, with very long linesAlgol 68 source, ASCII textSVG Scalable Vector Graphics imagePNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedASCII text, with very long lines, with no line terminatorsPNG image data, 11 x 11, 8-bit grayscale, non-interlacedPNG image data, 200 x 200, 8-bit/color RGBA, non-interlacedXML 1.0 document, ASCII textHTML document, UTF-8 Unicode text, with very long linesHTML document, ASCII text, with very long linesJ m&yzA䁹=1h,Mv cf|XzikyAX,%ͬ TmIѩW),kY?XC訹Z4Fɑ\HcO@ec!KSW{>kX_U/X[޾f9-([7KQlFS Ĩ[qv-%,R> GA/j?|'UDž!UxVmA 6qǜ'uda9SOPh թWՕʧbVJO!QU{ l^+P\# 6!0*_JhIaaw$lpy@a[}|XJ}ӍG|R^AU#;(M,#7 `+xjW5Y6n9Jux?=s)ttU3jpPb;{eN;jG/he f6C=&ȕw%+qG21 m43J _3D uy,`C@I}9 "^=0ߊQ3?\ةm}m5 sk?9iZu}eo6R!61342i;Egz( H/H ɾ,z [\G?AƟ*nrAHX>É@R{ M.k&ؠS|PK@1RdzFxiԬ˯H+]} b%Ӥ8eH>";d1,T."Č H=j[z1$׶Mmt ?a՝U쯛Iw~(f=@)x?OO6GPaEXP.h#3@e=e$ګD`:t͝lJ;<(ӠPWp.RE KW]0^Î=53?\pbYQDŽThY*w`Q8cف&w";aCLro"g-JN>rQDg|i+lR*Q0Z0ɧm=Go:- F%iTV+]tWphNBc#̍rEN5k&6Vd`,]M^: ~ 3^~z~e xoH.pC+ "AyZU+4w>qH3#fw Juң9O47+wge'`hѧ o RdЩ!zT]\AF}n1n}5q19$ˉZGsozۓ؀Iw؃TNʡSMh̵}?eOܒW-T0H5J-M=[!)~%]eZ!Ҏ!sNoP7phY i4f¹:1}%/-~~ o.' QVF(AݎqښW(Es wadtM'}U3#] dSm&t0MChD,3@["WV\_^g RW^}Q7Zk$,kȚ1,3@?5ٚnͲ>R þՠ N5t%r2 !wᎳDG7^[UJ fT"cM7oTi|XMQ.A]y_n`=kߒk hz{T8f[:"]޼~h4jM #MhS ϥ8$>  A2 y6n"^k|Ճ^p(= $ -W5b/cWKՄX(ͪc2"%yo=uŗNyC۽Ig' %odr+Ow÷J%\f Ӄ GuZ3WrAv} g ֘!-fcLg9Yu؂{^ޱ";;hu82o;;C 7??5]/O%bȿ c^:^\ƗcN-; _>#|71ˊI1_<Hg+bZ$Bͩjw8Es2VfJ $"f:VeZ{ѥO|\i6AA0j¤nNws38+)_z9OA]bggu>Q\kf r~ Y>$ ğE2|Nd,"DaL)< e' ϡUo\,%'YLɾF9x {[s$SB6›xՑRG/a_?qM_hIDh޸vj x˛IlF K0P\hi\.a#8QOw@'Iy1  ~fln_]ӈ:#x4F}3iq3 < 8Fا,C%ìא?bHA& ʹ yK60 UMGa?lMmE n [䢔Fs A5 R+vMǕd5k"vy4cSy喗ލ,2=xb0#zHo_ (9ZYEzbr8@>`!\.7"[ml_y*x``0͆kM:&~)v3*"?mձsHDA9cW7*i,uLTЂCu.*PϻǂUijnMfS}/S7XƷʼxvCQ('|u^n";/sǂN^oĚ7GvaK"Edق^bګ2,u{nObM(jU1Mz;vT(b>{1K/#oXP@dc힊'f0dRAGGc_WLL`?sY^Տ/j`0-iyȄ^9;zFQ0/5pdN1NKEp^a.@wJH侘9ϡ* ɐwMM;}5욮bSuq√p6Y1]as*fcc<87N_E:wlGIg7}0Tuanr8I򗶨bYqf wߞ x+ }tB1Sys$i(cM\sJ.߬KO0&J::*mW*&x)7-hxJieׄ;6s#^mtn) O |;ZU_ ~5w]N6z 3 tw v3  b_su?,-J[6~ǻ|thJ^I ݏEBKqй֣==G8xW1:v3s/e(CUҔQ Ǻܘ[&c&3uT>ch)w|j bC.櫲*+y}$W;Y;B+ /Ϟ9fcH `)8l xGqFb#ȏDcӸJy,OgR 7@'ƻ:.{ Też<7&2i%Z<뗩.3eZS Ȟ&HojEIV* %>Q*.CZ8{u4`+/T/mmgH\P3.gt; a:Kh9e|TnO/p2b|AVij4ŎSt'naBJ ϤhRU+ ByGmM5ހq[pl_YmU\qc[t+]r\Ck 䛪E;bOBar4cĝ!eլ8gg睅eR?2.3FA%*YNT^ _ ' Ŕ{{d@Wim'e`=sGj̓J#P={z|9gr9Y*#4TA5EyRHi.'ܨ^Y,)V).0IbkIfTvw; 9@I2jkD lJDd2\g%f~ 1c˛Xd4g k_mwvo ϖ畜G(D]7u*oA&̷C @*fԀxlD߇Q zUTJGlZ?(` !w NH 3&[ltmڲ%*6Auf@\@L"ʼn(OVL6G܎%<{}7QR:0:5HY=϶á=Y㤜El{6[~)$gx} s{=֐\ob!r'( >=w`݌Ў:aT7LQT̓,J$z3EN>7,t[* 3=xj Ĵ-ϡQ|iy&:VqL,eк1&o-'<]JܦvLY/;p'H7x- jI !d x IuDO st&#lДĝ]5[`Ųaf* Lf$hC߁Qg_2ZinMγA%ڑ߭Dz,Tsx6]'3#}wph)S΍rakXbo_ئ-+XmB*+ 8q`mK;x1}rQA;|>bPkmvC!+Xs< )Il dostW@d.Za./Ir$1MDC*ȵ _ tٷeded nˠfKu[`SmFsvQ+7J<~Uut)$'h3]t0捑\Gw)ŏD$#/2Oi<"7'6)[D h_"%(f^ )=v鯬&:SWz-5I/Ez\v7,>Q|@u"Nb١5<*+]7,$7"'WA䗘QNZyt˟L}BB̪D,R@4zv9lam$^Ԟv(Q͓\|h٪ܧqeD xJ)V8cݣO )H8;wq@Lwwd,2Z0YR!>KlG dg5[syTƥ]N[]j}ydr_ !a ~5a+4ՄG@o$pɩ$`y 5'ч,\D9|s n%z#\"Sayaw}QNx4IgCnV jcQ>ނ3U u7x 륗m.6TA),˪"3}vBg/s``@0tie/=ɪkCdN!agVXO?~w[$vpC-NAP+OfYEsZE?1Q4h()H@4kw6#{Pdf3[=dj)*P䲚ǐeA@tRlmZq wt} H$ -ꋏJB& QAaX$Ē )9^8{>1KmNw32YbpV»/U%nEC~ZX^shUP$IFK䢿uЋ ؗz7m 4Z34(}u;^VVf:$LU5؊c7G\t!Q:1IP!oཟd ]iDsQHsc D :7;M3e2P (hMHh /ä<OyGR Ta$!}n"k`'8y.mgVwcaqE^ݓjB?#.-1{0ŲLM$Ol\A4mV[I#MC/yB$(!O} M OG2U-W$\ҮVbNZMnO|_Ӹ Ȱ{D"U WM}!>mR bP 6#y"pw#&?>:y(0j`%r{FFT9tbp(գV 9D LS498a*W"0\JTJ@nӁG^L}) l\f:$ _Qג: Bn5YWe8[_3?9̛\?JH0&w  pZ 5:,=2lKsf4 `ьd q. JnGE nHNjet~1 Y)M2Wa p'mC0ܶefRYPQ/uS* i0FBED9.y;:uV| 'pSOOB?r2چgdubQ`q`2f;n^c ؚ [ [![~iD|eA<}[Xc봟hvݑ\a8zȩ),~;rĽca򹹦g:BBMVw,-2dQE/k=4'|)H{[*N& .lsJ XFK$I2Xy]l0YTYzh1NbeK_hE;cH{N${|Qm4@#q0!%tYÑ)=kkIB!{$-X= ̷,F3O@OтG!zT = -4I230f_6"4Z,$r2,icq"ױ:VK,dȕ:4?/xg/}mbo2uu0㖅AA^~]LOgXhNp<i"HyZ9)LQsôGUB &69GJ Y&+VcCMX2xwq =*E@lo/Z""e"ݰ{;=rSо́ěC7jKG[Ѣ/*{8ޥC@*~ e?՗ 2|K*{JȄD.^3mxw4 )[7'h~"mtN@o7 Bﺰa'Q|e>D(@1 J%n^R[o2iwz&]wv-4@4g B}c.Erw] j*t8|f枳b^C)Hľ!`󉮞?Z>F>(P}QT.sҞ~ޱq8s9)\4S/ݥMm`vKʷU6gm3>ǎ>%$Lj;>]qu":(A֋ӴZ@>VmQz Ss]" OU7/;Lr(K=bWtn!OrX_b%٫g+vcu}3kYd> VkRb䎡0_pr,}n[[Gy$XGG_! H/tD4t`'*AߕJ%U:2H ZK)VC: q  Z)ИRuGtQNQ#}%ML?s7G1xXZ> (@I+|7 'w靖RrK=Q?,xZy: $U휼7a m[C=m\.g9dF JݡBDp~OZ_T {㣊 wKrd2"+fXrd~^6,'dWxOcfb3/XA&&Z$bU)G-=NuqG!R%8uȦ-Ty~K9~Ӳ)^|j"EiOdSFkvEd tC!5K7HwG S#DȈzR5vHΙވ(AEd](R~RP-%ў̿ܩp$eu 6b/, 0( 'HH:t'}`w><ͤwYjC B aV:30j?3pC _=8|4Cu^:rV?m֚{JDc2]::b ( #edF ?>ݝBw<}1eBaw$:S;}уRCآ+2`FyN\ &zCSi(NuZ~V7r!]dxS䓓2- (`Iel"Ҩ ХA;Iph҂z"~=[} t1@dbt(!_\@{y{ "l](NE2w'̲&`s#d41cX ̘UJ ʃl%5Qm^݉xڠVJikH3G#~WjV٧8ǟ'~#ksހZKU/yHz)ߜWa[&\`hNK־J.e&z&^K,DI)*6¡hN9vqDUzK}`|ѷoOt9-u̻ǖFQ{nCa9Jz6̎6sW O ߫[+`VU7$S ԩGG`pjS<<\pcomjN?Y" wDr[+zo@ k y0t0h{"`L2taܷ4wG^ q gXEk(]Lgt/Iq (("ɷsN 8g2Y1o'az7|n6*lH5V L?p+k|PI%*[,YXP{q]]WrXcSW >eЀJ~EnHcZvGgG&$ p1WH%/6sBݚ3HBKfldW#o[G*Oj=, )KA/X$bSme64zőpyybS>>0cJjá:Ϧ?C~%TL|Jmhl݇W<ۚldSL/ þ7bg5fODHC=]w@a9r&oI3}m6z,pq|yk @N SGdL&_;}:KV %bg>z!&_J&m[ u7O!ޓG >Ş&Oo&TLONНwH'>;CLf}a[Io1< UMFf.QT(w;;eyPW>#Kpj*`C]^G|lܟU0I0ROko1.J)ȿ$ e UQ^-lUtȼ~&g&VE2YO{:%cz7S8L*}D")KS3v$:{鸿`Mgr&x*Zϟ[ǚ7!: u"|v* s]'jw{βkW0`r_K9001ߜfySIo`/yP )܊AEM7S8M!O=8'71K82G,a_bx:,-N-A%hpNˎUb~3G&Z$JOmIJIyɅp^p' ٩D|:qρA:&dхh`Z4R pwiR+?ol8PͰC5&!w󴹯hdEO -wVf\A8QCm4G x/+mަqPI/H A 0@իq"[>s5:'qn(7OQtCG+XȊ/,/-qZƿt.' IruiAHsP9+8&iJfͧdnE?bctУ2O3_iԺEjAK&5)DQDxplu9 hWrLW] & Os"Kgx#.vҸA-i6ji:\=刂l8!!is{UeѼ(F`N zc&!>8S",vT,θ'Kp*B-6jT' .TĬKßD5Ak,fWEy(RA^1Z8@VHHn; Mɖ%ĤL1-Teo[ȓQۗhF4HFܕ GQ mp"iдBHPLV-*ԴCa EF]v;xܹ#ldy85C- siY~'̾L/ %6fTaLL ei<^g6Nޓ q +hҹAG(:m^x~L巑Rhe1 Rv]`L%O:]r0qv߈#U J%NC MV?C(I04K]mFFa`9<-WuRn[9w-B&9Wobv N` pg% -F>䖨*  |U я"7r$/؇sF1\_%lx+~EoØ~B~ڨK#-}44J,D#fp s̀tk>X<\tJdm#;3keP{2Q}R|ht\=w|5Q̉T#=A6OJR3"f۰<XgxuGB__smRgmo_X9 ax<ݛۣЁJ|EDq~ÓTH#gXn1Qr`e{67dF>8tiEn0O 4E9y1jRY(옠iPku W+P[-ҋ6 xQP m~3<>ҞBm/QQIczӏ N0x7q}Mo2cB KVWcHL-'(C/P+4 /K_lcCJvAEFd?t%.#pSdA婈\߶y/%{̏n0%Jk0@ry* $D[;㵇 q +j ev~t3"ȗ 2Ki}zj>efja֋Yy9(E]G5UbDġ6P b'^ bޘ;nOhI$e}=|Ow$i>wX0o 笣<zxq^sU81wmXW*$6=2CDf@]mƙFj)I-kʕDE`ƱQ*ҬXY*.)i20'a/> +!J.7lώ<=2}a4b^E^ط}yڼc_2HqʻUjT5j`i sc+QƛpTK AQ1$g 9<8bp|Hgs!M8ĘhGxkSbp@1/]7[70cH], 1j-cX|A }t*m H2 ,`m2P?Yo.JGv-7neRye~B(y-WGG,zS^vnuJQ9_t<;׀- UBS z_^mٰпss$rc/m$;73Ags2=ȒWDLs I'8T2 `5v.%L~q@8E Xx&nHP; d) c:od9GJ: LX`'hr9|'w Ǭ|Pq;#vHI>r'Drxy6*8x'6W}:tifD"4u)XBnh/Xh#EܶɣUjEi"OMQZ6x u:VF1fZ-]/3 3QI.ÚP9K&-MfإcoN?ъ~3`U%)O(ymk+\Oqdk EWy1JT`g_)k[Ӿ<h~|тs;夜u:4Եn?N ˂Y 8Nh{Hf.8 _V|[ W7sDxc/WP-k+{CT_ i% bS+K.E꜆̲\7N<;7tL'RYRXFŊ|:'3ꡕ_pKzEUY;FTi xɗV@~z-[-@SȸT4&)K^ý"p7쳝k`_Q<:ǽ*O. .4QEqŽBS:SK5"dLfeL2 tSv&m@W|P ]F1۩7٥1cp{2*LhM{,EwZcn<C߫\F@iwip ;DTlș,sO܌xBսτmwa09 )׭!^Cnޔfa?[u%6gMo,G n0S¤1${<$a w3k/Z],% Q׉>0VmG~ޖIWk'UCD n˶Ef<ąhqGkK R;H?WŠDѡghNd"(|_x=EvNӋGzkxz <\p=&ΑIK쵍m;PH៝9@Z RSGHf}为Xڙ=,x4h9xOyFH>r4l8u P [K8rp AaiI\;/OXg7n{?b@s(3+:-~\PԵfׂbKN)֧6L,ѭq$ Ew2-$C*q@$i5:7H 60tAÈdC$. N#kcgZ|ɢ2R`ϐ/m!N.پh6\ծ6|sכH}#ߨU?i0Cv} %çb`E>٪PQ'L]šٛx~-C}5LTjɫ$[z*h} Gt nXor*6FBXD^_j.yU,9byS۳awo_Php ֒*3`:ۀmRHnY nq -r̮ڋV}2>ۀ/rMN@>K5k)8N74Қc4[HBYYJ<(w 4]ԝxTԛ> 4tVhN۝E2Ǽ~R_dOWZB`/(_Nfޫ?)[.M'!·!5-GhnfDv~> lNW' BL~oM=LVq7,jXQ)u4U@_K0MMNpG꠸F;U_K\"oo:e3k"vbSh*td'Us=M/^-Mwii~eAQϴ\~ Uv cF*XxoJHقRx i`[m1$fkn _u| P) #A+ȳ7u#v;-CVl,qU͘SMk)%$5j|xBl "h`J5Z=\ͻ!,1KF2~vWJCH#qi`9ېP4f"1>X!uLMlƭ-8$A+' >վ2d nBAqXp@~XʷV0y(PD ΋H"ߞ|x<]k'Bڥ YnWv%| -W0j}D37^@2>`ז"?iDŽ0&N(Ƶ7ٙdHs \nZI؇{Gsо[j4QiSwIyZH$?W6Q۫^v&&%wtœloZ?k/RimX#}v)wh-X1=e'Afoi9g, Rjf#"C@LJr W&,3ۺxbZ+^' 8]+Y{v=Ո~+e*`_2[`rl  _ 2ŵ{DoF.&xG?(tI[X ᡈzق_; 9M;pUlq?4,6w%IC+|. OSq*"?^yj.h],ڞ< 2rpOyzޮFh 11-gzsI<|Yd }4¿TՈnTfU1%t3%c"Bm8$ U/ <2Oi[zf3J_)Bp|轀8%o Bf7> 1x,aj9\X.UaO+a͗?y|℩z > L6ί&gͽ o6h cuyQǣU(2<3cb%sq,[ɖk2)Դ`PebIz&^*LN'SM|NT7Y1Vqq^Ae'L{`v-j[q8xjX⋟"i5sqIW*>S4|*ުGrLT)ʊ8*&@o/"f~a4N#hߘ'*Жo5n|:vGX)ڡ?|gs=// x4hoċ]jͣwzft+\9~10U3RYYCm뺞 9A%1$6inډ Szj@_n+I^c:XhXWbg$yrqZ)qk}ncURA91̉o^sטU!u^hRuD"nST?\<*IVS,G'`1D($%)RpMQ *#8 PȐug. Rz_^`QӔKrwHd3T]Sv Ш TC(+%s χyz#4JE !r{L> KDH-xnF1"x:?eI*i7n{|)郅 {z}p J e5+{2 "^{'cŒ!%}MQS:p! t1@F@qQk* V#_z b-h  "K|fA/={UŞuC5[Pzō:W!aJDlX 6&r_$/=rdA{rk}fvNU*>3Gўr %Xs;BTP=d4 bUi0%AHfE:M9Z mɸ8;ßaۦCǦقO:MKiPo<>C'$I'x?(0FzÄ#uIX*? y*VP_־Stk^O+nҫ>AdZֻm<.^4;]wR9ѐk' zNw&vS&|>Mֆ 'n2wYt(6%sз]$dK9~ x*f͐&rY Ptٻ=Y sĄW7篳?ab3@gP͒dwBhW%'_8'ߦorP6*! $I|[<`a`n2?k3eyIozBng/!3ý è{p] .v#w(6^JcHƔ'GdXIn=&Q)Il2xc OQ0\!1/VOiԅcH<{ H4cc-FX*lzfLo!M'(MůǗ{JlVV˺B$-M.&̱0z&|4(W#H\:W!^N`0|<=uTn( '8bZ4;DwF^J)//8@ RL˖14j=$|ƍk^g}! N( AinzAo.'orO `6tS5>N[Hх"raAX pJlK( `X$Z>9Ҡ"y-򨗁{Gn7 ¤9_,r8^q]b:E[kwa-./_h!R\lo$x_d8ꦍ*@K k#r47YߴCXY7:YKge?9uEHϢő<׉m\+D0⸁< uqELdFzoPrNgYY9ʅ۾\laaK1AEIY0'ܬ"S_q][_.h c9 7R"7{9IAbTk-OUH{fy4A0rɅ‰3IW $=8Kg[OUOm\eoӐk>|L$y/1c ȴ~@D?<FBOTSjErx$@E> ,< a 2fmdp=\eeťv3}>b*:XYČ(R#K%̸tpZQ ("ddъzu(3?ZPng`aMzh%H( y2JRd؁5L+R#l'ٽp.\:x4}hԛyXzfFQLASD?B3SMJ.ۚ,2̢'cf%xHڟWu[>y^q]}^3w5mBW&>77)#Ӧg(|1MqI)]Ľ@0&))vYtRE"{ggg8lbr,IwG~aB˻eKP@ag-OC[YR~wOn4OyGC/d(H;)4:bEz4`VtuN1.)S)KFs.3*Nc#gc_Z<kq\ZF$7nk 1e3[rc ꘺RF_b:#}ib$gbe|mE>UUW`K !d,vjf^F'o)%[j0Xu?/6bs B}z;NAS).ߊ7A,x=R)g ZOlk<(އ wq WL,̸Yx[׳lcۙL{陊X(F9dy&cDBmVlonMe-}7vIJ!.Rg_qLp@pfKF:cl3jOb[k!;eFlֵ^"7&a߬ !J~"OaXG˟g9ZS/[#GJ{aH4K9Z(IOkw!- i")16(d4gTF@j9p `"' ~:+բxcpgW l%zʷUOlR _U_:G`8XEљehZKL}FcDyAy{{.0;fCJ+H9-QNx c3Ƶ:oEX-]Ƅ!$I}R{n?ITn!7@K9ʊr Va%%k'PIM zؐ_n=m3lj{OD|kR+/jIe-L3bRJqԉ#TXA)#zp]ΫVoֻ4Lb3tZڗ:\[VQ@ 0j }})tB 2n|::ώ4>O1邃x͔F7,3:+v_4wG}tMH-Xs-MB%< u-AR'l@3ahyaoswP@A',ٕV#ġEOrSD3Y3"+r3d=͑8/T-wDSAD'X-v}:$[aiIe]ES?]>1Mr(+ES[wD+B!:tQK|RܲP%rw2[hM.-@z<Ԛ;Dx;!'Ӟ,튉M;w+"]!pR/[Y{G.5ks}Cy1qtdžVeyc $c!|N M! ɿ; ,ԋڊ ;'/J)T1ݥAu4^̓ZXf Wj Pvvm2銟D͐LY9ƀU I+Qʙ?-UL͚ CWDw+Mǜ۫0<;ں: {} Mhxn*ҪTM21";YX3Kܔ$*:?M2Pl`RE H{ T]m axѽyW@/9C< !I1Gngn3F|h .9"f^/><‰o"z{Uo<.KAF't`؊S:hIUyj,ܳ)&\F~R::F6e o-AuKB~xyQ|Q!栈\J{q;)r٤=Ssy5[x`Ϸo lJV L쿊497Mk\Ut-iz\# ҢF\Rk.KAg7sʡuuzPRV<9iEV @_Xsֆ9FB\P D/m(g^ک_3#$D}zbPuGDN*O?[SَQRIbzρ=^SJpAJLF +Ȋ4g"]Q(eEN XƟge^/?.o`!Ȁ5OّE\=MNϡ:t^Gښ;$ ޯ2ŞpB̅6`9pmdZ7^VWhDT')TH=?cԚlF/ ?O#l[;P4I猕r˩8X"H΁`fe E*\g:-a]f2bF̼|I\K.!$5}C\ۋ4N3nbZrL}ebkr㠷b2!Xѹ3hZ:и=/XI뇵O6[Ig9DT#ch1`-TϮgY.2?P%?BEFA{(#} LR QrX1]ńuX<@'l9);J/ku{a:dBgGo2O}3u{(iFo>pol{~^u([pMR.Wo5y\dPb\qxɕRfcDpZc'j M.>RUm]T[`D!4/?Bpjh{Nus } :Cj$Q܍?o3!F}X;FņwVƾ/|U6kpxA9cH:I#\T8ϕG&36g'#f b >Av.6lZeidBԾŀk}>޴ jt:#FҦ+fnoe띬*4ZĠhA_Y<>w2E93Zqn)/n#@Kn]F=VK8@bvFsdM*[36N(]E\5E?ޛφgѷO~>*k@r ~䑜To _B0*>~jfCp#7.>';_:4y^fRX&r9J1p l"0N)G +9Ye#!}Fhqwjv{f(!1ƦC pY >W9O "#Qԃ!]aEW^{)˴;H+` %a]ll~\NH++.#Q?gqd{GGxIuƛi%z`\kZ1Q_(0h b1k'b'FپK_bn1<(a(M(A~̆ry :確}0LB.-³DWϧ.6R&{ȇ$5 DS!HrMImHLxd%Z8FBUTdq jtmD9)jyʦl'ZCA‡^9 U:?KZĒsѷu4nKFv>6~ OheXxD8˦ga|5{!+ TrK0{ѲG&G %I.>ʵ,LIh<瞺0)vj@0Ѓl'w`Og WKF?'3bXiL^)t.߮=d]yJBt,f`* \< -o4 s;.h3fCfTPpg9eE ?Mq$1,Y48\~jΏ5OnWdv ԍύc} ^=}4 stE7;S|^tazO#ݙNqKtYue)=u%yoz !Лv5Ի}ݔoKmqؒk2g6 ]3I숝ncR( !ɰjSt+j3y?e5ʾQ>* }W_5E`1CR\C>3J鞘A9y A1%'o0WEce7zjĉ1N꼺M}J#'/[u,)X0>/Rx]D ʘJeV2ZWk냖pbdO|BrnGNTKa@ҿ:/jfIX4i"(}΅ؑkK_ *h^c[58XS*T龉6Raw}8: -1FokWWlYӃd7$^1n!B^)̤&b1UqjT @ou܆Gv=^ g&2'eJ?7~Y(񹰇wa;xESc0]dE?|CwTe\6H]8bMcZ|[?>۸[N"=z˿8YM?SuG5AbO6'zUUq/#cS7p a< ^B|~iLr4År-R/Fh kv3g)d%'<NV6ai+)_щ6TNfZVgrzRR1:B2hnq) Ku L}قkO_X:Y0#htO.o29ʐp_n켲Nj\u"Y6d)zHe7FR|j H@,v><*@E:r=o<-]p" Z6O;A^SKؠG-?驗uc-a0ȁ[E䁠KjpD]{U)cQuy&un"_UGbXA=eN@Z{O]ڗ8_I[_:v韈[u,&JuxzF=#,\81J{ɀO;-+oT|ƂsOΧL8()/!~_#ζ6!T~NA̞F.pCY"jgg zC+Vp!SRM?(pl`YHإAow٠{3 jC_fgjCa R ɘ1Du"d"qNP 5߰)%^f>h2k Q)RcTzZą"x,ZKs(8F{ J8_nosJD~[kJ(sr$.$aؖ- ]Ǣz6^)ݴ*?!X\K&٦&4 ۅK}px0s$Z# )\{_*A!Yz>~abu,K̡忱_kvW)BG`* ׊i]k_<sH`l8q B|m(|e$->'i0 qKÚl -+(3#&Y&gsT[Ľ0lI[F0Umٔ)! K OQH Ƃ‹S]Sh^P?σZ">'G $ऱ5 U2IζXvs;T;k⫷m{ Arv_,4[@_074O n :'EN mϬ8 '/ *? so-F3;^OU! /<q SSTh58?O-.{N=J Cp5'gYL7 ͖)Ek =zm9FVBlCjFj>Q@3;Ҹʅ(r՞],vk{"zq &_-^^SOxT봰Π25BߌtMklm1PAx%(B-\B0.M0bUAC/mX ;DeDDM]e}bXWfp7:T/rzu@_mbtFPۿf%sFqh)Q@UǫS /_MW{:E+x#twSȄr6!&x>F|A#8 ):}<csx,*߇ױiū䰡Fn7V N/'5Y| F|bʲs"<|ϾB'\ٶ~BL.Tܖ߃ hS)dV֖*[N\}R>RwJf{5 XE?N c)_p,lpkpD vSߎ`!2$^cnn/oެUyfl޸Lz ƚ1@H#12IQDn e|dش W󷠾ĥe5}U0oY}Tߛ8̀ fb$KA~tNKdp%iEWPvWfTZjQI4 1Z:j5HS#g%~-? E=_lB`CR#|v~"0O`-Lr|M7= o-Z N<ߘ4rKPME^`"+=IVMUV棇B܍KR{qx3Co*t{YmHUw_N!WZ&\k 5)y -! =65 y\U>"5$BU%=i 7if'BvUcD )zBVOjIJ̕<~yͺ]Vog l"ʷ2;Rqm@GnšLHae3Bh̚_A=`Qɧh+!C42^QL/{qK/3}݅F3{lYY%ux7^wh߽P@ ڤС)Ճ6Ar:&J^h|v@)u}Ed57Ood6BTi55Z3@NW@%*X CoRʹX|Eo4p^.hhbm k;U32ϓ47q6\)p c(ڔ@e<].eGg5[Gxt5@4tg3wQ!H[pN))FV/eF!`]e)K@0UVn+"ŷ,'PgAhWlu; e2rCp3&oS{2R/3sGw~d#H( q/ŀفݛw-׻9p赨Aj ް- o=*i<@m ^Bfr-SQB&nyG?Hށ4x^GHsʰa㬮[qh?<;ԑڑ.vd/#[9OTB 8ۢs551>JLVɯ~D&ð2a(Ȧ%'ǩ1aUS'N7ui~rgL$eTkw@{پ?m^+,ֹJ|}) ~rG;lU=Z!rt.N>3 W Wbb,KP%b rY: 3Qŧ~'%ş'tO*XHZmQvS?*e? 4_]UJ `dwq$͕rX)]FEC[e$Έ$ H]]fYDwX7A_I]cz595>cc#klΞcM8{c%yfcxdM\X4ف ipBy(/Zv 2Ƨ3Ɨ`pP;:ۛm'KT o04c.KjGG{eѕd9cE& afjQ㍙*HtyS}rt_#"C%skO.꾄=b8YyYgYaG`:2V.F|r&b/onYbxVy& K!>b&}˶t{Nxc&rg|cn Scd%ޕ0?YbV"d2uՀlg[@)8$*`QSN3BaMKm,fI;eAg[}M-/R|^Rb}~KgZJr摮!$_ ^cgQMG-LY jAcmз|WD۱v ?@Ư7_ )ÑӇ},hl($SCwxGf?DK>f717 ^ċ?$c Mٸ^!WGP٩Xb!ʡ3}dHs#饽lQE ataS )0pK/Zc7goIRnyo.0S3l*y yOqn8uEFev^XNDK2S1DGBjiW6T}z]#tz>)DXm}F =e_=>57Zѕ%"cH /F'l3 mnh x+G|}8c/|:*ckͺt7M}x}BvLczc "K^У_+bLzեUL{g~2fM#,zW1)fο(= S%X622BN&[ꗒY@,r S&`세5)٪J:A@ KGX`#fĬA~WK +[UɲO+Q-PMi blɴ84J7jza.>p0ҿ;ea ☔> :lR2zΔ^Em8$A0$OkwW p|,M>ty{hFbSȜ-h=d_iOi._laaR=P:8?P͍!C,@x}u76:UwSx[7d.,rXb[7Kkdvb\;S/A85"MLm{z cfX,}rC}/=c F#c"j6x%~ʚ' cq'0N%-WWGQXYھ>L;b_-7b݈1zq6w^,V;T:tta3Jin!^ -[/ $gZf]}@s Q{y۝ZQ-0IT"shtmNZA|=4Wl)N 2I{wJDP k;=Tmp~CZ_kwS# Q ?fecDPn8c? )$Cx|MƎZh;ԋ"yEwV<|QɌx+ŢDC L' \<8)S]BMks4Ǒ@v{" 8&ۈke/[x'ęG?7>t<7cS% e8LJG|y? צHJSˀ|m۝khI1ŴxR"Q7/\% {߱e! :sj$B12nyHYN*Rbg-p6J@X݇1Qjk=;^mAoPo^7&10 C.Š!\ k$WN`XhMm؅QGͱ`*'WXrwzq cHnV%^{ kSrxp]q}qP]pB~Pݤ-Vw>hUWCWUe'+./tg)b}B CJ2#}OtJEQ5D6eY4t]ў'8PʎFzƦ!e(CNe:sw>h2ZX!Y$ {XF;vb;ii$CZ DX~&qm`ؓT {`дˮCd̺6]"vP*@c<'O5b5gBKP-/>ˌ tX J)]0,,*ڵyzS`sDhVGi+ft+J$;( ՚ 2|dȅU*;eEuN,^y;E蠵BiY:. N"n[SotG,-3 e=?/֒2V*D*].-.w4 ubJ;ToM} c+lT bF{)dT",b!?j1rwF-NU%t䡇7";P>3d!^[ 1{V 8iCs7tkR4>h\eI 7ū3wM!vE:;xN1iyIXb ڐ]#iQ[E};h>1>J [Y%*?A3'PQݙiR\:+Dtvo-D&."N`lj֕Mg${sMh̝^;͇z(ogqg݊͒w|n(~M#_0Z].e.b-2?|c$4GFWfrt`o6B^k^в|;:NUc/o !5bóvMx4qк$S.|֬D ZO1@#eZBWK"s+ӱngy[n h0~V!!5~amWyn!jZdzۢzO:Rt@D DlNH0.D.`u]'؊ê,{~$K^!FiJJ \:VwiUh4UT%]qǠk$\ceb`0 E]Rd{(%xHOQA5.`µqybNTUPkR P\JJo}TGy`h&::Io OIE MJ? 1^hCpF ˻mr4MCP:f 3iिk%7Y-m{9=,QӇ4c1n(:-}TVPp36Oji]-&S WB䴶j ӤT/VޡD\K3 5!BчP⤛hd&~ 0 MU><^f(Ǡkk-Wn-XRJ˳H1Յ y*? DP_Cy.\t2+È:Z4Oi+";6^k*Y"@s\^HD>3FVܜ6@f]K)3H9r/ֱL?EHR& cfOyjXĿRğ],X6MVb ϘyZ-k35#=9]l@߭4+x /2PfXp·#%@9d8 ړWN8\ HxN 9Zկ3vԵdsGR:1Ed9'QEܪAX4@+~*. 6%Tmp ݡCkS◃b^kjRb]'Mtȍ_!=ѿj/-7dJܯ%q,JFŻzP:B SҦq*$EwԎ W!Ph@ ~ŗK9`# uUrӳx,ÍbLjBO€ C\Dw8Xz{6OqФ^=8-M@zWBj ׺ew<E?=nH xӏq볥xL&4M_B>e94CIP `Mz^uܩ$:F#n: V/aصq( *"1> 5Vtq - 2` . -P. Kܓot@0 >6a}66q>6:V{^+8s_!G{~H1$c(k6$/erx+2ΥR$t(cST͎ݧQ 7v"Sh<9:>aО@1y]ȓn §Q'jIĿR N5ً@5ʐ2k. aN\&TnLE]6&,W -gvxsq0Kebh4^ڼ{4"RwkZc(3gtf5$!鎀9TxԤy@0A#2E&\ tDkad>wbV^C,mW3r+s;.RN䆢IlãM VT~ήx^}b,_ըg CE1gTLn+qG&bώ/ |?]ɠ+!4[+AѴ(38ݳMlNYeHBxDeJ_9BAKnⵉakEԯTW'KQZ&v1s7V~t < O;pJԍ3B<ȹp5J[&ܥ1>˜dboH*.P:C)b޲%M-fs8H ) ʕ!OBi= iIR}fLYU ^vQ݊m Z* # !wE9`8 /۶#u5솎ԌuI T4?7Sw26eV ekG.عm`t̵UؠG*mk~}@mjQ,*ـyݵ /@G=.A=F8<К1`ftkal9ݎuiK15CsIn 9u>po5A v+ldCOUIH# 2qήjV+A-j :Z iDɭ!wRl]#0CJ| hyR5_qG.!iȆyHDs`lOG,Bf BAEjR桴yb ~G")PݳM ?A>6Io=PDO'IZK sQ6qjҞeLCmxQ%ߊ|fR\*Jc34T[@:pG%.zbWb r7} v7ZWeK+v3(nEXBC`ؿ~. T'gϦC*Ea|h֌w;IdB6ƶi^ |߀})2D@4n3-:w I9zv&E'H^TG(ԋJN9y4w2 hˊtT_]Ij^٤"ŝ#03[K)!hp_ϡDb{6-7>V{qs::> ,5iV<힥U`FP+gȝut,Hy\檕>EQ"¡ҝK NpQwOOqJr~5ȘՅ[#LoFT_{{@*]/ğMz mn/1@m)*j՟T6cT3 ep $W) ͠?U°)y] 8تf+j2T$s>{H-=7\z@ZgI4xi"C"Ɯ0bC^,{&cP2j 5+jҨ["!v1:$0y,²D da%Ke3n\l6\0R*>`B98ûD"~hϙDʫ0fb>,xCLQV3]t].4^vUN.F>~B#gt dJX-3wiJeO޺ 1]}fEDkM,w/9泣*HW"NAֱGu(H+j92nXvx͊$+ؔ3VFvNyLƊD JI6]Rt Br@ xӫhư6J%pI !'.!>Q0̲]bJؤ=.EӃ寥Rwc: {u]3m{ 2*Gk% KTW% CYBt> ,8"YuI COD(sNŽtb̽7;2$Zǁ/xW2Nj^viv-Q0F%U8)-r?Zk#U/j97l:3Ggh%͟W!nOïÐryQY*h`.h+U}C'ًt3vӈ2]>3E!♚]ŵOH` zmf)ILjQ3oj}$)X.{`}K˼e*7~Jdya`nq+J6OCI8;hN[ 98+=c%{ෟkbX= GVP|rMLtF bF Zљs_"6r4VQSu'a ZL|VL6"_eCm\Y8OFt6LJP1'QҢv∣EfA,D'r'^ SA- Nu+=ozA<4s`꒵0W [#TJt5hi߬a0s,|ꍦbZ@< >?t.V'Z,I %@8]V赌#1~[s4D_MȐsɴ)Z/2^c P|Nk T h ךmMɰU  caMyԀV1Q(P'^WoxMrebKm{C 痀vWW' K yQƿ!y ߷>[nQ:H'- ,(~2Q^R3I3s"ߛp)DZIaiI7]Jc5P#2RQo|HEQ:SJ&A*joZ2)P ㍎n&a%1RKk׬j,5R8ĔmMW;-Y%qiO›MkOפB1ּ6_6dr\NE4`V]qP S(ÃSZpl< dlK5z>3d1@>$j,]P= UW5>(lRqEy8_S5Ä#j["wbs<{_Qw|FOOT5~g&ѿ1Y*,FGz5)ˑ:/$Sdp.h]KKl/49Y(ơ$r7d4d@EqU = " | !tmR/z'Voѿ "nBsBhEϨ-elDe IrI?=J6/.Q aҪ1\W|.`"1\&1 JV}$D}/k<BOtxŸG O W1c4}'Xt8#]MK&F[2(t?uxG 9٫[*5)7;˝>?vZgտL_jDIfO+3.Mh7@Z}oGPa:dBx?48=`S<_8<fv+֞EҤVqǞ7PU Gӊ#̠B9FDj/4Bg׹IKb+[\ O+%TRPsڗZbdqH; gQįPGWkaCf(%+6pg0C&hn [[ @†^1- g3Ugs7v. k4?\ҥEt$pZYZ B6a|7bpD+PcD;V+'I&Ba'(Nxۭ&372]l쇏jL Ƽ|c/N ?lƌ$u3擓B5pdjNsaO@@LSdh2I-v[ASԍ̓?ɿL >>ɋ$Y${Y se9-_I?t!C=p t}YYvTþH^a$$FږjœeZDo^D"]kD[Б(FZe.w,9ݿY5Ӆ`~@08@*˫ߎ',ka)ODa<#Wo'&NO^&Hl{6 ƴ\CBܼȲ4={Q]Lf"zk5eqx]C7eD K_הQ Tt̓2w1fܭe7aǐsB*OC|i(J -^DByTƗU3/.&7L0e- A]W_|1kgg>=`F}v ʤQyU_%a%={9 [Y71a/Q*0RGSuHAfD/Eo}& '(חl/ִEmӔr픊e uߘOkY-s1Xr,x,i'>2k>%|;GP?]^`6*R <{e%(1] .@4G~`uӾ+@XBu_Fo-[ 1JuDDΓTif[B׌ѱpkt&:%'Ɲ+q2skBa{oT\ z1˚0_"$\+$t5q %3ֵkU)*?$2>^,:ⶰEm/7OHo0])3,wV'DOeh}3s ֠l9X]܏+Z\k]E@ Nؔ&4"Z4Jt-8ǥqPonn^<ܩ vF}2MKbgBH@ Or]":",gU2{Y[2LX|t#$!wE]<5䏬!y!kK1XY`|RHl5.`аy 4?iU_3[NSjC0TKT{9a{K헵+ړUæ4sGM>fϮs+ 5Nf5 Ыh0U،U`a4"~HVp6dGoҾbb{dNo mt?@e L0v%TrO# :a؜bj*͔uW$ۨf MRJ_7z G BtO+6|SV`IZ& pWH{IŇNN^nGPV&Q@i/IAj']o-!r*0,ٳM|biE?w7UJY:9O<4$8>nf[H@.܉ @38?߆l( bXF}ѝbY1^)uQɷd/ܦ3`jc(s*0 Y? eФv8kdVhQ^-` ԊI0"mKt]:hGLcg<1mU}H?RIRSKNH$d&O\8"B]d٩4"38 |# ݻס-A{|G08]4k(XQR[D!Pu~&-0/7m$8Jذg/쑜~FP1,EB)Am&^!#% E&AD]\07H'f*gez ,ivؑ i<&Y ˽ }XnѸiIw+-FNڥ# |?rj\LO:`\]qWvreŠD|ȼO|K 57iD ef6VY,m)Ieύʱ[sa?CB:YsB%lp3 R0=Pu tf6d_|7h.\2R/n֓#we9cv l=*5?9fg.9[E+srOʂCmw0܌oXTp0T}0_T_4v|Q4w_~#* z&(< ҿ%8Bd4OPwD|h5nazaP&Z~ H61ܖ R͞j+Ur7c=ď.SZ,n>RnNq9#2@FKFBx>j321Q>z TRd:+S>weMdv/էF"Lo/ӨxЬlX,\tq4.QD}y3RgB7rQE?"%ܾI~Gt!s?%M9M1CkR7Y V0!0?W6 .zu.#4UeŀxL: My6>oŶ,MZ!&I)|58&aC{^HUC#k*vkݝ ZhL|;$'@H]' Vq]m"FD>E*j0$dϬtlӂGKEڈP TBnzp@Raw+{jEQܲ=,LԾLSk8OmcŔ50d𽛝iUقֹ4?vdqQF@"8P݊ ~G}qk9{_lTm+]S=9%K}@}/w+"bnM|ҽKΟK͇8O-ABoTwIU9{S5?ee\,T.&%ܧʤ0Z*.EV _6A  !Xq`76leD,[Kwwve(_N]-GȎ`WF;a˄8!5Q2zR-ƛ^:%:b[ F1Ȉf~mۉ!=C[G@Sf4TWZ?-unEkQ>oVp>^ $Zymlq&O#-wB5~M6x Oo @mWFd/!|a6xkFC^!\$:\RA~,k9CS]?׎ ň oҡq }[yf  $N,j!b7؋MV* e m|>hVT9)qZK/BcGOc)& K42 U!݃ph[;%ر# 8ՇU NyIlP1Bצ{'d<jzV{kwW_ҰYnrĵ˩D,if52[ ;Dǐ˂˖3݇%mKN PN:÷zTqu:)eD(K13h7IIMt)jW,/T4s k-U{ų ^q=)Ldb/G2,sJiD;P* BpƴX4ߝHsyB-v-_5Gē?A+>%Ûi*]*s[hޢWLZ̖#W F\\Iܚ9't-ߘM$4>o LxcJq\^)!}DZ҄@0 #$>4'<_0ئжὄ "RBS2q/TB\@Qk Ӿ b\>\\!&~VٶKkvDmPsR?ScUDKR;W7g?M>vMllt뻪 E>Zl #I+,Ck;u8\˥&`$PJBYϱdہ:rp3ޟk,|r kA 볩Cz},(R [_Gf.b凨b"e ̇+_'sbg7B: xOwɑZ!VFTIT!dC|bj]y k\Ѣl %2|9/#[+:B1X&wؑ)_wEt\VpW)3 (>鼩oAF/gRy#v%$/PL!o.#(h`=ޫKUol f9,:[&ZTx 3t>%8k;˪׏4 <#@2Av G Y}fF.onՁmW v m5;r2qS S9vGhhP7)vͰ>T/ eNr y gŌKU@SL%᥻\ՈZ$_ښެ^A%gB'Q'^`Ab ӹ:56M$@Gc=k%w'-ji6+1WݢRG@gtK-c!TU&Z# cGמ7d:g(Y2Ԯri9ﴶݕ Ҟl+tJK$ RP뜱.E.c,XSA}zڋ8 ^fEnceʘvb NXTZsie}704VKEW> DU s :+,˩[V\<= r|6()ס3%EN;'KV3vT.+T2EjEa ctԤLI v#w3"ԨUgdA:uH⤲) 5'ccB14h,ҭ 7;N O B l XIyx+h6)H7\򝝵hWʠUT kMx:qI$/ޔ:d:N?$j1JĊ̈́*v: `xC%t(W7ֵ[j4)x j5ϘQ {1~k0gYl{=n7C]~O!‘K~> ^}qL#m<%'G~5Ų.bb9M#5,٫t>"lY{ҹ%@AC;bV=WaLbKȇ9oJ[NİB%'Ƭb]JtPЉG]Kfg7,b؇1mBƫ^XٻFGWj (WvL9O`' zRI=E_&XHx^Rul.Vq_-!.1j@M=-&_Pފ >AvrizV@d/I̾|w˓ꉲB` -{"E_䰒Xd5ZVǰ?t <}I!G=)eכxp(؄QDDL>KEYj?!)uھ6Mm><am{Y^" 6nDW2.!ܽG8If&cGS?ԌfcvXxePtjZ5IO \ je{IƯ{/^Q%֛k&]|`!&Wח5VbiZ gݏH[L$kxv џR"9/΃@څ'ʝ{44= #DORh4M@h<9(HwMZ m[snW`͉qoAIgqF˻*TdU~5{UnSxq@ijTSQvVރ"3)V"v57DNپtCbT6"%\2=:J'=^a-M,J@0'b&+:iRYSL:3b F06W>1F=X7Q F=Nr%|qaq?ǰ]p??#YH8f{n{:0MuPfW Lzb. '#-y楜jLE˖5vu 0̓C*uHmIbi9:YB-/_9c-(1[.۟˄*m7yW*r8پiq0iC65xHH^ 3Rr^|bHlE /K,T#Ȼd6dhS"ͱᧀ&XIc13\xT7w9E:9╒ OqU!ᮈ}Z Ij:Fo`Mҫq$iu4Ch~qu:۾kryyp SB1ЬDqۋHv];._*:sm^%` t4:c|+m=c5eHn X՟oM|c;oLU3ZA!:*07y7:&êůX Q}Djmy"oI5DL91sduC2P3u|)a?/`;&ytjנPvF .Y(cL9>w7N*Է;`X94U9hty;,KSjU(WGu ; jG.+;1mjMX(vB&W\܌}p.6}&&{ӧvx?XzuH*kE#pYCXLk%ShYS&J[ RBV+=|JW6ws˵ae w `1P&]^UO!F!pV4NyL7=Pck^/*QZ< Mpe< GF_LEɉ G1 W$%\Y"W'_t w#R '=oqn/h*^b12<7ơ "GEb+ajZE͘r `uuLq+=ls܄> o\0 }ҝ0ZD,s֯iQ֓z-. ӤOڝknBxWPģ". Dt"bIiO(oThkv]d1\f7eDQxx<=!+^ʔ(Mfzq=WMD7T^y&EjXwExK&TgkzPa|j^_BbM;Kٿ!7٢Bb0]N>f#oC<+{HMm+>7d̳Kg."ϾIY2Ch5-$F98Ϊ9Vv !cjǯ'z hVBb:+E!wAA\ 2l>ȥ܎r_`3aCxL-Œs.M\O6JcA0%pJXRiM4r´!$wTj6cC%]Wr?V6Q*7S9QJ?wT(CWs ΐW+簼B^>G mL[%% IOfP5"QTU(:% SMJ|ZNJQ#JG%df6,^IKO1mm &@¨WmAoVYVi2^ST_׍BL-%' -&Ϊ`Bq Kz-b"/EThNC (NL!!=۬lVURMdrz[ӹӇ^S x-h5gԆ $%6p8Rkl52 XrcT p ]ݺGL7cS?݅V@h5ŗr_M%n)8v1˲mgǎ|4Sqry2ɽ{d<(5%pOWt ˿Z!ߒ[ W3|3IpXQJ߁" ?3ꤧb G*:u=SY峲nZ)ϕ~F Ā,xjKŬ;D<2P > f L?Uz:PF:IIaYB>vz,qbz!,9fxY( bXZ85xOU\SE_}&(-7Ж~J ]iܞrՈx$!n9*la@(<*VF37+>yϪݘIc S`PYDz9p__{Ϩ2ZV&T usKbg<2-]U~?4%'Q𹮀 G8$B:x5ټѠee^Q0}y: Ky'K(*_ۧd#.D]c>aՄ|*dtF?i+Wg=Px̹ux蚄z|p>4I]{z ~&9^OٸV80id;lǑNV5s͹xڀvLɮ\?WrEA);*~01AQ23Ǐ7 1SU}TJ,ػɂzSH' 9iȔFd[f3c=}Qg4:Xy yFkp۽f.I5r7*t˙ RGYe^֊y佦ғ;6&䮥ղAz*d6yR_Slt^č>v V.3x0pqF}U6HUVF$C cq~0Ԓn 2~CϳG++%E-ݷPD(@:$ss~rA!ãd+ZÂtCޅTI̤!Asӎ9'ovV^Gti-8gEsWQt~$^ͮLySD^ߴJp ?BsD}UnlbŷRb`ST4yx}O1h-Vk1ŔM5NTДh`pU[4}"he2"4qވf`ބ5F#K!B_dS< FЁ!&) -H.RbDrSwe5v6hQ t1 iN}V "E*?h ?j()e}W=ߙC*ݘHG eKm4[w>aI?H^iӍ(eB:h˾LV_g/f'8k|GY?y0!iw#_]mjSy6w/#1@%Wl`sJX7;R\=/}7G9*x Uǒ+ )$r$r8 h<)/YHtmXdE8 1n=d}fP)R6.ړ \Jʑ0ϊFoNuL}m{"]]oYuK[~<_=.OR율9Ub.ϛJ7LN%{KZC$|xQT<[fKys2#ȶ22Q3U i}HY+o r9}H:} *Uo(V |fW[̛1 6Cְ~pfS YZP3yD䨒+|-V^!R/HC4uKU6wb5}B{R|%ZN p_0%4+S+6ywTqnj\r*H.>H6 IC6lgtz&f"vAVǙ\6!X4|Ϙ_Oo+e cŮaC^2LA^OcGt̽d}EЭK"'*@1dgAg1MlrFp~Zt ]!~Uy^nn&{lP <͚vu_ߞ%~_=+5%T+O}dߣnGiKn$'gc5BF+a”B hCbNթ"'}RDTTR-U {NYv aL m"#SFRT"}gSQ<0Iy'Z>D UZ?g!~m e˶; _y7woUwΦȪ}F=;c>^t{ TΠSWM&φF,qǗaʓiZDGfY0133o`HfX>L+Cz$9VKZQ$dx!+ɣ>"ǫxXهm@c9cB# (kl_62.u&D ?+-gccojFkL 6rnO|咊0? m{ٝ|/k:ZǤei_%TS#o "G))4i dAC-X}q>ǯ$,48-8WDeD%+:3KL;fZǺ%Q5sZOiarZd;9/Hh*oTճ7 mR-MX f, 1qNw{e3c7 '٤y?0JջPZcfdageg%O# 4RMƴw ׇA@fܱPUVDOOBuw\~59)CPx5EŔ1DIzoPp|Q[*w:?[A ǎrT{Dt"5< ŸCU\%BOQ'Łvn/g/)&Њ mI~15df@nf.R *0$f95IR;'3qE P='R' e)+QC 8E/;s2kVHֶ(P T}&_<ѭix`JtRÔdh4d%2 IBFGE\gp*9M4׋B/V BS!>5f҆8"SYt+$29 9U&YejO=54.-u>t խzHM!1RaRڦ @اnܼ[58$!yb g|RttG'.Z^~w}՘t 'Im*^cqF%>q@jʄ`g՛!&IB$nIdǻ_m1\ZmK'T&HGZ@ZXbߘ  ScffY/段!֦Յf^ZQ/??Ǔ^2M.oVĭ@i!p!2z4Gb= ?';Kpy᳔ c" .5H̾ma!qq`ܪ8cMOI颎0Y3e?HW`>:1y2Id3VQST{=:bNe1Ȝk VABjk%>[c|Bg _%X|ZTY&~ϵISq8@f[׻x@;^ lUCb_W^\6y( q#?'2*Pm,Ȭd^|YEz&lNj""NS@o!u2Ĩߑ+'w w-Ϗ,j(IE,<1՚Z+U5~F~LTQ\czJ͂@nt' Koy!L,uzi#إ5vl0G@X yRQn³a )|/j'n9FWdu'aP}VA]L;T 6 趂R׀EQ ͦ|0棸f9~#ћ`TԱ \ ^GUc($"ͬW=XؽdyBĽs']p^Z CN$it~3=^ ͽG? ü`:_A19W`GAkKAِFx}lT% qqAoyBD9῁lAەxkG_!#>rg]`n>XC MC'BcJ@ڎ>kOBu@g*Ԯ 7Χ_nc|@8V`VJ*݂w)X 3zݩܬiT!EP)R8{eVnIdow]OKF>̄Fb AhqCٯӎW> {s3@Ŵ: d)y"]sj + oFCBA{}0Dv'?#M3^kU~FĵF"X7|FuꜲ@*s@j,b^4)Ũ.?j)?)R<j3ƀ! 3ڐb@lɗ7No/)ژ m?gL!T_ =آ3/6&(.n[^eQP z.)DPXߎ秒o$n5 9ȡ%=Gig-EԆro$ٸd%%(R%1SvB.>wؔs գS"\OBL=)ΐk v.p3#'dEaTxA6Ox8ĮҜXzax| SldxHA$8" ػQT"Ps ?) 2KYawo3r݉O-jJXt)0WX&dgYNeS8_\XMKF3V)|#q9#7sEdvfފ.>u%(0P.!Pz/ mGO82m3Bt(!I9V raLQ>[/tMf$t%/_!eK= u^UӹvG M?{@%ώҝ8?3*$ny?4j=_ͺ )RHҋ &ю;o^|aٓ>JtGn4DXYrXcEEk ŸBS[:BG|YDBCF (?ոآ4w' x/.@0Xq4 '{\NLK޳R<3V= Ub7W.d{}>tjV  y4 mhXZEvc W-xT7ږ*;k1_ S\"|"j4؅IАhpAvՌad`;P$Ef^։;1$.ZLPLK 7߅@|7ƪER*IF-<_jioHo?g,g([,PTb/ )9Oڇ4QӨ 4)X vxATэOq>d,# Fi. D1Ҫ>Z]KYq)Z'S8:m@!=ܩCS:hCpZYb(r*nL;PʶV|vBx~"{P ЩV; ] H9u_s=]mpmYcY/T˦ӸWҺ 5BUƈX5V)i"1?{ #j.PlA(]|dnFT+0)q=WqskcqDqU$079SFNF"]}]n7'޳x>I!A-J)`\X'ob]k$\j1$um^ {03ב4]0@1P-ZQ\ rDw#CGQ4 HZIR>kn[2,JD^$?BK-`ܴSbh<9䱖?So-F9-]T[EhܖZ78T;sn1H z$B/7qAkdžO ?iO'6'dN`'jMOv~M՘g<;NhFl!4ut:}soeOjMA.bSqeCr+>2-Ft%2e#zϪ0l—:LcA9ȱmCI^ߓHJTdx SrhX8" 0WԴJ箟NXdYx~ܤ!3qzAn†1Z'6@9qy?sl5Q[#5OPOܔ il"_#Z#2%G-HV2)P֫2,DB+20H\,\#SC fDrsXD0$ djW[m0,L^ ?dLX6:sz˘cmCcr#c!3--ꋆӸ"A"qxsO~]yoӸt..anh-/QQhɝFR Fq稌wX_TU6e)M.#h|-X44 ')8_z| Yp r^҉ϿunVi@sOy`vv}V栒43 p>N QFa%dø7YiA'%#k*Ͱ& 5\M|ީ1DɌ1uvML~쏷u.+.g5XVHJUvBjDZ nնPniԼ(q,̷ %D4 }cZF-7|;Aa)ioQ.NָˌYgPfR[*47)In(<%i} zzrƓOs<"otLa6ҙ<"މCv{1~Q)}Zoe (M'/ #λ o˞[oqhw]=nGwvt@0Fد_t(y2G▉3ꝥdl~4x.m!˻r t pk~`DNE"wdH?PS-ZDZK!XG N]btt[bsmO^?-)[@%6[d&ҙ2eS) <^7ĆǪN]jqڧm&^nuΘ;-G?m7͑޹_ Blۃ=Q]+N8'o u(x5 >@OOh$y5p'IP)SHtmY -$(8K7t">4OwxHˇޛ|cÅ[_ʈ*1Zw?Nд*bD / ^"eģ}ZnTiNe}2-&鼻lK4`0dq3iymӇCkΨ$k{Q01̺=1UqivU2!iRp)`V漅Ekh8u㿿>!xZgOf!'eQ~ƠlP>,_I9s"^73N/sznhR%LBGܭR?sDd&jzC(_%0(ȡfE8?S;2qEwk1_PP $[ŎD̓&yÓUUj3'=NFo&PȀd7n(Dd4rJO_=G>4qV1v#⌉?甸RCsTX!1lcgh,D(L0:Iwk1V* vሷ^9monNϤJI 3q_ =?HՄ{`]N'ە  ]3:#ae_Y2:ҍ4 j\VC$I&)4goDjif;'e@AruOJ~`#Z7 j_?E33oOse3`V-OK V{K*ԝX$!0G&R P'Dq6{rl)SVDWQmShT|A8~)OIdݝE"!{:i[$g>}?Ms;ЯDѥcnWdxpHdʟ$VLLNMKty\iVSi5 JeH iB5'm?t6X cw#<Ψ$kVG]j:H^i5$'|(Qթ52jr< bklykZ6ܭp\(SѼ9> ɛ3;RY?|ƎnfO ,Lj=esx, y%sH,ej/(%,n]r>J)|.dk&]RS|G)kދ {-Z߳ b0]^ʞ9zE6|We!#!҈P)5Wc-+@ݾjJS[ӇcWZG_~&Bam>Q\Arŗ4:U}/@)X2`WɟWn_4 X 9\Wv5,yua솨$3֣&_rŮx -/gb 7Pأb3WCizhOt>I򂓑gHWƐ^?w[{6Bȍk̮t[Y{kY1HYuH ER`N<-jA4ͥ}$jܭ)}*ZQ 0!?Rq#lrTҹ3:ǐaS"e+EJҌVvM{RJ~MqM@N?I^A"9R֩v|U2R`kѾ{:V9Tjn~9^Q@{ 2֙շ-,8RpMDj[ij%i[ρޅ@#L3l`2L$ &9ׅzͱ0a =qeT\5jHEwE-+!zH!4alVi%g3exTx(d|gZ-v> {Qo}șMbhklTrWSh'ڡ8[-~B̯esuiJr7cJ8_"&qr{w+'I]w2 _7'h wI~R/P?m/d3u pRkL{ys|m[$|Kқ7 8~"xͿ"%8p|)V,^wRnPܜg:!Py,X1 `M7{S8|дWlwc[}oI2eRwHYS j+s'[ u%#IժwoX=/rMF Y@C2R( i%J'hX3WetJ_|9XiF3R9L5!4ṐQ2Ьچ_cL tS :ֺ=rW .jv˫)Z VS /HCq,FZDŽ.W'1m|e0b۩ uȊYf~X'o!i䨴@SaA`!2 zjK Wy0㋟Do V'*fHu-0Zېsb- qx$&J4u=4ٶ[=\SGm7YWQޑ'ֽ`K0>`/>de Vʫnu$[ ˫߬7zZ|nZ7wl#RP+y7R]j֙CmX4DDUuŶM<̒_=uCw3 3df5p 4[ϱkwRH?kx6%_r!V' kQL_IA9lYRq6ᘳڤX7^ ^ьvE4N}QJoS5\[xOT {~5F_4Kn RJ/j\!"OUga=5<]>ɿP Ezv@"Īxa'G,l@ -9 &꧊|RT$S?~0t}Q_Ɇx4&/5 HASwӍ5Y(;P7j\^[tƖiu3Qalە31:8R8T,C m%@*bS? VVSQovq :h $[8C JNˀT -Ч0! $|fP֊/QWi<>;=B>M/@qW|_&zhI+Y daAⷅixR}C+!r &2#"!+ЖIi)xF]bz5ۑ8!HEJE%qLмhv(g y Dv#eq~G%eڵGn}ݼv R u 3a b-`6l xB;њ*Phr(ɲ">'=Xq=y=B) J 3Bw&-ZhOq֎Y;yA7J+R{nے!̦?uI"W1W\(Iv6JR>,Qh;=P5}( Ŏw:Gk}3+ cW m?Q\Oݫ^ HlYqxٴ}W&`o<@m =w`š6cP5e|ջ:!!2^}}zl_֤F}(dvǁzvwE-;5װf#$G<* J-QfeD9_y4Y3FH4u_G9dV [⼬L@w"Dku7F:s/NE'F>u<9c>a9W0_KPfwotKhr7oԞHB aZȽL@4,oP#t"TĤoQÑ_ B7|.[3V{wC=Ѭ{kxGizAE6֕"Rfz/'gW4z殾ѕId;(vZtIIEseǝ6^q[rk/ -/j[oΒ }*S@,sF1 s;f}~eG![`,EtDoE+J Ov'x9+{n+TI7}SIjk_8 1wV/e2 h5xvoNOaq Orp_% yԅta!_{:͛#]s|2Bcuvq$N'etƇsIΛi, do{vw)p-h<dwKy 7@/ZN^3$xLd 4-_ (eo9n.B 5gt Y%3[a:2]]A\f@stB/y99@ L3 o_iĬj*d^ 3s(NuFLDy MA6 5k/:c,[ZsOd^}`'څƠ!(+Džp3OؠH~aa~GcԢ2"$/Buh䆚r@򝍃I0YbǕ`!7WoUܯӐC$Հ^3v?+ɪeu}1=PY:~Ɏbһ:5Of. O@Q|!@Xo$6ۯ VJ3u1q,W8^4t-n ,/:r3 @H4X.)vA?q*]%13P,EPH}ZˆVR2n )+GFBZgyi$-#MQ[qrPCgReDv"pudea\wSa`\V,l_nv>fn~a$G LT9|Sz_h▵j[*ķq@6J?zS,x1;&ٵhRbBشl$hzfh]Y ?TWMI*X&Q"p>hʛoc_=tG;j.{Oo@bUIղzGK=)Fp36]M0R$)l&+cn*4 l+ڰKo }O ەfjN;iAf׾KAH )RyH!}[sh 0 ob{h#V"SɄ ʯ {[IGiZհ:\t1М}݈c.&7uw<,|fmJ=:ҿhpnb˙-xtIq-'7Eb;tF='\5qElpC?-bG=r.587b\!8G,O2bCK6]XXV2vRE<(S)rޮq#a ǣmOo&A"W_sCZB ǍZ+8An0>j .vq@돑@K:sYu#j+\1)3u@XaR udyO+1eOsb4"FB 7c6(aT/*G:n IshWxW`aQ};H|>QcKٵvn"}BRQɋ0 j#5ZkrT@V?E'emp(R\'ǹ;WŗZW [§Ǘi^LB 4͂,-]gx<2=˼]'vG[C8/r1ٟgBBT]Ks° AX+hl@檪WN[vWj Ϻx!+JUk_'0ofT~AK{Aj.P3Sg,Cc@u|PV#Wa*>am*vϽT:'X`9kh/ql4M\a* :]蝠Z-sI5_ Z< eHE󧮘J")ġ )o:Zul¡/Ԋ@^H:̜o7ҜEmk_s\dfH\W,.Qoe@!cA SW՜2*9ȝ0oZ1HތѤ"?$e }w@p.N>)`r< $Eݼ]ˎwAWe2*H6ftܾ^ NR k>A]#<?*7؜Ӟ6/9uT䅰!I[*J)SO=жro" g1 'xM4/jBp{Ń`||'.ބEhghmdlVէVU۠1ϝE5!%ϕV*W]*/0c?C_yH40[+po`^# IЋv3\ԠU=?!0nƷ}fRL&3(𵘚u5C@]%fZ)9㙡N nxUA]> c2{j *zgM};k!p- v\ءfQHc4|!Z5$v0dT ս2  {R& "JF9xM'g!ܻsmb2xF-a1^x׉2aႜƅF}Jt3ǖӪM5)ĻY{I^oS5ԀZ;ɚ 1 -w>]SF }U&'J[&榻~*[7K^ `.`OpsQ%6/yL1[™Ta2rFtGO, >ϻX[H1U #-izӱ 9QJG{Nms_ĥ]~˥,z'7ɬ)qPRK"o">y xn4E\Nw",]h=h!d(|ԃIbx[l\U4̀\!:i^*bx#r? +h/?p5nL7.UD0=6z0\ -/AD+q~MBR`gt`u&b'Ȁ,CbDi˄iQkCYWrOWl):sEvo3cV7.$A ur2g/Mѱ7;z `sq˜یG!,~F)ƿBQPNLUWzˣR[;3N,-"1a;ЌQ7'u$5 dRt k?8bS0LQ9_T1uVp`+Z1j;+z~`FY~?%NF>Lu=+eUtŶ v':|NFRY Ӡ$̱ڈwU\rK.y8|˪o^Gqbx 6Jm6jgiD`=)T%MxbՐ'}ҜH[\v^zS"ǟZaW_̑-Ͽ˅'eC٘JY?Gpz LږѱD8 ~@s:\ꩁl7٬j|#CXï_6YnG fp)b !+qULw%4@`Td$6BTP9k\ {@3w],ꄕ#qO(3:*eo9 +4R1j&mmгm2罆=;,_DqH&Ț ^sN|JTLAS,?"'?UϤ`#,'in`,ͻс=Yj\>%XطۑJ@6oYbHNId]Ds Hg$҂,,.=盝ulyCJ89PQ9zU(37rerjQ7D3݈ ⏁e-kg&pidEs?TF0nG"-E͏shdi +0;O&#[\r# Ìqb|S[t]~;|4;fp=3kIgKA %~HKyu~nKG]/ )aSBL_~cOW>xh'˂n=4O7Y^#5^KnpyFUN;Mk;owzzUMؘrһIf-:6 Y.G1w`8YͶhzJVʉbdf)ن.b pWJ0T˅6+iDZF8O (d^: [0`']g!jWzYE$[KgmBEꃈC7 ˝!جNq;aA2yp4]6ނ~ᯕH@[~ ܜyxcU!lXNZ`HY=!A,:@7#8@.G]a Q@A

ZBCjO8 2 ߂ `DvZȭ%"QQ{#9i~}YL |HѻzS|M8G\T=Ⱦ3&5tϫu[p 6OjQtY9nQy-6CNC /B;A?`9{RH7g{]MlCr|sm3!`kX?e_1e^ɜh崨Y}ܺGO7/.r#_=/B_=t ܖpG_%0 #0W#`qt딖;G-JK u/SzX'du<'v׀] r+<}SY:k`""#u/7ҭ'Aɐ6>bݛ6.ɤj3C#" *uʉu.PaP5]a>^ jmj@zҀ6XVX7&ևn["@M0|3 ˵;AFm6CU;J,y%S2:OA]yӱǗu%!˧v;@uOOײ "L.nws%o:W-* %OEKuٿuR._@s0|oL-%,p܃@|lia '1OH\ WSE; \|/qel>l$B< 8=eP.q]Ƀs=;@KGgcGmRZA &ϗ*0䔨0 )ue ́!o1E# g̓6ub4tg}6O-ԿJ?ԫ;k_މOQ=iEOn{-88 )=K]X|l1>FW\*;r=Dao#m%b\B9D6,4ow_O&t]Sd].SnFIRMbcd &ĕI@*#΍w ދZZ _ t:@HaΓ\ nAAӺ{e5KBgk%1s.huz},;J?nN4^w4~ ܐ=~xO{4Oů2*n8r9SCWl=FwRaʨٌ=u y,i^|UaV "TG ,5:ӌ~UG % 6FbUZv ,/1-_9VΪx 7;P.ljXY9d]/ۘv)ќ*%.Ѷ+ܦ?C`D%DF *ځ H|۾[ΪJ,oZڽ^;#//>\-*H $iqz^ҙ"cv&q13ztmk6W P:AHal:|U72d9"[= h< N-uWcrY ҢporGŜ]eU p13o/3jV+g0TUnt$ h _Sd(;ADP$L̇as'x`ypkW*ބQn1sdS=]P;QxF6 ު,w!9tu38XpќqtKSt AF6}o0fFIǦC{)<\# 4j(CF&~?qCg,! ɹX.= WVIl/D Xz)y {r<溧 W9Qutp#McmO4W*abׁxSw3[eGR-dtф%loi ۋބɹMv]HE^%tNN[ٽ I^?o2A8c`y)/ DEY{bNEz=Me J[$XJd:&6I >̮2|VXei*}rs@io-l45W pX6A!V⋐o`k_ =D t4L9$;d"ī'M"ъ޵% C |l`eBx`s2;FE"qgvF7Yy"+BL0;6K$-U2^يVTւ!Qe&!Aa&Q _$ȊAhh{2l]" 5Aq?Ɩm %p~H-V)lWp8 YIH5VNgT#B?/XiU;e?>`RCΝ0%loy]po439),FUV2uI*Sl6 ܔ{W1L4W tA Vr&-pZ̻￿ݤ=ݐqY^_ JV~D릕r|TԢ?&p 4ҹk(:lcu 0\jkֈ'y}W~ UȲ3H^vd/? Rws "c4')aOf)LL1nlEʒ7m[θn#0!#]ҋ/±+a?66F@g6NP9+d V)-o|"d0$@e`a|,S1dumk<:\ñ_)%f;)6lw>a!Zس|,IJt+&GPP+(C V"r/0g?^?/nxohLa^T(A$00i~z md(;ęC ZM}xn x Ji S.CWsns.>-i J68sJ.mݶCM guV4 w7 #gmO3h hr8`OØ]z_QiaFnLv#:FZ8_fx-aVs)z.cƨ_Խa>l&~wӑ<m۴Fg 87m٘fd'S3t 7LX4a$O@VhJ†U7uR$96%PwM R\Y괫غĭ}c%xeI,EɕA`c)K(jO\7 ηEgqnt76EKSj]vN 5'$0!ӗ- JJAA hIC,^t.S\Ĺo!zƛOb޴s<7ZA9' о?:}(@ Npz iJ/j FO~ZQ;[* j M -|m)cv]-*=&C&f)X;zICY|C:FXkz1k:!/u5y"5e,drJ]zLb>~ru5>[ln HaiQ6n:?}&+t!ѢvIpOB֦Fhp1ADNնf!~HA|_ՒNZƪh%7:ʆU1GzTdT?7@TCɊo~ s22E, ٩/e DLԝ:7ygSG\s{oLhI}L覣L*!LnD'TVmUsBc\M"UL?#@mn!K@ "CBO/Fȿ#4̱6Z*{#^uW"cO7 UiȨCsnjdޏ#󝊷u]ol5N&31eZݣݍMhxy7FR8fe5m-zs`%?L;D '읨|bđKO{/;:?ɳ5]MؕFIK;MU)%W}8>|uNf aV8EHv_ k8 N]$MoR5Kz=1( &|_ZMydt&kONm2UN5U??IqLGOaؔ -eͲZТ=BRLRBv{G(tŅ(bmT* ^FDU qZf@šxK]Y2Crpt WjCK+l}SĒMn]<51C83W3,xΦ7E v?)6/ Fp=b}.[+1Kp 9՗h/Nv@ja3m8 9հiM13^2I7 TA;ؤlctI,ӫJo̫xWg-߃1Bp~{;qN fhe6ʴo fچC6-̗|͌~V,7|9JofoLr|tA-}t_ldԊ*[IL5A}yOVWb,ٕd/l~lG_E԰5JκF<wXy66lo۠\K:~d4~b)7$uNHOn1toฬq"/ 8!.fi 9) nF4pGgnf35 ![9&k=ůp)0arK}.$&a;3I4`&ԟ^iKJ/<%SBS|Y|V,`~)8˩CZVr晥t2O>_Nc,X`Ki$=4np͝Հu|*PA襗hhs  ՂOD-_}~J{4~_lz?Up"!0XyV3К R*˱(icA>| nQ@r[?=pMUhH -v3NBNv rƐCM48'ˑSBMiN!^_1%y I]H;&WMQrAF&WJKE3piaebV#  J#bӠl>[Qvyo]'=9Xq9dA0v xt%H)<1.lk"h9HvQ0L1V pT7N16ْ6)77r\>')v¹  /t3\ ׅ4F8zVc1+t8#;M99;at/D]Jg EnYݣb5P2U.WXS MFt@T &oGXEǒ o\ <3e+\ڨ]̭,&c56ٍFp^Kη߳Ɇ6dTw-hfy=woFr>Fys@ grC [E6$ s* ^3" @~ʣDiy"37nbuM%-T@bGiyݱswvV5xH": >;+W0C.:+2˾M ;H\?vS`^]QNuvw֌!Avɛ.W^>Yf`ꕀRS%y%ui闩qӳñ#"w,~ML|6MȘ 5rAQOδG ye/\;УBEΗT _0YVm5sX. P9npcyGxyę߄j!BA2OZ(X`ΆߟWVN 4Cљ_ ۵8C Ӫ7T6N䇀_ 0Ao{a KƎ$?ٛ]|#6aCӨN4p_0g4޲=wz )k8Iť2YBs*|YjiS+נa 7Q|y͡\ !hN۟ofcZ--Y8F ImkEȯ}N/q;o`Oc'7k>HiKLzn —BiXVv}i.{hw?Ty&*kʘ2~ (7u+.X# 3:)vmbߞMs5u(Ȫ&ۈq-!&: TSeRqP#lȢϖE"p159\;.N<_!_X d2Lj89_ D!bWJf3Veyݛi{cd : xVqTѝo?u8H! j9Y X<3KYlTFL82sڸiu:MC;6@O!<ЊQDQ[}Gd,2Fk^< Gy[.)xFH\|(~~#ZDhu}v+ 5(z&> %/=e~ug y~E$(^X:fϔ;gA"|u}WNFC@m?1$T/Ne#]hPlWo*xh( so4nI,\.? T |Zzf k JtAy"+Pɲ 2e{Of̻tP!B޹fqfiX|R9[n8xX{(~n[yt/ԍ6&\MY"am`)PfHfSGO)MlУM0rp%O3ΰ&fʎ ,^"tc9&cq%)zL{9{˲ݖ˲9`)ZWvzS2ʲ8#Ua`X 0QB;!c>|h$| 9Q1'Tn^s@7r)(l~?V1ٞݲ QRT+B]|f,ChτDhحLd$@ 0^6,_$ bK^avbnANyPɾnη| RQ5YbjXP$5DPVy7p`;V@UXD =zl2LvK_'@!0=ll#d  (H,̜_;M[ ˁ2+"SN>GFҁRKlo,X) a*vE꧛<RX>]ӭwW *֛'mJAnE@H?pU%'ݝ3}#4 ?SYBP#h-LUR׫!9*ಌFy6f(9wE9^b#t#~ЦQs򜶨1+%4@0H;7\-W(iq;AԞ-s<'E~JaTd'tZIW;7I9-/Q/k ^ d*WвR)e^!sLYi$3[kFAH֗YP7o$_#p(zmR-w@Xx$iLnXxd蚒h5C4?)[RIaFDao 竹j a͎+LM! {jya,_^jhNxγxv܀Qh/]wܝ}Y ؤuŔ5a֬*8uk",'\)}!S4Aԅ^Od]ӀOL z`!,Xl9Ε .BfQ!qT*Yթ@{7Hpo0xEKM&}Lpp 94O葶d:LNew$9&e3qJZ9OT;+`0x|7Sd &Lry>oG[81-+b;twWQe+z܈؏f dΎ0n&.SDV˧xSPQ~q":hЫZ DީvG[| ŀe7Su>}K^ א5JmUV Qf@!#+8tdkVk'/MifP:!mb/L MM"&\]m{r#S :C-> b)(e tR&P?^1۲%/aOl)x:#j/6 O nX^6Me^DI7jGL`&::ʒnE{{Z(C5FW^_v.~oA9Iwqh_i }xZTk2G4.[z?u+]͑^ s\ŦBBUeSkOW.v{5@Ӡů&>p#H5AHSNqm^F~;uWl{s a&ECͯDgTwNe2eW/ݑaR_뫷e~Dok-?LO wRD>S 7``Mev\3bDT>wlvYa E?7Zl5ԋ';+IOq姘\ioRszanyLS؁ʉ6J^Z:&4 a:B Z0%̘M((zD4zA 9ߌljsFHޑB\R])!tXRQk8 4!HER5T}?~u o2V@(v&)˅@5lby.o7YبAVcOS(x) /0vz~UbpCV:HRlÂ2O&( }rP)/E0*GF@9h >d|5,ZBf%E7mS2vm"0ivrjAl u>d2i,\ms>U_ט&MlNzBvКMfIy { *vՖ՜EhJw~ZDޢ^S Z.fQBx%u|T .o֪iiO·5(X:[cLnRsf,o!1H3_В2Q8?*n@+ڍ՜ ~K6mٝVi٦å^9\kGZh"۫/7^sYa5~V"MHB44Es:9z z AK,/W) S-MpH3Bݙm{aM$c2E:hv%="7}OWHx&!m27uz6 ڑxt,CQQxJ6PIra=ӇUA*BA"c-fp?@mt $ަq)dUB0bW_`TLu(іHnf0~@ nVkDת2lz-.sxcmK8(Y\ph.~ҼB#O>L4>I׊p0 _ 7iդQY>1IWw4u1DsOSAӭȾaN"dW4ܖ90T\Har^Y"Y$Oa'AI=\:mߨ.8Ga&oPDQx>ZrU^f3R_aJFd JjJ"/:-BlR&:r SM]05IȾ2%9fJ1$Uy^oRsP#3_&j#N@CfVj]1GsQz֮C%Rb/PiPDTj,ɋM%Zsun?G2]S}D._ |Wtb::V`ꅌllԮy"-З$7_=ؠOMZNߝJ$@}k OVJ32HN{#%}܁^M5d/s^AR:$Fl65C? +ءKrǕڇC>FIQ9)SYr4uqͅ%({CrgH-9{9$ iN_A [qr ¦j&o9VSļPk`5}]VX\ÛȦ׋2M«ghjŒtcvn>{r`ݛd=b21)\,[ GwpQ7 ސfJ<[j!NAoECإwVxNTN0n"[bfV>CC!O`qf)9_TC$NϿj 764?hC{@Q*J-`'π~ͩ\gxRsrkؼ+@kGy+AG}v( (i_2b5:+pZ'LmC./ U^F5|P$QGQɏ毻uT|(Po-WjdD\T @# 6X؆aVxB*+슷T2Z\>nJǨ|$iM'24i#6LN6 &z2FJ7IN{[W +,,7ۊB %%mǂ(ebCWUp!?Ylw ѩJJ C~6&),X8kBY`u΀Yyq\4v@7ԗinU_[ZJE N"P3 alF7:YԮ\y'չmUOZ4C8'&f:~՟*X*L5TYs<iցs})*Xt{ gLxƁkZDT#pMR;*iCdq+.OlouqRYTt:΃0ZZ0v?k-G7_Vowz2!,s ˶MDʜjNX|>2З?Fi1o2աnU>/9 ai@i]np@DrWP5vm">ђǥfχK|+pB|μM0PX ƶ=#VPu\@_zӐ_NzZY͡}|wd]J4eܨ7ӭg@cNߒȿlV"Nx]"Ҭö] 3)^ jF6bcZ5Ȼ+%!up$|y 65*UM/P\ Q*1؞q~N諙T_KO8ʘ|(lL9#-5zS!G _Zj`-I ~0㒳f1w?qywg|?oA-Oa̚ܤ[qkh)-6mM6 JInxWo)A9>b U1$Ls*vWW#⇈SyɶjQ\HyVUѰd~Lanʬ \dB⡩Xh$YCL'Y I*sRQlZ2CC_]ǻ O*q0s6S} yQ舻x^)תPE(Dy@Jk05td,CƧaTuwo1(~'&6Y4c)][zͬ~]INI{%|Pmrin$r lr•YB԰#ʝ)`Lr.USQ<%K_ns@%e̘ʶJbָ.{u(цŎ2U-O"k ѹ8(┒$xCi^]2߰*36\T[F;]2Od%PELxO3fDFW_\X~y 5Rr3\XxU#9gyߩRQL3vanAsTN_]rby?s)F/k48m,wBnfrR7LһՉٴfy}AUE͕h4tc_#rgBm~ pQRc0&=N]K07M} Pc'fp@e֖xob0c렮;z f,5C'GU'|5aSAX ҳ  MN /*%,#xɓ{5՛Y+JCv!2?o4hd(J*i4Dy*!ivPt6Ǒ%#R9KPئH/ZUW5&=`ޏm(U2E8Fgaj %+n <: c{yjt*;ްY7Hri0]B&=g~(j\wNI"f؟RpC'="`xFH0M+ L:io`ӿkwz.MנTG,8{I{ ZhcP;8HF'QBx!l1A{Rr9Q H1Ru2HŘu^g-ͯݤc87 L3f^᪏Mb +җ@,+>0|Y#ȁo$-u߽PˆPa&n-_s67zXeC]#<}i PBI$NGTb/s yWԮl=-*坛>|?%EjֻƦ@`3&TTj3H '#d<쇨FȎJif0`bViZvƊE SraOMW:[?)4c+7 IR&n3Mpfܴ>Ss>i`2v'UWɉc^uu'PC<;MG<_E Fӆup eiHW>IBc:[&Ip?k 턍Oc۝k/iSv,3B/Jg]T1NB89}goTf.a.#wK?Bat=578b`*C2AۏNٯ?#<=K{k޹2+.ezpW/hzeN#'2(x]S[]#VbE8djgl ^lڒ> rVv_2}ym %,ޏ"S{SP5է`JU;X_D EdW$p>N>aR_]ZfS4ţw[ůʛ5yI:{k${t—EpQ^% >b*UϷS/4vGfFV9"Q˅`]),MYL.oUs~VR#L*;Q%''>&?n[BopF à *= %e0"3^-1$7'vZ3ªCf)?NX}Q=1wn/D*?-]/7a[-KGe־Xx M"&!<LY#) {2 ыVK̀ӳ;'˼0HN@?$@ 6-7Rލ..TIҽlϱ_R|l(-5=OXoŒQS,EO{iKeYfU=>JO$W,bpN8ߖ\u39i­C,Z˛bCtX%\-41'NxƫECOށmphl Wh%r#tVXF)_7uenF)"T&SLyJ?~{a2N, TلGUm%ft Tlѷ]^a]dkٙ[V܌[] O'ہP{48/rAY&<Vp;Xg-3|yoc؆qk 4D$pcy!qViُ/ACH{w|XLKe p>hkCH*'o@NjQU6Ob߂~ |>NhJ jdSC}i%"ӫWA^ Y9Iқˆ-b;ṛ=?ũ؁,ho H>vE >3ĵt`S38,yNrS78օ A&^V ["lGmQ62Yɽq&bAAH˾K9w d9M.U^F;@4zҧ:>9ݧm|4,] ZhZ h3{fP8(s66 #kC0љ,&xcZ]MNiq=t)ŋ|W÷B#ȓ[Z}e. M)qWH`H*v6ew)D!e>?惎0b Yztl/T9è>M ) xVYKq*+RwҬ=œYuOS \YZ`d10ݫ\e=[ߞzW]cX^rL̐<-jيUI0vX/hlM+kTƳqx^82.7WZ\2aR! |eޓ޳뼲HhR?Zk}7/ ѿE"{Zaqߧ(,$k 0VyDP:n{}huiqt*VQOgg[tFOSG ],!Wٛޏ Twqie :TnufyGܱS:y&Zy^!t`bMR)ӕ ]nԿe3Re;MEԦ_}#E]0~z.{h'۰.#ښT[ +bHl|bN /,};α2De]2ʖ3\kc7QncG-n:pj/(恠]M sۃtߤ!m3Sx ?3*`0pX#mA"_똊*u][ Eq?v HWN˳ȝZg1x:Dsuvo`^$.|o~wࢦulJ̙ZAb?_LU&(ap&dt'钚w3*2 ZL=Ԭ+V eVV`xKv姲6L1I=lqI32l8ߨ$GR&[ˁ~mo)J8׵6yj'v@ w<92dx.=E<ÿayanCrܯH>'.geZO^^sUur@V ,Zf7Ce\$nM[,a;&s wTk9_b"` 2|Y0o.ekBBm#O0![#+RZRÐF[aLSa[,Rdu_{p+5?AG)-p]YAJnqFpq ko=JmvF|Wܠ,$j[M!Z7bLfI"f_*~ˢKs` LmnsίL:fw ޽& #LދG֚chR"(: NN_t\ w$ To0rkHJfl_(<&XYK:RaC&E3VFĀ#Uf\GIkQEX=ebTÃ,eb?HVt&=8B&u>xD"f_R/DCGBK6*\49)iR[@Md-iRRWDOo$i#)j(׼%^#7ĉ6-Quqa4s%㒅5\z43?LdNE; Qæot*tP KrEv$`LYb1Ls%漞im%Dcq2PzL3?f8# }PwWKKRVI^p|:V@%mUE&a:Ubo$ 2\aԕRA D EOK%5J[ i**~˺1+; YBe)lR*E0Gz _ TiͼU2}  S &fF2L4rS痻or+Du x:e (),^E0Bäc̍pP?FjWk產q6t$liSv$D-N  $ 2U+p4/~4K͏P80͵ ZLƃ3yFSߏ:hJEy8jl5*g~$zy/n ljL!*8 y." SM-!i`N zV-u^D6mxLzI65!e[!y2X88^( (Y|DKsFdZQn{A;W#oܕXe.^ȺW ,jTQPqSݙdg%Um.=gmLYh^WRxp3gXe9]:.|QeN: 쐢y9/EQMD=*J>e>h`M+ 3v}hB&UXzu%| ' WK /5f*UH#"#ƒ|baف[k,jr(zۍF*7ig>k[]1 ^D&ؤvInY0ݞbtEkQ4Q%۫k=fލHC p|z$Ca"pbrHiFI.gQ {R6!!P ťQ.2e5{"0$5<Щ¿g 5ٝ͢AjeO]BkWu J|R6h'? t/Zojw1^Uiq/͂LF5 zuym*/Uz2r<,'grT+s`6g 芹..4 +e 06rՓ`;@]z=t5@[`^EG9LTEӔg?5=9|5a}ܠ,BQcxG'ڞB8JoV =`;f;pOaC] '2N+"{w:{B_PsZvLΠ.q}RTY;|Ǜ-H>L"?;R"iкxT>/ O_pR Xﶬ Jwwv;w4 4Tq뤓i`b1&橵mo0$"Ng6\bKu`K鎈87~Ase zCV I9leF̃9:{Vo]sc`=ES ^4[bm% N(ptn⾍Is 7͙NŅJ蕃=*WQ^wy4淎Эk>dUtJxߎA jGMLW@αcUfeC;1E`"*v |44@P.?D]A)a~0&L)?=lxHNH7-ewf !і nn@&_VrNKi#iݓ @Ra ̗n'74Gpc>lR*K˝^5j R^]Z԰3 ~Q-sL3&ŧ{i[oeNòKr7=n~s>1oc}{sr7dw(SF-"}K"Vdn&ڄ7Yl>5.;/sdk` zX=Bv~ ^\i200XQ+Fj fEdʽ ~>o %!؁*w l0u[ygľbbqmSEnM!@`:B<:UβpZ")s3A~$X} t~Ho)‹Rh~{BN2"&:a6o X|;-'wNmC n^Df3*unI)Aav~%#}4 ZqYmyx?Yj5u$b:zIp;H2db_ $;CN"M {d+PxC-s/nѤ-[(\66);mBiy,ƒJ,saڊh駷Ѩ%O c, ȦVOL\:U6bxdQ&%ř[EcgBu 3Ntǫ1X+̥X_K^S6̄Z-ΫL e fʷ/fiLs̤+dж` r6Fq)C<@ zWt1[&ҶE֪V='HC}߸?OTa<[GO9@= XѓS‹>_$Դ _XO]`Ӹ<4gJk10!W9`}ja>}[4J5 TuKaPPXHj?ԧO`{(Kx +OHv%L ڮ1p])hL2@ƒ3t |g3n* Aai<$W7p=Gz N>.~ uEȻ?@eP!YmwJ u 74!x&ȧ5h~?XSR=8 f_`c‰{,<.pR ~H5OZ8DcnP(Cɲ-))AɄmjy/\ Ω$x`JݥpYrr"h[+p[=]Ց=%q[a#M]Y7j̻퍣߼IIT]sHJ70rjYt sHâ=P}@5~4' 1>jycLibsPŇ]% CU[#t;k:+^}TU7QJ G!O cČ`oTnͺwܸ `#ӫt d _fÆn#d6OV,K>O`Su2y,k'Fۮ4ɠ"tEk"j5 q%8hlڇOҝ]f|Ftt:zr;G$BŤ%Xp(g }-%) ,X;x`2g@<#\z3qkk*az5O,rR};,ނ-/@c4TS`:{ Rt:j5+ʣdu30aqb ;W&(WTK97@CS70Yā,Jl.&L}S4ɍK5ΆkJr9^ ޵2"iW!؇ݠ` 6wG[ކ\g`?5 oD=QrBJ0Մey a)UY^ %#YS<]'*Bvjbq ,^Y5ẃ<ݒщGC.ϒGOrsM мkV! r7&8D8HYv+_xm*c] q\[V^mՊfd8W:*=8V\ݛ<PW2 ^5cA1k~Rwۋxo8=a]=&ܵ GZj$?Neo[͔Nm=v0|.ж>#He1p(:?zbnOR X_/g]u  IL#L4FVx |v:g*A&oF7ogX0OLo0l".~Є"XH6=gwLW┎kA"E(s4%Rm c#j;2a%ڂhW|^-b)ַ16q- ?o6:H.\yY[5-4Ovfk,_XZtЋϣ./iހh 81oR::{632 JjV}[_WYC2:~$G]hZJ%g\Q6]i|rO OE\,* bv[p؛z@4RM0~Ưf5WW1`zZ TmW FC9ʫYy HLǸ_>xNhyiINqL)@ JA2M3^H pv +ocRcjISZ0~~^ri9XXpU4S&R)՞5i5o7 HPY*_y6!9cRH Sca)`x]nMj2e]_J;AmpLz5)(遞XJR<)XRWcW\XCx{5+ 2nMWXPEӗE>']U 5'uK GҌUMt0C~M@*'^c*IRU\DL)kwжP0}\)dL \V|yM5u]2JM6NKq rvT4M'PN2_'D ",e⛘D`J.Y8%60;b!R/Â߿uSѽܑAz 1r 2g7z_jkuKpF8Д\ "4L=mLZAzF~CMݢهI:7-S J<+#7`54EƋQZ<;Fipqur?!. L$%㘓x<-N\B890L3jǼPf+=*QBXGD>vŤI$Ջ^2ּ;'ܥӮp6@;yD07^Gu"GlbQ]W;fX+T3*b=RPy˽ı%4a*}~ *$:PIOL2 bƝjE^2h2=H:.$Ѵ(iDaU1hl}q/哟g H;?`hh`F2;t:#߁T0ϋ>h Ts='[JBhR(ih5{ M} 3ۣ&{yGf2d- .8^2ZJCvo?Mj> _ٕ5 pE[SVҮ,#[20`Xgtrغ]J?C j5ِǡ6:ޗ6Ń=޽%%:Wj--îs4;ea}s\A rn% |E\^h.E̳!`g9^SDefq[w:$Wn -lٕ.ꢦ7~th׺'.}^CaM0g]~m VJg pShp[ ᾥV!-X{lp? \sJۣ 挏@WMag= Z)(qv  # f5 ot2qZEbXrEXtk)*@gW+W-]bX|o8jn#GE ' t:"a~sh>mҡ{;8n3]xižG('5S _[E0Ì< +,%&P؉n\9L LR żcgCVݾ1cf*=1E]zWQnn@틜QЅyyJ~ꂚ8-u>ĝ#Xj L|;r=d2Hh$txp2 $(+hj;iN}o~G)"InE:S f4kU:1ڮq?Z`ps}BLU`^e㒨Uס4wGLI;FDc[ݧD'9 GDkB5v# зCr}{SIJJI@ܴsn)xP&z{0!)^e@V.jIґ'+ȃ=X'TD$Jnׁ"bMpI|Hi!\N20c?W}Zg7k.Z jdJc.wйòSUg7ٖ7L3anQ«Ex?/"{g"e?pCHQ[8ߌͨx~[p35=8[ Ŗ2۔xDCzX2>3|{X7ggpx.*D?ʹ Ic;"PS/Ψ fKdQɭ Quw>I9\2PݕW]ѣ=$Wд2_ & tFP8H.oqojY5{9NqI&m-EQ=I !8HhN%g̮!3 :XzPKV+$$< `X˘AJC !V`ž1!qDHi'_/&W#*8E}OwI5j5uheauSw (s?)[ ZfK|([v&7Qq:\N"B`7YR@Wظ aZ8o@fJ[S5T$NA/JkJiU}\"Q.B mhX`oԼqq9DhY}G0+>4$7>~$}\pU#qqe\ԥ:Ӑ:(#ؒbzi67:k} (}HKY0#8-o%ipm8hSGi\2.ߒoO׸w.\㱺cYpkoNky7XNv Zݬ)50qrD,6lWcĎi'M$vd(~~t:@?S+KuO$4L1*v ]觿 2uf@e*l^ b`M؎*+c7YdFZ5WldoƔ5A P [a캤C:o)d`oaxdg!^pq|;-+ C&DK9hGa^EzXSDQU&qp6E]V.]n/0|?G[uR 7Y>Y1=oTOX%/ IP @oGJM %0أ&/ T{j"6Cp#tnHcW^x,\4&Θ6n=/o]=.nED@lZB7;An7_l^wVxk}h+VPjӶ =f+1c0\ҋ8<G;t[}p?WOc[xϻ$_}']5!OCA6ǖuSoD"z얕LOiaںVڶhQN64iaF$Q Js8WBsGe YyهW*l*I` jZc 2I&7 =&683Za & s"Jւr|ݫ\ma r=~{$=e֫| u/b$,k-wDA=K᜵9MS$P?lu.9= W?X9`#ɮ::Gڵ&W}~5Bp62U[GVtTv:վx_b$d#wTk0)av*IP>۬OUzX<\H @ `?A`S47Qãۣn{L FAȦzƒ"hhc9JX$djwδ[N57tP솽(`{e7%C|w":N6$}>CY dˇP{긎)|V+}哲&8 uqN u3at0:UjAk`G0zٰh@yiAjW.oUeZ'1,{#ҙ|1 !^ןrhyRc=')qnB7Cqٟ:uI ;̕l02%P0)A5Y#b LcEY\hd|=rFף`Q\HbgX Fm͡97<KzrM_ZlzRPlBtgjVT!@zɲrc_ZֶLt"IU]_cYqD1W6ZKq'4gK]X;8Rz aZfrN CZw^ ZV;je"LR0̜Z (=_fT;c]fOE9UbAC6@)TW,+vɶ=`)U9XDZ. {UZ}{Jc$YL2R`Δw?;4-+Tx(vE,oȔ_qYϨzVcxuD̅{[ub !%Lta@[{Na$K=4+B=7S6u$ PYą'/Ojl`uwѠ_%2p9G fv6) t _kﮓݸZCōz_E>y< =Ռ1 3ܣa;6Ԑu;&Edڽjg LqW819G+sLT3_aP;?e8l#ʊ!u>m=w!BMx(*Ǚ]U[ W8Y.>Ĉ4X~qMw)`72)(Bp-` ZἭ_V[]O2NC&6oCUʩUq̄q tV%(W,CEޣD!WIrKĢ[9xDxyBҚ˫ !r/w9Ҷ+]!B lzM:g~^NÎSBA3c:C}A BQ>XWIWv*:' Cb๜usEzM UkڱÑY4Է-^Bw}c1w ah ?,E} 뉍!UwEZM\} &;П`َF6ݜ(Z:mNɏ{1IQi,b, lrJ *pJ6,PV\]my47-cx|17ɻzږ~ WI]_BDl{9ߌbt|j +]H%2b -MץݨS`Ŷ+ĨK!`?a=5ݹJҎ^bCm[KŮc6+`Y$Yg}`"+YR~yNt3)4X A5v2VEC(q4BO`Je/K:m w3=J \@NۙE&jCUB}(>Ũ>ݹVI wh ¿Z8TZq>֗ r~ךf6lj;^x dZ|5x-}{Tn#ea r6,ʝ;܆> 00H(bMv7I{Y3܄'*+^]}44Cs<6D b@34qħ.\5`qPah!()Si>sx5epT E~QY447EQ?"xox}+dv@`&&=e1]ܝ@V:||=_a_X!Ҿ?M/N%v 'gpwn%^pladبE/}xH5 @)%#CԮeU+aÆL1L0´ Q3s7,PX 5%W৺'@p:ϒA=lyA], $*qZ_ޤAi<2*F14#J4׳BO?úuF!([NhۻB_[ퟔ.$t~}P JbbO3m g<4ح\~oM2?+v;1á#6ޥ΀hy 9 .R飽 ;fWܐ,z;!Fːmc ҷnֽFiN0#"Fs$UH[ΰǯ:FyYTţUZTB.u\hfQfӄRlol-o6+ɱ+P0!x䆙;;7oQli @OQ< ”<3nlt` ҇ @GjGnsY(jRŁ0z$D߉a @o$e9 $qI"C~ L7HAsXvTnF 8,D|oһG'5\ƹ1Y(qnzw*R(|JRU&Ѹg'XALv(1,hO 1[Z Nj`E£DYyV820/3ō FaF_ST4b^5P{ןTh'Fr+|W0A)Э7/$aVEJ3"hq-Rlg@!C閞OPu z'lnZҵHJ'\p=da_YERLMY'9!*Eu"#6@T%oL],%c݇x0I z'S+lA?G|ȏuɵbd)BB_D"fw1&YXw<#Z`JX6ٚtkĆC$BtXWAf 7.=9񹦂/!#r 5:-]˹m^I@QaBwgu& ilYGgأӨWm+;5ۘ{8zM !~Iΰ'=Z y%mA:ׯv&Gh%L 8>IS!@:ry1葹"if7aKʝt{=>f&(]zFɊxo@W*["X!! m h^mZf4@*O័)0,8Q-uە-4*;)G),!@mKNh!޴e-2KZ!d +yuQ>H23fjj a~nj=?$@|1![qyJ4:煶ua~FZ%0y %W'^1Nfg]OPEE.Bu\!x3 5kdQO}yL'ٿk#tQfȰ\p=z O`fuQ[Ҙ>}]Ms,G2YQu2X~-DAG`y0"nsI |~z2 1S8 Gz`5ӉuiPJx7G(LnKFw`ٸLHh9&zvS&o8-^90Va_@jio35gǃKϤtePZvGlbva 4o@Rb%?՚ȪO rxNĪlZPEǮ8#}qW~MopԻkӍ  S((ÓDpVm-)ǰ)CK);+c!iT* @xis$ \rtF cUA)Sj j^, L(VAx8">K \HƵg጖qDhi_y[5>qiyDsf#7D`iwLS!TaB;`w 5P-ocoAHrhp\d'wA6# Qhј@BwOgud4#J^su\j[ŶC*7ԫjo6-Iӓz*_OGKA/ ?Q{ E1FVrV%,s}v핗E?Z_|DOzR묐eʜ@\[SfmopBdދOn|W]aհD}`o[TM:%>~MUtY E/?K?(Zϝ\յǍ;BfEJ*hHhx5VDs}.vuSw [A4kAd*XaveP.=;|Ԕ )OxA@FX_.(($s-q-HJK hA|C}uSk^Gʂ ,]xʘd<8 Өq+ǫ)ˏKhUqߍQVLӏgm5"V>W؅7Tĸk MW]Nuy'y jR9 Dɗqbƪ_B5"wÈU?=e,8ɭFBR>~;y+nX[hAQQS? v n48ޛ+P -=E(qP $W#y] 5{fZkR{AfN\hbZ񖣯6cPb%wu=NS#ۊ'9'"QzM֦;Zq ØGZ.-lC|n}!E݃f&uօ/h󹇤Fsҋ?cz+M2{àoԷ)~M3x.9Ip/,CݝQzAc[դ'J* kpĔϘU9r\۔M.ӼW#3d1 啇$d4^}uG34Co%:0g_; )I5# OIV3CU B|{1Ӗ*D)F;)xvH-yI9f`r/ҌyL9.Ȁ,Cd4O|G xh *$( cN\ X]\tc 9T%;mv} UycOy cܓyӇWQte$-Af׮czO_*OOW:pLΪ-,wnBowM4_`3ɎC!DX(=_<4_[̌v4U[a>/cD[QNG4-lzn~4iDc"'?!kMQ\Z^FOz{#׫jJjGd/Ӡ+>O婆{ɅR:P|AIf=|P #WlĠ{l )洍NI^ҿ (o8ՒM~ mybj?5Bp~ǼfnlH>5u;N!v3MɅumʥ,B K%Lh~5HoIAw{+CBH덈-`bL߳Geҹmc§+C_?A)xtzPf0bMhFB6O8C Ȅã銃i2X4Cnӷ4~oLW7aF?iOl"[$+ d1!:p5ѥp&;2Q;4*U*փ! @uCELlzj+;,S3?K\`Ya+څ3/?SfGH6eVKaBXC٬5 ZL &lI;c\6m+1,c~)=Yx4˂ /y :HocC1[CiuV()"Bj_oLxx$V'1U^mKbN1S†lߍ°P)@̯vs o,m!jJ9</AsS@Tq\UYno\X-1E|$K@ b&U7 +Jv]gw.}&,ώX$뫼az5]֪|6#\ OA'= ٕJ+]H Y;|4-lZeͩs(Q1Tt-:Qk6-FqQ.|8;vyq|i\\D'92\-}K&*y@֬_w-l8k {ۏ! 7 NZmw=Mx^!'H!GhVj!2m:q vYMuкI eJoQ;7oQVA voا+YK-hVDƕ 2VE"".ε`#Kk~8 Ol_FZBu:<?T>V nެF amYq6VZŎke\W<ݫ U*=)'-#:UX0tp'7}0:o  ҏP ۹?}ZFo<0q}!ǣ:O=9 /M{3ofB7>FF|@Q,&kH͂)ҀWDl%!Wi  99c1j4-2$ݏ @HľƱ[ǙgF;:^n{(uby'r5V0_'KV=DtBB4H_L1;g[}]/{n4af uiouχO2'zh6-O (eiEuvXA҅!)Dk${UNZylI: ϰb/i~QU5>!(:jdkWl~^#>8(>rl'W߅pީ׻ɋr{5 !QVtqs2oi V>G 82g#6ѥ D5oӳ1ěQ-Ŧ0`̼e:;G:/MHR֖H\v(_}i110FxߠZy CFSvSSO@Y}mjpkGн,bZPa m)fO<)u'Ǹ(Ra ]!X#Ŋ{4-#o; {`j:G<`V2#y\^bӫ\zĦ% UU\ gZft Leɛ~%v;Qt6xĐ?KmllS}} 3h٘ly[՟$2pylMxI]y纁ԁ&q X۹2?r5KuvVy_hٚ:e茀9򬋯^KD$ Y7x*܋~ر2Mݭr5št+F("jJ _,*Z-3x~lhC]dJlzO'/R^ǴB{lM&~;HAX.V3 OO Wx_rM]g+k+^!Nj͠8AnO!cF#m J t>vh;8%p@IkdLw 8i>緥 z 4\owzoqÂv|6 Mb4ǚy'inJ m*N phhLbE >ž k9a"PH}94:1G% X5D`\I/ EF}{=4VȲ$Ǒ%uH!)BWƑIOe8[.,#?Lp>MF2[沨aqب_\f4(RR0,26҇h'bl[a; f֡ʍ1:/90nی\iq$?hn=p{f7݅h^r>!>[k LGrbl0c5%SQ?A+=D+㶦僉OZ %RCOX@GQU) *1ly3 (lJs4y2-JΔhr3ϡXC@ncu1ߞ)s%UՒ"?%}-\#8tۨp2nWS%b %C?bqI5ݕKlv?9~ٍCuu2]5{8؞}8J.V) h2=rLkTAwRe Td7ga&ؑp?26+8l_ۼ(H9uZ-u8V מ &7lV #Z4êY2N@8'zh ,xk[rm 0Mn9#>*͘/èqz=6(1†ӤhvZx?UKYpl 2瀿?YvyXBu'Qw#;z{Ob*l][N4CuzfN~S)q` 땠ub~BׇqӢ nNW#vz:t9m( fQ^nO9N({S}DHh3k> i k ٥aNM uF0lٝ 9?ώe6[ᜲo_m;Q#'m/ž% ?B"¢Nuj"-fh"ױx`x đ^:X3F~֠GuxSV_}u '!n%{СPXaF_X[TᱛI4P^fՔ9d)~;~baq?J-b=SO ΂%ы=JC5pD-Ypb(y7AxهqC餬KwMӞLro< 4?o|z8[so䑤ZCl7R7cN{ƎTKk0*jUz2M pv/dsTz F@#r1yW3PIRga~T]H$xNn@fzziYFM0Ow6_WԹP3h'&QsurI,bv?ۀ%y9ul0~O l+ O*j8kS w*✱앲8 #uWBi:=sJq !1PЂEX>{jy2KK$4X҅ϾbV".#:!1TL])ƒmpLijLVt_N.iLmk?Ԁ's@ {I3D.r~t)T;9v5:kٻTټqhejmk\vi r4 $59xԿp{sD3Ir`9JYFx8/%Zc㦛ܬn);UåAHx audͳ1z]zޤ$X&rčVI\cQ~Ϟ]_rS{krD^6jgR;?HpM8K wFXBD"V݁G!d*DV)Po|[Xg5zo9dƸ7v;ZPCI3LV(x !`%nulU3яΏ a~``{W'ο[ Ұzlg;eBD2F<:hp#(nv-xwEb0egH`kfc2#-PinΙ_XRɨ*s\x:u H 6 W2E.ۺv4G RC1D>D/QYY]j !dJZ<%z o& oPPHq`}3FAexөwEX&eavcYEۺX >" /dqg\#x]63L?Rw6FKI Ll~e9C}uU;6kh80( hQ<$rA{аJaĞX#؂P i־Ġsw%֡~Urc|V|g|4^&+~3\žrќ:{ 62Mߊ$u B=w58s%vQ6:)ra sm4M9Fq&@m^^Nj`|nWQE64\;nvZӅG:0hjs03 Nȿ??wDJ(u:=$&zW{7WeJo>8X9c}shlԧSMmһ)!,SbاTѧe)G0u5kSNl^΋}LԌں ƪĘl{b)VoDx[ Lne1jg8ńjQuMU{5iŽF7};$d dCGϯM8~%%|-XJSutHHmmdg~j3Q Hz,UgmWc~5;!GuK>=y>0zrMI$6﯆Up'T_.zn0 bι/\ fj1 Q#94(⨛brsu˽Mtu֥yLБgЁ"IKʮ;HPtxk@  mulc7@UHꜟC%T5s"LNx^ϮڰAo"Of@0q_6nA"DdbWEAW!_Hon8%*=V/xI &@fu]5vhKC`4ڂ ~kxMa#iudĒz[VhIP{RJ*V*E/= f3u#?.<̱$ɴI.ƣ2ҔpgT4R+H$v[ `nA[DP)Gs(j1Ŀ>/XxCo.Lyyn+Xd ͇f?˙JǙ˼O搂zY`B ꬰ-08`Dv~kpMQsj-_/"=_̵pb.sy $َir Q6EDB&&;4W])[h)/6]isv /v,W<۩9d Y$~uLi/J]䚝G8$I Bk.l )j cDG G MНHO;,i*ݔ`e7\7dϰ$(Cv'5ʕAx`M]e vя4qfWG6v{d $ .wU13xF}"BzGȀW"BY!Ǒ.靾<_=.)ٱ(֖kx^!}2dY-ڳ%~~I!=GP!+v/jZ"~/UG&!.P£ǻo=L8|Hlp=Y9,闈*U#)Xz@P[ikΨ^b LTQ,)Om:i%6DރA8'xS#f7AFBΗ@ŽqԮz`ǟƾD}\M̨ Ro"_g8$G"N@7152{uW vzD c[ʮ1P7[Lw 0nmj ?:UT`N̬A){ ȰUmZ}AuO`x*j<7^imM[/2EKOҥh^y,aVZk&HV6*idkDßԍbTs HLo"KVA*ґAOWLGrpjwEaΛH~gNG8?2s|vРM]bcnP-ʕQ.U5! <"۳?WG1FCN:p-+k4Dfb5>4i_jI4|5 8+6FeFP1,^Krj|]nbzd\/R ))@dȗ:^!P,]¢Rq/2iD1w5 <#=592vɋ* X4׃Z!&OpEd=_/fl՛774ڼˤb>KܤH-&z^.?&cNIR!r=^8SL_q7d jSCܥ̺q5#*S-J< / n*l BkE k-lowO AV@!#砡6"qttX ~ +>oMt6Tbak8[̐}Tz[d;?C8CcNAUTCC5mZ;t*L)Dt=mˏQ!n=tS@6{v8oۯd7.[78c(JYV(^,D4N@ v+5:O-TLD: JA$1M hxh~'?k@`]zK΃xX>^W݂ft%ְzCCtI[oڦQ klc?- 1|"I(bE:k,7nu$=(s"WUzHm+Հ_O:qS.jD^V$0 AQ4TxfjZw]3_M\X lAC Jgڼ)\[\"7ƢC> Ei2*PںwhxC5 |8āJaޑM7gTl@J^!|(DLDI KvXo+9x<#pw9h tʈoȝDδ: W-X4b{Ŀ[Nbύl;F2B":ÈZP,x88jFF)6]M3mԁ__k&k:-C i޾ΗXsK 1?UݳMrTbA#DcH@98m2iu*y|-,'\Ck5ۓ(0bE=)Ue xTWԠoL-  YZsGFЗgd=?Ȃ٤CFC3M˔$Cu;?y(@EzJoe6skƄn]H b.s`uŁёdg:5r>L ai/Q=b΍ߺ֏vl"5 -pz,fKMr߼ͻMc,bnvp v%2i*7YLh=hA=w*<)NJt"$ 2̊Q|N#Ug5wdU^A;צ ^ơ?JZ@EMd" 2]:T(ST[v.p4 `?Ond =汴D_TmreJml6XΟl p y'S?³5Ȏ+ohI&[[#fE4$zE$Z }UEp_(/'PGGt۶"Chp ma;-t{dhX)mMlJ7*>u 4 oJ@uG|(3s^Ar fCFuK_P#M Hp"D鹈F" '[G]R1Ke.J _;㄰nձ rV{ЇT|R?z g{v^VUq~DB ao,DϾqnPz1;T*:XL^ ^xv.Hfbj`D>~6.)^怕1kVaN@:XO@mʫ#aI]"uLIvI -{Z6Y[Lm*GefmE3Z, ri-dOm8gL2ȺM粏gZt ?X|`7YdV ;KjuO,Lܙ-M<"W;q\ZE<϶iiWH)'?e0A5xK=vT?o%U td6lH> ;`nnj-h>kF~b15tpz+2 PT[2-mܪ퐁JtBb%(HD m9$ij@)ӤרdNƐh: D䃛xݚ&:jb4A~K#qen%Ȯ&8vVB9GWkD/_4+U*Hk $Evm_EyZ,䩻6Hdp k}1{Wكq'Oj9}]oM?:8OyLݛ0bAMi"p\c"T aqΨZXJhk$_LMmbt+咅qw Ug9dS4VVa$Uݴ`|e/! %bTh[݁+Ij'.I:SX:d3Uu,K8úFNCu`1ؑt*u/8i%SFPڠ6xҽrT+o-Yn"Siv9yg=Xo"x Abom_'m @Le#m)u/֞@ef&"M[h,c5!Esr:g4'ʹBpdxlw0;@A"6 ?8 b 1DFIn.BX&l^ xW [Z3s`;6o+nqPw4~N[W|b--}fS -S!&TXw`WȄ)hW6#(6ǔ QJuo\8Eʰud0ҡoD V< %vۺ1MDtjξ+d趗ѮGFb/V>OE5Ak \ڕv@Ҝx*qzm1b&wgYpal^BG9M/R.X!srFp,a:>3K^wS 8fK~4Yg C3Բ']'3KI\UmHit T9+=-BlN7s!l)q:'7kRlM r >/,1!A l V&_x k$3|){ۆO%:DYGHiDKs| £D*~:ӎ _A^a Sx0]z]hR+JrD"Qԇ E? &LiȽ\Pq|te8 lR3uVhH\ $giKyiD\, XrX:~v~gH!ϨVpd?P{H3Q!)EWUvxڹ0f9RVTQBrG='L\莓 V9]EtiwOT=5 LBJϵ2F˃\CuR6mωԈMmӥg*86 jo}_PN:}0%ǟ/aL+*sVqDE@SFl pX"\ļ[huC-Xi!hE`1>LEߘԑ[U7Dp16i%tybrԲMݰKHO[ɾ h^E?v]f"}ag()fd+LOe2y(]6EAma>˪`WHβ&m?!>ek-8p3D߯["8#eQRR\M-5>W SA!=Rմ*ijqŽ@]bŭC2k& r9ՍlHsxK`]I,ieA\gjaVEu0m4ZS Hbڀ>Zie L#nsӑK!)vFh4nn*|K9L+DЦW_4Y0zYS1ẅj{vGp0~_=Oh]r`?r6U,'l:nG}("H?^7FRLjʮ~%Vs]wګ%)R`(psK4`@*J)G#IYQS^m"vW7}"O\tK s z$AzIX,TkoCn]0OZUz7mtw Kq- ƨ\h`\eOed(LZ9}U';9'%{&y: _3Ds{~OHdIf^F%eROYz%UpZixPfZ*  Dbv+?I PԿ) 62LZ͉x)n=_|мRcVc@IBǷbs:hn}"VUlr%vE & IAk-wհF:4G,Ѧ@8J&8jD(gA%Rr(KË`?\%^x"rx$S Щ\jݍf)rv)+Q dy $`l;| UDMi>R{Շ1]*.dG qasg pc P~JzԚjhJ\jfl.z1E^-4 kjmwR:C,KT:6l&b#V#Y\B]oD(W XfEXa%YGF5{BT[^k7'U2!6?Jų0ѥa0?G[jokݕF+xۜƋ2 QCàmЮ'+9#~(_6ߒC\4_eD4>}ڱrN+rĵ@ր3 *ӥ L[_ױLM?{h!8.;XP1ԣKl"*{% kFW`7b *.{nzdߖKj)72Ӧ15]Z]+?%wa=% Wޢ0%_Sp&w'1e VH%DWўޘS.s,QKIR=-Ң@qmzIҸm~ihP `o.yy/,ȗ?'UP;0ߐ,DVй& WZDH+@]h!uR70Ahέ2Gi368q*CEiͫ6qR%iٷYi2 ![zI(,ot$bzezFd1 2ۺ(ISB䕹y@~}cn(h9q&uAAHw-BgMHS' n~|cZ0FEamtnoTVu{յg0bW|N;QFm}iVd8Į{`V1GP,,[FUiz`##%tw<ȋcg(h/ۇ-eݴJDx vNW+ZK  G/hjAe'k6Ldh4Α% O_P`f{ۊǦY BBB͗oӐ^*q>'oZz+y t I9hLÓ0nء7(Q5 8oP S7zJ`'!QF-d y8e\}w'@Y &Ӟ|욈vȰI[GnZ8"gٕt (GI(}O^hy9Eswn c,I2)3OВ+lpt:KY`^<*w:]6oD]&﵀VQTLSMe*=714d_S-@p+&(V ~OO߂5ok na 댦*o__orC47XTgZJXeU̓EFRV}Y"8V h]bV2 v8ޣ V>NI1Mt´` eHh*Y4?"Ѡ^BPCT:Fmha@&.6O2 !eg^0(o27y5 huR%II:_RIm&O;cF ~wRZ ʯu~0B<ä uD|QNLsUa ˬh`fY^] 0QmVc0e(2Id'^wTJ_Һ[%NX> a5Wku\>cQ/^/՘y\^#[Pv\cxzJlĐ&F{-Ui^ a`$Q_lpMSYD =II _Tı_>-NG ֺ:p>?WC)6H@$䅒,ƈBeCG;@+r ϭVı8`-qHC-h6>-)SU${ ,Cԣwx{pDFf͕mHIRhAY.xT:?ܺő 1ްlL~JIC ԟ GwHzo|*!<`.1k{F)7H8]Y¨K*ԏjOXKg~5"ZJ&"F{{NG6)(|f |8b_^RpUv :呤)fKԧ3Sf= hzIII#+r0Z"rlWy_\ ^~;/1uio'QOvp7v/Pr%@%^ɷǦɔq8r$Ry[^2lfiX'}q<ۋ=lqdήh4YQM'Z|lN oF W[ax3T%{*rL#eW&u}ű  ?Q*7Ҡ~g ^ϾTiGlVX$c]qMxihm lz$YF=BŞ\:nR-Z9ǫg !BIj~ + خcSI9JlٹYDUoacnLOӾ?A#(U,먶sk- teєRQhvYq>0rm[2T?V?u& ;xy=qC']t `*ѼE#I5z_AK%`; UBwJ0=X&㻔Nj!*#Ӎcje,Qâ1R{tx:]!8cѸm޷ŶPt\?tBE)q\5n+HT}0GP-QA'ޢAi٘<]h35'{A_(0gAOxZk`ATÉSiWkL>x},T -_JFmt]o>~lC;吒60@a[2 PAb}Rτp3a&j[!^ |Lx"Weޕ3UBJן|&CK`^3(M],v,ͼx&N/{E;pfGeb^a:.(՗^YZ:4MuƬFyRo պxrx`S t˔'i>U/-SrQ\_(QE@wؕ\#=LT 8Ym'}˪'eHWT=6f ZsX]}poji"O'=376L/!dJӁ-|+PaA$_@2Ԝ:ho=$kY>B5-P5IbyhnR 9ևHrCC) ʾJt:k#P܀pq߶ۦJ%^72M/ǰgugMR$ù.\~4]"<ȳRT!xH"jA>9ĕ4_eU'k[9?B֯a)=Ka>׳?kƐȠ-`>2cCom@h^^ZQ692᛻>.nU񿾱&raD(D/(-DZV^EΝ |1JB[y`ETo$)+Y+lk\@}} ?ܫzrkI;Ʒ;X&C̪d 6'c;^LGwc)=uVI Hn"TZIEe+p1fm5\}9냯 )$3_gCO}|vb ?Yv8y@!56EүL+eɇJ-TŠyEZf1GA/ν.wg /$?4pƬ&6#63x\n[ß)q7#tX}8V)߅OPQTNk5m=B Ε>b>TgՖ^%#qLc;Yܥ@ܸ>>I>`HF@0Ed*HCgM\R oMo{666B/uԳxFb->~ܒ|"ӍN,QQ5W%?{bez5Y CdWŽi[s\6y4XKfm*-jty-dw9ajudŇBl2+H*G.xr7Yc߅:kF J{f/Ez[)w׃_BŘd۔1 Xs| qtI~|~Aܿs3꼏Q"0v/VܐT wPp(4rݪHpDsJHbCj!P))>U7|~խ{@#x׳i~]ߢOٳm$XU-_6^6hSBQ=h<kU?Ϥ9pDF%AI? oLJFTgs#SVWwit)qQū0Mz92JQ6&_a}@d`䝍[`GjWk a9NI61ĊQM^△KX$7 3-~,l cޒ | xN-b*"0HLŌw$6 57/{QB6 7!I3K8U; >*_I0iV!\dH~/kZԯڊy2RuO@JNx7UT{*%7=>جr_vn':ƘsY4vZUpE]6s:+AJ48$~MEk[GUVmqfiv B'Z I[?i[.O+blW3j:M9)<͖ZEy:Z-S*lWwKKZ`,u}HiAˬ(iڵ#)>ѧICD#oVW4c0aB.Bmt-z}?tNhrIt Pe#D]nM0&')mw~̒=NcDrm8}Yo ۀȌyVj7j5/E+LXNs}FJTڿ2 @t3 (2ԟ_rutɮ:^Vڠڿq VSyɡNU1jԲ4,&B}YdCd<&Xp,>zɊR*O/o_ὲx> t^h7IʞqRE]M3L?{yٌ֪~wm(X ?vc[;/fF|uecA PUmwe!BˤKt 껗sBe͚7TENS {zܧWqJgWhӈ"5Br|rl=QëzD\%goݷ&9*iMIvWp= Xۤ(nt}Qӿ6/!S‹9Fw=:StGܒ.*jp۩;sL#Jpd3Q e!]Cj$~wBkGk_Rg[ # OB ]'Xi]ujJBzdxҋ<$ڿLN ՟ (uMw+ׄ#Ȑ~"n%Bv<]kޅD/s1IKQγ8|n??8ܒ(MpA AP3ܲp*ܴVO,墵c&2䟭]#F^SwWš27!vmueQG,d&e/='uQ&SZsF >*,YF<̖qX{6;gyY"(S? F:^~jyH<Ȭ\N,HG)ngrIZ_F9 ;1m\{1;8'6x**,3ܷ& 9.TD֬Ӭ Qαk}(۝+o!>98@B҉W^'C ųg_@Qs|~%2R ِ'W*M W|Gг4ȫybN"o,($R3}Bh- XG#D5rU1W|p%:\-5'l3e Z\&ݿk؛/&>) j@T}Z4mc _H௠+IVO7 Xӧj7UĨn#31:(g#,;ug48@c8(IwP* R`(d`WH˘bd35-:fS jF۾K1%+RZpv BӼg _Bo$2T T &ݚ$K)B :>u:&S$ZX1 (qϨiOVU$p8̭!^ )5\PeX(ɪn=O"{T#?.Cl@ TYg; ɕjzOq#™ ? 1ɳ ܑ"~ b>>wrl!VV"ݴ,bOF DBue{>EK9Tz\n>拰 {4F É0+0T4<%FsY@ئoP}aC`E(+ldz eBED4~^*^]ybcHAճj[f) 2[uUAnmQ( +r6!3 %i=.sCk Ϸn'2p} ݅Us`'f7 z ݊%Y^d %17ӥ#N\ahR°Oʽ`⹙X5cP9A=٨d2贉-#鈱Ç=4js}}9O|ѭƥwA|K;` C;tYDߵH$;U9YK!̅57a'5͢`'OJ弪SDA/1HCRopV;fN>/.IhkS' gUg"frPϮY$e6}g!BlQQfi\\'wC A7)|l&AvEC+Q:jv?)ųȞ#HF/ ӿ+Rܣ)T{dU{ֱ)PtŞCmN^'I[7( ژ &t;yd !g#>#ZYM *T IHڸK:Mx4dlԑ?mH_jW|o.8t1 %LKƱnG&()-|cnZ%wV'?z4DoO5Y LVڳ<XĜyPV8"2cMMMHVg)TXJ?bd`=Sp%pR@eޝG1Nh/7,c?VϏ]=jL )L`'LnڝKV:~s ⏈G)qub 1{0j.Ի 8e=#EE*-L<(Eh1 'K'@$k)S5ÑXkzb6--y#Oxd눨t3(AtrEB١ڄLYvy%ӝϳ Ye):ޞYq s~NYȂ-G 9ӛv.&3n1]B?$\1D| Ui?'{$.14|e?lU:j\$@*?]q0 e"i epҰ:$vOIobȎ5O @@8^8=fu!ݎįVo= ÝEՁU>J???8Jz {:wJ.̒h:TP7| ,Te}{ xJ`?[\XMb ׁubh+;ҳFh~c'$%smaeu:&fEsՕy]Cє ZT_!HKsj[ CC./,Ҷbv1,я4v8ڦ.I1 ,Vsx\-uDbevy Ji#_q,6oKiuEe .A::ͤ(Ypp.hŖ9֮gS*yP,7KDp55Nkhl&d#˟coO*EiڐqaIgګ7L"ܹeA^?"kJW0*3f֣HW^s.BcӋU,5 I%zX96s|/}{Lqd-?T 5ڊml!W[ n0zw"CKۜj^R&JmOӚں>i   +.𡇒_Ns&(ޣ=[p&IԆ$9V=vp7'e~~YDK܃lf>M==$/fkg0w`x9] 4t`F҆pkA6pc 25lՈމrqn qtzT퐎#ܡSP8 E 8u?5 <3[2ty*DՕpǘPg(Y%$g9)/$q]vx:V:Do.ddOF9vBaImN%6;|DxS ~ȣ(x.DKbj;:l$G3zU̗Wٴ8W TP0^?9_F]_4+xoePmKvgQ"+f@Y8;67{{d8X)yPYDpexI ec*G~\P1GUV,7? "sмFU|V1&y]z)t)T?  BNvE( r #1%7jbR}(^%+ϣ A% b,Y.r銖TdnLd}wn944s.0͔ LR4Y02]ࡾۤ3R?VW]A&e%k=c97ZAv9Ɇŷng]py_PE|HK\8dL6љQsoj.9>YgIWxEF hV"uCvpNܼtFI>V/4x~>4O6065ٕ>!64?}ƑlT0B"rHgƥ`O0M"s|ו޷~wj>>BwQBI]bܛQ tץ|Pjpt_ÇMC|$`2VR*S-5TVѮ+>:?Aj8U _؈*`\lW h(7Kf6m_4M@QӲ FƂ;>0@0D)SJQÌu2(.K{v30Ҍ up3~*eI2)(G涽}х269ə\H+("療5*/dPRK7ƁDxlL^2jEkJo\VjuVEXwTm$o]rN[ ;"3ec^+1Du87K2WzVUJ|$uPV1'9E_x,͘fi$CјA67mLK6w9O /;|fBsXϭ{|4z4c;$}2\;{Y5z" 3D5S1\k-8ZN%o[6V![ӫ=(E:MڧРqa4kG?&:Y.i],C3?)0ϐ=[xr8SZ\u|^x'-L&E5%8Ю Op+/L> E#QZt+\-g{TESa%4W9sp5-NёtV+QtUr*3.,K~oBZ*P\SB%mVi03^5 ^~;Δs}9jwnĶ md./PvӉX>}p"?pX.!k*5~/?;YLbA Dԋ->DndӋVmDZoϋ^8 X;ZIiM }|qb fک  \݅&7oY&|"0XɜuUEQ=t;hlfFPCb,'5tQT`pMi?[}RNQ+lЧ*6G0̻kYvt{Xŏqyq$ H~RE1j#_2|bz-}+蠵p0YMZ~*[^j}-ˑIyDqВH*bQ3F␛ Wv]vy%cx142Njq["6a)&11YW}5lϞ&:㚅]T7% ͢jHY?hw^įdl  a@*]Kb`7=w!;U'_7ra~R Ep@:E?+zG0{=8WB){̽g֫}:rOH_#m,<IljxPYN˅pn'Z$ OW9_EdEgͰ^P+*86/MJ3അ6ͯJ+gZC$dS\{ ^A25,]c9iQ>51`.s{LܽeiM@|PXDs贈ޖ]@,q geN"[K^,*.݊Bw; 1fsI%d]Lj2୿2h&,mPݓ(Z#b/3Aضf܀-ibK~ `/+d7yOFv%VγQ '$ Hsa/XFNL%~t;FQٻ?U\xO=y4X_a2u&B] ~%{vmJi.ָ7˹Qȹ- wjV,at%sCbsPf-65ͻu+ {7%{:آdB9jAЃrK׌TEPpXh,Ϲ9}kk+w1hقiѹ-:{H^ho49Ǩq)]J^ F_s,w wP] ,ӷpëڂ#/)iK|*,4yۦ'lZ9ROv{鳊m~Fg⥲*8dLzd4Op,|ٳ+8֤uɼ#~G.gWn M 94XΦ35#D!Js=UBI򎙛߂8HT}pj{mE饛-7f0Ohu,zǂrjzK[jB4'4lJn\mv9e61ڄ ^n,uy9ü{rL)a3`'IU#핔,wGh懷n.P(v̂h#mGEj5Db[:({c--aJrT?~[^fF?6htQn Bxbjro=m"ز 8=EAD2#,i%I_R2V X-1%m1,ㅙo='U–ĭPA}茞6`'NlSʉ>iF+{0Mp(35u /'6/LJ*UY$)vI?3o!ϊTʹR[H3yRDUWg4wi@u.U[^*FfM{#Y1{Md)tHRg_?SogRsIOn+Y!S#L0jFnE#vOr4Mըdx@7hfJ)P;^^2pGiאU 7i۰ oML@YK Otq~͋w?X{7~02HwXrE@D!BP~sī?\P"lK Ke? aC0eʼJe\"ގVP`Kj>cD=׸5S(׻/j1VQhd!fx8rtIL5<EpcW~b F2jp.` q5 & J@ π[drMB neg#ݵ^2\t3"=S}I9ѯhJ8=@8E\dL'3! WuCP69&]NPNk`Ç>_>_0lcծ##Յ "OF B.֑p )bW#NwڄI ͸1G*GR<m6)JytOeUEi)RhYʠ,S$>~Kn0j-tg !'5I~)zpu\Y{ѐ,Fyq7isߩĤPRy![;Mw%! gL~uY`՞q8F) Go+/UP_B3m%F >;fiբ |NuGNhr3+T8]__@ 뒦5aó_Ry΋!(>z0aDkdOT8jr]o֥ ޒJBUR"^iW8@tݬP6$=vP!EY޵I{ .spj>9YaxM 27/9`@`sL Wv@WC[Xƍ+ַ䓰R ij^TA6e.^n@aui{aU CmL=X𴂧;u6s)gkڐ|6行٬ #sw2SR|(rYhC4j O:>>ϙPmXG\E ( a0=(3W^UxO2M_e2% >~+ꝹH\LQ @߷_<^,,cpCD) %yq(\qxY ^yQZײdmѪ)ܮJ[q]5ig~jeyD5PBI뙧t% ހo0/_Hh-՛=:"/ ΁FG &(͊QXo>ڕ/r 7d/?M[t#bFep:Z tL(P !!=x AtoC3Z/=݋7GݳxWzjU3"ˀ;fD'DeOn~A?wqgk?D,qG6u濝VJ"% ,p=7vb+|J[@"wO÷)!ql4#Y(BttN2H#Ků-Z)5Ęa52}]2f0#e`RJvxA#<=Q5 )Z##_EM;w@t!G=A5U4 [1/t[AB&D cY%\ &~^?!{Komk6ubry=&\a?gfw&žۊt="mA S3sm V$HN nތ,sft s'gǧkq ϧ_+">u!#YʌUo@GP:6˱v+d{ # ҭ5U0^-O//v880w`m-feA/?0"`iMn~15`A#a0hryw v<Ӝa+~ĸtaGR |Ss#`zZ$83؄+ٓ(;Y;R1$|F?DnCԇ~|K(ihlt R5l}aWf@fK}4i!^H262.yHGtM/:MzJNڃuMROoU/ /fͨ_'uM? JQ 8FH4r-Q`**BM:cnqy82GҚ&* &A6*B^F.^/(ykO5YŽIP S#CpK]-⫹ wlPh;V[SU_Oc*xNaO߹݋Eui\yK#~Mj/߭\:<N-A?n}L6,|S(Mn DM5vtS+J`|d)Mg#mYJzEjPD"_i3EiIgOccg39eYJa1Îg27f+Fs1[3sK]?z==Qp%q=uFK`즟~#L~wjX9⑋w*T^Ym :҆ldUIZ C5 C_.7hKqwZDBLFG `,D$}k,@r ⵳Pxpzf5yj0UםtBǙ<; 'vM1s,^DJR`0QT,/B 8H'_(".xGIR,Rmui-%yoI;ļ?hL($Ynqdщ +|P zOᬽuEM剒VZ:+` 1꧊cmXeQK_e c 1,irxfr$6I"@K&^&|4P?fi{缷Ljmw!t22]]&5zq ab`SߘB yVk.jbhK-> l*;FYByc3wׇDbMyƉZt9"i yP1IS[K?Ӆ_q-|@ :8.?DT .x^u]&ShS8ݺՠC}pKjQ`?iԿ zdOI*ʯ=L밬"| =U:sm(SrD컱0^ 9ȱ{X7th|j`E\@F񞖑FO΁Ѽ_=jq20iDYJ5YUx 7=9IY`Ҫqm!o@zf*pBxC;sۓ$EFӐU l,|j#;E[:Eq'w1ħ8ea%h<n7/ y`fDFܜ-smCo:ݏ4ڵ6(6պ$~b玙Ml|&Us¨BZqGBՕ'a<]I VGoyFA :o[ ;8<)~vU.2R4$S^vD*Y _"Vc ȻC4]_!%-;*ba/oM|!bt>meՄW0xe]Y@Ԥ&kr=UXeˍY i!˃y s̃Q)R\Ga#2r.h"VQX6bWmEo/vOQ)b:][/lQ'U7PSy}uސK׿;]0Q :2W3l<3Hj:mloxP-r󭠌)᫕_DOE3DZij轼d+$f'(mLnٰlbRIp夛:')$nȣy%WbMk~>]K$;)BoQ !L -[-7`@͗ȼ/S}$!,<?! j.ҢOi\ >l;}9 ﭚ+'gN4lv,@,\ޫE xrB)5$ Z!~/F+_V# $>vIPgEz?!~YH;PtN!S.t?Ka\wyvDH72cj6ڳ,7cm5V&`X I(W)):ܽs,AµׇjML偝/yxh'[avGrgZHC| u?-2AMq;Dp&r|0,)$9˨ (v=OlKC *ÔH78,v}:s=gb뮏'CS~ RcLoK9=^w[{W0x5>ꮳ9RH`&ZW1jڲ(fNRj̈7eJ4ptT$SUq'wF>uӨn? CzSwLIo{hGD? K97ŐX?`TKy$dOq2!@&Lj*9>έy 7 UKuq`-} 'Ġ`1z$/ i|$wIJԀ8ue00[2@؇iOSbD~0K"{b'5*ࣤ zfaV *J6µPʪk2w HQ]v8y8?G꥿^}j (3=$pl/i:o Z]7Uojոg._8CB5tnIח DOX|8&q(5÷ɌN59}$`Y/OҾ"|Q֖w5 JyYCogͳ4)T\Y7kG!R2D_k23$sF0n#.Çvy꒷;D'bq.:g؈RH, UBRtpz^ee2=I$G'DN,Ĉ yAr7'>%5O3Pc [?Q?K067n׋{7 ĦJ˲?U4+xpxQbs4 *%g0$7ů 0XFV:[MX  3+AH2U2XSR|gX6\5rHW+iDnvjZ d?׉j][A M4QE 7Crg4Fa2|䔞^&m<)!FTSCƘGi. Ca!ʢ8J8.W.6GzaJT7dH>FmOi- o_":9V B ݳ+MI?8=2tyu,0#_g{;>0]ςFZJ7 6,A譐 mkmdS+{ '$]d48fLi^ӯ *-@ t|'$T+`,1\fOZS܊iwT^e!{lt|Y(tSzc~` :cwjDwU&zEX)S1!a -A0E?,8 ^롐F.S +#',d2ˈEZyK>{~i-įR ܡKJ +-?3e<6_$rQά+:7 jǚ,-j&7?$7ZP[<@{8ԢQտ v%d0 ,M VʙK7kiϯc%&N7{NOT{f)̭}-_[t+X@2s AT:dߒʊeu /" }(/\+N~P܄z?}=7l/y%C v\hdSV{EE!i!Ǧ8k!b_`#ܡ|m=7?/at{%G} C]%:.s–ΡQ36ԌT l<3@ʬ.5&rB*#RR7.n>zɃgXyp%g07 d=PVg U`AփFQ  ^5l SbQz Fvԩ` -jrS5?f"Cjxgұe]`*9&P$|Y0tkL$ CkۚE~Z iieQFLk6U$P[Y H?pd6u~`7 OA&%z3AWfVB\n BEFbZ$r$YSlAg>O.d~2_R]CR/ǘˌGZw)uu&$mE>da{!A%!PӤ a-7ãfA?cxPp*uّלF&rkE >+X J9et{[ ?4RTZ二F֍C.YMkOg8>}>! 6Ⲷ+ \`yýqsv- Yr(' }Eܮj бd>&IW vgC_pyӿMg9U߈_CUWdӝ,Ώyb, ?azUK&xpSEyDzSg.|]o֝噃mXҧq}>.O: tgG}#Qm*귤N&UTZu$@P)ؾ s#s?8 rAxcH=\]H7r4MV56cUsaMAOFz>송y8[xh[J3Wl=x%|a1_K%{N}c|C $/o P$Є.#m0OI\EVyZDsvr")qviNcF%`0vp>  ׻c &U*O峝mMabC S @'ei[G1:u'TsʣR3sϳpnj mq^8K0)uFL{5S+ߥՙq/߲ED (w׵r !͊ Xl:JS2H){e@|j}׈j2#p˗gkwb1q4ǜe^}-F.xK`I/0$s1"<-FEv/c3 ld61tzcG-73FV VK<(A FS |?Rc향M]n1FK1m߱NHʞZ ޞ,Kpa rfG+KhidȤ.zvdx-\<2Ћsߝ &q $N╽!4g#$/ QC:`CQ Kv@H7oT~cb.i^iΉC ]AIO9U]2;` kwW9XŲL.{jmЋ%4qlXfDӋ-㭄{bu#ݎ0GuסeO`eGgNuo G^"k2Qê]@,ETf/6 SXMALQ Ry$^>8б!si(Ky*pۊ 7UR1T̻8RҺ:X,hOHBgH[1z:H8eFa2+m5-K F+h| 8ˉ3>EXl6kc}~"/5V6E0Ua%VQ)$!Cb䂡'INcXk,p~Poɒf-o۴?o@=yHTT,9aeeP&Bb%a]Ǚ8 ,*+ Y19We~y@nRNQD'w`yqDIhii!vVيlkϐ&YiEN[ P͂_-ףqr/@GxDJO r[x}F`#p ﳰc:qY.i(sJoH|TnzMO]Ӻ׬rN4֌>'1^OlSҒ]*'=wNtʙT:pYPnJuKbSqOݲ[mi8?5%l(d+g'_?ң:LK&EM{V:q|Av(N:\J,e=g4 f}δ3.G(=cv2J#e<*nX^ /Q:Z6 }%'߰Sm4tׄN62t7v`fGY4Nͻ:Yq}J d{/Eg4"pnewIJwB ćIϝ9 7;PX Q.zn!TVO%Hܐ!)ӒW'0Gaа=kzi2D:O(޲ ]d{ xP~vF7dKcAǺ;7peDvʻU}۵Y-o KuκFEjG4(ߤ$JGQI8h4??U!&G$CX9w,ֽm!Thpzc .wPFOu0X PFJ aؖV-Yd0+LRӫ)12gt0ؖŦa( ,ޖ00@@9*I=:窭YghfUM}M8&'uݼ?}?`iAcܮb ׁ?qP'F]1c8BwI#8^LWz@IoH<>g2Zi.eC(44Xe؞  (!]qfCB>BQB^BrZBE[40&D5v>*,r> ,8b̀s@,g^nk&vzew4#ߧC\vp:%+dž Hl2ٖ =x}YmcX¡al7 S4>"z7@auf!qyecpD6n`#Ho7_ ˳ۦa;' GMכ6}-mȵ/e|fǾ!hʛУכZ˞й0d=l߅"޹ӽh/]f.p.yMOC؀% Kv^^6Cث=sGmAibqH=.RsQ"Hg$Ӂh@<~_6y_Է2Y<@x\p "= +&Wz|?C r\L׋9쭾z6_ *3_{y\-6d@3=/Aj7SP׋Ǎx|M琼^> lCJy6W{>JIp3\0RH\k qCY )];atLQ 097*]no4HyK8M-$GZWPȪ8Mm`cL 1Շ3ǷQɠ*w2 4H"<˄"h ,OH>g%氜ޚ{TQno1/Ұ(h'J`Dţ9rPWTPr9LpXQWrݫeiUʼn|P{KbJw4'5 ?M ׽m^bĮm2^Fz2 }/s\mYָ꽔Qr= }Р,GZ_ODgMX\&Te-hjP4̛Shg WO/EPic\Gݻ]"M3DZLߵ$?XM_lѿ30b/sB>a|wb:E;"wpFJ2==!$ b;*+% FʢX)b)|e\DuFոiq^^8ȠZ-rޓ<4[sB iB=;0`Lym[9M[;ByY@ Xi74; n+$W2xјRf/#cS\ft#"+ ABBj:)^sF.V樶saztSP&ʢW^:jn''%GNS5q 07 V4&]Ai5^TDT:pA+mbţuSN"'l{v^a;hN#r$swx\ȁ.iХ]2I#p<|l["oQ tKSgζn42tS>iv .&E?>9cg?oNrnݏS\)k'ď)Oh2VF۹`~4tYpw Ob!;ԡ >Q*b+ꮅvl2IFLz5n(~kAsP4|V+_yteS&fګ^kdzLCx:@w0o=⎳ [xgZ_Vg1w3wImCC 3F[l*aqibeNgI4sQ⛕Ľ$ߟb'DGǜ ];&?9RKy]H(t̼~$drcl֖KLbɊ3UyB-f;tHY\ <OPyI0 b?qPQf]#毦7#{mo7CdG^fh4Ҥro⌟>ߐ \U:~ufvԉ!E0GSER?2u55ypW[o!~Ũ4:NV~/7zRn31[tv#P S·5ȫKw+*Ԡ)WbSsr'^c)ʉ|OE"QȯI@vDpޛ߆U_NLv[?~ӫ]WC_HB<5=LBUThNWOy0 Y1$zYuyQR t*,SHѠf4 A)$Õjc1lz0Qy6=nDyK.=#d2>cni +hN=Q<=a3/Be܋P]?Q44 I*+C%?F 3ϼ}홳Tb)\Ύ,.@ 40B,'B?‚ i&bCC' yHӈ(H8F݆lf2YD@ÄVYW*, FΌT@w:@b977 aT3vRLs:R. ,7H#¨>VcS =M`tO\kkh9Chs ~JHCFi$".#"h=CrWNDP4jo,'B;w0PAQ4 u dA܈a w*~F%&{`UC'LM`D!qE-kˆG'.e3z 9S-&-9 J}(׳oOpaBZR-LPNnSr.=(, +(/m܋^p,pp &O l:[=] Lz8&~TFvVu^,YGv,Y zQO j0QЮqyYCv5 m4uF!axjEEDdm""Φ;9ńQq'"0%+UwE<9m&Nڪ[{pA ĐO@pn !5 |VJ:$U)2)G*kuXbg e0WM1e/g.tv~:zu\OIQu j?:z5_<&.֦z7]6Ϧgd(W3CcVw3iUwL 6~=]/web^{i3,̘WBvro@ruQEL4Pș&l&]alNVb? 1Y./|LՃ،_ޛ 'Ǒ o|Cq/߾#Q'?(;B| WSjDҸ Q|[g\eufZz~Zq:?K393øv禹\͜(dxrD!| F#NV܋գ]̈́MGML&!93Uek$g;gG%'F{4pr12*ߟĠllX2[C w~^x{FN>eeknӝOf?\/cRJLVl{Xs 2.{'n*Ӯqr= 8ۗ# >.D45> knޤW|m*zhb*᭳sz[bnwEռsyk( F)%F $B@wbp egHLwb"Fq bFnةQ"nQ#wygȼ_eqɍn,1j81Y{1+)6 rwOϫv25ʆ9բc*u6KS⿰l@(2Yuy475/~ 7"d~Qe βzq?#M5ݛijXaLȋ%,}pIOb2nT|ѴyʼV}vlyBji&'\PRVث3CeL%oa^Iѧ]  $BG֪ݼ~~񞇅BCadoQ m5&63G>",aZqM4ij.C4S` ykҍ4-!v'yvE-,Qi`׼ r@~=3a4 `IUm4F`,N93K0\\`r, 7s#xzvBȟX:Ô5;噹0%c*Ect#d1pL\c0۰_(2 :BM#!<xwMjθPأaD3v465n3fZ@s'"HsSW&&h07Tbn錩![|7vz lbij'blg\˜yfk+w0{Ooo4ӄb1bER2> e*lYNCy9:MJ/!D\L~\xƨ@uJ?ҩP~Gsk1M=}3 qD&Pp`ũX+ #!ՏqeyR "(ԑf|6]y#UÎptPB%F4\s5Ed5{tD"C`{ή3v)j(gKXd ͋3-D=$F ^/ W1擒J1[Ydg:9c fȍn l-;a  /Fb_ʈ\͎tju n-zٛari ɉІdw pK1x1XαkV1y,isܒHs,1:J_+2pPadQJؘ:2^Hü@BeetA\CEZmWLpř!zm(`1z-Ӝطz/Z1vkڨiZ%D`e0Ii>B@U*R9YL*n5H (M4>ąKӜ4nƇ7[ʺqKC;ԛ9Q7!Lw24#`/¦B\ZQ'` 595\iTƖ+O5"C"4_*cY`M̵L8Z9TU\梦40`Kc~(bͽ2z9~9p&w},ǯd_Y#8Ь| pCyl[z-?{I">f)ĥqL|r/1)sb;Xզw̱lPh494;#5^y.KX9kFH\\jxdr?AH83ƪ?߃1e${͕&E WtFd 2s$BA6r .,_^8?#z]ۍ;Oh}]|)ڞ~) ;4{^ >ESF^.Ɣv y_+/Aɹ*2 9NAFJlEM3*V|, #j7q ǵf'$noK7'G X\y9.4RLo$$jȐ9g,!u"-3wYD3O MPy8wʜAw^՛xSȒve9vZD%; 9<߄V+뽱?^xx>[Fg҅-[DK٢#c}s,=,.a7@ƷՀd [0 wƢqb^oJ7T8 a_4C\}d-[T՛7j E1gC7W2רUӭT?Ϝy׽% Ύ?Ev{beZvRėSY'{IgwGO`„{FI%r7}cy  X-([! ٩p" NjA"DY6﷞„VDgզa =$hx3VW3*SPu,O>w %*(MfX剀S/iaYΈ~{=Euq&SA¿"QO2Z\7a]:%T) !Nbb|,'+@c5UWsZQo]WHXtc _惗gQ^M\!g: g~ga bpYpMBnCye+gqǣu50r%ɯ\j X&s_Ǚ^Ħ:CXSI:ٌhI )0,bT[р msD,9ghVr6( 6%6 L8 W\=# !L<^S^j$!C}R`1,Y@W)ݸp;G1@-Qq4Rnˬt%!gfeFdo)GV :[g cћi{^{dtHY yKk0$ rS8-6hZ]#Ll`p^o @{X i*Ocaiw'.6]opL& 8-KߞgV?Or=Nd$j1%ŒlS"rO_zf;ZfXpfݓwx8b@'DݽL6$k@w/VHn# 8}\,g[gE?n XT59LT;x&@)tY =Vu'+9S6`Q+|=SF> Ba ,Zb>+K\QYyXܑ6G/z@YlĨm.B51M@ff P/3kہN؛{1"IRS>ٮ@5!7}([|mޛ@ Y;Y6[իX#;><ıHATt 36Q d[P|*tqhș`fnv)cDZ)uLN^@ICֈibJ""I:Lm>){fz:ŀ*p 4I,T$Gd1zs?+ uasɓCzrbOwY)N(=N2T;[ PUp2t۷ptt<~>8JbfSCu@F4bW7H# xOU!0q6,w8r܋rn/JCNGWaLكHj"fج߰ U[WK{ޮ&? tX=(X} Ӟm77k޵[heۏ\m4O0Ȋ9y!%'V nF ]ެߢ@fљmޏ$Bo9ѤdDj,OXVVPt㠰^<fo9SʹH38HxtnX:`մF)!k%,)R I9Cm3=H\T% 7ڳ*‘pAQ&8pv-LЂbW<2T¤G8Z a;Dp_J<{ǣovɑ08Ѫ]Z \gh. i%^BdI"&0g$k 0ճ`H6FR%H;zO^[ɭL$1SLse4,v ́" uCF(bXC#G&1gnJxxu4'Y:!Uz춫ЍakmJ|/5+c7zUP-m_\O o^Fd՜si$CLaf8S#;L ;؞:fۅ)Q|y#~,;tc543;j3Jؖh/tYnK2Znlk[U͍ k <{W\Mng#,Ge7n/kDf?`gv(=U[@0+V0&W;uy,fƲXi=3xٻͩkCK'v7 zǭAz^U=W04g:ªv_tbj̾}n̅JwJ}^cwu3]uGCfhz9 ẋ7Qw=s@Ϙ"4;qV^0]_g1'&?1ig(ıs]L.3 B z30;p6Я7 W.yT{>O4h/J(N3Ȁ܃ yܒ*L\ S/!Xp cjɘ%?K/)BG_x7}rSUQ22P#U3(9No,،Lbz1,g  "HcQlT}1[:$#.ņ`7yȎ$q6"pe^UmYjuh8Kijȋah)ĖnO* MabRj#KnPY~!qB:,_:Լ3mO| V~!3d6 ˯q "\=+ѣc/%dI-%aup= Tuh59{W(lJH`e~H9EԿT'4k &(cic'6/t jzc7E>?]}Ɨ7\֛k>L7W[ A0 ֘[K9?>t.L6A+wnSaɡ͑!2e!4n(RyEVڼGwy)(^ayӿt+ A8g7 g zxՖ%oa&1< HxVBAX&qHFj. G\y6$2d֐e$,_ݹ}Τr^a^22!;0Bu{ws92* "&M^j8O$Hd2a;OVK<'1 x %WRE17\Ut1⌡h9} < 1"k2ͯ=1DA`ׂUl8yЂ,O@5L"1$(్gx ,7Zgĝ١ PhN+|E'sll2.XƩ`;Q`ɑȒK(X@v >!\[*;3Xm蹷\4ЫȗCI8jEMPwMԢK9=xir O-kuŕ=i70LՄ]v?̈ȥi|R,úN1X*H/ J,v7:8Y\ (2iP QSڟT @h-=ĵe3A̧ުh>TFa]U}gƯrȥXW8M=Z-t)ϴh DVV'Fx=EǰƊ!blhMT9F֙GCa>5*hY𣭱w gB5= /kЬuY3 Anx6Z؊Z˘zh@F$7/a^NC8{l34X}Ym*F Tj)*@L{\xz0:JCCDܾ9. c[(D HD А8<2>ܳ4܋00MCyDgw}4Ik[D2)PN֯!9cHE-ں!rDϘdUQ`AUG>Ѓ"%fniaJR?CP/ rw(tLDP̠/\Wbğ|(a?nN/{A9hќ%HJee4s1?ѱks3˽y'nJy}1+-I3;eYo,N%Urr(OLSm ;E(]ddy^y!g5c?ĐkX)cirk-vw("V|9a'$w S4\yzh=<S[O~/ BE_ÎWӵ08l]9 &X4X--RrB~yhy^4^#Ns"n|szuYkae[&IL&stγgPR[1&$ŸXk[ABqi87fq<|%z&|.F^X#Ѳp<2 Q[7 slR%X^+}^z:1ܩb$KZ|QQ7K_I!-Vz@i n2ܪܢ3f]Gbq[޾B`[gj5Q_գp5j%W?U&4JjG#2xq (QW.UT(Vr!P:.a뺈3WiW-:hu=Axh2x\r qlES;^2id6v񶭫o]:%Yb TT9SBW w;"lqݻdFl{l  Dj:@u^j0Q"fAQb+T+UJ6hcƈzЮ)7ki2&SyleC÷Y<^4E2-]B$ZѤΣ-v~Jm5K=6FJ:xьW^ZS C%J 0lNlSD~=9D0Gޯ3͜BpDfP,=9DTL ؖ٧A,ڿ̙%!a ZҰdE8B&0ΐ‹h6N~h;ELٍ;"O_u+ МIϙB?G'h\VڐcsuT踟CԠhU7\ kjUe6;\o/䆀],5: 0&Ƅ!vU!bи(NV[ͱrvڛð)"~dG^H꘧qfՓfoNyd9{mf#eWFP k*)Ϛ}F0 $C=@c_q=Aq,8>սV_xhnX&|]N6NaW﫩\˜{NK'trF?=M0ʸf #F>/r{$@PS-JY.bg,/.Vy7v~%ݮwX[8*SF];Pw²ZD*O@ jyL,~T~7tTVT=*Bٸɓq#ȋqWk\3z>9ڲz~7+W:\oL%c2EZU7y,|;XeG p@-,w{ |~w~Yog.v-W/3cq\g(1zk̏{YT*=uT)?{>8`iy+DMpb_8 AըneBQ8eOo=S_?-gL.hM0: 75 o_n &oOlxJ;p%Z =\BeZJQB⃀6236"{|>=PR]Yt=3)ĘƢWeȿQ*LFt+[͝P4|x^_n[*Aq/]vR"Q3dvf IJAGk*݋^)K4:˗{R?oC.]] 5_\aG%-!Y΃GǢZd¶fjq3rkgв(l!\aR/ CM891" 8coܒY²)bPU1&j 㰰nK xTAߵN9,<*ƪ pZo̚}KZhEbUH50j,ᅥH /r}\!jy1*V!uUToE1&͉[\i6o7c!iF+sy2&)>gK,I&j?*jp@IYH^ʻy)6ۼW?oM.o3iB~MVK&ʻ htETtu`B^7ѧd(5U#޽<@)L\:\WQ(S?`k@~ӼQVG‹3*cE^$DXNdJ;*XP!;.8D5Q@% [iG! D:i\7(N| `!Av`G2I% Ë#ECtr#@a(;1!ۊ<<` #2sG՟[Di7cRR!_ġHf2M;a1gn H$V"RUjeQmZ38  HT";Tr4 mc+P%N>KYRK u2 hZ)˛|U扚8!l!w)WH)<f Qi.+>E蕕GF0 :3+fG^Mw3Ɛj#M[B*BtE)LC.#5@h]+GTv%Eb3M[,0'2R{fAR6~C~XE9Am|@4 vwm>%[j~7៉PݦK}כ_?Ka_d^};#EJJfƄfBN+W/G~dV&ċC_s+40!$*!$ }b ~,xēe:mY_g0Fh-E%rZ/(1%%M;NZȝ  [܆A4gꝬ(Č[ gWi (CiNil[={ҍc:ߌ~+an5(#3wFs荹3s`%)2yrrNۯ$ zAC>Q»"Gȃs9n>ywR܎Р[7 \w L dZa".gv;vEMmzk^X7M~x͘‰,_yA\J|I=5M))DPGVi׊cʤ@2cGY(ԟ%&_HPȼY-;bӿXRO#GnPWb` G1#h*qBjVI"g5Y'bsʗrp!d'> 1iW3VC+I5W^ֽ NPp^ Da>:H %=N]PLMw6 Q3I\gMSo*MeܬR $?]9E$Tb_1c >'s?55|Y7ϫD!$')o1q/ܘY}e R8wwP"VP^l_kY_y ]%ۋD%汦yg)L9W=7$S^HBK&8LcEǬ9;8,cjpkEroEo[cpe}Ӓb 5MQxғmʨa*!G3l$ cuNxRr=mv(i^R=rbDԙ5ʃ .I+t)omVS0XjsqbHj[O>Ӹ|2۪^;kbv׀|\Igu=?zަ *6hs1gpQvqVRWp$: ̫AڎlXȴd..$ מMlvK6p;]ڂGhpVY@$mK5n94gI3KuA* r7J}/T7sBg)[}xt,I]Y@Gwp:EJY䊀4*F'> 1 a*߹ʨ 1WLZP}c*jebt˯Ws|zMMB[a.. !nGѣT߼ʂDW$$w]]zchfzɧc}83}#S#sL{xEG$Mq \ '2a{sr,o 1< u n6g5Rk" ma\v<2NViDñ)d6<8muBct ش4NY0^Ys1傎-%,uo2/ǫ`aC'h:NooKR!} U=ؖU_غW{enwÂ7փZ3YR+oHd6mwFt{k?9҇*f͝jleҘ6&u3bP(r5jҶ7^[1/o~˗bFTdUhyXd98as yk<2ycyx c, ^Vmk&^1g,צD+JpQ0Г¡}!(yʼ QI[f/yΰt{ 8Hݖ(3 cZܰ{ oݭݲ0ŸcNt3sqzH yB{#T܎RY_|/q>tl*yGn"u'EE*7ov7)U 6~(|bqD0|?how*׷iK{E\O5mp 1. o(x= ۯ2_^] Zn%J9 VKFtB*2x}i^024X)#CpyACVwgsp NiX> rk "?KKrd[z휿:x4t0_SgwAlE]T.ꦍ>l@b)?Oqa S6Q5z.(JXta&QԦaGhC{X+Pn+ۮڶGJ돖ue ٠P]^U+?( VS^D% .0n4Ӊ}6lG~ /< `d ḷ́d>x9_4A`ճDlc]?~l4u[t4{}Ol4^<%~80O?r7G3Kp:GxC/ʃ?hj- =4>Gv||cYGӟA\!fy>w޷ۀ8T=wj /vy8E^Nk]AZGA(^ǰq8^%KHX4ζMx2Zm\^@faV&}зvԋ`a0f,$'˴))XlZ5Lx}Woj_vw~6 VF}d԰v@N**J78<#}ƨwJl\.8WϱT,l<|9Fлة)Y~sAz>( ea=7TY~)l2mϫ4<[& s9s<']ѤEøRǽ;Od{Fi1wd)~Ud7$H#:ɮUzqu! L75c?ퟄӟ\dHxԟQ;WxyKv`ۋeˋ,5,={)R5?f?vI[bjXS~|Lx-}a~wosv2 v6\7rl8 DdprF2SW6}v(:"Mcx!jS] eK'5/ǎmI[2>i58|z%;C( {&(UލSo{N6h@E_D71:`4>Ngb@T7M>ܘΕPl zi܇/QNq%!MMqD7UVM'y)wocdSiӷa}no/ZG4 z1y~7mE7;7ιlo X&ێ~xVot(70-kMfvdf),\8ˀԔqAO6ߤhvMÏ2,U=?s>TΖpSQ{<\&s4YO"?Dp·д Z!n9c 9 i$4*GTb}oXkqP,8Å?Wg^sR6\!F;/c_8A=5 T`ɞ'XnA3kkovzW{P@+ Zj Zf[h옢0<\jb[с'a[,jmԁ"84*F\O>vp;ժw;Ͻh0p i7E9OW74M'[MG7gjp ? $G/p > &Gh!ֽ{0Ɠgz ?v0]{p6RAYWsΛd

a V9svN~7Ӽ{nGg,xp;¸g3Nlap[7a4>[{W77jzt>w_'v>sQ>^0>WS4KO<ͣO0Z' IY0Om=POg"Tz7MpAR˙'Wg#Ϡ 17>I\M HQUq l(Y#ѧVlR1sU$g7Ö_$s'}Iu Ҝj 7WۧhuuV>ԦB:L6OnކqpFkr>[8t]t/8f으||Z8'2>sY0?Tv\a;'3gĭT>n> `u>Y%0U3Qk0}DxG:(zhTiaGUu|cɭ-ꩼ*DoW""}=bI04ױ8>6:kؑ'-N^7_&z},— q+V.X?qn4΃w{5|>|Sq4.5(UgњViH1tI_Upp /fôeUI"2\}xdqڝ=4Gj==˝5:ZIJOQqZsl;+O}rȂ\vd!F9~^f!=gfgD}~9:M\ɢt xgIrE8@sIUS옢љI_4>oQ!5X:jOӇعIC})i:Iy?~y+Z5Tk.HL4^ NvS;;3YXcbz8SѪיM | flKNM^,O&x蝵ˆpbKGwZA˾vwHtQ- pYnR45%ޅ߄fy2ڴ@|MD8H\ߗ'Xm# m8s/KT_I)ωar:3有5{f޲ٲ7iM-;[ aUR9h$gyf1$ OؿQ 7Kz$gׅsVZ\:=ﱠ=(&l펴lٲ7VٛtͺUF*;J2nbr(kv:Ex{i1,Mci4k 6zHNp)S?U{/I}LϊKfp(V6yH6,x8*l}F M+it,Haq#C5D;3YSDhp.`ǹѓT|z#&NѴ6c\."cr3&R~V&UoEg/7"OT [7MI~Aͧv,ݱ)Q8'uun-iosM6pr5XC̜)/!1{'*9g6'v3m86yTtnW+!/KŵIa`0H[5VԀWҠ_%I{:-CŨH}}ڽ<[gCݥf2LWMv~Gk;A-mG& !}:4E3nAmf"&jIhd{j隁chtűv))G7zۿ l125)Y8T+['_Ouo4 WtnrK$,aJH}v%?SDRz~H`<&iOs!كtf}EGs9 ž0H<ȒYjܝ%o"%c><$%lQ%(~ڗ%OC/k823A䯽03ɶ-|;!?>EB.{gD e6v vI7m]mU"ӯV%"U{ilDu4nT`q" 1gs>l%sh^܊19Ƥ8󄱰 4o;e_<7̃,-lFlđsNSp(D'%CYM{*g`'3 l?ɪ Z}?$`[zmAgMs/+o8FOޣn UȷV*lC;DW P)UobJ>uLQ _yjO ?jڌ luN[0{E)/cQsphvqrL&v7f2_'d ìk):~ ! .{t5̥pO`¡6;,&cJ)|fXn{m X \Y_hϟ5YVגJ`ЮR_'(kя(=n^BhdmS ߥ L=8#x~h0i'>ȏeR0_l.o .s*g7xn r'b3`i@jV!$kk8E@o< JdI(aܯAV!AH_.Qt3? -Q mM W¤rM܋@PØVa A w:ɓ~Y(4U+>b4~| UT6[VY7GkEg[4؅~  QX&яI m{Q(54!Mm_bi4X 6& B<ˢ^[&sSS@)y2הCsEQ/J ה<' ,\b{)J]r7%~/+ye[n#H"4 ʴ)/S[Sx"sկ PE'@'[O YVl\4zTP/6aŪuM?}"$N [<2-Ha?Y:dZpԒ?O S!dOwI;@}y$=e.MR<ȠSG-dg]^YaCu_+l:OvBaT>g̾T.差.#lUS,+ b$9s~ŵ?W~0fv'O%7f_߼4ao;M)ј_kݷ "_7~.P9N^`&`3v{&F?"ufk-w=KH{0˿Q< 65ZHeI3%X~E7 sI.Cyms:-e$07`Aub*>O~X l߮Ƿ~2{?~ڙ#:x8ͧ{["`*]jq2'rh{>}3L-xr-ywo|h1kܧ5j3~^RB'MksOo6lPRx2lR{7i0Y5̃<2?}ݎ气]kfW[kdp7 ܻMߏ,1׃h4y Fk!LoAi`PAI 3GJwͽA>\و0/hby<fzg۸ӎǻĢעЏs*94[k 8^'ДLJ% 9o`꾝X4?=Ԁkϝl/!Ѧv|e[->,5 ^5,A{ۭh۱ficC-~B- ,1}Jg'Vt#hd7v ~  mǵ a5`uð8nze6,*Sè +7lVdWvО1N1? .=(rJ}=0?}emtdw o: ىS@?Xa6ӛf?Xg['7DѪkB|T4Ihx2=ppB=^~Z?Na {|4GY$v)MU2ѧQ Xfx;0zj0}&Ofp~74O8vov~0LDޞa_}jost0y?Sy.BnH:ea}=1*LJI=t=|6n`sn0]Z8+}JUǛѴԇ}-z 7GdOXri?g! -G=~ri | 7S5+)˷w;.%pekafwV jANs3M>Y o6 cXvX+L3fNÓ( D`?iQ%ݓ;'BY>[+d d)*G Ԍ5uo~_t3RL p بG*쩶z秙)_` ˥K.5yaPgB.c3v1HĺJ<0I.t,WίQW2 wAʅqBKӫ?=KHfJYA||&f\ͫ$fP.F{h2e6W<8Nr`,HB!w{l,~?M' Hȱ9ΞANd"U̔D|-% j]xlr}R^OHۧ`2\ΎURB"/1't0䗄8cɉ`-cc+g~ &{z- =pDA57ԓskHiTzk"SMtZ9fXd(\5]HBXb'Ph:EF_Nq>9&˟1JhNK1 .G\pF/Z Kt/}`R-T3mCEmUEb3tvqhZD*xB&?ӷz({i%` v4Y7*8$L@ L/i'4mgMzl:kP@L̒k0v`;YY$ ˂\P{rCxu*j]"@^DQx(=d(T0, .,ܹ`@G#in,)$u()!u E 4lD 5-op-e' $ޒ0 NhsE$N߻b6'LZ!!n&i RL`e@ 滋|s,*Iij%>3%/4qe94 Qiʀр4}UC,Ν`vw=Y.Xq@T4LHۧl|E}&3N%0JЈRtD =2ڗ=\Rq5`EQtav-g@ϟDvU:226(!àUS^Mg b4ӺFaPፇ(L\.g(Fa!b DzsGuΎEi|Yl]X)AuBi@Ң;,ttXq%N W\]҂Ţ|/A`A$("Xt[xR咼PN71jdtt(xQV[;r',7{c|>E4ڱB^IxnC(9M@LYS|tpWQ;05IYJ^pL@"jͲTe9Uf2~-Peuxpr:6xA<3=0}%IvJRdo>kJ#)~$ƒ #H )OPN8kgQzѩjITAoZUj5sf`sE3l<+eD@p74M/vn$xI>1>8H0#}{( RNɈ)2fW5ooԤ]=r,Va .D(W?10E(,kyB,TƸ^ݠdZ'6ޓ᱕_%-ܕpBbe;]Z 4a{ņ,(Z>M-+E"2 0GÌoA xQ'R` Łyl*n5qFg[Wv)YwIb- 6 v$J^=eZF8o"EF˓Fs Huϒ$$xxYB*^DQ, ]jdp )ucBku'a~LPj0KS->mc?=~}:f*=:"v| ;uϲ^q U#[T 2y S[Ta*>?{x_[iKD$ᶒ~;B1%d6~]@T.c wkAVͱD c(pDţew82IMK>͑˫ U5TߝDm.`l4-xk [njNꋉ /.ȆV@8_յrgށ{.;-r7>c#$k̍32?_RSD1g;_JO&6i3^}GXD:A %e Lُii)2I=4hk,ԤuzAV뢧ZqB.H'O߄W9/ >˪^LDr@oPl@$wPu 8#|sm8PEҼ}f.t-. ,c /3G=!4Ei8LJ-Pc d]&zU2/Mr+j[fO!K JH+Vmt.q{W5F1'Oѵ?e\i؊u 2wxV^.&2 x%Sjz DZt'in2Tb]f/;:~ jh> y,1׭X6*#aYѮTKU*%W`s5Uƕ| 0FgPx_S } űE F/$P*@mDnE[{crQYhBTZIY%XmD\GG/$!OD-S Zo$HW7Ћf<"ۤ4dˍJ~\3>5 X_zP)BLVtŢfUnkjG5t%;wR`TiK$aݤO0>arҹI^:3%S'8>e z(廊X'w exU8=pJQBI*PX_/L^= MO`EN$M$iPSxDV(;-?gx+  n T-Ɲb# eh] # @lejBkniKLp /QIQ^yCueY^S Ʊ[54 ߗ I\S_T}Q[ cDGnaQ^wraq;Nætd˚&<39~´I Ḫ#pׅ=*FU =s"0N>e"uFxe9#]j0&Nb}l]M@*k-ږ) "H?=xɌ%??zQаw8]g6o ӕjCr;>JQB;" qfY.u d y:X̸Uy(8F c|U ';S1AM(oS+8zevR#ٱık=<+8kCQS5>e WT 6zS7zf>ߢuA Tx(Ј 4"]{cjjJh dNBIjAx"x_z1e5fOA jZMOTX?uhZOY2qp+_lU;Ef7֍ijZ [m]]؊%Mce9X g}.u|v80i[Z4 G}PwHv=n3DT'*Mܙgk;I[#\F.ttvȏz>ጿÕ!0Guboq[KO]a1]* ~ĵn#J8%m[٦Nډ-N*]Qq-.gwoh; =A"#*SuL  q}|4BwHw5!a|.jDmIR\%GoZ=*eS ;hR+ p ( foܿfMvg3Ȭ6 a kJŸ*䠴FN"EYi)NR:vˁ93.½U$F*=0zlTXU e\qjWv%UN*a*R8 ugPʲZ6~-U,,jK.,}EBj\`Er*64g:9O6 + H2&usfY ewGhQY>rtJ <{g%J6H,kF=qD-X)T/EYFSSji%X!rw&Db 9*׃x-4 2cHMp<&J6IwUW`0# nc4a#PS)OCOH]"? @KQ iklJtwU1[tFdyܞjNFU6}brYT_^B:fS.U&`rwFU~(L[P'C T+0[w ̐wn5{vp9Vk*܂Xec `K#sr<94^<[y'όP-dC(IJ(z')&/hB$8 &yM.9aV2=GV56sQk]?ѣrʞ4].|RkOy jGTctaD4*HEGWdC! nsz668A)>k yLNF+'8O𗝞?uϻ.WI]Hmah_V( k34Ѭ.hn+ShiKzK޷ ᦻ.Ӈ;R.)8"MPׄ`-[95]Y~Iu6+K-l?4KvXڹj]x?Hija4{{` nK gQ0H2$rQ8g,b 9g7RJYIQׂ*^$S04;8tB8,p($RF&H# کq +]S4R_Jm YfKu\}V#y&mTv BeW]SO~H=+%WG+U?®r+bgrn nl7£cUIخ!nTrN;0qӡUdY7Yy0}^ֱo_ ls0\ڪo \2>=L0>yX: $ɧjvz~rɩ2 }-7e B@@_>*Ugg+$>`/VjB-K^5=z=k[#=vHx&-n.p>ݥa[ebI¬p>\lv_TP_aZOp]méfԱ/+3$nvpC TRa?F~ΏȝRJ=ww}ws<%3͆guuNmh6g:ƛn=8>.UM#VƫaK:#46q4Y9Dۊ^b- ~m`j:E9t׀RerE Xl /Nf' |As F(>oH\[ƝS ɧk.U%wnvO4DYX*/y{i K@0tyYV/i ReK 2dUV8{U FȻHJ(ꎁFM gHFbjX8;26eP VJ3)nRƷ!F< j4 8 @_)O:>m2_נAñ`7/4*e L4t;8"S0"u*ڇ;cK~$Rtp]C{v t-6 qڿvkX$)T׺8a^˾r7N<̣_ rJOt F]Mo47LN}qݨ+ ӆRu(Y|b,3qi|,>N3zw"}l7,pL8)U;Nmh_?#Y.;SWq3;mƓ ܍@% o7xFj630"ck{>a؎oʈ2_!aI J -\9Ցl G$hRMfGxQjtHnQJI^0w_aڝuĢJӂskloǮrO@dyxt2B}dd\0 USͪb?'|7%;iV^Nt30m#n\$Mظj:dԆ3HyF7^Mȼ%AHJ~R*2Jz8\5292bܲ@I%Uov̀[aϖ5RגTDɘ);8I1Y`,#[}͉&I ]R"(K<_B¡^*R(d:ܾY"1&EH<^J.E:,ERT%bk!M[ l,>(v˃ٰ05PW4. s F+ҡO:Qdĺհzr;I#:؞8|M,%:-aqd=z҅5٨ #/9i~5?8ʽi;#=uf+OR΀ZMVZx(ɅۺԨĸoAdG<r@Ői Xd&*X3'U2l@$4g٘mvQ!T*=f:M+W7JZh6{^NY)tWI] D|#ޭŢEE:3ihajG~ }ER7U`c#UQ6baok8D)H=iwժkoRlo`]wٔV}et<١XjY{FE .c 3.c-[VTzڽXdZͻpKr!eZ_US8k׻EIBHtDݯ%ۑ2;ۓ7Jpp Wo;goߝ1olnz|'-!R2-F1άSQpLCx/j(K؅Ł*. 1G?#/4y„9$!Bq`>C] tL}KRO#7 ˺GkH~B.&qtpug3coKy{9=YAQGmǢMWy߄qSIhxCO|#sx,2CQϤXåa1ҵl]Bpcbn9jY>>-2hƛ \a̲{1;r8|fC .ukJ:cƿiH}XCl%~Ge1xl`V} Ğg{(Te[2x̷" KrY F)Tݡ׬./H/a,uqic_hQ w{xA9\K qfd-ap$-$/hJAi.d0՘&Btxiݾt%zP)>S4n sAw%nȓ<5$d l&_f\:.2\^CՄyf0^-]3 7j\{޻J T@c2!&!eik]I&Gy"qx| F,SbC r=¡FX̓Kmj`Chu51'CwM'`[JC#QiK9p 3=Z>^ @AU5dMY1;&fWUFTY)]L#J WTO3R%L=pm.J\Jiq(~`<ѯ[׷ &Y5BZ^}p= 3ox2C7l]jVXR|eՉ 6iьx gi% e6<vWZ$ ìc2~M\060iX:̩5juKsNQ \ NK<}(d{^F:3z;T1dU)ۚ،9*1S{/I/tCDL``D85Ʉ\7t7)%¿&,s'%ǵY)5߽ 6#zNn!ς%?vDTJY3D!YWiGaH}VD~A|z*m6i2ů~_RFvn w.mnkDn\j@^ S=OߑlmD&\IGʉc~d3~  FGIXfz}=@ b;4үAU!R άk`V:%Όs~! q~ i@4QkRzs ]]W-\y.שL~q& uZ ?]CkTxΚ*@Wk!CQ[ߺa㵖}#Jk?}Bj:&Fw ZgәZ=0$tz JvD a{6i ~_%$mK୲o]|Hhȝ>Ј,?xmqB?1tSfwE*s8Tr}o@A . h> otc@OY|[vV?rsW̕KÑ흿zƒ4ҴOP0).aZqK@oDx+ZA=`s B烱Y, Y_UT) bR݋ Omך#%ubk]#&,NDsOһb'u Kʕ:(=RӠ=&vE< 6'lǬϥ`mk"SI gXi)d!2@l ;-i8y4͆RӇu"`mfNle˛yvufۤ#]`KgwXNujSs PveIjά`s, ];^ LMV> 岋ʃS_lFQL)q X[-#DÎr*P_fzun*C.sɇF?{{I[u @ʘԥPe "F9C|H^y"H5<5# 2̙{oTS_*@!^ )826b^`]oHUs<^kuXc!d`_M#*rn>_R1:*&]Ex\P'PPM nE>$K1Lz?)k/Jh+"_)a>Ph>"YVI9^1Tkjϻ(*91*廏FR~@88+&q1i8j̫u]3ntCcX+_ɳkML2?;pe]3 ٍN*^")_kA Qpn`wa3]:Ye `>} /9eK|Ӯg^Ma> g /%Ub.*x| &α*},̅ >z?J~ok?2; $;?^anM wRyLRߥ!4 |$^P1 u5(#p12+f6EJ08{`\Ag H; L8^yC5q8@p OW:jjmYTA|)H]>8E?&]ls\ |\AQvs):SJ4$f2JmiHNRR tP*df=D^~E5 {f[?!_*8Y$xx9ժ1GnjJpll8mg|&R.2ppdmQP|vQISP޾iN'r`(72w=ql%کÙ`ȑ&&"֖Oa(fHd 8yf@:g!#nlq=c7ΡJ攈DG}=5z17(nf @! y=#>ݗ:R_պ¨EԭD=Vy9OsBSK%4tX ١I \t^df%W5tX !{ JS׵ W6=RLpq[aEg$­cj;VӱCEpC̕|!x.`UIVR`Հ&g.c֬ҵy<QL~ظP64_X3 iRp`CC]^,h!^ Nc}+2VU_*̼dzlRŽSQ`K>3 x¡ [&#S{3AC mWf|qQ05xP>GyY[OQӓURhT]$v8C|pHl ;?bC/37PɅz&մ,~ƹL'盋f.mLSQM O(S\k˺ː#$JocXLV*w>Mjg`UBRoxK@ 6hߊ gDrx{[H]7i֟w]DycZ.{kflQK̯HɫU!XqO:>x\*)t 7B@zx.x0MdDsC91Itsy--0" !WO/6K:RXiOcRJ(\-MX@H(r,K$a9e'1F /dsVM]Rt9rn eZ1;!ĵ< ,X*~'DJ"?'{hx4%yIcV4ȑ*/ݭ7&&~:S,6Jx- 'XgGBi$6VH { W^& Q&XcR ʬSHg TNEH&-j_n?HXU`y]IDH)<|Nf4L5%Okp*Rj[x)?>Ssb]eY)m,BlO]yO+#h$—ϞHd i]29Tʦ2;潖ZNEkFf &9~%D:dpGM]I7GcD- :=Tdh TX>W?|,Ȼ ]O˧<9:xگQ9#BoD_NEŨHSPՐ;Q 5\%!j6 LjV3yTI$IOCrF0jZ2%W1wT |bR'ypYhRaPKQw̫R")*}o=%P|mBWRs3+Nȟ('Es{ 갯GǎP>4jCz_^ይԥ*s Eix7F³}{"$]032X/% Hz'oV*FUA_IQN"`$,#Md/V!Ml^'O'>װs3bfܴ=uVkIӋ)&m5TvRlTls%(d2^5Gzzdo4rʤ:̀jTUoe&*5MqZhʋyRrXӃžp/۸PJI#8﵈]YA<8Tb~ܟ/JO9"ؗ͞Ѥdld¿"j+ ݢo$䙷.aCVQ5ߛY^j8VHVrqD 91kPQRC)|P~/ޑLpu5x8Li $ d7Q]k@uJ)6b0Bunz^OG X{%LioG)SS_C@A&D3YBDD:oTYH^ Ψ>ёa6^0)<1O A M;SV\~W"_f:(EZ5╨=kݡʖA&q} P3ۧHb E; q_4~d2Aٞ^roքR.zWȃJd"L?Ldblӭ֎zĜfX%ߍJQ.ZSH`d$}K'"Zx!7߾sJ)͌#ᶪT_~̃spG(Fsyo)P7s؁?䷥\9?I>LH}|ox VxU >3gvQL[ RKW%TV+d2 c> ~S:Y8LWQ^J,:fyõy u14I%[lJ5oofnq[=1=cE)4)qo** ͪߡ;b0?ɟ' HK{[\[@"+W1rk2n_l{ldƐ}XCv5 \Gw|;/ MڤKE_P|_#H)FR`gaZ֒o#^6)"Ɣ~|IaP\t_ن~L+j@^ՑV7`#HO2xTnwn3]fҭ&:7u^b]>~)]r4 )F$`;qHӚgEi1g?FegyRHW<!H_ן?Elfo’8n"DI'\V_8h>ȞHI.i2]d#iZ:gL-4zNhla\RwG=/Wb$()v:UBSQfU}"Q4ux@!e:ʼnfܹsK?8,vj)w24)|2Dt$\R'5$@'љgg5R&kjdLEKESYi6_t9i/Ĕta"bp>I }a)_`ˠJcrK3TQ7H7Hhr)Y"xZXnϘYg:Ԧήc%\&~q^:71Z?}1O h̑7b"#XWhp[k.yLM_l#HEi]_+d]96 _9Moޝ`]*֛o甅ބ}Qx.n|Qha"WI 5Mo$gbݨ- f/GS-2V Wj3҆Em>w~&e:qdѮ2 m+)Xgj9% .\L,Xm+eMIL,/gow/*{rUeOjj@nEQfnS:04Q)iGE՜v .Աa5rk"~gIf7٫S<:M gFzR۲b3aH.0ʘTƶHLZ$0Rk 1-GiiМ mY, گMDƂKQ&ā H;_4# 0DP׹$@eй"]{0r 1T*]UԀJF TC1FGFAp*UTdLrHT"Uশ;^s(ЮR_vM2%>/;Cg&ItT=[ QbNm);o5f,%\._Y6 yf=4d &42+hphc1=t*6 MtO+|<,=$>6TR:ee*"=eJ-8 r2O1dz |뿝S}ZJ _>'$9oĬƇV &ؘž*V,N5;nLݱm],bޢv,'pʐTqW"BD|k¿ IR\=ڷ^8?%ƱTdT5y?KUN7h@nɗIKlNgFYmެ6+ m6ɸ68({)ݭw]zQ57 , 4@MOzb7A%Id:5<̛cMw Tե 0O<.(@]o/oPdv߲(խxtP3ĆgL&OtI ""ڶ9RA5EK~W[c>-I4}5L X,OY- y#ZЧ X40:W< Sip9t[vd>Yq~x?KP=t5 ]?~ׁVŤCZlO} Ԥ?yTP,nVZ`62 kz#S ݯM2r pIT~o[]ff7{*'ttG/|G>w-^ PE.qa'4Y_r+[b;4oD\o6^RpzՕxR?#depќ&Jc$޽Mk7Zq<> V"ˆT ~L^<egjEb t;]XW7)CEiTh&vuÛC:oG& /cCdd+: REcK֯aG{ۇ ,GRW,Z&L񩅌 5e5[:ΞMפto?G]KI?ȹD6U43ČUeWx_Fϩ,g4:t~. !60DnQћ1LR_>A\LibcĈbu9}cfZ-w6=~pgL<闭TTsq!J(?ΐm; ěB^hզqA+ؖ0v|kyj?^AN>1V Sߡicn]#Y$7AX07t-:km`쁡|K" 0W 墅ZfIeoC1\} "=(ٲK3t}tW> Vy7 lOo;C:pȬ8}໭c/[nc{ #C,qtՂuL厡 E?/Y#M5Ms2X EbiGҰ>:bQFB3;Ⲧ|#A3@ݧg݀KK*B`un#j) j&A˭b+ xp+zO Z$.;yde@(P-`,:*k5{;']g*y༁ Z@JfS&?e~zv>?֥FX̘Ndb2-/LFfD>%U*:-NEt:!sT[TO2@},7g##B%Ziw0S|yפ ܥ?֤;߇%},tC#`Ojx"I4oLR r5A#tRL+x+}IWRE $˩jjc6ޏk hqyZB7Z*_>qP29:A~.N'41ydzU_/B9AdT V,Z-CLMg-`S.W?Cq_u B3/20"z3NVm|}W&Kih?骉;B8 M:oh 4 2E XM)>N#y#T1=ü~5PЧަS{?b/ʸuDoU.sZê$ nHbE}'{!템CF17qChuq%>gTIeڎ1rs5^RC&G>0y} ֟ AU)%Kn!4gնqPp3Ֆ+G-JJ3JEg,&V~?&+!m;M*8sg<vLz胯0oO/kt8&j़ 4,#3t 0 U>hiX?eMǾSj6ϻ}d"*玚7H3r\qL[6lk=[w SFZ {}%gYw+KPߌ}kU컱7*"Md(hO 䝕 t7Veq9Ʋܓ+1*oؖ!g{V%Xr*|EL6Bo>?|We@B4ĸw[9C@Azr#rK)PQ@%?x/]kDOyȳ/izvS2[[*QD-\j)*x㻌+"V;/r)I8ZaCM ~j[x\CJIL/;h'PSZZ]k eAӫLM"y!d kf b'{[;CX~esX|UĘu֠c=~;> V{1_OcPNtz6L멟W^_!"N/քW2^ IRj7W_3ıۛilH QyZpٕ#PohXlJAJ;,dUv@ꝣEL-_'a!lv{[npe1rh)nYBd̡킺0T_oJCI+T`dyq w"1›W2.y2')4Fud7+? 7t&n}J `8IÃ(ФO}D_P7c|&`.JCh?iBlQWL2zJZu}X+OHnh wB!MP3^PW 8_n=SԦ!^FZm̮MAe_8[2Ns'<*-=OJ,%aJh{5 P9~-aFdǘ?ә%)mK sU.1@ NTmAꮩDΜ2 }̺Q&)`t/>KUսzz;`}^F(G۵r:}G1sT ڷ.PH\`Fʐ f0=V;q="w;ixHc͛> Âc|1z BgD OSXX*8%Hw1@W'*EH",;?Th􇟣AeXyʘ9}6(z‹BbYn]YM%iYTaP))}([3D]孟Szet~ϱbѳ+su:m/o\`5Ah{Z0cI漷c=NlM~%v%EdcV=47|*#ܳ_Bwm)|$tOޛ\Ok7$2jVq~ΟAUX\̃fn*b (]i/hۦK4N>P@Of L^$]b]*4gpج*_f Êm$6/ΌȢ@&s̊8QPټ3& awB H.?qaHg]ˤrD%n{&̀1G7 ~Z7^Z62$,O11PQ8|bb>ĴV HhLq걙D5`kJQ%}Cl\ad=@ `2?aD`H&"ԼngA]e9z]3Bx;]D78%' c41?!-#Bp<dW'_}^dķ!R ro史T+wr ]'kۢfhG1PqGZo;gJs@IҘM*wPڱZ~,"I, .A9*vN؏kJ(gUw:b4.T^H)+_~|̅WOۆ}jaL/t:Ba|%ݸ[ cmV|MSpF\n)ֵ\zT(kUz= (cڐ@-v'WKKT򮢛+MQ4ilhs"99WPH(\rB4njt9j/PnԦvGɳ<44t(0ksP;n1N&Q!6l/$}fnJ.d&.xiL'&PBj7ny ;,^jh_6ÄUy]9W/@2F 6յ^2V5(G*%v28_bQ0$궾N,L[srx7P뮽jWrS?@ {DKp7`0KyAYO%:*P&xO57H!:HA9N8JKcާ}IVǦ9bݞD [k*~MBգy|Nj{&̭M#rX0* t[:' 7Sx@Aih>@q+:(Ԭ04WSUMaIw噴 Ėim7сNLUV_!FT+X yxn n+)?K4ɔ JvU~Wb'>ɞ-5B5FEHK֨Y;_o3`$`ְfBWF%VO`ˢ3/y]ȗǶx7kC5v{Gha;1ʆ"[ө-mC]K;b)Afi tC+du.1XoPڲ輇f!zd4eXwR헸{@}߂ދ%.()K?} N{˽HHFWS`괦&Y"ÑS $0wx\sSnd! ven˃qg,[}'# )cKKyk0wMJX*Rsf%$#}Yr.mB/m~بz w]+w2p)")wVԉruʛΑhBY>,ӷ`ygP `hqa#Vd[6?}ĕ߄ٕI]ZQy(*]ܬ7t|t[#ӑBFB JkTHש`wζͬ=S]ut3Ot=Z FWS4B]sHu$fOpkȤJ]3q*= 0'`}v02ӒiJKbEhG!  lT]9BۺcG)O#G^X$)ʳI# 'Cb=u=OL*l T1[]U1ћXP`1rqe^SE8c2z Yϡ82V\G]IRLӌEazq~ ,93<..!Fʈ^DS0bKMX3;>Yz86 Vi^r3 "GD |FP,@1q;P?,͠h&ͱl~ٗ5^+'%}~/iIB Yg=ζ lYyXN>J\|wեc U[L9Forp9D2pqk/Ϣa֬ǫ]4ůlU ^8l jߓjh6z3HJ6jXx=dgs*@ ҉x~ĵ}Pa ,;.b;AXHL"Bvk(m-O'Js_R`)H8nDVJ'G]ڛۃ R_-fAY4M4d??FFͽ\ev ?[S ˥0V)񲑺 nni 9wH;dLI`ҏ>6ˁS 3;?PoZh8z}0䆱 :1Wh1=I-w,+oۈpj) ]!ryty kCb[:Sq%#OޜnKO͆QwncQ{b;ϻwkC ]lKņe$$< 3#nX'  ΐ?OoR_Xf(|ȯ;{*(/,GG)m{`64aeM&ɮ=~oaα)(c P.SM_=!s})ku|smo=@CK 0Ñ?.ȥTw|KI3_o*bg xb)n=]-XMcOx搒DR"Q`1O4h{f*A遈$ r][Yv{¡06auTfpgtu_:^i= ,],Lj>qIrV8H7A~/<ޔ ZLLh~l*uoUr{R=uH NbI0'<,lJ.KT]^ !4 g&5ڳ7$-zBDM[~k kH;} DO432Hڣ[&ܙ6Ѩ\.c##r9)ćN)!^ˌukEEK,|sy{h޻5v o-<}hI5yg T1*rRaUB-YT[<_Gs# a$ame ,?.4tU :V3Dqp6I}x:|HRqP!DƗ)Mw {:q4?[8!;X a(O\M)>>j2a&,ڈJT3mmŃ2 ${v+DX88]4sKe_hȅp1{;CKk篧QVH pc`gȡc4R}h~oQ15:ze)s`jZI!czkjP0Z#XQ(H|HN][ض/O2 Ut "#Wrep^yφyM $%8$I>3 ䷷LjKc ,):~=PI8w{,%N_tN14CV|_ T@qog@40N|дC3V +t8yD5ѥSMg$No{!wT]GO@>0kްiEޥGQk$vCYcC36Pe`I[BfXs`Y'e|.0s 艂h\7 TQ/_5TmDND5\pHCh_xI/%&kTZi(_l:W^VUsw O;3>u%P'"64iן% m ipz'kɉ)vq#=eObEQw@UtDqo:GX3 jщn~HhiW)oñ+cp9KlVY%fD13E a\zdh:u~n.c)+eJ!~Vt-7|fT9agid? ѲNXyZ^:) @>hkB1CJ1 {\0⠨y ч_4T(*aiq%}_Y& T6]_tYCŻso ?$;=ѻ/%]Vm誾׮x ;V?(TDwaa$'T?ylqD.J9Î MhDּwt#lV@by)iH F}-6>{0( H9zoK减xDlOuT@\z\'8,ZkE*YI~n~ hY'g8\I)/F1:u7p Zպ&>lQzq-ق{r>|*!}힯yNv7\g ;%3[i7{µ3e+!+cŰnP8)qL'tG!12E~FhŅe,-a]8VMCk~~+ۋ@aD-< A yLE!:\$wN?<4>]c5C Ϧ-#a OoCՑ99FxEbٽ%h*O< Fi>$|RĞyYe$G9l.3|&3Hc3ѫm) $렍CUry̥͇  >'IFϦxNG'/v³k. ;U5Z.H @=jrla}U^‚Q,ɅG$1s\6HX~Qm HW 6A5QVlsnwTky 0-1*Z#-bZ) #]zdaw)DS%ZT ߚۡQtviÛzzs[i@d`Л;He(zFxc7}2g.ߴf+: zG>}5~ ýP7oe#}HIbbI<%=b<+v%.-D<)qqF+dP%/MO+xWV'V/ |:QX,L>ʶ# 2Rjp4xlkXF.& 21AǮH@<椼>8äaPGd&?ƜxgF#pg#Qào_( -=D(!ˠ6&J Ym\b3/,V_wm)@D$زĢѧg@ML7 k-t nPnyhhEDH[l#Ӈ=="&\DCf#aj<#7l^E}0/95`3+. I YR村/b-} Cs}I_Yq+vTšKN\rsA.`xܹґH0l)'CֵV pUMZυޓ4B"*eDCaql25܈  d&blLU\#cϏ^/N_OΔZi44xȪy]Hl{dxrWSx8H'U*7Hrq wgİM.-,IsD't{ز+=r?]e\ o:]t.Vylw έNrw 3?]HEe+6LR<8AڹRpLJL$i5b`G~U?JF9FR/ oEhEydoA+AtS8:ޗNǔ38e!}Mv w&ܧhn,MNch^@.)m  "?6K%!p9SwJVoq6b0N (4Xh{_7Q# ufbYMʪ@+0,Bsa8tYuF5^:/8Z$hgFPz\Ӂjͩm &{#jcFǽ!Hv H\1otFV9@G&cҌK˻P4K禝fiY:gF"{*b#UK"~~3(:o VBݍT l4"8qxU*n&mA!mB]||*,?NX Rh5MSB֎ \Y KZa 8Wfw!<: haŪVx;\^CZzJ+73 Gr/:rfmQ󔝋&mWY&U!Ӕݨ`e7.G*kik_JO_̴tV2h &.1LdƊ !BIAEMp: H>]_GD3K]t"l)4m 2_'?a&n ÃZ /ULhgC xbiR 7 L-[|5;2&J44ڍC#.LTdžc[%#+xE+n; ;Q<@xcPD}~ұq& RȵZ.έGe|Q=dkOYHÞ&^JNZp{s)6{6@RBizl@.[ EmUO]@v0w^r*>hav|GH+ePpoIH).@ϡG^ L8lu:6&$rovCzxlq߭@Z%?_/\rGDzZ)q\u1}9>wpbO')rnG4."J %4! bh (._[t ǐm@,n額lF,nlF&MAuAQg2nɜɚW5yx0R! CIawk?:k/HJi<3MHM4B{bvulIڨr59ik)0[^?]m -w9_*fйUp-!}PkWn8Oy]kA9AE11= |_O9Pj# z{4á]>S502*o3U=l r<AE);|C cWri~N1*Z| FjrT VDAHprƅo~{iETVw+yɕ;fm#=3G Hq$` e-,oK*Qbbnt:pJϮ|3|%+t ؊\׫eY+$>d T_G6Z9[kjO y?yXâEsi.eYY),"mNV{Y^cl5FsWl`!R>__9x,>Jr<s5{˵\ y\'[10 Skh.oֻ  U$+]+i,rLchLLƶ )N J8.1nҁ1pv;:͞=l ǖW-ֿ)ˑ;9%j6֪{z<{rn R ^c&klCQ-󬷃|OTS{!ATԇ00о XZܞ&b v:GW?N:[2`1D$4bGYlcFVɐ)s&[\q #=Z8CvB:`']:|[p0>: lRp|^[7FvB.䞕dJ;7Z2rKb:$`3fYjxA[&Upy.<=;t% ZSK`6>- ;1)C=ʒwQĎW䟁(븢oqlktb]Q&C){(n0ZEheerarH}BgB^%VJ -m~:эz9d0鸨j6h*NGN`a+̖zeTf`B`3)A%Bػ}*y-m@z:Эʸ+7  y)OSwU$At?ENmR a~fI̤y<{Zbȧgfy Bbr WNJj5w@RccmLlYLzVEw˓ԶU _ # 5SqᰐtmƑ!0R6ukIuMTG\G?h0* >xVZ0!ʹ'"ϑOi_u?l ]L{*U707-"Cݮ?$%1-EG0 +ĤԍR%?ٍm^!BT͘{n䐲q1gb!|i}_|tǕn8k’{k'4=@X 35irdv;, ^ ѕeZh Ͼƌ7K+H._;X=r" 9qqX6Y C 6n.6ľ^m> #_]1a(V%T̺~ oww<ڥ>Ԇ3sJV[.oZ~HF&|#$IN^6!CgaD "}mԔ?&X?,\AM٩u(-cij Jp9Dmn<: ~#cIԸ@a wp ?驿_;h'9lܣL%K& Ɛ.dzIK0[=ǎBr=$pMrm@Pg7ҸXggɩ_Ӳ>~B5ߩ|rYZo; h?(\ DG+jOD4H$\ʆS&j> h*(EݻϤ:Ց| &?)77ת궑Dk(nz2BZ졲ۗ] RpJ"b(nߝUd="b?8N{>d*RGؤFM$^؉)vF)a5{˾J+v( q3G!ti.NG~dA%i.y~DJr spoc{(NQw6To;tFPAL}KvcnN/JۘK$M[QaAp\Z x&],c1] z/&u {C(/,4ƪ) xD؍yljT*ݜ!= }o@DžGaERuۜ[' o*a8 .B HYH#Sέr1]_cZk>]+y 0k9o5v,<]DAB4XWv98n} BGn}xj&$tXURp\z"5賞,^RVh7E%/_a@fPonc0Ֆ1 X|u}t`Z&(+"Ȅ 2pav:^uⲭ'SY]h(%>h#o26 DlErUv5nK#=9ay*ٕ uSVAum?r>%R5Ԟ=$7q-)?1rpS,ZUs 8ۄFZJYmBG\,Rj@ s_c4āt- E[iH3Q8+[K,B?=+䐖P~zDe(gyoㇻx/\|/\85&M\ؗu^AWgL !%%ASE;hDU \ K3% XeG=x[^wR@#%HD4~ʭi"%Eڅb?%l؀ofTO":g`&t-!I?|էŋ.h L>$CSx)g#Ko;W˞/ޜP2}s$}Ŵg`|LGF%_ ˾BGy7܄BeR !K.$юq`j7\j s0-: 2ԯNz!lUs!1fZNr%(^ |ᨶ$ e[coM(C }FYиfuEäHJr$\1N_`:jrȝ@Dv6e4-`xmϭ* 8DPZ]u<Ȋx*,AV01uP5TR) -`"|O =fY=VX1]:lxnPd)p(LdBF@Z]`]K"ߘ0Yi lh>gqGA?DmVd^9B2Qew P^z慚QR+z4xJ Eku+i\}{}Tr6B;5dqй4Y EE_rf0*)rc~Zg&) ZA"?%J@2.<vE v >oX}@DPGbWjR@iPD|;営=)ϯt)mLG`t|ަv֑qm됡izJAVH[{i~.zV} ?30MCZ6߰4G'~f>Tx؜4^g%N ú![;zUGa5Ŷ"7at+Dt+xbeF@g6&w?W w1aXj5Ao+oCkL^!ݔ1i˷ʒ7*ިsL 4RcF{C=[OS%}ш&Lp2lعYzVU`'N6AY _{׳bk $􎷍½5G6ջ~ILxﰜ7x1OR]QdL%GGW^-F4fY)`2d3fd O=B%\0R0E}E&56dUQBuuga֋R~ k-9GO.eJoe JJ ] eS5U]INAR ͼj-Kz&?ERHHx]ģ\‰Ů*|p ikتzH Z 798+VPkq!ܠ}fb(MsQ^ 1693L:rG+73'eb0z^(“M qsݩ T(7$ĮTk ̝Zr^ xʜ!:v%& YπxAS N)F8EC`` zaw, .a3k'mY? .͙"9Fw̆^!ҿL@/$gKK p;%+~eagK]J]OňI,I`CtƔ>Mo:ӭ/Ix2A s{[eVC,&jc b7հWrl!4Q,:#j ]_y U(~ח-|1LzA23j-)Hlvw`m7e4GB%<ާF/RWH9A;I:D`l3{S"~U j+^jȎloS?kqPChIE%j1/e?~iRW~ AEm\`0">Ѳ(.~niTƣ͞vq{03=ČL7k46+*m|y|I-2>MWC.p^;b_dFA-KEb8G00'i: ۯ@;[x&vsV-~\uMY(CY.]:#kV|Tlg:R7 u&NK5M%kkT#E]U9#JHwsْDnu̪;jʛv u+?9|޻y\!N>3p5 (iԡ{ƽXU@2\pG|]_3ځGW#TB9WT$z{8m7Y~U9c3iܙ| HՅ̷¶$VA \qUc4>%ɶWC:OlfeyhaV -\EP !C6tXtpg5<"ʳ}BDgnOeS xpĽVnf%9e3CkԈ+e^]ˇYoAs]-e%QW  s- x$K-Ɍ>@ݪI|w%F w BsdxHbβna!Zn- q=@|Mp9"c0d*Q;.ǡz9F浣o(^zwD"R"yL/PχP[Z)*),olspIHR1߭Cp/~4BTSVAtnNEBlM?lļMlr_r.\lMb915 @ o1-xѨ{_u8ndcEsmEB EEi#r//ur`]CYW ,MfuyFbۦYK ozpxF> B4,|Qg틨+y1Ŀ*eWb;DǹOC"*ղtÀ ]"T)Dف ;7%a`[OOނmqC>XI]/voz9[;'SWr>BHS>P] ,8lػkE!3>\,, Ւf qq0-rۣL<:-›``^DfbbF x{mh4MӇ3'z.TJߢW^jb `HJ y>˸J:K8(F*z\Ya^UPIF:/8c 풀uD+8JsՑy:bu GwaV4?nk^ұڇbsWhrxT{9 }.Ʒ85R~ȎUw.ƹ%xTۅ? &=kVi#Qp8}`0-Ou険k):BhN?QxzxRJ5Fzd^?oXfvC̜[>heF}߮?l %5ڄVJ|GQz!ZN^tQm]h`1I'A{{GڹU;6]+r:Gk\Bb-e2~H(k4 4s1v\J)z/E[7?-VyVHɮ_7Đ^LZFמ5 v_W-91Mh)V8+[M.wt2p~̢)iXޠYYVz֎V`B$svgϮ[dn,XSO)ŷ& ih%>Ah=gN ǯ֡\FH}ǐY Ay:@bčƇK e-wwȠ7~x|۱7RbvJQ)*PTkϩb !QU& /X-Qb}SNg'zʍT,]e˞Eup*W :Jʫ'*PClp ლ6RXhd&F9S_7읆}PE%c4>w9~A_pmu:jI)Z(T<~H#+$B<Y,ȥhآ1J01Y!R~:&i=b6)>;wګr-B:Pu1/p8"u j`D0h =?+p(HR)x~h<`rt%ct#1$gl3&wԑZEa}vFC"E|MtDa @̃w$"%A9QZ ]nPڒڧTIFPB=# ˱MΓDm ا.JK{rK-\A9VUEqHGCE>IBB˩3gSN_<.[o[ rS:s! ;-r3U::NHz OjWB2ɘu2j(!}V.N-AૉA+m]IsmVJ+fpSD4?5ޯV, Im@lF>lR~dAF1X-JAp]'I[8?ܴI\%E3X-%B q%HݼX܏2CB"WTv'%[]ضK]'Zp>jF+1_D;H=&ȂV}=$҈|@QdoU9™7XSc#f'm=#(蚶=[?E{ #aN4q3pQ sD`#EM+ikum+x|Xx0X 1>Ne-N,9'7[(x_Cۦ6jE wR,V?FS7; Xrq[ ˾,?~ 2*t(aR8BL@+k #o#/7W N,z~icèƌrAWU ~ KQkF;U5WCiM $ PC#,#Ƌ"5m!iXmlVF`O!Vu_cF16LWA jX/ =c1[3/ 37g\V-yW YFqlu/'!ISȤf+H#|j\I2, ![>J Ⱊ- U\*>8~-z[[ݷ_oУ{Vs($_ͰoUCOAWOg™鎪~V(8Χ+}RMHzO 9eW^`w{N.F~jP@/? ?2@Bܺ2zDnT7SQI $ XX_ဋ\,}/'DI5? aGn -0 P!!ɂjAb0)!u(Xޥ Vj Tp"K 1oA||밂&oCQY׈Э}}Efg~} < o-x<'ׄ4T%.5-"MN"5RpB$Ii^+! "y]0A5 70P/R$))mhBeLR%Cl%wb8Jgui+d /%L/UC$3n}_89iJ!H <#TpuGdt:=a@4_J:|le");\eҮ}G買It_;('ʡL)KDz޾3~wB>6xHUv#P2{x"1|Iѭ\"9;@ִ]MuCKx1t,Ss ^ab̠cgx(%\k:'w0ůk5LSq&J PiHL$"/R$C.V!MC9/ \fl3Jnno0xidȨ-fյ0f, YO[v߬QOo=3x()Y/R+]9o~";CEkç$>3z vԾT:`/JZ`OF^#SYDд<{"1Vn -֛A1Iϱ3]$_Dy/|orz̀R`րZczkY?6LF\iL-ֽh f:GOzxiaXyGw{dӝcuO:0rO*eiRjmB4z,"£He1㕙Lɡ篔%>^ ^hLa2[ ȋrMmtGMյeW}# lQ~bej~>JbR0vs/9Sk%:QVZeh臷D,ԝ6OHY&,NtA=&n:m.~ j@.f?҉|Zѳ]B(֘>X>k|ZcI}sJh#TLa ,v`+~ o&c Knk@^]ib:6fp@QamJ~]~dp!ڬjb+bP} C8 \Lm%f$@ŬVmߠ:w\ j},[><2c*690c`.K˅2ωK^>aG5x1.>/x*ט;;ڬW#G*Y(Y?YĄoy0K#E5tfJ4uy8օlt xF u?u^* p0S{tɒ=Ac؃Wq 7'ArRޭBFtJidnvcMP:,,h>7`+[IV3V0Mų>!%(mݸeUS%(ۆ.;4\=L?#A0"N{ ]TCм"eCЋDҩbsտ7s΋{emʹfcB %%2Eه#/M]ٜOAү޽NY#VōSQH3J\OԦABJ1[ q|;O(q @<9K~A!,xӽ|7 / Fa"O#&IafX+GCoۘe"qnHʭ[-AIA 8ߡu2DfEf;d4 UnG|WsJ;z zuI ;\lz z~5Vע=6q s!=tk2PFww|9%~p46iL۽'q2Y|4˟ HZ\tղ5c9MXnV`xonތ4W cUڋUX~U~ha fM J J+})+CKݺ;1Z/I7p+V퉩n*Q7r'kB,';/tBFW,f Rm][nR9^NŃşJyC% qƒ±!|䂨ɌqVPhSeFon ,WE'9 1!.$BT< Y E*Λ $>$ȵU^oJ+prW$ ^ci Sc;}^!~m b%Αe>DCo% ۯ nB'iK蕱܇iG‹WE1I<<bgaoإLf(lRUܓp"?m3/"|a '^|BX4GmL2Pс(ظ.~k&.*׹ XD`E\TY Su FB=&0EgT-d2(x֬uv1#FFEa&,l ;RqWn+ ܢ="ō6~*KR"훅Ȧ9|Y6E_ _Z'^% 7 YZ