From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 6C1486942 for ; Fri, 17 Jul 2015 10:16:50 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP; 17 Jul 2015 01:16:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,494,1432623600"; d="scan'208,217";a="766207497" Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by orsmga002.jf.intel.com with ESMTP; 17 Jul 2015 01:16:47 -0700 Received: from kmsmsx154.gar.corp.intel.com ([169.254.12.160]) by KMSMSX152.gar.corp.intel.com ([169.254.11.67]) with mapi id 14.03.0224.002; Fri, 17 Jul 2015 16:16:28 +0800 From: "Choi, Sy Jong" To: =?utf-8?B?IlNjb3R0LkpodWFuZyAo6I6K5riF57+UKSA6IDYzMDki?= , "dev@dpdk.org" , =?utf-8?B?IlNhbmR5LkxpdSAo5YqJ6LuS6LuSKSA6IDY4MTci?= , =?utf-8?B?IkFsYW4gWXUgKOS/nuS6puWBiSkgOiA2NjMyIg==?= Thread-Topic: [dpdk-dev] How to get net_device and use struct ethtool_cmd at DPDK enverinment? Thread-Index: AQHQp1cQ9UcItmMt1Uay1Etrk44wmZ2usWaggADQcoCAAIZ+EIABIEOAgAH4K4CABnpLAIAMIsUAgACZ0DCAFZwEAIAAhpoAgAJ8L4CAAIf6EA== Date: Fri, 17 Jul 2015 08:16:27 +0000 Message-ID: <697F8B1B48670548A5BAB03E8283550F3545B545@KMSMSX154.gar.corp.intel.com> References: <557EAA67.6090702@cas-well.com> <697F8B1B48670548A5BAB03E8283550F354483D8@PGSMSX108.gar.corp.intel.com> <5580E567.3020204@cas-well.com> <697F8B1B48670548A5BAB03E8283550F35448689@PGSMSX108.gar.corp.intel.com> <55824809.9090804@cas-well.com> <697F8B1B48670548A5BAB03E8283550F35448F93@PGSMSX108.gar.corp.intel.com> <55895E0A.50107@cas-well.com> <55938C30.6040703@cas-well.com> <697F8B1B48670548A5BAB03E8283550F3544C9A4@PGSMSX108.gar.corp.intel.com> <55A62DCE.6090503@cas-well.com> <697F8B1B48670548A5BAB03E8283550F3545A94C@KMSMSX154.gar.corp.intel.com> <55A8B463.4050207@cas-well.com> In-Reply-To: <55A8B463.4050207@cas-well.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.30.20.206] MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] How to get net_device and use struct ethtool_cmd at DPDK enverinment? 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, 17 Jul 2015 08:16:52 -0000 SEkgU2NvdHQsDQoNCktOSSBhcHAgZWZmZWN0aXZlbHkgd2lsbCBiZWNvbWUgeW91ciBkYXRhcGF0 aCwgaXQgaXMgYSBzYW1wbGUgYXBwLCB5b3UgY2FuIG1vZGlmeSBpdC4NCkl0IHJlY2VpdmUgcGFj a2V0cyBmcm9tIFBNRCBhbmQgcGFzcyBhbGwgcGFja2V0cyB0byB0aGUga2VybmVsIHBhdGggZnJv bSB1c2Vyc3BhY2UuDQoNCllvdSBjYW4gcnVuIGwyZndkLCBvciBvdGhlciBhcHAsIHlvdSB3aWxs IG5lZWQgdG8gcnVuIGl0IG9uIG90aGVyIFBNRCBwb3J0cy4gTm90IG9uIHRoZSBzYW1lIHBvcnRz IG9uIEtOSS4NCk9yIHlvdSB3aWxsIG5lZWQgdG8gbW9kaWZ5IEtOSSBhcHAsIHRvIGRpc3RyaWJ1 dGUgcGFja2V0cyB0byBrZXJuZWwgcGF0aCBvciB5b3VyIG5ldyBkYXRhcGF0aC4gQmFzaWNhbGx5 IGl0IHdpbGwgYmUgbGlrZSBjb2RpbmcgIHRvIGNvbWJpbmUga25pIGFwcCBhbmQgbDJmd2QgYXBw Lg0KDQpSZWdhcmRzLA0KQ2hvaSwgU3kgSm9uZw0KUGxhdGZvcm0gQXBwbGljYXRpb24gRW5naW5l ZXINCg0KRnJvbTogIlNjb3R0LkpodWFuZyAo6I6K5riF57+UKSA6IDYzMDkiIFttYWlsdG86U2Nv dHQuSmh1YW5nQGNhcy13ZWxsLmNvbV0NClNlbnQ6IEZyaWRheSwgSnVseSAxNywgMjAxNSAzOjUz IFBNDQpUbzogQ2hvaSwgU3kgSm9uZzsgZGV2QGRwZGsub3JnOyAiU2FuZHkuTGl1ICjlionou5Lo u5IpIDogNjgxNyI7ICJBbGFuIFl1ICjkv57kuqblgYkpIDogNjYzMiINClN1YmplY3Q6IFJlOiBb ZHBkay1kZXZdIEhvdyB0byBnZXQgbmV0X2RldmljZSBhbmQgdXNlIHN0cnVjdCBldGh0b29sX2Nt ZCBhdCBEUERLIGVudmVyaW5tZW50Pw0KDQpIaSBTeSBKb25nLA0KDQpJZiBJIHVzaW5nIEtOSSBp biBEUERLLCBjYW4gSSB1c2UgYW5vdGhlciBhcHBsaWNhdGlvbnMgYXQgdGhlIHNhbWUgdGltZT8g KGUuZy4gTDIgZm9yd2FyZCwgTDMgZm9yd2FyZCkNCg0KQ2hvaSwgU3kgSm9uZyDmlrwgMjAxNeW5 tDA35pyIMTXml6UgMTg6MDEg5a+r6YGTOg0KSGkgU2NvdHQsDQoNCllvdSB3aWxsIG5lZWQgdG8g c3RhcnQgS05JIHNhbXBsZSBhcHAsIGl0IHdpbGwgY3JlYXRlIHRoZSB2RXRoIGludGVyZmFjZS4g QWZ0ZXIga25pIGFwcCwgaXQgd2lsbCBiZSB0aGVyZSwga25pIGFwcCBpcyB0aGUgZGF0YXBhdGgs IGl0IGdldCB0aGUgcGFja2V0IGludG8gdGhlIGtlcm5lbC4NCg0KaHR0cDovL2RwZGsub3JnL2Rv Yy9ndWlkZXMvcHJvZ19ndWlkZS9rZXJuZWxfbmljX2ludGVyZmFjZS5odG1sDQoNCg0KICAxLiAg SW5zZXJ0IHRoZSBLTkkga2VybmVsIG1vZHVsZToNCg0KICAxLiAgaW5zbW9kIC4vcnRlX2tuaS5r bw0KSWYgdXNpbmcgS05JIGluIG11bHRpLXRocmVhZCBtb2RlLCB1c2UgdGhlIGZvbGxvd2luZyBj b21tYW5kIGxpbmU6DQppbnNtb2QgLi9ydGVfa25pLmtvIGt0aHJlYWRfbW9kZT1tdWx0aXBsZQ0K DQogIDEuICBSdW5uaW5nIHRoZSBLTkkgc2FtcGxlIGFwcGxpY2F0aW9uOg0KDQogIDEuICAuL2tu aSAtYyAtMHhmMCAtbiA0IC0tIC1wIDB4MyAtUCAtY29uZmlnPSIoMCw0LDYpLCgxLDUsNykiDQpU aGlzIGNvbW1hbmQgcnVucyB0aGUga25pIHNhbXBsZSBhcHBsaWNhdGlvbiB3aXRoIHR3byBwaHlz aWNhbCBwb3J0cy4gRWFjaCBwb3J0IHBpbnMgdHdvIGZvcndhcmRpbmcgY29yZXMgKGluZ3Jlc3Mv ZWdyZXNzKSBpbiB1c2VyIHNwYWNlLg0KDQoNClJlZ2FyZHMsDQpDaG9pLCBTeSBKb25nDQpQbGF0 Zm9ybSBBcHBsaWNhdGlvbiBFbmdpbmVlcg0KDQpGcm9tOiAiU2NvdHQuSmh1YW5nICjojormuIUg 57+UKSA6IDYzMDkiIFttYWlsdG86U2NvdHQuSmh1YW5nQGNhcy13ZWxsLmNvbV0NClNlbnQ6IFdl ZG5lc2RheSwgSnVseSAxNSwgMjAxNSA1OjU0IFBNDQpUbzogQ2hvaSwgU3kgSm9uZzsgZGV2QGRw ZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+OyAiU2FuZHkuTGl1ICjlionou5Ig6LuSKSA6IDY4 MTciOyAiQWxhbiBZdSAo5L+e5LqmIOWBiSkgOiA2NjMyIg0KU3ViamVjdDogUmU6IFtkcGRrLWRl dl0gSG93IHRvIGdldCBuZXRfZGV2aWNlIGFuZCB1c2Ugc3RydWN0IGV0aHRvb2xfY21kIGF0IERQ REsgZW52ZXJpbm1lbnQ/DQoNCkhpIFN5IEpvbmcsDQoNCklmIEkgbG9hZCAicnRlX2tuaS5rbyIg ZHJpdmVyLCB0aGUgbmV0X2RldmljZSBzdHJ1Y3RzIHdpbGwgYmUgaW5pdGlhbGxlZCBieSBLTkks IHJpZ2h0Pw0KSWYgeWVzLCBob3cgY2FuIEkgaGFuZGxlIHRoZXNlIG5ldF9kZXZpY2Ugc3RydWN0 cyBpbiBvdGhlciBkcml2ZXIsDQpiZWNhdXNlIEkgdXNpbmcgImZvcl9lYWNoX25ldGRldigpIiBr ZXJuZWwgQVBJIGNhbid0IGZpbmQgdGhlIG5ldF9kZXZpY2Ugc3RydWN0cyB3aGljaCBLTkkgaW5p dGlhbGxlZC4NCk9yIHRoZXNlIHN0cnVjdHMgaGF2ZSBub3QgYmVlbiBleHBvcnRlZCB0byBrZXJu ZWw/DQoNCkNob2ksIFN5IEpvbmcg5pa8IDIwMTXlubQwN+aciDAx5pelIDE1OjU1IOWvq+mBkzoN CkhpIFNjb3R0LA0KDQpQbGVhc2UgcmVmZXIgdG8gb3VyIEtOSSBsaWJyYXJ5IGF0Oi0NCmRwZGst MS44LjBcbGliXGxpYnJ0ZV9lYWxcbGludXhhcHBca25pXGV0aHRvb2xcaWdiXGlnYi5oDQoNClJl Z2FyZHMsDQpDaG9pLCBTeSBKb25nDQpQbGF0Zm9ybSBBcHBsaWNhdGlvbiBFbmdpbmVlcg0KDQpG cm9tOiAiU2NvdHQuSmh1YW5nICjojormuIUg57+UKSA6IDYzMDkiIFttYWlsdG86U2NvdHQuSmh1 YW5nQGNhcy13ZWxsLmNvbV0NClNlbnQ6IFdlZG5lc2RheSwgSnVseSAwMSwgMjAxNSAyOjQ0IFBN DQpUbzogQ2hvaSwgU3kgSm9uZzsgZGV2QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+DQpT dWJqZWN0OiBSZTogW2RwZGstZGV2XSBIb3cgdG8gZ2V0IG5ldF9kZXZpY2UgYW5kIHVzZSBzdHJ1 Y3QgZXRodG9vbF9jbWQgYXQgRFBESyBlbnZlcmlubWVudD8NCg0KSGkgU3kgSm9uZywNCg0KSGF2 ZSBhbnkgaWRlYT8NCg0KIlNjb3R0LkpodWFuZyAo6I6KIOa4hee/lCkgOiA2MzA5IiDmlrwgMjAx NeW5tDA25pyIMjPml6UgMjE6MjQg5a+r6YGTOg0KRGVhciBTeSBKb25nLA0KDQpZZXMsIEkgaGF2 ZSBjaGVjayBvdXQgRFBESyBLTkksIGJ1dCBJIHN0aWxsIGNhbid0IGZpbmQgaG93IHRvIHByZXBh cmUgbmV0X2RldmljZSBzdHJ1Y3R1cmUuLi4NCkFuZCBJIGFsc28gZG9lc24ndCBmaW5kIGhvdyB0 byBnZXQgImV0aHRvb2xfY21kLnBoeV9hZGRyZXNzIg0KQ291bGQgeW91IGxldCBtZSBrbm93IHRo ZSBwYXRoIG9mIHNvdXJjZSBjb2RlIGZvbGRlcg0KDQpDaG9pLCBTeSBKb25nIOaWvCAyMDE15bm0 MDbmnIgxOeaXpSAxMDozNSDlr6vpgZM6DQpIaSBTY290dCwNCg0KRFBESyBQTUQgYXJlIGludGVy ZmFjaW5nIHVzaW5nIHJ0ZV9ldGhkZXYuYyB3aGljaCBsaW5rIHRvIGl4Z2JlX2V0aGRldi5jIHRo ZXJl4oCZcyBubyDigJxuZXRfZGV2aWNl4oCdIGluIG91ciBjb2RlLg0KDQpCdXQgaWYgeW91IHNl YXJjaCBEUERrIGNvZGUgYmFzZWQsIHdlIGhhdmUgS05JIGV4YW1wbGUgdG8gdGVhY2ggeW91IGhv dyB0byBwcmVwYXJlIHRoZSBuZXRfZGV2aWNlIHN0cnVjdHVyZS4NCkhhdmUgeW91IGNoZWNrIG91 dCBvdXIgRFBESyBLTkkgY29kZXM/DQoNClJlZ2FyZHMsDQpDaG9pLCBTeSBKb25nDQpQbGF0Zm9y bSBBcHBsaWNhdGlvbiBFbmdpbmVlcg0KDQpGcm9tOiAiU2NvdHQuSmh1YW5nICjojoog5riFIOe/ lCkgOiA2MzA5IiBbbWFpbHRvOlNjb3R0LkpodWFuZ0BjYXMtd2VsbC5jb21dDQpTZW50OiBUaHVy c2RheSwgSnVuZSAxOCwgMjAxNSAxMjoyNSBQTQ0KVG86IENob2ksIFN5IEpvbmc7IGRldkBkcGRr Lm9yZzxtYWlsdG86ZGV2QGRwZGsub3JnPg0KU3ViamVjdDogUmU6IFtkcGRrLWRldl0gSG93IHRv IGdldCBuZXRfZGV2aWNlIGFuZCB1c2Ugc3RydWN0IGV0aHRvb2xfY21kIGF0IERQREsgZW52ZXJp bm1lbnQ/DQoNCkRlYXIgU3kgSm9uZywNCg0KSSdtIHBsYW5uaW5nIHRvIHByb2dyYW0gYSBkcml2 ZXIgdG8gZ2V0IGFsbCB0aGUgZXRocG9ydCdzIG5ldF9kZXZpY2Ugc3RydWN0dXJlLCBiZWNhdXNl IEkgbmVlZCBzb21lIGluZm9ybWF0aW9uIGZyb20gdGhlc2UgbmV0X2RldmljZSBzdHJ1Y3R1cmVz Lg0KQW5kIEkgYWxzbyBuZWVkIHRvIHVzZSBuZXRfZGV2aWNlIHN0cnVjdCdzIGV0aHRvb2xfY21k IHRvIGdldCBzb21lIGluZm9ybWF0aW9uIGUuZy4gZXRodG9vbF9jbWQucGh5X2FkZHJlc3MsIG5l dF9kZXZpY2UtPmV0aHRvb2xfb3BzLT5nZXRfc2V0dGluZ3MuDQoNCkluIGZhY3QsIEkgbmVlZCBz b21lIGluZm9ybWF0aW9uIGZyb20gbmV0X2RldmljZSBzdHJ1Y3QgdG8gYWNjZXNzIGFuZCBjb250 cm9sIFBIWSdzIGxpbmstdXAvZG93biwNCmFuZCBJIHJlZmVyZW5jZSBpZ2IgZHJpdmVyIHRvIGRl c2lnbiB0aGUgbGluay11cC9kb3duIGZ1bmN0aW9ucywgc2luY2UgaW4gRFBESyBlbnZpcmVubWVu dCBkb2Vzbid0IGhhdmUgaWdiIGRyaXZlciwNCnNvIEluIERQREsgZW52aXJlbm1lbnQsIEkgZG9u J3Qga25vdyBob3cgdG8gZ2V0IG5ldHdvcmsgZGVpdmNlJ3MgbmV0X2RldmljZSBzdHJ1Y3RzIGFu ZCBtb3JlIGluZm9ybWF0aW9uIHdoaWNoIGluaXRpYWwgYnkgaWdiIGRyaXZlcihiZWNhdXNlIGRv ZXNuJ3QgaGF2ZSBpZ2IgZHJpdmVyKS4NCg0KQ2hvaSwgU3kgSm9uZyDmlrwgMjAxNeW5tDA25pyI MTfml6UgMTE6MTUg5a+r6YGTOg0KSGkgU2NvdHQsDQoNCllvdSBhcmUgcmlnaHQsIHRoZSBLTkkg d2lsbCBiZSBhIGdvb2QgcmVmZXJlbmNlIGZvciB5b3UuIEl0IGRlbW9uc3RyYXRlIGhvdyBEUERL IFBNRCBpbnRlcmZhY2Ugd2l0aCBrZXJuZWwuDQpNYXkgSSBrbm93IGFyZSB5b3UgcGxhbm5pbmcg dG8gYnVpbGQgdGhlIGludGVyZmFjZSB0byBldGh0b29sPyBZb3UgY2FuIHRyeSBydW5uaW5nIEtO SSBhcHAuDQoNClJlZ2FyZHMsDQpDaG9pLCBTeSBKb25nDQpQbGF0Zm9ybSBBcHBsaWNhdGlvbiBF bmdpbmVlcg0KDQpGcm9tOiAiU2NvdHQuSmh1YW5nICjojormuIUg57+UKSA6IDYzMDkiIFttYWls dG86U2NvdHQuSmh1YW5nQGNhcy13ZWxsLmNvbV0NClNlbnQ6IFdlZG5lc2RheSwgSnVuZSAxNywg MjAxNSAxMToxMiBBTQ0KVG86IENob2ksIFN5IEpvbmc7IGRldkBkcGRrLm9yZzxtYWlsdG86ZGV2 QGRwZGsub3JnPg0KU3ViamVjdDogUmU6IFtkcGRrLWRldl0gSG93IHRvIGdldCBuZXRfZGV2aWNl IGFuZCB1c2Ugc3RydWN0IGV0aHRvb2xfY21kIGF0IERQREsgZW52ZXJpbm1lbnQ/DQoNCkhpIFN5 IEpvbmcsDQoNCkJ1dC4uLkkgYW0gcHJvZ3JhbW1pbmcgYSBkcml2ZXIgbm93LCBoYXZlIGFueSBz YW1wbGUgZHJpdmVyIEkgY2FuIHJlZmVyZW5jZT8NCg0KQ2hvaSwgU3kgSm9uZyDmlrwgMjAxNeW5 tDA25pyIMTbml6UgMTQ6NDgg5a+r6YGTOg0KDQpIaSBTY290dCwNCg0KDQoNCllvdSBjYW4gcmV2 aWV3IERQREsgS05JIHNhbXBsZSBhcHAsIHRoZXJlJ3MgZXRodG9vbCBzdXBwb3J0IHVzaW5nIGEg dkV0aCBkZXZpY2UgaW50ZXJmYWNpbmcgdG8gRFBESyBQTUQuDQoNCg0KDQpQdXJlIERQREsgUE1E IHJlcXVpcmUgcHJvZ3JhbW1pbmcgdG8gZGlzcGxheSB0aGUgaW5mb3JtYXRpb24gaW4gZXRodG9v bC4gVGhlIGludGVyZmFjaW5nIGlzIGRlbW9uc3RyYXRlIG9uIEtOSSBzYW1wbGUgYXBwLg0KDQoN Cg0KUmVnYXJkcywNCg0KQ2hvaSwgU3kgSm9uZw0KDQpQbGF0Zm9ybSBBcHBsaWNhdGlvbiBFbmdp bmVlcg0KDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCg0KRnJvbTogZGV2IFttYWls dG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiAiU2NvdHQuSmh1YW5nICg/Pz8p IDogNjMwOSINCg0KU2VudDogTW9uZGF5LCBKdW5lIDE1LCAyMDE1IDY6MzUgUE0NCg0KVG86IGRl dkBkcGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsub3JnPg0KDQpTdWJqZWN0OiBbZHBkay1kZXZdIEhv dyB0byBnZXQgbmV0X2RldmljZSBhbmQgdXNlIHN0cnVjdCBldGh0b29sX2NtZCBhdCBEUERLIGVu dmVyaW5tZW50Pw0KDQoNCg0KSGksDQoNCg0KDQpJIHdhbnQgdG8gZ2V0IGV0aGVycG9ydCdzIG5l dF9kZXZpY2Ugc3RydWN0cyBhbmQgdXNpbmcgZXRodG9vbF9jbWQgdG8gZ2V0IHNvbWUgaW5mb3Jt YXRpb24gb2YgZXRoZXJwb3J0cy4NCg0KQXJlIHRoZXNlIGNhcGFiaWxpdHlzIGlnYl91aW8gZHJp dmVyIGFsc28gcHJvdmlkZWQ/DQoNCg0KDQpJZiBub3QsIGhvdyBjYW4gSSBnZXQgbmV0X2Rldmlj ZXMgYW5kIHVzZSBldGh0b29sX2NtZCBjYXBhYmlsaXR5cz8NCg0KDQoNCi0tDQoNCg0KDQpCZXN0 IFJlZ2FyZHMsDQoNClNjb3R0IEpodWFuZw0KDQoNCg0KU29mdHdhcmUgRW5naW5lZXJpbmcgRGVw dC4NCg0KU29mdHdhcmUgRW5naW5lZXINCg0KQ0FTd2VsbA0KDQoyMzgg5paw5YyX5biC5qi55p6X 5Y2A5Y2a5oSb6KGXMjQy6JmfOOaokw0KDQo4RiwgTm8uMjQyLCBCby1BaSBTdC4sIFNodS1MaW4g RGlzdCwgTmV3IFRhaXBlaSBDaXR5IDIzOCwgVGFpd2FuDQoNClRlbO+8mis4ODYtMi03NzA1LTg4 ODggIyA2MzA5DQoNCkZheO+8mis4ODYtMi03NzMxLTk5ODgNCg0KRS1tYWls77yac2NvdHQuamh1 YW5nQGNhcy13ZWxsLmNvbTxtYWlsdG86c2NvdHQuamh1YW5nQGNhcy13ZWxsLmNvbT48bWFpbHRv OnNjb3R0LmpodWFuZ0BjYXMtd2VsbC5jb20+PG1haWx0bzpzY290dC5qaHVhbmdAY2FzLXdlbGwu Y29tPg0KDQpDQVNXRUxMIEluYy4g55Ge56W66Zu76YCaIGh0dHA6Ly93d3cuY2FzLXdlbGwuY29t DQoNCg0KDQoNCg0K5pys5L+h5Lu25Y+v6IO95YyF5ZCr55Ge56W66Zu76YCa5qmf5a+G6LOH6KiK 77yM6Z2e5oyH5a6a5LmL5pS25Lu26ICF77yM6KuL5Yu/5L2/55So5oiW5o+t6Zyy5pys5L+h5Lu2 5YWn5a6577yM5Lim6KuL6Yq35q+A5q2k5L+h5Lu244CCIFRoaXMgZW1haWwgbWF5IGNvbnRhaW4g Y29uZmlkZW50aWFsIGluZm9ybWF0aW9uLiBQbGVhc2UgZG8gbm90IHVzZSBvciBkaXNjbG9zZSBp dCBpbiBhbnkgd2F5IGFuZCBkZWxldGUgaXQgaWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJl Y2lwaWVudC4NCg0KLS0NCg0KQmVzdCBSZWdhcmRzLA0KDQpTY290dCBKaHVhbmcNCg0KDQoNClNv ZnR3YXJlIEVuZ2luZWVyaW5nIERlcHQuDQoNClNvZnR3YXJlIEVuZ2luZWVyDQoNCkNBU3dlbGwN Cg0KMjM4IOaWsOWMl+W4guaoueael+WNgOWNmuaEm+ihlzI0MuiZnzjmqJMNCg0KOEYsIE5vLjI0 MiwgQm8tQWkgU3QuLCBTaHUtTGluIERpc3QsIE5ldyBUYWlwZWkgQ2l0eSAyMzgsIFRhaXdhbg0K DQpUZWzvvJorODg2LTItNzcwNS04ODg4ICMgNjMwOQ0KDQpGYXjvvJorODg2LTItNzczMS05OTg4 DQoNCkUtbWFpbO+8mnNjb3R0LmpodWFuZ0BjYXMtd2VsbC5jb208bWFpbHRvOnNjb3R0LmpodWFu Z0BjYXMtd2VsbC5jb20+DQoNCkNBU1dFTEwgSW5jLiDnkZ7npbrpm7vpgJogaHR0cDovL3d3dy5j YXMtd2VsbC5jb20NCuacrOS/oeS7tuWPr+iDveWMheWQq+eRnueluumbu+mAmuapn+Wvhuizh+io iu+8jOmdnuaMh+WumuS5i+aUtuS7tuiAhe+8jOiri+WLv+S9v+eUqOaIluaPremcsuacrOS/oeS7 tuWFp+Wuue+8jOS4puiriyDpirfmr4Ag5q2k5L+hIOS7tuOAgiBUaGlzIGVtYWlsIG1heSBjb250 YWluIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbi4gUGxlYXNlIGRvIG5vdCB1c2Ugb3IgZGlzY2xv c2UgaXQgaW4gYW55IHdheSBhbmQgZGVsZXRlIGl0IGlmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRl ZCByZWNpcGllbnQuDQoNCi0tDQoNCkJlc3QgUmVnYXJkcywNCg0KU2NvdHQgSmh1YW5nDQoNCg0K DQpTb2Z0d2FyZSBFbmdpbmVlcmluZyBEZXB0Lg0KDQpTb2Z0d2FyZSBFbmdpbmVlcg0KDQpDQVN3 ZWxsDQoNCjIzOCDmlrDljJfluILmqLnmnpfljYDljZrmhJvooZcyNDLomZ845qiTDQoNCjhGLCBO by4yNDIsIEJvLUFpIFN0LiwgU2h1LUxpbiBEaXN0LCBOZXcgVGFpcGVpIENpdHkgMjM4LCBUYWl3 YW4NCg0KVGVs77yaKzg4Ni0yLTc3MDUtODg4OCAjIDYzMDkNCg0KRmF477yaKzg4Ni0yLTc3MzEt OTk4OA0KDQpFLW1haWzvvJpzY290dC5qaHVhbmdAY2FzLXdlbGwuY29tPG1haWx0bzpzY290dC5q aHVhbmdAY2FzLXdlbGwuY29tPg0KDQpDQVNXRUxMIEluYy4g55Ge56W66Zu76YCaIGh0dHA6Ly93 d3cuY2FzLXdlbGwuY29tDQrmnKzkv6Hku7blj6/og73ljIXlkKvnkZ7npbrpm7vpgJrmqZ/lr4bo s4foqIrvvIzpnZ7mjIflrprkuYvmlLbku7bogIXvvIzoq4vli7/kvb/nlKjmiJbmj63pnLLmnKzk v6Hku7blhaflrrnvvIzkuKboq4vpirfmr4Ag5q2k5L+hIOS7tuOAgiBUaGlzIGVtYWlsIG1heSBj b250YWluIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbi4gUGxlYXNlIGRvIG5vdCB1c2Ugb3IgZGlz Y2xvc2UgaXQgaW4gYW55IHdheSBhbmQgZGVsZXRlIGl0IGlmIHlvdSBhcmUgbm90IHRoZSBpbnRl bmRlZCByZWNpcGllbnQuDQoNCi0tDQoNCkJlc3QgUmVnYXJkcywNCg0KU2NvdHQgSmh1YW5nDQoN Cg0KDQpTb2Z0d2FyZSBFbmdpbmVlcmluZyBEZXB0Lg0KDQpTb2Z0d2FyZSBFbmdpbmVlcg0KDQpD QVN3ZWxsDQoNCjIzOCDmlrDljJfluILmqLnmnpfljYDljZrmhJvooZcyNDLomZ845qiTDQoNCjhG LCBOby4yNDIsIEJvLUFpIFN0LiwgU2h1LUxpbiBEaXN0LCBOZXcgVGFpcGVpIENpdHkgMjM4LCBU YWl3YW4NCg0KVGVs77yaKzg4Ni0yLTc3MDUtODg4OCAjIDYzMDkNCg0KRmF477yaKzg4Ni0yLTc3 MzEtOTk4OA0KDQpFLW1haWzvvJpzY290dC5qaHVhbmdAY2FzLXdlbGwuY29tPG1haWx0bzpzY290 dC5qaHVhbmdAY2FzLXdlbGwuY29tPg0KDQpDQVNXRUxMIEluYy4g55Ge56W66Zu76YCaIGh0dHA6 Ly93d3cuY2FzLXdlbGwuY29tDQoNCi0tDQoNCkJlc3QgUmVnYXJkcywNCg0KU2NvdHQgSmh1YW5n DQoNCg0KDQpTb2Z0d2FyZSBFbmdpbmVlcmluZyBEZXB0Lg0KDQpTb2Z0d2FyZSBFbmdpbmVlcg0K DQpDQVN3ZWxsDQoNCjIzOCDmlrDljJfluILmqLnmnpfljYDljZrmhJvooZcyNDLomZ845qiTDQoN CjhGLCBOby4yNDIsIEJvLUFpIFN0LiwgU2h1LUxpbiBEaXN0LCBOZXcgVGFpcGVpIENpdHkgMjM4 LCBUYWl3YW4NCg0KVGVs77yaKzg4Ni0yLTc3MDUtODg4OCAjIDYzMDkNCg0KRmF477yaKzg4Ni0y LTc3MzEtOTk4OA0KDQpFLW1haWzvvJpzY290dC5qaHVhbmdAY2FzLXdlbGwuY29tPG1haWx0bzpz Y290dC5qaHVhbmdAY2FzLXdlbGwuY29tPg0KDQpDQVNXRUxMIEluYy4g55Ge56W66Zu76YCaIGh0 dHA6Ly93d3cuY2FzLXdlbGwuY29tDQrmnKzkv6Hku7blj6/og73ljIXlkKvnkZ7npbrpm7vpgJrm qZ/lr4bos4foqIrvvIzpnZ7mjIflrprkuYvmlLbku7bogIXvvIzoq4vli7/kvb/nlKjmiJbmj63p nLLmnKzkv6Hku7blhaflrrnvvIzkuKboq4vpirfmr4DmraTkv6Hku7bjgIIgVGhpcyBlbWFpbCBt YXkgY29udGFpbiBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24uIFBsZWFzZSBkbyBub3QgdXNlIG9y IGRpc2Nsb3NlIGl0IGluIGFueSB3YXkgYW5kIGRlbGV0ZSBpdCBpZiB5b3UgYXJlIG5vdCB0aGUg aW50ZW5kZWQgcmVjaXBpZW50Lg0KDQotLQ0KDQpCZXN0IFJlZ2FyZHMsDQoNClNjb3R0IEpodWFu Zw0KDQoNCg0KU29mdHdhcmUgRW5naW5lZXJpbmcgRGVwdC4NCg0KU29mdHdhcmUgRW5naW5lZXIN Cg0KQ0FTd2VsbA0KDQoyMzgg5paw5YyX5biC5qi55p6X5Y2A5Y2a5oSb6KGXMjQy6JmfOOaokw0K DQo4RiwgTm8uMjQyLCBCby1BaSBTdC4sIFNodS1MaW4gRGlzdCwgTmV3IFRhaXBlaSBDaXR5IDIz OCwgVGFpd2FuDQoNClRlbO+8mis4ODYtMi03NzA1LTg4ODggIyA2MzA5DQoNCkZheO+8mis4ODYt Mi03NzMxLTk5ODgNCg0KRS1tYWls77yac2NvdHQuamh1YW5nQGNhcy13ZWxsLmNvbTxtYWlsdG86 c2NvdHQuamh1YW5nQGNhcy13ZWxsLmNvbT4NCg0KQ0FTV0VMTCBJbmMuIOeRnueluumbu+mAmiBo dHRwOi8vd3d3LmNhcy13ZWxsLmNvbQ0K5pys5L+h5Lu25Y+v6IO95YyF5ZCr55Ge56W66Zu76YCa 5qmf5a+G6LOH6KiK77yM6Z2e5oyH5a6a5LmL5pS25Lu26ICF77yM6KuL5Yu/5L2/55So5oiW5o+t 6Zyy5pys5L+h5Lu25YWn5a6577yM5Lim6KuL6Yq35q+A5q2k5L+h5Lu244CCIFRoaXMgZW1haWwg bWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIGluZm9ybWF0aW9uLiBQbGVhc2UgZG8gbm90IHVzZSBv ciBkaXNjbG9zZSBpdCBpbiBhbnkgd2F5IGFuZCBkZWxldGUgaXQgaWYgeW91IGFyZSBub3QgdGhl IGludGVuZGVkIHJlY2lwaWVudC4NCg0KLS0NCg0KQmVzdCBSZWdhcmRzLA0KDQpTY290dCBKaHVh bmcNCg0KDQoNClNvZnR3YXJlIEVuZ2luZWVyaW5nIERlcHQuDQoNClNvZnR3YXJlIEVuZ2luZWVy DQoNCkNBU3dlbGwNCg0KMjM4IOaWsOWMl+W4guaoueael+WNgOWNmuaEm+ihlzI0MuiZnzjmqJMN Cg0KOEYsIE5vLjI0MiwgQm8tQWkgU3QuLCBTaHUtTGluIERpc3QsIE5ldyBUYWlwZWkgQ2l0eSAy MzgsIFRhaXdhbg0KDQpUZWzvvJorODg2LTItNzcwNS04ODg4ICMgNjMwOQ0KDQpGYXjvvJorODg2 LTItNzczMS05OTg4DQoNCkUtbWFpbO+8mnNjb3R0LmpodWFuZ0BjYXMtd2VsbC5jb208bWFpbHRv OnNjb3R0LmpodWFuZ0BjYXMtd2VsbC5jb20+DQoNCkNBU1dFTEwgSW5jLiDnkZ7npbrpm7vpgJog aHR0cDovL3d3dy5jYXMtd2VsbC5jb20NCuacrOS/oeS7tuWPr+iDveWMheWQq+eRnueluumbu+mA muapn+Wvhuizh+ioiu+8jOmdnuaMh+WumuS5i+aUtuS7tuiAhe+8jOiri+WLv+S9v+eUqOaIluaP remcsuacrOS/oeS7tuWFp+Wuue+8jOS4puiri+mKt+avgOatpOS/oeS7tuOAgiBUaGlzIGVtYWls IG1heSBjb250YWluIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbi4gUGxlYXNlIGRvIG5vdCB1c2Ug b3IgZGlzY2xvc2UgaXQgaW4gYW55IHdheSBhbmQgZGVsZXRlIGl0IGlmIHlvdSBhcmUgbm90IHRo ZSBpbnRlbmRlZCByZWNpcGllbnQuDQo=