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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 38FD9C678D4 for ; Thu, 12 Jan 2023 21:59:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DipBdBV5khw0fcB6/yZTCaB5Pkd4/R9HqQSu2IJabzc=; b=41mxFFKwQzH8k2 FxYeHyw8gcmaErvT10y66aDHHU8F+fkc9isvCjLIekr9S3lKHJYls23/cJX+wy81F1hNneT32s9VY uO7nZ4icpnZEHMg3yDfCZzFkcm54+Ai9sanxyXLLd8zKSoNxFlpqWrCu9CBiWCWFm0JB52fSCPXGd d2Tpj1o9aGtv0cYHuWLTYh3vd0Hr38ILjPVYLL0FmvZnEbOcm+YD4NguTyJhs/Qyv9hpXpLKL8wqD R/mp7QPGlinQvSN4OjWD3hiY5KGUJSA//sABJ1cQ6AP7d48sI3z/zVZa0f2HkhIYLW9VEDN3osGXN COfBws/miAKmml9BVIQw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG5bT-00HICv-6B; Thu, 12 Jan 2023 21:59:19 +0000 Received: from madras.collabora.co.uk ([46.235.227.172]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG5bO-00HI8i-S3 for linux-rockchip@lists.infradead.org; Thu, 12 Jan 2023 21:59:17 +0000 Received: from nicolas-tpx395.localdomain (192-222-136-102.qc.cable.ebox.net [192.222.136.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nicolas) by madras.collabora.co.uk (Postfix) with ESMTPSA id 1B7526602D54; Thu, 12 Jan 2023 21:59:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1673560749; bh=QNUS1EWqWeAuCxJFcUKOsOb/alY4Y2PQWCbxkVvG/j0=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=jqjC/5PQ+7KFmswb7xkwz4HRRe4F2Z8G39l/wH9SpChntH5GQAaVaGSymGSc/7Jta +qFsTkiYXfg+VMfK5ZPVmOB1EKk/dQyrdL94x22X6cHOv8JM5wGD/GZAx/yod9O7bZ MVJgaq8dBrnP58pFrBN/GCaj/5StwRGd0rKszCoCuDvhq7q7JI/rwvfcCdeoJApYbB RrLVDR1FdjRUkPKUYY4vdQXFMKJ+DyCEy1u3yaq0tLzzRr/q+W+Jpk2dTzCe0ZDnHI ZrgvG8PTC07JIb8qgwWuByL9OnamJVjCjzw1ZD722E8DYwsfeQcWrgV8xkkRqSRbd1 ttLrZs/BvAqjg== Message-ID: Subject: Re: [PATCH v2 09/12] staging: media: rkvdec: h264: Add callbacks for h264 From: Nicolas Dufresne To: Ezequiel Garcia , Sebastian Fricke Cc: Mauro Carvalho Chehab , Greg Kroah-Hartman , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, Jonas Karlman , Alex Bee , Collabora Kernel-domain , Robert Beckett , Laurent Pinchart , Andrzej Pietrasiewicz , Benjamin Gaignard Date: Thu, 12 Jan 2023 16:58:58 -0500 In-Reply-To: References: <20230101-patch-series-v2-6-2-rc1-v2-0-fa1897efac14@collabora.com> <20230101-patch-series-v2-6-2-rc1-v2-9-fa1897efac14@collabora.com> User-Agent: Evolution 3.46.2 (3.46.2-1.fc37) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230112_135915_282800_0C652BBC X-CRM114-Status: GOOD ( 47.35 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org TGUgamV1ZGkgMTIgamFudmllciAyMDIzIMOgIDEyOjIxIC0wMzAwLCBFemVxdWllbCBHYXJjaWEg YSDDqWNyaXTCoDoKPiBPbiBUaHUsIEphbiAxMiwgMjAyMyBhdCA5OjU2IEFNIFNlYmFzdGlhbiBG cmlja2UKPiA8c2ViYXN0aWFuLmZyaWNrZUBjb2xsYWJvcmEuY29tPiB3cm90ZToKPiA+IAo+ID4g SW1wbGVtZW50IHRoZSB2YWxpZCBmb3JtYXQgYW5kIHNwcyB2YWxpZGF0aW9uIGNhbGxiYWNrcyBm b3IgSDI2NC4KPiA+IEgyNjQgYWxyZWFkeSBoYXMgYSBTUFMgdmFsaWRhdGlvbiBmdW5jdGlvbiwg YWRqdXN0IGl0IHRvIGZpdCB0aGUKPiA+IGZ1bmN0aW9uIHRoZSBkZWNsYXJhdGlvbiBhbmQgYWRk IGVycm9yIG1lc3NhZ2VzLgo+ID4gQWRkaXRpb25hbGx5LCBhZGQgYSBmdW5jdGlvbiB0byBmZXRj aCBhdHRyaWJ1dGVzIGZyb20gdGhlIFNQUyBpbiBhIGh1bWFuCj4gPiByZWFkYWJsZSBmb3JtYXQg dG8gbWFrZSB0aGUgY29kZSBtb3JlIHNlbGYgZG9jdW1lbnRpbmcuCj4gPiAKPiA+IFNpZ25lZC1v ZmYtYnk6IFNlYmFzdGlhbiBGcmlja2UgPHNlYmFzdGlhbi5mcmlja2VAY29sbGFib3JhLmNvbT4K PiA+IC0tLQo+ID4gIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLWgyNjQuYyB8 IDEwNSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA4 MCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLWgyNjQuYyBiL2RyaXZlcnMvc3RhZ2lu Zy9tZWRpYS9ya3ZkZWMvcmt2ZGVjLWgyNjQuYwo+ID4gaW5kZXggNGZjMTY3YjQyY2YwLi4xN2Iy MTU4NzRkZGQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvcmt2ZGVjL3Jr dmRlYy1oMjY0LmMKPiA+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMvcmt2ZGVj LWgyNjQuYwo+ID4gQEAgLTEwMjYsNDAgKzEwMjYsODAgQEAgc3RhdGljIGludCBya3ZkZWNfaDI2 NF9hZGp1c3RfZm10KHN0cnVjdCBya3ZkZWNfY3R4ICpjdHgsCj4gPiAgICAgICAgIHJldHVybiAw Owo+ID4gIH0KPiA+IAo+ID4gLXN0YXRpYyBpbnQgcmt2ZGVjX2gyNjRfdmFsaWRhdGVfc3BzKHN0 cnVjdCBya3ZkZWNfY3R4ICpjdHgsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgdjRsMl9jdHJsX2gyNjRfc3BzICpzcHMpCj4gPiArLyoKPiA+ICsg KiBDb252ZXJ0IHNvbWUgZmllbGRzIGZyb20gdGhlIFNQUyBzdHJ1Y3R1cmUgaW50byBodW1hbiBy ZWFkYWJsZSBhdHRyaWJ1dGVzLgo+ID4gKyAqLwo+ID4gK3N0YXRpYyBpbnQgcmt2ZGVjX2gyNjRf Z2V0X3Nwc19hdHRyaWJ1dGVzKHN0cnVjdCBya3ZkZWNfY3R4ICpjdHgsIHZvaWQgKnNwcywKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzcHNfYXR0 cmlidXRlcyAqYXR0cmlidXRlcykKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCB2NGwyX2N0cmxf aDI2NF9zcHMgKmgyNjRfc3BzID0gc3BzOwo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgd2lkdGgg PSAoaDI2NF9zcHMtPnBpY193aWR0aF9pbl9tYnNfbWludXMxICsgMSkgKiAxNjsKPiA+ICsgICAg ICAgdW5zaWduZWQgaW50IGhlaWdodCA9IChoMjY0X3Nwcy0+cGljX2hlaWdodF9pbl9tYXBfdW5p dHNfbWludXMxICsgMSkgKiAxNjsKPiA+ICsgICAgICAgLyoKPiA+ICsgICAgICAgICogV2hlbiBm cmFtZV9tYnNfb25seV9mbGFnIGlzIG5vdCBzZXQsIHRoaXMgaXMgZmllbGQgaGVpZ2h0LAo+ID4g KyAgICAgICAgKiB3aGljaCBpcyBoYWxmIHRoZSBmaW5hbCBoZWlnaHQgKHNlZSAoNy0xOCkgaW4g dGhlCj4gPiArICAgICAgICAqIHNwZWNpZmljYXRpb24pCj4gPiArICAgICAgICAqLwo+ID4gKyAg ICAgICBpZiAoIShoMjY0X3Nwcy0+ZmxhZ3MgJiBWNEwyX0gyNjRfU1BTX0ZMQUdfRlJBTUVfTUJT X09OTFkpKQo+ID4gKyAgICAgICAgICAgICAgIGhlaWdodCAqPSAyOwo+ID4gKwo+ID4gKyAgICAg ICBhdHRyaWJ1dGVzLT53aWR0aCA9IHdpZHRoOwo+ID4gKyAgICAgICBhdHRyaWJ1dGVzLT5oZWln aHQgPSBoZWlnaHQ7Cj4gPiArICAgICAgIGF0dHJpYnV0ZXMtPmx1bWFfYml0ZGVwdGggPSBoMjY0 X3Nwcy0+Yml0X2RlcHRoX2x1bWFfbWludXM4ICsgODsKPiA+ICsgICAgICAgYXR0cmlidXRlcy0+ Y2hyb21hX2JpdGRlcHRoID0gaDI2NF9zcHMtPmJpdF9kZXB0aF9jaHJvbWFfbWludXM4ICsgODsK PiA+ICsgICAgICAgc3dpdGNoIChoMjY0X3Nwcy0+Y2hyb21hX2Zvcm1hdF9pZGMpIHsKPiA+ICsg ICAgICAgY2FzZSAwOgo+ID4gKyAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMtPnN1YnNhbXBsaW5n ID0gNDAwOwo+ID4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICBjYXNlIDE6Cj4g PiArICAgICAgICAgICAgICAgYXR0cmlidXRlcy0+c3Vic2FtcGxpbmcgPSA0MjA7Cj4gPiArICAg ICAgICAgICAgICAgYnJlYWs7Cj4gPiArICAgICAgIGNhc2UgMjoKPiA+ICsgICAgICAgICAgICAg ICBhdHRyaWJ1dGVzLT5zdWJzYW1wbGluZyA9IDQyMjsKPiA+ICsgICAgICAgICAgICAgICBicmVh azsKPiA+ICsgICAgICAgY2FzZSAzOgo+ID4gKyAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMtPnN1 YnNhbXBsaW5nID0gNDQ0Owo+ID4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICB9 Owo+ID4gKyAgICAgICByZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBya3Zk ZWNfaDI2NF92YWxpZGF0ZV9zcHMoc3RydWN0IHJrdmRlY19jdHggKmN0eCwgdm9pZCAqc3BzLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHY0bDJfcGl4X2Zv cm1hdF9tcGxhbmUgKnBpeF9tcCkKPiA+ICB7Cj4gPiAtICAgICAgIHVuc2lnbmVkIGludCB3aWR0 aCwgaGVpZ2h0Owo+ID4gKyAgICAgICBzdHJ1Y3Qgc3BzX2F0dHJpYnV0ZXMgYXR0cmlidXRlcyA9 IHswfTsKPiA+ICsKPiA+ICsgICAgICAgcmt2ZGVjX2gyNjRfZ2V0X3Nwc19hdHRyaWJ1dGVzKGN0 eCwgc3BzLCAmYXR0cmlidXRlcyk7Cj4gPiAKPiA+ICAgICAgICAgLyoKPiA+ICAgICAgICAgICog VE9ETzogVGhlIGhhcmR3YXJlIHN1cHBvcnRzIDEwLWJpdCBhbmQgNDoyOjIgcHJvZmlsZXMsCj4g PiAgICAgICAgICAqIGJ1dCBpdCdzIGN1cnJlbnRseSBicm9rZW4gaW4gdGhlIGRyaXZlci4KPiA+ ICAgICAgICAgICogUmVqZWN0IHRoZW0gZm9yIG5vdywgdW50aWwgaXQncyBmaXhlZC4KPiA+ICAg ICAgICAgICovCj4gPiAtICAgICAgIGlmIChzcHMtPmNocm9tYV9mb3JtYXRfaWRjID4gMSkKPiA+ IC0gICAgICAgICAgICAgICAvKiBPbmx5IDQ6MDowIGFuZCA0OjI6MCBhcmUgc3VwcG9ydGVkICov Cj4gPiArICAgICAgIGlmIChhdHRyaWJ1dGVzLnN1YnNhbXBsaW5nID4gNDIwKSB7Cj4gPiArICAg ICAgICAgICAgICAgZGV2X2VycihjdHgtPmRldi0+ZGV2LAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgIk9ubHkgNDowOjAgYW5kIDQ6MjowIHN1YnNhbXBsaW5nIHNjaGVtZXMgYXJlIHN1cHBv cnRlZCwgZ290OiAlZFxuIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMu c3Vic2FtcGxpbmcpOwo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gLSAg ICAgICBpZiAoc3BzLT5iaXRfZGVwdGhfbHVtYV9taW51czggIT0gc3BzLT5iaXRfZGVwdGhfY2hy b21hX21pbnVzOCkKPiA+IC0gICAgICAgICAgICAgICAvKiBMdW1hIGFuZCBjaHJvbWEgYml0IGRl cHRoIG1pc21hdGNoICovCj4gPiArICAgICAgIH0KPiA+ICsgICAgICAgaWYgKGF0dHJpYnV0ZXMu bHVtYV9iaXRkZXB0aCAhPSBhdHRyaWJ1dGVzLmNocm9tYV9iaXRkZXB0aCkgewo+ID4gKyAgICAg ICAgICAgICAgIGRldl9lcnIoY3R4LT5kZXYtPmRldiwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICJMdW1hIGFuZCBjaHJvbWEgYml0IGRlcHRoIG1pc21hdGNoLCBsdW1hICVkLCBjaHJvbWEg JWRcbiIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLmx1bWFfYml0ZGVw dGgsIGF0dHJpYnV0ZXMuY2hyb21hX2JpdGRlcHRoKTsKPiA+ICAgICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKPiA+IC0gICAgICAgaWYgKHNwcy0+Yml0X2RlcHRoX2x1bWFfbWludXM4ICE9 IDApCj4gPiAtICAgICAgICAgICAgICAgLyogT25seSA4LWJpdCBpcyBzdXBwb3J0ZWQgKi8KPiA+ ICsgICAgICAgfQo+ID4gKyAgICAgICBpZiAoYXR0cmlidXRlcy5sdW1hX2JpdGRlcHRoICE9IDgp IHsKPiA+ICsgICAgICAgICAgICAgICBkZXZfZXJyKGN0eC0+ZGV2LT5kZXYsICJPbmx5IDgtYml0 IEgyNjQgZm9ybWF0cyBzdXBwb3J0ZWQsIFNQUyAlZFxuIiwKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGF0dHJpYnV0ZXMubHVtYV9iaXRkZXB0aCk7Cj4gPiAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7Cj4gPiArICAgICAgIH0KPiA+IAo+ID4gLSAgICAgICB3aWR0aCA9IChzcHMt PnBpY193aWR0aF9pbl9tYnNfbWludXMxICsgMSkgKiAxNjsKPiA+IC0gICAgICAgaGVpZ2h0ID0g KHNwcy0+cGljX2hlaWdodF9pbl9tYXBfdW5pdHNfbWludXMxICsgMSkgKiAxNjsKPiA+IC0KPiA+ IC0gICAgICAgLyoKPiA+IC0gICAgICAgICogV2hlbiBmcmFtZV9tYnNfb25seV9mbGFnIGlzIG5v dCBzZXQsIHRoaXMgaXMgZmllbGQgaGVpZ2h0LAo+ID4gLSAgICAgICAgKiB3aGljaCBpcyBoYWxm IHRoZSBmaW5hbCBoZWlnaHQgKHNlZSAoNy0xOCkgaW4gdGhlCj4gPiAtICAgICAgICAqIHNwZWNp ZmljYXRpb24pCj4gPiAtICAgICAgICAqLwo+ID4gLSAgICAgICBpZiAoIShzcHMtPmZsYWdzICYg VjRMMl9IMjY0X1NQU19GTEFHX0ZSQU1FX01CU19PTkxZKSkKPiA+IC0gICAgICAgICAgICAgICBo ZWlnaHQgKj0gMjsKPiA+IC0KPiA+IC0gICAgICAgaWYgKHdpZHRoID4gY3R4LT5jb2RlZF9mbXQu Zm10LnBpeF9tcC53aWR0aCB8fAo+ID4gLSAgICAgICAgICAgaGVpZ2h0ID4gY3R4LT5jb2RlZF9m bXQuZm10LnBpeF9tcC5oZWlnaHQpCj4gPiArICAgICAgIGlmIChhdHRyaWJ1dGVzLndpZHRoID4g cGl4X21wLT53aWR0aCB8fCBhdHRyaWJ1dGVzLmhlaWdodCA+IHBpeF9tcC0+aGVpZ2h0KSB7Cj4g PiArICAgICAgICAgICAgICAgZGV2X2VycihjdHgtPmRldi0+ZGV2LAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgIkluY29tcGF0aWJsZSBTUFMgZGltZW5zaW9uLCBTUFMgJWR4JWQsIFBpeGVs IGZvcm1hdCAlZHglZC4iLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy53 aWR0aCwgYXR0cmlidXRlcy5oZWlnaHQsIHBpeF9tcC0+d2lkdGgsIHBpeF9tcC0+aGVpZ2h0KTsK PiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ICsgICAgICAgfQo+ID4gCj4g PiAgICAgICAgIHJldHVybiAwOwo+ID4gIH0KPiA+IEBAIC0xMDc3LDggKzExMTcsOSBAQCBzdGF0 aWMgaW50IHJrdmRlY19oMjY0X3N0YXJ0KHN0cnVjdCBya3ZkZWNfY3R4ICpjdHgpCj4gPiAgICAg ICAgIGlmICghY3RybCkKPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+IAo+ ID4gLSAgICAgICByZXQgPSBya3ZkZWNfaDI2NF92YWxpZGF0ZV9zcHMoY3R4LCBjdHJsLT5wX25l dy5wX2gyNjRfc3BzKTsKPiA+IC0gICAgICAgaWYgKHJldCkKPiA+ICsgICAgICAgcmV0ID0gcmt2 ZGVjX2gyNjRfdmFsaWRhdGVfc3BzKGN0eCwgY3RybC0+cF9uZXcucF9oMjY0X3NwcywKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPmNvZGVkX2ZtdC5mbXQu cGl4X21wKTsKPiAKPiBOb3QgYSBwcm9ibGVtIHdpdGggdGhpcyBwYXRjaCwgYnV0IEkgd29uZGVy IHdoeSB3ZSBhY2NlcHRlZCBhIHZhbGlkYXRpb24KPiBpbiB0aGUgc3RhcnRfc3RyZWFtaW5nIHN0 ZXAuCgpJdHMgc29tZXRoaW5nIHdlJ3ZlIGJlZW4gZGlzY3Vzc2luZyBhIGxvdCBsYXRlbHkgQmVu amFtaW4gLyBTZWJhc3RpYW4gYW4gSSAoaW4KcGVyc29uLCBzb3JyeSBmb3IgdGhhdCwgYnV0IHNv bWV0aW1lcyB3ZSB3b3JrIGJldHRlciBvZmYgY2hhdHMpLiBUaGlzIGlzCnNvbWV0aGluZyBub25l IG9mIHRoZSByZXZpZXdlcnMvYXV0aG9ycyBzZWVtcyB0byBoYXZlIGFjdHVhbGx5IGNhcmVkIGFi b3V0IHNvCmZhci4gSW4gc3RhdGVsZXNzIGRlY29kZXJzICB3ZSBoYXZlIEZNVChPVVRQVVQpIHRo YXQgY29udGFpbnMgdGhlIGNvZGVkIHNpemUsClNfQ1RSTChTT01FX0hFQURFUlMpIHdoaWNoIGlz IHJlc3RyaWN0ZWQgYnkgdGhlIHNpemUgaW4gRk1UKE9VVFBVVCkKKHJlc3RyaWN0aW9ucyBkZXBl bmRzIG9uIHRoZSBjb2RlYywgY291bGQgYmUgPT0sIG9yIHNtYWxsZXIpIGJ1dCBhbHNvIHVzZWQg dG8KY3JlYXRlIGFuZCBsaW1pdCB3aGF0IEZNVChDQVBUVVJFKSBjYW4gYmUuCgpPbmUgdGhpbmcg dGhhdCByYWlzZWQsIGlzIHRoYXQgdGhlIHdpZHRoL2hlaWdodCBhbGlnbm1lbnQgaGFzIGJlZW4g Y2FyZWxlc3NseQphcHBsaWVkIHRvIE9VVFBVVCBhbmQgQ0FQVFVSRSwgc2F2ZWQgYnkgdGhlIGZh Y3QgdGhlIHJlYWwgdmFsdWUgaXMgaW4gU1BTLCBidXQKcG9zc2libHkgbGVhZGluZyB0byBzdHJh bmdlIGJ1Z3MuIE5vdGFibHkgd2Ugbm90aWNlIHRoYXQgc29tZSBjb2RlZCBzaXplcwpyZWplY3Rl ZCBieSBTX0ZNVChPVVRPVVQpIHN0aWxsIGxlYWQgdG8gd29ya2luZyBzdHJlYW1vbiBhbmQgZGVj b2RlIDotUy4KClRoZSBvdGhlciBhc3BlY3QgaXMgdmFsaWRhdGlvbi4gVGhlIGluaXRpYWwgdGhp bmtpbmcgd2FzIHRoYXQgd2UgY2FuIHZhbGlkYXRlCnRoZSBTUFMgKFNPTUVfSEVBREVSUykgZGly ZWN0bHkgd2hlbiB0aGUgY29udHJvbCBpcyBzZXQuIEJ1dCB3ZSBmb3VuZCBhIGdhcCwKdXNlcnNw YWNlIGNvdWxkIGNvbWUgYmFjayBhbmQgY2hhbmdlIHRoZSBjb2RlZCBzaXplIGluIEZNVChPVVRQ VVQpIHRvIG1pc3MtbWF0Y2gKdGhlIGhlYWRlci4gV2UgY2FuJ3QgcmVqZWN0IHRoYXQsIHNpbmNl IEZNVChPVVRQVVQpIHNob3VsZCBqdXN0IGFsd2F5cyB3b3JrcywKaXRzIHRoZSBmaXJzdCBzdGVw IGFjY29yZGluZyB0byB0aGUgZG9jLiBUaGUgZG9jIGRvZXMgbm90IGltcG9zZSBjbG9zaW5nIHRo ZQpkZXZpY2UgYW5kIHJlc3RhcnRpbmcgZnJvbSBzY3JhdGNoIChldmVuIHRob3VnaCB0aGlzIGlz IHdoYXQgb3VyIHVzZXJzcGFjZQpjdXJyZW50bHkgdGhvdWdoKS4gU28gaW4gc2hvcnQsIGlmIHRo ZSBTUFMgY29kZWQgc2l6ZSBubyBsb25nZXIgbWF0Y2ggdGhlIE9VVFBVVApyZXBvcnRlZCBjb2Rl ZCBzaXplLCB3ZSBuZWVkZWQgdG8gcmVqZWN0IHN0cmVhbW9uLCBoZW5jZSB0aGUgdmFsaWRhdGlv biB0aGVyZS4KT2YgY291cnNlLCB0aGVyZSB3YXMgc29tZSBtb3JlIG1pc3Rha2VzIGRvbmUsIGxp a2UgdHJ5aW5nIHRvIHZhbGlkYXRlIHdoZW4KZXhlY3V0aW5nIGEgam9iLCBidXQgSSB0aGluayBh bGwgb2YgdGhlc2UgZ290IGNhdWdodCBhdCByZXZpZXcuCgpPbiBvZiB0aGUgcmVmbGVjdGlvbiB3 ZSBoYXZlLCBpcyB0aGF0IHRvIGJlIG1vcmUgInNlbWFudGljYWxseSIgYWxpZ25lZCB3aXRoClY0 TDIgY29udHJvbCBmcmFtZXdvcmssIHdlIHNob3VsZCBpbnN0ZWFkIG9mIHRoaXMgZW5zdXJlIHRo ZSB0aGUgU1BTIGlzIGFsd2F5cwp2YWxpZC4gQnV0IHRoaXMgaXMgYSBiaXQgb2Ygd29yayBmb3Ig YSB1c2VjYXNlIHRoYXQgbm8gb25lIG5lZWRzLiBJbiBzaG9ydCwKU19GTVQoT1VUUFVUKSB3b3Vs ZCBhbHdheXMgcmVzZXQgdGhlIFNQUyBieSBjcmVhdGluZyBvbmUgdGhhdCBpcyB2YWxpZCBhbmQK bWFjaGVzIHRoZSBjb2RlZCBzaXplICh3aGVuIHRoZSBiaXRzdHJlYW0gaGVhZGVyIGhhdmUgdGhh dCwgdGhlIHJlYXNvbiBpdHMKZHVwbGljYXRlZCBpcyB0aGF0IHdlIHdhbnRlZCB0byBzdXBwb3J0 IGxpZ2h0IGNvZGluZyBmb3JtYXQgd2hpY2ggZG9lcyBub3QgY2FycnkKdGhhdCBpbmZvcm1hdGlv biBpbiB0aGUgYml0c3RyZWFtKS4gVGhlIEZNVChDQVBUVVJFKSB3b3VsZCBhbHNvIGJlIHJlc2V0 IHRvCnNvbWV0aGluZyB2YWxpZCBhY2NvcmRpbmcgdG8gYm90aC4KClRoZW4gd2UnZCB2YWxpZGF0 ZSB0aGUgU1BTIGNvbnRyb2wgYWdhaW5zdCB0aGUgRk1UKE9VVFBVVCkgd2hlbiBzZXQsIGFuZCBh bHdheXMKcmVzZXQgdGhlIEZNVChDQVBUVVJFKSBhY2NvcmRpbmdseS4gVGhpcyB3YXksIG5vIG1v cmUgdmFsaWRhdGlvbiB3b3VsZCBiZQpyZXF1aXJlZCBhdCBzdHJlYW1vbiwgc2luY2Ugd2UgZW5z dXJlIGV2ZXJ5dGhpbmcgc3RheSB2YWxpZCBieSBkaXNjYXJkaW5nIHBhc3QKc2V0dGluZ3MuIFN1 Y2ggYSBtZXRob2QgbmVlZHMgY2FyZWZ1bCB0aG91Z2h0LCBhbmQgcmVtZW1iZXIgYSBiaXQgb2Yg d29yaywgYnV0Cml0IHdvdWxkIGhlbHAgcHJldmVudCBmdXJ0aGVyIGJyb2tlbiBsb2dpYywgZm9y IHRob3NlIHdobyBoYXZlbid0IG5vdGljZWQsCkhhbnRybyBHMiBIRVZDIGRlY29kZXIgd2lsbCBw aWNrIE5WMTJfNEw0IGJ5IGRlZmF1bHQgd2hlbiB5b3UgcGFzcyBhIDEwYml0IFNQUywKY2F1c2Ug bm8gb25lIG5vdGljZWQgdW50aWwgdG9kYXkgLi4uIEJ1dCB0aGF0J3Mgbm90IHdoYXQgdGhlIHNw ZWMgaXMgZXhwZWN0aW5nLAphcyBpdHMgbm90IGEgIm5hdGl2ZSIgZm9ybWF0IGZvciB0aGUgYml0 c3RyZWFtLiBXaGF0IEkgbGlrZSBhYm91dCB0aGlzIHByb3Bvc2FsCmlzIHRoYXQgaXQgd291bGQg cmVtb3ZlIGFueSByZW1haW5pbmcgcG9zc2libGUgc2lkZSBlZmZlY3QgZnJvbSBhIHByZXZpb3Vz CnNlc3Npb24sIHRydWxseSBhbGxvd2luZyBmb3IgcmV1c2Ugb2YgY29kZWMgaW5zdGFuY2UsIGJ1 dCBhZ2FpbiwgdGhpcyBpcwp0aGVvcml0aWNhbCwgYXMgbG9uZyBhcyB5b3UgY2FuJ3QgY3Jhc2gg dGhlIGRyaXZlciAod2hpY2ggdGhlIGN1cnJlbnQgdmFsaWRhdGlvbgppcyBhYm91dCksIGl0cyBu b3QgYSByZWFsIGJ1ZywgbW9zdCB1c2Vyc3BhY2Ugd2lsbCBqdXN0IHNldCBldmVyeXRoaW5nIGFs bCB0aGUKdGltZSB3aXRoIHRoZXNlIENPREVDLgoKT2ssIHRoaXMgaXMgZ2V0dGluZyBsb25nLCBi dXQgSSBqdXN0IHdhbnQgdG8ga2VlcCBpbiBtaW5kIHRoaXMgaXMgbXVsdGlwbGUgeWVhcnMKb2Yg YWNjdW11bGF0ZWQgIG1pc3Rha2VzIChvciBqdXN0IGRlbGF5aW5nIGtub3duIGxpbWl0YXRpb24g aW4gZHJpdmVyIGRlc2lnbnMpLAp3ZSBzaG91bGQgcHJvYmFibHkgbm90IGJsb2NrIGZlYXR1cmVz IGNvbXBsZXRlbHkgb3ZlciBnZXR0aW5nIHRoaXMgcmlnaHQKaW1tZWRpYXRlbHksIGFzIGFsbCBp dCBkb2VzIGl0IG1ha2VzIHRoZSBhY3R1YWwgc3VmZmVyIGxvbmdlci4gVGhvdWdoLCB3ZSBzaG91 bGQKZW5jb3VyYWdlIGNyb3NzLWRyaXZlciBmaXhlcyB3aGVuZXZlciBzb21ldGhpbmcgaXMgaW1w cm92ZWQgaW4gb25lIGRyaXZlci4KCj4gCj4gQXQgdGhpcyBwb2ludCwgdGhlIGRyaXZlciBhY2Nl cHRlZCBhbGwgdGhlIGZvcm1hdCBuZWdvdGlhdGlvbnMgaW4gdHJ5X2ZtdC4KPiBJdCdzIGRpZmZp Y3VsdCBmb3IgYXBwbGljYXRpb25zIHRvIHJlY292ZXIgZnJvbSB0aGlzLCBhcyB0aGVyZSB3b3Vs ZAo+IGJlIG5vIHdheSB0byB0ZWxsIHdoYXQgZmFpbGVkLAo+IHdlIHdvdWxkIGJlIHJldHVybmlu ZyBFSU5WQUwsIHdoaWNoIGFzIHBlciB0aGUgc3BlYyBpcyAiYnVmZmVyIHR5cGUgaXMKPiBub3Qg c3VwcG9ydGVkLAo+IG9yIG5vIGJ1ZmZlcnMgaGF2ZSBiZWVuIGFsbG9jYXRlZCAobWVtb3J5IG1h cHBpbmcpIG9yIGVucXVldWVkIChvdXRwdXQpIHlldC4iLgo+IAo+IEkgdGhpbmsgaXQgd291bGQg cmVhbGx5IG1ha2UgYSBsb3Qgb2Ygc2Vuc2UgdG8gZml4IHRoaXMgbm93LCBpbnN0ZWFkIG9mIGNv bnRpbnVlCj4gYWJ1c2luZyBpdC4gQW5kIGFsc28sIEknZCBsaWtlIHRvIHByZXZlbnQgYSBwb3Nz aWJsZSBhbnRpLXBhdHRlcm4gZnJvbQo+IHNwcmVhZGluZy4KPiAKPiBUaGFua3MhCj4gRXplcXVp ZWwKPiAKPiA+ICsgICAgICAgaWYgKHJldCA8IDApCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJu IHJldDsKPiA+IAo+ID4gICAgICAgICBoMjY0X2N0eCA9IGt6YWxsb2Moc2l6ZW9mKCpoMjY0X2N0 eCksIEdGUF9LRVJORUwpOwo+ID4gQEAgLTExNzUsMTAgKzEyMTYsMjEgQEAgc3RhdGljIGludCBy a3ZkZWNfaDI2NF9ydW4oc3RydWN0IHJrdmRlY19jdHggKmN0eCkKPiA+ICAgICAgICAgcmV0dXJu IDA7Cj4gPiAgfQo+ID4gCj4gPiArc3RhdGljIHUzMiBya3ZkZWNfaDI2NF92YWxpZF9mbXQoc3Ry dWN0IHJrdmRlY19jdHggKmN0eCkKPiA+ICt7Cj4gPiArICAgICAgIC8qCj4gPiArICAgICAgICAq IE9ubHkgOCBiaXQgNDowOjAgYW5kIDQ6MjowIGZvcm1hdHMgc3VwcG9ydGVkIGZvciBub3cuCj4g PiArICAgICAgICAqIFRoZSBTUFMgaXMgdmFsaWRhdGVkIGF0IGEgZGlmZmVyZW50IGZ1bmN0aW9u IHRodXMgd2UgY2FuIGFzc3VtZSB0aGF0Cj4gPiArICAgICAgICAqIGl0IGlzIGNvcnJlY3QuCj4g PiArICAgICAgICAqLwo+ID4gKyAgICAgICByZXR1cm4gVjRMMl9QSVhfRk1UX05WMTI7Cj4gPiAr fQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQgcmt2ZGVjX2gyNjRfdHJ5X2N0cmwoc3RydWN0IHJrdmRl Y19jdHggKmN0eCwgc3RydWN0IHY0bDJfY3RybCAqY3RybCkKPiA+ICB7Cj4gPiAgICAgICAgIGlm IChjdHJsLT5pZCA9PSBWNEwyX0NJRF9TVEFURUxFU1NfSDI2NF9TUFMpCj4gPiAtICAgICAgICAg ICAgICAgcmV0dXJuIHJrdmRlY19oMjY0X3ZhbGlkYXRlX3NwcyhjdHgsIGN0cmwtPnBfbmV3LnBf aDI2NF9zcHMpOwo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBya3ZkZWNfaDI2NF92YWxpZGF0 ZV9zcHMoY3R4LCBjdHJsLT5wX25ldy5wX2gyNjRfc3BzLAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+Y29kZWRfZm10LmZtdC5waXhfbXAp Owo+ID4gCj4gPiAgICAgICAgIHJldHVybiAwOwo+ID4gIH0KPiA+IEBAIC0xMTg5LDQgKzEyNDEs NyBAQCBjb25zdCBzdHJ1Y3Qgcmt2ZGVjX2NvZGVkX2ZtdF9vcHMgcmt2ZGVjX2gyNjRfZm10X29w cyA9IHsKPiA+ICAgICAgICAgLnN0b3AgPSBya3ZkZWNfaDI2NF9zdG9wLAo+ID4gICAgICAgICAu cnVuID0gcmt2ZGVjX2gyNjRfcnVuLAo+ID4gICAgICAgICAudHJ5X2N0cmwgPSBya3ZkZWNfaDI2 NF90cnlfY3RybCwKPiA+ICsgICAgICAgLnZhbGlkX2ZtdCA9IHJrdmRlY19oMjY0X3ZhbGlkX2Zt dCwKPiA+ICsgICAgICAgLnNwc19jaGVjayA9IHJrdmRlY19oMjY0X3ZhbGlkYXRlX3NwcywKPiA+ ICsgICAgICAgLmdldF9zcHNfYXR0cmlidXRlcyA9IHJrdmRlY19oMjY0X2dldF9zcHNfYXR0cmli dXRlcywKPiA+ICB9Owo+ID4gCj4gPiAtLQo+ID4gMi4yNS4xCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0 CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo=