From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 3684E4DDAA
	for <ffmpegdev@gitmailbox.com>; Fri, 25 Apr 2025 12:26:22 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C877A68813B;
	Fri, 25 Apr 2025 15:26:17 +0300 (EEST)
Received: from nef.ens.fr (nef2.ens.fr [129.199.96.40])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DFE9F687D43
 for <ffmpeg-devel@ffmpeg.org>; Fri, 25 Apr 2025 15:26:10 +0300 (EEST)
X-ENS-nef-client: 129.199.129.80 ( name = phare.normalesup.org )
Received: from phare.normalesup.org (phare.normalesup.org [129.199.129.80])
 by nef.ens.fr (8.14.4/1.01.28121999) with ESMTP id 53PCQAbG027679
 for <ffmpeg-devel@ffmpeg.org>; Fri, 25 Apr 2025 14:26:10 +0200
Received: by phare.normalesup.org (Postfix, from userid 1001)
 id 2130A2EFE7; Fri, 25 Apr 2025 14:26:10 +0200 (CEST)
Date: Fri, 25 Apr 2025 14:26:10 +0200
From: Nicolas George <george@nsup.org>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Message-ID: <aAt_YokCDjTocZ6_@phare.normalesup.org>
References: <MEYP282MB18784DCA03D764E54E08FC8D88BB2@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <MEYP282MB18784DCA03D764E54E08FC8D88BB2@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3
 (nef.ens.fr [129.199.96.32]); Fri, 25 Apr 2025 14:26:10 +0200 (CEST)
Subject: Re: [FFmpeg-devel] [PATCH] avfilter: add PCM dumping between
 filters for audio debugging
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/aAt_YokCDjTocZ6_@phare.normalesup.org/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

