openvswitch-devel-3.1.0-150600.33.3.1<>,dgrGp9|gB^i˄A9AWG!in9)]|*"=\-u@NⲍĜre.ol蠯4DkvIh8D>ڥ%Ix~HN AJ'u`) P֒ Qث  B1$L<-^+֘1ԈS(>_ώS?ؽ.O) ܧJ? }*OAP=^ 1yBK  ,N UAk>A? d ( K|  #)0&& &  `& & V^& W&\&bJ&hh0&lmd m nD (no8nxj9p j:wjBFG$&H&IT&X|YZ[\&]&^bLcd{eflu&v0 wP&x&y zCopenvswitch-devel3.1.0150600.33.3.1Development files for Open vSwitchDevel libraries and headers for Open vSwitch.grGh03-ch2d#ʲSUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Development/Libraries/C and C++http://openvswitch.org/linuxx86_641# P¼NIn)7OIP&K+* )BO ~ l<k4Y,xW UY! M+#2+ 0s99h %zrQxbh-7&E  t \+Y|y; k3w I S4&)Uv9Fm /tSk\OW@_ 2`G 8< :Z ? ;!$>Y~$)N?-0'O [4w  .abE@!W XN E(F& t '&I% G H   41~; nh< z U  yy'#BnL8) TrRZvz!1O I=4[,A큤A큤A큤AA큤A큤A큤AgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrGgrG242e5a18626851b66600622f942fccfd1cf0eaf0c1aa3244d1c37981032ac4e8904813c8078bc01f8a36974f95f21affdbfbda4d71846ef37ccbbe234a6110324271784cc979835a9f97532052f74db6306ce4f94b13d0c5b1d7ba7d6352df390cee52b0eb10db4e4f61bb91192167ae919c59742f5846265ce5f1223d8be7ef8f882eca6713b1bd6786dbc4baccc499becf40ace89a10a5e5cbe56e718f8924179f04b61148324280e960fba3abb9661c3697971672ad768ba82e316a43a551b3502c29b0c79f8d9f3cb14b983546d4eaeefc9f552b8dd396ec3b7ed0646a0f3f72a1c80f051ef4db05de58ae73c8bc0a96d39c9585b6b9d0ac3fde9a11760ed6f5d6c9bbd5df717c73122f41a3d258706a66feb1f9af4e97f7402df7cd0c1501d1d77ac382501247ad59c07406ca7b84fe05329e2b04d6959d21e78390f37a357ab39008ce3a063da4a09050235cffb3c09a20bffdd43bf43389ffd27f3da7fd9f783ff0481fc679e7d305d02a48fbb5b8554ac62b3b7330678bc51f494c00dfec2338087062b2773b0a760ed03937afb3a262a522f15461634fc794d459c2bea0e56190668e4703e4f7201a82afb887a42279d849e9b75e48785f39211ad67e318ec3b1c8569aa31035aacdfb2e63ad87773e48d83d5491b32899f25de091f856ef10590a46d3fb75da32f84f4a0072b8fe4e18a1750bc95a7888dfca0e65a3593fdbc0a0b33b26a2a13f3ad7f4bc7c13fa7ece17121a4ce97d6749fe937db8142a74ad940e7d1d6f7a8b4d346b96165f3e6557ced5af2ac3f3a8cc1ae9c4a5c75caf22e25f137e86b24f6e2c19935934be02f723daa23f8d399a4781dce98cfa6994dbfdb3925a587be6bc22e6b413e835b6aa0ffcc3bfc473d58bf58878231040c6d8f75c660fe1c55f0e31e71506a01cc2270802459c7cc2b3f2a6ddc33aca175881dd80f6d419bcae9216393f3b0260a169f62fed664ca1e030a58fd458a3e221c737a219d0792817aa1e3d98a8226d51345e8d84c6b8391dff6271f3d68da26f42f09fc26ef34ca1da50981aae7d8a4cf8e5ca7d5fee3747867fefb0f9fe92625af301e0d35a943c92378e111b321d7cc733f71bc27c5e8022be3bb72f8de587abc010f7bb65d4543ae5e8ac2418c800b51dc2e23d6429e7f26ec494e795b51e53397c1813397b295c4b6abb006a8f436a2784a69b07eec1e8410d9ffc1cc5764c32664571c8fa059a40f0129a9179346eac1ce4add874c4953837641f3014c13a7c8d9c8aacccfa842a15747f0ca28cd8dfae9d264e60cbc400951b7832e341de58c49900c770172a2bf62b7915b0ae2157cdb2913c889ce51a031badef707f8494b3de1e31c0c5d193c6ab3ac6bc25e8a004b6252c3f5cee2ca2e89200a08d2807380c72e2542563b97d35fa65dda4a48c3b719af8e74bc18bcd7b3c256667d691e7bdb652a6302d639a4689c62dc3e5235b8892c02f542a7deec304a0ac1ad6b319a17ae43909e05469da1e48384591cb9320a085c2ad58313207375d2a30e1453b604cb2940b2a54070b10cc55a23a40f9ea964c0c366bcac014f918e4492fbb5147a37e7d94e6b5e8eceae64f5ddc01e7ca0cb67d79a12da18582608f5c0f0ca9ec25ad559b177427a2f52a0776e3a8b156662b09d366a5623285f316ad7dc2774b7710c47e68bcecf452eb85f18f697b0b20a877d08b4ba385f889912b383bcaac7f43b102acbc791306cd6871a3d8e3430b987127666bcf5b0f4aedb6e360bcb98f3deba62fa8b1bc36feb1d18b75fcc1985398169bf9b1fd4c8b56993fe9209399f26b01f69fcc73f8d3f69722f9194efae77f61bc370a68f198d87109051c0ec152fa2fa5528bd9e3323eff15213a4309e5ae4032abbee7eb901d613be105e060580ac5994138d513e7eaed322ec1b80ba3f2e66f20b8ac2503c2e4d843bfae433a4d6215c44cb92e31ed59dff33d7191b8c7887b13f53169f622dc44f91586714c306165bcf63a0da3ad5c0917869a0b67af0f5757b3ace1f4cc19d351be13f7ac3cc359e126fbd010e2456fd32866bdd58486eea20300691c4f587988f48434fcd41d61ef10e86573e2e457043b84de64608330257178d2eaf88e4a6784dd4d57ac98864cad8f0d4e794da854e2f56816fa01245ec7a9f801172a1562af54ee6a4a43985f344bb513a3e11f7e90d1bf776606b900e833836de87856cb8b715d0fc6e20f7191e34a73630d648633005279a39fd98ec2224e58b05cfaa19f71400d1677b921018b20028f12f206dc9f6d5e24e717583fe0f6c9221104df5f72f91db22b20242bb581cd06918bb9f376ae3203d004d9ef09dd72f4edd650b001e19eadb4d54c4a72f0c9e75c7b664fa4913a7736b21abb8bae76be5d778aed5ff63488ea3f24f944d240b5940ed2332ff19da6a05e4944613974645a76b0b0efed79fdbc987bf031af5b9f28c733e6d7f01d226dd94d2320ef54d24423be9fa28c691999f07ea21012faac290a698f26512e6e4ef90d1cb355ac902985ca88e4a1055699e6c5741bc076ec2ae85b487ae92513d50c0fa479bd6426dfcacd3667ca55b3344b598e3f916cbcfbbaf629e70dbba187a4ef6e5e36f4b6c77b433a5ffe81512c8a9f7e1f3e25622caf177b2352946e9a4faa447680c0df4f706d2949e277439369d235e14e301ff3fa7ccd04af46e2c3c12915fed24f25a948d17c8cb85749e2b57d0d8c7e6ba45c13cf78f73373500edfd65cd0f97d548feb8178a1c7c069bf9bf5f4cc6e6b2b4613c5a9cc82983dec49c5ace9135855dcead9255b275c20b8693edb462fd470a4389b562230371bac66d45dfa7ef8c199513086d946934b547e08701619aa6dffa4a880686cd59258dd49f04e203ff5d7c99dfc8753fb881c977e5274b1b6b2969730c72c866da58e877992d32a9588363b8f9cf8dca05d85b1da05838bda7245abdeff98cfcdca2839b6f35d53251487d3f58582294af04743027c9c156bd2ea8d79f38009bff2053f891109dc6bab49cb7881f4483088a987906b4b9216ef9e9ee56c63088766232f5cfa4891347cdeddf990570d633ae3497cda1fd2c76c08d7ea8ddfa04f62610bce4f81db41f69e9f947e573f67a3eb84602d6a95d9ca68f6da07219bb70eb70b3311d0304bf5c930cf42745a658f86acf6f283cd29d0f11066dac50a0919d5fd58388ca2bb18b5b76b6ec6223db8829fb92f0aa4b358dd4010cfc7d47c8f462523622a1c1aec002fd5ef367fc66b5c9bf31b5874f2d5cfeb42c40bb4168fbc6cf078647c8d2e98f0b5023922ab30bf4b68afb9b08fbb2e3ab19dea1e38d03f74c2fe1a1115932f9d5af718efa066c148c17a7e7db23b0c379ef1bd8acca7624ee5df88febe41a05414b6f8e25e89df2ab800aef29c7a4471d2f9a5f0b12a6d9dc20c5134be6d161cdb7140b9002bc743ec99858938d3a5831f94989f31bfda79e1c126e0218b116504493db90cd10636454e78d351b9eeed752a773f32299fc8260e02524f2a855c3570e48bcf69bcc03c13b5ddf292367e8955aad913cd4b928d6799d6f48fb42f9e9f417a7672a02edee676c675a0b954a0371f8b2727d925f72b0e54cc2e9d0d2b46b4ef6245bab50beb32b403666e7644166e9023ad73c8f36a8ab6e76b84d05232152b6c0bcb669111036e7e594380c34bbc2d735c399e7c299d358600af8fc21d3dd0191e5d59337225a06031cf0b313c9a875e6ae72a079c1a0c75d0efba6dff3dbab1662c0244451747e499bb79fe4c81d85a5e58fd75b35370de67d213e48c9351b81d1600ef476c9a4c3746fdef7e4ded15a867cddd8d6aa00cf6c3ed3bd993940e413b6aa750fb36200c0faf1e15697054af786e1a825fd3ea41f741611cf86d4a5e5171dd7572be71255953b4ed411a66a1bef550388a98ded59dc098c08496cfe90bd741804274e1c4d74f56bc6354de9552bd2f3b957b466fdfb346f7911e838daaaca3a5d0c955bc62bd517c2ccf00cae84d5d9e3ed585369820fe171cf5f8399170b023a5f468ae240ecec9a70d65604184d0e85540149c4bbfca774d301214f393aae208e394251cb1e06a2d819d6f2acd99f52e30ad9401b681b32a972e056aebf821f9fdf962f06605ce7c1eb5f219e66087683fffc113bf8f5df3783906bc67a1f18ae0e4f145610030e325c147066bb66b2bfd1c6af369a67185b318d767f6f6800b3bb53047214dcff3d95f128b8a12e338d44f3ef44e888277385a2b02b02d09bb039d852276aee889d74d882cb776c9066827045d0cb196371657fb56f08933dc68a0436b1cff5af351250e8459c3a3db6bec47a9237d3cea51e3ef9769e7ac61d8da395d1fbf7082e572db8c8a69cc4dbaf9b9661c95556bfdfe50b698de22e5b0cd8143cf045742acd929514568b707da25f98aec6f6e3b4dd5bf49d868b5ef7ed7d185f76699636759241ba90fdabfac1b997cb433108f85f2c59cbb5de934134e0c566e6a01933e0d1898f5e33b59a1ad6f2094b032aad3be83fcc56b56cde391a012f13cad139b36bb098362c915d93deb59e5d66dd5da7834d596f49674981b4e9a22fd8d951ae617237e5fd2f050549ec61b436ca5663cb76cd943ae681eb0bbdf4c2dc404b009dcf6b394c7d06a7cf019c81eaaa38da1ebb4af5f81f7805899e3286300c2d5491c99ebcce4b680c99955b69fa80d39d45b5cdfab78370618197ed89ccd732950cfef1c233f2830a3fad198f40b502997c61be49150140706c7ec22d88c8ee0dc438102343cf50555cf38b433e2ca26ace6b3a37ef1db5d121f7052b51233cca4bd5c80e79a4d51ef0289cc3c6c9f072994a5a834b093b1f4547637fe99f3c04e1b1db707a5d2662f8d2348f2e70c913cdb58d329945fe2b22567652132089f0fe8d655b30c238de76067fd457223feb14ffa31de3eba1b48043eb8769fb77d24ba9656df62e14a451364f70709e75597f2006faa4131cada9a3bb8467e45cfe971b53d8d980b3f6d73687a3017c8876cce4f1d14fa93ab00cb1d352235063a45024549f223d84028b01a4fbacd69cdde5d2de0acd96b483ace69d86d0d683f10b9d563b0412ae894ccbbee05581e50d84ede84466bf023f5bc05d5d3fde48fe92d2dd3f5ce79c8ece737a6f81e1f3e57a62a1588cfa055364e10a5f29804cced04e98e810c4349165eddb01684868d5142477621ffec2eba904f7daaf7e2c0f3537002c631628d78638845fb2e4bbe6bdfceaff4f06abc0a206293263d2d833be5f892174855f9e6ae38c07257dbe984a36dd83c24dc1b9f0187169452db243e04ac1217e5cc790509be5e3e424a3e62bffbd8ae2d06817c56c55ac7f77deab9be12a6e4dc7823147ddfaa7e46b688719fec0fb8ba86828a62b73a54738c725bbb05f1c4d81b82938bc07b43efcbc119230f288cf8136c660c2e7bba53f2c533186717ab44f1079ea06ecd4b8e6e6e737771b9c5ba7e561ac8b17c18e48b373e06f84a3eccde0fd1c9ace9619187a9cb7ef91e1be9fd3623c845d04a3e88562d2414f1968c8886785e830ab2ecf6323b1b24f81249548c2032f2435ead367e0ddabf76521bb39cba1f62acac761808aa967f4b3f87ddf2103143ccc4dfe88b6b60537d7762c4f5db4f9febc3c420e9eb6eeb3a75749f07783718d6dfccd24e40187383bff47d27335d481f174599702508428883e00466f838512e68f65619264efaf49ed13e128542cc5db00ef774abcdbd76f59752eebdb66aef79dbc11133c5fa32226edb7773b4a12f83157a4abaebf5fc5eb07788e6441f963822a8f7c1e1b33cc45eed14b00de9433647d82bd4d8940bb98496dfc2f7a174d7e03f7181d1434be433d0cc1ee580c0af4aed397f8c2c01c837a53bbfdb4f83a0f5440794733ee1c4b6e7f14631c0729353a281fb54bffc2bb861926febdf5e7e41b27825df22c7812d57eae25235d09569aaa597608879e0f55dcc717b44e2284d02806f17b87f8ead200e9a1a3c0b7c167055efe999c0f76b2187556b8abc5b592a49a83269b61e7bd90c78723cb3c49a48cf2f3f68b8d1f1bac141c6b9b3f2c5f2493bb60676f474b264a7cae6cff5501059c7002b2ac86dbbcca6a86c52bbff1d1d01166cbae92027f145fedb3e38bc355ba98ac7d731f3c4f93b5fdedec8b2ccd4845a1b218effa5558d267fad9832a9f26e756bbc3f19fab0b0fc276d5faca042dc07c0dd036903e0823ea526f4d9bc4d32bd24ac61e95a6213a7880c7dd1778fb5e98de4d00b491fb4334f7f4dab44cba5a7609922570f79870b2289423cccad356d580bd81b62792cbf4d8dc085296ec7b110ebc0112be5b4605c189a4e70e243d047c8fc6c6da409150706543183538bb20c22b759fbfefe856b6930a91d4b863a9f08b521db537c99d7262da2e62fed801278d14f668a661d3807a94a20c63e9d92b7f653013bfd964f44d908f7e79d9819214545a3f9523876ead8af62a158f2b5b9af6742965fd22249034abb02ca285a7f7595e3d8936558aac0b44b2816bf4eebd8e2793ec8ecb7cc5af28cf572ff2616cc71667d8934064c2e9f586c76a75ec77c1357a77ff7dbcbad46ee96c7dcd396594a2b52839d110a41be770245e3f34ffc4a244468a6ba8c3505a8be5c71908d81ce744747b0ca624a0e1d82e380f86764f19babff7516e2a1ad931ed6501674f09d3ffe826fefe5986ff678a38036a9d1d5767b77e4125b57462aab3e38c4b57710fe754dff5f55cb9f0ae6479fd42e7c5892ca71ce4956e5476512fe20d07cf955baa7d8e4298227b103996cca52ce0c5eaa70c2b19f644ea295d3cd9ebee037480938d834df9ca8762adde3dd9560b0dc30a71e5d4484fe53ce485b0bed3b3b379d4cc83c04a71fb7a7fc193b420113f3f164f77d100c5b03e26ee04c7e75efaf6f29663b5b51d6b66a061377c9ef487086de20f6771b3f4fff74ed89ca6f7ff35d1adc72ebd41a5408567a0d8bfc69ca083660f1dabf5ae4b3729be20cd3f2c7da1521b32bd174365bccf032719345361c614eb529d93ab76bda3667baa57f1bdb5b26b04966c666a4f9453834aef4251507024152bc4eaf531168d7b3ce719926caf3870ab01a1fb2d9734a92d243fb90adcc63a7e884f5b47d7dac058bcc0af019b4c19ad14b9d305cd29ea52dbbd5859c12b4fa5188d85d5992725454553e6e7e4b94a5e3db98ef3fca25cb408953d00de5869bf59b586755ce8f4734f9c8ba7f3f178cad6bcdb7d44ae459d3c91ea6942ae81c237c84a15ecd4fa172761c9170e32796bebd58d52b3108ab54bd7a93987b1ae35133d2cb04a52c7884c329bea2ebe62a2db64467b2287537c8a2af0c5aa4a21d9959c3969ce93d78899828a6c5be4a734792a2195a02d80d387d904e16c20d1b280efd4585f804e6a6d8a2368bc57f8567f68d170b7c8b80f5953bd1b5fdadb0dc856a16e421c62078d768b2d01b0459ab0f841e1f94939f7033b00ee91fc26ffe4fa9dcff26555770375d54ee7fdcdafb4e09ba907540609f3cdaba2309c8b24931797f2280eb8d340187309a609c37179c564000b2419cb0d40092b291531e551ae925190c69c2ee9c61496171c71cd29709ff94df3c02fabc27018e41af85fe5aab6cf4c9a934e7d216be8d0e870368874c88320f89fbf507433e0b753082f036fcffc41193e8dae3d5fb3c470e39859ae2f17055f465400187c8f23289899fe49c397ed8a404c077fdb07fa19f9dc250c4a555a5067b54a56130a84c52bf942923f0fc548d4c26723aebe590be6d8524c18bea74d738e07bc72932902c53a532bb11eb77118d28cb0c8908af487e691bfcbfb6a746740c5a07a7510558942b38f172086ce0c6263162e371338b3c651413b38e0c4841415993e7aae1ea39fd465646c0efdc15da6557f133d7682528296acb33e54024d0776d4221a6869e0f740bbacc7d84297ed3f3c248fc622a99b44846c421272f80ab54b0753da52d658c20e64e10e25de1405fd7a1c6ee89b785b33b0727825a8ce81f8e31c4bb98fc16538e4dd907fb58e4d45106e8b43008f9cbd3418a7394deeca98f9a9c54748a470329a7ea2bfe748259a866ba33d5def219592ef214db0969f79cc1bc261acd1ef9e3f22c59a51821d42d8516271cd7a7b04c35ed7c6b1910747c6ba57053495a105b69c51118db34aa0f990d34e4c1a43d5325d16d860b2509ae4651ab0582ae8cfff9737b2511e6681f7eb5683092ad01328788fec40a8a3ef516fa10eb79084e8d49f8c60c6c1c4944d99cb14e787d682152b78396e213f6fce60b8587b5ea2b72b742473670d0c8b7f7ec00a48a74c048415010475946146ff3fae455ce4d1f6b5ab9d2fe44038b3e94fba6216ccf3326f46dcc77aaf1e7c4714c8d84812ab33d1f99764a96da83c974f0aac16edb1a033513536f99f63f634fb6165406bde2c37ac25e654f2c1fc7c852d226cae986f2423abe97fbb18197e6fd7b90804f3cf83a711f585748df2bcdcc74c3988ac923347b32b1d9566aaa8f5921a7613f5abb37f169bfe6cfc8d1355efb5eda01703fd9171e79f91bfed01808f5b8d3d6c2a4d88202993d5ec54200d5f6cf38d9347e8857fa7eef516e3921ac24e404cc40e8cfffa64dafe5581c83b04c040cc60bdeafb97b336475183883296f30fb9cb2e5b4df4e365a0f28edfad51cd624fa6708e445c9e6f1ac10d95bb8c19588356fef75cb96601517703ddc282492890f0eacbf4c9636426efa1cfea6d5aeb8f599c123e3cdad69d68d7e108d3101eab6a640a9e93b7a98f54899cee733cfbc5a9daddb851b50bd40764260ba71c541ad07630b2222564d1f054c76f8116d2bdda87186919ad53707376677d4ae6c9e81c877e0cc41973e4501278a0e531e7c91122b3b1fb9366e74b495cf7db215b57892b52bc94d06c9959fdc832e165711e5650d10abe93aaa66e1702473b94b0767b9e87ddf170fcefc8356ff96db4d282715361d261ba5d4289a15d5d1c1bb4fec3b5950cc94b6f133862b534ae282ff60a7452ddcedc987ac79e101110ff102f11e6e35167fd8ee80ae9620d28909ecbdcce0f86779c3fd9188728557ca8e3b4be739a22df5984b37cc804db7b62ffa2d7751cb99557d7027dcb228ad5088ba8e9fe6ee3934511427fecce233aaa022a14d96912dbac76d983c5a9af2a08e2b7bf2501a78c57436d8d399affa837abf9870ecb827f8391a1bb53559caa8eab3defd873f400f34f7d8f1a6c53f628f086649b7500046274c6ace205d8d70a1c990b13af4024c433fe18ca4268d0ddf8fbdd7b495358b96738b368ecfdd25a1f8253cec4dcecee45edb3e07c34e2049b4531b48e19039e7d11faa9221be76c68035b6a048a6e5c5bdae7e6dac8217b66796d27a411835271eaf09ae02ae82fca8034d246c1a51312a41fea454d0d6d3b47690f5c33f0d58bedb1aa3e2b4078c1e2a683eee988617f3e9f0e3c19c98a403d37c1e7c4739b47f4d1ba8f2bb4341f9b3dab4bad35de4742ed1cf7bf0eb71e435b99919b5699f7dfc157f2a3962d2500a9d1b249f77d35e86e8b406ba8d5599a178367d3ce42dd62707b0b1ab8db4440408e1e5c002bcdda8168ec40e856d81012f098fdf0882909db48512a875cc495648a12c1da3f4e849499a086774c716d7dbcb245e8b3249242e41739172409baa33a07f277d5615a2043a2c3abcb2dddf20080c0dae8d5eaa8c6821a5c2f50f94c311ae72d81b5f2484eb0d9a1f68a6fae6d2b8ff510d6ea002b10f9bd415448cfdf60fcd0f61ec4f04b3c154f801f38d29c10d42982c4e6ef89631fced239ed46bf956130a7335f66c1c613c00b0d4bc262bce871391f4b99673e6a6b7a8a90cd2f8c54f261ed0a22191c05850a22ce19ffd4a3f5af7b4673610dc9587e7fd3f3c912e2180bb1aeec3b35836dd81c1ee1ecec4dceabf5bcc7ee8a51d5e01b45b3d854b902f69139797af42441e6c6b7edf788b11c8818042bb99bf68ecbb539512fec4c08512039e294f1d07977251481c53eab2aacf2b54db1b98be89c2985aff03d21368d01409c2f3122cd32f8e6c36ec9f07aaf08d8a1fb504d9c222aebe8f301ec2a68984fdf11cfae3a0545efa120a3daac4c1c0724066ecb6f9fe53b90a97fcac95e96f86a17f4190a6d95322edbcb9951e4c5205c63c796e9c63d70d0d47af51341f4a5b4f8654c02456ddaeb31027a539031efd673cb11848405f6f7d7ff78ea87dbff9980839ca3dda40415a80e5e5c31bc1133e9b190a18fc728ac8c368d2fe203cea1b11a7236f46afa2433ac60abe10a3d83f2663cb31b7fdebaf13d47d052b8b09e06d1934c2a7c866d2e7153e97e074a50d2073bb1a08d21bbdc433e11a1712bf60f3291e8d2e5c293ce0cab4b38b3223da8416e040b5d7e5eb3174a1533784e3eaf41eba0cd83f9f307c60c164a1387129a2d1c42b864551639c947986763c8161aacf8afe6dfbd3c02915479f9da13b27ed716229c6b0d87ff4858e84728c75c118684326319628951ca55c282c1cc462f6f005edde258d5324c68b096913a01ce6c9b93d707e7cae5c3c1440708d1f26c6bfa45d456f6ef8bad03b5f5fee6013571ef3735d5bddf51430cc1bfdc4881411d850788fb55c03ce740a429c607d0ded1aef169b0778a8925e28e70cdda4e40d6fd3c8e7028992cca3aee9c9e0f66022e260322fa76c447c32aa3af013d0c0e8cd0d10577b7c52f331e4edffb7b22a06c509eed3a8b38df67402a0684e7acfbcfb21a19789312202a633baf6a1b3ab5696336ea2a2a434d481a6254216e406a968215933e61ac41bb50c3a81c322fdb0b00dd710ec9ed1aa7bb1ea89b73778a21a7a34df4c6e2d5adacc967e9f3b476f4fa3eab5a627ec795b91ab4655e7fd2167ac8d96c6ee292dbe846c424268aaac8aa710d029c10a632f3741affa49a1004b5cdf40260ede39d223b74f429e20e266c9412939375231d20ef8fa2c9d4c49d5a5ca997121aa54840a5af24cec4e76645f0e51ec4476dc877fe06ab2b573acb5e8eb060dd8fa0157be6f2db784e350d5faad54cc886ba0cbeef8706545a5d638198dea690997649649147de0678d355ad06fd507800addc22a07691237c36235f9ad27d7a5cfd7a52a9a2dee9c1762a84fd60a6335407dac3d838a524ced29fa0f567ef88c4c687f14334da1633b6ec97fb13c71f929b48377dc1e2aa33eec0189d2e6e7dd9289c9d9fef25598ee0881681fd7706c6056e5fa45bc8510bbf4a2b221a88f1213d1f3cd07a1bc26491ea1a611f31ada94fe6c0b2f6ef4ea0a7482f58d83f7e8a2d566acb262020cb1b348bddb9461a1667536e3905a7a4b3272929ac2c31be78dea46bbaf4c3021e7c5162dd10649b39d5ea30e9e7ca7c2744f6952a04ff236e10792f07361f1e3ca61ccddf763a76176430a525534e077f1a0aa1335fb2721339ea126f83634fb50e3657eb5e84c961527dfbb8b91b5c68aa3e74ad5d2746b76600551b1c71eb30731534b080e46399fcd9f7a7116a70bf214392ea4c3e3638c50f05092ddeca8e65c89e3589532c07eb09d22a1997229c209b0b905b99642648f06f2fb829542324184596200fe1b7dbcaddb1f7e111e14f535d33769048a7e32b5bc46ba0b306020894650f9d16b47c825d87a0c20061f4b7e85184b0d1a430c4db714a6abe780b800d908cff2eb68fee9c275a29a309b454f81ece0e5288be61860d5e735d4a5422bbccbfb606265c10910e66eebce8a8cb64a909500860340b61bcd9d17bd580a09f4964be323f237d0fada29d45982922f4bf8b80c6de42ee4f726fa17625adb7e75a21c2256f38c08e20bb30ad5e0b7bdf9b0176ef7754b4a7fe48652c4a1ded11d21a66a02472be2cd83949e4589a96a592638a3d8fff0c6c8db00f0c133486b474d2bf06c8b2cf5035f8061a825f62f852b98b45b484bb553c62eca889aca72c32ef5c737560502031af3cb363a5749efeffdb39a8382441317f2365851642b41f61297000368cdfa8fdff267aecf2547775233bf127334cf9b4298808202b275fa8296ad73abc953e7700f31afe7fff98d62a3e0de4e61725db1f818caa6183282319b28f1fcfe57849311b937db18378dc066ea68bc3efd401f1431a97ea768d4e28b7fe1ba596afbae1af2ea593cff460acb0c6f364b355fbb5a20d2b4f37bd160db3412ef6d5d665cd2afd43195c5a6506cb622f6f9a503d8d0009b4fa1d51b96dd993ef8b9281037a954bcf266ab1e9fb486b40a02ed19ee122cf2beb08f0f817b17965b57825b1dfa8638d1d3567c5ca53391199e0802cd8cb6aee4cd63d54d60fa5c2117cab6ab538cc16a2185f53b4692979e44b625c2041676ec6b362e1c458768c40abe988605fa5dfebdcd2defe5cae6ff8ae749390d24c2895f930e83a1c78fc4473e65addd60de6becdbdc247f90c2f5a85489dd2601adce649bf4983dea4753c3a911262525d798515f03cb7a68877346038f3054148446bd3152e43f9f326a09c5219156b4bf031a9e558ea9e09f34063d44950f3a158764a7adce53cf4b8ae3e6da1daf1a40bf51bcf1031a831e7cb837e4686cc8c0af2408b3f38f0907b3b787cae38b355909b68a6d39171874ff1a5270fd2417d741f7023bdd0758d0e943621288c989b0db61caa4abfa3d54c8c0f1f5cfceb12d50libofproto-3.1.so.0.0.0libopenvswitch-3.1.so.0.0.0libovsdb-3.1.so.0.0.0libsflow-3.1.so.0.0.0libvtep-3.1.so.0.0.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenvswitch-3.1.0-150600.33.3.1.src.rpmopenvswitch-developenvswitch-devel(x86-64)openvswitch-dpdk-develpkgconfig(libofproto)pkgconfig(libopenvswitch)pkgconfig(libovsdb)pkgconfig(libsflow)@@@    /usr/bin/pkg-config/usr/bin/python3/usr/bin/python3.6libopenvswitch-3_1-0python3-ovsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.1.03.1.03.0.4-14.6.0-14.0-15.2-14.14.3gX-@e}@eez@em@d@dddP@d-bc5c@bc@b~H@bbbI@b/.@b+9b%bgb@b@` @``&m_F@_s!_N7^b^א^^E:@]@]L]-@] u@\F@\!\@\\|\w@\f\I\I\Db[@[%@[ͻ[@[[9@[ug@[@[ @ZZ@ZZZI@Z@ZTZC@Z'Z@Y5Y@@YJYyYoIY`@Y^&@Y)j@Xf@X8'X2X&WH@WWίW]@W"WWzOWs@WrfWj}Wi,@WH6WF@WBW>@W=W+5VbV3VV޾VxV'@VՄ@V͛@V͛@V͛@VGTTFJDuraisankar.pitchumani@suse.comDuraisankar.pitchumani@suse.comDuraisankar.pitchumani@suse.comdmueller@suse.comana.guerrero@suse.comDuraisankar.pitchumani@suse.comDuraisankar.pitchumani@suse.comdimstar@opensuse.orgDuraisankar.pitchumani@suse.comdmueller@suse.comandreas.stieger@gmx.dedmueller@suse.comdimstar@opensuse.orgrpm@fthiessen.derpm@fthiessen.derpm@fthiessen.derpm@fthiessen.dedmueller@suse.comrpm@fthiessen.derpm@fthiessen.derpm@fthiessen.dedmueller@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comdmueller@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjcaamano@suse.comjengelh@inai.dejcaamano@suse.comjcaamano@suse.comjcaamano@suse.comJaime Caamaño (jcaamano@suse.com)tbechtold@suse.comjcaamano@suse.commchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.dedmueller@suse.commchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.derbrown@suse.commchandras@suse.demchandras@suse.deolaf@aepfle.demchandras@suse.demchandras@suse.dejengelh@inai.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.dero@suse.dero@suse.demchandras@suse.demchandras@suse.demchandras@suse.demchandras@suse.dejengelh@inai.demchandras@suse.demchandras@suse.demchandras@suse.dejengelh@inai.demchandras@suse.dedmueller@suse.commchandras@suse.dedmueller@suse.commchandras@suse.dekmroz@suse.comkmroz@suse.comkmroz@suse.comkmroz@suse.comkmroz@suse.comkmroz@suse.comkmroz@suse.comkmroz@suse.comantoine.belvire@laposte.netandrea@opensuse.orgdmueller@suse.com- Fix [bsc#1233369], ovs-thread: Fix cpus not read for the first 10s. - Added patch, * 0002-Openvswitch-fix-cpus-not-read-for-the-first-10s.patch- Fix CVE-2023-3966 [bsc#1219465] openvswitch3: Invalid memory access in Geneve with HW offload - Added patch, +openvswitch-CVE-2023-3966.patch- Fix CVE-2023-5366 [bsc#1216002], openvswitch: missing masks on a final stage with ports trie - Added patch, * CVE-2023-5366.patch- convert to sysuser generated users- Add BuildRequires on python-setuptools. Previously this was pulled by python-Sphinx in the build environment.- Fix CVE-2023-3153 [bsc#1212125], VUL-0: CVE-2023-3153: openvswitch,openvswitch3: service monitor MAC flow is not rate limited - Added patch, CVE-2023-3152.patch- Fix CVE-2023-1668 [bsc#1210054], openvswitch: remote traffic denial of service via crafted packets with IP proto 0 - Added patch, CVE-2023-1668.patch- Remove python/ovs/dirs.py prior to building: have this re-generated based on the shipped template (boo#1210479).- Update OVS version to v3.1.0 and OVN version to v23.03.0 Some of the features are, - ovs-vswitchd now detects changes in CPU affinity and adjusts the number of handler and revalidator threads if necessary. - AF_XDP: * Added support for building with libxdp and libbpf >= 0.7. * Support for AF_XDP is now enabled by default if all dependencies are available at the build time. Use --disable-afxdp to disable. Use --enable-afxdp to fail the build if dependencies are not present. - ovs-appctl: * "ovs-appctl ofproto/trace" command can now display port names with the "--names" option. - OVSDB-IDL: * Add the support to specify the persistent uuid for row insert in both C and Python IDLs. - Windows: * Conntrack IPv6 fragment support. - DPDK: * Add support for DPDK 22.11.1. - For the QoS max-rate and STP/RSTP path-cost configuration OVS now assumes 10 Gbps link speed by default in case the actual link speed cannot be determined. Previously it was 10 Mbps. Values can still be overridden by specifying 'max-rate' or '[r]stp-path-cost' accordingly. - OpenFlow: * New OpenFlow extension NXT_CT_FLUSH to flush connections matching the specified fields. - ovs-ctl: * New option '--dump-hugepages' to include hugepages in core dumps. This can assist with postmortem analysis involving DPDK, but may also produce significantly larger core dump files. - ovs-dpctl and 'ovs-appctl dpctl/' commands: * 'flush-conntrack' is now capable of handling partial 5-tuple, with additional optional parameter to specify the reply direction. - ovs-ofctl: * New command 'flush-conntrack' that accepts zone and 5-tuple (or partial 5-tuple) for both directions. - Support for travis-ci.org based continuous integration builds has been dropped. - Userspace datapath: * Add '-secs' argument to appctl 'dpif-netdev/pmd-rxq-show' to show the pmd usage of an Rx queue over a configurable time period. * Add new experimental PMD load based sleeping feature. PMD threads can request to sleep up to a user configured 'pmd-maxsleep' value under low load conditions. - For more details, check https://github.com/openvswitch/ovs/blob/v3.1.0/NEWS - Includes secrity fix for CVE-2022-4338 (bsc#1206580) and CVE-2022-4337 (bsc#1206581) - Removed patches, * 0001-Replace-deprecated-var-run-with-run.patch * 0001-openvswitch-merge-compiler.h-files-into-one-file.patch * openvswitch-CVE-2021-36980.patch * 0002-build-Seperated-common-used-headers.patch * a77ad9693c8b49055389559187fe74eddb619746.patch * 0001-m4-Test-avx512-for-x86-only.patch * openvswitch-2.17.2-Fix-tests-with-GNU-grep-3.8.patch - Renamed and rebased patches, * 0001-Don-t-change-permissions-of-dev-hugepages.patch * 0001-Use-double-hash-for-OVS_USER_ID-comment.patch * 0001-Run-ovn-as-openvswitch-openvswitch.patch * 0001-Use-strongswan-for-openvswitch-ipsec-service.patch * 0001-Run-openvswitch-as-openvswitch-openvswitch.patch - Added ovsb tool install patch, * install-ovsdb-tools.patch- add a77ad9693c8b49055389559187fe74eddb619746.patch to avoid the cpu detection code being compiled with AVX512 enabled - add 0001-m4-Test-avx512-for-x86-only.patch- fix tests with GNU grep 3.8 boo#1203239 add openvswitch-2.17.2-Fix-tests-with-GNU-grep-3.8.patch- update to 2.17.2: - Bug fixes - DPDK: * OVS validated with DPDK 21.11.1. It is recommended to use this version until further releases. - Bug fixes - libopenvswitch API change: * To fix the Undefined Behavior issue causing the compiler to incorrectly optimize important parts of code, container iteration macros (e.g., LIST_FOR_EACH) have been re-implemented in a UB-safe way. * Backwards compatibility has mostly been preserved, however the user-provided pointer is now set to NULL after the loop (unless it exited via "break;") * Users of libopenvswitch will need to double-check the use of such loop macros before compiling with a new version. * Since the change is limited to the definitions within the headers, the ABI is not affected. - refresh 0001-openvswitch-merge-compiler.h-files-into-one-file.patch 0002-build-Seperated-common-used-headers.patch- Allow dpdk version 21.11.- Python package: Do not use C json parser on 32bit as large numbers will overflow.- Mention openvswitch-rpmlintrc as Source in spec file- Fix installation of files shared with OVN (required for building OVN without openvswitch sources), remove custom installation of internal headers from SPEC-install section and use patches (for upstreaming) instead. * install-ovsdb-tools.patch * Added 0001-openvswitch-merge-compiler.h-files-into-one-file.patch * Added 0002-build-Seperated-common-used-headers.patch - Enabled check section / running testsuite by default to validate build result. There must no problems with the testsuite anymore as upstream runs it by CI and checked before release of a new version. - Renamed 0001-Don-t-change-permissions-of-dev-hugepages.patch to Don-t-change-permissions-of-dev-hugepages.patch - Renamed 0001-Run-openvswitch-as-openvswitch-openvswitch.patch to Run-openvswitch-as-openvswitch-openvswitch.patch - Renamed 0001-Use-double-hash-for-OVS_USER_ID-comment.patch to Use-double-hash-for-OVS_USER_ID-comment.patch - Rebased 0001-Use-strongswan-for-openvswitch-ipsec-service.patch to Use-strongswan-for-openvswitch-ipsec-service.patch- Fix OVS location for python bindings (dirs.py), boo#1196978 Make sure dirs.py is freshly generated- fix python3 requires (bsc#1196758)- Added install-ovsdb-tools.patch to install ovsdb tools required for building OVN- Enable multiple python3 flavor subpackages on Tumbleweed / Factory- Update OVS to version 2.17.0 * Userspace datapath: * Optimized flow lookups for datapath flows with simple match criteria. * New per-interface configuration knob 'other_config:tx-steering'. * Removed experimental tag for PMD Auto Load Balance. * New configuration knob 'other_config:n-offload-threads' to change the number of HW offloading threads. * DPDK: * EAL argument --socket-mem is no longer configured by default upon start-up. If dpdk-socket-mem and dpdk-alloc-mem are not specified, DPDK defaults will be used. * EAL argument --socket-limit no longer takes on the value of --socket-mem by default. 'other_config:dpdk-socket-limit' can be set equal to the 'other_config:dpdk-socket-mem' to preserve the legacy memory limiting behavior. * EAL argument --in-memory is applied by default if supported. * Add support for DPDK 21.11. * Forbid use of DPDK multiprocess feature. * Add support for running threads on cores >= RTE_MAX_LCORE. * Python: For SSL support, the use of the pyOpenSSL library has been replaced with the native 'ssl' module. * OVSDB: * Python library for OVSDB clients now also supports faster resynchronization with a clustered database after a brief disconnection, i.e. 'monitor_cond_since' monitoring method. * Major improvement in the performance of the OVSDB server. * OpenFlow: * Default selection method for select groups with up to 256 buckets is now dp_hash. Previously this was limited to 64 buckets. This change is mainly for the benefit of OVN load balancing configurations. * Encap & Decap action support for MPLS packet type. - Update OVS to version 2.16.0 * Fix CVE-2021-36980 (boo#1188524) openvswitch 2.11.0 through 2.15.0 has a use-after-free in decode_NXAST_RAW_ENCAP (called from ofpact_decode and ofpacts_decode) during the decoding of a RAW_ENCAP action * Removed support for 1024-bit Diffie-Hellman key exchange * Rate limiting configuration now supports setting packet-per-second limits in addition to the previously configurable byte rate settings. * OVSDB: * Introduced new database service model - "relay". * New command line options --record/--replay for ovsdb-server and ovsdb-client to record and replay all the incoming transactions, monitors, etc. * The Python Idl class now has a cooperative_yield() method * In ovs-vsctl and vtep-ctl, the "find" command now accept new operators {in} and {not-in}. * Various Userspace datapath improvements * ovs-ctl: * New option '--no-record-hostname' to disable hostname configuration in ovsdb on startup. * New command 'record-hostname-if-not-set' to update hostname in ovsdb. * ovs-appctl: Added ability to add and delete static mac entries using: 'ovs-appctl fdb/add ' 'ovs-appctl fdb/del ' * Linux datapath: * ovs-vswitchd will configure the kernel module using per-cpu dispatch mode (if available). This changes the way upcalls are delivered to user space in order to resolve a number of issues with per-vport dispatch. * New vswitchd unixctl command `dpif-netlink/dispatch-mode` will return the current dispatch mode for each datapath. - Update OVS to version 2.15.0 * OVSDB: * Changed format in which ovsdb transactions are stored in database files. Now each transaction contains diff of data instead of the whole new value of a column. * New unixctl command 'ovsdb-server/get-db-storage-status' * New unixctl command 'ovsdb-server/memory-trim-on-compaction on|off'. * Maximum backlog on RAFT connections limited to 500 messages or 4GB. * DPDK: Removed support for vhost-user dequeue zero-copy. * Add support for DPDK 20.11. * The environment variable OVS_UNBOUND_CONF, if set, is now used as the DNS resolver's (unbound) configuration file. * Linux datapath: Support for kernel versions up to 5.8.x. * Building the Linux kernel module from the OVS source tree is deprecated * Support for the Linux kernel is capped at version 5.8 * Only bug fixes for the Linux OOT kernel module will be accepted. * The Linux kernel module will be fully removed from the OVS source tree in OVS branch 2.18 - Rebased 0001-Use-strongswan-for-openvswitch-ipsec-service.patch - Drop upstream fixed 0001-Replace-deprecated-var-run-with-run.patch - Separated OVN * Stand alone package, this enables better maintenance especially updates. * Drop 0001-Run-ovn-as-openvswitch-openvswitch.patch from OVN- add openssl(cli) dependency on pki (bsc#1185839)- Replace deprecated /var/run with /run (bsc#1185176, bsc#1185177). * 0001-Replace-deprecated-var-run-with-run.patch- Update openvswitch to 2.14.2. For a list of changes, check https://github.com/openvswitch/ovs/blob/v2.14.2/NEWS Includes security fix for CVE-2020-27827 (bsc#1181345) and CVE-2020-35498 (bsc#1181742). - Removed patches no longer applying to code base: * 0001-rhel-Fix-reload-of-OVS_USER_ID-on-startup.patch * 0001-ipsec-Fix-Strongswan-configuration-syntax.patch- Replaced `%service_del_postun -n` with `%service_del_postun_without_restart` (bsc#1117483).- Fix wrong default directories for OVS python utilities (bsc#1176273). - Add upstream patches to fix openvswitch-ipsec service (bsc#1176273). * 0001-ipsec-Fix-Strongswan-configuration-syntax.patch- Update openvswitch to 2.14.0. For a list of changes, check https://github.com/openvswitch/ovs/blob/v2.14.0/NEWS - Update OVN to 20.06.2. For a list of changes, check https://github.com/ovn-org/ovn/blob/v20.06.2/NEWS- Fix preserving old default OVS_USER_ID for users that removed the override at /etc/sysconfig/openvswitch or for users affected by fillup bug below (bsc#1172861). - Add patch to workaround a possible fillup issue that could cause existing openvswitch configuration to be unintendedly altered during upgrades (bsc#1172929). * 0001-Use-double-hash-for-OVS_USER_ID-comment.patch- add missing provides/obsoletes for python3-openvswitch-test- Update openvswitch to 2.13.0. * For a list of changes, check https://github.com/openvswitch/ovs/blob/v2.13.0/NEWS * This version drops python2 binding support. Only python3 bindings provided going forward. * Tool ovs-vlan-bug-workaround is no longer provided. - OVN was split to its own repo but is still built together with OVS and as such from this same source package. OVN initial version is 20.03. * For a list of changes, check https://github.com/ovn-org/ovn/blob/v20.03.0/NEWS * Packages openvswitch-ovn* are renamed to ovn*. * OVN now has its own sysconfig and log paths. - Add OVS patch to be proposed upstream: * 0001-rhel-Fix-reload-of-OVS_USER_ID-on-startup.patch - Patch instead of post-processing configuration files to set running credentials (bsc#1157338): * 0001-Run-openvswitch-as-openvswitch-openvswitch.patch * 0001-Run-ovn-as-openvswitch-openvswitch.patch - Will no longer change group ownership of /dev/hugepages to 'hugetlbfs' (bsc#1140835). System admin should mount hugepages on a path and permissions of his choosing for OVS. Add patch: * 0001-Don-t-change-permissions-of-dev-hugepages.patch - Will no longer install udev rule to change group ownership of vfio devices to 'hugetlbfs'. Group name does not make much sense in this case and ownership of vfio devices should be coordinated system wide or per device. - Will no longer run under group 'hugetlbfs' on new installs with DPDK enabled. OVS will now run under group 'openvswitch' whether compiled with DPDK support or not. - OVS persistent state is now saved on /var/lib/openvswitch instead of /etc/openvswitch for new installs.- add missing sortedcontainers dependency to the python bindings- Update openvswitch to 2.12.0. For a list of changes, check https://github.com/openvswitch/ovs/blob/master/NEWS - Removed patches that are already included upstream: * 0001-rhel-secure-openvswitch-useropts.patch * 0002-rhel-let-ctl-handle-runtime-directory.patch - Rebased patches: * 0001-Use-strongswan-for-openvswitch-ipsec-service.patch- Fixed missing obsoletes for old python-ovs (bsc#1138948).- Add unbound as a build requirement to support asynchronous DNS resolving for remotes.- Update DPDK dependency to support DPDK 18.11.2.- Add upstream patches to fix bsc#1135884: * 0001-rhel-secure-openvswitch-useropts.patch * 0002-rhel-let-ctl-handle-runtime-directory.patch- Use temporary directory for python build.- Fix problem preventing new installs to run as non root (bsc#1132029), including: * Align with upstream so that no running configuration is changed on upgrades, specifically to avoid changes on the user Open vSwitch runs under. * hugetblfs groups is created as system group. - Add missing opnvswitch-ipsec package and systemd service. - Add patch to use strongswan instead of libreswan for openvswitch-ipsec. libreswan package not available currently. * 0001-Use-strongswan-for-openvswitch-ipsec-service.patch - Add missing ovs-delete-transient-ports systemd service. - Align installed headers with upstream. - Fix problem preventing rpm build '--with check'. - Fix python environment that had directories pointing to /usr/local. - Version bump to 2.11.1. Some of the changes are: * netdev-tc-offloads: Fix probe tc block support * rhel: Include all header files in the Fedora's devel package * reconnect.c: Don't transition back to ACTIVE when forced to RECONNECT. * OVN: Make periodic RAs consistent with RA responder. * OVN: Always send prefix option in RAs * OVN: Use offset instead of pointer into ofpbuf * ofproto: fix the bug of bucket counter is not updated * netdev-dpdk: Print netdev name for txq mapping. * dpif-netdev-perf: Fix millisecond stats precision with slower TSC. * ifupdown.sh: Add missing "--may-exist" option * dpif-netdev-perf: Fix double update of perf histograms. * dpdk: Stop dumping memzones to stdout. * dpctl: Drop parser debug information. * netdev-tc-offloads: Properly get the block id on flow del/get * netdev-tc-offloads: Improve log message for icmpv6 offload not supported * conntrack: Replace structure copy by memcpy(). * conntrack: Lookup only 'UNNAT conns' in 'nat_clean()'. * conntrack: Fix race for NAT cleanup. * ovn-nbctl: Don't segfault when ovn-northd doesn't configure dynamic addresses. * datapath-windows: Add annotations to find vport functions * datapath-windows: Guard vport usage in user.c * datapath-windows: Fix potential deadlock in event subscription * datapath-windows: Fix race condition during port creation * datapath-windows: Fix nbl cleanup when memory allocation fails * netdev-linux: Remove ingress qdisc before trying to add shared block * netdev-tc-offloads: Remove ingress qdisc on tc init flow api * ovsdb-idl: Fix memory leak of idl->remote. * travis: Remove 'sudo' configuration. * OVN: Add port addresses to IPAM after all ports are joined. * dpif-netlink: Free leaked ofpbuf by using ofpbuf_delete * OVN: update RA next_announce according to {min, max}_interval * rconn: Avoid occasional immediate connection failures. * dpdk: Fix case-sensitivity of dpdk-init knob. * NEWS: Clean up the 2.11.0 release notes a bit. * conntrack: Fix L4 csum for V6 extension hdr pkts. * packets: Change return type for 'packet_csum_upperlayer6()'. * ovsdb-client: Fix typo. * ovn-nbctl: Daemon mode should retry when IDL connection lost. * ofctl: break the loop if ovs_pcap_read returns error * netlink: added check to prevent netlink attribute overflow- Disable dpdk on ix86, aligned with dpdk package.- Combine %service_* calls to reduce generated boilerplate. - Reduce scriptlets' hard dependency on systemd.- Version bump to 2.11.0. Some of the changes are: * Linux datapath: - Support for the kernel versions 4.16.x and 4.17.x. - Support for the kernel versions 4.18.x * OpenFlow: - OFPMP_TABLE_FEATURES_REQUEST can now modify table features. * ovs-ofctl: - "mod-table" command can now change OpenFlow table names. * The environment variable OVS_SYSLOG_METHOD, if set, is now used as the default syslog method. * The environment variable OVS_CTL_TIMEOUT, if set, is now used as the default timeout for control utilities. * ovn: - OVN-SB schema changed: duplicated IP with same Encapsulation type is not allowed any more. Please refer to Documentation/intro/install/ovn-upgrades.rst for the instructions in case there are problems encountered when upgrading from an earlier version. - New support for IPSEC encrypted tunnels between hypervisors. - ovn-ctl: allow passing user:group ids to the OVN daemons. - IPAM/MACAM: * add the capability to dynamically assign just L2 addresses * add the capability to specify a static ip address and get the L2 one allocated dynamically using the following syntax: ovn-nbctl lsp-set-addresses "dynamic " * DPDK: - Add support for DPDK 18.11 - Add support for port representors. * Userspace datapath: - Add option for simple round-robin based Rxq to PMD assignment. It can be set with pmd-rxq-assign. - Add support for Auto load balancing of PMDs (experimental) - Added new per-port configurable option to manage EMC: 'other_config:emc-enable'. * Add 'symmetric_l3' hash function. * OVS now honors 'updelay' and 'downdelay' for bonds with LACP configured. * ovs-vswitchd: - New configuration option "offload-rebalance", that enables dynamic rebalancing of offloaded flows. * The environment variable OVS_RESOLV_CONF, if set, is now used as the DNS server configuration file. * RHEL packaging: - OVN packages are split from OVS packages. A new spec file - ovn-fedora.spec.in is added to generate OVN packages. - Revisit DISABLE_RESTART_ON_UPDATE and DISABLE_STOP_ON_REMOVAL options (bsc#1117483). DISABLE_STOP_ON_REMOVAL is removed. DISABLE_RESTART_ON_UPDATE is replaced by '%service_del_postun -n'. $FIRST_ARG is replaced by $1. - Add extra openvswitch headers (bsc#1125897).- Obsolete old python[2]-openvswitch-test subpackages (bsc#1124435).- Fixed package name libopenvswitch-2_10-0 to libopenvswitch-2_11-0- Version bump to 2.11.0+git20190123.ad83fc9ab. Some of the changes are: * Linux datapath: - Support for the kernel versions 4.16.x and 4.17.x. * OpenFlow: - OFPMP_TABLE_FEATURES_REQUEST can now modify table features. * ovs-ofctl: - "mod-table" command can now change OpenFlow table names. * The environment variable OVS_SYSLOG_METHOD, if set, is now used as the default syslog method. * The environment variable OVS_CTL_TIMEOUT, if set, is now used as the default timeout for control utilities. * ovn: - OVN-SB schema changed: duplicated IP with same Encapsulation type is not allowed any more. Please refer to Documentation/intro/install/ovn-upgrades.rst for the instructions in case there are problems encountered when upgrading from an earlier version. - New support for IPSEC encrypted tunnels between hypervisors. - ovn-ctl: allow passing user:group ids to the OVN daemons. - IPAM/MACAM: * add the capability to dynamically assign just L2 addresses * add the capability to specify a static ip address and get the L2 one allocated dynamically using the following syntax: ovn-nbctl lsp-set-addresses "dynamic " * DPDK: - Add support for DPDK 18.11 - Add support for port representors. * Userspace datapath: - Add option for simple round-robin based Rxq to PMD assignment. It can be set with pmd-rxq-assign. - Add support for Auto load balancing of PMDs (experimental) - Added new per-port configurable option to manage EMC: 'other_config:emc-enable'. * Add 'symmetric_l3' hash function. * OVS now honors 'updelay' and 'downdelay' for bonds with LACP configured. * ovs-vswitchd: - New configuration option "offload-rebalance", that enables dynamic rebalancing of offloaded flows. * The environment variable OVS_RESOLV_CONF, if set, is now used as the DNS server configuration file. * RHEL packaging: - OVN packages are split from OVS packages. A new spec file - ovn-fedora.spec.in is added to generate OVN packages. - Remove upstreamed patch: * 0001-python-c-ext-Fix-memory-leak-in-Parser_finish.patch - Remove DISABLE_RESTART_ON_UPDATE and DISABLE_STOP_ON_REMOVAL options (bsc#1117483).- python2-ovs provides now also python-ovs which is the standard for singlespec python packages.- Backport upstream fix for python json parser memory leak (bsc#1116437) * 0001-python-c-ext-Fix-memory-leak-in-Parser_finish.patch- Improve python packaging (bsc#1115085) * Rename python*-openvswitch subpackages to python*-ovs to follow the openSUSE policy that packages should be named after the modules they install. * Build the JSON C bindings and as a result the 'noarch' BuildArch needs to be removed. * Drop the python*-openvswitch-test packages and merge them with the test subpackage * Build the python bindings using setuptools * Include the egg-info package. * Use libopenvswitch as dependency to python bindings- Version bump to 2.10.1. Some of the changes are: * dpif-netdev.at: Add missing backslash. * ofproto-dpif-xlate: Avoid deadlock on multicast snooping recursion. * dpif-netdev-perf: Print SMC statistics. * dpif-netdev-unixctl: Change 'masked' to 'megaflow'. * ovn-controller: Support processing DHCPv6 information request message type * ovn-ctl: Fix the wrong pidfile argument passed to ovsdb-servers * ovndb-servers.ocf: Add ssl support for managing OVN DB resources with pacemaker using LB VIP. * ovn-ctl: Allow passing ssl certs when starting OVN DBs in ssl mode. * expr: Disallow < <= >= > comparisons against empty value set. * expr: Set a limit on the depth of nested parentheses * ovn: Fix IPv6 DAD failure for container ports * dpif-netdev: Add vlan to mask for flow_put operation. * ovs-save: Parse geneve tlv map correctly. * extend-table: Fix a bug that iterates wrong table * odp-util: Fix a use-after-free bug. * ofp-packet: Fix NXT_RESUME with geneve tunnel metadata * dpif-netlink: Fix null pointer. * ofproto-dpif-xlate.c: Fix uninitialized variable warning. * dpif: Remove support for multiple queues per port. * dpif-netlink: don't allocate per thread netlink sockets * ovsdb-types: Refactor structs so as to comply with C++ standard * bfd: Make the tp_dst masking megaflow-friendly. * ovsdb-data: Improve grammar in error message. * condition: Reject <, <=, >=, > with optional scalar against empty set. * condition: Fix ==, !=, includes, excludes on optional scalars. * netdev: Properly clear 'details' when iterating in NETDEV_QOS_FOR_EACH. * lex: Fix buffer overrun parsing overlong hexadecimal constants. * sflow: Set agent address properly based on collector address. * ovsdb-client: Fix a bug that uses wrong index * ofproto: Fix build with some GCC versions. * ofproto-dpif-xlate: Fix conntrack fields on NXT_RESUME * ofproto: Handle OpenFlow version mismatch for requestforward with groups. * ovs-save: save and restore groups on restart * sparse: check if floatn-common.h is available. * flow: Fix uninitialized flow fields in IPv6 error case. * ofproto-dpif: Fix NXT_RESUME flow stats * ovn: Add the documentation for the DHCP opt 'wpad' in proper section * meta-flow: Make "nw_frag" a synonym for "ip_frag". * gre: Rename fallback devices to avoid udev's interference * ovsdb-server: Alleviate the possible data loss in an active/standby setup * ovsdb-idlc: Use ALIGNED_CAST to avoid spurious warnings for index rows. * ofproto-dpif-xlate: Fix translation of groups with no buckets. * ovn: Add DHCP support for option 252. * ofp-port: Don't leak on error in ofputil_pull_ofp14_port_stats(). * ofp-print: Fix a memory leak reported by fuzz * ovs-save: Don't always include the default flow during restore * lib/tc: treat vlan id and prio as independent fields * odp-util: Don't attempt to write IPv6 flow label bits that don't exist. * lib/tc: reject offloading of non-Ethernet packets * dhparams: Fix .c file generation with OpenSSL >= 1.1.1-pre9 * ovs-ctl: Allow add-remote without vswitchd started. * system-traffic: Fix conntrack per zone limit test. * erspan: set erspan_ver to 1 by default when adding an erspan dev * ovn.at: Skip ACL rate-limiting test on slow/overloaded systems. * daemon-unix: Use same name for original or restarted children. * dpif-netdev: Prevent unsafe access when retrieving meter stats. * utilities: Drop shebang from bash completion script * ofp-actions: Re-fix error path for parsing OpenFlow actions. * nx-match: Avoid double-free on some error paths. * netdev-dpdk: Support the link speed of XL710 * ovn-northd: Support learning neighbor from ARP request. * ovn-northd: LR respond ARP from valid subnet only. * ovn: Fix the issue in IPv6 Neigh Solicitation responder for router IPs * dpctl: Fix memory leak in dp_exists(). * ofproto-dpif: Check for EBUSY as well * tunnel, tests: Sort flow output in ERSPAN v1/v2 metadata * erspan: add big endian bit fields.- Use correct user for logrotate script (bsc#1104049, b096fa42ddc2)- Fix package name for shared library.- Version bump to 2.10.0. Some of the changes are: * ovs-vswitchd and utilities now support DNS names in OpenFlow and OVSDB remotes. * ovs-vswitchd: - New options --l7 and --l7-len to "ofproto/trace" command. - Previous versions gave OpenFlow tables default names of the form "table#". These are not helpful names for the purpose of accepting and displaying table names, so now tables by default have no names. - The "null" interface type, deprecated since 2013, has been removed. - Add minimum network namespace support for Linux. - New command "lacp/show-stats" * ovs-ofctl: - ovs-ofctl now accepts and display table names in place of numbers. By default it always accepts names and in interactive use it displays them; use --names or --no-names to override. See ovs-ofctl(8) for details. * ovs-vsctl: New commands "add-bond-iface" and "del-bond-iface". * ovs-dpctl: - New commands "ct-set-limits", "ct-del-limits", and "ct-get-limits". * OpenFlow: - OFPT_ROLE_STATUS is now available in OpenFlow 1.3. - OpenFlow 1.5 extensible statistics (OXS) now implemented. - New OpenFlow 1.0 extensions for group support. - Default selection method for select groups is now dp_hash with improved accuracy. * ovn: - Implemented icmp4/icmp6/tcp_reset actions in order to drop the packet and reply with a RST for TCP or ICMPv4/ICMPv6 unreachable message for other IPv4/IPv6-based protocols whenever a reject ACL rule is hit. - ACL match conditions can now match on Port_Groups as well as address sets that are automatically generated by Port_Groups. ACLs can be applied directly to Port_Groups as well. - ovn-nbctl can now run as a daemon (long-lived, background process). See ovn-nbctl(8) for details. * DPDK: - New 'check-dpdk' Makefile target to run a new system testsuite. See Testing topic for the details. - Add LSC interrupt support for DPDK physical devices. - Allow init to fail and record DPDK status/version in OVS database. - Add experimental flow hardware offload support - Support both shared and per port mempools for DPDK devices. * Userspace datapath: - Commands ovs-appctl dpif-netdev/pmd-*-show can now work on a single PMD - Detailed PMD performance metrics available with new command ovs-appctl dpif-netdev/pmd-perf-show - Supervision of PMD performance metrics and logging of suspicious iterations - Add signature match cache (SMC) as experimental feature. When turned on, it improves throughput when traffic has many more flows than EMC size. * ERSPAN: - Implemented ERSPAN protocol (draft-foschiano-erspan-00.txt) for both kernel datapath and userspace datapath. - Added port-based and flow-based ERSPAN tunnel port support, added OpenFlow rules matching ERSPAN fields. See ovs-fields(7).- Fix conditional to only include vfio udev rules when building with DPDK support - Exclude %_docdir from main package which seems to be packaged by default on older openSUSE releases.- Restrict DPDK version to 18.02 since Open vSwitch 2.9 is not going to work with any newer releases.- Version bump to 2.9.2. Some of the changes are: * OVSDB has new, experimental support for database clustering: - New high-level documentation in ovsdb(7). - New file format documentation for developers in ovsdb(5). - Protocol documentation moved from ovsdb-server(1) to ovsdb-server(7). - ovsdb-server now supports online schema conversion via "ovsdb-client convert". - ovsdb-server now always hosts a built-in database named _Server. See ovsdb-server(5) for more details. - ovsdb-client: New "get-schema-cksum", "query", "backup", "restore", and "wait" commands. New --timeout option. - ovsdb-tool: New "create-cluster", "join-cluster", "db-cid", "db-sid", "db-local-address", "db-is-clustered", "db-is-standalone", "db-name", "schema-name", "compare-versions", and "check-cluster" commands. - ovsdb-server: New ovs-appctl commands for managing clusters. - ovs-sandbox: New support for clustered databases. * OVN: - ovn-sbctl, ovn-nbctl: New options --leader-only, --no-leader-only. * Bug fixes - Use openvswitch user/group for the log directory (3f556d66edb9)- Add support for RedHat distributions. All SUSE macros are now conditional and the spec file has been adapted based on the upstream one (fate#324537) - spec-cleaner fixes- Move openvswitch user/group creation to %pre scriptlet. The default ownership of the configuration files expects the user and group to be available as early as possible (bsc#1091408) - spec-cleaner fixes.- Preserve 'enable' status of openvswitch.service file when upgrading from naming scheme is broken, and as such a device will not be available for use until a valid dpdk-devargs is specified. - Virtual DPDK Poll Mode Driver (vdev PMD) support. * For the complete list of changes, please see: - http://openvswitch.org/releases/NEWS-2.7.0 - Add patch to fix DPDK configuration migration for < 2.6 installations * 0001-utilities-Add-script-to-support-DPDK-option-migratio.patch - Rework spec file * Enable DPDK by default and drop openvswitch-dpdk* packages. DPDK is only enabled on supported architectures though. - Remove openvswitch-dpdk.changes - Remove openvswitch-dpdk.spec - Remove pre_checkin.sh * Merge openvswitch and openvswitch-switch into a single package since there was no compelling reason to keep the switch functionality in a separate subpackage. * Split OVN package to ovn-common, ovn-central, ovn-docker, ovn-host and ovn-controller similar to the Debian and RedHat packages.- Relax the DPDK dependency a bit so we can support stable and possibly new minor releases as well.- Do not restart the openvswitch service after a package update. Restarting the systemd service may break connectivity so let the user decide when it is the best time for such an action. (bsc#1002734)- Version bump to 2.6.1. Some of the changes are: * ovn: Do not reply to ARP or ND NS for a VM's own IP address. * ovs-ofctl: Tolerate differences in IPv6 formatting. * netdev-linux: double tagged packets should use 0x88a8 * expr: Fix abort when simplifying "x != 0/0". * dpif-netdev: Fix crash in dpif_netdev_execute(). * ovn-controller: Container can have connection to a hosting VM. * stream-ssl: Fix memory leak on error path. * Other bug fixes.- Version bump to 2.6.0. Some of the changes are: * First supported release of OVN. See ovn-architecture(7) for more details. * ovsdb-server: - New "monitor_cond" "monitor_cond_update" and "update2" extensions to RFC 7047. * OpenFlow: - OpenFlow 1.3+ bundles now expire after 10 seconds since the last time the bundle was either opened, modified, or closed. - OpenFlow 1.3 Extension 230, adding OpenFlow Bundles support, is now implemented. - OpenFlow 1.3+ bundles are now supported for group mods as well as flow mods and port mods. Both 'atomic' and 'ordered' bundle flags are supported for group mods as well as flow mods. - Internal OpenFlow rule representation for load and set-field actions is now much more memory efficient. For a complex flow table this can reduce rule memory consumption by 40%. - Bundles are now much more memory efficient than in OVS 2.5. Together with memory efficiency improvements in OpenFlow rule representation, the peak OVS resident memory use during a bundle commit for large complex set of flow mods can be only 25% of that in OVS 2.5 (4x lower). - OpenFlow 1.1+ OFPT_QUEUE_GET_CONFIG_REQUEST now supports OFPP_ANY. - OpenFlow 1.4+ OFPMP_QUEUE_DESC is now supported. - OpenFlow 1.4+ OFPT_TABLE_STATUS is now supported. - New property-based packet-in message format NXT_PACKET_IN2 with support for arbitrary user-provided data and for serializing flow table traversal into a continuation for later resumption. - New extension message NXT_SET_ASYNC_CONFIG2 to allow OpenFlow 1.4-like control over asynchronous messages in earlier versions of OpenFlow. - [...] - For a complete list of changes, please see http://openvswitch.org/releases/NEWS-2.6.0 - Remove obsolete patches and files * 0001-Remove-broken-pipe-warning-logs-from-ovsdb-server.lo.patch * 0001-ovs-ctl-Add-new-DPDK_OPTIONS-environment-variable.patch * openvswitch-2.5.0-detect-dpdk-installation.patch * openvswitch-switch.logrotate * openvswitch.service- New upstream bugfix release 2.5.1 (bsc#1001657) * DPDK: - New appctl command 'dpif-netdev/pmd-rxq-show' to check the port/rxq assignment. - Type of log messages from PMD threads changed from INFO to DBG. * ovs-pki: Changed message digest algorithm from SHA-1 to SHA-512 because SHA-1 is no longer secure and some operating systems have started to disable it in OpenSSL. * Bug fixes- Add new DPDK_OPTIONS environment variable to hold the dpdk vswitchd options so that the systemd unit files can be used to launch an ovs-vswitcd DPDK capable instance instead of doing it manually. (bsc#987265) * 0001-ovs-ctl-Add-new-DPDK_OPTIONS-environment-variable.patch- enable openvswitch-dpdk on aarch64 since dpdk builds on aarch64 now- remove aarch from openvswitch-dpdk until we have a dpdk that builds for aarch64- Add missing licenses (bsc#988513) - Misc spec file cleanups highlighted by the spec-cleaner tool. - Allow aarch64 builds for openvswitch-dpdk- Allow the OvS daemon to run as non-root (bsc#987545) - Add missing 'Conflicts' statements to all the subpackages as required by the Factory review tools.- Remove the ?_with_dpdk macro usage since this is not being set without explicitly passing --with/--without during an OBS build. This reverts back to using the %{with dpdk} style which is set automatically based on %bcond_with* macros (bsc#989335).- Fix subpackage dependencies to not require the non-existent python DPDK subpackages (bsc#986835). We do not provide DPDK versions of the python bindings so nothing should depend on these subpackages.- Update rpm groups, acronym forms.- Multiple fixes for the openvswitch-dpdk package (bsc#985878) * Rename main package name to openvswitch-dpdk * Do not build the python and kmp packages since they do not depend on the DPDK capabilities * Remove the open_virtual_switch capability. The openvswitch-common will be used by reverse dependencies to require either of the OvS packages. * Provide virtual capabilities for all DPDK subpackages. * Fix the dependencies in the python package to require either of the OvS packages. * Suggest the kmp package only if it's actually provided. * Small cleanups.- Add %check directive to run the openvswitch testsuite on demand. The openvswitch contains hundreds of tests covering simple and complex openvswitch configuration so it's beneficial to run them during package builds. However, running the testsuite is not enabled by default. Also add the following upstream patch: * 0001-Remove-broken-pipe-warning-logs-from-ovsdb-server.lo.patch- Build a DPDK-enabled Open vSwitch (fate#319170) * Apply the following changes to the openvswitch.spec file - Add support for building with DPDK capabilities - Add conflicts between the two packages. - Add new 'open_virtual_switch-*' capabilities for openvswitch, openvswitch-switch, openvswitch-test packages which can be used by reverse dependencies to select between the two openvswitch implementations. * Add pre_checkin.sh to generate the openvswitch_dpdk.spec file based on the openvswitch.spec one. * Add upstream openvswitch-2.5.0-detect-dpdk-installation.patch patch to detect and link against a DPDK installation.- Keep %prep small for speedier `quilt setup`. Kill __DATE__ from source. Drop all .la files that are in %_libdir.- Add missing %dir directive for /var/log/openvswitch- remove aarch64 conditional, no longer needed- Multiple spec file and package fixes. * Drop obsolete log-check-module-loop.patch patch. * Drop conditional code for older openSUSE releases. This also removes all of the sysvinit files which were pulled in when the package was originally developed. * Drop support for building the GUI. The GUI code has been removed in 7868fbc6c97c2 ("ovsdbmonitor: Remove.") upstream commit and it does not exist since v2.2.0 so drop the code in the spec file. * Use the upstream systemd service files for the OVN components instead of maintaining our own downstream. * Drop the unofficial ipsec support. It hasn't been enabled in years. * Drop support for building the upstream kernel module since it's being shipped with the kernel package in latest releases. Restore the %bcond_with kmp to make it easier to build the external kernel module if needed. * Fix some suse-missing-rclink rpmlint warnings for the ovn subpackage * Base our service unit to the upstream one. * Stop silently enabling the GRE protocol in iptables by default. * Install the upstream sysconfig file to pass more information to the openvswitch service unit. * Use make install instead of %makeinstall * Drop brcompat leftovers. * spec-cleaner fixes- address dimstars concerns- Prevent systemd from autogenerating a service file for openvswitch-switch which conflicts with the opevswitch one. (bsc#966762)- Add missing %defattr to ovn files section.- Add additional install requirements for python-openvswitch-test package.- Add support for building both 2.4.0 and 2.5.0 from the same spec file. Needed to fix SLE11 builds as OVS-2.5.0 no longer supports python < 2.7. SLE11 SP3 and SP4 use python 2.6. - Added: openvswitch-2.4.0.tar.gz- New upstream version 2.5.0 (LTS) - Dropped support for Python older than version 2.7. As a consequence, using Open vSwitch 2.5 or later on XenServer 6.5 or earlier (which have Python 2.4) requires first installing Python 2.7. - OpenFlow: * Group chaining (where one OpenFlow group triggers another) is now supported. * OpenFlow 1.4+ "importance" is now considered for flow eviction. * OpenFlow 1.4+ OFPTC_EVICTION is now implemented. * OpenFlow 1.4+ OFPTC_VACANCY_EVENTS is now implemented. * OpenFlow 1.4+ OFPMP_TABLE_DESC is now implemented. * Allow modifying the ICMPv4/ICMPv6 type and code fields. * OpenFlow 1.4+ OFPT_SET_ASYNC_CONFIG and OFPT_GET_ASYNC_CONFIG are now implemented. - ovs-ofctl: * New "out_group" keyword for OpenFlow 1.1+ matching on output group. - Tunnels: * Geneve tunnels can now match and set options and the OAM bit. * The nonstandard GRE64 tunnel extension has been dropped. - Support Multicast Listener Discovery (MLDv1 and MLDv2). - Add 'symmetric_l3l4' and 'symmetric_l3l4+udp' hash functions. - sFlow agent now reports tunnel and MPLS structures. - New 'check-system-userspace', 'check-kmod' and 'check-kernel' Makefile targets to run a new system testsuite. These tests can be run inside a Vagrant box. See INSTALL.md for details - Mark --syslog-target argument as deprecated. It will be removed in the next OVS release. - Added --user option to all daemons - Add support for connection tracking through the new "ct" action and "ct_state"/"ct_zone"/"ct_mark"/"ct_label" match fields. Only available on Linux kernels with the connection tracking module loaded. - Add experimental version of OVN. OVN, the Open Virtual Network, is a system to support virtual network abstraction. OVN complements the existing capabilities of OVS to add native support for virtual network abstractions, such as virtual L2 and L3 overlays and security groups. - RHEL packaging: * DPDK ports may now be created via network scripts (see README.RHEL). - DPDK: * Requires DPDK 2.2 * Added multiqueue support to vhost-user * Note: QEMU 2.5+ required for multiqueue support - SELinux: * Introduced SELinux policy package. - New package: openvswitch-ovn - Removed: openvswitch-2.4.0.tar.gg - Added: openvswitch-2.5.0.tar.gg - Added: openvswitch-testcontroller.init - Added: ovn-controller-vtep.service - Added: ovn-controller.service - Added: ovn-northd.service - TODO: Explicit DPDK support not yet added to spec. - Spec file work and cleanup. - Includes fixes (or obsoletes) the following issues: * bsc#948840, bsc#941466, bsc#936780, bnc#935750, bnc#867964- Tighten up openvswitch service ordering. bsc#968205 (openSUSE), bsc#951314 (SLE).- Don't install INSTALL.* files.- Removed: openvswitch-switch.template- New upstream version 2.4.0 - Flow table modifications are now atomic, meaning that each packet now sees a coherent version of the OpenFlow pipeline. For example, if a controller removes all flows with a single OpenFlow "flow_mod", no packet sees an intermediate version of the OpenFlow pipeline where only some of the flows have been deleted. - Added support for SFQ, FQ_CoDel and CoDel qdiscs. - Add bash command-line completion support for ovs-vsctl Please check utilities/ovs-command-compgen.INSTALL.md for how to use. - The MAC learning feature now includes per-port fairness to mitigate MAC flooding attacks. - New support for a "conjunctive match" OpenFlow extension, which allows constructing OpenFlow matches of the form "field1 in {a,b,c...} AND field2 in {d,e,f...}" and generalizations. For details, see documentation for the "conjunction" action in ovs-ofctl(8). - Add bash command-line completion support for ovs-appctl/ovs-dpctl/ ovs-ofctl/ovsdb-tool commands. Please check utilities/ovs-command-compgen.INSTALL.md for how to use. - The "learn" action supports a new flag "delete_learned" that causes the learned flows to be deleted when the flow with the "learn" action is deleted. - Basic support for the Geneve tunneling protocol. It is not yet possible to generate or match options. This is planned for a future release. The protocol is documented at http://tools.ietf.org/html/draft-gross-geneve-00 - The OVS database now reports controller rate limiting statistics. - sflow now exports information about LACP-based bonds, port names, and OpenFlow port numbers, as well as datapath performance counters. - ovs-dpctl functionality is now available for datapaths integrated into ovs-vswitchd, via ovs-appctl. Some existing ovs-appctl commands are now redundant and will be removed in a future release. See ovs-vswitchd(8) for details. - OpenFlow: * OpenFlow 1.4 bundles are now supported for flow mods and port mods. For flow mods, both 'atomic' and 'ordered' bundle flags are trivially supported, as all bundled messages are executed in the order they were added and all flow table modifications are now atomic to the datapath. Port mods may not appear in atomic bundles, as port status modifications are not atomic. * IPv6 flow label and neighbor discovery fields are now modifiable. * OpenFlow 1.5 extended registers are now supported. * The OpenFlow 1.5 actset_output field is now supported. * OpenFlow 1.5 Copy-Field action is now supported. * OpenFlow 1.5 masked Set-Field action is now supported. * OpenFlow 1.3+ table features requests are now supported (read-only). * Nicira extension "move" actions may now be included in action sets. * "resubmit" actions may now be included in action sets. The resubmit is executed last, and only if the action set has no "output" or "group" action. * OpenFlow 1.4+ flow "importance" is now maintained in the flow table. * A new Netronome extension to OpenFlow 1.5+ allows control over the fields hashed for OpenFlow select groups. See "selection_method" and related options in ovs-ofctl(8) for details. - ovs-ofctl has a new '--bundle' option that makes the flow mod commands ('add-flow', 'add-flows', 'mod-flows', 'del-flows', and 'replace-flows') use an OpenFlow 1.4 bundle to operate the modifications as a single atomic transaction. If any of the flow mods in a transaction fail, none of them are executed. All flow mods in a bundle appear to datapath lookups simultaneously. - ovs-ofctl 'add-flow' and 'add-flows' commands now accept arbitrary flow mods as an input by allowing the flow specification to start with an explicit 'add', 'modify', 'modify_strict', 'delete', or 'delete_strict' keyword. A missing keyword is treated as 'add', so this is fully backwards compatible. With the new '--bundle' option all the flow mods are executed as a single atomic transaction using an OpenFlow 1.4 bundle. - ovs-pki: Changed message digest algorithm from MD5 to SHA-1 because MD5 is no longer secure and some operating systems have started to disable it in OpenSSL. - ovsdb-server: New OVSDB protocol extension allows inequality tests on "optional scalar" columns. See ovsdb-server(1) for details. - ovs-vsctl now permits immutable columns in a new row to be modified in the same transaction that creates the row. - test-controller has been renamed ovs-testcontroller at request of users who find it useful for testing basic OpenFlow setups. It is still not a necessary or desirable part of most Open vSwitch deployments. - Support for travis-ci.org based continuous integration builds has been added. Build failures are reported to build@openvswitch.org. See INSTALL.md file for additional details. - Support for the Rapid Spanning Tree Protocol (IEEE 802.1D-2004). The implementation has been tested successfully against the Ixia Automated Network Validation Library (ANVL). - Stats are no longer updated on fake bond interface. - Keep active bond slave selection across OVS restart. - A simple wrapper script, 'ovs-docker', to integrate OVS with Docker containers. If and when there is a native integration of Open vSwitch with Docker, the wrapper script will be retired. - Added support for DPDK Tunneling. VXLAN, GRE, and Geneve are supported protocols. This is generic tunneling mechanism for userspace datapath. - Support for multicast snooping (IGMPv1, IGMPv2 and IGMPv3) - Support for Linux kernels up to 4.0.x - The documentation now use the term 'destination' to mean one of syslog, console or file for vlog logging instead of the previously used term 'facility'. - Support for VXLAN Group Policy extension - Initial support for the IETF Auto-Attach SPBM draft standard. This contains rudimentary support for the LLDP protocol as needed for Auto-Attach. - The default OpenFlow and OVSDB ports are now the IANA-assigned numbers. OpenFlow is 6653 and OVSDB is 6640. - Support for DPDK vHost. - Support for outer UDP checksums in Geneve and VXLAN. - The kernel vports with dependencies are no longer part of the overall openvswitch.ko but built and loaded automatically as individual kernel modules (vport-*.ko). - Support for STT tunneling. - Support to configure method (--syslog-method argument) that determines how daemons will talk with syslog. - Support for "ovs-appctl vlog/list-pattern" command that lets to query logging message format for each destination. - GRE64 and ipsec_gre64 tunnel protocol is deprecated and will be removed from OVS v2.5 release. * The openvswitch-testcontroller package is new. It reintroduces the simple OpenFlow controller that was packaged with Open vSwitch prior to version 2.1, at request of users who find it useful for testing basic OpenFlow setups. It is still not a necessary or desirable part of most Open vSwitch deployments. - Fixed: log-check-module-loop.patch to work with new version. - Removed: openvswitch-2.3.1.tar.gz - Added: openvswitch-2.4.0.tar.gz - Spec file work and cleanup.- Add calls to /sbin/ldconfig in %post and %postun - Fix typo in Url- new upstream version 2.3.1 - Compatibility with autoconf 2.63 (previously >=2.64) - ovs-pki: Changed message digest algorithm from MD5 to SHA-1 because MD5 is no longer secure and some operating systems have started to disable it in OpenSSL. - Keep active bond slave selection across OVS restart. * v2.3.0 - 14 Aug 2014 - OpenFlow 1.1, 1.2, and 1.3 are now enabled by default in ovs-vswitchd. - Linux kernel datapath now has an exact match cache optimizing the flow matching process. - Datapath flows now have partially wildcarded tranport port field matches. This reduces userspace upcalls, but increases the number of different masks in the datapath. The kernel datapath exact match cache removes the overhead of matching the incoming packets with the larger number of masks, but when paired with an older kernel module, some workloads may perform worse with the new userspace. * v2.2.0 - Internal Release - Internal ports are no longer brought up by default, because it should be an administrator task to bring up devices as they are configured properly. - ovs-vsctl now reports when ovs-vswitchd fails to create a new port or bridge. - The "ovsdbmonitor" graphical tool has been removed, because it was poorly maintained and not widely used. - New "check-ryu" Makefile target for running Ryu tests for OpenFlow controllers against Open vSwitch. See INSTALL for details. - Added IPFIX support for SCTP flows and templates for ICMPv4/v6 flows. - Upon the receipt of a SIGHUP signal, ovs-vswitchd no longer reopens its log file (it will terminate instead). Please use 'ovs-appctl vlog/reopen' instead. - Support for Linux kernels up to 3.14. From Kernel 3.12 onwards OVS uses tunnel API for GRE and VXLAN. - Added experimental DPDK support. - Added support for custom vlog patterns in Python - removed datapath-Add-support-for-Linux-3.12.patch no more required - removed sle11-device-ops-backport.diff , not used before- fix rcX linkopenvswitch-dpdk-develh03-ch2d 1735542779  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&3.1.0-150600.33.3.13.1.0-150600.33.3.13.1.03.1.03.1.03.1.03.1.02.7.0 ovsdb-idlcopenflowintel-ext.hnetronome-ext.hnicira-ext.hopenflow-1.0.hopenflow-1.1.hopenflow-1.2.hopenflow-1.3.hopenflow-1.4.hopenflow-1.5.hopenflow-common.hopenflow.hopenvswitchcompiler.hdynamic-string.hflow.hgeneve.hhmap.hjson.hlibaes128.hasync-append.hbacktrace.hbfd.hbitmap.hbundle.hbyte-order.hbyteq.hccmap.hcfm.hclassifier-private.hclassifier.hcmap.hcolors.hcommand-line.hcompiler.hconnectivity.hconntrack-private.hconntrack-tp.hconntrack.hcoverage.hcpu.hcrc32c.hcsum.hct-dpif.hdaemon-private.hdaemon.hdb-ctl-base.hdhcp.hdhparams.hdirs.hdns-resolve.hdp-packet.hdpctl.hdpdk.hdpif-netdev-lookup.hdpif-netdev-perf.hdpif-netdev-private-dfc.hdpif-netdev-private-dpcls.hdpif-netdev-private-dpif.hdpif-netdev-private-extract.hdpif-netdev-private-flow.hdpif-netdev-private-thread.hdpif-netdev-private.hdpif-netdev.hdpif-netlink-rtnl.hdpif-netlink.hdpif-provider.hdpif.hdummy.hentropy.hfat-rwlock.hfatal-signal.hflow.hguarded-list.hhash-aarch64.hhash.hheap.hhindex.hhmapx.hid-fpool.hid-pool.hif-notifier.hipf.hjhash.hjsonrpc.hlacp.hlatch.hlearn.hlearning-switch.hlockfile.hmac-learning.hmcast-snooping.hmemory.hmov-avg.hmpsc-queue.hmultipath.hnetdev-afxdp-pool.hnetdev-afxdp.hnetdev-dpdk.hnetdev-linux-private.hnetdev-linux.hnetdev-native-tnl.hnetdev-offload-provider.hnetdev-offload.hnetdev-provider.hnetdev-vport-private.hnetdev-vport.hnetdev.hnetflow.hnetlink-conntrack.hnetlink-notifier.hnetlink-protocol.hnetlink-socket.hnetlink.hnetnsid.hnx-match.hobject-collection.hodp-execute-private.hodp-execute.hodp-util.hofp-version-opt.hovs-atomic-c++.hovs-atomic-c11.hovs-atomic-clang.hovs-atomic-flag-gcc4.7+.hovs-atomic-gcc4+.hovs-atomic-gcc4.7+.hovs-atomic-i586.hovs-atomic-locked.hovs-atomic-msvc.hovs-atomic-pthreads.hovs-atomic-x86_64.hovs-atomic.hovs-lldp.hovs-numa.hovs-rcu.hovs-replay.hovs-router.hovs-thread.hovsdb-condition.hovsdb-cs.hovsdb-data.hovsdb-error.hovsdb-idl-provider.hovsdb-idl.hovsdb-map-op.hovsdb-parser.hovsdb-server-idl.hovsdb-session.hovsdb-set-op.hovsdb-types.hox-stat.hpackets.hpcap-file.hperf-counter.hprocess.hpvector.hrandom.hrculist.hreconnect.hroute-table.hrstp-common.hrstp-state-machines.hrstp.hrtbsd.hrtnetlink.hsat-math.hseq.hsflow.hsflow_api.hsha1.hsignals.hsimap.hskiplist.hsmap.hsocket-util.hsort.hsset.hstdio.hstopwatch.hstp.hstream-fd.hstream-provider.hstream-ssl.hstream.hstring.hsvec.hsyslog-direct.hsyslog-libc.hsyslog-null.hsyslog-provider.htable.htc.htimer.htimeval.htnl-neigh-cache.htnl-ports.htun-metadata.hunaligned.hunicode.hunixctl.huserspace-tso.hutil.huuid.huuidset.hvalgrind.hvconn-provider.hversions.hvl-mff-map.hvlan-bitmap.hvswitch-idl.hwmi.hlist.hmatch.hmeta-flow.hnamemap.hnetdev.hnsh.hofp-actions.hofp-bundle.hofp-connection.hofp-ct.hofp-ed-props.hofp-errors.hofp-flow.hofp-group.hofp-ipfix.hofp-match.hofp-meter.hofp-monitor.hofp-msgs.hofp-packet.hofp-parse.hofp-port.hofp-print.hofp-prop.hofp-protocol.hofp-queue.hofp-switch.hofp-table.hofp-util.hofpbuf.hpackets.hpoll-loop.hrconn.hshash.hsparsearpainet.hassert.hmath.hnetinetin.hip6.hnuma.hpthread.hrte_atomic.hrte_byteorder.hrte_mbuf.hrte_memcpy.hrte_trace_point.hsyssocket.hsysmacros.htypes.hwait.hthreads.hxmmintrin.hthread.htoken-bucket.htun-metadata.htype-props.htypes.husdt-probes.hutil.huuid.hvconn.hversion.hvlog.hlibofproto.solibopenvswitch.solibovsdb.solibsflow.solibvtep.solibofproto.pclibopenvswitch.pclibovsdb.pclibsflow.pcovsdb-idlc.1.gzovsdbovsdb-docovsdb-dot/usr/bin//usr/include//usr/include/openflow//usr/include/openvswitch//usr/include/openvswitch/lib//usr/include/openvswitch/sparse//usr/include/openvswitch/sparse/arpa//usr/include/openvswitch/sparse/netinet//usr/include/openvswitch/sparse/sys//usr/lib64//usr/lib64/pkgconfig//usr/share/man/man1//usr/share/openvswitch//usr/share/openvswitch/ovsdb/-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:36865/SUSE_SLE-15-SP6_Update/5e49695ec047303e19615f89315e02f1-openvswitch.SUSE_SLE-15-SP6_Updatedrpmxz5x86_64-suse-linux Python script, ASCII text executabledirectoryC source, ASCII textASCII textC source, UTF-8 Unicode textC++ source, ASCII textpkgconfig filetroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)a /usr/bin/python3 script, ASCII text executable RPRPRPRPRRRM̟"ނutf-88326b18a5f20a78fa14a6aeee76e7988e7af209522531bb93b33601fcf5e8ee4?7zXZ !t/ ]"k% N73| E] nT0#Qk*xb]-gFTs3 -Ѩ֯PIQ%hY- \?j+{ L:أ%,/(dd x[tǺ>N/X$B5` AtV0<^-ybĥ&O"̰M錭$~3PK*Oo*v-u3btybRB>^+A(Z ;XKeKɢ$17wL!l!mFs:Jt1pH֒O;9Q9V[\ H?ClKdU_n,7,: lrgx3}I^YhE%ݺuA= ^V{8L!Gp. HelT\LWI%:G<8Ef3e>̻J J= Joy֛*B,*/Q&]gw?eBB%]phJkCII3xA8'B_RӺLH}HEIM_\ol j,hUqbuDAj|}&Mt FV-r k}*8 *󏓚9`gl$$ J3TO \LA>0vXN[ iHa~lP+Ѫ#wu4f~/̨)y=DM2 '\7i?#])OggH^般XZFY 1|rq_ 9sIl׻XcA3V'2nHsyxfT&XV n?fOfQ96@Y#֋5TEFo;>ǥđ'Ռ((ٌ = l͵$ 8ӛ&rU \CU@rꚐwTkHfH0O?]n NJ7BK;YL\+1Z^)`&;X' |VSa=]oIV}m:@Z, 4]jԺP+B $,SS>MOt/>18[W4z bw% ZA}'=Dm3En.a>3}kִ;>YJ(CR{"ZRLi} oӴeף#w炲s|4i,T M/HRr OsPpyooiFR>5ӯ5HU. fjfI>}ɇrO)x$g۝i@\&1Tz?TBm^T#kaFk#\KүmF)XZNkm!{U2Y,[1P;KG{S6t22st44ѿYI"yH3@/!if: 7#L9]젶3yiP^9%gls3typ1vY:~@m$O--.O@Q#?6lGE~gZ8$(D_m>!/3H}cG~>6YE阰[ݾkp۸6I[OSHq-LxeoJj!鮴cskWK39`4}wHkFrgc>6n|p/KF,sZQ& 1:ۃ Z|W)d2|?hC5?:O9^}Ki`o(wonR˦G.X! Z{uiX c&aw+ tdB`g(Q}U69w6qeZq; hdIL9SЦb([5wB}ˍY Ӕ)1p(/)#q?KFo.yC#/wՊVWz.+B.1:Ƽ, )-<84>_J->u#&lYZFNT^SOFvM7BF`J9Y޵~ύ$9S-] x?bq+ќfB* W(xrv2R"~ΞH2~1R\ѳ^Gq "{c hJQa?fڢB.u\GsY_R Z 3!Y3Ӭh=ř# M 6V}=;Y6o%Ԯ/ISPؠM Tf0ޙ[. ѤoJo35_-90D٥mA | s]<יKu P,8zhwRX1$mf?#qe aRxXA 9D̞cwbJK| N]B< XRL]U1-0}cguTKE-^*zv\ 0 9ؚ1:o F+^oEqWjHw4"Xm2_^B1[E&nrG )BaTɑ#k;11Wq;CBf0 " 0eؙB܋4 "c0f=R/ gL'RS_Qc6#,U|Mh$ykY-O>@f6O`]waX|l> 0TxUTﳵ g+G`7볭r1H>U|zHJL'wOjܳokԩzNE+%D̷$g  >c.gk,AUZVo3}c&UdSý]Wn $m=ˏ\o>=r  袛?m lH?3v e0T']jpP'zBt1{uƼK_ntC04`!lL_0,K;-уVj0G(wޥˇ\ QkvMӸn&iʐ|SO7(o7FѧX v4ʅ.`yucSgħ }p&{#.Т0B.r*6ՐU;&}fdR> 17Z>T}I}6le7j#݅Qi1!T^~f4k+٩zvm`? yi7܋߆BHM5U$= Ē?Ed'! p$W1̂ji!ܞ#mQlzh]_#, J쒱%[!F9Uo ytc8Z 137жWvYv۬GUx0̡$Dx>ȟ1q!YwOBU#^JIsbu( orZŨJ$3|YAɵ͞iSتVPju J̜jqv|`6 =)aBXP{ :\J~P~ Sc<38MmD M]7UKy{ZffE[aLXd#Ô4cŻaȊ9tdA*{mmУ|YN^wp|2YEn*H_e+wۮfaK1_pJb9xB{3#TerU3_ Xa`H 3lp9; ˰>\!I WѤL!]Xa9n:;uWE]ic%bOm]z!hަ,(IҞ<ԥ T׫{a) z$Scb.) #.GQXX8NÎH6{Ȉ[qE$d{/g>,yWC՝-R*;W~/fC[ՙ&n#rRoK3 S/θ&2L ۹WnL%&E*hD>[bRJXg+%E1^ni]#ߒ E7YX3A3)3R߁A@9e+][;+-,O:R[K`j0a_qE*kR4I0|H&$'B-SG.jUґF%JcŴdQF7INO--9Jo{Giez`0̊%(ٲ5wAKL>-5/!شr#%|oB<aJ)$SAEcQ~PG[ScnPiz>6b"7BT+_u. Y?$UN G Y2^o߻J`i~==SN3o)PK5V8 3l8]%(]T\8*1\ЕI뫮kO(-0^<#_T' >M؀ cٵN1"ێw٢GAjٙ؆,O!;|N*]\QunnЫ\5)h(s#֛2tdyx!17>?ܧfBPTGHr\рZh~Nz/P 3^@ _vuI`DG̓6$z7[YlHDżR!Ǘ)dX TÆ=NRv?nO~8mPy*Bw.>'l mK,Ax73XCHPMiH S7!?]PU'JShg7<4Ҧfz:~+r_\Dؗ1]=Ԁ` n;| %}3/1e~^"6Qc[[q=;{}XYU횑/u.!boƦ@9kUιd%g7/g(`鸇?C߁Y NWz9H%#[ݣqֹ| ]nM4M/0XzCm~r~Tl h|DpEųcvc^cF%wԪm_^82ne{,Pcb*{8䢺ߕa?i9i% C!bDbrg@K7ؿ;T}ѺNrMO3v_.L$p(imН=\u,\i~H >K4#qI9" $N V;׆ұVg$z]b+/NR'R~Sza(>oX(-1-BQϨOhzvw= k}ebn}R%nS藂&Τ8zx"-OWI?ӔI1Bݸ/HrHYp4l|)%a[&zDZ0h⛮QΦ>q<-z7UR"άSJgv[ ۫6ލYk+'g(=$&37}/ yɽ)V~]F-OA(و*O?s)Pn~e9 z`!J@]|vkG::=^-oryh$'-pZKW-n[8Gإ^ ]zuc(Oq@d֬m8;y>L#JF7?3Ճ  0 V?LLʰb\ƦRLF`a2_N@S׵5X(hIܼ4 4GSj,eZ¶1Us\&Z(v4 ]FI 8fsK|Wa$یͦ߮$#afogh3_ O7an ƾNW$ fTkn(t]dfwՈ9Z +NMG_7EU߃zfYA P` KGc4[·Tm[3 =̴( Mbz{z Yy>N5qPf Q2nP$Z2:CȦqI󔷛z&XODw]g k &huqBVM[l*{xn~%$*Qh|G9)Ç'MvՆpBR5Ԁeq*X\j1rIo˧̕1#4`'Cg,u0H V-xSo Jowd]ԁ.}9 $XSan,U.JKAHro4M|L G@W,d0Z`evPx&#Vl$ʙF_X})?~GޭW&="aIFe?*w-!\fެPFCpgy01LZZY4#ITtoA#vVY(}>@ p3 2< S;x瘪N~iql=;@(3yV\(ًHSnU*Wȑ}1U <=.6PXzkI߽GdHaed߂ܛ?)˫@g$[dr@X_K@%|SkY:5]="Rx I򠮃?F|Ie"}%F›M–BE6{5 FaDB+&׿pUR/@fI]O }NUM=H=qP%KXE;$ixkSߞv c=h0(65_R)ՖcRyzUCӪNcLB}2Jv5Sl Ƽ&`Ҹm]2]|: |-GL7 Tl]hNgp-Cl宨X20 6ւ.ȹ4%gWZ!Z[n,$,-!^~pJoQ 7VQؑ GL`²S5a7ZG4IOL. xǷz' cE(d! h7sqoI;*N׸PXa;h]9vkѐ군V4$hׄH /o"1=.0Ѷ<'l:k`Ȳ&&cnܮ ,eNU剺҂9#?Uz;dTee;65nEi`gv|ګ\im # eL,hIهRա){CLFz.?934BY l,rë ͘#+FS鿜Q;1"߃I\!A7k0.\4LMHKW[+5kʡ*kYcH8*7l ]$8dX XX裉 [ͅwx.j)ccj@ѬԺcL{cJ`f Nzp]g]A>spĈTLciݛ8 IKGVY>WwϘ2vMn;\AܫfP~KK^_2fF?ل*llFg*];0" PBGh`Ml3.^ҿ0ipec+ҭ) R~i2`4yzl:BL*c2s.A¼Si <٭]TN6$vg;G@}iD˵D pt tf˺o" Vܮ/3h*c.ȳ$Dٌ耰j0@Zvt y!īۏy7 xȐ9,˅mqӰװ_\9'%`S 1#W5 7Y\DO==q*࡮ExP-A$!'%|pn;/O |9/f{?Lj~q(}BP1F*?x 8BH#|B'?-)ϔ`9E`q<EPZ`AenAι \8RӦuηiPh6'bp vla?J MHA(CW d!*z33w%m2nzs_2Ĕg}5v(*eCS_a@iU1{>sJle$`QE. X5@\ϒ~m4fcdzgb /`BGIf6?P˺\N|dx!y cB|̦LZGP!VMT׉gCL`2OSOwYt ~i\Mތ"k'vk[&DT7lyiGJn#>gRM0s(~ݐ#CC|U.w̌zeŋ[V^q;X\B'$vx[ ;>PJ+>W¨(VB4;,.jlvO$Oߓ$^luBQ@%i EQ6 L,ie&@ .ϨWE& Jr' ~I#f5ҞЃ b|B%Q?P'k\ij(gɽu-^$E@y:_2h!^bE^J΃ Zo$f["\B' 5Kʌ[ 6C7٬FHu>L#/} ؜85#wT &ns 7@vn)3~y(1Y_x-*&]($b!(9Q voDإԬ3h"k*LK:1Д:嗛B6֊ufw!]Ac4}YDCj9 !0΁Yuue͗`j O7UyQM&`ɥomg8F 6,+d%_> @d5S#$*&UCJ][h/OY%e(Ww[k=eIנ3.A9q0r*)ۊ:I'(4 ;ull3")̍ 05N7 Hk(؎$ހƭa?0[DgR>4oVZ"ܕ0/|Z)tSO5RmJ}QqpgO*Oud2a[Xs+)6ɜj9ѾDL9 `RzdaDg$(A멱6i]Kýq=W$HӺ3H81 T k4q+ExASˢdYJq1{kRNlLx+5ӑ'Xbكܢf>&Jwmz$vfԯ.}܁5Lo\ gk}!ND7𫦡S<@'u[;fpEcma~XY,7OR>g+Sgow8I"IN:Y$__SI,6fEd&UJqIGJ7[ P[ ˢkm$\pRU Rgcf TAwOLBgViuDjpeRQNjץSc\h?0F֊"4Gٻ S\tE$r(!7iU B;,([H֡zifihHEdTܐt l}= Ŀ[ V:d'?3!憐W&B@W&'(--B\;j=)\ 6 rHǕ\HՅ*.c!!퍳{g~n--\o%2qnFs0 HFd"Jقd+HvJZdZ  ÛZBBF6`ߣgM5AW*WCteWd)@jU[Ne{=wRW7MXu䚀APH`>9eg$V!*΅j!$!@Z`5ئt +Q V'=$-NKb Zjں e0*yՑqUqx?C,&IoRĨ\xtlIYOdq#Hzk& d~k] oo/^7oϠ;ȤhV,O3<4 Cb1i|Uߖa#V?Tpj`8O)J"[祌0 =bD>Zy] qԙ_W2 8|pZԠvZgd.G w7컨TˬO.`橄cJvプ7+ŷ"2~41#/+Be=yb^{lA{[?_5ƀKhqގ @&_OujU7f&rB޺7inW}IXi7Ώ4,TRA9)C8~Ǧ=Jβk_7s^I Uܺ;,{:kit.,Mfު@=|@E׀L˗ĮǞՔ> kedA#%TQ=2=zb+l?2 N.lx+N4o `یsZ0a'% Ew1(909ΘsXEUGظ !ᣑmQJHdGP -輞s scz&iE42}W) gXϺ}wPYqD& J{sJ.X~mO~+mHzmZ*02zMULiRPӊ9C-S!= Qui;Vz_ޚ'-'.8j\XhzxzWrV'n;a\j.ShDV{6_6lDMsy:đ q!DbVpd?Z՜$'SA!MWV@ p=[X4JO!ߨ'ַcLS)XezCR_7ï-!''Pؠ9WPdh 7[[jM34UOem5 &ݔB:_ |ok;0}(,/W9\5:HR)>)c&d)=\R!0HU9܀uBR֌2urэ'\B#7]Cxz7 Ճ$~G"+[[6< 3nRECs_ 8pN{܂gIc^=LPgo,@ҲyK*K= sv[{vEoZ5MĢn̓: 7^5E7[o$|LͩEf=NJܦp/oGAl~wӪk.{17 YQeVf@3vWZ3Z1gbW,:o`PSwvqH": ?%p`bi "':2y-%}f >?|t4QTbu'~`0KHJi8/Ĭ"2t_:y: `قEݦ=_#uv0]4NH?ApȉAuwM/->gQ<ިwtd As-f\[_ s$Q[펆á0&6 RAIC qP]5^ZKwWVa KxC,P&\?w4x&\N40/7$Ͼ"ϊ]%Z0uGOpX-ye^n |\~~Ǽ|]L$>o@U3q+U4j4G$А]>sz:-5AIp j~38gڄJHс4lL"U#YZnFTV)y%LVOr+~T~LCXJ'{d˺tEaq>Afܶl (8֒@|v9>S`R,~&;/Tь*6EG]jG;>x=Ӷ R#%ܰ46e gGKNhy zfSQ4tqZ!t`A~[18@}b@?3Z8hߊWJ˓F BH? ^BLE T Gsac.Sl‹β]S4LAke^l:K{8ױߧ{_pR{vw5 ic_!l;G cͲfFzYRZ)_eQ0レ/bIS5O`qHw/kAuCEj؏_3 @G+ioDX.WF#c3 J._+orYgDY_w Lʼnz'3DoZJ]\FR~>JW?vhtW15Bf!P(9hO{<K4jjٓyܽqz}ߦ SjD"g(֧jcNe[}%kq¿W+.amPY֫?I=H)2'6[{Kꩧ6:"8N4d7#d%vqTBE]7%-EV*l >9Źc(!90MlA|[Vo[5\9V9,EU?6FxΩ+v9R Rol=Aa׵m)%t܋QBoYc)wZl:Ύ vRYQ^/5nA-4e[[-ZχkpYsrT#d#R{>s6_|Px9SwfߌܾP[sӅ/ 柜6g ҆He_ ۦQcKEEҟ2+XJ Z(bC2{̲bW4Yy5r5S]}r^oZ3!0ֽxR X\Q/*Ρd(.0#'B&uCI&~/zjۑAAB]pl}T2p }E GNJVr1]Jkl Fsz5P FcS'FW@9jpH9ikSm,d,^6FL5٢~V]hW6:# zcyclFS@<*":- ^h7JȻjix$gzԊD<;6 ݎVg 8<˽`F4tVkֻQuZ ~xO=_ϐB\S#`%c{?BoVĵU·H.Z[eSź!6~0"&yRE*iCmCslpx+zjLl@0N3n /Y(udƖV<0&4 _u: $)(M= G>o=E&ĸ"k){Wp_~78& SUQ ʂ~ 8oEHZ UʠHԔ^%}AᾆO JPg˦0ٝ+Mov>g@lF'zQk{L:!KVYol.oӛДȩDwխ=Ԥ &1 ZTϢtΏ']h+|K ErE(1nI.xudawA3Qqn貋eSG.om"bcmw w =YwhwoHWD_ MM˭><V2R!+2egH9tr?8_jLjBR;kz܊88jn= Q_p>YrۜzH53!, T V@B4{FriiH*@ґ溉5{dͻp@a5~U:fs_~[K3p E>XIGB87?JFE}_tzA煢Q150ܮR슺 Ǵ5pTcz+ +R1WN~[".6D`'h5֧ђy# Va8+WQa+ڳLMGw^@'tWOtLl^$XVmBn/+}=B)EA^i|)zRP/*W|R? ?y4UvjTW2wGhBk~~P). k8 a%KS-m;f[T%xoPY޲i$=q-ҟCȠ7T:M`^W1o.% ބ)W9U7^wQEPZn*5G: kx-GuAǿ3f| _Ű8=l}4|}zgO9g4">A+{H{A 0͎*Ϙ0zu0IAlZlØ^J .`ݷv޺['|C%{Ҋ˄Lh_mB%),~x0; l]LEӂ;=RZrS&dro%L6xŏrʦ:qSQĦ2o@Սe%˘Dc&{1# uӞdvEc1!2;3Nv]EF;ަ_DiZ|PE7>J ϒ4㣶 }`=VZbJ1jmC!hD/bpKG^l6~+l\X֙۠uwª]c/P&E}cI L%e?4(':p⇟:cHln=JUQ y[JİĄ:/jTs:5b\{ dTR7rD*j#H-$*ҽ> 乏Vl€۵2USUՊ.ќ;ym픲2ylɧ5fqJь4A"8PX~P[/H/Vϣ]͂}m]z:&f) @,s&م %=@&+Q[D (E׼qL6ŧB*o_>;iT\?Iy1*Ca3'}6X[Ͻ!8ĝrIVxyMJ :RF" V5|ɲNÏ!ݚ/ `Lf4ũVngs1^-mOdp*D_Bi'{$5|9K?Us3y!\/O"\8\AiDZn- V##ɪ9V*nХ +xL5~@X ނ‰y"qĦFY8bܣ,GE('eʈqOJw凍ScZ B1Ж?ء4[PK^q%Y Vߑ D Vpr ]7dD &==TVb(|9('0O"]-2W 2>>M|EN@ ,GLxε0{[~j6(KКDuH/Tԩ98;tKCׂ)_W%P<Tqّau4B4LJJBnq̣5Ũm.\ F9c<|rvHG?0^MEp,+2#Fm̡dƥEdi 3O |j  ٜ:Av&cޫS)&R>y_5^䏆h Bq=m )xcF+u~Dw>?}qewMRs[n1ïTGF(*l*ewTNwdb5a6աs r|]gl/ٸW|3ysc³AP`yoO ƂX5cI>OpwpE.ܧށ@ E &Sm̓g՝ 䂢hyv8Wo $@)J,_Ws2&5`:_Cf`Q0_Zؤu- 5{Y>h*]/>>tZaw(_v>/caE,),qCH>RQ8~GmBlcctt0)BPl;)dzyk!)á"2똷] lg9sCWtrOX I˹z`][^n'=HrW)2#|0D(U7Ƭ ‡J13V~]@{|ko!f ">n~Zw)HauYRSA 4ffu|Rd"6<9$PUݭ*RF'j fcާ[FݏU^#>P|mCޱ*bRi  w؁Ahu:.tW;{o,l+j5yKSd% ̡caJ;B/w"~^e1g]c6~t*jOqW-p6}StMq +DÙQ#;rG;:7"L301:&&;fZ= 18xS$W=e*B]fOSN4c X~L ?nVs"t %gYVnZ,Vۅ;F7iABY0ZGr|KHS$l]@׸bbxx-k.`틆Yq>Q ʾ LW|m{©7q*o,0so-Q#^Px *&:Gե)&Nὅc[~oA9Ct:1TfϨQ Z뭮bdXqWmn-7RFh7e"}t ['ΞiJxfeGT`VPAs%c"2lJ;Z)W@1L5$ԵBh yxsB3mhM|(}">szfW/1^h$ԢRC 9iL|5Ĕ _[S-jWy=A邚!BT,(_nN>m MП dt:-˷߰s%c[ ٣]6%J,5$RH=O !]68YYh Ι"MCo1hN!9Ou<?!VO-XRmm%)hu]Xh9jsF's¹0!Tr+V_`G94ln _Cz$ *nHpe4 K4mt{(D9+@8oz XsYJi!NkȆ͖>U.He{*)ZQ2-'n?dCw^dDlu~^]:H]vJz%վovD<+zĩQ ښ3_:o z1B X+cϦ y<Ƭ9P?q6N# A\ѽFB%JH)(CGl!jiޅ$ip\͌&+ٔ%ʇh<&LHiKm&zXF'$ɒ$c,x,'vit}]]ww&ጭDf 9Dy.[ mߙ;29p܇*$)얔sogqSO\4ݮwOjʏ xh Mޑ) QʇV  LΠ6V4Ő7YSC%e6ח-N'r_UH$_\+txg3Ѧ& W)KU鞊(:M"D^F~mTp}W$6~um+͡/ěZ+x/TYlP>m*ܷsf|n }p=imY7a^6t`=U*ʯF.ld=a&~״CmB~n67׵csWݴl\>y#&BAtYgY,EO|,CcJ'ݠNb ֭ `7ɌlrלzS/+-vg{6%K޳%6_'UM.6J͍!{b׶rFdYs /k`d+_:Ǭ1v.K®!,d jt&'k0Av9RvU1-r *jpa#b'{1؟#OX=$މcӜ6sQF6qMG+tEGkr/[sdg,hB"ʮ%=DyU`Փ7s>Op= 1*Iie޿`D-.ٓ.w~1;Fky~--)@t< Q -C&H?ܜ^5hPMjfO圦34U:Cm 9; SnaU'>x_^j wz^IC>;Pƴ⹓j oLm4O[WF, cbg/?r0!kڊ&*>Yp/xYgqVdq<= #Cp90<&/+=w&{!盄xۏ|?'e'M'bVVSZw>s׉v[n|Y$ HM5:v@70fX: 3s/hS*VSOݧDa9#H,{s`MN5xWn~ݻD"UDxrUi<-ԯ֖DohE ÑZedIBdpmha\ ݭ ϸ8-i~V8RSzxds'6 ʼV|6JRBH7ǏLMbC_j^Ľ/HV{giE:XGhv[qR;u$Ү/\PUp~(&1Ԣw+gz/?Hޕ.1>rw)vv 恒P~W)6AGNϲ &|xhFQ׬N|ܯ MT}]b.H~ MRJ= ZT.STGMWқ4T"ɐWWT[9!A TS|)0&2 L0ap;9JaP1q L;\QqmsF!3ۓv%[sYtĖXBrr T/8JagT(S05ntגeexۅ7d[m,b /_M.v&dWTO|4\+՚*4)E^'O;'oh\= @ Z M.yn˩$-؅,$#1ZU3?a9^4N20n]Fs 2ѥsX"byQ\"po,3,8iOdޠo3ΥF$upEYӇ gӍ'JcmC'7c57e٫pڅ{fc?jCu1I?'t$eΧ:wW_  Zij>K WMH5o h\F*̿=YNd&Ӈx3&P`vv$ChLPͅzl"Qm>SToq rb% Md.˫wV`-ړҁjE:V?*>7M[ r>l7PǠN7Hk4ZBNGv\96GQFFȚ۱b9m,ChS,VRwwspW֨OA$D!-C9wNd$N?{t3R>ژVrxUJ>֦Gtl0ݰ 2 PGE{ś/u CDx ϯvd8lQb?)+䑮{aRCIPW@ B%|3I g&BH>M]ZxWਯQ7LTkCgzUD**Q]o6Bqůo z&?!_n!FN Z'WxmT9.⥰ 6WA W\ѻMwt.r)9C\т?^J6i$I#kQVDE 7p+!DGڮ^> e2"_hO^_421vMIHl N1LQc3F.?Xb i ,v:V (yx  x5vk˕Q\ A{h1h&gwp|<@(,S?ؒWo|׏"7&X[Wĵfmt~/Ѥ~Q)qr~łcuAa pv15OΥ*4@ah{6Ss5 O4;rd x'8NAHu0 e,"%Á w~dcz[JsL>^ {'`*Y Nd VwMGުGg猯A`HUcJ;qH1J%,

mwq˦2: ܛާ$9LCԋxeza:"hVIGlȚ^hW*(J-u4 QY!MC)\s!MbG?bGdt>Ufo蛴^nm.ʢs-*@S>o͘ tAÚkEgaII: C5S}R*tvLQNc 7[jWO`6ZzөC/~j|xdXOk_w32%-3if}\x^9&t7X#$@<$Acg|2vnyWpD7V;F+}aZ>,ǃΡFrCD K_[mt? b2{\b\x Vi\ƿCz]qb;XOY:d!xpq(jq ,ۥW e.x3GlZa2"R2+ $bʈM^;X<_6yoI'1٢bԩt0.є>q"U(uDzw@d5?7r:;-+gnk$ BC啊[aVWVԀ: bQjq8_Ŝac<)t}-Md0A XE'W"ӑh9+D16Ub7<8#kLDےك8I0?ȃmĎZ@xj]k oAﲌx wvAѳg`KAj[4r;IeY\;_ Yj64Ŀ5LK+F1w^2I'kG<_>i枭 ogIvz HL[Zz?,70*`W s}/񱢥`͛J/VZeU,,}R;\/<4nX'I+CBvF$B ۂkJ)廄ÒWG΋50aG'B1&]ӄP% n [:)5  ZQD5-Y@J21 v1KsP(a`X[qBcja ٢[ؕ,wX3b_¿,[_ e抻sz2'\s[@(YL>vS=02ΈR(n{3x4ÞǛ'u>QP6QI+u_`Q|tά㔃pf3`Yh a@p*%ZK5)`J)oeòq`ӫ v焬S DYI)0/Bq{or^7t `}+QB:AKnśp>7LSIFYF kB3Xz]@۸z!=֒.4s@\6<~e{475XSPHl7tR+ ~b>sA kIuӤmcoqçtΫ]7$עfoBa~+|S)glp4|Z=|PřN1C0L|tf^r'a_GR5n<'z(ltƒ밄=:q㒶Z'w80Oa (m^h/We,?(54;sqR&g1A!yF|:۩ 7,3Q^[`wy?,>ķvR} &/-2TF3ahtqa'HW9kN5 #´ehXQ_*|j!3K_dǖf+ ŲFmgs l"~qe}i};3( ]/ r޸KzI%ޫW-Nd_kU^Z-P'vTN0uKA t"t.\&7(8/dg*1c♓SbZ/WP5a|rnAsx'f^4(.<.~pE_&R fV# [UH}Η0.ȶ$X:RfsꪝrH%ب{|3Ig@lKloEטrzJDw  m6kn#h3ݶpflEC o2NHh^urxQxf7)ݏk5]0]д؊YѦ?T<> nش9Var mjB9qmx-VvrXA2 %顟ydRY*x ZGc` 9Ί՟ng^kP[?=53Z-ƍ1%fN>*1-Thn"dX.ggNn4#iIF*Rdo eF #Dk9&J9EtFlÅ͇\)g)$4)e%2V&^:~Ph.nU2ʽl`G=agmыEi?SBsx aݤm`k {}t^8&Sdmyc_PZ0TP H$^eY35oZ}ˌ.|4ĴstpeA摵DiC/ԧj}>rA[ lēhB| [ߤ+KIBUH@ 3ΏfRN3o)Y9ŀ`Osϼ#urj~Ёg1s͖u~ `Ts.)%}j.r7=C8c{93qsqbN/5yKC\ip 1ݍ=,Vyo!I^sיFt;zYwg^'KOڈWO3k|tgj3LU8S-bWz|ی]&'5+!GQ9bl^i$>:N\ߔ̹cJZ:qel߀T0Tu]WieF ?FqW@oV\ixiJoSN_Nl+gy++ 6P\ʷc Nmߡ%|MFu)])Ȇ+rJH0 }wPGV w|M`G.$(zUf)X .RvpnYZ8?1%ԃKVvp{0getTVeH=,{G P@mDQDw#Vg)@& F"sZ<r9kꙄt>7 Hb9'IX1h.2DxxA1g@_=z"`»V#а-R߆VCR%+UT^KT l?<3; &-M2C}^_4y&N) ]K2LXoHL:_*=V!PWy)h% kiYKM0FUH'"J[pl+eȖ9^dX˧XqBzcՁ8]sc(<*5 Z~f?%zyI _MV@9Դ1r/}ί?Pʰ^oX҈lsI ((: 9y@* ~EDyq~̹]z3ώt R]=v&u?ĉ QK0- 䨒7!Wço/]77OxxbR;]ٌ6#YgݟVtVBhsa@?/7h?^} јbAG2E. +Ye'``/,Eim&7 w̗b(ZGa1;zb qc7!l+[(@.{ߝ@Ep]P U]Íc XG[ZuQj*g Aߐ^}dic-t8P9mbSNM`6,u@yId@ J({RN\sDM_[WmяIR ēy/rKwQ(KnE:%zm _psוRIzް*G2nFZZA˞Msa:pdi1_|0].  K*|iQc.Ԙ g\;Xcy-W|8ͤ.;@1;A?֧bx<.uՎiP n#Š~=S:&=-B}Z|(^NSv $.ډa[XFo|@.zۖ:xT4R b2aXBvVnTA^L?8ی?̥ HHjewfeYO B~6@74Lut}.bB"Wlp#7s ކ54/jZ6q=S?^ -}Nx|y?.3I:Dzt27OuDIUA]ά!Rxщ8=J8T˰~8' ahsU,_ϫJ:'d˔v+Fs51{cOX~YnNlvYt؆wAQU2(lSkβPIlWY7m* kwP_\w VAN~b*`))$5!\4f(Tâʋ cim$"N+<bwp`-5gU$kg{ *xrlIjD2Fu(>IC oɿ RQxZKy7PlM ŁjQ• #ŷ!`5RgRZIY^3]g_۶Y*h L̽9>VwYzS|lPFm rKLC3.?7EHn*]ċϭ 5E~nfY  qMLyW}'^}*ϺU/?×0N R>ijXjDKzudXMLM4lL6tS"81.ry k I0??mo ؇r^8[, lk=P7ԥ퉱 P 1cg\-h$'*'"3V렴Xy5jOIȕW/ps!k#F-$n}bhƻ8dz?^ds0l q$Kg$qM͓!1o <9`zXcCTq,v[* (ΈkUN,;>+[ m>ISN+jbfe"Nd !|ƓLlZk8g&l \|a[zPG`S=$QD\ ~mzg+Udq :-?O쟤ٽc~zzu-lmӵxܴĖ[w2q403|?r WgKHw&.FZ=i}MC{/&[W Z]kTL"kS,Lh]a lw ঒GJIJbD4d5_Y ]9iE@~T&Ƹ>*$r'IV`] 95S(WeﶘyBs)fkҜYiHVȮ 8ȹ }JWDw.kM_P'M9^e]qU / ٌ\j/Sp&1y{gj;B>΢i2ўmpee+; V9I0}6M^hOӂ_{Jr'v?&|%κK=ZGO0 D͖ إ5[[$sd..O>MrЎG(uhiѨ ${%Y؁e[MGoJ$:oIx3t܆pߐ& !X,tR& `4g :Uapy6l$Xrϐ1v^B=qּtjƽL ZeD<i+(շC<ϗv|um,P;ll2;q]pHάT;@S$EL\#{Bpg\K4!(Ked!@WBP.$(8h&Jf oA~+ )O(^}DITr~7Ż` o ?OOK= YNj{n|< (m.p~L2)Gly8N^ ?[/@r]hɉ R,18`b 4UK, ȴ y*i )FNsn\3Gw>פW`tcKdo-RЃ =!G'H~S7cAnTH;, yxW?Fn%0nY=c^Sz\_%njր`YnѲ +T%!i2bDr$iq~oV(ww#_" bܭCbPN1_GOxejcȌav"CT%-BEkфD/9iLrdZIqՏ)u#N(n%I?x߄ tPz|Ƌ)iyߚ i*77sQhnҼoǦeG* tyCx!r[Zj7m_w$ ͖~C ߇}Q@R^aju&x[xGgn?K)&t!)\&!I /w:諛[!ˬk?TG5f.d -?bS[j4-H{4y$'S+zsZQ|?F/2¶q7F(>iW@X/BG=xd^g+'}XhZqnYGUsLiCu?UrYDFr/s]@XgeQ?}bRR#X :" ^;Ǫ7} LROra~wfS)@ QHdR )DfW/Z>luCy0P!)5Ƃ[G#6x {?dbNb&ʊ9eA3S#bXUKv7mc>cKv=N!Ewyx2v(խ ,1 * B Kz!]dm2j?_3RI3&_̣!\Բv!-C&p؞fQ{ E"MDd% DZ %T>* Œy nUv@UDvWcg?YJ|:"|ry)q@O'izxAFAae8"u$jq=~0=Rb"D, C H^ɂ&szMz} OG΅9>Fk˅ gߧS -0wI뫱??ho;q%~EQHqO^u[˨FH{}D6.X)?!3,"9R(zLVO~O1{=/76s,J۝ ɾgx1dР!lZ (%Di%&l3ޭ*?0큔fgʆe+aZ(j(̄]=|VQeqZ Y]h"Q PSs; ̧ٜ h^z%‹;D-eX0\)QN+j0U]RUHbbm>?Fƭ ԏ"Q\ kl_IP]~ hr*s4vOa=~MOX:?ЉlJ1o;`Eh> wYsԆo;<#Lir&AH Y|Q|vO X+X^s`}o"D%~Xs W:#YOQTtZ_njI0!):ՌN>Hrϝ5(׭!mɡ~:3_2էYP+Q#O@қ2jZ tSN3sP2B ,">cpW$\&)%Ƿ8 -rM$dOmX [4mvbF` & h@2k8E)Q,88@c@tP4=;9\4q~B+CY^(]f`e'5Ő\(veoiiq$ ayh xAnpHUZgih d_#sKF f&[҅ |k#xpG?6cC]GUkM~%`tOYvk}M4EіX xPaoWhĆWC׺|A)*R&zK/ebPn $^{撞 [s:bIS{.}dx<.o-]5\W!NBd4@oZE}s%r&̇2R8%@eU_; 6/)-eO"ਟvC,׼S7Ͳ5I,ҳk`ɑVOp~xN0" @k[y[9R7A ='{q#yd'S5xz_2x3v[-gQdѴ *e7J/=LFkn|>vfYsB’-gk{*9FB@AGgEBlb~\ (^^h Oޙn8/'cDU,é9u)IRs3O,kwN~M;jøi=R8gˇ^^Quuk5=0 V~iawtc}ipނA TUn s  qӘڃaW^ݺrA<3+]||a K,~7pZhn])F, IJM+т\8U~A8sn]d~L7p'm7]"b\.Ezׄ:{",WyN&ғ:$E:1܄֝FCria6݄Iu=V^Sk_43-*Mh`; e"9w {FYg5ӗi\b_=w)a+ n{_k@Z-H5R?߆s& "d0WT ,$'{Qqj&v=ۏVs4 J^WL"_md9U1SƇg7^P=$lB]q9+=/'20ԝ:34j4'kkCBe:@Alo,&ߖ_,%MzBg<9hMu"÷7Cg;]m:v=aX~D`c! ;['P]@h0JKj#5&]~ HUo (9ꈹߎrtz+pf>gfO`>wYQ8׺Co*l >6F ˒8 z[ I|4I+(O Ͼt ɤl֮bcZ MC\A?0؈HɟX7P#iL4 084J ?0fz[` ?`4wf\iYB1f"DZ;'b\Uy4״_{{Q%c}܄tg- hP޾&MkLoL*ߥ΅o޶X ;S~>5:#ͷ+XeޝN雑8tP0%Tau\|'3iԕf;GCU3yE/88`dC,j34!Ҟh }:Abfw} OWw{d}?wXz*/Y 4:m8=Μ#2ue`)d+<_+ /X㵔4YP9D3R0@(B* ٺ9impfqlg*^R [$17Uj S."H `hMӠO= i#\Zj򳐀|" V#tgB~R ol!::t,5Ψ+mDib4CЂ#5MnPLtvJ5}Y NJ1ћ! gS6 D\s ~P#cx~#0Y~p/ݛ]ƕi°jfj8/,qo^,B !<]^]aXEG!) ^U.>jvuV~>G` 3EpU}XCVm)w ?<È.cPl's/sƱt ij>%]sR~B| -OMg<`$uvG4>,"զ;KPla߅C lʀn}"@ٌvCiwՃ(eEFW̕G4V/F=Lzd`ڼrQR r-NTz,3YM 7r4=7OcYM&cSQT/0O}tZ6dl4J'uZ];`PQg/~g6*l/SJb{>dQi~y ˚*$ٰKwrƵWO`c*/MlN,:@8EoC"?E-([tcE^yjTƴ-"qf,:<p<0ka8C/`/~%{s+vBt(f:+hX皣O]WyH-\8ux \6ZQ3|(E?U1M5u{=+0$s״%the3qʹR5aƭK~}0:5~/6$͌3ekGH5a_[e8': =io&UtcJkjlKQ{pN騪HcT[~ '&~U4V{WLы,9EC$04D!DpГZc3lG%#s?t W;;7e]%H[^t"0` C[:WG)b7MLQTW (X 1W G{/& r1L0;ÏVz|J/cJYk6Oe>+BOb<ϫ`/@@> K%(aXzXRl#wHr3twCC;5?|Hm09r%v0D1^w5L];7|>'D(}/T (䵥?A<)&*)қܓ2vNU}NzTuN[Ed2.t7:-odxn]nw"JCX Y} Vcf.;2U29copΫc yGlGP2v ٙAWxk~ bik,w1ωѕ p]}%džʆ(<986Yc`yyq Ggԡ< 4&aC,qujdW]c]=;S}hݶnDxYR+t?n:t5prX_e?E2"|C!U9&iR0~!q/\ps6'NeDj:Wzǹg#UZe{{{ҘZ\#5&"e -_R)cSC` G J߱QYp}i9g\."+N[)l:TuC z H&TSRilkBc~z׹ !)l5`YL'଺SPOLJPQ^SBbDOl=.LUm*A7 P_\&wӸH($ ̜dh˚ՎAm.EP,@v9oX9k>l;V<([$B*J՟vAHá0ڂy<Ʀ?K ?gft?Rۑ~K ,zku΅BMqE ~@eR=d=ibߔU^:4-PnnH~_,!9&A3kJMxV6a~Ԝo8)32CGZ@3P/& A"*{kI]\1q6=̙Ӻ\UzAN\D0_ҽMNNkPې-o# ӆ4 !y"u v)~Yw +g_DuDWÞfN]NMru뱌鿋Eb/hAICLaa_7[~IUIewz"?GȔ۟[2¯gmZ2V^Z^mBAKȤbU n|{C$ oӞu)"Id\eX4ornԆ1}&6nYљUd,r.03x0MR o=sS@B_b~hZ"@‡uLƔP} ̦zYI䃑aeO̹ wl`ۖ[=MѻUl;!z9lmf/m$h61|^.*u֙\J+VKTnaYڻ{, O']M;^!_;rU9RX~lW%KCcUޣZuJj9tmkW@ 1N{ș2\M!#+JjcW?VKvVͩr1.}*7))'ˏ)~X*~dDvjC箣6 dkF61 4`sts,,y_IҳMmmB3 )G SR7}Xig:Ʉv7TrY^XAP'8djF"-[$(h8-D*kld qpVNL "GiCs6p IN%f4NS'H:plj9}ӧJМW“aB5#dhӾ`kS}l:CM—xR:x7|!4׃eTd֛q\Tѥ#$=Jԥacy<4BV[z78my' [(CsF>O FN=m}8!-{Q!V7R3ʱGds1%Wyf/Jv__î @*S3ש&6m7zւh,.CpmٲmN CB` \#Hz\[7ͼhJ q Kߞ#xm/WFSX .Qd.q0w@XT0CxGf+|i܈AQ:B֪ź>Ȱd3}/?~ {?c~-,< @/}>Bg#$TȆr l;wYe21k>Q(k@f9ZfBm[jabw%̤1:t$ԭ{ .;n%Xh? $_OiLC@8Oa=>HyD 9[ʤz.̈(O֬l|@i05yVR=١>ogiPJWmu0{ 24ĘSHvs{MGR^ =Jz3B ?$Zf5ĎVȓ,b+IŁiF|r̾`˵ƋmJזť!pmUs?z[#!CbS6g9"6|]1TV1';Z!UKE+uq tC5TY2]OX c;xҸDbp'Ojϙns0SdJ壚Dɑ88@FA,@7kUՙ@gN:{L$(!}L2ꂉ<@Zz!nb,u:'HŒyVSݼJQ>nPњ'I&Vb(@Wm#Ts:Yb$$%eT3fgq b+QIe5^jV=37JE# -V{Ma {WC$n!uzv(,PkK?,^C6?v''% IX4Eԫiy2H#ZT4OF'd[o:ˀ3Vu[[V3'(n5aA,y՜'hGÖ8&&3-e( |X;-Vk̬%WuYV`l#B:3y~+絀vzay0Ŀ2\Mvix yDh~禊ڷ֭;+Uat0nY97\pI=́}O]CIiA(v0|O͕PeO[-]) YvN]\ &Z=)A `d @ F軠L=J]PRSc('Ob^Y{),½FEGiV]2',qk[+g^P~ Z'V2'qwyKZ!\wx\E"Kl0~` {xةJ:G\v~>1)lttCc4'+G&}b3)@/USPlw&מC 9 z`"-w"P?lJĀA:gN C?mcfνu5FzlJ&)~UF&}rIzG/TP¨ 1hN~·ý>yO_b?AY\U(*~? $-MҶ[:TB\kU k dMlIҒs5X# b=xW6#99"K(Q OxU k$ Ya9Mb5Ћma&t$|E3;_ؐ}abQf%6&XaN܈ :̣0pZMЮ=ӸK“Yl`i|xٞDHȒIyA_qF7,5[a@dQ?T/s\Z9pΈ!UΫJ\DB@dCVu_|ʻc-v :WJc1ԙD= ! jj- $L;Ca͆]ihfi6$ .[^ U96l2d̃9h.leuI>)›A,Wa=;64 /~~jR^?pfHE%*1㕛=_*7!bx+¡%,IQިbv/*#7^RB7U.ؑ-UPx (bЬE^0(ږz~@&C,Uq !֪kX ?%' WCP#VZPꞣ*>jahXSAUrHBR6X ¬XCDKuKը[;Rޫp+ -Xo^ܩ5:RHt f'KY#m}DvO҉]f֋} JO8<- g;a<|/f?k`] nGM$T(gBou_YYUDAB)w'A\a<Vcmhsijn/Y> u6ԉ̵oićA,BF# oNT TQC84A+j* ~~Ӏ5遣rv*/mHm| Aݰou ʋcz,Sb,^A 4I8[XI. wٸ?LOYMy9hgsqb-i1/rJ0 qKeP?$+ST@r9T̜I8VP2 `Ԝ-$W?̙m%Ew=/\+t@p** fXb _Vp'`'p+g " Xwk0]8;#;r]PD˲+4(*2IzX hwڔ=&Y@:1/?;~{hHod{Bhut]b '{.-ܛ{`o xhn<1$P>G7ݯoC(s = !iJ~&x Xwk!1py m6ic|Czv.cq  #PĂB '? V"XUƖŔvW$_F0:|ۙq=)2ۺ(Q{:l/8K_tj—7:M z-EDշۛ 6JᒶtR.hΚV "EFd\,ro5p8XȠӋ9d)Bysw5NHIbŦËLδDLsNPyk1mbH qVs )nXDsKUj!x"iv]n3a(,w: .5=.>>4X):'m4䉍&Xdnbc̘u\/:ۭ5wIuud4Xo W Y&Ոԧԩۻ< K9YXZ͎F!c` }// ! oWXaLa׃O:B1 L2oI뼮F"plTH3/TjWQ t6|4~1 /' JЩ{DUꌱiEzPH(aP rv*<@`))$X>I@,V~J[JjPwFh[85SJB&f+g᤼l̞TLɟ6YGjLLC[23Alva A+4?o0ﳂݝ֥ts:iy7,:TW5aex£{ӹ ͈õ by@z5lqQSF|ۑY;Ա?+R>y^}ċJ}e2hfu+ZN3TCט>șp~g{$"-N ̎n*WZ+vF )6!;Frꁯ)t`XߜT3͠@us~D#,y5D 1X^:Ua/)-(mr6cSo=8kδ0z~o7`sl3M(T* _ AX5VtәK!0'qnB qkśͳ"6aTCaRf-$0mњ=Mu(7%]տXԐ4H.1d%0lf Վ+U{78%al%J%cmtĜ2^"lckIC [EgX'wZ\팗'uWDbkɯGĂ/EY|/)r{zܓ6>ޡkN q;q2ã.+jRN?mj7 y]GipICR=JsR^8./8qh@DBp/.TA2w |o\a$avmkJL:v{RcPGeOHGYSW 5DӉ!}#JsK&;` t}zqQMUڌwE7bTx^KAl}u7uX}8掚)cC F}e}FVmxZ-qADћg&:*(69X0ϙЙ*Zk?&#;y;을|CvB[毧m.\l1 hOJR Ly_M;f3o;$г 5m"︑~75tSk>ݏl9vʜyZ 6&.j3Ovlq++a(gC6guL=ǁ0`I-=!p{MXZK4N}> Vxe$}{d skNF} fu%8aqiE_WOͼC~d%tqWeYJ+7}@/ؓ,  Ә ɌwXj ySJӳ%&2?(7J=nQ4{uXs,U2jOœz%|r }%d/X91ӡBcVNv \,Ep(~J._w IEf>)d5pL S$)u#&}n]o V۸w(Xk`)LB.\:m8g|B/r[FoYu[ 73)\0DܣG QuY)@D>]yks=90A%ΩͺhynZ &b+%3$@WHGaDKp&^mNTrxu4Hc jbgXSX4:9Lq$X=М6K!Gl`9of ԁcbvHt-&`*F t UJs T3e 2z%,D)2Bʕĺ̷!IkGù%!4 rql46Uk\9^MɜJ7!>NMXF:J2Ql E55q^¡^\t+ۃ6[MK1Fhj̓Q Cw@׆ )Ly(WU*weϽdy'Qg"aF͉u_xB]Zvf|1T_5.AV>"]kπ -arJ0C]i0o+cOmn<-F>TTAH`F1m<>/.5u,Nb1dg#`!^ԾKEfdT(nIœ+oTh48rU$E>?W5Ikj{BM6உX-&YY?1{3IտYRvFOY&_{%.ZNk֗GqLɎҳ#6?!}S ~>ðb)MlRL*hgbB"'v,x.><:.q tLNL(QȦ#;pF)K-7 Wzs>VDz7g3MdꟇ=+85XLPAf #u惦wWCBn?H6 O' v1W !EB)-p+h&a'tV5ӾʫvN k#I׎67ݽ(`ߛ9t"ħ׿JXs0l譛M^lȑ4irFC6W6|>/Ѕpdž,V.Sh'LJ8!_7f$̓)y/Yѷ0%Bf3PRQ6+:+9V̦F¸GpjQ@46q*h46B (lUzh5i0ry¼GA.>Lf04x6-h%5^yIW>gJ6#B2Fd#`@T>"ijQtzV'!*K ƿ_v˷R:lfvg,|lчm:nmg?{VVgu!RUv.xp'ߙK*'-`5ڰgN敖0-. 5?,6Ñ/BڙzoTNpIrγ=ݱHBNl!qkG`mPg;(4iz5w9;}B٠vHlUuOcXaSևúfD(*8@.1lc"XXD/לqəNSQF}8BB9F958cދuk?qʂ4)ͫs?jSp!/"zkZxkW =߀/GzFv9 ]PSWtCӌVq3(-).b݀үCW6bsA0}eϹL.\*dvv򨱞z巣12_(EC2O #-3EP[Ӎ_ ¹I)5R} le_I,$ gv0jO<:8>)-p멷ZܱIp:lɢY[d2JTTF%/xCiP)mb.-uK\1ƻ@Bt# n[ |W+CѱF` le*;Gqc< \ђ/H[IyKQ@ Sc-)7߆_V{- 선ȵyZZ b[$y?$lA|vAM :ar{{H#HZSL3D~n>~_zly+ %Z3j3 ZΦ>ZkMEqn_NR7>Y#&i4Ta 5h'wۏ`1"k ffJx`QG8t \(uWaJGs.[Ï IJݏ4vI KӠ ,@Me6YC}o9,Z[MM?}T߆QA6s$ jM, %b׹F!C4Ӹ8<ڠ~-vHE3A(4 TK!?#O 2;Y JmA#&E<|dęi]VjX_kq·!6`% Jg)cE`h3.)J #~Rȿ+{]Ȕz]& -ѵ[내2DŽ22t0,)^Z,Li϶Eaߣs%;o<@оpm״}&a1jo}YnctaqjU2Y^V#œ4G|\kˈXY7BdCP&`0XHNWm={z'UUz ^Lj,j"A\2}h̝fNtxGNKpL}Sdwg^+rv-gΗ@]z.{0ω+Oágh-ѝgȄo;V^olw#b# ^ֈ oղ{26%-Q/ &ܾ8%hRDYb=,+@: R_!LjdXb+{cQ ۤǿP4ZM *pPyF%fCɬT* oeB-bFX쥷J/\̉DAu]˗!H3KG/@KoW2+u X,=۔z@jϏ=Ag&2ԯzf Zs0 !iƒ:j7rTGÓ' 2mxTm)?(mSB%Y Sh@_6V@G^/ &oH%)a~<͹2zvCH2`A54$5XQ"3~ѕ&(^RϲY?~44Q_?X_~v9{+]bk!,N-qϴ;]529]&Fm'wx^fT ڽt&'j.U* ϖ9us}s(n΅#}KnOF`PlnFbEo-xnFv hBԬU~'Βf>)ԯʟXMkۉE~MyM~3θjKzYU'"h^v -UPf{~AEX'aPLs[DCJ[=y9O,9E;KNxWì ;P{m{*eIO dKLwsĔgǦP7,uL|Lym۔ڲإ }.DLQVwڻ 1[YF1=gmV$p&v~̃ 5}y(OasoԤA9M<Ư9=E>E4/o֠$Ì{)T,o@^^tx8Wg=!,<-N{V6mLjn^6ɫ wR5s&=']`9'uj7#ܤ5.|Wlfd J`[!ϙx YZ