From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 468955945 for ; Wed, 7 Jan 2015 03:29:35 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP; 06 Jan 2015 18:24:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,711,1413270000"; d="scan'208";a="633521323" Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by orsmga001.jf.intel.com with ESMTP; 06 Jan 2015 18:29:32 -0800 Received: from kmsmsx154.gar.corp.intel.com (172.21.73.14) by KMSMSX152.gar.corp.intel.com (172.21.73.87) with Microsoft SMTP Server (TLS) id 14.3.195.1; Wed, 7 Jan 2015 10:28:52 +0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by KMSMSX154.gar.corp.intel.com (172.21.73.14) with Microsoft SMTP Server (TLS) id 14.3.195.1; Wed, 7 Jan 2015 10:28:51 +0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.216]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.182]) with mapi id 14.03.0195.001; Wed, 7 Jan 2015 10:28:51 +0800 From: "Ouyang, Changchun" To: Vlad Zolotarov , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v4 4/6] ether: Check VMDq RSS mode Thread-Index: AQHQJ+7Af2HXAdw//UuhL/WSKplfqpyvH4kAgACIdUD//4hzAIABhEVggAAU1oCAAY3qoIAAqC6AgADusqA= Date: Wed, 7 Jan 2015 02:28:50 +0000 Message-ID: References: <1419398584-19520-1-git-send-email-changchun.ouyang@intel.com> <1420355937-18484-1-git-send-email-changchun.ouyang@intel.com> <1420355937-18484-5-git-send-email-changchun.ouyang@intel.com> <54A8FD9A.8040701@cloudius-systems.com> <54A90BC8.8020307@cloudius-systems.com> <54AA62F7.6080108@cloudius-systems.com> <54AC3DD7.60604@cloudius-systems.com> In-Reply-To: <54AC3DD7.60604@cloudius-systems.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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 v4 4/6] ether: Check VMDq RSS mode 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: Wed, 07 Jan 2015 02:29:36 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVmxhZCBab2xvdGFyb3Yg W21haWx0bzp2bGFkekBjbG91ZGl1cy1zeXN0ZW1zLmNvbV0NCj4gU2VudDogV2VkbmVzZGF5LCBK YW51YXJ5IDcsIDIwMTUgMzo1NiBBTQ0KPiBUbzogT3V5YW5nLCBDaGFuZ2NodW47IGRldkBkcGRr Lm9yZw0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjQgNC82XSBldGhlcjogQ2hl Y2sgVk1EcSBSU1MgbW9kZQ0KPiANCj4gDQo+IE9uIDAxLzA2LzE1IDAzOjU2LCBPdXlhbmcsIENo YW5nY2h1biB3cm90ZToNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogVmxhZCBab2xvdGFyb3YgW21haWx0bzp2bGFkekBjbG91ZGl1cy1zeXN0ZW1zLmNvbV0NCj4g Pj4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDUsIDIwMTUgNjoxMCBQTQ0KPiA+PiBUbzogT3V5YW5n LCBDaGFuZ2NodW47ZGV2QGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQ QVRDSCB2NCA0LzZdIGV0aGVyOiBDaGVjayBWTURxIFJTUyBtb2RlDQo+ID4+DQo+ID4+DQo+ID4+ IE9uIDAxLzA1LzE1IDAzOjAwLCBPdXlhbmcsIENoYW5nY2h1biB3cm90ZToNCj4gPj4+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IFZsYWQgWm9sb3Rhcm92IFttYWls dG86dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb21dDQo+ID4+Pj4gU2VudDogU3VuZGF5LCBKYW51 YXJ5IDQsIDIwMTUgNTo0NiBQTQ0KPiA+Pj4+IFRvOiBPdXlhbmcsIENoYW5nY2h1bjtkZXZAZHBk ay5vcmcNCj4gPj4+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjQgNC82XSBldGhl cjogQ2hlY2sgVk1EcSBSU1MgbW9kZQ0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBPbiAwMS8wNC8x NSAxMDo1OCwgT3V5YW5nLCBDaGFuZ2NodW4gd3JvdGU6DQo+ID4+Pj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJvbTogVmxhZCBab2xvdGFyb3YgW21haWx0bzp2bGFk ekBjbG91ZGl1cy1zeXN0ZW1zLmNvbV0NCj4gPj4+Pj4+IFNlbnQ6IFN1bmRheSwgSmFudWFyeSA0 LCAyMDE1IDQ6NDUgUE0NCj4gPj4+Pj4+IFRvOiBPdXlhbmcsIENoYW5nY2h1bjtkZXZAZHBkay5v cmcNCj4gPj4+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2NCA0LzZdIGV0aGVy OiBDaGVjayBWTURxIFJTUw0KPiBtb2RlDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IE9u IDAxLzA0LzE1IDA5OjE4LCBPdXlhbmcgQ2hhbmdjaHVuIHdyb3RlOg0KPiA+Pj4+Pj4+IENoZWNr IG1xIG1vZGUgZm9yIFZNRHEgUlNTLCBoYW5kbGUgaXQgY29ycmVjdGx5IGluc3RlYWQgb2YNCj4g Pj4+Pj4+PiByZXR1cm5pbmcgYW4gZXJyb3I7IEFsc28gcmVtb3ZlIHRoZSBsaW1pdGF0aW9uIG9m IHBlciBwb29sIHF1ZXVlDQo+ID4+Pj4+Pj4gbnVtYmVyIGhhcyBtYXggdmFsdWUgb2YgMSwgYmVj YXVzZSB0aGUgcGVyIHBvb2wgcXVldWUgbnVtYmVyDQo+ID4+IGNvdWxkDQo+ID4+Pj4+Pj4gYmUg MiBvciA0IGlmIGl0IGlzIFZNRHEgUlNTIG1vZGU7DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBUaGUg bnVtYmVyIG9mIHJ4cSBzcGVjaWZpZWQgaW4gY29uZmlnIHdpbGwgZGV0ZXJtaW5lIHRoZSBtcSBt b2RlDQo+ID4+Pj4+Pj4gZm9yDQo+ID4+Pj4+PiBWTURxIFJTUy4NCj4gPj4+Pj4+PiBTaWduZWQt b2ZmLWJ5OiBDaGFuZ2NodW4gT3V5YW5nPGNoYW5nY2h1bi5vdXlhbmdAaW50ZWwuY29tPg0KPiA+ Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+ICAgICAgbGliL2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2LmMg fCAzOQ0KPiA+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQo+ ID4+Pj4+Pj4gICAgICAxIGZpbGUgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGVy L3J0ZV9ldGhkZXYuYw0KPiA+Pj4+Pj4+IGIvbGliL2xpYnJ0ZV9ldGhlci9ydGVfZXRoZGV2LmMg aW5kZXggOTVmMmNlYi4uNTlmZjMyNSAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS9saWIvbGlicnRl X2V0aGVyL3J0ZV9ldGhkZXYuYw0KPiA+Pj4+Pj4+ICsrKyBiL2xpYi9saWJydGVfZXRoZXIvcnRl X2V0aGRldi5jDQo+ID4+Pj4+Pj4gQEAgLTUxMCw4ICs1MTAsNyBAQCBydGVfZXRoX2Rldl9jaGVj a19tcV9tb2RlKHVpbnQ4X3QNCj4gPj4gcG9ydF9pZCwNCj4gPj4+Pj4+PiB1aW50MTZfdCBuYl9y eF9xLCB1aW50MTZfdCBuYl90eF9xLA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICAgICAJaWYgKFJU RV9FVEhfREVWX1NSSU9WKGRldikuYWN0aXZlICE9IDApIHsNCj4gPj4+Pj4+PiAgICAgIAkJLyog Y2hlY2sgbXVsdGktcXVldWUgbW9kZSAqLw0KPiA+Pj4+Pj4+IC0JCWlmICgoZGV2X2NvbmYtPnJ4 bW9kZS5tcV9tb2RlID09DQo+ID4+IEVUSF9NUV9SWF9SU1MpIHx8DQo+ID4+Pj4+Pj4gLQkJICAg IChkZXZfY29uZi0+cnhtb2RlLm1xX21vZGUgPT0NCj4gPj4gRVRIX01RX1JYX0RDQikgfHwNCj4g Pj4+Pj4+PiArCQlpZiAoKGRldl9jb25mLT5yeG1vZGUubXFfbW9kZSA9PQ0KPiA+PiBFVEhfTVFf UlhfRENCKSB8fA0KPiA+Pj4+Pj4+ICAgICAgCQkgICAgKGRldl9jb25mLT5yeG1vZGUubXFfbW9k ZSA9PQ0KPiA+PiBFVEhfTVFfUlhfRENCX1JTUykNCj4gPj4+Pj4+IHx8DQo+ID4+Pj4+Pj4gICAg ICAJCSAgICAoZGV2X2NvbmYtPnR4bW9kZS5tcV9tb2RlID09DQo+ID4+IEVUSF9NUV9UWF9EQ0Ip KSB7DQo+ID4+Pj4+Pj4gICAgICAJCQkvKiBTUklPViBvbmx5IHdvcmtzIGluIFZNRHEgZW5hYmxl IG1vZGUNCj4gPj4gKi8gQEAgLQ0KPiA+Pj4+Pj4gNTI1LDcgKzUyNCw2IEBADQo+ID4+Pj4+Pj4g cnRlX2V0aF9kZXZfY2hlY2tfbXFfbW9kZSh1aW50OF90IHBvcnRfaWQsIHVpbnQxNl90IG5iX3J4 X3EsDQo+ID4+Pj4+PiB1aW50MTZfdCBuYl90eF9xLA0KPiA+Pj4+Pj4+ICAgICAgCQl9DQo+ID4+ Pj4+Pj4NCj4gPj4+Pj4+PiAgICAgIAkJc3dpdGNoIChkZXZfY29uZi0+cnhtb2RlLm1xX21vZGUp IHsNCj4gPj4+Pj4+PiAtCQljYXNlIEVUSF9NUV9SWF9WTURRX1JTUzoNCj4gPj4+Pj4+PiAgICAg IAkJY2FzZSBFVEhfTVFfUlhfVk1EUV9EQ0I6DQo+ID4+Pj4+Pj4gICAgICAJCWNhc2UgRVRIX01R X1JYX1ZNRFFfRENCX1JTUzoNCj4gPj4+Pj4+PiAgICAgIAkJCS8qIERDQi9SU1MgVk1EUSBpbiBT UklPViBtb2RlLCBub3QNCj4gPj4gaW1wbGVtZW50DQo+ID4+Pj4+PiB5ZXQgKi8gQEAgLTUzNCw2 DQo+ID4+Pj4+Pj4gKzUzMiwzOSBAQCBydGVfZXRoX2Rldl9jaGVja19tcV9tb2RlKHVpbnQ4X3Qg cG9ydF9pZCwNCj4gdWludDE2X3QNCj4gPj4+Pj4+IG5iX3J4X3EsIHVpbnQxNl90IG5iX3R4X3Es DQo+ID4+Pj4+Pj4gICAgICAJCQkJCSJ1bnN1cHBvcnRlZCBWTURRDQo+ID4+IG1xX21vZGUNCj4g Pj4+Pj4+IHJ4ICV1XG4iLA0KPiA+Pj4+Pj4+ICAgICAgCQkJCQlwb3J0X2lkLCBkZXZfY29uZi0N Cj4gPj4+Pj4+PiByeG1vZGUubXFfbW9kZSk7DQo+ID4+Pj4+Pj4gICAgICAJCQlyZXR1cm4gKC1F SU5WQUwpOw0KPiA+Pj4+Pj4+ICsJCWNhc2UgRVRIX01RX1JYX1JTUzoNCj4gPj4+Pj4+PiArCQkJ UE1EX0RFQlVHX1RSQUNFKCJldGhkZXYgcG9ydF9pZD0lIg0KPiA+PiBQUkl1OA0KPiA+Pj4+Pj4+ ICsJCQkJCSIgU1JJT1YgYWN0aXZlLCAiDQo+ID4+Pj4+Pj4gKwkJCQkJIlJ4IG1xIG1vZGUgaXMg Y2hhbmdlZA0KPiA+PiBmcm9tOiINCj4gPj4+Pj4+PiArCQkJCQkibXFfbW9kZSAldSBpbnRvIFZN RFENCj4gPj4+Pj4+IG1xX21vZGUgJXVcbiIsDQo+ID4+Pj4+Pj4gKwkJCQkJcG9ydF9pZCwNCj4g Pj4+Pj4+PiArCQkJCQlkZXZfY29uZi0NCj4gPj4+IHJ4bW9kZS5tcV9tb2RlLA0KPiA+Pj4+Pj4+ ICsJCQkJCWRldi0+ZGF0YS0NCj4gPj4+Pj4+PiBkZXZfY29uZi5yeG1vZGUubXFfbW9kZSk7DQo+ ID4+Pj4+Pj4gKwkJY2FzZSBFVEhfTVFfUlhfVk1EUV9SU1M6DQo+ID4+Pj4+Pj4gKwkJCWRldi0+ ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgPQ0KPiA+Pj4+Pj4gRVRIX01RX1JYX1ZNRFFf UlNTOw0KPiA+Pj4+Pj4+ICsJCQlpZiAobmJfcnhfcSA8DQo+ID4+Pj4+PiBSVEVfRVRIX0RFVl9T UklPVihkZXYpLm5iX3FfcGVyX3Bvb2wpIHsNCj4gPj4+PiBNaXNzZWQgdGhhdCBiZWZvcmU6IHNo b3VsZG4ndCBpdCBiZSAiPD0iIGhlcmU/DQo+ID4+PiBBZ3JlZSB3aXRoIHlvdSwgbmVlZCA8PSBo ZXJlLCBJIHdpbGwgZml4IGl0IGluIHY1DQo+ID4+Pg0KPiA+Pj4+Pj4+ICsJCQkJc3dpdGNoIChu Yl9yeF9xKSB7DQo+ID4+Pj4+Pj4gKwkJCQljYXNlIDE6DQo+ID4+Pj4+Pj4gKwkJCQljYXNlIDI6 DQo+ID4+Pj4+Pj4gKw0KPiA+PiAJUlRFX0VUSF9ERVZfU1JJT1YoZGV2KS5hY3RpdmUgPQ0KPiA+ Pj4+Pj4+ICsJCQkJCQlFVEhfNjRfUE9PTFM7DQo+ID4+Pj4+Pj4gKwkJCQkJYnJlYWs7DQo+ID4+ Pj4+Pj4gKwkJCQljYXNlIDQ6DQo+ID4+Pj4+Pj4gKw0KPiA+PiAJUlRFX0VUSF9ERVZfU1JJT1Yo ZGV2KS5hY3RpdmUgPQ0KPiA+Pj4+Pj4+ICsJCQkJCQlFVEhfMzJfUE9PTFM7DQo+ID4+Pj4+Pj4g KwkJCQkJYnJlYWs7DQo+ID4+Pj4+Pj4gKwkJCQlkZWZhdWx0Og0KPiA+Pj4+Pj4+ICsNCj4gPj4g CVBNRF9ERUJVR19UUkFDRSgiZXRoZGV2DQo+ID4+Pj4+PiBwb3J0X2lkPSVkIg0KPiA+Pj4+Pj4+ ICsJCQkJCQkiIFNSSU9WIGFjdGl2ZSwgIg0KPiA+Pj4+Pj4+ICsJCQkJCQkicXVldWUgbnVtYmVy DQo+ID4+IGludmFsaWRcbiIsDQo+ID4+Pj4+Pj4gKwkJCQkJCXBvcnRfaWQpOw0KPiA+Pj4+Pj4+ ICsJCQkJCXJldHVybiAtRUlOVkFMOw0KPiA+Pj4+Pj4+ICsJCQkJfQ0KPiA+Pj4+Pj4+ICsNCj4g Pj4gCVJURV9FVEhfREVWX1NSSU9WKGRldikubmJfcV9wZXJfcG9vbCA9DQo+ID4+Pj4+PiBuYl9y eF9xOw0KPiA+Pj4+Pj4+ICsNCj4gPj4gCVJURV9FVEhfREVWX1NSSU9WKGRldikuZGVmX3Bvb2xf cV9pZHggPQ0KPiA+Pj4+Pj4+ICsJCQkJCWRldi0+cGNpX2Rldi0+bWF4X3ZmcyAqDQo+ID4+IG5i X3J4X3E7DQo+ID4+Pj4+Pj4gKwkJCX0NCj4gPj4+Pj4+IERvbid0IHUgbmVlZCB0byByZXR1cm4g YW4gZXJyb3IgaW4gdGhlICJlbHNlIiBoZXJlPw0KPiA+Pj4+PiBBY3R1YWxseSBpdCBoYXMgc3Vj aCBhIGNoZWNrIGFmdGVyIHRoZXNlIGNvZGUgc25pcHBldCwgYW5kIGl0IGRvZXMNCj4gPj4+Pj4g cmV0dXJuIGVycm9yIGZvciB0aGUgZWxzZSBjYXNlLCBCZWNhdXNlIGl0IGlzIG9yaWdpbmFsIGxv Z2ljLCBJDQo+ID4+Pj4+IGRvbid0IGNoYW5nZSBhbnkNCj4gPj4+PiBjb2RlIGFyb3VuZCBpdCwg c28gaXQgZG9lc24ndCBkaXNwbGF5IGhlcmUsIHlvdSBjYW4gY2hlY2sgdGhlIGNvZGVzLg0KPiA+ Pj4+DQo+ID4+Pj4gSSBzZWUuIFRoZSBmbG93IGlzIGEgYml0IGNvbmZ1c2luZyBzaW5jZSB0aGUg c3dpdGNoLWNhc2UgYWJvdmUgd2lsbA0KPiA+Pj4+IGVuZCB1cCBleGVjdXRpbmcgYSAiZGVmYXVs dCIgY2xhdXNlIHdoaWNoIHdpbGwgc2V0DQo+ID4+Pj4gUlRFX0VUSF9ERVZfU1JJT1YoZGV2KS5u Yl9xX3Blcl9wb29sIHRvIDEgYW5kIHRoZW4gdGhlIGVycm9yDQo+ID4+IG1lc3NhZ2UNCj4gPj4+ PiBpbiB0aGUgY2hlY2sgdSBhcmUgcmVmZXJyaW5nIHdpbGwgYmUgYSBiaXQgY29uZnVzaW5nLg0K PiA+Pj4gJyBzZXQgUlRFX0VUSF9ERVZfU1JJT1YoZGV2KS5uYl9xX3Blcl9wb29sIHRvIDEgJyBp cyBvcmlnaW5hbCBjb2RlLA0KPiA+PiB3aGljaCBpcyBmb3Igdm1kcSBvbmx5IGNhc2UsIG9yIHNp bmdsZSBxdWV1ZSBjYXNlLg0KPiA+Pj4gSXQgaXMgaW4gZGVmYXVsdCBjbGF1c2UsIGFuZCBub3Qg aW4gVk1EUV9SU1MgY2xhdXNlLg0KPiA+Pj4gSSB0aGluayBteSBuZXcgY29kZSBpcyBvayBoZXJl Lg0KPiA+PiBUaGUgb3JpZ2luYWwgY29kZSBpcyBvayBhbmQgeW91ciBjdXJyZW50IGNvZGUgd2ls bCB3b3JrLiBUaGUgb25seQ0KPiA+PiBwcm9ibGVtIHdpdGggeW91ciBuZXcgY29kZSBpcyB0aGF0 IGluIGNhc2Ugb24gYW4gZXJyb3IgbGlrZSBJJ3ZlDQo+ID4+IGRlc2NyaWJlZCBhYm92ZSB0aGUg ZXJyb3IgbWVzc2FnZSB3aWxsIGJlIGNvbmZ1c2luZy4NCj4gPiBUaGVuIHdoYXQncyB5b3VyIHN1 Z2dlc3Rpb24gZm9yIHRoZSBiZXR0ZXIgbG9nIG1lc3NhZ2U/ICBJIGNhbiBjb25zaWRlcg0KPiBy ZWZpbmUgaXQgaWYgeW91IGhhdmUgYmV0dGVyIG9uZS4NCj4gDQo+IEp1c3QgbGlrZSBJJ3ZlIHN1 Z2dlc3RlZCBiZWZvcmUgLSB1IG1heSBicmVhayB3aXRoIGFwcHJvcHJpYXRlIGVycm9yIG1lc3Nh Z2UNCj4gcmlnaHQgd2hlbiB1IHNlZSB0aGUgcHJvYmxlbSAoaW4gYSAiZWxzZSIgY2xhdXNlKS4g VGhpcyB3YXkgdGhlIGNvZGUgd2lsbCBiZQ0KPiBib3RoIG1vcmUgcmVhZGFibGUgYW5kIG1vcmUg cm9idXN0IGFuZCB3b24ndCBicmVhayBpZiBhbnlib2R5IGRlY2lkZXMgdG8NCj4gY2hhbmdlIHRo ZSBub3QtUlNTLXNwZWNpZmljIGxvZ2ljIHUgciByZWx5aW5nIG9uLg0KDQpXZWxsLCBpdCBjb3Vs ZG4ndCBiZSBkb25lIHNvIGVhc2lseSwgSSB0aGluaywgIHRoZSB0ZXN0IGNvbmRpdGlvbiBpczoN CmlmIChuYl9yeF9xIDw9IFJURV9FVEhfREVWX1NSSU9WKGRldikubmJfcV9wZXJfcG9vbCksICAN CnNvIHRoZSBlbHNlIGNsYXVzZSBpcyB0aGUgY2FzZSBvZiBuYl9yeF9xID4gUlRFX0VUSF9ERVZf U1JJT1YoZGV2KS5uYl9xX3Blcl9wb29sLA0KaXRzIGZ1bmN0aW9uYWxpdHkgaXMgY29tcGFyaW5n IG5iX3J4X3EgYW5kIFJURV9FVEhfREVWX1NSSU9WKGRldikubmJfcV9wZXJfcG9vbCwNCg0KYnV0 IHRoZSBzd2l0Y2ggY2FzZSB3aWxsIGZ1cnRoZXIgY29uZmluZSBuYl9yeF9xIHRvIDEgb3IgMiBv ciA0IG9uIHRoZSBjb25kaXRpb24gb2YgaXQgcGFzc2VzIHRoZSBhYm92ZSB0ZXN0LA0KDQphbmQg YWxzbyB0aGVyZSBhcmUgY29kZXMgcmVmaW5lIHRoZSBSVEVfRVRIX0RFVl9TUklPVihkZXYpLm5i X3FfcGVyX3Bvb2wgZXRjLg0KDQpqdXN0IGNoYW5naW5nIHRoZSByZXR1cm4gaW50byBicmVhaywg d2lsbCBicmVhayB0aGUgbG9naWMsIA0KZS5nLg0Kd2hlbiAgbmJfcnhfcSBpcyA4LCBhbmQgUlRF X0VUSF9ERVZfU1JJT1YoZGV2KS5uYl9xX3Blcl9wb29sIGlzIDgsDQp0aGUgdGVzdCBwYXNzLCBh bmQgZ28gaW50byBkZWZhdWx0IGJyYW5jaCwNCml0IGp1c3QgcHJpbnQgc29tZSBtZXNzYWdlIGFu ZCBicmVhaywgDQpjb250aW51ZSByZWZpbmluZyhidXQgbm90aGluZyBjaGFuZ2VkIHRoaXMgdGlt ZSksDQp0aGVuIGNoZWNrIHZhbGlkIHF1ZXVlIG51bWJlciBhIGZldyBsaW5lcyBiZWxvdywgdGhp cyB0aW1lIGl0IGZhaWwgdGhlIHRlc3QsIGJlY2F1c2UgDQpuYl9yeF9xID09IHJhdGhlciB0aGFu ID4gIFJURV9FVEhfREVWX1NSSU9WKGRldikubmJfcV9wZXJfcG9vbCAsIHNvIGl0IGRvZXNuJ3Qg cHJpbnQgZXJyIG1lc2dlIGFuZCBkb24ndCByZXR1cm4gdGhlIC1FSU5WQUwuDQoNClRoZW4gdGhl IGJlaGF2aW9yIGlzIG5vdCBleHBlY3RlZC4NCg0KRnJvbSBvdGhlciBoYW5kLA0KVGhlIHJlYXNv biB3aHkgSSBoYXZlIG5vdCB0aGUgZWxzZSBicmFuY2ggZm9yIHRoZSB0ZXN0IG5iX3J4X3EgPD0g UlRFX0VUSF9ERVZfU1JJT1YoZGV2KS5uYl9xX3Blcl9wb29sLA0KSXQgIGlzIGJlY2F1c2UgdGhl cmUgaXMgc2FtZSBjaGVjayBiZWxvdyBpdHNlbGYsIGFuZCBqdXN0IGRvbid0IHdhbnQgdGhlIGR1 cGxpY2F0ZWQgY2hlY2sgZm9yIHRoZSBzYW1lIHRoaW5nDQoNCj4gPj4+Pj4gVGhhbmtzDQo+ID4+ Pj4+IENoYW5nY2h1bg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KDQo=