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=-10.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 98E4EC433DB for ; Mon, 11 Jan 2021 15:06:08 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 5F52422795 for ; Mon, 11 Jan 2021 15:06:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5F52422795 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DA1256E0EF; Mon, 11 Jan 2021 15:06:07 +0000 (UTC) Received: from mail-oi1-x235.google.com (mail-oi1-x235.google.com [IPv6:2607:f8b0:4864:20::235]) by gabe.freedesktop.org (Postfix) with ESMTPS id 117CF6E0EF for ; Mon, 11 Jan 2021 15:06:07 +0000 (UTC) Received: by mail-oi1-x235.google.com with SMTP id s75so20424568oih.1 for ; Mon, 11 Jan 2021 07:06:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=CWf0UaKAKOO0aDYeiiR+JGbIitrnXu/5uxY7JFQn0ww=; b=kccNoN8ZNH8BoXvBm9YgXlA+uH9GAZ1Wxw2eYKKtY/wgvHCIi5ngI/KUWyeoaMEH10 gInX1AgNCVwhurYYYzx/L11Jg+9n1iSaia4esvAkPiciPZAxguDubu9TfHFz71GINeRN q7WopvksBvWiNB3pS4yZcqUeGVVs3f8RTyixaghIXXgzpAwww3V+jgp6oKOWXPnVXd5z yWbPcsbmCf1BJSOVbvom8i/4Fx3H6GitTSOnXNeWTyw1mckX8oqQYVh49Z8k7O61ycFR eiMErF+3oV3CAq5O2Xp7VbgPZD2tp4J1gcA9VC3lm+IgsKulWXOwLyK2/ZKzMD/kavT/ kaQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=CWf0UaKAKOO0aDYeiiR+JGbIitrnXu/5uxY7JFQn0ww=; b=iEsttYc26rjwTw78LaPth7yns3ctY+2B8dnttEjFZD9hcRbS7s84n1/IL3/cebdjI5 M5h4j8RM/VYTohSfSHm7Wr7cwlBPBT4Hk8tjmWpvD9XAiCbOA0VXzRxtt50Zwj5m/3T+ dyss3Ajf0ICNWPXxE3oe/P14p3xBE6ykJ5jn2/k/MYV0mTjdku8+IDwnuUalJvAKG3bL OdXN8m7ZFekw+B6DL5gK4aD5P5kkR7DBIf4oYxkVshgQGQwH2La+R07qwzvIp4TLs8cy wN/gxLd1IAxiMHyqcdvh2AwMX6+XYM2/L1taIjL7kBSAtfMFTyagC+JI7P9uB3vzmW2h GjZg== X-Gm-Message-State: AOAM533YOoIbWlDLy1T0AjTs+7v0kBXL0F+t0nxiD90RSc1uWLTI9F6H ZRSMYER27HzyvYX2oKHldBtttUgNwnvgH0QODzA= X-Google-Smtp-Source: ABdhPJyEQuuY2GsYP/+lgZ4pKZFdxyAVTuJ6DME1DHjUnY/Obv+/pCTLZqaW8vL0ySi2ptaTVZYfCs7QpCLeelUL1xI= X-Received: by 2002:a54:4083:: with SMTP id i3mr10302965oii.120.1610377566137; Mon, 11 Jan 2021 07:06:06 -0800 (PST) MIME-Version: 1.0 References: <6ef74186-56a2-6f38-b73b-b618fd1b5db0@amd.com> <20201218144024.4994-1-nirmoy.das@amd.com> <7c54d56f-5fe3-e874-6749-d08efa1a9f29@amd.com> In-Reply-To: From: Alex Deucher Date: Mon, 11 Jan 2021 10:05:55 -0500 Message-ID: Subject: Re: [PATCH v2 1/1] drm/amdgpu: cleanup vce,vcn,uvd ring selftests To: Christian Koenig X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Nirmoy , Nirmoy Das , amd-gfx list Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" T24gTW9uLCBKYW4gMTEsIDIwMjEgYXQgNDoyNSBBTSBDaHJpc3RpYW4gS8O2bmlnCjxja29lbmln LmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBBbSAwOC4wMS4yMSB1bSAxNjo0 MiBzY2hyaWViIE5pcm1veToKPiA+Cj4gPiBPbiAxLzgvMjEgNDoyNSBQTSwgQ2hyaXN0aWFuIEvD tm5pZyB3cm90ZToKPiA+PiBBbSAxOC4xMi4yMCB1bSAxNTo0MCBzY2hyaWViIE5pcm1veSBEYXM6 Cj4gPj4+IFVzZSBhbWRncHVfc2FfYm8gaW5zdGVhZCBvZiBhbWRncHVfYm8uCj4gPj4+Cj4gPj4+ IHYyOgo+ID4+PiAqIGRvIG5vdCBpbml0aWFsaXplIGJvIHRvIGdldCBoaW50IGZyb20gY29tcGls ZXIgZm9yIC1XdW5pbml0aWFsaXplZAo+ID4+PiAqIHBhc3MgTlVMTCBmZW5jZSB0byBhbWRncHVf c2FfYm9fZnJlZSBpZiBmZW5jZSBpcyB1bmRlZmluZWQuCj4gPj4KPiA+PiBGb3VuZCBhIG1ham9y IGJ1ZyBpbiB0aGlzIHdoaWNoIGlzIHByb2JhYmx5IHRoZSByZWFzb24gd2h5IHRoYXQgbmV2ZXIK PiA+PiB3b3JrZWQgYmVmb3JlLgo+ID4+Cj4gPj4gU2VlIGJlbG93Lgo+ID4+Cj4gPj4+Cj4gPj4+ IFNpZ25lZC1vZmYtYnk6IE5pcm1veSBEYXMgPG5pcm1veS5kYXNAYW1kLmNvbT4KPiA+Pj4gLS0t Cj4gPj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jIHwgNTYKPiA+ Pj4gKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92Y2UuYyB8IDE3ICsrKystLS0tCj4gPj4+ICAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jIHwgNDcgKysrKysrKysrKy0tLS0tLS0tLS0tCj4gPj4+ ICAgMyBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMoLSkKPiA+ Pj4KPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91 dmQuYwo+ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwo+ID4+ PiBpbmRleCA4Yjk4OTY3MGVkNjYuLjEzNDUwYTNkZjA0NCAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCj4gPj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwo+ID4+PiBAQCAtMTA1Nyw3ICsxMDU3LDcg QEAgaW50IGFtZGdwdV91dmRfcmluZ19wYXJzZV9jcyhzdHJ1Y3QKPiA+Pj4gYW1kZ3B1X2NzX3Bh cnNlciAqcGFyc2VyLCB1aW50MzJfdCBpYl9pZHgpCj4gPj4+ICAgICAgIHJldHVybiAwOwo+ID4+ PiAgIH0KPiA+Pj4KPiA+Pj4gLXN0YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdAo+ID4+PiBhbWRncHVfYm8gKmJvLAo+ID4+PiArc3Rh dGljIGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3Ry dWN0Cj4gPj4+IGFtZGdwdV9zYV9ibyAqYm8sCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgIGJv b2wgZGlyZWN0LCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCj4gPj4+ICAgewo+ID4+PiAgICAg ICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4gPj4+IEBAIC0xMDcx LDE5ICsxMDcxLDYgQEAgc3RhdGljIGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdAo+ID4+ PiBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4gPj4+ICAgICAgIHVu c2lnbmVkIG9mZnNldF9pZHggPSAwOwo+ID4+PiAgICAgICB1bnNpZ25lZCBvZmZzZXRbM10gPSB7 IFVWRF9CQVNFX1NJLCAwLCAwIH07Cj4gPj4+Cj4gPj4+IC0gICAgYW1kZ3B1X2JvX2t1bm1hcChi byk7Cj4gPj4+IC0gICAgYW1kZ3B1X2JvX3VucGluKGJvKTsKPiA+Pj4gLQo+ID4+PiAtICAgIGlm ICghcmluZy0+YWRldi0+dXZkLmFkZHJlc3NfNjRfYml0KSB7Cj4gPj4+IC0gICAgICAgIHN0cnVj dCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IHRydWUsIGZhbHNlIH07Cj4gPj4+IC0KPiA+Pj4g LSAgICAgICAgYW1kZ3B1X2JvX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgQU1ER1BVX0dFTV9E T01BSU5fVlJBTSk7Cj4gPj4+IC0gICAgICAgIGFtZGdwdV91dmRfZm9yY2VfaW50b191dmRfc2Vn bWVudChibyk7Cj4gPj4+IC0gICAgICAgIHIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZi by0+cGxhY2VtZW50LCAmY3R4KTsKPiA+Pj4gLSAgICAgICAgaWYgKHIpCj4gPj4+IC0gICAgICAg ICAgICBnb3RvIGVycjsKPiA+Pj4gLSAgICB9Cj4gPj4+IC0KPiA+Pj4gICAgICAgciA9IGFtZGdw dV9qb2JfYWxsb2Nfd2l0aF9pYihhZGV2LCA2NCwgZGlyZWN0ID8KPiA+Pj4gQU1ER1BVX0lCX1BP T0xfRElSRUNUIDoKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICBBTURHUFVfSUJfUE9PTF9E RUxBWUVELCAmam9iKTsKPiA+Pj4gICAgICAgaWYgKHIpCj4gPj4+IEBAIC0xMTAxLDcgKzEwODgs NyBAQCBzdGF0aWMgaW50IGFtZGdwdV91dmRfc2VuZF9tc2coc3RydWN0Cj4gPj4+IGFtZGdwdV9y aW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPiA+Pj4gICAgICAgZGF0YVszXSA9IFBB Q0tFVDAob2Zmc2V0W29mZnNldF9pZHhdICsgVVZEX05PX09QLCAwKTsKPiA+Pj4KPiA+Pj4gICAg ICAgaWIgPSAmam9iLT5pYnNbMF07Cj4gPj4+IC0gICAgYWRkciA9IGFtZGdwdV9ib19ncHVfb2Zm c2V0KGJvKTsKPiA+Pj4gKyAgICBhZGRyID0gYW1kZ3B1X3NhX2JvX2dwdV9hZGRyKGJvKTsKPiA+ Pj4gICAgICAgaWItPnB0clswXSA9IGRhdGFbMF07Cj4gPj4+ICAgICAgIGliLT5wdHJbMV0gPSBh ZGRyOwo+ID4+PiAgICAgICBpYi0+cHRyWzJdID0gZGF0YVsxXTsKPiA+Pj4gQEAgLTExMTUsMzMg KzExMDIsMTcgQEAgc3RhdGljIGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdAo+ID4+PiBh bWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4gPj4+ICAgICAgIGliLT5s ZW5ndGhfZHcgPSAxNjsKPiA+Pj4KPiA+Pj4gICAgICAgaWYgKGRpcmVjdCkgewo+ID4+PiAtICAg ICAgICByID0gZG1hX3Jlc3Zfd2FpdF90aW1lb3V0X3JjdShiby0+dGJvLmJhc2UucmVzdiwKPiA+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBmYWxzZSwKPiA+Pj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19qaWZmaWVzKDEwKSk7Cj4gPj4+IC0gICAg ICAgIGlmIChyID09IDApCj4gPj4+IC0gICAgICAgICAgICByID0gLUVUSU1FRE9VVDsKPiA+Pj4g LSAgICAgICAgaWYgKHIgPCAwKQo+ID4+PiAtICAgICAgICAgICAgZ290byBlcnJfZnJlZTsKPiA+ Pj4gLQo+ID4+PiAgICAgICAgICAgciA9IGFtZGdwdV9qb2Jfc3VibWl0X2RpcmVjdChqb2IsIHJp bmcsICZmKTsKPiA+Pj4gICAgICAgICAgIGlmIChyKQo+ID4+PiAgICAgICAgICAgICAgIGdvdG8g ZXJyX2ZyZWU7Cj4gPj4+ICAgICAgIH0gZWxzZSB7Cj4gPj4+IC0gICAgICAgIHIgPSBhbWRncHVf c3luY19yZXN2KGFkZXYsICZqb2ItPnN5bmMsIGJvLT50Ym8uYmFzZS5yZXN2LAo+ID4+PiAtICAg ICAgICAgICAgICAgICAgICAgQU1ER1BVX1NZTkNfQUxXQVlTLAo+ID4+PiAtICAgICAgICAgICAg ICAgICAgICAgQU1ER1BVX0ZFTkNFX09XTkVSX1VOREVGSU5FRCk7Cj4gPj4+IC0gICAgICAgIGlm IChyKQo+ID4+PiAtICAgICAgICAgICAgZ290byBlcnJfZnJlZTsKPiA+Pj4gLQo+ID4+PiAgICAg ICAgICAgciA9IGFtZGdwdV9qb2Jfc3VibWl0KGpvYiwgJmFkZXYtPnV2ZC5lbnRpdHksCj4gPj4+ ICAgICAgICAgICAgICAgICAgICAgICAgIEFNREdQVV9GRU5DRV9PV05FUl9VTkRFRklORUQsICZm KTsKPiA+Pj4gICAgICAgICAgIGlmIChyKQo+ID4+PiAgICAgICAgICAgICAgIGdvdG8gZXJyX2Zy ZWU7Cj4gPj4+ICAgICAgIH0KPiA+Pj4KPiA+Pj4gLSAgICBhbWRncHVfYm9fZmVuY2UoYm8sIGYs IGZhbHNlKTsKPiA+Pj4gLSAgICBhbWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKPiA+Pj4gLSAgICBh bWRncHVfYm9fdW5yZWYoJmJvKTsKPiA+Pj4gKyAgICBhbWRncHVfc2FfYm9fZnJlZShhZGV2LCAm Ym8sIGYpOwo+ID4+Pgo+ID4+PiAgICAgICBpZiAoZmVuY2UpCj4gPj4+ICAgICAgICAgICAqZmVu Y2UgPSBkbWFfZmVuY2VfZ2V0KGYpOwo+ID4+PiBAQCAtMTE1Myw4ICsxMTI0LDcgQEAgc3RhdGlj IGludCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdAo+ID4+PiBhbWRncHVfcmluZyAqcmluZywg c3RydWN0IGFtZGdwdV9ibyAqYm8sCj4gPj4+ICAgICAgIGFtZGdwdV9qb2JfZnJlZShqb2IpOwo+ ID4+Pgo+ID4+PiAgIGVycjoKPiA+Pj4gLSAgICBhbWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKPiA+ Pj4gLSAgICBhbWRncHVfYm9fdW5yZWYoJmJvKTsKPiA+Pj4gKyAgICBhbWRncHVfc2FfYm9fZnJl ZShhZGV2LCAmYm8sIE5VTEwpOwo+ID4+PiAgICAgICByZXR1cm4gcjsKPiA+Pj4gICB9Cj4gPj4+ Cj4gPj4+IEBAIC0xMTY1LDE2ICsxMTM1LDE3IEBAIGludCBhbWRncHVfdXZkX2dldF9jcmVhdGVf bXNnKHN0cnVjdAo+ID4+PiBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZGxlLAo+ID4+ PiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkKPiA+Pj4gICB7 Cj4gPj4+ICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPiA+ Pj4gLSAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IE5VTEw7Cj4gPj4+ICsgICAgc3RydWN0IGFt ZGdwdV9zYV9ibyAqYm87Cj4gPj4+ICAgICAgIHVpbnQzMl90ICptc2c7Cj4gPj4+ICAgICAgIGlu dCByLCBpOwo+ID4+Pgo+ID4+PiAtICAgIHIgPSBhbWRncHVfYm9fY3JlYXRlX3Jlc2VydmVkKGFk ZXYsIDEwMjQsIFBBR0VfU0laRSwKPiA+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBBTURHUFVf R0VNX0RPTUFJTl9WUkFNLAo+ID4+PiAtICAgICAgICAgICAgICAgICAgICAgICZibywgTlVMTCwg KHZvaWQgKiopJm1zZyk7Cj4gPj4+ICsgICAgciA9IGFtZGdwdV9zYV9ib19uZXcoJmFkZXYtPmli X3Bvb2xzW0FNREdQVV9JQl9QT09MX0RJUkVDVF0sCj4gPj4+ICsgICAgICAgICAgICAgICAgICZi bywgMTAyNCwgUEFHRV9TSVpFKTsKPiA+Pgo+ID4+IFRoaXMgMTAyNCBoZXJlIGlzIHdyb25nLiBU aGUgc2l6ZSBpcyBpbiBieXRlcyBhbmQgbm90IGRvdWJsZSB3b3Jkcy4KPiA+PiBTbyB0aGlzIG5l ZWRzIHRvIGJlIDQwOTYuCj4gPj4KPiA+PiBUaGlzIG9ubHkgd29ya2VkIGJlY2F1c2UgYW1kZ3B1 X2JvX2NyZWF0ZV9yZXNlcnZlZCBhbHdheXMgYWxsb2NhdGVkIGEKPiA+PiBmdWxsIHBhZ2UgaW5z dGVhZCBvZiAxMDI0IGJ5dGVzLgo+ID4+Cj4gPj4gU2FtZSBwcm9ibGVtIG9uIGFsbCBvdGhlciBv Y2Nhc2lvbnMuCj4gPgo+ID4KPiA+IEkgd29uZGVyIHdoeSBpdCB3b3JrZWQgb24gbmV3ZXIgY2Fy ZHMuCj4KPiBNYXliZSBqdXN0IGNvaW5jaWRlbnQsIGJ1dCB0aGVyZSBtdXN0IGJlIG1vcmUgcHJv YmxlbXMuIEV2ZW4gd2l0aCB0aGUKPiBzaXplIGZpeGVkIEkgZ2V0IGEgaGFuZyBvZiB0aGUgSUIg dGVzdHMgZHVyaW5nIGJvb3QuCj4KCk1heWJlIHJlbGF0ZWQgdG8gdGhlIHJlY2VudCBjaGFuZ2Ug dG8gbW92ZSBzb21lIG9mIHRoZSBVVkQgYnVmZmVycwpmcm9tIHZyYW0gdG8gZ3R0PwoKQWxleAoK Cj4gQ2hyaXN0aWFuLgo+Cj4gPgo+ID4KPiA+Pgo+ID4+IEFkZGl0aW9uYWwgdG8gdGhhdCB0aGUg ZGlyZWN0IHBvb2wgc2hvdWxkIG9ubHkgYmUgdXNlZCBpZiB3ZSBzdWJtaXQKPiA+PiBkaXJlY3Rs eSwgZS5nLiBkdXJpbmcgYSBHUFUgcmVzZXQuCj4gPj4KPiA+PiBPdGhlcndpc2Ugd2UgbmVlZCB0 byB1c2UgdGhlIG5vcm1hbCBwb29sLgo+ID4KPiA+Cj4gPiBJIHdpbGwgcmVzZW5kIHdpdGggYWJv dmUgY2hhbmdlcy4KPiA+Cj4gPgo+ID4gVGhhbmtzLAo+ID4KPiA+IE5pcm1veQo+ID4KPiA+Cj4g Pj4KPiA+PiBSZWdhcmRzLAo+ID4+IENocmlzdGlhbi4KPiA+Pgo+ID4+Cj4gPj4+ICsKPiA+Pj4g ICAgICAgaWYgKHIpCj4gPj4+ICAgICAgICAgICByZXR1cm4gcjsKPiA+Pj4KPiA+Pj4gKyAgICBt c2cgPSBhbWRncHVfc2FfYm9fY3B1X2FkZHIoYm8pOwo+ID4+PiAgICAgICAvKiBzdGl0Y2ggdG9n ZXRoZXIgYW4gVVZEIGNyZWF0ZSBtc2cgKi8KPiA+Pj4gICAgICAgbXNnWzBdID0gY3B1X3RvX2xl MzIoMHgwMDAwMGRlNCk7Cj4gPj4+ICAgICAgIG1zZ1sxXSA9IGNwdV90b19sZTMyKDB4MDAwMDAw MDApOwo+ID4+PiBAQCAtMTE5NywxNiArMTE2OCwxNyBAQCBpbnQgYW1kZ3B1X3V2ZF9nZXRfZGVz dHJveV9tc2coc3RydWN0Cj4gPj4+IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5kbGUs Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZG1hX2ZlbmNl ICoqZmVuY2UpCj4gPj4+ICAgewo+ID4+PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IHJpbmctPmFkZXY7Cj4gPj4+IC0gICAgc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBOVUxMOwo+ ID4+PiArICAgIHN0cnVjdCBhbWRncHVfc2FfYm8gKmJvOwo+ID4+PiAgICAgICB1aW50MzJfdCAq bXNnOwo+ID4+PiAgICAgICBpbnQgciwgaTsKPiA+Pj4KPiA+Pj4gLSAgICByID0gYW1kZ3B1X2Jv X2NyZWF0ZV9yZXNlcnZlZChhZGV2LCAxMDI0LCBQQUdFX1NJWkUsCj4gPj4+IC0gICAgICAgICAg ICAgICAgICAgICAgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKPiA+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICAmYm8sIE5VTEwsICh2b2lkICoqKSZtc2cpOwo+ID4+PiArICAgIHIgPSBhbWRncHVf c2FfYm9fbmV3KCZhZGV2LT5pYl9wb29sc1tBTURHUFVfSUJfUE9PTF9ESVJFQ1RdLAo+ID4+PiAr ICAgICAgICAgICAgICAgICAmYm8sIDEwMjQsIFBBR0VfU0laRSk7Cj4gPj4+ICsKPiA+Pj4gICAg ICAgaWYgKHIpCj4gPj4+ICAgICAgICAgICByZXR1cm4gcjsKPiA+Pj4KPiA+Pj4gKyAgICBtc2cg PSBhbWRncHVfc2FfYm9fY3B1X2FkZHIoYm8pOwo+ID4+PiAgICAgICAvKiBzdGl0Y2ggdG9nZXRo ZXIgYW4gVVZEIGRlc3Ryb3kgbXNnICovCj4gPj4+ICAgICAgIG1zZ1swXSA9IGNwdV90b19sZTMy KDB4MDAwMDBkZTQpOwo+ID4+PiAgICAgICBtc2dbMV0gPSBjcHVfdG9fbGUzMigweDAwMDAwMDAy KTsKPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 Y2UuYwo+ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwo+ID4+ PiBpbmRleCAwZDUyODRiOTM2ZTQuLmJjZTI5ZDY5NzVkMyAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCj4gPj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwo+ID4+PiBAQCAtODEsNyArODEsNyBAQCBN T0RVTEVfRklSTVdBUkUoRklSTVdBUkVfVkVHQTIwKTsKPiA+Pj4KPiA+Pj4gICBzdGF0aWMgdm9p ZCBhbWRncHVfdmNlX2lkbGVfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7 Cj4gPj4+ICAgc3RhdGljIGludCBhbWRncHVfdmNlX2dldF9jcmVhdGVfbXNnKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywKPiA+Pj4gdWludDMyX3QgaGFuZGxlLAo+ID4+PiAtICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4gPj4+ICsgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpibywKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpOwo+ID4+PiAgIHN0YXRpYyBpbnQgYW1kZ3B1X3ZjZV9n ZXRfZGVzdHJveV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAo+ID4+PiB1aW50MzJfdCBo YW5kbGUsCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3Qg ZG1hX2ZlbmNlICoqZmVuY2UpOwo+ID4+PiBAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgYW1kZ3B1 X3ZjZV9mcmVlX2hhbmRsZXMoc3RydWN0Cj4gPj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVj dCBkcm1fZmlsZSAqZmlscCkKPiA+Pj4gICAgKiBPcGVuIHVwIGEgc3RyZWFtIGZvciBIVyB0ZXN0 Cj4gPj4+ICAgICovCj4gPj4+ICAgc3RhdGljIGludCBhbWRncHVfdmNlX2dldF9jcmVhdGVfbXNn KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKPiA+Pj4gdWludDMyX3QgaGFuZGxlLAo+ID4+PiAt ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4gPj4+ICsgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpibywKPiA+Pj4gICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCj4gPj4+ICAgewo+ID4+PiAgICAg ICBjb25zdCB1bnNpZ25lZCBpYl9zaXplX2R3ID0gMTAyNDsKPiA+Pj4gQEAgLTQ1NCw3ICs0NTQs NyBAQCBzdGF0aWMgaW50IGFtZGdwdV92Y2VfZ2V0X2NyZWF0ZV9tc2coc3RydWN0Cj4gPj4+IGFt ZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5kbGUsCj4gPj4+Cj4gPj4+ICAgICAgIGliID0g JmpvYi0+aWJzWzBdOwo+ID4+Pgo+ID4+PiAtICAgIGFkZHIgPSBhbWRncHVfYm9fZ3B1X29mZnNl dChibyk7Cj4gPj4+ICsgICAgYWRkciA9IGFtZGdwdV9zYV9ib19ncHVfYWRkcihibyk7Cj4gPj4+ Cj4gPj4+ICAgICAgIC8qIHN0aXRjaCB0b2dldGhlciBhbiBWQ0UgY3JlYXRlIG1zZyAqLwo+ID4+ PiAgICAgICBpYi0+bGVuZ3RoX2R3ID0gMDsKPiA+Pj4gQEAgLTExMzAsMTYgKzExMzAsMTYgQEAg aW50IGFtZGdwdV92Y2VfcmluZ190ZXN0X3Jpbmcoc3RydWN0Cj4gPj4+IGFtZGdwdV9yaW5nICpy aW5nKQo+ID4+PiAgIGludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcsIGxvbmcgdGltZW91dCkKPiA+Pj4gICB7Cj4gPj4+ICAgICAgIHN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlID0gTlVMTDsKPiA+Pj4gLSAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IE5V TEw7Cj4gPj4+ICsgICAgc3RydWN0IGFtZGdwdV9zYV9ibyAqYm8gPSBOVUxMOwo+ID4+PiArICAg IHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPiA+Pj4gICAgICAgbG9u ZyByOwo+ID4+Pgo+ID4+PiAgICAgICAvKiBza2lwIHZjZSByaW5nMS8yIGliIHRlc3QgZm9yIG5v dywgc2luY2UgaXQncyBub3QgcmVsaWFibGUgKi8KPiA+Pj4gICAgICAgaWYgKHJpbmcgIT0gJnJp bmctPmFkZXYtPnZjZS5yaW5nWzBdKQo+ID4+PiAgICAgICAgICAgcmV0dXJuIDA7Cj4gPj4+Cj4g Pj4+IC0gICAgciA9IGFtZGdwdV9ib19jcmVhdGVfcmVzZXJ2ZWQocmluZy0+YWRldiwgNTEyLCBQ QUdFX1NJWkUsCj4gPj4+IC0gICAgICAgICAgICAgICAgICAgICAgQU1ER1BVX0dFTV9ET01BSU5f VlJBTSwKPiA+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAmYm8sIE5VTEwsIE5VTEwpOwo+ID4+ PiArICAgIHIgPSBhbWRncHVfc2FfYm9fbmV3KCZhZGV2LT5pYl9wb29sc1tBTURHUFVfSUJfUE9P TF9ESVJFQ1RdLAo+ID4+PiArICAgICAgICAgICAgICAgICAmYm8sIDUxMiwgUEFHRV9TSVpFKTsK PiA+Pj4gICAgICAgaWYgKHIpCj4gPj4+ICAgICAgICAgICByZXR1cm4gcjsKPiA+Pj4KPiA+Pj4g QEAgLTExNTgsOCArMTE1OCw3IEBAIGludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9pYihzdHJ1Y3Qg YW1kZ3B1X3JpbmcKPiA+Pj4gKnJpbmcsIGxvbmcgdGltZW91dCkKPiA+Pj4gICAgICAgICAgIHIg PSAwOwo+ID4+Pgo+ID4+PiAgIGVycm9yOgo+ID4+PiArICAgIGFtZGdwdV9zYV9ib19mcmVlKGFk ZXYsICZibywgZmVuY2UpOwo+ID4+PiAgICAgICBkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPiA+Pj4g LSAgICBhbWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKPiA+Pj4gLSAgICBhbWRncHVfYm9fdW5yZWYo JmJvKTsKPiA+Pj4gICAgICAgcmV0dXJuIHI7Cj4gPj4+ICAgfQo+ID4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCj4gPj4+IGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCj4gPj4+IGluZGV4IDRhNzdjNzQyNGRmYy4u MWU0NmIyZjg5NWJhIDEwMDY0NAo+ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdmNuLmMKPiA+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3Zjbi5jCj4gPj4+IEBAIC00ODgsNyArNDg4LDcgQEAgaW50IGFtZGdwdV92Y25fZGVjX3N3 X3JpbmdfdGVzdF9yaW5nKHN0cnVjdAo+ID4+PiBhbWRncHVfcmluZyAqcmluZykKPiA+Pj4gICB9 Cj4gPj4+Cj4gPj4+ICAgc3RhdGljIGludCBhbWRncHVfdmNuX2RlY19zZW5kX21zZyhzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsCj4gPj4+IC0gICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdw dV9ibyAqYm8sCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9zYV9ibyAq Ym8sCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkK PiA+Pj4gICB7Cj4gPj4+ICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+ YWRldjsKPiA+Pj4gQEAgLTUwNCw3ICs1MDQsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV92Y25fZGVj X3NlbmRfbXNnKHN0cnVjdAo+ID4+PiBhbWRncHVfcmluZyAqcmluZywKPiA+Pj4gICAgICAgICAg IGdvdG8gZXJyOwo+ID4+Pgo+ID4+PiAgICAgICBpYiA9ICZqb2ItPmlic1swXTsKPiA+Pj4gLSAg ICBhZGRyID0gYW1kZ3B1X2JvX2dwdV9vZmZzZXQoYm8pOwo+ID4+PiArICAgIGFkZHIgPSBhbWRn cHVfc2FfYm9fZ3B1X2FkZHIoYm8pOwo+ID4+PiArCj4gPj4+ICAgICAgIGliLT5wdHJbMF0gPSBQ QUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMCwgMCk7Cj4gPj4+ICAgICAgIGliLT5wdHJb MV0gPSBhZGRyOwo+ID4+PiAgICAgICBpYi0+cHRyWzJdID0gUEFDS0VUMChhZGV2LT52Y24uaW50 ZXJuYWwuZGF0YTEsIDApOwo+ID4+PiBAQCAtNTIxLDkgKzUyMiw3IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X3Zjbl9kZWNfc2VuZF9tc2coc3RydWN0Cj4gPj4+IGFtZGdwdV9yaW5nICpyaW5nLAo+ID4+ PiAgICAgICBpZiAocikKPiA+Pj4gICAgICAgICAgIGdvdG8gZXJyX2ZyZWU7Cj4gPj4+Cj4gPj4+ IC0gICAgYW1kZ3B1X2JvX2ZlbmNlKGJvLCBmLCBmYWxzZSk7Cj4gPj4+IC0gICAgYW1kZ3B1X2Jv X3VucmVzZXJ2ZShibyk7Cj4gPj4+IC0gICAgYW1kZ3B1X2JvX3VucmVmKCZibyk7Cj4gPj4+ICsg ICAgYW1kZ3B1X3NhX2JvX2ZyZWUoYWRldiwgJmJvLCBmKTsKPiA+Pj4KPiA+Pj4gICAgICAgaWYg KGZlbmNlKQo+ID4+PiAgICAgICAgICAgKmZlbmNlID0gZG1hX2ZlbmNlX2dldChmKTsKPiA+Pj4g QEAgLTUzNSwyNSArNTM0LDI3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfc2VuZF9tc2co c3RydWN0Cj4gPj4+IGFtZGdwdV9yaW5nICpyaW5nLAo+ID4+PiAgICAgICBhbWRncHVfam9iX2Zy ZWUoam9iKTsKPiA+Pj4KPiA+Pj4gICBlcnI6Cj4gPj4+IC0gICAgYW1kZ3B1X2JvX3VucmVzZXJ2 ZShibyk7Cj4gPj4+IC0gICAgYW1kZ3B1X2JvX3VucmVmKCZibyk7Cj4gPj4+ICsgICAgYW1kZ3B1 X3NhX2JvX2ZyZWUoYWRldiwgJmJvLCBOVUxMKTsKPiA+Pj4gICAgICAgcmV0dXJuIHI7Cj4gPj4+ ICAgfQo+ID4+Pgo+ID4+PiAgIHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfZ2V0X2NyZWF0ZV9t c2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAo+ID4+PiB1aW50MzJfdCBoYW5kbGUsCj4gPj4+ IC0gICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICoqYm8pCj4gPj4+ICsgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICoqYm8pCj4gPj4+ICAgewo+ID4+ PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4gPj4+ICAg ICAgIHVpbnQzMl90ICptc2c7Cj4gPj4+ICAgICAgIGludCByLCBpOwo+ID4+Pgo+ID4+PiAgICAg ICAqYm8gPSBOVUxMOwo+ID4+PiAtICAgIHIgPSBhbWRncHVfYm9fY3JlYXRlX3Jlc2VydmVkKGFk ZXYsIDEwMjQsIFBBR0VfU0laRSwKPiA+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBBTURHUFVf R0VNX0RPTUFJTl9WUkFNLAo+ID4+PiAtICAgICAgICAgICAgICAgICAgICAgIGJvLCBOVUxMLCAo dm9pZCAqKikmbXNnKTsKPiA+Pj4gKwo+ID4+PiArICAgIHIgPSBhbWRncHVfc2FfYm9fbmV3KCZh ZGV2LT5pYl9wb29sc1tBTURHUFVfSUJfUE9PTF9ESVJFQ1RdLAo+ID4+PiArICAgICAgICAgICAg ICAgICBibywgMTAyNCwgUEFHRV9TSVpFKTsKPiA+Pj4gKwo+ID4+PiAgICAgICBpZiAocikKPiA+ Pj4gICAgICAgICAgIHJldHVybiByOwo+ID4+Pgo+ID4+PiArICAgIG1zZyA9IGFtZGdwdV9zYV9i b19jcHVfYWRkcigqYm8pOwo+ID4+PiArCj4gPj4+ICAgICAgIG1zZ1swXSA9IGNwdV90b19sZTMy KDB4MDAwMDAwMjgpOwo+ID4+PiAgICAgICBtc2dbMV0gPSBjcHVfdG9fbGUzMigweDAwMDAwMDM4 KTsKPiA+Pj4gICAgICAgbXNnWzJdID0gY3B1X3RvX2xlMzIoMHgwMDAwMDAwMSk7Cj4gPj4+IEBA IC01NzUsMTggKzU3NiwxOSBAQCBzdGF0aWMgaW50Cj4gPj4+IGFtZGdwdV92Y25fZGVjX2dldF9j cmVhdGVfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZAo+ID4+PiAg IH0KPiA+Pj4KPiA+Pj4gICBzdGF0aWMgaW50IGFtZGdwdV92Y25fZGVjX2dldF9kZXN0cm95X21z ZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcKPiA+Pj4gKnJpbmcsIHVpbnQzMl90IGhhbmRsZSwKPiA+Pj4g LSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICoqYm8pCj4gPj4+ICsgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9zYV9ibyAqKmJvKQo+ID4+PiAgIHsKPiA+ Pj4gICAgICAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2Owo+ID4+PiAg ICAgICB1aW50MzJfdCAqbXNnOwo+ID4+PiAgICAgICBpbnQgciwgaTsKPiA+Pj4KPiA+Pj4gICAg ICAgKmJvID0gTlVMTDsKPiA+Pj4gLSAgICByID0gYW1kZ3B1X2JvX2NyZWF0ZV9yZXNlcnZlZChh ZGV2LCAxMDI0LCBQQUdFX1NJWkUsCj4gPj4+IC0gICAgICAgICAgICAgICAgICAgICAgQU1ER1BV X0dFTV9ET01BSU5fVlJBTSwKPiA+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBibywgTlVMTCwg KHZvaWQgKiopJm1zZyk7Cj4gPj4+ICsgICAgciA9IGFtZGdwdV9zYV9ib19uZXcoJmFkZXYtPmli X3Bvb2xzW0FNREdQVV9JQl9QT09MX0RJUkVDVF0sCj4gPj4+ICsgICAgICAgICAgICAgICAgIGJv LCAxMDI0LCBQQUdFX1NJWkUpOwo+ID4+PiArCj4gPj4+ICAgICAgIGlmIChyKQo+ID4+PiAgICAg ICAgICAgcmV0dXJuIHI7Cj4gPj4+ICsgICAgbXNnID0gYW1kZ3B1X3NhX2JvX2NwdV9hZGRyKCpi byk7Cj4gPj4+Cj4gPj4+ICAgICAgIG1zZ1swXSA9IGNwdV90b19sZTMyKDB4MDAwMDAwMjgpOwo+ ID4+PiAgICAgICBtc2dbMV0gPSBjcHVfdG9fbGUzMigweDAwMDAwMDE4KTsKPiA+Pj4gQEAgLTYw Myw3ICs2MDUsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92Y25fZGVjX2dldF9kZXN0cm95X21zZyhz dHJ1Y3QKPiA+Pj4gYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhhbgo+ID4+PiAgIGludCBh bWRncHVfdmNuX2RlY19yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBsb25n Cj4gPj4+IHRpbWVvdXQpCj4gPj4+ICAgewo+ID4+PiAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSA9IE5VTEw7Cj4gPj4+IC0gICAgc3RydWN0IGFtZGdwdV9ibyAqYm87Cj4gPj4+ICsgICAg c3RydWN0IGFtZGdwdV9zYV9ibyAqYm87Cj4gPj4+ICAgICAgIGxvbmcgcjsKPiA+Pj4KPiA+Pj4g ICAgICAgciA9IGFtZGdwdV92Y25fZGVjX2dldF9jcmVhdGVfbXNnKHJpbmcsIDEsICZibyk7Cj4g Pj4+IEBAIC02MzMsNyArNjM1LDcgQEAgaW50IGFtZGdwdV92Y25fZGVjX3JpbmdfdGVzdF9pYihz dHJ1Y3QKPiA+Pj4gYW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKPiA+Pj4gICB9Cj4g Pj4+Cj4gPj4+ICAgc3RhdGljIGludCBhbWRncHVfdmNuX2RlY19zd19zZW5kX21zZyhzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsCj4gPj4+IC0gICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdw dV9ibyAqYm8sCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9zYV9ibyAq Ym8sCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkK PiA+Pj4gICB7Cj4gPj4+ICAgICAgIHN0cnVjdCBhbWRncHVfdmNuX2RlY29kZV9idWZmZXIgKmRl Y29kZV9idWZmZXIgPSBOVUxMOwo+ID4+PiBAQCAtNjUxLDcgKzY1Myw3IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X3Zjbl9kZWNfc3dfc2VuZF9tc2coc3RydWN0Cj4gPj4+IGFtZGdwdV9yaW5nICpyaW5n LAo+ID4+PiAgICAgICAgICAgZ290byBlcnI7Cj4gPj4+Cj4gPj4+ICAgICAgIGliID0gJmpvYi0+ aWJzWzBdOwo+ID4+PiAtICAgIGFkZHIgPSBhbWRncHVfYm9fZ3B1X29mZnNldChibyk7Cj4gPj4+ ICsgICAgYWRkciA9IGFtZGdwdV9zYV9ib19ncHVfYWRkcihibyk7Cj4gPj4+ICAgICAgIGliLT5s ZW5ndGhfZHcgPSAwOwo+ID4+Pgo+ID4+PiAgICAgICBpYi0+cHRyW2liLT5sZW5ndGhfZHcrK10g PSBzaXplb2Yoc3RydWN0Cj4gPj4+IGFtZGdwdV92Y25fZGVjb2RlX2J1ZmZlcikgKyA4Owo+ID4+ PiBAQCAtNjcxLDkgKzY3Myw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfc3dfc2VuZF9t c2coc3RydWN0Cj4gPj4+IGFtZGdwdV9yaW5nICpyaW5nLAo+ID4+PiAgICAgICBpZiAocikKPiA+ Pj4gICAgICAgICAgIGdvdG8gZXJyX2ZyZWU7Cj4gPj4+Cj4gPj4+IC0gICAgYW1kZ3B1X2JvX2Zl bmNlKGJvLCBmLCBmYWxzZSk7Cj4gPj4+IC0gICAgYW1kZ3B1X2JvX3VucmVzZXJ2ZShibyk7Cj4g Pj4+IC0gICAgYW1kZ3B1X2JvX3VucmVmKCZibyk7Cj4gPj4+ICsgICAgYW1kZ3B1X3NhX2JvX2Zy ZWUoYWRldiwgJmJvLCBmKTsKPiA+Pj4KPiA+Pj4gICAgICAgaWYgKGZlbmNlKQo+ID4+PiAgICAg ICAgICAgKmZlbmNlID0gZG1hX2ZlbmNlX2dldChmKTsKPiA+Pj4gQEAgLTY4NSwxNSArNjg1LDE0 IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfc3dfc2VuZF9tc2coc3RydWN0Cj4gPj4+IGFt ZGdwdV9yaW5nICpyaW5nLAo+ID4+PiAgICAgICBhbWRncHVfam9iX2ZyZWUoam9iKTsKPiA+Pj4K PiA+Pj4gICBlcnI6Cj4gPj4+IC0gICAgYW1kZ3B1X2JvX3VucmVzZXJ2ZShibyk7Cj4gPj4+IC0g ICAgYW1kZ3B1X2JvX3VucmVmKCZibyk7Cj4gPj4+ICsgICAgYW1kZ3B1X3NhX2JvX2ZyZWUoYWRl diwgJmJvLCBOVUxMKTsKPiA+Pj4gICAgICAgcmV0dXJuIHI7Cj4gPj4+ICAgfQo+ID4+Pgo+ID4+ PiAgIGludCBhbWRncHVfdmNuX2RlY19zd19yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nLCBsb25nCj4gPj4+IHRpbWVvdXQpCj4gPj4+ICAgewo+ID4+PiAgICAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEw7Cj4gPj4+IC0gICAgc3RydWN0IGFtZGdwdV9ibyAqYm87 Cj4gPj4+ICsgICAgc3RydWN0IGFtZGdwdV9zYV9ibyAqYm87Cj4gPj4+ICAgICAgIGxvbmcgcjsK PiA+Pj4KPiA+Pj4gICAgICAgciA9IGFtZGdwdV92Y25fZGVjX2dldF9jcmVhdGVfbXNnKHJpbmcs IDEsICZibyk7Cj4gPj4+IC0tCj4gPj4+IDIuMjkuMgo+ID4+Pgo+ID4+Cj4gPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gYW1kLWdmeCBtYWlsaW5n IGxpc3QKPiA+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKPgo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gYW1kLWdmeCBtYWlsaW5nIGxp c3QKPiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2FtZC1nZngK