dpdk-thunderx-examples-19.11.10-150500.5.14.3<>,fLfp9|RB2͔BZZj#]6~.L=\? C$-gͷ4eTI*>Lh^9/J:^Pn }+s(lÞT%xg"HN`@>!k(n}QƢ,kZB߾Ÿ ()#V=0s @yoF\Se+-\ o: 1?K`?KPd" 0 kF \m}   , |  4,|f`f?f(8R9,R:RGH(IxXٌY٘\] ^Ib c d e f l u ,v|+w2x:TyBKKK KLCdpdk-thunderx-examples19.11.10150500.5.14.3Data Plane Development Kit example applications (thunderx)Example applications utilizing the Data Plane Development Kit, such as L2 and L3 forwarding.fh01-armsrv2ZSUSE Linux Enterprise 15SUSE LLC BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-onlyhttps://www.suse.com/System/Librarieshttp://dpdk.orglinuxaarch64 0  ` P p8@` H(8  h`   8X  Hh {NcQQ!6_A '^`5K'2/i =_3 h E {<WX_{ " jpmj;(iE  R k o    } uL%!2^ H1i 5js:3i;C"L"*E-7F ? U  M>|dg{f!5{[fovzoan|gH{of{fvzoaHT#.r{TS*f i p)T( #|f<ckD= ~Qt L>B4PC J8 -5  R^kuTK `U =g+3 `6aQ1%N1Z&}(i_]0 $<; G3Fwh f&;EJ $M-L@0+\]6$l &cn# #B$!pU# A.IF /(s ?+t( p B8l$ n.2 7z*Maa  >EIsA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤큤A큤A큤AA큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f1a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f1a5a5a5a5a5a5f1a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f1a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f1a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f1a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f1a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f1a5a5a5a5a5a5a520f09e0935617c57e993dade7c41b3bae3a6aeb4aec845d1838535f1f17f84f5e7373c09854943cd6afdc8bb24e47e906a79bd9b341fc1eba2262b5d5762dd3782902d545743ff8559194c69531d43ef18df94dd788269075fa18beb184f4caa7fc2ba428a9f17fbf7ea8c23795ab8aa65397e7e887c6a1471d35fdd96956a6c50d4fa87f47ccea76a605190ce493a6d21f62501c463fdae5769a43e1989e26a7e778f0c7480034ff77014f57d3740bfb76de13337033860a5790eeca8ac0c777abeaf4d776c23aec63ae3bf5d878616d977afc62be28d632e6d2845df0e925c99197698028eff29b9229f6e24d3392c94dc5a1c65c2b8e368b8b628899e6a140dcd42583c2613d77875ad236dbfa3d28567e424a2bb57aeabb6529dc4a2d227a8116b72020deadc15bc46c6776463274c43653510ce5b93b235df05d42b14a15206b6a621bb6b8030c806e6de477407b1829055754fb62c2b3137606a6514cb2ae282b982b1a4fff31f766887af3fd599dc8effa67fc730b2d0b5f29dc1bffc1d7063adb69b2773667289b26f20d36aed6fa982e79d78b0a3d98c2d4ea5caf86cccb1d8d00ff635884831279cf2e7489706160c5ddbc3bfb225bdefa0e1bb06e23c37d008e363916de8eef78bc22698cb0e396bb81848261b0949f7d09a01716e491459bf8821d3e38750b892f829f118b5d063a1100dcfb8f476401ba28d809def33617dc5e22a7587b0ef767cf675be4148aa990b4fe030956cffb2398cb9f411e3d3c36ae7278917d2af862ed6bb66db7c3cf718e3ad14f11084564c8d766e81ca6b563eae12ac63614c8d57181696fe17b42c6de8964a1ee0bbc2da76bcb1935785c1c86104747b1bbbb253d37613a3155a278cdf3b1e29b547570e5d6f3c0556e50a076e9a0d6fec448f197aa9b000401febb93cb294051b18015e8e48905710911bb65b1486a2a8ef95b6557d441d8788cb0541cb9ba971cd29e9b23be5c3a0232ed3c021fbfa897cd61950ffe20b42ea73fe57a48ff92412cf1a09f6c6b41fc78272164e829aa74c327e82697ad97f2c0396ec48f53d03aad1d9bfb3b1b5b6013f5a646be1b27a860b869a37ca86452f8de528a5d427858b5b89860df210b76421445958ea4d30b9894915b3c9058f6666f5adc500468becb0606ab93b25e87def2f21b57e5b091900c7f2f0c8aba7b6188cec04696c61d2e6281831d80b8909126aaf02f43b295b9126209c4b2cc0989652fff479e18e1a9a2f8f6092df129f718c9e6063b0e3de34dd6d443c42ab4898c254151b906406e61e0e2fd1b99fe76a196e6ee759c946495afe8ba5d628a3a31afd7a49fd6c3aa1fb679051d7522f742c895806474bdbb9750b0b03a002dc7f191bdc1ca3272aae185a1ec44dff3344b1d49b572097ba2091db68e188c524e7df7b223c6af685c35012a26f22adf3caa410100b50065360895e0d6556c2fb9836c847663f8b043928189708e014991f9d353de0a1d7f1db1061eab93a89ecada1addf06c6633002727302e3a02e8f928a4bc4dee476b7acb1514e2ab0ee11a6afb17ff74ecb690efeb94b5c4ebd1dbde36f5576e27b53d87821bb713bd552f47adbf9a9cbfe179dc9e9f47a9d2d5c5894ed0406ab8e14ef465d30ea34de1e0f45b01579c7a6a5b33c258483d5ef1243ef309d82f81a97fbd81ce1f62e2b49683e75338d42480465fac06f7ced9b69fc3d25f227ff85377e1e48acd89858ee6a5a24405894a1f0634458f5aab208f5714308cc6a31083a0fd115ce5cbf29ad18a63f6308629f7698e4f10f6ca1100707e73075694af91ffe35b1a2b9ffd03fc1028572dfd5f1ba03eb2875c6ad832ec48efd1ed5aa7691c295fc7225a6c55786ec9f58e676aa931dc41efe9ff9a8881f8af5de2dc3099eb5801a987f68c216178958df752b3e199e618e16401481022be0cf1400b4558ebce6366eaab6faacc5b2433e50a59487ff0b1f514ebb250803d16ff1505a730ccb778492abd4d7a111499a4877a4567fbc5d3b0f116af41eaaa230408263eb25c4eae34c442a4ec1d5705858d38daea23a451b73db80e6b22ccf22cbd7b2b40b6cf7741cffe0b7f705ad1cd0ce9a86c98309f4b5c4aa62e911a3199ced2c5c324389933dc9e74ff8805a27141390e1113fd4545e2b28f1e906a166767a4fdce6befec18bb27d961ab96c391c2c76f4d5be960f4d6025d395be7d4a8af3dd5494f7f7ad4a46138aa179ec0b8ddb925c128ccb65a119eb8ce214b6be2e10d3d6fbbef57e12ecbf18191aabaf5c787a586baa0ab0a887d0f344329264e923744c50537bf0753fd1dc484a4545524103d4dcc20a555dc910efbef36df3c1bf49ec5467902b7205b4848ff932acfc60a5d5de353d061defaf98ac935d3dd5f0e05beed0993df837bf96e3474857be419faddda842f72c3ce01d7715edf0f828d79f568bc0314aaa44217c68a41ad198121c2a97d956b8e8b3d06226247809adecd9edc36c20ca4354954f06723f70becfd299d19eae0fbbab7e81b58ea848a5fbbc74b81053530006147b691d812fe20fcfc0e98fc9189f2bec316e24958302b77d3e20861d356cb8880e71b017660de5d1e87e2188c8d51659f35c3e9560742f7e30d07c504981f4ea55e1813fe01a5301a6e5dd56d5bae16d25cacfc4a647026fc5b819a31c4e32712936f078e6a293d91c79fc496e71ff05bc405417f0c1db85a7190394b2036261f492c3c6befc8563e0893074c449300cc95f5fa2741a28340e5d3d7ba03bddcf3144f58a46b117ae94d9671326f90ce69d8b957bcd0405c1333fb18a28e7499d01e477a27b45c43e36edb938fbcc88972954080bca1b8dcb2d503b738d311f3de4d7b42bc3e7e6ea22c249781af5c62af70d53fb65aae3560ca1c47c33da828cb21726a8c24f575fcf5772af33275866d67c2d5269b5839a26b75f07b222484f4641e309e998edb6f4716a18573b4fbe270e7c8dad8a11102f63bf6c6ebbba858080d20e1fc19c882bf288d967fc300be34584484d03694313906650d72f54db7a502b2f6682c9af6fa3322103e9b04b5af9dc7d16fa36e19d209fb072d012b94b18fd7216d5cea79a754b496c5fa392b189ca862e929587ab3c7be8bb5a5c4e0d38e33516809a00b3952f1906d4712a23778c64dfd3489fe293d58c6c7f816c3b759e0c6cbb2951ea7c3492382e13c751e49d05d1b3ab28987c40834c4aedf1b660cacc00398f45bfe433e36a90892c6d7b76eeef51c4e14b284fffc4fd90a150946c62e3ea720194d03f84263a92a11fa25858a53886d89a472221805a7f73afa0a78cfc52db058d15a17a0abe51e62a2d24f99aa2494ad8470662721e21b288a33d1fab16852b787ed1dca8bed1fca97e0d9bc85e57a6a51772786b9ea4a6e39707d6c6b9f36a1d90ee22bee8f5bc3ffaaafc022d94482104543591b3ba8292b287da77a49a55015a810d6b6802690298576be78914c7764b6bf850b53e6c14393f1a87f80bab4418b8c1bb80d48916e5e08d5cfbbd9d8bb1ad7a5113391b1002ec5f415903ea3c3511830181f9f2c77b3b2da0343e4d445f9d8b20511f484ff6eaa428112f13589a614a68250c60f01a809b04e23c3accd7252bcbb388a7b6cf600d7f1de5c9971f52ae15f67ded82220e9b7732ab93c0a3cfd8ef2faca87d31d8d902969bc891b3c139dd15c07e75f02b46c9ce01912452109ed516bf90722c7f63e04b3fcdcb9d2428aa1fb834ec75a01fedf9caae9740b9a712735de0dc2f988ce3035df94bdc5594166830d5ea05653a096becd7eb90cc4f7c21913043399f4de8ca13b56c1e6ad363b912cdf30fedbf754b1e8dffd6771db8b77bdcbe9dba97d8dea0c721a502e493e4c0df8e082eaad6d39709285e622b2b8f09e340c65482756124790d27b56a94d33016b70b172d8740382ce00f6916a4b8b863df93b23d4a0289526c8e3d1e21427fbec41cf6f58a08b36a457b6930d79ecfb62b0cc05373d99f61a570c9b39ed0f3c8ac56fb5560ae9b81208fdc5a7f0604dcea12d5d867e79886e5abe0b1348b68965e2c75fecbb4a8f14e2ca2727365122afabc8946ed2f20578dfef63e02901074c98147cf36da173c59a4b08ebdaae99934f5cfeb8a0c234ba36660947bc20d636c804aef706dfc000c0ac2b28ed7f92fb2be046ed349effd0e91742ebe65a6c9d2a9bb9ed8da2161c48d9ac0d7d510471fd8a1eb0d01f7a5a2c68daee0e9a20333989d90292f2da295b8a62e6a562894c19c7d22c65cb66c5cf49605529ff2bb6894900bd3f22b7f31e4a33b544db8ae5c245959a9387af9832d79fb8bfcb2808cee33447b1ea1d3db697830d24d39c81a621a4f01cf736e100084132b28c27ed85d851964cca5c99e4466596bb070a8b774ba2c550793e69b7ae702ad5c660373f10e980264d273d639ca8ffa885a83085c1a9652f9a5cb6d980b401ca5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62e0426c3e2221f59c4cf3e093624f02dc55a1913e642f2a9278a0c417ccb14381411caf9d61a86a4846996c31b71c599f0a0c14c201489c03e3ea3bee1d87bce64a72685f22ef057a4e9f12c255d7ea0e5e12cbdbdfe2f378485d647c79f08caa98f3a0f09c3251644082ab70844ba205a4cae1f09e54c6695a1714fa87ce1f3051bd9440e29a7c6dfeb191c4f068725ef7bdc9bd4428381e0beebc6089e2b903e095521cc1ec49e48bf17d94e776deabfa4418e6611489e50849e3305a4861ddcbf2ac7efd71276ffdfe505de9c9c0be8b0cbef935f0a36601384328bb27c66dbb19121324bf4acac7b9d7cff94b3c9190c623f6f1d12d604a299e84b021d3106e23809fd8f7c53bd6e6b35c5a1cf467e28723b96cae687703bfba9ea80843cd9d562df613c9f4f1b504f2cf1a4289ccb529d46e5c37b0244e1cde6a79f04d369af415f01cec8dd98736a2a3ce4d9279b14c908d19800c932a85f8a0c7c0d9f9a6f05bcf0bd576bcea73bf0117eadd1c99dc437447226aa36d574331f2101738a6d5d05751e5ea55fff128a257675fd5f46708b590757fbfa369b447269e7c6e31c5ba533d8024c3d292393dec38594548c784c24c54de8532da5452649b83917434c046686bcc35400a6f63fdd1b31d37e87f2d3ac3202331ad226b29949e756f1e6fdfc5c3c983f15e8c67fe1f5df71080d0cb9c7634effbe38ebdc0116bb3e2b28753bbc859e1638b8bb94817c58c52e1693140455bbc3f4381f4171234cba6f04e9e9aa0c16395aaf82cb91ca65bea3ef74a07210b9b7008a061dc5ae20a1361aafc89acae4313b00853663866b0350440ce8cc1680d59679f10c825ef0f99e4f8d251e2ba02d8a2534edd76c15f6fe2ae3c383c55f074276b813b1e1714e51e124f53e647d5b18588bcd1fc1922fe51b4f8b4ced445c185dcf55141a33ed38a93a3ed520e2ed7b7fd7d02fdc602bc6dab4ccd6f288de5f4cacf8a27e07cbd3436dffd7364a609ec4af546d4a994e7315193c5b3d4a5f626b4ce3c1c248e79a9dff8761138911c9325223a21664cf2c430883fa259e4966487d2cbdc8d7617e14c00a3eb8ab61db274e42cad0846cc4639fbd794d93c70fbe16b2af3ce605f8fbab65d6f395f0cb879fc2b2a54194c79aa7e609cd938a4b6abe15ffb664893f538265aee853e4c49e179d2e14e9284fd4152714a56d4f99bf75805aa3e9eb959f361032e727d213b74122e3433e331f75b0d0f7fe91e57ae9c51fb2be0605beb6c9011bcb6a3c94ec23e7f5924cac8c51446a0cd2e15526082c7021fa3bedbceff7f23c12bd561f07e3aec01c47401de10234ee66f0acffe9b51c298eaf866f57f238510a33691b0afcb0fddddc59710ddf4d7a991dbc3100d816e65c1ffc76b3bd1575fe3999292404a90c5db90eddb4c993cb591e43195ded1e4343861b15b9aef6599a17bbdd56164a2e1237d4ebb206a4ecc67bc66ca5715597f8f14787bb71bca6e5ca5da2573d74c9aac37019097b2450bda0383f5fe82b3f035c57f93d6df6bad2c622109ce023a0df297de940de3e15242ce38f78de1cb131006dab06c9744276f6010ed77df2335145ab36ac47654294be33cc3d2fd208b64bab35573b1a533f67315861ac139cd69133713fa8f1360bf8b6faa44dc12cd38ec2825c7e68d79559ecdf35853bf96d9505a3b8e40f2a7deecd1e30f01c1815f57686dd4be74638e9a34757ebd4a36867f79a29c9cb4400b8e08c6004e070c01ab232a85bbed499281c0aa78aab530fd818da2868e08a0576ef96108fdce8154dc6aab9f488e364d84c7e705862e2f3e9fb88a686e8c953720d110aeec334d6fe9efb48597ff6557b8b6367b0bda3ee7090d566d8e640741e093ae8e095bd97a2e3061ee7b2847d38f51e6f306a71239bb9f241c9fc2e86565a489686339af537b4b9df45069a7b507b107a97fc0d6801711806eab9584d45db7551bbb8ab4be21c5b8b7fd689204c38da2c6d287918ea0bbdfa80c6c98916d0e20c3ead40e56d5756097078ca7c974f5b66ae14fb780c9448095466a1d4b51c773514ef2064bcb27f232ef7e0ebc7c93fa884b60f4a96aad9207b89b2a8b40fff2d2a3e61ba5f5cea7d518e5cbabdcd391cc0fbd68a9bfcb3717f926bbef09566fcf722b757f919a13cb77d28dcc593193ebc88f2eb35a67cdd8302182b2b33df56f95503c89eba84f65c7d478908f53e00833d716c3068e3c991b1c3271d1a6575cb3ed5a4a20d86e7de362b55259190cac2d191c5cafe6444cafc3fcebb97d401aee72cffd23f2db0a623f3d09280bef261e7d3a1fbaf93b2a3142d9b1083538ca0f58080753aee84e21bca7333a60e44f9fc1b87c5dbef50f438be7522e8f28f1ce25dd28c6e9f08be8a593bbe046979f2f6e989350c5471844b951c9d9d2f1d95f31081e616b472cf010d8d5566f8e78a62544c52020f9a244ebd831aac4ac46d666cc8c5f6f13e1d3b78c424ddcae133235b2f5731e78f205a27a7e3e7b2af0c6d9b127f2a22208ef62de48d967b208a79eeb4948bae8c0383cd145c2372848cf8c4fac79764463ba059186a7f0fef326f1fc1df77eb7a4cc40207683cf5d9b3803d6baee62b2aa5a0536675a60f67b4a597d017cbe8d5ecee975c8ce5b55e8f4f898740f750d9f4b4604909ea5643bcb24fd2bb093368bed4b62752838fa923f489f63e38a05b56a5c8e882b8fa2860d906e78f48648231ba826d2c31495c367432f8ec0ed6a7cab1f930d0ad7316bf0906be26ec0fe4baa6aa6114e98e96ec4f4e2fdb532c6259a15c3f9923a6dab363371e79a54a7e0b81e84a3afa587d65aad84649356ef4d5cb535e15c38e20c57ac984593f13e82ff8ae7a16e31b76364edbc225a96ea91929241deaa83a7a6906084cfcf447194054897355f10ba8c35d0a0e1370e907e5796ae47c63a0256268ce459c12fb83572b1c6bd66e39135b1850102d5d5a7094106e4061412cd167c44417127808c0dff868a93d7935e05345fe07712ba3a93e71a66580dc8cdee8063d56496c0bfb7a0bb1ef2f34e8f7c2fb4d247f8ede4530da98e207828ccdeaf0b44478f74d6a5f7adbeee98dd65df87c81e1aa351f9b872b743560a4a5a214a640729bb23591ce8dc2a3190a7e876ecf4314458cae2dec48c1991bc0bf071dec085cc3c4ff628ecbc07b5b8fe8ff9ebbaf2c3a3243ace62c3eaa72f532cc92185819dd64483f5a83f48d7ba55d5b20375ab45516b20cbba391ae0b14e11c5da3cff003f40d99a601ae060116d3630251a2712a7d4f5f48db0dcb0d24169d8a6947416117c491297f23c4514d549364cda690c89aab1f5190be649ec149254978acccae25d9ed2c2de5c8134ab88010032b7b68061c91cb52244f1a96cffd68b6b21d707d09c28285f8e9a44f7f04f959b16cbc86815b3dd194d82ed9999d90ba74a1bd50ff8fb0e00850ca8d12db73333cc2621aece10d6933ab265b1feb1ae28b114e2a027e7dd442e30284accba99907cf2e647e8d1837a6d8948a0320463e5dd9142a25b98809de4cc30b4f7f8641dfcd45305a15345dffc85cb28a555aa0487232f996f3efb817b9faf80b02d324d13702ac7ce64e68e97ad45a9fd68131cc20a2aca96dec717ec03f81bf543824b95e6867d9ae4534cdace48e0d972175d5449f92c6122643d9b66bc7125bc707c5d3ab362c1d70764dcb4ef24e8c8b986f383f25f0fe0dbe35f60c2e322ae5ea6afb15e7cf2a3b3ba5185aa6296c902c3a34ec6865d991b10a1d5325005d61110285cbec4c9c6caa3dc326d6698a32e7fa4d844a25f5f014da3debb28f2566e53a7783189e3dcad2a44803c90093dbcc4fe81eed57debcdc78b3e6c3f62ca2df18d2f5f5f31d54938f9652187d9136e58ab4cc4960414b2b50f3adfeb0f5cfa6978849e31fd54d74165dbdbd82eb3714d9cb077800e8a3f317a95b918378a3f4f5841d6654f106099b6dc0f1555375e8994a744925c26a821204bf9801ecc07bd67d05d11c91cfe67d9984c84bfac65bff71674a1253877a01a73c8614cf652a4363d2b2992d4672052064685ef5e63a6c62e9f1659e388d4b862b9f0abb9575dca785c6ae445acf24c8f1cd0c5bb11651f8280b26f80779ac10acfa4f9a953604403e50053953b9e1c3e88a5852ad4aa20686df9e3986324f1077abeb2c512e4da1f69be27f5064e82338f5765b692e6da25a979d9e915f60aed69d9958037b7f6c2fb66baa1832bbdc81a109257a793022f86dacca7e73a886a670ba2623fb87102107c97b85d1e50be6c438fadbed84d2827a5032e36b2308312efba0d52654ece4760a5a4b758e27c3bf983d8208c6b97d429a141dcced5faefd10055c0569e9850205489dfcbc4eedf2cfb6eb6c1712a94240b22567e3d22b1755075e34efcec4b29af3a427d102591e60f381f2f9352ed1ba1dff112bc11241212b8d67d14f6f0ba0c61d6a7717161d4ab316cf6f195dd8cbcc31272b9c556e0fe67495fd92574c299e0f387696d130d211494f74681b0bdd66f95027321f05fe951020a1fca5178181112abc5e8b1586082ed2de8dbb8476095c0c18a0852229c54d5fdec17b0a0c3e34bab9cdce7b7844eb396f5e82eb6613ed0680bde005f3771d64fa19cc7c6f0a7ae2dd3a1ccebba2167ed6fc04d07e24bc6469dfe480de10709cc457cc093dd2a7e5a4cb5ebd1781fbe8218050e1d4f215df575dc0ba24c5fbfaeb0a3e967047ce2eedbc5805cfff9cc192d8b359a0ef143a19d0a01e9b7575d4a2a057bcd0db3ea710567b1539da3d077da3251398ae391299f86135f33fa3691390bca6ee5345b8aae20248a221b8db3ab906aa557ac44b9cc3ec55680c254c0480312e97f2470fa06b45784eab74f08b36df4c334d795eee95fc51d562dcd25d5e5dfbc1327cad12c0d51d5bc81a1288e025e6713b3175cc5c4de3d159a88f6c31ba4c68b87b42d03917c50b7c4df70b68dcce6224787336a7a17e1dcfe8c1a72bafa8cece832e4fbbeaf624ce98be89c70245bb9d06f213fa52ed73035e5077aa0ec7153900ade2fe073d5c34b9ec5f4f8c8835f9474379f9089638df4d9fe129a8b6ff8447d1c06178a7bdde44ea3d0e2c44dd19ba9d52cafc6be419a3b28a83ca4bae4cfca813783d0f6f1b9ad1081903379559b4cf5aca682faca3d36984843e18d5ae5f63467e64a5cf48ba7484da7b98375d9647d0fb02430014499a7e72018f475bb28b19ead77834d658a8c7b8081f00a121150a375809b59ecb5dce9efcb821c2c84e90f733fde306f647ac5cd18f18c6da2776c9df609665e8a79d95b149b12fdb1224c2f27fa3329292ac13f279f0be918c33bcabc497f2831d72d9d66aaccd4ad9d1bc5683b729bd8f2bf3194cd90df192d246132f1cbd584978e5cb5d1fc3c01574d558eac71b07bd16feb7320c7896e92aad070d338388113aa18b7caa084eb31f43aeef14889b4e751fe4b03550ea3cc393e0d35661f965a9124378fc1c652c4b66f61efb451e601115278c224e091fc91eae444a10a691aae0b0726fde94248e88ad18c972b6ed0e5dc83568a739399b9f8e9fab12ea1bc060ff202c181432d19273d7fb093736da2aa8486a8d31675f3411f0375293deb64df76acdae502326c1500983644ca8a70125e126d794dd858837f9439d6f62da27c4b417c15b803e3df4feb90461adf20de0cbd2d3f4f2fb8e3065992792fac7431c0c5c68a9c9d6b75b936bb1344d3463391d70f536c7da5f54af2f2d0dea2613dbcd121a86a438116976d1ae0eda067609036da99ba3f7aa221d52dccc979c43148afcd40e024e0647276d2c26d93f732d7d01dcba88a020070c8c0ff8a0a70297ce39fc7d4d379a8467069d2e2a060afa05cc004962ae95fad34bbda65d2713d961aabcb0ddcc8cc9898d0177cda6374181d596d1f82cf8ba5801706d32f6231b8ae2e9eff9411ffcf32eb501ab3e7aee2c36ae1f391b3640b6cbd73ff064755f7b16a5287706179469849c18457a8222f8d67d11fa6c6896d3d063ab72927e8c1f3fe45bda906557db898d053ec86b5e9509c8f023b79a36633248f73dd18c975d3c0e968fd80d7f0dcc2181c19758eb7b277c52885dc5c0ed966ea24a6c2896561041c0399734fa42052cf35f2b1bfe7ed141d7b1e11082a8e211b9f8da623423397893d725ba8a832ac9981180aab3d9df8b00bdbc347a61d52f0aa3304414bc98f97ed2dd3a70109819451198a43767071225341b4fc711ec47e2efcc550a8d091139e844ee95284b3ffeded4b1ee78f527c13d0834b34b5b3171536893c0b0e667e2643b285a82fd45db294b990b71308310f753d181c06e942e95b11ffca37fa7c5b3b7a83b6970865573b5440a7c0ba1d8e4612b6c877f6f89f2d301164dbc34a79e21ec7bd514ecfdfffd4baabf727c0e421f61e371506a1bba4fd37a94fb9750d0fb5d285f27654fdaaefe2f9c29536b731c875d1db30abb01a5a9a782f5b4d705828fa7c3959bb52ad8b84a491033ec1e6d7c15d1c3ce30cce37b930acde17cd6ce3c8895fa08f0d6c1c97f87cea765421c6396234cf5794a90c380c4ec0dc2eb1bb56a4d6d88fbf34d72315c12d05d33b2743f63cbe218b4771bfd95660f0e955f07d2b5952134157822c761dd3ea3586458bb08af543d158801f687d47c969474cca7ca6578cb92eb180096ad1f3eab4c9eeb2e5ddbb8b6aa541837b5fbbce7f999cf86aeba942fe9a2a75dc91cd1350103d314ae1871045c3900e206379e06dadf1784ebd18f0576afb7aeaacb1d060fb386498171d4ec7b19196b39ad6423352111447f4dcf5771923c01a15f58b45118a59ce194697abc8fcfc91140513d97bad21041e86c02e4a3d2fcc2a12dbb7123f27209ce3a6011579a42cd10bd814b817e244fa52ebfa22055eab8f2a733bf933ee23eabad993161d22efd87985985b8b004cc9e46bba93be86c47ce60b2be54c5030809d39b4a6432734318ad208ef4fa4dcea7ff87e23a82a99561e1d190233499fc8e4052c46826bb8b7cffc372096e89ee3b077e3a38db25a26aad2839387de50272b3331d26c329cb4889c4dbdcadf4fb718ec921567979fd59194916c6a526f863336fae153eac4abb9e1068fac746d005390de3698c747faf3164e89f9cf0b9cbb5e4fdf36f8af8055f4bc9fbec14973d73572415d36d50bb7b94b057156caf8b5d9e611fac38d964dbc869a67934842810d2e64d09abd5c2245f0fa99721069de3e4e031b4cd3c97a5cc8a753fc3fc4a91db7d5d5f6441be57a6db9f735357ad3ef21d54eaa898c2b60ef75dac08eb6d00b054ced65691000d370bb66981a7d35700fdd6a83438240ecf3e5880287fd10bb17d447e15a9ece1d797c04c3a8c74eb20ad27cb05a39f7e4b4cbb3ac6379bbe25fbb886d9a5da58c9f7b890695f5daee0facace031ad16d00bb4e34dfeac53f20562698a553a928617f88f3efe0c4a28a09e5451b55ed0fbb91d724e237e0429dfbab3e315b4e3fcc4b322bcf824d600a74e9accef0c428268b91ec9ad4d189784f07155f587067e1e548e0ecabcad353e09b2fa22598c3673f68fd2250e2fb12c427539d5e96646f32813e783393a60e662575ce89c614a31e33a5ee93dff138b631868d6e24fdf286830552a20163ffbcb920fb72239b32b8823ea26b2456aaa0f12634d7b744b13d5e7db9cd3890333edb9932987c14629dbdc9997aa1cdef73c9ed98177ccdeee30a333cb30815eab45e186f8c92fe97cbc5cf74f51b09ec495771720a59f830df893dc4527ff1f55f283709892779106fb61c77b0a6473ea11fe1e3833960351725794bc39fb0b9a51395bb59c38e849010020fcc11a2b15a8acf2befeeb711e231fa7cd8354e80e7010bb73b78363d2935345fbec2c82cebf8a1a356c2533c1d4678324f76995e2b962638fc5ea5111428c481716f4f3dee1952c8bacec7f332272b23ba5342c4aec105fbb093878dfeec1b40fdccd2c7503babc01f467d535219856e24d79d4e608e2a86d50426786d418f9f82ac324e68e7eb8ad939f1a34785e2f62b049c84d2ba5f9fe7ae4ea792992a3a890f641223e0b1562e00d567ed41ab0efe4fff9924ef83a5eeca3482250fea10a570a6bf79b823bf27fc6f9450b53a0cdc7c988746330afc33a027926d99768fa862a7bc32c8233204a858fc5628176583fbaf192253f8a1bd3d3fa88e67f3646fa72fa08ee483370d84930cc4872266076dc1e7a252486a4778a5518abc4ba106bc0fbe9446a8a06d2c4fcaa4e831f5e80a2795aad812e90ddeb57af43b03b3c03fbfbe83f88efe674c1317443324119caf564353fde807ea3cbc66ae07d9bfe188d87d5ca304551c614564344ac9b998b959bb38f0ad35f381fdf369a236b531f5c2cb01c604188e016c85252f1b43ceef1206292b86563a9842930988ff29f6b9b6473191b38e8160cadd3db4e97fa7796abadb1978c4e425a3c40507adf635029cdcbd14cd35e4277c03a9da9e347e0a64d4441cfb1b1c2996518758c28a94b6a7f4333aec3958bfa1718a387732fa12f0fe01cb05dfa5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62ed80dae57f5e0e8c28dd29c045c40d4081a1c82c75af2bfbec08f0b3ea28b70ea649cc862d4e0a6f3804e93f39b3e2de3291e15796032084189a35f48d33f1ffe42c4bb50a5ba9aa175ff9a6ca257ce9b949832c4ba2c052f8eb86b6d87f03666346f549719d34ce69f47b9b4c95077f88d9a8ec2e8f061d9095047a9b5d60d0f801d15891600a591a2d3c0c886169d858478a842278a08fbeddd75b4b7bc21ea146158e16a9ac1aa335a55f8dc1c88d07efcc7ab458a517367528d495182db4127a84c3912bb0b24b4fb0f1528e18166ed41ebbf92d622d91db219ceba1df30f118ec7b300237d5946fd4c443b14298eb4b554b1360531a52cde83595d0427ca067c34521cffb6dd042f8ddb002b3cd7fcf2972d833f3cb6af24ff8c3829e428f75d08f04b7fe5f021904d904bffdd40c987387bb648e4b08d8a51dffd9e30197874b4c72a155383690542eb985dadd338c99a74c9cf7728b4958e8eea417cef1e6cdac31a90813fd87637e68bc2a97447d884bca5cf62fccf1dacbf5e4800f47874f26e7f26ebcab38676b14b5c3bcfc7523cea76c4c2f5cde7fa777182f031837b0847c8ed804656490b94b1220d19ad1c74a5f9b17fe004454fa7890dc8a62971306519d1a92b1c921055249ad904556256701254a0b3f2b4e7f5b4c9e3e07ca9c873a53917af29ad06bb3579ce0e481233116e0eb0b28744b7756fc453618dc47d43907cc8190e777420b6c093d78436b19c41b6a434f94a0c6ef5e968142fda70535396ebaffeee4ba7649f19ca432796c0ba33622db0286a9f462f99f01945eebfdc6312fe471abd2513d7dcecb4beecbda089e1a063e77568c0059d98003cc0b6ebbf908e0c84d53632963b1d1ecbe44eca9980278cf469f935ee4ae54a9e028423bebc6100ba55874be01df5110350c49da29042a5daef82226bf5bf15d4f0fef15c3fe2ad7f51c1c5383853cde8d8c66f39575e588041481df72a2eaf8c689db216730c2a0fe4aa3f6414cdafcb6e8ba82c3915be86a705e7c12c48cbccd490528432f8e8a1dcade195f037c03cb62bc354f6f97acb795e31717979c1f36bf98d240b743200047c254d0d732d4cfe08af926f34fff3ff10ac6118a477c63cd6001d731da1ea59c804a89c755968a2e8a5522753bf8a6edc7c5059aa4324e5789df970c4a5e762c9ef572d4bab8f929f40f097ba04bfadf1a9745cbcb1566a3320b2f730f4a95ef566b20743f9bec0230d998e59187304a583c86ec4fe8af43e1fc0ca5c46aeb4c23c45be23adf79bf125399a6c8b11e87094627f3430140ba68df7c44e83d42fde36b15ba247df4dca2807060df509deaa703f4f499bdbac1f648532988ac8270b2f298197ff00ada38824d070339d472b83edae0811d1f7d4a90197ae4d3caed2d73124ceed77471122de757d239ddc05209e7a508e3761bf3e754dcdb5f55029de2739024c66dca82ef3602310c728a9b94d827744c4f204dcb3cd037a55ec4ae152ed5c3b8013f36798c0eff74a920258d191eb133a04b3515cd18a473618ce3e1c01616731070a2e7755ef4a33a62b5a991e02b9246a066c508ed21df9cea46c8cec2f7aea8552531da85edf79c62fb27a63c205bb44b6c645dbd1c9a26a3ff1c9b6a1d3615735fbc0d2f38ae8d57ed17adf22959f3e16029bd44e4ee0939d56ee617468a829a424fec5a52f64d9f3ef9eae6a2c3c1aaf35cfade70c7ee2f8a656c9b682c068ac95405891dc58638bfd1a10474e9ed8ce27d762bcda95e922e56013a04f21d294ddc0a5b720847782b906f7175bc51d0ea5b6830bb9aaa7727124d14dce62bfa3277dfa3320a55de8308bcac97d350a958f7da6d7edb1c242bdabad03717dcb128eee027fb16097fd700b26d558d6cfcd85617f1e1a53753dc22ef780cebecee3de68956e321fba4792778bbfafae60d4157eb82e6d8a7bd74eec9b879c882444b9a5b29d5de5db8b165f2d021322d541b0c2961b9cfce7581ac4560c715144aba3a62ead62b5843f38d63fd1f80de095567738725820170798cd1d075000154bc813ae683e56d4fea7845e8af74c91e2a7ff3d7bb585e7e57337a5b1c4c831b3ab6d1ae145473453beb15a4e7be2fd821a65107bb1226a679a80897d8548512207bd84e3d721e1266ec70537fcbe8a5d6f92c6c11bea0cdef828f9e362ce033d8a98b5007784bb99fbc49e577b05ba80ed9e4751517eca42b54fea51265e2dabee188ed3fb5cb6bf41f1348731bfd6c719df3ec0423007190f9918505ca67ebc081833edfc2100a99fe1d548b41ecadaf6d8d96a2af186dce60164a001bc27d6cce9240e78cd6df66b7690d282882f813f2aa661f50f9d3b497e6875488740fff39acf113751a0483a5030750f2f6024ebcf155d73d0aabf87ce2d76fb378f1caf6c59f7ad044569c987c5dcaf207022d5f78ceffd21ed3caef5c8910f0737d3c2377ad417d3e1f6c46df96db079513acc9ac66ee76d9940c07f1012275664b005cd6c987aebd9f6de1e11c527f274627b1048889bb61ffe6b5360d97123bcda35e89d11e99ab032f78f48054c71debe7b1c05f72cb1566445a7d0fab4989fe7fc53e8476a5cd671fed3536338b8531a10fe133a92b5a3f3f6e4a7772529cd5b9e1c4394efb6f755b6eb799f28f67d51773c81610b6fb407778b2d23f301f54999588af87868a580f180d8c0661844c6e153f202307068cb47e229c4c6a3152f1516a07efada60388e4fa2a7907a5e3c933cd0e0f7a995e1bd01d74f24f5bcf9db71c14e5bbf099a3c60df43902d9f72b5ac0a9c3ea3585494a55df791cc8afe15e8b5bce78a2e591a05d85301f0e1d78f46b4a8ea32b80eeafdca4fc51dfa992ba08b3f4a80299e3b3cc88330e3c56c9ae6b3979b7e17e72c0afa3ca9aa6d8091f8b28858ad12c792c8fab3cf6056832d345278a17d4da2a60c4957f5c880ab41814be8b3a49f74a45acd9d313d3b01c6ae934e4a1d4463dbbb4111b79547765fbbb141888556fd6a938b2fa413e7763e364b06b69084876104db35d5c1b67493ed5de7f179d537f09e08b383c76079c15bef6f19029e9db2a8a574ec351b1b2b106006177e95e7d4d1a746306e40feaf0de6c99341848a8ec0a50849d1affbf75d6285a73f6db3d701cde04925d840acc6b257562382af0644faeb43de21a4136d51b66465aa9888ea9f8c8dbfd593aebb8c216eef83e710876c9ae7cd72104e8ccaa9da4079ac4cfda660568b3e26294d0df38ed83e438c245f94aaa52c2ece4c15547756e0d328c330b85823a8db92105773e5f3eb56a42f16cbc25522f079f54caef53c34de0f7495ba4a189eee5a52495edd5fb742daea06806c1382f500af741ea55904acd51b7876979d1c5c7c5f79561c0ffb457cbdcca932bb5ca4e63ebfd00342aabc26352c9599b515a63f29d5a2bd3dc2a123b43cb9186535f6443d405d5a63511664cea1abe39a8b52dde3be600783b825b82060d9709ee8f686569092899d0602882071dc901987903f869639ae2c3f7859c459482f1cd8fbf7c7de4985af4e748ea057766cae63f93e71ba01808e3cf3e2d828639a2037f2eb0bacb829079d660e547df1f8995b1f58aa71e7fea28b42d77bcb419950496e52bdcc836b0a9c6f883e085d5ecfb0b510376da8ff912f2ce45eea541bc918488c59819ef791aa46e0e38d1481b6afbeeffd28a1afbffb484d926c3a58ba686047bbed7f985da7ea986b78275bf6b4aa7f95341769cad1401cf3640baa28fe8a58bfc267c0ba4f29da551233237e3fa112f25fbf1c25cbeb780c53b93bfd401a40d63a932dc5022bc01a9225c500d64f87d45e521bb1b3213393a00c6e4ba9d99915145b878fd16550b83b6c9ef4d53bafce397f097618a900d1320a7e9af180ae19da9e62f4c91d1b9af4b59a288c085c97ca2a44134e75db8d567b1a61043945830b22a21ab0741e235c11c83e0bbf7d9bc2508cc9b4a4d7a51b7e416ad9fa5239ddbc5d3293c40c488c1e459c8629e83f3602ba558bf005046cf7b11d73cdcefce0bb34eee4827e07c0f89a1a2e3a6c8d804e6f85e27d40700ca8a7aa4b3646949ae7883b9f15808e2ecd5679bf6f24c4dc64c90dd8e353f2043f9f1c1c95c4ccdde8880221a7064164fa4ffb019162af6c3cea0a199322fb0f1c963ab1036e3f11490665308bae0967c9c65c775842b7b6499a6b56cea60ad8580b3ac4e1b892fab2604a05861fbb31d9fbf4e1fff7c1c9170ede854796eb498d04b1a2617c4da032970c7075eb3c3aff41f75cefd756fbb79c447e7d3033e8f688242e0b7a8ef074534066e5b480434d440317caf533878b6a45c9fcaf7a97f08c178f22beb584ccd1e264f86e08af122fc343c840cd463d9231eca0ea81ae13f5b27b67ca17da83fd1c2431b56d728d056b0ca5b0f30cfa9018b91f6507db810db8b719c1b8196579d2c6a444b170887c66714e2fb5467b7bd6c97da777c7afa12e9a721efbfa963e431fb32d9a1f14a98eb87c6bcc7503119dd705bf6c52080229b4e2a025f87675cd290beda2b770c7f152cce2f8b1d9cae306737a11cb3b5a721fe9764bc269877f243e71cd9762d95dfe07dffb8664e470185bf43033fa5eb5b9d313dded82be20a4ddece8c420fefca5c27f461b3f134ca26215159d3d54c22a3396673467fbe3718add26d6ac5910ce13c41cd0c50cdb3e104ce94d06417436a1f548b39a340d3b5e11c62f8b1eb7be2ba5eee8879ec6bf9d2bf4386c0a70deebf03500c6f99c54f0804cd641c159035f947708fa625dfb1a66a3be8d9d8864453b662d667db512e11df6ed6e7ce79d41e6a610ccbf27e596537d50ac43769a721a96e65a52c554309d2323daa5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62e0f41f309c84768b036de3ad9764cbf1010939fdb7349ce1bdebdaef6c0db2278b25e0498bbedabcf9339868da41e3916796201314865efc8f7a25b1d77c9e13ccd29d915a806255bd0e584ab2999e75fc63a5a71b31e0f00824e79eff4befd42f1033e84169b25616e727b8cb26c7ff49207e9bc4c231fb8d81c53c746586c393eee067b083f131d5a9076d56e47cdd97c0b809c2ae6c46647419a183a22abf0edfaeb144c7d5bda829665b8f7985176ed985b923d69ffe74a4976aab0eb1d9236ec4b8847ce4d3288134c28a71b7674c8c2078d7b8b439a56e661b11b3a4d59ff2a98d8df1c7eee6162fbd6c397726d6ce068d4bc80262070393e1e19f57a2000cb24a6dbe436f9305adad1c71bed6181f1701497450f09588cf83fb577434e853e1919e4f94a85dad0f8223a29731a718114facaa5ff06aaa75c965da94d428563215e3ff7e88543939cad3fa9d68f7789af59dc00ac915cb570ed1e19220f5311f0d61997c18cb6f6d119c7a3a30bd16d3339ba75f196465f27f23d039f261a294591b7298652c6af28866a04582621d8fadbf4e7e3f79d8b24f81bf1487b51a67893a6a604644eaebc33f0ef3572e2967afdb196be635df715297688ab95fe767d8adadedd1e526d0c459df38dad7c15fb87b96212573fa1727ba9ec0b3929966ee96f0aa765a6a55ea94fcdead1a2cc96ca116c6aeb1a9cf653fbed0e76721115738ec1eed85f9e1db1a1a86b560b2c4973e3837e3febaa0cea22e52418a73e161aa9fbbf7960e870dd323de52149ffc534b8b20532732d4270da9b2f836368e162f9ffab72fc41dd281485aafc734b34735c28688911533c5e44b3353f1e39982a532f094299851a0125e434c4c6f7711f02887b022eb17d3f2ca4049b9416ed9de4c2163d6d65c9b392902b1ca2b8e5058acb0c349f7b0b75a95ea8bc6e4b45722a18e255d65b58f6da7934c59bdd636b5bf7ee0e4e27ca50cb4d7ffe5e15088554b0bf462745980905eec414a38d62b0bbbf7b5505e5992ff670e6ae9cbf2a63a029c2e7362ddae3da4e08a85f3a960dd70d6d88c48e120ef009d172aedb6f60de80c781f33d3b0b88ca73857b6db1a0d156e734a2c3c8547c3462f22ac8aba018ac4fe4589c95c1469b67d592904f1effc1e0cabfab1f4cf2873c11c47134c2b7f1352bae3e6a950a8e698452a0717485da7e36a280531205d38c0f6a419fe192f95f6825aaf4a29cf4345d9268882341c3ad1c5e4f572925fcfc7d7b2b5c53e9de81c0744878cd3814b82e1533af0a1e8c3475843b6c72235deccd1891a958e77c8c9939cfd43321c21ffe8f89778b88c41dfa3fd130c580dd06e6fe142b432e3e9ae68bcd9a1aa3f0afb377be3302d6ab6d4461d5f10322aedeac19d038815eed4bfcf029c9f7e8e843cbd12ccbe318cfcc4e2d695780628b51c23d271cb12dbbad01a7678810ad2ebc379c9cc32b3728bd9c08fd242bcfa0ef3af04b3ac6d03639cd0d567d53b6499c50d59d1bc06731e31f1d702d3c69764ffe06431ffeb72af0eafbbacb32eb8d255d5e922bcd7febac4886b15cfc075e1ba8111519f483ac6061d8a405b506c508605d2575429b64c191379e54a57410c2ebe282393da6e17008b3d219bc99896bde6d226cf992ac99ee068230ebb65572140f456d9cc16c2ccbf898902fb38753339a3367af3bd45ae2efc3b456a79533c92cf90da1aa16a641665cf9ad35b4d1ee02308c10bbaac9c3c1ab19f8392c3d0adb6c65afdb78d4b11cb1f627bb19425631f440ebe44f3d299d8f0cb7773479d05c685d848eac07834fe693eb9537df199d0374150c351d28c96228fdb0dda1ff31c1c2b3845c302bedbcb272184c61803c8caf46979c41075be45fe1776da73234e31f60e3858b0d338e41256c9f8d8195c9eef50ba7a73915eea542ba2c30b899f5de81e1c0dce2037fbfabfb2002c34e1973f66b16b22bbf88c8d659fa24c9b6cba9b915a6e1ed029de27443825061b7680d59cfe452850adccb5707796ec0ad639a3bebd638adc1a64ca3ac91c99a9be247fbc3cf701295c62a5b492379285be3c6ee9531f43c21da7d7f75d43e611549b972dccdded9c313701d7a3c8af6f403ebc615dad02f6c67ba7a0997aabad6470a5b34e58fe3233c7064f13906d3333170a7674c19349fbd9c07001abc0df53f336d846a9ad6bf2a378b38e129482a0cc85c83a9b17d2a6ac3d2f893125211435d0cbd1ba7a64add003e655eca2b4c975b6c2f64ab0348b0ade7b8d86a89743afd6707e71691ded7e006e552b9a7f42abf7217920863a62c79bf96f5b9854d19d51b020dbbc2a99d240edcc3e2fe8da60ddd800d37e14fa805e1d1ef3e67827d3f341f12193a6ee64dbfed7b5ed60647814e8eda7a535c807a2452c22848902729b6836cdd24cff70d4e9d6316147890eeaed92f36b22cc8983470e18f744643058aa3a5e378a91ec733653496d7c67eceec7066c82b0e2707b19c04b2f0bb7e4d3631823532a6a90ed870057e3442df3222146b033da8ae0874fde34226ac51aa29743e1379a7eed97ab8384441a5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62eba56cf9c6ad9aff5b2f19a202285990a8fb058971f2884aaa4c97af70dd8dfbd2f8ad63a2142631fd3d8b26df7d7c084dca608050bd7e64928e6f2cce8fceacea5a4b8761c840a4d5660042f16d795de70850ff19f2d24c5f956007291bfb62erootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootdpdk-thunderx-19.11.10-150500.5.14.3.src.rpmdpdk-any-examplesdpdk-thunderx-examplesdpdk-thunderx-examples(aarch-64)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     /bin/bash/usr/bin/python3libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.17)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.17)(64bit)librte_acl.so.20.0()(64bit)librte_acl.so.20.0(DPDK_20.0)(64bit)librte_bbdev.so.0.200()(64bit)librte_bbdev.so.0.200(EXPERIMENTAL)(64bit)librte_cfgfile.so.20.0()(64bit)librte_cfgfile.so.20.0(DPDK_20.0)(64bit)librte_cmdline.so.20.0()(64bit)librte_cmdline.so.20.0(DPDK_20.0)(64bit)librte_cryptodev.so.20.0()(64bit)librte_cryptodev.so.20.0(DPDK_20.0)(64bit)librte_cryptodev.so.20.0(EXPERIMENTAL)(64bit)librte_eal.so.20.0()(64bit)librte_eal.so.20.0(DPDK_20.0)(64bit)librte_ethdev.so.20.0()(64bit)librte_ethdev.so.20.0(DPDK_20.0)(64bit)librte_ethdev.so.20.0(EXPERIMENTAL)(64bit)librte_eventdev.so.20.0()(64bit)librte_eventdev.so.20.0(DPDK_20.0)(64bit)librte_flow_classify.so.0.200()(64bit)librte_flow_classify.so.0.200(EXPERIMENTAL)(64bit)librte_hash.so.20.0()(64bit)librte_hash.so.20.0(DPDK_20.0)(64bit)librte_ip_frag.so.20.0()(64bit)librte_ip_frag.so.20.0(DPDK_20.0)(64bit)librte_ipsec.so.0.200()(64bit)librte_ipsec.so.0.200(EXPERIMENTAL)(64bit)librte_jobstats.so.20.0()(64bit)librte_jobstats.so.20.0(DPDK_20.0)(64bit)librte_kni.so.20.0()(64bit)librte_kni.so.20.0(DPDK_20.0)(64bit)librte_kni.so.20.0(EXPERIMENTAL)(64bit)librte_lpm.so.20.0()(64bit)librte_lpm.so.20.0(DPDK_20.0)(64bit)librte_mbuf.so.20.0()(64bit)librte_mbuf.so.20.0(DPDK_20.0)(64bit)librte_mempool.so.20.0()(64bit)librte_mempool.so.20.0(DPDK_20.0)(64bit)librte_meter.so.20.0()(64bit)librte_meter.so.20.0(DPDK_20.0)(64bit)librte_metrics.so.20.0()(64bit)librte_metrics.so.20.0(DPDK_20.0)(64bit)librte_net.so.20.0()(64bit)librte_net.so.20.0(DPDK_20.0)(64bit)librte_pci.so.20.0()(64bit)librte_pci.so.20.0(DPDK_20.0)(64bit)librte_pipeline.so.20.0()(64bit)librte_pipeline.so.20.0(DPDK_20.0)(64bit)librte_pipeline.so.20.0(EXPERIMENTAL)(64bit)librte_pmd_bnxt.so.20.0()(64bit)librte_pmd_bnxt.so.20.0(DPDK_20.0)(64bit)librte_pmd_bond.so.20.0()(64bit)librte_pmd_bond.so.20.0(DPDK_20.0)(64bit)librte_pmd_crypto_scheduler.so.20.0()(64bit)librte_pmd_crypto_scheduler.so.20.0(DPDK_20.0)(64bit)librte_pmd_i40e.so.20.0()(64bit)librte_pmd_i40e.so.20.0(DPDK_20.0)(64bit)librte_pmd_ixgbe.so.20.0()(64bit)librte_pmd_ixgbe.so.20.0(DPDK_20.0)(64bit)librte_port.so.20.0()(64bit)librte_port.so.20.0(DPDK_20.0)(64bit)librte_power.so.20.0()(64bit)librte_power.so.20.0(DPDK_20.0)(64bit)librte_power.so.20.0(EXPERIMENTAL)(64bit)librte_rawdev.so.20.0()(64bit)librte_rawdev.so.20.0(DPDK_20.0)(64bit)librte_reorder.so.20.0()(64bit)librte_reorder.so.20.0(DPDK_20.0)(64bit)librte_ring.so.20.0()(64bit)librte_ring.so.20.0(DPDK_20.0)(64bit)librte_sched.so.20.0()(64bit)librte_sched.so.20.0(DPDK_20.0)(64bit)librte_security.so.20.0()(64bit)librte_security.so.20.0(DPDK_20.0)(64bit)librte_security.so.20.0(EXPERIMENTAL)(64bit)librte_table.so.20.0()(64bit)librte_table.so.20.0(DPDK_20.0)(64bit)librte_timer.so.20.0()(64bit)librte_timer.so.20.0(DPDK_20.0)(64bit)librte_vhost.so.20.0()(64bit)librte_vhost.so.20.0(DPDK_20.0)(64bit)librte_vhost.so.20.0(EXPERIMENTAL)(64bit)libvirt.so.0()(64bit)libvirt.so.0(LIBVIRT_0.0.3)(64bit)libvirt.so.0(LIBVIRT_0.1.0)(64bit)libvirt.so.0(LIBVIRT_0.1.4)(64bit)libvirt.so.0(LIBVIRT_0.7.3)(64bit)libvirt.so.0(LIBVIRT_0.8.5)(64bit)libvirt.so.0(LIBVIRT_0.9.13)(64bit)libvirt.so.0(LIBVIRT_0.9.3)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0.4-14.0-15.2-1dpdk-any-examples4.14.3f@f@fxfLe@cwsc5c47@bK@bja?=@a;H`]`f@`_s!_i@_2@^@^l@^\@]@]@]\@\Y@\o@\I[Ѱ@[[['ZZ@ZZZH@Z\ZTZ@X6@W= 5.9. Also see here: http://inbox.dpdk.org/users/CAJFAV8w8ozEkdSKdBHEHXJDxpChorGa1jUsNEcPMptG30bWykw@mail.gmail.com/T- Add patches to fix vulnerability where malicious guest can harm the host using vhost crypto, this includes executing code in host (VM Escape), reading host application memory space to guest and causing partially denial of service in the host (bsc#1176590). * 0001-vhost-crypto-fix-pool-allocation.patch * 0002-vhost-crypto-fix-incorrect-descriptor-deduction.patch * 0003-vhost-crypto-fix-missed-request-check-for-copy-mode.patch * 0004-vhost-crypto-fix-incorrect-write-back-source.patch * 0005-vhost-crypto-fix-data-length-check.patch * 0006-vhost-crypto-fix-possible-TOCTOU-attack.patch- Update to 19.11.4. For a list of fixes check: https://doc.dpdk.org/guides-19.11/rel_notes/release_19_11.html#id8 - Add patch to resolve build error reported in Staging:E project where a kernel backport (jsc#SLE-13536) introduced backward incompatible changes to the API that break kni module build * 0001-SLE15-SP3-compatibility-patch-for-kni.patch- update to v19.11.3: app/crypto-perf: fix display of sample test vector app/eventdev: check Tx adapter service ID app: fix usage help of options separated by dashes app/pipeline: fix build with gcc 10 app: remove extra new line after link duplex app/testpmd: add parsing for QinQ VLAN headers app/testpmd: fix DCB set app/testpmd: fix memory failure handling for i40e DDP app/testpmd: fix PPPoE flow command app/testpmd: fix statistics after reset baseband/turbo_sw: fix exposed LLR decimals assumption bbdev: fix doxygen comments build: disable gcc 10 zero-length-bounds warning build: fix linker warnings with clang on Windows build: support MinGW-w64 with Meson buildtools: get static mlx dependencies for meson bus/fslmc: fix dereferencing null pointer bus/fslmc: fix size of qman fq descriptor bus/pci: fix devargs on probing again bus/pci: fix UIO resource access from secondary process bus/vmbus: fix comment spelling ci: fix telemetry dependency in Travis common/iavf: update copyright common/mlx5: fix build with -fno-common common/mlx5: fix build with rdma-core 21 common/mlx5: fix netlink buffer allocation from stack common/mlx5: fix umem buffer alignment common/octeontx: fix gcc 9.1 ABI break common/qat: fix GEN3 marketing name contigmem: cleanup properly when load fails crypto/caam_jr: fix check of file descriptors crypto/caam_jr: fix IRQ functions return type crypto/ccp: fix fd leak on probe failure cryptodev: add asymmetric session-less feature name cryptodev: fix missing device id range checking cryptodev: fix SHA-1 digest enum comment crypto/kasumi: fix extern declaration crypto/nitrox: fix CSR register address generation crypto/nitrox: fix oversized device name crypto/octeontx2: fix build with gcc 10 crypto/openssl: fix out-of-place encryption crypto/qat: fix cipher descriptor for ZUC and SNOW crypto/qat: support plain SHA1..SHA512 hashes devtools: fix symbol map change check doc: add i40e limitation for flow director doc: add NASM installation steps doc: fix API index doc: fix build issue in ABI guide doc: fix build with doxygen 1.8.18 doc: fix default symbol binding in ABI guide doc: fix log level example in Linux guide doc: fix LTO config option doc: fix matrix CSS for recent sphinx doc: fix multicast filter feature announcement doc: fix number of failsafe sub-devices doc: fix reference in ABI guide doc: fix sphinx compatibility doc: fix typo in contributors guide doc: fix typo in contributors guide doc: fix typos in ABI policy doc: prefer https when pointing to dpdk.org drivers: add crypto as dependency for event drivers drivers/crypto: disable gcc 10 no-common errors drivers/crypto: fix build with make 4.3 drivers/crypto: fix log type variables for -fno-common drivers: fix log type variables for -fno-common eal/arm64: fix precise TSC eal: fix C++17 compilation eal: fix comments spelling eal: fix log message print for regex eal: fix PRNG init with HPET enabled eal: fix typo in endian conversion macros eal/freebsd: fix queuing duplicate alarm callbacks eal/ppc: fix bool type after altivec include eal/ppc: fix build with gcc 9.3 eal/x86: ignore gcc 10 stringop-overflow warnings ethdev: fix build when vtune profiling is on ethdev: fix spelling eventdev: fix probe and remove for secondary process event/dsw: avoid reusing previously recorded events event/dsw: fix enqueue burst return value event/dsw: remove redundant control ring poll event/dsw: remove unnecessary read barrier event/octeontx2: fix build for O1 optimization event/octeontx2: fix queue removal from Rx adapter examples/eventdev: fix build with gcc 10 examples/eventdev: fix crash on exit examples/fips_validation: fix parsing of algorithms examples/ip_pipeline: remove check of null response examples/ipsec-gw: fix gcc 10 maybe-uninitialized warning examples/kni: fix crash during MTU set examples/kni: fix MTU change to setup Tx queue examples/l2fwd-keepalive: fix mbuf pool size examples/qos_sched: fix build with gcc 10 examples: remove extra new line after link duplex examples/vhost_blk: fix build with gcc 10 examples/vmdq: fix output of pools/queues examples/vmdq: fix RSS configuration examples/vm_power: drop Unix path limit redefinition examples/vm_power: fix build with -fno-common fib: fix headers for C++ support fix same typo in multiple places fix various typos found by Lintian ipsec: check SAD lookup error ipsec: fix build dependency on hash lib kvargs: fix buffer overflow when parsing list kvargs: fix invalid token parsing on FreeBSD kvargs: fix strcmp helper documentation log: fix level picked with globbing on type register lpm6: fix comments spelling lpm6: fix size of tbl8 group mem: fix overflow on allocation mem: mark pages as not accessed when freeing memory mem: mark pages as not accessed when reserving VA mempool/dpaa2: install missing header with meson mempool/octeontx2: fix build for gcc O1 optimization mempool: remove inline functions from export list mem: preallocate VA space in no-huge mode mk: fix static linkage of mlx dependency net/avp: fix gcc 10 maybe-uninitialized warning net/bnxt: do not use PMD log type net/bnxt: fix error log for command timeout net/bnxt: fix FW version query net/bnxt: fix HWRM command during FW reset net/bnxt: fix max ring count net/bnxt: fix memory leak during queue restart net/bnxt: fix number of TQM ring net/bnxt: fix port start failure handling net/bnxt: fix possible stack smashing net/bnxt: fix Rx ring producer index net/bnxt: fix storing MAC address twice net/bnxt: fix TQM ring context memory size net/bnxt: fix using RSS config struct net/bnxt: fix VLAN add when port is stopped net/bnxt: fix VNIC Rx queue count on VNIC free net/bnxt: use true/false for bool types net/dpaa2: fix 10G port negotiation net/dpaa2: fix congestion ID for multiple traffic classes net/dpaa: use dynamic log type net/e1000: fix port hotplug for multi-process net/ena/base: fix documentation of functions net/ena/base: fix indentation in CQ polling net/ena/base: fix indentation of multiple defines net/ena/base: fix testing for supported hash function net/ena/base: make allocation macros thread-safe net/ena/base: prevent allocation of zero sized memory net/ena: fix build for O1 optimization net/ena: set IO ring size to valid value net/enetc: fix Rx lock-up net/enic: fix flow action reordering net/failsafe: fix fd leak net/hinic: allocate IO memory with socket id net/hinic/base: fix PF firmware hot-active problem net/hinic/base: fix port start during FW hot update net/hinic: fix LRO net/hinic: fix queues resource free net/hinic: fix repeating cable log and length check net/hinic: fix snprintf length of cable info net/hinic: fix TSO net/hinic: fix Tx mbuf length while copying net/hns3: add free threshold in Rx net/hns3: add RSS hash offload to capabilities net/hns3: clear residual flow rules on init net/hns3: fix configuring illegal VLAN PVID net/hns3: fix configuring RSS hash when rules are flushed net/hns3: fix crash when flushing RSS flow rules with FLR net/hns3: fix default error code of command interface net/hns3: fix default VLAN filter configuration for PF net/hns3: fix mailbox opcode data type net/hns3: fix MSI-X interrupt during initialization net/hns3: fix packets offload features flags in Rx net/hns3: fix promiscuous mode for PF net/hns3: fix return value of setting VLAN offload net/hns3: fix return value when clearing statistics net/hns3: fix RSS indirection table configuration net/hns3: fix RSS key length net/hns3: fix Rx interrupt after reset net/hns3: fix status after repeated resets net/hns3: fix Tx interrupt when enabling Rx interrupt net/hns3: fix VLAN filter when setting promisucous mode net/hns3: fix VLAN PVID when configuring device net/hns3: reduce judgements of free Tx ring space net/hns3: remove one IO barrier in Rx net/hns3: remove unnecessary assignments in Tx net/hns3: replace memory barrier with data dependency order net/hns3: support different numbers of Rx and Tx queues net/hns3: support Rx interrupt net/i40e/base: update copyright net/i40e: fix flow director enabling net/i40e: fix flow director for ARP packets net/i40e: fix flow director initialisation net/i40e: fix flush of flow director filter net/i40e: fix queue region in RSS flow net/i40e: fix queue related exception handling net/i40e: fix setting L2TAG net/i40e: fix wild pointer net/i40e: fix X722 performance net/i40e: relax barrier in Tx net/i40e: relax barrier in Tx for NEON net/iavf: fix link speed net/iavf: fix setting L2TAG net/iavf: fix stats query error code net/ice: add action number check for switch net/ice/base: check memory pointer before copying net/ice/base: fix binary order for GTPU filter net/ice/base: fix MAC write command net/ice/base: fix uninitialized stack variables net/ice/base: minor fixes net/ice/base: read PSM clock frequency from register net/ice/base: remove unused code in switch rule net/ice/base: update copyright net/ice: change default tunnel type net/ice: fix crash in switch filter net/ice: fix hash flow crash net/ice: fix input set of VLAN item net/ice: fix RSS advanced rule net/ice: fix RSS for GTPU net/ice: fix setting L2TAG net/ice: fix variable initialization net/ice: remove bulk alloc option net/ice: remove unnecessary variable net/ice: support mark only action for flow director net/ipn3ke: use control thread to check link status net/ixgbe/base: update copyright net/ixgbe: check driver type in MACsec API net/ixgbe: fix link state timing on fiber ports net/ixgbe: fix link status after port reset net/ixgbe: fix link status inconsistencies net/ixgbe: fix link status synchronization on BSD net/ixgbe: fix resource leak after thread exits normally net/ixgbe: fix statistics in flow control mode net/memif: fix init when already connected net/memif: fix resource leak net/mlx4: fix build with -fno-common net/mlx4: fix drop queue error handling net/mlx5: add device parameter for MPRQ stride size net/mlx5: add multi-segment packets in MPRQ mode net/mlx5: enable MPRQ multi-stride operations net/mlx5: fix actions validation on root table net/mlx5: fix assert in doorbell lookup net/mlx5: fix assert in dynamic metadata handling net/mlx5: fix assert in modify converting net/mlx5: fix build with separate glue lib for dlopen net/mlx5: fix call to modify action without init item net/mlx5: fix counter container usage net/mlx5: fix crash when releasing meter table net/mlx5: fix CVLAN tag set in IP item translation net/mlx5: fix doorbell bitmap management offsets net/mlx5: fix gcc 10 enum-conversion warning net/mlx5: fix header modify action validation net/mlx5: fix imissed counter overflow net/mlx5: fix jump table leak net/mlx5: fix mask used for IPv6 item validation net/mlx5: fix matching for UDP tunnels with Verbs net/mlx5: fix match on empty VLAN item in DV mode net/mlx5: fix metadata for compressed Rx CQEs net/mlx5: fix meter color register consideration net/mlx5: fix meter suffix table leak net/mlx5: fix packet length assert in MPRQ net/mlx5: fix push VLAN action to use item info net/mlx5: fix RSS enablement net/mlx5: fix RSS key copy to TIR context net/mlx5: fix Tx queue release debug log timing net/mlx5: fix validation of push VLAN without full mask net/mlx5: fix validation of VXLAN/VXLAN-GPE specs net/mlx5: fix VLAN flow action with wildcard VLAN item net/mlx5: fix VLAN ID check net/mlx5: fix VLAN PCP item calculation net/mlx5: fix zero metadata action net/mlx5: fix zero value validation for metadata net/mlx5: improve logging of MPRQ selection net/mlx5: reduce Tx completion index memory loads net/mlx5: set dynamic flow metadata in Rx queues net/mlx5: update VLAN and encap actions validation net/mlx5: use open/read/close for ib stats query net/mvneta: do not use PMD log type net/mvpp2: fix build with gcc 10 net/netvsc: avoid possible live lock net/netvsc: do not configure RSS if disabled net/netvsc: do RSS across Rx queue only net/netvsc: fix comment spelling net/netvsc: fix memory free on device close net/netvsc: handle Rx packets during multi-channel setup net/netvsc: handle Tx completions based on burst size net/netvsc: propagate descriptor limits from VF net/netvsc: remove process event optimization net/netvsc: split send buffers from Tx descriptors net/nfp: fix dangling pointer on probe failure net/nfp: fix log format specifiers net/null: fix secondary burst function selection net/null: remove redundant check net/octeontx2: disable unnecessary error interrupts net/octeontx2: enable error and RAS interrupt in configure net/octeontx2: fix buffer size assignment net/octeontx2: fix device configuration sequence net/octeontx2: fix link information for loopback port net/octeontx: fix dangling pointer on init failure net/octeontx: fix meson build for disabled drivers net/pfe: do not use PMD log type net/pfe: fix double free of MAC address net/qede: fix link state configuration net/qede: fix port reconfiguration net/ring: fix device pointer on allocation net/sfc/base: fix build when EVB is enabled net/sfc/base: fix manual filter delete in EF10 net/sfc/base: handle manual and auto filter clashes in EF10 net/sfc/base: reduce filter priorities to implemented only net/sfc/base: refactor filter lookup loop in EF10 net/sfc/base: reject automatic filter creation by users net/sfc/base: use simpler EF10 family conditional check net/sfc/base: use simpler EF10 family run-time checks net/sfc: fix initialization error path net/sfc: fix promiscuous and allmulticast toggles errors net/sfc: fix reported promiscuous/multicast mode net/sfc: fix Rx queue start failure path net/sfc: set priority of created filters to manual net/softnic: fix memory leak for thread net/softnic: fix resource leak for pipeline net/tap: do not use PMD log type net/tap: fix check for mbuf number of segment net/tap: fix crash in flow destroy net/tap: fix fd leak on creation failure net/tap: fix file close on remove net/tap: fix mbuf and mem leak during queue release net/tap: fix mbuf double free when writev fails net/tap: fix queues fd check before close net/tap: fix unexpected link handler net/tap: remove unused assert net/thunderx: use dynamic log type net/vhost: fix potential memory leak on close net/virtio: do not use PMD log type net/virtio: fix crash when device reconnecting net/virtio: fix outdated comment net/virtio: fix unexpected event after reconnect net/virtio-user: fix devargs parsing net/vmxnet3: fix RSS setting on v4 net/vmxnet3: handle bad host framing pci: accept 32-bit domain numbers pci: fix build on FreeBSD pci: fix build on ppc pci: reject negative values in PCI id pci: remove unneeded includes in public header file remove references to private PCI probe function Revert “common/qat: fix GEN3 marketing name” Revert “net/bnxt: fix number of TQM ring” Revert “net/bnxt: fix TQM ring context memory size” security: fix crash at accessing non-implemented ops security: fix return types in documentation security: fix session counter security: fix verification of parameters service: fix crash on exit service: fix identification of service running on other lcore service: fix race condition for MT unsafe service service: remove rte prefix from static functions telemetry: fix port stats retrieval test/crypto: fix flag check test/crypto: fix statistics case test: fix build with gcc 10 test/flow_classify: enable multi-sockets system test/ipsec: fix crash in session destroy test/kvargs: fix invalid cases check test/kvargs: fix to consider empty elements as valid test: load drivers when required test: remove redundant macro test: skip some subtests in no-huge mode timer: protect initialization with lock usertools: check for pci.ids in /usr/share/misc vfio: fix race condition with sysfs vfio: fix use after free with multiprocess vhost/crypto: add missing user protocol flag vhost: fix packed ring zero-copy vhost: fix peer close check vhost: fix shadowed descriptors not flushed vhost: fix shadow update vhost: fix zero-copy server mode vhost: handle mbuf allocation failure vhost: make IOTLB cache name unique among processes vhost: prevent zero-copy with incompatible client mode vhost: remove unused variable - remove the security backport patches as they're already included upstream: * 0001-vhost-check-log-mmap-offset-and-size-overflow.patch * 0002-vhost-fix-vring-index-check.patch * 0003-vhost-crypto-validate-keys-lengths.patch * 0004-vhost-fix-translated-address-not-checked.patch * 0005-vhost-fix-potential-memory-space-leak.patch * 0006-vhost-fix-potential-fd-leak.patch- Add patches to fix vulnerability where malicious guest/container can cause resource leak resulting a Denial-of-Service, or memory corruption and crash, or information leak in vhost-user backend application (bsc#1171477, CVE-2020-10722, CVE-2020-10723, CVE-2020-10724, CVE-2020-10725, CVE-2020-10726). * 0001-vhost-check-log-mmap-offset-and-size-overflow.patch * 0002-vhost-fix-vring-index-check.patch * 0003-vhost-crypto-validate-keys-lengths.patch * 0004-vhost-fix-translated-address-not-checked.patch * 0005-vhost-fix-potential-memory-space-leak.patch * 0006-vhost-fix-potential-fd-leak.patch- Update to v19.11.1. For a list of changes, check: * https://doc.dpdk.org/guides/rel_notes/release_19_11.html#new-features - Removed patches no longer applying to the code base: * 0001-vhost-fix-possible-denial-of-service-on-SET_VRING_NU.patch * 0002-vhost-fix-possible-denial-of-service-by-leaking-FDs.patch * 0002-fix-cpu-compatibility.patch - Rebased patches: * 0001-fix-cpu-compatibility.patch- Change constraint to ssse3 to fix build issues on x86_64 and i586- Add version to the PMD driver directory to avoid loading previous version drivers (bsc#1157179). - Update to 18.11.3 (bsc#1156146). For a list of fixes check: * https://doc.dpdk.org/guides-18.11/rel_notes/release_18_11.html#fixes - Add patches to fix vulnerability where malicious container can trigger a denial of service (CVE-2019-14818, bsc#1156146) * 0001-vhost-fix-possible-denial-of-service-on-SET_VRING_NU.patch * 0002-vhost-fix-possible-denial-of-service-by-leaking-FDs.patch - Removed patrches already included upstream: * dpdk-fix-implicit-fallthrough-warning.patch- Changed to multibuild (bsc#1151455). - Added dpdk-fix-implicit-fallthrough-warning.patch to address build error with recent kernels (bsc#1144704).- Minor Update to 18.11.2 * List of fixes can be found in https://doc.dpdk.org/guides-18.11/rel_notes/release_18_11.html#fixes- Add missing libmnl-devel- remove -Wno-error=array-bounds as its no longer needed - disable i586 build because lack of sse support- Add 0002-fix-cpu-compatibility.patch to address issue with older CPUs (bsc#1125961, bsc#1099474) [+ 0002-fix-cpu-compatibility.patch]- Update to 18.11; some of the changes are(fate#325916, fate#325951 fate#326025, fate#326992, bsc#1134968, jira#SLE-4715) : * Added support for using externally allocated memory in DPDK. * Added check for ensuring allocated memory is addressable by devices. * Updated the C11 memory model version of the ring library. * Added NXP CAAM JR PMD. * Added support for GEN3 devices to Intel QAT driver. * Added Distributed Software Eventdev PMD. * Updated KNI kernel module, rte_kni library, and KNI sample application. * Add a new sample application for vDPA. * Updated mlx5 driver. * * Improved security of PMD to prevent the NIC from getting stuck when the application misbehaves. * * Reworked flow engine to supported e-switch flow rules (transfer attribute). * * Added support for header re-write(L2-L4), VXLAN encap/decap, count, match on TCP flags and multiple flow groups with e-switch flow rules. * * Added support for match on metadata, VXLAN and MPLS encap/decap with flow rules. * * Added support for RTE_ETH_DEV_CLOSE_REMOVE flag to provide better support for representors. * * Added support for meson build. * * Fixed build issue with PPC. * * Added support for BlueField VF. * * Added support for externally allocated static memory for DMA. all the changes can be viwed in http://doc.dpdk.org/guides/rel_notes/release_18_11.html [- 0001-enic-fix-Type-punning-and-strict-aliasing-warning.patch]- Enable missed MLX PMDs for SLE12SP4 (bsc#1112307)- Fixed a problem with ABI compatibility; API/ABI compatibility is guaranteed by DPDK upstream community across subsequent bug-fix releases. However, the .spec file broke it by defining the wrong version which included also the bug-fix release number. - Fixed a naming issue with library: did not reflect soname- Fixed a syntax error affecting csh environment configuration(bsc#1102310)- Update to 18.02.2; some of the changes are: * Added function to allow releasing internal EAL resources on exit * Added igb, ixgbe and i40e ethernet driver to support RSS with flow API * Updated i40e driver to support PPPoE/PPPoL2TP * Added MAC loopback support for i40e * Added support of run time determination of number of queues per i40e VF * Updated mlx4/mlx5 driver * Added NVGRE and UDP tunnels support in Solarflare network PMD * Added AVF (Adaptive Virtual Function) net PMD * Added feature supports for live migration from vhost-net to vhost-user * Updated the AESNI-MB PMD * Updated the DPAA_SEC crypto driver to support rte_security * Added New eventdev Ordered Packet Distribution Library (OPDL) PMD * Added GRO support for VxLAN-tunneled packets - Removed 0002-dpdk-eal-ppc-rte_smp_mb.patch since incorporated upstream- Update to 18.02.1 - Restrict untrusted guest to misuse virtio to corrupt host application(ovs-dpdk) memory which can lead all VM to lose connectivity(CVE-2018-1059,bsc#1089638). Changes: * Add deprecation notice for rte_vhost_gpa_to_vva() * Patch vhost-net and vhost-scsi examples * Fixes checkpatch warnings * Take VIRTIO_RING_F_EVENT_IDX into account when ring size (Tiwei) * Fix next chuncks translation access rights in Rx paths (Tiwei) * vhost: fix indirect descriptors table translation size * vhost: check all range is mapped when translating GPAs * vhost: introduce safe API for GPA translation * vhost: ensure all range is mapped when translating QVAs * vhost: add support for non-contiguous indirect descs tables * vhost: handle virtually non-contiguous buffers in Tx * vhost: handle virtually non-contiguous buffers in Rx * vhost: handle virtually non-contiguous buffers in Rx-mrg * examples/vhost: move to safe GPA translation API * examples/vhost_scsi: move to safe GPA translation API * vhost/crypto: move to safe GPA translation API * vhost: deprecate unsafe GPA translation API- Enable MLX4/5 PMD only in Factory and >= SLES15 It needs rdma-core >= v16.- Removed 0002-kni-fix-build-on-SLE12-SP3.patch since no longer referenced in .spec files - Added 0002-dpdk-eal-ppc-rte_smp_mb.patch to fix an issue on ppc64le platforms with v18.02 - Updated to version 18.02; some of the changes include: * Added function to allow releasing internal EAL resources on exit * Added igb, ixgbe and i40e ethernet driver to support RSS with flow API * Updated i40e driver to support PPPoE/PPPoL2TP * Added MAC loopback support for i40e * Added support of run time determination of number of queues per i40e VF * Updated mlx5 driver * Updated mlx4 driver * Added NVGRE and UDP tunnels support in Solarflare network PMD * Added AVF (Adaptive Virtual Function) net PMD * Added feature supports for live migration from vhost-net to vhost-user * Updated the AESNI-MB PMD * Updated the DPAA_SEC crypto driver to support rte_security * Added Wireless Base Band Device (bbdev) abstraction * Added New eventdev Ordered Packet Distribution Library (OPDL) PMD * Added new pipeline use case for dpdk-test-eventdev application * Updated Eventdev sample application to support event devices based on capability * Added Rawdev, a generic device support library * Added new multi-process communication channel * Added GRO support for VxLAN-tunneled packets * Increased default Rx and Tx ring size in sample applications * Added new DPDK build system using the tools “meson” and “ninja” [EXPERIMENTAL]- The vm_power example does not work for ppc64le since it uses the IXGBE PMD driver which is not available for that platform(bsc#1082154): * Disable CONFIG_RTE_LIBRTE_POWER for the sample application; * Disable CONFIG_RTE_LIBRTE_IXGBE_PMD for the actual PMD driver;- Upgraded to latest stable release 17.11.1 (LTS): some of the fixes include: * location changes of the GPL and LGPL licenses; * net/mlx4: - fix drop flow resources leak * net/bnxt: - double increment of idx during Tx ring alloc - group info usage - check for ether type - size of Tx ring in HW - number of pools for RSS - return code in MAC address set - link speed setting with autoneg off * net/nfp: - MTU settings - jumbo settings - CRC strip check behaviour * net/sfc: - multicast address list copy memory leak - DMA memory leak after kvarg processing failure - fix label name to be consistent * net/i40e: - VLAN offload setting issue - FDIR input set conflict - FDIR rule confiliction issue - setting MAC address of VF - flow director Rx resource defect - warn when writing global registers - multiple driver support - interrupt conflict with multi-driver - Rx interrupt - check multi-driver option parsing - flow director filter * net/qede: - enable LRO over tunnels - reject config with no Rx queue - check tunnel L3 header - tunnel header size in Tx BD configuration - VF LRO tunnel configuration * net/mlx5: - Tx checksum offloads - un-supported RSS hash fields use - device operation type - pedantic compilation - fix pedantic compilation - flow item validation - flow RSS configuration - UAR remapping on non configured queues - secondary process verification - port stop by verify flows are still present - flow priority on queue action- Enable(disabled by default) MLX4 and MLX5 pmd(fate#322609)- Upgraded to latest major 17.11(fate#322609); some of the fixes include: * Extended port_id range from uint8_t to uint16_t * Added a new driver for Marvell Armada 7k/8k devices * Updated mlx4 driver * Updated mlx5 driver * Added SoftNIC PMD * Added support for NXP DPAA Devices * Updated support for Cavium OCTEONTX Device * Added PF support to the Netronome NFP PMD * Updated bnxt PMD * Added bus agnostic functions to cryptodev for PMD initialization * Updated QAT crypto PMD * Updated the AESNI MB PMD * Updated the OpenSSL PMD * Added NXP DPAA SEC crypto PMD * Add new benchmarking mode to dpdk-test-crypto-perf application * Added IOMMU support to libvhost-user * Added the Generic Segmentation Offload Library * Added the Flow Classification Library - Removed 0002-kni-fix-build-on-SLE12-SP3.patch since patch merged upstream and available in 17.11- Added missing supported broadcom chipset family Broadcom NetXtreme II BCM57810- Upgraded to latest stable 17.08.1; some of the fixes include: * net/qede: disable per-VF Tx switching feature * revert "net/virtio: flush Rx queues on start" * various fixes for mlx5 PMD drivers * various fixes for bnxt PMD drivers * various fixes for i40e PMD drivers * various fixes for crypto PMD drivers * testpmd: fix for non-consecutive ports * ethdev: fix ABI version- Add missing libelf-devel dependency- Updated to 17.08(bsc#1050250, bsc#1046598, fate#322913, fate#322608) Some of the new features are listed below: * Increase minimum x86 ISA version to SSE4.2 * Added Fail-Safe PMD * Added support for generic flow API (rte_flow) on igb NICs * Added support for generic flow API (rte_flow) on enic * Added support for Chelsio T6 family of adapters * Added latency and performance improvements for cxgbe * Updated mlx5 driver * Added NXP DPAA2 Eventdev PMD * Added dpdk-test-eventdev test application * from 17.05: * Added mbuf raw free API * Added free Tx mbuf on demand API * Added VFIO hotplug support * Added PowerPC support for i40e and its vector PMD * Added VF max bandwidth setting in i40e * Added LiquidIO network PMD * Added support for NXP DPAA2 Network PMD * Added support for NXP DPAA2 - FSLMC bus * Added support for the Wind River Systems AVP PMD * Added vmxnet3 version 3 support * Added MTU feature support to Virtio and Vhost * Added event driven programming model library (rte_eventdev) * Added Software Eventdev PMD * Added Cavium OCTEONTX Eventdev PMD * Added NXP DPAA2 SEC crypto PMD * from 17.02: * Added generic EAL API for I/O device memory read/write operations * Added VF Daemon (VFD) for i40e. - EXPERIMENTAL * Added generic flow API (rte_flow) * Added APIs for MACsec offload support to the ixgbe PMD * Added Solarflare libefx-based network PMD. * Added support for Mellanox ConnectX-5 adapters (mlx5) * Added ARMv8 crypto PMD * Added crypto performance test application * more details can be found in http://dpdk.org/doc/guides/rel_notes/release_17_08.html http://dpdk.org/doc/guides/rel_notes/release_17_05.html http://dpdk.org/doc/guides/rel_notes/release_17_02.html [-0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch - 0003-kni-define-HAVE_TRANS_START_HELPER-for-SLES12SP3.patch - 0004-net-thunderx-sync-mailbox-definitions-with-Linux-PF-.patch - 0005-kni-fix-build-with-gcc-7.1.patch - 0006-kni-fix-ethtool-build-with-kernel-4.11.patch - 0007-igb_uio-switch-to-new-irq-function-for-MSI-X.patch] - Use updated patch to enable HAVE_TRANS_START_HELPER for SLE12SP3(bsc#1031705). [+ 0002-kni-fix-build-on-SLE12-SP3.patch]- Enabled CONFIG_RTE_MAJOR_ABI: libs SONAME equal the DPDK release version- Split libs into a subpackage to provide multiple installable versions on same sytem- Do not use obsolete pci_enable_msix for() kernel > 4.8 [+0006-kni-fix-ethtool-build-with-kernel-4.11.patch, +0007-igb_uio-switch-to-new-irq-function-for-MSI-X.patch]- Updated to 16.11.2 which provide bug fixes as below(fate#321541): * mbuf: fix missing includes in exported header * eal: fix debug macro redefinition * net/nfp: fix packet/data length conversion * net/i40e: fix setup when bulk is disabled * pci: fix device registration on FreeBSD * net/i40e: ensure vector mode is not used with QinQ * nic_uio: fix device binding at boot * net/bnx2x: fix transmit queue free threshold * net/vmxnet3: fix queue size changes * kni: fix build with kernel 4.11 * kni: fix possible memory leak * kni: fix crash caused by freeing mempool * net/i40e: fix allocation check * net/virtio: fix crash when closing twice * net/ixgbevf: set xstats id values * net/i40e: fix hash input set on X722 * eal/linux: fix build with glibc 2.25 * net/i40e: fix incorrect packet index reference * net/thunderx: fix 32-bit build * net/thunderx: fix build on FreeBSD * net/thunderx: fix deadlock in Rx path * net/ixgbe: fix setting MTU on stopped device * vfio: fix secondary process start * net/virtio-user: fix address on 32-bit system * net/virtio: fix MSI-X for modern devices * net/virtio: fix link status always down * net/ixgbe: fix multi-queue mode check in SRIOV mode * net/i40e/base: fix potential out of bound array access * vhost: fix false sharing * net/thunderx: fix stats access out of bounds * net/virtio: disable LSC interrupt if MSIX not enabled * net/i40e: fix mbuf alloc failed counter * net: fix stripped VLAN flag for offload emulation * vfio: fix disabling INTx * net/igb: fix VF MAC address setting * net/igb: fix VF MAC address setting * net/ixgbe: fix VF Rx mode for allmulticast disabled * net/bonding: fix updating slave link status * net/virtio-user: fix overflow * net/i40e: fix TC bitmap of VEB * net/ixgbe/base: fix build error * net/ixgbe: fix Rx queue blocking issue * net/ixgbe: fix all queues drop setting of DCB * net/ixgbe: fix TC bandwidth setting more details can be found in http://dpdk.org/ml/archives/stable/2017-May/001809.html [- 0005-kni-fix-build-with-kernel-4.11.patch] - use default gcc which is now gcc7 (bsc#1042372) [+0005-kni-fix-build-with-gcc-7.1.patch]- Add upstream patch to fix building against linux kernel 4.11 [+0005-kni-fix-build-with-kernel-4.11.patch]- sync mailbox definitions with Linux PF driver(bsc#1035993) [+0004-net-thunderx-sync-mailbox-definitions-with-Linux-PF-.patch]- Enable HAVE_TRANS_START_HELPER for SLE12SP3(bsc#1031705). [+0003-kni-define-HAVE_TRANS_START_HELPER-for-SLES12SP3.patch]- Fix dpdk KMP build fails(bsc#1031750) - enable igb_uio kernel module(fate#322394) - update kernel version for SLES12SP3 4.4.59 for bsc#1031705 [*0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch]- Enable HAVE_VF_VLAN_PROTO for SLE12SP3(bsc#1031705). [+0002-kni-define-HAVE_VF_VLAN_PROTO-for-SLES12SP3.patch]- Disable dpdk-kmp package for ix86.- Upgrade to LTS release of 16.11 which contains fixes below(fate#321541): * app/test: fix symmetric session free in crypto perf tests * app/testpmd: fix check for invalid ports * app/testpmd: fix static build link ordering * crypto/aesni_gcm: fix IV size in capabilities * crypto/aesni_gcm: fix J0 padding bytes * crypto/aesni_mb: fix incorrect crypto session * crypto/openssl: fix extra bytes written at end of data * crypto/openssl: fix indentation in guide * crypto/qat: fix IV size in capabilities * crypto/qat: fix to avoid buffer overwrite in OOP case * cryptodev: fix crash on null dereference * cryptodev: fix loop in device query * devargs: reset driver name pointer on parsing failure * drivers/crypto: fix different auth/cipher keys * ethdev: check maximum number of queues for statistics * ethdev: fix extended statistics name index * ethdev: fix port data mismatched in multiple process model * ethdev: fix port lookup if none * ethdev: remove invalid function from version map * examples/ethtool: fix driver information * examples/ethtool: fix querying non-PCI devices * examples/ip_pipeline: fix coremask limitation * examples/ip_pipeline: fix parsing of pass-through pipeline * examples/l2fwd-crypto: fix overflow * examples/vhost: fix calculation of mbuf count * examples/vhost: fix lcore initialization * mempool: fix API documentation * mempool: fix stack handler dequeue * net/af_packet: fix fd use after free * net/bnx2x: fix Rx mode configuration * net/cxgbe/base: initialize variable before reading EEPROM * net/cxgbe: fix parenthesis on bitwise operation * net/ena: fix setting host attributes * net/enic: fix hardcoding of some flow director masks * net/enic: fix memory leak with oversized Tx packets * net/enic: remove unnecessary function parameter attributes * net/i40e: enable auto link update for 25G * net/i40e: fix Rx checksum flag * net/i40e: fix TC bandwidth definition * net/i40e: fix VF reset flow * net/i40e: fix checksum flag in x86 vector Rx * net/i40e: fix crash in close * net/i40e: fix deletion of all macvlan filters * net/i40e: fix ethertype filter on X722 * net/i40e: fix link update delay * net/i40e: fix logging for Tx free threshold check * net/i40e: fix segment number in reassemble process * net/i40e: fix wrong return value when handling PF message * net/i40e: fix xstats value mapping * net/i40evf: fix casting between structs * net/i40evf: fix reporting of imissed packets * net/ixgbe: fix blocked interrupts * net/ixgbe: fix received packets number for ARM * net/ixgbe: fix received packets number for ARM NEON * net/ixgbevf: fix max packet length * net/mlx5: fix RSS hash result for flows * net/mlx5: fix Rx packet validation and type * net/mlx5: fix Tx doorbell * net/mlx5: fix endianness in Tx completion queue * net/mlx5: fix inconsistent link status * net/mlx5: fix leak when starvation occurs * net/mlx5: fix link status query * net/mlx5: fix memory leak when parsing device params * net/mlx5: fix missing inline attributes * net/mlx5: fix updating total length of multi-packet send * net/mlx: fix IPv4 and IPv6 packet type * net/nfp: fix VLAN offload flags check * net/nfp: fix typo in Tx offload capabilities * net/pcap: fix timestamps in output pcap file * net/qede/base: fix FreeBSD build * net/qede: add vendor/device id info * net/qede: fix PF fastpath status block index * net/qede: fix filtering code * net/qede: fix function declaration * net/qede: fix per queue statisitics * net/qede: fix resource leak * net/vhost: fix socket file deleted on stop * net/vhost: fix unix socket not removed as closing * net/virtio-user: fix not properly reset device * net/virtio-user: fix wrongly get/set features * net/virtio: fix build without virtio-user * net/virtio: fix crash when number of virtio devices > 1 * net/virtio: fix multiple process support * net/virtio: fix performance regression due to TSO * net/virtio: fix rewriting LSC flag * net/virtio: fix wrong Rx/Tx method for secondary process * net/virtio: optimize header reset on any layout * net/virtio: store IO port info locally * net/virtio: store PCI operators pointer locally * net/vmxnet3: fix Rx deadlock * pci: fix check of mknod * pmdinfogen: fix endianness with cross-compilation * pmdinfogen: fix null dereference * sched: fix crash when freeing port * usertools: fix active interface detection when binding * vdev: fix detaching with alias * vfio: fix file descriptor leak in multi-process * vhost: allow many vhost-user ports * vhost: do not GSO when no header is present * vhost: fix dead loop in enqueue path * vhost: fix guest/host physical address mapping * vhost: fix long stall of negotiation * vhost: fix memory leak- Fix broken dpdk-pmd/* soft links(bsc#1026804).- Do not disable cryptodev as EXPREMENTAL tag has been removed. - Remove CONFIG_RTE_LIBRTE_MBUF_OFFLOAD as cryptodev is not depending on it anymore and its removed from the upstream.- Enable rte_kni kernel module for dpdk(fate#322394). [+preamble] - Build dpdk-thunderx only for aarch64- Update to version 16.11(fate#321541). Some of the new features are listed below: * Added software parser for packet type. * Improved offloads support in mbuf. * Added vhost-user dequeue zero copy support. * Added vhost-user indirect descriptors support. * Added vhost PMD xstats. * Added virtio NEON support for ARM. * Updated the ixgbe base driver. * Added APIs for VF management to the ixgbe PMD. * Updated the enic driver. * Added openssl PMD. * Added support for new gcc -march option. Detailed changes can be obtained from http://dpdk.org/doc/guides/rel_notes/release_16_11.html - Resolved fixes in the updated versions are : * enic: Fixed several flow director issues. * enic: Fixed inadvertent setting of L4 checksum ptype on ICMP packets. * enic: Fixed high driver overhead when servicing Rx queues beyond the first.- Added gcc-6 as default compiler for CRC/mtune & other optimizations. - Fix possible parallel installation of dpdk subpackages.- Add pre_checkin.sh to generate the dpdk-thunderx.spec file- Fixed paths using %{name} to have the dpdk.spec aligned with dpdk-thunderx.spec- Added back in all the architectures to keep .spec files aligned * Driving thunderx platform architectural dependency via the ExclusiveArch tag- Added support to build code for Thunderx platform(fate#321960). - Introduced new dpdk-thunderx.spec file: * Removed architectures not supporting Thunderx platform (e.g. x86) * Added dependency on gcc v5.0 for armv8a-crc- Update to version 16.07.2. Some of the fixes are listed below: * ethdev: prevent duplicate event callback * hash: fix bucket size usage * hash: fix unlimited cuckoo path * lpm: fix freeing memory * lpm: fix freeing unused sub-table on rule delete * mempool: fix leak if populate fails * mempool: fix search of maximum contiguous pages * pci: fix probing error if no driver found * net/bnx2x: fix maximum PF queues * net/bnxt: fix bit shift size * net/bnxt: fix crash when closing * net/enic: fix Rx queue index when not using Rx scatter * net/enic: fix crash on MTU update or Rx queue reconfigure * net/enic: fix crash with removed flow director filters * net/enic: fix max packet length check * net/enic: fix multi-queue Rx performance * net/enic: revert truncated packets counter fix * net/fm10k: fix VF Tx queue initialization * net/i40e: fix Rx hang when disable LLDP * net/ixgbe: fix VF registers * net/thunderx: fix Tx checksum handling * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides-16.07/rel_notes/release_16_07.html#id2]- Update to version 16.07.1. Some of the fixes are listed below: * contigmem: zero all pages during mmap * crypto/null: fix key size increment value * hash: fix false zero signature key hit lookup * mem: fix crash on hugepage mapping error * mbuf: fix error handling on pool creation * net/e1000: fix returned number of available Rx descriptors * net/enic: fix freeing memory for descriptor ring * net/i40e: fix dropping packets with ethertype 0x88A8 * net/i40e: fix mbuf leak during Rx queue release * net/i40e: fix null pointer dereferences when using VMDq+RSS * net/ixgbe/base: fix possible corruption of shadow RAM * net/ixgbe: fix VF reset to apply to correct VF * net/virtio_user: fix error management during init * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides-16.07/rel_notes/release_16_07.html#fixes-in-16-07-01-stable-release]- Drop code for generating our own linker script. * Commit 948fd64befc3 (" mk: replace the combined library with a linker script") added upstream support for building and installing a linker script so we drop our code from the spec file which generated a much larger and possibly broken linker script resulting to linking issues (boo#1002534)- Update to version 16.07. Some of the new features are listed below: * Removed the mempool cache memory if caching is not being used. * Added mempool external cache for non-EAL thread. * Changed the memory allocation scheme in the mempool library. * Added a new driver for Broadcom NetXtreme-C devices. * Added a new driver for ThunderX nicvf devices. * Added mailbox interrupt support for ixgbe and igb VFs. * Updated the ixgbe base driver. * Updated the i40e base driver. * Updated the enic driver. * Updated the mlx5 driver. * Added support for virtio on IBM POWER8. * Added support for Virtio in containers. * Added vhost-user client mode. * Added NSH packet recognition in i40e. * Added AES-CTR support to AESNI MB PMD. * Added AES counter mode support for Intel QuickAssist devices. * Added KASUMI SW PMD. * Added multi-writer support for RTE Hash with Intel TSX. * Improved IP Pipeline Application. * Added keepalive enhancements. * Added packet capture framework. * Added floating VEB support for i40e PF driver. * Added support for live migration of a VM with SRIOV VF. * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides/rel_notes/release_16_07.html - http://dpdk.org/browse/dpdk/tree/doc/guides/rel_notes/release_16_07.rst - Or the doc/guides/rel_notes/release_16_07.rst file in the released tarball.] - Removed patches that are already avilable in dpdk-16.07 [ -0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch - 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch - 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch - 0005-d293dac-vhost-claim-support-of-guest-announce.patch - 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch - 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch - 0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch - 0009-bonding-copy-entire-config-structure-in-mode-4.patch - 0010-bonding-fix-active-slaves-with-no-primary.patch - 0011-bonding-do-not-ignore-multicast-in-mode-4.patch - 0012-bonding-do-not-activate-slave-twice.patch - 0013-bonding-fix-crash-when-no-slave-device.patch - 0014-bonding-fix-detach-of-bonded-device.patch - 0015-bonding-fix-detach-of-slave-devices.patch - 0016-eal-linux-support-built-in-kernel-modules.patch - 0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch - 0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch - 0019-i40e-base-fix-driver-load-failure.patch - 0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch - 0021-i40e-fix-inverted-check-for-no-refcount.patch - 0022-i40e-fix-overflow.patch - 0023-i40e-fix-VLAN-filtering.patch - 0024-mempool-fix-leak-when-creation-fails.patch - 0025-pcap-fix-captured-frame-length.patch - 0026-port-fix-crash-for-ethdev-writer-nodrop.patch - 0027-port-fix-crash-for-ring-writer-nodrop.patch - 0028-tools-fix-unbinding-failure-handling.patch - 0029-tools-support-Python-3-in-bind-script.patch - 0030-tools-support-binding-to-built-in-kernel-modules.patch - 0031-vhost-fix-leak-of-fds-and-mmaps.patch - 0032-virtio-fix-crash-in-statistics-functions.patch - 0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch - 0034-virtio-fix-restart.patch - 0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch - 0036-examples-fix-build-dependencies.patch - 0037-examples-ethtool-fix-build.patch - 0099-mk-fix-gcc-5-version-on-suse.patch - 0100-kni-fix-build-with-gcc-6.patch - 0101-ixgbe-fix-uninitialized-warning.patch - 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch - 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch - 0104-igb-fix-constant-sign-in-left-shift-operator.patch - 0105-e1000-fix-missing-link-interrupt-check-brackets.patch - 0106-app-test-fix-missing-brackets.patch - 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch ] - Created soft link for dpdk_proc_info and dpdk_nic_bind(from dpdk-procinfo, dpdk-devbind) to keep compatibility. - Added a new binary dpdk-pdump dpdk-procinfo- Add _constraints file to force build dpdk with sse3 enabled x86 machine(bsc#993462). - Enable compilation for ppc64le with the help of Rüdiger(ro@suse.de). - Enable example package for aarch64 using Rüdiger(ro@suse.de) changes. - Do not enable PMD_RING on ppc64le (missing rte_eth_from_rings). - Disable examples that need LPM which is disabled on non-x86. [+0036-examples-fix-build-dependencies.patch, +0037-examples-ethtool-fix-build.patch, +_constraints]- Added support for aarch64 compilation. [+0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch] - Disabled aarch64 dpdk-examples package for the time being as it contains lots of Intel specific code. - Added proper "Group" field for the subpackages .- Add upstream patches to fix building with gcc >= 6 * 0100-kni-fix-build-with-gcc-6.patch * 0101-ixgbe-fix-uninitialized-warning.patch * 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch * 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch * 0104-igb-fix-constant-sign-in-left-shift-operator.patch * 0105-e1000-fix-missing-link-interrupt-check-brackets.patch * 0106-app-test-fix-missing-brackets.patch * 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch- Removed unwanted files(bsc#984437).- Added missing GPL-2.0 and LGPL-2.1 licenses.- Update tarball URL.- Applied all the fixes recommended by upstream for v2.2 stable release(bsc#981996). [+0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch, +0009-bonding-copy-entire-config-structure-in-mode-4.patch, +0010-bonding-fix-active-slaves-with-no-primary.patch, +0011-bonding-do-not-ignore-multicast-in-mode-4.patch, +0012-bonding-do-not-activate-slave-twice.patch, +0013-bonding-fix-crash-when-no-slave-device.patch, +0014-bonding-fix-detach-of-bonded-device.patch, +0015-bonding-fix-detach-of-slave-devices.patch, +0016-eal-linux-support-built-in-kernel-modules.patch, +0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch, +0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch, +0019-i40e-base-fix-driver-load-failure.patch, +0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch, +0021-i40e-fix-inverted-check-for-no-refcount.patch, +0022-i40e-fix-overflow.patch, +0023-i40e-fix-VLAN-filtering.patch, +0024-mempool-fix-leak-when-creation-fails.patch, +0025-pcap-fix-captured-frame-length.patch, +0026-port-fix-crash-for-ethdev-writer-nodrop.patch, +0027-port-fix-crash-for-ring-writer-nodrop.patch, +0028-tools-fix-unbinding-failure-handling.patch, +0029-tools-support-Python-3-in-bind-script.patch, +0030-tools-support-binding-to-built-in-kernel-modules.patch, +0031-vhost-fix-leak-of-fds-and-mmaps.patch, +0032-virtio-fix-crash-in-statistics-functions.patch, +0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch, +0034-virtio-fix-restart.patch]- Use fdupes to manage duplicate files- Create DPDK packages for 32 bit x86(bsc#977639).- Add upstream patch for the ixgbe driver * 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch: Fix VLAN filtering logic by adding the missing brackets in the 'if' statement.- DPDK is most common vhost-user backend, Adding upstream patches to help qemu vm live migration with vhost-user (fate#320713). [+ 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch + 0005-d293dac-vhost-claim-support-of-guest-announce.patch + 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch]- Move the combined library back to the devel package (bsc#975123) Ever since we dropped the CONFIG_RTE_BUILD_COMBINE_LIBS=y option, the libdpdk.so is no longer a shared object but rather a linker script generated by the spec file. This means that it is only used during linking and the linker will add the individual DPDK libraries to the DT_NEEDED tag on the dependent binaries.- Fix shared linking against libdpdk.so (bsc#975123) * Restore the 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch patch which sets the correct dependencies for the shared libraries. * Drop CONFIG_RTE_BUILD_COMBINE_LIBS since a custom linker script is used to create and install a more lightweight version of libdpdk.so. * Include the combined libdpdk.so library to the regular package since it is also necessary during runtime.- Removed unwnated patch and reformated patch file names(bsc#974903). [- dpdk-2.2-dtneeded.patch, - dpdk-2.2-examples.patch, - enic-pun-fix.patch, - dpdk-2.2-warningflags.patch, + 0001-enic-fix-Type-punning-and-strict-aliasing-warning.patch + 0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch] - Added CONFIG_RTE_BUILD_COMBINE_LIBS flags to club all all *.so into one library- Intial version 2.2.0(fate#319169)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDrFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~r     rr19.11.1019.11.10-150500.5.14.319.11.10-150500.5.14.3      !!!!!!"""""""""""""""""""###$$%%&&&%'''''''%($)))))$*****$+++,,,---../01110222////////////////////.3333.44444555666666777777777777788899:::9;;;;;;;9<===>>>????????@@@AAABBBBBCCCCCCCDDDEEEEEEFFFFFFFEEEEEEEEEEEGGGHHHdpdk_example_basicfwddpdk_example_bbdevdpdk_example_bond_appdpdk_example_cmdlinedpdk_example_eventdev_pipelinedpdk_example_fips_validationdpdk_example_flowdpdk_example_flow_classifydpdk_example_helloworlddpdk_example_ip_pipelinedpdk_example_ipsec-secgwdpdk_example_ipv4_multicastdpdk_example_knidpdk_example_l2fwddpdk_example_l2fwd-cryptodpdk_example_l2fwd-eventdpdk_example_l2fwd-jobstatsdpdk_example_l2fwd-keepalivedpdk_example_l3fwddpdk_example_l3fwd-acldpdk_example_l3fwd-powerdpdk_example_link_status_interruptdpdk_example_ntb_fwddpdk_example_packet_orderingdpdk_example_qos_meterdpdk_example_qos_scheddpdk_example_rxtx_callbacksdpdk_example_service_coresdpdk_example_tep_terminationdpdk_example_timerdpdk_example_vdpadpdk_example_vhost-blkdpdk_example_vhost-cryptodpdk_example_vhost-switchdpdk_example_vm_power_mgrdpdk_example_vmdq_appdpdk_example_vmdq_dcb_appexamplesMakefilebbdev_appMakefilemain.cmeson.buildbondMakefilemain.cmain.hmeson.buildbpfREADMEdummy.ct1.ct2.ct3.ccmdlineMakefilecommands.ccommands.hmain.cmeson.buildparse_obj_list.cparse_obj_list.hdistributorMakefilemain.cmeson.buildethtoolMakefileethtool-appMakefileethapp.cethapp.hmain.clibMakefilerte_ethtool.crte_ethtool.hmeson.buildeventdev_pipelineMakefilemain.cmeson.buildpipeline_common.hpipeline_worker_generic.cpipeline_worker_tx.cfips_validationMakefilefips_dev_self_test.cfips_dev_self_test.hfips_validation.cfips_validation.hfips_validation_aes.cfips_validation_ccm.cfips_validation_cmac.cfips_validation_gcm.cfips_validation_hmac.cfips_validation_sha.cfips_validation_tdes.cmain.cmeson.buildflow_classifyMakefileflow_classify.cipv4_rules_file.txtmeson.buildflow_filteringMakefileflow_blocks.cmain.cmeson.buildhelloworldMakefilemain.cmeson.buildioatMakefileioatfwd.cmeson.buildip_fragmentationMakefilemain.cmeson.buildip_pipelineMakefileaction.caction.hcli.ccli.hcommon.hconn.cconn.hcryptodev.ccryptodev.hexamplesfirewall.cliflow.cliflow_crypto.clikni.clil2fwd.cliroute.cliroute_ecmp.clirss.clitap.clikni.ckni.hlink.clink.hmain.cmempool.cmempool.hmeson.buildparser.cparser.hpipeline.cpipeline.hswq.cswq.htap.ctap.hthread.cthread.htmgr.ctmgr.hip_reassemblyMakefilemain.cmeson.buildipsec-secgwMakefileep0.cfgep1.cfgesp.cesp.hipip.hipsec-secgw.cipsec.cipsec.hipsec_process.cmeson.buildparser.cparser.hrt.csa.csp4.csp6.ctestbypass_defs.shcommon_defs.shcommon_defs_secgw.shdata_rxtx.shlinux_test4.shlinux_test6.shpkttest.pypkttest.shrun_test.shtrs_3descbc_sha1_common_defs.shtrs_3descbc_sha1_defs.shtrs_3descbc_sha1_esn_atom_defs.shtrs_3descbc_sha1_esn_defs.shtrs_3descbc_sha1_old_defs.shtrs_aescbc_sha1_common_defs.shtrs_aescbc_sha1_defs.shtrs_aescbc_sha1_esn_atom_defs.shtrs_aescbc_sha1_esn_defs.shtrs_aescbc_sha1_old_defs.shtrs_aesctr_sha1_common_defs.shtrs_aesctr_sha1_defs.shtrs_aesctr_sha1_esn_atom_defs.shtrs_aesctr_sha1_esn_defs.shtrs_aesctr_sha1_old_defs.shtrs_aesgcm_common_defs.shtrs_aesgcm_defs.shtrs_aesgcm_esn_atom_defs.shtrs_aesgcm_esn_defs.shtrs_aesgcm_inline_crypto_defs.shtrs_aesgcm_inline_crypto_fallback_defs.shtrs_aesgcm_inline_crypto_old_defs.shtrs_aesgcm_old_defs.shtrs_ipv6opts.pytun_3descbc_sha1_common_defs.shtun_3descbc_sha1_defs.shtun_3descbc_sha1_esn_atom_defs.shtun_3descbc_sha1_esn_defs.shtun_3descbc_sha1_old_defs.shtun_aescbc_sha1_common_defs.shtun_aescbc_sha1_defs.shtun_aescbc_sha1_esn_atom_defs.shtun_aescbc_sha1_esn_defs.shtun_aescbc_sha1_old_defs.shtun_aesctr_sha1_common_defs.shtun_aesctr_sha1_defs.shtun_aesctr_sha1_esn_atom_defs.shtun_aesctr_sha1_esn_defs.shtun_aesctr_sha1_old_defs.shtun_aesgcm_common_defs.shtun_aesgcm_defs.shtun_aesgcm_esn_atom_defs.shtun_aesgcm_esn_defs.shtun_aesgcm_inline_crypto_defs.shtun_aesgcm_inline_crypto_fallback_defs.shtun_aesgcm_inline_crypto_old_defs.shtun_aesgcm_old_defs.shtun_null_header_reconstruct.pyipv4_multicastMakefilemain.cmeson.buildkniMakefilemain.cmeson.buildl2fwdl2fwd-catMakefilecat.ccat.hl2fwd-cat.cmeson.buildl2fwd-cryptoMakefilemain.cmeson.buildl2fwd-eventMakefilel2fwd_common.cl2fwd_common.hl2fwd_event.cl2fwd_event.hl2fwd_event_generic.cl2fwd_event_internal_port.cl2fwd_poll.cl2fwd_poll.hmain.cmeson.buildl2fwd-jobstatsMakefilemain.cmeson.buildl2fwd-keepaliveMakefileka-agentMakefilemain.cmain.cmeson.buildshm.cshm.hMakefilemain.cmeson.buildl3fwdl3fwd-aclMakefilemain.cmeson.buildl3fwd-powerMakefilemain.cmain.hmeson.buildperf_core.cperf_core.hMakefilel3fwd.hl3fwd_altivec.hl3fwd_common.hl3fwd_em.cl3fwd_em.hl3fwd_em_hlm.hl3fwd_em_hlm_neon.hl3fwd_em_hlm_sse.hl3fwd_em_sequential.hl3fwd_lpm.cl3fwd_lpm.hl3fwd_lpm_altivec.hl3fwd_lpm_neon.hl3fwd_lpm_sse.hl3fwd_neon.hl3fwd_sse.hmain.cmeson.buildlink_status_interruptMakefilemain.cmeson.buildmeson.buildmulti_processMakefileclient_server_mpMakefilemp_clientMakefileclient.cmeson.buildmp_serverMakefileargs.cargs.hinit.cinit.hmain.cmeson.buildsharedcommon.hhotplug_mpMakefilecommands.ccommands.hmain.cmeson.buildsimple_mpMakefilemain.cmeson.buildmp_commands.cmp_commands.hsymmetric_mpMakefilemain.cmeson.buildntbMakefilemeson.buildntb_fwd.cpacket_orderingMakefilemain.cmeson.buildperformance-threadMakefilecommonarcharm64ctx.cctx.hstack.hx86ctx.cctx.hstack.hcommon.mklthread.clthread.hlthread_api.hlthread_cond.clthread_cond.hlthread_diag.clthread_diag.hlthread_diag_api.hlthread_int.hlthread_mutex.clthread_mutex.hlthread_objcache.hlthread_pool.hlthread_queue.hlthread_sched.clthread_sched.hlthread_timer.hlthread_tls.clthread_tls.hl3fwd-threadMakefilemain.cmeson.buildtest.shpthread_shimMakefilemain.cmeson.buildpthread_shim.cpthread_shim.hptpclientMakefilemeson.buildptpclient.cqos_meterMakefilemain.cmain.hmeson.buildrte_policer.crte_policer.hqos_schedMakefileapp_thread.cargs.ccfg_file.ccfg_file.hcmdline.cinit.cmain.cmain.hmeson.buildprofile.cfgprofile_ov.cfgstats.crxtx_callbacksMakefilemain.cmeson.buildserver_node_efdMakefilenodeMakefilemeson.buildnode.cserverMakefileargs.cargs.hinit.cinit.hmain.cmeson.buildsharedcommon.hservice_coresMakefilemain.cmeson.buildskeletonMakefilebasicfwd.cmeson.buildtep_terminationMakefilemain.cmain.hmeson.buildvxlan.cvxlan.hvxlan_setup.cvxlan_setup.htimerMakefilemain.cmeson.buildvdpaMakefilemain.cmeson.buildvhostMakefilemain.cmain.hmeson.buildvirtio_net.cvhost_blkMakefileblk.cblk_spec.hmeson.buildvhost_blk.cvhost_blk.hvhost_blk_compat.cvhost_cryptoMakefilemain.cmeson.buildvm_power_managerMakefilechannel_manager.cchannel_manager.hchannel_monitor.cchannel_monitor.hguest_cliMakefilemain.cmeson.buildparse.cparse.hvm_power_cli_guest.cvm_power_cli_guest.hmain.cmeson.buildoob_monitor.hoob_monitor_nop.coob_monitor_x86.cparse.cparse.hpower_manager.cpower_manager.hvm_power_cli.cvm_power_cli.hvmdqMakefilemain.cmeson.buildvmdq_dcbMakefilemain.cmeson.build/usr/bin//usr/share/dpdk//usr/share/dpdk/examples//usr/share/dpdk/examples/bbdev_app//usr/share/dpdk/examples/bond//usr/share/dpdk/examples/bpf//usr/share/dpdk/examples/cmdline//usr/share/dpdk/examples/distributor//usr/share/dpdk/examples/ethtool//usr/share/dpdk/examples/ethtool/ethtool-app//usr/share/dpdk/examples/ethtool/lib//usr/share/dpdk/examples/eventdev_pipeline//usr/share/dpdk/examples/fips_validation//usr/share/dpdk/examples/flow_classify//usr/share/dpdk/examples/flow_filtering//usr/share/dpdk/examples/helloworld//usr/share/dpdk/examples/ioat//usr/share/dpdk/examples/ip_fragmentation//usr/share/dpdk/examples/ip_pipeline//usr/share/dpdk/examples/ip_pipeline/examples//usr/share/dpdk/examples/ip_reassembly//usr/share/dpdk/examples/ipsec-secgw//usr/share/dpdk/examples/ipsec-secgw/test//usr/share/dpdk/examples/ipv4_multicast//usr/share/dpdk/examples/kni//usr/share/dpdk/examples/l2fwd-cat//usr/share/dpdk/examples/l2fwd-crypto//usr/share/dpdk/examples/l2fwd-event//usr/share/dpdk/examples/l2fwd-jobstats//usr/share/dpdk/examples/l2fwd-keepalive//usr/share/dpdk/examples/l2fwd-keepalive/ka-agent//usr/share/dpdk/examples/l2fwd//usr/share/dpdk/examples/l3fwd-acl//usr/share/dpdk/examples/l3fwd-power//usr/share/dpdk/examples/l3fwd//usr/share/dpdk/examples/link_status_interrupt//usr/share/dpdk/examples/multi_process//usr/share/dpdk/examples/multi_process/client_server_mp//usr/share/dpdk/examples/multi_process/client_server_mp/mp_client//usr/share/dpdk/examples/multi_process/client_server_mp/mp_server//usr/share/dpdk/examples/multi_process/client_server_mp/shared//usr/share/dpdk/examples/multi_process/hotplug_mp//usr/share/dpdk/examples/multi_process/simple_mp//usr/share/dpdk/examples/multi_process/symmetric_mp//usr/share/dpdk/examples/ntb//usr/share/dpdk/examples/packet_ordering//usr/share/dpdk/examples/performance-thread//usr/share/dpdk/examples/performance-thread/common//usr/share/dpdk/examples/performance-thread/common/arch//usr/share/dpdk/examples/performance-thread/common/arch/arm64//usr/share/dpdk/examples/performance-thread/common/arch/x86//usr/share/dpdk/examples/performance-thread/l3fwd-thread//usr/share/dpdk/examples/performance-thread/pthread_shim//usr/share/dpdk/examples/ptpclient//usr/share/dpdk/examples/qos_meter//usr/share/dpdk/examples/qos_sched//usr/share/dpdk/examples/rxtx_callbacks//usr/share/dpdk/examples/server_node_efd//usr/share/dpdk/examples/server_node_efd/node//usr/share/dpdk/examples/server_node_efd/server//usr/share/dpdk/examples/server_node_efd/shared//usr/share/dpdk/examples/service_cores//usr/share/dpdk/examples/skeleton//usr/share/dpdk/examples/tep_termination//usr/share/dpdk/examples/timer//usr/share/dpdk/examples/vdpa//usr/share/dpdk/examples/vhost//usr/share/dpdk/examples/vhost_blk//usr/share/dpdk/examples/vhost_crypto//usr/share/dpdk/examples/vm_power_manager//usr/share/dpdk/examples/vm_power_manager/guest_cli//usr/share/dpdk/examples/vmdq//usr/share/dpdk/examples/vmdq_dcb/-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:35175/SUSE_SLE-15-SP5_Update/1ea53eabbdcf0695505684089f8937b2-dpdk.SUSE_SLE-15-SP5_Update:thunderxdrpmxz5aarch64-suse-linux  !"#$%&%'(&%'((&%&((((%'(((&((%'(&%&%'(&(%'((&%'(&(((%'((((((((((((&%'(&&%'((&%'(&%'(&%'(&%'(((((((((%&&&&&&&&&(((((((&((((((((((((%'(&%'&&(((((((&((((((%))))))*)))))))))))))))))))))))))*)))))))))))))))))))))))*%'(&%'(&%%'(((&%'(&%'(((((((((&%'(&%'%'((&(('(&%%'(&%'((&(('(((((((((((((((((&%'(&&%&%&%'(&%'(((((&%(%'(((&%'(&((%'(&%'&(%'(&%&%%%(((%((('(((((((((((((((((((%'(&)%'(&((%'&(%'((&((%'((((((((&&&(%'(&%&%'&(%'(((((&%(%'(&%'(&%'((&((((%'(&%'(&%'((&(%'((&(((%'(&%'((((%'(&(((((&(((((((((%'(&%'(&ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=5cee9cb1c0becc2ed20657c94e1809e3bbf541a1, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=aaff011125603a8c28ac277b0180b3520d2f06f0, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=d05af518f454ea4b3f4f7a6edece32abbd9680aa, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=1e53f0131be21c8b1f0d6763f647d9d4b234a48c, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=7f3c22a8984693f576782196d928313faad66b9e, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=cf412f2a3f9cc4902dc81ce8baaa556df05e14f7, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=929ede60307ee86d5c8e2306794271635ee95cbb, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=7705a510f9b70aa79d27a8d0cc8da2539df7471e, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=5f2f2b0c01bb4d3a9cc51263dc6977b6a8655a6e, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=22843d3b8e730de13f2adfe4491e1757c516cf4a, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=aedc73e0aa1c29240bf901554a385df4664fce5e, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=b154336a9e0e60f1ed32d03c6538c4b827a495f7, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=5d5657f196817ffee159566222fefb6188e6fe75, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=ef7c92f06726162407b1bb89e7fe5bde7fcf7e77, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=80b23d3f7b3e4e5de7724c08f7cea5b37b2b2345, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=a159c70672f42980f42558afbd4c07ae558174c3, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=a76679f90f9fc6f84394455f87b9a996f3117e75, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=ac1458b613ece54f292ce32d8dd77c82502bf1bf, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=17766f03cf581860b29f12f4d78ca511cb1f0560, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=94e2f78a44fb2bb10ec065b90a9c67713617e6e5, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=eac40455f13fb7f286929e15297cd796349f2b4f, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=f6bf67492958379b34c41682267504e89135c44a, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=664825a8df1bacfce29a5a8d4e55ed4f8f2694fe, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=9e84d6a133eafe7017961bf43afd184ba0c05044, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=757f8579131f811e1fc2cf7330c4915575700fb1, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=73931133b8306784020b4fc715799e61705a9fe6, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=50633aacb05f937dd3bf5a10e72287d804b64d5f, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=18266aa5bee9d942fd70a7d0629da6b927464981, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=2968ec52c83fe11f2ed8fbe35ac4da10e8569f4b, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=4e5f6a1290877cde5e5d828d8db916c2778dc922, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=428e66d2eaf5aec87981895f77f5aa0fe9de7e0f, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=a0bc92e8c4ac0816ff608c7155434b8a3ca54eb0, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=6089546000cac8371b26d1fdaa49013a77912beb, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=60d04890145976cf97c7239b9feb2aebffebaee8, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=b7a0e44f44d9bc8d760427bbc3676326e6fd2929, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=ed881f824fe868f6106a250d49d6460c3ff9988e, for GNU/Linux 3.7.0, strippedELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=27f02a0378aac48acb5f228b6a3a45f6b6218d61, for GNU/Linux 3.7.0, strippeddirectoryASCII textmakefile script, ASCII textC source, ASCII textBourne-Again shell script, ASCII text executablePython script, ASCII text executable )0;GTdi+BKZiv           R*R,RRRR)RR+RRRR*R,RLR RRRR)RR R+RKRRRR*R,R;RRRRR:R)RR+RRRRRRRRRRRR*RRRRR)RRRRRR*R,RRRRR)RR+RRRR*R,R2RRRR)R1RR+RRRRR*R,RRRSRRRRRR)RR+RRRRRRRRR,RNRRLR%RRSRRR*RRR6R7RCR5RRRBR)RRR+RKRRMR$RRRR*RQRPR,R2RRR(RR!RRRR RRRR'RR RR)R1RRROR+RRRRRRR,R2R*RRRRR)R1RR+RRRR*R,R2RR&R%RRRR)R1RR+RR$RRR*RRRRR)RRRRR*R,RRRR=RRRRR8RDR)RRRRRR*R,RRRR)RR+RRRR*R,RRRR)RR+RRRRRRRRRutf-8f0ca09826cff65479080e9007484ecdcbd3edbb588a11abb6724f5a5f2214425?7zXZ !t/2]"k%LIOO.C !}B1; W2})⿗d^-}t2^@>HEYM}'\>bK$XbFxfU5V?d >H'z lr'r@E NRW."Ax-  [TFn2S,'Mnr5lrE+PJ 'g]yqLr9"nmfF5zcЛ#n>x10ef9pWbHj^XL%W{$\r%1F7;{&:(?)WxJEaP^`YrC҇{0ʅ7`1lgTIv<-%~4 /4 _ʥ_r xˉ9<_4TDU\H\p)h%#4 F~lvP~ƽ ήo88֕PT ʕO?m??Wwp/%֨ O5*}iDw(F"](3]&,$o %I{Y@ vӸ4\{jn0-ڹfÞ) xJw0Hc.%/ :'lK~Yv$.E>[X] TI UP,Vϱ{֮wz-mzD2VKsPut{CoYRuIZY #ߟ9C#kcʚmL ӫ0^P9{hزtLWwTf5Ɔj Gz^j9 yF~ԼhEnoѥDI-PV0,p]sGpw YS&ir~ˍ$qpo4đ]A@Ā{QP]Zp>~/,*e}Glx"Bq4Y_)dk|Ъ/pC%G0VO,~xʳ'Xk\(%QzK-gDƗtFluv arzS},˸@:S,ܱ-ۭcj; K)KX<2A5g"z橳3U|h|^ +6}[LnW?ݔn*-m\w4Á:&8cR󂱎)oƴdjh98<+ nIo|{aH΃_^+?Pce9lw;pNRm oFT7#)9N2LoB>xY]ڌ|j6cyCJ^KuZM^S~2/>n#Sh62}A8F> {ӁC}ݜ6V"a&PV.1va.VO;g*WzAI٠h.3Ck"tBo0Bς hMݖ>AP6(YƝRp _AQhNczG{fMgV0{x.+鳾 ?TadUլ G&R:?ڿ?ZN=Lsx%qSI`(_̲\wxuAD&WLXr:/<~g,xN#.>&˸**D>Y~T0r9L}lHfjҟ(6t&*.2\na=LDiO0AJ2dˁ6/\C 2v$CiReͽ$'*D<)uPm*3f$akCvBbStz9(6:'Qe:]!_cG]/Xg3bNaM 3wQiVhPEnh]>x[ۡóLa&^%땈Z) ˬ|vB ~quu 쑛!NoeP tmFjkeT^%o̽ 7K}aV(!^h8gߗ SkT4I bfEH5da<$>BpҵH(КqPXbchEN0Ku9G'آP9PiT#RX1P^lǟssD0W[`c> Qa*,lr:t*O#iF^uCv:Y` it2zB0>~ඛzł 8֞ lf-}۳=Hsv#(%DhpNT*D,@8~xlnyszbFsOuZ/+E?.nĜγ$1fy"bF1klZcI@i TT80^sMԻG§ S= DfE[m 0q2)`kTV+AoՑss9c̪ hVS|_5E)QTV{AZSd CGӪsQ>T 0mU `뜿̴͆p)'A*VD^eIa#'\ȫvǣG|qh!VSPAzڃ~ MQXCӷlnd꒏OP˷mja:U}cΰG-0Z+=G|jdDd4%e͕w?9BYJҒHaע\Ol6*8D!4KP&k`M@+y"ci/1j qBR5=e&Xk+x,sa?<.VS'KJdGڐ/fG|wwh󓊩jvt%sO`o ]F`*ȎP ޴ vHrJ}L0Pڸ6a%K C@9q}oM|%`\NzI܇QۃS'mc8t+`PYkZ: \vQ}οGg@Fi,jm~7DnX0zȦQx>#H] /]HfeZ%.ؽg\(%דӊ5Hjr.XǹzkuuY<$(Cn>̹ۯ@#Jx᩺dAUb)uC/4>Baf=1^,^j53.$wd/Eoǣ8\i/T/@^C5!BHk/ PuO92LL湐_yj|Ш0O@ϏKAPwgɛeM${8|CK\6UFFSt[%Y뙜qF=fH% *fncj+!S2]J_nloy+(W ^x>ޘݾXyir{|`Mj~ۉ01nxظA1 pSKX gM% )$Y*/ǖT:+̅{26#ԬIQ/7"6eB;ǭ8TҝU}3*z0;z3; Ä𢻞17^|]?ذOȲ֪,U9^-w#9.߀!n_*۴dma~-Eq P"]s{φ ǟ qќST$[ e.1p3LDckN՞_Qۃ U]'ʲTFGB5j!57l,_DeM7hWB sBaZo$ieD#QH̪n= cW\<>t<>,(eRϚؕyoǵ26.Іif t"p.rk@CJaŸ_`C^rFC1!C KsGo'CQDdp h.K*}P& j)}W{}68W(DZdx?F&j64S:XDO,5&O!mA҆J}/wXa_Vzz K*60]CN1*")9k-V{?YN .qЕ,ϽJ+sWpN`*oEl<2L@ 0ONc-I-u i[I61jF>˻lրm3^WCJ|u)o5ەⴂ2Vtk|G@q"pVeQ F7 5&ѺCWMjbQSkٷYi%d2c;39O]BObdic^ڗXh=)o.fKXB-P"l|&#-_fnTd5_Ayb=9MK@r=2x//J#O}sN n )!(rO>7ɒѮG݊+Ӯ2V+Y z$\5abEsh7K2gihd(߻گ?AZ܀|6M`Vn<8wnZwŰ}-@*Hb 8WGZWE2ش rcmZ#ݾ!j/s2Lj0En XMo#U2L9q[=iX88n97T '*3eMtِi&nz0ѩgۜbOЫw`('5iG]1ۛ?ý1K0ֺR3uiS.8{=[Ͳ3,8MSu4&o*lͳm"”X((|_T9^iE6Ոd>Ojy7Ҵ8IP* v߇ Mm;RRW3c9}5"~ \s}|iͶ9GJ Y[UH@jcht|fGشMpez·άd.cuՙ1{ joxό`.:2rcO]r:-`gW^RVv+Vu9i@ KU2rys!EhvrM$*FN\|\"M&;JH 33z9M>'j=1f$3{[a¦\bX2Ǥ-(!P臝p'U~AgÝ\tzB^DZAذa麋mUafR+(5hK&ǁAoo:jfEu^D3a' ,q؝ҝp -<+/]j'R+J0-Y˞XTL8CLAUʼn0tG[F;%pFR;{uhסnԤ.SG6u&X|XK.și{0W/.jb.тX, 1QS57x $ 38ԣ^L@XÚzFL$N! W^s\)PIw򌂸]R8_*ݬwJo/?MBb0+wy3b*=a yn\#CIemtȯ;yђ7a '/`C?[VpG L}fJqĹSp_^ %Z 7R>$tYi]S ;i*Ąc+8P']2+>e4^uS&Jd *JcWf1EC .hTߨx6<8}wSWNmz%A2: 2\4E>zz0}\r`mGam\mߺ){xr1?ě 9D#d\:j\ޢiBU=cK?  y$CM l[HD\S,Է$wVK ^AS 5SVpͤ>uOxjqpza#KnՆe`[&鸏(WɖQ,ڧ;'֥pQA p+)w"RPؔU]Uv$.sYR4#JWxՠ JSP@+;z2EH35n:db[I"}pt@m4,#s@$ uQY.1ӿZoYaaѭ9nLA4mS8ҚSbs 1"ƿVccǣ*:]M_6>#NTU /$]o|gDj̑ȧȋu`P'y%8JW0v5HuG_+=ʑK [`۝m'%LNC3'Ǒ,FƐ\7ò{2 6#3' ^u^<&c0\f d,x`4um)$Ab|G~H5Ns0d[h{ nZ\Zױ,8(قq^HGS湘j{OЩ3& e1ۍ铄R/T=mqتY䣡e^׺žS3{ 滭7¨`m/H'!Ié(l7ZL^3::^ӓJQd EF\R?r!^#B ClЅҊ P sc-N! *m/ flЭ4p4}ghĚԫ/`z1P1F+(EaȷUxZUuMdQK_'ͱ%|>28q6Z7cfW 'l WS߸H]UIq]=nUJCjŷw-co{1% G]Md,ڝ-揤u~px4xs0{H'X?hgJ)9ECc{V:?sNԴXj}O#`v<|}}XJ,率[Y'~|*&[v՞||Q" '  uиԴ?s`Ur.OX\z=b*(jq؂wsxxGwʷ=Ij056j ݶyeg'V9|T)9E}w C}16+(`Yq,,8ekBe>̒'"^Ä%.o-Ie B6Rѣw_{p˂)-;7ޡux_0ث{9  8\Fglwc1ͨDy U6XYdЇOGWk˱k͏ ̘+1"uxVf!xvhtѬsow".cjtUnLzOK'DLw`2\:w%Xy&oIFRBi,7ZTA$6QZ$jINg(\xw ¯Q8dݓ0AD=%S-@[ShK˩C_3J]{E}쮮s)uk=QFwuVk[Ĩ-Q1 ڨ|b"95ӭ@Y:QBg~U=~([&,!@S?{ʾNW g]/.l.jêh5)K$K[uo?Y,OSC$?V/L f lF0u۟=,[i A|mk4j %_p¬+P_`p5{iH:wj|SnC,jVhH&R*CYbsT^Ku?fg!9+[!ABKUFva2!_Yvs1w8O: 8fJ |H<&V~^F}]:##J{`؅&A5UK\KsG&{ 2RW27n&O${nHDwc3}/T}gYhD4_la".dPZV]SJ]al "L4_~Q",77b#'sO&Ӎ?t=>x1tt~+>B{oCTTbVק]L6' .sQ*>' #WA,[j;Tf]qI<;q()sZgo:.ș3&Q}P6xaViGƢۢkNʋF1/J֟rȧ"8(7NppԻn6T4u>3[P,Q6ǸZGre|?/P<OVg̴q62?H^YȆ롹VWdm@8KᲑ>+0]!<^:<~Ñ-f%]FSrgP6ֶ Buw/=J׷q"_n,z j6vsK ďo;-Xm{W͊bֹJSx̟Vq1 F-&NJ!B\,+y|}#xQd5DZ4 boa2=;Y 2-Kl.+dlSX~qX_5R@Ǥ+|)l'hM[B?y6<,dY8쑔 Gxa,,7])FϴKCg >lcP"Y>$q nI h䦯aOb ޠ< kee@eWm'N-MP8N1*pvҧ['/k/ѐu.[VaA#n *ڔ6ŀ{9y HL@F|b=ȰxqI.Z-=h~gVƫ6ҟc7ҧ=0=bMxTb!<%adǤJ 8"gSϯ %H_ ui2 3e (=!cnsemb>@k_:qЕޜ08D[W儱t~uM"1_22@/~ʿPo.FT_޹' %uܶPJHMGVR_CToSK7~6JT`c6pឥvZbPƃ>"žiJ'}}$LWS!ɑa rVݺq9#*hvyQJG 6ʘh뢈3j RFO=  ȋ;%]SN*4z/on`S(AB 2CaLrUny:F.}O8m#@쀙 xsblwo{YzK+:ua~Ut0JKנ{J\sK#{/嚢^Ђ{X?HA SNr!5T<tTګF>9Y&7; :K0O{0jʔ󆪠PeVUxxeֳ "PZXbEr}0Vv"PR{4#X\N1{}/Ag. R]Mu0=CXeV`ld4cx)$f^ =s ͱDk!"Mm ԻdwdKd%;{wَ쪥p͕iܱ_k* t-arg9v8jS<T0O@$-ve 3LY>y5\+1-*ʇ%uTRRq]]f HDkCU{f6z6~$ IwmsW=p|1mȪXr$7ƽg(Վ['6$!J( #Sɤ˦_t#@iq+l5бx@]s"!"¤FpehZ*ߓC}fK;D}bGprl􎌝; ('d@7'aT}|Cu#80vySUh|G 2aIUtcFBUW.J_5 +R2ʑQ`E?:siShn PUΌ. .KϯѧFy @bfTj%4B19Cz Jt۵{ʟ͍,ot/N4!%~$v~Am-D0Iv/#LۡPl]##ɼ!@r 8n0^4ȑr;P6JTnL=yc;Dn"?C)ghFaiJHF̦dX N3{A1>IipSSuN:B!u:,`HeP(]Ჺ =2%qh>ԙHiy1aRI{3N;G?-O9ז>C٧i}B2u0XxNDK9^>AkWn9hPLz>n/ZQmG=.}}nQ}PZGFG6< 6bnѳ"}ӄbS?L6o-=3b?|y;BG(b@X'Su}W>{::3Ohtt-U!"B9L`,q8@eDYf KPCO=1Ub9K0\y.0K`!/"rO{^Gy+> OnLoR\ Lԑᓢ0 {?oH(_ p I"?4$ `qꌬju.|f %qY/QQ,w) L>ٔ 'u!D }s$H8|dxfmpUzz6?Z0N⑒%I. 3 hbQϦ}&oV"p$y/]#VmC?//#>SY?l24C Ql_ QoL/S e Lx3+2`K!Nimp qV:: )z#Rlhtbh~YC* Dё63薀{&uOK54΢и ңB{ -9(W$(BgNMnT@p0Qs[2j-[̥Ԍ/۲Vu[!$ܯ:դF*gャr]?9#Pq!$oP.K;~BglrYW0=a<$[d J~M?Rȭ9uс9q3Q}eG_,Ӡ)p yLTu,zŷM3(򰥪_9ZU j~a.c ٷH&i[ o/j '-:eoLlZUM@Jl'u,=z Ȫ pV(@A++?{4CmiG,_ߓ6!'+fIzpJ47h}Wl_̀VZd-^a=^lw1AlKXq*M]AglI(UuU )^j3@\21 OE`z7ug.08(jWrc+4 w @=7עBiyYX_L \:d`sWVi<3Qߪ/vST Tw{eXA=KnðOMpµsv`ɾ{7eY$DbTvLQ J)irgpf컴:;L-) ҋyG (XUu+:25E&{JeQ>M`)mi7u"aW(x#aX >9>S>cK-%Q"#G[Xx=.ciwt]\؍03qULS"p76Ybx iU֩CWJM W鋟L5zb@rd Ac'b WLnV>n06n}Ŷ}x+|ݕd[LZ"Hdp{O4$] _mzG̗# jF2|/N.طH9h S ! .%bX#"ĸ.#D<;™ ,Yʉʲ[z Q躵gi5IzR CrU,YG҃ SBaN7pCKn ň4nUD [kO=tAdYKL o}20x+=X4:ai] P|u[u2õa"snk!WGmc$j*(97Iw.~bBtnK$;IEZi>QSp?h\VFW&`mn,1 \f;&K!+woDd-ӊeٴ߸HQ HD_Xѽ.3loz Ϯ腗(d׀ImǪA%64gTN hM!7O.*h'm]b;]xq(lIQ! s8z$]e-pHCk'0|gs i 1,)e121AycJEOc*h2ТPOz߯+੦(_5N{%p< I>[8Y\WUI-Ld{GU[ Yox8}8Mi 5trJ(7/ȟc;;& *2gQ3f1J Uۛbκ3ԮS8$ݗ͎"*8Ag7YV` 9K݀ķ sl=e#N2SmV{Qƺ߹mSS/H<5)oO-S,*ƕ}hs'ARhXr\$29#A}g`%Bh,"n`I|,ꐿv CKnf(49D;j^uOK_o=ߋX8nW  &~^< LX,2M)7&:t12SPv#8A/ sgpUy+Ջ?P[G<#i~ڎjz.B(F'Awjw}?;)) 82ѽ>G+v=O}B4yܥR)xI*aZls,LuQK?.0/uWYc}Ib5!X04cʒE P1lƙa BL/jܡ`MGnJ֝$E20=٬D7.4m zصdiʝ^5)!MxKhn~(`[&~JzwݛE޷F>^O٫qWp_EM~t#=`vѐݪ_E6^6Clhpf2ZCjV+AMaAboemm1ܫŇx`) g0imSDfq7i0iB\}PjUî*; :9CW8b_T({ ߻ 4`%ķNm[ ZΚ >0+MOKer j=\Ҋ-{"&27+/=ZAs-=ZkW(|G n XQGH|tj! p59jF0 #Io({w4N": [[q&GVbip6ǩAf0{ȇ5UBAՠ: `>4B;IN? T&΍YQl"R 4+ uL^J,JvX&u/IrIm<v At08ngWtL.W$7j2`ԭmt,7aq 31ZLtR,t3f$WN#8gepQ.-a=$S'Q`6 3݌u9(ո{ \;j3mGh$"wh3$1gkml;eXOJHbF Vl6s-B ~*Z#y*1h1E[&4۹O]g6g17ʄ z D\:Rcpn3U 0v''q#Ǟ /ƒqC3(wӲ43)[2W8H.뎟;G㷝icQē:Yuz.'(ج=Q>[D!Xz5Av,FNATl`@N6C5 [S8 )_lLqjRNrHI,ыD*3ksq~JZWJSS;<JGaB#OU|}ϝkwn=)Ԉ@ZZیcUڿ=wE !ÖjL`f:(@ZfI?Q_qFug|E&l$<53Vs"qfFja'&x̑<(끇O O%gۇ xyeMב qY#,sO0صwf1LkG`*f:nfQױ){7*\7*P"]*6RJL[ ;,n*[H7s3@Qtnxç8oʌePr|y"ӀEר+ph'G]aaT;s8TL^0) ّ~Ʌ`59ufXԙ,ўݍڋלԌNS E>)_4F n}^lWt2~SjAOsnԉ9 iiROs|1 b;[(v=Y0vw5SႬw:31^nE;ܽy(G)%zn~ MtpY;jit\RobDիbxT7~9r*/)&mZ(ZQZ-W~ زψ$u,- a|fkXު /LE`O_'<"6I.F>I51Vzs* .JGԝ"ޚkbBo2.o.džjԜ1-G3*9衳; kvLQ+qW&/zA{w+yj2izA!\$.Doxy $@,#`-G(\ pdЊR⾉=Bz5SO-1X*~Nf^mًd^) )kM:%d Lq!9n]'LXzvc4CffWV;٣~bQM tKe'KQ7q9fX,[1ݰVl,ۂ8c@_F;w:bTW1x^ ҜhL9+bqm7UiA4i}22/lA&8j2 T)+*Pkq?jmEF㾎;Gtdt38m,J =S ńg~5-:GTDP>ĀTU>tUmʆ*E=X:}q=.ǃ|hŤGb(D'q޿UeNg>kf (]fTms"_xVg^U_c0?kP= DŽl˿: ܱVeq`)7ǔŽfvk7;X r]6)0s& ܓ1*~DGUj=)׮QF@m Ql܊EMcxY/&AJ'ap~.㾰94z\8t΂MD靀2p PCgZ5+C>X)5}"c߅[]Q *˱bȝ.k Mz}JNUu)NЄa&7{ 8Tؒ[m0ӊp+hUut8~/tP1*r U{} [>l~@ɢti;c3I7CrJ݉i#P[[L1ifla;0;r; 71$pӄ^%UAγ /Unن4Þ vU:\ 4(e |2SҘR4U훥Hjp2\he^R9)@|3А;bDSS”$fq]~͙>Lq|!P,1AUx磻ni)Kq 8-DT=zS>G$ %M f=4\./<% 3\8x0) A ]DL 4Q+ ! 7sr:X HSa ͇%],GIc1nRgIVDK[&.!Ъ(۫އ(CE')S^c3h݇ul:0rӤ~w8e H'/![y M )ԢD]] ]l&l?#9 =7r!bU\}Q)t bAOM4 IDi)х1t@3ŶiQl$swbS;B`˹1q`ӍѿywǴ:;x↮,ڨ(u"(>˧_CKM#Bi [h #j>$8hCK8r $U0'r0jkΜb,־"_I6Pr0m ɰp|W V=X]oP_`M6,V8x:*:C_o =*An2Ao)ۥMA6 JC FD`@\n-sXbSm.bVHr+D}h&՝@#Нpvmn KS6_2-4W_[:5@_-hra;-J=6&I/[*xNrFeA#}&L[kβ^[)( sADN`i[L 1<8͊ 'P9UvךɎdV?n-DƋ8}8#&G=KVH#Q n*VcǁlGq'y5scB&*$[8 g[!VMn<FzWT#W 'F*n/BvT@6*pJ^Q۳{b) 2}?˨X|'Rl1Ga++(5LZ'Y0u,'(R3edkBQތBɨ݉LrwN ROlnɔ pMhjc⤏s*.(퓾:r܉ {,Il6 Jwioȋ qw1 }v\2়7n\͡~?"q+KZ Z:j<ءюߕ%~EJG,gg K <".?mTPN&{ i"KPX)wr1maÝ_R{:/Kx;´ jɧЖt&tPzYKj}6Jqtݽ6JjTX~ѓTwۜ>#0$KmSscWtnT՛oE2$C!$56#e'zz;gְGpaAH2ɤϒ(9hWvEט@#=G(*=w@j3](Kz3 X84Isjw7Dbijcyz3֟B :e_UH]gt6ŠV<MVEcE6aFzhOޢX_Q}ʡOɓN]ukSv -wFHH1]V6L#ì?a.ǺBa!$4TJ\:$ GIq]:^qV h5?H";}!no3|#^r9N̡}jv:\3W}Z9VpMؑT$UF"ǜzF&kiS=LXGFf-\Tވ`CzU6+@#|vJKjEŤ0Z=ܪԯ0$*yhSе{YbKoQd&0fG] *W%3i4\-d˨1??Q<#acy@]X%]B.+UZ΅S_bKcmG42oN} ƍGإ#֩Fka8 EwP=jN4%ݤT\OO/q/WLHr`[ F(^)ݚ˷OKsr%`3N|%a4J9y"V(6xAˆDb$  eI7Ue2%>EVS)FU4z ¦Q*Pֈ9n{s9 ҺvӖCy@FIA~N3o.Nf֍I_A^3,d΅!!2u e4ܺe-t@*sװî͢+~C_ i0paK({$=ӈ$C6N6F՜d_qlԿ3c4` iGqw>N.*溍^!X)p2V_1f G3w8] R]${esjSQT{g4"ӝfl\l ӰO@#VJH zBPk2DҔרl>@PL !r3CCŖO?]As[n5:[ldJ fb *Tc^T"$,gmr 1o[x?I?UY|Ϋ`̘kW߿1ILtȓx*%^"ocw!qDj|蒢4vuc<_&E s?sE9{(?G}Wz>ч,IE]Len}fqJ/O#cÙϬj]svad50DP;g>aQPA3P+ [U鋫Qsa ͱ&^g+[. xԧ&$6%?3Y&vCQ6_qcL o𥥻p/~?m$0qvsNq%C~%  \Fkre0Z"cm; ~t|i_BۏF m}ᏋJ7e fwS^'_n*83&jSp{=q"J>s;HAz *L0ͤDB=i1|rA\7ǂ%!.HQ]B69vLHMU鿮KO[>y|!|Px7eL #tPTO={z99Cr HVLV&UbӦC0X&8I]lӈ*D˴aUft0})XN7c܆EuOw7rB87+,Mۍ*D)dGMzoA#*1ᣖ~5~ؚ4Zs)ܫP\j ;S~5!e~.357őҿ+aO[ˇx(Ey=9c쌦~#r-:*FLH1n?;!+ kH``lK6q+"t)26+/ysĞ`xqfqzjyB[ƾQfT[ju\QpK`76Ŷ5NzIzN<XV>*Sҹ܉/Yi$ 1X5b e^ܒBb{ mr2_op;FS`wC:#Hǐݍ=u};>SKOU3Zsvs;U $=)Y-{ %?AG9'LBu[G2R̍ h|'l5S'"Jyɣ-yبDj Pxh-๫.t qTdgdq" 3  Uv-ʁ'ɕG.€}|oXeKIzW`xa^B?T T":H>tMP[$%lkp)l)8pv9w 5ZAYO?Z?sltX'ƺo7\rᙔޞ` J\ 1@]u'0#D?295_0l60ɹ!lL/ U G8zO@Vv@=}UF-"vyb?(?m >cmخ'L D7 h;l6BG%b b73AW8F7O^{J6GD1qيFkP lLޜf@xb#,B9;}ܽSrWͲ2 .vҙ lʑHmGH ?ϱQo1kĂUD26eL3ur3'leq4a{͵WaVfJS~.|ReS.0h:V% 2툟@5R?q>i pz0KNl`^*js_NX yEp?XE-߼wtīDX|B"8Jbh2txc /m=Kl(c2GRCЭoPzdDfgp+ȑ*]p<\ =T m+;rPL3Hzl)3FA#O|ye9/r|fLTeeĢE?ta{ Wlu5:ːs9ʍ+m?jVi|&|h E%leS '} }/lDN)xFnbN=HO6T gDD$0FhBH9ugӷ;)Y #~ܱp9 LG-.&!mꪩ=<;KM]DzU 1GJL_>#g; kCb;I%r2jKQCg?8x'l_qh [:~ Se17sqRcKs. cGa#MGRRA oؘЕmU mZgh~jS>ϧb; vnj pҠ5F*oGw]fA7cI$ G_$.`5(ae.pzv!7~v4ˣm +cA 2KvwG_syypv0\D,GoP38aֲ[K2 Z1Y"G? 3$Slc-\P3UM~+wr>:QEl̤} ($ޥR6wφ@gTJ b w!<szkQ"JW/wf( Y# V/ 8=jl_csxT{`{U~$+xe`Vݱ_frb;=""ʟ Z|&@\0%H))/E |`O&lxpޮ _nΜ "&osG=s>|}Lz/x8 ~p21[YzZ@pp@UkkTsQn 'OguJk5 zI5Ju~UiiDD1u껙0Ǯ@JeU0]|⑦vێ@sk[;S^=X4fi*:~αm4d!Ěo {ն-KθE|SJ,z5 jm;,h(ԦمUs*G#O|ʰ\VQO]SH; 9-GCZ}mqH>Yi\tRF8mO߷'TU ` Z&rN/!8cGжFw@}~h)` jh1> _XY/[emz0/$*+0 ܤLgZ-KvRZMy >4+c0Q?Twh{3(0 !jkNp!6E>=347R{du[joۥАUFrl%i¦$[ }:WEE#A2џV--{yت"I*3Q}j.$]~k;`)Hz%25yD vʝ~}P "߭R?g͛BLY rέO>hl^UΚw2gOYM(f(ˬ[*ѩ !ELQ@=$bC}7:Xj꽭 k2mGR]OFWh'vUO@zƺc:ir?UvyWU~WM!]HHZFuY$+8J~w:ٖaѫJJ|z K0?MhDY7,{ԾWeHys!2mtce;@\t*d7wE͞!Pvݘ7(+:$^ BsLW.:F1M,ױY|MIT'f{)ᬡZwАB|Lx\A=>,u KLͺ>\;s%.:|٧"IAuIiz_~[Jq t϶5[/NuL{F#TNl?qڏ/g![b]~.:H*XC _=LdWqȭQQ 'U}Ŝ ;5li1Kl=22bOnW$盡2‡yc+nB/^+Oٛ\3jQKH8S-Eg! X}ƞ*(^ǜXpmvD76q,6 -RX`=` SIle :YƘ%LT-iQs 5@'{"dn>_<=9  PSbV]8S<ijtk$ҖY56be3[da: *'9SJ^ P{ZŹ!'X8G01-kos(# CPv6ЀF!crvx9vmVɠߌcQ~om\?i‘c\kIɻ svx#W?4|oJ;dJ =r#qw6.ށk WtxO5X`qS/VB8FhH?K)w( `[u^u\2&wp&91~gΪF_ &[Rl;2?}EŹG.'Ȣc@(Vt0N{cP}˝Kr(ByZoEpܫF 쑆)b_-ɞb:Ű۳ ,TK )25;>Zf a@(~Qol4D[N C*9v";Dx"@5RKp^WQ޹Ѩ:9&'SJԋ4CG#Y7+=>zNIٵ7wAN' Q2muV׌{ Y쏱%1ȸD=h~-BMyVS]{󳵌rFMOQ6Ɔx&?ie4$T2~p[5_&BC!}%th,o,{U`Û3@ߜ<{Iz4W![-SDjk54h6.EFے$yRS'?X'ьaֿ.U)QǕWެᦖfpPI_oCAX U5\BYCeVoǎ7 z宂3.A[KI\u'gd=d׏=HHTvkpP_eC/VR!m ~~5B" w'6IH8žط8 F2#0glU/L_uȏ3&@ugƼU.ٮؑ /ݍ &E~]pJ5NH&|!=ߪQg;ŗڌڅLB@`;~tpAx†dj0]ۧsYI(̘ĄE:]FW@bS}_JQ 3?@NgGaRw3;zE)F>[{;{idA\]ٮh :SZ >2z f]4v= @Dw\ ؞*By4ܨ-YCSE?M~-(6i6-VRsv&Sjr#9_/0N؅_Ph&p;?2Vq@Ԫx0_0kf]69?\J$#'F3ے>bp,5`NCy"u/ -mwaG'JxL!D/b%5EiZaF3!rjڴ:7K,o;6kiy#R,0S!W,8^Ո֔t5Ƭ쥤H[OI]t('b@5vV/+c>޳t~Xb{kŰ߯ީ1D)\lZb$3ȇ z+p\FL@p:eNS哳FVT3?bo '᭲)\`/U<{q֔uH5(.|R| JF?׷ jˁtTF@X8[# E$|{l (3cjl $ 9@)M#CPG1bGRڬOݓ;]2әu\ͭP׶~r޻~Pi@W=U}~N_H OeV-M۞ %@Zo$0CY aO9aELyRf+*Y#[> CP7٫P"w1QzY9.O-8Aּ&NqXIz''D ]:æV^\f$b~*ǫ!O z6L d ? JzZol3\ײ1lEѸ< "&2PLAouHQyY*p9s}v w*q"}=F!{_d* v `:F g, Klh%N|wH9CSɗC|\:Wt.sPc\MFZX'ƢpX" [Dxञls ֶ=ڦjcU /zq0zMi\'-^bX#ۭR4sKɚSp1p,ť!njl7$;"'Am؞~6Ь14,)epuZ?'ӎo$?/8?.* _v>"k 6cM ^la?4yP_ɳlL5vHHI? R/R hOiӼL)N'6N7́?|Co#^Ю> ,ߣ͆mxzuJH]}PK:`nȮQI5YKP" 6w'Sq /V0n0кBk8^+U@ v2hiA4:І(x*7ٲ 94Q+r\%?%6qn΁Յr:$a@@ޚI+g/P.Y踵f?i|D'T=4!kS!]k=# 0p~j dm/xy`y0IThL?NJ':l_-/M̀?]&ðIG vŜU*(D0_B4Gg!P2d3o$AqSsM.a<N ه~rVUIkA(jK*"Y:  P:{U ڛoi(ORA 0e鵐E vrs`T,=DEcj6}B8H3O~mq#"EݻD蠝4YJc񢅚fPdž_ Q_=j9g9mMB".8%f.6҄:l)0W-zO ldJVyՃȒ8AC( IoQ 3>Z8ܗi hl"Iw?y @Y Sy4nڵ=< 2h$‡IoR+M坟2yY5XrNّx/ P53D28/a01795h6zJG f\5g_bp`@jnxsj6Gisٷz8yܡ"vhF^ĪU2v,nɜSQ@'.:4ML.\~px@YQ /@*m@E[M=w7[lU#xʥTA0ѻ'Oh4( I| ;U؃٭ج($eP/ZB.[Y :cx9ĮS*ñ2.Y!]N$X~cf,mp9‚c Tp|vkLa«!(.LW->mGYi2>ކeȧ,wc,f$rQ|<Ӝ5#ÙqEJ|Le )fur9Ow}lEj%RK_|ۅcEXi㙩aTKp @ڰz0Yti>¡|Xb,:<鍊sh\hoF![)*3*@|s5d-qq̅QyEùh9Y7" p$jMf~υ+;tYkܸsmhH8;gh6(~:hey<:9 8bsi} l%0JW_o1uOAE wUMи[(yze+Hƀj8/pF9͖.>z9Q -9|XW ~*SJ iHuFj]~SЄffLvw"ϵdBƦ&+9+) o)C~joI_\MyuL<ߗlKlA-CQ*ʄSuCx+ E_~{)@6ڎ1(lG[*p){ՇL4ϙRWg<.D5\ 71/LHҶ",z[ygqJGXh_(Uj֎Z#,j7T*Jyg a!U| ժge*L\3gD&u9w-88jcX VNucZv6iN i6jZөcY|.QO3"2S2)o5lLs2>lUAj?QTxC4;?<,#B%8,@hWcZZ2;sY`*UL0$= 0(1%u֚Z>b>RmϚ LU{;[]$t=v~*˴7EW <ѭ>V[;`B%u3G\So^ﵣdQ#D_I|xԳ-u\ RCP7Rn ‹|\ i Zf!t&ja" E!TU٘Q=#VGh5rE@o qt'屨_`yfFcgT[gI%4KxGh~R@h՛ u #J9cEϣ3iԋz_Zʩ'2D͕'V1TB-f+Ll(4s;r9fX3V돍 jx/dp|ڗoBxM泌\ռ# aw;_Cm3vZϜ2lM3}=_9a /sm"ȉA̯QD…'H蘏}6飆9M1PiKnӺ)t^dY%5-+mX[9쿹B4[d2ztWy?o0zQ Kt1jOov*!n c=75EN{?9=|GEŶh`^2=^)\-n%`j i8SΊz1N 7dkSSU40o}czsS<ӝ4|r,7Lƽ 0[t">ɹcȮQc8IE΍I V?G, qkɌ/5%_iAMΖ6%CAWOwIƊyםfSa狙G?B߆}BG|Aǜuv Ewd45ÜS߄_F w@#9+*pnI@ܢe?*^+FwKp7mKJU:fWǂd)h2pO"_#:Q|љk\k{^*dp J%J7а!?L=dT`$&wyLR5 π-2Yrlvq a6#%Y,.G NB 1uC̤]Zb$%Q8UKJXR ,r֓ .ّtl*,@xV`3WscDbKʄF쵸!V\/ɡ,$nE+P[y6:;&XyQCZk cbbC zAuJ!SZ}å=ʱ,.~ںyJ+k(J#񲣓}F5UZ/ "䡈]zL^<T5^o6,YW&``sC0i%p $:^u9o*] #CUnkGo).ӰX?8*nw;Q jyxW'lgQ0K+Chhd/z3^Yda"]J Ch>(e#7mX9o (}7ZDp2D.6>J zTN'c$LV3#]()#W#$4bz̵WBm ?bh%'@/B_'zz785T:4SVfŊ>ͽ޳,U?:bMkh5" Nڅ!jS]YUy퟾\W!$-%)%~E7^ͬ#L!"tC]iaO,ؘ 2&8U襸Xm.vE,dm|ͳ3$a9,?5x: qSuf c4 s,I%+cty 8f}_b#b$k"wSQW2m)5>7 l#GI|Ɨp?a݂Z?`u=['Mޖ9WMq)Y<Ħʹdح2X<7`նO?gn) UdWEa8+M~XY(ɏs=u \rpʐ"18=)W[ɺqh|7?kq_).I& 6b *xz_L;% J >oRzsn'n0E&D.FNnuO/ ֕\mj|UvfFe-9e\ᡵLdÇu <+VZ]-ލv'du~oqY? pwK@:UU3]C^Ѧ\haֺ#I`g՟)#ۺ\|. ;)'b(9n}ǰ'W;b(j6n{UU!&{ [rAn EK8g3*gSD2S7ZGJWwtoaEw^{3B/>26܊ }l I i zK8ᔈM1PL΀.GUp9\ 6^F>N?!LXx+bC\RmZ"f+Eb;:Yo9v@7d3T$$Gu硫AQˊo}d$xݶ~HfrrCjT$Bx|]iqWBF)/ v}Ԥ.Elo(ѯ x@fBlʏhۀ8%Ё<~1[::pU,eegъ9Qo)(S>TA%YJƉO#ϚE\S`WxV6;`Vڤ!d Ӕ;7kۨs~l)N-.јpz݂F޿4 ~#8X,D X+s(e14ӇAg\7~mS1Z*7 X7P M}Lހp]/V!{N>5 A˩Jd^[=9oXJF=rYNI;i:u~̳SKTs:rwRv/GfWLr-?kw#0mt$`uE'#H)k3mȼ3"㑅Ƶ"zABwhXP28~o!`*ٗnWg~~w5$)m=Gv).;_PrEꆡz/6nHS%α1~GN^p0nB&ڐLAS)פm #ۮ5G6YiQrjgA=CW! Ѣ=d !/wyl<[#UagUFVhE=¦J *':BɘQ#NDf^خA5>KeBޒeߨG/˯ٸt:z cw>?ʥ2=AR,}ܭxlV?yNڝ=:]MÒJoS?ղgJ>T}lȧ@i=lG]懫ۍ:qZN҆<.ʹdrY椁?Dst\K#k/6,SMvIݼt1[Jc0+z[, 98~1v@̨)%:<_ʇ>`_a;rr=LxV2gʶq>#A;Ma7˖<:_rBwX+5K ,MuΘhí2, ^^u;ق& RrΆU jBzm9c5Ti)oL,rl&xn7ϱr*6 #!hWlyHle#P:7?-O:>U(@;uJlgTGu %p&`&XAG,l\0gV'>T4P8B-H!cBV_&’| &I4=VTUS6vL5ci4ɀ@qcΔV B_9/El|\*}&/&S iW1y]u!2g-Erh|_S%ˬGl`x >x^W = {H+ p4̗NF ]=`O he$#Ej*#:Ùr/sV]|ah(ӄBט;`wXe@ȦIkCLl# 7KAŊB>L<~BHKq<^ ٝ;;JݖC[eJ~xK[e~/p̌{'Nn׮~,zz>G75q}5oP2=" kAZXfؘmYذ2p\r\s.grawLجx̆suLie&=n:ZA `+gUeNx;S;s"ADT8U+Vүr 7)r ns\8 6U 4Gjos*EWqO!1Mԫ:mJ5:[_&Q,IX2ʣtwxNKyʎ]U` CH:t"6U4atXDh.>J,p]3.D ?4 [`p3 „&XUr0 r<L0-۟Jܻ0^Yb{^d?_ ')n? IѲ6RmC!0ĜqzBZnx9vx3)FjjiQC6iF +(mEUv6#h05V=˯Hސ0z }8wotT+e݀dHWZ<-!c }6ws2kݐ~ͭzݸV0drS2_ Ĺ&I>ĵĎx~BGyV4P!HUvT9 'њW|WN^=1ph^4?ٟɈrB݁h/(["A!dIͪ\.VyzmxA`淭}[>#S'Ӫc$6kV4}U#Y+0\=ש^~*f^2i:Z@5Y$!y 68ES7qGLLTt|VHVռ-\SW '-?@%B2֎Ug'+A YD\j%z0cw4QdhVluqZ>˨}q9{Α|1"&XFcx ~ˣfB֧l_fL.]\P"eu;bto>juQy!:+XMLat&MK#LO@g׮%F'p QNo~a M]&ϡ}@b`RϬɭpERiϮBQ ϋ%:wyc_km#2µGػE;~-1t}%]Y ,c э|  uGw ^#J>ܙ_A1+=+8]2cTTd'mvx"?vzš~z'bЋWtjT^AC7G%m,H9TĠH}Ѱ;Pmm(#? eO=JHMQIlA üpYfW+ڻk!"=1<<_RuPLNkN2*syhT>i>8bj=;Y\ʤLm1Epr S+#1=|a|ƽvx/\K0wR).#p3\܄y/ @n/ ~(j& '<ջ s=ŋ8Gst)F F8y UySʔHsmGi:$eڥ 6z(Eh͢v1wq;Y o3Rh~rm?Y @,0HlHOdp;x@=*| %n+ڑt殨j*}R<xC%|% *Q?;6Ѻ&Bg @ZN D>[\2vzn/ʉ>lg?hݰI. XVݫ#3 (V ꀢMrYJ7K.*Ӳ:- :kgUl2&v{B='g_]66ϽWV8Ic.h=7ɶː;<\cTŸxqUpO^k,=)'oYͶq W`[_v + Ϻ  NYї>DNU%% %P#D,Rt!lFI~l=I84nlG2B:Yg‡:Zoe&j5+p}(wjgfNJ+OEy8&2f4gCцC8 tE-ϝ?ZIiw#[KKoJ[Kز}KpFmxG0uCԡar`D..?O1HI*% ) ][7mTGu{&:$k!8E[Hw ]󲦮][z;ƑJXo! o!@7Qz8AVꗛ`(e߀ .P&qdD-Ӟ*l,i&o'0 MRjGkwL| !Y>v(wKFǍxB"-S{Z#e8PΩR8\E\w p N_ĉC `l%(,|G޻TETr1{vn ^Fde܈QM|I4$."mrNfiO}zx\D`0izwX:~C#+FsG bP:.bHY%^2`M@l$IXGXVuHm.jER}<({rўdH9spaղ49*ҭ.&Ab6!?b+YŔ/7lKTa;MPR~Hi`M596z'l2)WEG>pIuM,2ooފ.fXMZ5\{8`tE](ٶ98Hڄ\ktZGF#Hle,O긏f9]88dg҆wx6sScB(ZpM=2ez2[_)K/{~ LP<rmJJ֏  U;S=VYxÎݎh6+ mtm/tNvefY-P/ʹ z F_ lV.'a|m˰|OU}]~D NFWX!Liu:ݧ(f3 Ȟ %˲$ACPS8 [I-G(,\C!WvSt1KP8l)P7yK:4Z􂸶ޑd75+I]MYy5kGFZjw ^Adjf һ;t"NC5e>7ݖB]M0tOѱ$ |\Fdۮ6zti>WR:NZ ;V,P 1ۈzo:]#ژNDr0v} +cV't>>622'F’eyIiOd3>]pK &$# 8QJ]ʟPYEew?M-PK3bu&;i}V |4FfؙT]KIwl1]X-<s8Cݞ_6SOCc^^~pkcK;^ɢ;>Ĕְg$|qRJ `4pW2^2Ր3$KmR޺n{ L({fKKSx;TZ3b͢&QC7wl|dEz1#, mòVվp,en؞Sú-h;,5BZƃNpli]2fZ4 FЭo\ȷBlov_%Qn,&ʏa e' i( ʎZ]oAZ 4);rhV#/0?pCYKW0K'o4s#kN©_&J; *׃NJAa6ѝMY8+C%:?O=h308EdxLZ,-2⿕U8=uD9jXeތ}ZtbגAM'W} 9Z]/?%恗ioeXg ?~xM6m=|'ng|7͸w#!\XdCaóE |ƀSA`J~ eەJi K|:<l^Ir/SPxd-.DJڟE~UcmqLA!mA1?Ր* P/ܣ?=m@I 4h" kuÈsO?m~Չ 1-i`)b8'(^utXTɑ e3rkv~jp<[trd && |C=Č /2eaݿYk9ytʝN@|As۠zО|Z a׵fP:+&~r5U6n,ں<+['#G-#]svqyS4UE@x/-2 g5/_,A6?7]x5p3EgǽN @r'X4:VS9&K558J|ob]&yp 1k7$W+dϻnru`Ra6cրvP`W}Q^"ۅ ؛,o%؋4Zkk\gT<)רMW>-USVzD![nT.LPĪxg&=}%ń쟃{ƙ77b(o\x>-z viB*n#etF`ggNo|XhWΕwXɑ<zS9OI>m:=l";wq&v 1N֓?ln11'hҶS|HcnL 'sǁXWpZ q])Hgɬ<} 'Q#6"[%\ ;/j;e6BEӯ11pOYc܋4&dsgэ 䄎)|º{R9MZkdǹ |}twd#v(dk6?zO@w")͚˺oXNżόS^Ex- zWqv0aZ}k퉑9@x D48S+ `?5@.l?I^fmUYPłHp8GRCBg_`/ij\L]R;+I]}YޝV|<7^Y""7C䲅0xVUdz*_wt2 oE0 fJs7m+^ă$| b_^UUKbq NZ7XVvGh4o5p;,q{]k ~EɢU]~I<1Kj!Y*<؊c՜\  A(+Hlϲ1c/]Sa}mʣ/dua:+ ֺϔP/Ha%+Ltzӎ*HBR?N ǀn^s6dИY՚$~EU{4dJ@Ȁqq qi y ؖ0וn +Q}S;oa2c bI] }7:4zɹ;]e૚/CytXّ0#W|'twc bĄbXlD$.Wr\SN\]>(rͮL\hʦl<0msہR|$Aexxoy qR9C׳N\+1 e Z9{YE)sN@eQǯ̒AYJw7.vd7Ed f8)]'g'&‘HS?>l7D%[|8[AQ)S\ٓpI4ss2שMR VH0KvQgj>)\:g J\xs̰!T-su OVL#DK1q^Mx8Ha%OB 0frm# -F'I AmfleN|>e;KMW<凮jO*Ft*:bX+/M7"rGʋYs۰YTkP b d?*[ kjNq cg1ДdU%鰌8ߨµ\2rVeN0tqc";[@^spb=-ḬQ7hCl^u.l(sylh;Z$+w͹ƶshmrRޭ9%%A搜;LS[qz?ւK[}3R'h7܅+ ĆG_ ]Crh*Х^~X+:' uF#a72 HD0e]i9ęu[V~ <Xw6ڪK7[M),IF zbĐ\Nhy$Tr%"evL39q8ΎAv‰$?͖+VԄt`8i7 $p/.`%$ƗU)׶VvQ橍x~fq6NyL(B`S6B0Rb'Q%I9>縪l@LD5Y;j~~h [wBYGe?LJ38Yln+VR&7InAw@޲5myn{_MtݥL.>wW1FRCks+ @r4~WqD␘e c̩#^MhZg>8~pvW nHщpN,?Ђ1Ղ J 7 Ltb(rL{5#`.ݦ+,gl"~6 XpG7\XаrjG(jsSx@Uޠ|\@&bH_g^LCZna8Mhх?yUB$ 3Y;x'M9TReK4-_?o.])?̊YyT6U}<&/Sv!0< tJO,9A׏YUuN(o{, ;=GziRD:GxZfŀޞ"aզ\eI*f[goqQaV~!:puZ87TRhƀ3C\18y* omG,m^~.,o F0`kV]cĥ+7&-P-Tw]2f0 κ\*?GPy_Q-.f* 4dĭKIQYtV&6l7-aRC!pLC2+OTeVJ q^O*c]ׯrv`/Gvo@X% ۛT >Oi}pW䘉Π$L~bSjL=k94D&f/͝=P"3* zԓ^  f>W%?"WR'ƛf FNzQmr)d}U'~Bk1迠o]ʹB>_̪ ?/=)T i9/,5VOhAEHdcoM%uCqS4vΥBQd8cNOj?y<IW (#QQ!SC&3m;+zXKC9yIaY\_D,Z]`SH<5{eR7Y$Kaw&F%uˀi*WjbLX-DMqZT1L_O<[Yg8gQO9.2`JL9yLjE=-;. TklI_u\tKU21;k5ZxUFU} Q+VLǞ4W[k,&x:F]y91%dx)1#ʳ6ϯDC혡 a)jAXT+[d i>iTQ=bj.11XIb[hy1$Y}:؋9@L811~&Ogs&ArQp l5C9k 0 0ȡaa2`0ˠkct}c:ėk&2I`M |"Mt"9< `6zv({ 4^ȔRȘoːӟ5c.6SO^S4b'dXh EZ2c*ƤH(dht&D= Tոw'ڟ7RNOU!Hzr])_)=j$h~@LQZSr&!)t*hy{殎R :$*|{'Nx9Oi F46&A0 eƒ>*+ej~<=8Ow[<~4{_ߋwxߤ]0!Foݷ`< Itl{;yj*Me+b;$ܝh,\eܑ:yRԘuV|ነUNv±pvm*h""~>ZD5(o`<Ĥd#NS̯^UՄuAZ&8yt vƘhU(9[@2*Ar]0JA=1id2O';[Gh-o\FYfgԖ/funp<J- hR `86.FIE<|s*++T T-@7Nw{ 9M:jJH5`TeWj*²K~m?G M`TfvOL^. TI) ^Dc&@>B{XPY&I>Do1F ^(IKW]׌=_<.OgeyMߺ ʽx*{#69('ɪ^w1 OgihA[!n6)K:U=YNEf\=ԄV#怔]n-@0ffnG/&DICM/ۊ Yʘ&N\qIfH,?njc#Y(`{򆈸|d9pNA*|1CjT∶@EUZ` Yֱ0օ3z1:s=p@LX^0Oq͐~$QZT?AGؠ (1\4YB,w׉(c*,)Ow! $&33M~S.XJSej"hMh)YhH@)=}?\ZG*VNHZ|w5;kE&0bSƛ|4j0Y{k 3?F"xW>d?lWVH2l9!]+Q2 ^u_xZkFv5tDbk)?>XUn!\2*[A=mC/c5Ĭra`̛_<FΧ>{+p(։:?<83JG { y&8Cmogv(D*sf4wGT>x7e>P)&3vH|_"-!lzڠ$(+cMmSݺ܆>0VEItsՠʀKxf0ͼN_}v4jkv MԮ]ONTn#h&q0FYC6>gkHS!!c&|Н*JEE]gv&A;Sqj"~ XS)v>|iƒH%YE9W$_>hEK}O^ڗiͩnb?8"Hh l `A*CߚB#@zݯf'HJrEjF54^TvWyaۭO3y%( SOʠv73 O0ȕ"\wc:KWߑ#i93/.6/0SCR%G:(މ#rAatRq4jL0(lG$x.GǗL:?,tK5;32at*o"#UN~B%8QZL7Ϲz"vag)CbHݞ|& w6ŏg>~rfAwuOLW8Y9ې`ofQg{|%o58bF!TnuV! ~8;e$sE:`KkOD`TlPlYe?J[ߒQʪ)#szpNS**[xGaWytn? y|XGwƞu. zaIΈ2Y蝖|B&rۿo4ѽFn0&7AR@'*Cf[f_j8M(@gNF|I36a?;B WuWr*U _ukC~+f~+an/#VZ:eE]-л_P>K ю^Q HXpUNb?&{ybMwvu!v/WFoIwa۴ٹ6 `#Hlxtp26ҦzS DIù89}?F>[Kn`6eHȤgܦ0E1!П;@b {x{á1x5Qb9=؉3ͽ~߽lpέ$SN&D]\hPSb1;x|łf*W=[h9[qb|RLlg]l!=2l.@_UZv35#pF]A)\^)a=,UҪ(Y]Y%PiVW90*IU}`m&Vn9FFDm\99߃]0EЙSeGYh4~:G )VJO'}%yۑ&Ml,xhWpʫ´dQ³@¤ozSXt.w0O!5Z^3`I^B\mIb|A E@B[ ؕśt\xx3vۖDYؿN">"좈hp:u7׬F  1vkaKjre6 f"#T ij\6V==y=o>4_{D5p[ *0BG ޷eU7$=?~S;ۼ>/ CNy~"^&)x]]A;sd& Dߤ!s܅(Ѡ[XHk8"o]Ma-I{,Y5_%=ôzog4ORت4U&+MNJS:P6C`z1t 9v[#W|̢ "HDOtA``ĉrSI~*'Hq!q4fShU΍2>YȖsHuJ&qNJX*ݾvܪuN$Tce}SMvVfl JF7JYd<!t J<#괔b\g2Rj0r{١<8_jJOL'`2U(fM4 BHhn\1[x`'2?mLA֪].A{WX+COgs61#1'rDU+މ>Mj"d_]]k˗X=0ÙU*}M'xeT`D,j4nGL2Jn0ipU&p}5YM˿ywYVcƭad]`HRQŗËZ$9qX(2c'!!׀Ժ-FpГq>ѤPF2tu5TWqO mfP| oDLx%(,ąSϠvfq'(vA/)B- ʤm~#%‘!g$QVݐ"M;Y}Z_嚦Kg'[^uDZ(p#<" *Гb" 6KB.NpUནW۾a58>Ⰰ?;5/.jEl+Aw(otLfIVJ_N=l|Z# r7 4W͛ɪ"sw=GYXNsj "X B`RǒM#T^ 3s~>`[I 9i]+oCW.W|>v ;8{X2 ] Ϯu:]" i7NozV4cVu袀8h(@g9or+R* <Ӣ0HfLR|u2a1 ;FWW%`OU\j'ϕ<)3Iwnj0;I5PTݝf_E(L fn3OF͖3XNr}uj$ͱ_C^ r m~HBNϓJmDg7X&Df64T0_h@"~m[Ꟑ)yb}O5<ơl~%U]9Y7h>){L<7?i!Pp>:.~${^@T#|b Ǿ.P wLߎG`:U/SB4nrՋg, rR0R">;b$6Y@P~h0ow/{)D=a:)?U5!8%A h^W-:܋Q'36}JQW+)+jֿKWgGџ{E^" \#\fقΫO5E3HF$u?fF1f#l}xUZT>d|NgX QRzkؔ8=$j|X)Q.{ /!9~LNp7%%"Q:kS%-8Lp5G6߿ uW"Q =$ǮYVWN;姃skɽK#)F%D}G\vD>|"{:d M#]3d 'N+k-,[Q) FSwq`X̼']N\MN[u$QIL̻6Ca-8ό؉ZbH e$:97Z wur|',:CZ>k9/1XM=Pqc/^^ ](ⅈx-+$<dlѓ_b.u?Wcǹ$wz$I;8}ΕO:9Ƙ)DP] ߸0zAoWxMOmZ#cdвܹ.வz (Cf!;:'ć -,$Iعh3]i.̑9j Sc?aEٶ`F梑B>wMLjl Ml9gGq{v@WD]xipc]/)wq+{`i#@oo /S6mJ2!_+/r7vB(:*B7ҚhMZ B|~^[ Ɨ$!bƍRJdp|-m@nlMAx!jCFe@oYE?!Űnmp+DeNqұu+uғo]_;ľ-!O]xoL|*}5:+]H _)3O0EIUHrAlk<џc]2>۽D|S,w7݃d2`H :eC?~+jEL})m.kh}^?a#MO fO﫴M4b}pg"R!S P<(C<կ"!9OS5qcqH솧Gނ{#0 1=)a ,Ĭ%0v ;Qy_~e  <ËpԵ=ы]9lܧze T@^_B}x.ď>>j)Q 0 |PZ>Kie9q+L2ʚ;5EZ"e0_VʝӭF 1ɬ -/N a [ :2D!(KU3 OtG'kf'_u)W;7&* IvIFM:Ӛr>ƀW䷯vu綥^+Hi#aK,Lࡲ&b&c9;Hь-q!U R?lO& F̶a6k'oU9Gi[~ıVuX%}ľ`ٖy3Q斤{ |vyBy6ئx1u6Qje XvA@RYGYD 7+${*al٭.{^| w!iO%G;>}!a#2#=*'~U+IdTK8X1`P~'DhQ?jm>m%>#w{IșϊU({&xv7^ WpM)ȗ4FPjͷQU鈦3,[rJԝ_QЗ1 uKET&B6~[!HK#R b0"Cji xe#{nyX5Mx-LWOhubrgx˸aCV>e䖣'/t[(֐_P{^SP%~7s5 ReA"T0 n3̌Ed-] j'RubV31K&bxz.oQh.c~VzE >Λ];Vnf4J0B waW]ӕiTgM-݂l={LSӈ1`,fɺ qOkzH+<:4eFwXN||<; xTcBYiwI8A]tLDˁ& Up ,8rղv~gvd nףrl&$Np)ߒui8;qO)99ONrrs XEe x (Lf h͡1ٙ'za2&ýP\=k-p ^Wv5hOǻ.=C^.I ֒ y"եz2bsQ QF.b.Fz{@0| "bIp%@&\{l ]摟ה/i1~ܾ v ѥ|*PioA\gu.V@ $CIy7rcX핟<$g+GM ZXhfzɍA}L |uD^i?=l(Qn'p0Xm=d|b*-8dQƻU_B ZGiCmv94Ĵ;taF?j'(mhnr}#[*2/s \s} 1 p4 [}ˣ+ägo0MkCXDm$@:&h::g|%5ێc}3=<év m7 Jd#Tn Rf[N 8k">ّ0; ,+@++i6'+Ѐ~Ȕ@衧*ߚ Ƹ >d1Z%|8rg7WyxFWWr=1梊J=L猴7k h? ]# Y a*o3h†]+aT \FlX8FE B*]˜2tNU]TV DՃ?;APcCYQ >i7CVqv6 W4Pf8{pڶ2ľn]ɺ>֧\h&:sNJxd3;rd_h ,lvASbjﶪ j`=X5\yVZ=SH!4 ˼8;%d̸dsY Ѭ KϱPpBX!\ʉ/D)z ,Qcܦc?Ln >+y# )TϘm˸+V lqIi=en˜Vqi -]BG01)gi]Y$G ̊y2hy˳,\2 J"SW{9B, lzVTkchyc"QHxD[j d;XQL&+ > S LMgvc \ C0!﫧iR{u[A xaP}+)xbBY5ZR =E#r^<6]R+W!ȱ9+XM,b{ck?v 5¿ϺB̥he?;<2oxދZ\-ξE}…S,ܲvC?|c ]ĺa (dIYJS.9ƎԥOkG~`:hfA1]8[6YBt_c6&8€!43_ 5ڇVn6.Hw>*Mbx cƝ-XJ4ox?Z\Ih;4 ejYQǍW5r/mBRD˽#JPm* ϥE|)w. Wv+FJJgS3:O lLWi4A#3e.גLP_V3'w=TxpDܨd8rQ8;Mfٰ&3,,)X\X.Vlp}G>g/+8/|4Ms;k %Lv bd|s~_?/K:iC/gcU@|5e4ӓܡO ;y_z"^h0mBg׌Q|B?WY4&f&Йt0~R xGcQ%W@וm` }Gqή?0Z,kG0#s>"'xk4ԫ QAomYqb%V ݆,br !l0ôA g)$te.=B*7wq[1,Ffn З07WX`᝗QF{+2ˇ=mb“dq͉E?:XL=Hfz啜aB/ v~q@6UhpZc3 22 /WMPӇRl_\,v,}pNAmw˜]Cڱ,1o[]h oZ91rk)c޶#ʭ7GUWp`'$n} m+0-@ AtEiD?Vq#J1cFLUcdACu=uPS|X@p?Tx\`B]K+nu[;"}1N4rW[qpٟ.; 1}pRPdk=wHJ4rOdd\~U`Z+NXԏ@\4W&+t%:u~I<:|d0Y5M~9v,ijf(J^A۔6Kj+(Lږi$rˀ?Wt=蘰EtO`J5hẎP7 Dpq9rƘrOD^V3A3[tY(QutD_'ԓ6`Qy$ ev$R" Э-XOO`X*S:hCrΊS:' ղBSI bjh0j(3Ef5`)Cp[.f(+HKEs[Md-U˱əb|?i:KeC+$׏VA l@HLS>xy $ s,AfP[nO#LW1t6V 7QqbScE>.|: C쵽ɩ܇W6RҁH/>UH/kb>BjRoia&&1ǽ֭1I's9rdhķљώ3ts-'!ۨ|:q+RH٣xg f l2G?tus~,r%9uobpHHm=. _"gV?>(s%ࠔKNv,[W6rP[g tJv{1jԇw+:WK-&!@P!OD /;v=C9 P0`Բ8:)v%LrR ']orܲWMwjP)hso#xNyT;ݠgl.]d8*yD67YςúF(*rܧ 5#hzfL]@{,e4#bB1>@tlKmP&0dCڳ];_ng1|(wA-r6EAs,|iO> Jg]1fO\6M妧B8O5֠!k z 2UI[slX0Uc"Nj>Kmu. p/B gE L_u9.2}9‚ݭ! z:Bxk6X/6 ik5':N_SAF68 Se)Îӝ1eTu|0Hb.;\F^[dۋQfBv6*\ 0\:# L3H밳}F#lvhԬ$+lUɥbt .Hy` Rt@ 6 3]{n _ɲ``/?^Ua/~a\4I,ȗfcF;v:Q[\l++hg|}\szf!#EjL5ԳpV,jE%K7gn\%ߠ ~sH⏷\}J1%uy='׭KEx˫8^T_DͺeA;;e$y5{v/QbiZ,Dqr)ަK+gsg8+ W 5e拺/PfFF$w]NQy7]_^~#d#C.$DCP=]+sd8"7YFcM6̡ޗ;M5욊iKⵄBhjn9bJs 4˽F#[[L +FFm8jRzOK %:JH[pբPel f՞Փ&p >oK鑶U-_4[kK/֢МbRbUU|0M>g[ȇhѿ A2GrloG(Lv゛>>܎|}b[©FwB~!0$Jl";aa j9Ƥ\ؕB0q](^$xG]XF$t!k}D0ٰƷR~H0@4Xwn5j-x6cQglWFhkvxPuSOW%WJK'\b2Ugb! Il9"9vnCjI܁ \kE4z&2JNhI->ӾwȀ4.Pgb#m0s#_闑I$%p}YќH\a2?۪Uќi"bR/_∶nM( a3 <⧝,Eu.#rrML܁`6IQSD$_[Φ_raF곝N''kѹHD7rϪyw]K~$]B ~!3{= >`{pxU^U!{B a`\ ;|_|[+@p}@6Ɯ aSs]?[W(A8ͪ9!qF"jf֥AAY@9M;su9>l )jsta_le, s#~'iV+aGo©6W\S8G&Kxi+J{fBv#]fa|Y2æ<Ƹ*h5McS-nx5щ d+[Ўdrl܅fVYh5[΢y Oˠ /{*'fћ@}UZN<~n8Wy4~&9/<yX~4Pfف2?HJ.w n .A|aX.UkkBAW@*l;̏=L:J g7Bzlo?LG<;8.)Y߯itg&o&Ą}bbÉC|?{%؆_ѝ!8OA0[;s)0;@UWȬbPŻ:3e>_ @zzcmmβh [mZQuN<hyb@8")d;g#Q@B}]Ǻ@ qH]I62u |"VlDiSzx4(- E1D U.# sshpݯpCrY 'ThaW$ԛHh4ع),a_ơyTӺ|W{Oy v4J:'b5mTZ0E{q}&U䗗qj%roKen➡`.bq@T`pxTE7(&< oc}ǜ.51!(`*Fe9#;ͽg4&o+n%Cq~}%R^ ߴ"F#ƸZ頯K%jLAzʡp"c,g޼(,fIOԮr9#DGL1TO`w~.@ U* Χ "]3\ע=qFEg_#_#8%!Á,\֠Zc+x~[9z:$Gң`k[t1^BFڂt--I& kX(/%9A$o*)]698\3Xj(;43"p%2O[;z$esP< `c@e'n(4.>'[E$@Orҕx{#ex)z -Q?o&,vֽZaGol+>y @:zb-& U9ߗ̣WO\Qa5h|d^gsDR.jnб2Yb]kg*49=_@D8l6vk?@Hv]؅Cu˥Sr2x.9Lb`|~.v๶UpB*Dm`nh)Þ>E3 =FkSs #/V[,4'ɮ c)_07l2FUIi!lqɓ#S8DHcӶoe[E_TjA`=~as;<j#?۾Qg\$%QChM6Yt/4aN4.XTHfC8w,l0/{&v~xUVq"k^𛀋Io(Km_xr7y Y,߽9{xjƾJC񨠕NUrƯR~[X~"p?yᗿNW`p*J7??:‡a@4c{DGz _=ӱ7dD? zHcZBT(->(n/y`g[/Z66c{T (nUrcJK[C]Gۼb +qP@cx/aG d܈{P5vx ղ10;3ʭ{BC"p>œE cOE*o,^@qqr gΓeJs.~ c f4_y˸;0 A$V7%.A%\@E-@wka`2&RcIcCBN7ٱFĚr' ޲xTUMkաϱ ))G!HmljLp$B]K2Û_AAC"Gwa.Di.-dHR䴪~>yGՂHt1+=ߦ/4D@jhȻsBQۯGgX&oxFF"GTx+TM6X%DwjVg6@yFv|0RPJƗ+(0% n_DYm{"9nnev(%[_l?c< ߦ GH=wteۘmtV" 4"%tv3o N Q]nG9"nԈd)H$G#Ț "nOwbrfQ6u2b[6X-+q#[z W?J(7_o#_9;fFu,}m@i"ʩ[ꃒVm#-1qb̿f F*DGƒ?DAO^Ybq<ܻ"N!e\*".)jo嚓Yi>gZĤӗe(b"TOʺmkUfgJ]L L=kz&//t)Qa}|Ϋ=jywh"9ͣ[LH ] &B=/ћ>gN.ãY4$a*u-oH1 X(y5wIf;hʜ KほVvT=]-SSyupv8b3*vp4wpsK-Vvv\۳Ww珴Y)- G#nW̙k)*>ݰG;_ 2nㇹVWWµN|v!+c tB!C-cqQ^HŸ|.;O8,cͶuF\`"OqGe- ٪ɱ2궿mT*`[go8hLXyux]M|w}/Fy_yg3:vvp%֦㟻_p{I%P0z=MVIB[|E4 ,, ^v-\k8u6?![EӼu;Q"X_g o@ۛXdftJÖa8/wϊDpNq E_$2צZT;`ŁU]x&8X ګXVI -XلPé]YeXݷۋ®J*ck|i-B9+`%OFpR~+H,BK6t6@ʈ@qAPX~TnI:Hp-5x;5X&^(+[vq6\PNtˢ fFz@!zX?x+Hf3u"H73s! gi&.ڏMX^}%zͥ'}O튡$wu 653 ẜI#P쓘4g?08ŮyU'3'2\SDC*9lIa) M1&fKP+Wi$My@aD?˼TBô l쵎]瘲=+F>13__-Ҍd&\ C*{`dj5x. ;"p,QR&ިߌӔX}CgW]yI\v%? actYqF܈tR&q\f9%~nйGYWۇ\$~24JlhJ;f>GKx-YU J(W#T s:vZsN|Ӧ<(/7hw/!fgk(IHVł6yssh6HDALyxOh$ v圦1$=P!Y^jY&un1NBTRe졈-5zg5VQyˀگUJ[g.4jX_ndcVC=N0$٧07ִv?3Wx=fB,thI\8b;nY5P?.].M =XzƜZOe+ I(f8&Wmޘ},(q]X_3lEb@VzV0=?3s02`ջmDN[|6s6TZ]_%NI4sk.+h1٤ c.P_ hbg Jr ]q#3B}D;t { R1mƕetwwʯfॗ^tDkCtn5E yX9S.G.^\wZ@Ak f s SsYZ.4_44v#Ȣɱ_~qD7A4*P9B27,O(?m ǫ*bYjt)LKuw"P3[y*Dޤ:W9̻{Y3V+%8rHcwO#uT?|xN3VC"$s'AsSȧQ7:ԕ/TK}<_ZU^;PlZ:IQ} oWMP+ />k|LlɊ1(_ c@UhCDkEꆛW Xޠ%1ik ӧ~BfrUP=U]o` b7(R Fh{YXi 肞اm2(i=XC̈.Wo1S{sTtAR1[QM:q\%tvơ~M\9*f0>9P^ͺ~ׇqH#ϠUc:Ѥ  1bI,RNEΆ< *m3nn dnr4܊ByrrkƂ-BOKT-"ʢΟHJ)ۃ@q[ղi7C\8y7!fɦ':k"Еb9(C*`7|KR=u/Xz7e/™ݧUQVSQ 6e8۰?VK@vHE$ 4{{H†wg\ #U5|*&f@8AZ)-V8Kp6vT8k0 . ШP-(L ן2܄\4{+I~m5&2F|9M[()ݬMS%ˣ͖>mb(.0M/vHHhr˖qg ciP9Ñrl"Ԟ4opDy_naVPI{A $+y)>fЦ9vWOxsj#Q9Sr`+) @5( S I]Z7FFtΝ&Y]/f{ܺ2)LՊGCU}x(* L5~!TAިYtN +Rs%)Xj#Ypz8},:@Eu-XiNF' O݅bH$HhJO\˪Z5 5HAZ>Huy@ULU^>M'i=Mc隔f;QQl<)M=̢ [Rv\6F[+mk5okz6gbn?ތ9kcS2Acjig,I=RLcl9q0`Dek6y'n$:FZEH%LzûynDPgV,w%Xea]%達{BQz2LQwܵRAS<S Qp.G)bP(gcνi.8M[`w6Ԝ"' @攝"D kNLT﹤p+jSV]:[egpL<&MG)vٚ8]Xul`ńMoy? @{"})ֈr PMhCL>бP'QRIm_<RNRqܿmkh 6B9̪u~d~9j+\'Zܠ&jX}<V}@L$ZEp.Y6|HT@T|0bwruk8 nԄKdpd<´I =ѽ,ZmﯵA{ y|hޘGyF 3X@,$~,3R&hTb׻_Hf++>4Ϙ<7UO>Ufo1); gR:m)KUX7Lﻐh ABmR3`(\Z3/swt|`#(\,xt y~- ᎔ A 7sWCS̛=k*0ڿ#8SzS:=h>I[|i_VV4nw;IIlyTk.ԢAH\NPy-!@&q@$ G4hnBP c5,Υ%1nfԮژ_q6<č-P~[ٙ!# NfV|2EdU>nW0$o]`??J蹐pS쑘6"pla3 d`"]xz"1:"+MlSƲ K^ܡ$IyaOcUоJz@[MR!W7 (| $6źPWG)! ZId^=୽.S,ǛjeDt$ɵu?F߿ItvD޻Ц*1X5OU (&PNaI'-XJ^i ?AVG*QzKofv;*.19w04l7BOLoi֒J?NGW=x9e"/>yY &'J,bx 3մ-ԫIcvѶ  ^mܔoh~W#A/~"NzZsD[㠐Oc|6o8Z)lOg0i "'O{u: EXh\]?>2/i~cMM퍽X) p_10f)͋~ta_Vl͑qX4Zjd@ך[5r, 8[bg85 8RIw fz{:lΩ.(#Ԥa$ھL=B-pԗw5?9d҂c`Dahr+F3`'FuVQ0Kv' 10=2's/s{6SڨW:5gEݼepTiNKXә ~ͪt춋w}G00CRZaV;-юtb .a<,`3,oWxK[YXO=@A H,p'p-:E6|fznFn" t1]8TS(|%%UV!TmkH; oܭqB7lvDM&~)s>H oZLPL,)T!lQ{_ˋB dyK5Y}.I Ϊ=WB&MZ͚TD?7gYƩ(#񅐎nS i9Ӥ ߫{dw*+(/|WW_W?%t2aUkp=:m܌cxG \:[h@xj]KGh^c5h|!ԄI]F=(SO8β/>N!,T,:Kk;}}(yku ʜ5>e`%lE_ż /`ۄ!IΑCG 7la Tٹr_dV9 3nPb EVZџYT_JLw]R30PVi 1p2ˆX,s#,rJK~]dsֈ{iӄaD4d/}Ѫ#z2}ܵDur!)"ݴ2aQY^,יAljgGvOG϶k#*5޻oT0ոPGC-t4hN kBcv@"ˍ7B痑@2^I4Qc^q|\^;Zre UgL?wM`oN{aq[/[{7(gW8<ۉBN#'o? ۼ"uĨfs/GvkFBK6ꐶqf]ה5hܱ(qq7$#rT`"FzaS߽U=C]vH81Կ-7g_I^!R!K0di)qr0~ x7Myk%06TBip*9Тҵ[#8FAs5p U57ӛcsL1` lҖTuoMV{LI˴ws|s8aI2)* !kL#o{DM9ƛɺ|~$pOm#8Һ'A p̀k5)pMtkqJY{=HW0wUV.3^}"1I911#-j:?#Z,Tҕi/v`U uR|l)>1MCOÛ>}^G<'lzkCė~?N ylu̙3?'#'kOoy̨fwP;br.8mq/r-s"GN(8YI3|yqZn,#[.Pcrfe5V~ȕ$a0aϟB?ڦgC@bʚIbpN^F=\GI 3m)V>F^ b=|NJ&Yl]o>HA6F77Mx? i̶̧4؉;@7W\zүK{CHH9:#K$뭁qV{ vv?; oy!=bI{231VUPهk!m?MjK~ȸ1 _H2trWKz>]>%t1q G{r!<=õK$c k_*>Txp^㽮hMCS3an';;OTM'\![h=ݔ 0x h[Po\\\SְW9-{^/vKA(V zɿ4Ջ80<<r(":_S(5ʏL_[ar.YORp%JPzP^p VAu{Y,{K*BJvJľE*Ȣ4.1a[~bX7pzv6/jFC2 v<ׯ**&na/haI 1;3=L WAV%}x>ޓr6Y k0H |;FM,;5H)'p"+h|iMl}(KN֮7Hh܍]ȯ0Sz0J)oܢg| @^.EmƷ2ϘynNYLq'dP⏲LA5 +Np[:olb3IlƚkF,Jo)tps1ߦ&^E?QEْ sJ9BTS8@^ r}@/y> Pp-KN 85jcS?d)0~f {e[ͽ}Noq-g~t{: B1dX!NĠk|p!@YUu[$Q}T\M]/V+{?`- \}RbW"f93FOl2\|K{Xnf'5W[D}ve ǣS2D)WItH˜,^8c"U 2SmOwK4^HI/%BmJC,QQ֐IX=J+qبxH1+US r-V G|3=ITKp1񅢇*Y24!pRb`kZa U cːy/?)9 ;%)4e+:@LG'Dzm[IKsN8\6YKicC[A'Ss"zN~ư;-T/A:y=i// nm qTQV%>zɓH !z! &n* l9U .ݜt.u`S 6z 4:ÉtZJG{tQ$/,kf|kh]UGc"Ews*ʱ62]=LD;C` s@qU_@g5Ky"Jq*ڄ2sz]i_Ԛ'0֍ H2&$"7H@ޗBmg3h?;tdi 5f!pELg-(ww݉ ` `10:˘|:-3*eׁw!sk&\{ E=Ejo<0ͳ7Vʦ1PSjY.klDĆAB|0uՐLe7tr>(U}~glM*.ycdDO@<E+/ Gs;cXFڂz!^W~$ N[Up(IВOٓ  ~u2>&Q+ʍUaw{6XX 2O+ZԯwzIG*XR-%aTl4yzn}]:FJlϼaGЯQֻttlj()%Ӽˌ5u}cױ\;EZ$Q ) ;"]( SÒ/DKr=г ،fssѮt, D)"]bR#U;:B1 4qoIW\*s8c^ZG%nbR'( 1Dԑ-d543ȓ2965p̜,\v8?Ca|3߳ӾT#atdPŅ+X^4;~.=8ڌ2 \u F!퍪v-/)9_ DO|("?B3ˆҴՋZ8Ra`ʞGz؁|13'T"ZUaڐ^b)І_pGvK;_uajSX@xozPm׊ԍZ |.Zd裼L> qAI\KUc^QK*e^tT$XhGrE>Jtfq%L%6u2W$M]~Jn*Y/;Mx6xi} +g\TN xRoUgyeH9BC^UdIe:'$A8/-ؿc8o*eg5:Î.b_[N9|5 ?"cX4,R͹#J}yg/؋0(8lUskӐglE_~3@H l/-ȇj\3;t0Wdlm F rϒ<Ɵ^#6\@V,dz@]QM(f5jU]~/G@LN&Gr#nzg$K 5rdh1fAOکGy:z Nk8:֗Dк3~%t@ؤ,W]yáBNJd-H~7B.̃d?1o90OM':W_CAxWۂJ}@@O˟nXߦH~5 U%^Z¦>HIZ q;̊#EaUXѯLctBhI~!;QLu'3_+,YF[xyׁ0(ݩftگFP7AB33. Χ^Qb ^Um\1.})kpQH X8ON 9t@Zgvy6wT~ '3`AmiheRTuT52 W֘/\W"7^P;ƯE$|TfIu~$]!#:^4z' IJ"τy]l,ۄ*E6NNi۪on=Hu>ZƤ LG$Á6HN6; ;[]?:AMÉb45"7NEu 0gLS[mGLxVj|ŸԪc A\~<^  @eVԼ")/O!fn[d^quA^Г_H ˭qVon3Ƃl6R`c^yr$4D#󳑄mfN̸V2VЊ딮27gVi('YՙXCeH:pB31ԑV=T1[~r1F,*!0|n?)Lj4,>5z_:ֳchשc[_I %[=tέ~`7|Sc[uɛ=8"KAZQ-VDCkJ9v`3F{W;t^䀪g?B~%vSVM6#_>Ox|W۫ BvI [wF+ߩGx4|#amݷWp]#RV(NvF9Em78BYKMU[@/pjRO)Nۭ9NxNmzZxtgkuPS&rI3coR8IXLA?Xzm5`)Y<P e|v^b߄ K֮l(Ei!wO_)i5BUs$$H}`,ЕYMĒw0Ik!s2ݗ>D-)\ږXI:LK/TO '#^\?.8!{7fQbi58xQ9Cl\y~ZlpAďGw-s*5q5Poܢ 3 3unNԯ0:F'ö׬DY;)PpT0۞K'$$8!ƄP{!qi)ٻz6  g}oL"bom!'RDq}CTڢq븸t 3s ŏH!#pG MCaU rMml ZX*t?#: v#WFGW; !<X"+RZZxW0~5A[[a.5:VcI4ېjAQV= SeiU'_%\p/.Zyxe[&7L%몍TnL9s#Ke}:*Q-<]ےB+K<4!-"Օ083$V\Qt˹*v7ۘpٚx6V!=(q&/nXu:C슊@JӯcNWnw4fd|u'™X|$ *HsJ^|:5~ajyl 6nڒ_?)&Cu-*{hToW69 3pbO_RP<ҩ{<ꆰ񔍫fb6$%0׃T1FQZ> K~&*9܌n)@cx'Aq+pUJGHObTH*:"o kmc3'Q<"tQZ |N|xx\5K(` '(B\{M2<Ll.co `:!µlZX#iء\\008A= c8*2i!+U zxH' ].;޶=! Z,K5on!:V 6xi,H#,O=6Z١lmT -`YͳT?|#'tuLx/Z'otc@`ֽVtƮEeG2 gj.ӣ8Tv{ʅ]ErpFU(-NxD78_b2'sq%MV0TCl=3Mre1 dp^oڏ3Du rF Ł>B lE)>Z}iKIOY}࢐*FLp}Y{$R9c/abz`W\ L PfLk^>q{GraY2= H׿ v;@=f䡈 }}'qbV2U1IK#LCeP.# sw}%SPIxER[}j!,Y_9M3Қ:Q oU?#1AJ﷿8qv[p(:ר]wjq% | t+!jhKlܤKޜ,!C03I{l'd.H#r}EEE[V/DslD):kR9}V,GyIYi?m jK6_O"7+8SWO|l oCpYrzjc|ϣP҉0\8/;hlB׿>EZm&͵NWmi HǚriQW/)Nayc)h?hXjMHJnZ&&6 d&U=F .@|nepC8]ML+D̘< @>FX?MpP#}pT>"RL83id5KZ׆)u^:&yzqt`Z@8&<BcyR/pI'5('}ٷ]qR#`L 2mpV=XFr70ܔֱgC@ KЪB"M/s W*#偃׬m}]3 ࿵ސ$GQ^*Vkގ(]Hqr˚ c|Ĭ撗E䑍>pX+a+mNz8e%BI@*l{E+]g$g@nɩv/"T 2\k73rre"Q5ϲ(^]Rng+<1+"[hx Q*-@bk+ vr&9f vXbTbMaۃ>/Xb`w/Y ӏ+5\JUӪliDT>m /on~G$ mlt|W3_Sh9S*.nxz M~%qI ٠~fe8ue:b6 (3'A5TM#5T"(|j>(ritlaey#lڝ?V X(@gj뭌BLa%Qfx GaO}^pMe4l+#1lV'$qDf=o~Wn1kő&{vorb\ `>m_Vu[}xsbfbVB(V4"1Ȑt[%^ځi58jjuf*P|00+-CM2^dKZvB^8.58A!&IBD_\7prEkv(V-S1?9ĭ%T UR$Pnh ^3#0Vg<]X!UG{Ӳz: '1+K!%HFפhLFp=9GtܬZX_ 7-(g;IUȅ% JoFnVËj#&"  "6Sk!W10p]Tڇ⊉ť?X, FLL\m >@C~'';Hw*Y˿BsW\% ozb B$3P"}aou~,kDӟ'cENc(7&j e1MP5m~ib-5iGwCpRz$U@s:1((cz6x`o nt.42]gJ{- j;E f\Ё%XBWWwډ$՜simWa_pfyv~d5ڲl3?EA,Ewa3ɥOHfdJ^H} o/{)㲸9{V8A@F+ C\ LAoX |[ǝfd%*3A\{k:Im?M9u 8Ֆ4Q&%^o@ED?/PNxYX=)2J CUY*Z԰9ĠL: y}[귏?toњ,ǓhT }JJB[c%Ó91mC̫rGlN_9(N!/E&?2O5;Kws PXiX/sSdf⡥ԉզE~(-Xp"q<5eCNTQx" ;2xɊ,3U뤽 HVB[{10oJh%򥪻?;g\PwX!LJY }CdrDJK^Fl􊀺 ^q?q,*iM"]̜L2hsb'5KĆ'KX#(ٯZWΖ. ;Jĭj Q{, g \j޸i#K94PS1bRl^ [̒?+/ï!ؗrgC4 #J[xˁKq?u߀jSg]]A!jt&w~#2wo9l,!n 8.g~Sj9e D(hl%*;[pj<5ځQZpҠd<tj.t%5B=.lp7+ͷ] IJ7b?R0FuOfp`/(14M]1Ƽ&Gk'YiG ]+xώzK/EV#KE)Kۣ4`eW gdqDL%>nopwu fclQ\k8A=':G`+/9;Qt8 f)5t@/iΦe?a"H v2PsĒΓ8+1?K>'Z+Nv=`,&K )A2^ijx[[72VpTC)F.2rUo: Nw(SS q{b&ٜMڴ<=ڥ WT׾Ͻ?iEzV`WTc4K`QZK@3|tQmgk;:MPsA:kN 5fΜTd!hxX*gفYv|d3Pu pQٻ-'KR}A\ec/n[KZ+Cܻ%٫n9Sk0ZNOXpL'SYrƒa aP,, 9 I"҆ig,Gb`]u-jf^a?zWlU9ɖe^D6b'c^3JKJ>8CSQiL4'.Y?;- ?ba<`tMTؐc+-E7P.%Fy۰bt>I`OQmZ0<xATܘ {ט*\F9-"[o{<|s< ^Dft;?iLW66ONk<9evmCVpZjP/Ago)2q$@=kw#*c@˾b\r`s( J K4Χ ܹ :D`lu ~OM(n_Ql ]Ӯ FVd3Y" }d+*'ir ̗ziG%h4ʑFLה<)ftXr\\MHQz#s=cx|y&}ιfgl6OvMAU$ ޳dlα 4%VA0CGz7v8=YH|'O/ g潕"6Xe,Lw2|ȫ-u^$ Pָ;jWo Q ԰%67"|kk0T, ; Y}t,FF "0 Lr_⺊n^͐gCUt{U]? j Zqq!!r2 N70Q' o~z[..#58uB4Ӱ )F' Q 8q -j\EypX13 cӇmQđ2ط_{YͪAz(/Ej B6"w+u!cJ%lu7o3]FyX%sN}Gf<2d wSR ?]XL ax_۞*"M8$gO6ۏ$W%F&B$DCT $nGb37 ɐ޾˲*I=X uQjwx>QxmYSr|fˤf̙<]Bl&yH׉ol#g"メA ׳3| }O8|r\q^ " $ kx[}1gtPRYDo[p'>pT"~dg؉ ֱ)~ 5?<(_,oU1PBR%okPPK]ۏ+n }QqGGUe*;!"QPZcz-/h a3Ko1(ku=ylӒҙ59~;hP0~%Kzq` "&CI|2c?L @bžۊN^R>:fr7&T st(!GRЍ^Or7Y7x!N3Z:g|SeGQW`UX+Dk{KO8[&TgGuE?2 yR>o w9 `[q"_i暎rzL¨2'VtS&՘'af3 Yxb˪ FЫy#ylRٞ+lu:?mt @r-w0I:%q9h5dqFj"Q쯍[8܎ -Z X[>WՃ)2?ҀX~aF%XW;SBLL`t$zem-ؑga.ug1 ΁ wm ?3ˇ,-8 k^%4+<(ϚZkIQϱ(LjRk1ԅXnpq6/҂kȑ& \W@QH&9l*7rw;Q@OOz55]xRCu kۯހuhūw`fydƙ yD^0O:9qU,Fȝ~m{vbWU6ộDm|WZ"M3dӓ[64 6,K9YFE V$,|o8iy4ؚϐpD-\oLxsmߚb$GTJ h9 xKlg\+듅wfuw`ł0vNp]ml1GH, 8}ŎO%vĥm<H'ݏsݑz$Ź^_wZ@Y q^t,f@3Dt%7/XemOVlo\I? ʣz[׎R3NYJ1(N1zL@u2ǠE.^>\_ kV/ܫZZ (U)::%7l #\bo{?TWF)vChψ?T!d_SscѡJJ ʝnW\eaAު/);NxS~`Bc=TGN!4+g2,` 7+,:GuMg.]ɏ5AS7}z_Ч\8,x=*$NӨe E`_(3yP|'Mh/'rX-eUvKO1ȗ>4hr=jg&L;?6v0Q_pN>SV)9{O&ԫưퟋ; YXYQ30&|TńDn_7K>Qo0mǁ%}#-c1`ApT->rU@]*z@az=k1ERU(9%{ld e+2rm >PtD>E͹fu,jF F2F*C<0AoY' MUK\',e_&7O!Edo"(v8~<:p&Ǧ1sZC$7 *lI eR<5ߦ{ Išu4 ؎t62{vu'FZ1>^D]SkMj]p7ؚ8; TMu@%&N`9HZcRZ,-Ғ\9G`mxg0 GKD]]P<kV:ƌ%a'G2mGHjOB,RxxV5adVG0~#[Ô( V~vVz) :9ݵV}𮦋0$EroJ7{Fm00V"&frul1u&c]& ^Э.9' |m"4_O*lשs+^s@f7UG-hwʌM8YA$QZjg7Mub<2L')|J,W& ؟=duʅڻt/$rɊy"9F*j"-ʽv)q~Hgg&nN%K8.["{[GOw*@+}S2sU/ZA6!v:Hy_`d ZAaz TIY1͎8*\,T|-pcktן ga*o{D2F WJɦDK7[6y 4; 5\:˥B8oXcZ;u&}3VMQHj i"N2phNt k63>yIן5U HNS2ګ - -҃uoΖ='qy.|}Dv4X~w#_* yNmAL1!xW7[9^i,l##y+|ԚoRPdrh/ygW`Dhj"t78TIs1\?"#趋g:m˟zR:,"+W;zyT,3wgA^Sm*;B׍?B8tZ0eMm0(RjSJ:.M1/'~1zsb>m5&\, ~"'Ql%_e8j' C,?+J+Te:EZ7ԅu$9>=_!cO:SגRC?_9C?>7[>c)@/&L\vóC/ n&@IOs2CeytM[Ҁƙ]WٰqK2kx2'zZH'y s53ؑ}l洧4nv7PhhAӌT3.[~ 3kB"MTۂnѫF&́%+̉FT-AE S§#@apҏ[ % A**|_@*Ty!i%\oBYGmdʜF(!|yݼ%_$eۣ@ƱwEK%2Гz|cK&c?S_z<-Rƚ3uN2?y[f!Z ww K}b>F-mCmdɑ͔|Ը8`:;Bx]@E"=Y`lx-K$e5aNfq@yi$NW q<4ƴW|qRI5a dj×xpߜC +Yl=F!0fEd)a(-sTqYV# pMHOu_Xܼ%kȌ|K OH3ZKycwD@ЩgdsFu*-g]nm-5R/B+"ߢ1p\cH]1U,ӟ3&M} 1%Ь}* _2yu|TR Jl\~dݷ)I:& u'kQ#f 0H~0XX71N| &>?UP+tYR.;bvH}"f#\MsbCH?o=&]~ĨCM}s֊Q&\` eU+ץN>b&תKjCp.#EH֯t^юe 62>O!^fw 6V_UF!D$ʥZtRjtX}&ﱭ瞹ZwrJACR'CNl7" eIg-YNګi+nʽ;7RhMf7iky|^>a3V. 7hSS' E:o:@mIz(4rB 0 O6 p~CV 3֮?ÿr=&,VʣTz1(H_xSj$ wcOzzjUUʔI,Zg݂.}{|ܫn8Wk jC,LVC.kǟŸMU8mӄeFѦ^ʏ56Ri%( 8y5: EZJEVQJ \4Yac8h/E؍w7`=l ~\Kwa"Etݍӭbg z :yIu9G(,)L{MD>-I9θל>qډZ=z'J_SS)gT0WIKsIYʊõ`jFHQ3&2-˹4t;"2@Il0YC̵[o&McC3ͅNV5cCzJP\24Fшcd$k (Pp@ tw*+H dX(:" :SA>O!W}wׁѾٸAئ鋖 ܓlL":9 g3s$6oTc qik]!ݛyU1b?N-Y%E"gFc SwSЏq2U3GQoc7D[HP , ҁL@&n"xhFyx:@cϯ-CbK018>ZˉڝI1^Aٯg|Kڦ(OsoT,2##dZfLLЃ_+B|vrۗ#9^I*۫M"n Jhӟk,Z7e>ic:L(1ll>ZRyIr7=(6`:@t]/Cccj~R#(@+lU361u f]+܍"vN8a/:L\J$-:|MBT~lk]bl HH>_i7XNHO'F%K> T~B㊀EL:2*0s=\IQ~- ,Ԃn>F=)|tm@''VdUGkɘmjWi+`ŷcE+Z7r+WLÇm)M%u !9db 9 .u89Aǭ PZb5 \PG&(e!2@{Kl|Za_T ?L34-VWVRi3E&6V=\.n%;`2RE~,nd!DR~܅,,,BB8̾q.R PLI}]'v Wbڙ=jM© =:Gw/f zpQ`ާjrR!%Tfa^5TJ Xb"B}hI"t8ȧgC쁩FqSϓɍ)wFrҝo"Z3T  PzB¬8v2"̫?5;QGF{-,(i D\qH$pvZoXkb4. C'yI2Iб~h V@@?Y`|Q'PзW >ی$_h *ņ0;{b^=rؒS@pw8MLX6,9^.^ '°_Mi(Sr_M"= G6b=+ džhBハ Qi5)3"*˝jajKYP7=.6ML>JYwc whcU6Nd[6qB]YJ5bM :hld]Y6R~XíoCc?գW$˜, pGniy!-z'FuGR˷i: mcl.@چ#}O@|fұzʯoQm9:?z`ki% E%l_.`hH |bL A(4aŇI0WOkF.MCFB1;2f=7QZΑXKC& l/: ׭ЈӂoʞU3 WӋwNXa4GK9VFn% "}yEkx$ڙ3:ٱ0闭5Z[m^xA(VJwH\ONBh$ڝ |ԓ u2Bl4Nuc <V^cľm#lA=ةiU:$||k"A\h y>u}mf7eyP?!/LS:(-j?KU-:=<9%#""DH\Yg G&Zrg=oؗA Btkˌ+&C`8FF͠ܒ|%\ R<_LNķjt<6ي"xEPd d> sj JCEHSQ<7ȖHaNjX=N֋lB*s=_&m +-dWK'|EP2hNFلtq?8'&hcgB?s8xubAF|՗ρoW"Sᤆu54{YZ\q($4yRѩ5g+Ïlls2:kP]%d;36!V#RDWs eM7l%薂kR2P,=aJ^>!ľ Xj'3* KN DN<2J.m}S#79xzoKX95cC_8C(2riK.vk5, `y"^e|G'ϊDbTh~W%=(!PQ&@)^e`ISJOw&o$F:HӖ-Ai fL:ULs'< H<HGNԍQҖifY֐K#>.B$HZ}_%2 MUtC5zi85b[tFAZOHew֑+58rBU&OK\qʾ֥9DMOG>öꂪ*\ہŘ~q* B!Mu,N- ?AIP148$zOתm. qr22{C*Y)lp+'2g\J匥lϮZ~>[bf18@n-{Zexքickg%'ݭ rXjjS8Jr5R(JSr=rLݶj]`p#' Ztoj{Q@Ҡ#16ab;t_G,Y?F$<<DžLaHM.r4&,kV@L"yhFM6ThResfr]Xu؏I-d}6ݵ`v&\@?d*$8>\Q8,ygs31 )K3Yi_CHlQ!"@fqz(ҒM"Vy14Y4E& ɩ/ a ydQ ^֨.4Q KʵdJ<9Q]V`qO `38f1 '&#蜱wuFOPk;AiL^7D+ŹU*MD뼅-ξG*-)JC`7.?w*QN?ZºT=sr!XIY*]mgߐc:^HߣFAJkGΠus39<N6 σ `4BPϼ!$o&Qto]'X?0R癓:m(VX.<#(0ǹN; +ǝi\DF;)y=A{nmUm: !b3%x^Nhc\)@Ȍ!Nz*M5"Vj"/\2adkO:z'>qF4꒹g]*Ub΁6ZjCFN & :iuЕ-=|=Dz45)z!,;3p!F׹7U('" }W!'~g$_ HCR:pun݅ `#Ds=DW5X`_ _[ ߻3ƶƔݠ;AjUKQgͺJCCO1{EހJ1w$ɽZprAaa`@EPD~wc]Xv YE)xZُ?NIJ?6Bj' +ZJ'j*fk^_{VEΤOzy T3"{-;&?*KL'SDKu*<@#$)1H&M OYFE:nh Np \qj.\DžգNWMSin heJ#:R-0]; ^PlkwNq`(6%>ZxK[ghz>"m>i3 ̟ t69yzR73k z҄ͩsr[.xt28SKD8&@v˘+b$i{Dn j0 e YXsRݔb%L,̢ :., U^FR@ƞ4+R䌷!ۥ)_=e u{*%Jj+ӯ!:/ ܬ0k(GinH(fƀ^uİO/mWl;#_r]{%mZl8E|Mk*2 ̘^fZq/0 Ep`]o^vām:ϵLۮ|Y+Łd5@hR ~\l_d\4HPsG8z1_!9TN3 =ylb\gV݁ 0Ƅ2=@#fdC h唴d>Q?3l22`P")ɡk7)Lkʬ%|f#&@ >5!fOaO^> 2`&Yˉ `#c =. /VV؛oEBK5 "(H^St:j Zf2P~SLjY6%[m?eivzIf \9᫶A=~k4$&/v&v_ŝ֙1‰/֮DdcM|кwd&Z ݏK}tŮjH0"{3,c#0KƗC0zekz7… x",I>\Wp˿TR4LG w`-x^8}} iψmA֢#aEqkOP%֬ hpSuKZE"#zװ <5{¯sgadB_*¾DktQk-Qq|֢EUJ?_I^;\e]]lD'] vg2XX;O8ǣ+`FTq;6a J{)5 lCi>h$jQP̮V̫?+D_ֲH,fhifЦġ|dU܆n9fEJA6l9"Z{n$̉DCΔ 6N+jykWʿ(;5*ʖk),|ۇ(C3pV2)4{q7<7-.J3f6alh…T^W:} 3yƼPnUм{+?K@`[PuUisEpj?ӬŸݔ1lHg_5S-Zjzc6LtvK#;R-Ur` 5ەGVEB 5SRdd)D!+%߀Ѹv',N֭ }+kp@I >f_r_V bQ~ńwI{0']ǃXVⱇ>ŞˠR~=~hрolhE{#&_mPq PT<7,?ٲ?aI"DL]V} oTz_b ^A=G;C=R1Q^[='" f~C2@sfh*x,g0 +MFkf[kd=Je%9> qTLu:v(?TmD! m0Xn u Z0Y%uSfsZؚiV!`((1QoፄtaWoS-2qNU6oR/Jų{\`Skc+4kT. P=p!,J)]9ClxAuɆL!,w7Wge>k_ɞ`IˀQFپGoPY6CՒ \(}&-x53[6;)x՟1mn{냫 LԅOO0tGf1lܨN2ɻ> @k*5:В;a`T[͙YXvoUќO6`虨}2x1"?t@Jҝ;ӛ3Q*va]~j3S"{&Jo^&:\ab?OO~T"~.rbMp>6 *2CulM`Āj֐3wN4}Ll=4MU#YY*.j~!7bؿ@8벩GF D\ ũb ;O5n.-K⬾3թSፃAz^ +~*hU/z B]`^Vv\f^PJ)al!h\&lX.2W;';UɘԅISC9w ,З3ؑ Unxg0ftnd~;n3EZ~{&%GFi:C,1u:84cZ\$P+x-^ ̥1]XQHtJ= ,jh]TgJl:Do8ęТ`KZ0Mi۔@l@TǦ1ˤ(:Ly3Ҏ9D=t 1Bͪir}FRF"bd·Ԫ=U@h3MΗuVf /Vt\4 F>E6bWuz?Et{'Zb}pZKrP+y@%9ÚշqH6G({CwpmYl_BSSNoM|uƊ,ݑL st9-)(uwB0 'S{pM*VmT! 5=C}B"$վc(O !/b 3EΥj3}Iu%EqO_Ə z8R`YWE%/ Kʐ@&W",kK`7x31䮏Y%wUK5JFE5ht4S PV.W1{ EFKTɜkzmӼ+MR&M# 0%Y.c]O>АO,mh.R`;Qb$c5iԤn9HTp2ƢwAo'BX4gЎ@!8-? }83ﳎ*qvsyFN3m qKಧ8?bIK.EyB/w{洭a6npr.&R(%!\ kMO[cHs9 u9N{Zzuq`q<kUO> ḑW$G 8M*TUԋ`0@DyX4dK FhL>²L`N@EnLu%TLsQU<)X <3Rx [kdA:8 . CtD?ɅVEݜA"✧t.q4Q5O8SN-C>&J_o`KPn1/oTS+tcUTž"@)zCO0$~l7܀9Ymx&iX 9ջ=&n${ΦxJ*1ᙫ5,oAJW(.X(~[CII9{ȏxJnYI|Rb9–by{:T]P8~kixKo`I+ߟy(g2a.v˩[D=.xp| J|_km3]$T7vhjGvqh * SnU(y2skARg_ |={KH͞nGdEtPAJrvd#a@,/NeAtk~o0>Ҽ<)&yX[ j(ܸ2ըnۈS6x4fN$b h.z~ty܈d<w($yH[mX FvDiZ1$n14Vy$aTI?#TM6Tyd|X@ ѴhLlPBx$WZ|};}q@!< ;g폘(xHZ6AGZ^#P}>Is1KK*QOhD˧Npyȑ ,9!M iv&ڱ}ec N ̟ΰ))PAv͑il՟293ݤ?ᔴL}tLB 1+.^sA15IsV{A1!,\ol-!(BPwT0ձDMr{kx__XۀV8%uc2}O q>Q m+*88cXuz$}3LpݨZطc]1[+1ޅ[<x+ȝK ՌWJh?̲12q?k~R!}G't=]g˃3s VDŽMx:/~.5/VCҚi]@?2v$o;{E+!s┰2mO("bc'a` ԿDQQN$CGISb_}vʉC{?!y\hR̸5Ǚ0,oXտPSOWv?}$kL⇃E k^f Tlˋ&7(b&;mY=$"H:j?ƕNNZҧkGh1'"tP4П2jJOuafk.B޿96S)O4b518,h^%RZE ۊ2Б]JwuWʐqɿw»b $ I(z4FU8},䶆{$ BBVͮPMQ m`~/W <Ņ=@:vwZyp/biʷ.T3k^ qy9?-[`d؟Qwjs,:0hGYw :J3avL RSɗlt1վay$0h ir)ٿI6k~ͤdRY! {BTF؁؝|5+[J7 0FxhTWZs,~-:vQt$!UXkO~W4`XRi41l+ܤ*>5%8(B7v$fDSQ1hY EʃJ<wxǓpZ 9v6fT. ^" :?E:0Lz]o`9)w3OG޾C-z|S`T"exKOgI+z,`6-; n bj[(?x ?źu3BP0HT$J6;`-"=4Vl`5;5uðy4`9d`ߔKƂ2TYKl7o_$=ȆopwL 7 㗅 l6D>LZ5BV>XQ9w,zbP\a΅51%'(uziYPQ%fjuYHcMrmH^9YF3Az,(zkZD|xGaw 77;w9*G jc{(']Iԕ;G,}vAj}b"2Ŀ΄j ^>ѳu[M/I*nԍf6^dCt4?k=33m,EQb TȼNUM' FƼkD-;v\+t,}8#BS嬂QBP3gKnZb?!Nb|W6n |45-cqױL: &sܯ>Ch7+X*OY g" wWV6^,*gBJ/6;#2~-KA5kYD߻06' dXĥT;S5Z>1+);hkE#7%f)n'dVH$H_V4'ogJWh8jMIn Nfl6\eYA]BcT`3.J @^c:RUwj&c /#ڄk]2w;ˋhC$B[DҠik\b-+=\-WӀ*I'A ;pJoiu|3X#:1|bX)vdüj=P`J kj@RK,ѢhRݜC5়bHQrRnQ|@7{4 ~AyP?3[!Buɋ01tC/ݮ jJ%4t<=B=,:O鸞?wUHQJff}±'yȽ'EAu9 mp/PN] "Q\pqhu1dZ:5gHez<#2-B Z! Ej\;/dkı[ pE66 +cV!ܰDC,gC};_ 9[FMT:͊;I@.X#] R '"V'u)%gK" ?ne\jIؙ$Kk*l^M*Ň}Ƀ*ٶ\U{:G["ɲO,5z+NDi%&T+?3S4^'MQ*!sGfji{AVrGNy)P{:1?FrpC@e*z5VG@ ?` x-*^Y >;O}bjn h?Wv `O;$AY/4s8UYOc=RwHeH&khM럟tA)z)Cg[/W~ۡڒ+ Afyh >*4`̫ vHV?uO/vh->ްȞ}DGJ^-,R+GOB<A5NSb!on$4{xfe'=٦g*X9_Me3!{ZJ0\` \?)L 5iUpN& FtKᶰ; ;7I_ASjÚhb:~T`t[L䘉FL29_$:*]W xkJ '`UBu!]L=,{KIjB ٖ-nkcTt=GaY{βkq>Q$7_.Jϧgipi?;5x 6wa-/|ǐ8&y0L.l bs"` 0pBdu`sL8{*ܛ`bش噕*1i>u*ݥ/@L=1)V(,^;6 ?0^dmd JZv[@?9a"Oغ꫿\dvLpf?o6eYթO]8}(EH0/-+C>|G# 肚@uR@R96_~rTEi)QjّH^ߊ?yLT x&ołW8" R& &sZs@Xn*g2+k ]CPzC+~#\frЭoKMcڒm t(?]Qy)b-:C7ZZ0y -ۓɐ醎N5eBJF/{ jNrޕf :8=]@LH%bvtu}+ ww=R,bQxla\ ى taC9`GW cNtًP>1ᥡ^]fSIT OA*Tm`E~bҥ-Ƽ1f&gi~|l9DTSÔfܕ#zfI_gZ uĿmҸO\Ғ:;!]z`1+ҴglG`w<xjN,(|Ma,iL-*qnKRb1mCFKrT>|MTX:/K\,u/OFҖ/R-T"DT[og 9_f֩elzv *adܵ22XFʏj2=7xdXa PY^p܏\ 4[K bY (4jwre }O ah{qQug?XV?#ѳk}0|YAk9"Mg+\W#N6w#,f) 2)xֆ),'N:jASGHKuMrbrC:AÀ~!30~Dze*hSRT_{B͔}Ût=4Ϧ=E%QiqDeB cdB˔{ӎԛ0=K1[ _l:e+}_{%^o$Vw>\{曬!Iq"bz\hf։awXޫ2B1c.2!c&JSF+n6i6"=}U??;>`ET  kYf>(rYrkV :! 4sdc!ػqأVc˜[ D}CQ3Esm |ج8^~}9 5+56l3 RMW¹T_JA" M8m겭K͝?jVl?B5U;ܰDR_3 S|fͧp z7v6fcUЌ$OT^1_|N ~¿L!< xӺ:}cC)skݏgڔԻyߞŬ/1y5v7xDD?S.ADZXD[C:fעd%rE:t/O[ùVX]$hIϏ;F sftf?~8.EOL}k0\hmvY8ۄ W`aj->`}@B'@K9=`6<G۸Iޙ YS%sIހ"xݎr0 83?$̋;onjxzpÊ"q2:)␰P)S R9i+Y0|ǤRdRNk<3@e{ZmJ !hp;`IӅ#-[* DKNm>H%{vy;{Ihp׫@D$|Kgspxh:VKPI/:=~+$@9KǾ0v1/=4v%Ikdr o 塭u0odcJ!Mm,4ӳQ&U*S?lF~H-q8s(#%LW\+>m9QrRakcrZ͹ׂQp'q m= С;mҼ+9JW*$)@Bl]f'aiHskOaJ\FMDX&0Q*k甸oҐ4\B!ț3'mbCsSܸTa3k[aJ/G FAVd8C!T[7}&hp1:9(q3_U -bNA\Uhr#.ٮ7I$%VC L ~F̟0૊ibUNdVi됌_)mkjℶwu?1-tHWB.1x,(E;ǽɲA}ߛcqwB b8<|ղHU[OSG0uSB% 7E"p #uDG+gS$ J1b$ G~>`r8[y*s"遝E `)aE2qeWIISX,*l*.t㥿{u09'[Bc0޴/G s\sAl3-7T؛c%ǽ2׾R+q8;p$ kS~X󎌫Tlxg֘Itݢ=58FOzY߆=c6tͽ_<WSqO'XMINnYKlV/TYTozW  *Uà*ϔ~Cܩ<lDa>̒ j.fnL6=]>zkG5SvHi`,E]JxaKGdYUt2YKPTcrHY3 ]Bwse% 5ާHLMBN:6HswŐ`gw4y~R 4Y;eN4v║D6Ȃՠ0ڰ$:G}n