From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8F6CDA04F0; Mon, 13 Jan 2020 13:35:04 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 028301D51B; Mon, 13 Jan 2020 13:35:04 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 949AB1D515 for ; Mon, 13 Jan 2020 13:35:01 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00DCUWVb007064; Mon, 13 Jan 2020 04:34:57 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=fpbvpmSOGj0JLJYRWw/XDm6cCTPEqNDF5N9n2rzKCMk=; b=D2lyOqG8p3dZymcQUrsQUOVE6/ZejLkw34vIR2G5LLQOTTzXVLje+PQ8l5ggafDQ/mXE FG4zJYnXRWrzz+4IdrAP2Qs6hXEalqorG+8xv0q+KdSgJ3tUn4K1z3VLoIxAU7r/cZqb J4P+NKSaw2I1/2H5sseEsBBsXMwtlm5vACdZBfAExNYjN7B4nI3cgVLRpx/F+NZip/EJ mHzb397RhzdjOypKipJt+36HktRppn4ZALG/uKBcoQyh5cGEryoFw2aaMS8tN347JfzL uBNeJOoIdoc/CK5WSvljOyVDQEezrPxYGwAETt+bxMfu9QoOi8sHwd3vlahSAaHb1ja7 BA== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 2xfckunuv5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 13 Jan 2020 04:34:57 -0800 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 13 Jan 2020 04:34:56 -0800 Received: from NAM04-CO1-obe.outbound.protection.outlook.com (104.47.45.53) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Mon, 13 Jan 2020 04:34:56 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dl4qGTUcopbZ6FwFd+ISgGUgD3u8F2b9kh7P8Pc/sBjw/3D3soOF1GRbGCvf5dwhzbyTOurCoWQXqRzMylNEmwkDqQV1INCY7MGR5/gOHE/j9qAIJf0kUZ6nTMSXwLCLaD9mVH3/BUqWDl2R4uJLUk4np7Kcd+gkYcyc96mThop0JHseuRTnceZYemc6y1Tx3QHwyDYd0F9JstdZjABoh+E/BkuDsp4wmY79YK42R8wyBZi0Zu+qu0wEC9Yrn1LTgE0AprzxJ35eaJAVWN9WBwAII9RuryBNzi+elea2hnH9hy9wtUXLUS0hJBLCWCbjl14htWhpDG6PQpRSlh3oPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fpbvpmSOGj0JLJYRWw/XDm6cCTPEqNDF5N9n2rzKCMk=; b=Gg3pWaVHPCsuyyr1pHpETivhLy+N9xLCZyBm5a9U2MsC0K+oYI6hR4JP3EKA3J7l08/ey8ZWjuwAw9mT4DKk05miKft10P8+EdKYgZJ6j8SFKmwM3Tr/fZDN72UHZ/lNzYrVuMxjLWKbhYq3csXHFY17RxRjeb5sfkgAbtuMn+Bxxr003ZQlRWrFOZFWqKBalOUQDY9wDen+0vHNVhnGGuRCM7FcDrJdG/mqKxDUsjM2CsoO909QPdsM+Dk8bSy5A+F7tE8WmIIyJEshp43FxS5wYCYe9BwVMStFFbfJHb3M1mvgvad1bfzC6pbM+MfOwtYZ41/2w4U9ugBH/2eCVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fpbvpmSOGj0JLJYRWw/XDm6cCTPEqNDF5N9n2rzKCMk=; b=hTmSJQCu5PCUFBx/htTxQp8hTwy3gIUT6x2P7dORb5//ysNAQXVTADh+MODcnLQT+fA04rfFDqeQyIRWOhOJ2MsEeJ78t91SoVHYQe0Lbn29OQrUEOamJqqP1/B2QkxU0VpfTTo2u6RSzxuYv4C8WL84/THs9YJOSidj2o6eNXY= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.160) by CY4PR1801MB1944.namprd18.prod.outlook.com (10.171.255.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.16; Mon, 13 Jan 2020 12:34:55 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::edb0:c18d:7455:f60b]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::edb0:c18d:7455:f60b%4]) with mapi id 15.20.2623.015; Mon, 13 Jan 2020 12:34:55 +0000 From: Pavan Nikhilesh Bhagavatula To: "Medvedkin, Vladimir" , "Jerin Jacob Kollanukkaran" , Bruce Richardson , Gavin Hu CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] lmp: add lookup x4 with x4 default values Thread-Index: AQHVyJlg+ypnGji/sEaowc+9lG6Vj6focdKAgAAVwBA= Date: Mon, 13 Jan 2020 12:34:54 +0000 Message-ID: References: <20200111160827.10021-1-pbhagavatula@marvell.com> <64889d7e-560b-b7ca-45e1-5a5e3f4c3163@intel.com> In-Reply-To: <64889d7e-560b-b7ca-45e1-5a5e3f4c3163@intel.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [223.226.91.107] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 08e15ae2-5a83-4429-3ac4-08d79824fe6c x-ms-traffictypediagnostic: CY4PR1801MB1944: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 028166BF91 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(39850400004)(396003)(136003)(376002)(366004)(346002)(189003)(199004)(8676002)(55236004)(81166006)(81156014)(55016002)(9686003)(8936002)(4326008)(33656002)(71200400001)(30864003)(26005)(478600001)(5660300002)(7696005)(316002)(66556008)(66476007)(64756008)(66446008)(2906002)(86362001)(76116006)(66946007)(6506007)(52536014)(186003)(110136005); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB1944; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XqhI5NxWL8VDCXA7CJtXlVe+BAWYy0XExxAR3AKOtu+tGOzwBYkSyns7dDVUAG2gKIqoOhXcG2vyBE78AGBsGZLWYbgRA+DM9QyfiO8rgjTqI3aCuNoxkkfaIXUudp8C5YZPGgyhWzKqZQoo0lPRlHy71dYfJCBmr/i4ArrcAoMps2ofUdm//Aty3Or0fqCDPRWRGlnSa48fpupnjGp30k+ovMiD3a8ImZe6cmSXc1zspXOi5f9MMzkGQ3Ckecv0yVEoGwcr34NVRojaTp50mT2+4MXwtDp0JYpDeZq9H2+vzbDG02p5XoVpec8/ZdCWjXFXT2G4PjebaYMQaKSdGze30K2kxpsXFUP7GkC4Rn1cBeUfjgLOFR2bGbnAAWomxRtj/0jyMNYIquP1yPL3427hKOQ4P7t88BaBxzGEjDoMslLRkXOi+Z01kz1Suq1g Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 08e15ae2-5a83-4429-3ac4-08d79824fe6c X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jan 2020 12:34:54.8586 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KbRORanQtDCaUGuJtq7mX8X1ynybY/71ckKf0QobZgrL+DxSG05L/+aU8vYfCVDTGSvCGZGX7GqSSDo/NDXYCnd+aIbJKCFInadzlkhaWHg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB1944 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572 definitions=2020-01-13_03:2020-01-13, 2020-01-13 signatures=0 Subject: Re: [dpdk-dev] [PATCH] lmp: add lookup x4 with x4 default values X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Pi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogZGV2IDxkZXYtYm91bmNlc0BkcGRr Lm9yZz4gT24gQmVoYWxmIE9mIE1lZHZlZGtpbiwNCj5WbGFkaW1pcg0KPlNlbnQ6IE1vbmRheSwg SmFudWFyeSAxMywgMjAyMCA0OjM3IFBNDQo+VG86IFBhdmFuIE5pa2hpbGVzaCBCaGFnYXZhdHVs YSA8cGJoYWdhdmF0dWxhQG1hcnZlbGwuY29tPjsgSmVyaW4NCj5KYWNvYiBLb2xsYW51a2thcmFu IDxqZXJpbmpAbWFydmVsbC5jb20+OyBCcnVjZSBSaWNoYXJkc29uDQo+PGJydWNlLnJpY2hhcmRz b25AaW50ZWwuY29tPjsgR2F2aW4gSHUgPGdhdmluLmh1QGFybS5jb20+DQo+Q2M6IGRldkBkcGRr Lm9yZw0KPlN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSF0gbG1wOiBhZGQgbG9va3VwIHg0 IHdpdGggeDQgZGVmYXVsdA0KPnZhbHVlcw0KPg0KPkhpIFBhdmFuLA0KPg0KDQpIaSBNZWR2ZWRr aW4sDQoNCj5JIGRvbid0IHRoaW5rIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGFkZCBleHRyYSBmdW5j dGlvbiBiZWNhdXNlOg0KPg0KPjEpIGl0IGlzIGp1c3QgYSBjb3B5IG9mIGFuIGV4aXN0aW5nIHJ0 ZV9scG1fbG9va3VweDQoKSBleGNlcHQgdGhlIGxhc3QgNA0KPnRlcm5hcnkgb3BzDQoNClllcywg YnV0IEkgaGFkIG5vIG90aGVyIG9wdGlvbiBhcyBtb2RpZnlpbmcgdGhlIGN1cnJlbnQgZnVuY3Rp b24gd2lsbCBicmVhayBBQkkg4pi5Lg0KDQo+DQo+MikgV2hhdCBpcyBhIHJlYWwgd29ybGQgdXNl IGNhc2UgZm9yIHRoYXQ/IFVzdWFsbHkgcmV0dXJuZWQgdmFsdWUgaXMNCj51c2VkIGFzIGFuIGlu ZGV4IGluIGFuIGFycmF5IG9mIG5leHRfaG9wIHN0cnVjdHMuDQoNCklmIHdlIHRha2UgbDNmd2Qg YXMgYW4gZXhhbXBsZSB0aGUgbmV4dCBob3AgaG9sZHMgZndkIHBvcnRfaWQgd2hlcmVhcyB0aGUg ZGVmYXVsdCB2YWx1ZSANClBhc3NlZCBob2xkcyBtYnVmLT5wb3J0LiBUaGlzIGFsbG93cyBUeCB3 aXRob3V0IGhhdmluZyBhIGJyYW5jaC4gDQoNCkV2ZW50IGRldmljZXMgY2FuIGFnZ3JlZ2F0ZSBw YWNrZXRzIGZyb20gbXVsdGlwbGUgZXRoZXJuZXQgcG9ydHMgYW5kIHNjaGVkdWxlIHRoZW0gb24g DQphIGNvcmUuIFRoZSBjdXJyZW50IEFQSSByZXF1aXJlcyB1cyB0byBwYXNzIGEgQkFEX1BPUlQg YW5kIGNvbXBhcmUgdGhlIHJlc3VsdCBmb3IgZXZlcnkgDQpwYWNrZXQgYnV0IGlmIHdlIGFyZSBh bGxvd2VkIHRvIHBhc3MgNCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMgd2UgY291bGQgc2VhbWxl c3NseSBzZW5kIA0KdGhlbSBmb3IgVHguDQoNCj4NCj4zKSBZb3UgY2FuIGhhdmUgdGhlIHNhbWUg cmVzdWx0IGJ5IHVzaW5nIHNwZWNpYWwgdW51c2VkIGRlZnYgYW5kDQo+cGNtcGVxZC92cGJsZW5k ZCBvbiBhIGhvcFs0XSBhZnRlciBsb29rdXANCg0KWWVzLCBidXQgc2FkbHkgdGhhdCB3b3VsZCBi ZSBhcmNoaXRlY3R1cmUgZGVwZW5kZWQuDQoNCj4NCj5PbiAxMS8wMS8yMDIwIDE2OjA4LCBwYmhh Z2F2YXR1bGFAbWFydmVsbC5jb20gd3JvdGU6DQo+PiBGcm9tOiBQYXZhbiBOaWtoaWxlc2ggPHBi aGFnYXZhdHVsYUBtYXJ2ZWxsLmNvbT4NCj4+DQo+PiBBZGQgbG9va3VwIHg0IHdpdGggeDQgZGVm YXVsdCB2YWx1ZXMuDQo+PiBUaGlzIGNhbiBiZSB1c2VkIGluIHVzZWNhc2VzIHdoZXJlIHdlIGhh dmUgdG8gcHJvY2VzcyAgYnVyc3Qgb2YNCj5wYWNrZXRzDQo+PiBmcm9tIGRpZmZlcmVudCBwb3J0 cy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBQYXZhbiBOaWtoaWxlc2ggPHBiaGFnYXZhdHVsYUBt YXJ2ZWxsLmNvbT4NCj4+IC0tLQ0KPj4gICBhcHAvdGVzdC90ZXN0X2xwbV9wZXJmLmMgICAgICAg ICB8ICAzMSArKysrKysrKysNCj4+ICAgbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oICAgICAgICAg fCAgMjMgKysrKysrKw0KPj4gICBsaWIvbGlicnRlX2xwbS9ydGVfbHBtX2FsdGl2ZWMuaCB8IDEw OQ0KPisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICAgbGliL2xpYnJ0ZV9scG0v cnRlX2xwbV9uZW9uLmggICAgfCAxMDINCj4rKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K Pj4gICBsaWIvbGlicnRlX2xwbS9ydGVfbHBtX3NzZS5oICAgICB8IDEwNA0KPisrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQo+PiAgIDUgZmlsZXMgY2hhbmdlZCwgMzY5IGluc2VydGlvbnMo KykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvdGVzdF9scG1fcGVyZi5jIGIvYXBwL3Rl c3QvdGVzdF9scG1fcGVyZi5jDQo+PiBpbmRleCBhMjU3OGZlOTAuLjhlOWQ0YzdlYiAxMDA2NDQN Cj4+IC0tLSBhL2FwcC90ZXN0L3Rlc3RfbHBtX3BlcmYuYw0KPj4gKysrIGIvYXBwL3Rlc3QvdGVz dF9scG1fcGVyZi5jDQo+PiBAQCAtNDYwLDYgKzQ2MCwzNyBAQCB0ZXN0X2xwbV9wZXJmKHZvaWQp DQo+PiAgIAkJCShkb3VibGUpdG90YWxfdGltZSAvICgoZG91YmxlKUlURVJBVElPTlMgKg0KPkJB VENIX1NJWkUpLA0KPj4gICAJCQkoY291bnQgKiAxMDAuMCkgLyAoZG91YmxlKShJVEVSQVRJT05T ICoNCj5CQVRDSF9TSVpFKSk7DQo+Pg0KPj4gKwkvKiBNZWFzdXJlIExvb2t1cFg0IERlZmF1bHRY NCAqLw0KPj4gKwl0b3RhbF90aW1lID0gMDsNCj4+ICsJY291bnQgPSAwOw0KPj4gKwl1aW50MzJf dCBkZWZbNF0gPSB7VUlOVDMyX01BWCwgVUlOVDMyX01BWCwgVUlOVDMyX01BWCwNCj5VSU5UMzJf TUFYfTsNCj4+ICsJZm9yIChpID0gMDsgaSA8IElURVJBVElPTlM7IGkrKykgew0KPj4gKwkJc3Rh dGljIHVpbnQzMl90IGlwX2JhdGNoW0JBVENIX1NJWkVdOw0KPj4gKwkJdWludDMyX3QgbmV4dF9o b3BzWzRdOw0KPj4gKw0KPj4gKwkJLyogQ3JlYXRlIGFycmF5IG9mIHJhbmRvbSBJUCBhZGRyZXNz ZXMgKi8NCj4+ICsJCWZvciAoaiA9IDA7IGogPCBCQVRDSF9TSVpFOyBqKyspDQo+PiArCQkJaXBf YmF0Y2hbal0gPSBydGVfcmFuZCgpOw0KPj4gKw0KPj4gKwkJLyogTG9va3VwIHBlciBiYXRjaCAq Lw0KPj4gKwkJYmVnaW4gPSBydGVfcmR0c2MoKTsNCj4+ICsJCWZvciAoaiA9IDA7IGogPCBCQVRD SF9TSVpFOyBqICs9IFJURV9ESU0obmV4dF9ob3BzKSkgew0KPj4gKwkJCXVuc2lnbmVkIGludCBr Ow0KPj4gKwkJCXhtbV90IGlweDQ7DQo+PiArDQo+PiArCQkJaXB4NCA9IHZlY3RfbG9hZHVfc2ls MTI4KCh4bW1fdCAqKShpcF9iYXRjaCArDQo+aikpOw0KPj4gKwkJCWlweDQgPSAqKHhtbV90ICop KGlwX2JhdGNoICsgaik7DQo+PiArCQkJcnRlX2xwbV9sb29rdXB4NF9kZWZ4NChscG0sIGlweDQs IG5leHRfaG9wcywNCj5kZWYpOw0KPj4gKwkJCWZvciAoayA9IDA7IGsgPCBSVEVfRElNKG5leHRf aG9wcyk7IGsrKykNCj4+ICsJCQkJaWYgKHVubGlrZWx5KG5leHRfaG9wc1trXSA9PQ0KPlVJTlQz Ml9NQVgpKQ0KPj4gKwkJCQkJY291bnQrKzsNCj4+ICsJCX0NCj4+ICsNCj4+ICsJCXRvdGFsX3Rp bWUgKz0gcnRlX3JkdHNjKCkgLSBiZWdpbjsNCj4+ICsJfQ0KPj4gKwlwcmludGYoIkxQTSBMb29r dXBYNCBEZWZ4NDogJS4xZiBjeWNsZXMgKGZhaWxzID0gJS4xZiUlKVxuIiwNCj4+ICsJCQkoZG91 YmxlKXRvdGFsX3RpbWUgLyAoKGRvdWJsZSlJVEVSQVRJT05TICoNCj5CQVRDSF9TSVpFKSwNCj4+ ICsJCQkoY291bnQgKiAxMDAuMCkgLyAoZG91YmxlKShJVEVSQVRJT05TICoNCj5CQVRDSF9TSVpF KSk7DQo+PiAgIAkvKiBNZWFzdXJlIERlbGV0ZSAqLw0KPj4gICAJc3RhdHVzID0gMDsNCj4+ICAg CWJlZ2luID0gcnRlX3JkdHNjKCk7DQo+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9scG0vcnRl X2xwbS5oIGIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oDQo+PiBpbmRleCBiOWQ0OWFjODcuLmU2 NmI0M2UwNiAxMDA2NDQNCj4+IC0tLSBhL2xpYi9saWJydGVfbHBtL3J0ZV9scG0uaA0KPj4gKysr IGIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oDQo+PiBAQCAtMzcwLDYgKzM3MCwyOSBAQCBzdGF0 aWMgaW5saW5lIHZvaWQNCj4+ICAgcnRlX2xwbV9sb29rdXB4NChjb25zdCBzdHJ1Y3QgcnRlX2xw bSAqbHBtLCB4bW1fdCBpcCwgdWludDMyX3QNCj5ob3BbNF0sDQo+PiAgIAl1aW50MzJfdCBkZWZ2 KTsNCj4+DQo+PiArLyoqDQo+PiArICogTG9va3VwIGZvdXIgSVAgYWRkcmVzc2VzIGluIGFuIExQ TSB0YWJsZS4NCj4+ICsgKg0KPj4gKyAqIEBwYXJhbSBscG0NCj4+ICsgKiAgIExQTSBvYmplY3Qg aGFuZGxlDQo+PiArICogQHBhcmFtIGlwDQo+PiArICogICBGb3VyIElQcyB0byBiZSBsb29rZWQg dXAgaW4gdGhlIExQTSB0YWJsZQ0KPj4gKyAqIEBwYXJhbSBob3ANCj4+ICsgKiAgIE5leHQgaG9w IG9mIHRoZSBtb3N0IHNwZWNpZmljIHJ1bGUgZm91bmQgZm9yIElQICh2YWxpZCBvbiBsb29rdXAN Cj5oaXQgb25seSkuDQo+PiArICogICBUaGlzIGlzIGFuIDQgZWxlbWVudHMgYXJyYXkgb2YgdHdv IGJ5dGUgdmFsdWVzLg0KPj4gKyAqICAgSWYgdGhlIGxvb2t1cCB3YXMgc3VjY2Vzc2Z1bCBmb3Ig dGhlIGdpdmVuIElQLCB0aGVuIGxlYXN0IHNpZ25pZmljYW50DQo+Ynl0ZQ0KPj4gKyAqICAgb2Yg dGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpcyB0aGUgIGFjdHVhbCBuZXh0IGhvcCBhbmQgdGhl DQo+bW9zdA0KPj4gKyAqICAgc2lnbmlmaWNhbnQgYnl0ZSBpcyB6ZXJvLg0KPj4gKyAqICAgSWYg dGhlIGxvb2t1cCBmb3IgdGhlIGdpdmVuIElQIGZhaWxlZCwgdGhlbiBjb3JyZXNwb25kaW5nIGVs ZW1lbnQNCj53b3VsZA0KPj4gKyAqICAgY29udGFpbiBkZWZhdWx0IHZhbHVlLCBzZWUgZGVzY3Jp cHRpb24gb2YgdGhlbiBuZXh0IHBhcmFtZXRlci4NCj4+ICsgKiBAcGFyYW0gZGVmdg0KPj4gKyAq ICAgRGVmYXVsdCB2YWx1ZVtdIHRvIHBvcHVsYXRlIGludG8gY29ycmVzcG9uZGluZyBlbGVtZW50 IG9mIGhvcFtdDQo+YXJyYXksDQo+PiArICogICBpZiBsb29rdXAgd291bGQgZmFpbC4NCj4+ICsg Ki8NCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4+ICtydGVfbHBtX2xvb2t1cHg0X2RlZng0KGNv bnN0IHN0cnVjdCBydGVfbHBtICpscG0sIHhtbV90IGlwLA0KPnVpbnQzMl90IGhvcFs0XSwNCj4+ ICsJdWludDMyX3QgZGVmdls0XSk7DQo+PiArDQo+PiAgICNpZiBkZWZpbmVkKFJURV9BUkNIX0FS TSkgfHwgZGVmaW5lZChSVEVfQVJDSF9BUk02NCkNCj4+ICAgI2luY2x1ZGUgInJ0ZV9scG1fbmVv bi5oIg0KPj4gICAjZWxpZiBkZWZpbmVkKFJURV9BUkNIX1BQQ182NCkNCj4+IGRpZmYgLS1naXQg YS9saWIvbGlicnRlX2xwbS9ydGVfbHBtX2FsdGl2ZWMuaA0KPmIvbGliL2xpYnJ0ZV9scG0vcnRl X2xwbV9hbHRpdmVjLmgNCj4+IGluZGV4IDIyOGM0MWIzOC4uMWFmYzdiZDc0IDEwMDY0NA0KPj4g LS0tIGEvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbV9hbHRpdmVjLmgNCj4+ICsrKyBiL2xpYi9saWJy dGVfbHBtL3J0ZV9scG1fYWx0aXZlYy5oDQo+PiBAQCAtMTIwLDYgKzEyMCwxMTUgQEAgcnRlX2xw bV9sb29rdXB4NChjb25zdCBzdHJ1Y3QgcnRlX2xwbQ0KPipscG0sIHhtbV90IGlwLCB1aW50MzJf dCBob3BbNF0sDQo+PiAgIAlob3BbM10gPSAodGJsWzNdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VT UykgPyB0YmxbM10gJg0KPjB4MDBGRkZGRkYgOiBkZWZ2Ow0KPj4gICB9DQo+Pg0KPj4gK3N0YXRp YyBpbmxpbmUgdm9pZA0KPj4gK3J0ZV9scG1fbG9va3VweDRfZGVmeDQoY29uc3Qgc3RydWN0IHJ0 ZV9scG0gKmxwbSwgeG1tX3QgaXAsDQo+dWludDMyX3QgaG9wWzRdLA0KPj4gKwl1aW50MzJfdCBk ZWZ2WzRdKQ0KPj4gK3sNCj4+ICsJdmVjdG9yIHNpZ25lZCBpbnQgaTI0Ow0KPj4gKwlydGVfeG1t X3QgaTg7DQo+PiArCXVpbnQzMl90IHRibFs0XTsNCj4+ICsJdWludDY0X3QgaWR4LCBwdCwgcHQy Ow0KPj4gKwljb25zdCB1aW50MzJfdCAqcHRibDsNCj4+ICsNCj4+ICsJY29uc3QgdWludDMyX3Qg bWFzayA9IFVJTlQ4X01BWDsNCj4+ICsJY29uc3QgdmVjdG9yIHNpZ25lZCBpbnQgbWFzazggPSAo eG1tX3Qpe21hc2ssIG1hc2ssIG1hc2ssDQo+bWFza307DQo+PiArDQo+PiArCS8qDQo+PiArCSAq IFJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0sgZm9yIDIgTFBNIGVudHJpZXMNCj4+ICsJ ICogYXMgb25lIDY0LWJpdCB2YWx1ZSAoMHgwMzAwMDAwMDAzMDAwMDAwKS4NCj4+ICsJICovDQo+ PiArCWNvbnN0IHVpbnQ2NF90IG1hc2tfeHYgPQ0KPj4gKwkJKCh1aW50NjRfdClSVEVfTFBNX1ZB TElEX0VYVF9FTlRSWV9CSVRNQVNLIHwNCj4+ICsJCSh1aW50NjRfdClSVEVfTFBNX1ZBTElEX0VY VF9FTlRSWV9CSVRNQVNLIDw8DQo+MzIpOw0KPj4gKw0KPj4gKwkvKg0KPj4gKwkgKiBSVEVfTFBN X0xPT0tVUF9TVUNDRVNTIGZvciAyIExQTSBlbnRyaWVzDQo+PiArCSAqIGFzIG9uZSA2NC1iaXQg dmFsdWUgKDB4MDEwMDAwMDAwMTAwMDAwMCkuDQo+PiArCSAqLw0KPj4gKwljb25zdCB1aW50NjRf dCBtYXNrX3YgPQ0KPj4gKwkJKCh1aW50NjRfdClSVEVfTFBNX0xPT0tVUF9TVUNDRVNTIHwNCj4+ ICsJCSh1aW50NjRfdClSVEVfTFBNX0xPT0tVUF9TVUNDRVNTIDw8IDMyKTsNCj4+ICsNCj4+ICsJ LyogZ2V0IDQgaW5kZXhlcyBmb3IgdGJsMjRbXS4gKi8NCj4+ICsJaTI0ID0gdmVjX3NyKCh4bW1f dCkgaXAsDQo+PiArCQkodmVjdG9yIHVuc2lnbmVkIGludCl7Q0hBUl9CSVQsIENIQVJfQklULCBD SEFSX0JJVCwNCj5DSEFSX0JJVH0pOw0KPj4gKw0KPj4gKwkvKiBleHRyYWN0IHZhbHVlcyBmcm9t IHRibDI0W10gKi8NCj4+ICsJaWR4ID0gKHVpbnQzMl90KWkyNFswXTsNCj4+ICsJaWR4ID0gaWR4 IDwgKDE8PDI0KSA/IGlkeCA6ICgxPDwyNCktMTsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJf dCAqKSZscG0tPnRibDI0W2lkeF07DQo+PiArCXRibFswXSA9ICpwdGJsOw0KPj4gKw0KPj4gKwlp ZHggPSAodWludDMyX3QpIGkyNFsxXTsNCj4+ICsJaWR4ID0gaWR4IDwgKDE8PDI0KSA/IGlkeCA6 ICgxPDwyNCktMTsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDI0W2lk eF07DQo+PiArCXRibFsxXSA9ICpwdGJsOw0KPj4gKw0KPj4gKwlpZHggPSAodWludDMyX3QpIGky NFsyXTsNCj4+ICsJaWR4ID0gaWR4IDwgKDE8PDI0KSA/IGlkeCA6ICgxPDwyNCktMTsNCj4+ICsJ cHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDI0W2lkeF07DQo+PiArCXRibFsyXSA9 ICpwdGJsOw0KPj4gKw0KPj4gKwlpZHggPSAodWludDMyX3QpIGkyNFszXTsNCj4+ICsJaWR4ID0g aWR4IDwgKDE8PDI0KSA/IGlkeCA6ICgxPDwyNCktMTsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50 MzJfdCAqKSZscG0tPnRibDI0W2lkeF07DQo+PiArCXRibFszXSA9ICpwdGJsOw0KPj4gKw0KPj4g KwkvKiBnZXQgNCBpbmRleGVzIGZvciB0Ymw4W10uICovDQo+PiArCWk4LnggPSB2ZWNfYW5kKGlw LCBtYXNrOCk7DQo+PiArDQo+PiArCXB0ID0gKHVpbnQ2NF90KXRibFswXSB8DQo+PiArCQkodWlu dDY0X3QpdGJsWzFdIDw8IDMyOw0KPj4gKwlwdDIgPSAodWludDY0X3QpdGJsWzJdIHwNCj4+ICsJ CSh1aW50NjRfdCl0YmxbM10gPDwgMzI7DQo+PiArDQo+PiArCS8qIHNlYXJjaCBzdWNjZXNzZnVs bHkgZmluaXNoZWQgZm9yIGFsbCA0IElQIGFkZHJlc3Nlcy4gKi8NCj4+ICsJaWYgKGxpa2VseSgo cHQgJiBtYXNrX3h2KSA9PSBtYXNrX3YpICYmDQo+PiArCQkJbGlrZWx5KChwdDIgJiBtYXNrX3h2 KSA9PSBtYXNrX3YpKSB7DQo+PiArCQkqKHVpbnQ2NF90ICopaG9wID0gcHQgJiBSVEVfTFBNX01B U0tYNF9SRVM7DQo+PiArCQkqKHVpbnQ2NF90ICopKGhvcCArIDIpID0gcHQyICYgUlRFX0xQTV9N QVNLWDRfUkVTOw0KPj4gKwkJcmV0dXJuOw0KPj4gKwl9DQo+PiArDQo+PiArCWlmICh1bmxpa2Vs eSgocHQgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4gKwkJCVJURV9M UE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMF0gPSBpOC51MzJb MF0gKw0KPj4gKwkJCSh1aW50OF90KXRibFswXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQX05VTV9F TlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhbaTgudTMy WzBdXTsNCj4+ICsJCXRibFswXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxpa2VseSgo cHQgPj4gMzIgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKQ0KPj09DQo+PiArCQkJ UlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykpIHsNCj4+ICsJCWk4LnUzMlsxXSA9IGk4 LnUzMlsxXSArDQo+PiArCQkJKHVpbnQ4X3QpdGJsWzFdICoNCj5SVEVfTFBNX1RCTDhfR1JPVVBf TlVNX0VOVFJJRVM7DQo+PiArCQlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICopJmxwbS0+dGJsOFtp OC51MzJbMV1dOw0KPj4gKwkJdGJsWzFdID0gKnB0Ymw7DQo+PiArCX0NCj4+ICsJaWYgKHVubGlr ZWx5KChwdDIgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4gKwkJCVJU RV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMl0gPSBpOC51 MzJbMl0gKw0KPj4gKwkJCSh1aW50OF90KXRibFsyXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQX05V TV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhbaTgu dTMyWzJdXTsNCj4+ICsJCXRibFsyXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxpa2Vs eSgocHQyID4+IDMyICYNCj5SVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4g KwkJCVJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbM10g PSBpOC51MzJbM10gKw0KPj4gKwkJCSh1aW50OF90KXRibFszXSAqDQo+UlRFX0xQTV9UQkw4X0dS T1VQX05VTV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRi bDhbaTgudTMyWzNdXTsNCj4+ICsJCXRibFszXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArDQo+PiAr CWhvcFswXSA9ICh0YmxbMF0gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFswXSAmDQo+ MHgwMEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbMF07DQo+PiArCWhvcFsxXSA9ICh0YmxbMV0gJiBS VEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFsxXSAmDQo+MHgwMEZGRkZGRiA6DQo+PiArDQo+ CWRlZnZbMV07DQo+PiArCWhvcFsyXSA9ICh0YmxbMl0gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNT KSA/IHRibFsyXSAmDQo+MHgwMEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbMl07DQo+PiArCWhvcFsz XSA9ICh0YmxbM10gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFszXSAmDQo+MHgwMEZG RkZGRiA6DQo+PiArDQo+CWRlZnZbM107DQo+PiArfQ0KPj4gKw0KPj4gICAjaWZkZWYgX19jcGx1 c3BsdXMNCj4+ICAgfQ0KPj4gICAjZW5kaWYNCj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2xw bS9ydGVfbHBtX25lb24uaA0KPmIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbV9uZW9uLmgNCj4+IGlu ZGV4IDZjMTMxZDMxMi4uNmVmNjM1YjE4IDEwMDY0NA0KPj4gLS0tIGEvbGliL2xpYnJ0ZV9scG0v cnRlX2xwbV9uZW9uLmgNCj4+ICsrKyBiL2xpYi9saWJydGVfbHBtL3J0ZV9scG1fbmVvbi5oDQo+ PiBAQCAtMTEzLDYgKzExMywxMDggQEAgcnRlX2xwbV9sb29rdXB4NChjb25zdCBzdHJ1Y3QgcnRl X2xwbQ0KPipscG0sIHhtbV90IGlwLCB1aW50MzJfdCBob3BbNF0sDQo+PiAgIAlob3BbM10gPSAo dGJsWzNdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbM10gJg0KPjB4MDBGRkZGRkYg OiBkZWZ2Ow0KPj4gICB9DQo+Pg0KPj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPj4gK3J0ZV9scG1f bG9va3VweDRfZGVmeDQoY29uc3Qgc3RydWN0IHJ0ZV9scG0gKmxwbSwgeG1tX3QgaXAsDQo+dWlu dDMyX3QgaG9wWzRdLA0KPj4gKwl1aW50MzJfdCBkZWZ2WzRdKQ0KPj4gK3sNCj4+ICsJdWludDMy eDRfdCBpMjQ7DQo+PiArCXJ0ZV94bW1fdCBpODsNCj4+ICsJdWludDMyX3QgdGJsWzRdOw0KPj4g Kwl1aW50NjRfdCBpZHgsIHB0LCBwdDI7DQo+PiArCWNvbnN0IHVpbnQzMl90ICpwdGJsOw0KPj4g Kw0KPj4gKwljb25zdCB1aW50MzJfdCBtYXNrID0gVUlOVDhfTUFYOw0KPj4gKwljb25zdCBpbnQz Mng0X3QgbWFzazggPSB2ZHVwcV9uX3MzMihtYXNrKTsNCj4+ICsNCj4+ICsJLyoNCj4+ICsJICog UlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSyBmb3IgMiBMUE0gZW50cmllcw0KPj4gKwkg KiBhcyBvbmUgNjQtYml0IHZhbHVlICgweDAzMDAwMDAwMDMwMDAwMDApLg0KPj4gKwkgKi8NCj4+ ICsJY29uc3QgdWludDY0X3QgbWFza194diA9DQo+PiArCQkoKHVpbnQ2NF90KVJURV9MUE1fVkFM SURfRVhUX0VOVFJZX0JJVE1BU0sgfA0KPj4gKwkJKHVpbnQ2NF90KVJURV9MUE1fVkFMSURfRVhU X0VOVFJZX0JJVE1BU0sgPDwNCj4zMik7DQo+PiArDQo+PiArCS8qDQo+PiArCSAqIFJURV9MUE1f TE9PS1VQX1NVQ0NFU1MgZm9yIDIgTFBNIGVudHJpZXMNCj4+ICsJICogYXMgb25lIDY0LWJpdCB2 YWx1ZSAoMHgwMTAwMDAwMDAxMDAwMDAwKS4NCj4+ICsJICovDQo+PiArCWNvbnN0IHVpbnQ2NF90 IG1hc2tfdiA9DQo+PiArCQkoKHVpbnQ2NF90KVJURV9MUE1fTE9PS1VQX1NVQ0NFU1MgfA0KPj4g KwkJKHVpbnQ2NF90KVJURV9MUE1fTE9PS1VQX1NVQ0NFU1MgPDwgMzIpOw0KPj4gKw0KPj4gKwkv KiBnZXQgNCBpbmRleGVzIGZvciB0YmwyNFtdLiAqLw0KPj4gKwlpMjQgPSB2c2hycV9uX3UzMigo dWludDMyeDRfdClpcCwgQ0hBUl9CSVQpOw0KPj4gKw0KPj4gKwkvKiBleHRyYWN0IHZhbHVlcyBm cm9tIHRibDI0W10gKi8NCj4+ICsJaWR4ID0gdmdldHFfbGFuZV91NjQoKHVpbnQ2NHgyX3QpaTI0 LCAwKTsNCj4+ICsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDI0Wyh1 aW50MzJfdClpZHhdOw0KPj4gKwl0YmxbMF0gPSAqcHRibDsNCj4+ICsJcHRibCA9IChjb25zdCB1 aW50MzJfdCAqKSZscG0tPnRibDI0W2lkeCA+PiAzMl07DQo+PiArCXRibFsxXSA9ICpwdGJsOw0K Pj4gKw0KPj4gKwlpZHggPSB2Z2V0cV9sYW5lX3U2NCgodWludDY0eDJfdClpMjQsIDEpOw0KPj4g Kw0KPj4gKwlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICopJmxwbS0+dGJsMjRbKHVpbnQzMl90KWlk eF07DQo+PiArCXRibFsyXSA9ICpwdGJsOw0KPj4gKwlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICop JmxwbS0+dGJsMjRbaWR4ID4+IDMyXTsNCj4+ICsJdGJsWzNdID0gKnB0Ymw7DQo+PiArDQo+PiAr CS8qIGdldCA0IGluZGV4ZXMgZm9yIHRibDhbXS4gKi8NCj4+ICsJaTgueCA9IHZhbmRxX3MzMihp cCwgbWFzazgpOw0KPj4gKw0KPj4gKwlwdCA9ICh1aW50NjRfdCl0YmxbMF0gfA0KPj4gKwkJKHVp bnQ2NF90KXRibFsxXSA8PCAzMjsNCj4+ICsJcHQyID0gKHVpbnQ2NF90KXRibFsyXSB8DQo+PiAr CQkodWludDY0X3QpdGJsWzNdIDw8IDMyOw0KPj4gKw0KPj4gKwkvKiBzZWFyY2ggc3VjY2Vzc2Z1 bGx5IGZpbmlzaGVkIGZvciBhbGwgNCBJUCBhZGRyZXNzZXMuICovDQo+PiArCWlmIChsaWtlbHko KHB0ICYgbWFza194dikgPT0gbWFza192KSAmJg0KPj4gKwkJCWxpa2VseSgocHQyICYgbWFza194 dikgPT0gbWFza192KSkgew0KPj4gKwkJKih1aW50NjRfdCAqKWhvcCA9IHB0ICYgUlRFX0xQTV9N QVNLWDRfUkVTOw0KPj4gKwkJKih1aW50NjRfdCAqKShob3AgKyAyKSA9IHB0MiAmIFJURV9MUE1f TUFTS1g0X1JFUzsNCj4+ICsJCXJldHVybjsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlpZiAodW5saWtl bHkoKHB0ICYgUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykgPT0NCj4+ICsJCQlSVEVf TFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSkgew0KPj4gKwkJaTgudTMyWzBdID0gaTgudTMy WzBdICsNCj4+ICsJCQkodWludDhfdCl0YmxbMF0gKg0KPlJURV9MUE1fVEJMOF9HUk9VUF9OVU1f RU5UUklFUzsNCj4+ICsJCXB0YmwgPSAoY29uc3QgdWludDMyX3QgKikmbHBtLT50Ymw4W2k4LnUz MlswXV07DQo+PiArCQl0YmxbMF0gPSAqcHRibDsNCj4+ICsJfQ0KPj4gKwlpZiAodW5saWtlbHko KHB0ID4+IDMyICYgUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykNCj49PQ0KPj4gKwkJ CVJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMV0gPSBp OC51MzJbMV0gKw0KPj4gKwkJCSh1aW50OF90KXRibFsxXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQ X05VTV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhb aTgudTMyWzFdXTsNCj4+ICsJCXRibFsxXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxp a2VseSgocHQyICYgUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykgPT0NCj4+ICsJCQlS VEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSkgew0KPj4gKwkJaTgudTMyWzJdID0gaTgu dTMyWzJdICsNCj4+ICsJCQkodWludDhfdCl0YmxbMl0gKg0KPlJURV9MUE1fVEJMOF9HUk9VUF9O VU1fRU5UUklFUzsNCj4+ICsJCXB0YmwgPSAoY29uc3QgdWludDMyX3QgKikmbHBtLT50Ymw4W2k4 LnUzMlsyXV07DQo+PiArCQl0YmxbMl0gPSAqcHRibDsNCj4+ICsJfQ0KPj4gKwlpZiAodW5saWtl bHkoKHB0MiA+PiAzMiAmDQo+UlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykgPT0NCj4+ ICsJCQlSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSkgew0KPj4gKwkJaTgudTMyWzNd ID0gaTgudTMyWzNdICsNCj4+ICsJCQkodWludDhfdCl0YmxbM10gKg0KPlJURV9MUE1fVEJMOF9H Uk9VUF9OVU1fRU5UUklFUzsNCj4+ICsJCXB0YmwgPSAoY29uc3QgdWludDMyX3QgKikmbHBtLT50 Ymw4W2k4LnUzMlszXV07DQo+PiArCQl0YmxbM10gPSAqcHRibDsNCj4+ICsJfQ0KPj4gKw0KPj4g Kwlob3BbMF0gPSAodGJsWzBdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbMF0gJg0K PjB4MDBGRkZGRkYgOg0KPj4gKw0KPglkZWZ2WzBdOw0KPj4gKwlob3BbMV0gPSAodGJsWzFdICYg UlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbMV0gJg0KPjB4MDBGRkZGRkYgOg0KPj4gKw0K PglkZWZ2WzFdOw0KPj4gKwlob3BbMl0gPSAodGJsWzJdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VT UykgPyB0YmxbMl0gJg0KPjB4MDBGRkZGRkYgOg0KPj4gKw0KPglkZWZ2WzJdOw0KPj4gKwlob3Bb M10gPSAodGJsWzNdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbM10gJg0KPjB4MDBG RkZGRkYgOg0KPj4gKw0KPglkZWZ2WzNdOw0KPj4gK30NCj4+ICsNCj4+ICAgI2lmZGVmIF9fY3Bs dXNwbHVzDQo+PiAgIH0NCj4+ICAgI2VuZGlmDQo+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9s cG0vcnRlX2xwbV9zc2UuaA0KPmIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbV9zc2UuaA0KPj4gaW5k ZXggNDQ3NzBiNmZmLi42ZWYxNTgxNmMgMTAwNjQ0DQo+PiAtLS0gYS9saWIvbGlicnRlX2xwbS9y dGVfbHBtX3NzZS5oDQo+PiArKysgYi9saWIvbGlicnRlX2xwbS9ydGVfbHBtX3NzZS5oDQo+PiBA QCAtMTE0LDYgKzExNCwxMTAgQEAgcnRlX2xwbV9sb29rdXB4NChjb25zdCBzdHJ1Y3QgcnRlX2xw bQ0KPipscG0sIHhtbV90IGlwLCB1aW50MzJfdCBob3BbNF0sDQo+PiAgIAlob3BbM10gPSAodGJs WzNdICYgUlRFX0xQTV9MT09LVVBfU1VDQ0VTUykgPyB0YmxbM10gJg0KPjB4MDBGRkZGRkYgOiBk ZWZ2Ow0KPj4gICB9DQo+Pg0KPj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPj4gK3J0ZV9scG1fbG9v a3VweDRfZGVmeDQoY29uc3Qgc3RydWN0IHJ0ZV9scG0gKmxwbSwgeG1tX3QgaXAsDQo+dWludDMy X3QgaG9wWzRdLA0KPj4gKwl1aW50MzJfdCBkZWZ2WzRdKQ0KPj4gK3sNCj4+ICsJX19tMTI4aSBp MjQ7DQo+PiArCXJ0ZV94bW1fdCBpODsNCj4+ICsJdWludDMyX3QgdGJsWzRdOw0KPj4gKwl1aW50 NjRfdCBpZHgsIHB0LCBwdDI7DQo+PiArCWNvbnN0IHVpbnQzMl90ICpwdGJsOw0KPj4gKw0KPj4g Kwljb25zdCBfX20xMjhpIG1hc2s4ID0NCj4+ICsJCV9tbV9zZXRfZXBpMzIoVUlOVDhfTUFYLCBV SU5UOF9NQVgsDQo+VUlOVDhfTUFYLCBVSU5UOF9NQVgpOw0KPj4gKw0KPj4gKwkvKg0KPj4gKwkg KiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLIGZvciAyIExQTSBlbnRyaWVzDQo+PiAr CSAqIGFzIG9uZSA2NC1iaXQgdmFsdWUgKDB4MDMwMDAwMDAwMzAwMDAwMCkuDQo+PiArCSAqLw0K Pj4gKwljb25zdCB1aW50NjRfdCBtYXNrX3h2ID0NCj4+ICsJCSgodWludDY0X3QpUlRFX0xQTV9W QUxJRF9FWFRfRU5UUllfQklUTUFTSyB8DQo+PiArCQkodWludDY0X3QpUlRFX0xQTV9WQUxJRF9F WFRfRU5UUllfQklUTUFTSyA8PA0KPjMyKTsNCj4+ICsNCj4+ICsJLyoNCj4+ICsJICogUlRFX0xQ TV9MT09LVVBfU1VDQ0VTUyBmb3IgMiBMUE0gZW50cmllcw0KPj4gKwkgKiBhcyBvbmUgNjQtYml0 IHZhbHVlICgweDAxMDAwMDAwMDEwMDAwMDApLg0KPj4gKwkgKi8NCj4+ICsJY29uc3QgdWludDY0 X3QgbWFza192ID0NCj4+ICsJCSgodWludDY0X3QpUlRFX0xQTV9MT09LVVBfU1VDQ0VTUyB8DQo+ PiArCQkodWludDY0X3QpUlRFX0xQTV9MT09LVVBfU1VDQ0VTUyA8PCAzMik7DQo+PiArDQo+PiAr CS8qIGdldCA0IGluZGV4ZXMgZm9yIHRibDI0W10uICovDQo+PiArCWkyNCA9IF9tbV9zcmxpX2Vw aTMyKGlwLCBDSEFSX0JJVCk7DQo+PiArDQo+PiArCS8qIGV4dHJhY3QgdmFsdWVzIGZyb20gdGJs MjRbXSAqLw0KPj4gKwlpZHggPSBfbW1fY3Z0c2kxMjhfc2k2NChpMjQpOw0KPj4gKwkvKiBXaXRo IC1PMCBvcHRpb24sIGdjYyA0LjggLSA1LjQgZmFpbHMgdG8gZm9sZCBzaXplb2YoKSBpbnRvIGEN Cj5jb25zdGFudCAqLw0KPj4gKwlpMjQgPSBfbW1fc3JsaV9zaTEyOChpMjQsIC8qIHNpemVvZih1 aW50NjRfdCkgKi8gOCk7DQo+PiArDQo+PiArCXB0YmwgPSAoY29uc3QgdWludDMyX3QgKikmbHBt LT50YmwyNFsodWludDMyX3QpaWR4XTsNCj4+ICsJdGJsWzBdID0gKnB0Ymw7DQo+PiArCXB0Ymwg PSAoY29uc3QgdWludDMyX3QgKikmbHBtLT50YmwyNFtpZHggPj4gMzJdOw0KPj4gKwl0YmxbMV0g PSAqcHRibDsNCj4+ICsNCj4+ICsJaWR4ID0gX21tX2N2dHNpMTI4X3NpNjQoaTI0KTsNCj4+ICsN Cj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDI0Wyh1aW50MzJfdClpZHhd Ow0KPj4gKwl0YmxbMl0gPSAqcHRibDsNCj4+ICsJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZs cG0tPnRibDI0W2lkeCA+PiAzMl07DQo+PiArCXRibFszXSA9ICpwdGJsOw0KPj4gKw0KPj4gKwkv KiBnZXQgNCBpbmRleGVzIGZvciB0Ymw4W10uICovDQo+PiArCWk4LnggPSBfbW1fYW5kX3NpMTI4 KGlwLCBtYXNrOCk7DQo+PiArDQo+PiArCXB0ID0gKHVpbnQ2NF90KXRibFswXSB8DQo+PiArCQko dWludDY0X3QpdGJsWzFdIDw8IDMyOw0KPj4gKwlwdDIgPSAodWludDY0X3QpdGJsWzJdIHwNCj4+ ICsJCSh1aW50NjRfdCl0YmxbM10gPDwgMzI7DQo+PiArDQo+PiArCS8qIHNlYXJjaCBzdWNjZXNz ZnVsbHkgZmluaXNoZWQgZm9yIGFsbCA0IElQIGFkZHJlc3Nlcy4gKi8NCj4+ICsJaWYgKGxpa2Vs eSgocHQgJiBtYXNrX3h2KSA9PSBtYXNrX3YpICYmDQo+PiArCQkJbGlrZWx5KChwdDIgJiBtYXNr X3h2KSA9PSBtYXNrX3YpKSB7DQo+PiArCQkqKHVpbnQ2NF90ICopaG9wID0gcHQgJiBSVEVfTFBN X01BU0tYNF9SRVM7DQo+PiArCQkqKHVpbnQ2NF90ICopKGhvcCArIDIpID0gcHQyICYgUlRFX0xQ TV9NQVNLWDRfUkVTOw0KPj4gKwkJcmV0dXJuOw0KPj4gKwl9DQo+PiArDQo+PiArCWlmICh1bmxp a2VseSgocHQgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4gKwkJCVJU RV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMF0gPSBpOC51 MzJbMF0gKw0KPj4gKwkJCSh1aW50OF90KXRibFswXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQX05V TV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhbaTgu dTMyWzBdXTsNCj4+ICsJCXRibFswXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxpa2Vs eSgocHQgPj4gMzIgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKQ0KPj09DQo+PiAr CQkJUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykpIHsNCj4+ICsJCWk4LnUzMlsxXSA9 IGk4LnUzMlsxXSArDQo+PiArCQkJKHVpbnQ4X3QpdGJsWzFdICoNCj5SVEVfTFBNX1RCTDhfR1JP VVBfTlVNX0VOVFJJRVM7DQo+PiArCQlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICopJmxwbS0+dGJs OFtpOC51MzJbMV1dOw0KPj4gKwkJdGJsWzFdID0gKnB0Ymw7DQo+PiArCX0NCj4+ICsJaWYgKHVu bGlrZWx5KChwdDIgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KPj4gKwkJ CVJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJbMl0gPSBp OC51MzJbMl0gKw0KPj4gKwkJCSh1aW50OF90KXRibFsyXSAqDQo+UlRFX0xQTV9UQkw4X0dST1VQ X05VTV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0tPnRibDhb aTgudTMyWzJdXTsNCj4+ICsJCXRibFsyXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArCWlmICh1bmxp a2VseSgocHQyID4+IDMyICYNCj5SVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0K Pj4gKwkJCVJURV9MUE1fVkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+PiArCQlpOC51MzJb M10gPSBpOC51MzJbM10gKw0KPj4gKwkJCSh1aW50OF90KXRibFszXSAqDQo+UlRFX0xQTV9UQkw4 X0dST1VQX05VTV9FTlRSSUVTOw0KPj4gKwkJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSZscG0t PnRibDhbaTgudTMyWzNdXTsNCj4+ICsJCXRibFszXSA9ICpwdGJsOw0KPj4gKwl9DQo+PiArDQo+ PiArCWhvcFswXSA9ICh0YmxbMF0gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFswXSAm DQo+MHgwMEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbMF07DQo+PiArCWhvcFsxXSA9ICh0YmxbMV0g JiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFsxXSAmDQo+MHgwMEZGRkZGRiA6DQo+PiAr DQo+CWRlZnZbMV07DQo+PiArCWhvcFsyXSA9ICh0YmxbMl0gJiBSVEVfTFBNX0xPT0tVUF9TVUND RVNTKSA/IHRibFsyXSAmDQo+MHgwMEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbMl07DQo+PiArCWhv cFszXSA9ICh0YmxbM10gJiBSVEVfTFBNX0xPT0tVUF9TVUNDRVNTKSA/IHRibFszXSAmDQo+MHgw MEZGRkZGRiA6DQo+PiArDQo+CWRlZnZbM107DQo+PiArfQ0KPj4gKw0KPj4gICAjaWZkZWYgX19j cGx1c3BsdXMNCj4+ICAgfQ0KPj4gICAjZW5kaWYNCj4NCj4tLQ0KPlJlZ2FyZHMsDQo+VmxhZGlt aXINCg0K