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 B59F445907 for ; Mon, 27 Mar 2023 16:09:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E9EB768C6C3; Mon, 27 Mar 2023 19:09:11 +0300 (EEST) Received: from mail-yb1-f170.google.com (mail-yb1-f170.google.com [209.85.219.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 45A9768C266 for ; Mon, 27 Mar 2023 19:09:05 +0300 (EEST) Received: by mail-yb1-f170.google.com with SMTP id p15so11256118ybl.9 for ; Mon, 27 Mar 2023 09:09:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ltnglobal-com.20210112.gappssmtp.com; s=20210112; t=1679933343; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ypvPNGdDZ/T/k8A/rB7TrEj60xdLVbh4rDV/Jte/YxM=; b=2IQUul9np7wHgYPxcFsd7i2ckFiZ9BqLuGJ1iYm0Ri0Fq8D1x2GHX/5lQcQjza0ZXi zEKZzQJpUfQSyPeC9HPLqvVDeFREzWica/Lcl1D1K/xPagqtGIcEWAG5c3dDW1VQV6RO ORAIjLxEu0zALnVYfm9C124EN32oqOHygFol1wrfXegtqNRTnhuqnIVnf5bvjqT433cb TIcA+xBTIBPYzmBdQnE7w3byWjQCMSDm/2sCuEj6LqbeWu+DppVWgcnV6uJSuuaRBtNg b7YlFHiNl/oEv4HuzU6jOiZmmS3MqVctJ4rcjs00V1lqDqG0bcd+uQIsSNIx8GZXV79S KqvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679933343; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ypvPNGdDZ/T/k8A/rB7TrEj60xdLVbh4rDV/Jte/YxM=; b=AL3Hx3Taoa4nZlgZIe3jV+J5vGAzs6VDQ6rIon59rLXq+i7Qjnxy7NHjrh8x/Yijp6 0w0UDdtTsnwjch2gN2fPYfdXQk4TG3RdFS7Nw00Yp8cztXcBhUSpyFsaIkCHpnOI+Sho tjxmCntwTl4aPQWp1WQRF0wMgDPoi/uDp9Al7b70YFZD7ofXCc6KbRO3NSfWgkKvR85r 7n1NkXppCg/1FXTGUDKllpccMivCgtiPrdU2oN1XItxE6ol6MvbzUVIkHSoQ1DOq1CyL nz4/PcJysUOUa7xIhCX/5VdA5jtetgXYx5Um+qlk6BY3nCnF+3LcZAWgDqPJrm2jitK1 Gs9A== X-Gm-Message-State: AAQBX9cdwx3Um1QIG0Gm96K5lbqoleZv7wNfxYqITg52wdyrsGmXTgYW i9EQCh6Q4tiE0vVkshkN6o9f4CpsUvI9Pah4ABBU2Bk617BI2OUn X-Google-Smtp-Source: AKy350aFGBKMFJclSxD/icnXT/X7wRYTD3X/BshdLl6CRQh/CaI1QB3j9lw6wIQVZJoAUnce5TqycH9fKpzBuaK6YAc= X-Received: by 2002:a05:6902:1007:b0:b79:22d7:95ff with SMTP id w7-20020a056902100700b00b7922d795ffmr5283705ybt.2.1679933343390; Mon, 27 Mar 2023 09:09:03 -0700 (PDT) MIME-Version: 1.0 References: <20230317150232.17804-1-dheitmueller@ltnglobal.com> <20230317150232.17804-2-dheitmueller@ltnglobal.com> <44fc4e6f-6771-2879-129c-59ae407c358c@passwd.hu> In-Reply-To: <44fc4e6f-6771-2879-129c-59ae407c358c@passwd.hu> From: Devin Heitmueller Date: Mon, 27 Mar 2023 12:08:51 -0400 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH v2 2/2] decklink: Add support for compressed AC-3 output over SDI 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: T24gRnJpLCBNYXIgMjQsIDIwMjMgYXQgNTowN+KAr1BNIE1hcnRvbiBCYWxpbnQgPGN1c0BwYXNz d2QuaHU+IHdyb3RlOgo+Cj4KPgo+IE9uIEZyaSwgMTcgTWFyIDIwMjMsIERldmluIEhlaXRtdWVs bGVyIHdyb3RlOgo+Cj4gPiBFeHRlbmQgdGhlIGRlY2tsaW5rIG91dHB1dCB0byBpbmNsdWRlIHN1 cHBvcnQgZm9yIGNvbXByZXNzZWQgQUMtMywKPiA+IGVuY2Fwc3VsYXRlZCB1c2luZyB0aGUgU01Q VEUgU1QgMzc3OjIwMTUgc3RhbmRhcmQuCj4gPgo+ID4gVGhpcyBmdW5jdGlvbmFsaXR5IGNhbiBi ZSBleGVyY2lzZWQgYnkgdXNpbmcgdGhlICJjb3B5IiBjb2RlYyB3aGVuCj4gPiB0aGUgaW5wdXQg YXVkaW8gc3RyZWFtIGlzIEFDLTMuICBGb3IgZXhhbXBsZToKPiA+Cj4gPiAuL2ZmbXBlZyAtaSB+ L2Zvby50cyAtY29kZWM6YSBjb3B5IC1mIGRlY2tsaW5rICdVbHRyYVN0dWRpbyBNaW5pIE1vbml0 b3InCj4gPgo+ID4gTm90ZSB0aGF0IHRoZSBkZWZhdWx0IGJlaGF2aW9yIGNvbnRpbnVlcyB0byBi ZSB0byBkbyBQQ00gb3V0cHV0LAo+ID4gd2hpY2ggbWVhbnMgd2l0aG91dCBzcGVjaWZ5aW5nIHRo ZSBjb3B5IGNvZGVjIGEgc3RyZWFtIGNvbnRhaW5pbmcKPiA+IEFDLTMgd2lsbCBiZSBkZWNvZGVk IGFuZCBkb3dubWl4ZWQgdG8gc3RlcmVvIGF1ZGlvIGJlZm9yZSBvdXRwdXQuCj4gPgo+ID4gVGhh bmtzIHRvIE1hcnRvbiBCYWxpbnQgZm9yIHByb3ZpZGluZyBmZWVkYmFjay4KPiA+Cj4gPiBTaWdu ZWQtb2ZmLWJ5OiBEZXZpbiBIZWl0bXVlbGxlciA8ZGhlaXRtdWVsbGVyQGx0bmdsb2JhbC5jb20+ Cj4gPiAtLS0KPiA+IGxpYmF2ZGV2aWNlL2RlY2tsaW5rX2VuYy5jcHAgfCA5MCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0KPiA+IDEgZmlsZSBjaGFuZ2VkLCA3NSBpbnNlcnRp b25zKCspLCAxNSBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZkZXZpY2Uv ZGVja2xpbmtfZW5jLmNwcCBiL2xpYmF2ZGV2aWNlL2RlY2tsaW5rX2VuYy5jcHAKPiA+IGluZGV4 IDhkNDIzZjZiNmUuLjhkODBmMDAyNDcgMTAwNjQ0Cj4gPiAtLS0gYS9saWJhdmRldmljZS9kZWNr bGlua19lbmMuY3BwCj4gPiArKysgYi9saWJhdmRldmljZS9kZWNrbGlua19lbmMuY3BwCj4gPiBA QCAtMzIsNiArMzIsNyBAQCBleHRlcm4gIkMiIHsKPiA+Cj4gPiBleHRlcm4gIkMiIHsKPiA+ICNp bmNsdWRlICJsaWJhdmZvcm1hdC9hdmZvcm1hdC5oIgo+ID4gKyNpbmNsdWRlICJsaWJhdmNvZGVj L2J5dGVzdHJlYW0uaCIKPiA+ICNpbmNsdWRlICJsaWJhdnV0aWwvaW50ZXJuYWwuaCIKPiA+ICNp bmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIKPiA+ICNpbmNsdWRlICJhdmRldmljZS5oIgo+ ID4gQEAgLTI0MywxOSArMjQ0LDMyIEBAIHN0YXRpYyBpbnQgZGVja2xpbmtfc2V0dXBfYXVkaW8o QVZGb3JtYXRDb250ZXh0ICphdmN0eCwgQVZTdHJlYW0gKnN0KQo+ID4gICAgICAgICBhdl9sb2co YXZjdHgsIEFWX0xPR19FUlJPUiwgIk9ubHkgb25lIGF1ZGlvIHN0cmVhbSBpcyBzdXBwb3J0ZWQh XG4iKTsKPiA+ICAgICAgICAgcmV0dXJuIC0xOwo+ID4gICAgIH0KPiA+IC0gICAgaWYgKGMtPnNh bXBsZV9yYXRlICE9IDQ4MDAwKSB7Cj4gPiAtICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19F UlJPUiwgIlVuc3VwcG9ydGVkIHNhbXBsZSByYXRlISIKPiA+IC0gICAgICAgICAgICAgICAiIE9u bHkgNDhrSHogaXMgc3VwcG9ydGVkLlxuIik7Cj4gPiAtICAgICAgICByZXR1cm4gLTE7Cj4gPiAt ICAgIH0KPiA+IC0gICAgaWYgKGMtPmNoX2xheW91dC5uYl9jaGFubmVscyAhPSAyICYmIGMtPmNo X2xheW91dC5uYl9jaGFubmVscyAhPSA4ICYmIGMtPmNoX2xheW91dC5uYl9jaGFubmVscyAhPSAx Nikgewo+ID4gLSAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJVbnN1cHBvcnRl ZCBudW1iZXIgb2YgY2hhbm5lbHMhIgo+ID4gLSAgICAgICAgICAgICAgICIgT25seSAyLCA4IG9y IDE2IGNoYW5uZWxzIGFyZSBzdXBwb3J0ZWQuXG4iKTsKPiA+ICsKPiA+ICsgICAgaWYgKGMtPmNv ZGVjX2lkID09IEFWX0NPREVDX0lEX0FDMykgewo+ID4gKyAgICAgICAgLyogUmVnYXJkbGVzcyBv ZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBjb2RlYywgd2UncmUgb25seQo+ID4gKyAg ICAgICAgICAgdXNpbmcgMiBTREkgYXVkaW8gY2hhbm5lbHMgYXQgNDgwMDBIeiAqLwo+ID4gKyAg ICAgICAgY3R4LT5jaGFubmVscyA9IDI7Cj4gPiArICAgIH0gZWxzZSBpZiAoYy0+Y29kZWNfaWQg PT0gQVZfQ09ERUNfSURfUENNX1MxNkxFKSB7Cj4gPiArICAgICAgICBpZiAoYy0+c2FtcGxlX3Jh dGUgIT0gNDgwMDApIHsKPiA+ICsgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJP UiwgIlVuc3VwcG9ydGVkIHNhbXBsZSByYXRlISIKPiA+ICsgICAgICAgICAgICAgICAgICAgIiBP bmx5IDQ4a0h6IGlzIHN1cHBvcnRlZC5cbiIpOwo+ID4gKyAgICAgICAgICAgIHJldHVybiAtMTsK PiA+ICsgICAgICAgIH0KPiA+ICsgICAgICAgIGlmIChjLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMg IT0gMiAmJiBjLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgIT0gOCAmJiBjLT5jaF9sYXlvdXQubmJf Y2hhbm5lbHMgIT0gMTYpIHsKPiA+ICsgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19F UlJPUiwgIlVuc3VwcG9ydGVkIG51bWJlciBvZiBjaGFubmVscyEiCj4gPiArICAgICAgICAgICAg ICAgICAgICIgT25seSAyLCA4IG9yIDE2IGNoYW5uZWxzIGFyZSBzdXBwb3J0ZWQuXG4iKTsKPiA+ ICsgICAgICAgICAgICByZXR1cm4gLTE7Cj4gPiArICAgICAgICB9Cj4gPiArICAgICAgICBjdHgt PmNoYW5uZWxzID0gYy0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOwo+ID4gKyAgICB9IGVsc2Ugewo+ ID4gKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJVbnN1cHBvcnRlZCBjb2Rl YyBzcGVjaWZpZWQhIgo+ID4gKyAgICAgICAgICAgICAgICIgT25seSBQQ01fUzE2TEUgYW5kIEFD LTMgYXJlIHN1cHBvcnRlZC5cbiIpOwo+ID4gICAgICAgICByZXR1cm4gLTE7Cj4gPiAgICAgfQo+ ID4gKwo+ID4gICAgIGlmIChjdHgtPmRsby0+RW5hYmxlQXVkaW9PdXRwdXQoYm1kQXVkaW9TYW1w bGVSYXRlNDhrSHosCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibWRB dWRpb1NhbXBsZVR5cGUxNmJpdEludGVnZXIsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYy0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGN0eC0+Y2hhbm5lbHMsCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBibWRBdWRpb091dHB1dFN0cmVhbVRpbWVzdGFtcGVkKSAhPSBT X09LKSB7Cj4gPiAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiQ291bGQgbm90 IGVuYWJsZSBhdWRpbyBvdXRwdXQhXG4iKTsKPiA+ICAgICAgICAgcmV0dXJuIC0xOwo+ID4gQEAg LTI2NiwxNCArMjgwLDQxIEBAIHN0YXRpYyBpbnQgZGVja2xpbmtfc2V0dXBfYXVkaW8oQVZGb3Jt YXRDb250ZXh0ICphdmN0eCwgQVZTdHJlYW0gKnN0KQo+ID4gICAgIH0KPiA+Cj4gPiAgICAgLyog VGhlIGRldmljZSBleHBlY3RzIHRoZSBzYW1wbGUgcmF0ZSB0byBiZSBmaXhlZC4gKi8KPiA+IC0g ICAgYXZwcml2X3NldF9wdHNfaW5mbyhzdCwgNjQsIDEsIGMtPnNhbXBsZV9yYXRlKTsKPiA+IC0g ICAgY3R4LT5jaGFubmVscyA9IGMtPmNoX2xheW91dC5uYl9jaGFubmVsczsKPiA+ICsgICAgYXZw cml2X3NldF9wdHNfaW5mbyhzdCwgNjQsIDEsIDQ4MDAwKTsKPiA+Cj4gPiAgICAgY3R4LT5hdWRp byA9IDE7Cj4gPgo+ID4gICAgIHJldHVybiAwOwo+ID4gfQo+ID4KPiA+ICtzdGF0aWMgaW50IGNy ZWF0ZV9zMzM3X3BheWxvYWQoQVZQYWNrZXQgKnBrdCwgZW51bSBBVkNvZGVjSUQgY29kZWNfaWQs IHVpbnQ4X3QgKipvdXRidWYsIGludCAqb3V0c2l6ZSkKPiA+ICt7Cj4gPiArICAgIGludCBwYXls b2FkX3NpemUgPSBwa3QtPnNpemUgKyA4Owo+ID4gKyAgICB1aW50MTZfdCBiaXRjb3VudCA9IHBr dC0+c2l6ZSAqIDg7Cj4gPiArICAgIHVpbnQ4X3QgKnMzMzdfcGF5bG9hZDsKPiA+ICsgICAgUHV0 Qnl0ZUNvbnRleHQgcGI7Cj4gPiArICAgIGludCBpOwo+ID4gKwo+ID4gKyAgICBpZiAoY29kZWNf aWQgIT0gQVZfQ09ERUNfSURfQUMzKQo+ID4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFM KTsKPgo+IE1heWJlIHNvbWUgc2FuaXR5IGNoZWNrIGhlcmUgZm9yIHBrdC0+c2l6ZSB1cHBlciBs aW1pdCB0byBhdm9pZCBvdmVyZmxvd3M/Cj4KPiA+ICsKPiA+ICsgICAgLyogRW5jYXBzdWxhdGUg QUMzIHN5bmNmcmFtZSBpbnRvIFNNUFRFIDMzNyBwYWNrZXQgKi8KPiA+ICsgICAgczMzN19wYXls b2FkID0gKHVpbnQ4X3QgKikgYXZfbWFsbG9jeihwYXlsb2FkX3NpemUpOwo+Cj4gV2h5IG5vdCBz aW1wbHkgYXZfbWFsbG9jPwo+Cj4gPiArICAgIGlmIChzMzM3X3BheWxvYWQgPT0gTlVMTCkKPiA+ ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPiArICAgIGJ5dGVzdHJlYW0yX2lu aXRfd3JpdGVyKCZwYiwgczMzN19wYXlsb2FkLCBwYXlsb2FkX3NpemUpOwo+ID4gKyAgICBieXRl c3RyZWFtMl9wdXRfbGUxNnUoJnBiLCAweGY4NzIpOyAvKiBTeW5jIHdvcmQgMSAqLwo+ID4gKyAg ICBieXRlc3RyZWFtMl9wdXRfbGUxNnUoJnBiLCAweDRlMWYpOyAvKiBTeW5jIHdvcmQgMSAqLwo+ ID4gKyAgICBieXRlc3RyZWFtMl9wdXRfbGUxNnUoJnBiLCAweDAwMDEpOyAvKiBCdXJzdCBJbmZv LCBpbmNsdWRpbmcgZGF0YSB0eXBlICgxPWFjMykgKi8KPiA+ICsgICAgYnl0ZXN0cmVhbTJfcHV0 X2xlMTZ1KCZwYiwgYml0Y291bnQpOyAvKiBMZW5ndGggY29kZSAqLwo+ID4gKyAgICBmb3IgKGkg PSAwOyBpIDwgcGt0LT5zaXplOyBpICs9IDIpCj4KPiBmb3IgKGludCBpID0KPgo+ID4gKyAgICAg ICAgYnl0ZXN0cmVhbTJfcHV0X2xlMTZ1KCZwYiwgKHBrdC0+ZGF0YVtpXSA8PCA4KSB8IHBrdC0+ ZGF0YVtpKzFdKTsKPiA+ICsKPiA+ICsgICAgKm91dHNpemUgPSBwYXlsb2FkX3NpemU7Cj4gPiAr ICAgICpvdXRidWYgPSBzMzM3X3BheWxvYWQ7Cj4gPiArICAgIHJldHVybiAwOwo+ID4gK30KPiA+ ICsKPiA+IGF2X2NvbGQgaW50IGZmX2RlY2tsaW5rX3dyaXRlX3RyYWlsZXIoQVZGb3JtYXRDb250 ZXh0ICphdmN0eCkKPiA+IHsKPiA+ICAgICBzdHJ1Y3QgZGVja2xpbmtfY2N0eCAqY2N0eCA9IChz dHJ1Y3QgZGVja2xpbmtfY2N0eCAqKWF2Y3R4LT5wcml2X2RhdGE7Cj4gPiBAQCAtNTMxLDIxICs1 NzIsNDAgQEAgc3RhdGljIGludCBkZWNrbGlua193cml0ZV9hdWRpb19wYWNrZXQoQVZGb3JtYXRD b250ZXh0ICphdmN0eCwgQVZQYWNrZXQgKnBrdCkKPiA+IHsKPiA+ICAgICBzdHJ1Y3QgZGVja2xp bmtfY2N0eCAqY2N0eCA9IChzdHJ1Y3QgZGVja2xpbmtfY2N0eCAqKWF2Y3R4LT5wcml2X2RhdGE7 Cj4gPiAgICAgc3RydWN0IGRlY2tsaW5rX2N0eCAqY3R4ID0gKHN0cnVjdCBkZWNrbGlua19jdHgg KiljY3R4LT5jdHg7Cj4gPiAtICAgIGludCBzYW1wbGVfY291bnQgPSBwa3QtPnNpemUgLyAoY3R4 LT5jaGFubmVscyA8PCAxKTsKPiA+ICsgICAgQVZTdHJlYW0gKnN0ID0gYXZjdHgtPnN0cmVhbXNb cGt0LT5zdHJlYW1faW5kZXhdOwo+ID4gKyAgICBpbnQgc2FtcGxlX2NvdW50Owo+ID4gICAgIHVp bnQzMl90IGJ1ZmZlcmVkOwo+ID4gKyAgICB1aW50OF90ICpvdXRidWYgPSBOVUxMOwo+ID4gKyAg ICBpbnQgcmV0ID0gMDsKPiA+Cj4gPiAgICAgY3R4LT5kbG8tPkdldEJ1ZmZlcmVkQXVkaW9TYW1w bGVGcmFtZUNvdW50KCZidWZmZXJlZCk7Cj4gPiAgICAgaWYgKHBrdC0+cHRzID4gMSAmJiAhYnVm ZmVyZWQpCj4gPiAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJUaGVyZSdz IG5vIGJ1ZmZlcmVkIGF1ZGlvLiIKPiA+ICAgICAgICAgICAgICAgICIgQXVkaW8gd2lsbCBtaXNi ZWhhdmUhXG4iKTsKPiA+Cj4gPiAtICAgIGlmIChjdHgtPmRsby0+U2NoZWR1bGVBdWRpb1NhbXBs ZXMocGt0LT5kYXRhLCBzYW1wbGVfY291bnQsIHBrdC0+cHRzLAo+ID4gKyAgICBpZiAoc3QtPmNv ZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9BQzMpIHsKPiA+ICsgICAgICAgIC8qIEVu Y2Fwc3VsYXRlIEFDMyBzeW5jZnJhbWUgaW50byBTTVBURSAzMzcgcGFja2V0ICovCj4gPiArICAg ICAgICBpbnQgb3V0YnVmX3NpemU7Cj4gPiArICAgICAgICByZXQgPSBjcmVhdGVfczMzN19wYXls b2FkKHBrdCwgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJm91dGJ1ZiwgJm91dGJ1Zl9zaXplKTsKPiA+ICsgICAgICAgIGlmIChy ZXQpCj4KPiBpZiAocmV0IDwgMCkgaXMgcHJlZmVycmVkCj4KPiA+ICsgICAgICAgICAgICByZXR1 cm4gcmV0Owo+ID4gKyAgICAgICAgc2FtcGxlX2NvdW50ID0gb3V0YnVmX3NpemUgLyA0Owo+ID4g KyAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgc2FtcGxlX2NvdW50ID0gcGt0LT5zaXplIC8gKGN0 eC0+Y2hhbm5lbHMgPDwgMSk7Cj4gPiArICAgICAgICBvdXRidWYgPSBwa3QtPmRhdGE7Cj4gPiAr ICAgIH0KPiA+ICsKPiA+ICsgICAgaWYgKGN0eC0+ZGxvLT5TY2hlZHVsZUF1ZGlvU2FtcGxlcyhv dXRidWYsIHNhbXBsZV9jb3VudCwgcGt0LT5wdHMsCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBibWRBdWRpb1NhbXBsZVJhdGU0OGtIeiwgTlVMTCkgIT0gU19PSykg ewo+ID4gICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkNvdWxkIG5vdCBzY2hl ZHVsZSBhdWRpbyBzYW1wbGVzLlxuIik7Cj4gPiAtICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8p Owo+ID4gKyAgICAgICAgcmV0ID0gQVZFUlJPUihFSU8pOwo+ID4gICAgIH0KPiA+Cj4gPiAtICAg IHJldHVybiAwOwo+ID4gKyAgICBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RF Q19JRF9BQzMpCj4gPiArICAgICAgICBhdl9mcmVlcCgmb3V0YnVmKTsKPiA+ICsKPiA+ICsgICAg cmV0dXJuIHJldDsKPiA+IH0KPiA+Cj4KPiBUaGFua3MsCj4gTWFydG9uCgpUaGFua3MgZm9yIHlv dXIgZmVlZGJhY2suICBBIHJldmlzZWQgcGF0Y2ggcmVmbGVjdGluZyB5b3VyIGNoYW5nZXMKd2ls bCBiZSBzZW50IHRvIHRoZSBtYWlsaW5nIGxpc3Qgc2hvcnRseS4KCkRldmluCgotLSAKRGV2aW4g SGVpdG11ZWxsZXIsIFNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcgpMVE4gR2xvYmFsIENvbW11bmlj YXRpb25zCm86ICsxICgzMDEpIDM2My0xMDAxCnc6IGh0dHBzOi8vbHRuZ2xvYmFsLmNvbSAgZTog ZGV2aW4uaGVpdG11ZWxsZXJAbHRuZ2xvYmFsLmNvbQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1k ZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBl Zy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBl Zy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==