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 40876486A9 for ; Sun, 17 Mar 2024 03:47:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CDC5168D17B; Sun, 17 Mar 2024 05:47:09 +0200 (EET) Received: from out162-62-57-49.mail.qq.com (out162-62-57-49.mail.qq.com [162.62.57.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F5D268C95A for ; Sun, 17 Mar 2024 05:47:02 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1710647219; bh=Ar6NVDhLlH3aIcwxifrjc63SuQGDEuf3IjXPaFEPucQ=; h=From:Subject:Date:References:To:In-Reply-To; b=mV1bq+tBEh00tagk5nVW18zLW/FIRQFDWSaOU+qVSye02Z6hEVmqF040Q+qga3i3i Aegu5VIa/MqqXrtiehDUMsrPCqoXG//27MZ2j6lzLqGphuczMsR7/VIOheF2aiJjwy K1JiwtXsOYfAQMty0xp8wx2pMueFLZEefqrRvQIY= Received: from smtpclient.apple ([121.35.186.33]) by newxmesmtplogicsvrsza1-0.qq.com (NewEsmtp) with SMTP id BBA22633; Sun, 17 Mar 2024 11:46:58 +0800 X-QQ-mid: xmsmtpt1710647218tuwcj35ow Message-ID: X-QQ-XMAILINFO: NhUkPfKlCtQwP0LOQZMxn0ibgvWxxruq1Fl8zUSn4oiVVHyv65njrs53CN//78 SoglxNtRY+HfyGev5Eglz3rYO4uOAKcvnSN7FSpOe6AxPUen+VRl9o1SOl8HJUjTzESAEMSWm1Cg AUheG72FRZH7QQEG6xJx9edLx7HY43wCFZjGt5THNH4HdXXJKwlzbFWFBHd4FczuEAzLDn7wjtIq zL+S0ppDc4E5jBeBagpZ9SKh5Wn4aJdSUdX6swhAcZipUZplGMD75n32rccEZcVLeotz6l3vIjgZ +Dc2TKQTzmUuOO7vOORa+jGt0NbLzyLLajfKYpvp/qH8btsyBOF811GGOLvOmFxZ5/GSeB4hE3X6 uUWC0w8LW2ARADggZJ+1wamLPDfAL6bxmA4AnbZ7ryvhxuXfPxlJJGDsWDTx2DDLfP0RYkt69rAq Y3p5HO7vSqEVuc3e9eZaX/Ezh6NQPgz+cP2a1r6lOSjA3pK3raxb2ojSIDWq7uPxGXBZtA+i53Q5 A10vcxgbG8XasNsVA3+w/NBdtLK3jEl/6bX8JCC9tt7pX43nMTpN02d1LfWVHk1k0OAeG/HMVtec fAG00XGDlRP73hK9V6m+TUZm3sgjgtdQhw4bKWchyB6pvjUqsDHFuKz7WGc5LgtwfzxlS8FKI/jN fHyPke24UAAjBe3OgURPPmslY4TjL1YpOh2q/EPwU37fZ25ru6NS72Gft5ZjH8bSZSJT95T/8oJm W3Rb7aHXuMyumUFuayl3ExZo8sJlq6RkjqjYb5rCtbQv9W8iglx8JZ0M1Oszh7yN2PhmXP6uMYzz EvcIKGTvAJJKMvTup8xV/ZvcOM4rRYwwAawB8k9qNW8PKu9Jg21+7E24EhMq7Xe6/M3XY+NKTdIn X8NPYN92ln4DvKMYHVh4avCqpNIH/Ggs4C7Ne2upsxdJ8q2Lu0vAD3SmFAz0WZr60TcvhYKboI+O i/CthLvYuzB+04le1RHOKsp07SyZ637XNlYpbb19O5LZRFiSCTGw== X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= From: Zhao Zhili Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\)) Date: Sun, 17 Mar 2024 11:46:47 +0800 References: To: FFmpeg development discussions and patches In-Reply-To: X-OQ-MSGID: <4446B6FE-4711-468F-AA01-F85B0CA8560A@foxmail.com> X-Mailer: Apple Mail (2.3774.200.91.1.1) Subject: Re: [FFmpeg-devel] [PATCH v5] avcodec/libx264: fix extradata when config annexb=0 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: Cgo+IE9uIE1hciAxNCwgMjAyNCwgYXQgMjE6MTQsIEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPiB3cm90ZToKPiAKPiBaaGFvIFpoaWxpOgo+PiBGcm9t OiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9AdGVuY2VudC5jb20+Cj4+IAo+PiAtLS0KPj4gdjU6IERl Y29kZSBjaHJvbWFfZm9ybWF0X2lkYyBkaXJlY3RseSBpbnN0ZWFkIG9mIGZmX2gyNjRfZGVjb2Rl X3NlcV9wYXJhbWV0ZXJfc2V0Cj4+IHY0OiBGaXggbWlzc2luZyBTRUkgaW4gc2V0X2F2Y2NfZXh0 cmFkYXRhCj4+IHYzOiBSZW1vdmUgdW5uZWNlc3NhcnkgaW5jbHVzaW9uCj4+IAo+PiBsaWJhdmNv ZGVjL2xpYngyNjQuYyB8IDE2MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tCj4+IDEgZmlsZSBjaGFuZ2VkLCAxMzggaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25z KC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9saWJ4MjY0LmMgYi9saWJhdmNvZGVj L2xpYngyNjQuYwo+PiBpbmRleCAxMGQ2NDZiZDc2Li42NGNlZmI1ZmIwIDEwMDY0NAo+PiAtLS0g YS9saWJhdmNvZGVjL2xpYngyNjQuYwo+PiArKysgYi9saWJhdmNvZGVjL2xpYngyNjQuYwo+PiBA QCAtMzgsNiArMzgsNyBAQAo+PiAjaW5jbHVkZSAicGFja2V0X2ludGVybmFsLmgiCj4+ICNpbmNs dWRlICJhdHNjX2E1My5oIgo+PiAjaW5jbHVkZSAic2VpLmgiCj4+ICsjaW5jbHVkZSAiZ29sb21i LmgiCj4+IAo+PiAjaW5jbHVkZSA8eDI2NC5oPgo+PiAjaW5jbHVkZSA8ZmxvYXQuaD4KPj4gQEAg LTg2NSw2ICs4NjYsMTQwIEBAIHN0YXRpYyBpbnQgY29udmVydF9waXhfZm10KGVudW0gQVZQaXhl bEZvcm1hdCBwaXhfZm10KQo+PiAgICAgcmV0dXJuIDA7Cj4+IH0KPj4gCj4+ICtzdGF0aWMgaW50 IHNhdmVfc2VpKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgeDI2NF9uYWxfdCAqbmFsKQo+PiArewo+ PiArICAgIFgyNjRDb250ZXh0ICp4NCA9IGF2Y3R4LT5wcml2X2RhdGE7Cj4+ICsKPj4gKyAgICBh dl9sb2coYXZjdHgsIEFWX0xPR19JTkZPLCAiJXNcbiIsIG5hbC0+cF9wYXlsb2FkICsgMjUpOwo+ PiArICAgIHg0LT5zZWlfc2l6ZSA9IG5hbC0+aV9wYXlsb2FkOwo+PiArICAgIHg0LT5zZWkgPSBh dl9tYWxsb2MoeDQtPnNlaV9zaXplKTsKPj4gKyAgICBpZiAoIXg0LT5zZWkpCj4+ICsgICAgICAg IHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4+ICsKPj4gKyAgICBtZW1jcHkoeDQtPnNlaSwgbmFs LT5wX3BheWxvYWQsIG5hbC0+aV9wYXlsb2FkKTsKPj4gKwo+PiArICAgIHJldHVybiAwOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgaW50IHNldF9hdmNjX2V4dHJhZGF0YShBVkNvZGVjQ29udGV4dCAq YXZjdHgsIHgyNjRfbmFsX3QgKm5hbCwgaW50IG5uYWwpCj4+ICt7Cj4+ICsgICAgWDI2NENvbnRl eHQgKng0ID0gYXZjdHgtPnByaXZfZGF0YTsKPj4gKyAgICB4MjY0X25hbF90ICpzcHNfbmFsID0g TlVMTDsKPj4gKyAgICB4MjY0X25hbF90ICpwcHNfbmFsID0gTlVMTDsKPj4gKyAgICB1aW50OF90 ICpwLCAqc3BzOwo+PiArICAgIGludCByZXQ7Cj4+ICsKPj4gKyAgICAvKiBXZSBrbm93IGl0J3Mg aW4gdGhlIG9yZGVyIG9mIFNQUy9QUFMvU0VJLCBidXQgaXQncyBub3QgZG9jdW1lbnRlZCBpbiB4 MjY0IEFQSS4KPj4gKyAgICAgKiBUaGUgeDI2NCBwYXJhbSBpX3Nwc19pZCBpbXBsaWVzIHRoZXJl IGlzIGEgc2luZ2xlIHBhaXIgb2YgU1BTL1BQUy4KPj4gKyAgICAgKi8KPj4gKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IG5uYWw7IGkrKykgewo+PiArICAgICAgICBzd2l0Y2ggKG5hbFtpXS5pX3R5 cGUpIHsKPj4gKyAgICAgICAgY2FzZSBOQUxfU1BTOgo+PiArICAgICAgICAgICAgc3BzX25hbCA9 ICZuYWxbaV07Cj4+ICsgICAgICAgICAgICBicmVhazsKPj4gKyAgICAgICAgY2FzZSBOQUxfUFBT Ogo+PiArICAgICAgICAgICAgcHBzX25hbCA9ICZuYWxbaV07Cj4+ICsgICAgICAgICAgICBicmVh azsKPj4gKyAgICAgICAgY2FzZSBOQUxfU0VJOgo+PiArICAgICAgICAgICAgcmV0ID0gc2F2ZV9z ZWkoYXZjdHgsICZuYWxbaV0pOwo+PiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+ICsgICAg ICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gKyAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAg ICB9Cj4+ICsgICAgfQo+PiArICAgIGlmICghc3BzX25hbCB8fCAhcHBzX25hbCkKPj4gKyAgICAg ICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Cj4+ICsKPj4gKyAgICBhdmN0eC0+ZXh0cmFkYXRh X3NpemUgPSBzcHNfbmFsLT5pX3BheWxvYWQgKyBwcHNfbmFsLT5pX3BheWxvYWQgKyA3Owo+PiAr ICAgIGF2Y3R4LT5leHRyYWRhdGEgPSBhdl9tYWxsb2N6KGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSAr IEFWX0lOUFVUX0JVRkZFUl9QQURESU5HX1NJWkUpOwo+PiArICAgIGlmICghYXZjdHgtPmV4dHJh ZGF0YSkKPj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPj4gKwo+PiArICAgIC8v IE5vdyBjcmVhdGUgQVZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQKPj4gKyAgICBwID0gYXZj dHgtPmV4dHJhZGF0YTsKPj4gKyAgICAvLyBTa2lwIHNpemUgcGFydAo+PiArICAgIHNwcyA9IHNw c19uYWwtPnBfcGF5bG9hZCArIDQ7Cj4+ICsgICAgKnArKyA9IDE7IC8vIHZlcnNpb24KPj4gKyAg ICAqcCsrID0gc3BzWzFdOyAvLyBBVkNQcm9maWxlSW5kaWNhdGlvbgo+PiArICAgICpwKysgPSBz cHNbMl07IC8vIHByb2ZpbGVfY29tcGF0aWJpbGl0eQo+PiArICAgICpwKysgPSBzcHNbM107IC8v IEFWQ0xldmVsSW5kaWNhdGlvbgo+PiArICAgICpwKysgPSAweEZGOwo+PiArICAgICpwKysgPSAw eEUwIHwgMHgwMTsgLy8gMyBiaXRzIHJlc2VydmVkICgxMTEpICsgNSBiaXRzIG51bWJlciBvZiBz cHMKPj4gKyAgICBtZW1jcHkocCwgc3BzX25hbC0+cF9wYXlsb2FkICsgMiwgc3BzX25hbC0+aV9w YXlsb2FkIC0gMik7Cj4+ICsgICAgLy8gTWFrZSBzcHMgaGFzIEFWX0lOUFVUX0JVRkZFUl9QQURE SU5HX1NJWkUgcGFkZGluZywgc28gaXQgY2FuIGJlIHVzZWQKPj4gKyAgICAvLyB3aXRoIEdldEJp dENvbnRleHQKPj4gKyAgICBzcHMgPSBwICsgMjsKPj4gKyAgICBwICs9IHNwc19uYWwtPmlfcGF5 bG9hZCAtIDI7Cj4+ICsgICAgKnArKyA9IDE7Cj4+ICsgICAgbWVtY3B5KHAsIHBwc19uYWwtPnBf cGF5bG9hZCArIDIsIHBwc19uYWwtPmlfcGF5bG9hZCAtIDIpOwo+PiArICAgIHAgKz0gcHBzX25h bC0+aV9wYXlsb2FkIC0gMjsKPj4gKwo+PiArICAgIGlmIChzcHNbM10gIT0gNjYgJiYgc3BzWzNd ICE9IDc3ICYmIHNwc1szXSAhPSA4OCkgewo+PiArICAgICAgICBHZXRCaXRDb250ZXh0IGdiYzsK Pj4gKyAgICAgICAgaW50IGNocm9tYV9mb3JtYXRfaWRjOwo+PiArICAgICAgICBpbnQgYml0X2Rl cHRoX2x1bWFfbWludXM4LCBiaXRfZGVwdGhfY2hyb21hX21pbnVzODsKPj4gKwo+PiArICAgICAg ICAvKiBJdCdzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGVtdWxhdGlvbiBwcmV2ZW50aW9uIGJ5dGUg YmVmb3JlCj4+ICsgICAgICAgICAqIGJpdF9kZXB0aF9jaHJvbWFfbWludXM4IGR1ZSB0byB0aGUg cmFuZ2Ugb2Ygc3BzIGlkLCBjaHJvbWFfZm9ybWF0X2lkYwo+PiArICAgICAgICAgKiBhbmQgc28g b24uIFNvIHdlIGNhbiByZWFkIGRpcmVjdGx5IHdpdGhvdXQgbmVlZCB0byBlc2NhcGUgZW11bGF0 aW9uCj4+ICsgICAgICAgICAqIHByZXZlbnRpb24gYnl0ZS4KPiAKPiBUaGVyZSBpcyBhIHNsaWdo dCBwcm9ibGVtIGhlcmU6IFlvdSBpZ25vcmUgdGhlIHBvc3NpYmlsaXR5IG9mCj4gcHJvZmlsZV9p ZGMgYmVpbmcgemVyby4gQWZ0ZXIgYWxsLCBhbGwgdmFsdWVzIG5vdCBiZWluZyB1c2VkIGFyZSBt ZXJlbHkKPiByZXNlcnZlZCBhbmQgY2FuIGJlIHVzZWQgYXQgYW55IHRpbWUgKGFsdGhvdWdoIEkg ZG91YnQgdGhhdCB0aGV5IHdpbGwKPiBldmVyIHVzZSB0aGlzKS4gU2hhbGwgd2UgaWdub3JlIHRo aXM/Cj4gVGhlIGFib3ZlIGNoZWNrIChhbmQgcHJlc3VtYWJseSB0aGUgSVNPQk1GRiBzcGVjIGZv ciB0aGlzKSB1c2VzIGFuCj4gb3B0LW91dCBjaGVjayBmb3IgcHJvZmlsZSwgd2hlcmVhcyB0aGUg SC4yNjQgc3BlYyBhY3R1YWxseSB1c2VzIGFuCj4gb3B0LWluIGNoZWNrLiBJIGp1c3Qgd2FudGVk IHRvIG1lbnRpb24gaXQsIGZlZWwgZnJlZSB0byBpZ25vcmUgaXQuCj4gCj4+ICsgICAgICAgICAq Cj4+ICsgICAgICAgICAqICs0IHRvIHNraXAgdW50aWwgc3BzIGlkLgo+PiArICAgICAgICAgKi8K Pj4gKyAgICAgICAgaW5pdF9nZXRfYml0czgoJmdiYywgc3BzICsgNCwgc3BzX25hbC0+aV9wYXls b2FkIC0gNCAtIDQpOwo+PiArICAgICAgICAvLyBTa2lwIHNwcyBpZAo+PiArICAgICAgICBnZXRf dWVfZ29sb21iXzMxKCZnYmMpOwo+PiArICAgICAgICBjaHJvbWFfZm9ybWF0X2lkYyA9IGdldF91 ZV9nb2xvbWJfMzEoJmdiYyk7Cj4+ICsgICAgICAgIGlmIChjaHJvbWFfZm9ybWF0X2lkYyA9PSAz KQo+PiArICAgICAgICAgICAgc2tpcF9iaXRzMSgmZ2JjKTsKPj4gKyAgICAgICAgYml0X2RlcHRo X2x1bWFfbWludXM4ID0gZ2V0X3VlX2dvbG9tYl8zMSgmZ2JjKTsKPj4gKyAgICAgICAgYml0X2Rl cHRoX2Nocm9tYV9taW51czggPSBnZXRfdWVfZ29sb21iXzMxKCZnYmMpOwo+PiArCj4+ICsgICAg ICAgICpwKysgPSAweEZDIHwgY2hyb21hX2Zvcm1hdF9pZGM7Cj4+ICsgICAgICAgICpwKysgPSAw eEY4IHwgYml0X2RlcHRoX2x1bWFfbWludXM4Owo+PiArICAgICAgICAqcCsrID0gMHhGOCB8IGJp dF9kZXB0aF9jaHJvbWFfbWludXM4Owo+PiArICAgICAgICAqcCsrID0gMDsKPj4gKyAgICB9Cj4+ ICsgICAgYXZfYXNzZXJ0MChhdmN0eC0+ZXh0cmFkYXRhICsgYXZjdHgtPmV4dHJhZGF0YV9zaXpl ID49IHApOwo+IAo+IERvZXMgdGhpcyBoYXZlIHRvIGJlIGFuIGF2X2Fzc2VydDA/CgpTd2l0Y2hl ZCB0byBhc3NlcnQyIGluIHY2LiAKCj4gCj4+ICsgICAgYXZjdHgtPmV4dHJhZGF0YV9zaXplID0g cCAtIGF2Y3R4LT5leHRyYWRhdGE7Cj4+ICsKPj4gKyAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+ PiArc3RhdGljIGludCBzZXRfZXh0cmFkYXRhKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKPj4gK3sK Pj4gKyAgICBYMjY0Q29udGV4dCAqeDQgPSBhdmN0eC0+cHJpdl9kYXRhOwo+PiArICAgIHgyNjRf bmFsX3QgKm5hbDsKPj4gKyAgICB1aW50OF90ICpwOwo+PiArICAgIGludCBubmFsLCBzOwo+PiAr Cj4+ICsgICAgcyA9IHgyNjRfZW5jb2Rlcl9oZWFkZXJzKHg0LT5lbmMsICZuYWwsICZubmFsKTsK Pj4gKyAgICBpZiAocyA8IDApCj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SX0VYVEVSTkFMOwo+ PiArCj4+ICsgICAgaWYgKCF4NC0+cGFyYW1zLmJfYW5uZXhiKQo+PiArICAgICAgICByZXR1cm4g c2V0X2F2Y2NfZXh0cmFkYXRhKGF2Y3R4LCBuYWwsIG5uYWwpOwo+PiArCj4+ICsgICAgYXZjdHgt PmV4dHJhZGF0YSA9IHAgPSBhdl9tYWxsb2N6KHMgKyBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19T SVpFKTsKPj4gKyAgICBpZiAoIXApCj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7 Cj4+ICsKPj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG5uYWw7IGkrKykgewo+PiArICAgICAg ICAvKiBEb24ndCBwdXQgdGhlIFNFSSBpbiBleHRyYWRhdGEuICovCj4+ICsgICAgICAgIGlmIChu YWxbaV0uaV90eXBlID09IE5BTF9TRUkpIHsKPj4gKyAgICAgICAgICAgIHMgPSBzYXZlX3NlaShh dmN0eCwgJm5hbFtpXSk7Cj4+ICsgICAgICAgICAgICBpZiAocyA8IDApCj4+ICsgICAgICAgICAg ICAgICAgcmV0dXJuIHM7Cj4+ICsgICAgICAgICAgICBjb250aW51ZTsKPj4gKyAgICAgICAgfQo+ PiArICAgICAgICBtZW1jcHkocCwgbmFsW2ldLnBfcGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7 Cj4+ICsgICAgICAgIHAgKz0gbmFsW2ldLmlfcGF5bG9hZDsKPj4gKyAgICB9Cj4+ICsgICAgYXZj dHgtPmV4dHJhZGF0YV9zaXplID0gcCAtIGF2Y3R4LT5leHRyYWRhdGE7Cj4+ICsKPj4gKyAgICBy ZXR1cm4gMDsKPj4gK30KPj4gKwo+PiAjZGVmaW5lIFBBUlNFX1gyNjRfT1BUKG5hbWUsIHZhcilc Cj4+ICAgICBpZiAoeDQtPnZhciAmJiB4MjY0X3BhcmFtX3BhcnNlKCZ4NC0+cGFyYW1zLCBuYW1l LCB4NC0+dmFyKSA8IDApIHtcCj4+ICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1Is ICJFcnJvciBwYXJzaW5nIG9wdGlvbiAnJXMnIHdpdGggdmFsdWUgJyVzJy5cbiIsIG5hbWUsIHg0 LT52YXIpO1wKPj4gQEAgLTEyMzMsMzAgKzEzNjgsOSBAQCBGRl9FTkFCTEVfREVQUkVDQVRJT05f V0FSTklOR1MKPj4gICAgICAgICByZXR1cm4gQVZFUlJPUl9FWFRFUk5BTDsKPj4gCj4+ICAgICBp ZiAoYXZjdHgtPmZsYWdzICYgQVZfQ09ERUNfRkxBR19HTE9CQUxfSEVBREVSKSB7Cj4+IC0gICAg ICAgIHgyNjRfbmFsX3QgKm5hbDsKPj4gLSAgICAgICAgdWludDhfdCAqcDsKPj4gLSAgICAgICAg aW50IG5uYWwsIHMsIGk7Cj4+IC0KPj4gLSAgICAgICAgcyA9IHgyNjRfZW5jb2Rlcl9oZWFkZXJz KHg0LT5lbmMsICZuYWwsICZubmFsKTsKPj4gLSAgICAgICAgYXZjdHgtPmV4dHJhZGF0YSA9IHAg PSBhdl9tYWxsb2N6KHMgKyBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFKTsKPj4gLSAgICAg ICAgaWYgKCFwKQo+PiAtICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPj4gLQo+ PiAtICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbm5hbDsgaSsrKSB7Cj4+IC0gICAgICAgICAgICAv KiBEb24ndCBwdXQgdGhlIFNFSSBpbiBleHRyYWRhdGEuICovCj4+IC0gICAgICAgICAgICBpZiAo bmFsW2ldLmlfdHlwZSA9PSBOQUxfU0VJKSB7Cj4+IC0gICAgICAgICAgICAgICAgYXZfbG9nKGF2 Y3R4LCBBVl9MT0dfSU5GTywgIiVzXG4iLCBuYWxbaV0ucF9wYXlsb2FkKzI1KTsKPj4gLSAgICAg ICAgICAgICAgICB4NC0+c2VpX3NpemUgPSBuYWxbaV0uaV9wYXlsb2FkOwo+PiAtICAgICAgICAg ICAgICAgIHg0LT5zZWkgICAgICA9IGF2X21hbGxvYyh4NC0+c2VpX3NpemUpOwo+PiAtICAgICAg ICAgICAgICAgIGlmICgheDQtPnNlaSkKPj4gLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFW RVJST1IoRU5PTUVNKTsKPj4gLSAgICAgICAgICAgICAgICBtZW1jcHkoeDQtPnNlaSwgbmFsW2ld LnBfcGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7Cj4+IC0gICAgICAgICAgICAgICAgY29udGlu dWU7Cj4+IC0gICAgICAgICAgICB9Cj4+IC0gICAgICAgICAgICBtZW1jcHkocCwgbmFsW2ldLnBf cGF5bG9hZCwgbmFsW2ldLmlfcGF5bG9hZCk7Cj4+IC0gICAgICAgICAgICBwICs9IG5hbFtpXS5p X3BheWxvYWQ7Cj4+IC0gICAgICAgIH0KPj4gLSAgICAgICAgYXZjdHgtPmV4dHJhZGF0YV9zaXpl ID0gcCAtIGF2Y3R4LT5leHRyYWRhdGE7Cj4+ICsgICAgICAgIHJldCA9IHNldF9leHRyYWRhdGEo YXZjdHgpOwo+PiArICAgICAgICBpZiAocmV0IDwgMCkKPj4gKyAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4+ICAgICB9Cj4+IAo+PiAgICAgY3BiX3Byb3BzID0gZmZfZW5jb2RlX2FkZF9jcGJfc2lk ZV9kYXRhKGF2Y3R4KTsKPiAKPiBZb3UgbmVlZCBhIGdvbG9tYiBjb25maWd1cmUgZGVwZW5kZW5j eSBmb3IgZ2V0X3VlX2dvbG9tYl8zMSgpLgoKU2VsZWN0IGdvbG9tYiBpbiBjb25maWd1cmUgYW5k IHVzZSBjb25kaXRpb25hbCBjb21waWxlIGluIGNhc2Ugb2Ygb25seQp4MjYyIGlzIGVuYWJsZWQu IEkgdGhpbmsgYXRzY19hNTMgaGFzIHRoZSBzYW1lIHByb2JsZW0gYnV0IGl04oCZcyB1bnJlbGF0 ZWQKdG8gY3VycmVudCBwYXRjaC4KCj4gCj4gLSBBbmRyZWFzCj4gCj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBs aXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBh Ym92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=