From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 5030C558A for ; Fri, 25 Mar 2016 16:07:13 +0100 (CET) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP; 25 Mar 2016 08:07:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,391,1455004800"; d="scan'208";a="675552050" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by FMSMGA003.fm.intel.com with ESMTP; 25 Mar 2016 08:07:10 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.248.2; Fri, 25 Mar 2016 08:07:09 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.248.2; Fri, 25 Mar 2016 08:07:08 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.132]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.136]) with mapi id 14.03.0248.002; Fri, 25 Mar 2016 23:07:06 +0800 From: "Zhang, Helin" To: Thomas Monjalon , "Xu, Qian Q" , "Xing, Beilei" CC: "dev@dpdk.org" , Marc , "Ananyev, Konstantin" , "Lu, Wenzhuo" , "Richardson, Bruce" , "Glynn, Michael J" Thread-Topic: [dpdk-dev] [PATCH v11 0/8] ethdev: 100G and link speed API refactoring Thread-Index: AQHRhUY7OEvoxchDFU2yNSSKLXebJZ9nmh2AgAAYJoCAASEkgIAAj1oAgADiX+A= Date: Fri, 25 Mar 2016 15:07:05 +0000 Message-ID: References: <1457992546-32230-1-git-send-email-thomas.monjalon@6wind.com> <82F45D86ADE5454A95A89742C8D1410E032113DB@shsmsx102.ccr.corp.intel.com> <3250488.B81B9g3x6N@xps13> In-Reply-To: <3250488.B81B9g3x6N@xps13> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDY3ZGQ4NDAtZWU3NS00N2JkLWJiNTgtOTg0NTBhNmRmNDdlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6InhTWUF6V1ZQWlBkWW5BRlZJUXZxaEVnS0dsZlYyd3RETG9cL1lXelhLRklZPSJ9 x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v11 0/8] ethdev: 100G and link speed API refactoring X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Mar 2016 15:07:14 -0000 SGkgVGhvbWFzDQoNCkJlaWxlaSBpcyBpbnZlc3RpZ2F0aW5nIHRoYXQsIHNoZSB3aWxsIGdpdmUg aGVyIGZpbmRpbmdzIHNvb24gbGF0ZXIsIGFuZCBwb3NzaWJseSBhIGZpeCBhZnRlciB2YWxpZGF0 aW5nIHRoYXQuDQpUaGFua3MhDQoNClJlZ2FyZHMsDQpIZWxpbg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IFRob21hcyBNb25qYWxvbiBbbWFpbHRvOnRob21hcy5tb25q YWxvbkA2d2luZC5jb21dDQo+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjUsIDIwMTYgNTozNiBQTQ0K PiBUbzogWHUsIFFpYW4gUSA8cWlhbi5xLnh1QGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9y ZzsgTWFyYyA8bWFyY2RldmVsQGdtYWlsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPGtv bnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRl bC5jb20+Ow0KPiBaaGFuZywgSGVsaW4gPGhlbGluLnpoYW5nQGludGVsLmNvbT47IFJpY2hhcmRz b24sIEJydWNlDQo+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IEdseW5uLCBNaWNoYWVs IEogPG1pY2hhZWwuai5nbHlubkBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZd IFtQQVRDSCB2MTEgMC84XSBldGhkZXY6IDEwMEcgYW5kIGxpbmsgc3BlZWQgQVBJDQo+IHJlZmFj dG9yaW5nDQo+IA0KPiBJcyB0aGVyZSBzb21lb25lIGludmVzdGlnYXRpbmcgdGhlIGlzc3VlPw0K PiBJIHRoaW5rIGl0IHNob3VsZCBiZSBzaW1wbGUgdG8gZml4IGZvciBzb21lb25lIG1hc3Rlcmlu ZyB0aGVzZSBJbnRlbCBkcml2ZXJzLg0KPiANCj4gMjAxNi0wMy0yNSAwMTowMiwgWHUsIFFpYW4g UToNCj4gPiBNYXJjDQo+ID4gI1Rlc3QxIGlzIGp1c3QgYSBzaW1wbGUgdGVzdC4gSnVzdCBsYXVu Y2ggdGVzdHBtZCB3aXRoIHRoZXNlIG5pYyBwb3J0Lg0KPiA+IC4vdGVzdHBtZCDigJNjIDB4MyDi gJNuIDQgLS0gLWkNCj4gPg0KPiA+IFRoYW5rcw0KPiA+IFFpYW4NCj4gPg0KPiA+IEZyb206IG1h cmMuc3VuZUBnbWFpbC5jb20gW21haWx0bzptYXJjLnN1bmVAZ21haWwuY29tXSBPbiBCZWhhbGYg T2YNCj4gPiBNYXJjDQo+ID4gU2VudDogVGh1cnNkYXksIE1hcmNoIDI0LCAyMDE2IDM6NDggUE0N Cj4gPiBUbzogWHUsIFFpYW4gUQ0KPiA+IENjOiBUaG9tYXMgTW9uamFsb247IEFuYW55ZXYsIEtv bnN0YW50aW47IEx1LCBXZW56aHVvOyBaaGFuZywgSGVsaW47DQo+ID4gUmljaGFyZHNvbiwgQnJ1 Y2U7IGRldkBkcGRrLm9yZw0KPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MTEg MC84XSBldGhkZXY6IDEwMEcgYW5kIGxpbmsgc3BlZWQNCj4gPiBBUEkgcmVmYWN0b3JpbmcNCj4g Pg0KPiA+DQo+ID4NCj4gPiBPbiAyNCBNYXJjaCAyMDE2IGF0IDA3OjIxLCBYdSwgUWlhbiBRDQo+ IDxxaWFuLnEueHVAaW50ZWwuY29tPG1haWx0bzpxaWFuLnEueHVAaW50ZWwuY29tPj4gd3JvdGU6 DQo+ID4gTWFyYw0KPiA+IEkgZGlkbuKAmXQgcXVpdGUgZ2V0IHlvdXIgcG9pbnRzLCBJIG9ic2Vy dmVkIHRoYXQgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBwYXRjaHNldCwgYWxsDQo+IGludGVsIG5pYyBj YW7igJl0IGJlIHN0YXJ0ZWQsIG1heWJlIHNvbWV0aGluZyB3cm9uZyBoYXBwZW5lZCB3aGVuIHlv dSBjaGVjaw0KPiB0aGUgZHVwbGV4L2F1dG9uZWcgdmFsdWUgZm9yIGRpZmZlcmVudCBOSUNzLiBJ ZiB3ZSB3YW50IHRvIG1lcmdlIHRoZSBwYXRjaHNldCBpbg0KPiBSQzIsIHdlIG5lZWQgZml4IHRo ZW0uIE1heWJlIG5vdCBhbiBlYXN5IGpvYiBpbiBzZXZlcmFsIGRheXMuDQo+ID4NCj4gPiBJcyB0 aGlzIHRlc3QjMSBvbmUgb2YgdGhlIHRlc3RzIGNvbnRhaW5lZCBpbiB0aGUgRFBESyByZXBvc2l0 b3J5IG9yIGlzIGl0IGFuDQo+IGludGVybmFsIHRlc3Q/DQo+ID4NCj4gPiBNYXJjDQo+ID4NCj4g Pg0KPiA+DQo+ID4gVGhhbmtzDQo+ID4gUWlhbg0KPiA+DQo+ID4gRnJvbTogbWFyYy5zdW5lQGdt YWlsLmNvbTxtYWlsdG86bWFyYy5zdW5lQGdtYWlsLmNvbT4NCj4gPiBbbWFpbHRvOm1hcmMuc3Vu ZUBnbWFpbC5jb208bWFpbHRvOm1hcmMuc3VuZUBnbWFpbC5jb20+XSBPbiBCZWhhbGYgT2YNCj4g PiBNYXJjDQo+ID4gU2VudDogVGh1cnNkYXksIE1hcmNoIDI0LCAyMDE2IDQ6NTQgQU0NCj4gPiBU bzogWHUsIFFpYW4gUQ0KPiA+IENjOiBUaG9tYXMgTW9uamFsb247IEFuYW55ZXYsIEtvbnN0YW50 aW47IEx1LCBXZW56aHVvOyBaaGFuZywgSGVsaW47DQo+ID4gUmljaGFyZHNvbiwgQnJ1Y2U7IGRl dkBkcGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsub3JnPg0KPiA+DQo+ID4gU3ViamVjdDogUmU6IFtk cGRrLWRldl0gW1BBVENIIHYxMSAwLzhdIGV0aGRldjogMTAwRyBhbmQgbGluayBzcGVlZA0KPiA+ IEFQSSByZWZhY3RvcmluZw0KPiA+DQo+ID4gUWlhbiwNCj4gPg0KPiA+IE9uIDIzIE1hcmNoIDIw MTYgYXQgMDI6MTgsIFh1LCBRaWFuIFENCj4gPHFpYW4ucS54dUBpbnRlbC5jb208bWFpbHRvOnFp YW4ucS54dUBpbnRlbC5jb20+PiB3cm90ZToNCj4gPiBXZSBoYXZlIHRlc3RlZCB3aXRoIGludGVs IG5pYyBhbmQgZm91bmQgcG9ydCBjYW4ndCBiZSBzdGFydGVkIGZvciBhbGwNCj4gbmljczppeGdi ZS9pNDBlL2lnYi9ib25kaW5nLCBzZWUgYXR0YWNoZWQgbWFpbCBmb3IgbW9yZSBkZXRhaWxzLiBQ bGVhc2UgY2hlY2sNCj4gYW5kIGZpeCBpdC4NCj4gPg0KPiA+DQo+ID4gVGhhbmtzDQo+ID4gUWlh bg0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBkZXYgW21h aWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZzxtYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmc+XQ0K PiA+IE9uIEJlaGFsZiBPZiBUaG9tYXMgTW9uamFsb24NCj4gPiBTZW50OiBXZWRuZXNkYXksIE1h cmNoIDIzLCAyMDE2IDM6NTkgQU0NCj4gPiBUbzogQW5hbnlldiwgS29uc3RhbnRpbjsgTHUsIFdl bnpodW87IFpoYW5nLCBIZWxpbg0KPiA+IENjOiBtYXJjZGV2ZWxAZ21haWwuY29tPG1haWx0bzpt YXJjZGV2ZWxAZ21haWwuY29tPjsgUmljaGFyZHNvbiwNCj4gPiBCcnVjZTsgZGV2QGRwZGsub3Jn PG1haWx0bzpkZXZAZHBkay5vcmc+DQo+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENI IHYxMSAwLzhdIGV0aGRldjogMTAwRyBhbmQgbGluayBzcGVlZA0KPiA+IEFQSSByZWZhY3Rvcmlu Zw0KPiA+DQo+ID4gMjAxNi0wMy0xNyAxOTowOCwgVGhvbWFzIE1vbmphbG9uOg0KPiA+ID4gVGhl cmUgYXJlIHN0aWxsIHRvbyBmZXcgdGVzdHMgYW5kIHJldmlld3MsIGVzcGVjaWFsbHkgZm9yDQo+ ID4gPiBhdXRvbmVnb3RpYXRpb24gd2l0aCBJbnRlbCBkZXZpY2VzIChwYXRjaCAjNikuDQo+ID4g PiBJIHdvdWxkIG5vdCBiZSBzdXJwcmlzZWQgdG8gc2VlIHNvbWUgYnVncyBpbiB0aGlzIHJld29y ay4NCj4gPg0KPiA+IEFueSBmZWVkYmFjayBhYm91dCBhdXRvbmVnIGluIGUxMDAwL2l4Z2JlL2k0 MGU/DQo+ID4gSGFzIGl0IGJlZW4gdGVzdGVkIGJlZm9yZSBpdHMgaW50ZWdyYXRpb24gaW4gUkMy Pw0KPiA+DQo+ID4gPiBUaGUgY2FwYWJpbGl0aWVzIG11c3QgYmUgYWRhcHRlZCBwZXIgZGV2aWNl LiBJdCBjYW4gYmUgaW1wcm92ZWQgaW4gYQ0KPiA+ID4gc2VwYXJhdGUgcGF0Y2guDQo+ID4gPg0K PiA+ID4gSXQgd2lsbCBiZSBpbnRlZ3JhdGVkIGluIDE2LjA0LXJjMi4NCj4gPiA+IFBsZWFzZSB0 ZXN0IGFuZCByZXZpZXcgc2hvcnRseSwgdGhhbmtzIQ0KPiA+DQo+ID4NCj4gPiAtLS0tLS0tLS0t IEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0NCj4gPiBGcm9tOiAiWHUsIFFpYW4gUSIgPHFp YW4ucS54dUBpbnRlbC5jb208bWFpbHRvOnFpYW4ucS54dUBpbnRlbC5jb20+Pg0KPiA+IFRvOiAi Q2FvLCBXYXRlcm1hbiINCj4gPiA8d2F0ZXJtYW4uY2FvQGludGVsLmNvbTxtYWlsdG86d2F0ZXJt YW4uY2FvQGludGVsLmNvbT4+LCAiR2x5bm4sDQo+ID4gTWljaGFlbCBKIg0KPiA+IDxtaWNoYWVs LmouZ2x5bm5AaW50ZWwuY29tPG1haWx0bzptaWNoYWVsLmouZ2x5bm5AaW50ZWwuY29tPj4NCj4g PiBDYzogIlJpY2hhcmRzb24sIEJydWNlIg0KPiA+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNv bTxtYWlsdG86YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+PiwgIlpodSwNCj4gPiBIZXFpbmci IDxoZXFpbmcuemh1QGludGVsLmNvbTxtYWlsdG86aGVxaW5nLnpodUBpbnRlbC5jb20+PiwNCj4g PiAiTydEcmlzY29sbCwgVGltIg0KPiA+IDx0aW0ub2RyaXNjb2xsQGludGVsLmNvbTxtYWlsdG86 dGltLm9kcmlzY29sbEBpbnRlbC5jb20+PiwgIk1jbmFtYXJhLA0KPiA+IEpvaG4iIDxqb2huLm1j bmFtYXJhQGludGVsLmNvbTxtYWlsdG86am9obi5tY25hbWFyYUBpbnRlbC5jb20+PiwgIlh1LA0K PiA+IEh1aWxvbmdYIiA8aHVpbG9uZ3gueHVAaW50ZWwuY29tPG1haWx0bzpodWlsb25neC54dUBp bnRlbC5jb20+PiwgIkZ1LA0KPiA+IEppbmdndW9YIiA8amluZ2d1b3guZnVAaW50ZWwuY29tPG1h aWx0bzpqaW5nZ3VveC5mdUBpbnRlbC5jb20+PiwgIlh1LA0KPiA+IFFpYW4gUSIgPHFpYW4ucS54 dUBpbnRlbC5jb208bWFpbHRvOnFpYW4ucS54dUBpbnRlbC5jb20+PiwgIlpoYW5nLA0KPiA+IEhl bGluIiA8aGVsaW4uemhhbmdAaW50ZWwuY29tPG1haWx0bzpoZWxpbi56aGFuZ0BpbnRlbC5jb20+ Pg0KPiA+IERhdGU6IFR1ZSwgMjIgTWFyIDIwMTYgMDY6NDE6MzcgKzAwMDANCj4gPiBTdWJqZWN0 OiBSRTogRFBESyBsaW5rIHNwZWVkIHdpdGggSW50ZWwgZGV2aWNlcyBIaSwgYWxsIFdlIGhhdmUg d29ya2VkDQo+ID4gb3V0IHRoZSBiYXNpYyB0ZXN0IGNhc2VzIGZvciB0aGUgcGF0Y2hzZXQuDQo+ ID4gMS4gVGVzdCB0aGUgbGluayBzcGVlZCBvbiBtYWpvciBJbnRlbCBOSUNzIHRvIHNlZSBpZiB0 aGUgc3BlZWQgaXMgcmlnaHQuDQo+ID4gMi4gVGVzdCB0aGUgYXV0by1uZWdvYXRpb24gb24gbWFq b3IgSW50ZWwgTklDcyB0byBlbnN1cmUgaXQncyB3b3JraW5nLg0KPiA+IE5pYyBjb3ZlcmVkOiBp eGdiZSwgaWdiLCBpNDBlLCBmbTEwaywgYm9uZGluZyhTVyksIHZpcnRpbyhTVykNCj4gPg0KPiA+ IFdoZW4gd2UgcnVuIHRoZSBUZXN0IzEgZm9yIGFsbCBtYWpvciBOSUNzLiBXZSBmb3VuZCB0aGF0 IGFsbCB0aGVzZSBOSUMgcG9ydChpZ2IsDQo+IGl4Z2JlLCBpNDBlLCBmbTEwaykgY2FuJ3QgYmUg c3RhcnRlZC4gUGxzIGNoZWNrLCBpZiB0aGUgcGF0Y2ggaXMgYXBwbGllZCwgYWxsIElOVEVMDQo+ IHBvcnQgY2FuJ3QgYmUgc3RhcnQsIHRlcnJpYmxlIHRoaW5ncyENCj4gPg0KPiA+IEludGVyYWN0 aXZlLW1vZGUgc2VsZWN0ZWQNCj4gPiBDb25maWd1cmluZyBQb3J0IDAgKHNvY2tldCAwKQ0KPiA+ IFBNRDogaXhnYmVfZGV2X3R4X3F1ZXVlX3NldHVwKCk6IHN3X3Jpbmc9MHg3ZjEzZTk5ZTM0NDAN Cj4gPiBod19yaW5nPTB4N2YxM2U5OWU1NDgwIGRtYV9hZGRyPTB4ODI5OWU1NDgwDQo+ID4gUE1E OiBpeGdiZV9zZXRfdHhfZnVuY3Rpb24oKTogVXNpbmcgc2ltcGxlIHR4IGNvZGUgcGF0aA0KPiA+ IFBNRDogaXhnYmVfc2V0X3R4X2Z1bmN0aW9uKCk6IFZlY3RvciB0eCBlbmFibGVkLg0KPiA+IFBN RDogaXhnYmVfZGV2X3J4X3F1ZXVlX3NldHVwKCk6IHN3X3Jpbmc9MHg3ZjEzZmZjYjgwODANCj4g PiBzd19zY19yaW5nPTB4N2YxM2ZmY2JhYWMwIGh3X3Jpbmc9MHg3ZjEzZTk5ZDMzODAgZG1hX2Fk ZHI9MHg4Mjk5ZDMzODANCj4gPiBQTUQ6IGl4Z2JlX2Rldl9zdGFydCgpOiBJbnZhbGlkIGxpbmtf c3BlZWRzIGZvciBwb3J0IDA7DQo+ID4gYXV0b25lZ290aWF0aW9uIGRpc2FibGVkIEZhaWwgdG8g c3RhcnQgcG9ydCAwIENvbmZpZ3VyaW5nIFBvcnQgMQ0KPiA+IChzb2NrZXQgMCkNCj4gPiBQTUQ6 IGk0MGVfc2V0X3R4X2Z1bmN0aW9uX2ZsYWcoKTogVmVjdG9yIHR4IGNhbiBiZSBlbmFibGVkIG9u IHRoaXMgdHhxLg0KPiA+IFBNRDogaTQwZV9kZXZfcnhfcXVldWVfc2V0dXAoKTogUnggQnVyc3Qg QnVsayBBbGxvYyBQcmVjb25kaXRpb25zIGFyZQ0KPiBzYXRpc2ZpZWQuIFJ4IEJ1cnN0IEJ1bGsg QWxsb2MgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIG9uIHBvcnQ9MSwgcXVldWU9MC4NCj4gPiBQTUQ6 IGk0MGVfZGV2X3N0YXJ0KCk6IEludmFsaWQgbGlua19zcGVlZHMgZm9yIHBvcnQgMTsgYXV0b25l Z290aWF0aW9uDQo+ID4gZGlzYWJsZWQNCj4gPg0KPiA+DQo+ID4gSnVzdCB0byBkb3VibGUtY2hl Y2s7IGlzIHRoZSB0ZXN0IzEgYWRhcHRlZCB0byB0aGUgX25ld18gQVBJIHRoYXQgZXRoZGV2IGhh cw0KPiB0byBzZXQgbGluayBzcGVlZHM/IEZvciB0aGUgb3V0cHV0IGl0IHNlZW1zIGF1dG9uZWcg aXMgZGlzYWJsZWQgPT4gZml4ZWQgc3BlZWQsDQo+IGhlbmNlIHRoZSBuZXcgYml0bWFwcyBoYXZl IHRvIGJlIHVzZWQuDQo+ID4NCj4gPiAoSSBhbSBub3QgY2xhaW1pbmcgcGF0Y2hzZXQgaXMgYnVn IGZyZWU7IHRoZXJlIG1pZ2h0IGJlIGlzc3VlcyBzdGlsbCkNCj4gPg0KPiA+IFJlZ2FyZHMNCj4g PiBtYXJjDQo+ID4NCj4gPiBGYWlsIHRvIHN0YXJ0IHBvcnQgMQ0KPiA+IFBsZWFzZSBzdG9wIHRo ZSBwb3J0cyBmaXJzdA0KPiA+IERvbmUNCj4gPg0KPiA+IFRoYW5rcw0KPiA+IFFpYW4NCj4gPg0K PiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBDYW8sIFdhdGVy bWFuDQo+ID4gU2VudDogVHVlc2RheSwgTWFyY2ggMjIsIDIwMTYgMTE6MDYgQU0NCj4gPiBUbzog R2x5bm4sIE1pY2hhZWwgSg0KPiA+IENjOiBSaWNoYXJkc29uLCBCcnVjZTsgWmh1LCBIZXFpbmc7 IE8nRHJpc2NvbGwsIFRpbTsgTWNuYW1hcmEsIEpvaG47DQo+ID4gWHUsIFFpYW4gUTsgQ2FvLCBX YXRlcm1hbg0KPiA+IFN1YmplY3Q6IFJFOiBEUERLIGxpbmsgc3BlZWQgd2l0aCBJbnRlbCBkZXZp Y2VzDQo+ID4NCj4gPiBIaSBNaWtlLA0KPiA+DQo+ID4gICAgICAgICBXZSBqdXN0IGtuZXcgdGhp cyBwYXRjaCBzZXQgbGFzdCB3ZWVrLg0KPiA+ICAgICAgICAgU2luY2UgdGhpcyBwYXRjaCBzZXQg aXMgcmVxdWlyZWQgdG8gdGVzdCB3aXRoIGEgbG90IG9mIE5JQywgIHdlIG5lZWQNCj4gbW9yZSBk b2N1bWVudCBmcm9tIERldiBhYm91dCB0aGlzIHBhdGNoLg0KPiA+ICAgICAgICAgQ3VycmVudGx5 LCBRaWFuIGlzIHdvcmtpbmcgb24gd2l0aCBXZW56aHVvIG9uIGl0IG5vdy4NCj4gPg0KPiA+IFdh dGVybWFuDQo+ID4NCj4gPg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJv bTogR2x5bm4sIE1pY2hhZWwgSg0KPiA+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDIyLCAyMDE2IDE6 MzEgQU0NCj4gPiBUbzogQ2FvLCBXYXRlcm1hbg0KPiA+IDx3YXRlcm1hbi5jYW9AaW50ZWwuY29t PG1haWx0bzp3YXRlcm1hbi5jYW9AaW50ZWwuY29tPj4NCj4gPiBDYzogUmljaGFyZHNvbiwgQnJ1 Y2UNCj4gPiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb208bWFpbHRvOmJydWNlLnJpY2hhcmRz b25AaW50ZWwuY29tPj47IFpodSwNCj4gPiBIZXFpbmcgPGhlcWluZy56aHVAaW50ZWwuY29tPG1h aWx0bzpoZXFpbmcuemh1QGludGVsLmNvbT4+Ow0KPiA+IE8nRHJpc2NvbGwsIFRpbQ0KPiA+IDx0 aW0ub2RyaXNjb2xsQGludGVsLmNvbTxtYWlsdG86dGltLm9kcmlzY29sbEBpbnRlbC5jb20+Pjsg TWNuYW1hcmEsDQo+ID4gSm9obiA8am9obi5tY25hbWFyYUBpbnRlbC5jb208bWFpbHRvOmpvaG4u bWNuYW1hcmFAaW50ZWwuY29tPj4NCj4gPiBTdWJqZWN0OiBGVzogRFBESyBsaW5rIHNwZWVkIHdp dGggSW50ZWwgZGV2aWNlcw0KPiA+IEltcG9ydGFuY2U6IEhpZ2gNCj4gPg0KPiA+IEhpIFdhdGVy bWFuLCBhbGwNCj4gPg0KPiA+IFNlZSBiZWxvdyAtIGFyZSB5b3UgYXdhcmU/IEFuZCBpZiBzbyB3 aGVyZSBhcmUgd2Ugd2l0aCB0ZXN0aW5nL3Jlc29sdXRpb24/DQo+ID4NCj4gPiBSZWdhcmRzDQo+ ID4gTWlrZQ0KPiA+DQo+ID4NCj4gPg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gRnJvbTogVGhvbWFzIE1vbmphbG9uDQo+ID4NCj4gW21haWx0bzp0aG9tYXMubW9uamFsb25A NndpbmQuY29tPG1haWx0bzp0aG9tYXMubW9uamFsb25ANndpbmQuY29tPl0NCj4gPiBTZW50OiBN b25kYXksIE1hcmNoIDIxLCAyMDE2IDI6MTkgUE0NCj4gPiBUbzogTydEcmlzY29sbCwgVGltDQo+ ID4gPHRpbS5vZHJpc2NvbGxAaW50ZWwuY29tPG1haWx0bzp0aW0ub2RyaXNjb2xsQGludGVsLmNv bT4+OyBHbHlubiwNCj4gPiBNaWNoYWVsIEoNCj4gPiA8bWljaGFlbC5qLmdseW5uQGludGVsLmNv bTxtYWlsdG86bWljaGFlbC5qLmdseW5uQGludGVsLmNvbT4+OyBaaHUsDQo+ID4gSGVxaW5nIDxo ZXFpbmcuemh1QGludGVsLmNvbTxtYWlsdG86aGVxaW5nLnpodUBpbnRlbC5jb20+Pg0KPiA+IENj OiB2aW5jZW50LmphcmRpbkA2d2luZC5jb208bWFpbHRvOnZpbmNlbnQuamFyZGluQDZ3aW5kLmNv bT4NCj4gPiBTdWJqZWN0OiBEUERLIGxpbmsgc3BlZWQgd2l0aCBJbnRlbCBkZXZpY2VzDQo+ID4N Cj4gPiBIaSwNCj4gPg0KPiA+IFdlIGFyZSBzdGlsbCB3YWl0aW5nIGZvciB0ZXN0IGZlZWRiYWNr cyBmb3IgdGhpcyBpbXBvcnRhbnQgcGF0Y2hzZXQ6DQo+ID4gICAgICAgICBldGhkZXY6IDEwMEcg YW5kIGxpbmsgc3BlZWQgQVBJIHJlZmFjdG9yaW5nIEl0IGlzIHBvc3NpYmxlIHRoYXQgaXQNCj4g YnJlYWtzIHRoZSBhdXRvbmVnb3RpYXRpb24gaW4gZTEwMDAvaXhnYmUvaTQwZS4NCj4gPg0KPiA+ IFRoYW5rcyBmb3IgdGFraW5nIGNhcmUuDQo+ID4NCj4gPg0KPiANCg0K