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 46E6E4A5BE for ; Sat, 30 Mar 2024 21:51:23 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4870C68C402; Sat, 30 Mar 2024 23:51:21 +0200 (EET) Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 488DB68C1C4 for ; Sat, 30 Mar 2024 23:51:14 +0200 (EET) Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-432d55b0fa9so66081cf.1 for ; Sat, 30 Mar 2024 14:51:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711835473; x=1712440273; h=cc: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=iWda9NpVyjEA6YpRfjIqD3y9iJz+KzZBVfBrnv7isV0=; b=OFAPYgnlaL01gfLaKiQgZHOHthR81/m9Lh/Y4w+j+Gx306Dpeq4XOkEY2lEey+9TDc 5jFU6YhU8rw9ai4ZqLv4DTNZBH+GsN8s4ecm8WfHWYduvsTWRrJJlRXr/jLWXohj+/Is ZOd07ns8J+IwiZ5Qp1om3znpIJjVze0QeDojsRMrU9pEcgfsJ3YLAl2uoe/EPqRvSbyq tMjL40pj+4siBcZAYfJXzcVuQHD5umg4NjTSkz2tmFTZokz5Y7iC1QvGc2CSyDwsTEZv T298d/lL+Wb2okbxhoQFPvYX8BDJtXB8LIpAlKQneEaCA8nuStBwmGTwgOpX0jSBnsRc 6/LQ== X-Gm-Message-State: AOJu0YywTyM5I5gU6itE3nMRR5EDuIKO9fpkDEtP30i4Luw9XIekGF9j 7uQdbpwbvZcdUCBNMHfWjJQ7faQWYHgutddxKlXOdlzqwLAidtvgelTLDRcuwAVUzcY/ZzGljJl 6Tuuif30EPtCtmQ+2iQZlVNc4uel0j0ylocsF X-Google-Smtp-Source: AGHT+IHwg9HQcb2byJum4BV+SVJQjdLwmIw6u2rHCL79dQDygpJSNLFeemS/TMipzDFG7wi40Ba61puMDztvKsBfcYc= X-Received: by 2002:a05:622a:1cc8:b0:432:b5c4:9569 with SMTP id bc8-20020a05622a1cc800b00432b5c49569mr420906qtb.29.1711835472363; Sat, 30 Mar 2024 14:51:12 -0700 (PDT) MIME-Version: 1.0 References: <20240329173032.1122372-1-asoulier@google.com> <20240329173032.1122372-2-asoulier@google.com> In-Reply-To: Date: Sat, 30 Mar 2024 14:51:01 -0700 Message-ID: To: Paul B Mahol X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 2/2] avformat/lc3: Add file format for LC3/LC3plus transport 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: , From: Antoine Soulier via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Antoine Soulier , 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: SSBhbSBub3Qgc3VyZSBhYm91dCB0aGUgYmxvY2s6Cgo+ICsgICAgbGMzLT50aW1lc3RhbXAgKz0g bGMzLT5kdDsKPiArICAgIGlmIChsYzMtPnRpbWVzdGFtcCA+IGxjMy0+bGVuZ3RoKSB7Cj4gKyAg ICAgICAgcGt0LT5kdXJhdGlvbiAtPSBsYzMtPnRpbWVzdGFtcCAtIGxjMy0+bGVuZ3RoOwo+ICsg ICAgICAgIGxjMy0+dGltZXN0YW1wID0gbGMzLT5sZW5ndGg7Cj4gKyAgICB9CgoKVGhlIHB1cnBv c2UgaXMgdG8gcmVkdWNlIHRoZSBkdXJhdGlvbiBvZiB0aGUgbGFzdCBwYWNrZXQuCldoZW4gY29u dmVydGluZyBhIGZpbGUsIHRoZSBsYXN0IGZyYW1lIGNhbiBjb250YWluICJ6ZXJvcyIgKG9yIGly cmVsZXZhbnQpCnNhbXBsZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gdGhlIHNvdXJjZSBmaWxl IChhbGlnbm1lbnQgdG8gZnJhbWUKYm91bmRhcnkpLiBUaGVzZSBzYW1wbGVzIHNob3VsZCBiZSBk aXNjYXJkZWQuCj4gSWYgSSByZW1vdmUgdGhlICJyZWFkX3NlZWsoKSIgaW1wbGVtZW50YXRpb24s IEkgbG9zZSB0aGUgUFRTIC8gdGltZXN0YW1wCmluZm9ybWF0aW9uLCBhbmQgSSBkb24ndCBrbm93 IGhvdyB0byBkZXRlY3QgdGhlIGxhc3QgZnJhbWUgaW4gdGhlIHN0cmVhbS4KRG8geW91IGtub3cg aG93IEkgY2FuIGhhbmRsZSBhIHJlZHVjZWQgZHVyYXRpb24gZm9yIHRoZSBsYXN0IGZyYW1lIHdp dGhvdXQKaGF2aW5nIGFuIGltcGxlbWVudGF0aW9uIG9mICJyZWFkX3NlZWsoKSI/CgooSSBjYW4g cGxheSB3aXRoIHRoZSBwb3NpdGlvbiBhbmQgRU9GIGluZm9ybWF0aW9uLCBidXQgY2FuIGxlYWQg dG8gc3RyYW5nZQpiZWhhdmlvcnMgaWYgdGhlIGVuY29kZXIgYWRkcyBleHRyYSBmcmFtZXMgYXQg dGhlIGVuZCkuCgoKT24gU2F0LCBNYXIgMzAsIDIwMjQgYXQgNDo0NuKAr0FNIFBhdWwgQiBNYWhv bCA8b25lbWRhQGdtYWlsLmNvbT4gd3JvdGU6Cgo+Cj4KPiBPbiBGcmksIE1hciAyOSwgMjAyNCBh dCA2OjMw4oCvUE0gQW50b2luZSBTb3VsaWVyIHZpYSBmZm1wZWctZGV2ZWwgPAo+IGZmbXBlZy1k ZXZlbEBmZm1wZWcub3JnPiB3cm90ZToKPgo+PiBBIGZpbGUgZm9ybWF0IGlzIGRlc2NyaWJlZCBp biBCbHVldG9vdGggU0lHIExDMyBhbmQgRVRTSSBUUyAxMDMgNjM0LCBmb3IKPj4gdGVzdCBwdXJw b3NlLiBUaGlzIGlzIHRoZSBmb3JtYXQgaW1wbGVtZW50ZWQgaGVyZS4KPj4KPj4gU2lnbmVkLW9m Zi1ieTogQW50b2luZSBTb3VsaWVyIDxhc291bGllckBnb29nbGUuY29tPgo+PiAtLS0KPj4gIENo YW5nZWxvZyAgICAgICAgICAgICAgICB8ICAgMSArCj4+ICBkb2MvbXV4ZXJzLnRleGkgICAgICAg ICAgfCAgIDYgKysKPj4gIGxpYmF2Zm9ybWF0L01ha2VmaWxlICAgICB8ICAgMiArCj4+ICBsaWJh dmZvcm1hdC9hbGxmb3JtYXRzLmMgfCAgIDIgKwo+PiAgbGliYXZmb3JtYXQvbGMzZGVjLmMgICAg IHwgMTY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgbGliYXZm b3JtYXQvbGMzZW5jLmMgICAgIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgNiBm aWxlcyBjaGFuZ2VkLCAyNzUgaW5zZXJ0aW9ucygrKQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxp YmF2Zm9ybWF0L2xjM2RlYy5jCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmb3JtYXQvbGMz ZW5jLmMKPj4KPj4gZGlmZiAtLWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwo+PiBpbmRleCA4 M2E0Y2Y3ODg4Li4wOGMyMDBhNDFkIDEwMDY0NAo+PiAtLS0gYS9DaGFuZ2Vsb2cKPj4gKysrIGIv Q2hhbmdlbG9nCj4+IEBAIC0yLDYgKzIsNyBAQCBFbnRyaWVzIGFyZSBzb3J0ZWQgY2hyb25vbG9n aWNhbGx5IGZyb20gb2xkZXN0IHRvCj4+IHlvdW5nZXN0IHdpdGhpbiBlYWNoIHJlbGVhc2UsCj4+ ICByZWxlYXNlcyBhcmUgc29ydGVkIGZyb20geW91bmdlc3QgdG8gb2xkZXN0Lgo+Pgo+PiAgdmVy c2lvbiA8bmV4dD46Cj4+ICstIExDMy9MQzNwbHVzIGRlbXV4ZXIgYW5kIG11eGVyCj4+ICAtIExD My9MQzNwbHVzIGRlY29kaW5nL2VuY29kaW5nIHVzaW5nIGV4dGVybmFsIGxpYnJhcnkgbGlibGMz Cj4+Cj4+Cj4+IGRpZmYgLS1naXQgYS9kb2MvbXV4ZXJzLnRleGkgYi9kb2MvbXV4ZXJzLnRleGkK Pj4gaW5kZXggYTEwYThlMjE2Zi4uOTY4Nzc0NmMzMCAxMDA2NDQKPj4gLS0tIGEvZG9jL211eGVy cy50ZXhpCj4+ICsrKyBiL2RvYy9tdXhlcnMudGV4aQo+PiBAQCAtMjYxMiw2ICsyNjEyLDEyIEBA IFdlYkRBViBzZXJ2ZXIgZXZlcnkgc2Vjb25kOgo+PiAgZmZtcGVnIC1mIHgxMWdyYWIgLWZyYW1l cmF0ZSAxIC1pIDowLjAgLXE6diA2IC11cGRhdGUgMSAtcHJvdG9jb2xfb3B0cwo+PiBtZXRob2Q9 UFVUIGh0dHA6Ly9leGFtcGxlLmNvbS9kZXNrdG9wLmpwZwo+PiAgQGVuZCBleGFtcGxlCj4+Cj4+ ICtAc2VjdGlvbiBsYzMKPj4gK0JsdWV0b290aCBTSUcgTG93IENvbXBsZXhpdHkgQ29tbXVuaWNh dGlvbiBDb2RlYyBhdWRpbyAoTEMzKSwgb3IKPj4gK0VUU0kgVFMgMTAzIDYzNCBMb3cgQ29tcGxl eGl0eSBDb21tdW5pY2F0aW9uIENvZGVjIHBsdXMgKExDM3BsdXMpLgo+PiArCj4+ICtUaGlzIG11 eGVyIGFjY2VwdHMgYSBzaW5nbGUgQGNvZGV7bGMzfSBhdWRpbyBzdHJlYW0uCj4+ICsKPj4gIEBz ZWN0aW9uIG1hdHJvc2thCj4+Cj4+ICBNYXRyb3NrYSBjb250YWluZXIgbXV4ZXIuCj4+IGRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9NYWtlZmlsZSBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4+IGlu ZGV4IDQ0YWE0ODUwMjkuLjQ5NjFjNDI4NTIgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Zm9ybWF0L01h a2VmaWxlCj4+ICsrKyBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4+IEBAIC0zMzIsNiArMzMyLDgg QEAgT0JKUy0kKENPTkZJR19LVkFHX0RFTVVYRVIpICAgICAgICAgICAgICArPSBrdmFnLm8KPj4g IE9CSlMtJChDT05GSUdfS1ZBR19NVVhFUikgICAgICAgICAgICAgICAgKz0ga3ZhZy5vIHJhd2Vu Yy5vCj4+ICBPQkpTLSQoQ09ORklHX0xBRl9ERU1VWEVSKSAgICAgICAgICAgICAgICs9IGxhZmRl Yy5vCj4+ICBPQkpTLSQoQ09ORklHX0xBVE1fTVVYRVIpICAgICAgICAgICAgICAgICs9IGxhdG1l bmMubyByYXdlbmMubwo+PiArT0JKUy0kKENPTkZJR19MQzNfREVNVVhFUikgICAgICAgICAgICAg ICArPSBsYzNkZWMubwo+PiArT0JKUy0kKENPTkZJR19MQzNfTVVYRVIpICAgICAgICAgICAgICAg ICArPSBsYzNlbmMubwo+PiAgT0JKUy0kKENPTkZJR19MTUxNNF9ERU1VWEVSKSAgICAgICAgICAg ICArPSBsbWxtNC5vCj4+ICBPQkpTLSQoQ09ORklHX0xPQVNfREVNVVhFUikgICAgICAgICAgICAg ICs9IGxvYXNkZWMubyByYXdkZWMubwo+PiAgT0JKUy0kKENPTkZJR19MVU9EQVRfREVNVVhFUikg ICAgICAgICAgICArPSBsdW9kYXRkZWMubwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYWxs Zm9ybWF0cy5jIGIvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4+IGluZGV4IDlkZjQyYmI4N2Eu LjBiMzZhN2MzZWIgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwo+PiAr KysgYi9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPj4gQEAgLTI1Miw2ICsyNTIsOCBAQCBleHRl cm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfa3ZhZ19kZW11eGVyOwo+PiAgZXh0ZXJuIGNvbnN0 IEZGT3V0cHV0Rm9ybWF0IGZmX2t2YWdfbXV4ZXI7Cj4+ICBleHRlcm4gY29uc3QgRkZJbnB1dEZv cm1hdCAgZmZfbGFmX2RlbXV4ZXI7Cj4+ICBleHRlcm4gY29uc3QgRkZPdXRwdXRGb3JtYXQgZmZf bGF0bV9tdXhlcjsKPj4gK2V4dGVybiBjb25zdCBGRklucHV0Rm9ybWF0ICBmZl9sYzNfZGVtdXhl cjsKPj4gK2V4dGVybiBjb25zdCBGRk91dHB1dEZvcm1hdCBmZl9sYzNfbXV4ZXI7Cj4+ICBleHRl cm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfbG1sbTRfZGVtdXhlcjsKPj4gIGV4dGVybiBjb25z dCBGRklucHV0Rm9ybWF0ICBmZl9sb2FzX2RlbXV4ZXI7Cj4+ICBleHRlcm4gY29uc3QgRkZJbnB1 dEZvcm1hdCAgZmZfbHVvZGF0X2RlbXV4ZXI7Cj4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9s YzNkZWMuYyBiL2xpYmF2Zm9ybWF0L2xjM2RlYy5jCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+ IGluZGV4IDAwMDAwMDAwMDAuLjc0ZDY3OTRkMDAKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9s aWJhdmZvcm1hdC9sYzNkZWMuYwo+PiBAQCAtMCwwICsxLDE2NCBAQAo+PiArLyoKPj4gKyAqIExD MyBkZW11eGVyCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjQgIEFudG9pbmUgU291bGllciA8YXNv dWxpZXJAZ29vZ2xlLmNvbT4KPj4gKyAqCj4+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1w ZWcuCj4+ICsgKgo+PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgo+PiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4+ICsgKiB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4g KyAqCj4+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+PiArICogTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPj4gKyAqCj4+ICsgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCj4+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCj4+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCj4+IDAyMTEwLTEzMDEgVVNBCj4+ICsgKi8KPj4g Kwo+PiArLyoqCj4+ICsgKiBAZmlsZQo+PiArICogQmFzZWQgb24gdGhlIGZpbGUgZm9ybWF0IHNw ZWNpZmllZCBieSA6Cj4+ICsgKgo+PiArICogLSBCbHVldG9vdGggU0lHIC0gTG93IENvbXBsZXhp dHkgQ29tbXVuaWNhdGlvbiBDb2RlYyBUZXN0IFN1aXRlCj4+ICsgKgo+PiBodHRwczovL3d3dy5i bHVldG9vdGgub3JnL2RvY21hbi9oYW5kbGVycy9kb3dubG9hZGRvYy5hc2h4P2RvY19pZD01MDIz MDEKPj4gKyAqICAgMy4yLjguMiBSZWZlcmVuY2UgTEMzIENvZGVjIEJpdHN0cmVhbSBGb3JtYXQK Pj4gKyAqCj4+ICsgKiAtIEVUU0kgVEkgMTAzIDYzNCBWMS40LjEgLSBMb3cgQ29tcGxleGl0eSBD b21tdW5pY2F0aW9uIENvZGVjIHBsdXMKPj4gKyAqCj4+IGh0dHBzOi8vd3d3LmV0c2kub3JnL2Rl bGl2ZXIvZXRzaV90cy8xMDM2MDBfMTAzNjk5LzEwMzYzNC8wMS4wNC4wMV82MC90c18xMDM2MzR2 MDEwNDAxcC5wZGYKPj4gKyAqICAgTEMzcGx1cyBjb25mb3JtYW5jZSBzY3JpcHQgcGFja2FnZQo+ PiArICovCj4+ICsKPj4gKyNpbmNsdWRlICJsaWJhdmNvZGVjL3BhY2tldC5oIgo+PiArI2luY2x1 ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUuaCIKPj4gKwo+PiArI2luY2x1ZGUgImF2Zm9ybWF0 LmgiCj4+ICsjaW5jbHVkZSAiYXZpby5oIgo+PiArI2luY2x1ZGUgImRlbXV4LmgiCj4+ICsjaW5j bHVkZSAiaW50ZXJuYWwuaCIKPj4gKwo+PiArdHlwZWRlZiBzdHJ1Y3QgTEMzRGVtdXhDb250ZXh0 IHsKPj4gKyAgICBpbnQgZHQsIGRlbGF5Owo+PiArICAgIGludDY0X3QgdGltZXN0YW1wOwo+PiAr ICAgIGludDY0X3QgbGVuZ3RoOwo+PiArfSBMQzNEZW11eENvbnRleHQ7Cj4+ICsKPj4gK3N0YXRp YyBpbnQgbGMzX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKPj4gK3sKPj4gKyAgICBM QzNEZW11eENvbnRleHQgKmxjMyA9IHMtPnByaXZfZGF0YTsKPj4gKyAgICBBVlN0cmVhbSAqc3Qg PSBOVUxMOwo+PiArICAgIHVpbnQxNl90IHRhZywgaGRyX3NpemU7Cj4+ICsgICAgdWludDE2X3Qg ZnJhbWVfMTB1czsKPj4gKyAgICB1aW50MzJfdCBsZW5ndGg7Cj4+ICsgICAgaW50IGVwX21vZGUs IGhyX21vZGU7Cj4+ICsgICAgaW50IHNyYXRlX2h6LCBjaGFubmVscywgYml0X3JhdGU7Cj4+ICsg ICAgaW50IG51bV9leHRyYV9wYXJhbXMsIHJldDsKPj4gKwo+PiArICAgIHRhZyA9IGF2aW9fcmIx NihzLT5wYik7Cj4+ICsgICAgaGRyX3NpemUgPSBhdmlvX3JsMTYocy0+cGIpOwo+PiArCj4+ICsg ICAgaWYgKHRhZyAhPSAweDFjY2MgfHwgaGRyX3NpemUgPCA5ICogc2l6ZW9mKHVpbnQxNl90KSkK Pj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4+ICsKPj4gKyAgICBudW1f ZXh0cmFfcGFyYW1zID0gaGRyX3NpemUgLyBzaXplb2YodWludDE2X3QpIC0gOTsKPj4gKwo+PiAr ICAgIHNyYXRlX2h6ICAgPSBhdmlvX3JsMTYocy0+cGIpICogMTAwOwo+PiArICAgIGJpdF9yYXRl ICAgPSBhdmlvX3JsMTYocy0+cGIpICogMTAwOwo+PiArICAgIGNoYW5uZWxzICAgPSBhdmlvX3Js MTYocy0+cGIpOwo+PiArICAgIGZyYW1lXzEwdXMgPSBhdmlvX3JsMTYocy0+cGIpOwo+PiArICAg IGVwX21vZGUgICAgPSBhdmlvX3JsMTYocy0+cGIpICE9IDA7Cj4+ICsgICAgbGVuZ3RoICAgICA9 IGF2aW9fcmwzMihzLT5wYik7Cj4+ICsgICAgaHJfbW9kZSAgICA9IG51bV9leHRyYV9wYXJhbXMg Pj0gMSAmJiBhdmlvX3JsMTYocy0+cGIpOwo+PiArCj4+ICsgICAgc3QgPSBhdmZvcm1hdF9uZXdf c3RyZWFtKHMsIE5VTEwpOwo+PiArICAgIGlmICghc3QpCj4+ICsgICAgICAgIHJldHVybiBBVkVS Uk9SKEVOT01FTSk7Cj4+ICsKPj4gKyAgICBhdnByaXZfc2V0X3B0c19pbmZvKHN0LCA2NCwgMSwg c3JhdGVfaHopOwo+PiArICAgIHN0LT5zdGFydF90aW1lID0gMDsKPj4gKyAgICBzdC0+ZHVyYXRp b24gPSBsZW5ndGg7Cj4+ICsKPj4gKyAgICBzdC0+Y29kZWNwYXItPmNvZGVjX3R5cGUgPSBBVk1F RElBX1RZUEVfQVVESU87Cj4+ICsgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9IEFWX0NPREVD X0lEX0xDMzsKPj4gKyAgICBzdC0+Y29kZWNwYXItPnNhbXBsZV9yYXRlID0gc3JhdGVfaHo7Cj4+ ICsgICAgc3QtPmNvZGVjcGFyLT5iaXRfcmF0ZSA9IGJpdF9yYXRlOwo+PiArICAgIHN0LT5jb2Rl Y3Bhci0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzID0gY2hhbm5lbHM7Cj4+ICsKPj4gKyAgICBpZiAo KHJldCA9IGZmX2FsbG9jX2V4dHJhZGF0YShzdC0+Y29kZWNwYXIsIDYpKSA8IDApIHsKPj4gKyAg ICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkNvdWxkIG5vdCBhbGxvY2F0ZSBleHRyYWRh dGEuXG4iKTsKPj4gKyAgICAgICAgcmV0dXJuIHJldDsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBB Vl9XTDE2KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMCwgZnJhbWVfMTB1cyk7Cj4+ICsgICAg QVZfV0wxNihzdC0+Y29kZWNwYXItPmV4dHJhZGF0YSArIDIsIGVwX21vZGUpOwo+PiArICAgIEFW X1dMMTYoc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyA0LCBocl9tb2RlKTsKPj4gKwo+PiArICAg IGxjMy0+ZHQgPSBhdl9yZXNjYWxlKGZyYW1lXzEwdXMsIHNyYXRlX2h6LCAxMDAqMTAwMCk7Cj4+ ICsgICAgbGMzLT5kZWxheSA9IGF2X3Jlc2NhbGUoZnJhbWVfMTB1cyA9PSA3NTAgPyA0MDAgOiAy NTAsIHNyYXRlX2h6LAo+PiAxMDAqMTAwMCk7Cj4+ICsKPj4gKyAgICBsYzMtPnRpbWVzdGFtcCA9 IC1sYzMtPmRlbGF5Owo+PiArICAgIGxjMy0+bGVuZ3RoID0gc3QtPmR1cmF0aW9uOwo+PiArCj4+ ICsgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgbGMzX3JlYWRfcGFja2V0 KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKPj4gK3sKPj4gKyAgICBMQzNEZW11 eENvbnRleHQgKmxjMyA9IHMtPnByaXZfZGF0YTsKPj4gKyAgICBBVklPQ29udGV4dCAqcGIgPSBz LT5wYjsKPj4gKyAgICBpbnQgcmV0Owo+PiArCj4+Cj4KPiBpbnQ2NF90IHBvcyA9IGF2aW9fdGVs bChwYik7Cj4KPgo+PiArICAgIHJldCA9IGF2X2dldF9wYWNrZXQocy0+cGIsIHBrdCwgYXZpb19y bDE2KHBiKSk7Cj4+ICsgICAgaWYgKHJldCA8IDApCj4+ICsgICAgICAgIHJldHVybiByZXQ7Cj4+ ICsKPj4gKyAgICBwa3QtPnBvcyAtPSAyOwo+Pgo+Cj4gcGt0LT5wb3MgPSBwb3M7Cj4KPiArICAg IHBrdC0+cHRzID0gRkZNQVgobGMzLT50aW1lc3RhbXAsIDApOwo+Pgo+Cj4gUmVtb3ZlIHRoYXQg bGluZSBhYm92ZS4KPgo+Cj4+ICsgICAgcGt0LT5kdXJhdGlvbiA9IGxjMy0+ZHQ7Cj4+ICsKPj4g KyAgICBsYzMtPnRpbWVzdGFtcCArPSBsYzMtPmR0Owo+PiArICAgIGlmIChsYzMtPnRpbWVzdGFt cCA+IGxjMy0+bGVuZ3RoKSB7Cj4+ICsgICAgICAgIHBrdC0+ZHVyYXRpb24gLT0gbGMzLT50aW1l c3RhbXAgLSBsYzMtPmxlbmd0aDsKPj4gKyAgICAgICAgbGMzLT50aW1lc3RhbXAgPSBsYzMtPmxl bmd0aDsKPj4gKyAgICB9Cj4+ICsKPj4KPgo+IFJlbW92ZSBhYm92ZSBibG9jay4KPgo+Cj4+ICsg ICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgbGMzX3JlYWRfc2VlayhBVkZv cm1hdENvbnRleHQgKnMsIGludCBzdHJlYW1faW5kZXgsIGludDY0X3QKPj4gdGltZXN0YW1wLCBp bnQgZmxhZ3MpCj4+ICt7Cj4+ICsgICAgQVZTdHJlYW0gKnN0ID0gcy0+c3RyZWFtc1tzdHJlYW1f aW5kZXhdOwo+PiArICAgIEZGU3RyZWFtICpjb25zdCBzdGkgPSBmZnN0cmVhbShzdCk7Cj4+ICsg ICAgTEMzRGVtdXhDb250ZXh0ICpsYzMgPSBzLT5wcml2X2RhdGE7Cj4+ICsgICAgY29uc3QgQVZJ bmRleEVudHJ5ICppZTsKPj4gKyAgICBpbnQgaW5kZXg7Cj4+ICsKPj4gKyAgICB0aW1lc3RhbXAg PSBGRk1BWCh0aW1lc3RhbXAgLSBsYzMtPmRlbGF5LCAwKTsKPj4gKyAgICBpZiAodGltZXN0YW1w ID49IGxjMy0+bGVuZ3RoKQo+PiArICAgICAgICByZXR1cm4gQVZFUlJPUl9FT0Y7Cj4+ICsKPj4g KyAgICBpbmRleCA9IGF2X2luZGV4X3NlYXJjaF90aW1lc3RhbXAoc3QsIHRpbWVzdGFtcCwgZmxh Z3MpOwo+PiArICAgIGllID0gaW5kZXggPCAwID8gTlVMTCA6ICZzdGktPmluZGV4X2VudHJpZXNb aW5kZXhdOwo+PiArICAgIGlmICghaWUgfHwgYXZpb19zZWVrKHMtPnBiLCBpZS0+cG9zLCBTRUVL X1NFVCkgPCAwKQo+PiArICAgICAgICByZXR1cm4gLTE7Cj4+ICsKPj4gKyAgICBsYzMtPnRpbWVz dGFtcCA9IGllLT50aW1lc3RhbXA7Cj4+ICsgICAgaWYgKGxjMy0+dGltZXN0YW1wID09IDApCj4+ ICsgICAgICBsYzMtPnRpbWVzdGFtcCAtPSBsYzMtPmRlbGF5Owo+PiArCj4+ICsgICAgcmV0dXJu IDA7Cj4+ICt9Cj4+Cj4KPiBUaGlzIGxvZ2ljIGlzIHVubmVjZXNzYXJ5Lgo+IEZvcm1hdCBkb2Vz IG5vdCBzdG9yZSB0aW1lc3RhbXAgaW50ZXJuYWxseSBpbiBiaXRzdHJlYW0uCj4gSnVzdCBzZXQg cGFja2V0IGR1cmF0aW9uIHRvIG51bWJlciBvZiBzYW1wbGVzIHN0b3JlZCBpbiB0aGF0IHBhY2tl dC4KPiBObyBuZWVkIGZvciBwdHMgb3ZlcmRlc2lnbiwgYW5kIHJlbW92ZSB0aGlzIHJlYWRfc2Vl a19mdW5jdGlvbi4KPiBBbmQganVzdCBsZWF2ZSBHRU5FUklDX0lOREVYIGZsYWdzIGJlbGxvdy4K Pgo+Cj4+ICsKPj4gK2NvbnN0IEZGSW5wdXRGb3JtYXQgZmZfbGMzX2RlbXV4ZXIgPSB7Cj4+ICsg ICAgLnAubmFtZSAgICAgICAgID0gImxjMyIsCj4+ICsgICAgLnAubG9uZ19uYW1lICAgID0gTlVM TF9JRl9DT05GSUdfU01BTEwoIkxDMyAoTG93IENvbXBsZXhpdHkKPj4gQ29tbXVuaWNhdGlvbiBD b2RlYykiKSwKPj4gKyAgICAucC5leHRlbnNpb25zICAgPSAibGMzIiwKPj4gKyAgICAucC5mbGFn cyAgICAgICAgPSBBVkZNVF9HRU5FUklDX0lOREVYLAo+PiArICAgIC5wcml2X2RhdGFfc2l6ZSA9 IHNpemVvZihMQzNEZW11eENvbnRleHQpLAo+PiArICAgIC5yZWFkX2hlYWRlciAgICA9IGxjM19y ZWFkX2hlYWRlciwKPj4gKyAgICAucmVhZF9wYWNrZXQgICAgPSBsYzNfcmVhZF9wYWNrZXQsCj4+ ICsgICAgLnJlYWRfc2VlayAgICAgID0gbGMzX3JlYWRfc2VlaywKPj4gK307Cj4+IGRpZmYgLS1n aXQgYS9saWJhdmZvcm1hdC9sYzNlbmMuYyBiL2xpYmF2Zm9ybWF0L2xjM2VuYy5jCj4+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAuLmU3NjgyMTJmNjMKPj4gLS0tIC9k ZXYvbnVsbAo+PiArKysgYi9saWJhdmZvcm1hdC9sYzNlbmMuYwo+PiBAQCAtMCwwICsxLDEwMCBA QAo+PiArLyoKPj4gKyAqIExDMyBtdXhlcgo+PiArICogQ29weXJpZ2h0IChDKSAyMDI0ICBBbnRv aW5lIFNvdWxpZXIgPGFzb3VsaWVyQGdvb2dsZS5jb20+Cj4+ICsgKgo+PiArICogVGhpcyBmaWxl IGlzIHBhcnQgb2YgRkZtcGVnLgo+PiArICoKPj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4gKyAqIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+PiAr ICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCj4+ICsgKgo+PiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+PiArICogTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK Pj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+ ICsgKgo+PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYwo+PiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+PiArICogRm91bmRhdGlvbiwgSW5jLiwg NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQo+PiAwMjExMC0xMzAx IFVTQQo+PiArICovCj4+ICsKPj4gKy8qKgo+PiArICogQGZpbGUKPj4gKyAqIEJhc2VkIG9uIHRo ZSBmaWxlIGZvcm1hdCBzcGVjaWZpZWQgYnkgOgo+PiArICoKPj4gKyAqIC0gQmx1ZXRvb3RoIFNJ RyAtIExvdyBDb21wbGV4aXR5IENvbW11bmljYXRpb24gQ29kZWMgVGVzdCBTdWl0ZQo+PiArICoK Pj4gaHR0cHM6Ly93d3cuYmx1ZXRvb3RoLm9yZy9kb2NtYW4vaGFuZGxlcnMvZG93bmxvYWRkb2Mu YXNoeD9kb2NfaWQ9NTAyMzAxCj4+ICsgKiAgIDMuMi44LjIgUmVmZXJlbmNlIExDMyBDb2RlYyBC aXRzdHJlYW0gRm9ybWF0Cj4+ICsgKgo+PiArICogLSBFVFNJIFRJIDEwMyA2MzQgVjEuNC4xIC0g TG93IENvbXBsZXhpdHkgQ29tbXVuaWNhdGlvbiBDb2RlYyBwbHVzCj4+ICsgKgo+PiBodHRwczov L3d3dy5ldHNpLm9yZy9kZWxpdmVyL2V0c2lfdHMvMTAzNjAwXzEwMzY5OS8xMDM2MzQvMDEuMDQu MDFfNjAvdHNfMTAzNjM0djAxMDQwMXAucGRmCj4+ICsgKiAgIExDM3BsdXMgY29uZm9ybWFuY2Ug c2NyaXB0IHBhY2thZ2UKPj4gKyAqLwo+PiArCj4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2ludHJl YWR3cml0ZS5oIgo+PiArCj4+ICsjaW5jbHVkZSAiYXZmb3JtYXQuaCIKPj4gKyNpbmNsdWRlICJh dmlvLmgiCj4+ICsjaW5jbHVkZSAibXV4LmgiCj4+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPj4g Kwo+PiArc3RhdGljIGF2X2NvbGQgaW50IGxjM19pbml0KEFWRm9ybWF0Q29udGV4dCAqcykKPj4g K3sKPj4gKyAgICBpZiAocy0+bmJfc3RyZWFtcyAhPSAxKSB7Cj4+ICsgICAgICAgIGF2X2xvZyhz LCBBVl9MT0dfRVJST1IsICJUaGlzIG11eGVyIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUKPj4gc3Ry ZWFtLlxuIik7Cj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4+ICsgICAgfQo+ PiArCj4+ICsgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgbGMzX3dyaXRl X2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCj4+ICt7Cj4+ICsgICAgQVZTdHJlYW0gKnN0ID0g cy0+c3RyZWFtc1swXTsKPj4gKyAgICBpbnQgY2hhbm5lbHMgPSBzdC0+Y29kZWNwYXItPmNoX2xh eW91dC5uYl9jaGFubmVsczsKPj4gKyAgICBpbnQgc3JhdGVfaHogPSBzdC0+Y29kZWNwYXItPnNh bXBsZV9yYXRlOwo+PiArICAgIGludCBiaXRfcmF0ZSA9IHN0LT5jb2RlY3Bhci0+Yml0X3JhdGU7 Cj4+ICsgICAgaW50IGZyYW1lX3VzLCBlcF9tb2RlLCBocl9tb2RlOwo+PiArICAgIHVpbnQzMl90 IG5iX3NhbXBsZXMgPSBhdl9yZXNjYWxlX3EoCj4+ICsgICAgICAgIHN0LT5kdXJhdGlvbiwgc3Qt PnRpbWVfYmFzZSwgKEFWUmF0aW9uYWwpeyAxLCBzcmF0ZV9oeiB9KTsKPj4gKwo+PiArICAgIGlm IChzdC0+Y29kZWNwYXItPmV4dHJhZGF0YV9zaXplIDwgNikKPj4gKyAgICAgICAgcmV0dXJuIEFW RVJST1JfSU5WQUxJRERBVEE7Cj4+ICsKPj4gKyAgICBmcmFtZV91cyA9IEFWX1JMMTYoc3QtPmNv ZGVjcGFyLT5leHRyYWRhdGEgKyAwKSAqIDEwOwo+PiArICAgIGVwX21vZGUgPSBBVl9STDE2KHN0 LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMikgIT0gMDsKPj4gKyAgICBocl9tb2RlID0gQVZfUkwx NihzdC0+Y29kZWNwYXItPmV4dHJhZGF0YSArIDQpICE9IDA7Cj4+ICsKPj4gKyAgICBhdmlvX3di MTYocy0+cGIsIDB4MWNjYyk7Cj4+ICsgICAgYXZpb193bDE2KHMtPnBiLCAoOSArIGhyX21vZGUp ICogc2l6ZW9mKHVpbnQxNl90KSk7Cj4+ICsgICAgYXZpb193bDE2KHMtPnBiLCBzcmF0ZV9oeiAv IDEwMCk7Cj4+ICsgICAgYXZpb193bDE2KHMtPnBiLCBiaXRfcmF0ZSAvIDEwMCk7Cj4+ICsgICAg YXZpb193bDE2KHMtPnBiLCBjaGFubmVscyk7Cj4+ICsgICAgYXZpb193bDE2KHMtPnBiLCBmcmFt ZV91cyAvIDEwKTsKPj4gKyAgICBhdmlvX3dsMTYocy0+cGIsIGVwX21vZGUpOwo+PiArICAgIGF2 aW9fd2wzMihzLT5wYiwgbmJfc2FtcGxlcyk7Cj4+ICsgICAgaWYgKGhyX21vZGUpCj4+ICsgICAg ICAgIGF2aW9fd2wxNihzLT5wYiwgaHJfbW9kZSk7Cj4+ICsKPj4gKyAgICByZXR1cm4gMDsKPj4g K30KPj4gKwo+PiArc3RhdGljIGludCBsYzNfd3JpdGVfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAq cywgQVZQYWNrZXQgKnBrdCkKPj4gK3sKPj4gKyAgICBhdmlvX3dsMTYocy0+cGIsIHBrdC0+c2l6 ZSk7Cj4+ICsgICAgYXZpb193cml0ZShzLT5wYiwgcGt0LT5kYXRhLCBwa3QtPnNpemUpOwo+PiAr ICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICtjb25zdCBGRk91dHB1dEZvcm1hdCBmZl9sYzNf bXV4ZXIgPSB7Cj4+ICsgICAgLnAubmFtZSAgICAgICAgPSAibGMzIiwKPj4gKyAgICAucC5sb25n X25hbWUgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJMQzMgKExvdyBDb21wbGV4aXR5Cj4+IENv bW11bmljYXRpb24gQ29kZWMpIiksCj4+ICsgICAgLnAuZXh0ZW5zaW9ucyAgPSAibGMzIiwKPj4g KyAgICAucC5hdWRpb19jb2RlYyA9IEFWX0NPREVDX0lEX0xDMywKPj4gKyAgICAucC52aWRlb19j b2RlYyA9IEFWX0NPREVDX0lEX05PTkUsCj4+ICsgICAgLnAuZmxhZ3MgICAgICAgPSBBVkZNVF9O T1RJTUVTVEFNUFMsCj4+ICsgICAgLmluaXQgICAgICAgICAgPSBsYzNfaW5pdCwKPj4gKyAgICAu d3JpdGVfaGVhZGVyICA9IGxjM193cml0ZV9oZWFkZXIsCj4+ICsgICAgLndyaXRlX3BhY2tldCAg PSBsYzNfd3JpdGVfcGFja2V0LAo+PiArfTsKPj4gLS0KPj4gMi40NC4wLjQ3OC5nZDkyNjM5OWVm OS1nb29nCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKPj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4+ Cj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+PiBmZm1wZWct ZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+Pgo+ Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1k ZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcu b3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQg bGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRo IHN1YmplY3QgInVuc3Vic2NyaWJlIi4K