python311-doc-3.11.2-150400.9.5.9 >  A dZp9|,} Zeuӵvo0>2B[PI IU;gjq MՒwaqsVv$9EDM&e-$f.r>8ob_1xk[Ue 5n}P.up,4)`H4gayU]j1\S>dµ6ް:;y"Pup4%آL9:LL q*v[6h);~W55{M4Fea5f2d1639764d272ff6a926e93180d664c13a144ecc59e89ec8bf1b1dacb5e1718ae50f3833d9f1cd44b1d72c2c7106041c8652PdZp9|ףU$ER?r'/?[RV@ի:i u'8"q IkRxvڒ+KՎe1TqKD8Xe%8,n;E4!Fۼ.")4 W؉E qni2?Zo')nCoԅC]\'$NYM*m4 8Lߌae-/t9 >%M'5Q[%v+:_"pY8O_Aֵ֧u1Dʃr\.l`>p>4?3d $ G  9Ze {`,` ` $` 6,` I` M`_l`uL`,``{(89:F>GT`H`IT`XY\`]d`^D%bcd eflu$`v.z3z3333333Cpython311-doc3.11.2150400.9.5.9Package 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.dZ0s390zl33SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxs390xu-?Mc- z6O8 UAq"{+>U:I U {Zu$B;).m^!W"Ǣ "g3Dx͐y* x Q [<+R >.,HzLiEj!+~= xL%(|y&1_. >e%]*NM  {r20}U%[ b5:-Laq]XIk)U||` $A1a0Q)3!F !;9 ,$~6>-0 5a*i &+:%$=/{7]s$7H- Bu5V -S!K T&k#h 29x1 =c3zw YU# 4{5#H/ -7 i$r E8 ! #=HmU\k,b"2 x(s6`<,Sn#+&/PTU <=P W+dpFz kE.> CdU'K7 Itm9, V~U0 NL$-5EqFJgQOe )&$@vj  r' _ 0 3 ]1oG#"F{{<i))^=`5 V<'=a#160O)ia~I T@(ڞH,K5UfL 8VZ (JMcI;>R|f}HD  'fA` Ul(,d +y&A/[=ZCA*G_(7>up+:$e  c^awY+ RM mgG`^,L;. }e b1"^TGV _/mc#VbK89.g6 4%d/=c]*fTZ8Z)A] DLJ.A`5yTDK9T_ZFc_xW:xOr7M֧cn0]l~@{RXkBgJ}CI*qS\x&P_|0*!LE3e{B\w# nn@<X/#CN R&Y" M@JMKIq bE#(~D"&&ps?E^RT\YZ-#B* 5QYɊg$8Œ:@Z0R 1 >q\ ^ҝ2TlmF'FuP$1шi#SmK7+E {\/32tx` ?m(o"n1m%;RUx>{@r% sOCLwDhUV؞~q!jįG[%#?|F:; OXe̜wG7D̦asB-o0YL{qG J(s?7KYdOXU/zl&xC>~'B6N:7I~]pokzNHId;Xz~7bBWf*@4 0b$*=u AToBjb;B:gU7&Κ)x5d5d[uGؙYj/xKas2x;"BG>G9 SX``,F^C5^tc(OXPUDSOL hLpp[`Vqc wSR^.E>sz_MyYtJm~}chG{kx5Dk*:DNQpD/!g cI( gp/khlo@;ǐ7 evB`&o9CXcO9)S?59q=ِl^95wI3NI ZHvk$0eh[wYt~@+X@~/9du#M'oK*}E!UU97o()|G9bzf:DYa)U_)bP:$p tVEK:oEN_}>T;AA큤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큤A큤A큤dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ148464f530ae481767b925a370f756a038b496d2631e3a4e253ba40282fe527b1247b282db48b322036677712add2df0f9f4faf4574153abfda9fd417dad11db26fac030cb3fc1edba27bf1e0a5c9d2cb91d3f804fd84eb616356b6699592c35667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a3d92157b536db0831dbc42ffe0eae04e469cdf4d8d311c8f2837972c54945c9359e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e6124005670b6daeb77665a0bd536593baf7830c947cb3811119986ed726500defa48a11075e141401abd39e62cc17a9ee32232d59613a2d8e16df88018435b50bf9c98adee06f52723b9bad40e39994b5f2dc69248b00fece45c385dc564978faef19319bd6aabcfb280555e5915ef4abe76c44a3ef11e65e5c28b75d012ff687f8030d9e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8f9ca92803ad69092eac297677b077823eed2d9a76966e4f5009def52609402d84380fc5c67e3b79e62e3b0b24beedb11fccb1a08e2c5f65c060c57422cdaf178239e8e726e704c04d3a4d1e48cdd96b99342d172e1eb7e64493b6430c494588ed9b514706d8f064537ac7b985636f19d70e42c5e92fa315a3f3513699cfdf2e80c14b30da04fe4ad74a33cc37261a817f586a6d17930a411ed4cfa7f68be8a82a4733adbed5385dca316e699a2dc25b7bb22b0741f2285132e05026a8c0dd35e749ef096efdd83d7ff3fae9850c59fe0d7b8aa971dedff668e13094d927451f9e1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc11decdb5b7893d8032946d74b2308a24a58b5000de00aff80c5b3ec34f6dbc5337ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467bd488b23208c21fe601bd6b2d4ba6c44d334bb075babbf7f0f751318903b6c5d4382828d64e88644e47e695d717ea8432ec1ef79a17f2d209b11aef4fdbfa4bf570d752f336a9ee7af4a56b8e5b3696b962b69793b274f76439165823c69cf5e04bd5db0b21f178fd8b16f7d999d0da20a00ca8d271cd556cfb1d26dea91aac88b21a9ea9ad785299a282cccc4b9a93cf9b1f028f65b0e90c0c41deea019953beb5528a56a8b0f2e5da3d6f20f47057cc0325273ff152816c202f8a114cd07138ba9abf87cadffa7027ca298ba11ceb6418f3a9abb32ac988c8d342e7c2b3fb2edcc0e6549fdb1ea3414f47ea41c509c75d881e7b70b48c7f8f756212139ccd3325da0ddc06beb26bc3f0d40c4aa05c22b8469c39a405844b67763ec76b3bd649f1f559a308d4bb0215d25df449f0adfa6089248cfbd0a2a62e811c8c72bae01b8ac2fcce56df0582c99f6393afac4612cbe78a4be758d632f553429123abd62e544e6af486fc0985f827c1b4e018d5d4f7f3053609e8777e6a3d8bf7f574adbd8022befbfb0d80c9a1d46aa61ffa2a18d8a436c8fc9125216fad0167275e80b9bc35f73d9cb449e77f1916046a9cf7c6b403327d5a42692c78f6b8d0f50da71ad7ff83b50ab6e3f87d4dfb646764d37e33eaf765ae8e1d4193c23648c0f3df980cb20128ea507d83c2848475698566be09d338e7c742c49f9bed4048fd7d203c5bcfb551c299e6d2b4124df6792cd271af910bcae222e45766639f487f7741a1e0c45bfdbca990f04a80626d147cdb82a6af20fedf9586a6b58ec3ed2193cfa6448c6180bf5247c91ea8e8edecee1fc8bd4b1ff747c79993116ba8d7b580f0ddac5b5702722ad5d17a4c18a0422a599534723d5042ca6ee29f7bc1450cece7b637e8e8bc2308f857ca59ded4bad4e874d147f04b02f7f160267a67206d8f6ca30491f18c53b8334fa5867275e622511852511d08cf283cf728b92205a5befbdc3a9e7d8789b787ee85921de34a85c89885adb4c19cbd866a04279b194b6e6bccba2564f3dfbc491c3566804ec7bdba24472711f985f616235000f3f074be8b58aae706c2331a4b8601315f7740d05e0871fafe1cf048508396ab4bdf20c7f3063d87edf79394d04c72834841d369fce80e1e23ec0e3901ce91a51a409e4fb8ef3609a7e5c15cddb3d7f3fa42a15ff6e70fa7ebd8dbac361958e8570df60ee998c1e99bb5ee179f2109ddeece8012a5f9f89e4423b1a04734e47cb182405455c0fb38cbd6ef4eb9569fb86a4acaa3a463b3f0b5bb7c94e3514d2d2735f817a784929f41a4bfa46824fbc46189415a996b4815c423c0e0b2b364957280bf3c98fca0007593363475a41b32b7d56a99ff0db925d2d958712dcdfae357de9b5b1c47ecc9de4dfffe256f727550fb8224498ed2ca7d55d2b2d87f7d3ad75a7a7bf02751102738bb309ae0817efe8bb1427e175ea0029f87ccb99117dabdbad76c7a3b85b25028204603ccb2b0acae4bf20eecf1900704c9498f13aa10910a2a0e45c61d51c19f1d0f91b8a74b3fe884f7881d0dc7449ccc4d8328784f38cc91bc1edbe639c4d6704b4dcd3a9b7a29fa223d094a5d7c62cc9defa73a8881588ad6c294e63110c59578bfab41b26d8a26d5a531a656c752ad1438f5e3fb859d79eefe3dbde69210f0f21dc7f21a31467e1563488b65c26ce3d13fe3bb66d834f9d7052e16572aa3e614d05551872c0f9832ba1761fc5b57e79cfbdf44866a980874f7717ca78258543a4e478996ba59a5028ad021347afa6381d8130a633aa2182faf6b453cd806162b139de8aec7a47260605473a31c484d55e636b6c2c85c5b5d1f0a7362ba65f4897ee4dbbf935ad40a34d3ceaeffbffa81b46a1fcee09cc375a23cbddf66490fca89a54e0e66dbf33eb8f00f4b7822ae62dbfa23057456ce4c8f1f8994f8741f42c5c0e29273b87acebed01ab15e716e209db721b039c7d1b89ae302cff659246135514874e7e20494b26d15ec7aa3dde57ca287458c2646ca32131890fe33cf7fa2217163e88434fb259e91aa268cbeb5f1fdc7baed8afb9a793302a09da8f23a5774154567690b2b65459b90abe594a8b9d4ed59ff5b6e7db84d1d84d8b0531beef22229babcb954ccbd50c5afadfde66702d2eec15c40e487f35aceb1d90e8140cf5c35345538d80e343febc91b5d2d719a1013429254c368fd61e430674828d591fb335b8b98d739c5bc4530555b8a831ecbc89ef07d9a6375cdc7b5153383a418cae9731f18dcc2115289b40d51de7c7056548eb8346a1c9e676eac9b7a4734b3f2c5c28b195154d6c120a62c0d6ae9e4b257cb9f3c49f92960575864afcaf3d15db8c6023e0f732740deeaece8bc7ba1050eeb551c886a6919ac07bfdc642ca2af024d1edf93611035aa5b7b2b75078a4b4b3464654fd449380ae6087500824ab962102a9435aaa5c4bfa290d00667cca63cf5ecab8bb1a07f242fc619cff935083b0ae14bf44a488d3a7b3fd06524b683b227bbc668b296ed0283f56545f15e96c70c2ba956c396bdce78b890f1dca9d9b6640e7722efa5362eb28ee69ec80bc7a029798b736bc60d9730c9beedbe9ddc616ed7f7ecbb3f8cbecc490dfafdce3797729602ec495959653883a067a506697cd30e088df0912da8d50aab2f5e9ac00f3e70946ca7b276803fb61701479130d9f14627aff3d8dac5d6f4631c1f0e5b7c015022984694bc1197b2c267f157d85b80c4c94756f393431daec64c921c3ad3d97434c7d99fc67c488086ba22f72f046feae31862a94e62199c218124a2c66b87303c953fa7dcde0472a5ee2b8ba42ad3ba315732dbd2ae9f88a81c5659bd475a873b0346ef4488e9d37e377e46df188020e322e5db880211c35cacb862b5589b84b2f28b3f4f86e66a2e1c067079c7e3c0d08fbd6b16e33a763e6c6a9338690e664edf311e6b3069cddd047cc20d675c252e64c5b4a4c4d2c4e2edfcbdf940d9149b323a8fc8212ecca3f351a0708b298a763d796e0cc1eef012f872a8915e0690419956a1bac246280e81d115475a8238e8a8eb9e615f33c7e2191d77d251a0aba11e31aa813b8ccd0ed853c3e5f3836e34c5a880aa8a00a4c1424578859d0ff0946b4b57594dd849a3099c27f64804d931514380aec4abb642541dec64b14f80fa58e467e696381a5a7f577fe7152b9810ee2e9118d46168931fe53b04e8799d7e65b5bb1267fd27a3f7e66b96b9d390201ee673f6362c247329d15d46ce2cd38c18a0691277db54ad5702957408e65a049e2b8e36c880549e2595e4164fb27829c89becdb72165eb82ded7a75f93c810f9de11c9e5e6634a7f5444dd83da55ccb265bac825abf72ecddccf7e394f284636bd9df494a2b0c07bac886a4c8b0c1ddb85e959ee40fae2c86c1d68a6a722ce7b88ddb291c1f6b451f568ac4d89dcfdb54aa4cc92c355dd9fa8ea2d7ae7a34991c6becae5434152917136010e3e382de7c843cd5116bfa89d02a5e1dff9f28b6cd846e0e9a19660a3cda7969a680f5ebe4a0e9cafe00fce87f3fd7c7176b52ca1489eb80b03efe2f9eb58162b90eddad2cface23f96e94982a067dacb4cac44042346eb421660c769f7b361ac12fe0f7fe53b602f1018c223b45c0ba2d49fc57b0737c5c69a55c3a1f2e41d7e2077d4aeab74baf2663b3b4926461b2b7a59d55d28f22184380fd8cee5bc52f078ee706c2b91c4ea17ad264aa64d0ff671743da906bebe98c963ce5f612614485c456f8cd07f7b370df873382ffd76dfaba8a597c292ec06bbfeb6ee53d4f90280ca5e38a4dba90e1bd556d09917bf2989fb229d5571b278edba40507771180f4652bb52be305db82e651d3b840a8b4e47941883c38707a4bf672f561d9b8e7db7a27c0868467473700e2f7db4d8553e723421b1fc99ecf571020c82e10b6b5f337db4399ca9737d607ac770cf62de272b173c5c6a036e4b117577e010bdaf96f4ed50714691e71d86a5394384bb4585c666eb31f732d5c8a90bccf82a5066bc493d050906e0f32e8b7fce08307feb808ca6c417f7ad7103a3aefca572aa23e443a4f8332452d921ee9c373a2d3fc0dcfe2ceb628717d1f8fcbf79c877f327f9408f3dc02957ce2c9c5cdc947ef0a9c923d039fc245a1badd0186db5e074f8745c78ac464f396ab142c5f0756478e01765c0fa958e325411b8e6021b93d3086074d748076f5d8cb177fc1055ed59e12626af3888b6990176f0434d8614b0ddd9db0da84390a862e4424308a6666f8b3409d82877b3e5a8518ce862a438777b18f47c1f1f02307379ba433cbaed8cf8f190cbb2a8e9a4880227bd4d6acf61382886b874af33d7d04350f935fb4806b2fad09a129d0ec384c6f67c28b1936c31edf0f7b053489269f2f0d0a802727196338fb007f8ce2e72e48b3bd8b4b4630f0973a8e712022c74dec582f6b54ec7d9ac18a083b1bb5fa6ab47f21346cc83cb88b845c4d9f94f39d8e502d4eae073da4820a6f89b2a6473cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56cc204a8fe1873944f79fdc052aed8e3b1c15c40fe9dfe377e65c072a9303c54a24b4ffa484acec02ad5c258532c370923a3e005ddbe1f37316a09d1a85790e6797d60d4b4eec137f6762b92a073f027b1981f735d6c498d87809b9c01076fe720fc614953032cd7f2e31ba19a63a8a012dcc034e56aa5b93fb866eb70c7e24d7dfb86a71b13c8c5d45d1ef728fcf579b9aece3cdea16b04ad4c59925bd9e42e94089830daa751304bc19dd584af9fd422e99f07c7b8b822e7e854acc62153b20759cc9cd709d586f773bc2b18aad04a5e5dd27ffeed90b25bc42add9be781e8c5cb896ed7e8dd4088693df4c9ddab289ce6d1fa5ebe6b426d34a4aaafa41c8deb3500051a6db9b1dbf837cf8f473e937253e7cacd3b85d967b86c480b3f9c398eb1caec511e7b2be8c1a0e9f23fb1b6b207362fd48a5c3b68388713d210c6bd9fc68a3307f481aea18cb424ce007372fd5da598c5c9990785ea264198a59b10a33d67e3cdd9ebd7cdd03566fc3b6bd93691e53109672b5d73beb9286e498d94479afec46763d97ed0ee0a3f75bca92d79f6b7aa2b65da4755799f2fbb0768f826aeb1fceae74f115d32c0d0f150f5d58bf0375412e353b5179e416a11f18b77248e18c5b54cefbd7f8443d6179035e88a60594fee8c524b450ced7ed92bc6d44eb709a6233364441fd0a651f32e26bb148b303db9706012aa2c2a43aeda6f5b12e48515258db029df913ff526f6a03b4f7d5012db9c6357f8befd4cbffe4889d45f88ae7ae1b91e7ed0dbfc644a0ee88b49aa0b8b0ca5231a4a5ec59feab8cb70be75e5a585ae6b041102afa6fc3c7e39778e380cca045ef198717e714c825d47cc0d47c17192daa95dd56fcf246cd08272767a349ab70853ced8f47080984efcff5ab66e7ef4730be344fa61922263c50508e21f6c2d538f2c5b72bd0e8b86f5e9f69766062b95b2f0d842e9a8f46d7c18bb867de6c422576e3e21d6cce8b4a96c24156a912698c89d2b9deac36a160a238061ebd53161afa92252aa9d8e5c3f9aea515cc951f285da889d6ddf7b55302d4e51de5e14993d55ddafe5fcc0f297fd7e6d81bcf8615eaaed79e5e7fca8fcf55535c1e5b39b8b85c15c64758eb0998a33ee60066c7a17c90e0417e7a2d94db6cfc61a9236e7024ff9af515ec2fb6671d86fb77cd065d05689febc6fb64447221d5e8542f6c12500591d8a01a3c0f6f6600c947f274554542203099f4c53c86f991dad0cceca3b2f91bc98ebc4da9fcaf75c80498e358bed0554ab1ac48e6e25ef508015ab02e3d8484cc3cbf4dadb714adfecfb057caed708b28bec88e1011e75cafbf0d61011f810310b3e7f13aa99b9f8f0ea76a78e1cba9727a9a13f81a69e0a6cd26b5f10bf1ecceccde4264ff2417307994658cd42cfa0f33c8d80fb6f74dfc463f77f269e78ea197c4a7b3802f06144e44b5809784e205f3e73e4c75a492c9220db9821fca85365b7f1b7320732cc57a510bda1e8908603e9a2d1cc94efa66110b3e3340d218ad9bb363d2d34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2cda5c7313600d8dc5d0551876cf7bfb0defbb23881e016a881e1b54364d6010bffe56bab61682caaf7d4a1a0ed41191603decfd4df734d3f84947366f03f728d22b06bb30608c6ecfb19e8887832ed18488e474210783c0b7d065b1c36f3e9f1f70c52fb8afd7b9b187b4e66e5b1aaa52950ae3df3a28c64739497ef66c71e715d1e486620655c1b7e302655392af21a5b6c70317baa423fd51c74a9a8f09712df0300b757b6214991f961ffa63dbaa4da4dc423785fe8dc4eb5ea254d18aae9ec62cd2312b01727636eec0eed30f3526545dc0808667b7f724b640b553f4c156e67f5238e4086f2e0b547cf0ae99d6a40ec71ac426ea33c55f783c8f91a0c4fb62c028548f415ceb5a78317013e36f9bd765fc81bde0ea8d5754fc508ff860dd94fa4ded1c868ee84d98a1a3a177f682a174bae7aee8b2854ac1b83fa3c2a2dff594431decceb5242203efd9143d7336d407d246ec6613448d58a8fe9fe71c74591379be1d7d2f5e6f49bce4c8a831df20eee89e1d1e8d013ab9b18686fa6f80f3d1323b64257b84f12fc138882235020d93b34951d9dbf53efae3091f2a78ee7f248443c421afdf4d2af7a431aee2ff2421900cfda4087d22742c196b59342f17520f19e9c42992534f35407bc94e613510f4791ab6dea50156d422cb3b5914963b7dea2c8e619369a735d92722c53c2f78249abf3eb7fdfb0b0dd000f7a8d8861866fe84fffad67fa9dee1a03ea1b86de8246531c9ed782f6f5e90afd0ef7772618466b8c3867c82ba5d6a3d2b8af3bca58fb971e20f260bbc612cf3e734c4760b1f60c6ef0e1c2b2a68b8a250c714e15b936f482290bf702d877ff48cca54cc967027ee7ceca5f1cb8cf66f525f8df30f058c13ef4d807f98aaacb8c01ecb9e5bdfc262459fb5cd2bccc5c87f63c166a2f8339ca6fd51999c9909aedeef6135767406f70b7a314c3cc654a96497f00d2e9c39ec337705efdf5d0ab203f67dfb7c84f5c68e9119e9bc4aacce5be1f3996e0cefd62364d1b8f590e0d4433171e69bbf7e17d94903d113b5b15fab484841b7a6ef1acea4128f0365424e21af6c5d181067fbdad70f315bdc7f6060c763c6417a4d7f85217da13418fe8f5bd86b4065aea77361d481c15daafe24b41a9c9e9d0a547fee7ee153fff9d800a16402fa5d6e977380b3735af135f5d2792e4d79cef9d6c7491d8031553081da8a92b4dbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401da54803e6055cec2a0630e1255214e2b7a234ea612d3104df7c6b94d6b29fd93e110e031ceba31aa153b7161b49d2155ecd3d146866260fbebfad680fc78b1810ab4ae27801d03d496db3af447b181869a526d1edac36ed37d1f3e587719c226cacfa45f05f60b7666301c335283d2d83bb6a8529b80ad1fd28e6801a4ac85ba2fba0516b0c0b4f5a8b5515a65773cb3e11c0199ede9d8767b5eb23f61bae22f44ac3d0b8cae26422e087733e925072db79345bf4422c9e839cd6315450f6c81155b2613c2cd4bb4db090e678376cc149718eb4eace26e653d79b52e96ed1936e85c0751f0163c4cf6ffa3158461ce8a7941ab7f52f5a575d147b5d9e40ce0d07e5cbd1af40a872951ab33c772b0bef46fbe5aa33dffd9ec4b07b6042f52d64ebc057d6984afae9dfb6e86c8aa22da2d853db86012496908bb314d84493ffda429b8971756af61bf3a136bbe994bd62b6c6c6f2aa9f1d246d9123950f54d5940e9a98616e3f1335be79a0606a6fba2dc5799bb48a25115a3d3f77ea2d9fabc2a8fd31ea4a77700ee9c98c4d6e382b8dab244cf2a4ca106c92c577b332000ca083d3333fd81f8a60c7822a11790830107b00715a475254c94897489ed26dd66d4baa93007bd2d073b5d048b8eda67172e81eabfd86ed726a19848290e2d06cdd6955abe40092d02ba8574b00884b0b3df1028cfb778e87b32d5c601a0b277cc59fe2373fd2fb0c9c283ed8dd78550a02d9d5f5aad42e9675a785d2753f824864ab617fd046bbe402bdb91d004222a004480f3dfb9311149d25c357552bf06313b2bf7474a3ca35a5a3e8503005b1c22fd13434e87a07e66016b0165b08d4437920eefe6cff47702d41721799726f83ce406a7833a94ce3db71793ab9a65460d02839a4cddc1f2d5bc2c05fedb605e30ad635d209405fb134139b6b4f0bf1b0a606a7df0d5cd8cfcbe795d163fece2af1df0ca1d50e75b170a2b9bcc662449c5a22521a18823c137134b8d4bbe66fe8c3b8595b5c84ae02cbdaeef3332e1ffd11b4e32cc4bf966d8748c9eaaa5fbcdced7c40a5e5a4b69dd970ace0a65d931fb79aa4879c64b2526fd28bf946c15182f97cb74a7aabad84d8fe10a3951c786fbee6ce3a5509f3a81f4ab78541f44f41313c20e787572884dd0193638bac728dcab7e761e5096458a70915bb0610d9d49cab264eb16a99af4256ef3501cd6033161919af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6abe3a9219474f82eb8f91741c0b2225c182222d91286b24efb504fa87d37a8caa94391e7355d7d323cca27d1fbdd86ee9483d36bb5ec43d1499335ece59cd7b032377f87ef37a82694d94a1c4fb2c2e02fd1bbba12a8dc4d226fe1fed40ecbb005f279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b8193c3955333ebf7e4080a3c51a9ecd58b43d5b55310038d6725051a3a8a24b0cff878a4d38337a11a0842e1ccdc1959ed11fe27bfe417f7ab9a1826d18df77ecf42721e68515a6f8ea7bdf7a02017ed3e701ed89625a135c59a6aa23804e61d09e4637739e18b14be9aed90b0272d5e27fc9206dbeb3e406f131e51ed4b5503cc0c368b0aef53558d7ba765bec81acb164eedcf8ce917a2099b2bf70d38b9b06cba75f3006ae99d8b17f714989c8d6107a21d51c5fd2ce271a103360088a89e864437a1b8053e37232e117857e98b08705ad8d0dce3eab55aee644a656f08228c3c41e5626af3818e0056ddfd6eb638ccb2bdeb30efff58c2dd1e7b916baa8e121031f4642876cb789c73561ff6663c4566afe1cd8a1abece5ad31373e36cdfc839efe7bf903da2dace174d49c768be7e8c4b1e1659391676a659da4fe2e9f04f46a6257eed25fc8aa9fe52629385ff941770625f6a39e01da1addbf2dba5c73257b34899f210d7e90a61b52a6a03d15a8452a3c1d6d4f68d70b2d6adf41f63b56fd9ab7778f9d34fa70a8542a03bd5468350d2aa298b78b48bfc2db22a24aebf69873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b4593c1aa1e47731e2beaac3bcd3e6dcc102b30f16946ea6d883ea39dab2814ebfc06f5b668405ad9c3bd9300b0505fa4dd26a0e0c3eb3765a423e9a01264ebb949ae5407a61e7502ba53655855159c7d012eaf3d87057c07eec68deed90a0270ed5d834f9fa7e8d0cf0191ca1e8707dd47ff31ccb266dcc47208b205521655da1a49116f0161b67a4010150dfc59147d169da8e41052aa15c626b5ce9987d1c3b9f9f22ec670697547da6693420667754d2eaf641fbd9d3062487f710b2c7ec8b61044e6da2c4710344567664c93d2bcab28163676fe802afcb0210d1b3452cfffb765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9ffe8257979703641fed1efee134f94934ae76a2dc35d4854eb803ed065c6fcdafafcc98821443f829c2d71e7a8da5d811e34474a9ed2881d8cc4db187c67e65a3d3a0d8bf9cb8be626bfa34ac3e994e6707bbb7fac2f3144037fc54b84d4a717e795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedec11409aa2fee48e23173cff2ea9651ff93a0797a91331d71f0a60805229426b11c4f96fff303ce08339dda9d0bb83f57162c73d8441e90e69c79b79a8a7ca3caaff5aa32759bd25b9e7c2ea962ba8cc42203579b2e91bd2473825ac91a05cac2d45e4bead9b37d16cba6034db56d5a75ada2e899b569c09e6b928f26765956d06d8147a0b6a6e5c175eeba5302be2755ba742d29db0b1301fb18ee79e77a26ab7546bd12fca29ecc875ab63e85a301459dcd26c2f4145e580e303634f1933a26bff8f516f58b0eb0eb2ced86c43dbd773e642ac231d1f7a35bc7c2b9ea41e4d85961064ed286f19f25c4bb93c6aa2ed0094ff20f4e8f0525c03e54397fa8f417196f3dd89c6b204f63dd231db347aa88a4c2baf807eb41b8f6aa4f49f0b4b8d21e81aebbc7885bf745868d25c5a741f58e33e0a2200166e56f725f312d703632ac5442216921fa13d591c48713ff46f1dab6b26b659120365d4eb007ce408c2eb3d91b5476b40b26307d37c7eaaea60d91144f56526e6a177bf05a8435e84bea7a88490c8613b0003f8662fd3d58a8d23a7e2e172f4fe20baf458af5816efb397a619581fcb30c6a9e8a0ea1871144be9a638d57dacfcf0e1f6df6b582c73347956874f281ca17be280be47161b60fd98010af7dfefe77fb8204e60fd80e73959519406cf0e57cc40524979b3515447d4886a0909739213e1439886e3ceb088362d293c7d3fec6df65546322e5774125f5bd39c2c07af6a4ed4034f5e2e915f15288d62100ee977de18ac5250c8187ec48ed86dcfd45cb7a2f5ed028e2c7afa25c238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7f2f8bcd1c8adb1aa0d99316a9be0a59daaeb2cfdfb2c02e63c4411467a20b89934ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18840eaefdbd7ae9edd343696add6bb979ab5790801875af708c668814cdf7665fd102c12203527055c3c6a5b251eb1e71f0d0b968d721a85842a2d0b2e57f7a69b885a94a6eea108de225c87845c342674cd7963e108494c835c30eda17a4b2b245710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31bde89deecd408aa9fe8ce785aea19dbb0414cee9108de5d94358a688103312fec4efa103b1cfe5a03b900da6fc7054ffbf251e415830aba1753b72816b1cb4c57b516e262c9d180372087ee0fc2f82a7ac94c392126f3b69c573163f78119bddc8c39dea1833679f48beaeb7bd8ddfccae6f62599724ae2a205be31ea407b49409e2ec76e77cf090a6dddb6c2b837aaf7325bfcd2bb9feb665d33c02f983931af9f859366606d1dc7d487fe6be587ec9eb0ab9db110caacba240b8612a41995b45fbf4767da0b0e6cdffd9eaf8e5b00d9ad420eeb15c97eb687d70a93e98a7740578443990831dc89628bde00b49ddc380da923a7b23063256406961bfbebbf22c18ade7b8ff4e7335434dab4d5f98b4424cbd3dc57f87a45730f85a99b6907c53aec07dab69d1fa403f6f7cc724822ad706facbe11faa3e6d03bbc21919802c5a07558205e562008c09962d3c6330c4a8084ad3b98588fee4614c2c4e032f4f329a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf670090d7aa1893e5fb3e4bf7020b5dabf34d811cf0a8caedf2d62b87ba26a944c997c83cf37425b5f01cf3cfcd91a9ee623e7233e6e54b09a6d13f067327789907d8183e2897ae55c8e0bdfd6d681a1fa1ead19675a3c494b3e314f0fd68e84244dd033de38719d008681bc7b3eee65bf86686d6ff445b53361be2b67a34c821c920eef3f65c717408a7b3e154dc10d1ae8c6c572928035a40af571bdac18396c69096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b0140a9a570db861e7c801a56646fbcc82dc0a169217ae885e2a864e68b7d480de835169a0b16ae1f7f9ea59cd7539c8845e92a3a2c07bd9ca00bbd83236eaa0d8ad9c5b5b286442cefb88861179ba7ca1fc4ced0d0f5ac2f1b0e791acb6d0240d5158055462889967145aa4a53fbdc801537e13c3f387ea15fdb70819f89118fcb28c74e86276f24ef30a521d25cf03987f43b273683fd727121ea6531253e0fb230da8c3ab87ffee6c5604580b5310f69f60d82e5efdb33aa06b9becb7162415b2adf9d73bec079ba98171284c2fd2804f8f4dfd0658cc3e2327a43fd3b932a2832c6eef598b686e739c25d5fd056da6234e517fde1df11825d27421f978d36f9222f903189769ec0060d345ba8699af625165a704c591e5a802378822e91f7c0ed2707c3586f6654bdcf8a48b545e62616c98a8903f86ed3b7494a21d8d5116499a7334e9d0cc71c31b19c904cd79061633e163d2b274a8487075b3c3c062e98b383d0e8273e40b6177ba0f7153eb94542c39baaa90a5e7d1c3075aa0ce0c8651cbcbcce04b308ec76ab07bf1a43dcfff443f6ad0d4bb906777b8293f6d05943a446e2c7b9147ebe192f54aa2c1ffdd0e45e3e829b397b1e6d531c4ffd8bac53c5c3ae81eebcce8c08ebcbf4f6607c7fdeb32b09057985c375cc3cef3bbb9b728c51e3d2a65c2b4426f937a66f9c652b489e3ec9e39528c35807e628f13f202d6fe9ba42cb6234c7af12190e9a6d6611f2a1f1a715825c5afefcc62e6a02bf230db65198f8676473d750df4777b7cdb5692180c2aad9f27e95f50dfb49f5ee864906c6f165f4bf782b18565406d5ab4e4d9d474848b4b28714d6a034ae2d9fedc38d3a4accf7e59835ecc43bf82fe5595f1503bed705e1cef53899f3005ada95a42f84d6f37b20b80de16dbfa690ccbf56204b1de94b997aafe0323841d53eaeeea49e496b25526427d1f97100ae9b7e0e15e7f93bc50f7c01a54bfe1562ccdde687f0b418f39efd6270a6d0fbf8c409e62301c0701671bf3528a4ffb3f70d49238c5930cfccb560d4d51e4a85b8a97553c5af794b53d3025e874e60c5d19b2632925e995a92d23c9d1367bc2a1d21bddf35c66b2b933e361ae697a3f7b9c00cbfcbf2323ae28999435e94f21cb32f1b0fc05a125b410e8976ca811a65d41249a8037df4578c6d334012ca63138a438cac4641ac379b40c7af066a7e2a2172295fd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f08e53c6b23cb1994bcb698dcfbdb652149821e32680b44b4c6fbb971d1b91ac84cc5c535b9cec2967748c419fb7e1ac1a4631143cf93dc5a38562ff05bde9de2c749ad1667052280b80b03290b80541cfcd195c12609e88161daab161c910aaa99be3120ea2b46f614b9a7aa5b85b1644aa24bcce0dff48ac7058a48201e4e1788fe3a24cdd70c213946681b39b9217dff0d5fc5bc63f7312472f399026ae5be291e3d2e1809bb1ca9a45e7c4cb2a8ed70c831efed4d85eae7360dfb0923f32945f9f7bb697a335a9cad5034c22e940e1483ee9f349d8d91194c4066359696805cf88365e9604d17d86bf8f70c0ac76551e47e7d3cdab03dbfed0a4c84ac01f3bc0022295fb8f85c2d6f21f387a928ffba363881773ad1e13dcf0d959c7dd093d85374ea529e1d273bde6c34a9fbd6b7579505ea1e101e0ce4683d02f7ce3fb8d23414205a394f8bad313b30f59b15d67a5666fc2803a29c2c79c9c1fa7063f76e1077864d45c33565bf0e0c18d18e2ce94779d8b30faf8d787da7db0e0d13925492f5d588605a01b634f19e8d0b0061b9bced3118c6c91b6124ab4dfb8b363ffd2e86851523f44e6a1c60b01deae3580a1009817634999a5e26d054d661ea00d30af45892ecefa9bbefa40166e7d01085d0ccccb3a67f67006baa9b8190614dec5acb53657dcc0b18098a40cac531737c6fed8fbc729f77f861848895f95f3307561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c80e09965bea226f694196a3bbec14a8bde0e07f9e8e53210167ff16054a60ee4e4241f97effa08c1f3ff9d5aa6c7e035c8dcb9c07203686ae55195f69a4452b21bfe3e7389c0f20d4ba85ad6a088d05acca02c707cb4b4c05a79f5a4172dcc88ed4a3ce16a91cdbd625ed0ba5cbf77478e95437c1e1389a1f74d63f09662bf18987fd232402d82b9e5e1c6c41ac2491f6586c7d466934c13c5a4f96c6039928b7625534eb59face2fd39fd1aa7d931c33a7904ae9305e8e4c2d1fb228cdb0c90ac6b4a18a643f575ba89976672bc20d1e89c36d37d8bb14ea4b324ccfb024e822741ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361f804e1cf285b8aa26558402e9e2f51031be55887e83b338f8971d6872445f081b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3128b790efe2a1a9dcf48bba2b8d40bde20daf0d1ed66c1a1199d4049f0a65b7156ef3e5ce644231986968b76d171253a6308e6575e17544cffc3b7f9efc4b72b0f6bb9e94bcf9006a9b8350c3a2cbbac02c186c3544b4f2e1a913499d02c9baf6923cb37630f635ebecb308c7713d49dae0d5d5643bac3895378bc9223e364ee3e225bfc85f855daf8dd1441478c7e03f4148057ed78fcd2ab8ef9cf6d750a426a251e8914af63538d1f12506918dfa9a747acb9ec8eeee8af0b1a4712149696b9c5c46706bc261eb06476c2805b77e2023d703186ded835d54d43463ec6c983c17e991f5402f110da8c0f176d653b405212cf3ea974e179af74d432397b21e3def8e9043c6700a9d64b9ec04ecfffb2ac7d69d5f8eea2170682478a7bd63a753fc8f2ef91e06eb30e317cd534849a0542de10d5809dc39069d36f193d52959ab1734f821acee8561d4283d1163e1baab314a1a723ed28bfa6bc9b0d30738a628e1ad0cf633cab57af130393e31a092d4c79ee99e9731fbaf8ed8b9dc8672fc2690e1337bbc039684f3cdbb48c4619727224414f3371b3e6f1ca53d8b194018a5361d875085f1db7b1e6d5c9076ad5886485fa23a5933195950e5f0feb1fbc685d20c9f4f356a8d109d6dcfcee944ace466a5727b5c7a9ce880b36e0b200e44b3e60bc122f3ba7adda709de196113899fd447c61734ce0ce0191b50bec6b8af2bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc483f515bfd4624ccd4c73d07e7c6542e879d62bb51967aab770d6fc7c30b0aa6e3472033b1ca7e2994f093c5e16286d5073d1661a16f4d977396645303f865e95321539ef4ffa609d68b4f4b2589a353b0995e3a1f9ccdb94cd94b75367f99fa9638146859c00da3ec64758647cfa15ed943702fcf66d993ad0048bf796bed8ca1d6f64eac78cb0b2bf24d5e600093f3326084658d21d65c28f43c4c4f93c9b19a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523e2486b718be383690b90dd68f02a18bc1c7e3a447f132ad0da461773cc8f2d1dab98f75a1aebdff736b1fedda221cb855b879169156a85af671f398ad3eca60fdce383887f1b72ae565a740cbb45fa040ac1186507d4e6d746da3b858a84817a4a30e40e898d30c13c6ff6f78351e39e60180860db0f58c93680a2d83aa78ef4974e56346311bb1709be480adb5740978765529decffc220352b5dbeeb3ebc20e0fda5ecbe4d2e013135354d359d8fab66953e2ff0ce8950954893af82cb33d445f91a1c8432fd45073063d4a1448c7c315ee07a1d007e6c0b10b9438ac37052e2e0a0a1012ca13ebbbb2ac23cae3553992ee90eb035c86fa15560f0c6468e0eb665ab9294b15175b4b549414b5e8a86b8a0ff3b3686b580cb5c6efd30da955180e70e77482e82fe77a2e88dfcc76deb1f1109af52e911f6ce65e8b34a7e356724bb436ef4aecd64cabd675777964c8d0fe3029cfa7e5611fec859f187439a48eca80e1b34a8a1baaa1a1e10230c98190d19933045813cb7f76f6477af00e9fcccf7c777654a725142677c167e12aa7abcbc58f054c77d6020a605cecbfe93b38cf0c1209f4cea4ff7068ffe15dfa43b43177f3bc65d89a7f3a31cbc60210aaf2c15002f9d5930aeaf1fccbb8728b2b675815b88150f4d4cb01df6b26c30e11275d07022ebacd91278126e93a9f8c46b08c77152205c29cbf478302001f167b2539cc55a6ed64a0c67c4f1e1f923308a10f8967c81a13eaf44dcbc8a77e2f5b08814fd4d127dab3e85118de8337fdf13a0d85aeda29d98012292372e0d588a6e91c3529ba576e43e7755563481e19f5f68984ad7fce386b5bf70e08c2e3a5d49d3a98e7cc0ed0acf9684dafc2515c6a77b36bf13d0be71d3074a85661599a9a313a6a4fe05c99b2b7cf651d08a1a16399ea23e09a47ff3884ce10c22e5aca7d1cdd8a546884dbda32152d94e21579dfc02818513f62192b6b963b86f4b2551a47a90140f381a1002f41af6b8d637ec79b963af72a007e4c1376636578765fdf4bea033513f93f46fd412747a1249ba060516992387f4649d7e8f4bddce18aecbae20817069fff4d754418511a8ca4ca1c06199ac41d7eea008efeffee4b9806e5c32d781a1c13fe61b596c3a6b4df5e0a7c8bf4338d6974e9ed6900f2fc6a999707d4e8bdfc71404eacafd049fdb1f1d01b9c5f5f9651e05cac178cc7dcb105799202892bdb4ee51dbc2fd2a4eebb1ba561b483b30f86c0ae10411a49d540b907617d88582f73af856866975ba4fcf711d1614faca185eafee38cdc898aea1eacf94c9b7c911b0536afe104699ccd8595202faed5ffa5f5421a6b7e98cba177c0bd4f5ca8c5d8a244f8585fb5114c6276fe29f76f4108c06373a77e49e63c57fca879868e61d7900422dfabd244f28106824134ca8dd6f54353e818a24e7529f04354394a64772742c316ea00869b1369140644947aa69f346e83ac44663b268eff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a823250065687dc94796e9fe34d979bc8f402252c648aadb69c5a5b22ddbdaff8751f19b900122b5d00e6f90729ada7f3b27d7c4227868932b44f8ea088f92e07427434dc419a10f58a94f3c456cc3ffe0508a9d09d0bcd48b328ece89041b87a1bf10a4f7cc6e0481db5304b7584b13e8d4dccab3b7bfb22d899df4cc4db120643f04349cc047c74c8e5806f98fa758a5b8cfc13af88f78063aa4184d6c0030f2a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855b096d5ec0cee1fe6905dfcce3b4bc4884d097d197ed6bc88ee5dae9daa5219489f8e2dbcdd85232f7aff10754eeca61aa2efca66a8f2c425a64f27f7d5c597039e68fc1e476ae2fec8f0e40b942f877895fa0a75922f300999f9dbdc291914f860c906c73c5752cfade9f0a679ce994adb44f2e7f19bfcba119913d88dc972123fcdc240658262883cb944e2384c7112fa2f16500d033f5fc57fbcafb93d6c3cea057bfa7b316dfe36a4437adaecd833b33f956fd1cf0da36c4625af81ee6650001f8a0d575b7b2a47b26cb6c9d02574cc7cfb680e0fc36176992c4e2935dbb2e076c4088f826aa2143cb8ade42b3181f695795f1c29f6291f3bbe2cf8a965809f6c6815bb3b8084ce481154b581fe30148902e37ddc6d665a38296f41efec2de8a58f335050ba4a12e398b7c0fb3b74b2694bdf762c2aef2c7ea5bd9d0515b77f98e04255058f708e54012eeff571e5edd346cfc900a209b0f0417bcfe925abee168afa623a7934f47ba2a756fa32091fd14300d6629f1775b0f050f53a972833dbe1a112dea13cea5703e0c8d153227bf9efe582afdd251b982837ad222ca71a7cdbd9339c0a12477959786400f22cae3127c65275a5c6958f0ee1d886b8e37f6faf9db8aa75e4db1beb6d393046731ae8f3277182f1d3d2d510550be78abab988de72f268d9f1e7fd8539f784125541896f31e49edad7571bf772f80df27c6889596eb6313d04d618b3aaca0f29e202394e2f48556eb086dab2d37a7194ff53190c20c5aff5fd6dee0741bc21d0a997020ef79dcd4166cee71e6e9488d3c8af350d19699fe88cc9a6952801184d45712e4a6d84e4833d23c22cf6797648942c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cb857be6d9997628c7ac822c8e78c7910b96423e5e82932953e57118a297fa62d9a9d71f987858a0701e7ff02953bde1b125feb6be6e7e390ade59e76d5031437806f19f4b2c6f18272e4687225c45b7c675138635b49f090631b39925543dd6133eab81f5558aa8a59a885287f6cf1d081efb81cf86298aa52bf413c84ae96850e2cfc03c8aa67207d6955de0be1896926d4b3023eb51bb4fdb6d7c26fa8eb729cf4cdc6655d244c8cb4ae1fbc765b3dba10e4b046ad6ce1fc4bdaf0497cdaf81fc5e889fe0243d6e64f2e9825e55f3d281cb06957aee4d068a54c03cfb1ffaa6be87450080433bd092388451722a152cb05c5f4f68ac0c769c12afbc6336830ecbf2dc18df23ee2c14eeb02b1f779f726464ec9174e59096dcc327e2ebf7f67cc3249de940edbe1c6a85bb0c951b14421b7176d553a6dbce882b5c8548ae55b66c1af0788a07d86fd8b7c0d84cc459b811bb468755a283e5fde2f18b5e43f53236b0ed44d8478e2c79b2b9111ee273fa4c4204685c566d7278e5ab0ae2c9d28235ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c417a86e1805671d59cabd11330fe5685cec3c1ed302ac2fef948048e7de6e77491cd17f76bc7a93330543cb84ae778e7a481ce7eaabcd935a5d2ac5beb08928a53aa1975ddc40ba13c68345db60bccd18fd491713656bd2a2b3394f4326ed1bbf11a47897e2c3370b59ed97c37a3624432070b1a1dbcd69b1d6b9bf504e6d4f0aa89db0d5ecd24f1d03ec58b9ee865677d63b44dc292d01ad4007bf2c0f4fb2d75536eb662c97ca1b6297379be00f487587033645e7b5a2999fac10b9ef401591fe1e5bc2aadac34bc7b432c14fb642f4955bb39aa1bfce1278a47944ff98e71f8ba812f21bfd994c221cc43750469c8ea164701cf5b5fcf58b76d48a2c880f77c45046e009b74c1d224774caee2358e88ef51412215a1de466c3887d5cb7845dc8fcb52e774d16efa508ce92ba5754776a3ba84635cc8a877cbf4970368e001a0c8274ac98acc371e547aeef0a15bd0e41e980339128461dfbaca4f01fcd00b894c79b162f38feaf815fba0bb8c4eae6d4686afa5416099469d3853178236981f2c44e5fe1892de9c2c3c6e2c6507a424b5de999cebb43a61c3aeb8fbe7d9adbd1e1e5472b749733cac5f22b8f551413c6adb26b13a7ba0a651bc4c2cdfde56caa814571e904c6c5a6fd61dbbd9972e4ff0ce944b9baa058a2f99199f92ffd0e6d3091982187e8475cd0ef0ad3ee464866ae4c456dd489d67c428690cccf7aa8423eb871aff325e36e0e7ce2d3dea08d418aa8a12cd80ac5d949a8505b0e4c0a1afa72459bce9ba133a57f08416bb97f0712f37792c4f75232faa3e54f141032433dd7c62bfd47f962558581b4834076c7b730b22370d734c99892a318332a22bbb2ae15db8734c690eee4c2a422c9dbcd5752334d950b10929191e87e26c8abad20e79615905121d980fce48b269e94bb6f62c25cfb46e58c7fe14576946cab2e6f84341e1f25632889c304b788162ca04af3c80893d3374cb11c01c33fbd9dd6279c58e7602aa47b3c8e696a495150b3ab6572ac7823a83a2cf901c1186086c90debc3140a0fd4706a58e6819b2a1b4014604c6287a60d8c1c3c52a600e67d1eb883a2f849cade36ec02949499bd90fbb02e24113f2ab646a732037d82d069990ae99c21ac861cc520af59dcf8e24288cbd5640d9d88921f0b897991095c4be862833e7bae684259c02a66405a28b1a3f5ab23d1e707dbfa07621891243789eeb5c3f0d071ccb5d242324da703bc6111e8d202af3a6cddccdac9b8ea4f2090583d99b922b384757f1ecdf99a0f8723068a4b2eb3a2e43d2f7f2a51863e433294d6119c3d88da68c95cf4d61683e327758074d32ff205651254369481fd76bd713b5f3408ec9fa78bbd059341efbb8fa953a54c236790a797d7b302cbdb795f530b5716f667fa8a18a1e4cc932e28fc649f0b512753666d19aaa537ee5102cdaab55fc084458829971803bbdb2a954d8d78e73dbe0e665032dc7df70132038a1e0c2eb7697c494a67eee82373765192884769326739aef1ace49768dc8b8ebab964689684097433e70ef790f83d9db879dbfbc2328d26cba16e306f870b7734b9bf3146e6beffd7f6035f417af548d43e1b9b58c065dfe58a19b78dcdca46da375dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f9052fc164027acf7cc2309e17e3bdfef2dcaca60e3a887321ddb26329138f63bd5d21e890685983bc955f7d3e06d573259914e8aeb6839cce3f68b317aa5d52fac17f06d96473cc3144322495126c833140d38ff7ed50305843696a39dd7c3572253dac7a9998c8b62736472ecb48d2c4974a7e200c674078abf1db34b04c3ad904b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c58c5766ddd864601b50b54a1882f2fbec67945d421339ddea67cd545d3b0ffad55fcc51a37151c81dca21429e80ea9df8f765d5716c545fe48393ce540c5102011af29bbe7cfd06dc82c1824af9d5c6a377166babce18723a94ed30241e0bd53cb4461bb4d6ae440513d9ed4062a15564bbc9395b7940a809de29a07ce256fc1b4c2c7886e5cdbeb195ee0d336182d9b35feaede3c865097cfb55c9ea5bf56ed8e4a0599f27489e8ea4b74a0c26694dfe9b0f777847fe95ed38bad3f63944c8248cbe35a0878b649eca9d05bbc27c6fa69aec607a4e8698343883f4ca27d187d69e6e3aebb6fe5cd0976829d222dd4ff27d50bf6436d9fd73fa9622378b58f39f707af57803d21b1674db8419cd5599f1be683a31b5586b609ae8cf8cf71c741af0071fb2d468d1f45cb998a25398ef3abf72876f42080925c2e4dc920d374707865ff507d1a8d54b28a56fc9f5e9d48da466f0a5a4168269ec9a89558d1a8bfc60455e1d738e86947c2fca6b20910ffd07a617530ca32b68f7a42e9d5aaf4210e9c6d2e939180fcd5e4b149056e4280449f9ac1b7449cd171c2e021281e1357e869559b583918ad4b48251fd84130c99b31a05d4f402120996ea5e09baefb5b93a9c03b18e78d82a9ce83e2b9753e1920c2ff96d5b717cf48d8b90111a8e6db44f2f4243d916a0403c405cfc74f643e715af121223b771fd620ff7361cfbeff3803a427f531482188b09e29121edee62f6cc0b62ab570da18b252571638aa772e00ed37c8cdeaa288efd0df21d7a812d2a6f917a60a3c9c98f882ed89869a32e5808244cff1b35346204892a1955d9c2ffe7c8203cb50dfb6ce2e3a1dae108e1c7cddcc583db0643981d8f32f4e327c68e608d781d7a6f868be2bc3258f5aa548a4e76179cdb28380637b5674ac4d3bca1952b6720241277ff0499da6c3fb58474418510b7bab2d84f3f64869517945cf789e655af06507652c69e4fca65b98b77e158bd15de6f1a746753fb8fdb90a02547552c59a4ebaee30a77fabfbc675fc7c30ee20e84a738d73c008c760034908cba83917dafc33c1a38b13a514a382bb92265cb6b81cc6e1582e7299c0c2c8b4b79076a56f9c20cb1576879257ac7e203b393b692fab9cb126c9a592921afcfaa0743117cf8c838b650eae6e008e47982caff893710966cf9b46b28a166e929a47ba55798ae163ba9ff1845898959f019364ec78fa57215a532a75d5402eba5ba95424678f3e13e0eb07b39de1fd25ffdd8d9b9133a68a8f719b1f305c4da7d876cea3ef81e58f80359e169cb9426543770eb53cef97fa2d437e80e743b17e1efedb755c436c505a86c3acf8e216d5400ee1e8e2e4a927124ab64e43932b482c3052d045e4c2b955ef3fa99c214f9658f52a14b4bd6ff992fcd9466dd42d3fffddeac8cb1974ae268b6f6812e60dfc6eb5f1bfd7bb55c2f3a56f9aa267766759948be5c3da61ae7a13049d9179fc36fc17d41d524e79133492e216652da27b903956c4376f6cc222c77f89ef5db62676159b92db256968cf4046190b4b2fbed0aab9ec96bb1bc9c42cfbc587f581d9afb50555f7ccbcab6747584c9a4f4648c9cc301c5c7d4d3a4f15fb145827d31642b809d4a6ba550becb2dc67fac84752f2d5929524ede80234afec38fc819106655ea4bcc2c2db28fdb5abeb9db9fdddc4dc634ff642c4fcc98d59d0b250941615bbf4f0bde09c8ff35aabaefe151d8ef2b068eff8f5913685879571c228d2215c6ff41a30a113535f5d93878948eca01282092a72da929e41b2b6ea1d04725ce12153bd7c7cfc8643e3e4ff6a8d03c245ceecbdd22a6eced434825b1a9973f502f8b5809e1dedb0d775ae03386265282d71babfc2d82db59d2ea7dbf9c9da92ae99d089d220fb5b4ee54975b01a072088325609299d0dae1285b061cd06bd723f50f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa139194c88ae6dbd803215ec05601f018a12178866eee9a8c8fac6c2c5c4b890c277bdba99ffd0fc3356293aff094e234837aaf9fa301c6498c50bd7a525646ce97e48f22946a092e28d4306491653c06183fa76151614d10b8fb7b51dbcca7add5cae8d8abe8a32ebd9a01374bb520640353c89e0d8a23d52d21fbbc7b04f600583d4a896c950c9633854df40de1d2805f768279e280b4d14dadeb4a90c80fd0f1af795443875f7184331d307aa28dba3fed73126d1d27baceedcf376de52a30f3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b15a001934886bdedcbabf89f6a81e8253c0c1bb47ac18e9c7b859f0fcb1d9240661741274f65ecd250ae4dde1fda613b77b5d2a88bcb9ead3757fc46b9c4b3aaa5c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3ee474799987051ff87428fdf25ed996cc25a3a81a541e5af7c58540a004b0437d416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d004ad6ad7e772d6f3c61c65a7fb255e2b36d8bf583044c08ab97e7e5e6b8442dd0fbeb27b75fd2c9163de2f25926bdd72f8cda9e2ed8a97c3002675f0847c9d647e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008aacc80a7392c51d971a98ef3dae6c908d9a14229615c83a5db97521dc4102c1ed18a269484f37d4ab150130b1073ad32305d9f522b66c8abe2540dc2ccb9dfdd54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d72565865be8bcc0af888594903ea0112f6c8d923c5726c4081e8c856110cc7339cef0e2d097ec6582b8a0e035a7630ad3052bbb189f3abec9cb29822cd92d9ed86ab7029cabd6297c2a33d33024ab77167f9d7b2dafd5445ee24ca6e13a366426d46c7278fef0b7d6748faf50278bba7f6d78a85a9bce97f75700c9e434209491709d23c599fc95a194340402cec351ecc78b946ea27cff1da0ecc2b1f8b1a648b1dcc10f799cd0f6b65f95c4012445497e5ba3cb9f51964a9468940b27bde98b487218fb1c1fc72e9af6b866f430be2a67fa376392b4db2f4dbf32772671b6ae55c25e5f2ba193939806a649978d68f366501643118adb9dd3504802d1522f57b4d813066e842dbdeade533784c6e0d8616135644147b54b3b7c9683b3c519258cc020830329d12b2fd6060184734a9cd627f38fc1c795fe65f66d350db920d4eb7a8c6b355be0018692b78a826d454f50201c890add6cce68d68e87521d94ac47218e13826d2bb6472a859ceb79711383857f3480c91de2a5db3aa5b7ade574b788ca812ae1e1a4afddf4f35ea6b7d1a930090c8fd609f43aac7d16a842c442bb37cc50652541fcce47bba1b0c592c930d77687c11e321e5853f492e7f6b352fe07a4425978dcc88a9c3da504afff6715bf0dd4782c98bbea434fdcddaae576a187fcbe6127bfb015601b8a2b27cce1f920a287118839c41322f35b0480d3979c3e551562f812a67806aa09a24a0bdacf72649724cfd21a25a118e2373e2f8bd6cb0aee8fa0ee63d0b94ca3c350822ca2d06ed587b7c0fc74517b4f4188736755f5f34bbf20787d8a719768b8f7572b8b1ba3934508c1f7875e96ad7ad2ed90134a61945c8ff7bd5d1912241767fd9a09e968fb229dcffa13e6b7a895cd2a5aa53faf08cef25177530187294de3a695b64615405c39fd007f2ef96e30bdb2f2a9e0a2e3e5dc6e8f05e8cc4b45b75060fda83c76ad3250b34103947426e89ae3d34e54ed6bd3a7ed7b6b19fd748a690cc0c06548eae9ba34b0d18b94399f7abcaa61a0ba2982f4171aabf1070c496e5cced6e90258558b59596725216864c4f48abee4184dc379a221b3830936e04fe773763b038bbd6b136bfe7b94bdb35d94015e53ef5bb5b4351786d53c9727acf6dc524813d9e94d53661ef454ccdde28d086b1981cfd60b64b0b68dc0b1554d8494e521b924c370858f40b5bef88d8371f70a7196fd6f678c307908a90a46b1285a9eabc461d3e4befbfc93abb8b78a2cfd38f17d9696a715a5056c42045659c91c8f800362623e7c092c69bd8f00ca8fe4244409963a7a862c4d8b004317cff23ddc75ca74729b7bc8cbbc5617483c689df4f00a3d999e842a6607ba5e4aa2b6c40b8a66d5c6242de16a2380ae2163b69fb18e17561101926a89adbea133b03ca731cb2a446345c62773d1f9021ea02a82c6f13ef7a8318383344b780d6169abe7d1657c495f0eaab890c2ebc8f30157dbec243fcb9e16313ad4c1ba25c4bd4f301aae15bf134f1a8c1b83492afe2a2b6c864cd5f7961bbfd662e058bcce698ac437bc9f9cdb1e8c8304af7aa0faad8fc77e33bc2a3f387947c1134ab17bb8fc0b5b6462c44ca078f97e3d3ab079bc62601f3d4595ae10879708ccc098f8d33dbec5a61262cdf4c0cd384a213a23b4996bd4ff62018eb7f62138867206850abb1f985e16b45e0b4c3d856522d57f9d14713915d3a2270d744d7bdbad0c89fb4080e8f7b3387c86925e5ab01a4c0603ecd0b2e70ff5529036f299bce371bb12170576db981ac1cfe8b173ef1f8eebd48e5b899ee9da2486595aeb2fc8daeae565a8278e52bf22d64f2d1513f4b18639889c11f7f9b2a1f0a5022f77561a803f8600fe5b6b1c986bb063ce81b7d777516d450f084f480198d620e19a287a1bfeabe85c492dd6a627cae0eee3bd4b19a7965746a9eb8f5047ad0643aa2b2e7419a7bacb810778d892871a090dd156f986736d42f2d4081de23f2e42324e9a417eb1b61eca072c27f21952172423af60261a7b31eb9c9efd82518e80e94179c015a02a7f04de3f35d0a22e59e07797c5690be071c9f4e61c636fd6d670e7410a793de80dc9135f55f58bbfac477b36b255421efd825355f4eb3b5d1484c2ea864a95a451000159d51af93870347035e44f02a1e9251135143b02711d0b13c507b263be8d9d3143d90df3f2c4f91ca5c21c8844353160ad778c795a4d75b35f81ac420fe9d63a9bcf2d9c67aba05857672942423d81304e8406fe6380f6457243038f9cfb0110d3fd9f6e6ac0c054b5f6f40d0d4a3833d7137479774a98e33e6188a7b81b94056d76213b358ec426059d94e007b2d5cbe50bf44e75e079c8751c74c48e64bbbdef95ecf9dfcb51a7cc7001d87b2754f6e6de57edbb1d1ef93089e588ad0fa91e57159788ec663a62a17b86dc63e0cf1815f7c72f690e30b5f03de5c1b7270f559bc3387514990c66ed46a70bdd5b53e5088da68b8bfd39177445b616c6349af66d22cedf5668d3974358e90c668f12bc6ae58e26bb3508d1f621e0222a3cfb74e99f8515cf7a8038ba097edfb6252d6ce6692ebcd26c07c228cd3414f6b9b8b9791dfc36877b7571ce15d938e708dad73d42fc9607ed32ec39636566678c057b50da9c34f9d88728d41ee4dbe7c3b2d053db19dffcbb5aa89ae706097b27286938f41930f923f9d2690510cb40fa57716d6c8783ba3f607255b13dd66ce58aa315c6dbe2cb9d207cd3f298e08406edd6f506f62c5fb7c81ef55dd22cd7db9b025dd465ad54e36495c547873520192f4939106ad4153e75e52bd16be97206ff5519e257c6ffb6a4f6789ed6f3a520700f5f13bc947efe177b8d4943c1e519da0f8328be3bc079ef86923cdfcdcab64b9cf3b6225a6c30a10fcb1575519ee669ccf72eadfb151ed59f8e1b59ad3a6b132dfe71e9c6e0b1be129870d681a85b4b12603da336223c594250c151cee344927c738b8411527b3c243d2d62ef564813b699779e0f69f684dbd6f3829e623dbf8b6b3d16d11e2176def01fc99289c788db10bcc98766b410ff0db7bec26cd3ff5e24dc2b73bdee50ac9ade35e8774d35f871cd8d2b78a9e5f3f3b5477c2508a9788854b73ec49482fede73690170aaee3bf934d51faeb05d2bf06fb90d7899fbf8cb7dd9ad233f4db71398b1f9ba2c5ee3cd07081f66180a59d89ea46e796679286bad671e27ccf49eef118056a6275b4971719de1d65377a34f772e9896b08d3189de5893b62458f29ebaf9948cd56cc56f03c4c041d87fea0d9b6e697aca4bc2c626197558886430a728731e0714a927cfe81a00652d82bc25dfc8f0cbebd6703b3d64048d97a1da450621e6cacdbdf9ebc206f7245cd2d79bf8650e7b9024083edd972e3661e0cd007cd350697a7bdccd5b930d1bbbd8fc122cacef9eee4140a8a0ab11ecb83f9bea5584167b81f227642c910c9a4556483b10f0bb072fc4f959b7719fe027b5b03cedf0c3e96f61d99c9dfeb5e652e289f337e2343548466c7604c70426075108c3cb595f9e078b4ba57c0788858854a00e792962e8b525dd09fcf9c0d542e3215df61f21beafa1921881145d2a4313fbc960d9064c4d7c44ba636ab7ea836688cb566958f017a8f53e7fb5263c03e6b3cb9402dd4a04ad5fc34f76e43a1bf5010a850bbf9bd64d86b922538de9367ac9fc5afcd77f966e59d890c4cc27d6c41a505bc7661cf9589bab6dcd019c1a5fb11a167f7488f52a501974d31974ad1f5e31188590751d45f8b8c5406190f3b0e1f8396f6ba6e2be62dc64003f1fc99c539e65ee7847f7008e5a13d2fc1b034f3b8ff721326de5c7f2fa8138d49ecc6070438f8485992c7dec8c4b7f6bc054d1a85a282953e46691555b3431557ee0ae50795a0dbd534a05c80b7b17a815e0e5f16e28a22b5bccff56b0ad190aa6965d2648a4c1fe36c17e370afd9e81ce7c7c9701c1060df7d703ff585a073d400a92eff376780053363db4e478b3f7acb3a840621707f70bad1aaf853c73466d23006a83531c23684ec93471fd1fc68bdacd588532df7f03425c7c529e2d433efd919a6a469150f091f280abc8468a0d624a81fe11c6148dc8f8a3a863ca6ba14ab86892e619cb8ebb7ab9e2737144502efc84e0661b3dad58c102b9afa1cec199447fc1d0f7beb75e9940864a0755642513bf6ad184d06bcb9bc28c43c745f69f626964820efb0fbde0bcbab3c3853246be3c1710da6003b6551f1cf2fd9922a71e99011e978528e8982fa860ad5cd477064f9f9f574015cfbcb25df1166facd4e00482364098076bcf24aa334824162cece33de42731e5de924f77e604def702311d9c6049fa05064f155b4e926b1a53b1f403a2b8daff904064ffd4bba3dcc1ab271c426ebddf19dc7e2f0453dde166724cbfdb32778038803c6fa35291edcb3f90b623c31c2921bd871bdf4efe64c23ab1c867779deeb3bb9df1c909d8e39772208d2e052f898694ce3cfa579e1c1c09c7a6dd80d8dec1c43a1ea2592d68eeaae207d1f48ed3074ff6d851856479b823058fca5f83372c6a09159b7ac8d528fc5482a7e5803e571a43203dad44d443eb36b53e014332c0317c151a29791060bf63c9850fc1b86968a5fd8e537e329202c5761e9f48f7f6efb02d31ba717c27b9aa85423c170b8c954248fa336a186fb9bce5b17d0d1b0be0fa890776e5ef588a1b960b5265f7c55ef960350d40da0b2cd5052cfa79e85a4ae7abc5438eb27744d10fbcb8c45fa4a9d6a3cd4d5bbba54badd6520a67dd4c5c44ece6d9206ef8e1e7afec7c1a455751cc8da294a0fc9ef425aada8797a610b76b769227d217545875301b175ffe6f1c94b12c97dd3e45a25f37118f7a64229e1cad1e05d60b3a7ab5a48aacfb920a825246e99881b1058ba7600722e6b61fb55e2c7c6328ccd8aa49973bcc04128ec1e38119b7f6fc0c2e815e26488ae0c5d5bdbb2253078a7b43ff06048348affd94a1bd443add43d4b0e4b95d1ebcff0eb549b54bd1a1080c7032d157aa4ffa6fe6ee0b6bb2d451e160e2faead224e48190cbd990e3e9bfcd67db18542e1d9b8796f2f1ab7127c153f393ecd26576554519aa9e2bff282ab37e584b144acc81635589c22b2a649cdfb93a2dae417954bec07548039c3054dac13c4d3825dc1758dce2a80eded8fde4d35cbad5668075e80aaa3186491b7418c6baaf1fb1155950966b79e70d2cb4baeb6f699ac01d5d27a14420c6f9092dc3bce8286a82c147beac1e592b3fcc755696a49a34c79c5b1b875e1b6f8e3cf42e3b9635bb5d2dcf4b1b9fd769b71459b5d75f79532a5718995ddc52915961209ea8d19ef7ceab38de87dc42c883e20b8b913ff0e92f834ee484c3ca867e5121a5b699020274e032ab2075e1c630cddb73e718a419fd5f6e9b35907c9331e9dc95beffd75686385f0aa7f6809799420ba3a17c25e953a436d421f5a5b099055430b596fc1ea80b448eb587ddf3e28e301c3a6575f59d9c6ba1d7c31e16727ecc9230d1321a656c48ec0e3f34eed6c7de20ad998b09796ce5bdbd43c3e824f28f37c5b16affac0c87173fb50d11698f8b88cdc405d2b4eeab9c6982126fc3b479c5fec2ef5255c832b77171e119672d8e3d45b824a9863a7b5ffe3d504d506b46912c2dca5710cb2599211fd930071aca8cc2a0323737b0a39a31b8cfb381782eaed73d4d231f3a819050e72b85eec64e2bad8646b807ee6dde362fff857bc3cbbbf3a5c9cb3f7b177f3478670c5115c128e979c1825a56925dcecd61813f2cb7d323c8793a2d6e0ddc8b98df4ac115868ebb82e87e7f384347e4bb61a991a925b9367cd562249fae618bb9ed1ccb1f0377ab136af050871a4abeee5f1b8323a8b7c09d045305883bb279fe9fcfb33b59102c6765862ef7ab1343499266cd0c71250d17a4e2fb7f0de7cdb5d29718014e6b8232c0fb7136dafb239c30ea8d9cc911e4a729c3e298e29c9653af5212a46f6337652b1bfbfac89480c9007ac3d38a1068fd90f8a8c8f3996a2f7ed831bbdfb9c6081be6792fefed242871b6dec5fdeb175f79405cc0cc586f73a80be3920aff338e9bf88bb1675250e913be122c182d637d2a642821b0a51fb0c15c134b72af8bf840288a2ef87079e7837e67a9f9e33255d530fa69d4e02c279336b313b51f9544b7d07ec79eb517608837fe33cd553547af8291cab1774f5fac924f254113b5759227bfa054ebc1f87cbf88ae8c9090bd6fce45124353f3d2b969efb3118fad7ceb6818bb0e60b8594a71a8e3d00a5d88dd0c2905b330b4cb428b46e4f3b755613f56ba380f257bd44f62c88cbfb124d038ee35627a3300366d1d7a97cd6ad719afbf60af460737dc92a290482415feb39e354be8d4c0a9e40632a4e30e6d5c1eb852ab7c4bb464b5b55fc9c4ef4a325ad7fb366f508c8b77565c6e9c25db0204ab4af6e3f6da063dff53935dbc5c59a8f16274f3347dc4839501f3e6ff14bab48c5cac615e15da49a9396595dc38d8ac33f18fb4056d60d16f56e07ba671d9385bc5ec0289ab01d9f14a0d31ebe073381bf30cdb61e9cce86edd9fbf29567cb571c24608b80b8d3c3aaa5ecc9c98fddf869f44167a6ba6cb094b06594e848dd6201b9ebcc0341027e9063abf2f42ad11551b9bed926f8a4a75e56f1cb90ff90f55bc59a51400cb9af894b4c0c9455822c2a1463aebe6c79ac28b21322c04a7123532e65c4ecb746e59b45ee19b5b27fd1b4a36d15112ae6e1ee75216bbce61cf374256dc4b3eb40c399a91084b5b58efdb44ae287ac360eaf71a036c477b33f65850a5ae41ee1fba56e08d170f62ca5c52800676e8cca05ff0675e638574211aea1072d61fed8b0723f1667a630962aaca5688cb583f933fb630eea5a9c23d2961207bc714f8628129652a0c6fce84b5e421f4a6024b1d968cbc2312ddf2fbf6bf91b53586998fc1cb5fff7d4fcf30b175bb49dfbf76a41a285aafd7c86cb4454fd9aa1910631813053cdb12b2a0fe27b0c9f86859c3f888a4c44d022e87b15931be7da6763559bfd49c8c044f7671847f8da3aa6f1f791fecac4c45627284fa441febe93fe8105f1f41c29e9ae92f426596ec461a49e3ef546b099d37055e77b1beb51be99a1ba664ff74a6665b789733af1e4e0eb4ab5ef4e73c5d83455a159f9eff0f9951248e0b611c7256e3cb1039c205795387d3331c34e9c3839ff705375e0ff487e37238debaea858cf9d7005872281c970030989a11913c25ccf2c1e6212bf8190bb63a4af97ad9cd8cd6527992f8706f68e072120fab286eba54905d0ba2a2cf06241ada0b9952280b7aa0b8fa08fefe8799b3393593049eb7e7b4381dc414326c08ca002103c23a8a195676799693ef516e4a0c06bc0ffe92715ff0e4600153b4200ce73f8491566b08f21333506b5f9a63ac5578538b283f29ab522231e4a99fe789574928fbf44701511dec683cae3f2e81e137a3c0290b6df9b6c0215a64c26eef06dfa826b4911a7f221a0c7f50349de3c02ccb9b51bf0b5b93ae91ca7dcb6acd9b977ae0665a60882eae39f5ea67432328b14712594f984aa6242c5cbbacc165b4f904c7677a4d93506c64b0bc9f2f927f2ec547f074429742b318abdc45102f6d603d7cabb7026456e172c95ade0858030022c3d4694509f8e6303f6e2156d9ecdec965a9783b9454c251be5b0319b66315346f5517197255c62d46bce59ff040eb07b8aefdf84c6afaa0c648beb7ee6da572a13876066259c8b06a80b1b3b199402e707b518fb70051d5bf0d001afa71b5b3a3d52ca603ba0f61e7d9b9e2928dbe780b0d3ce54221747af882d18256d1fa540ad2466b215781ab69eb08e3eee24faea1f8b90e1b4d8e69ca4c0a17c58b9200051814c7b25534104398e9e2670390f4d8bacb510af3ed924728b76755baec53c54ebe6f17aa5ee092ceae95274372ad7964c655a1492f1e1b6b96410fa9702625479fe4dda71cbebc879acf8aceea5e691078e985401e03bddfe9668271630567696da510cab2ec29765cf16d870c41fabdd815f02c8d37d1aa0ff3a6db029830c713805c43946a1e30ba933b8bb9ce1f76b48742244bad9806cb0482acfe5bec383c0bfdb292366388cdb94d244687c6b22e3f02019ff1b2fa46e4d7645a45502237d8447c4f8cee63379c8f7fc62b6c6a9527effea9f4c9c0bb1f1b88eb3a65a014146bcbe40a1e3f62d1105a504a3b456f88b7c3386cceaf8c2ae517884ba29a035f7e2d920c986ba60f6e6a6a0a2ab5aabfede3b6c0654c3fb49fdd9a2d40c3bfb3adbf23814fd2503fb4e6055dd06c99cdffe670a0b3973e4b6e1e33bb4a98e8af5ab018b00f1abce739d3fb7cf4d1d9b8cf2411aa24ea56568161c24ee8116638588df0a9efaf4a661f82144aab6e7e0c75f7666d15ba3d54a21efe8b9702bd7101ae9253ff3b3bc962cc64d664c0bf302ab6c11cd30f0a2d7bc9d2c3add2fca135946f92fd268b6576dff6cdbd7b7f107bd8efcc16c183899e9aace17ec3717376c55273ec4daa43d5211f87b97d9db54356fc7f3c83d0057b8fcce06e1f8e4627e00fa6c8a9b0cf8e979c33ea0ac6b8a9d4b1eb659c14fdeb95c1244796857649a5ed540dab83488f4990dd04834480973d6fc8668271bd4723701a87c40812c34405efdfec64236cd27636a0ddca768ecc2060a428450e34fd2540c05e50d568306430c149d71d5e090a7277d3c516b0961fb771fa449b1707343ef5b4120aed94fec437c8f23a05ee4dde0a32c7d3730af347fafd017a407a7506017ac7eac7d403c231eae6905950a0b7851c4d5ce9a94ac0e0d6178db8a17dbbeea5b83c0e316347b7769e8804186717332bcd58f4e49163b842fa7165bae027c708b520758d3a42649b26db3554b75d2c516ea696bfb867c2604d76c10934d51ae69ad2a9be20aa0c3d0bf18d5800b02be1adcf79d62cd9c08e1a391eec206d15d7729a12068432ee19a2de9685180c549f6f454cb5ca617fd1a560d54dc88603884b643d6c5da421b5298e92092fe4ec6b9ac00fb534294c9b8bde0db29bafd06fc163c9acf0b3ede8535f79266188a1202dc615dc03a17c010aa841309852da95b36e41e19da455505dbc61b66926cb2dfd60f43630f39e435eebd6dfde09c7d91bce05ddf4d31ef41b42a851fee187341aa0b9236b850f55f47bc221d10d006b73d77069a351265706232e9e56734c709621b4ef7ee4a5c65aec6dbe728953045d7ca27b8c2217904c4b29d1af3a7cc055d1e6b44dd19ee069c4985644279b5e990d5877d764ac8963951cf83e741941be7646735a1a0ca1540c3ce86495e9807762306da37ecb4933408faa705a63711cb39e8e508a01dc116548f80697821a3e7e2087fb658ec4e0ebc16b51d6f841bc7a747179bdc147083e6d1ef6e47da0cd3230f1abc333b3913dba70705651b6e0ac69f0eb769a9e4ba403bfc3d07333bc02fbb7d9619eb8d737d2bb26469c0f126cedaf84df43b35b3bbc1457d806446e690aff020aefd0dd2c30c811046069ac7f85085721b2bad35ade5384108f48083118fb90ed394a53c0118c47be38070961a674d88aab5c17d15b7d4dc091ec6f135f2bea9c8236d8393b17788f143c904ede43f4b9f2c4651c0804270d7294f2def694280285548d097a0a5791add4886e353bc691a8bad30c47963319348078d003db2a2b6e1baf17e692edbf0c227b07dd2596428b40137fe0fc9c82c0424e335a3226996c5c0d1ebcd895959d8756c27ee9106a01b22f42e195d3b91426ad7cf1b6c58f7d67350ed16d56c2693c19680006a76b2bf663c28f051f3a5bae1745cbbabdd45f5439446fae54929dd73e6b070e0f72b160d34ba68b61ae1f2d6b5bab77d178ad1d18be75848b004b83141698dfd6afdddd024b6c92a7362e6f30fdae90975f7ff7953b06c0ad7a4fcfedd912cb78819edcb70a03aee789b21858ae6302639353d06fae120d61077901a55459b4add1d8bbe494bc912c2082671f99e45d0400899766b45a840375c437d7fb92bd01ee5b2e6927b19ee82a4c15d7674dd01810104d19140c31bd37c511ed2d9c87ba43ce9d5c1deefd0bf6f3d49644934951eed0273e38c2da56a3491ee79cbc7c6b0cdbacbb6e440909e9ddca3d70e5d3e4269eac7b122eb22b25f87777e423677a717359955e2aa4c5e971fc382371c8847462180efc4b0582634fdcc67143fd01d8662c495ca550b320ac388f2c008681edd1a98ba759e3bab1b4d6cd96821ea4187127529660bbb6beedee53df5429558ae93f33894ec4fd9908586b797a9fb32976650c53ab19bde4d52d3bf1e8c354cd8ba96fd3c2fcec30126c5a063fa4470ffc8dfa94c23fc1a29dba83bc01e2db2442c88e3f6cb7db703abeceb09e5fa7ca7c16f80fd11bacee5517983690241ac4769aa9aeb987406d529e2cc4ac10465a7b629d5578fb5927189524c21b80da5594c85d8a84711844c76e78f1f8bac423a00451ebfec45b40316ca53525dd5bba2a63c26ae5d745760224bf54041f4e23b8214d2cdad535dea1d4799ea346b33998dcc9c0a34a787f03665f0ec414b315e9081cae26a31b8de8b15eef842e8adea582a7f8c3190e6efa32f8a27a549094f89a0b98b89b339204ea9903b800cb6f6fb8a62654e31f8afd74c54255eefc57f544942d4701e9acfa3c512d055e83d242b657f2ecb517a50865c46dd46c919515d250e8119abb743c9c4aec5367c22ea7e54f2957568dbebade419fdffc3f33cc360483c97a076588eb540b9cd160a0e1f9aa1e25b9a0bdb283ce5116f37eddce1adc6cf4e39fce480867df4a80d36dfff8cd4b1ad7dd733f72ea5356464805e1dab3ad3aa1ae85135804b910a1a92ee5ae466964dbec4df26536338ae66927975a2a9da42c9305cd01533dbecbc59c2dce376107e8a85f52dc2af05ced59bdb64e9b804f5542496007c37cec7cb014098325b346d2f49ef95c56e0bd864dc63b365b4891d33bb91dde7e3e1a1c302bf4a42516d29f46b0faa43f3f5830636ef7de2851818e02503014b03beb832261bff5cd23a5aeaeffe29009e7c3dee04617692a10be458efcd6b43bfeb87b33482af2ea3cdbb82a7b8226f0b60fe2c95deb555ee09f23a751f542f4656c5efb57eaeadb07a37fedc21819cb49432962b524c7ce6fad9efbb97e713dfe31f73cffbfc7bd439b8457e1c3abf1b4be4e2b5d45e307996bce04a8df7ca41d27699fa0111280ebf787f93c6b650ce6d480faa22567de5ae0e83570c92cc0ca06567ddbe1debfb38a5d05a8ffb1e3453dc3c074593cbb77f2bf17303b0f368a1edf1dbe0839aa9aa112c9819a2ccc83c56f801135b7dc70d38dd1c7050ccad889d41a47f57b32336c513d4a928ffd7f3d9c45d0752cf6777780a1385b5e39a9a7a9f52ce80ad28cca3cbbfc5029c3baba02d3916871584c471b94d5507aa20951f0e5b16f30dcb836726f1080b3fca76f265e93e7994f356b9ef1bf88d8d24e01f817a37a6d6d28f81c066c3462cb85b41f28d4fac751cbe981667ba234c20f2c55c630a0d63508bbbdd5c110ffb38b589dee33f42279a467649714a2c553fd171f6b380c5c1c4a66ad2fac49edbb37788e748d1e72ddae87695ef5a8b67dfc7698a751f033bfb9e21ef1214d93670451b19f9662d192ce3e2a0c5273354aca32fe495222d09c340f02f6736b7a9d2efdc211294e629c5e27d91971f4a36b597d4637ca5e2ec6745dff52c9f744b473b70f27720b9e148431afa626abc26c7154a19ed98913282a75d8dfb350bad6273e31f5934f1a72dbf7430c275e373d769e1810cea313790f7d3913250b46256826fd123aac93b7391f96bf9da5d35aacc73ebe613373b9120885262145447cb9a0c26155743269164680f12140bdc4b6a0b9946899dae0b3d5187dcd7ed76ff45a03c9cb4d9688342c531456818efc5675f838efc5dc1c15ede45277b51b45d6453f7d5633e7cf45a75cbb68a62bc2e1ec86bbb760545a7c78228e9e61aa3daaba9305e9f68b45a280deecbfeed2c269260804a3c07e50bb4e055e6638d773d88ae8ea412467e1f57317261338aa1c2dc509c25164c4be048f3f17303cf09769255923de86a41823e891f4f539202fced95e610da020e9cc1af9dfe5d7d29e3991fb523dc276989b1853270e5f2be200a12dc8dd3b0afc3a38578ba45806ddccec27d046f2324435db4621c7beacdeeb488b874d8a168ba9cc04eea995d1e85f7f0a0e25e4aee18cbaa2d997431ec03a937b3f6853cf1f18b521514b4bb0168274d8a4adbfe9cdf4d71586d019bbe150fc7e7cabae0c2147f083eefbf1653fa573241877da65f3baa3dd78f47a14c8a0287b3e91763ed056dc382b8ef2cdccc7b0ba2c30311144b75c0052eaef25895c5576ef26d933531f6aeebb5feea64eb8e3e33aac615d39c686b678e0e09a5ef2e2b89901f3b335708471dc56d692746958edd3f5c3f9c73bab583c8a08b54d83178c49b5fd8e3f588fcf436ef2c7a9d89f42aaac92eb037f2ba61cf6da5ccb93088617a1bff32f6a5361f2beb64b658b765a5bdb78ab63684fb126e7ac6574f1476557334ae0dea5b573b52348b2ecdefe40081ba8dfce6ecb278b98b9415ef2adbe8c66b1cb6556509f9e38913ab80755a56efbb337deef27f942894d73c962bedda5c9f96a1576a276c6c2e81aa5c22da85dbb2180ccd32a50c01a0d4cc61515c12469990e0b6e92509d587151d3e3cf481d85508ece1aceb25865ee6da7aa1f404d2991e5422d242d02fb3ccc7dc87c0a7d309cfb0388049d71c1bba8be7ffd4c931f89bed8ae1b4133c6367990a46315511e82fb4bf96463597710d73af407601a065b9222c96a650d18941e3122c0c2df54b387c96b175c57fb0fdf3169086fa9b1e1a2b70901cb62d6ed4ac37c8b0f056e72605b5b89fdca255d0c8f51690aa25ed83c54217040f6b85e8cf0fe88f6664daf38cfa55e8679d5a9b2fd5ae8b0ef847555dc83e27ca2b1933604ae657e03bdfdb0cee2f0d758abab04d36c3414be0e652e80ce0c8cad2e4376a773f2172c9a0d4a547cc1a7b2cf641268b0211c5a87d83acda99acec284a402c55a2757b19a349ccc570cc3a821aa807f73a1ca5605c6e1b8dc9dbe8c07937b933cd07a8a2eb062e445b92e171f5d84dfd0d409cc336f30c4d2b6e12b556e802dc2abdef3c480fe8aac5a1b7ad6f50903b7f56541916838c9eecb017c0a6e9f3bdf374bdcedbe60f4c87662a4e4bbab1ba92a977e7628704a7f85f03802ab70dfe4de4b83aee3e65fe6a760dd031344b2c48c49abf0feb05215291bea650cdf7b9743623106c293d8ee7b95bfc772f1b523919481a6e259691c35719428ef0c0d905810c5c6197c581684d37075d4cd40517838460e046cb4d2df5aa2b8391b9a8ba40cd44a05b2881f47eaede882830c26cb176a31278c65594d1b80a574225f7b3335e56691e24c85959306478ae72bf8694b5e7bfe4cf52549a7278d235a9e7e922a244b178a0e8bac1d43a50cad79a0a9dcf11d9ac9294a70f7daba94046222962733b2e6f06694eb110414b431d71c7c1cdf1c50d197bbded4ce674ed1d6fde3bde8cee86329ec0505f2b0acbb1fba4e6f601ac4494bd83f3ba3051f0bdac2c9c88524cab64849a47b95e7c984311d5b0bd22b187a6d71d60b62c0fc8fb1724e82a235d25839c65cd37c4c28ba940d23a4e3913974409cf02f6067a08e7c3bf914083d9ac7ec42c2f69755efd800a47bad54e389eba79e9b9fcbd6c3e8bdbdd64d945e3cdd6016d0cd765182ffdf10fab89bc4c935a15d651e8007aebbadffa41a5dbc52c53586f5fdaad101a081a1038a4e4641bb0b2de775428c6a7811ec7bbb0ad6cbe4e833b7428646f2511b3113881cc176e44bcd5e38ae214cf898ef32c3f20bd5df8375ccd1ae76ca14e1f84cade79e073f86ebf177ce6c267f53e2517f238c94ea7e4224b7676f2d5f3bb793e41da015355e276e8eb1422848fcbf69e48123fbafdb634f82573940b149e915aa40aed36ebbb5ba65b92d09dd0ad7640ca6f413c53082c005f7933f7736f945a2d8017ac52e38d86f85cd21c2484e086cd7dbb4a1cec26130d6934e30d3fa58f06895d8a5d963db19d4a1850ec94f1f333ea9a2f48b211669a4bc035469df3e35f552e8062145eaed922162f951da8b4086aefa714b4b19b750388e2f24a1357551f4811c1d64aa16d0e3c6eee5413f1754859a697867167856b12a25f035c73db70ac14539fdda149e30988fdbcf78f3fd22d22bc2e1137ef7992cae97933830cb6d0dcedb1237ea124c35668e87c97443b6d464ca7b4fc551a5a8ab25bc55dcbcf060af98f5d6c1e7dd8403398f617d6ac866f5a39feab30708d6bf957adb11e6736bc00d534ecf44b13c3b7a2b9a7ddc1a046d3ff11e0d98c42e0506f4bb38151fda03feb4690fcd45a231b4b51a5ce1530fc9fc44d83ce2e877ef6dc71fd30122ab44bb8afb422d39f3943403317a3863957594d4dde382f0485dca60e4ac7fdbcb2508679cc1c08e01e045a56950822d3e77cf7e9bdc40e4fbff58f06225e8eb257f2f269d1a6d31f77ea161869cf6fb56ff7d9ce32b3b8f23acc9df59108d013d85da53a5238c78128e0911dfa3c9f9a9765038be4e2ad324c0572c746064109dd6e9367c719bd3b318c550f108a7536e79658ca3f0bbf9955ab748d09d628eea8ef01e97f901d8639ea23706279df194564ca9cd1051ced2631734a722308567c68ee25c317d0a59849be4e288a1521ec66068ad10b23cb89a43d4feb3ff85039f17283dfbbddf1a0fd87e70dc279b8bc6465ced08aa0e70356711e0216a934bbaa4af5661028a768436ac46a5893e148b9ef86b9f9c27133d595984f3c24b4be2e2b0ad6a5ed1015785956854486a138fa1f6f4e2c4430fa34794202dbc494c9de257ceb4c9b289c4a0901572af7aea63e147de8c4a58c8ee0787c94886918198457365e41895cd9df2eb6c4069983c523b70fd2ec870388305c5faba4e7dff14521ecd99470c491ae8bff935944e8d86bff94606cbfc2447542e573a014dd7dd98c2d3799cd7a736a6009efbc7c8cf2fd13ef94a5995946c3c5361f3b5e2b0058db158b43f3e71442389a3f532d7486c0c0a8d9fcb024080e699d747822da683780c2a5c9451beee99751c136716e1fa53df19594fd4bb73f9a36ff28a63b54be65c64584cc279e640dac5ec41346b345d28a428314aeb86f7dab786ce252e5083b54623031600fbbe8ac5aa3c4d2c6f166d71a5f7e7f5e7c3ddb7fbe223af23d51dc49bb9fc96b8cdeb922bf884b5e0d16c193629eb252d83aef52e580d573869a901e9298a84275c5ac9148ca2deb1026a1f2dfa2f177fff5d339096335a8398bdde978fbfd1cbc851ce7d03e78bbc78a1555a54000c5f3c0f9fbee7414cac43f9281014d5217c0f86c568fd098385f7cdf06d7bdf14310db326d1aee624a2b1d0c925f31b055004c2f0dadaef6bd4b0cc88aa31b5d2c33c9d53f3da3b96187d9dbc085e8f1189e4f4a413e343f969df0b8bd779ef8934326f6536983b13363531528358a40c9fc6cd07e97b4bf27615efe9532707bc0a00bc80e2b45047c29cb508147ef2ec1b961c7e1d2b7ea92734a22ef32ed17239b074f237a57557dcf907b9a538b8d19f152d19461c98a389a54f6c3c8edece85908c9f47f4e22acb0a4d7bed5e46ed90f46a1d624b374460a57496aa02f32f725b2dcc95d8b20749a00b62910c8c8d3d921ac7915df3749e2f803b7744e4be908d488caf7854e690b5e7405022df6b722609c1f676f336f3efe043ff20e5031a2f0a770f525fea20096044a2b65401a31a730d3309a601d7385dea282b782315b3e3ca65d91c6340118979c3b130143ebd5812f4201897d6f8be561a83445e838c620619bdf450383911f66a3a9e017d53d87507c7e351554eff7749b3318cb3d621d7a8d90013a247b44bd1877bb02650942726b50c093323add0351495ef1134002a0efd3ed5a2eb51c2a0dde0086883faa69fea2b8f37ed2115c2f40bf7f9f890cfb4406b692c14f07398213ecf1954bb5f19e8832080122d0c5f539346a83d78638132487a16464ae4445ec6ed3418e1d041537beead9905f48ce5f16ec5d51fc8b6d1c56870674d81b6f27df9223511d7a73275606faf3eda3aea79aa8385843ebb4a4a45e0c26687105f0fb1c57080a723a2c940e826b30ecca4a0762542180fbda7f21b47a4b830e9aa07df8c49f0d4f5acafd65064dc7408dafa532a93adef0bab4d44c2ff45f661c23600d3f18aa50c30e9c37e2b79b1ab3ba94e5bf7c7c6dbbc741f9538d492b9f4344f5149e3e34bf03c87fd3746653fdda68102a24fc45cd044960c88bd916f2359675b44dc4f74f31f9f7aeb5796fdc51dc46583085985bd1cf290e7bb02e582e1ca97f06e7d11e64a06eab79c264c544fc4d144ebaf7271c48fdbe4c628f3c0f20301bc800a75c763fb724f43afda3d46b7330ba2743a034336cbe335068c6f8ab836fd3164f8326275ca44df6413fb6f6ce03baa5f2f39183d121d2a54bfaee9a3b9fd2fe893b20ef7cafc6add41336945b13640beb0f0eec20993db83547a6263103e51d3e433b9f2b00f467a2ca2a3425c71a45fd346dd97639b137e7c73e34d269f2c69582973881ff0b69942a186e3ed4e5b2156fb09ab9e0a66ffef88eda5b47c3f7d235f964405d42189fcac0b67e0384e44649e78ba5f0cdfdcf71098e008874edf241309bd4865867169db5e4074a114b286ffb8e5e4be14363416d7b955db161122538cd67952b5f6510ba6745ae8fae15a263ab436437068ed4a9d7db7b6904d9037bca258aca5b24d49fb6f6cbeff83e6b765120ded6c63de21323f917c39b4a357f33e2ff76d97ca63279db8a959d32bcedbdccc9806c14c05311d7032cb79af8efc984fc2b3f2a5cad13885670d8199aedd9a3513d3301a4a15e1e407e631f63e5a3572544ff5e11372d11dacd64e7f3016dd6e1c6097e5d8c14bbbf45cfe1925e0cbae15db3a482e1e7e16e3fbcc8de2f3f2f32a93de4183e84703d2a66273f0d2fca1926ba3b5d16bd2c6bc7eb2b6a86c7cb0ef4df6fff90a11a7018c4398998dc5f31f21f491fa1e98ad74498c265d3e08ecbec04a172dec094dd2170abc92d3ce78aff96f8e15572a218527ab69e7a09aeba43d804acd70b1875aeeef0b554bb7f446bf88d4049e18129d132cfb93b5b8e0c60a2f5a0f4c7ef51308755e939025313199fb01ddcb40bab748627771c04716cdcb0a95071c490d73203317de0ac1778d6eaf0f17c5d40740162a2cd805c2a1cc85269db58034a60c492a2b108d3f6329c1b3dc78be0a59f984f4af01a4832e62c46299a54cea5ba359d41bda968a0145317fdba47871f7ded4ae459dc2b561941ae8f2f93b49f4a393103f955eb3b16bd3f2498736db3d0c429763c72488090020791d30db8251fb94af851cde59fea2df901f1c5d91f729ee1eba09b5f213e54cbdc1e09bed4c75e19d80a0e6793aafcacdb4b583b18e6af0591882b72297fb4225028cce7d4d37511f83ce51ab63ee0c6b9191de2be2604e36f4f7b34e5c8845f4050fd0e1453d6316000c89e8b89e475510ee3261b97a8f2a25ce64d9cec63ec5dd64d39c96090cdd1fe9e9702c86b3ce5af12c093e4e729585e1801bcd6681fd3b69852e534c6d7e5b0c998dde881189f6babbb7617ca3aac6d412161ec468d2a08e7efd2089f42fa73846a71c1a8e53860f46494b7f6bc5c6eb4cfa89be34558b951eae7866f67e8e675f0d64b17c74ba57fdb57be78c4f4decf99088844abdfd7faeb8eb9f32cf4544e3acd96a7dae2e06330892989290b306a884640642c7cfd7ba1f6a7a08bd225cebefcfbf355b5037de358f78d40dd8dad7717a35f9299d9d6c766a5f9e20e4c5312510448154dd185b5e0af75df6acb60487718af1812bc72991f922af712e631816d9e2e5c53ada9789fb033fbc399e3d5ec2a03e7e3b52d11a9d37214b81ef4b34721a8b63d983fff996a549b9d34db42dc780bb20d8247582b7be7741cf9bacf04750f02de43b8fd1918b957206caccfd3c867a0a266bec43c34f968c1c74db61d85638992c89d5bf20d9e2a2f934aa18279a9de718bf825cbffc9a5bc9a0683c37e27c979a6ac0172782f33abc27b45a2194df7a8fa7090421f7eb4d0521b5fac59225df9f82e110a06bb5c68a1660477fa09088492d0ddb213d2eedbb36d3fd24079507751d0984e7f5edabd472d2b888dc7db52064baaa5f70d0c48af8ee57a36ba6ed2a95f2cf09023ec77778a2518a06cd19f6d8b1ea0ead01054e4dcda8b04786c5c1cf659c0ab39592bd849cd14cca63ec280b8c66f5f4675920bed62311673db0f12bcaaa72c5c61a5f6d3b07df9c2736624aba1ee2458af30df07a24f0a966061247d249cd2d98c5e24eef71e97698e3de2e85dec97499ded31dfacc65f9151179ca67ab67821add612941661f90b8a5dfdde8a0f3ecc083fc8db75395719eb846bba994fc42d50f941f8e2fa2c65ba050f3a4200649fa504eca40ffd7e7bcafe35d79a17b4f75ce72b3c10f2d82d24572e93feb913cff04ea8c60408f946717ecc19604e9c43ec88a8d9632550905f723fedc8b29d91e916774e41db32cc5cb603344e151cad9f2b28dc120ffc807150336c59d8d4a115621bc754ed61dbb8ded526572090e89c9144a3d572fda5915a35e61e5c839650e148aabbad65a749d990937b2422d63b269eaab0a7f4e836ea294c2dc34ee2a7e239399d951afd820e9625ae33de3a055d55ce6a51525185d76bbb8dafbc520f362bbea32178c70302ad52d5a2842d7733c81ede7dd29b125dd972a8e5cfd0b05c7b5b4add2f384f29a550a479b3522e382ff025cbbe9110e61e5216c1045a7dca5074872eb1daec77d402dd2e9f33ee5996035673aede81262b9cac2a3b25b9b51de35763ec0d66ce6f278f76ff74451b9abebe8dcf8319d43570a7a66e8fe33e28ff85eab758a045fac34b4c7a6ef0edbcdb37ca536b54471b97c03c525b507b701fb30ffbb0dbdc7fa7231b30a082897e7028cbc9d666af6f06bdd1dd9d328fb87cc95eeb2da9a360f27bb20b791ad855332f9c3c846b4d039365489a2522f1017f163f299ea959d34fa4d9d21a2441629ceae3de63adc63a478b085f3cfb8f858f0ee10f3e3ec544c68d2d3cc43598b38bd20765351c0e13a53560c7fc5def29e0784619508c078c46060199f41fc413bfdfa4bcc432a8af1c02416e8db84988d222998170ff749f501b359154f097ee995e5366fd9e49a14739bcb454703e72419842069a168780a55767d59a923099fc88cab33fb9ac599d76a73a3e737b62c778eaf9351d9ca4fabbdc198d4641ce63fcbdc4809ac175f078c22f4d4c620ea49e8e590b5cdf754ca31cdb4a2986d50388add6e56f3ae7263cb984357a2c50504754006fde0f2fbca81dc774d6f57a847a8fb9f66ed19e02e49b0aa9b41ee36612754d07b687e5e18aee17e0fd2e057b14cc94dce43f067c6147bc1e6deec9a7ec440eefc1373d51ca4f584506a4ef5d7899b895eb47e228aa154f60f9358104f2dc35e208ae4daf8724658bc7ae7af6449f1e540dc4cf8f81399fc4c39c893ae468e186110eadeab55f237fe737c3a94e1a2a1e9851ca12136b0b128c2cf107c1680243a1c1abdbbeb95bb0548ad95f5597f2abd7047b313d05c368895859cac2e533f651e843e50bbb85e7ccaf117119dd0ca04f83f54ef05e1099a1a9546406db8331ee241ab1b3c78e52ede9d9cbea328f31f3d57dbab2b979ec6cdd8cf7c7c9318f6b090e6a870469653570be1194890d56c55b9470e8edfa178a0af612e0987e45715fe77d3020644fa212481c395f86c8071dee120810461995fd98a17c243121c95dec9ef8d3bd4e3a8153633593cfa1fa6624133ae00451c07344594ce803a96d4206fa4269ac288346aa49a6dfefe5ed0154f87df911d51b9c990ff91d7251a2f7fa0bcc5f760348b9724754e1f67b775ba8e15a5a5d918808cdc9d4cba59e76dcff6de3ca492f143ba89c06003239bbc1e9384f53f7ed9a611b38a18f1e50d4e0ab2f9d1e8368f6ae40c557a7827ee146b637bae68c9fca64d651559ebabe0b3ce564aca6939c72a2bdd2a1460fcbd52d0bd402de79802d7332a455aecf3f6b1d4c0341a1c823d05e408ec9de03d64d1e815b2cf91a527fc59438b1d6a065d2f7aa23c8105df714443fcebb6150401c55e47e730d7422e5b51c2c40d69f41cb14834da545a343c8e76b22392213a1aabc616372fbf4cf19366e79e0e5993a3a5dc620aa0d478a9af74b73cb35575e5e57302e036d693b2e5ab0288900c9028947348abd3d75b35b366d11eb71721c891f722d9320c7a253bb1a7aa8d147cb4e3075dd36d0e4cc87b6211d527441e9bfb102cf6ab18664fcf54db064fc03c35e91b6f84ec1441483f7da5cd05fca458394c453f2e263c869a0532db72a3fc7a6bb995bfcc7bdb43381b937138b2d9c5bf8f17f93059f890bdc18d3c299a4433fdfa8ccb21dbc9f091277d5eb52a9593e0c4ca2db4f14305fbe3a01cec24a0cecaf222cdb60e11ca9db95b682c115e81a52378dc5aa16960d468d281c1c1f65edc26b70137f65685562d3e2cb6d1bce709bfd51a34e5ffe1c5f96475e4a34de3c9bbd79045eeceddf3457197acbab7f5a7f753d7e80c9f822fa685e519e05331a018d4e84c4f2900e2f8010742c115218c293a3d102e80de9afc7d4c9d4a77315c8994434939012c5697d1a0600f57d52ae0ae47e139ff24b296b74da75830dc67a7beaa2eee6a67d437553b522df97f7d362461b485cd16f22301b2371a26eaa3bba1de355dacd8d6024de462c8d8ef0d58d2960c56c763739b57e1140902c25ceca7b956af37fb05fae753d5af70fe55e5e7a1dc79b6509230c4eb695d6e918640d81337755fb1055f4649118c546fc5371f75856e1d6345c36cfed7a039e80fcdfc498c02dbc0bb42b6fef69d0317bce9a86ea4f3837df0d177fd0e90e4d98893cab0a805c6f91dcb7d9ff7c4d6d6a5a44be366a06a7cac3f9c4f0c4aac031033217159867608fa8aeac23246f7769482dce04f6e36102591f316bb00903e34a84999c20df491d210e6bc1f11577dc2c07ce410c36a7e8349bd7ff5609946f3c11f27e9bbd32fe79ddf13ff610f90f7d26f770394fca27ae5116ac9aa2f7ca11dc336325813c8ccab83c5bd036aee7a59ce3b2cd56608a45cf14e380b187a99b7cffdb3aea4e0f07816a850bed067f4f7d27ed78bbfcb8f8b271449c5d58e19f2e5000ba2d367b244547bc1154f0456659653bd5ab820174965196ed3a96a3f7f0da4bd3b007a8c1c0775ad498da0d5af7da439d1f6f2762b7a9f1792d430d53a817f3a2ef41e2bbf122027994f3e98f15c668429ac645ca8f2ab02ff9c7b0e206591addfa3d42a1c3e2a361d0021384e7b84606ef072f8fafb6baac0cdd5b33e7f1b53b937da3d054da3246651be8a5f4d138130d34dbaf73fbcd3dd57e52e67e0dfadebb56e31061bbe34905983f57119d262544f38155051e58b31d6d4ef3eef3db64bb6d9c82801891b99121c796f6cac0c81d70e08705c006877e4289b861328c3c0ef310e86f042d6173827cc13155b5180fe86c500215208361b24f434421a70c69100c23c4e363e7866bed80b0cac8536fc7d44ab36bd7a323a1c84bf7d62e24e4244a65052d6dc0aff1ce98d39d5d9b794ef6adf354b0bad99b7f03a9b63f651a4d9b78a2940e6cb4d959a9e19a060ef765ed93d7e52c82f7d78bf21a27c4e656e146f5386f05610cd4a699cf209912c617c4a4947dc69de515da8a33a45e5455edd7ecf301d10f2e783caa251713aadf9de462c22eefecb67caa9e695e1f81faf0592c13246732a4c5e870a213445fd28cbd6f6a02e59d7f8cdf8f81359d10f03d1b00d2a0a5625ce191b1d92b11885eb16b37a14c3813383c5dbb5f376dd1ddadf0598cfcc60df2b4963fee30bb5ae41af39737c90b94e9eb2aaf7e8fd00caefbe924c5e760667dc96f0bc19e71181b95ac27fec3ed65fb371ded03a9a50fa4c1d5384e697aa47f4ce6b9b6d47e307d161a2bde06cc809a0e77fc57b9e9471056e66a5cee4386b91acfe38b463abcc5cbb51c9660072ed7e7a3f5efe08e7b057ff1303a3e5a743f5f2f470d4bd8705f4cbb7ba7546c6303c5febed3f3ad7161a2f15fc3a320e579c158ba626e6e5190e0eed18a71ad73bd10928cdd52aaca4611555d21687702299fecdf4cd6a3db6a944364d56cbfb7a8d5212ba1fe00c5be4042c5131fe68b515c9bbf732be3730794da45e205fb50e8243ff7a99ff6fe77c1ad34ee579c8b49e56efa1495289306ee8e72172db39bae7786bd40e89cf854bee10017bfb749510663f431a3a5085fc62035224d077bcd7408b5ed86b470598ff3ae6c03bf73a1ca4e879af4e178b356736d2caf1c92e410e430f2eb2a543abb9fbba1b54bf1a7f3163aab474ed22a637c7927bafa3543b7a2726c5606b16880abfd1d25a6012d45b3a6eb22323989e8fc010e399b4edd6239aa936fc105f2a653765c0fa3630bec146dca0c8cb038c0827664cf2e3965c3c279224f8557aced3db396631ea5884f09eae6f0a3a6acad65b85bebf8f6c17267ee474a5489c39b3edfa12871cd44829c32911cdb81053f4ee945cbea554a37e077cad502a8f556efe3cc1b5844872c1b5cdd6fb036a77dc15797f71538ae9a8ef64b6b72c53de700e41d2e435f6d476b6714bd11e8409f0f73fd9e147dfb43347d3fee35b47b2982e1826c0b6d611b34173bfb919e50084fe4a5cdd97727a23b7b11c564be5e688f917d224fee0fd00724fa17b493a91df5314e1ecbde75402425a4e2211e20f58ca0d629d9c9a30cdaf6e393ed3907bf884aefd67cb77455a392a9aeb4c3bcc3338058187b8808f717b9db6d07b948a9d248622a8bdd070280596184623b2299a098976cc74b6f93301f56953c063b956cb2ebc22fd803ed65fb33019d6acd56e65d54e6ab90008bd1387f18be1bc8bbb6ab33b8eb2374b2441aabf414ba531b2f7736dce2a8f8f5968e802770227301ff63ab16616d5a57d638b1df4ab625daca1e250d3af52b817e2eb6eabbdcb403e5dd61d6e849881a464c0a1c4df7f49120ca728add781c48fad42348dbc0dcc04a9f33de3485a16483f1b85323b0501a336a04df739e0eaa5056a63ea202527419967d2d78fffe9d8577a115096880ed41b852731cd00672bf029c5afcfe3102833d81d2ce8560203e247f887790fbdbe4888b7ee457df79b32d4d96a4887f8a8ce95ad1983e9af5bfd2824f619d67b84a10b7d5ceb68b113d2df306b7bcb682fc26ba454404d69ce0abdf4b75264b63a74d9962cc039a080c4e35ddaefd4f20aafd6348278c322ee73c4187d6ee36242aaf08afa04b8b149bc829748e7739fe5504fa221d48630192463164df8da6ae64116474c69b9afba107f4b8eb46990b67f9b60c143d205a52775edde7a7a4056c8b60eb85445d8d1f60d5e97173ccb6b4ee752e7f8fb18db4984b765fd286182a20330b359e134cbb47003960aab0f3f7246fc17d426c54429dc66fb27cec8902808c0b6b03ac3e7289f47f0210ac77b7f9e9e5bc1b5d20c72c1a2dd09473f7582a32f528306c2b331d2e15e397fa89b407635574a1284ee7191a9b43d4a0c9ede2dffaf602b84e67b98a8b7c440bd1f1b5bce2ebd1b2b0de7cb96ca00de2e42064e5b525ca89e20cce47b9274bb5c903b48699e69dd9bce28f0c7fd631ce0cbb19a9ac15790802d71fc100d8039d42fcc0064d913d4da292e3ebd590627ca64ffca35b9315a566958b9a1d6b58d129e716cbe0ae8ea939e00aa1672b45a9ac162e43ea55a73d3b1904c150a7d2b3c23a8746a0f0394f50225a5ce7e09e74cbd8c7f7a2e77f33cf63c1a50577649dc39d981ba04bbfb80798505547676c25244d800e56568f8859c77ccd79f96003c9ddace64910cac5bcdda5ee722566832590c3f367559e7875a33366c73026bba1aef185607beb5a1bce0a6d5a7d89bdf7395f97c63551838939309733aaff91f50d6f6dca5eadd6a7b9822a8c33603037619f7dd47fb15d4257c0751d0b62cb689f0ea724bec1276c87b167e9cc40de06efac99b0d1cd805759accb7e0ca3598434c9e36cb0097e51e9cb5cead09889bf23032eaba3929bec0badc3773b32846bd43228ca6373bad4d3e2ee6c525480265546d879e94657353c957da4ca93388f6b98add54246206dab27e566b2fd5f1c59dfe5271927f0ae5cf95dabc48a30e32c72fcb415413f0e532d906d766892f55c7d19e376108frootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython311-documentation-3.11.2-150400.9.5.9.src.rpmpython311-docpython311-doc(s390-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3d!@d@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;mcepl@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- Switch off obsoleting previous interpreters.- 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 Bugzillas390zl33 1683652400  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`3.11.2-150400.9.5.93.11.2-150400.9.5.9      !!!!!!!!!!!"""""""""""""""""#######$$$$$$$$$$$$$$$$$$$$$$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.txtincludeswasm-notavail.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.htmlincludeswasm-notavail.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/includes//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/includes//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:28684/SUSE_SLE-15-SP4_Update/fda1bf1f6e64d110df4b49f2cbb2f61b-python311.SUSE_SLE-15-SP4_Update:doccpioxz5s390x-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 lineskQad Rpython3113.11utf-816407451dee16a9fcef8fc993440c6c77ca17bdc3b9481ebecbe9a6d3e142e0b? 7zXZ !t/] crt:bLL ֭5G~JBQ1*}26e)(IaMgjj5q`bCĝE!A.VX9ӒwX&J1I"xͺ_&f~ 9ʺl.jlA0 kR*и$PS==Ov甓gNվu'^c-r~ ƷP5;u܏7>✿\4clo5g70rsYI )&Юro̓K.9$Hf]I]+厎+ Loe;NeLZ[;5ZIqqV]Ʉ95WI'R=TRuE;[T+yB) I:`\0?U&g{p͹EgJPG^k$ DhqL]E!} T+A #7=T. qų7r8$Sx 2%.1nT˲ /}kcpԃN!^|d{'AoL֓wgLU?pmFzW`0QO48$^yvG01m[4%ݹ'O2:5'7 ;#ћY}PIHpzjw`!QG)!zɮNp! }pybhp=INE ݴ ˔Gj~/eu*ЏăeIR6CLqݺi\>< zsL/ 0_Y [Hgp~ "5Qf8*1USǟtbz=! [Ϙ'U &c,o@ 5MK7:'Duۮt\bI,0"N*6ϤЬUcl^0X橇#[A4붵w:HD] knV7Df c}V[?EbjVJ!@qguE9xQʛDz*g:KTCDAdS'V q*ĸܮ<0h4] aL`.D.PJՎg4stڤ8)+7F̅qnkhdCJ\#t)QɤLKFs:Gm99UwWv#@;ˋCӁ]Hwfqt] u&N2+[ep:b(f>}HYdO5q 2Nݯ;MFFwo 8qS;_ٗe[hKdQwqf ʒq%Id.HarC3[۟doa mY]@ u#6=Pqɛ yWÏTJvگ& ݖYv*-DEwme3,bR%F|ܚ? Z=f%F7rRkgHF%p ;C_aJRtoq `~qbI8ݒ&7qzwU] }OX潽خ D? \m76f2nf\a wl>3a bAoNI:#Y!ݻUs!= )eBfPԠ0iURAO{ku#,%Ns<[rEA9jq<Ik6aiQڶ`Ф3Dؔ]]F$ꌯ"2̑>]D6Ef,{A+(LsR) 2/GLgCI0',S+O g{oHEդ-祰u#Biea ^X*`T\q+7m/?ׯ>ݜ͹hV42Af\xiQ iГݏmB0;\|tw*PoBӼ[\ +XY)PԶ_v}^sSkewǠmo iqs&\UIߛŒ5M!"=4J[ˆ 6fg WFe;قǓخ bсVwP a8QЩME)g*ض < C{oj~ H)RFBO{ \ UbA.HKp8 pfbUMה\E;|کkh.* iw,gi])48=LL UE=z+s_ɢX 4~V_w[WPJ dD 1hƿB))) උ`PD7!GFyQ Nn9%{.d>-вRu$:ͬQinmtcRC؂nH΁B~IIH;fgGq~Y)pj\ˬ"fn,ѬPR :Wf>'(`1 J1h2`J0 PJ GjZ D%HjA`ju;}(=0V kgR{0J Q@$Σ*Q⮥f@BށX+vH鿳ƁVb~eSxr[l ?QߎYF~m)gAxũ'V@U~7p=!a5b$'s]Q17@F* T=B!ޮbn4Ɲ$E4S1۫,uOo1hbv7bB ;TJHcg<=zQX̆U$$;7Vxe{R^#9`D34f #j&heW**3QUSVkcQ劭#sQmrjlX)clLt3rbmA TttO_^6>:+b袓? Lx2J+4N *[[^wK[jsr+6m:=h%(Ad-l}/=ǩGVLV`6h)NK6OE3S?rbƏ&\Gɾ_ꙩ%F\Bc!ؑy?V "ԆxWKn QG $a^z9efyz aV߆̪UF ?А.m*KUg4nU<#c@NKv}*jsZ@$BS{ frؽV SʧLBw׳wG/eWG8Y#)F˾J;_Mu8NH7 ,Z,NMwu.s(̨%6s5B?&EGz IS\]js M$TMb|Df2J$ LR-8T`JcY;bT_5R~v5t-#oVw_fKB TmL\dłDی(ۘk!7׏D^96Ё]oiP>&qIR_ډAza|^ M@,u[=*%6VcsJ-p@)AS۰z ]lg{6ܑWAԲ$5v2x1Ldp] 845a"Ku7z(8ԍVC[Y>Vo6-ue;)nCk3|]eHE͖C !RJIW:X6!\p&Cp@8xKc} kV ^ >*b@#p-F.ZH}7 }Ry3HOw>Wu)gC KMWVG3Z_Y: KQR~g;,xlLsNK̕r t ,$5xAn.lRRAqa§㖬.i 9-wHա#6RY chwp  }0 "Ԑ@1mF3᪃|Cg\+|Qǰl 6Oo8b|b"+>@;]r+"p w>U6P^FIll<>z0F3\7n+rCUWeF 8M\pF|{&D,oWӟB*6.m~t#j1tE{;9-u kDc0YKH?M2|Rؿ/c S[XLT (,mR{poeU KҷU` sssڒMj&S@N0 }0'<~o&F Z~ҪY3v /}@7D,>( VHDMDDZ%'~aґ@*(=nGUCzyL]5ԠZS^Rsh ^1*]"V9Dȥju=Ϸ j֟ؑU)Ba%9 xHwR>:"dX1?OJ)k[RÒF,AxqZbK5ŽV\QuXt? @;%9꣓gQ>sql9TނnٽWnŜ;6/u ^LNya3RyFG$wmp=j3rfk,Gu. eO_+$X}}iu>cYa`Y2Z[l╙]e뾥c0{lv:R?pzIӚ@h)S&'m`}JS~Ig k,a]}퓓^s7ч`B1RH}%+71?TV$l zEp"F}gKμ]7r%\|TAF=lzyh̚rҴwyl?0t9nnfChDG֢#\ Wk\BZ)f.,ݻ۲`}m`0*ԏgr6\⒴&_= ib䗮?M*aNCP7}OBf}NJlGnؓ$I^:,{J׃)4w=+0.}ڀ&OgfhgJ\ =$8Z 4%yb}Q!^3U0+nP#QK:/M*wXY_Eh?}Yvp#df3joxmU5 تgclYGXDwBã2DbKR3[SfΦ8dcAnjmFP'+ 4`\h2QI ؜\e#d?i 3* ޱ]lWbeWwDq-ioBA^?65Ke:S\5(AIYIa؍cQ/V=DbR"U !%?Z-:=keW<ԍMI}:LTꆔ3Ay%I7O/`.Ճ*kHWТԛMkz'Mկ;Qq<.|+Sf5,t8}tݪ^q=͸Q idmң)Iև~M-cqMO^1)GV1? EР- nˮ}~)ǖSrgP#JT?l+|G.UZk# M븓\8QnKpf7'zfQ"R(Ft. f c=n0/ӂdݨR&͵.>>Gދ9GW\ڳ$6 ˅3HTCLvY+jl<#9d|¿ױZoKr-6(?-ł?k7̣/W?̉BXg`*AS瓏^D<1L XaPrg5ggouWBgUGc[OJ,fqC/[s'!h ogtvP6:dO)"'{U u"d˃IP4n{q^bmök} )N(O^ ! ^쵉˗NTs-vk&?V`,jֳ-!/r`xXOsrk`GjeԈK6-8*) f]2m>'2qr%x X ZYT2;}ޥ8c<{g spvXe1Ou1ш̦}n?/%Q? XVjEjtMg#TM}{\H^gM,k΋f9j=Pфu!?X"< vϨV◌cd$'''f`Zcos&n1=D6Yi"T! *dNꝙӈQY+C}u]yDŽ`BiZљsˉg\H41*^Uw.ua"+F]Ŵ@(0Uӣ鷬*_L_1( B,2aejTego2CsEe'yq+槇hE`BX8Gx-[xmxM{($S΢LܒKQ1v<) 9l!O-adVzؽ쟰R✈ϣkHڭ`԰yZ4{KAj^fTN6q`翮Bh! Q.˕کCS 5 *z@j= זG\B7\GOGsU-_< 5VH B^xcI7^4Yk:ЉgtT,Jj'XofzKo܅][} t պA4}aPRh{CÆ%O)5|W PT$L+u0+ctNPh* h }V{rOc3W0y_ An[F€MS* _pRJ&huJ1Q$.l3ȧI*Rt A 4?o FgƆ0/C5>Sw"JƍM=pW%]lZd6'knA SIϘ_CT.$ MJ*]?AIA`Um=O{OA7%-YCM[HW?~yF/ *DޮөvߴO7#dq1SpҿӎGsqϧ37s"쓱>/^> \r8 !$|h-F~  U Lbjvz~OSfndPTRw 2|xslH5%r5L.}7'}t8%Q e)kJ䔿1 N0OJ&n$s КliMmia)Ihp|?<^OpN}QH9 yD>ddl+%[5RLp#j5FG%mhgYI#u(2= >R9օG0 AsA x R xB l]k#ESVDP K6c~pljS_DMٸ(,Jűq'PGOyxSG2 ċF? iZ,^\d vVmCG#=*@<9r _4 #KGdFiMS%%orw]r3@p+=nj/@G~Q_4S\+U 6KTTDޮ FKCZvJ!wH 97=~4.^XXZ} x^{Vcvi͏I2#"S?#A:NpM_C~5 tgQߴQwgiP %,:_8DŽFҮk 4"g3@!4`"הc-{(fZ^O:8 ;AJ|$HIJLQ \ Pf3+#N?jdn8N,pכ&,)E0PtXJ$MGwܔR JYnYc2~}rxDߓߏ͋dt}}:Y2l%vɉl(t )1[q;*3ui.SWjY~ePcqpspnB@XģS~?̶!yfVgצx`@'m%ms+k1f3GEE[1?YQU{n͙W|I)cEI )jiFc#̪i.Aƽ:]1󎌡+^sPDۜ/[kpD p! `R ^s  eZA/Kgu]n%UfZ!㷕)hu2bABm:ecZ䑖8t+WSke-_BbG뢰}-R"rznS o|$3Q.+ӗ6`!#i>U:r\LD1WZdM{Un] -f={+;|xP%+kRTⓐ>݊Xhko fRWfP&h/mp ~Mj_x#;gF:jb7D@WN9 FQG=sۘ5L?sJ#3 W'*y/&JcH\3] ^[5ȏv]@odtj L λZ30*ڟ?_^ReH4|Lྥ5j#'3flԀ;rH=k}(! Oe  `/pfg1I&qNͪܨ|$BS53-V8&4a6fSAFMޕ}eRq־{|'KRPgך4WqvR՟ JW"|W`1^Fқ)(7ڑ^@!d>pԧajˢߧg*Z2xWtoA_J?cز1^[_UbWCW2mpKF^`ذ#jvRC-d{oDI؅wjۂÒ  <.!]taS^g&t 1_+n/17ODBh K_5.'f;FwN$ꒃ8)3I%f #*~ U#+VT d4 ^h ׹x}Ϭdѿw͵Hh;krgP;,vXg򰔝gπQYk¤}Ӹ8?0eTcXc[rΟJ^4n6(eTt#D5@ 33Cbr4N+'YBa""3슏 om|nf;ܾf+d呟"ٷd>4p+SI*&ߌ|TbR*@DUjYk37 VJE!+LȻxu+ߙj_t"ݥld *bhfsLuO=/RɞUA#$)A Vh‘u|YqBɐxX=(>fcB]_q7 ѯ1 ? 5.A$ew$Da *"M͐.5(8Z3x50mľP4%Tv -8ܐe![P|p~]az$c5$ dpAOo`}5_$5; A'&:r g+R@"_DܩUV$d?ct)Z!TO_ӊ=^c½r겻9-W2$Ckkg}e6_kc$wk-0͜E[82Ll} 9hau [oզyaaSP[o ['Gڢg`a]>k11BBR;kR4P3_Ps)hOs&*ZFbP8Hڐ3$dqO#x 3ʩ7;Kf%L|WEjz7 dj17&L;[[ 7~!ËM@ t'?UI! Iɢq !p.#>^8zQckk w?jE?Xk'~/[Yw}t.Id ~+Ufza"uR!7ȇH׊)4t$1?ɌruZ8jؑ!ǂ3l.0t(?AL*`W88c#5=2msfc:%L)a.䟮B+(rѩ5X:b/[T ٘bS 4ވy]PlV,d<4X&NC-4%7 KM*˕S snCEf Fݦ=_@8e9WI`3JkZ0 YǑׄiZ6`OpDU陌oL4VZh[r 54N|/4ӹX4BxӅSC]&mof'p#rs߰#) f0@*X844¶t}h|% 1?*,zsH^]5|1L XˎiU]~spW-eLmv-mǗsN],^SͰy)/>A"P&ŧlDFQYENE>M0JIy w(OhǻqEu)6b<"/謙A}m< FO9'+kF͘E޶~kR&,GԿa"t9ڇ-1?{\o\8ݼ&J_#k&A+h&:$0%:AGcF]ǘ4RT5$%n+چPXv\4v0Qq. (wdE@-ղ;WCX0!85 =Y0@){l L Qv²K$W՚kYY57M̛i#u+EN8mrXaK,&VItl|~7urqǟѿ/W}25{FH()N$JY7.چ`7~WB-Xi<2LK~BkOMo} uA#-|T_[ lQ/X"JБ=*@ܫ|?{'vkD"֢bGF'b &E2@e m", M!;3#)F 8DZa:`GwיKVS7.nšV( 2V6>}Y_Vd4aXPdq3PϦ3PWP0鼙lKzűvQt i"s//t#J(@\H7,C).o'x&)cۓubO7:g2VwAiK xHr(tƔb%,`gJF>rӉo ưPv+O;Jz_翕h h*p7I*]z`bЮ&䢬amMݺ.Ħ{*fB+aBuR^ǵTVpWɞDnYX(C DE [p 9S&6i`F4*Ǯ,=P`m׳rYϛlG/zCd֞Ndkifnbp_OQv R C^{s Ms5Ek< 9>Ftb>}KQ|l8vW\`v>x^a;jڞ浟a)V8}TUvΨ6 r|v)CNil/鳖l6UU{| ("mРAZ Iv'SA1ml-Ͻ.Ǫ /3u %ߵF`2E v Ɲ;j'byy'x'rƢCvǹfŶ`I ^:S=:z5GhH!k̤`*փ $%:%Lo`&%SqBưѝK'[EãU܊(VXBa$_olKĽPKz[߸bN~ca%y+Ja䡣Z_Eg7hTS" 2E5qsv>+Apb3DEⳎ O7{̼҆Ksl /o-f#UbXɎo^LXL&I2k0/‰~%&}Q{ѻW'YYHn@ة0m>ӗ_,6%B$6J!|]hk1ypoc< FNGQ1ȣ l =ˍ.&OSX"A%9蛺{oA{-;pP/#P'3dF.zճ(SQ N `6SX ~{";H0;kw|T–ޓ_NZduH\w@UNU)'gn1*9Δ(}(dVtᱏ ݤnҸHT YW5M;5 <|ZYym0hi>R燝~g'-()ա^>Y<(lo֒*A4\/%}òe79dMx@o_ZrI]5ȆC+f1"<,FIZ0PNkOq9N,u" 59Ee.>tYO"G;/P >C9N>/* *05B)D< ]P6SC2VF jϱ|3]KFm۰r_U { _$+&_(Y80F)hO0: 2)ï:r콭G}t̴6F_P-8@FyPG8*Ab>?L'D;5M7^LmqIM60偸6O0FN;"XPӢ?)X1JClTK,f4cp}[OrFNb Ѐ!8_kdCT7 }EMy4Nj~ 9$` Fej~hSBC;_rw)Js(Zpwk_O\gS'Nr|s-4B<[TE -IȠ04dqd{̃Wf%F>ﳓz)kߎ 4(49~ f8>|+m ƧY]JϮrBiR 8JXN5E8FM_I-[X1z& Q ClU)iL<:]hlo0;dqmYLJx_Lriw$w%ByJ^pCb jZ@+uf]a0c"ҞςB{mRb Ŵӡ1!-\@Q} [HQG']]LSïN7u{)߽#S*Kv)&6̮Ƶ =LW @6+N98wn؊1:oG>Y.˺c0Lsg?Һasx*Xx_7lԫ,Ϟ(nЁʀnH.6,"'e]|`heKJ_kДr9t4h>=f -M& j8IT9vI3jPCA-{uh^xhPIV bٽ#!־dEW*0} :ԭz4' M4&3eDF&Pc8 `3V\R`tMs0 LxDtww,hLjȢ 3pUyWh|a{ejuAxEH%y>Nl*z4i/Lx"ed(/*'&Y@|Pwh">>&a4X6Gq:Tq&.MŠ1.7d\0fdm ?}Z0бHD W ;kK\{GBl^d8=(G\bpui{yWN+`d+->poNEs]fz{ٖCx]ף1QbWz¦pFjp(Ŭgfפj&\3"jĤѼ'(O P )im5LP|;f  )ܥ [.;HXry$u9N|#sMkE!Yii='O̴pdҊi3TSRxT~ HV4b4|mkAw^=rZ.$TۥSvFa&bb[#P9q)8"2|6(HITى6:lGLܔݻ<}7ÒDh:F'Δ<s7aez?_PbU7Eutªgo!A ɰ V/'/ ) 88PuՉ!Kvʬ{܁ /z y|#[\[Q2Ѝ3iEXV`3%}&=+A w$cDF?jEvgn9[MyYbt@<+WX峊="Tߙz@tKf'iEmU6x!%!)C=-%ޅ SQYj|K/8tho̾,gĖQh;W|n*q,eWkRvƼ0:#RfϺk)rM"~sqi9PPÔpGL(u&ʧȒR =MFjúw.@Hb,GG^۵+&?hYg)※$!Fuh%6^Q LX2q#2} M=iKj8!l2 ނ&\;ImB Dt~E?H𼜪=@GoZ;*E{Ϻ"K|'#%BO \1{TюZS j׫CIWJ+^Gw ,2X; O/-s~)fy#gGZ'{N7elu42ft0@m_5J\[:-p'Ho2VEꌇQ^-"eCQA֠t2}*8C}[JMT/,DsiIG|4 @iM{]jǒ~L>d2E-Eֽ)%RʜdnwK $ׯK_Wz%o&"j2^#=HR݇= H=|6>A3W|5ia]}4PP S?d>֧`Z>A&.?JVX_^vA+z{Xظ SE+ƲN"J$0f&DMK !>/E֭ws{7HuL&CWz)QNX\oq6n)mɬ!3rbMFTĵ'٤u.Ơ_@>tBpH_)+I19Q aW{잊>h1 9j[y/-hxaqLn㝛^@}2 k(*V6;(El`FF e;vwĖFz¿r>QkΩrB]t*5V'>-=t=y(ZrƉu5m| $?H e窉>Mz_EΖ\r J~4+/{ew3v3c_nrh0aWQñ1Cd{2Fl&|@1+iJ˭Q=?K >LrT0Pd]5rOfC\ޑ.9a_i[mqpw%A=)iB!6*emdЏ#)O2dྫྷyyYZ:s3=к()-w-J)/6`+q}31$,q`W&{HP#)'C''bl>8W*?^9s]*l\{E"2@w% pS=*yvÿޠli9)וtt0w.\fY;W\_Q)*5!:I0L*o  ;e6{r!ti"_HdLPUAWFg͓'/g)K{P?V6E__zIއn_2(;H]mpa6;a66jjKEX{XifP5~^>׏*$_N{#dxnqL-,d4RW)6c{TxlD hEs6>LH:iH_Soyh_&Mb!S=r|b@$-{>|$Om˰# E ¦}ʳ|yw!$_}tY$u/|EY•O^{N=#L#KJ\'$ aC̰/$f.#SZDZPns2V bϞABiOw>9 i Ho̾+%X EA\: ghGqeҩ \͋dR.SFT*>3:H}@ZI|6wW-GK3]8cF \u'gA^'}E sbԋ>$(9J2J6A\wv3A&p6ab$l?l5'M0MG2 z֑~;< Vtt|7uCmT~ZauxEOj ܨ(V\ŸDim t-s! eՇ,l=I4;3e@%Z!3?N)EEټSԖrz8* E>^" m٫hp5p: 9dĞsf@ 4y!*/ٝra`$Рe#DtwtHeO8~-w֬g˰ bb ͭUy ɶ$: W{V'Rr .%ˣIShݦA=42BVTXd} h{#Ok̩j(5'FyHҸjUޒTnS_`wIMߢV6ohQ{QJf:8P.FewO mH0o>́78 R:+ֺ,vnkshrNi}k5<*W*aF{CLExDm=1RtuʎoITatmQ}JTm|O&M(IG /#PUI:Dn^Km!C$Qc ]1\@|aZjp**;s`V6^Ҍ2MX4}u CMNF2H *BeS!$49@mp"ؤߐwT@ۮb҈LOg"'kS"saV#AcUb7I~Q*Pg[߭/ ԏjiA#jr2^ei5, XmdmgG 7,x6X\7 Kg.fs,sm3-ޜHB\Tf1-H[͑ bx5S0|&ZM]Wpby-LINgoH~ko7`Y %Ԟ2eѴ^DFægߴZwELdڼ/!ж.eua 2Ro\2~gWxQ3 ojDžiu%0j>(~Z}fn%rI, Y,NnO `{w|\³_YEl c-hҒ-# % xe2q #Řh.v 5cbp7x\Q%{) +k+ JC!+n /|AsNrjhzmMkNKP=kL3,y>^Ў4bEЮ*f{8dI0> tvlJeT? 2A.\-7ZBE ݁S'6|G]%DVRaH ~XR{~fWPjnE솤qes T~wzkK&*+ALd'JE䴦շ@t1FL\7>Nˬl m;ic#FڶۈDj i6 ^^hCn?1UYsxK^7yQؙi{@ ߗW=d^d2Ʊ^0dcv|W'H"t^XYdT&7zMI)2AɷaIaDK l]EwGB˼XO1R/f%P Q 8ƌeaa괧S6oȩ-͍>@/􅣊̽P=j !21ms-*7wʇq.Y1hשOTuiz9>|maB0y{s#t+ܕS[#LYMґFПug%z&z+B(QelѲ5(- ymjo2#YR:3U˕'kx\-Ԯ*Z-V*h2 8E,Gn ΀m#gxy UbOMsML{ \/Y:d]0=( ڃH{_ȹƭJA[qH&0z^x,ti\ 1n'}`O_]lhkPE'yxq[tk֞i!\x<]wFAVQ{Ng }'+ɀiaĹ2"8W2>EM\߀f `Pa*cZ=)Kjgk9KW%W_<7gMtM"5f%S6 YWhaG0)3o@]Dտ{o=hDQE>{D1zH3B2Ќ^ų'xl9uMB{w.`lӲH<]}.Jc.sO SE-'|2 ̋+q2RiP s!4 FV3u<|]#(-Km&!"[gЖwJƫeР&ޗQDƚ] l 5;qO3:{v |Fba`;`/ G p]u/x.y !>%> k\Bگws5$񥴆/#U4#6bVFca¦tC1U׺>68'iD ,9eqmzB΢ 2.W:,·oMQ/(B vlBlpp _G˾hd|y(2F ֣$MYqwqUQl]]xiF5zZv{9[jt:V`Ip2=V E@y!ia!\J!+,6 9w&ʏ34ʹW*b|gf ;/V#*ĴCȓܢߌ:d߀[a$)ު"*ІC@U0MyQ LriI,KE4sM-\ I&xE;ˢ eax;B1W髐8W[͢,Kgs$Y٬rXrbۨ/yP1+ ̹sq6KhN z7\Qa98_򺂛(E<ģ~F0KfAMFKX FDIQo>uFA^iڂ6.^^f㔬"w{/F̕([w3I@b$dU|EKwQH iG 1(b@Q4<`}(4qMsދA{0u3%荒f\dفɪOi{F.D-TJF{Ɣ<[l1<WbF%dqc7k>jB]&7,A7!]Va,d?8q|NxpK vii W?01ESdeCY\R2S$ϻD,w.oe (W0KGitS 3w⸌O̢k?wQGx9d!W7fzzD{GBr pށ]7AM&ԝЄH=Kƥe/I sR WdRpThi}AqH$JK2Bzq_lOzFKg #lXa6O÷ɛtjl9y$uUkIw \ F㭴/ f>%3S'[t$ p0޾>`h䔗Hy%H9H_e Sz6W: ܳv!DZd+pˆAw1YS~?U]1=x(C"[<_BM>j%K" ւ[U ZHp;w1R-˓1ѭ@~'@30FtfMBh$MI|4?%ҙzrXNw`J/D6okb7qS<@Yd]?(^ʴ\^EKabBq7gAcdM\:ANj[3 s 8ğԄE`| suFwUʑpy?έe:C:1(:ˉϺ/YaZxn{yt=c4E~: m~v$ VC8p./OvDfg \²H*Q) #Wcb' .#yf\̉?$C4n} I-iQgG[cdȼ3ZVG,5/F&N6I0mv۳z5?C)4: /fup2`Z9@K+,34mT^R>Nl jrCfs|^p\pQ(zSP@)=Jcs@(΃Į@֪RqBkoV8ƃl5{9(n V E@Yߔrf.APSrϕyA&-'boSJ?e?O4i>X7t[kx0%5džObx+E5,#˥+ĕMU0 kl]qqď UFg;,&؆Ļ-B\1`?*.u|\*![g"['Vcodlى0G{OEI!UMW,+Ϛ`v(QGg@KloZ\g zĄMSC2~Qb]8#BA|X/UvqɦM֗7 $L?Z2teR?Q쁠RS@τiqαכֿuĮ 84pvRϞ߆GyYz nq j=>_4e1%5.X':I Y3Xu)/ؾ[>Y.-DeaaΈk] dDm[ g>'Ǎ-YL~'lDkZ#}y[Z!r 2[G43ۧ"s6O5o5[^@ !$fGopPGsQ5e!^ =IQ1A-zu VY0]WuT+D(0N[pF.@[Rz|XfmwnΩIZ8DY՗{ ޚu;fxQg0JNs\TC9~1TF{h״um|j(dpwr=B>O?3sKaѮ'ftA`}]n<"}Q_vK GܞoN a+bz|Vh% {EM{8NMnLr{%U-Ngk5NQHpjA'xBS]|+[ w3e%`֬LZjB%KN!5؉y|>7\c.͹ .I"$}F{0h"V.I5H ^Jf fWY!ONvǖ:dOSA(]I[ڧ{0sӐRΕ!h{3`.IT`so[Kj 2ym 5"LZ&[K.Ahj6埔b'"yU`2aG% 7M/_eFC6M+I 7IrW;?\ < G"!`_RRzkKu?r$bmY$]O KblopcІC*SlT]a:R?8CMK+޲‡75x^i9pC f$b@B#J@KW{yZǎ8yLG\.3?'΋wm$B~zxx ]L!9؋@/UH蹝I6:?ԘWr5Se7s#?ݲ!Hl<#)*BPtR??ۙ,Bvj}/-f4rݽhD`,-)iQmM9 Ƭw&$+ayܳ2`}#9604bXɿJhӆ S3^ /fݘ-ۄ@\@ qxRXgBo"^>o5 2_,4N6c𕜼7-P~mqb;+*" VZ ϺډU\=ua:@k2DŃ G;GO+ V1*`f>\VVrp:}^rje lp~{/K>ֆZF4=:Zr;)3+[t Ù|D(+]vAn.\ଜ[}x}']Wڪqfa8^Hz#C2o[7HmqiX_]eYMK[yvm1 ɋ2 j0aTP'湠̴ g#r :̠R9%-7!oavjQU:₫zG*?; :T[Õc"A\BՀ%|aQc0UPAkh;wLIq$<`:ϐbݩw8HEft)7>0H6-V&[,sD3b\+#â,oQ6?K1HƓg%V7ȏiym{z % >[mäc#!Q͒"kf|֍oT;HOTaeTf{"0AF_/ B[G2Lj%)z0u}鳱陻<Χ]T zqh҈2 _qd4h`ͥ)(>nv]Pcnq sΖ/dJL=,Kڰoq9mpz8DJmU%"AP( oztLq%1"gB^t )X-m MԓCBnT'-Ĭh!Vs=hu-@j%)`HZ7ffm9MZ,9`hCVxX&r_S;P~ {22𗙡e? ƀans{?DW"=H4$T+>!JӾ֐ ߤ*d-oJq-o[!~2:\T/^IZ1&⯓tMZ|_0 O.JjY[C`ƙ*VP_7R_*|$Ҟ%<۬&gݍ&,aauv܅o.U3#$:k:7kF`Y "uk~5ۨ>\(t Sk^KWZYRXZV;,љO)Xiq_(>R.\ gą,qcb7(Q-Axz%@2?6~cV.|)} ?E] 뫛я%%8AϠv{8GbĻDI(,dC2u]k֍b6}$+wṌy% _(ݱTX{<ګZceGzݫb:¼:vh]FO˗D% +I)rFuU jKCAM-z߾4|mL 5sK)5 uƺ; 8*PE-A;*C`h }XN[܎ej"[҃ Z f (<D!vaxE\:R`?@CWBwSdq^5eWWoսШ,?MD.5`@#j} v;GJ8\*1J=KmDhb~vIE| h쇥J%WY3UqQ'%5p-tǘ#~ rhO7DbYWfUhK~0]T7|t&t/'W %(LsYuʑO>iIZA.0%OY,mԼ#A:@,Gm 4WA.Z {cxz&؜4JVl/yi0QҮa,u`0Jj蘓+#՛륎SD,gC'c!-vT*齄@тQ "rb'[ȑ(F&k8bP\MͅT ?cW#_,w';+6u#r7( $CO x?7AxYLQ?o_F~]my}pxu99h[ ΩE<ílLX0Iy붽Yss7LPZ$!'!H{>$T_e9Q` gdqƐhx7RCP>Sٳ:37=CV xJvZn4ijrwx3N ^# Z_ 8ed2N .NX^qxac8Di]Up<*ߥZ o. v\4|[fj4Iߛc)İ)AKt[qCNs*zNZ'VP%,/}:%?Xȇ` `B]#]_A)lLYYW|rN_.iUOlHO\|I˅E5=II_giVQZ2 7a !qOrwR,l?,_ a<3:X?oLsXHP*JQRi<& DȣA ?~ʽEk&-& ! tT+t_`DAɳ>SaG`'tK2O5`{ŽLa hإ؅іB4DaD|A+7i]}nMN dʇܭď (0hɭ ftw؊d]2<* $e2ag *:͖Q7+1cwW5F5m8**{V+k+}^#5B;,ΥFDCuViFc1yfg7hÔNoY N$|?Ё?0%vmӀ %#}qT@d09iqBO+D%BMZ 9F|D%WU@dH2Yj}0X4y--w:IQ%JA J^C1(+O㺅g]aIPϏQ|3Mfh8P.2IتN|F gVE#O #;{дcFP1'3}Mc)TPKUi < yRCDZQ<`#+PB2s]^ -<s)|I] X˸rImxPVd;j%.7Q\%E!"~눃>x& SPVE@Hr ,==yq DQvw>@*q.F9[U}*4 NȎq? >J,!/sf$/Q^#kFso#ܲgH q&8;Rz;'tF?7||P%N1^z+R)̝ԣ`Mb\-h UlȽ2NDY)Aԕ 󯅎f>~\1A#|| UAOU;8DzyC ׫(ހL' k[Qa?s ә)Z.V`!ӎu*g++[Nh[*4UV\-ͨWڧqIwkSS=8) #ͤ#4qZ}X$Fes@ S5nX՗XDbQYl/F,("EN~砢VkDw |m|;9rrN̷_^Qib5yXN(5R^jwzAWEU!LR8-+IƳ~yFh%kP_6Z9VȞ{[.퉋 qt#NWq"ctQ %],j eRv_Ob|Gf6NV|vVˇ~n6Xݚ>"H%prTjvmCe[^]P_3%#GNҷ?ٮ:VN3J5k-}k܄*{`,JqW\z" Hg%t^7B^*ז!Xl*0L[⺸3zUY3c 3gR ^p_1ހTரrZMPoYHuqAc؁hmj!v֑2RJj%?U:DVHX@{Lq!WO@lqvR ?S b[C5oUϳZSwIpy[wg7! Śq71av>YΠ^ 4hLԔ4G>#xe`S͔ #m7hJC,5D׷_([ w+3j?Yzߔ`O}9XJ)=Ig\/-=q*)~XK ὸ7b#{7Fh4Z`\۸$-Ѭ5ֹ3u&Aǫ8b&Gõ M,d10D GHخG5ux*<}0{8DxœzZ h4:b!93y/-+ Џm6 h`H"J iӱ((y&T)9߱~Q`fwEқ;D(42֗sF߆G6*6v)HvQO+p,<|]A_T mfT` PT'ea|=s | J#cl 0,0 TŮـtT:6D"OX2#Y%uҀG;q1BMk Bf"8N;AșZ' ͡=yMiq ^GJP^Hp8iwӒܡ5_߾})f0R˖} otTA gDcTKI.c,-ܕ$g+=ҨB5SxeyDja|1X՘\?-mXh,^0EӢxi~ pE ~!цUexqP_Xxv1 iض ]SZSOy.n=tiے'E\NFjn@_ΟުȨeAG[ؑ{*TJ0#4JvhڕJyQ[Uor~牸z>71§x߼]HtRYrJ 42t;PZgTWe|ni8dJfj0oKFOV!Sf;VwoMii =l(DG2EB8@|΃@YySr \ek4)4GDw9Y:]9`, / TK4#^wd|QvR[ԣS]"%?  k@VRBU*|DGJSQG#d-ԝ}8ϹrD%2.Q 8N| /%7a=zӔ` a/]*<̵F.:S%b{psY[2Z_f}L.H9O'%/YDZgЇ4AUs%MP^Rsv1`u9*9|Lao4KhRx`>?z\|QmOAʰ3el): e*t3wQ| bCi 9HMQ(`8YC:ۯ+Sl86[>Qԟh!pd<ԑއ%#;TF0\Ց|+(8l&wy QT!yv t"_i#uyM^1V{4  Ka]Bx#!)}*2/fF/KWDd{)7A˂Y2m8{Ph~\IMcs=9jc6ͿPiǛ(qniS!Dǥ9+8~8o;B`u"nbA/Wr#6,.XG< >}F8 u@,XKeo6~؇,2ɹM[:^B)D STbSQpx䄻_%I K8"" y)rd,ƇelG!>##fr57r_1-z+hY1Ppn\/t{3V=N[$),*Th3iE en/|ㅃ-]^W8EsW f+([L=iO!Ĝ֋ڐNk鱜lE<6/Rɨ`Ӫ|V"ŧe@9%!$lO8?-]J 'eM1^js470S v=I@ g.3[5ܟ_n_LΌ=#ހcUj `+㌤oY!p^Om-f! @ e!e8ZWXVJRZ~LF>\xjjZݢbHr[o *$s:Z9ȫ [2?E(Y?(z|OS5(F$De%Ll["7*c7ft9T4g:R䶭4M첕W5n(^7.iUkd[uym=PtsiX =$ty!UuyG_S Ȩ 4pynXlVonf*î\ؔYBĮe *sƭVۃl`pn4yRj2iL5W:AI[#ai,O%>Sa4 zbɴ >.j6~{޸>PkG ܟߋ-lw.S+'IG'؞g*lTkyjVv_⎢ !@GE p wx6#NBgB JT2 ߝʪ#MbZ ,Yfޱ5DtJqiT&6fld$ݧmԉwҍ N#(a*'8ÐjIKi6JT ̻IgKOyjLEyȴ :Q5^ҹ@'1"$/?8 K C3xХoX-u4@6ݧTgv^W.{0`+gVH$ n&FZp0NzJ<GXWn^~ޢ~9MyyܟYGIFG.)ے+JAKx1 1t٫1zeq<ƀxd!C$0)1E8܈|dvVtuiP _74LT>u IGI%İm&jEoXy<3xࠃbGl̎{)l}Ygll *eނt:4.dtiS=nbcvKu!))RnyV7mY-YM4:BdhW("=LJp$D#I l` G*ػzlAb F=4.n{}Vrۜ]qYJQMn@%DqLJB{z;^+u ,pD"BP{ &oPF W?proX}q8(&{@E 0,9slVw&Lߢ'z^jtqp8ndsTgL/N|cwm j|4+9(CH毶f'p,y$wׁᄱ31[;?8jrC?XީRwf1iJj_"$:hyȏ%[x#}B YAf&?&YVtsnw6 |KÿBYy8M&E~ϭkuoMq$ghobkB((s dfG֑~s75y}:ׄ.z#zBCzVŭrE=@@?,ea'{8|diA)aXkc.M*apP qZTL0~/=ԏy\wӐ㲆<TƢB^k$ 1 W( [ᯉOBAg瘄<)|d9:*r#;VR`ElKB6ٛurdlhB[q+3m"$GVg:vM7dkbݨ-OT~ZπM .s2e*"xaОunU^Gm\/.&,艧a\?{s|$^vDʭv>!]28?*[=\'g{*;MlW]#"[Ƞ2"Ynh 7Whڱ3'9;N@JB $lmY{THu/T ۄ9xtnS[欎owZ@y8oJ\Esi975 q]ۚ4"TAS )r9Y)<&OcR`k5usU5PGW(Ґ`ȶ@3,8BZl1|3ݒܿ(+{$ VuT+bf0ͥ6:(riFcMqt_a^8BTl҆'4y*t `ċ ,jL*<>1,]ZݶD}9#/&7cM\HfP+9DRtsm^[rH 4yV;ŶmVj˯ jt38 SMA)vD!|qk Vr9 3k@јT@ґmLXR1 )eJΘ\Ll.VJPIდZI2By yޛ/qTɎ _5cG:@Ĝ6=CӸ-s@fq]0,9Y['"}u->&!hc ZA+ l ǫf]q]1g4*W-w-w]_m9>qADp+Z#Ok,7oEAC zS4tux"-]򤹹u @7t\@ԃoע >p@5q"SЍ\YPz7rO41K!7Hiauň}%JCo9SlRk>2-i.]/g0L8U 2s?b;+ \6֫AH\=]z*xԹL_~D@yw`YnjfdpMÀ2{)9A{57i!f.gk_z&(y"b+c(`Kj畔g;2]_AWk1*(xj0_-r*}`dF5OE`\G3ASÌrcIc!Qw?a`E"Jw'޷~Pۊ#y@R1|L2vOa"(D۠ icqB'gi^ŕB4Jx#< 8U<)mY|FHp%#dy"6h=̢wjWcSQäZȆATmӚA\I+4tJ?,@ҜuO/B9y~\Tui_GVg Hʕ#*gI81rEw7IDHP"ʑM|S vwF(9*CKU:ē;^e&QPh({YѸY`=ܑW]Z;HF!&ql~$ە~(u{U|7)Irb&Fa4|<̶c>.}^Hi?r~(C7^(gۅxbuBPZSŐTnXj阳Ac3Ib >~)JhoʑҨOu~Dp`}dïs-xpT.)^lrUQZe-C/ķy+ ˴ {.glVHFWsz <`2uF 93ls@k\#)'fߙG[ H,['riD6LeӔaG?8V @Ny kzח ,A lP*ϐJ7WI4*"cvr|f&KPj;{ (k:|-w?N:@[날&NE#SnT̾`FվGO #=ϞT H;X=˯p N-*vun+۵3k  (!DCUɾ79Ȟ6) lWo$[E#9b{.&?0-t?wźQ?N0vpT_ʙfI/}5(rIHNYlۗZYxjw$3dIO i`m@ l/i1FGz19R(Csg8+ FW@yUY4Aϴn;V9 ƽ R |}0X.%gx0/~6=sf SshBQeeSTJ?eYcdIIv9V.48a =Wy+XS01Igniw-|+;ӟr踎bK뫿 yp 1m`@9b r ֈ՗1(IcqN[oT$hO#ZuCfm1?{~Dvg̠rzg[o2th#Khv D~!DƱZq6@A?%JL8?2 \¥5>mj[͟zμiJ%0v,Z[y"j?cs':1\%|`Ⱥ3clhTn=pWHD ^NC[eeg%њh[< 0'\MwT 3ġB0`fx6ÃLa9D"Eb2jdq,op"9#w=\25(:~~_`0/x}^ 'O Fxzc=&A76`)EQ;yT~l*›qN۝dBڞI5 <8~ 8XjEe:dngfTX<zE=7uxsz;zD^-|bi"18C H@{埆(-l٤8ݩaF"=..ŕ{.|6ns<\ Lj`͋TlIUx QLt][ ֿy2C!d0gɺ@5-K=M?6#G$G6HfZ=\R\vv`Io+gY+8._; "G'9aO[+齿?;(V]Z{2V9PTfdN€'Bq=h)B^8Yb7!*)QY"մS|s]S,Qۋ-,R\璔׊Ip[$KY/*;Xjim8OFԦ?.x6qE@v4^ٞf0c:`Xg}b(;*&ՎZr~!O)@1c9Z΃$YaE>1 Gҝ Ct/w4fQr&\hBBo~YatX1sv-hm!0C5PNJ*D@l8drpX+ԯM``lZ1ܲ; _ _(LvuءE_N ꅓ] r-?CU/"c<>jzQPwzU_&>G^Em;Ks3LrEnVeVAm埃)ghܲˤ wI#50av\`pi?E57旹Vy^9 }ܯE2:+GiXs%Sk0լ4MqЎJFq;$M DP+|W}i9*"NUH*xWpҋP-۽VNV beVJ+XC^/Qt)vUCT/.hNX>$xF)(tj3Wu,I3e6*4s6qnʩ&=EwUYԺhNJ=xTDr`_)WQ9&TT1>*?WLBwT2Rj@SbHG,6B)#OuȼznѤK(nK_q6zW!m_C M|bnq{սsR3VƚlSBo7͇A.(O~5/6]Bo3-%>~ULdy/?=i*#4JQX8̟vΎ-h:PU'ل6H.@svЃ92_H`:Kw6k_K`.;g $O:Ԅt6ə_Wif!4%dž4']9B(. tj^)^>Ź+BU$ԢRC CBf_v|K2)>Eefɏ;ɩv-!1qҍB+sͷ'6,EOM럺2Gq/ ^YtsuSïP{NEƆQA%-VmØxKSЙ 1MU` g+}-Pk@%:Kw8F %6DZ?`ZL媏2whbiuC/"Sj=K $;LzhP7à ֞]vdJhL=9ͻ})+$Si `%]cls-3_G 26Aڐ V>!o:7sC8{ |7ԂL.ϳ[\vg3:v#3U ܺ6(\}7OR=Tα{^c -lAzp7G [PM̪ _"!2ߜOKg݉cbyJ_Y=D{G_?:ּR}Ah PmܨYyj/:@7<<OnZȨ/}v6MTMa|7ʦkRZKO ]$D6UcRӰT5[+'` +W0؍ȧGY5 Vc͟F?y[!ힴڜEKp Ms7ԛ$!jo0D3#g!n$i-`߈.y2] auQ2PNNq'8 ]SNb?1+-+t +74/?{@_ɏ |)u I'awdVԑ2 ~ف 'Cp<~g02Vް>'z : l.ָ`oL_)PF54K>;WSe~.Jc +J3RxTI6m&V\-⪻R-`;{i~GxTpNJaM aYYx2o`AmǦzr5y8۹1o#P,6#^D>{ńas jo _b.|Z f2نV.hޕbWhΎ$˜hZ\C yƎ A?chvBϥ9`f7<C-o2ZV1m8, ܮG tڥ|FVVaʜZ*;\iA8' gogQ٘"lt!@ń2SY-YW?W m?/  J),BIn/s`i*bhiւ=;"G皮4^thrW Ϙ gz9-!k:_aY6Ɔ7.QI:ٯ h$䲖' /}|XTKp򐅟-< 7'1sF5R'^y/Ԃ6kCEmR~ H'ckVs/{|R1G:$rV94?o,A,n[F@t9 Q^L]YPBvU,fLq͸\}Oټ6s e[2L zmN@0(-u~s,PI IWmȾ]0A" t1,"NLG)I 2g@דtt \ưRzvVocF1m24 xcI s$IrkYldv NzT\~*Bwdcى9KNj5@U&@}p8F蟌+ [A:!W̜h^#[Gx $ڌ;xteb2L1r"9ut\kăVwm, ZsRyw& ~>W.d' oy˕W_aO36HcӼ݊pFX;kis[N=0J>+ԋ4q*++K*85hNCi[bP%jT.rSMm~0hShώzxU aQA{H]3P\"C"g =l&0p}OtN*;~8Njl ޥcQ$i~yF>f~DM%Sb@Sp73R3Ã5~:7xhסTW+A}A߆{ڂ7c28XfR.t"DG(K 6M٨ATȳo(8>e|<Fr~uu0Uf&q'u bg+LV; +#NS8IOADjϓXw -=IMlj:rm$~6i)\u@SՃU%lLK'#S[mxg^8p.lَ{z$5Pk]?\!kȠiE~mb@Q͉_˔䨅X59p0ќZ.X`+$ͱ}I}t\ɗZE+93Z'l[C(fY T5W8&rA= 1@ =k^hFa|N)0jK48BYjs< lEvk[Mr@V$ .\Zۧ'0s)sMx%wtRHfl a>/-)h~B'4S`o hTnV\g\(覊V}(ѓ~@ j#wͳ)džN'A}*den"O*/ؑITh)?^菍j(w+L nq]| @Ɗߩ0':;-vkLCbUe\TL T8GlvVѼl]SBM ԻD22 .ʾ`qmw7wnNܼ:#OWR$2w||+7sR ݓ3Y{wK)$PD[r hu *++x"[FrgJ@ߎ?s%!Pzxur)1rn?fꦤf(%!** $􄖩s>2l5E E6c] U,I-`t9Rmnj:=݈\1UaA YJѺ)A~$eqiyjUPKI+'_<wgSQщsUߥFهȻ# 喷dȓ>*zkĎ@ڱß-9.w؆ "on2pY$Ds4-]V=z[C8(Bb_ 6ec|J#NC!log@=%<[gZi7u}l jp  hQ6ψ4$>g,pՇY(ǽ4>ɳdDsXsPnLf ya1'8SX9 1qA%cJ F%0Qh='7)ǡA Z>yQ\G F]UWX54،c5|(er洳Ni9<310&Al7p V ago6֥ZJӘtJS]Xe4¿})@>wi ^ŦLJltb/-ii̢3'*J_55i9 k>A`D^7v+@n.5oy:tT9h3ȾG_m/ޢh&O/vɧqܭ8 7HJ^J{}<}*}V 5$,51KbX5{FBMI[/z .۵'זr.LP%MxFEDLHO3srt;-ƨ:SjN"J KwIdb[˪DB{klKR-jXWqbK iNz>Գ׋r{@ZPG$sK +bIE+|Ţg_t)R:hr |Ze48Bf8_t.d J?H@^XmnDHl׻a}8 J-D@C#zm4 f@`Yk6Ь)4rXeɌOg$E2M!%MޗN_)yF\Uee6KBYI8O᛺s-H!r1˔яE!03Dkɞs)NqNoyޛjƺHmTq MË^g *g3Ӥ[L4a8(ya X ,duc\FIq[)\g9y`GPTu)ArAm%=\y3]w`Akbn'`TD<2ѺhSSXUTՒ:-ku_oDz>Ub'Ϸ(zO,YpG#}Xl_S;o~u[EF4Ɍ>?ہ GqgKɤ P%'+xW*O”4e&Hc}@e)LziUG'Y(Ǣ;iFqflxM& j$,1"-eJgy_-q~f`M(a3ϙGF"D92 EEehXcB͛s:EX8"y$Xҝ}NEυz?Af"4TxHӴUr_ǫ#g_>Ꮙ+>h#\g"tBw{*()WAՖ=Q%Q3qq2)8C{B7_虰l_rTkZ1 gkC>\lp̗h}X'(fzKl:hMfג ޳dAG&<60!ZrZ65CgkqdG0Ïzѧ0>-rmAiV [Mq &{Slb <(2# B!5s_v\7}J5. Wm8Oާb/`j/CU&T]Y Sjֿ_"kC\"N{^`3OJ,(nTIˁ-1s_uqX15Q+mDg1 E*VI  Tp96Ùy[hC $ht5CJI<.-D_+.I'M /$|Ǿ+7ZV%^2ݽgа=ciQcI `d[\⋺lzx~>xY^u uYY'PVv .3=2§W(- ݖP1DԢm _@O7kߤpl . ,qYPn/>s$ˆBoZrhKcMߌA]%FJ>3eKOv vgR-qjgl c/ iFD^l!934R| Q%S~nޤx=̊ Y[EegbW͉/W*x#7>obrg_uf'R+<> o FKLnpzmӯ.' cUkoW=٨* {H;pC`.݅qk<@-9٦5eKs΢SN4PDVg}!$#EXhsZ K׋~ 91ۄ#!Q|SBY;AOIVF mBInꢁ\ Ipq+5@2;?XY%tkd݊`Hg/B6gו&J1\=*L֊'MѰsPV;$z>TT/;T.mE֢''aj)n;* a5n9@Bz9'[e7:fgn(C4ͳO+? q- J#m4Cȗ +-mJ6#x Yy{r-$Ewj, hA\*>k >7N(IҖ="`]1[q:YpZQ-C상L϶3ufg>&ka]4'KVϞîT $섰p)F5Hsfõ$2 F8g ٴje P!dQqD&Z- =NuWg"Βv~n]Mղ+B@s٪#/InazqsO5ӲArNY:= *lC.KHA`Uyl{T݊K ɌL`ph'U!KOuҌ eZd D |VIe0h_?=Sfe&B\.M,ӱ.L"uGxόgmM# 7S >T_8.N}ڠLtt9M|yZ#KD_QrhS%Vݠ`CYZc)^@4c Fז+aīR`?{q\t\"KZ%q5;U# X~LO[Q / ,GrOL9WKy_  `CВS{;٥r<dOUH]yİk`m5oyxK3[Yg2I;IZ^2<ad4D\2eJ1u]0ZeRL#EEyrBƚ6oy7#k"{t nc:{`ށ=9ʂbSdI}Uv8NZk<&xL{ʞOۃ0}euDCKb(8ϫ? G imR_ŠC>GjQ׋ ނ 3g6_@654h %-&G!ePgX\&[LI/hCtŏF+FW^pn})<?Wi8?9?(1s.5/6Ϫ~YD/EH\FU-5_B u^d}@Uiӟ8o\ȣ%}pcJ4mO'!+(6CgRa}eA13YbU6 lWtF3isT2/X15^^YF6+HeAgc><M7ձWD㛀p nAH13͝Rj)w29/8bd~𨍻)ivsX]{w"^wyrI=Y~4aje1'D۠jjz=՟-ܨURQpP[Cj9hFs@|&0_4ϸrjV<#lـ2k"[O~Bϛ|O&/ oQ:G}s\Ȕ vQ񞤠Zi]跰ۢE2 z)N9]t6 @,( .G/"Í M R佰ؖM+aNI1pK+4A,3i?(<JRw :g{#D9["T'e+#`?yr+Wkg8F(!Q}ãa-Zi|~u^ ~Htۭv 1t-CyG*hB MI9^F#UDVR4FA_f,)Rh8Z(3),!L\m)j9]I$ςNg݁Τv 3)˦mG@ (եe})}[R~/@`yU7lH;B1qaH(X$1PB G OθTd.ŭ{R7tcŵ{sݻٙΊ>VȒ!JO3x ԢfM0yZpX5@HdIw&rm1_D<ލ1#aub=xG7ZC-%r+jui xtAdk C(&mf@L8Oqw@=0b 6&d9N=ܐ SRk>kܟ͕]9(wg0͟MaQ+1ʲ(ԗ|@X n3顏Zo ~ՑN|+7Ǽ,W>Fxߛ?3XoPMRc] ~X(g ѷ}>VN[ 6m]adj=!ġlG .y[FyE?' dG"1U{48slS(7Hx>݌}yIz$PH!Oi*]3Dy ~ڑpik5"bU .f_kĄW:\LB5*A*߃ :[*䥄”\)QGn$8>*"SQ8:uML-ZS7 "Xar(̤ͧ{j'oh c2_vyiL0*j)rfušW4 DOK, htF*kY8X,xSkFrg2hPWGBkhaZWXCa4m|GG:T3c{yݚk]|UDYaSI5$]Y+BS%sZ Ý\F,8*y9-D'= E !N3HGFcsVރۙ`tU?V W9xa"E3hrؼPO=` rX3tN*# 蟒0-e>fQW N:%7B̛;$:7t{MvXK 8StS\cij3j]X<Xզ & O+K1|c- _jzηw6o粁[ݹ G.**PN6p r 絟Yz31Jmk/_j,@mh3#a0{cRg]?[itonQo}OKU7)S_}!Gy]0cqLX Jm!MYZwLr#EV,=a},ѪO奇Gn%DGJS2ige0CkӦeuJI6Ӥ :<-K3hS]83>嫔#")g(z6 VKVx祙]nS+}o AA[is^B`; `#f!(8G~{sl&W}ԨaKI,X :?q~)?g){(gZ>ks'OTiRv'[Yr%0/㈞(BzzצHm3B[M^q WE(-Djt>Z3^ r.16xֆLgY~xr Tz#XY^e.>{*2jϘhNN̖ P+rrA]t`iOb}QowKdѡӆBH|ydw5b|`#*1UB) 0agN;En/Qg*bf zY}錐7CQ3Po>}.#IjyLj=#AC]3CM{+ʇ,;ouܩꒀ1ӑ)`#zId>%6H匠_B][i7IBSy5t4Gj3lNGA]Z2K 4gSi*O[YLۀ/<K' )IfXLS8ۘ+ ~[k90TNfxberlgqL@-}Fdy9Cr~bJC0WLG¬4nC=<=w!YdD|ej-=a 4lJ$}YG菤ϥ !!QbP:Xt\Fi-=P qּ pCM% ҙ ˴\Ǯ?HHeQ{OjBs#742B~$Wu1^ sPHSoavPz4FuS-o$VLI詷)8y~Uj^|I&B!HAu|}ie8* b^FAW^M -Jػx瑞|g"a =.L=a "(D1tv d^(kcPƍN`?8Z } P?0s|U3nUӁ*\~>2]ؕ;huYa2I#hΑmafkz7wX/VwEz*Ŏ{:}6 THkd3`c8=Ӫ\m[|*Pkh=ǦI.D%Mmct&LJɜk.<|\ѽLtq|}pee X3(HM&_z|hףM>Ci,ˮ&r'fBJ)ZBtk>eL_.!I&9gq&`lh4rɣ06ixUt ɣbs+i*U}.ebo{Ռ}e >"g|}\ \/7 [ed&aʓ1e OӔN 08rTA IH:Xh)g "0$թpH)BZ&$XK5 `3%L&pߔ)0w$"L4M^}W=uF{wV !6\ju2WpT!&~ީr%|~&bEIWPozQ..EF^lmvkbz~Nv\ȅ&u2L{Qx>K.Gu,9J# لRe-OR&<ϊT Yfc׸be4h֩DJue,3nex9YMW$7 t%MIOWW2uι+ArhaxGh|9v-UBduū٢d1< w EPw >KY[V7~{`(mkY2Q *3a{xJ urP*L=) ^u6 ;VRΣ%B9nf;=) HC |>5Wֲ\/ ;ofG;Q6˩DuI$U|>(^3>dhotAHY|@N<"Ju>ӑGp.g,bY;֥&tJLJ$KiHHƈi~ ]1GׂJk6`ItrOZt%]>d_:6̃i,+"Rf?1U+.:g%%èܜŘ>;1O[f ď Yk ~^rY%h6/\-Cx0YaSȫ=Elg}\cvu`ġ;lҬbښOE*t9GX5Z}1l<1/̝TfB:k`SޫZ@PsH+{u2h*mVz.D 8EIרr{4cL:M+8t71mV]jjOCqO {n2A~꽤't@d;]D$ͅY. 溾?b lQ4-aLp\PT}sy)ItU>4g O7% M"ά}A!LF)ZhW?XoLSRk: TSUy3lcn$p|z#AsٱS9V( jVBjMM'Sufu#e9M@T^X .0aZWe՝|ois^ jF)Uin,:<v[;P02ԕc=3p iḄ0?ua`E)"px;W)gk/^pͩAQ6((iQ4,T 4Fɵy3whS;Bc!)11L2{7:M}+˹ۥSp#v7<٬g>)iFw)~ߨػjȝ~̛UKo_$@ :咚:Z]~BJH%?X@!tl!ģ5v=ݵƴn%UPX_JE7kP2 fy=OM*zi*ORcdT4@:™yx0_Ms' ߜ5םYݳ.XxB3ԩM$϶?=FRed8# sM_ uFz}'@K 6zxRB*afm>D$\hizyCx;BW)?# H60BӔL99r܂L}x߮愌u1+􉲖CbK,&ٓهIm@ є۫ҪO5Nk9z?Ehjl u8h *.W5_֖'k ZEHTXD6GC3~^'RM4MSS*H _K, 0;y3l&\jĞb{L>+XD Gbp_xze?2W(6ţ@s5x;'=IȟE2w%n{416^/BdQ#z_<_KIu3 5{:Í0dF|oR&Iwb/<Ġot uWrN a6ÿB)J+tʤa 8s!V]ڬr.>~]E[,mC'5$,[yő>,5Nj`vXЏ\dS| _rU$$<ݳ:tqs m.70_YA\RL:]Um څ*5m߯Q{4ׂp#^@kk@ 1i}Eq;5PZ k)&/HP_(% )qC`jgGGhqmea-&s[X-ng60_ Ra̛XG V$Z:umsN$=}OGY.l6[|ks#{G<ݱA9ӛG)pWu9n{-6 yιeVv]ijYZlm3MaM|;7$1i8"2=}v x o!$GwmOE^-\AT?P(bEV#Ll%io0G =tq~DC;V\pTD۠6ɒ$ iԳ%Cr1^B b~*^Цb5EaaA2F8RWt wOK sEehufpIꕸ k(_}Zם%k͔AsfCT9?O]dIUn|!y?= 8~rZ46.O.Wy1OOZϳ#c 7 2z~X­Us >_Jq=07%mXmLqx5+Wy|˙ ৘˛Kk9.{T W, q"pL7PJ}"L?omFKBN>H&8ҕR׋ ~TLF2Y8cP q>E#``5W2<ӜIܱ=Ӎ̄d<۲,̳˩ct•`J'om-;=:+Y@$9ï%wZ<6zk0wHa?/Ͱ7>:%pg Z92F[HPn,KgI6V Bv.F tPfy{$.?SQ;!>=O P>!ߩj^T+q Qd;ڕ[><)i NĎvHa5S3ꝁg47zJYR]%-#r.\jT)4ĺBM.C4K8UO,7;|Wa$8ܛ;z (ib=3d<߽.*jYMHkw?IE➫{̬< r9g(IV B a묾apt4YcL M459gx&5:v:YG9PO;?ۆ*>`眡fhMd>m)krg5cq~14E2fvǃ-êCdvL U{/o#x @7B9q.~򯭮_nm_9+5*Jy؉YLM[nVUKtR( EXvpj^47HZȶ{e4^=RjFCF9Q=94jh.Y- << "fl/nu'Y4-ɥ6*, D/)5}zOfm+I[(}FN޵gvCbHR3*!IuH&ˬYx뚐rS`C3n6x[BrH;B\g і@!.{,NDZ#r43D ,D;C˒ W_Ń!nWp)5"CSPsr? !_:"HqgYzN_jgV)5B%yXE'!($.4sȃdP0?ɰ p?}VJ5U\z?&2^oW{8.P53,M 98V _kUFگ2` =RqZJySV W.N/JKVDs%:ląQZtWnez6"g'QH:Pߎqk>.N}ݡ:Rx}d!bȶ+f{ԀfKPxI;'~4W5.`T9oDxS8> O{_0-D({O(P%w;U+!W":ddޖZH\S[ Tu '۹7۸:E17ܸIkݥhG,d"XELJy1DCh)aaLrZPK?n35gQyW%<FUᒇ# @箛-_ڀ*?,=MHF!2`gMr]?k~[qȮ۷<0>PC弳cZj<ܪmfDdKq)}7 MD2N=6;+^3ϒ5A!඄%V&< ⨫)i0,GS%h)&&mXu"m~3zŌeuC~O@١c^qsz.)"h-0 C npsd^8mP<)Z%ĬҾ[L::E0ƙ9O$Y팗<7?e88CRA 4U+R-A!]>lLNOW]098w> t5(E-N?!H%)tt"Tc@Ks,]1oD9Pt Vbn|b{p A%- * *ӧ ~\b*ZD7TB`=YKy pkݛ]ܖoei f82q؇;q@9-l64)Ր"<QBDՓv.p&W /;R]BVC@r-ѥ7"ŦWT쟌'qcNHF,. |`+]~-5\-V7\kO#E0DD `>M0+اAFoB RTf釯x(3ZOl` `]picLݩmthvXTI' WHN?Mg#I0؉Xa3q\%8?1 HGtX-@l9ir'OʁicRa6> B,_}ΙA{+`%Iba ⧡pE{MoBp,E_^ s$iT$9lDp<+2_ʧfϟt8$la2Dʝq ?*Cy1({b C]:e3|2ԬgXO~l*z%Իuc8 =j{aE C{gDM_WžUX3PlgR%i ;Q8~Jƈ >o)$Г"/&KȻ]ϖOBThyB=|C*լh%q4IF$&yc@ mnO:byMFv",Fc }x?tWʧfze /(nR-J0r'uPp0eH^Sy{(5aQ!bi_H*Ʀ(WϏUUONԍ= ' <teQ^̿d3J>QcEOK, #gdќ1C 6Xd`aFIUArtم7{uEZT=Oϐ1e=O_f/ҦPպmL&xJ0)}trw{(!^%ގ;jc^HOF#,oPc_֤XB qߍ^8J&i\Z"R}QxdC|&bMT ݤf^xZA+Wjɴy=`yфeF9ʿueKt8f{ف}*1lbdc)L .A]xPz@D uG@KO޳5<$:}'ǭiXpn0hvs*yd{|m ,t/{gc$ⴐ/ s^PҌO^ >QjO.F+z-KYpa,46Y]eѠIL=A3;0ʪt OzOV"c!M{Αfz)4x?&纂ΐR-ۋQY601-:?:mі腨nLjbũWǁaP@|0iފ`x<4` 캨#B- .8Z`pvIp(8f4fpHt:n  CCiy:m); )44MtߡDf\_p^9O{Q%IslW[mjS\C6/*>dվgS8BÖ <n{ChB r-z%OY)SQ 4Zɧ"h.`LoEs\VP @ 訔9\o3uC^ï`iF=a>фx—ɑMGܦ[^б|-d'9ul2zYhD0܉GVٵ_ZDmQ$L|9Te*zJv7-mĎt.z(i񇨊%Ӫ H,=Uܱykk}X4 id* Tz;JgFݘ}c}Mu5Pglpnh/%1y0J[sAЍ='A҃KvB;%Zt溝MM{9׫rEpC6 v-H qOSSeh Wr MXjjTt;sڢ~F|c*}|B2ґ`C9ξBӢd\#gx):jذD:(V~޾zqIq%9Dn-1}OmnpX?x޶ƖL1D>wAd=e^V7#RUOvj n)!t,{C?\I`x?륌b{5ba<ڄTS{*Q vVhGs~0#N K%"@ n(IT>ǵs `Ƚ6H.04N=OA.Г%t3˼1Ajq{ K؎}`n η&O^HB~aBpySwlR|h?L$/ ـc& 9Mb`Oq4diM.ǘRTA èc_M$Ku悾rQO%X^kgz+> v36g (X?uJ&U+=Lp1Jh]%+[:g *2͉(<.Y>WqQ3cz0)b߱ m(ݮ D|j"1\7rʂ:Dz:v*DQ8By*A&n\ʂoSYJvث_Q/;I*G&_YgT ":;U Å:F@WRvOmt܎qռXqۻŦfA[trR;¹$#C(.$g?y,vg ;QBa2_'̂,41|.EOC9#MTBܧ-xz]50M?eԺ זlawz/qx}wm?K6bp֣քڤSsIYJԌ.g_1pR%ChQv{&ZZtɃVnj{ɦ&e'JCEه8ZJR j"=6ӳp,ƁÂau&;wտ|$UVŧsB ,UN{7Bĭ~ pW)Ϥ:.X` \LFA&YVO%<9' N0.\Y;~;GBo .v4qXUժ+$ý3]CJV`z79 F>5Az@U[wīY_i<1v0 admP)<wh,s`^hCLݰ'ύ%yoXg(/U4jy\QP Ӂ|W(jNZPn7tuz-@2:iC4R^)#&5"cѡJ 25\>94Tsj+EM#E/}sH] ѰsTZtǂ#I*~4@HG^7Bo&rn#'prdk\}ث-߀R8O蝻cB/'t\OTIDB C{+ Ge3=ㆼܔT*%x/ZXspĬף_jbz s+{_0K4^1&R(3Qn_bY \L(6%e=P<;Sm,!Lln_&3]*ɏoJ0d.؎EٟEqf!] ;ŐViw/{P~XC=#♝۠Ynq͡OPUKyƳL$߿ =+xk^_,sC1i&ՂMh"AjTDG4Ҁ!]5Mjh dTFi]2jn n(>4NB uFRt;F l8?wTyhE!3,BHAycK S@l9P08dA=>w8τX.q\Zu镗ax,s6ta` mmW"!Yr[ ]r yiJ⎎4{8(yЬq\3(ģGݲslל|E]h.A_[R@|i&bv=Գq_k0@3Eznwa\#;^L[\7Q"IJbgޞ0uЮzYt֍c?S0 /r^tXk ^+@_Q`),*JxNQμ[Liw$$Ʒ}i[rz].ɣIVCt+`?TV wxS T*=KPk .t.KB:h* r;A\Da[F OMiJb_SS}j5z|HF_l>md -(D8lMjK kas x\Q\|IB#tp H_6XָCE#IJ޶yfrR'ϴ[<7kwIMga\1ڹƶ~-9tB7w-m7ޡrkLm*w!(F"[Cu/\k:o5,I-Y9KUvƎ3DtpR QbN.3#:<'aj朗y-2Tf 0tEcKesi[g5?Df *!,0IBBڼncLphU%[TUЕJ7x:@غ B?Koh`ŷw/rH>fH- ۷>hju-atG]sCy]8Ev4tYEpw@MUuII \IE@ ~^ǜEt4H|jq ][\S̐ǠFZ*6AH6 K-MKurOpuA4x=:LɑBA \+z1D:nR=|D${B)J ?o{&GsCEȁp~/Sޮ7\žmnD} qt$b&$.O"=o9Gkݷ꟩㣶 BF3zș lG𬻋p%)+z?@)a"e/4@ŀYQɻj tBx@ˆNh[7qȩٹfA #V*$8RLrXOGH {9I(Rl[qQ^AgDLlht+GnӠge mzM}p\vItq@mFьdSlW4w,UůqNrq=1r͘ 07xO9!b+@ y3hJ zpF>|]j{%tډN(%B+UlbA)t`UK$W]^F-z-\GU`a=@1(CsL"Rz|ݟLX30]/S&Fyy3 R7ƫKr`|=s FP.ByOm\Iy.t?~qf(X \]-4Jdm ?GRjx-̍B_AP:'oMkCH+ dOB,/9R.:9Q!oYoQ1:@U`zF:"Lh '3$( i@W6ګ۽drusWd|xXyIOjIa0:5˃Nug¶$0ۉZk4Jrp Z6/vzJr(F;412ֆ#W82,L^T8/U Ab|Nqi&͟uT3+J*nʻogVGBÇ>~Ѡ9 q5ͯ䥹KvyUr& /upܧ "Pc{]@K gȅ;:%//Hg奌;i&oujζ*q 2ꄽ.G\x+PSfo?4r3h;*2$gL \ِW;9C~`鏞G8शz,j]]D=5O°ԼQp=!HbD}{tD4_rtuA`zf[eV$Ȓ9\q]X!q$!9aU[8U՘x8_:.fUux~Ah* j)Qbw Yp2.%26z1{?!J@)p`+{'uv-p4=2z9![DUG4wBv F,뭲[0c5q}jj!m3`n\ gEvκ [S3 @r]mCWc}j I2 dBeM}^R&b5Z躜C[\ "f#f&R7ju6pSVb<~ 먏ob<|b+N*z0J)#^t uB'GF RltۈtFV׳q= c}LN? Bv1vPKs#9{,{f'Y~dF O k̀ƸNC?\X]gO5IiWe5{*lu&QcmLp`틺I&9h)B&7埕Z\^W^RhI:KO9s̢d.eXp65ia( 0j#EoAӚqVnd[GUEclZb&1PX9/xlmXE󯨀Gu!)DWRaQ)< ˶<Kl2w!@bpآG4 |g@yYp4Sa+ 4Z׳?@Lr d=iuToFo@8(jڨsysFK|P`8^7A2&C; Z̋ j 뿫 8 ȇ2;ۍC>v,O]{~^|<'!R c8p L1;q:~zw8T#j@E}-m̕6g<5GZx6Qh+ 2?w.ݷKxD;CƬ_8E\jKoy"ak2Huen>G%,ފ' {y$:>fd׽]A?XF!="DvYP+ 8-KcT'tXF%˿yjn8f/"%+_\[i߂L,R[ A*b?0|}/-([axփK ?3v e#>.Hf_Mȯ /+z$`̰I}eF;_ 0'mP+8A`CEȭo2ػr,:*PLu: >AH6 srK .f9D}q G,UXQi`g=A?W\L?A4~L+c73 au鞉a)"epPJZM| ]4QF ?0~=%J|Dҥvkô$R욠T'Ն ;eZVqSBvzkJs;roh&hZDL`|c _r ) h2[Q׀bШ$S*5 HGVDUB#wUb1'8G\;IT/2= TKh8Spo]&~MKC?r7Ң*z2PF֐!;& hy?9jfqōe} q:O 7F}AA5۸X }gg*\G\G*fK]Ӻp f1OrrЛ'[J"YQ`éЭ_Psە>Dkȣ A*Rh +ͨGVy :O'nhtqC%ZsAַ'%JW 2\=tTfR.zG 8L >YMyQ/֋"ub}|dGQI#\f4SjSyZiP%*R bsP$f' -0s \ȑ+!Eeqޠqo H7%(ϳM,X{Y1QI1>erWR9*=0S{34kwbrb=lk [bcI:+D+G,YdsaCnyQHM0E%(;e>maf2pDGQ`/0x<=UAMàU[E;"wH;W 6!EK ?])K/mp Kz_Ƣȼ5.A5}?Bb-6\"aZ$*A^]yUŔ [ڴh|UsO |=YӖ?#7;iŗ?Hmh}`Ym?X^j/v\ ;L_ OI!ӸD bFx8 3f\I` Ԟǐ\'ฟOCFɼHwߚ.0\;CmW9a>JEI~ ䷐!z(pUf&G*Plo Ah'oԈRkwMv;pi;J hHIpٔ6/ O>WC;-*}}DvXB%Ɲ/ qCvZz`8<,b[`9 X t&tş8%.=#A?L҉rހO\ OA[^I 5^vyЈ0][&+-*3y}5NEfMs8@CÒ)$BFoJ5ܴMpe}kH2|7|cW$RqGqˢw.p>OeC(".=Q~O6;%FQ~2.(l j/~É%#fёOs)uHmɵ$F~{r11=~K$hW/q8aj$CnO5|k@~n):[-!M>xaF0%/,XԞ0fFLGJn_[Oof%\Pt>*[$(8K^z65DtqNc^%𹄅yExlWDC+Nw?a6uaB0jtSڌhdv ]Xa e4ضĢ3GFj@}!y\䮮'i@QqTƏDW`| <1'4dN0ΩG(pJeGq.>ˌiwil蝸j}\ONh@3=rnװZ3f;!a_puR:PBaO `&d[U'L24f|:h2n UBƝ<~ThE'#۷OxÅo@1Kr,9,n]?uH91*\sbyy[ھUt?+imez  ~usA>^JIkuvL<˗dtL:j )vz?K 0 eD"`e Fj./ > ΅!:;WDy+{):m:t2'zZ%&k Hk \yѺw`95f oja"vEFdʓ%=tTRol 6ϼ[޼{J)a b1wUW f7?I_I /{!ף1.ŅVr0,U,jmh^Ak>BNkp $&A}"dSz'6m)T J pY/ GZ^I`z΍V oj [Ǻp%ճNf%Ifgth (2](@ ]W>'HI=8i$^z4>TvCśMj/Jsbs&)e2u0ANJUSQeXaGƆT:ap_{ݯ`47c@Iw;KPݫtz` QY 8z|[4j17ճEH34$^y'b)\7G=;󆉼Gz 3SzHz'q` <и!Ǹ =M>&`z BX_WLwer^)4n6 %Yy:4#K|ʲ-7#XUJJqI\OH5*8 R{نimh)8O;{y(@)EAM؃ſd@H@9FxͣBkuP$Z>T@lWc!+UE],M"Á!4Z̽M UVw:D&n+ ׾~Ƽy$6[75=dtwMdߖAX Y0-/aGgf #P]enQKao[H"j)~9Ё7R'C? O 'ޡVýT:,G>gOTqO#)syO0g%:&D8~߂SPI's{oxѮhLdR1zA/w`fp S8t=P3`gC#鵠$:Y+ <ɁVy*:,ϥI~48ᘺRѼkCm' U"Gݮ/+1NkkVZq "sIRyZ@ԓ% +vD(Sܓ^tFc[xkB!>AAG,<)y9lV?-xRN(HE Sm?W\ŌYgBG&ZB㮎pN-s";ZP=V"$F)lt3`y>^pd;um|s62YQQuM2T ]>"^;N:̭L+=']Q~|d%?A%`}K[nDԞѧO]3z<Їڤ*:fo0Nc_(wufB:u_ܬ/k^ %#Bօs= gSY ~HڷxX=}M ] W㝱anxۙ;*r-#-m*a<[2pȶFm5X'头΅ۯ=ϵ,,Qz2$Gf° ܬNo= #]f3rNMLױ; v  N % –I`G8ō|^l8r:Gi\whX}2ȑjY:Prھ5ճ9G(v#1 nF(_5OJ&[1*,e%/np,YQeZoqUqzF-CHа cCTGl=̐ <7QR14GM:V?y5< [FJGQ X* “Z*+d2缶\˙aw] 1tԆ}F00J}[`^#%I뛑 N9K[ȑ{;֟jv^w*,2-fhsp r2UXFޕg֩B욅g)e^Ux7+Qwa .vt>oOg>/cCndGc'v` sI_+0,!aFъ}(#߅oȇ>Af|.&L뺤H/'M=!y; MUy82J?LP2ZL1v1FL%#$ fWՄ(*CQe %Ĕ1֟xQj*E` Toa$'*BeeMv5mc5YWvds )w&җ|}OgJ^S>tG>~ ͵i~|5v}c8Tpm: ~oNVZ`g)(ݐ)ϜA%XeYI5|r^J%[+ Ėp"2h2Icho^ Y[dk3R~ ;>[wӻ Hg;~*Mԙ17Μ?І s/bX}~.HHʏ"N( s)Uz 86,n˻PGާ>gt?DëP54>oV\ [| 40IVXȊ(ֽ\?6x`QyeViƾ\XwD߲ե{̉&YA'%n죒^[~.u+NQ0 pm 42KuU!Zܑ"*<0yh:XAUV7Vg(:^^?Gw[?Px_%Uy!jɼ,wE2HB7ER,1kw .|ޤ of)WkKM\Þ iJ))[}t{ìr 0e7B@ 9O3ž6&rþd-b&oBb%(`};D9ji]6*5i~eUhǁJ/!<9_ަMԓ}M- >C+ؾ]\ePV4k&蝚C[?d4faj 2-:k wҍK~M'%cѯ䄵D[7}uIǾm+^]'jF;9s-^6XumdٯP?xbi h@c*)փY*}NyOX|9XH}R᩿"We2s͆w$+m8HX c.#A)w-jxc `MjZ#A5)#% ?c) &Zc6m%h:8a_$RJd%>eeǭ,TvܼTžw{W TIHHe9pd"„C{Hta![#nI\WR=bbd8 r^ 4QEtB{Ԩ9{L#kFX6TTdMb6Hll[E>PBcZOpٿ0la%tey  ㍫[Q}Q{цXp.b $ ڊ+:N=qݷZ [Mx@ fHe.K@uk.O(XH6*fx`fq;Q 30ʕ%\rbXl}<q QDwfyZ(G$^hDB.QP&NlVG$። \+fh׶ F;N#hՙ ,>/AFD KW𐉴5k}ȴqںIo1o H%|i0,A98<iF؄F4z; oԙK_ .q ѨNU6<ʦʯj4x!wSfN>]t|ĩVLYpAı*"Emv"&Ju>5Q"+΍pke%Xp3|@b}m4xk[p΃U]"FIRD#WN$jBzFBF^$zEIē% ER$5$/ABt@EwFྼ&vd2נ Nc ^!mUE/3,M0ݽ/v=Lw%lrR-k62OSn͗͘|'[31jz t5j7$KXWx Wj)]oKihhSlkp;+M28(}9#Q:e8onex|C4lݒpgEY ⨨^<^#|Mw2q"2 Xe5lgBCV">ǩw_w"hK%9rX*w5mjۼp8QX~}/fh\Ͼh%MB D nr"ŧ=BɵqYl.j\P~'RDӈ4S` D5 ձ:[ˠPn,y]AY| vC ׍-EXi2)--8bv+rHe !s(3P Hf5/MP1N:9Zȧ|wQTR 3xgaL=a* &W30f}q ^S<Ėnk79%IXd;9Ya:?oYeE1N%J{*Su2ApU^0A U7r#5`r4 A)̘'7p(bDQ@Zl^W`?[ۀ0lFȎE1<vV4=U##<a-f7vTOvO&uz&9\l Qlpޱp tGn*%myT>9 &bU9.)Bl#Ia b4&C I]i5zIiDA\.<IFd3xecks= {3vAdg5ILԾ'5AV*bmE$՟04S*D8i[AOEZGe ѣ2ԧ9aVIt}?uZNE%oFwxk`YףxXn76~eF%z-`m]q8TK:z>4͎$KM&eO*#!zw)=ƸрBĥ݄Y 6VHosmqgg ra*Zuoǘ|^X< ZPF<9a\?~#-xg hⴒ#tAs_1 :=->SrFcE—=zWT[ڷ$0Kz 0+܄,[,& d?JOkdyϿzQ0nbۼ֢:Qtn[̚@zΓ7MCٌLPG0KjaMs7;7UyCJJ.5i( &bjylTPi|-d~ݭO ;,zP%0s)ŹHOnb䃔L np>]7! 'vۉ<"?d,_{Es0z~n?4-֘Nn{8j} r4%謂玦4uL-OjD=z;B}j{#hJ*<QNɳc:׶ pX:,VŨ <| hbcòPY2ͧ1sN `2h Iۢ:ϖm?W ?F}W7B#=ITť4>V8 "24bX9 ڑIL#i f^*ږ "C][ҫ= hBT 7)| AVP`jSe0yi]DBLzM6u {JW[[rd<\yLฃٯ}%]|"ʾ3EOj٪oa| k2~p;Ң9Wv c6~',J%+JJw~ߕGXlv$Z649I #(lHub2,:xhe1SZ7zzCR]ZVl3gD Sfh{!&)x׼|?KPRS]:h8E;8s0V GGٯ2bs<"ڻAl[w+ lQÇ5'bu XφuFd0%aD\aj8U5ymnz'GghVCS\DtN ¹i3w]z`P 04Hj lokei6aFGd< ǻ\r .2lߥ'gy)TvVWt$1vjys_7QPeIchP4I#򳲴pp2~oXĮKwP,߷еDr~|jr`E] 4Su< Vds#@.7q0xr#2Yٔn/9iC,,Vɲ5yf$AH2*3fTzrD˸*]I3rO˅1J5z01Iw\bʂ$po(;X xp8NNEo{k:RL'LڑC"'0ZaZ9X6mLo ?zO{]rvk4㩓E>}K6'5C^~|gMTNfZLJz6x$rg@1iOZDqæ"[lO fuΌ6ʗ#ҍ4mDj6όNF2L^|hf9/'6g#?\fABUPXEK]wv1{w*T߅ݡb#)M Ч󑬤ْ`۩_i0ݶ9\,#N3J#2^l~H >{ ݵQkh= @(7[(%ˍbeqzm @Yt B[ľ&RsfT=D:N*J#\Y.#(ω%dj+q(pk'KDIv;IpU) Wnv5PJ7164zB5"آ lOKCA;ˡtl 7a#,A'jZK$O8ǵ e 7*ϟV@X.hfy2 "ؕ' c?"y@vD.Jedf:c?֖#lt@v&[Pv›7ئVѠ] %#-)3My1PY ezDRZv`0U)l JYP[f!}1%RyMH]VEPCu( t\o_SDf!,"7O'r" D ]XOD# Kl]\Og4`Z9"1wq%gBЛsk6zDLjgE^kj^]6!j]~-Ƞ0LuHM Ovw\]\޲p; Iҩow€=EYYґ,VvۉA#8po]1&AP@fI3K|ӠlD]PѬK4n>eeTz2*(zXZ%6TNPO% 'i(#dz<3^킔\P1NflG Uic8Q_P>tgt&v`웁ähtӗܒ@]WHz,Rle3䡸<_愪{*zQ6zVReZܿQ1\^n`ޛB %hUT{cmps:qWU$\tQ8i -i &{335?@၈V< ΚIx ʰg t'R`>/a#ȫkx`C[lȞ 钶./~g(r-hG9l%9kUuQӻ CvĚTDg[ֻ]1U:v7r؎OVWi[ٰ9UPKWv4p\o1w!\UJphGp|@@X>9Ɯ4*<<`5j /Ga.ST^qJ+hxL (ud|r%")C)5Tل]<d1}K~Q_qvҷS>G@#i)/hX^P1Qv尀mPPwJ.\+\,"sg_-;y v.rgݰfe̐3oNゖ@ =]6U >x{iiVV/o-6Iۜ J 7?ywHeVZbAsKRq8.YwVo_ݔ2+t|"SqkbR#iUW]2^Y08U3 ]#SdAIn[Έus+w_MG%p3"\#Ne?&cgje(^5rD]5WY@h! Q3iQA⥋zX)6Sb hӏĖ*OVhi!h~x#B륿{rˎ + ZaŨ5~)Ϝ Q ,ja_./LbT=>uw, ﬈6u~OP_r#wp['?ՔcgABzSpWl)z[y0ѯcuԏ6Z֤5-6v+QőN(Qnr|YaX@ #~ Er}+yn H$'杠z] ݀n):iՠ һPƏg6g_Q@GO=_B8-ojKm4?-v ugvHc;zn<c+r1"eKU2reXa;n\R184ɾ.Oϼ߿{/ϼpY&iֿS@Yvw"ߑ% )me, gSp2cu(/ULZxr,TԌ4C}2a>56jO-+m% E>LI߲%dʈhmg>V8fZ`LP2O! \ft'd+śI].<,j,a) kLWh)AHc kU5 (cT6EGÊqNf+e~ Wt]5 K]U1'É\uNɊf"7RJ-ЍZQ; H9N>7 1Fq l'ZZJK/}T&Y5d,2:F7bgj,@ğYBqJM"R~׬ bOL!hQ]@s ut@=7k% rI.h8/hm.~Ά'!P(B&=uYo Y?Q1݁LI]԰txo;bbr?Q!%xԏ rMV74ߔ$ <Ɩ)f?z)V $>why>f#lC/B۽:*璒Xod-5LfxUMǤP~e#M]qA/Y>d5*3~^8Ho'%se S<{΅bjYWsAL><#1>q6 ;X&tsmږ$#L> ,^IM-Vf!)mحCx&.;$[[@AC؆kp[g5XR죗y6tG޷Dp^a, Eϣ[ȶ~ ^&6`9 K4b2zf#Bk" ّ q -70BU[DN;ƻuD,%>[㕲cġ?K[pӗa((j'N~O 8whݮ hL&x; $}ׅ (kR}`^^H7^݅(E PlP殁Ym1>\T䟩 !yp lh'&`5.;jM-W}Ǟݎ=,0̈́. pBP- H&JAYqlÝ_rR8+k+vГH L[r!x=_aP:&Ѐʤ^)G4V}/KZ ɢ !DVjsUELϜپ"ţl~ `q˘҉: OZų0LR_T?ˈ4zA&j#] @z(fe#,XَEVL1 J$}&ٽ~94E|NXqW[TT*UǦ^;UY)r^6u_<..qU~!V1]>+Υ_69HT°E[ eɞ'ovăFi QҰXGp˗Nv#Jlv~@7͟ Jm `4>B놓`W(vZy ?cʠɁ>@@G$=Ļh5~=}ܛh*jف3|{0*dqU_.Ug2RIH|~!&-Vaa!H!ʒrAMC?ߋ5w:h4Pɬ;?+(ڪ$:Qhubx_*j4zh8S8H}sO?/4V QF{5 Ed LxL `j3J<3䛄 {'-aw 砨{80Z OֱQK zzntK# <; 0$US{bdM8r.m !^i YcL|.> CL6ƙ+b4 pϩ<-\0c-[dl#?ް{Ca]H-.GN4m1{4*q~ `xN,BW~؝܄R"X.M2?uL;!R"@=+%\}(@Q ~/>ZӶT3PkqdRvѠYM&?WNz_R;OMw{Q`Y[*XDXX$>V3ZpUOVvy`{+vFAk5=S ˈAJ5,?`r%-GTDDSvoH+ ΑBe:yJo#N1srvfeksm\˖/!,<}9.!~Im_Wij}5 {0Jξ,aG~ d$/f5͆ߺTˢx99@0W3lW#$%sլڱOrQ 7H]'dWTtsM#h\ׄj V5 :/rH?CȈ(g۠gS݋֢GFc9)\Fo#"gNSz}tӰO2qX%<P֟ޓAsѩ?#unѼ2s2sOx O'DQ"fG@x;H^ }0n.IH߷|$v٪ S$H,Fqam J:kɗ|;k7^gicܤ hwEwE^l.fUF $ݱq8jxom+EcI #2N;dMMU 'Qݩ4I<~ۥu|alVw㼂u)XʒS9yNm{a7؅`f_\6fm20 5fǎi6=-!dS hREJrXuFY$}f䦵ۋv' dqk=d-L ^wGGcubDi>n4աڊ[RݍffF9`3g|Ǜ-w OQ nb#\LV\36lԥ:w{dumBLOQt)V%<9nHr'ht 7gJ)xY ,-fљ s1ϣH2]^K{#L(2j4K/ 曲QUKik?P#6CsM*bwq5н SBAq2o2kWekH]Vi)x{/v\EM0.^d+L3"ul&h+Xx>;_~ڊeVMD/]Mkl3dbOwKmom}Z:h;A%.e]6j!ʑ^ սw1d\ӊu -CQtuk@ ucpJZGVF>I\HT ^7m#|q^<یibA 5L.XS^9,/I-ǿq2{N1%d[],sS@&`ݢ-0-\&% E-; Φ8eQ;Z\`ֿsp~gK lđA.W{AF&ru3$ "t.wܿuдm'L"d~rw7hInۙ64A͔JfN.ݽ\4wxraU 1>Y9t~I_X Aށ=61*j=hٙ@؀dB{Rl6y?EUP ةx\HXu<B"z&Iuk˙* `ӏQ C`R"rS/GJ:n#Yhe ,Q nM!Ļ940V٘އ~6Z$%Kmv[t򳨭ʌiuZ;QK9C` CtwFo*m@V֚K0 %ܝ8 D񫠁xl$S߄܋=FЍP5s߃_CG^v_ Am¨*9^b˔F<ނTIJC?k:?漟KH *BhﵶS8L7p.1Wq~FX.؏쮷0vY~ qbXA's}put7;_"gИ.R/1bmD" z*}*x:7O>~v$9ry)'i@w8`{i5^! ~px*˨*_3Q;N53ghjۍx,h7bim"J'c:2m):IԦy=~:dtO![nQB$?|^Ծ*z"OX!)p},GUVvܑeYTR=iDwy¿ VnVҙu0jCtٍ`2C*{+r?NNOUTk|_il|h'4k{oRtR4wkt B_9giLq+-⪱:6)ty򯣱G o2W wei3!ɣ,9uE~h3"j/*)2H{O2g-˶?Y҈I Ԑ\ZSh9 }ġ%J*];pxa(SkL1_g d+9qzFl`w {GlJzULUiٔ((e{X B* )ru$d)[bb)C3g3Gqkv׬ERsvb+h-Wgy8ޯ(8ཧ:(|}|1TV=IMMx[*\}hqEŬ5(K#-;Gb=K/ܞJ@<9~*R,ɪ Y&.uUK,>, 99ea"@;1WS\q0i[hr7(}G2U(ۤ6kHVg<]Zovi߭SZm@q\{N[N b*BK7e= oW67_?f~fcb `˺"7f)9`:TʩNUPt)w c'%3"*/T3y6%ڊsWp?_Eɩqߊ= (Y\Vz٥36:;MU* 8kE vФJ3:T[}k{EQP}0 ad)ﳣ@q2[6zG1N{=)=3w=CU b6&w$E-s'-P#؜'Ou 5 }\l+0eg5_3Ih h5A>kX.%KC]"pU6[T ){rH> b;rZFmN_5ʺ;$i it_Lb7I@G#/X`~1k5BB%uͩG-A􉤸ǼncS%۟-Mً`ToبX5)8"@^@ 5:{O.+>x?dah {~Wvpt_s vZ_I%K~@ٌF_0El]M][Wshgz'vJth?n՛|_ʘ {n}JHշ/hlM |O`VڶG"-'. K~j 𸿑XPqĭ_.99O"Eɮg>ᆃZһI S$y͕{e>\6z3wo_eR)D:[(ET"G#Ԇ̈#=A]mecUazhNp)ؠ~~Sm emHzkϙ֋ZYKjJ3/e\V&+@6<O&L4^ ÏG3]i&VZU1fOk;I$voG2>1E7td:ʍt'Y@7}slyKbt.@Bc9b㟦.@,X>.F0&HYnWQ;zFI$?1eԇA do w]˘#1kDv=?*4{̓1OjHG@6Ϭm9LnL&b d-XkpѯrI:aE VQAԚ&txz }3͋3ha?AnqܥYԪ*x T@?!cntcgȽ~倷>J[D N{rC˪TpBN n1NgPUA٬x5z.nkݢ /?d7HNQw֍DRe/lG2SRI@%782پ5H4¢'6s81=c\Q T'mY:OL>Md\hmG4XO:Lf{LYJ ۿM+wr* iU Rh}8&IDX(B/Q>ʃB iQ7%y&]8LODbn[ʝ(goMzm7佔 L>uGH6}WcV"v-7K*"0M6PF}[?.]9]KB²Ku$sfp>!fOqf3%y2f G)~DK~?vE>QnMrk}5& .v>9}A:n:H! Hk,f2Q3@y8R\5As1fi zp]/meE݄.(]SkvU+nj1ŭk vY(Edgyc wj@y OGHf[A]C]=,^9M lɅj|ZTz) vϲsXd=s{0/`;ȥa}0 p=J?ݚH祁3ǿD܄N:*ХUb MGd" u}ERW#]0po'.u{`I@Ѓ(o@ -ARlsiRfs›灴wT8?Pbo#/f5N uR6hFCQ4n9a>>:YٲlP]7#TOg9Q `ܴ0 g/,T 6Ethek>&vbwUޙQ c>屮hoOnvcp GH=C$ )i&[yof&0mMJ,US?@.Ay\ʨxjleJr۝ɤ`pRl9a.]!l>Ѕ7}9`SSu9emSݹ!ޱ 컢s{i"qͲp~i% |׮|jz)+&%j"B~tEwIgY^k7bb\XR8>MJf9)7ZP$+Twb%6FK+1NA`8gz^C#3G@!Cț"vaX=zW xv5dgb鰸 o]M3^LȎ&EDYsi VD8}ؑ̓EVJ~3ub9%W?핞9kyxR.CwF*k 7ȝv!->}ҴwG3p:lM+$y%?%_֭RaHܙ!PA%_CܷWקԧ* 3FJ^ džz{ Gw59/~WIz=*' vhuH5. kleE{kXN7β޶P݀ثJhpiB+$CI&˸M<%|4D V/ŠF!9hRur avV^ftU5"K8޻ֶ{tyht"壞ʹ:+% _j3tI~nB/w}#֮EVx2H}M;'Ly ,"Nӄ%y0C彎hמy}g~0\B_%It '&ie&7߇xQ-//í4 umYi{W*!Vdj!- efzdN5WHO>=$Oc,<ӳjeXQ(}LV q.Z4`Xf]`$d=ɤqZNP<}KOQ@]7^ߓȫ<XW9rM-هB7ALFDkmFa&~4ȟv,'4鵕r/,pWRq{_/T1%$e!Vqf2t ~ D^9ǟ|ev}ŊM悻gR[|JPU"Rfڣ+mt9B>L9Gm_niDC^ۃށR9 Ⳬe +ѧtvꀘfiŕ}.֓&\f+cITJ-fDҲ|RT'n&壁1lF֖M9P.aB~Y Tlg NԀvdۺahF-'ط&>GhP-- HBM Z#<['l~R]|To7ǎ\T\F/M5.'WVfAWC$ց[坸gMxa,N_*D|и'M6?"M8c<a(o"ڿzGg_shϬP8C[;V {ejFw  =$m5R!ai@jH ڻ)rKDcmMIC\㘏8)UG}a7灓^=$Dg!xK 'H_{2Gę옃]I³ ?I 7Ok6$*ņNtmL9²#EM@+yF0l7aƪcڠJ$(Ûͳ+4ڣMh N*^0I OWR4[bpdm=Zhj⚞B0plW^HvdR L@-tXRY2(d&)5W̜W1 {Mb X/Cx`}d\XvCbyJӃ=Vvb +;EF^`Gt-.1UYJ!sn:gcC ;lZ(_^>YfWI%4T;S~>|#+H6l'|zQg 4&5RxXCSU˗FCw]a:|58g dױ}z c;8` U6, xUwZ\J.gs}z`V7+3<t,RLӥF7L]NV&O8ژ4rjw:c|cx cnSyp!b^$8tLS9Yj7=3d%y` 3;0 _y3C\/{#迌CP;@ׯAY_!_=[q%sQdڟ W\?T)an&_ih65Z=s^J w{LIwlr7 6TMi÷O=ziOD|}J-R,#KTظg igXPPmWz [N'f>?woZ/Z|+*`an7Qת"7\?EAp|&7͓ [}7-LƤu:47ZN 80 Cb-'$2A>iQw/*0u㚾D捃Ζ^ ! ޘ*(E/x'$CTve\C6 ;m g1ʖRnsNnp߄ w|XZg'ՁQBtL <{k "gh87+t Wqh:]6d$ r(#>*^h2;uqX+R^NSbw1Ƀ]\aty}xK;+;mUNJЕSe;K zy&olM ]`mʛŠtvʞ(CԧOP}(<*ݦ9ד]퓓`k-Vx]W6c޾/%S1ęFsL 'j (klZ"nyt %. _cc7 d ;>>gZגPPdl$ؗ4sǭH iSqM-3#҂k۰h=-]ڑXA]eMU*>-켞[g)KW9g"4\ފan֫3%783`ôXor!G}4pMTrOAN75@M6t/x__&1o(69߁ %s:ՙm6Y:1Ljfw"wXsqEar+wj/ -Z6t=Qkq˩.K ɩ蹈unVl',y5bkBRL(Ӷ.ϺߝWkhoyZ jFߥtcEd;\:$0@ QLqUkP}s (wz/eG ^$cFo޲WO亹/>mnCH#^z\BC6[::G4T=naݯs>{É`pD? ~~Q<5څ`e2Sd.b3d L4 "Ʊ&&Zka"'m_ؿ`Y-we'z.!lJdJ9/DD¾@s~?2+w^$Ӯ S&x-Zk(v\qM"($y8[+3qs״?b[w[Ɇ;N5I= 9PxE&{Xw>~# qiwcl~:/apCIhA(l:RiṕvNn}Sf)Xta N!wsoR[5ocfbI]Y 2v+cs7eO5njs@j |5d G^H&S3(, "nShy:&/Ag/][-Y)#zo+B CGgnw{q U5G;H sm?R!1  yƤ|ٴ[Eig (+ Yo[0t_Ll2fs< ^h:HiDzBV.'/ɷɎBb%Vz?}HY)f,aF NC[>ҟW<7?^ih5Ɉ_b7|2q+6+4b!Vٓe72@+A;93VKarKV@|H1+ UXgAװoʫ)B^O )lWV F!G]ക` vo&rK}wsIVΫ׋K*4'5}_ʞ:wu-0*hUqj=.T U{D|ϳkhώl\=,5Y]_#%0C"L:]b]i,g%1Iuh>'Q LDXB,Nf;`:e\~T5Xay/AuN>|LC2Bvo1\>C1f 01*F 1J#އHXYՄd;B}pxd/E*iΎ__V tQ+ڥ7/3LR/@Sb?j |}}+-\256^2 vM@\'e:we|T TQ/=r.XA_rpz&z ",,Chw=֑fs;tg.#*[49h[ U?c ~DJ9>ǃqHIS/Jw^mOqKbVXοDɮ,3v#uq 5֝j?w,Fx>yiEf'`)/{֯dG:%2)ߦi4vX{b딹HH_L/["qDA(үŇSa&q #Ĕ-}'L8{e/ED3׫m¦Ėe,aB yL&?aDl %c368HyՔY,H֩82{ &W# y4 ^ʒ:~ުV\:-)'6-Yv&hk2UAjKrMElͼ ʶGI" 6dy~Go;pֲ_f͔=̳e h-6qCP~@DU^\rs(uM#~ҤePt( -DL91#&PiNW#8oyٚ`ATh;(EօG>T DR^ 8dV]gC഼;9v[(Bԣp)A, 9ceD{m3)[$6E ׾V^~:~#3!N2 4ظċYч<9W Bw"lI 9($xDPܨQיބA_[(%Ƞߴ,{@)#ې* h-4%Wݍ]5 40SZq/{,IbE3g?Zm;xr';Y7E.֭2/٩78:&{1 UH4|NMTNl:*ؠ`Y/@̮awk[@QW%D^7=,В}ל+,CXeg ?}abwʦI)8q )RL?dR@]5dQdê?ca]B0AM$jeKP ߃xs7wWO>\EՆH^ۚ:J3 ek|jU-@)yULڔ@u^ ,gpِq#~ !A+B?q8cQwFʥOar$BཅCj %:@iBFEVuF ~f8azy)b4r/Kw#D_E@~_Tzb“n>BT Du|FR^/:e%x3ڐHGnO`je7Iߴt`byHS^r7K~C<lE>Ws޷\#ϤQtSFYB`Va 4TlT[ZIV:u1?@;aDS,ZF;Ƀ1g#^BREs+_b ɹ{W> Co'`VMHKs^C `M5-x+9<|(Q]>,.bI # Z }1{~# qZ־iANr$++Hi `xyu̅ªplB)!/c#b0LLZح p.]@A/ F^5k6`OޔChēegr_qif[w; 8gk3"D`4, Ȑ _geQ!Uţ&Jr'0酄 z{g]qب ## ҲnvGcv0HŁ+{* dd r}x>"3z_fR`OuXU[G-çDU]UG&Sk:F4jhVG߁*[ѩvo9sXmr[ ^B0ܤTHUJF?\^^*lŨu. -?ZNYd\e* טB*7#Ip| V61 nJ|6/CYPEy蠐c[?V7!ǕF m>A!_9G4xLa/xb݀\PDAoe;kg>8^n IEj-է0/r[fz~`5E?ZV'47딫w5p]r}TN@Z_pc{$s mT+` L֊α}ØIzxRo?d٩Ge0UI|-bT{FKeTV({S8kOȎSA:5L7f'ȉ\V'YH1SX\;w?=6y 5YQx_9%a.:@_;)maC{Bcs\l1&K䟿aEZ~{1*[KAx/ ƍcSo:.+wL[K͹<-Zd( 22?^wJOY<"nx ^h-y]xhtٌ$pSE>:9ΰԽ#YGJymƤ~99MhY(:\mA{IG|ƻL2w}T c ^!{yLKA3В8MUaD. WgP9IFqBwQn@Ze)CHeC^3Ԩ œv#> CFϧvTn`˗z 0$q"=F+qAbR UW`˛YMKt:iÆAT@C\o .](2I|uqm4V/{h;g"h^MA{SCg#, A7p)%/?7P¶ݵ~qb8D!Y 1CVq#GJOrdZ5˖1Q"#sC٤Ŷ3QM}9~w3ZENdX5MDLMvnp÷/F"+72u-LӒ d]-D*`v `sR(۹HOs,t&.omQ.SnwFmqrGB2d$]x _,e+a'- 8CD:ebO;I1@jo|18̰1,pEѹp/L2G2 Tmv:*dpnK=tofS7=us~> hf3-)}ٛrX @ߪe~בkj@,WCOYAmf?z40+Vnɠ]HlS56lX~ڌ]a \{iԍFsxCכ'QꙐgXh#R}M3^vS&a eiL)=\ 3v;̑)΅}<qbu8=R k4FZ@C[%DM66H6GW;3fwp#o9#F%prS!1&˟f/?[S5$A)޼t6sѱQ{P+Ɲ[LWm {o@)jP'n@dOzK-"3LEK֜`)ϡ W;@f{0Fʤwlf=BVBNG\ /X81(\ qQ# W,a;nS)6f#@Tb6fVd!& @3 oXA*$G? 07HiRLA~U:NI?HRN78 '$P(CxsvG m xGo͑B UsOK>9\sg>|(QNYca]BJt96l݃tsRWM=b%)u Ušjɬ x;@d+]"Yb,:(5lL0ydP1ĀVvMjHt; LAFSS$$]ZN/cZU۝2Z/-3#00M.W1ըA^-mvI,=Rznr#~Ewћ@N `2V-/={%S.0aE TpCt oH%$l;j-Yٞj*r!Lי[xhYېcRN,No1g=-pvNܒ\w; Q;첽Zq>}vM~Vȸ }CP9tJmC :-ƇѮRI'X]oU"575>1M8eBHȆy;<>ڱ8eR:Q% ֶB4Ϡz3'iZRW w'}*'t;7 2ud$=A㹋W1.Qؼqam/[ʻAxZ.|j״Qܵ$sZTv>g36U^Arm}?f:S"C8A>ˎ"!Uc]b@d :X ؋{\9AMR>M~_7(\-\Pׂ=:}Hv7aO<ђz )7T9IS5cК9-fQDXbx>\ udyѲ%,l(}Tq LyAq]{`dOai|ނ<JʍxeuՀ:F|`9?fI= \{EYD@  7%@r\Z\# -G DN ~.ۛ.x#"3IE!8_J4З ho3~ D7p'y=^w,Mv]Sv3ŴZv:f&P6ta.gL{AwH$`I3—*}\}Ƿ%N00A0GtN6*,xt 5cDq_o/;I[`]̙$>ABs$L/Fh?hAd3ƿq vnh{C ˛ɹԠ!/LL֋jڶ,ݫPErֿ6z::B/%۹AFvfhQ C}p}%h ?xg,8}M1\ETW*C8 ջCdc?h4 `І\wid<9J&CKQ+;riV֘~ۜKڱ 틬7EpEiɗ2[c; >weZ[39gxn68|8t3^q{E.m|{1>E/tJ@p a˲?F-9h:zw畢\UO{ҔwJ^N@֮Fnrv[\Axc 0ݍ^gT)Nc(+C}8ycBdK%okmy:p{c̉~{S8lЀ7Fei,:vz>4.6c9Wi\E#`rg|kkwiO`tH'8q=)j5qA`Df hy%Zj LɯNu1B&ą Ղ\P+NШ, @ʉg7}lG(nxbQE3@QҐ:?1:MGgLtg\ВwwF̹EyA~4}?UۃD\_8YV\2c `hJ} 5o&%\?;@*H#-\7 kmnzW,!Y.3N:[.\tžO5! iBЧW$$SI3>s (>B~O;ǯ~Գv][ @8&.bh@?ZxV&;+~y`O`Zv_$+GAp|3L[ny uL?uȪ}2UBFqy@fúqpcPp.cʠ ߺ޶혐s;2:OC&p !~\-[Y޼5Kk:?3jOhtZݘ'(h"Ip EQj ps !j+0nvHʺ۸*T.LP҅ y?FCtuC;<~yuoGya830O Twt$ggTMlH#QYNݲr"_@p=)P>ۛM͙l鑻xgGknuzBIз> Mpp% {`M{U`T`5.@vNŒ# "4cX\t|tڑu1\q0pc͸>j TL^Pޭm.d82>GcdC恋3GZRN%[uEjN#i<Q|rQEL8ߝ$77~NQAx]P2 aa"蛝cPL\r[+W{Ae];VV{p ُQhH0N_Ms߄ J-(i*Bٕww lbUodtO:E/ùnl-4{iE#M]qSU I@$Ï"\`?|iUNPG$qdOOyHRyjh)0[ wUpqh?وI]{C].h;'4ژ@ sXHh,Me|NhD>ƕ y-nؠ7ia;渌;͓֯ѴPðԥkjc_' r4;1]G4_[ )ͽs<@9RLl1ϫ~q>2IdBڱ67LOX=N;kЍߦ'sqly >`b(*I+=)ddž*׵S4_Gpf=2vƒ*s?Ԫr$+ZŒ|an\X YK,\AWheA"ݜX >sPݬ@aQͥϋc5ldVRws0^v*kZ9WZc@Xs?+=Ƿ[ 8֍eiRC ''ޫAm~ABro}ހcOs䞌Bvqrc_a7`a4O)KIQ7&!)"`g|"D]s3մϨ"\]d8f}}n$$pc1`FsSru6^B]R+`Et ˀ,~t,Wv 7rDD7Mi{. vbOft/€?b5 7B+Ό >Hvnº׆]4jAɝ3PozU;LLB(rfߨ)ݷ6h@ṣ92iei`7*8kYs] w.ԍ m=pvgSϩ!t'}9jP|`u _Zum>s2$$U bjǭɩ =W8ӤfSӄq~W+=A d$Z2$KY-0bpinq"yyM֫=,UÐA.B~MLK%WH_Dz R_ծ'N1r~}ȸp؝#0j2g7kT.wRz uBΜ'fˀ\~IxIblVjIbH j=%b:>%M@l7ZГqwgSr:i@sdի)ial/K²"?]Be;X8=n<8^ݟ0#dltsJ}JR y32c!^vrVIY#ת8LjzK-O)X1u1.pIA w`&sxz?@ظ3K1 cUkoeXg4۱WWA)Qb,Dy熳nWSzodP:r A\ҏU8F z5B_LNo|!f%m2.O2!6fQ1vD@o "o\azed0G(,_x8ŁP(0v瑏/` #V;KQCӤyB+U MVo3t%ڥY\ qE~屚LxѶyB}A2sJ>a& )PJQ0oe,kz#S.*{s^ۻsg<{ut/yJG|=(nY9Fܗ4:)Mwh'Ƅ׉A?eQ%%\d 0x,GpSz-\_ź`F ?R;-#+Z3!fō@xRϞr^^Xabz (3C@>#tQ-3tr){c/8œIZGyR= ʩk"M sʨ-r"`r>Np; d )"z]%S,<o9κ.BQ/#w;>CfBa L̝z룻9b=*o. 7k1 bG!&Q[T4rVI04z9Fxj͈ihaVCǵ(%$_6QbLAA_A9(W~%MS8ժߢ9m ɩE&Bgh1,O%u)m5Gn+Y; ٣`_hd蟁PeV$# LDH" ]Xce4fCi{Y5ƄX9H?{˳B̧,Hr5``<1*yy%\` ]-:C|uD~ TvX5KPOlIܢPGѶS:0?a-~̡UGg3c6C"|e ;^\T4Z6'I|bc!iÖ_]LF sf}0%V=!*ڥr.+Yh30FvɆY*&m߹uPQ N~>дњ.!yיHho4Ӯ9ΐY:A/95?Gc'[+ި4A[ )7Keq8o_KYE0u;7h3лn뻳j!eq~MuіһRV]CiWPApZMw -4/#: t"KAt ul>9C sՈ|cPI&- ݿmWiH_y$~{Ȓ,UIdj"SRE3Jg9Ҽ-9k|.[ԅ3foR 9L*gx$MBՋuvWW)&ouMUy9;Jn%Ȧ<@{*4W0Lh`4_c,)pkَ|7WH5U̷AECd< EVڎ"˝9~iDD ,W빝Nv4jmK cށ{K8|[m"\F#:8KA8<meRh]sş B"gzag-[`H &4bY9_i v43m{msNMg)@{ykIR"{Q뀟^\4b2@}H RY:тcף0=]4! 0nw9Pj?#A-di־Kg2t5KS܁)>]HcH␽* W o 2?`}T]/ ![-*Yq MlU%eb'/ՕVA;1-@nIRKԉ \.d3KE0e}BxMS+&{r-C57u: FůDjْ>WtC)cgm ҫtkO.mQ,1s. 9M#%齙 J 4"`ӘJA R~.aHx2Y`24dj_f :`/=)سF[]zAg*jbѫl&p)J*i&jK^d_E֊6]΋#_#m&5h9I+vU̸K0FPs9I8|s y _BTH ̐.᧱jioMUg\ FQxjsJg$Ͱ԰^ @6t>Z Ͱ51ɞ2 qUTMr`!rQ-51[?w*] xA lVr*`OҟƳ _hO;ӛsosPBBiԝd; !ɍQ$jz^b[ 't)6?e յTlWi\pT/kU"&CU:A@4 '=,@mc^r%6ֻ*u# A;6fTT'$Qj︊V[oA 6@a~KЕK$s +: \Q,y07) +i=#ssX Sš.$ldkW/5'<0TJ.KĮbz]SC5fX;D*(Ӱ%~7M=Q>384 kY0bw2% \\q^s Ed+u@{6!&_};aC֛>D!m9WպS2q;hcirwUh\:s\n󴝗K?].pC6U;BG#7#Ǎbڴ;e!w~$ߦ =H){Н,LC h8nZ+ݑr@ǜg)ƫ`dn @`Ԫh Er6%&L)W,h{fԗ ܥIͨIUgDw4HFřxaT0'9_{ڸ@/_ޭF}cUyyK͚ JFk8=K//]˚FP׶-  diĊJۘ2u#…m72Xor2v#'{R<'eM'ڑ;=w(XutR٘ NQܫ!5asrE *rng$L&CjI LmpU} ",{CP4HVW_YIH15QM ּp bS<T9IOgM}Xd3T$u/ uCsU0i~zNtG8gPz(~t~N`h[JDzk8&h֓7ohxߧwr_-1h +#z&~m!K$wd 0F>RPtP_X<3*e L-#y`%ݼ"9?ԙфM!EXH%=?i/Uoq&: aVEyym$O8ˢ;nV]R+%) 0g!7 ۲Yѻ*/;C$RD.g 3 ,A)Ę8Z5ssV'_bO'Խߓ.ܸ`|Xkw%>Y,@wvK@/O90Z= Id/"_ _KbA8}U|+J h޹hlfJꢛ/7耤$x(Rk5,XDo1P+3D77d؃(\jk˱WR^Ng@H`HcNt9;FbAZ~^^p0ڣx+GUQ.D&D?՞=qIմ޾_JR3+ltdueo) HCU|u$:B̰?_mϊe} |T<'8km ^{[l8qPK%UFX[!ƫ/Orcp:RQ[ _DjyڔҴ%H6~"9WZye$;ԉ{^ZI$FC<3' !.X5nb?]y7N#RB: F . \b_۸OU^$#eMۢ9q?(ށ9V͡;8Ǟ3XHaۜVEm!&d|yP_e4ܼF߃)0q]$6wisIT*IĜ }ahE,]H9qɭ=iz 2l&f'{ Ž?4CMtގޓRC?} /=COL8_YHds:wn7 C˅*1v{ u$eHptbKW=,0% N meK.i.5<ŐNk"+ l-uk_P^@jEU"Eo,yk#[/(HGUkη3H&aMoYGhÅA7j2pkj{kYZ`hE|[_OUxye>qxߌl@"<-7YPn&ơm@!aq _Mu`7h\NX-7Jx0"G0Yuy{A^8o bY}Q(yv^BgR6P:{J(mC'2J )2qw1t{ڄBMOoIoihd ›qGr[U.[yZ,R#Ud܊ثOmLbVحĉax;Dq?<q2 `j&:{vs2j.>l$s .fQV&`M&a3~iuT}[Oo*6yn5kQQ2 ӄM^1yGcr*W]0c125Yײ +bHeSW~2IU+ U^х.)HMV2X'ͩK$H-;rvDmPv+BRY܃஧r%A'4X ~뺏oJ׋dUwu?d8φ4wD,So8*-da}jsC'$lBD)W:Y$7Dfq#Q==f Jh5HIe0⫡K5@u$r3*f`:+sF3L$7[+ݨ;<˫V*)C}mP=ة*-7(Z 戶o ZHf"Оhi0#; ~zJ/;'&:'4yzzQĪ&}gOV(;SAZc]MFư39ҨgUeucҍa d U\S:H-zKOr;&rS>=lStP1q qZAܘcO(mr;cƥ#rރXyԙ'3>ߊ+l8)tl XlZ3?Z6ޅD&6AiēѸQm10 i VY1c=_ آ45[յf$@@h&:Q:pWɯp$ Ơ~9z"l|B櫳 U{$8E3#ĭp 5I _1gDp2ytU X١10FHNV\aFB-\3,PPgɭne%hL~ڮתE!vD=_Pǫ"xcNSw]!w pG?h5*׸ +WK}Yk&5XN>n G&&)[wAMzpZ,1{m_7h UƶG 1ֈ6l *5EѪh7 3> ?}2wSWt8zjSX7  ]Be'5doU0?e+S^a^$"і͹2r<8,/ JG [%.\Ow$#B R/tcP0Jc`^̇}wӰ12Fɰ8&`)%*4ʐȴŜ|vy"}paD?hA> ,6kk9Φ@=+ m%1J`_.Yl+fžlF=aϲ rU~W:aybkS!<ؑ=Jbgk. Au' n6E/.+Y*EC 4c8S |iɺy%vPT5bB-h]ӣ0AtV`eY;8ZeL0X1L-th"T:C⼜w6k,~6㿳菠dK nw#nNOD4Iy$Mz:/{ 6>kDoDH,zL"r:Hw%Mnbkm_`q{jj1(b'Ro ֤)&E*1-nTG| ?;+xzz,ع& 9HF&}rȪk%b UμiyW7:NX 9&@:z*scmmZqfjd sMȧmx .c `[- YHO>2"Z,+h瀰PKG%[}Dk 9!\swY EQ*/TzTZA_$(X舭&vJyhSpWy]#$ְw_i.6'ge/^8+i }a* ,%-ѝǍdD!)Of-=H@ &B=A-"rɝq0zmqDM*..[z)! Ui?":>DnspmdЦL\ .< k2Q Kι<)YDn wO?⯱K \m@ L՟nԏmxt3q)9'X3z+s$-6# ǵJCqP{WgI"1g,%|/]<ؤǡò50<|F•RJ"0^|aYAֳaGzu‹\"'=C ]OHNO>^E-^7ӽ|#`R._ܣd!sK,+I[󄡭2:]H/L̈́/.!K?%Zńr0jDAE '{j-#u`\`l9,ն!K{R\YO ;S煳 IZ?>5<("Y}0e 0*ˇETgjJU׆X ׫>VErb%w(gSt<_?!tu:F@ ޺`y66tӴU L[) |߁ ǶihtEiS`0joM[1q7#}&>>snVc-\ܲ-zxCSy&]j4X!Rz8^7Znu@[_4h λV-9K}5ok87;tD2& +jez*Ww*ČhQ :G{wlCΣa=njY:u;L݄ w" ;}El6~\U;SC[ fICjJiՕiVɫDDsMC Su6} r 7V;s"]?  Xi"K\v>Yf񰍶 e6g?8ufo/: XW-A*<&(+4Z%G|*. J4ʕy&{p^ts > oqW@:FKwGgwVʁrZ nuUrj0x#vy:L>vA#<úemj&e3$t3†6Y<c]y@0zSsfط8A[4`CbHKQqz%@aIűr7AQYpedSxlJyq+g9QWֳ_#^&Fy"FNr6f> :^XlKt O;peQ*+cH[+F 5I1lNcoSd/5wE R'yxTdM 0oB7!N^}%]"*N"a3Fal [] V)3_!XC;ݒ \Hήg--k:dh8l,"IBvccw]Jq\ZBٹxK6-:). Lϖ2SW`1 RgU_i4@&d`[m su}a"T?5w\LuC8PAb{ss7_W'"A9)8"AiP gDgp%B 3]3$9c0zb?w ~qo%,g-e0LŅc91.zuzFUik.*_m*$ lFN6nxޡ dwyw|{_&\(荿tWIE4h5|(AyxnB'Faҁ$,mr˅xN|H C.I۪e_OJ:`YnKw,蹊wYLӲ;B6 3‘p QDFXf?s WxA\xvKjM|.y&9.o]XQk]tyM[I^}1"`'I^d{^Xpg+[4Io" \T𽿏Ho?i!RO%2O.efy s!s>cˎٗq1h{5&Wp4`JCYA*)}p9pz(ͤ;vcBii)/n ۇܠnWZYBz7e~f%}P.oˬ%$uyp)1SaUK[*Л!,jWS RLx6H>vϘk.x v`Π5r5MkbufdŌaf=C&{$I ȣAʟPƓԙOH/ҾY+*PU\ |ӳiھm_ZaZl- 1#ܓY(&Kfzz*hkηt +=&t*% ! r-k\y3i -UTL-!b vEa5z*#X?3NzlE.ؠ(9%m8Z,aEbm=xl)(pa-ӻQV+.dru-!noy'9FiM9;um XA,-ID$(e6OTDp4>6iFL. e`22ZO7{?54[yҾ_Sڕ$ Z+IS"ԾDֱ:$l7͔'G<E1wUѝHG^֬Hd/A{ȆT @7IH%TwQ=QNl%A ͘O4/oʡz:NJBFs)b}P VMd96l8g1H4E; iAjs ڿ4MܡxG lL,Vp<1ʅcر?_=w7 0a*eJ锿:?3Z'}&JcCp9UV'fΡ:.y SwH'v' dXNUNMWʴьxW@ Q w`=oEQ/`RW[bEj/1ghЃ|0@ ]=:OY&\ҹO,u8c秔%{Q7S1|V? gcLa ^ M-rQ8Yc؄<1Km $%] ҳ7mƇ?wϖFUyke(XN<`kuQSؽϕ/wbٕLK!<`*(+WN8ܛ?͏^r9<~F8yUʓi/~ς .#d`S\gEB4=ƹ A6ģυKZhڟj!͚ywڛhp`땐5Qwx)mf |pDuWr*1$|qZ[MX,߬WcϏ]$oX QaCx3y LHveT*XF6*.ӑ(wv5K1'߮Di_j4*̯JJr8%˜zjN~-bST^pOFb%c~ QA?+d,\w>i7ree5MWqy@`9GX-F(R  1<u K:3t]E[Hƛܔ1@qq^J1|\5b;gXuClͼzdc=Yp2aUޞrUO%rԵڃkYxZݗ~h4ռil:]{Eq b)c>Ʉ'vYR#W<~G+W%J)oځ.^#S& V#W#b&u7acj,n xd:aN\qt": xo ;4x褌G\yDRXJt1 :Cz29p6v瘡.Lȷt)!)@a1!ŁVg+s`Rv5k;Ix?&խ>Χs!J׃N)Lѯي!.t]קhoп݌aURZ]4ehS#Dw>5 ""R9frb-0$ &T@_Y\4wWySg6:":v0aە'[ #U8ѱJ#9|tp[m##EB/֟"7xGz(t񟦮ʐ\Alu6qaz81!f;'7.7Uo8)^Z9v$ ޛ]o6Y5Hk9Fƻ+,:7ό&0Ӕ`b?1l&ze'Ru:n?9c] 5J5{_ @%i{4+X)v"rNl8|gڅ9yBwEuxcq0^&j: @`;khwO& |qub."rX.cl-i:uU=m(^?Y@utJKޔɭ&\ІTiWU'OcMM0gHǿsf޿/C^z"sogdT[ &2s>Vq*9LDrmAO ;eEH>01f?_T]VyR=xTQ$lkRT%&5"y7xx\((Xii4itMQFA!݌B1,l\KW9b<1 *wH'C9Xk8F­ .hBW0)4u:ЏW!#ȝf("uT_aV}㸕(eG^ /S䦨-0d}\a *<ܐ׫a* RgلO"$fRY7o*Vm!dWАB(E {> ׁh*V1 ꑞJl?~~z{C(%ڞ>Щbۚm}>NOq r,Sl,mG;vٛ"Z4^PeBjFTAA4`Ty0Jdj8:J()}5ȦEђ%ڞ6$WZ#v:_XPA"ieR)Ss1WAW?x<;/ꀔh>q koڼ,תYkwnHӛ-}ܲ# N'fL.K ިf, jD ?uh3SAGm(–k{`:H8@$R ->1Pڦ~.[\_ zz*P~qMEbeo; 3:%T7U=l(`=UpJτ,/y47{ju99 !$ =t4>3IP_sIywx\IIJp_{pQ ߷ZDCMtWO@#08Ӏ5Y;*+DyHQF 'soDr~n) O0CR||C^u> MCTXEF5m4F Ԯ Oh@iڇE|Vj`%w%}Xc]rL\uje!n,!<ƙPa x$I#2CZ;r9A_ZTwwf-J^ODUqoLid5r-6K6¿W7 ZP#toe>ͼi,Qe~`jC] Z1U>Lki>ϝjlRٿkrFi nN6Ӟ$ /ZwF(cFTQiBd&{UX)p7\wK'ȅ]r;|;zx^8cmXU϶'vǑݪaNIZP𺦻\u(g&.bYs Pu bBߥ%:y84$hz֨[L.>as=hrOx'YU 4wfЦ i dSI> Y+5'/ْ_ey$A\H:_NcǟMQWg`ӵZT3Mcrxܲbq0?Du:\%['ct'E%$l,/ʂO{y=пlcQfؐY˝ gK'>} ̦;PYX Hi*bw\w1 (lᖷh~0'.ږ t;8pS ,GՁ(L(s2e=ҿvM zN=』z|,A&,q&>L|ܔb/ffC4xR ! +(":ȋT%I79).Q%ٴFI>W {đ2.|rk`$\ M%bvQy[=)52z$,Z  ixfӝn XIzhҥ9 8bx֜ͫWK`cj, 8wM0NsV^reep~ hxϩsagj0o7E,:-M yH#6#y8\ToӁOW0bXYcYh#\I.xdBA x"،ܾqPl-pϨ uSDDa5)]m #FNN4k%j҄&w77$h\(eI^xHV@B''D} 5!1P.Jk9\Pcw|EfAM@WD0 c*Ruҳ"9onɃ!gPF?r:E/AVZV_ PL*Y+Ƅ՘Rg_٧0>5˛VGtYV1߯E֫ 1_9|3iVʄ yM>\v* Æ[%W̦d\ѡSbF|50p?</n]+T -k1c6¯bb>}d$~.!K@|b|, GzKOJwZnEEFmaPb##|j$fEZUSk(= RC(59m(4g04 qtz~6γ];؀-~*]m ؕO-8okD)ed0B!]+y0Y :|&+iK0|b۳0 r̬rZr[J}E~M*Dr?BS|*Z0Pa ×ɓi&/hcV^3Ź8OXX,@Cܮz:B8;MmjgϦ=:B&rIS냞5Z`;ߔA3#Ҳq)ǽ,HQ~7&4F~?mH"}ͧ .(qFQu' S:N[2)= \bsނW4?eԭ+:XB~Xt; ) Kc7&O&+hxE3ĢbzzeXၯ|U5Htm#@G ًL@`olkZ ʜoʜN짫NpB\3s'?s\㪰FܰA Sخvr .W (_یZ>hF\P/g4+gAp=T˶֊M _Ok9fUrE:Ca(3v1M @B%1SWUv?8W90p`` sy>C@8ţ d'˼ղ{~;yD#rm/f7>I %o_l(ޭkp{ zC^O9lr%Ro+ckս44ETY"b|٩T-wL$ g-KhԨtKrTg}~j >9u$Op[2~:M?:A%v叩-&)# -_?l@{j% H$5d pP \Fo)fgyrB`o!u~Wl(twI?x (~iQo5?xc[N+NExj 1\,]|< ӡ1W}JpaMC"E v C>;_-MTzkx nDp2+BsPb9ַ.L >[G)ۢC3gv6}{S?Alhj2<,FN 0fܚ)|t?9U:|rNZw4|_nh5Lz,ҖLE ]^n✻C+`^5B w%mvlD@Ў!MQ~DQh$6mFT -֒ 5w'.ER\X7X*AEa *¢Parm7v )[uu̶պS0)U!%u:$<^q\حt}8ZW(vDikw=bX<:(:!ŽL#觖e [80;ۤ<6Z+9 " {d4{O `ۄgqƏtV#6ͥ.'Gņx)*1 }H0B r]3#7?ݿ(X$@(*!shhѪvhyytQ )hiPQ!}cWOܸ9>6E6jy.RD>䞠q Xy{zP V!E6Zm^=q OoH;xfqMEXfz,V),qo4 ](ez*+ۙ_n"O팩P}sF OkBIV6UE\Xp+<]9Ff[aFeJvLΎݒ'cb|Db80_N޿|IJ:mxw%W{zT(ܗ88)V%cF cYj#Wړ }(V[i˦ R7;5uׯE!I-!le,s^29ƫvE6c@זV9e(!^iaUgeS򺽑OMŊ6ݵ)I)ސ-X[gۺCI5tԡ :Qk *&\?`ݭ/EԭNԣ /3yMQcU1"\Z*0VC?=F]P= /mBIr3ZLUߡ'ϊp@mp 'kV2hOv% )"M^?>]9FˮMAmju,y  3]mw 0t͆Wh)~I3r{='=¿ҁזLw j!#9R7iJAav6+2hq= NS;rI6ZԱm&lm/PQCiKcyOL{} jN0=5yyުo)Mt.c\t.0I5-KjI  Q{M܇rꊲşC4m |]<G}#ubY6kލ(Ve&O0aJ.>Qtj{.4~qg$$5c~[GHxCCΛD7#|ȭ = ;@N6ί:VGuD(NKk~>x}B)5VQ}]Utʴ !8O`È o 8"RP1I}Pմ,p Ts%fNe[?ѐ8M{\d0 oZiK!̯ڻg,JfS ItcRCjo9](Ui7<'h_)PL H܉d(Zczv@xm=~L`))A~)2({i)4e SZG4s_4Ȁxfs@Ƃq@zѐؐNRr^$ c"~$+9L 9_zDFmE* 8]W ׯD!TJm FR1'rvʑ.48BK3Mp|yʵLK*8T}/ SXhҌhrߒl{˭JJ%iW;.4 #ய; awx۫3g84[2\gMYg wtj[ӣy Y, kGk5#]lwA#}3G 4w>bJ nnj Qkɼ|l;u4?AkiS-uuHv3pknׇӿl%rMaW tK`)j2Yځ\N[6-L^"տۯb(ƫ Y/yvg^(\oNo۰Ꝃ?6F,pפ#zFPӗ%Xnz~Pt@r/Pn"d;.Ejh_)}A3h4x +%Gg1l|ht/1-jΊf,Z0*t-v[Zb$~axɓcKWs߽ŏpur`8 mTuv@;͖BHMF voM d6QӷyDO#F{~T% }Eza%xv@ M23#߁oştɀk9`iӨ+qB)& jsCa @Kˀ#>eQ(sTWFxKO )mzQ 9z434)F&:q[u,O8/U5Mb/!zyOt/u+Ys5R ORjč7RP0LT+ΓtNr'E<'弢q;1h/)T񊜥3CaWK{a~H0"JS 9 %†橃 )"Hnw rB2ZK`'84]tMt?{_(+6+̠4L3}(C}8HdY ]1c`…*Bk{Ր]4-6hUHB O80Ls:ZZ]8HpqYRf H+"lz0gp oVŝ :\ܴQs p,V3Rf=#x!,+l0`neu u\!5My07OᖞtP`i<d?X=on)yp {OKћⶍ]ax!RA[DWe1g c%J.tt=f`wU_XěB3cэ<ڛfQ C3[2z~? HzP{JJf;g:G{+ud{1&r)Νg{%u2195П2GB+|5LZGmU-J6zѿY[ Izn25VHƚ>0|%XUgPnfr28orףv1"d}XM!={\1$0`:;ԲG?` Œ+'D T&~!ѹ@Y 53jP郝{? \s_7<ϥg@eՅk9Uy}!9wN*"=5I0: d4Ul¤74J%jˌˎ@մ*d6y\b Z/b`8;ڳePFn‘"9yVV֙7o$ӏ*nB\1OcA-)m T7ଉޯȷXx0#yҡl|$P;F71 R3IW-#$PcP͏Y)MϺm_ALg8Sa<7V\Db ~{4uIXE4SE' vʄVAd)cGyLѹDa&z4-ȥcYc8:y ueo5jKy$bQH_: 9q!(vt+!ԫ訫O0J5aW7S_ Mu} |W>aWm=/nܵ͋mEswBA^b'f͹ЎƜdIlHyz|V<q+r~6p29~r'CLk\b>e'qLΚOMe'MI3Y3TN&I0ą2<ְ-W2+-3:Db{w: X)mWc^21-\vt4x,ZVSŒQsCfj3u4{ B4DF|cT{jVH_!'\ŋZ)&coOnHq Tɮtz5ԣP[+eٔtΘ?ì33& Z~iXN{NwY]|θ3pR ('uL{bWCSG ıJUF;6~ZOՔb<<:%swvOr,oR q;H{q/.5 9~4}g)IQ&QHǜ%`F)l@%@vzQ;6DyO LYP"W˶0=8<}# = ,t$]d'pj>Irn*Ѵ0.*tTEKBč9E Г/c1U塗ث+"eY%BUkFCR[o΂}߂u<詍AA}Teqy81Bg(l͢fg{MrfP7t2 C*ʠ3!. 9ߢGe'FH0r^־8&ۄEM8N<'*ݺ88&,d#b%Ko?<[Gl•«O5Ϣ 9X'؂C4܌qPVU(T%6b7nfv$&Pst#D4ƊPtWw;BPdK&{}YT-t}4Ҧ7 K^BP{R穬 ӭ%YmJ&f1*Hr1cWy~[T!=LNz$q@*&Q>uH)=ӾPA(?Z*O\8O`isz霭*04(.)c7K߳tonAIDJM(o˂dCM{tY: cB@ܺ 'ٟ0_CGtBŰO"b>МCv|J%&Fm* +ڻ }\9[[1RYx.CbqGuCd>'RFj.ݜ=Z4. `7[&-'O@\*^HC6,L<ƺ=\EvǢ@4} 8lg O@= p->Dvu@ʽ9D=qf-y*`B2DTFf(I&Y.;vIr(7,2@ne#`vQ_-2u[.3@1JC {)ŻGHNh9Ȧ OK)0OI~o0Qَ͑cбN$&TE4;Mk8G ۰{>v?{A ˔[:5rQvŭi5kUCA,ܬt6AY%iMNn~gpHCh7mxlxWA/u'PrrUM{6 %"h =(o21P{b;}Mk^Ruة(Wfr9 ~I, \$^vn18#ϊ1KEр~c|SUAD|H5 QfdӇ@GcR5㜸L U|g#fDmS\:=8qoċUq) XqȘ9hyo#-(^/ S<z-nI[q饶5Ffte]ڳn}.l 1k&SPLߦ0Rr"t21bW o fvmAB0XsMG)أ0^y 4"pl /F0ܳc]F6,J Jz_hh̻? u /Zl)9w+ؠj9ύ՚qÞIMW!O&f\ qGmk{+Xq`f{~!a=/abh3- X.h6wVOefMS;iQ܈sw1Lٚ?s1W$Xe)"O~MA[gZc{5_^ b|+Z"DȢ8jR ]&OhʶW?z@\7_|%.ɡb;֢)8%p(: w~9-=CnߖoӅ0=^ifYP5j!ٖ=SHI-9I`!NGv+ k=!! ʘл8\#[3X \iYo^ ot3tG {Sڗd_5.)lEJ?`MIn;M·#(04<;b{,%Ce{֢ 0<񂾁 a+e0љ{ %6f?; pقh* &*ګ,;IiuWb )uil^\uK@H#:2AcsesoK00f2n p㧕-Cp is۠1Iy3-M*ߴ'Rꄨ8m@冔G fջ&|*cYs\+&hm(aMq_} БG3xAwG%r1~uQ4 ֈM V{3ctq1t,Ýk9c:,#sr{[.#P`Ns#)Px\G~ke ߥхBb]"!||=xCd.blRW7aoS*-w2WzkQv"G~o Ob_`s`^"lh-g%2F tMp?ːMT!^55̼Pi6,\Tdj0b6;3_CaVca>Cj+kv<}u#L?r'o_G9F~ɒA^PWfBknuMz>ĥ+ S&M׌7CDݬ@a#zMdx Bci3"v&*BRb֋:|Xl(+`9 {BTgd2]_O b.8P`5_6:@ &*kKS ΙCύ5~\cAdu3u|`,'ıc9 -v>uS7 ̛o%<7llS p5H 2Rv3ڂwAQ3ұ=1Տ­Ħ]L Im_QH-S%I2Nj꒵,dsE;g+֪&BΕ& \3+k+ 4 ItN`7=y] W0)vg)H*Twk`Ifgk<; |!@kfvy`r\Xy˚i6FA]pO pAѤ$k7gqR34.[]p =0AsHt~.mUÀE6{e;j2y" o/Ij5xlZg6lWt8?E%sg?9${xujMF(r螯U$:/@7dx.|O/s/q|mOaX?d\ijn-ǥ"4 lv֝&'5ʐBU>TS]!.Rz ܹ(h.g-W0Y #gF>hg׸:F'4rYofQ ? (3 A #x֭̆@ס '\3 RTYe74 ͛TWZT,^(mc)q$h vv56*#UqN[ ohG#}hdgʌI(ҜA.P7F{?i_)[+j; (+Oww6*[b EHj:@[ ucҩ`G,ʱV&]J#Lww%UgNCu"FIm&AVC+yG9*j)67/}|T美gW5yk!gAX C_d!PMIn`]> )خIbhŵ\ਠ3Smv'*9{^MK-N7s #2\2˄{ -vm!Ev9_Gcv02[d mh}59GjcJ8,&%ve-{;[Y*gꣾ,,IVblB)i۳H st+a W1zRRqs:(!d \(sP.>AF; 5s0e|9id1D?tN<-l ab1`tpa~ƌa`Gx*Wz9ZצT}pe3ݼ:m olP!/)Lw&q͵ťi{PVˊt)&ɸ4vW3_v r?*L5B 9~!_?qzO!zaLu,XU/"=odT9W?W9d]H$EMv4(ïgg*dv) ῝y;:mY# mge]U !j4t4[,nuĐ{\tK5HJ: У3L4xad!|CŠ_"޼㠨4oS* "v{ל|$L|aN$ n]]qMIp6<5b ܆\Z'M\,7"+č\(MN4^njsRz s¼o^'3O 8b)g2㜴f:,}`Zf݈t`O\VJ鮏DgaW=j_Q2HȱT'E_C]Yvi0i C_mgxM$J܊\J BiZ}W݄`=@깶/\c۳nX2#YPw!KLe!E@7It>XUk, HHM+yH16`&?ȗr-FXJjc:|mhpkusGiyWRpS˳[rRT k%f-Hͨ:[.썂QdG_KV$l{vt47i8}]uܡ12湕b/7ʧl%uM&?["I%SmY:((K,,lL!/%-L_͗m{_HIx;3-r@!AC>" lPB"Y3ɒlAsAի$Vg&r "wYx-ih?6sTcBjtCG/΂RS?6ra'1mƒ %vi9xJci[s=Fj(=JXs>v@P O۱Qp]ZjA-r|Z٥ PN<')Xm _Woq_pBtvҲߗzkjbUVdfzg3kB+ ?~^{kQ0ֻ98x4h/ %ZW#>u:"@v!1sBV03ǐ(mX)<ױ`cx擥AP? KZ|]^H*x2эo%4~!'!zFu 4il^ltbc'ҥ'~%&3W#*˂D)ǫ(_i-sc\G&#)CCj]<*Ҝ%z4X=7<0Jd&7zuERW+θMx)02H zLQj"\.ZzolmRԶ-CDiyzhh, 0<9xVNgbK4<-ÙqESk'EU1E25갱z@Z=߆҈益Ã^$FK]mi2Dsfs[|5I5‹eQ 2)uLPR!1gu[x?{M측hKo DU~p]O#Hd ue¬N~P NN-X>ǼП-=^EVZP͆M":ÞnsiS)~]ߕ!qM~݃F|i.\LK8Qg#{xyՎ3G)<4Uod_d %vpĭ$SoC3=@zn?V\1Ê V|j#_G˿@dS/"2vD*cYgϢE"764akT &/Acu9c'L w:J&L<++u <\#q7ɩ;i 5u^7xL h&fF:ϔZWnJC"l0ECϧEްaL+b ' JLF7ʱghR'e٩8d'hI*O.`d&R"ơ&$*:JBH@㧉+wv91Fæ$YA(wy x%Et'as4,h7v5 Dt -Hm,5A PƧHIw s=y0vҡy뢰,ngidE=J_n=#;^dT<RggO1# >QeIo[݁XA3|cQ{ze.)y*-\'{ ?2y>!y@[E[l(Mv3+wH zuήK vzk'*~%x$N\Q4۴+k>\9kE1=)bncsEsr@`;C CnNPd;1~϶LEKGSXub).q" ,P"[yxkHfӜF]w|A-SA `,fɔ!O/~$ ,cItn4CJ-8I)bnq`O,JY:j&S =4re|s* kK>xEjjCκa#KDhqHw+_Fp.بYZc@ B5Bʛ # Wbմ=KjD^ >Ó8,״5$$.wSqBduq>3hD借=/0&,!c:;\WAʺΟdo@k3PTݐʝ3IKoՇկe6׼j-~EBrwЀhI܂fy$n )X^ 9?p

