From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id D29FD4BD58 for ; Tue, 16 Jul 2024 18:15:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A656368DAD6; Tue, 16 Jul 2024 21:14:16 +0300 (EEST) Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 84AB368D8D0 for ; Tue, 16 Jul 2024 21:14:04 +0300 (EEST) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=iNPsNDTr; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id 49B5B4DE2 for ; Tue, 16 Jul 2024 19:16:38 +0200 (CEST) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id onXbvLXiWgOU for ; Tue, 16 Jul 2024 19:16:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1721150190; bh=SjyoPEshDDy0NzRMc111ie0DjM8B7+YjcLEfldRBcqA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=iNPsNDTr6I+zWAerQ3vJUdF9wHqTyToESJMzP9c9hZewIpQGoN60fIBUdIe8Ex/TO wc/xLZYOBiW5Ry1Zt75RODiLqI91U8Ei+MHws2EsVivqUCEO73iYhJelGBjVQWWoLd oJZjn2dtPgyQoB7PMxLuRcVz1VVZcJs4DHZGlPby1yvshgz4w1J/ufMG4lTQJ4hZkS tt27QF9pNVRr9Mc4+BZV2VY/dtbjgp5QJkCno8lhD26AcWG0xOSLwgdzzB7eNQ8Cr3 c6tyKNOoGIVpOXPDKdvy0aDyl+0bCbkWTK3KRVgkny/OABEPpjUUHjAuwRiPiRnOOP rki0yzLvVpA7w== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id A96374E0A for ; Tue, 16 Jul 2024 19:16:28 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 6CF3E3A2E5E for ; Tue, 16 Jul 2024 19:16:21 +0200 (CEST) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Tue, 16 Jul 2024 19:11:42 +0200 Message-ID: <20240716171155.31838-27-anton@khirnov.net> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240716171155.31838-1-anton@khirnov.net> References: <20240716171155.31838-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 27/39] lavc/ffv1: change FFV1SliceContext.plane into a RefStruct object X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: RnJhbWUgdGhyZWFkaW5nIGluIHRoZSBGRlYxIGRlY29kZXIgd29ya3MgaW4gYSB2ZXJ5IHVudXN1 YWwgd2F5IC0gdGhlCnN0YXRlIHRoYXQgbmVlZHMgdG8gYmUgcHJvcGFnYXRlZCBmcm9tIHRoZSBw cmV2aW91cyBmcmFtZSBpcyBub3QgZGVjb2RlZApwaXhlbHMowrkpLCBidXQgZWFjaCBzbGljZSdz IGVudHJvcHkgY29kZXIgc3RhdGUgYWZ0ZXIgZGVjb2RpbmcgdGhlIHNsaWNlLgoKRm9yIHRoYXQg cHVycG9zZSwgdGhlIGRlY29kZXIncyB1cGRhdGVfdGhyZWFkX2NvbnRleHQoKSBjYWxsYmFjayBz dG9yZXMKYSBwb2ludGVyIHRvIHRoZSBwcmV2aW91cyBmcmFtZSB0aHJlYWQncyBwcml2YXRlIGRh dGEuIFRoZW4sIHdoZW4KZGVjb2RpbmcgZWFjaCBzbGljZSwgdGhlIGZyYW1lIHRocmVhZCB1c2Vz IHRoZSBzdGFuZGFyZCBwcm9ncmVzcwptZWNoYW5pc20gdG8gd2FpdCBmb3IgdGhlIGNvcnJlc3Bv bmRpbmcgc2xpY2UgaW4gdGhlIHByZXZpb3VzIGZyYW1lIHRvCmJlIGNvbXBsZXRlZCwgdGhlbiBj b3BpZXMgdGhlIGVudHJvcHkgY29kZXIgc3RhdGUgZnJvbSB0aGUKcHJldmlvdXNseS1zdG9yZWQg cG9pbnRlci4KClRoaXMgYXBwcm9hY2ggaXMgaGlnaGx5IGR1YmlvdXMsIGFzIHVwZGF0ZV90aHJl YWRfY29udGV4dCgpIHNob3VsZCBiZQp0aGUgb25seSBwb2ludCB3aGVyZSBmcmFtZS10aHJlYWQg Y29udGV4dHMgY29tZSBpbnRvIGRpcmVjdCBjb250YWN0LgpUaGVyZSBhcmUgbm8gZ3VhcmFudGVl cyB0aGF0IHRoZSBzdG9yZWQgcG9pbnRlciB3aWxsIGJlIHZhbGlkIGF0IGFsbCwgb3IKd2lsbCBj b250YWluIGFueSBwYXJ0aWN1bGFyIGRhdGEgYWZ0ZXIgdXBkYXRlX3RocmVhZF9jb250ZXh0KCkg ZmluaXNoZXMuCgpNb3JlIHNwZWNpZmljYWxseSwgdGhpcyBjb2RlIGNhbiBicmVhayBkdWUgdG8g dGhlIGZhY3QgdGhhdCBrZXlmcmFtZXMKcmVzZXQgZW50cm9weSBjb2RlciBzdGF0ZSBhbmQgdGh1 cyBkbyBub3QgbmVlZCB0byB3YWl0IGZvciB0aGUgcHJldmlvdXMKZnJhbWUuIEFzIGFuIGV4YW1w bGUsIGNvbnNpZGVyIGEgZGVjb2RlciBwcm9jZXNzIHdpdGggMiBmcmFtZSB0aHJlYWRzIC0KdGhy ZWFkIDAgd2l0aCBpdHMgY29udGV4dCAwLCBhbmQgdGhyZWFkIDEgd2l0aCBjb250ZXh0IDEgLSBk ZWNvZGluZyBhCnByZXZpb3VzIGZyYW1lIFAsIGN1cnJlbnQgZnJhbWUgRiwgZm9sbG93ZWQgYnkg YSBrZXlmcmFtZSBLLiBUaGVuCmNvbnNpZGVyIGNvbmN1cnJlbnQgZXhlY3V0aW9uIGNvbnNpc3Rl bnQgd2l0aCB0aGUgZm9sbG93aW5nIHNlcXVlbmNlIG9mCmV2ZW50czoKKiB0aHJlYWQgMCBzdGFy dHMgZGVjb2RpbmcgUAoqIHRocmVhZCAwIHJlYWRzIFAncyBzbGljZSBoZWFkZXIsIHRoZW4gY2Fs bHMKICBmZl90aHJlYWRfZmluaXNoX3NldHVwKCkgYWxsb3dpbmcgbmV4dCBmcmFtZSB0aHJlYWQg dG8gc3RhcnQKKiBtYWluIHRocmVhZCBjYWxscyB1cGRhdGVfdGhyZWFkX2NvbnRleHQoKSB0byB0 cmFuc2ZlciBzdGF0ZSBmcm9tCiAgY29udGV4dCAwIHRvIGNvbnRleHQgMTsgY29udGV4dCAxIHN0 b3JlcyBhIHBvaW50ZXIgdG8gY29udGV4dCAwJ3MgcHJpdmF0ZQogIGRhdGEKKiB0aHJlYWQgMSBz dGFydHMgZGVjb2RpbmcgRgoqIHRocmVhZCAxIHJlYWRzIEYncyBzbGljZSBoZWFkZXIsIHRoZW4g Y2FsbHMKICBmZl90aHJlYWRfZmluaXNoX3NldHVwKCkgYWxsb3dpbmcgdGhlIG5leHQgZnJhbWUg dGhyZWFkIHRvIHN0YXJ0CiAgZGVjb2RpbmcKKiB0aHJlYWQgMCBmaW5pc2hlcyBkZWNvZGluZyBQ CiogdGhyZWFkIDAgc3RhcnRzIGRlY29kaW5nIEs7IHNpbmNlIEsgaXMgYSBrZXlmcmFtZSwgaXQg ZG9lcyBub3QKICB3YWl0IGZvciBGIGFuZCByZWFsbG9jYXRlcyB0aGUgYXJyYXlzIGhvbGRpbmcg ZW50cm9weSBjb2RlciBzdGF0ZQoqIHRocmVhZCAwIGZpbmlzaGVzIGRlY29kaW5nIEsKKiB0aHJl YWQgMSByZWFkcyBlbnRyb3B5IGNvZGVyIHN0YXRlIGZyb20gaXRzIHN0b3JlZCBwb2ludGVyIHRv IGNvbnRleHQKICAwLCBob3dldmVyIGl0IGZpbmRzIHN0YXRlIGZyb20gSyByYXRoZXIgdGhhbiBm cm9tIFAKClRoaXMgZXhlY3V0aW9uIGlzIGN1cnJlbnRseSBwcmV2ZW50ZWQgYnkgc3BlY2lhbC1j YXNpbmcgRkZWMSBpbiB0aGUKZ2VuZXJpYyBmcmFtZSB0aHJlYWRpbmcgY29kZSwgaG93ZXZlciB0 aGF0IGlzIHN1cHJlbWVseSB1Z2x5LiBJdCBhbHNvCmludm9sdmVzIHVubmVjZXNzYXJ5IGNvcGll cyBvZiB0aGUgc3RhdGUgYXJyYXlzLCB3aGVuIGluIGZhY3QgdGhleSBjYW4Kb25seSBiZSB1c2Vk IGJ5IG9uZSB0aHJlYWQgYXQgYSB0aW1lLgoKVGhpcyBjb21taXQgYWRkcmVzc2VzIHRoZXNlIGRl ZmljaWVuY2llcyBieSBjaGFuZ2luZyB0aGUgYXJyYXkgb2YKUGxhbmVDb250ZXh0IChlYWNoIG9m IHdoaWNoIGNvbnRhaW5zIHRoZSBhbGxvY2F0ZWQgc3RhdGUgYXJyYXlzKQplbWJlZGRlZCBpbiBG RlYxU2xpY2VDb250ZXh0IGludG8gYSBSZWZTdHJ1Y3Qgb2JqZWN0LiBUaGlzIG9iamVjdCBjYW4K dGhlbiBiZSBwcm9wYWdhdGVkIGFjcm9zcyBmcmFtZSB0aHJlYWRzIGluIHN0YW5kYXJkIG1hbm5l ci4gU2luY2UgdGhlCmNvZGUgc3RydWN0dXJlIGd1YXJhbnRlZXMgb25seSBvbmUgdGhyZWFkIGFj Y2Vzc2VzIGl0IGF0IGEgdGltZSwgbm8KY29waWVzIGFyZSBuZWNlc3NhcnkuIEl0IGlzIGFsc28g cmUtY3JlYXRlZCBmb3Iga2V5ZnJhbWVzLCBzb2x2aW5nIHRoZQphYm92ZSBpc3N1ZSBjbGVhbmx5 LgoKU3BlY2lhbC1jYXNpbmcgb2YgRkZWMSBpbiB0aGUgZ2VuZXJpYyBmcmFtZSB0aHJlYWRpbmcg Y29kZSB3aWxsIGJlCnJlbW92ZWQgaW4gYSBsYXRlciBjb21taXQuCgoowrkpIGV4Y2VwdCBpbiB0 aGUgY2FzZSBvZiBhIGRhbWFnZWQgc2xpY2UsIHdoZW4gcHJldmlvdXMgZnJhbWUncyBwaXhlbHMK ICAgIGFyZSB1c2VkIGRpcmVjdGx5Ci0tLQogbGliYXZjb2RlYy9mZnYxLmMgICAgfCAzMCArKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0KIGxpYmF2Y29kZWMvZmZ2MS5oICAgIHwgIDQgKysr LQogbGliYXZjb2RlYy9mZnYxZGVjLmMgfCAzMyArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9mZnYxLmMgYi9saWJhdmNvZGVjL2ZmdjEuYwppbmRl eCAwN2NmNTU2NGNjLi45YzIxOWI1ZGRiIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2ZmdjEuYwor KysgYi9saWJhdmNvZGVjL2ZmdjEuYwpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiYXZj b2RlYy5oIgogI2luY2x1ZGUgImZmdjEuaCIKKyNpbmNsdWRlICJyZWZzdHJ1Y3QuaCIKIAogYXZf Y29sZCBpbnQgZmZfZmZ2MV9jb21tb25faW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCiB7CkBA IC01Miw2ICs1MywyNCBAQCBhdl9jb2xkIGludCBmZl9mZnYxX2NvbW1vbl9pbml0KEFWQ29kZWND b250ZXh0ICphdmN0eCkKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgcGxhbmVzX2Zy ZWUoRkZSZWZTdHJ1Y3RPcGFxdWUgb3BhcXVlLCB2b2lkICpvYmopCit7CisgICAgUGxhbmVDb250 ZXh0ICpwbGFuZXMgPSBvYmo7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9QTEFORVM7 IGkrKykgeworICAgICAgICBQbGFuZUNvbnRleHQgKnAgPSAmcGxhbmVzW2ldOworCisgICAgICAg IGF2X2ZyZWVwKCZwLT5zdGF0ZSk7CisgICAgICAgIGF2X2ZyZWVwKCZwLT52bGNfc3RhdGUpOwor ICAgIH0KK30KKworUGxhbmVDb250ZXh0KiBmZl9mZnYxX3BsYW5lc19hbGxvYyh2b2lkKQorewor ICAgIHJldHVybiBmZl9yZWZzdHJ1Y3RfYWxsb2NfZXh0KHNpemVvZihQbGFuZUNvbnRleHQpICog TUFYX1BMQU5FUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBOVUxMLCBw bGFuZXNfZnJlZSk7Cit9CisKIGF2X2NvbGQgaW50IGZmX2ZmdjFfaW5pdF9zbGljZV9zdGF0ZShj b25zdCBGRlYxQ29udGV4dCAqZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGRlYxU2xpY2VDb250ZXh0ICpzYykKIHsKQEAgLTEzMiw2ICsxNTEsMTAgQEAgYXZfY29sZCBp bnQgZmZfZmZ2MV9pbml0X3NsaWNlX2NvbnRleHRzKEZGVjFDb250ZXh0ICpmKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigqc2MtPnNhbXBsZV9i dWZmZXIzMikpOwogICAgICAgICBpZiAoIXNjLT5zYW1wbGVfYnVmZmVyIHx8ICFzYy0+c2FtcGxl X2J1ZmZlcjMyKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgICAg ICBzYy0+cGxhbmUgPSBmZl9mZnYxX3BsYW5lc19hbGxvYygpOworICAgICAgICBpZiAoIXNjLT5w bGFuZSkKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAgICAgfQogCiAgICAg cmV0dXJuIDA7CkBAIC0xODgsMTIgKzIxMSw3IEBAIGF2X2NvbGQgaW50IGZmX2ZmdjFfY2xvc2Uo QVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogICAgICAgICBhdl9mcmVlcCgmc2MtPnNhbXBsZV9idWZm ZXIpOwogICAgICAgICBhdl9mcmVlcCgmc2MtPnNhbXBsZV9idWZmZXIzMik7CiAKLSAgICAgICAg Zm9yIChpID0gMDsgaSA8IHMtPnBsYW5lX2NvdW50OyBpKyspIHsKLSAgICAgICAgICAgIFBsYW5l Q29udGV4dCAqcCA9ICZzYy0+cGxhbmVbaV07Ci0KLSAgICAgICAgICAgIGF2X2ZyZWVwKCZwLT5z dGF0ZSk7Ci0gICAgICAgICAgICBhdl9mcmVlcCgmcC0+dmxjX3N0YXRlKTsKLSAgICAgICAgfQor ICAgICAgICBmZl9yZWZzdHJ1Y3RfdW5yZWYoJnNjLT5wbGFuZSk7CiAgICAgfQogCiAgICAgYXZf ZnJlZXAoJmF2Y3R4LT5zdGF0c19vdXQpOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9mZnYxLmgg Yi9saWJhdmNvZGVjL2ZmdjEuaAppbmRleCA5ZDc5MjE5OTIxLi5lZGMzZjZhZWYwIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL2ZmdjEuaAorKysgYi9saWJhdmNvZGVjL2ZmdjEuaApAQCAtODEsNyAr ODEsOCBAQCB0eXBlZGVmIHN0cnVjdCBGRlYxU2xpY2VDb250ZXh0IHsKICAgICBpbnQgc2xpY2Vf cmN0X2J5X2NvZWY7CiAgICAgaW50IHNsaWNlX3JjdF9yeV9jb2VmOwogCi0gICAgUGxhbmVDb250 ZXh0IHBsYW5lW01BWF9QTEFORVNdOworICAgIC8vIFJlZlN0cnVjdCByZWZlcmVuY2UsIGFycmF5 IG9mIE1BWF9QTEFORVMgZWxlbWVudHMKKyAgICBQbGFuZUNvbnRleHQgKnBsYW5lOwogICAgIFB1 dEJpdENvbnRleHQgcGI7CiAgICAgUmFuZ2VDb2RlciBjOwogCkBAIC0xNTMsNiArMTU0LDcgQEAg aW50IGZmX2ZmdjFfY29tbW9uX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KTsKIGludCBmZl9m ZnYxX2luaXRfc2xpY2Vfc3RhdGUoY29uc3QgRkZWMUNvbnRleHQgKmYsIEZGVjFTbGljZUNvbnRl eHQgKnNjKTsKIGludCBmZl9mZnYxX2luaXRfc2xpY2VzX3N0YXRlKEZGVjFDb250ZXh0ICpmKTsK IGludCBmZl9mZnYxX2luaXRfc2xpY2VfY29udGV4dHMoRkZWMUNvbnRleHQgKmYpOworUGxhbmVD b250ZXh0ICpmZl9mZnYxX3BsYW5lc19hbGxvYyh2b2lkKTsKIGludCBmZl9mZnYxX2FsbG9jYXRl X2luaXRpYWxfc3RhdGVzKEZGVjFDb250ZXh0ICpmKTsKIHZvaWQgZmZfZmZ2MV9jbGVhcl9zbGlj ZV9zdGF0ZShjb25zdCBGRlYxQ29udGV4dCAqZiwgRkZWMVNsaWNlQ29udGV4dCAqc2MpOwogaW50 IGZmX2ZmdjFfY2xvc2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KTsKZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvZmZ2MWRlYy5jIGIvbGliYXZjb2RlYy9mZnYxZGVjLmMKaW5kZXggYmU0YTFhMmJmMy4u N2RjNGE1MzdhOSAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9mZnYxZGVjLmMKKysrIGIvbGliYXZj b2RlYy9mZnYxZGVjLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJtYXRob3BzLmgiCiAj aW5jbHVkZSAiZmZ2MS5oIgogI2luY2x1ZGUgInByb2dyZXNzZnJhbWUuaCIKKyNpbmNsdWRlICJy ZWZzdHJ1Y3QuaCIKICNpbmNsdWRlICJ0aHJlYWQuaCIKIAogc3RhdGljIGlubGluZSBhdl9mbGF0 dGVuIGludCBnZXRfc3ltYm9sX2lubGluZShSYW5nZUNvZGVyICpjLCB1aW50OF90ICpzdGF0ZSwK QEAgLTI2NSwzMCArMjY2LDExIEBAIHN0YXRpYyBpbnQgZGVjb2RlX3NsaWNlKEFWQ29kZWNDb250 ZXh0ICpjLCB2b2lkICphcmcpCiAgICAgaWYgKGYtPmZzcmMgJiYgIShwLT5mbGFncyAmIEFWX0ZS QU1FX0ZMQUdfS0VZKSAmJiBmLT5sYXN0X3BpY3R1cmUuZikKICAgICAgICAgZmZfcHJvZ3Jlc3Nf ZnJhbWVfYXdhaXQoJmYtPmxhc3RfcGljdHVyZSwgc2kpOwogCi0gICAgaWYoZi0+ZnNyYyAmJiAh KHAtPmZsYWdzICYgQVZfRlJBTUVfRkxBR19LRVkpKSB7CisgICAgaWYgKGYtPmZzcmMpIHsKICAg ICAgICAgY29uc3QgRkZWMVNsaWNlQ29udGV4dCAqc2NzcmMgPSAmZi0+ZnNyYy0+c2xpY2VzW3Np XTsKIAogICAgICAgICBpZiAoIShwLT5mbGFncyAmIEFWX0ZSQU1FX0ZMQUdfS0VZKSkKICAgICAg ICAgICAgIHNjLT5zbGljZV9kYW1hZ2VkIHw9IHNjc3JjLT5zbGljZV9kYW1hZ2VkOwotCi0gICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZi0+cGxhbmVfY291bnQ7IGkrKykgewotICAgICAgICAg ICAgY29uc3QgUGxhbmVDb250ZXh0ICpwc3JjID0gJnNjc3JjLT5wbGFuZVtpXTsKLSAgICAgICAg ICAgIFBsYW5lQ29udGV4dCAqcGRzdCA9ICZzYy0+cGxhbmVbaV07Ci0KLSAgICAgICAgICAgIGF2 X2ZyZWUocGRzdC0+c3RhdGUpOwotICAgICAgICAgICAgYXZfZnJlZShwZHN0LT52bGNfc3RhdGUp OwotICAgICAgICAgICAgbWVtY3B5KHBkc3QsIHBzcmMsIHNpemVvZigqcGRzdCkpOwotICAgICAg ICAgICAgcGRzdC0+c3RhdGUgPSBOVUxMOwotICAgICAgICAgICAgcGRzdC0+dmxjX3N0YXRlID0g TlVMTDsKLQotICAgICAgICAgICAgaWYgKGYtPmFjKSB7Ci0gICAgICAgICAgICAgICAgcGRzdC0+ c3RhdGUgPSBhdl9tYWxsb2NfYXJyYXkoQ09OVEVYVF9TSVpFLCAgcHNyYy0+Y29udGV4dF9jb3Vu dCk7Ci0gICAgICAgICAgICAgICAgbWVtY3B5KHBkc3QtPnN0YXRlLCBwc3JjLT5zdGF0ZSwgQ09O VEVYVF9TSVpFICogcHNyYy0+Y29udGV4dF9jb3VudCk7Ci0gICAgICAgICAgICB9IGVsc2Ugewot ICAgICAgICAgICAgICAgIHBkc3QtPnZsY19zdGF0ZSA9IGF2X21hbGxvY19hcnJheShzaXplb2Yo KnBkc3QtPnZsY19zdGF0ZSksIHBzcmMtPmNvbnRleHRfY291bnQpOwotICAgICAgICAgICAgICAg IG1lbWNweShwZHN0LT52bGNfc3RhdGUsIHBzcmMtPnZsY19zdGF0ZSwgc2l6ZW9mKCpwZHN0LT52 bGNfc3RhdGUpICogcHNyYy0+Y29udGV4dF9jb3VudCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg IH0KICAgICB9CiAKICAgICBzYy0+c2xpY2VfcmN0X2J5X2NvZWYgPSAxOwpAQCAtODEyLDYgKzc5 NCwxMSBAQCBzdGF0aWMgaW50IHJlYWRfaGVhZGVyKEZGVjFDb250ZXh0ICpmKQogICAgICAgICAg ICAgICAgICAgICAgICAgJiYgKHVuc2lnbmVkKXNjLT5zbGljZV95ICsgKHVpbnQ2NF90KXNjLT5z bGljZV9oZWlnaHQgPD0gZi0+aGVpZ2h0KTsKICAgICAgICAgfQogCisgICAgICAgIGZmX3JlZnN0 cnVjdF91bnJlZigmc2MtPnBsYW5lKTsKKyAgICAgICAgc2MtPnBsYW5lID0gZmZfZmZ2MV9wbGFu ZXNfYWxsb2MoKTsKKyAgICAgICAgaWYgKCFzYy0+cGxhbmUpCisgICAgICAgICAgICByZXR1cm4g QVZFUlJPUihFTk9NRU0pOworCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZi0+cGxhbmVf Y291bnQ7IGkrKykgewogICAgICAgICAgICAgUGxhbmVDb250ZXh0ICpjb25zdCBwID0gJnNjLT5w bGFuZVtpXTsKIApAQCAtODI4LDEwICs4MTUsNiBAQCBzdGF0aWMgaW50IHJlYWRfaGVhZGVyKEZG VjFDb250ZXh0ICpmKQogCiAgICAgICAgICAgICBpZiAoZi0+dmVyc2lvbiA8PSAyKSB7CiAgICAg ICAgICAgICAgICAgYXZfYXNzZXJ0MChjb250ZXh0X2NvdW50ID49IDApOwotICAgICAgICAgICAg ICAgIGlmIChwLT5jb250ZXh0X2NvdW50IDwgY29udGV4dF9jb3VudCkgewotICAgICAgICAgICAg ICAgICAgICBhdl9mcmVlcCgmcC0+c3RhdGUpOwotICAgICAgICAgICAgICAgICAgICBhdl9mcmVl cCgmcC0+dmxjX3N0YXRlKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcC0+ Y29udGV4dF9jb3VudCA9IGNvbnRleHRfY291bnQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K QEAgLTEwNjAsNiArMTA0Myw4IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3RocmVhZF9jb250ZXh0KEFW Q29kZWNDb250ZXh0ICpkc3QsIGNvbnN0IEFWQ29kZWNDb250ZXh0ICpzcmMpCiAKICAgICAgICAg c2MtPnNsaWNlX2RhbWFnZWQgPSBzYzAtPnNsaWNlX2RhbWFnZWQ7CiAKKyAgICAgICAgZmZfcmVm c3RydWN0X3JlcGxhY2UoJnNjLT5wbGFuZSwgc2MwLT5wbGFuZSk7CisKICAgICAgICAgaWYgKGZz cmMtPnZlcnNpb24gPCAzKSB7CiAgICAgICAgICAgICBzYy0+c2xpY2VfeCAgICAgICAgICAgICA9 IHNjMC0+c2xpY2VfeDsKICAgICAgICAgICAgIHNjLT5zbGljZV95ICAgICAgICAgICAgID0gc2Mw LT5zbGljZV95OwotLSAKMi40My4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1w ZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoK VG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==