5LiA5Y+q5aSnIOiCpeeMqyAoSEUxMjAyNS0wNC0yMyk6Cj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2Vz
IFBDTSBkdW1waW5nIHN1cHBvcnQgYmV0d2VlbiBBVkZpbHRlciBsaW5rcywgaW50ZW5kZWQgZm9y
IGF1ZGlvIGRlYnVnZ2luZy4KClRoYW5rcyBmb3IgdGhlIHBhdGNoLiBTZWUgYSBmZXcgcmVtYXJr
cyBiZWxvdy4KCj4gSXQgYWRkcyBhIGNvbmZpZ3VyZS10aW1lIG9wdGlvbiBgLS1kdW1wZGlyPVBB
VEhgIHRvIHNwZWNpZnkgdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHJhdyBQQ00gZGF0YSAoZGVm
YXVsdDogL3RtcC8pLgo+IAo+IFR3byBjb21tYW5kcyBhcmUgZXhwb3NlZCB0byBjb250cm9sIGR1
bXBpbmc6Cj4gICAtIGR1bXBfcmF3X3N0YXJ0IDxkc3RfZmlsdGVyX25hbWU+Cj4gICAtIGR1bXBf
cmF3X3N0b3AgPGRzdF9maWx0ZXJfbmFtZT4KPiAKPiBEdW1wIGZpbGVzIGFyZSB3cml0dGVuIGFz
OiBzcmNuYW1lLWRzdG5hbWUtY2hhbm5lbC5wY20KCkkgZG8gbm90IGxpa2UgdGhlIGZhY3QgdGhh
dCBpdCByZWxpZXMgb24gYSBoYXJkLWNvZGVkIG91dHB1dCBwYXRoLiBJCnRoaW5rIGl0IHdvdWxk
IGJlIGJldHRlciB0byB0YWtlIHRoZSBvdXRwdXQgZmlsZSBuYW1lIGZyb20gdGhlIGNvbW1hbmQK
YXJndW1lbnQsIGV2ZW4gaWYgaXQgbWVhbnMgc3BsaXR0aW5nIGl0LgoKPiBTdXBwb3J0cyBwYWNr
ZWQgYW5kIHBsYW5hciBmb3JtYXRzLiBGaWxlIGRlc2NyaXB0b3JzIGFyZSBtYW5hZ2VkIGF1dG9t
YXRpY2FsbHkgYW5kIHdvcmsgb25seSBvbiBhdWRpbyBsaW5rcy4KPiAKPiBFeGFtcGxlIHVzYWdl
Ogo+ICAgICBhdmZpbHRlcl9wcm9jZXNzX2NvbW1hbmQoZmlsdGVyLCAiZHVtcF9yYXdfc3RhcnQi
LCAidm9sdW1lIiwgTlVMTCwgMCwgMCk7CgoKWW91IG5lZWQgdG8gYWRkIHRoYXQgaW50byB0aGUg
ZG9jdW1lbnRhdGlvbi4gQW5kIHBsZWFzZSBhZGQgYW4gZXhhbXBsZQpmb3IgdGhlIGNvbW1hbmQt
bGluZSB0b29sLgoKPiBUaGlzIGZlYXR1cmUgaGVscHMgZGV2ZWxvcGVycyBkZWJ1ZyBmaWx0ZXIg
YmVoYXZpb3IgYnkgaW5zcGVjdGluZyBpbnRlcm1lZGlhdGUgYXVkaW8gZGF0YS4KPiAtLS0KPiA+
RnJvbSA2YTMxYzg1YWZkMjgwMGMwOTA3NmMxZTJiN2M3MzRjN2I3MTlmNzNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQo+IEZyb206IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4K
PiBEYXRlOiBXZWQsIDIzIEFwciAyMDI1IDA5OjE3OjUxICswODAwCj4gU3ViamVjdDogW1BBVENI
IDEvMV0gYXZmaWx0ZXI6IGFkZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1ZGlv
Cj4gIGRlYnVnZ2luZwo+IAo+IFRoaXMgcGF0Y2ggYWRkcyB0aGUgYWJpbGl0eSB0byBkdW1wIHJh
dyBQQ00gYXVkaW8gZGF0YSBiZXR3ZWVuIEFWRmlsdGVyIGxpbmtzLgo+IEl0IGludHJvZHVjZXMg
YSBjb25maWd1cmUtdGltZSBvcHRpb24gYC0tZHVtcGRpcj1QQVRIYCB0byBjb250cm9sIHRoZSBv
dXRwdXQKPiBkaXJlY3Rvcnkgb2YgZHVtcCBmaWxlcyAoZGVmYXVsdDogL3RtcC8pLiBUaGlzIGZl
YXR1cmUgaXMgaGVscGZ1bCBmb3IgZGVidWdnaW5nCj4gZmlsdGVyIGJlaGF2aW9yIGFuZCB2ZXJp
ZnlpbmcgYXVkaW8gcHJvY2Vzc2luZy4KPiAKPiBUd28gZmlsdGVyIGNvbW1hbmRzIGFyZSBhZGRl
ZDoKPiAgIC0gZHVtcF9yYXdfc3RhcnQgPGRzdF9maWx0ZXJfbmFtZT4KPiAgIC0gZHVtcF9yYXdf
c3RvcCA8ZHN0X2ZpbHRlcl9uYW1lPgo+IAo+IFRoZSBQQ00gZmlsZXMgYXJlIHdyaXR0ZW4gaW4g
dGhlIGZvcm1hdDogc3JjbmFtZS1kc3RuYW1lLTxjaGFubmVsPi5wY20uCj4gCj4gU3VwcG9ydHMg
Ym90aCBwYWNrZWQgYW5kIHBsYW5hciBmb3JtYXRzLiBGaWxlIGRlc2NyaXB0b3JzIGFyZSBhdXRv
bWF0aWNhbGx5Cj4gbWFuYWdlZC4gV29ya3Mgb25seSBvbiBhdWRpbyBsaW5rcy4KPiAKPiBFeGFt
cGxlIHVzYWdlOgo+ICAgYXZmaWx0ZXJfcHJvY2Vzc19jb21tYW5kKGZpbHRlciwgImR1bXBfcmF3
X3N0YXJ0IiwgInZvbHVtZSIsIE5VTEwsIDAsIDApOwo+IAo+IFNpZ25lZC1vZmYtYnk6IFlpYm8g
RmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4KPiAtLS0KPiAgY29uZmlndXJlICAgICAgICAg
ICAgICB8ICAgNyArKysKPiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDExMCArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBsaWJhdmZpbHRlci9hdmZpbHRlci5o
IHwgICA0ICsrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKykKPiAKPiBkaWZm
IC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXggYzk0YjhlYWM0My4uMzgxNjMz
NzQ5ZCAxMDA3NTUKPiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9jb25maWd1cmUKPiBAQCAtNTI0
LDYgKzUyNCw3IEBAIERldmVsb3BlciBvcHRpb25zICh1c2VmdWwgd2hlbiB3b3JraW5nIG9uIEZG
bXBlZyBpdHNlbGYpOgo+ICAgIC0tZGlzYWJsZS1sYXJnZS10ZXN0cyAgICBkaXNhYmxlIHRlc3Rz
IHRoYXQgdXNlIGEgbGFyZ2UgYW1vdW50IG9mIG1lbW9yeQo+ICAgIC0tZGlzYWJsZS1wdHgtY29t
cHJlc3Npb24gZG9uJ3QgY29tcHJlc3MgQ1VEQSBQVFggY29kZSBldmVuIHdoZW4gcG9zc2libGUK
PiAgICAtLWRpc2FibGUtdmVyc2lvbi10cmFja2luZyBkb24ndCBpbmNsdWRlIHRoZSBnaXQvcmVs
ZWFzZSB2ZXJzaW9uIGluIHRoZSBidWlsZAo+ICsgIC0tZHVtcGRpcj1QQVRIICAgICAgICAgICBs
b2NhdGlvbiBvZiBwY20gZHVtcCBmaWxlcyB0byBzYXZlLgo+IAo+ICBOT1RFOiBPYmplY3QgZmls
ZXMgYXJlIGJ1aWx0IGF0IHRoZSBwbGFjZSB3aGVyZSBjb25maWd1cmUgaXMgbGF1bmNoZWQuCj4g
IEVPRgo+IEBAIC0yNjkwLDYgKzI2OTEsNyBAQCBQQVRIU19MSVNUPSIKPiAgICAgIHByZWZpeAo+
ICAgICAgc2hsaWJkaXIKPiAgICAgIGluc3RhbGxfbmFtZV9kaXIKPiArICAgIGR1bXBkaXIKPiAg
Igo+IAo+ICBDTURMSU5FX1NFVD0iCj4gQEAgLTQxMjMsNiArNDEyNSw5IEBAIGluY2Rpcl9kZWZh
dWx0PScke3ByZWZpeH0vaW5jbHVkZScKPiAgbGliZGlyX2RlZmF1bHQ9JyR7cHJlZml4fS9saWIn
Cj4gIG1hbmRpcl9kZWZhdWx0PScke3ByZWZpeH0vc2hhcmUvbWFuJwo+IAo+ICsjIHJ1bnRpbWUg
cGF0aAo+ICtkdW1wZGlyX2RlZmF1bHQ9Jy90bXAvJwo+ICsKPiAgIyB0b29sY2hhaW4KPiAgYXJf
ZGVmYXVsdD0iYXIiCj4gIGNjX2RlZmF1bHQ9ImdjYyIKPiBAQCAtODExOCw2ICs4MTIzLDcgQEAg
RE9DRElSPVwkKERFU1RESVIpJGRvY2Rpcgo+ICBNQU5ESVI9XCQoREVTVERJUikkbWFuZGlyCj4g
IFBLR0NPTkZJR0RJUj1cJChERVNURElSKSRwa2djb25maWdkaXIKPiAgSU5TVEFMTF9OQU1FX0RJ
Uj0kaW5zdGFsbF9uYW1lX2Rpcgo+ICtEVU1QRElSPSRkdW1wZGlyCj4gIFNSQ19QQVRIPSRzb3Vy
Y2VfcGF0aAo+ICBTUkNfTElOSz0kc291cmNlX2xpbmsKPiAgaWZuZGVmIE1BSU5fTUFLRUZJTEUK
PiBAQCAtODI2Nyw2ICs4MjczLDcgQEAgY2F0ID4gJFRNUEggPDxFT0YKPiAgI2RlZmluZSBDT05G
SUdfVEhJU19ZRUFSIDIwMjUKPiAgI2RlZmluZSBGRk1QRUdfREFUQURJUiAiJChldmFsIGNfZXNj
YXBlICRkYXRhZGlyKSIKPiAgI2RlZmluZSBBVkNPTlZfREFUQURJUiAiJChldmFsIGNfZXNjYXBl
ICRkYXRhZGlyKSIKPiArI2RlZmluZSBGRk1QRUdfRFVNUERJUiAiJChldmFsIGNfZXNjYXBlICRk
dW1wZGlyKSIKPiAgI2RlZmluZSBDQ19JREVOVCAiJChjX2VzY2FwZSAke2NjX2lkZW50Oi1Vbmtu
b3duIGNvbXBpbGVyfSkiCj4gICNkZWZpbmUgT1NfTkFNRSAkdGFyZ2V0X29zCj4gICNkZWZpbmUg
RVhURVJOX1BSRUZJWCAiJHtleHRlcm5fcHJlZml4fSIKPiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0
ZXIvYXZmaWx0ZXIuYyBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMKPiBpbmRleCA2NGMxMDc1YzQw
Li45ZmM2MzA4NTQ0IDEwMDY0NAo+IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMKPiArKysg
Yi9saWJhdmZpbHRlci9hdmZpbHRlci5jCj4gQEAgLTE5LDYgKzE5LDkgQEAKPiAgICogRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAw
MjExMC0xMzAxIFVTQQo+ICAgKi8KPiAKPiArI2luY2x1ZGUgPGZjbnRsLmg+Cj4gKyNpbmNsdWRl
IDx1bmlzdGQuaD4KPiArCj4gICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCIKPiAgI2lu
Y2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgo+ICAjaW5jbHVkZSAibGliYXZ1dGlsL2Jwcmlu
dC5oIgo+IEBAIC0xOTUsNiArMTk4LDY2IEBAIGludCBhdmZpbHRlcl9saW5rKEFWRmlsdGVyQ29u
dGV4dCAqc3JjLCB1bnNpZ25lZCBzcmNwYWQsCj4gICAgICByZXR1cm4gMDsKPiAgfQo+IAoKPiAr
c3RhdGljIGF2X2NvbGQgdm9pZCBsaW5rX3VuaW5pdF9kdW1wX3BjbShBVkZpbHRlckxpbmsgKmxp
bmssIGludCBzdG9wKQoKWW91IG5ldmVyIGNhbGwgaXQgdGhpcyBmdW5jdGlvbiB3aXRoIHN0b3Ag
IT0gMS4KCj4gK3sKPiArICAgIGlmIChsaW5rLT5kdW1wX3BjbV9mZHMpIHsKPiArICAgICAgICBp
bnQgaTsKPiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRzOyBp
KyspIHsKCj4gKyAgICAgICAgICAgIGlmIChsaW5rLT5kdW1wX3BjbV9mZHNbaV0pCj4gKyAgICAg
ICAgICAgICAgICBjbG9zZShsaW5rLT5kdW1wX3BjbV9mZHNbaV0pOwoKMCBpcyBhIHZhbGlkIGZk
LCAtMSBpcyB1c3VhbGx5IHVzZWQgZm9yIGludmFsaWQuCgo+ICsgICAgICAgIH0KCj4gKyAgICAg
ICAgYXZfZnJlZShsaW5rLT5kdW1wX3BjbV9mZHMpOwo+ICsgICAgICAgIGxpbmstPmR1bXBfcGNt
X2ZkcyAgICA9IE5VTEw7Cgphdl9mcmVlcCgpCgo+ICsgICAgICAgIGxpbmstPm5iX2R1bXBfcGNt
X2ZkcyA9IDA7Cj4gKyAgICB9Cj4gKwoKPiArICAgIGlmIChzdG9wKQo+ICsgICAgICAgIGxpbmst
PmR1bXBfcGNtID0gMDsKClNlZW1zIHJlZHVuZGFudCB3aXRoIGR1bXBfcGNtX2ZkcyBiZWluZyBO
VUxMIG9yIG5vdC4gVGhlIGZhY3QgdGhhdCBzdG9wCmlzIGFsd2F5cyAxIG1ha2VzIGl0IGNvbmZ1
c2luZy4KCj4gK30KPiArCj4gK3N0YXRpYyBhdl9jb2xkIGludCBsaW5rX2luaXRfZHVtcF9wY20o
QVZGaWx0ZXJMaW5rICpsaW5rKQo+ICt7Cj4gKyAgICBjaGFyIHBhdGhbNDA5Nl07Cj4gKyAgICBp
bnQgZmQsIGk7Cj4gKwoKPiArICAgIGxpbmstPm5iX2R1bXBfcGNtX2ZkcyA9IGF2X3NhbXBsZV9m
bXRfaXNfcGxhbmFyKGxpbmstPmZvcm1hdCk/IGxpbmstPmNoX2xheW91dC5uYl9jaGFubmVscyA6
IDE7Cj4gKyAgICBsaW5rLT5kdW1wX3BjbV9mZHMgPSBhdl9tYWxsb2NfYXJyYXkobGluay0+bmJf
ZHVtcF9wY21fZmRzLCBzaXplb2YoaW50KSk7CgpJIHRoaW5rIHR1cm5pbmcgcGxhbmFyIGludG8g
cGFja2V0IHdoZW4gZHVtcGluZyB3b3VsZCBiZSBtdWNoIG1vcmUKY29udmVuaWVudCBhbmQgc2lt
cGxlciB0byBpbXBsZW1lbnQuCgo+ICsgICAgaWYgKCFsaW5rLT5kdW1wX3BjbV9mZHMpCj4gKyAg
ICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiArCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwg
bGluay0+bmJfZHVtcF9wY21fZmRzOyBpKyspIHsKPiArICAgICAgICBzbnByaW50ZihwYXRoLCBz
aXplb2YocGF0aCksIEZGTVBFR19EVU1QRElSIiUuMTZzLSUuOHMtJWQucGNtIiwgbGluay0+c3Jj
LT5uYW1lLCBsaW5rLT5kc3QtPm5hbWUsIGkpOwoKPiArICAgICAgICBmZCA9IG9wZW4ocGF0aCwg
T19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQywgMDY0NCk7CgpJIHdvdWxkIGJlIG1vcmUgY29t
Zm9ydGFibGUgd2l0aCBPX0VYQ0wgdGhlcmUgdG9vLgoKPiArICAgICAgICBpZiAoZmQgPCAwKSB7
Cj4gKyAgICAgICAgICAgIGxpbmtfdW5pbml0X2R1bXBfcGNtKGxpbmssIDEpOwo+ICsgICAgICAg
ICAgICByZXR1cm4gQVZFUlJPUihlcnJubyk7Cj4gKyAgICAgICAgfQo+ICsgICAgICAgIGxpbmst
PmR1bXBfcGNtX2Zkc1tpXSA9IGZkOwoKTG9nZ2luZyB0aGUgZmlsZSBuYW1lIHdvdWxkIGJlIGEg
Z29vZCBpZGVhLgoKPiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh
dGljIGludCBmaWx0ZXJfc2V0X2R1bXBfcGNtKEFWRmlsdGVyQ29udGV4dCAqZmlsdGVyLCBjb25z
dCBjaGFyICp0YXJnZXQsIGludCBzZXQpCj4gK3sKPiArICAgIGludCBpOwo+ICsKPiArICAgIGZv
ciAoaSA9IDA7IGkgPCBmaWx0ZXItPm5iX291dHB1dHM7IGkrKykgewo+ICsgICAgICAgIEFWRmls
dGVyTGluayAqbGluayA9IGZpbHRlci0+b3V0cHV0c1tpXTsKPiArICAgICAgICBpZiAoIXRhcmdl
dCB8fCAhc3RyY21wKGxpbmstPmRzdC0+bmFtZSwgdGFyZ2V0KSkgewoKPiArICAgICAgICAgICAg
aWYgKHNldCkgewoKPiArICAgICAgICAgICAgICAgIGxpbmstPmR1bXBfcGNtID0gMTsKCldoeSBu
b3QgaW5pdCBpdCBpbW1lZGlhdGVseT8KCj4gKyAgICAgICAgICAgIH0gZWxzZQo+ICsgICAgICAg
ICAgICAgICAgbGlua191bmluaXRfZHVtcF9wY20obGluaywgMSk7CgpJIGRvIG5vdCByZW1lbWJl
ciB3aGF0IHdlIGRlY2lkZWQsIGJ1dCBtaXhpbmcgYnJhY2VzIGFuZCBubyBicmFjZXMgaXMKbm90
IGl0LiBTYW1lIGJlbG93LgoKPiArCj4gKyAgICAgICAgICAgIGlmICh0YXJnZXQpCj4gKyAgICAg
ICAgICAgICAgICByZXR1cm4gMDsKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0
dXJuIHRhcmdldCA/IEFWRVJST1IoRUlOVkFMKSA6IDA7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lk
IGxpbmtfZnJlZShBVkZpbHRlckxpbmsgKipsaW5rKQo+ICB7Cj4gICAgICBGaWx0ZXJMaW5rSW50
ZXJuYWwgKmxpOwo+IEBAIC0yMDgsNiArMjcxLDggQEAgc3RhdGljIHZvaWQgbGlua19mcmVlKEFW
RmlsdGVyTGluayAqKmxpbmspCj4gICAgICBhdl9jaGFubmVsX2xheW91dF91bmluaXQoJigqbGlu
ayktPmNoX2xheW91dCk7Cj4gICAgICBhdl9mcmFtZV9zaWRlX2RhdGFfZnJlZSgmKCpsaW5rKS0+
c2lkZV9kYXRhLCAmKCpsaW5rKS0+bmJfc2lkZV9kYXRhKTsKPiAKPiArICAgIGxpbmtfdW5pbml0
X2R1bXBfcGNtKCpsaW5rLCAxKTsKPiArCj4gICAgICBhdl9idWZmZXJfdW5yZWYoJmxpLT5sLmh3
X2ZyYW1lc19jdHgpOwo+IAo+ICAgICAgYXZfZnJlZXAobGluayk7Cj4gQEAgLTYxNyw2ICs2ODIs
MTAgQEAgaW50IGF2ZmlsdGVyX3Byb2Nlc3NfY29tbWFuZChBVkZpbHRlckNvbnRleHQgKmZpbHRl
ciwgY29uc3QgY2hhciAqY21kLCBjb25zdCBjaGEKPiAgICAgICAgICBpZiAocmVzID09IGxvY2Fs
X3JlcykKPiAgICAgICAgICAgICAgYXZfbG9nKGZpbHRlciwgQVZfTE9HX0lORk8sICIlcyIsIHJl
cyk7Cj4gICAgICAgICAgcmV0dXJuIDA7Cj4gKyAgICB9ZWxzZSBpZighc3RyY21wKGNtZCwgImR1
bXBfcmF3X3N0YXJ0IikpIHsKPiArICAgICAgICByZXR1cm4gZmlsdGVyX3NldF9kdW1wX3BjbShm
aWx0ZXIsIGFyZywgMSk7Cj4gKyAgICB9ZWxzZSBpZighc3RyY21wKGNtZCwgImR1bXBfcmF3X3N0
b3AiKSkgewo+ICsgICAgICAgIHJldHVybiBmaWx0ZXJfc2V0X2R1bXBfcGNtKGZpbHRlciwgYXJn
LCAwKTsKPiAgICAgIH1lbHNlIGlmKCFzdHJjbXAoY21kLCAiZW5hYmxlIikpIHsKPiAgICAgICAg
ICByZXR1cm4gc2V0X2VuYWJsZV9leHByKGZmZmlsdGVyY3R4KGZpbHRlciksIGFyZyk7Cj4gICAg
ICB9ZWxzZSBpZiAoZmZmaWx0ZXIoZmlsdGVyLT5maWx0ZXIpLT5wcm9jZXNzX2NvbW1hbmQpIHsK
PiBAQCAtMTA1MCw2ICsxMTE5LDQxIEBAIGZhaWw6Cj4gICAgICByZXR1cm4gcmV0Owo+ICB9Cj4g
Cj4gK3N0YXRpYyBpbnQgbGlua19kdW1wX2ZyYW1lKEFWRmlsdGVyTGluayAqbGluaywgQVZGcmFt
ZSAqZnJhbWUpCj4gK3sKPiArICAgIGludCBzYW1wbGVzX3NpemUsIHJldDsKPiArCj4gKyAgICBp
ZiAoIWxpbmstPmR1bXBfcGNtX2Zkcykgewo+ICsgICAgICAgIHJldCA9IGxpbmtfaW5pdF9kdW1w
X3BjbShsaW5rKTsKPiArICAgICAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICAgICAgcmV0dXJu
IHJldDsKPiArICAgIH0KPiArCj4gKyAgICBzYW1wbGVzX3NpemUgPSBhdl9nZXRfYnl0ZXNfcGVy
X3NhbXBsZShmcmFtZS0+Zm9ybWF0KSAqIGZyYW1lLT5uYl9zYW1wbGVzOwo+ICsgICAgaWYgKGF2
X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpKSB7Cj4gKyAgICAgICAgaW50IGk7
Cj4gKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGxpbmstPm5iX2R1bXBfcGNtX2ZkcyAmJiBpIDwg
ZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVsczsgaSsrKSB7Cgo+ICsgICAgICAgICAgICBpZiAo
aSA8IEFWX05VTV9EQVRBX1BPSU5URVJTKSB7Cj4gKyAgICAgICAgICAgICAgICByZXQgPSB3cml0
ZShsaW5rLT5kdW1wX3BjbV9mZHNbaV0sIGZyYW1lLT5kYXRhW2ldLCBzYW1wbGVzX3NpemUpOwo+
ICsgICAgICAgICAgICB9IGVsc2UKPiArICAgICAgICAgICAgICAgIHJldCA9IHdyaXRlKGxpbmst
PmR1bXBfcGNtX2Zkc1tpXSwgZnJhbWUtPmV4dGVuZGVkX2RhdGFbaSAtIEFWX05VTV9EQVRBX1BP
SU5URVJTXSwgc2FtcGxlc19zaXplKTsKClRoaXMgaXMgbm90IGhvdyBleHRlbmRlZF9kYXRhIHdv
cmtzLgoKWW91IG5lZWQgdG8gbG9vcCBpbiBjYXNlIG9mIHNob3J0IHdyaXRlcy4gT3IgbWF5YmUs
IHNpbXBsZXI6IHVzZSBzdGRpby4KU2FtZSBiZWxvdy4KCj4gKwo+ICsgICAgICAgICAgICBpZiAo
cmV0IDwgMCkKPiArICAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ICsgICAgICAgIH0KPiArICAg
IH0gZWxzZSB7Cj4gKyAgICAgICAgcmV0ID0gd3JpdGUobGluay0+ZHVtcF9wY21fZmRzWzBdLCBm
cmFtZS0+ZGF0YVswXSwgc2FtcGxlc19zaXplICogZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVs
cyk7Cj4gKyAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgICAgIGdvdG8gZXJyOwo+ICsK
PiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gMDsKPiArZXJyOgo+ICsgICAgbGlua191bmluaXRf
ZHVtcF9wY20obGluaywgMSk7Cj4gKyAgICByZXR1cm4gQVZFUlJPUihlcnJubyk7Cj4gK30KPiAr
Cj4gIGludCBmZl9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFt
ZSkKPiAgewo+ICAgICAgRmlsdGVyTGlua0ludGVybmFsICogY29uc3QgbGkgPSBmZl9saW5rX2lu
dGVybmFsKGxpbmspOwo+IEBAIC0xMDg3LDYgKzExOTEsMTIgQEAgaW50IGZmX2ZpbHRlcl9mcmFt
ZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmZyYW1lKQo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsaW5rLT50aW1lX2Jhc2UpOwo+ICAgICAgfQo+IAo+ICsg
ICAgaWYgKGxpbmstPmR1bXBfcGNtICYmIGxpbmstPnR5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElP
KSB7Cj4gKyAgICAgICAgcmV0ID0gbGlua19kdW1wX2ZyYW1lKGxpbmssIGZyYW1lKTsKPiArICAg
ICAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICAgICAgYXZfbG9nKGxpbmstPmRzdCwgQVZfTE9H
X0VSUk9SLCAiRHVtcCBwY20gZmlsZXMgZmFpbGVkIHdpdGggJWRcbiIsIHJldCk7Cj4gKyAgICB9
Cj4gKwo+ICAgICAgbGktPmZyYW1lX2Jsb2NrZWRfaW4gPSBsaS0+ZnJhbWVfd2FudGVkX291dCA9
IDA7Cj4gICAgICBsaS0+bC5mcmFtZV9jb3VudF9pbisrOwo+ICAgICAgbGktPmwuc2FtcGxlX2Nv
dW50X2luICs9IGZyYW1lLT5uYl9zYW1wbGVzOwo+IGRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9h
dmZpbHRlci5oIGIvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaAo+IGluZGV4IGE4OWQzY2Y2NTguLjZk
MDRiOWRhNzcgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaAo+ICsrKyBiL2xp
YmF2ZmlsdGVyL2F2ZmlsdGVyLmgKPiBAQCAtNDA0LDYgKzQwNCwxMCBAQCBzdHJ1Y3QgQVZGaWx0
ZXJMaW5rIHsKPiAgICAgIGludCBzYW1wbGVfcmF0ZTsgICAgICAgICAgICAvLy88IHNhbXBsZXMg
cGVyIHNlY29uZAo+ICAgICAgQVZDaGFubmVsTGF5b3V0IGNoX2xheW91dDsgIC8vLzwgY2hhbm5l
bCBsYXlvdXQgb2YgY3VycmVudCBidWZmZXIgKHNlZSBsaWJhdnV0aWwvY2hhbm5lbF9sYXlvdXQu
aCkKPiAKPiArICAgIGludCAgICAgICAgZHVtcF9wY207ICAgICAgIC8vLzwgZmxhZyB0byBkdW1w
IHBjbQo+ICsgICAgaW50ICAgICAgICAqZHVtcF9wY21fZmRzOyAgIC8vLzwgZHVtcCBmaWxlcwo+
ICsgICAgdW5zaWduZWQgbmJfZHVtcF9wY21fZmRzOyAgIC8vLzwgbnVtYmVyIG9mIGR1bXAgZmls
ZQo+ICsKPiAgICAgIC8qKgo+ICAgICAgICogRGVmaW5lIHRoZSB0aW1lIGJhc2UgdXNlZCBieSB0
aGUgUFRTIG9mIHRoZSBmcmFtZXMvc2FtcGxlcwo+ICAgICAgICogd2hpY2ggd2lsbCBwYXNzIHRo
cm91Z2ggdGhpcyBsaW5rLgoKUmVnYXJkcywKCi0tIAogIE5pY29sYXMgR2VvcmdlCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWls
aW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxt
YW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92
ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3Qg
InVuc3Vic2NyaWJlIi4K