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 ESMTPS id CF5664D31A for ; Wed, 19 Feb 2025 20:29:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E7FDD68C2EC; Wed, 19 Feb 2025 22:29:19 +0200 (EET) Received: from sender2-op-o18.zoho.eu (sender2-op-o18.zoho.eu [136.143.171.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1023F68BFFA for ; Wed, 19 Feb 2025 22:29:13 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; t=1739996951; cv=none; d=zohomail.eu; s=zohoarc; b=h8RKcyFRet9Ubq8a27MKc6J2jgjTtJA+wg5qI8UuBBsHTcefJmcPRiZ5IzPk5Ic5a0kB3tE6nQ2La434wJHcFva+XTX2ftdTaJkww82UKKAstBq4+4fyLOk2y1tHzN4bJLjunvi0inTU2HiZeRdHPXzVSUDSfVVh5f2g3MZTePo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1739996951; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=2pImAO46nyXOmthSrvkeuWRa0yKOf46wfaaZN45s9Tw=; b=LmSU6qwTJU1M1fVSIgnwGn2DVVwn8QT0IpXPTBvUV0qyAVUV7DpZtKixXpLpiTLM6uyEk8dnv5jHS8XR2LuyWWWlOSUBtvAILI8Sbfzv1jf6sUg0z6CV/xERLU52xyXJtk8+ZxDmzuI29RiHQIxV+OjkI7bIiJsgaRKMR+BZ194= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=frankplowman.com; spf=pass smtp.mailfrom=post@frankplowman.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1739996951; s=zmail; d=frankplowman.com; i=post@frankplowman.com; h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc; bh=2pImAO46nyXOmthSrvkeuWRa0yKOf46wfaaZN45s9Tw=; b=LPvbpReOhzJq/js7MPjfAryISpB0004s90hTz0niCorHgNUqCpacn0vIM4dxngt5 lY2QNVIFaHXbG+19rDxKpAiVynXLeJQHDnsjSiRcAj+QLFQ5sCqLyatFRF88d+fwSCs hbKYgqb9BepTMji36Oew6ci8nHF+k5KKj2uMmoz0= Received: by mx.zoho.eu with SMTPS id 1739996948996278.38343276270496; Wed, 19 Feb 2025 21:29:08 +0100 (CET) Message-ID: <3d809bda-37bf-4087-a66d-23c24f536ad5@frankplowman.com> Date: Wed, 19 Feb 2025 20:29:08 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-GB To: ffmpeg-devel@ffmpeg.org References: <20250209154505.69704-1-post@frankplowman.com> <20250209154505.69704-2-post@frankplowman.com> From: Frank Plowman In-Reply-To: X-ZohoMailClient: External Subject: Re: [FFmpeg-devel] [PATCH 2/2] lavc/vvc: Ensure subpictures don't overlap 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: SGksCgpUaGFua3MgZm9yIHlvdXIgcmV2aWV3LgoKT24gMTYvMDIvMjAyNSAxNToxOSwgTnVvIE1p IHdyb3RlOgo+IEhpIEZyYW5rLAo+IFRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgo+IAo+IE9uIFN1 biwgRmViIDksIDIwMjUgYXQgMTE6NDXigK9QTSBGcmFuayBQbG93bWFuIDxwb3N0QGZyYW5rcGxv d21hbi5jb20+IHdyb3RlOgo+IAo+PiBUaGlzIGlzIGVzc2VudGlhbGx5IGEgcmUtaW1wbGVtZW50 YXRpb24gb2YKPj4KPj4gaHR0cHM6Ly9wYXRjaHdvcmsuZmZtcGVnLm9yZy9wcm9qZWN0L2ZmbXBl Zy9wYXRjaC8yMDI0MTAwNTIyMzk1NS41NDE1OC0xLXBvc3RAZnJhbmtwbG93bWFuLmNvbS8KPj4K Pj4gVGhhdCBwYXRjaCB3YXMgbm90IGFwcGxpZWQgbGFzdCB0aW1lLiAgSW5zdGVhZCB3ZSBvcHRl ZCB0byBpZGVudGlmeQo+PiBpc3N1ZXMgd2hpY2ggY291bGQgYmUgY2F1c2VkIGJ5IGludmFsaWQg c3VicGljdHVyZSBsYXlvdXRzIGFuZCByZW1lZHkKPj4gdGhvc2UgaXNzdWVzIHdoZXJlIHRoZXkg bWFuaWZlc3QsIGVpdGhlciB0aHJvdWdoIGVycm9yIGRldGVjdGlvbiBvciBjb2RlCj4+IGhhcmRl bmluZy4gIFRoaXMgd2FzIHByaW1hcmlseSBpbXBsZW1lbnRlZCBpbiB0aGUgc2V0Cj4+IGh0dHBz Oi8vcGF0Y2h3b3JrLmZmbXBlZy5vcmcvcHJvamVjdC9mZm1wZWcvbGlzdC8/c2VyaWVzPTEzMzgx Lgo+Pgo+PiBUaGlzIGhhcyB3b3JrZWQgdG8gc29tZSBkZWdyZWUsIGhvd2V2ZXIgaXNzdWVzIHdp dGggc3VicGljdHVyZSBsYXlvdXRzCj4+IGNvbnRpbnVlIHRvIGNyb3AgdXAgZnJvbSB0aGUgZnV6 emVyIGFuZCBJJ3ZlIGZpeGVkIGEgbnVtYmVyIG9mIGJ1Z3MKPj4gcmVsYXRlZCB0byBzdWJwaWN0 dXJlIGxheW91dHMgc2luY2UgdGhlbi4gIEkgdGhpbmsgaXQncyBiZXN0IHRvIHJldHVybgo+PiB0 byB0aGUgaW5pdGlhbCBwbGFuIGFuZCBzaW1wbHkgY2hlY2sgaWYgdGhlIHN1YnBpY3R1cmUgbGF5 b3V0IGlzIHZhbGlkCj4+IGluaXRpYWxseS4KPj4KPj4gVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBh bHNvIGxpZ2h0ZXIgdGhhbiB0aGUgZmlyc3QgdGltZSAtLSBieSBkb2luZyBhCj4+IGJpdCBtb3Jl IGxvZ2ljIGluIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3NsaWNlLCB3ZSBhcmUgYWJs ZSB0bwo+PiBzdG9yZSBhIHRpbGVfaW5fc3VicGljIG1hcCByYXRoZXIgdGhhbiBhIGN0dV9pbl9z dWJwaWMgbWFwLiAgVGhpcwo+PiByZWR1Y2VzIHRoZSBzaXplIG9mIHRoZSBtYXAgdG8gdGhlIHBv aW50IGl0IGJlY29tZXMgcG9zc2libGUgdG8gYWxsb2NhdGUKPj4gaXQgb24gdGhlIHN0YWNrLiAg U2ltaWxhciB0byA4YmQ2NmE4Yzk1ODdhZjYxYzdiNDY1NThiZTNjNGVlMzE3YzFhZjVhLAo+PiB0 aGUgbGF5b3V0IGlzIGFsc28gdmFsaWRhdGVkIGluIHRoZSBzbGljZSBtYXAgY29uc3RydWN0aW9u IGNvZGUsIHJhdGhlcgo+PiB0aGFuIGluIHRoZSBDQlMsIHdoaWNoIGF2b2lkcyBkdXBsaWNhdGlu ZyBzb21lIGxvZ2ljLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBGcmFuayBQbG93bWFuIDxwb3N0QGZy YW5rcGxvd21hbi5jb20+Cj4+IC0tLQo+PiAgbGliYXZjb2RlYy92dmMvcHMuYyB8IDUyICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+PiAgMSBmaWxlIGNoYW5n ZWQsIDQyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy92dmMvcHMuYyBiL2xpYmF2Y29kZWMvdnZjL3BzLmMKPj4gaW5kZXggOTQ4MDU0 MGUwMy4uOWFmNWUxMjUwYiAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy92dmMvcHMuYwo+PiAr KysgYi9saWJhdmNvZGVjL3Z2Yy9wcy5jCj4+IEBAIC00MDEsMjUgKzQwMSw0NyBAQCBzdGF0aWMg dm9pZCBzdWJwaWNfdGlsZXMoaW50ICp0aWxlX3gsIGludCAqdGlsZV95LAo+PiBpbnQgKnRpbGVf eF9lbmQsIGludCAqdGlsZV95Xwo+PiAgICAgICAgICAoKnRpbGVfeV9lbmQpKys7Cj4+ICB9Cj4+ Cj4+IC1zdGF0aWMgdm9pZCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQ UFMgKnBwcywgY29uc3QgVlZDU1BTCj4+ICpzcHMsIGNvbnN0IGludCBpLCBjb25zdCBpbnQgdHgs IGNvbnN0IGludCB0eSwgaW50ICpvZmYpCj4+ICtzdGF0aWMgaW50IHBwc19zdWJwaWNfbGVzc190 aGFuX29uZV90aWxlX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMKPj4gKnNwcywgY29u c3QgaW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZiwgYm9vbAo+PiAq dGlsZV9pbl9zdWJwaWMpCj4+ICB7Cj4+ICsgICAgY29uc3QgaW50IHN1YnBpY19yaWdodCA9IHNw cy0+ci0+c3BzX3N1YnBpY19jdHVfdG9wX2xlZnRfeFtpXSArCj4+IHNwcy0+ci0+c3BzX3N1YnBp Y193aWR0aF9taW51czFbaV07Cj4+ICsgICAgY29uc3QgaW50IHN1YnBpY19ib3R0b20gPSBzcHMt PnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3lbaV0gKwo+PiBzcHMtPnItPnNwc19zdWJwaWNf aGVpZ2h0X21pbnVzMVtpXTsKPj4gKyAgICBjb25zdCBpbnQgdGlsZV9yaWdodCA9IHBwcy0+Y29s X2JkW3R4XSArIHBwcy0+ci0+Y29sX3dpZHRoX3ZhbFt0eF0gLQo+PiAxOwo+PiArICAgIGNvbnN0 IGludCB0aWxlX2JvdHRvbSA9IHBwcy0+cm93X2JkW3R5XSArIHBwcy0+ci0+cm93X2hlaWdodF92 YWxbdHldCj4+IC0gMTsKPj4gKyAgICBjb25zdCBib29sIGlzX2ZpbmFsX3N1YnBpY19pbl90aWxl ID0gc3VicGljX3JpZ2h0ID09IHRpbGVfcmlnaHQgJiYKPj4gc3VicGljX2JvdHRvbSA9PSB0aWxl X2JvdHRvbTsKPj4gKwo+PiArICAgIGlmIChpc19maW5hbF9zdWJwaWNfaW5fdGlsZSkgewo+PiAr ICAgICAgICBjb25zdCBzaXplX3QgdGlsZV9pZHggPSB0eSAqIFZWQ19NQVhfVElMRV9DT0xVTU5T ICsgdHg7Cj4gCj4gSWYgd2UgaGF2ZSAgVlZDX01BWF9USUxFU19QRVJfQVUgcm93cy4gdGhpcyB3 aWxsIG92ZXJ3cml0ZS4KPiBIb3cgYWJvdXQgdGlsZV9pZHggPSB0eSAqIHBwcy0+ci0+bnVtX3Rp bGVfY29sdW1ucyArIHR4Pwo+IAoKQWgsIEknZCBwcmVzdW1lZCBWVkNfTUFYX1RJTEVfQ09MVU1O UyAqIFZWQ19NQVhfVElMRV9ST1dTID0KVlZDX01BWF9USUxFU19QRVJfQVUgYnV0IEkgc2VlIG5v dyB0aGlzIGlzIG5vdCB0aGUgY2FzZS4gIEZpeGVkIGluIHYyLgoKPj4KPiAKPiArICAgICAgICBp ZiAodGlsZV9pbl9zdWJwaWNbdGlsZV9pZHhdKQo+PiArICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7Cj4+ICsgICAgICAgIHRpbGVfaW5fc3VicGljW3RpbGVfaWR4XSA9IHRy dWU7Cj4+ICsgICAgfQo+PiArCj4+ICAgICAgcHBzLT5udW1fY3R1c19pbl9zbGljZVtpXSA9IHBw c19hZGRfY3R1cyhwcHMsIG9mZiwKPj4gICAgICAgICAgc3BzLT5yLT5zcHNfc3VicGljX2N0dV90 b3BfbGVmdF94W2ldLAo+PiBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3lbaV0sCj4+ ICAgICAgICAgIHNwcy0+ci0+c3BzX3N1YnBpY193aWR0aF9taW51czFbaV0gKyAxLAo+PiBzcHMt PnItPnNwc19zdWJwaWNfaGVpZ2h0X21pbnVzMVtpXSArIDEpOwo+PiArCj4+ICsgICAgcmV0dXJu IDA7Cj4+ICB9Cj4+Cj4+IC1zdGF0aWMgdm9pZCBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVz X3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBpbnQKPj4gdGlsZV94LCBjb25zdCBpbnQgdGlsZV95 LCBjb25zdCBpbnQgeF9lbmQsIGNvbnN0IGludCB5X2VuZCwgY29uc3QgaW50IGksCj4+IGludCAq b2ZmKQo+PiArc3RhdGljIGludCBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKFZW Q1BQUyAqcHBzLCBjb25zdCBpbnQKPj4gdGlsZV94LCBjb25zdCBpbnQgdGlsZV95LCBjb25zdCBp bnQgeF9lbmQsIGNvbnN0IGludCB5X2VuZCwKPj4gKyAgICBjb25zdCBpbnQgaSwgaW50ICpvZmYs IGJvb2wgKnRpbGVfaW5fc3VicGljKQo+PiAgewo+PiAgICAgIGZvciAoaW50IHR5ID0gdGlsZV95 OyB0eSA8IHlfZW5kOyB0eSsrKSB7Cj4+ICAgICAgICAgIGZvciAoaW50IHR4ID0gdGlsZV94OyB0 eCA8IHhfZW5kOyB0eCsrKSB7Cj4+ICsgICAgICAgICAgICBjb25zdCBzaXplX3QgdGlsZV9pZHgg PSB0eSAqIFZWQ19NQVhfVElMRV9DT0xVTU5TICsgdHg7Cj4+ICsgICAgICAgICAgICBpZiAodGls ZV9pbl9zdWJwaWNbdGlsZV9pZHhdKQo+PiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9S X0lOVkFMSUREQVRBOwo+PiArICAgICAgICAgICAgdGlsZV9pbl9zdWJwaWNbdGlsZV9pZHhdID0g dHJ1ZTsKPj4gKwo+PiAgICAgICAgICAgICAgcHBzLT5udW1fY3R1c19pbl9zbGljZVtpXSArPSBw cHNfYWRkX2N0dXMocHBzLCBvZmYsCj4+ICAgICAgICAgICAgICAgICAgcHBzLT5jb2xfYmRbdHhd LCBwcHMtPnJvd19iZFt0eV0sCj4+ICAgICAgICAgICAgICAgICAgcHBzLT5yLT5jb2xfd2lkdGhf dmFsW3R4XSwgcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pOwo+PiAgICAgICAgICB9Cj4+ICAg ICAgfQo+PiArICAgIHJldHVybiAwOwo+PiAgfQo+Pgo+PiAtc3RhdGljIHZvaWQgcHBzX3N1YnBp Y19zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpzcHMsIGNvbnN0IGludCBpLAo+PiBp bnQgKm9mZikKPj4gK3N0YXRpYyBpbnQgcHBzX3N1YnBpY19zbGljZShWVkNQUFMgKnBwcywgY29u c3QgVlZDU1BTICpzcHMsIGNvbnN0IGludCBpLAo+PiBpbnQgKm9mZiwgYm9vbCAqdGlsZV9pbl9z dWJwaWMpCj4+ICB7Cj4+ICAgICAgaW50IHR4LCB0eSwgeF9lbmQsIHlfZW5kOwo+Pgo+PiBAQCAt NDI4LDE5ICs0NTAsMzAgQEAgc3RhdGljIHZvaWQgcHBzX3N1YnBpY19zbGljZShWVkNQUFMgKnBw cywgY29uc3QKPj4gVlZDU1BTICpzcHMsIGNvbnN0IGludCBpLCBpbnQgKm8KPj4KPj4gICAgICBz dWJwaWNfdGlsZXMoJnR4LCAmdHksICZ4X2VuZCwgJnlfZW5kLCBzcHMsIHBwcywgaSk7Cj4+Cj4g Q2FsY3VsYXRpbmcgdGlsZXMgZm9yIGVhY2ggc2xpY2Ugc21hbGxlciB0aGFuIG9uZSB0aWxlIGlz IGluZWZmaWNpZW50Lgo+IE1heWJlIHdlIGNhbiBtb3ZlIHN1YnBpY190aWxlcygpIHRvIHBwc19z aW5nbGVfc2xpY2VfcGVyX3N1YnBpYygpOyB0aGlzCj4gbWlnaHQgc2ltcGxpZnkgdGhlIHBhdGNo Lgo+IAoKSSBkb24ndCB0aGluayB0aGlzIHdpbGwgYmUgYWxsIHRoYXQgc3RyYWlnaHRmb3J3YXJk LiAgSW4KcHBzX3NpbmdsZV9zbGljZV9wZXJfc3VicGljIHdlIGFyZSBpdGVyYXRpbmcgb3ZlciBz bGljZXMgd2hvc2UgbG9jYXRpb25zCmFuZCBzaXplcyBhcmUgZGV0ZXJtaW5lZCBieSBleHBsaWNp dGx5LXNpZ25hbGVkIHN1YnBpY3R1cmVzLiAgQmVjYXVzZQp0aGVpciBsb2NhdGlvbnMgYXJlIGV4 cGxpY2l0bHktc2lnbmFsZWQgYW5kIGFyZSB0aGVyZWZvcmUgcHJldHR5IG11Y2gKYXJiaXRyYXJ5 LCBpdCB3aWxsIGJlIGRpZmZpY3VsdCBpbiBwcHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJwaWMgdG8g Z3JvdXAKdG9nZXRoZXIgdGhlIHNsaWNlcy9zdWJwaWN0dXJlcyB3aGljaCBtYWtlIHVwIGEgZ2l2 ZW4gdGlsZS4gIEkgdGhpbmsKaXQncyBwb3NzaWJsZSwgYnV0IGJ5IHRoZSB0aW1lIHlvdSd2ZSBp bXBsZW1lbnRlZCB0aGUgbG9naWMgdG8gZmlndXJlCnRoYXQgb3V0LCBJIGRvbid0IHRoaW5rIHRo ZXJlIHdvdWxkIGJlIGFueSBwZXJmb3JtYW5jZSBiZW5lZml0IG92ZXIganVzdApjYWxsaW5nIHN1 YnBpY190aWxlcyBmb3IgZWFjaCBzdWJwaWMuCgpJdCdzIGFsc28gd29ydGggbm90aW5nIHRoYXQg SSBkb24ndCB0aGluayB0aGVyZSBhcmUgYW55IGVuY29kZXJzIG91dAp0aGVyZSB3aGljaCBhY3R1 YWxseSBwcm9kdWNlIHN1YnBpY3R1cmVzIHNtYWxsZXIgdGhhbiBhIHRpbGUsIGF0IGxlYXN0Ckkn dmUgbmV2ZXIgc2VlbiBhIGJpdHN0cmVhbSB3aGljaCBleGVyY2lzZXMKcHBzX3N1YnBpY19sZXNz X3RoYW5fb25lX3RpbGVfc2xpY2UuICBJIHRoaW5rIGNoYW5naW5nCnBwc19zaW5nbGVfc2xpY2Vf cGVyX3N1YnBpYyBjb3VsZCBydW4gdGhlIHJpc2sgb2Ygc2xvd2luZyBkb3duIHRoZSBtdWNoCm1v cmUgY29tbW9uIHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2UuCgo+ICAgICAgaWYg KHR5ICsgMSA9PSB5X2VuZCAmJiBzcHMtPnItPnNwc19zdWJwaWNfaGVpZ2h0X21pbnVzMVtpXSAr IDEgPAo+PiBwcHMtPnItPnJvd19oZWlnaHRfdmFsW3R5XSkKPj4gLSAgICAgICAgcHBzX3N1YnBp Y19sZXNzX3RoYW5fb25lX3RpbGVfc2xpY2UocHBzLCBzcHMsIGksIHR4LCB0eSwgb2ZmKTsKPj4g KyAgICAgICAgcmV0dXJuIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3NsaWNlKHBwcywg c3BzLCBpLCB0eCwgdHksCj4+IG9mZiwgdGlsZV9pbl9zdWJwaWMpOwo+PiAgICAgIGVsc2UKPj4g LSAgICAgICAgcHBzX3N1YnBpY19vbmVfb3JfbW9yZV90aWxlc19zbGljZShwcHMsIHR4LCB0eSwg eF9lbmQsIHlfZW5kLCBpLAo+PiBvZmYpOwo+PiArICAgICAgICByZXR1cm4gcHBzX3N1YnBpY19v bmVfb3JfbW9yZV90aWxlc19zbGljZShwcHMsIHR4LCB0eSwgeF9lbmQsCj4+IHlfZW5kLCBpLCBv ZmYsIHRpbGVfaW5fc3VicGljKTsKPj4gIH0KPj4KPj4gLXN0YXRpYyB2b2lkIHBwc19zaW5nbGVf c2xpY2VfcGVyX3N1YnBpYyhWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpzcHMsCj4+IGludCAq b2ZmKQo+PiArc3RhdGljIGludCBwcHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJwaWMoVlZDUFBTICpw cHMsIGNvbnN0IFZWQ1NQUyAqc3BzLAo+PiBpbnQgKm9mZikKPj4gIHsKPj4gICAgICBpZiAoIXNw cy0+ci0+c3BzX3N1YnBpY19pbmZvX3ByZXNlbnRfZmxhZykgewo+PiAgICAgICAgICBwcHNfc2lu Z2xlX3NsaWNlX3BpY3R1cmUocHBzLCBvZmYpOwo+PiAgICAgIH0gZWxzZSB7Cj4+IC0gICAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgcHBzLT5yLT5wcHNfbnVtX3NsaWNlc19pbl9waWNfbWludXMx ICsgMTsgaSsrKQo+PiAtICAgICAgICAgICAgcHBzX3N1YnBpY19zbGljZShwcHMsIHNwcywgaSwg b2ZmKTsKPj4gKyAgICAgICAgYm9vbCB0aWxlX2luX3N1YnBpY1tWVkNfTUFYX1RJTEVTX1BFUl9B VV0gPSB7MH07Cj4+ICsgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcHBzLT5yLT5wcHNfbnVt X3NsaWNlc19pbl9waWNfbWludXMxICsgMTsKPj4gaSsrKSB7Cj4+ICsgICAgICAgICAgICBjb25z dCBpbnQgcmV0ID0gcHBzX3N1YnBpY19zbGljZShwcHMsIHNwcywgaSwgb2ZmLAo+PiB0aWxlX2lu X3N1YnBpYyk7Cj4+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkKPj4gKyAgICAgICAgICAgICAg ICByZXR1cm4gcmV0Owo+PiArICAgICAgICB9Cj4+ICsKPj4gKyAgICAgICAgLy8gV2Ugb25seSB1 c2UgdGlsZV9pbl9zdWJwaWMgdG8gY2hlY2sgdGhhdCB0aGUgc3VicGljdHVyZXMgZG9uJ3QKPj4g b3ZlcmxhcAo+PiArICAgICAgICAvLyBoZXJlOyB3ZSBkb24ndCB1c2UgdGlsZV9pbl9zdWJwaWMg dG8gY2hlY2sgdGhhdCB0aGUKPj4gc3VicGljdHVyZXMgY292ZXIKPj4gKyAgICAgICAgLy8gZXZl cnkgdGlsZS4gIEl0IGlzIHBvc3NpYmxlIHRvIGF2b2lkIGRvaW5nIHRoaXMgd29yayBoZXJlCj4+ IGJlY2F1c2UgdGhlCj4+ICsgICAgICAgIC8vIGNvdmVyaW5nIHByb3BlcnR5IG9mIHN1YnBpY3R1 cmVzIGlzIGFscmVhZHkgZ3VhcmFudGVlZCBieSB0aGUKPj4gbWVjaGFuaXNtcwo+PiArICAgICAg ICAvLyB3aGljaCBjaGVjayBldmVyeSBDVFUgYmVsb25ncyB0byBhIHNsaWNlLgo+PiAgICAgIH0K Pj4gKyAgICByZXR1cm4gMDsKPj4gIH0KPj4KPj4gIHN0YXRpYyBpbnQgcHBzX29uZV90aWxlX3Ns aWNlcyhWVkNQUFMgKnBwcywgY29uc3QgaW50IHRpbGVfaWR4LCBpbnQgaSwKPj4gaW50ICpvZmYp Cj4+IEBAIC00OTEsOCArNTI0LDcgQEAgc3RhdGljIGludCBwcHNfcmVjdF9zbGljZShWVkNQUFMg KnBwcywgY29uc3QgVlZDU1BTCj4+ICpzcHMpCj4+ICAgICAgaW50IHRpbGVfaWR4ID0gMCwgb2Zm ID0gMDsKPj4KPj4gICAgICBpZiAoci0+cHBzX3NpbmdsZV9zbGljZV9wZXJfc3VicGljX2ZsYWcp IHsKPj4gLSAgICAgICAgcHBzX3NpbmdsZV9zbGljZV9wZXJfc3VicGljKHBwcywgc3BzLCAmb2Zm KTsKPj4gLSAgICAgICAgcmV0dXJuIDA7Cj4+ICsgICAgICAgIHJldHVybiBwcHNfc2luZ2xlX3Ns aWNlX3Blcl9zdWJwaWMocHBzLCBzcHMsICZvZmYpOwo+PiAgICAgIH0KPj4KPj4gICAgICBmb3Ig KGludCBpID0gMDsgaSA8IHItPnBwc19udW1fc2xpY2VzX2luX3BpY19taW51czEgKyAxOyBpKysp IHsKPj4gLS0KPj4gMi40Ny4wCj4+Cj4+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRl dmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1w ZWctZGV2ZWwKPiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3Jp YmUiLgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZm bXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9m Zm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwg dmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9y ZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K