D ,J܊ݾ1!:EW9*CcEmƥ1 aA]u=;k@Z0X1ѴzgiEsŒ) "L9Scx!彊qQnŤhPf*6нv N3si2Y~_c@ :T&xᛦqI :3ᘽ?}07`j/V ^rϊAȊ$EԬt.@| ͍l2}R[Yw5>М)1d-qfPm*.fjQ5&<fWP_t(rD#0͗-A{9YlɈ kt6}`ºsCqKSrq%aψNEMKߴ.]" ܖ䲟k朶Ȩ1فrg!.m&5H M'N$Ȗl% gt;W2\Kh ܎b2W#0oGK_d*&iǷn^YdS.өXh$?״y/.wf{5vXAcƎl2CfLEo@] Dfﱅyσ1;&&n}dUP*;#[cy{(]]<69 ?2F`^7SzDN=7@G{flFIYI}7"I^)j3jDnJV.~e6<נ:LgJmFyl'$ 0-8 a7#S;aW;y je "I]xV)B~R~B&mM!vdS<2tmlgoB]Lݐz17VhFbrS9u|J;C@r&{b!RYԲm)J;aB DICVKo']Kݾˑ7V54rd9"\%:_"[z޿=Ŏl߆I;]~%{#q <$;]7i]-HKi;Iйtٯ;M{#RmxA`) ;UQEe#ss#Ce!~!JZ^:R4ە|{?Tϡ0v^^kN{: \5UڪӼ oX\Qw+8 ^|IiR>{ir@T^{Gz%nL(P//Sb~Ak 'ڤ'/}H[ڸOJt"J6q4k !7'yCK hfώ)ԒxvPɁ3>IŦqM s>ˊ川C${U[nv>jA \š Z03-$VJ@H& 0T d3g`A5] ؘ P#F iB[חER H@iL/l-Gi-c_1Kї gL=8%3MK^C;$*dxm5}eN@&5Ϫk䂪XH9[ JH΀Wф4$IT:eD>c3=oܹ\mWAV{m=W}Ď;SY00qu!N~IO} ^O_ݨy3u(Y+LeB$S1W:_gy*&Փ9?|+f){%x3mGC2'm=#La58nIٸ[3Wa`z(1nUGj( 9ʽ;2 1U ?ekŕڒr7'1`+2 |w- lj8sb﷔!ԝ$DrGh?|~jd Aݣo *fOd9D!9tމP12N&ѴKjtTx5Ғ^-cք=U::ElJvU+2NwKz1X՟pCw=yr "i()ohm8挚43 B B Yr/b_Y.ESX\飡c¢PjkW?WGK^(vz%W!d;Kr }'zT+\G<9`(FnR9lگRRc Vw#l~uU%EY{a мzsy]u5-@#,MB7Ҷ7ZCRUa f#VL>p f\ʋX:(HSQƔd5r"uBC?fEHhZ S5غl5aFk0 `g6RP"h}b\S'YBRB,8GIj#r L8r6$J XXҀK%INx%w6"fk7yO.M~ZIn(0xl.bƁ&+Ssȧ sx}_'u[ ̑o#`] ]n<x69Et7:W_]i4(FQt,fe^k<>>Iٽcj) whhɵGխnv@kru^SKj^I_|;, 7g0L0DTJfp ƆI#}5O yx:25u:@k`ܗQG@ÚJ9N# :FM SE( 'fwhky`6zJy81H;͢w")HHΘK̓9_Xp̸FE5qL3@ˈ\}s"ꇨt}{?;aHk^jK 8yҽQ'PS&w6:E^v:7PAl/9FW‚4l#PXť2|u>6V}v*|^e.EB9YhZS`qh#Xxω塿0x/&4 x^GeF@Z]Z[q5nflh9ɺcOl.,HqQMX0nι i^2 ֘=NT,jR^EN=6xM͉bWB&zA X+HbRZmP;KO_00ղ|oȃ=,5ѪR`YZ0)vQ43/(Ej,=7oN3\I8!.݄jan(S]Λd&yhv* ,NNk thT^YrL|M&:MU",ΥZ]Nu.D#k@Ɗ3R)i7! 8'bPMD~'dԷ0&.CCSoE5e AT#ͧ:pJw-7ik*2݉10T*.,/XivW_xQdk}f}[]!VYF7 49q!cf}U`Q6A+ٝVVS * $YZO?e8= \8mm2N|IJ9:31؊ *U_*EyL#U c !kp!ik扉qZ9×->"6qh_gG^4y5ޮBŖ6ISz7AW  'G&]G&'7CRdU/P_rbE{|`1NL})׊EN'L?m7>nrm7Fܻ;ƾ\kF~.)s ?@3"'9к1}|~=4hɫi奎Q'w醂B{ہq&k'IM~2ޯHs&1'#s$O&e*nA);.H秾UvL9뮄T1E6H 7W7iP7whG:̾2ވOZآ)}\_:a哳T˃!X$wg:̗T*r`HEJ;gD+X4WǛ j3opp䈉0L \ԕra3}bi!$i>N¹gvw^ !a<ۦV6a9wq It.f_+Atݶ(YeY?E^?@ib&Xs8*//zJGDՂg`7<wdI432|ƒwdI`D9dT9N? ݄0n6'-?f S#|ꭎP"'SYw@@N[͝PX{OTEbWd)NjC/dtv ;#!#oI}3}\+vurU} в-`m YK JJf2E׳>ӨyѸkd)ÕV~}#QS(^Bes,tD+p>ߴlet=x0=uQ"+O2^|=dTm5t1qYv@~3rW3,ɬ3F#pmvfA(N38,? "3PS mot. (eyXj~|x8a!9O(Y>?>dG;]]k jͫTZ0s$J 'Ab;ZXwag$w<(IkX Cx%q6A$\7̃/ lkdoqS09>{`2ӳ@^0K^>m"R6l n?w'@Eq_FV.i_VQDoFKYtr)q-:ro%e?⻺sXKY"Gf7Z,[y|YL]!n t}c@]?]oL%tNJ7 34o&i+~hyX@r3O0r5x*M~|y&S3Hl,Qci'ExwYaN1ѓP_wćK_9N[0 ]Pz!։Umbb\U:@~.,|)E_PTb=aVRё(3 [4:Q9AxA&{Y:'Zs ."tr8s/]=_9_DUv=+Ȁ4O\y3iVW7۩A1d7нoˉ@@ zϲ"v<t֜rξ`Wq OY^) (xK?$ w&o Lh[$Hr(M Y\!Up}+Ƞhv<.'Mo1D]Lr h-<ã3v=pRGn-g3%Sgvk%'ݻ¡{k(m$vv"y}.^G2[ tãZBjiv1a\aovD) ʂt׌xe] 'S(62~X fj [h@ZjټB 9p61)#î~2,1fl+$3:3ff&$/<<Ɍ \>iZF̈2ꀰ!O0K"4Cr*lsiP} _Ş=n7<̧̮]%>"f,ܕmirZe3gwq.)428;l1 ΄]ӡ{te"E=Thx xƞkb 7%ԙW93\duV¯>*|JYhVZDק U*+y6̇bYjubW_ :@ > 3'|bi]ZS[A)kDdž6Ֆa֏Nk*Y\H҇u 17diǖ81y[&"tԉ}&@u6ͫˉF*^^bBb&:?~c&*S" )feLJ}}O!Cn>#mP9ҩ UAX3b,Ko cT0QOF=Ns10yw{RsrtL}ZmDϱfz~ϓI[\4YLbNBd 47 \2ZV]KqYrt Dx3-y%pѳ"Gug/*LbyhqyҀR_afx{l=0*ƞm..f9Lmc~Af5[K i3a*+ftY?퀾$ n,c3h4,NJUo9AKIvQǵ>l)|av zH!S ù7U~FX@ 2 듏g‚ëx aM]W.|u V6?f<Ƶ͏2 ^s0+EvI d0{6} G B͹UO{[]gVǾy^UHy>b[@lD~g=0j<p;k/IiG.uZҩn8a7z/uP' ֣H ĔVkY96_OYDmBȑ<.>fTNWgC"ciصlm?3%-z b?8[Y #4[LӐK$ y !"P04Khd.!Engi/P*KGcԠLe[B#\8C)hhg+]۝*Va>Ayu1)!.Yn/(F1/5)Sojl\`ܞR jA<P*<-5wok5AU1h^ XC-k''#Hb zķ=[4/,Z_c<'LB ik @t\ڜўQ)G{H _cO/i}6)==#@OWbl[R[i Z%33UQxj•Bñ \q;.kڵ-M"#wńP2eLk05p*` Bs+$eMDRKhf/t Lس؜<*ƌm!zC 11:#C<;]M}z_~49O]!|v^{2Bɜ%W'AwaF}uf8Ke ,}0O=#ďHe=htT$RmױQB;`ˀċD`IMRhugdNC}.OT2z tɛ; շZHC2: wgBnAH=8wr &ݱ$ӔBxxB|]$ O :p!ϰ GYvZXeXIJh\aOy[ $l)JԈ@y тUqi 7{ÝG].X_y0LtQ|MC\jq1tkAV"ː!|W"F0?bHbYX"E e.~8'Gwٝ#[LL opc /%M ~-8fQ`XK:Om>Qz s8^#Z[ڲUr %'yP0(q݋&lm@GPYݼU¥ (A|g]䳉[/%)1|a=pO C{^/׺3_TgdN@$\ƺ娅CA%tRӮDvIQ+,%8n&k*O d!F|?Eg3x=pNbH`;}XJyZ޼0*"$>k?CVx>s^ʟУ-fo2V-H"읦fpXu#3:rZDYK*0KzVx{Tý۰=מU>m+hc5%O VAIeP>2p_t5]<( yrhѺt&b;ʿտ<<µC?AFxU%´$#=<+`vRb[P۩TV7:-vЯlc#)ETp?V N)1`{D(MQqEy!~=' z/hϱȟ^-&'?h 1CoU1\{87މ bYm u:V֔Wzaxi ^Mw}:I79*TU h[C?v ?kl#c{= gʩ3CbzP,RkmdaIyD=__Shs }f]7yC#G$xr9b,Cm{P)ܐ5- M*pwgħ95OmSGln3Sh݈,c=VBjfK+ K"_`rׇE+/ DI)틱sf-_Ӧ좋.cBOlʠa!Z,6,,_?Yo73],xUI~}(4=6UA7TMILYׇ즷J:^7Ĥj1Y46_ut8A{[Q-r7QOco)y!  }N7_ᴾ8QZ # *WV5Er5F&tC9⭶٠ZIV1r)'сEb2 TťΎ)5Vv:8" TUѵa5񵗿:w-x&;LhUAY?9fI:S4_zHPPx5&ZJ^KRm÷W^ qFRpp ˇq`To!AH2-(V[Jỏζvqqy? y|OMȊ(WmaCsaB-=4zc@ TW٨o,,-JpI񲴬:TTUoZ2EϩiID+LF❾iP:3igy--Sn#\ȝhe9:ugC]ʹ V(!u=36oGY{(}6>(4%T&2L*P,F_LeQoDZlcIU0T)|δX> a! `/ϺoyiMC~M,M8n ³/'1LHM{Nl \/07q7*Y>, -ۿio.=bngG!o Ԧf:q)7_k4\ٜzq|UBVSVё1\nYnCl"'I@6\4|zIdv,DFw<`bkQYcf+瓬EҳLmY!ZN Xhgҕ-j pDxAnV= gL? IU~h7_zӱ0v Ґ/I ܠdm g=Xg݉]`vyFIj s'9 )EUT`Yr < Wߏ/w4C,kk3 VCQ^.n#!TjI{t.}(U9e- W޺D!eBE,2" caG6jx7x:`83ij]·5'Om `|! .|>: J3&5_4C*H3=Ϥ.0yMcYkGDg|Q7d vâQ=(*2ɫ q/2,&nM\㩋_kM8cTl$a[6>r!qHu⺢u@M@቟P:AwoR6r-nDR9+vBV 83E)ah}N% ˇ1F1qUV6)Fxא8 zY5W\?%63`]z13'Iked}ar @J骙7Y72\Mzv\4|8KP×o"-`W蹩T<u5 9#p)2Y&A!GƦ&w!o/4xk,"Y*uX5uA="2c{xcjaQgq67ogfO!zzIWj~#E)L~>ᓛ dmZKPd=Cxr]#-Z˪,2ho22L9`aX`DUJ6JEsrFxH*iI`: 1hw~̬ae1A;tEDKqoS?i$~}SS@g]i{|]f;V*7癍.A)af"At1zXA!}K%C؆ɜ݌ޗݜ:y҈t.%1iʪ޹N^'\P璽/"NqYRHo>XAt5{'Gp[cQ훍Q}e=ej>, GqLSlJ$~v 1B2J'58OE^DiFãlG~y[2.ʄ\Ja֦Lϐ*_mٵ~h#!%J,8hHaTXae[ zu |Vo9[!|S{L"*ΰ.gRG*UӔBJ+azA|??B'dzzp)] oE])rI0iqa;WLa.Ym>8 ę`ߏ4mb9cg+o[WD`;~O-I )ɗɲԤe*'PCu4-zȨoJvcJb:{.tL].HJ|2'WUْ_+[;-#3EjKמaF N9hi6k67/V+Ԕi 9^U]1+:)ma|<_\JyD ?B1=(ԾM{- #;DBg듫f@iI)3pީٙ^㨪mued :Y.S;HF2N3)mJ~d<3 бCgU;؁T4Yg/9 /QFSI BW@W/Ym}0|z`K4aKL@D81݉bid-)C= 4"5V}&6ܧBi"BZ 2cl7(cRlŖߨ8m&`JO"\Q a)q)=Kڹѹ`"CӍ=[c "Zm^gNWڃk.:;wg7jL2WLw8j)y1-R>&S0NׂʂYӅI߭usW]6SA9J%J bIY.Ou~hv4yرJOGZA={\ϛiU?R89`ov' c^}}yM=n`9o&,gd1Q(Vu^}ԏQV+=FMfs@`eh(?ݻYq9ڣ*m>|oGa9[)~Ѣ*}%k7K[Ⱦ{(Ue^1^ 06SQ޴|a{咢3{5?!XI#U=#Ih9$l;ON_zfN`K *{&U.oE0z?Hcr2&!HpР7_mB"Vcfg:8kQQ_sd:gUr>˿xBT*_oR053άꫢN`aOOL\eW0WRVгEnlVgqW7xF6qW^D[ |:oH @xO!Gk!p {cc7m#|XbXۆbk%{ъ8˖뭬G&nv zRlC{[kM/nע9%ONFH"+}uCJ!V | (lo=O9qTtI3[&O/SpئE+\؛ lϗ:1ܠ>(GEmKLl;?-Ey zВ-m,FZd&kpK{7: v{+Dtulǐ"Ã9}н;ot8A;cHC ێNƲ82:O2򉬀KPw-^)3B uB[Yz/r~@itP~#VmAkCG m 3OOX UWY6L>yT_ LwSn#-|6?oakAo*N (uuG{ uD7#P.,7~#Rv."MA"U~w(] l6xOzG&5tаp