From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-0016ce01.pphosted.com (mx0b-0016ce01.pphosted.com [67.231.156.153]) by dpdk.org (Postfix) with ESMTP id 4E99C694A for ; Tue, 23 Feb 2016 03:28:28 +0100 (CET) Received: from pps.filterd (m0085408.ppops.net [127.0.0.1]) by mx0b-0016ce01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u1N2OJWh029027; Mon, 22 Feb 2016 18:28:27 -0800 Received: from avcashub1.qlogic.com ([198.186.0.116]) by mx0b-0016ce01.pphosted.com with ESMTP id 216r0tbbje-1 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NOT); Mon, 22 Feb 2016 18:28:27 -0800 Received: from AVMB1.qlogic.org ([fe80::b816:e739:5ab3:5221]) by avcashub2.qlogic.org ([::1]) with mapi id 14.03.0235.001; Mon, 22 Feb 2016 18:28:26 -0800 From: Harish Patil To: Stephen Hemminger Thread-Topic: [dpdk-dev] [PATCH 5/6] qede: add driver Thread-Index: AQHRa/UXHWyOhxUcpUq8weIDWEn+TJ82O/GAgAKv4IA= Date: Tue, 23 Feb 2016 02:28:25 +0000 Message-ID: References: <1455982831-21682-1-git-send-email-harish.patil@qlogic.com> <1455982831-21682-6-git-send-email-harish.patil@qlogic.com> <20160220172623.5101c7e4@xeon-e3> In-Reply-To: <20160220172623.5101c7e4@xeon-e3> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.3.9.131030 x-originating-ip: [10.29.102.62] Content-Type: text/plain; charset="utf-8" Content-ID: <45C05C97A88DBF4B8E93BCEEDF83A678@qlogic.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5800 definitions=8083 signatures=670693 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1601100000 definitions=main-1602230028 Cc: "dev@dpdk.org" , Sony Chacko Subject: Re: [dpdk-dev] [PATCH 5/6] qede: add driver 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: Tue, 23 Feb 2016 02:28:28 -0000 Pg0KPk9uIFNhdCwgMjAgRmViIDIwMTYgMDc6NDA6MzAgLTA4MDANCj5IYXJpc2ggUGF0aWwgPGhh cmlzaC5wYXRpbEBxbG9naWMuY29tPiB3cm90ZToNCj4NCj4+IFNpZ25lZC1vZmYtYnk6IEhhcmlz aCBQYXRpbCA8aGFyaXNoLnBhdGlsQHFsb2dpYy5jb20+DQo+PiBTaWduZWQtb2ZmLWJ5OiBSYXNl c2ggTW9keSA8cmFzZXNoLm1vZHlAcWxvZ2ljLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IFNvbnkg Q2hhY2tvIDxzb255LmNoYWNrb0BxbG9naWMuY29tPg0KPj4gLS0tDQo+PiAgZHJpdmVycy9uZXQv cWVkZS9MSUNFTlNFLnFlZGVfcG1kICAgICAgICAgfCAgIDI4ICsNCj4+ICBkcml2ZXJzL25ldC9x ZWRlL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgOTUgKysNCj4+ICBkcml2ZXJzL25ldC9x ZWRlL3FlZGVfZXRoX2lmLmMgICAgICAgICAgICB8ICA0NjEgKysrKysrKysrKw0KPj4gIGRyaXZl cnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaCAgICAgICAgICAgIHwgIDE4MCArKysrDQo+PiAgZHJp dmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jICAgICAgICAgICAgfCAgODE1ICsrKysrKysrKysr KysrKysrDQo+PiAgZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5oICAgICAgICAgICAgfCAg MTM4ICsrKw0KPj4gIGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9pZi5oICAgICAgICAgICAgICAgIHwg IDE2NyArKysrDQo+PiAgZHJpdmVycy9uZXQvcWVkZS9xZWRlX2xvZ3MuaCAgICAgICAgICAgICAg fCAgIDkzICsrDQo+PiAgZHJpdmVycy9uZXQvcWVkZS9xZWRlX21haW4uYyAgICAgICAgICAgICAg fCAgNTg3ICsrKysrKysrKysrKysNCj4+ICBkcml2ZXJzL25ldC9xZWRlL3FlZGVfcnh0eC5jICAg ICAgICAgICAgICB8IDEzNDYNCj4+KysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICBk cml2ZXJzL25ldC9xZWRlL3FlZGVfcnh0eC5oICAgICAgICAgICAgICB8ICAxODMgKysrKw0KPj4g IGRyaXZlcnMvbmV0L3FlZGUvcnRlX3BtZF9xZWRlX3ZlcnNpb24ubWFwIHwgICAgNCArDQo+PiAg MTIgZmlsZXMgY2hhbmdlZCwgNDA5NyBpbnNlcnRpb25zKCspDQo+PiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvbmV0L3FlZGUvTElDRU5TRS5xZWRlX3BtZA0KPj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL25ldC9xZWRlL01ha2VmaWxlDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuYw0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL25ldC9xZWRlL3FlZGVfZXRoX2lmLmgNCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv bmV0L3FlZGUvcWVkZV9ldGhkZXYuaA0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25l dC9xZWRlL3FlZGVfaWYuaA0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC9xZWRl L3FlZGVfbG9ncy5oDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3FlZGUvcWVk ZV9tYWluLmMNCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4 dHguYw0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfcnh0eC5o DQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3FlZGUvcnRlX3BtZF9xZWRlX3Zl cnNpb24ubWFwDQo+DQo+RFBESyBkb2Vzbid0IGZvbGxvdyBhbGwgdGhlIGtlcm5lbCBzdHlsZSBy dWxlcywgYnV0IGxvdHMgb2YgdGhlbS4NCj5UaGUgYmlnZ2VzdCBjYXRjaCB3YXMgdGhlIDsgaW4g dGhlIExPRyBtYWNyb3MuDQo+TWlub3Igc3R1ZmYgYWJvdXQgc3BhY2luZyBhcm91bmQgY2FzdHMg ZXRjLg0KPg0KPg0KPlJ1bm5pbmcgY2hlY2twYXRjaCB3aXRoIC0taWdub3JlDQo+UFJFRkVSX0tF Uk5FTF9UWVBFUyxMSU5FX1NQQUNJTkcsUEFSRU5USEVTSVNfQUxJR05NRU5ULEJJVF9NQUNSTyxO RVRXT1JLSU4NCj5HX0JMT0NLX0NPTU1FTlRfU1RZTEUsU1BMSVRfU1RSSU5HLENPTVBBUklTT05f VE9fTlVMTCxDT05DQVRFTkFURURfU1RSSU5HDQo+DQo+UHJvZHVjZXM6DQo+DQo+DQo+Q0hFQ0s6 U1BBQ0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnKicgKGN0eDpWeE8pDQo+IzQx MDogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aF9pZi5jOjE3NToNCj4rICAgICAgICAg ICAgdWludDE2X3QgY3FlX3BibF9zaXplLCB2b2lkIE9TQUxfSU9NRU0qKnBwX3Byb2QpDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPg0KPkNI RUNLOlNQQUNJTkc6IHNwYWNlcyBwcmVmZXJyZWQgYXJvdW5kIHRoYXQgJyonIChjdHg6VnhPKQ0K PiM0Njc6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuYzoyMzI6DQo+KyAgICAg ICAgICAgIHVpbnQxNl90IHBibF9zaXplLCB2b2lkIE9TQUxfSU9NRU0qKnBwX2Rvb3JiZWxsKQ0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPg0KPkNI RUNLOkJSQUNFUzogQmxhbmsgbGluZXMgYXJlbid0IG5lY2Vzc2FyeSBhZnRlciBhbiBvcGVuIGJy YWNlICd7Jw0KPiM1MTk6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuYzoyODQ6 DQo+K3sNCj4rDQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUg ZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jODIzOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRl L3FlZGVfZXRoX2lmLmg6MTIxOg0KPisgICAgICBpbnQgKCpmaWxsX2Rldl9pbmZvKSAoc3RydWN0 IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNl IGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiM4MjY6IEZJTEU6IGRyaXZlcnMv bmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxMjQ6DQo+KyAgICAgIGludCAoKnZwb3J0X3N0YXJ0KSAo c3RydWN0IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5 IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiM4Mjk6IEZJTEU6IGRy aXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxMjc6DQo+KyAgICAgIGludCAoKnZwb3J0X3N0 b3ApIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2LCB1aW50OF90IHZwb3J0X2lkKTsNCj4NCj5XQVJO SU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFy Z3VtZW50cw0KPiM4MzE6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxMjk6 DQo+KyAgICAgIGludCAoKnZwb3J0X3VwZGF0ZSkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+ DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9p bnRlciBhcmd1bWVudHMNCj4jODM0OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoX2lm Lmg6MTMyOg0KPisgICAgICBpbnQgKCpxX3J4X3N0YXJ0KSAoc3RydWN0IGVjb3JlX2RldiAqY2Rl diwNCj4NCj5DSEVDSzpTUEFDSU5HOiBzcGFjZXMgcHJlZmVycmVkIGFyb3VuZCB0aGF0ICcqJyAo Y3R4OlZ4TykNCj4jODQwOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoX2lmLmg6MTM4 Og0KPisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgY3FlX3BibF9zaXplLCB2b2lk IE9TQUxfSU9NRU0qKnBwX3Byb2QpOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQo+DQo+V0FSTklORzpTUEFDSU5HOiBV bm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jODQy OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoX2lmLmg6MTQwOg0KPisgICAgICBpbnQg KCpxX3J4X3N0b3ApIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lO RzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+ Izg0NTogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aF9pZi5oOjE0MzoNCj4rICAgICAg aW50ICgqcV90eF9zdGFydCkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+Q0hFQ0s6U1BB Q0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnKicgKGN0eDpWeE8pDQo+Izg1MDog RklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aF9pZi5oOjE0ODoNCj4rICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQxNl90IHBibF9zaXplLCB2b2lkIE9TQUxfSU9NRU0qKnBwX2Rvb3Ji ZWxsKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeDQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZv cmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jODUyOiBGSUxFOiBkcml2ZXJzL25ldC9x ZWRlL3FlZGVfZXRoX2lmLmg6MTUwOg0KPisgICAgICBpbnQgKCpxX3R4X3N0b3ApIChzdHJ1Y3Qg ZWNvcmVfZGV2ICplZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2Ug YmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+Izg1NTogRklMRTogZHJpdmVycy9u ZXQvcWVkZS9xZWRlX2V0aF9pZi5oOjE1MzoNCj4rICAgICAgaW50ICgqZXRoX2NxZV9jb21wbGV0 aW9uKSAoc3RydWN0IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVj ZXNzYXJ5IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiM4NTk6IEZJ TEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxNTc6DQo+KyAgICAgIGludCAoKmZh c3RwYXRoX3N0b3ApIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2KTsNCj4NCj5XQVJOSU5HOlNQQUNJ Tkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0K PiM4NjE6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhfaWYuaDoxNTk6DQo+KyAgICAg IHZvaWQgKCpnZXRfdnBvcnRfc3RhdHMpIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2LA0KPg0KPldB Uk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIg YXJndW1lbnRzDQo+Izg2NDogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aF9pZi5oOjE2 MjoNCj4rICAgICAgaW50ICgqZmlsdGVyX2NvbmZpZykgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYs DQo+DQo+Q0hFQ0s6QVZPSURfRVhURVJOUzogZXh0ZXJuIHByb3RvdHlwZXMgc2hvdWxkIGJlIGF2 b2lkZWQgaW4gLmggZmlsZXMNCj4jODcyOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRo X2lmLmg6MTcwOg0KPitleHRlcm4gaW50IHFlZF9maWxsX2V0aF9kZXZfaW5mbyhzdHJ1Y3QgZWNv cmVfZGV2ICplZGV2LA0KPg0KPkNIRUNLOlNQQUNJTkc6IE5vIHNwYWNlIGlzIG5lY2Vzc2FyeSBh ZnRlciBhIGNhc3QNCj4jOTA1OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6 MTc6DQo+KyAgICAgIGVjb3JlX2ludF9zcF9kcGMoKG9zYWxfaW50X3B0cl90KSAocF9od2ZuKSk7 DQo+DQo+Q0hFQ0s6VU5ORUNFU1NBUllfUEFSRU5USEVTRVM6IFVubmVjZXNzYXJ5IHBhcmVudGhl c2VzIGFyb3VuZA0KPmV0aF9kZXYtPnBjaV9kZXYtPmludHJfaGFuZGxlDQo+IzkxNjogRklMRTog ZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOjI4Og0KPisgICAgICBpZiAocnRlX2ludHJf ZW5hYmxlKCYoZXRoX2Rldi0+cGNpX2Rldi0+aW50cl9oYW5kbGUpKSkNCj4NCj5DSEVDSzpCUkFD RVM6IGJyYWNlcyB7fSBzaG91bGQgYmUgdXNlZCBvbiBhbGwgYXJtcyBvZiB0aGlzIHN0YXRlbWVu dA0KPiMxMDcxOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MTgzOg0KPisg ICAgICBpZiAocnRlX2V0aF9wcm9taXNjdW91c19nZXQoZXRoX2Rldi0+ZGF0YS0+cG9ydF9pZCkg PT0gMSkNCj5bLi4uXQ0KPisgICAgICBlbHNlIGlmICghcWRldi0+bm9uX2NvbmZpZ3VyZWRfdmxh bnMpIHsNCj5bLi4uXQ0KPg0KPldBUk5JTkc6TUlTU0lOR19TUEFDRTogYnJlYWsgcXVvdGVkIHN0 cmluZ3MgYXQgYSBzcGFjZSBjaGFyYWN0ZXINCj4jMTA5NzogRklMRTogZHJpdmVycy9uZXQvcWVk ZS9xZWRlX2V0aGRldi5jOjIwOToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgInVuZXF1YWwg bnVtYmVyIG9mIHJ4L3R4IHF1ZXVlcyINCj4rICAgICAgICAgICAgICAgICAgICAgICAgImlzIG5v dCBzdXBwb3J0ZWQgUlg9JXUgVFg9JXVcbiIsDQo+DQo+Q0hFQ0s6U1BBQ0lORzogTm8gc3BhY2Ug aXMgbmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMxMTUxOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRl L3FlZGVfZXRoZGV2LmM6MjYzOg0KPisgICAgICBkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSAo dWludDMyX3QpIChFVEhFUl9NSU5fTVRVICsNCj4NCj5DSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBp cyBuZWNlc3NhcnkgYWZ0ZXIgYSBjYXN0DQo+IzExNTM6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUv cWVkZV9ldGhkZXYuYzoyNjU6DQo+KyAgICAgIGRldl9pbmZvLT5tYXhfcnhfcGt0bGVuID0gKHVp bnQzMl90KSBFVEhfVFhfTUFYX05PTl9MU09fUEtUX0xFTjsNCj4NCj5DSEVDSzpTUEFDSU5HOiBO byBzcGFjZSBpcyBuZWNlc3NhcnkgYWZ0ZXIgYSBjYXN0DQo+IzExNTY6IEZJTEU6IGRyaXZlcnMv bmV0L3FlZGUvcWVkZV9ldGhkZXYuYzoyNjg6DQo+KyAgICAgIGRldl9pbmZvLT5tYXhfcnhfcXVl dWVzID0gKHVpbnQxNl90KSBRRURFX01BWF9SU1NfQ05UKHFkZXYpOw0KPg0KPkNIRUNLOlNQQUNJ Tkc6IE5vIHNwYWNlIGlzIG5lY2Vzc2FyeSBhZnRlciBhIGNhc3QNCj4jMTE1NzogRklMRTogZHJp dmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOjI2OToNCj4rICAgICAgZGV2X2luZm8tPm1heF90 eF9xdWV1ZXMgPSAodWludDE2X3QpIFFFREVfTUFYX1RTU19DTlQocWRldik7DQo+DQo+Q0hFQ0s6 U1BBQ0lORzogTm8gc3BhY2UgaXMgbmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMxMTU4OiBGSUxF OiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MjcwOg0KPisgICAgICBkZXZfaW5mby0+ bWF4X21hY19hZGRycyA9ICh1aW50MzJfdCkgKFJFU0NfTlVNKCZlZGV2LT5od2Zuc1swXSwNCj4N Cj5DSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBpcyBuZWNlc3NhcnkgYWZ0ZXIgYSBjYXN0DQo+IzEx NjA6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYzoyNzI6DQo+KyAgICAgIGRl dl9pbmZvLT5tYXhfdmZzID0gKHVpbnQxNl90KSBOVU1fT0ZfVkZTKCZxZGV2LT5lZGV2KTsNCj4N Cj5DSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBpcyBuZWNlc3NhcnkgYWZ0ZXIgYSBjYXN0DQo+IzEx NjM6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYzoyNzU6DQo+KyAgICAgIGRl dl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0gKHVpbnQ2NF90KSBRRURFX1JTU19PRkZM T0FEX0FMTDsNCj4NCj5DSEVDSzpVTk5FQ0VTU0FSWV9QQVJFTlRIRVNFUzogVW5uZWNlc3Nhcnkg cGFyZW50aGVzZXMgYXJvdW5kDQo+ZXRoX2Rldi0+cGNpX2Rldi0+aW50cl9oYW5kbGUNCj4jMTI5 OTogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOjQxMToNCj4rICAgICAgcnRl X2ludHJfZGlzYWJsZSgmKGV0aF9kZXYtPnBjaV9kZXYtPmludHJfaGFuZGxlKSk7DQo+DQo+Q0hF Q0s6VU5ORUNFU1NBUllfUEFSRU5USEVTRVM6IFVubmVjZXNzYXJ5IHBhcmVudGhlc2VzIGFyb3Vu ZA0KPmV0aF9kZXYtPnBjaV9kZXYtPmludHJfaGFuZGxlDQo+IzEzMDE6IEZJTEU6IGRyaXZlcnMv bmV0L3FlZGUvcWVkZV9ldGhkZXYuYzo0MTM6DQo+KyAgICAgIHJ0ZV9pbnRyX2NhbGxiYWNrX3Vu cmVnaXN0ZXIoJihldGhfZGV2LT5wY2lfZGV2LT5pbnRyX2hhbmRsZSksDQo+DQo+Q0hFQ0s6VU5O RUNFU1NBUllfUEFSRU5USEVTRVM6IFVubmVjZXNzYXJ5IHBhcmVudGhlc2VzIGFyb3VuZA0KPmV0 aF9kZXYtPnBjaV9kZXYtPmludHJfaGFuZGxlDQo+IzE1MTE6IEZJTEU6IGRyaXZlcnMvbmV0L3Fl ZGUvcWVkZV9ldGhkZXYuYzo2MjM6DQo+KyAgICAgIHJ0ZV9pbnRyX2NhbGxiYWNrX3JlZ2lzdGVy KCYoZXRoX2Rldi0+cGNpX2Rldi0+aW50cl9oYW5kbGUpLA0KPg0KPkNIRUNLOlVOTkVDRVNTQVJZ X1BBUkVOVEhFU0VTOiBVbm5lY2Vzc2FyeSBwYXJlbnRoZXNlcyBhcm91bmQNCj5ldGhfZGV2LT5w Y2lfZGV2LT5pbnRyX2hhbmRsZQ0KPiMxNTE0OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVf ZXRoZGV2LmM6NjI2Og0KPisgICAgICBpZiAocnRlX2ludHJfZW5hYmxlKCYoZXRoX2Rldi0+cGNp X2Rldi0+aW50cl9oYW5kbGUpKSkgew0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkg c3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+IzE5NDg6IEZJTEU6IGRy aXZlcnMvbmV0L3FlZGUvcWVkZV9pZi5oOjk1Og0KPisgICAgICB2b2lkICgqbGlua191cGRhdGUp ICh2b2lkICpkZXYsIHN0cnVjdCBxZWRfbGlua19vdXRwdXQgKmxpbmspOw0KPg0KPldBUk5JTkc6 U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1l bnRzDQo+IzE5NTk6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9pZi5oOjEwNjoNCj4rICAg ICAgaW50ICgqcmVnaXN0ZXJzKSAoc3RydWN0IGVjb3JlX2RldiAqZWRldik7DQo+DQo+V0FSTklO RzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1 bWVudHMNCj4jMTk2MzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTEwOg0KPisg ICAgICBpbnQgKCpwcm9iZSkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+V0FSTklORzpT UEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVu dHMNCj4jMTk2NzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTE0Og0KPisgICAg ICB2b2lkICgqc2V0X2lkKSAoc3RydWN0IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQ QUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBmdW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50 cw0KPiMxOTY5OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfaWYuaDoxMTY6DQo+KyAgICAg IGVudW0gX2Vjb3JlX3N0YXR1c190ICgqY2hhaW5fYWxsb2MpIChzdHJ1Y3QgZWNvcmVfZGV2ICpl ZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0 aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+IzE5Nzg6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVk ZV9pZi5oOjEyNToNCj4rICAgICAgdm9pZCAoKmNoYWluX2ZyZWUpIChzdHJ1Y3QgZWNvcmVfZGV2 ICplZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNlc3Nhcnkgc3BhY2UgYmVmb3JlIGZ1 bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+IzE5ODE6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUv cWVkZV9pZi5oOjEyODoNCj4rICAgICAgdm9pZCAoKmdldF9saW5rKSAoc3RydWN0IGVjb3JlX2Rl diAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBm dW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiMxOTgzOiBGSUxFOiBkcml2ZXJzL25ldC9xZWRl L3FlZGVfaWYuaDoxMzA6DQo+KyAgICAgIGludCAoKnNldF9saW5rKSAoc3RydWN0IGVjb3JlX2Rl diAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IFVubmVjZXNzYXJ5IHNwYWNlIGJlZm9yZSBm dW5jdGlvbiBwb2ludGVyIGFyZ3VtZW50cw0KPiMxOTg2OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRl L3FlZGVfaWYuaDoxMzM6DQo+KyAgICAgIGludCAoKmRyYWluKSAoc3RydWN0IGVjb3JlX2RldiAq ZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVu Y3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk4ODogRklMRTogZHJpdmVycy9uZXQvcWVkZS9x ZWRlX2lmLmg6MTM1Og0KPisgICAgICB2b2lkICgqcmVtb3ZlKSAoc3RydWN0IGVjb3JlX2RldiAq ZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVu Y3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk5MDogRklMRTogZHJpdmVycy9uZXQvcWVkZS9x ZWRlX2lmLmg6MTM3Og0KPisgICAgICBpbnQgKCpzbG93cGF0aF9zdG9wKSAoc3RydWN0IGVjb3Jl X2RldiAqZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBzcGFjZSBiZWZv cmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk5MjogRklMRTogZHJpdmVycy9uZXQv cWVkZS9xZWRlX2lmLmg6MTM5Og0KPisgICAgICB2b2lkICgqdXBkYXRlX3BmX3BhcmFtcykgKHN0 cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBz cGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk5NTogRklMRTogZHJp dmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTQyOg0KPisgICAgICBpbnQgKCpzbG93cGF0aF9zdGFy dCkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vz c2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMTk5ODogRklM RTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTQ1Og0KPisgICAgICBpbnQgKCpzZXRfZnBf aW50KSAoc3RydWN0IGVjb3JlX2RldiAqZWRldiwgdWludDE2X3QgY250KTsNCj4NCj5XQVJOSU5H OlNQQUNJTkc6IG1pc3Npbmcgc3BhY2UgYWZ0ZXIgcmV0dXJuIHR5cGUNCj4jMjAwMDogRklMRTog ZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTQ3Og0KPisgICAgICAgdWludDMyX3QoKnNiX2lu aXQpIChzdHJ1Y3QgZWNvcmVfZGV2ICplZGV2LA0KPg0KPldBUk5JTkc6U1BBQ0lORzogVW5uZWNl c3Nhcnkgc3BhY2UgYmVmb3JlIGZ1bmN0aW9uIHBvaW50ZXIgYXJndW1lbnRzDQo+IzIwMDA6IEZJ TEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9pZi5oOjE0NzoNCj4rICAgICAgIHVpbnQzMl90KCpz Yl9pbml0KSAoc3RydWN0IGVjb3JlX2RldiAqZWRldiwNCj4NCj5XQVJOSU5HOlNQQUNJTkc6IG1p c3Npbmcgc3BhY2UgYWZ0ZXIgcmV0dXJuIHR5cGUNCj4jMjAwNjogRklMRTogZHJpdmVycy9uZXQv cWVkZS9xZWRlX2lmLmg6MTUzOg0KPisgICAgICAgYm9vbCgqY2FuX2xpbmtfY2hhbmdlKSAoc3Ry dWN0IGVjb3JlX2RldiAqZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5lY2Vzc2FyeSBz cGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMjAwNjogRklMRTogZHJp dmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTUzOg0KPisgICAgICAgYm9vbCgqY2FuX2xpbmtfY2hh bmdlKSAoc3RydWN0IGVjb3JlX2RldiAqZWRldik7DQo+DQo+V0FSTklORzpTUEFDSU5HOiBVbm5l Y2Vzc2FyeSBzcGFjZSBiZWZvcmUgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudHMNCj4jMjAwNzog RklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX2lmLmg6MTU0Og0KPisgICAgICB2b2lkICgqdXBk YXRlX21zZ2x2bCkgKHN0cnVjdCBlY29yZV9kZXYgKmVkZXYsDQo+DQo+V0FSTklORzpUUkFJTElO R19TRU1JQ09MT046IG1hY3JvcyBzaG91bGQgbm90IHVzZSBhIHRyYWlsaW5nIHNlbWljb2xvbg0K PiMyMDM4OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfbG9ncy5oOjEyOg0KPisjZGVmaW5l IERQX0VSUihwX2RldiwgZm10LCAuLi4pIFwNCj4rICAgICAgcnRlX2xvZyhSVEVfTE9HX0VSUiwg UlRFX0xPR1RZUEVfUE1ELCBcDQo+KyAgICAgICAgICAgICAgIlslczolZCglcyldIiBmbXQsIFwN Cj4rICAgICAgICAgICAgICAgIF9fZnVuY19fLCBfX0xJTkVfXywgXA0KPisgICAgICAgICAgICAg IChwX2RldiktPm5hbWUgPyAocF9kZXYpLT5uYW1lIDogIiIsIFwNCj4rICAgICAgICAgICAgICAj I19fVkFfQVJHU19fKTsNCj4NCj5XQVJOSU5HOlRSQUlMSU5HX1NFTUlDT0xPTjogbWFjcm9zIHNo b3VsZCBub3QgdXNlIGEgdHJhaWxpbmcgc2VtaWNvbG9uDQo+IzIxMDI6IEZJTEU6IGRyaXZlcnMv bmV0L3FlZGUvcWVkZV9sb2dzLmg6NzY6DQo+KyNkZWZpbmUgUE1EX1JYX0xPRyhsZXZlbCwgcSwg Zm10LCBhcmdzLi4uKSBcDQo+KyAgICAgIFJURV9MT0cobGV2ZWwsIFBNRCwgIiVzKCk6IHBvcnQ9 JXUgcXVldWU9JXUgIiBmbXQgIlxuIiwgXA0KPisgICAgICAgICAgICAgIF9fZnVuY19fLCBxLT5w b3J0X2lkLCBxLT5xdWV1ZV9pZCwgIyMgYXJncyk7DQo+DQo+V0FSTklORzpTVVNQRUNUX0NPREVf SU5ERU5UOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbA0KPnN0YXRlbWVudHMg KDE2LCAyMCkNCj4jMjQ2OTogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX21haW4uYzozNDQ6 DQo+KyAgICAgICAgICAgICAgZm9yX2VhY2hfaHdmbihlZGV2LCBpKQ0KPisgICAgICAgICAgICAg ICAgICBpbmZvLT5udW1fcXVldWVzICs9DQo+DQo+Q0hFQ0s6U1BBQ0lORzogTm8gc3BhY2UgaXMg bmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMyNDg0OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL3Fl ZGVfbWFpbi5jOjM1OToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVp bnQ4X3QgKikgJmluZm8tPnBvcnRfbWFjKTsNCj4NCj5XQVJOSU5HOlNVU1BFQ1RfQ09ERV9JTkRF TlQ6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsDQo+c3RhdGVtZW50cyAoOCwg MTIpDQo+IzI1ODI6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9tYWluLmM6NDU3Og0KPisg ICAgICBmb3JfZWFjaF9od2ZuKGNkZXYsIGkpDQo+KyAgICAgICAgICBxZWRfaW5mb3JtX3ZmX2xp bmtfc3RhdGUoJmNkZXYtPmh3Zm5zW2ldKTsNCj4NCj5DSEVDSzpCUkFDRVM6IEJsYW5rIGxpbmVz IGFyZW4ndCBuZWNlc3NhcnkgYmVmb3JlIGEgY2xvc2UgYnJhY2UgJ30nDQo+IzI1ODY6IEZJTEU6 IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9tYWluLmM6NDYxOg0KPisNCj4rfQ0KPg0KPldBUk5JTkc6 TUlTU0lOR19TUEFDRTogYnJlYWsgcXVvdGVkIHN0cmluZ3MgYXQgYSBzcGFjZSBjaGFyYWN0ZXIN Cj4jMjc1MzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYzozNToNCj4rICAgICAg ICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gYWxsb2NhdGUgcnggYnVmZmVyIg0KPisgICAg ICAgICAgICAgICAgICAgICAgICAgInN3X3J4X3Byb2QgJXUgc3dfcnhfY29ucyAldSBtcCBlbnRy aWVzICV1IGZyZWUgJXUiLA0KPg0KPldBUk5JTkc6Q09OU1RBTlRfQ09NUEFSSVNPTjogQ29tcGFy aXNvbnMgc2hvdWxkIHBsYWNlIHRoZSBjb25zdGFudCBvbiB0aGUNCj5yaWdodCBzaWRlIG9mIHRo ZSB0ZXN0DQo+IzI3NzY6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmM6NTg6DQo+ KyAgICAgICAgICAgICAgICAgICAgICBpZiAoTlVMTCAhPSByeHEtPnN3X3J4X3JpbmdbaV0ubWJ1 Zikgew0KPg0KPkNIRUNLOlNQQUNJTkc6IE5vIHNwYWNlIGlzIG5lY2Vzc2FyeSBhZnRlciBhIGNh c3QNCj4jMjgxNzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYzo5OToNCj4rICAg ICAgdWludDE2X3QgcGt0X2xlbiA9ICh1aW50MTZfdCkgZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1v ZGUubWF4X3J4X3BrdF9sZW47DQo+DQo+V0FSTklORzpNSVNTSU5HX1NQQUNFOiBicmVhayBxdW90 ZWQgc3RyaW5ncyBhdCBhIHNwYWNlIGNoYXJhY3Rlcg0KPiMzMTk5OiBGSUxFOiBkcml2ZXJzL25l dC9xZWRlL3FlZGVfcnh0eC5jOjQ4MToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgYWxsIG9mIg0KPisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJSU1MgcXVldWVzXG4iDQo+DQo+Q0hFQ0s6U1BBQ0lORzogTm8g c3BhY2UgaXMgbmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMzMjI4OiBGSUxFOiBkcml2ZXJzL25l dC9xZWRlL3FlZGVfcnh0eC5jOjUxMDoNCj4rICAgICAgICAgICAgICAgICAgICAgICh1aW50MzJf dCAqKSAmcnhfcHJvZHMpOw0KPg0KPldBUk5JTkc6VU5ORUNFU1NBUllfRUxTRTogZWxzZSBpcyBu b3QgZ2VuZXJhbGx5IHVzZWZ1bCBhZnRlciBhIGJyZWFrIG9yDQo+cmV0dXJuDQo+IzMyNzU6IEZJ TEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmM6NTU3Og0KPisgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOw0KPisgICAgICB9IGVsc2Ugew0KPg0KPldBUk5JTkc6TUlTU0lOR19TUEFD RTogYnJlYWsgcXVvdGVkIHN0cmluZ3MgYXQgYSBzcGFjZSBjaGFyYWN0ZXINCj4jMzMyNTogRklM RTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYzo2MDc6DQo+KyAgICAgICAgICAgICAgICAg ICAgICJDYW5ub3QgdXBkYXRlIFYtVlBPUlQgYXMgYWN0aXZlIGFzIg0KPisgICAgICAgICAgICAg ICAgICAgICAidGhlcmUgYXJlIG5vIFJ4IHF1ZXVlc1xuIik7DQo+DQo+Q0hFQ0s6U1BBQ0lORzog Tm8gc3BhY2UgaXMgbmVjZXNzYXJ5IGFmdGVyIGEgY2FzdA0KPiMzNTg3OiBGSUxFOiBkcml2ZXJz L25ldC9xZWRlL3FlZGVfcnh0eC5jOjg2OToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cnVjdCBldGhfc2xvd19wYXRoX3J4X2NxZSAqKSBjcWUpOw0KPg0KPkNIRUNLOlJFRFVO REFOVF9DT0RFOiBpZiB0aGlzIGNvZGUgaXMgcmVkdW5kYW50IGNvbnNpZGVyIHJlbW92aW5nIGl0 DQo+IzM2MDE6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmM6ODgzOg0KPisjaWYg MA0KPg0KPldBUk5JTkc6TUlTU0lOR19TUEFDRTogYnJlYWsgcXVvdGVkIHN0cmluZ3MgYXQgYSBz cGFjZSBjaGFyYWN0ZXINCj4jMzYxNzogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHgu Yzo4OTk6DQo+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDUUUgaW4gQ09OUyA9 ICV1IGhhcyBlcnJvciwgZmxhZ3MgPSAweCV4Ig0KPisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZHJvcHBpbmcgaW5jb21pbmcgcGFja2V0XG4iLA0KPg0KPldBUk5JTkc6TUlTU0lO R19TUEFDRTogYnJlYWsgcXVvdGVkIHN0cmluZ3MgYXQgYSBzcGFjZSBjaGFyYWN0ZXINCj4jMzY4 ODogRklMRTogZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYzo5NzA6DQo+KyAgICAgICAgICAg ICAgICAgICAgICAgICAibnVsbCBtYnVmIG5iX3R4X2Rlc2MgJXUgbmJfdHhfYXZhaWwgJXUiDQo+ KyAgICAgICAgICAgICAgICAgICAgICAgICAic3dfdHhfY29ucyAldSBzd190eF9wcm9kICV1XG4i LA0KPg0KPldBUk5JTkc6VU5ORUNFU1NBUllfRUxTRTogZWxzZSBpcyBub3QgZ2VuZXJhbGx5IHVz ZWZ1bCBhZnRlciBhIGJyZWFrIG9yDQo+cmV0dXJuDQo+IzM4OTM6IEZJTEU6IGRyaXZlcnMvbmV0 L3FlZGUvcWVkZV9yeHR4LmM6MTE3NToNCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIHFlZGVfZHJhaW5fdHhxKHFkZXYsIHR4cSwgZmFsc2UpOw0KPisgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsNCj4NCj5DSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBpcyBuZWNlc3Nh cnkgYWZ0ZXIgYSBjYXN0DQo+IzQxMTM6IEZJTEU6IGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4 Lmg6NDM6DQo+KyAgICAgICgodWludDY0X3QpICgobWIpLT5idWZfcGh5c2FkZHIgKyAobWIpLT5k YXRhX29mZikpDQo+DQo+DQoNCkFsbCBvZiB0aGUgY2hlY2twYXRjaCB3YXJuaW5ncyBoYWQgYmVl biBmaXhlZCAgKGV4Y2VwdCBvbmUgd2hpY2ggY2Fubm90IGJlDQpmaXhlZCkgdXNpbmcgdGhlIGNo ZWNrcGF0Y2ggc2NyaXB0IGF2YWlsYWJsZSB1bmRlciBEUERLIHNjcmlwdHMvDQpkaXJlY3Rvcnku IFRoZSBsaW51eCBjaGVja3BhdGNoIHZlcnNpb24gaXMgMC4zMi4NCg0KW3Jvb3RAZHV0NDAxOSBk cGRrXSMgLi9zY3JpcHRzL2NoZWNrcGF0Y2hlcy5zaCBwYXRjaGVzLXNlbmQvKi5wYXRjaA0KDQoj IyMgcGF0Y2hlcy1zZW5kLzAwMDQtcWVkZS1hZGQtZHJpdmVyLWNvbW1vbi1tb2R1bGUucGF0Y2gN Cg0KV0FSTklORzpDQU1FTENBU0U6IEF2b2lkIENhbWVsQ2FzZTogPGluZmxhdGVFbmQ+DQojMjUx OiBGSUxFOiBkcml2ZXJzL25ldC9xZWRlL2Vjb3JlL2JjbV9vc2FsLmM6MTIwOg0KKyAgICAgICBp bmZsYXRlRW5kKHBfaHdmbi0+c3RyZWFtKTsNCg0KdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdz LCA1NDQ2NyBsaW5lcyBjaGVja2VkDQoNCldvdWxkbuKAmXQgdGhhdCBzdWZmaWNlPw0KDQoNCg0K DQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQoNClRoaXMgbWVzc2Fn ZSBhbmQgYW55IGF0dGFjaGVkIGRvY3VtZW50cyBjb250YWluIGluZm9ybWF0aW9uIGZyb20gdGhl IHNlbmRpbmcgY29tcGFueSBvciBpdHMgcGFyZW50IGNvbXBhbnkocyksIHN1YnNpZGlhcmllcywg ZGl2aXNpb25zIG9yIGJyYW5jaCBvZmZpY2VzIHRoYXQgbWF5IGJlIGNvbmZpZGVudGlhbC4gSWYg eW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IG1heSBub3QgcmVhZCwgY29w eSwgZGlzdHJpYnV0ZSwgb3IgdXNlIHRoaXMgaW5mb3JtYXRpb24uIElmIHlvdSBoYXZlIHJlY2Vp dmVkIHRoaXMgdHJhbnNtaXNzaW9uIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIg aW1tZWRpYXRlbHkgYnkgcmVwbHkgZS1tYWlsIGFuZCB0aGVuIGRlbGV0ZSB0aGlzIG1lc3NhZ2Uu DQo=