From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70C0AC31E5B for ; Mon, 17 Jun 2019 19:07:45 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2DFC52082C for ; Mon, 17 Jun 2019 19:07:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="yE2nzYX8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2DFC52082C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hcwyO-0002pD-UE; Mon, 17 Jun 2019 19:07:20 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hcwyN-0002p8-K2 for xen-devel@lists.xenproject.org; Mon, 17 Jun 2019 19:07:19 +0000 X-Inumbo-ID: 1ff04f9a-9133-11e9-8980-bc764e045a96 Received: from NAM03-DM3-obe.outbound.protection.outlook.com (unknown [2a01:111:f400:fe49::62d]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 1ff04f9a-9133-11e9-8980-bc764e045a96; Mon, 17 Jun 2019 19:07:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=boFITFMPMGTpKagYde6ME5VgDtKpWGp52MNmiJwL0GA=; b=yE2nzYX8Gd5qKj6aP5H7mgqI9lReViNoKv6zBp/rYcm4fqBj8RhN8XloDOHFM5tDUIQtmLhWIyGrkq5n+bQ89Ho2cnVs2xSQjill8ecH348GgHcW6yq/u2uQk8+hbGhwCPeWMxVQaqwt3RxAqDIhQ+RRK/iQr/F0Zxwe5iWAZKs= Received: from DM6PR12MB3515.namprd12.prod.outlook.com (20.179.106.151) by DM6PR12MB3082.namprd12.prod.outlook.com (20.178.30.204) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.11; Mon, 17 Jun 2019 19:07:16 +0000 Received: from DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::9dea:57a2:93ff:57b0]) by DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::9dea:57a2:93ff:57b0%3]) with mapi id 15.20.1987.014; Mon, 17 Jun 2019 19:07:16 +0000 From: "Woods, Brian" To: Jan Beulich Thread-Topic: [PATCH 1/9] AMD/IOMMU: use bit field for extended feature register Thread-Index: AQHVIesQA4Bge9d2UUiUVV6W30u8iaagO+eA Date: Mon, 17 Jun 2019 19:07:15 +0000 Message-ID: <20190617190712.GA11864@amd.com> References: <5D024C500200007800237DD8@prv1-mh.provo.novell.com> <5D024E170200007800237DFD@prv1-mh.provo.novell.com> In-Reply-To: <5D024E170200007800237DFD@prv1-mh.provo.novell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: DM5PR20CA0013.namprd20.prod.outlook.com (2603:10b6:3:93::23) To DM6PR12MB3515.namprd12.prod.outlook.com (2603:10b6:5:18a::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Brian.Woods@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dc943824-5205-4e59-b125-08d6f35702cb x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM6PR12MB3082; x-ms-traffictypediagnostic: DM6PR12MB3082: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2201; x-forefront-prvs: 0071BFA85B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(346002)(376002)(39860400002)(366004)(136003)(199004)(189003)(102836004)(86362001)(316002)(186003)(73956011)(26005)(6916009)(7736002)(64756008)(66556008)(66476007)(66946007)(66446008)(52116002)(36756003)(71190400001)(54906003)(5660300002)(76176011)(99286004)(386003)(14454004)(6506007)(305945005)(71200400001)(2616005)(476003)(11346002)(446003)(486006)(1076003)(14444005)(256004)(72206003)(478600001)(6436002)(4326008)(53936002)(8936002)(6246003)(81166006)(25786009)(8676002)(81156014)(2906002)(30864003)(68736007)(3846002)(6512007)(53946003)(6116002)(66066001)(229853002)(33656002)(6486002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB3082; H:DM6PR12MB3515.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 2OhTEAIRJCZgMq4tIdAODuiip8vEvPybhS2TY4ppujqppHg6GHcsCQV7EG6kdyeOOJU0OLnbiRXFfnegrQ29Jd9TgvYEcWZr9A9vVPSXE0laFRWuqDrFIErKRQB14wfzGGnt1/D8ClI5UGxnz52oDDJKZSVBeA2nQZUMas6clxVasFu5fFQuKAm51gbf0QfGk+V01fZChDxMYxf9vGd7IZEE4UzYEx3KIn90/s0fDpnE5e5hmSea+b5OdObGLaVMOT16161OkTv7WzOpU3ykK28AKpJmU/kdGLvf+O036J6TDq2LHv6uPJY50xCkKOUDQQSTfdHF3/8yaBkmXAU3sxgnAoNIxL3aD4SNr4KeDwWPNrueb7WQEF3dislnc9e9SLKJbftzyUXBJrjwzqq45a9tkihHsXKBtuMP8gEyXj8= Content-ID: <022E76A12E03934F81D6DC550D350BAE@namprd12.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc943824-5205-4e59-b125-08d6f35702cb X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jun 2019 19:07:15.9318 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: brwoods@amd.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3082 Subject: Re: [Xen-devel] [PATCH 1/9] AMD/IOMMU: use bit field for extended feature register X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel , "Woods, Brian" , "Suthikulpanit, Suravee" , Andrew Cooper Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gVGh1LCBKdW4gMTMsIDIwMTkgYXQgMDc6MjI6MzFBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gVGhpcyBhbHNvIHRha2VzIGNhcmUgb2Ygc2V2ZXJhbCBvZiB0aGUgc2hpZnQgdmFsdWVz IHdyb25nbHkgaGF2aW5nIGJlZW4KPiBzcGVjaWZpZWQgYXMgaGV4IHJhdGhlciB0aGFuIGRlYy4K PiAKPiBUYWtlIHRoZSBvcHBvcnR1bml0eSBhbmQgYWRkIGZ1cnRoZXIgZmllbGRzLgo+IAo+IFNp Z25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPiAKPiAtLS0gYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKPiArKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKPiBAQCAtNjAsNDMgKzYwLDcyIEBA IHN0YXRpYyBpbnQgX19pbml0IGdldF9pb21tdV9jYXBhYmlsaXRpZXMKPiAgCj4gIHZvaWQgX19p bml0IGdldF9pb21tdV9mZWF0dXJlcyhzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKPiAgewo+IC0g ICAgdTMyIGxvdywgaGlnaDsKPiAtICAgIGludCBpID0gMCA7Cj4gLSAgICBzdGF0aWMgY29uc3Qg Y2hhciAqX19pbml0ZGF0YSBmZWF0dXJlX3N0cltdID0gewo+IC0gICAgICAgICItIFByZWZldGNo IFBhZ2VzIENvbW1hbmQiLCAKPiAtICAgICAgICAiLSBQZXJpcGhlcmFsIFBhZ2UgU2VydmljZSBS ZXF1ZXN0IiwgCj4gLSAgICAgICAgIi0gWDJBUElDIFN1cHBvcnRlZCIsIAo+IC0gICAgICAgICIt IE5YIGJpdCBTdXBwb3J0ZWQiLCAKPiAtICAgICAgICAiLSBHdWVzdCBUcmFuc2xhdGlvbiIsIAo+ IC0gICAgICAgICItIFJlc2VydmVkIGJpdCBbNV0iLAo+IC0gICAgICAgICItIEludmFsaWRhdGUg QWxsIENvbW1hbmQiLCAKPiAtICAgICAgICAiLSBHdWVzdCBBUElDIHN1cHBvcnRlZCIsIAo+IC0g ICAgICAgICItIEhhcmR3YXJlIEVycm9yIFJlZ2lzdGVycyIsIAo+IC0gICAgICAgICItIFBlcmZv cm1hbmNlIENvdW50ZXJzIiwgCj4gLSAgICAgICAgTlVMTAo+IC0gICAgfTsKPiAtCj4gICAgICBB U1NFUlQoIGlvbW11LT5tbWlvX2Jhc2UgKTsKPiAgCj4gICAgICBpZiAoICFpb21tdV9oYXNfY2Fw KGlvbW11LCBQQ0lfQ0FQX0VGUlNVUF9TSElGVCkgKQo+ICAgICAgewo+IC0gICAgICAgIGlvbW11 LT5mZWF0dXJlcyA9IDA7Cj4gKyAgICAgICAgaW9tbXUtPmZlYXR1cmVzLnJhdyA9IDA7Cj4gICAg ICAgICAgcmV0dXJuOwo+ICAgICAgfQo+ICAKPiAtICAgIGxvdyA9IHJlYWRsKGlvbW11LT5tbWlv X2Jhc2UgKyBJT01NVV9FWFRfRkVBVFVSRV9NTUlPX09GRlNFVCk7Cj4gLSAgICBoaWdoID0gcmVh ZGwoaW9tbXUtPm1taW9fYmFzZSArIElPTU1VX0VYVF9GRUFUVVJFX01NSU9fT0ZGU0VUICsgNCk7 Cj4gLQo+IC0gICAgaW9tbXUtPmZlYXR1cmVzID0gKCh1NjQpaGlnaCA8PCAzMikgfCBsb3c7Cj4g KyAgICBpb21tdS0+ZmVhdHVyZXMucmF3ID0KPiArICAgICAgICByZWFkcShpb21tdS0+bW1pb19i YXNlICsgSU9NTVVfRVhUX0ZFQVRVUkVfTU1JT19PRkZTRVQpOwo+ICAKPiAgICAgIHByaW50aygi QU1ELVZpOiBJT01NVSBFeHRlbmRlZCBGZWF0dXJlczpcbiIpOwo+ICAKPiAtICAgIHdoaWxlICgg ZmVhdHVyZV9zdHJbaV0gKQo+ICsjZGVmaW5lIE1BU0soZmxkKSAoKHVuaW9uIGFtZF9pb21tdV9l eHRfZmVhdHVyZXMpeyAuZmxkcy5mbGQgPSB+MCB9KS5yYXcKPiArI2RlZmluZSBGRUFUKGZsZCwg c3RyKSBkbyB7IFwKPiArICAgIGlmICggTUFTSyhmbGQpICYgKE1BU0soZmxkKSAtIDEpICkgXAo+ ICsgICAgICAgIHByaW50ayggIi0gIiBzdHIgIjogJSN4XG4iLCBpb21tdS0+ZmVhdHVyZXMuZmxk cy5mbGQpOyBcCj4gKyAgICBlbHNlIGlmICggaW9tbXUtPmZlYXR1cmVzLnJhdyAmIE1BU0soZmxk KSApIFwKPiArICAgICAgICBwcmludGsoICItICIgc3RyICJcbiIpOyBcCj4gK30gd2hpbGUgKCBm YWxzZSApCj4gKwo+ICsgICAgRkVBVChwcmVmX3N1cCwgICAgICAgICAgICJQcmVmZXRjaCBQYWdl cyBDb21tYW5kIik7Cj4gKyAgICBGRUFUKHBwcl9zdXAsICAgICAgICAgICAgIlBlcmlwaGVyYWwg UGFnZSBTZXJ2aWNlIFJlcXVlc3QiKTsKPiArICAgIEZFQVQoeHRfc3VwLCAgICAgICAgICAgICAi eDJBUElDIik7Cj4gKyAgICBGRUFUKG54X3N1cCwgICAgICAgICAgICAgIk5YIGJpdCIpOwo+ICsg ICAgRkVBVChnYXBwaV9zdXAsICAgICAgICAgICJHdWVzdCBBUElDIFBoeXNpY2FsIFByb2Nlc3Nv ciBJbnRlcnJ1cHQiKTsKPiArICAgIEZFQVQoaWFfc3VwLCAgICAgICAgICAgICAiSW52YWxpZGF0 ZSBBbGwgQ29tbWFuZCIpOwo+ICsgICAgRkVBVChnYV9zdXAsICAgICAgICAgICAgICJHdWVzdCBB UElDIik7Cj4gKyAgICBGRUFUKGhlX3N1cCwgICAgICAgICAgICAgIkhhcmR3YXJlIEVycm9yIFJl Z2lzdGVycyIpOwo+ICsgICAgRkVBVChwY19zdXAsICAgICAgICAgICAgICJQZXJmb3JtYW5jZSBD b3VudGVycyIpOwo+ICsgICAgRkVBVChoYXRzLCAgICAgICAgICAgICAgICJIb3N0IEFkZHJlc3Mg VHJhbnNsYXRpb24gU2l6ZSIpOwo+ICsKPiArICAgIGlmICggaW9tbXUtPmZlYXR1cmVzLmZsZHMu Z3Rfc3VwICkKPiAgICAgIHsKPiAtICAgICAgICBpZiAoIGFtZF9pb21tdV9oYXNfZmVhdHVyZShp b21tdSwgaSkgKQo+IC0gICAgICAgICAgICBwcmludGsoICIgJXNcbiIsIGZlYXR1cmVfc3RyW2ld KTsKPiAtICAgICAgICBpKys7Cj4gKyAgICAgICAgRkVBVChnYXRzLCAgICAgICAgICAgIkd1ZXN0 IEFkZHJlc3MgVHJhbnNsYXRpb24gU2l6ZSIpOwo+ICsgICAgICAgIEZFQVQoZ2x4X3N1cCwgICAg ICAgICJHdWVzdCBDUjMgUm9vdCBUYWJsZSBMZXZlbCIpOwo+ICsgICAgICAgIEZFQVQocGFzX21h eCwgICAgICAgICJNYXhpbXVtIFBBU0lEIik7Cj4gICAgICB9Cj4gKwo+ICsgICAgRkVBVChzbWlm X3N1cCwgICAgICAgICAgICJTTUkgRmlsdGVyIFJlZ2lzdGVyIik7Cj4gKyAgICBGRUFUKHNtaWZf cmMsICAgICAgICAgICAgIlNNSSBGaWx0ZXIgUmVnaXN0ZXIgQ291bnQiKTsKPiArICAgIEZFQVQo Z2FtX3N1cCwgICAgICAgICAgICAiR3Vlc3QgVmlydHVhbCBBUElDIE1vZGVzIik7Cj4gKyAgICBG RUFUKGR1YWxfcHByX2xvZ19zdXAsICAgIkR1YWwgUFBSIExvZyIpOwo+ICsgICAgRkVBVChkdWFs X2V2ZW50X2xvZ19zdXAsICJEdWFsIEV2ZW50IExvZyIpOwo+ICsgICAgRkVBVChzYXRfc3VwLCAg ICAgICAgICAgICJTZWN1cmUgQVRTIik7Cj4gKyAgICBGRUFUKHVzX3N1cCwgICAgICAgICAgICAg IlVzZXIgLyBTdXBlcnZpc29yIFBhZ2UgUHJvdGVjdGlvbiIpOwo+ICsgICAgRkVBVChkZXZfdGJs X3NlZ19zdXAsICAgICJEZXZpY2UgVGFibGUgU2VnbWVudGF0aW9uIik7Cj4gKyAgICBGRUFUKHBw cl9lYXJseV9vZl9zdXAsICAgIlBQUiBMb2cgT3ZlcmZsb3cgRWFybHkgV2FybmluZyIpOwo+ICsg ICAgRkVBVChwcHJfYXV0b19yc3Bfc3VwLCAgICJQUFIgQXV0b21hdGljIFJlc3BvbnNlIik7Cj4g KyAgICBGRUFUKG1hcmNfc3VwLCAgICAgICAgICAgIk1lbW9yeSBBY2Nlc3MgUm91dGluZyBhbmQg Q29udHJvbCIpOwo+ICsgICAgRkVBVChibGtfc3RvcF9tcmtfc3VwLCAgICJCbG9jayBTdG9wTWFy ayBNZXNzYWdlIik7Cj4gKyAgICBGRUFUKHBlcmZfb3B0X3N1cCAsICAgICAgIlBlcmZvcm1hbmNl IE9wdGltaXphdGlvbiIpOwo+ICsgICAgRkVBVChtc2lfY2FwX21taW9fc3VwLCAgICJNU0kgQ2Fw YWJpbGl0eSBNTUlPIEFjY2VzcyIpOwo+ICsgICAgRkVBVChnaW9fc3VwLCAgICAgICAgICAgICJH dWVzdCBJL08gUHJvdGVjdGlvbiIpOwo+ICsgICAgRkVBVChoYV9zdXAsICAgICAgICAgICAgICJI b3N0IEFjY2VzcyIpOwo+ICsgICAgRkVBVChlcGhfc3VwLCAgICAgICAgICAgICJFbmhhbmNlZCBQ UFIgSGFuZGxpbmciKTsKPiArICAgIEZFQVQoYXR0cl9md19zdXAsICAgICAgICAiQXR0cmlidXRl IEZvcndhcmQiKTsKPiArICAgIEZFQVQoaGRfc3VwLCAgICAgICAgICAgICAiSG9zdCBEaXJ0eSIp Owo+ICsgICAgRkVBVChpbnZfaW90bGJfdHlwZV9zdXAsICJJbnZhbGlkYXRlIElPVExCIFR5cGUi KTsKPiArICAgIEZFQVQodmlvbW11X3N1cCwgICAgICAgICAiVmlydHVhbGl6ZWQgSU9NTVUiKTsK PiArICAgIEZFQVQodm1fZ3VhcmRfaW9fc3VwLCAgICAiVk1HdWFyZCBJL08gU3VwcG9ydCIpOwo+ ICsgICAgRkVBVCh2bV90YWJsZV9zaXplLCAgICAgICJWTSBUYWJsZSBTaXplIik7Cj4gKyAgICBG RUFUKGdhX3VwZGF0ZV9kaXNfc3VwLCAgIkd1ZXN0IEFjY2VzcyBCaXQgVXBkYXRlIERpc2FibGUi KTsKPiArCj4gKyN1bmRlZiBGRUFUCj4gKyN1bmRlZiBNQVNLCj4gIH0KPiAgCj4gIGludCBfX2lu aXQgYW1kX2lvbW11X2RldGVjdF9vbmVfYWNwaSgKPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfZ3Vlc3QuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdV9ndWVzdC5jCj4gQEAgLTYzOCw3ICs2MzgsNyBAQCBzdGF0aWMgdWludDY0X3QgaW9t bXVfbW1pb19yZWFkNjQoc3RydWN0Cj4gICAgICAgICAgdmFsID0gcmVnX3RvX3U2NChpb21tdS0+ cmVnX3N0YXR1cyk7Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICBjYXNlIElPTU1VX0VYVF9GRUFU VVJFX01NSU9fT0ZGU0VUOgo+IC0gICAgICAgIHZhbCA9IHJlZ190b191NjQoaW9tbXUtPnJlZ19l eHRfZmVhdHVyZSk7Cj4gKyAgICAgICAgdmFsID0gaW9tbXUtPnJlZ19leHRfZmVhdHVyZS5yYXc7 Cj4gICAgICAgICAgYnJlYWs7Cj4gIAo+ICAgICAgZGVmYXVsdDoKPiBAQCAtODAyLDM5ICs4MDIs MjYgQEAgaW50IGd1ZXN0X2lvbW11X3NldF9iYXNlKHN0cnVjdCBkb21haW4gKgo+ICAvKiBJbml0 aWFsaXplIG1taW8gcmVhZCBvbmx5IGJpdHMgKi8KPiAgc3RhdGljIHZvaWQgZ3Vlc3RfaW9tbXVf cmVnX2luaXQoc3RydWN0IGd1ZXN0X2lvbW11ICppb21tdSkKPiAgewo+IC0gICAgdWludDMyX3Qg bG93ZXIsIHVwcGVyOwo+ICsgICAgdW5pb24gYW1kX2lvbW11X2V4dF9mZWF0dXJlcyBlZiA9IHsK PiArICAgICAgICAvKiBTdXBwb3J0IHByZWZldGNoICovCj4gKyAgICAgICAgLmZsZHMucHJlZl9z dXAgPSAxLAo+ICsgICAgICAgIC8qIFN1cHBvcnQgUFBSIGxvZyAqLwo+ICsgICAgICAgIC5mbGRz LnBwcl9zdXAgPSAxLAo+ICsgICAgICAgIC8qIFN1cHBvcnQgZ3Vlc3QgdHJhbnNsYXRpb24gKi8K PiArICAgICAgICAuZmxkcy5ndF9zdXAgPSAxLAo+ICsgICAgICAgIC8qIFN1cHBvcnQgaW52YWxp ZGF0ZSBhbGwgY29tbWFuZCAqLwo+ICsgICAgICAgIC5mbGRzLmlhX3N1cCA9IDEsCj4gKyAgICAg ICAgLyogSG9zdCB0cmFuc2xhdGlvbiBzaXplIGhhcyA2IGxldmVscyAqLwo+ICsgICAgICAgIC5m bGRzLmhhdHMgPSBIT1NUX0FERFJFU1NfU0laRV82X0xFVkVMLAo+ICsgICAgICAgIC8qIEd1ZXN0 IHRyYW5zbGF0aW9uIHNpemUgaGFzIDYgbGV2ZWxzICovCj4gKyAgICAgICAgLmZsZHMuZ2F0cyA9 IEdVRVNUX0FERFJFU1NfU0laRV82X0xFVkVMLAo+ICsgICAgICAgIC8qIFNpbmdsZSBsZXZlbCBn Q1IzICovCj4gKyAgICAgICAgLmZsZHMuZ2x4X3N1cCA9IEdVRVNUX0NSM18xX0xFVkVMLAo+ICsg ICAgICAgIC8qIDkgYml0IFBBU0lEICovCj4gKyAgICAgICAgLmZsZHMucGFzX21heCA9IFBBU01B WF85X2JpdCwKPiArICAgIH07Cj4gIAo+IC0gICAgbG93ZXIgPSB1cHBlciA9IDA7Cj4gLSAgICAv KiBTdXBwb3J0IHByZWZldGNoICovCj4gLSAgICBpb21tdV9zZXRfYml0KCZsb3dlcixJT01NVV9F WFRfRkVBVFVSRV9QUkVGU1VQX1NISUZUKTsKPiAtICAgIC8qIFN1cHBvcnQgUFBSIGxvZyAqLwo+ IC0gICAgaW9tbXVfc2V0X2JpdCgmbG93ZXIsSU9NTVVfRVhUX0ZFQVRVUkVfUFBSU1VQX1NISUZU KTsKPiAtICAgIC8qIFN1cHBvcnQgZ3Vlc3QgdHJhbnNsYXRpb24gKi8KPiAtICAgIGlvbW11X3Nl dF9iaXQoJmxvd2VyLElPTU1VX0VYVF9GRUFUVVJFX0dUU1VQX1NISUZUKTsKPiAtICAgIC8qIFN1 cHBvcnQgaW52YWxpZGF0ZSBhbGwgY29tbWFuZCAqLwo+IC0gICAgaW9tbXVfc2V0X2JpdCgmbG93 ZXIsSU9NTVVfRVhUX0ZFQVRVUkVfSUFTVVBfU0hJRlQpOwo+IC0KPiAtICAgIC8qIEhvc3QgdHJh bnNsYXRpb24gc2l6ZSBoYXMgNiBsZXZlbHMgKi8KPiAtICAgIHNldF9maWVsZF9pbl9yZWdfdTMy KEhPU1RfQUREUkVTU19TSVpFXzZfTEVWRUwsIGxvd2VyLAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgSU9NTVVfRVhUX0ZFQVRVUkVfSEFUU19NQVNLLAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgSU9NTVVfRVhUX0ZFQVRVUkVfSEFUU19TSElGVCwKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICZsb3dlcik7Cj4gLSAgICAvKiBHdWVzdCB0cmFuc2xhdGlvbiBzaXplIGhhcyA2IGxl dmVscyAqLwo+IC0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoR1VFU1RfQUREUkVTU19TSVpFXzZf TEVWRUwsIGxvd2VyLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfRVhUX0ZFQVRV UkVfR0FUU19NQVNLLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfRVhUX0ZFQVRV UkVfR0FUU19TSElGVCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICZsb3dlcik7Cj4gLSAg ICAvKiBTaW5nbGUgbGV2ZWwgZ0NSMyAqLwo+IC0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoR1VF U1RfQ1IzXzFfTEVWRUwsIGxvd2VyLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVf RVhUX0ZFQVRVUkVfR0xYU1VQX01BU0ssCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICBJT01N VV9FWFRfRkVBVFVSRV9HTFhTVVBfU0hJRlQsICZsb3dlcik7Cj4gLSAgICAvKiA5IGJpdCBQQVNJ RCAqLwo+IC0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoUEFTTUFYXzlfYml0LCB1cHBlciwKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0VYVF9GRUFUVVJFX1BBU01BWF9NQVNLLAo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfRVhUX0ZFQVRVUkVfUEFTTUFYX1NISUZU LCAmdXBwZXIpOwo+IC0KPiAtICAgIGlvbW11LT5yZWdfZXh0X2ZlYXR1cmUubG8gPSBsb3dlcjsK PiAtICAgIGlvbW11LT5yZWdfZXh0X2ZlYXR1cmUuaGkgPSB1cHBlcjsKPiArICAgIGlvbW11LT5y ZWdfZXh0X2ZlYXR1cmUgPSBlZjsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBndWVzdF9pb21tdV9t bWlvX3JhbmdlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIpCj4gLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwo+ICsrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKPiBAQCAtODgzLDcgKzg4Myw3IEBAIHN0YXRp YyB2b2lkIGVuYWJsZV9pb21tdShzdHJ1Y3QgYW1kX2lvbW0KPiAgICAgIHJlZ2lzdGVyX2lvbW11 X2V2ZW50X2xvZ19pbl9tbWlvX3NwYWNlKGlvbW11KTsKPiAgICAgIHJlZ2lzdGVyX2lvbW11X2V4 Y2x1c2lvbl9yYW5nZShpb21tdSk7Cj4gIAo+IC0gICAgaWYgKCBhbWRfaW9tbXVfaGFzX2ZlYXR1 cmUoaW9tbXUsIElPTU1VX0VYVF9GRUFUVVJFX1BQUlNVUF9TSElGVCkgKQo+ICsgICAgaWYgKCBp b21tdS0+ZmVhdHVyZXMuZmxkcy5wcHJfc3VwICkKPiAgICAgICAgICByZWdpc3Rlcl9pb21tdV9w cHJfbG9nX2luX21taW9fc3BhY2UoaW9tbXUpOwo+ICAKPiAgICAgIGRlc2MgPSBpcnFfdG9fZGVz Yyhpb21tdS0+bXNpLmlycSk7Cj4gQEAgLTg5NywxNSArODk3LDE1IEBAIHN0YXRpYyB2b2lkIGVu YWJsZV9pb21tdShzdHJ1Y3QgYW1kX2lvbW0KPiAgICAgIHNldF9pb21tdV9jb21tYW5kX2J1ZmZl cl9jb250cm9sKGlvbW11LCBJT01NVV9DT05UUk9MX0VOQUJMRUQpOwo+ICAgICAgc2V0X2lvbW11 X2V2ZW50X2xvZ19jb250cm9sKGlvbW11LCBJT01NVV9DT05UUk9MX0VOQUJMRUQpOwo+ICAKPiAt ICAgIGlmICggYW1kX2lvbW11X2hhc19mZWF0dXJlKGlvbW11LCBJT01NVV9FWFRfRkVBVFVSRV9Q UFJTVVBfU0hJRlQpICkKPiArICAgIGlmICggaW9tbXUtPmZlYXR1cmVzLmZsZHMucHByX3N1cCAp Cj4gICAgICAgICAgc2V0X2lvbW11X3Bwcl9sb2dfY29udHJvbChpb21tdSwgSU9NTVVfQ09OVFJP TF9FTkFCTEVEKTsKPiAgCj4gLSAgICBpZiAoIGFtZF9pb21tdV9oYXNfZmVhdHVyZShpb21tdSwg SU9NTVVfRVhUX0ZFQVRVUkVfR1RTVVBfU0hJRlQpICkKPiArICAgIGlmICggaW9tbXUtPmZlYXR1 cmVzLmZsZHMuZ3Rfc3VwICkKPiAgICAgICAgICBzZXRfaW9tbXVfZ3Vlc3RfdHJhbnNsYXRpb25f Y29udHJvbChpb21tdSwgSU9NTVVfQ09OVFJPTF9FTkFCTEVEKTsKPiAgCj4gICAgICBzZXRfaW9t bXVfdHJhbnNsYXRpb25fY29udHJvbChpb21tdSwgSU9NTVVfQ09OVFJPTF9FTkFCTEVEKTsKPiAg Cj4gLSAgICBpZiAoIGFtZF9pb21tdV9oYXNfZmVhdHVyZShpb21tdSwgSU9NTVVfRVhUX0ZFQVRV UkVfSUFTVVBfU0hJRlQpICkKPiArICAgIGlmICggaW9tbXUtPmZlYXR1cmVzLmZsZHMuaWFfc3Vw ICkKPiAgICAgICAgICBhbWRfaW9tbXVfZmx1c2hfYWxsX2NhY2hlcyhpb21tdSk7Cj4gIAo+ICAg ICAgaW9tbXUtPmVuYWJsZWQgPSAxOwo+IEBAIC05MjgsMTAgKzkyOCwxMCBAQCBzdGF0aWMgdm9p ZCBkaXNhYmxlX2lvbW11KHN0cnVjdCBhbWRfaW9tCj4gICAgICBzZXRfaW9tbXVfY29tbWFuZF9i dWZmZXJfY29udHJvbChpb21tdSwgSU9NTVVfQ09OVFJPTF9ESVNBQkxFRCk7Cj4gICAgICBzZXRf aW9tbXVfZXZlbnRfbG9nX2NvbnRyb2woaW9tbXUsIElPTU1VX0NPTlRST0xfRElTQUJMRUQpOwo+ ICAKPiAtICAgIGlmICggYW1kX2lvbW11X2hhc19mZWF0dXJlKGlvbW11LCBJT01NVV9FWFRfRkVB VFVSRV9QUFJTVVBfU0hJRlQpICkKPiArICAgIGlmICggaW9tbXUtPmZlYXR1cmVzLmZsZHMucHBy X3N1cCApCj4gICAgICAgICAgc2V0X2lvbW11X3Bwcl9sb2dfY29udHJvbChpb21tdSwgSU9NTVVf Q09OVFJPTF9ESVNBQkxFRCk7Cj4gIAo+IC0gICAgaWYgKCBhbWRfaW9tbXVfaGFzX2ZlYXR1cmUo aW9tbXUsIElPTU1VX0VYVF9GRUFUVVJFX0dUU1VQX1NISUZUKSApCj4gKyAgICBpZiAoIGlvbW11 LT5mZWF0dXJlcy5mbGRzLmd0X3N1cCApCj4gICAgICAgICAgc2V0X2lvbW11X2d1ZXN0X3RyYW5z bGF0aW9uX2NvbnRyb2woaW9tbXUsIElPTU1VX0NPTlRST0xfRElTQUJMRUQpOwo+ICAKPiAgICAg IHNldF9pb21tdV90cmFuc2xhdGlvbl9jb250cm9sKGlvbW11LCBJT01NVV9DT05UUk9MX0RJU0FC TEVEKTsKPiBAQCAtMTAyNyw3ICsxMDI3LDcgQEAgc3RhdGljIGludCBfX2luaXQgYW1kX2lvbW11 X2luaXRfb25lKHN0cgo+ICAKPiAgICAgIGdldF9pb21tdV9mZWF0dXJlcyhpb21tdSk7Cj4gIAo+ IC0gICAgaWYgKCBpb21tdS0+ZmVhdHVyZXMgKQo+ICsgICAgaWYgKCBpb21tdS0+ZmVhdHVyZXMu cmF3ICkKPiAgICAgICAgICBpb21tdXYyX2VuYWJsZWQgPSAxOwo+ICAKPiAgICAgIGlmICggYWxs b2NhdGVfY21kX2J1ZmZlcihpb21tdSkgPT0gTlVMTCApCj4gQEAgLTEwMzYsOSArMTAzNiw4IEBA IHN0YXRpYyBpbnQgX19pbml0IGFtZF9pb21tdV9pbml0X29uZShzdHIKPiAgICAgIGlmICggYWxs b2NhdGVfZXZlbnRfbG9nKGlvbW11KSA9PSBOVUxMICkKPiAgICAgICAgICBnb3RvIGVycm9yX291 dDsKPiAgCj4gLSAgICBpZiAoIGFtZF9pb21tdV9oYXNfZmVhdHVyZShpb21tdSwgSU9NTVVfRVhU X0ZFQVRVUkVfUFBSU1VQX1NISUZUKSApCj4gLSAgICAgICAgaWYgKCBhbGxvY2F0ZV9wcHJfbG9n KGlvbW11KSA9PSBOVUxMICkKPiAtICAgICAgICAgICAgZ290byBlcnJvcl9vdXQ7Cj4gKyAgICBp ZiAoIGlvbW11LT5mZWF0dXJlcy5mbGRzLnBwcl9zdXAgJiYgIWFsbG9jYXRlX3Bwcl9sb2coaW9t bXUpICkKPiArICAgICAgICBnb3RvIGVycm9yX291dDsKPiAgCj4gICAgICBpZiAoICFzZXRfaW9t bXVfaW50ZXJydXB0X2hhbmRsZXIoaW9tbXUpICkKPiAgICAgICAgICBnb3RvIGVycm9yX291dDsK PiBAQCAtMTM4OSw3ICsxMzg4LDcgQEAgdm9pZCBhbWRfaW9tbXVfcmVzdW1lKHZvaWQpCj4gICAg ICB9Cj4gIAo+ICAgICAgLyogZmx1c2ggYWxsIGNhY2hlIGVudHJpZXMgYWZ0ZXIgaW9tbXUgcmUt ZW5hYmxlZCAqLwo+IC0gICAgaWYgKCAhYW1kX2lvbW11X2hhc19mZWF0dXJlKGlvbW11LCBJT01N VV9FWFRfRkVBVFVSRV9JQVNVUF9TSElGVCkgKQo+ICsgICAgaWYgKCAhaW9tbXUtPmZlYXR1cmVz LmZsZHMuaWFfc3VwICkKPiAgICAgIHsKPiAgICAgICAgICBpbnZhbGlkYXRlX2FsbF9kZXZpY2Vz KCk7Cj4gICAgICAgICAgaW52YWxpZGF0ZV9hbGxfZG9tYWluX3BhZ2VzKCk7Cj4gLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9hbWQtaW9tbXUuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYv YW1kLWlvbW11LmgKPiBAQCAtODMsNyArODMsNyBAQCBzdHJ1Y3QgYW1kX2lvbW11IHsKPiAgICAg IGlvbW11X2NhcF90IGNhcDsKPiAgCj4gICAgICB1OCBodF9mbGFnczsKPiAtICAgIHU2NCBmZWF0 dXJlczsKPiArICAgIHVuaW9uIGFtZF9pb21tdV9leHRfZmVhdHVyZXMgZmVhdHVyZXM7Cj4gIAo+ ICAgICAgdm9pZCAqbW1pb19iYXNlOwo+ICAgICAgdW5zaWduZWQgbG9uZyBtbWlvX2Jhc2VfcGh5 czsKPiBAQCAtMTc0LDcgKzE3NCw3IEBAIHN0cnVjdCBndWVzdF9pb21tdSB7Cj4gICAgICAvKiBN TUlPIHJlZ3MgKi8KPiAgICAgIHN0cnVjdCBtbWlvX3JlZyAgICAgICAgIHJlZ19jdHJsOyAgICAg ICAgICAgICAgLyogTU1JTyBvZmZzZXQgMDAxOGggKi8KPiAgICAgIHN0cnVjdCBtbWlvX3JlZyAg ICAgICAgIHJlZ19zdGF0dXM7ICAgICAgICAgICAgLyogTU1JTyBvZmZzZXQgMjAyMGggKi8KPiAt ICAgIHN0cnVjdCBtbWlvX3JlZyAgICAgICAgIHJlZ19leHRfZmVhdHVyZTsgICAgICAgLyogTU1J TyBvZmZzZXQgMDAzMGggKi8KPiArICAgIHVuaW9uIGFtZF9pb21tdV9leHRfZmVhdHVyZXMgcmVn X2V4dF9mZWF0dXJlOyAgLyogTU1JTyBvZmZzZXQgMDAzMGggKi8KPiAgCj4gICAgICAvKiBndWVz dCBpbnRlcnJ1cHQgc2V0dGluZ3MgKi8KPiAgICAgIHN0cnVjdCBndWVzdF9pb21tdV9tc2kgIG1z aTsKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LWRlZnMuaAo+ ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtZGVmcy5oCj4gQEAg LTM0NiwyNiArMzQ2LDU3IEBAIHN0cnVjdCBhbWRfaW9tbXVfZHRlIHsKPiAgI2RlZmluZSBJT01N VV9FWENMVVNJT05fTElNSVRfSElHSF9NQVNLCQkweEZGRkZGRkZGCj4gICNkZWZpbmUgSU9NTVVf RVhDTFVTSU9OX0xJTUlUX0hJR0hfU0hJRlQJMAo+ICAKPiAtLyogRXh0ZW5kZWQgRmVhdHVyZSBS ZWdpc3RlciovCj4gKy8qIEV4dGVuZGVkIEZlYXR1cmUgUmVnaXN0ZXIgKi8KPiAgI2RlZmluZSBJ T01NVV9FWFRfRkVBVFVSRV9NTUlPX09GRlNFVCAgICAgICAgICAgICAgICAgICAweDMwCj4gLSNk ZWZpbmUgSU9NTVVfRVhUX0ZFQVRVUkVfUFJFRlNVUF9TSElGVCAgICAgICAgICAgICAgICAgMHgw Cj4gLSNkZWZpbmUgSU9NTVVfRVhUX0ZFQVRVUkVfUFBSU1VQX1NISUZUICAgICAgICAgICAgICAg ICAgMHgxCj4gLSNkZWZpbmUgSU9NTVVfRVhUX0ZFQVRVUkVfWFRTVVBfU0hJRlQgICAgICAgICAg ICAgICAgICAgMHgyCj4gLSNkZWZpbmUgSU9NTVVfRVhUX0ZFQVRVUkVfTlhTVVBfU0hJRlQgICAg ICAgICAgICAgICAgICAgMHgzCj4gLSNkZWZpbmUgSU9NTVVfRVhUX0ZFQVRVUkVfR1RTVVBfU0hJ RlQgICAgICAgICAgICAgICAgICAgMHg0Cj4gLSNkZWZpbmUgSU9NTVVfRVhUX0ZFQVRVUkVfSUFT VVBfU0hJRlQgICAgICAgICAgICAgICAgICAgMHg2Cj4gLSNkZWZpbmUgSU9NTVVfRVhUX0ZFQVRV UkVfR0FTVVBfU0hJRlQgICAgICAgICAgICAgICAgICAgMHg3Cj4gLSNkZWZpbmUgSU9NTVVfRVhU X0ZFQVRVUkVfSEVTVVBfU0hJRlQgICAgICAgICAgICAgICAgICAgMHg4Cj4gLSNkZWZpbmUgSU9N TVVfRVhUX0ZFQVRVUkVfUENTVVBfU0hJRlQgICAgICAgICAgICAgICAgICAgMHg5Cj4gLSNkZWZp bmUgSU9NTVVfRVhUX0ZFQVRVUkVfSEFUU19TSElGVCAgICAgICAgICAgICAgICAgICAgMHgxMAo+ IC0jZGVmaW5lIElPTU1VX0VYVF9GRUFUVVJFX0hBVFNfTUFTSyAgICAgICAgICAgICAgICAgICAg IDB4MDAwMDBDMDAKPiAtI2RlZmluZSBJT01NVV9FWFRfRkVBVFVSRV9HQVRTX1NISUZUICAgICAg ICAgICAgICAgICAgICAweDEyCj4gLSNkZWZpbmUgSU9NTVVfRVhUX0ZFQVRVUkVfR0FUU19NQVNL ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMzAwMAo+IC0jZGVmaW5lIElPTU1VX0VYVF9GRUFU VVJFX0dMWFNVUF9TSElGVCAgICAgICAgICAgICAgICAgIDB4MTQKPiAtI2RlZmluZSBJT01NVV9F WFRfRkVBVFVSRV9HTFhTVVBfTUFTSyAgICAgICAgICAgICAgICAgICAweDAwMDBDMDAwCj4gIAo+ IC0jZGVmaW5lIElPTU1VX0VYVF9GRUFUVVJFX1BBU01BWF9TSElGVCAgICAgICAgICAgICAgICAg IDB4MAo+IC0jZGVmaW5lIElPTU1VX0VYVF9GRUFUVVJFX1BBU01BWF9NQVNLICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMUYKPiArdW5pb24gYW1kX2lvbW11X2V4dF9mZWF0dXJlcyB7Cj4gKyAg ICB1aW50NjRfdCByYXc7Cj4gKyAgICBzdHJ1Y3Qgewo+ICsgICAgICAgIHVuc2lnbmVkIGludCBw cmVmX3N1cDoxOwo+ICsgICAgICAgIHVuc2lnbmVkIGludCBwcHJfc3VwOjE7Cj4gKyAgICAgICAg dW5zaWduZWQgaW50IHh0X3N1cDoxOwo+ICsgICAgICAgIHVuc2lnbmVkIGludCBueF9zdXA6MTsK PiArICAgICAgICB1bnNpZ25lZCBpbnQgZ3Rfc3VwOjE7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50 IGdhcHBpX3N1cDoxOwo+ICsgICAgICAgIHVuc2lnbmVkIGludCBpYV9zdXA6MTsKPiArICAgICAg ICB1bnNpZ25lZCBpbnQgZ2Ffc3VwOjE7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50IGhlX3N1cDox Owo+ICsgICAgICAgIHVuc2lnbmVkIGludCBwY19zdXA6MTsKPiArICAgICAgICB1bnNpZ25lZCBp bnQgaGF0czoyOwo+ICsgICAgICAgIHVuc2lnbmVkIGludCBnYXRzOjI7Cj4gKyAgICAgICAgdW5z aWduZWQgaW50IGdseF9zdXA6MjsKPiArICAgICAgICB1bnNpZ25lZCBpbnQgc21pZl9zdXA6MjsK PiArICAgICAgICB1bnNpZ25lZCBpbnQgc21pZl9yYzozOwo+ICsgICAgICAgIHVuc2lnbmVkIGlu dCBnYW1fc3VwOjM7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50IGR1YWxfcHByX2xvZ19zdXA6MjsK PiArICAgICAgICB1bnNpZ25lZCBpbnQgOjI7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50IGR1YWxf ZXZlbnRfbG9nX3N1cDoyOwoKPiArICAgICAgICB1bnNpZ25lZCBpbnQgc2F0X3N1cDoxOwo+ICsg ICAgICAgIHVuc2lnbmVkIGludCA6MTsKSSB0aGluayB0aGVzZSBtaWdodCBiZSBmbGlwcGVkLgoK PiArICAgICAgICB1bnNpZ25lZCBpbnQgcGFzX21heDo1Owo+ICsgICAgICAgIHVuc2lnbmVkIGlu dCB1c19zdXA6MTsKPiArICAgICAgICB1bnNpZ25lZCBpbnQgZGV2X3RibF9zZWdfc3VwOjI7Cj4g KyAgICAgICAgdW5zaWduZWQgaW50IHBwcl9lYXJseV9vZl9zdXA6MTsKPiArICAgICAgICB1bnNp Z25lZCBpbnQgcHByX2F1dG9fcnNwX3N1cDoxOwo+ICsgICAgICAgIHVuc2lnbmVkIGludCBtYXJj X3N1cDoyOwo+ICsgICAgICAgIHVuc2lnbmVkIGludCBibGtfc3RvcF9tcmtfc3VwOjE7Cj4gKyAg ICAgICAgdW5zaWduZWQgaW50IHBlcmZfb3B0X3N1cDoxOwo+ICsgICAgICAgIHVuc2lnbmVkIGlu dCBtc2lfY2FwX21taW9fc3VwOjE7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50IDoxOwo+ICsgICAg ICAgIHVuc2lnbmVkIGludCBnaW9fc3VwOjE7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50IGhhX3N1 cDoxOwo+ICsgICAgICAgIHVuc2lnbmVkIGludCBlcGhfc3VwOjE7Cj4gKyAgICAgICAgdW5zaWdu ZWQgaW50IGF0dHJfZndfc3VwOjE7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50IGhkX3N1cDoxOwo+ ICsgICAgICAgIHVuc2lnbmVkIGludCA6MTsKPiArICAgICAgICB1bnNpZ25lZCBpbnQgaW52X2lv dGxiX3R5cGVfc3VwOjE7Cj4gKyAgICAgICAgdW5zaWduZWQgaW50IHZpb21tdV9zdXA6MTsKPiAr ICAgICAgICB1bnNpZ25lZCBpbnQgdm1fZ3VhcmRfaW9fc3VwOjE7Cj4gKyAgICAgICAgdW5zaWdu ZWQgaW50IHZtX3RhYmxlX3NpemU6NDsKPiArICAgICAgICB1bnNpZ25lZCBpbnQgZ2FfdXBkYXRl X2Rpc19zdXA6MTsKPiArICAgICAgICB1bnNpZ25lZCBpbnQgOjI7Cj4gKyAgICB9IGZsZHM7Cj4g K307Cj4gIAo+ICAvKiBTdGF0dXMgUmVnaXN0ZXIqLwo+ICAjZGVmaW5lIElPTU1VX1NUQVRVU19N TUlPX09GRlNFVAkJMHgyMDIwCj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2Ft ZC1pb21tdS1wcm90by5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1p b21tdS1wcm90by5oCj4gQEAgLTIxOSwxMyArMjE5LDYgQEAgc3RhdGljIGlubGluZSBpbnQgaW9t bXVfaGFzX2NhcChzdHJ1Y3QgYQo+ICAgICAgcmV0dXJuICEhKGlvbW11LT5jYXAuaGVhZGVyICYg KDF1IDw8IGJpdCkpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW5saW5lIGludCBhbWRfaW9tbXVfaGFz X2ZlYXR1cmUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHVpbnQzMl90IGJpdCkKPiAtewo+IC0g ICAgaWYgKCAhaW9tbXVfaGFzX2NhcChpb21tdSwgUENJX0NBUF9FRlJTVVBfU0hJRlQpICkKPiAt ICAgICAgICByZXR1cm4gMDsKPiAtICAgIHJldHVybiAhIShpb21tdS0+ZmVhdHVyZXMgJiAoMVUg PDwgYml0KSk7Cj4gLX0KPiAtCj4gIC8qIGFjY2VzcyB0YWlsIG9yIGhlYWQgcG9pbnRlciBvZiBy aW5nIGJ1ZmZlciAqLwo+ICBzdGF0aWMgaW5saW5lIHVpbnQzMl90IGlvbW11X2dldF9yYl9wb2lu dGVyKHVpbnQzMl90IHJlZykKPiAgewo+IAo+IAo+IAoKLS0gCkJyaWFuIFdvb2RzCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs