dpdk-doc-16.11.8-6.8.1<>,[B./=„^7s q }=qfT[u%vII@id#>uYv8 y39say_g1 N\Lk<;0`KTnVq"^Pl?tju@ɈC oGŸG SQ TY L;a±‹@U#od?:8l,m w|{G\QϤreĄ>f>6?d   F $ H  l " ~ $<H(8&9t&:&G |HIX"Y"\"]-^bcAdeflCdpdk-doc16.11.86.8.1Data Plane Development Kit API documentationAPI programming documentation for the Data Plane Development Kit.[B.lamb09 !openSUSE Leap 42.3openSUSEBSD-3-Clause and GPL-2.0 and LGPL-2.1http://bugs.opensuse.orgSystem/Librarieshttp://dpdk.orglinuxnoarchFCgt5eb,>H <  ] 4  L \  c O  +x Oe7/' ^$s,X5(OhUX*d"R8*;I "!(r k 8oE1(BO1a*a"O8';F"(o h 8lE1(AS.u WkfPAR*" j'9T!/u D  Y/x$O5.-g$n_uK?'E|>>%e2qYm"er~K;HI_1QzG`,@B0t7qyQjGAW_bw1{0 <+ QvhV&S1s`tԥY`hYM~`|)K%F)!xD?%k0(A}ub2*'` xbW_RP]%Hn.I4mVoM DoЩ2Gk$> J~+V8qU']WGsr[/*=Ju}@>L5?N23B =Jl!G. <C.93SmSIHJ Z_=B]M]K pA`hU_r\ϲhifi"/!&R@PK`c 7`[: ]S'2%v jI&+ r 8x P @'#,+'".U#) vE3[) 'QDz)m}OeqQyz'6"6v).GV ;L @-G?w>- $ EG|I5)D. #- AO >+2h ? i KS!3%^'u$'51*! LK0c#A  %"!+p#:MHK $  sR"8Z'Jn *8 \\/)&-6)"##U* "%0e,   l -$UMzzQ?T uaz b 9gU?$:.R{AA큤A큤[A[A[[[A{[A{[A{[A{[Ar[Ar[Ar[A{[Ar[Ar[Ar[Ar[Av[At[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[Ar[A{[At[A{[Ar[Ar[Ar[Ar[Ar[Ar[Ar[A{[Ar[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[Ar[A{[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[Ar[As[As[Ar[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[As[Ar[Ar[Ar[As[As[Ar[As[A{[As[As[As[As[As[As[As[As[As[As[As[As[At[At[At[At[At[At[At[At[At[At[At[At[At[Av[At[Av[At[Aw[At[Ax[Av[Ax[Av[Av[At[Ax[Av[Aw[At[Av[At[Av[At[Av[Av[Aw[At[At[Av[At[Ax[Av[Av[At[Av[At[Av[At[Av[At[Av[Av[Av[At[Aw[At[Aw[At[At[Aw[At[Av[At[Aw[At[At[Aw[At[Av[At[At[At[At[At[Aw[At[Aw[Av[Ax[Av[Ax[Av[Av[Ax[Av[Ax[Av[Aw[At[Ax[Av[Aw[At[Ax[Av[Ax[Av[Ax[Av[Av[Aw[At[Ax[Av[Av[Ax[Av[Aw[At[Aw[At[Aw[At[Ax[Av[Ax[Av[Av[Av[Av[Av[Aw[At[At[Ax[Av[Ax[Av[Av[At[Aw[At[Ax[Av[Aw[At[Ax[Av[Av[Aw[At[At[At[Aw[At[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Ax[Av[Av[Ax[Av[Av[At[Aw[At[Av[Ay[Av[Ax[Av[Ax[Av[Av[At[Ay[Av[Av[Ax[Av[Aw[At[Aw[At[Ay[Av[Ay[Av[Ay[Av[Ay[Av[Ay[Av[Ay[Av[Ay[Av[Aw[At[Ax[Av[Ax[Av[At[Ay[Av[Ax[Av[At[Aw[At[Ay[Av[Aw[At[At[At[A{[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Ay[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[Az[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[A{[Ar[Ar[Ar[Ar[Ar[Ar[Ar[At[At[At[At[Ay[Az[A{[At[At[At[At[At[At[At[At[At[At[At[At[At751419260aa954499f7abaabaa882bbe4fbd65380cdd255951079008b364516c121f10d048b712d3acccc1b9ec410161b337efbec07a710611184b65c6610a7f7fcdd7b57b3825e8fbf2cd5fbb81ce70ceaaae73746596a7519cfe782d8aa0656249334b2e7fc28090f26abeb328eb78b0b04a43b2bb21bdb20cc4d2b0440594ec5a67167795b75c2e246c020afba0d13fa180a1c853204ee64235708fb8e162aaae3c8712124950481f7be95772ec497c140f85a001747de74e5225b3a1856e1ed4ac8e577196d4ae1aeb595b31d021af4afb7af811fe460842ab932698c6f6e594d25321859526ad25a7b3f99a973c9f8bd5c2b26ef9f870b1220061a847c0b320f95d317fff4880777425103df6774f3052b2446642dab4398eaa8b89894d2295a444d18ff638bf3391b247bfddb0549bef47451e76144ff1eb21a44d60737938c8e3d3b85e0a75f16f4aad3567ec3e9130fb8b8479529be6711c74dbc5de017e4d056330375d69dcf3ac4dfc3af05e89074e96f883abca560ace4c120f62c3439e38a8e4fec4098abb014d21149cd2f304f3902b898af3ada5d41b6de5c138c7ff96cab1d449e1bb345885df11266edc687b643944f517579748613876abe29e7f7ffcf1fa6b0e3b1014bdadc072e8398205023428762278e76c042f4ff34fbdcbf024a5223ffa1774b7b9e83daa2b5bddf9fc0853bdba7f906f061082f29d4fa0a4a7844c0cf9b26feee8b810b36f7ac8275b45056d48ded2a0659919bf3d570ecca40fab15bca0dcba0c8277026eba6033a468276dfcfd71cacc58922d34a4db6ced53236ddeb2bda3be20695efb9b50a0450fa37fb95accbd46d85799dc76b9fae743910e1ddca2434899e0cd10a4736c2196f3bc9d58f52383eb608f60ceed93c9b7941cb597f625d22c0808dbca6b225aee3b6592194bfd4eb22e0e1379220a9f212ff590cca3f9ae999b57bd585f98c4adcfc008dbd22b035408af88c46417dc18cc9a4c8ecf240805bc92ece6412bf1c6bffa77ddcd22c7a184cac6282259d92e1ad76920912036bb52970332bb90a75d0558758e893e3dc1444a31b3a8e78085e150140a1f078631947606c670c26f415342e771a04eed50cdfd31ed05886f30a2be256e9df86a25586f807cd9f05e098079b6dfe2d420d5ff539bba75b12a73b502cdf059036d66ccd74d8b8c8f1a68a4f320da8294a085f2512721183183be3de7a7d171d1dc6f971faf7e548d5883aa450ade3e38df11ab59bcd222771d969778fb39b1e86d54ef8d27ec1706b3e47cd7dd8d17f2958ef9796886243070655870e1fec873bbe77e7774eab178bd78acb5a47a53db1bb94a0fb6366d0edd806216d4250e6b5899ba145f5c204933033e3fa0cd29a7d641a7acdda712669d52b09a1363a8234d957be40b7046d86103299b2a0306ddf33ec0049ff4412a8e93e25320b9e260951c6a04fb2e3910f9b69824126f25503127f34eab6c167c0f601eadda3f3d9268cf19c673660d1995ab584cb5acbbb135d3c517928539c9960d91700ec981358545a8dac2bf1445067ab5cbf913d2ef2d8dc855a86493f08d3e7406007a49a20f2ce7321a742aac12115f0b09fd478855a309b624c0f4facf14cbf4ebed26cf916816b9a877f8b0ba9875ca89efbadbf5706e7ef42647f3c4ba53416e7f9db298046f18e308a5f496d2fb56304b0ef9b2a6f29597ccd852ac283ec6e9cc8f8d8fb2be0b8c0338f65393a3c52dceb642d5f8d63f3b5c1fcbbc5f37094200efc5dcbca3ec1d131ed9052e404a4f5cb55ad719bb3f4f8c9068f1b5dfb58acea75e39dbb618e0b31b854298af1226d4dad65dc1d83dea23fc5218321f45850396842c59fba989f6280fe7ac33f72ce07e6997fff21ccf32ad292d414fefbedb75569303ff557611ff388a554df67087f9a2d23b5233192072ac37ad421a52ae412215200d2d127a9bd10879df1666bba45c0228d2269893e8d27541f2251e35c3c37fb3ce8c877516a9cee753bc2f5ce4c901b2180c1dc08828740c9db5b299a843288e42f0cafb4dbcc7713479c84bbdcc180c7f6e2c9c25eb234a3f25a0f8ce0c991d2ac6c85b7dae1c194a800cef3c1ed926bfc276aacb1baed949be3601c920e4a827bc85742a66465fb1471ed9896762e2bba2e99849b9f81206e0c0b8c973105bdf0e7355f665e9fcc652ce4865cc589cdc5a3bd970bfe42f279009681920a0b894de73c3f38314a516d01d8897e87c1b2d14b336faf544d4c82179876a0c1b9e6bba457b3392729dffe63008e3cabff9c7a33f744dbb476e2acc0ec3c6f05d36e361ce2344ba28b16e1c5c3da65d35bb21220d17bd97a32522b57f8ae942c048765672ebee09615ab2b471130ceb8c495a307fcfbf1e2fe48f09987849a3ea7c86ade2de4519d64059cbdcd56913d6949d73ae76fcdb7bb456b212a61b2bea3804dddaf6f808a8258fba4d872d683d2bac6cd9997c34aa2a3946e1dcc350574fa02680a9b0652c24a9833697f26606cb53059f691aea3efa80f760b91f123be5c1b5d434e4fa73e28662cbf90754935b2f64194debb832ae483f0b20a09cf570d945944115c4214d75dc328e771baf231860f4f4caba1a8e177809644f0ef44bc47ad131b6c0e0e4ceea36a59aa48f983e0ee40f21c5635cdac2a3144d514edea4ede897ba2890f9bb8a77856c37fa62a5f2ba99e2261040d26ceaf1429dddb4ce3249fbce2862af7cb4d5a01778ce761c172a1583907c19b7bf5c3ed0016a8f65719c09fa9a4e6c4a7f93f9e32147106dae0a5acff157be77c36c566231f16be1dbaeaf419eb30d1baa8f3caa153b2d4dc2718e56359d41a275ee2e1ec4746bdb89cf5d751caaf04e7e14492a92953445e0d7f2182118af53d7d6d8bd546ce723a2832762609ce3509267745a27da8c5e3ab839a3d1235b17bb239df2d931b56f1916b549c3cab5403c4ff04d0e4ebac07451b04e2666b5387b8e05a93c444ac8532fbecc5049a2be38a60bcf93952d82f07ff991da6d82183133d98473b6c5be6a035c21c9316c140db42a59b3f3ed3dc0947056c8e2df0902dd5f1db4e12067668f460fe8989a8e7c34c06337c3359d0d744f7408a4b4c76e775147f0610d54b452185f86f66d793902e8a2d1e09a3b79a6944dcd449e2cf43e178b993f85b23cdf07632388bb3d13cfaa02717305ba363f61f76d46c5f353c1447de866c4335f297f66e52150a3f8f3a39c8d7aeec1e819ba8198b56a28efbef0869441aa78744face2714513599baee0cba8af169694224e49f26706749307797780456c7263db77bea0d44301a7f842133adb1a901ea33111f4844d16dace37e9531a63b062063c3eea3ab7451ca9e4d4eb9085ade5623a12dcd9a3354fa67c27ff87a90a18b1d6406214dd9fc2430aa059db9afff0749d5297ecf9a7cd9173c96307d21adde580cbc16b21dfa6c60d2199fb45135f3b388ebca6927f0d489ef84ac00008d118be2a8c0e9c0081b066b05545f25c476008bb36ee6a44dcbee0330cd48c5d8145407b03b7063250bef7153898399388d5d409d860b9ca0e5a54d4d802ef579bdda09dd7dc390e2d740e0ecf5465f3889e92dbd05693fb677e5707e19708cee546a2c947ad592c5b1f7c5e4969d336f641db8a529b6ace46b6b1625e0cb6eae348737bc55e7e4866ff65ca51be588c9bc59ec960958251342028e23e4b22e16d15c670bc26f5b80ed57292e1fc3b5235e55db7bfaf70bb83b44e6b68196a147180bbc4f9eed574db5fda80384f969da082475cfb6e0ddb89518bb68b3619a6c7886b08c14a69ab8a2633630ad99ee7eef7b1102ed51d299e07ce32161bd251d6b8164e2e4c77cbb3eb3d3fe1086b2c41c37a1fc183702888537dd1d5471df005eb09c522198009db084f3054a6267ba9f12ff5a9f46f6f09696b38316d2f78bbd8cd6c642c127ce5bd2f3e5c93499122da7b118b5809e3aabbe913ecb57bafccc2cffa9883dd43c16151e10fd97ea08dda9350897c919a70ecf608725f847087b08fdba6aac6d7a3c7b2f815d119f57a046a794f82b800aa7d063933d9864bbf9e31b8850e6f1dc53e335ee9e88482750669cadce881d0d8208d00b2f88828e8c1da35ebb06be104ad164b205dd01f9881f1245403bd758cc9a46d52f86e21055202b3eafc8ee1cf21bf42681631d3e1348c67be8f444dc6fe00d9a2f12ec2b2c103e0e1cb868ae9273e6993a4f63162b7da69b2e1c11a87079c77ee6d7a4a4938737ce60de3a660eac7b17caa8352cdde4628d7e229bb28c2e727661e3cbb96080770577a83a410784dab57171d7a075441bc76a4cfa336abc185c0ac53a613bd97eac8c428652b15d28c9ddc1f611db4b76d7cb107ab88bd8f92574b08e9c45690d22db9e4ac9f92ce9ad24520362bf1d7915a7d2a8f1a313b0d3382b23aeba9014dd859a30c014d9e64cc2e305871b9a702c99ab3e5ddb6ac7c15e3668af1968cb105b6a379617290f7c1fd4c9e84aa9b1a4eb1c1e9af79e085b4c65e26a9d0a18f4cc88a1661e31c897b93c5d227f70ea3b0250e019d5d7957f8e18cb65eafb793c8d506a7c43b8050218462bae7872b2d686fafaa6594c035b3470e5a9f7d1288cec26dae95deebae04a4132c5a5a1722abfa07d5c30afa9b44ba5d5ee80a495d6e23ec8653262556493406cc60eba9ec3778335e63281214ea90fa87d92bffe8a7bfc01b160d63dc8bca61900d4e4d8be23c6d6bbe0184fd891ff59e006cf157aabeb91ae637a6d770b07c1011935f050f10b7fe425509491f207f574fbd8cd15c9dbecf86043277800ee1d54f59e410df800c34ea37535848e3df87ad468c228548b4a85dd54d544810bd0edd3a8f3ee6802372a7147a2077d4c92dac402dda5164ebb1ef46c7204c54eb0147c97c7fd6820f3fa0d4c84fa590867a0636ac9ef1e2d7b8f703d27a7b685d9d67bbe6cbc30253d155e5cf352cb6581204485e236062c591acd0ba6898071afd245a27912ede377d6b05561f6d34279cd779d532301ad4c245f933b33f622f8e1e64ee72c90b77a3af197a6b6002ed1dc17e04d5ec4e4e4f6f1d9db68c195909e9d466c2a1db1167732d48604ad0343e0cac5917e15606f91929d3a63cb7ce67215b6ea5ea0bff433f33fde5d6362d9b848a327146d6cc7291b1916f8a56775a4f2ca41f9ed8d85e71d4eb5ea3b623acbde8709c24751e08f829eb2d788ae8e7bdb46f7bff4e169e28145ae8f28400d72363b6ff58c6bfd3e6dd8254de90fa6a877dfe7c3ec53e7ce06262b9333725e71a30e50302438e35710ce24a4009fdf02a0b8249d6f5d5be17cccb1e0e6a11de1dbfb76519932a43b61fe421a346b1d1ed9304c40ee0d04c69c49eb52b13eb35d39cc6b28754bef074ca20101c8ba455566d5326c9cbd4913f468f36ef12b85dda41808f387c9182a197ef15d054b4586f34a34751b0420cb7b83017f88e3944a492d5d806bf98938004a072a28b0a70da9b59bc5421498826aeccb5bdc1217ef1306ebc752509eae98969ca68a8c664f108a580a325ef86012c6ecd9f3106c078f0e708fb47505662220f5aa80943ede9ec9afa0ba67034007d1e72fee944afbf99499f58862f94927ecacd77b87d9e5af5fed14e3218604b9e3bd4ac6977ad8f9170220632729977ec14b7d282917b0523bb4ad27931c2d379855b6e1bc693a1277e2334092943a20af814d027c404f7e63ea4e4f9774ce6aaa6ee14ce1ebba88a00ee564f65559479c2d970fda7152a46aff0b215709e60d59e0b6abc8e377c48778e1c3c8fb3f2b496e87b824b4ad3b4476df8d40276c53b7181fcb6ef02c7ac1e696f0aa7eb270252e5dba6ed4f515d6cc6e2b0f333ef6c05291cccae90b63b5f6a9ddf8c35bfc86058de9d09106b124d5a1ab4ee75fa00df556ddc1360b71a16fa2391491ba5b78ce84ead40a8ccda4ad7dde215146899262c5c6e5f6a7a9af0fa7d98a2f70284ecd734169088f82ff4c22e3c10790e05474886e95b56cf6cbccee70aa054f7a684e272ba88eb7403a43c15a2aa7c1fa2f9004d8887f7e555f59870f96a25437f71fddaa216534f29a06713fa95be5cadc6e19e9ef187322235b71bc223276a7ef91f259f406b0c98e93214cf34348cb99008fff6a38cfa3c4a04805531f1e53890aacecad214f3ff091c13ffa6165288820c31d7e7e58a5cce45e1c75c0edab0c1b62a651c45685b8bb7072a2a1466a1e9e02390c1296fe784820d7b4690b00d10da04a1d8014ded4add5919dca911ae25489f893ac9f1f59389ae302b8f3e0bbd3737f3f43185df49aa5f618e07304dcb187ac0669ec13dd543452bcce64bed3fc805ac396c610538023683178c48ac0f33de678ec43f5d180774ebe7105999f5ae8769a5dec44c5e7a90089e881ea0f88a78dfc392d5ea49ee39ee2e0913b194ca0d7409f4f0d096ba3d82baf9f21cd31dd4b09ecde180c98905537dc856f18e89e947e5fa772a00c2d27b57e452fe3959e47b6061aa0f6281c58d2e31bc2dfbfb1593ad70a0617a18a36923207e8f85a67ae068ed1a3bc98e292658c7d2114402ad16538ef149568d34582330190d3bb8e41da0d76a5a33dabf6352cdb9823a4ce8bf3d33771bbd748541fcdb0286129d87cc3051084d5f9032eeaf97b314c699600ab6ea6630da494a8d5f25dc6ab14b56fe603ceb86e674f17405980e7161c2236d127b48e378a343d1612c02a03a0e686ba66ecad4414604587f76317ddc65b1fce5da3407eb9a3e318a386ec64bfdf96ae5bbb03964c78f3804e50c10d0c708c05f2c6d62dc3a6e8e49514bd49832cd94824eae5e6095823da41950c8db64e381bc3c0f490738d90ee4d1010a035412d00939b973e6da98a27b94052810eee6036fc0236ddc7f13c70bac581af562b5f9e32afd5ad1ce8d1129ad4e90b7a2987f6fdec445b55c2d36cfca46d53b7cfabb6775dcedd611fe7d766bccc9295b9fef597b6569e7184b6940a9848e32bda0b17488cef800553713999b4ce47921a9301a566a8a39eaccbeaa3b5052a7ab776ea9a7008456351d55ab8b517780a0f6ceeee52d4b437e660de11a5e3f2ea187478876366b1d68526cb2d44bb01f013d00895a25d864d53e2b8349a6a3e1dfbe9cc67dbd7e83c6eed3280c4f897a4da628767b5a5302b6192b06981f5876ab49698b6f3bbc22cca0e0c019fdb57d8a6a1a87ae481444d3795826aef3b86e29fd1a0f428d5c9e82324348cb534c551014097795ac98ab14b84a9360dcf5fe9d3bc79cee3bb56ee468a6c8e8a82e41e6247089088226256c5dd981b4ac7f950f664261f777e786a166a36d14a7de3689ea0d6d648c6c346f0418ec00b00068aef3ac8f3e85907c38e647a5867de8cfc78bb6dbc3fb3af1da7b3d80465bbba8076ff3199c7167be64b77c4a4c5d6988d6b68affb079e67ca17b427cb9b3ef8527589383416a3212d3c8083d39dd2cc169cd6872ee55a5e494a9ee7ff347a15afd905cf8e771db62aa432ba29a7a1efb7cc3e052fb8a5b2c5a0f73892c67542b898396ef14fd10aaa851f6359b2e2cfa4ef4190c9dbb3e2aed0346cc957aafc942b322eeb19cc28ead38698bae196709195baa15d1176cef5d3b3664f87b6e9ed63fb369eedc091278c3d0f286d27e9a87498ce0c6f26c7a92a5c50e5e8cbd07145831a69e3eedb6a77549f8f66a4c6a4bb7b5e5cb9265b60bd13cb747ac3c9c12610bdb05220774e0b9773513e89d1ea5f26df3f0ee59bb8397c3a1efd9b570b56c16b9c8881346582bf22dbd2a5d4799dde7831b42b828f014123b3782da87403efdc50523c2a3c212bfd65478bd0b1d14d534504d24ec95fd9b94021c75c73df6f3ca1003d715d957dc03b01aa296ca2e8292571e40ba6c655699b4488b49c4ce1de69e28dec5de2cafc7a1cf582a5cd982e2fcd4892c63b51113cb3ae9b3f7c344f62852f48efcfb9d3503b44f7604a0a0120519a8b723a1b7c9eb82f249a857b8e958a0ef8de8799726e789b3da392014647cc104c814e8fa4dd0ef01361043561f758099180a3d360b0229926930e2771bf093a447fa0d81f1f38974422bc932d2f89731bae477154c1410ff06eb27973ebfb6aa0ae467d620989c59059539e2a1f0e849365c1da3ea568b3fab64487d883f093d1f8e4f8d908c849ed1798c7c812d66f24ef7b2d43a4dbf8f8a8367246d56b230a907a7f696dc5744456b339ac19af0b03f2f405249b9238039d9f9562ee3f5e69e2e268b4534ae59359220dabc6960312216676f030ba819c1c6ed3ec8f08dcd3734c6082a0a29075c6d214dc98247693c28471a969d3105a1e757fc9a9690b4ce65d17da7b3680e812220413f0a2589eb05b0420bc32acc7bf5131f51641012d7fbbed6694abc3ac5b565d5e9db0195b8d21e5a29cd077db46bc99c042674765a2499af20562af8ea87d655e167cceef9fc65e699acfa916c2d72bafeecdb983b6db9e93d6ead91d7b69eb5bff360afd0954825ae91a418e81cbf1e033db64a310ed6017cd5dd3094a315a8d8fcc1c2fb8eef0f77a4a5c18af1d03ea406be75681b8ee4b34e61e473cfcc223423cc9d230bfae9f87b29cd2fe9b1eeb21a92e73815d3e5686d0a1401a0e12a0f55ac49bdbbc2c79786aea477726766b7a0c8ed925da5141904777d75b4f6a8057965a081b6c77aec8a5e1d8dc104f21b08095fc6cca05c25dedc92c287428cf60b0c9bd7af053ccdd4dae1f80c08ec1316f1389d4be671dc45d45b7c2729a0aaf9ca0114df003f127f7ad0d68fcb7cfc05a9d9ce7ff1c67957ef133231c1ba60279a80ec41e2e2a6f2a05f541bb7efbcfca128cae5485226e9399e35632c662bb220580cbb55764ec440f7abebbc59a185e0b4cb5d782ba2695352a3a358536f94c70ea92594d7baee725ab07ad43198b1a04623868c0be60456d41a4fe61e746f048e34dcc0127274a35cd8f88c39802f0c3dd9f1e8167319f94e63ec387f6d52ffef0ade24cf6b261beb701a24fc5acff28f51a10d617e802463308b94918253fd766f21e69ab01959a1b5c0cfd8ecb58d52b1ba9268782d5e31c02b518cd45e31d5b806007de8f4afff85991895589c871225e315e734e7b20e8642e683fd4f48df2af1b456da832dcc51fb4cf1c47c682d8b8d68a5647b38cf785141c3a2b6c2124eccaa42d102cd9d9ea9dac2903d5c6ac9ef64b458cb40238f32591f81dc5e9179669fddaaed0853880cef3d12a070c0d0dffdf625b1dd4d06cbd53fbecdaa4dedbd3d1275b4bc8ad678b026fb3561387784e969e36ab43a236573f8e57ea93ed4762c29dd0c9022db6bed3891d0f4628c3337f693f06f69e5a67158c316c623799e99403e16b29ba1cf4f03ef0089c2a720c019073dca2c1d6690a57d0a6e02015bc473e6b3f88ac6b06fadd3c3c8827ec9d604926000af14b6e34bbdd3ccf10c80cb3561cb29bcb5d73e866618587d2b248b2803de23026d182c9591f924034e19bd2cc84e95adfa1f070709d9918421ea4a8f9667417c99b60edafcbc9b06c98f4a39669b184f9db03b976996cad5530a6ec076d377581e2193ef443431ad772d58492c422bc3289bb4e4abe2410c289c4f142debdc483488802d460bf3e40cfa1a610782720e83251a7284d11faa1ae643ba5738d0c3896c8425d50e8b26c85fa6b162839608a8accbbcab08221f197205c90b8268e188cca9c18ffc5b36d2562f590639fd3d3511ddfe2a8cc7c9ca068bddc3d3f71e96c9a1e271ce812b26782ca5df18dcf43b63b8559ced2dd9a771460916944af3c25f9597cf77bea71b4d857f4d5fdab9855446717d223d5a1bdff583b3a831a78dd7437885e3a160ede7c86ce51ca3009fea534900f9c68d14855189ad5983dd0e94d7558a57bc7bfd095271c74d8f0f7f0e0170d3244303581999487429310d65a912b576a34dae6ce8bae51477a30efaa2dfecafc99aa2d6988ae76e734d795aaa117bdc177757cea0bc1a97b3b7ea0ae7d7fa00b61697b29f05c8f87d09c6b938d88f0364ef6c81545cd6307fc53118a9b7169fbe89826de729fced8f538fff0f51a7d33f7385db658eef6c03a23f78e120a881ff7b402e8b3a95fba5893e65bf95965f138d14e47c1fcc36b51bc04a29a74c5d5a7c04fc618579ee37b4a539ca32a84f7ec89b73bcdf0d6f35a9456355a9277529dc235149c8463a6835d73eed2fa0e345aea38d7d50d1ee834f587dc54bbabacedde8c90ec8bd5ceb14d563559422147891a5c23c7e5f11da77cb249cf5d0c8302a7cbbbef7e1938658d936b5d8f4761d719ad1b35af0e5739c20b969d27429ec578d590f70c25a81e71b99f6c8246b067ec12e5f583ed30bbb08bbccdd6471dd4012cb80d929e7f57272a492291d33a7ead25c9d8f2b621b86d68812d5dddc6708b0a0f5c6c2d03040307b76f5d0e699287f0d66518d0b8254d0235f7ff50f3b9335ce858f6993543be778d3d55d7d9dc757a4da15bb3c2cced9d691a3c4cde5cbed5c34e266e2c66f1ecc3a915f1df937e25bdb0eb65dffd8d0918b27ee953412194391bdc970f397592b67f471f85978fced98513dcfa35c2f5dc14903bbd4e19832826543ef78b7735d3a045b5eb0ba3809685b7ebebbaebf9e88e476472ef598dbcca6b46c9c40c11bd52a54728ed447689b0cad8d9f9d1fcad03cabef6c135627721fdf2923e5faf470f74a5bbeaa7d4884cb68c7ac154b85ac2b4315453b4399af267c913201d1419a9de3fbb56be9552a6ca4f1953932de4d351949ee6e461e776b970767e0f5d46d1e960598504813ee099481fdd8dd632e3928323bee0f449d0bf3ddab147030c4022bfaab4b22896d5b929201039d116bcec7e41320765c09355cea622520b152bf2778c2e9a16db6362a08429f3a1d37d0ce89426dae57de44b6b23da82c332442ea82522eb431c75c9076d316f5812c3272a38e99f99b1a1b7f245b923b1d3db573c324fcdb8d517f4a19dd926351fc94fa8b81c07becd155207f9f4132da188695be4c2576766a502f8e043a45de6314ed7ad6f60079572eeaeeca7e22a58dc1ff1173026fb74b98de03d04849a9f2c4c8ae9ffb0b9aa3494c61d43d012e8e6987b290b7747147da60b222cc415f31ec5e7217a76859f8208adfedf9f1e2b97e036e9909bd0f9e70ecee4f8c9c9be4e0ed5e53e17dfcb14d57fccf1e80697babaad672fcab1bd1cad45287daca608d65343941e42c8103c3c5dbe08615160313dd835085192f37c377dac05e7a530eca6663817fbb54247546e878905e5cc341c15a8a2923392cf1e14ba69a52228930b3eaee1f1449dfcfc20435e7a98e8f7349fb54d85b39973722a4ddac5acbb3ab264e7692967ccc47451424e9c4ab150345c23dad67f9018bd130474f5c67d35cdd2a37fac8560e125706710c2160ce53fa97fc356b98e095d402e08ffe3e79ea82a1c19b3243272121653e3a710f691097342d6204153e776dbf686160df93e4a6bb21286aae165657f05a0d20d976602136fa9bc7b4e79185318e00daf9c58ea3ed3f67a32c67ef62b66e59971f3b25beaa1d6fb1f50655b1afc2c18e34ce83cb0a6d17218e46bb4d3275645c089ce35cf20c6d71e02386140bd7f95a166a3285b145689e9420c1339081f53d40898f4579671e8da387c8bb91649dbd486e42e71d308180512fae06729a1bf6415277fba354e16bb0e349ffa5485f309610110b7a959e6c6b1975c7c43782d2a5e000139e7546a2f1a9b9b0c82f8fbde71bef6c97497b4a6c7c5899a2a1cda05277e7bac72cb8c4a31518d6c7b2bcc9e31c5c4ce3fed7aa267e55b3dfa935747629fa143b0b2c83d1421ad4d900ff8e11737afbb6ae203c5ac1ea70acfe023d7d40e1ee9d0654243e248a38d6ac60afa487568b401b50c4480e793bc4ae7b072ac697c29f5814dabca897739e090cddfb685faa53fe431dae495d8f4d194bef2895749a78f9b1d557a11d086cdea6bf175f114c40c2176d1a49bd8ae7ed36443490e45551c27b15c78f2d95bd1d1d6ace022040b337375bbc72558cbce0c0c00c1bdbad2c041c1637634ebef1696ddc6cc294d6dcea12ae9fefe1a871cdb02ce2d438d4b901e25d0b50c98f53befc68216805a7c0997c7eb8be75343516dcaaa815815b31be2522423b341ea657f7c94141c0f29ac3f2584eeb6bb3f606768b97a04105af59718bb134edecf622ea9bffae9fe2fb4b3ead0672c263848502ac4027b984627ebcea47c26be155f34c6b0d69f7d60d60ef7e411c21ff9fb10a609cfab641e0d0f49d37ab81371ba148255cff2929913ddf4dd5a4a20814647be00d7ce34581b903dc30dbd0196c7b8aa6912291d1a2313b21c38d62e85677a1ff5cb2938869eafc5996f64b2859a79414a36f6d116f2d564bc8eb54043096e067cb099f02a3e1b0cc01ed3ab3a9dc48a150e750dafc000fdff239ac256e2ca7cd9ffc4a26b80b0e4ade78bd9e4cf2321e5c85484d297261321873b3e0e5b2082dc767d8f7aed442b827d5484cf5c7c7a2e48906fbdbf9103612db9994fd2d7030b1346a71379507156bc2a0e1ad8fa1dc825550cca1372c7c763d380eabb712252466577e2e9fe79fc416f0fa0772319635ac35737aa97d65068bf70590d358571e2767c4f4bf81a27ffd388563b86c39c9587c24d38a39d2cb386d385a45c19573dca9698de11e2e59e87ffb2611efd8f767a0d060f387d6022497c49ef94955938084f2a2e53e0fda2c34ccc8fd599982069a27bd636c56de6ef55852dec42d05ce30a87e03995f8d0d247f017f015c0796b0fc36957374f5955f0f9f148c7cde71baa9cfc788db980261209928da25a1f33140fd4eed3bf153608374c8219208c6c97090e85afd750f49530543e1b53ce625bd5af1d5b37e1b93631c66c27de77f15a17293dc2d3974cf773642b12d117b139ccaa60ee019b8c824ebf15ca62de424d95a96073d0127dd8648d7624d6dad85f808fba593a230d9400b4ff337050f4e556d42e82f36572e3d21e6a7866465fc1f1eeb6883cc420974befd4f7811faab7058900d9639229381d655663d5c58578ad6de781e40dd7329cf973abcaeed0f37979c17c79a249eb3a38b692ac7a7daf3ea616a0484faec0ce25d503a8484f4f5ac466137b3b8eb803b42657a8ee5262318d1deb8fd6d6bf993d11a7c50833cc6b9e4596f5cd0f5f4faa66f7a648ea6a5280979d34f08ef9a100e4d0e0f2115ffdaf0ed559ccc47d83afe9bf301e8f51b64831640a135876bfca5ba77431deccfa5ede1e81b0705244bef61b9495aed495083cd2cd06ed0c60d637086f6411162d2738192a5b90a378950641a4f60dc861ae8a5a9f84cd3c12c5ba0cbd1f2196ae52707a246dc0c3f1972b5f3068a1f430d287c7d5dd90b1e5dc60afcb9ab1513f602c40c4c5c3f3b7f5c605f389a4fcc22edbc08309d7cc5cc0ad489b51303ba5bed487d66de51d61fc44e34e9aca893fb19201f2d6b4763f1cce4f7a51353341d1397e822f786d828807d16da7a0d5c5e78cfea83be57bd0782b1a412de6811064212e60bd2a9038ca6ebb42bb38a698cf1faccb7a1b7afbc76894f5c3aaaf7db3a649503245de91b5866fcc7c2bd746c3063388eca14a7e415787bc2b67bce97d5bf14216e1923ee338cf331cd769c9a0af06b3cc455554b5875e3e2dc3084854f5d9b486e54bec6be0c367286d630b3583a1626b7f94558cfb1454f8ca5dedad1f1bfb2798f72e005aa0c8de9350e5b43c7edfdf85cae0a28cd83bec6ab763ab3157bcc44d2838bcaf4cbe240ab244163952e05cc2e2f90deb6533383fac86029f1927767278472676e97766de1a9809af3cf4f846ad7bdf45b15ba162d04d36abcdd1d5ae64e8a34a51fb166da597d74502108eced415a3d57d6e0564c0a3f0f7414cc50f540f92fe2ec4b5d147f9c4aea135112e221b9408c4f2c39a9d4ae2cc70c6ac39d0b8b71d0e1d57e7606095f8ae0be0ee4d745aed8ec5342bd9916a35306462e8f3926d61c687d8e98f73461b2ab2d24eb7e33dce27fc8b63026252af7f5c384cc8506a874d848290421a88128abcd102fa27372e6c485bbb42cebbaa5c94146dde60908b58794b958baadd287ab2fca8496d3432091854161e3e50e52d2042317c35a3b32c5ce6413fae0c12678c25af01d696e3ec608f94f198a7b45e9a151967fe3fecf8c894faca9cd76163b6d7eba1a7b51b1828fc41dfc3e4ff09c0255a42f6f6dd34a89b3743a30d88ae7be4249de639ecdb68ecfdf8b6a96bbf5edd612ea6e84fe1b7912f94eb327aaf0501713522cb35fa276faa0dc4732ee94db06bd06c1fe1d07566684c0aeffb00fef5ea36becb588dee50847f42e7b36045694b14ef45b231dcd6d9ab8f7d3f3aafaa0fb81b3a3192876e819ab0a2b2a0ea2b0ec9ed707cda81233b49b4ce875efbb1ef91c8786939258c103081f5383039e4508e4c88485219b34cbb4243054ab0dfc4ee1294f2f6bebf3a9c9fc7da1a0613326ea252f3c95fb01d1ede24e56201fe60604405a1a825446247a5ba7198d161ff60821399b9134f33dc3591bf7aeadf24c6c4e4f1643fd9d4d26c5cd145454b25e9478f7dc2b84110cbbde0fb80f2bf60628ae0e4bc0be74cf02d3277ac1b750b7419b0150bd0a476ea04387463a805047ef115740203902abb70772c0635e41d512793503d1ebce78deaf3d6d24d378cf10fc355848f8781cbb72d66503548b9f8c4d43c4d86230afead2a30f686888c441e52663574b4dfa79b9fcd3204f150aa38c38d653d90729dfbb56b8391cf32bcd3b1eb83c58b4e2a45d53f4fcd38249c83106702a647b99e848f7e6ab9f6e9ba98470e7c8978a584b1b62dbdd11697360c10e49fbb26347d7edce73fccf4c3744cc78ed426dd54f8bfa2f72790a7feb79d85254ce8e08498cb4861b7b4c1ef1e3d58ac9c1a43fff4106bad14f217c1edd1b25c83384eb0c5343b9b4b692640acb1da7c5a8bec7821302ded3ec41001f2bcc3787240367f8791dc3e0046ef0a6b82dfda1720d1daf5aad494173fbc7b087eec9a179a473a2d8c1c847006505c4d926e84a8f8a5f25df895b34f5f530d3f89a2c453da73cc40ebeae5b633574bbdf50daad67a9c6dcccc89ab571f6f0eaebadeb356ed85172c6b45b4d161ce820a8cd281d951d92c90a89f841491ed2519f7c8b0acc9e3d46b00738900c410449d38198b84837eb7e533e8bb1958a94704d16dbe780c714a7b8a46f8e4a561863977e02c30a14482483fcc0c5c779007b76f629c6109c79a18161edab0363508dcd0dd59c118acf4a0619b943aff5f9025b1da713b539539dcc7818d9e41cb92f720e27ee502e3cd2c2c7b9dccb2f2d8390eed16ca7aebf6312c54f3045345e0855be6154402c182d6edb00e612a5e283812e092b5a74b0d47e95e9a9b1cc394ed471b4ab97be14f1e1a7cefa2a5327b5dfc494fd8688fd887991cdabc7cd16cfabe8a14b9848f813df53fc2e38c6c507f0ab91770a0ed9a668a03551d5a3e094c590d5113232b74cd902f58fcf9a4ad5a8b52323af8cc15e96fb2e937a7509d1b14ec7edb862d56639d675095354df0aede76230081a2917537b2cec52e4dfb6ab982639e9cdc1c5d8c34ae76510d6aa67edf233a14da06bcab98802bf5062dcc7d97ea537dfb0b1552584a47cbf2853e7c8262047687f34a3c6958c3725ffb36a20c515da98f7bcb0bc637e6802e1d5adbecdf416610525a4b0cedc66584877989c9b100dd4f8b0f5f628f016dfcb34c212be9f487d305588e68e50262de3979844547d710a48ee0bfae5156bd81c08a9b9cfab0ea2de587e4c4b3bd5a39c08d32741be8a7b904722565218f61d6ff767f16414b42b97260a8e5edc58526cbc2764e3e55795b5b79bfd6a72326805c66ebbf3f657680e659dae5fa8773b0aa611c26a83fc69a26b661305c7cb9f7f634e31a0bce2d21bf5e2257b526461b907c9d07d023a442247da4951f94d2c023449b1ae95e1b729a35014a842rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootdpdk-16.11.8-6.8.1.src.rpmdpdk-any-docdpdk-doc   rpmlib(PayloadFilesHavePrefix)rpmlib(CompressedFileNames)rpmlib(PayloadIsLzma)4.0-13.0.4-14.4.6-1otherproviders(dpdk-any-doc)4.11.2[@ZZ_@ZC@X:@XXX@X@XZX @X@X@X@XXlXN@XN@XN@X>@X6@W 1 * net/virtio: fix multiple process support * net/virtio: fix performance regression due to TSO * net/virtio: fix rewriting LSC flag * net/virtio: fix wrong Rx/Tx method for secondary process * net/virtio: optimize header reset on any layout * net/virtio: store IO port info locally * net/virtio: store PCI operators pointer locally * net/vmxnet3: fix Rx deadlock * pci: fix check of mknod * pmdinfogen: fix endianness with cross-compilation * pmdinfogen: fix null dereference * sched: fix crash when freeing port * usertools: fix active interface detection when binding * vdev: fix detaching with alias * vfio: fix file descriptor leak in multi-process * vhost: allow many vhost-user ports * vhost: do not GSO when no header is present * vhost: fix dead loop in enqueue path * vhost: fix guest/host physical address mapping * vhost: fix long stall of negotiation * vhost: fix memory leak- Fix broken dpdk-pmd/* soft links(bsc#1026804).- Do not disable cryptodev as EXPREMENTAL tag has been removed. - Remove CONFIG_RTE_LIBRTE_MBUF_OFFLOAD as cryptodev is not depending on it anymore and its removed from the upstream.- Enable rte_kni kernel module for dpdk(fate#322394). [+preamble] - Build dpdk-thunderx only for aarch64- Update to version 16.11(fate#321541). Some of the new features are listed below: * Added software parser for packet type. * Improved offloads support in mbuf. * Added vhost-user dequeue zero copy support. * Added vhost-user indirect descriptors support. * Added vhost PMD xstats. * Added virtio NEON support for ARM. * Updated the ixgbe base driver. * Added APIs for VF management to the ixgbe PMD. * Updated the enic driver. * Added openssl PMD. * Added support for new gcc -march option. Detailed changes can be obtained from http://dpdk.org/doc/guides/rel_notes/release_16_11.html - Resolved fixes in the updated versions are : * enic: Fixed several flow director issues. * enic: Fixed inadvertent setting of L4 checksum ptype on ICMP packets. * enic: Fixed high driver overhead when servicing Rx queues beyond the first.- Added gcc-6 as default compiler for CRC/mtune & other optimizations. - Fix possible parallel installation of dpdk subpackages.- Add pre_checkin.sh to generate the dpdk-thunderx.spec file- Fixed paths using %{name} to have the dpdk.spec aligned with dpdk-thunderx.spec- Added back in all the architectures to keep .spec files aligned * Driving thunderx platform architectural dependency via the ExclusiveArch tag- Added support to build code for Thunderx platform(fate#321960). - Introduced new dpdk-thunderx.spec file: * Removed architectures not supporting Thunderx platform (e.g. x86) * Added dependency on gcc v5.0 for armv8a-crc- Update to version 16.07.2. Some of the fixes are listed below: * ethdev: prevent duplicate event callback * hash: fix bucket size usage * hash: fix unlimited cuckoo path * lpm: fix freeing memory * lpm: fix freeing unused sub-table on rule delete * mempool: fix leak if populate fails * mempool: fix search of maximum contiguous pages * pci: fix probing error if no driver found * net/bnx2x: fix maximum PF queues * net/bnxt: fix bit shift size * net/bnxt: fix crash when closing * net/enic: fix Rx queue index when not using Rx scatter * net/enic: fix crash on MTU update or Rx queue reconfigure * net/enic: fix crash with removed flow director filters * net/enic: fix max packet length check * net/enic: fix multi-queue Rx performance * net/enic: revert truncated packets counter fix * net/fm10k: fix VF Tx queue initialization * net/i40e: fix Rx hang when disable LLDP * net/ixgbe: fix VF registers * net/thunderx: fix Tx checksum handling * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides-16.07/rel_notes/release_16_07.html#id2]- Update to version 16.07.1. Some of the fixes are listed below: * contigmem: zero all pages during mmap * crypto/null: fix key size increment value * hash: fix false zero signature key hit lookup * mem: fix crash on hugepage mapping error * mbuf: fix error handling on pool creation * net/e1000: fix returned number of available Rx descriptors * net/enic: fix freeing memory for descriptor ring * net/i40e: fix dropping packets with ethertype 0x88A8 * net/i40e: fix mbuf leak during Rx queue release * net/i40e: fix null pointer dereferences when using VMDq+RSS * net/ixgbe/base: fix possible corruption of shadow RAM * net/ixgbe: fix VF reset to apply to correct VF * net/virtio_user: fix error management during init * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides-16.07/rel_notes/release_16_07.html#fixes-in-16-07-01-stable-release]- Drop code for generating our own linker script. * Commit 948fd64befc3 (" mk: replace the combined library with a linker script") added upstream support for building and installing a linker script so we drop our code from the spec file which generated a much larger and possibly broken linker script resulting to linking issues (boo#1002534)- Update to version 16.07. Some of the new features are listed below: * Removed the mempool cache memory if caching is not being used. * Added mempool external cache for non-EAL thread. * Changed the memory allocation scheme in the mempool library. * Added a new driver for Broadcom NetXtreme-C devices. * Added a new driver for ThunderX nicvf devices. * Added mailbox interrupt support for ixgbe and igb VFs. * Updated the ixgbe base driver. * Updated the i40e base driver. * Updated the enic driver. * Updated the mlx5 driver. * Added support for virtio on IBM POWER8. * Added support for Virtio in containers. * Added vhost-user client mode. * Added NSH packet recognition in i40e. * Added AES-CTR support to AESNI MB PMD. * Added AES counter mode support for Intel QuickAssist devices. * Added KASUMI SW PMD. * Added multi-writer support for RTE Hash with Intel TSX. * Improved IP Pipeline Application. * Added keepalive enhancements. * Added packet capture framework. * Added floating VEB support for i40e PF driver. * Added support for live migration of a VM with SRIOV VF. * [The list of changes is rather long so please consult the following resources for the complete list of new features, bugfixes and other changes in this release: - http://dpdk.org/doc/guides/rel_notes/release_16_07.html - http://dpdk.org/browse/dpdk/tree/doc/guides/rel_notes/release_16_07.rst - Or the doc/guides/rel_notes/release_16_07.rst file in the released tarball.] - Removed patches that are already avilable in dpdk-16.07 [ -0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch - 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch - 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch - 0005-d293dac-vhost-claim-support-of-guest-announce.patch - 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch - 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch - 0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch - 0009-bonding-copy-entire-config-structure-in-mode-4.patch - 0010-bonding-fix-active-slaves-with-no-primary.patch - 0011-bonding-do-not-ignore-multicast-in-mode-4.patch - 0012-bonding-do-not-activate-slave-twice.patch - 0013-bonding-fix-crash-when-no-slave-device.patch - 0014-bonding-fix-detach-of-bonded-device.patch - 0015-bonding-fix-detach-of-slave-devices.patch - 0016-eal-linux-support-built-in-kernel-modules.patch - 0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch - 0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch - 0019-i40e-base-fix-driver-load-failure.patch - 0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch - 0021-i40e-fix-inverted-check-for-no-refcount.patch - 0022-i40e-fix-overflow.patch - 0023-i40e-fix-VLAN-filtering.patch - 0024-mempool-fix-leak-when-creation-fails.patch - 0025-pcap-fix-captured-frame-length.patch - 0026-port-fix-crash-for-ethdev-writer-nodrop.patch - 0027-port-fix-crash-for-ring-writer-nodrop.patch - 0028-tools-fix-unbinding-failure-handling.patch - 0029-tools-support-Python-3-in-bind-script.patch - 0030-tools-support-binding-to-built-in-kernel-modules.patch - 0031-vhost-fix-leak-of-fds-and-mmaps.patch - 0032-virtio-fix-crash-in-statistics-functions.patch - 0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch - 0034-virtio-fix-restart.patch - 0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch - 0036-examples-fix-build-dependencies.patch - 0037-examples-ethtool-fix-build.patch - 0099-mk-fix-gcc-5-version-on-suse.patch - 0100-kni-fix-build-with-gcc-6.patch - 0101-ixgbe-fix-uninitialized-warning.patch - 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch - 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch - 0104-igb-fix-constant-sign-in-left-shift-operator.patch - 0105-e1000-fix-missing-link-interrupt-check-brackets.patch - 0106-app-test-fix-missing-brackets.patch - 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch ] - Created soft link for dpdk_proc_info and dpdk_nic_bind(from dpdk-procinfo, dpdk-devbind) to keep compatibility. - Added a new binary dpdk-pdump dpdk-procinfo- Add _constraints file to force build dpdk with sse3 enabled x86 machine(bsc#993462). - Enable compilation for ppc64le with the help of Rüdiger(ro@suse.de). - Enable example package for aarch64 using Rüdiger(ro@suse.de) changes. - Do not enable PMD_RING on ppc64le (missing rte_eth_from_rings). - Disable examples that need LPM which is disabled on non-x86. [+0036-examples-fix-build-dependencies.patch, +0037-examples-ethtool-fix-build.patch, +_constraints]- Added support for aarch64 compilation. [+0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch] - Disabled aarch64 dpdk-examples package for the time being as it contains lots of Intel specific code. - Added proper "Group" field for the subpackages .- Add upstream patches to fix building with gcc >= 6 * 0100-kni-fix-build-with-gcc-6.patch * 0101-ixgbe-fix-uninitialized-warning.patch * 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch * 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch * 0104-igb-fix-constant-sign-in-left-shift-operator.patch * 0105-e1000-fix-missing-link-interrupt-check-brackets.patch * 0106-app-test-fix-missing-brackets.patch * 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch- Removed unwanted files(bsc#984437).- Added missing GPL-2.0 and LGPL-2.1 licenses.- Update tarball URL.- Applied all the fixes recommended by upstream for v2.2 stable release(bsc#981996). [+0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch, +0009-bonding-copy-entire-config-structure-in-mode-4.patch, +0010-bonding-fix-active-slaves-with-no-primary.patch, +0011-bonding-do-not-ignore-multicast-in-mode-4.patch, +0012-bonding-do-not-activate-slave-twice.patch, +0013-bonding-fix-crash-when-no-slave-device.patch, +0014-bonding-fix-detach-of-bonded-device.patch, +0015-bonding-fix-detach-of-slave-devices.patch, +0016-eal-linux-support-built-in-kernel-modules.patch, +0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch, +0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch, +0019-i40e-base-fix-driver-load-failure.patch, +0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch, +0021-i40e-fix-inverted-check-for-no-refcount.patch, +0022-i40e-fix-overflow.patch, +0023-i40e-fix-VLAN-filtering.patch, +0024-mempool-fix-leak-when-creation-fails.patch, +0025-pcap-fix-captured-frame-length.patch, +0026-port-fix-crash-for-ethdev-writer-nodrop.patch, +0027-port-fix-crash-for-ring-writer-nodrop.patch, +0028-tools-fix-unbinding-failure-handling.patch, +0029-tools-support-Python-3-in-bind-script.patch, +0030-tools-support-binding-to-built-in-kernel-modules.patch, +0031-vhost-fix-leak-of-fds-and-mmaps.patch, +0032-virtio-fix-crash-in-statistics-functions.patch, +0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch, +0034-virtio-fix-restart.patch]- Use fdupes to manage duplicate files- Create DPDK packages for 32 bit x86(bsc#977639).- Add upstream patch for the ixgbe driver * 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch: Fix VLAN filtering logic by adding the missing brackets in the 'if' statement.- DPDK is most common vhost-user backend, Adding upstream patches to help qemu vm live migration with vhost-user (fate#320713). [+ 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch + 0005-d293dac-vhost-claim-support-of-guest-announce.patch + 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch]- Move the combined library back to the devel package (bsc#975123) Ever since we dropped the CONFIG_RTE_BUILD_COMBINE_LIBS=y option, the libdpdk.so is no longer a shared object but rather a linker script generated by the spec file. This means that it is only used during linking and the linker will add the individual DPDK libraries to the DT_NEEDED tag on the dependent binaries.- Fix shared linking against libdpdk.so (bsc#975123) * Restore the 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch patch which sets the correct dependencies for the shared libraries. * Drop CONFIG_RTE_BUILD_COMBINE_LIBS since a custom linker script is used to create and install a more lightweight version of libdpdk.so. * Include the combined libdpdk.so library to the regular package since it is also necessary during runtime.- Removed unwnated patch and reformated patch file names(bsc#974903). [- dpdk-2.2-dtneeded.patch, - dpdk-2.2-examples.patch, - enic-pun-fix.patch, - dpdk-2.2-warningflags.patch, + 0001-enic-fix-Type-punning-and-strict-aliasing-warning.patch + 0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch] - Added CONFIG_RTE_BUILD_COMBINE_LIBS flags to club all all *.so into one library- Intial version 2.2.0(fate#319169)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~16.11.816.11.8-6.8.1dpdkdpdk-docLICENSE.GPLLICENSE.LGPLapiannotated.htmlarrowdown.pngarrowright.pngbc_s.pngbdwn.pngbond_2main_8c-example.htmlclasses.htmlclosed.pngcmdline_2commands_8c-example.htmlcmdline_2main_8c-example.htmlcmdline_2parse_obj_list_8c-example.htmlcmdline_8h.htmlcmdline_8h_source.htmldir_09939486c1591516b984494000c3f64b.htmldir_0c4a44b1891135ef8e3f51c114dfc40e.htmldir_14bc92f4b96c8519b376567118ac28b3.htmldir_1cb3d74b2ac9573f839cf243cfa1bc11.htmldir_2154f83b08d9713661fee356762316ea.htmldir_2164e25561eabb34d2bd0b8fdda0aeba.htmldir_280cb7b638dc3c2b18b46d48e8ebb350.htmldir_2874bf55c2200dd42774d2ba99074e53.htmldir_2d618a55e588f156483774ccf7b84b21.htmldir_313f6c18e163a6142a5a3b7a38753440.htmldir_38b2ae9befb282239df37d3eaa427f9c.htmldir_41189bc1b2cbbbf473cc198cfd351ef1.htmldir_425fd6afd4367244802c1f095c2bd91a.htmldir_4b8e6c0016b49edb5f37b579e2023f82.htmldir_4d32756cfe7396f6b5bd672081496d5a.htmldir_5035da364ebbdb660400f67ccee744ab.htmldir_5188debcb509bb3663f061cc199aacda.htmldir_57fc2e9d988df25248b2986356737354.htmldir_5e14993b9b1571024c777dcdb495ae81.htmldir_605c07ae6e02b3d13cc3bf92b6c5e54b.htmldir_6242a765e90f02e6b399e351944e02df.htmldir_85ecb587e53a4a73ea61471f0b12c7cd.htmldir_87f0c34ed8400daf07819036fa8c39bd.htmldir_97aefd0d527b934f1d99a682da8fe6a9.htmldir_9cc23110c523433deab11cddab39a876.htmldir_9dfdb91ab02719873a80bed01b3a1a5d.htmldir_9f54a0e5c0accd58ed9d59aeb0a494b6.htmldir_a837e178e589be76a266a59d671110cc.htmldir_a914dcfab5ff2d1bc9dd6b873a7b604d.htmldir_ab1cf081cc3a382f37f4faf4624bc98a.htmldir_bac27e586ee22d1a1bd044b56f04c04f.htmldir_c546cd799bdd92435e34b0203cfe1750.htmldir_ede7e24c7966ae13eacb9e9d5c8994f5.htmldir_fdd811c43070b66c424782ec94ee51d7.htmldistributor_2main_8c-example.htmldoc.pngdoxy-api-index_8md_source.htmldoxygen.cssdoxygen.pngdpdk_qat_2crypto_8c-example.htmldpdk_qat_2main_8c-example.htmldynsections.jsethtool_2ethtool-app_2ethapp_8c-example.htmlethtool_2ethtool-app_2main_8c-example.htmlethtool_2lib_2rte_ethtool_8c-example.htmlexamples.htmlexception_path_2main_8c-example.htmlfiles.htmlfolderclosed.pngfolderopen.pngfunctions.htmlfunctions_a.htmlfunctions_b.htmlfunctions_c.htmlfunctions_d.htmlfunctions_e.htmlfunctions_f.htmlfunctions_func.htmlfunctions_g.htmlfunctions_h.htmlfunctions_i.htmlfunctions_j.htmlfunctions_k.htmlfunctions_l.htmlfunctions_m.htmlfunctions_n.htmlfunctions_o.htmlfunctions_p.htmlfunctions_q.htmlfunctions_r.htmlfunctions_s.htmlfunctions_t.htmlfunctions_u.htmlfunctions_v.htmlfunctions_vars.htmlfunctions_vars_a.htmlfunctions_vars_b.htmlfunctions_vars_c.htmlfunctions_vars_d.htmlfunctions_vars_e.htmlfunctions_vars_f.htmlfunctions_vars_g.htmlfunctions_vars_h.htmlfunctions_vars_i.htmlfunctions_vars_j.htmlfunctions_vars_k.htmlfunctions_vars_l.htmlfunctions_vars_m.htmlfunctions_vars_n.htmlfunctions_vars_o.htmlfunctions_vars_p.htmlfunctions_vars_q.htmlfunctions_vars_r.htmlfunctions_vars_s.htmlfunctions_vars_t.htmlfunctions_vars_u.htmlfunctions_vars_v.htmlfunctions_vars_w.htmlfunctions_vars_x.htmlfunctions_w.htmlfunctions_x.htmlglobals.htmlglobals_a.htmlglobals_b.htmlglobals_c.htmlglobals_d.htmlglobals_defs.htmlglobals_defs_b.htmlglobals_defs_c.htmlglobals_defs_d.htmlglobals_defs_e.htmlglobals_defs_i.htmlglobals_defs_l.htmlglobals_defs_m.htmlglobals_defs_o.htmlglobals_defs_p.htmlglobals_defs_r.htmlglobals_defs_s.htmlglobals_defs_u.htmlglobals_e.htmlglobals_enum.htmlglobals_eval.htmlglobals_f.htmlglobals_func.htmlglobals_func_c.htmlglobals_func_e.htmlglobals_func_i.htmlglobals_func_p.htmlglobals_func_r.htmlglobals_func_s.htmlglobals_func_t.htmlglobals_h.htmlglobals_i.htmlglobals_l.htmlglobals_m.htmlglobals_o.htmlglobals_p.htmlglobals_r.htmlglobals_s.htmlglobals_t.htmlglobals_type.htmlglobals_u.htmlglobals_vars.htmlglobals_w.htmlhelloworld_2main_8c-example.htmlindex.htmlip_fragmentation_2main_8c-example.htmlip_pipeline_2config_check_8c-example.htmlip_pipeline_2config_parse_8c-example.htmlip_pipeline_2config_parse_tm_8c-example.htmlip_pipeline_2cpu_core_map_8c-example.htmlip_pipeline_2init_8c-example.htmlip_pipeline_2main_8c-example.htmlip_pipeline_2pipeline_2pipeline_common_be_8c-example.htmlip_pipeline_2pipeline_2pipeline_common_fe_8c-example.htmlip_pipeline_2pipeline_2pipeline_firewall_8c-example.htmlip_pipeline_2pipeline_2pipeline_firewall_be_8c-example.htmlip_pipeline_2pipeline_2pipeline_flow_actions_8c-example.htmlip_pipeline_2pipeline_2pipeline_flow_actions_be_8c-example.htmlip_pipeline_2pipeline_2pipeline_flow_classification_8c-example.htmlip_pipeline_2pipeline_2pipeline_flow_classification_be_8c-example.htmlip_pipeline_2pipeline_2pipeline_master_8c-example.htmlip_pipeline_2pipeline_2pipeline_master_be_8c-example.htmlip_pipeline_2pipeline_2pipeline_passthrough_8c-example.htmlip_pipeline_2pipeline_2pipeline_passthrough_be_8c-example.htmlip_pipeline_2pipeline_2pipeline_routing_8c-example.htmlip_pipeline_2pipeline_2pipeline_routing_be_8c-example.htmlip_pipeline_2thread_8c-example.htmlip_pipeline_2thread_fe_8c-example.htmlip_reassembly_2main_8c-example.htmlipv4_multicast_2main_8c-example.htmljquery.jskni_2main_8c-example.htmll2fwd-crypto_2main_8c-example.htmll2fwd-jobstats_2main_8c-example.htmll2fwd-keepalive_2main_8c-example.htmll2fwd_2main_8c-example.htmll3fwd-acl_2main_8c-example.htmll3fwd-power_2main_8c-example.htmll3fwd-vf_2main_8c-example.htmll3fwd_2main_8c-example.htmllink_status_interrupt_2main_8c-example.htmlload_balancer_2config_8c-example.htmlload_balancer_2init_8c-example.htmlload_balancer_2main_8c-example.htmlload_balancer_2runtime_8c-example.htmlmulti_process_2client_server_mp_2mp_client_2client_8c-example.htmlmulti_process_2client_server_mp_2mp_server_2args_8c-example.htmlmulti_process_2client_server_mp_2mp_server_2init_8c-example.htmlmulti_process_2client_server_mp_2mp_server_2main_8c-example.htmlmulti_process_2l2fwd_fork_2flib_8c-example.htmlmulti_process_2l2fwd_fork_2main_8c-example.htmlmulti_process_2simple_mp_2main_8c-example.htmlmulti_process_2simple_mp_2mp_commands_8c-example.htmlmulti_process_2symmetric_mp_2main_8c-example.htmlnav_f.pngnav_g.pngnav_h.pngnetmap_compat_2bridge_2bridge_8c-example.htmlnetmap_compat_2lib_2compat_netmap_8c-example.htmlopen.pngpacket_ordering_2main_8c-example.htmlpages.htmlperformance-thread_2common_2arch_2x86_2ctx_8c-example.htmlperformance-thread_2common_2lthread_8c-example.htmlperformance-thread_2common_2lthread_cond_8c-example.htmlperformance-thread_2common_2lthread_diag_8c-example.htmlperformance-thread_2common_2lthread_mutex_8c-example.htmlperformance-thread_2common_2lthread_sched_8c-example.htmlperformance-thread_2common_2lthread_tls_8c-example.htmlperformance-thread_2l3fwd-thread_2main_8c-example.htmlperformance-thread_2pthread_shim_2main_8c-example.htmlperformance-thread_2pthread_shim_2pthread_shim_8c-example.htmlptpclient_2ptpclient_8c-example.htmlqos_meter_2main_8c-example.htmlqos_meter_2rte_policer_8c-example.htmlqos_sched_2app_thread_8c-example.htmlqos_sched_2args_8c-example.htmlqos_sched_2cfg_file_8c-example.htmlqos_sched_2cmdline_8c-example.htmlqos_sched_2init_8c-example.htmlqos_sched_2main_8c-example.htmlqos_sched_2stats_8c-example.htmlquota_watermark_2qw_2args_8c-example.htmlquota_watermark_2qw_2init_8c-example.htmlquota_watermark_2qw_2main_8c-example.htmlquota_watermark_2qwctl_2commands_8c-example.htmlquota_watermark_2qwctl_2qwctl_8c-example.htmlrte__acl_8h.htmlrte__acl_8h_source.htmlrte__acl__osdep_8h.htmlrte__acl__osdep_8h_source.htmlrte__alarm_8h.htmlrte__alarm_8h_source.htmlrte__approx_8h.htmlrte__approx_8h_source.htmlrte__arp_8h.htmlrte__arp_8h_source.htmlrte__atomic_8h.htmlrte__atomic_8h_source.htmlrte__bitmap_8h.htmlrte__bitmap_8h_source.htmlrte__branch__prediction_8h.htmlrte__branch__prediction_8h_source.htmlrte__byteorder_8h.htmlrte__byteorder_8h_source.htmlrte__cfgfile_8h.htmlrte__cfgfile_8h_source.htmlrte__cmp__arm64_8h_source.htmlrte__cmp__x86_8h_source.htmlrte__common_8h.htmlrte__common_8h_source.htmlrte__compat_8h_source.htmlrte__cpuflags_8h.htmlrte__cpuflags_8h_source.htmlrte__crc__arm64_8h.htmlrte__crc__arm64_8h_source.htmlrte__crypto_8h.htmlrte__crypto_8h_source.htmlrte__crypto__sym_8h.htmlrte__crypto__sym_8h_source.htmlrte__cryptodev_8h.htmlrte__cryptodev_8h_source.htmlrte__cryptodev__pmd_8h.htmlrte__cryptodev__pmd_8h_source.htmlrte__cuckoo__hash_8h_source.htmlrte__cuckoo__hash__x86_8h_source.htmlrte__cycles_8h.htmlrte__cycles_8h_source.htmlrte__debug_8h.htmlrte__debug_8h_source.htmlrte__dev_8h.htmlrte__dev_8h_source.htmlrte__dev__info_8h_source.htmlrte__devargs_8h.htmlrte__devargs_8h_source.htmlrte__distributor_8h.htmlrte__distributor_8h_source.htmlrte__eal_8h.htmlrte__eal_8h_source.htmlrte__eal__memconfig_8h_source.htmlrte__errno_8h.htmlrte__errno_8h_source.htmlrte__eth__bond_8h.htmlrte__eth__bond_8h_source.htmlrte__eth__bond__8023ad_8h_source.htmlrte__eth__bond__8023ad__private_8h_source.htmlrte__eth__bond__alb_8h_source.htmlrte__eth__bond__private_8h_source.htmlrte__eth__ctrl_8h.htmlrte__eth__ctrl_8h_source.htmlrte__ethdev_8h.htmlrte__ethdev_8h_source.htmlrte__ether_8h.htmlrte__ether_8h_source.htmlrte__fbk__hash_8h.htmlrte__fbk__hash_8h_source.htmlrte__gre_8h_source.htmlrte__hash_8h.htmlrte__hash_8h_source.htmlrte__hash__crc_8h.htmlrte__hash__crc_8h_source.htmlrte__hexdump_8h.htmlrte__hexdump_8h_source.htmlrte__icmp_8h.htmlrte__icmp_8h_source.htmlrte__interrupts_8h.htmlrte__interrupts_8h_source.htmlrte__ip_8h.htmlrte__ip_8h_source.htmlrte__ip__frag_8h.htmlrte__ip__frag_8h_source.htmlrte__jhash_8h.htmlrte__jhash_8h_source.htmlrte__jobstats_8h_source.htmlrte__keepalive_8h.htmlrte__keepalive_8h_source.htmlrte__kni_8h.htmlrte__kni_8h_source.htmlrte__kni__fifo_8h_source.htmlrte__kvargs_8h.htmlrte__kvargs_8h_source.htmlrte__launch_8h.htmlrte__launch_8h_source.htmlrte__lcore_8h.htmlrte__lcore_8h_source.htmlrte__log_8h.htmlrte__log_8h_source.htmlrte__lpm6_8h.htmlrte__lpm6_8h_source.htmlrte__lpm_8h.htmlrte__lpm_8h_source.htmlrte__lpm__altivec_8h_source.htmlrte__lpm__neon_8h_source.htmlrte__lpm__sse_8h_source.htmlrte__lru_8h_source.htmlrte__malloc_8h.htmlrte__malloc_8h_source.htmlrte__malloc__heap_8h_source.htmlrte__mbuf_8h.htmlrte__mbuf_8h_source.htmlrte__mbuf__ptype_8h.htmlrte__mbuf__ptype_8h_source.htmlrte__memcpy_8h.htmlrte__memcpy_8h_source.htmlrte__memory_8h.htmlrte__memory_8h_source.htmlrte__mempool_8h.htmlrte__mempool_8h_source.htmlrte__memzone_8h.htmlrte__memzone_8h_source.htmlrte__meter_8h.htmlrte__meter_8h_source.htmlrte__net_8h_source.htmlrte__pci_8h.htmlrte__pci_8h_source.htmlrte__pci__dev__feature__defs_8h_source.htmlrte__pci__dev__features_8h_source.htmlrte__per__lcore_8h.htmlrte__per__lcore_8h_source.htmlrte__pipeline_8h.htmlrte__pipeline_8h_source.htmlrte__port_8h.htmlrte__port_8h_source.htmlrte__port__ethdev_8h.htmlrte__port__ethdev_8h_source.htmlrte__port__fd_8h.htmlrte__port__fd_8h_source.htmlrte__port__frag_8h.htmlrte__port__frag_8h_source.htmlrte__port__kni_8h.htmlrte__port__kni_8h_source.htmlrte__port__ras_8h.htmlrte__port__ras_8h_source.htmlrte__port__ring_8h.htmlrte__port__ring_8h_source.htmlrte__port__sched_8h.htmlrte__port__sched_8h_source.htmlrte__port__source__sink_8h.htmlrte__port__source__sink_8h_source.htmlrte__power_8h.htmlrte__power_8h_source.htmlrte__power__acpi__cpufreq_8h.htmlrte__power__acpi__cpufreq_8h_source.htmlrte__power__common_8h_source.htmlrte__power__kvm__vm_8h.htmlrte__power__kvm__vm_8h_source.htmlrte__prefetch_8h.htmlrte__prefetch_8h_source.htmlrte__random_8h.htmlrte__random_8h_source.htmlrte__reciprocal_8h_source.htmlrte__red_8h.htmlrte__red_8h_source.htmlrte__reorder_8h.htmlrte__reorder_8h_source.htmlrte__ring_8h.htmlrte__ring_8h_source.htmlrte__rwlock_8h.htmlrte__rwlock_8h_source.htmlrte__sched_8h.htmlrte__sched_8h_source.htmlrte__sched__common_8h_source.htmlrte__sctp_8h.htmlrte__sctp_8h_source.htmlrte__spinlock_8h.htmlrte__spinlock_8h_source.htmlrte__string__fns_8h.htmlrte__string__fns_8h_source.htmlrte__table_8h.htmlrte__table_8h_source.htmlrte__table__acl_8h.htmlrte__table__acl_8h_source.htmlrte__table__array_8h.htmlrte__table__array_8h_source.htmlrte__table__hash_8h.htmlrte__table__hash_8h_source.htmlrte__table__lpm_8h.htmlrte__table__lpm_8h_source.htmlrte__table__lpm__ipv6_8h.htmlrte__table__lpm__ipv6_8h_source.htmlrte__table__stub_8h.htmlrte__table__stub_8h_source.htmlrte__tailq_8h.htmlrte__tailq_8h_source.htmlrte__tcp_8h.htmlrte__tcp_8h_source.htmlrte__thash_8h.htmlrte__thash_8h_source.htmlrte__time_8h_source.htmlrte__timer_8h.htmlrte__timer_8h_source.htmlrte__udp_8h.htmlrte__udp_8h_source.htmlrte__vdev_8h_source.htmlrte__version_8h.htmlrte__version_8h_source.htmlrte__virtio__net_8h.htmlrte__virtio__net_8h_source.htmlrte__warnings_8h.htmlrte__warnings_8h_source.htmlrxtx_callbacks_2main_8c-example.htmlskeleton_2basicfwd_8c-example.htmlsplitbar.pngstructarp__hdr.htmlstructarp__ipv4.htmlstructbond__dev__private.htmlstructbond__ethdev__slave__ports.htmlstructbond__rx__queue.htmlstructether__addr.htmlstructether__hdr.htmlstructgre__hdr.htmlstructicmp__hdr.htmlstructip__frag__tbl__stat.htmlstructipv4__hdr.htmlstructipv6__hdr.htmlstructlacpdu.htmlstructlacpdu__header.htmlstructlcore__config.htmlstructmalloc__heap.htmlstructmapped__pci__resource.htmlstructpci__map.htmlstructport.htmlstructrte__acl__config.htmlstructrte__acl__field.htmlstructrte__acl__field__def.htmlstructrte__acl__param.htmlstructrte__acl__rule__data.htmlstructrte__atomic16__t.htmlstructrte__atomic32__t.htmlstructrte__atomic64__t.htmlstructrte__bitmap.htmlstructrte__cfgfile__entry.htmlstructrte__config.htmlstructrte__crypto__auth__xform.htmlstructrte__crypto__cipher__xform.htmlstructrte__crypto__op.htmlstructrte__crypto__op__pool__private.htmlstructrte__crypto__sym__op.htmlstructrte__crypto__sym__xform.htmlstructrte__cryptodev.htmlstructrte__cryptodev__capabilities.htmlstructrte__cryptodev__config.htmlstructrte__cryptodev__data.htmlstructrte__cryptodev__driver.htmlstructrte__cryptodev__global.htmlstructrte__cryptodev__info.htmlstructrte__cryptodev__ops.htmlstructrte__cryptodev__qp__conf.htmlstructrte__cryptodev__stats.htmlstructrte__cryptodev__sym__session.htmlstructrte__cryptodev__symmetric__capability.htmlstructrte__devargs.htmlstructrte__device.htmlstructrte__driver.htmlstructrte__eth__conf.htmlstructrte__eth__dcb__info.htmlstructrte__eth__dcb__tc__queue__mapping.htmlstructrte__eth__desc__lim.htmlstructrte__eth__dev__info.htmlstructrte__eth__dev__tx__buffer.htmlstructrte__eth__ethertype__filter.htmlstructrte__eth__fc__conf.htmlstructrte__eth__fdir__action.htmlstructrte__eth__fdir__filter.htmlstructrte__eth__fdir__filter__info.htmlstructrte__eth__fdir__flex__conf.htmlstructrte__eth__fdir__flex__mask.htmlstructrte__eth__fdir__flow__ext.htmlstructrte__eth__fdir__info.htmlstructrte__eth__fdir__input.htmlstructrte__eth__fdir__masks.htmlstructrte__eth__fdir__stats.htmlstructrte__eth__flex__filter.htmlstructrte__eth__flex__payload__cfg.htmlstructrte__eth__global__cfg.htmlstructrte__eth__hash__filter__info.htmlstructrte__eth__hash__global__conf.htmlstructrte__eth__input__set__conf.htmlstructrte__eth__ipv4__flow.htmlstructrte__eth__ipv6__flow.htmlstructrte__eth__l2__flow.htmlstructrte__eth__l2__tunnel__conf.htmlstructrte__eth__link.htmlstructrte__eth__mac__filter.htmlstructrte__eth__mac__vlan__flow.htmlstructrte__eth__mirror__conf.htmlstructrte__eth__ntuple__filter.htmlstructrte__eth__pfc__conf.htmlstructrte__eth__rss__conf.htmlstructrte__eth__rss__reta__entry64.htmlstructrte__eth__rxconf.htmlstructrte__eth__rxmode.htmlstructrte__eth__rxq__info.htmlstructrte__eth__sctpv4__flow.htmlstructrte__eth__sctpv6__flow.htmlstructrte__eth__stats.htmlstructrte__eth__syn__filter.htmlstructrte__eth__tcpv4__flow.htmlstructrte__eth__tcpv6__flow.htmlstructrte__eth__thresh.htmlstructrte__eth__tunnel__filter__conf.htmlstructrte__eth__tunnel__flow.htmlstructrte__eth__txconf.htmlstructrte__eth__txmode.htmlstructrte__eth__txq__info.htmlstructrte__eth__udp__tunnel.htmlstructrte__eth__udpv4__flow.htmlstructrte__eth__udpv6__flow.htmlstructrte__eth__vlan__mirror.htmlstructrte__eth__vmdq__dcb__conf.htmlstructrte__eth__xstat.htmlstructrte__eth__xstat__name.htmlstructrte__fbk__hash__params.htmlstructrte__fbk__hash__table.htmlstructrte__fdir__conf.htmlstructrte__hash.htmlstructrte__hash__bucket.htmlstructrte__hash__parameters.htmlstructrte__intr__conf.htmlstructrte__ip__frag__death__row.htmlstructrte__ip__frag__tbl.htmlstructrte__ipv4__tuple.htmlstructrte__ipv6__tuple.htmlstructrte__kni__conf.htmlstructrte__kni__ops.htmlstructrte__kvargs.htmlstructrte__kvargs__pair.htmlstructrte__logs.htmlstructrte__lpm6__config.htmlstructrte__lpm__config.htmlstructrte__malloc__socket__stats.htmlstructrte__mbuf.htmlstructrte__mem__config.htmlstructrte__mem__resource.htmlstructrte__mempool.htmlstructrte__mempool__cache.htmlstructrte__mempool__memhdr.htmlstructrte__mempool__objhdr.htmlstructrte__mempool__objsz.htmlstructrte__mempool__ops.htmlstructrte__mempool__ops__table.htmlstructrte__memseg.htmlstructrte__memzone.htmlstructrte__meter__srtcm__params.htmlstructrte__meter__trtcm__params.htmlstructrte__net__hdr__lens.htmlstructrte__pci__addr.htmlstructrte__pci__device.htmlstructrte__pci__driver.htmlstructrte__pci__id.htmlstructrte__pci__ioport.htmlstructrte__pipeline__params.htmlstructrte__pipeline__port__in__params.htmlstructrte__pipeline__port__in__stats.htmlstructrte__pipeline__port__out__params.htmlstructrte__pipeline__port__out__stats.htmlstructrte__pipeline__table__entry.htmlstructrte__pipeline__table__params.htmlstructrte__pipeline__table__stats.htmlstructrte__pktmbuf__pool__private.htmlstructrte__port__ethdev__reader__params.htmlstructrte__port__ethdev__writer__nodrop__params.htmlstructrte__port__ethdev__writer__params.htmlstructrte__port__fd__reader__params.htmlstructrte__port__fd__writer__nodrop__params.htmlstructrte__port__fd__writer__params.htmlstructrte__port__in__ops.htmlstructrte__port__in__stats.htmlstructrte__port__kni__reader__params.htmlstructrte__port__kni__writer__nodrop__params.htmlstructrte__port__kni__writer__params.htmlstructrte__port__out__ops.htmlstructrte__port__out__stats.htmlstructrte__port__ring__reader__frag__params.htmlstructrte__port__ring__reader__params.htmlstructrte__port__ring__writer__nodrop__params.htmlstructrte__port__ring__writer__params.htmlstructrte__port__ring__writer__ras__params.htmlstructrte__port__sched__reader__params.htmlstructrte__port__sched__writer__params.htmlstructrte__port__sink__params.htmlstructrte__port__source__params.htmlstructrte__red.htmlstructrte__red__config.htmlstructrte__red__params.htmlstructrte__ring.htmlstructrte__ring_1_1cons.htmlstructrte__ring_1_1prod.htmlstructrte__rwlock__t.htmlstructrte__sched__port__params.htmlstructrte__sched__queue__stats.htmlstructrte__sched__subport__stats.htmlstructrte__spinlock__recursive__t.htmlstructrte__spinlock__t.htmlstructrte__table__acl__params.htmlstructrte__table__acl__rule__add__params.htmlstructrte__table__acl__rule__delete__params.htmlstructrte__table__array__key.htmlstructrte__table__array__params.htmlstructrte__table__hash__cuckoo__params.htmlstructrte__table__hash__ext__params.htmlstructrte__table__hash__key16__ext__params.htmlstructrte__table__hash__key16__lru__params.htmlstructrte__table__hash__key32__ext__params.htmlstructrte__table__hash__key32__lru__params.htmlstructrte__table__hash__key8__ext__params.htmlstructrte__table__hash__key8__lru__params.htmlstructrte__table__hash__lru__params.htmlstructrte__table__lpm__ipv6__key.htmlstructrte__table__lpm__ipv6__params.htmlstructrte__table__lpm__key.htmlstructrte__table__lpm__params.htmlstructrte__table__ops.htmlstructrte__table__stats.htmlstructrte__tailq__entry.htmlstructrte__tailq__head.htmlstructrte__timecounter.htmlstructrte__timer.htmlstructrte__vdev__driver.htmlstructsctp__hdr.htmlstructslow__protocol.htmlstructslow__protocol__frame.htmlstructtcp__hdr.htmlstructudp__hdr.htmlstructvirtio__net__device__ops.htmlstructvlan__hdr.htmlstructvxlan__hdr.htmlsync_off.pngsync_on.pngtab_a.pngtab_b.pngtab_h.pngtab_s.pngtabs.csstep_termination_2main_8c-example.htmltep_termination_2vxlan_8c-example.htmltep_termination_2vxlan_setup_8c-example.htmltimer_2main_8c-example.htmlunionrte__eth__fdir__flow.htmlunionrte__fbk__hash__entry.htmlunionrte__timer__status.htmlvhost_2main_8c-example.htmlvhost_xen_2main_8c-example.htmlvhost_xen_2vhost_monitor_8c-example.htmlvhost_xen_2xenstore_parse_8c-example.htmlvm_power_manager_2channel_manager_8c-example.htmlvm_power_manager_2channel_monitor_8c-example.htmlvm_power_manager_2guest_cli_2main_8c-example.htmlvm_power_manager_2guest_cli_2vm_power_cli_guest_8c-example.htmlvm_power_manager_2main_8c-example.htmlvm_power_manager_2power_manager_8c-example.htmlvm_power_manager_2vm_power_cli_8c-example.htmlvmdq_2main_8c-example.htmlvmdq_dcb_2main_8c-example.html/usr/share/doc/packages//usr/share/doc/packages/dpdk-doc//usr/share/doc/packages/dpdk//usr/share/doc/packages/dpdk/api/-fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:9226/openSUSE_Leap_42.3_Update/a1907c8ac46bd92260d9f502c69aca69-dpdk.openSUSE_Leap_42.3_Updatedrpmlzma5i586-suse-linux?]"k%f=35<)ftGХReN6&Oa;U4D9ĔhWYGRI\}y+dՐR}P'h@nDTE4=[i0 d2I&(\ꩡl7~Swf8{ʨ1/pў":Ul4[ s*W0b<#iBX ³t#XL+sA9: 5̈́< @atT D]Ѭ{~Hnx2Q 7"jaH T`SGOɥS9q}r>!zO+ +XDoN\ăTކQEAOPү EѤٻ;4,5BNpv)BV,ư@p/MÝ*uFTtf$"GEYẶb2^ ؋̒pf|)]oϖboW. JӶ')"8 r[4-W9u3|:Թ}GJ-K)| gXٳ% @{LY<%2fA@<nUba?otjzN۹+Nd~KN0Km܍:3BA%;ܫQqH1ɌئP[bVnIyU6 _^%#;*{kg"o\I]5a>]|z8 lHew%&;d7dɈB /ǪT ř4/3 Ɖ0n၈^ϐYbe2?1aS8Ldtd8op;1? c&p^\ג1.N%B[+ΐj0O̖se1Ly ճ߯ras Ы"1es@M^Yz-cLp!iR'`}f'#EYZh u"!D@WoëޮtG%mqEH91)K^2p̖҅K/92'wS)_(m"++cVJ7H*Hԣ>tQ]cDɄ,wҪ9MS-UMnO_m$#BުP1Qo8`-P+qH@qQcu _1Vr qBjsMH'ebnU6K=A1FMIW =u= :_*I6W ƞ 2_f{[ ,0zhR>=Y*3EOÜFUg]zeC?)j̗ޤ}sye$8y`Ģ'i@E0"'u9Qt61-/FL5-}ۻ5m P '¡5ay*dѯkb Eg~0E-I w4@^!_pgD_GaL[%FM%WJY2֜) .cd!~FpÄ҄-;$pee&׉QYb'QpHGD>…Ϙh\7#o'[v ERP69 iF VӶrNcH?1aw?fŒKX邳 2 !DȨv$]0"pUЛ8 |D섨x] Xd,q%u $g6RrVU{b2 Mǧ5_yӜͧ~\?׺ + G(>]{it҅ԯD&W>T0iWzSN.GxVŹZ[`nr;F Y'9gg`RNC'֧WH~ z]ʃ-p$C cw ^ma[-idc=31"P_hNxve6cM[]@S$52nh `%Pky;ARg5(k 1| 씭398rϓL 2_М^SRBtv"٩?U"IR EN YB3~afqNs>ׄ%4;^Ba-cȡx2D GX{zN{rVu sX0rd[j/_t4{`zQVB/ -cC"UGlƊ;WYYJs@sBUxK:azV<ҩTir,ijreh^1(`y}R\ SӞ><}Ek,&x("ѦZcxBHu̡-_0f]'!!BO&zS@n7}bHCe9L8$Ț[mU6ܺ rWV/ \;KW#Y$͸_*/-qaKig2 ZEJPb2)p~sYp6F;sVBȇÊd:,[ĝ< 䌌Ƿbvw[;𡻚$eYzZmѤ?ͼ̧f 8wIq8 'oE:,*?A)$;e1LBpRS= \&;FxIER:EW3Tx`$yՀ aVq~+![T>DoVb !BvXq(jQPqyn,#I4FhkɁ Z"bwmD dؿթl9֗9^ɀn96sG"<EjѱwǴuq5'ѫ d*(ȝO3v>jE9GQ;Œ \$!/`r9!=x'2 9fϦI k9qM9""To?1؂O~}6U܆X'jut=Brh5Ӹ9I#D;ϓvZ`V{4aI$@|i y`넃z-KgiّO>,ڸ`X|v+JM$"¡$I+.FuÛ@?Lۓik6D7ќyx݉["6hq:-fBom`9ͨg?$ɡV[]nȖ|lQ/*diF쏻 tzݹ+xq"ZK$ɖp1X#٩.d*WNT Ȏ2Jb{gpFvаQ:W\F.n<%LL7'^GF@asюBGvTx^f;rAKu̬'9kۆ ّzQ7|v4ml:s],Qa 9W #Ic.YX+ͽz%\h\2 Z9 `ؤbK 4Xˎ`*V .1"!> WEb*2RyW jƺ,N-e#˼$e0 !!`t@[ɓ4wQn<;#.ZL'3Ň4PF4l! XxHF!:`2 =iL)17mqk3_vkߗ}SUzXS7| % g^! ǎC??%;m%^!2B+YL O[p@ ym~-> } lA8ב "8KDYe>.E :kW(GA.1KG\6‰7pq\4{)7H1W -.2Ozx,-n̓ǐD{rk Q;TzAm9ر`,"3#'!H[Ȏ["_gB굀]|h'1؋RTxƥz/ܱD;):v}ۯnwUpkXW'YHYF+(ɇ21b{% 2n 3D^ů"J'l]?)S}<,OKS`JN"ҊaU U] dFJ~Lי Лts0}ȋyWag3= QEXGcצMɜa[\ FK&Qךp5 w~A?2v9>9'RąCW.Do\kW)'[ EKdqV\C=$F&dD:%e8gja {2&X|xwnn\\tjc؏ǹRJP%B>EIIǻ$sj濃 NNBR**B889fwF"$otiwcd09l2w{~ W;nE+㙋$XSO#ƨ|Lr -f(u*X4= LAyUpqcUzj:uG1vӆp1<6nf~K''ᾐL:[>L9տ],`&V[^/'0M^VJ ?\ Dk|!Gsis!lDjj]+m#?./fe6)d1^?JaBS*NJ8Z?"Ϧ'\n|%x^Cs`Ȯ\2~C8&*VLP5wXGܑb҃^ <Ã- ٜ]qz>i*k/m&~>Xν#5*^*-&m$;{Uń[>Iv7h_& iW=(92RV)s$Tz9|O~y*re=@i;M/@Y#(5WOT:1 "$P>+CAa '{nw&M;~1YCS5ULBP+ 2k^O 1(E9R7aҪš΋ҋYr bQ@2 Y\PVmNJD ?{ Fm`tJW]o Z֛%ϩ(b& BS~]r.Ln<^,=Ѣ }]3j^eIη1!bj x|Ra9x*f`A2˷>fJCL%&_FN!^Uyp<(鏛:opy1vdzOqBUs̰U(cI{'} UiOv[rsOơQؓ& uݜW=qZb ml2F149YOnghJDS<!5 kxETai/ l]f|p^M -m\z˼QrZƦ[&oж}`M84orZWX4 Ԃje`>-Oܟ#̻זNNrrOH10ʚZm\]|, ag5jkͷX7a]sSeoc 3]E M1TۇZ:m~FrheZ۞f?4=S lA*ɜ/&y 4U 6թ̑^ F NQ=c3:WMDݏ䎖9XOt-tEt{XRbB7L 8%eOrA̶<((/U0ehLu(-;tŰ[4[7l UqIIXnX{!l"+I cTtԛ104҂6ah,E*0Rȸ7~_&H>N)e6Z+n $`'z}}cm[h, Jqxg4g}/Yo,`->t(PlDĪN23a_s\s۹RzT#LY l]8B;>M)G9y+X͂ԉ܍ME >+YW%FkR؆A|=Jc U+Uee-o}U8^S=|D v.Jj=ڌpBe.J&~jf1V_vN s%o F'nC?^Gmi&GFƬ M hM 3Jģ6%T!}ݜ.Ѫ.Fdohv>*d40J> aZl،Ѩ7tIV[^Ud`*e7{S91F#"e~`.˵-qg:1W;UgwN>ԿM=Ϟ)y@)AyC\Rۂta5:FL\tY^@L?|3tAKܦ@Os4%U<Ɖzs܂=n3qMNDY>yiĂ(Mp1oHn 9 7s2NgFCp1wWH )XɉwWih u1No^Gu{H{+.OS1oU< ߶qL)Q$B;ʇMFyMcws~x #![mأHe8(̰,ƨCoT r_߳m4_mn@%эy*zxir|un = uCv"P}Ri{TrZnpaS ȥRcʸ_Ss9pr8\` #oB>W(m4do:R{7~&T;n`C"?oZ _#}P ҉\h6U\3Ϻ[?n sBH&;,?ob4@LhUW$DYi,GJ- O58dz3d[ߘ^)g ֌?3y7f l&F,TfEBz/+,p=g 2$0^:AP!^v!+Ǥ38M;܍$h
  • =[}Y:.Vmԯ\XGziFX4 ߸vϓƍL^mwXY3N{c[dg56\|瞩.ڬMA9N0Z9ë%IA{,M#) : bL24a=N+*6;aϿaK+-@?BSO q :Gty%xH?[qn07.l!JEJJ4{ =iem'~Z'3>kY/Q)x& uz "T#rcA"cc9 驱NakʁcjOԣ&9؋B:;cS GdblVOBnS8{kD2a]:za/ `".mbE&|ˀ!ݥ/o)nϸf+Y-9#C+1CAZ?H.>