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 03C464C2B4 for ; Thu, 6 Feb 2025 14:28:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0F37B68BC72; Thu, 6 Feb 2025 16:28:30 +0200 (EET) Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2629568BC32 for ; Thu, 6 Feb 2025 16:28:22 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1738852099; bh=YhdKn+zQWz0LzNS6E/MGbUpJYfyzgJMo2bsfOdVTrV8=; h=From:Subject:Date:References:To:In-Reply-To; b=MTaXykLJ5B4UzxbD77KHgu2H822usNIMU0ZfM7q1ft4EUVLJkNMlemvkU5wu8fdPT MPTVtQUmPPuYDtQ/qW6d5q4m/AAldDyQscZiU0xRw2OcklxPzK0RLH3ke2IXfRsUx8 iAkRPuEy54r60CzRdwR0zBKUwKSUmSN+aI48gjY4= Received: from smtpclient.apple ([240e:3b7:3277:36f0:8c28:6499:741e:4e6a]) by newxmesmtplogicsvrsza36-0.qq.com (NewEsmtp) with SMTP id 71220254; Thu, 06 Feb 2025 22:28:18 +0800 X-QQ-mid: xmsmtpt1738852098twe85nx3m Message-ID: X-QQ-XMAILINFO: NMMG1eKt9nPGTqEWEsNT9CQMMcloGex3IHthQMX0ZyuCMOQtKYFSVX24UslSyd Md4yt3tN51hq01YMxTT61ssfoOsASJUJKCAANLwLscfrFbgMR9XHBNuP2yeaYXVXfTSisqhxKZDe k5Owk+R6NzkD7TgtMKCOL9h2Hz7naGACzDLFTcbPLuXePQPpBEC6JjnJPxj9rFukG4vF1jlnJlVj lXLt/XsU/waUtjwP56osQtOqsypV4/m0H0E5CUEQxWeAeGVvz56/AQPitbypdn6k1uPNL0rqma0V uSa3lwN/WYTwa0Gda9xlTRUOCjzqpWM+lhtGeIAr1RGOGoSu2TFGm6RQubcW+V+ubkcu4U0iexdR OX+jRX60jxHu/0gSOdTFmpcnSQqXvtDYgeG1ZRyE94Gt5b7bul4sQ48NKOfe3KJ/BNtDnjDwNKvf h14X81gu+qYV3BV5PHeiR1FGyz0ppJad3AvqLpCD0HgGlJO/3f4maqL0YyrT1XHELBZjUO3fRsvf lkOJqaFPsdqaP3AvJQ1IKa13jJQ0RGRQHtJgwtZ5Jqz+3BPYHXB1MwmPpHGaiZzrLir669AfcCYW Kle6a8zHlhqe3ltIvtsHISzIk8O0Oc5mBE34O8q9k/vKBCVCF8sgogDz/th8Tg3Em/G07InrzbJu Ptf9qlBdFstqiWaGYArTGZilOczve/XLPBNusldVlIT+js0hPztBfkLwHWJuqr9fYRuEJfzHqEaK fhhoVxIgzFOQmfaC+38ORCJ1J6sddAwG0zVuOV6t1Q7k56Dlps3UyZKT7oWNjSQ1Ykfrs3hgxP5U hz8dNUiVOWp2VW47DDac9RkmAT128cTIw/HkIAXwrSjYg8RyP/JeEijUcqsoSqdDj+wHFdxx5xgV U5SmJB2gU2DGR/MtKyH79Y5wKvHTRnp9K5ZMgqV2Dj7veoSis2kpyUP1UFEE2K9GEmu9voVnBDx0 2IgSne3dwBcF32LcpWZ01n5gQwi30T/QIERfYQIpQ= X-QQ-XMRINFO: NS+P29fieYNw95Bth2bWPxk= From: Zhao Zhili Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3818.100.11.1.3\)) Date: Thu, 6 Feb 2025 22:28:08 +0800 References: To: FFmpeg development discussions and patches In-Reply-To: X-OQ-MSGID: <6A43BDDD-B039-4A92-A356-648283696B2E@foxmail.com> X-Mailer: Apple Mail (2.3818.100.11.1.3) Subject: Re: [FFmpeg-devel] [PATCH v4 2/3] avcodec/hevc/ps: Add basic HEVC_SCALABILITY_AUXILIARY support 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+IE9uIEZlYiA2LCAyMDI1LCBhdCAyMToyNSwgSmFtZXMgQWxtZXIgPGphbXJpYWxAZ21haWwu Y29tPiB3cm90ZToKPiAKPiBPbiAyLzYvMjAyNSAxMjo0OSBBTSwgWmhhbyBaaGlsaSB3cm90ZToK Pj4gRnJvbTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRlbmNlbnQuY29tPgo+PiBPbmx5IGltcGxl bWVudGluZyB3aGF0J3MgbmVlZGVkIGZvciBIRVZDIHdpdGggYWxwaGEuCj4+IFNpZ25lZC1vZmYt Ynk6IFpoYW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KPj4gLS0tCj4+ICBsaWJhdmNv ZGVjL2hldmMvaGV2Yy5oIHwgICA1ICsrCj4+ICBsaWJhdmNvZGVjL2hldmMvcHMuYyAgIHwgMTI2 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4+ICBsaWJhdmNvZGVj L2hldmMvcHMuaCAgIHwgICA0ICsrCj4+ICAzIGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMo KyksIDM3IGRlbGV0aW9ucygtKQo+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oZXZjL2hldmMu aCBiL2xpYmF2Y29kZWMvaGV2Yy9oZXZjLmgKPj4gaW5kZXggYjIyMjlmZGE0MC4uNzEwNzg2YTg5 ZCAxMDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy9oZXZjL2hldmMuaAo+PiArKysgYi9saWJhdmNv ZGVjL2hldmMvaGV2Yy5oCj4+IEBAIC0xNzAsNCArMTcwLDkgQEAgZW51bSBIRVZDU2NhbGFiaWxp dHlNYXNrIHsKPj4gICAgICBIRVZDX1NDQUxBQklMSVRZX01BU0tfTUFYICAgPSAweEZGRkYsCj4+ ICB9Owo+PiAgK2VudW0gSEVWQ0F1eElkIHsKPj4gKyAgICBIRVZDX0FVWF9BTFBIQSA9IDEsCj4+ ICsgICAgSEVWQ19BVVhfREVQVEggPSAyLAo+PiArfTsKPj4gKwo+PiAgI2VuZGlmIC8qIEFWQ09E RUNfSEVWQ19IRVZDX0ggKi8KPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaGV2Yy9wcy5jIGIv bGliYXZjb2RlYy9oZXZjL3BzLmMKPj4gaW5kZXggODYxYTZiYjBhMi4uNGYxOGNkNzJlNCAxMDA2 NDQKPj4gLS0tIGEvbGliYXZjb2RlYy9oZXZjL3BzLmMKPj4gKysrIGIvbGliYXZjb2RlYy9oZXZj L3BzLmMKPj4gQEAgLTQ2MCwxNCArNDYwLDE3IEBAIHN0YXRpYyBpbnQgZGVjb2RlX3Zwc19leHQo R2V0Qml0Q29udGV4dCAqZ2IsIEFWQ29kZWNDb250ZXh0ICphdmN0eCwgSEVWQ1ZQUyAqdnBzCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxheWVyMV9pZF9pbmNsdWRlZCkK Pj4gIHsKPj4gICAgICBQVEwgcHRsX2R1bW15Owo+PiAtICAgIHVpbnQ4X3QgbWF4X3N1Yl9sYXll cnNbSEVWQ19NQVhfTEFZRVJTXTsKPj4gKyAgICB1aW50OF90IG1heF9zdWJfbGF5ZXJzW0hFVkNf TUFYX0xBWUVSU10gPSB7MSwgMX07Cj4+ICsgICAgdWludDhfdCBkaW1lbnNpb25faWRfbGVuWzE2 XSA9IHswfTsKPj4gKyAgICB1aW50OF90IGRpbWVuc2lvbl9pZFsxNl0gPSB7MH07Cj4+ICsgICAg dW5zaWduZWQgbjsKPj4gIC0gICAgaW50IHNwbGl0dGluZ19mbGFnLCBkaW1lbnNpb25faWRfbGVu LCB2aWV3X2lkX2xlbiwgbnVtX2FkZF9vbHNzLCBudW1fc2NhbGFiaWxpdHlfdHlwZXMsCj4+ICsg ICAgaW50IHNwbGl0dGluZ19mbGFnLCB2aWV3X2lkX2xlbiwgbnVtX2FkZF9vbHNzLCBudW1fc2Nh bGFiaWxpdHlfdHlwZXMsCj4+ICAgICAgICAgIGRlZmF1bHRfb3V0cHV0X2xheWVyX2lkYywgZGly ZWN0X2RlcF90eXBlX2xlbiwgZGlyZWN0X2RlcF90eXBlLAo+PiAgICAgICAgICBzdWJfbGF5ZXJz X21heF9wcmVzZW50LCBzdWJfbGF5ZXJfZmxhZ19pbmZvX3ByZXNlbnRfZmxhZywgbmJfcHRsOwo+ PiAgICAgIHVuc2lnbmVkIG5vbl92dWlfZXh0ZW5zaW9uX2xlbmd0aDsKPj4gIC0gICAgaWYgKHZw cy0+dnBzX21heF9sYXllcnMgPT0gMSB8fCB2cHMtPnZwc19udW1fbGF5ZXJfc2V0cyA9PSAxKSB7 Cj4+ICsgICAgaWYgKHZwcy0+dnBzX21heF9sYXllcnMgPT0gMSkgewo+PiAgICAgICAgICBhdl9s b2coYXZjdHgsIEFWX0xPR19WRVJCT1NFLCAiSWdub3JpbmcgVlBTIGV4dGVuc2lvbnMgd2l0aCBh IHNpbmdsZSBsYXllclxuIik7Cj4+ICAgICAgICAgIHJldHVybiAwOwo+PiAgICAgIH0KPj4gQEAg LTUyMCw3ICs1MjMsOCBAQCBzdGF0aWMgaW50IGRlY29kZV92cHNfZXh0KEdldEJpdENvbnRleHQg KmdiLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEhFVkNWUFMgKnZwcwo+PiAgICAgICAqLwo+PiAg ICAgIHZwcy0+bmJfbGF5ZXJzID0gMjsKPj4gIC0gICAgaWYgKHBhcnNlX3B0bChnYiwgYXZjdHgs IDAsICZwdGxfZHVtbXksIHZwcy0+dnBzX21heF9zdWJfbGF5ZXJzKSA8IDApCj4+ICsgICAgaWYg KHZwcy0+dnBzX2Jhc2VfbGF5ZXJfaW50ZXJuYWxfZmxhZyAmJgo+IAo+IFdoYXQncyB0aGUgcG9p bnQgY2hlY2tpbmcgZm9yIHRoaXMgZmxhZyBpZiB0aGlzIGNvZGUgd2lsbCBub3QgYmUgcmVhY2hl ZCBpZiBpdCdzIGZhbHNlPwoKSGVyZSBpcyBvbmx5IG1lYW50IHRvIGZvbGxvdyB0aGUgc3BlYyB3 aXRoIGxpdHRsZSBlZmZvcnQuIFdoZW4gc29tZW9uZSBhZGQgc3VwcG9ydCBmb3IKdnBzX2Jhc2Vf bGF5ZXJfaW50ZXJuYWxfZmxhZyA9IDAsIGl04oCZcyBjbGVhciB3aGF0IGRvZXMgdGhlIGZsYWcg Y2FuIGFmZmVjdC4KCj4gCj4+ICsgICAgICAgIHBhcnNlX3B0bChnYiwgYXZjdHgsIDAsICZwdGxf ZHVtbXksIHZwcy0+dnBzX21heF9zdWJfbGF5ZXJzKSA8IDApCj4+ICAgICAgICAgIHJldHVybiBB VkVSUk9SX0lOVkFMSUREQVRBOwo+PiAgICAgICAgc3BsaXR0aW5nX2ZsYWcgPSBnZXRfYml0czEo Z2IpOwo+PiBAQCAtNTI5LDIwICs1MzMsMjUgQEAgc3RhdGljIGludCBkZWNvZGVfdnBzX2V4dChH ZXRCaXRDb250ZXh0ICpnYiwgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBIRVZDVlBTICp2cHMKPj4g ICAgICBpZiAoIW51bV9zY2FsYWJpbGl0eV90eXBlcykgewo+PiAgICAgICAgICBhdl9sb2coYXZj dHgsIEFWX0xPR19FUlJPUiwgIk1pc3Npbmcgc2NhbGFiaWxpdHkgbWFza1xuIik7Cj4+ICAgICAg ICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+PiAtICAgIH0gZWxzZSBpZiAobnVtX3Nj YWxhYmlsaXR5X3R5cGVzID4gMSkgewo+PiAtICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19F UlJPUiwgIlNjYWxhYmlsaXR5IG51bWJlciAlZCBub3Qgc3VwcG9ydGVkXG4iLAo+PiAtICAgICAg ICAgICAgICAgbnVtX3NjYWxhYmlsaXR5X3R5cGVzKTsKPj4gLSAgICAgICAgcmV0dXJuIEFWRVJS T1JfUEFUQ0hXRUxDT01FOwo+PiAgICAgIH0KPj4gIC0gICAgaWYgKCEodnBzLT5zY2FsYWJpbGl0 eV9tYXNrX2ZsYWcgJiBIRVZDX1NDQUxBQklMSVRZX01VTFRJVklFVykpIHsKPj4gKyAgICBpZiAo ISh2cHMtPnNjYWxhYmlsaXR5X21hc2tfZmxhZyAmCj4+ICsgICAgICAgICAgKEhFVkNfU0NBTEFC SUxJVFlfTVVMVElWSUVXIHwgSEVWQ19TQ0FMQUJJTElUWV9BVVhJTElBUlkpKSkgewo+PiAgICAg ICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIlNjYWxhYmlsaXR5IHR5cGUgJWQgbm90 IHN1cHBvcnRlZFxuIiwKPj4gICAgICAgICAgICAgICAgIDE1IC0gZmZfY3R6KHZwcy0+c2NhbGFi aWxpdHlfbWFza19mbGFnKSk7Cj4+ICAgICAgICAgIHJldHVybiBBVkVSUk9SX1BBVENIV0VMQ09N RTsKPj4gICAgICB9Cj4+ICsgICAgLy8geDI2NSBzcGVjaWZ5IE1VTFRJVklFVyB3aGVuIHRoZSBz dHJlYW0gcmVhbGx5IGlzIGFscGhhIHZpZGVvIG9ubHkuCj4+ICsgICAgaWYgKG51bV9zY2FsYWJp bGl0eV90eXBlcyA+IDEpCj4+ICsgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcs ICJNdWx0aXBsZSBzY2FsYWJpbGl0eSB0eXBlcyBwcmVzZW50ZWRcbiIpOwo+PiAgLSAgICBpZiAo IXNwbGl0dGluZ19mbGFnKQo+PiAtICAgICAgICBkaW1lbnNpb25faWRfbGVuID0gZ2V0X2JpdHMo Z2IsIDMpICsgMTsKPj4gKyAgICBuID0gMDsKPj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51 bV9zY2FsYWJpbGl0eV90eXBlcyAtIHNwbGl0dGluZ19mbGFnOyBpKyspIHsKPj4gKyAgICAgICAg ZGltZW5zaW9uX2lkX2xlbltpXSA9IGdldF9iaXRzKGdiLCAzKSArIDE7Cj4+ICsgICAgICAgIG4g Kz0gZGltZW5zaW9uX2lkX2xlbltpXTsKPj4gKyAgICB9Cj4+ICsgICAgaWYgKHNwbGl0dGluZ19m bGFnKQo+PiArICAgICAgICBkaW1lbnNpb25faWRfbGVuW251bV9zY2FsYWJpbGl0eV90eXBlcyAt IDFdID0gNSAtIG47Cj4+ICAgICAgICBpZiAoZ2V0X2JpdHMxKGdiKSkgeyAvKiB2cHNfbnVoX2xh eWVyX2lkX3ByZXNlbnRfZmxhZyAqLwo+PiAgICAgICAgICBpbnQgbGF5ZXJfaWRfaW5fbnVoID0g Z2V0X2JpdHMoZ2IsIDYpOwo+PiBAQCAtNTU5LDI4ICs1NjgsNTcgQEAgc3RhdGljIGludCBkZWNv ZGVfdnBzX2V4dChHZXRCaXRDb250ZXh0ICpnYiwgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBIRVZD VlBTICp2cHMKPj4gICAgICB9Cj4+ICAgICAgICBpZiAoIXNwbGl0dGluZ19mbGFnKSB7Cj4+IC0g ICAgICAgIGludCB2aWV3X2lkeCA9IGdldF9iaXRzKGdiLCBkaW1lbnNpb25faWRfbGVuKTsKPj4g LSAgICAgICAgaWYgKHZpZXdfaWR4ICE9IDEpIHsKPj4gLSAgICAgICAgICAgIGF2X2xvZyhhdmN0 eCwgQVZfTE9HX0VSUk9SLCAiVW5leHBlY3RlZCBWaWV3T3JkZXJJZHg6ICVkXG4iLCB2aWV3X2lk eCk7Cj4+ICsgICAgICAgIGludCBpbmRleCA9IDA7Cj4+ICsKPj4gKyAgICAgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBudW1fc2NhbGFiaWxpdHlfdHlwZXM7IGkrKykKPj4gKyAgICAgICAgICAgIGRp bWVuc2lvbl9pZFtpXSA9IGdldF9iaXRzKGdiLCBkaW1lbnNpb25faWRfbGVuW2ldKTsKPj4gKwo+ PiArICAgICAgICBpZiAodnBzLT5zY2FsYWJpbGl0eV9tYXNrX2ZsYWcgJiBIRVZDX1NDQUxBQklM SVRZX01VTFRJVklFVykKPj4gKyAgICAgICAgICAgIGluZGV4Kys7Cj4+ICsKPj4gKyAgICAgICAg LyogQXV4SWQgMSBpcyBhbHBoYSwgMiBpcyBkZXB0aC4gT25seSBzdXBwb3J0IGFscGhhICovCj4+ ICsgICAgICAgIGlmICh2cHMtPnNjYWxhYmlsaXR5X21hc2tfZmxhZyAmIEhFVkNfU0NBTEFCSUxJ VFlfQVVYSUxJQVJZICYmCj4+ICsgICAgICAgICAgICBkaW1lbnNpb25faWRbaW5kZXhdICE9IEhF VkNfQVVYX0FMUEhBKSB7Cj4+ICsgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJO SU5HLAo+PiArICAgICAgICAgICAgICAgICAgICJVbnN1cHBvcnRlZCBkaW1lbnNpb25faWQgJWQg Zm9yIEhFVkNfU0NBTEFCSUxJVFlfQVVYSUxJQVJZXG4iLAo+PiArICAgICAgICAgICAgICAgICAg IGRpbWVuc2lvbl9pZFtpbmRleF0pOwo+PiAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFU Q0hXRUxDT01FOwo+PiAgICAgICAgICB9Cj4+ICAgICAgfQo+PiAgICAgICAgdmlld19pZF9sZW4g PSBnZXRfYml0cyhnYiwgNCk7Cj4+IC0gICAgaWYgKHZpZXdfaWRfbGVuKQo+PiAtICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IDIgLyogTnVtVmlld3MgKi87IGkrKykKPj4gKyAgICBpZiAodmll d19pZF9sZW4pIHsKPj4gKyAgICAgICAgbiA9ICh2cHMtPnNjYWxhYmlsaXR5X21hc2tfZmxhZyAm IEhFVkNfU0NBTEFCSUxJVFlfTVVMVElWSUVXKSA/IDIgOiAxOwo+PiArICAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IG47IGkrKykKPj4gICAgICAgICAgICAgIHZwcy0+dmlld19pZFtpXSA9IGdl dF9iaXRzKGdiLCB2aWV3X2lkX2xlbik7Cj4+ICsgICAgfQo+PiAgLSAgICBpZiAoIWdldF9iaXRz MShnYikgLyogZGlyZWN0X2RlcGVuZGVuY3lfZmxhZyAqLykgewo+PiAtICAgICAgICBhdl9sb2co YXZjdHgsIEFWX0xPR19XQVJOSU5HLCAiSW5kZXBlbmRlbnQgb3V0cHV0IGxheWVycyBub3Qgc3Vw cG9ydGVkXG4iKTsKPj4gLSAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hXRUxDT01FOwo+PiAr ICAgIC8qIGRpcmVjdF9kZXBlbmRlbmN5X2ZsYWcgKi8KPj4gKyAgICB2cHMtPm51bV9kaXJlY3Rf cmVmX2xheWVyc1sxXSA9IGdldF9iaXRzMShnYik7Cj4+ICsgICAgaWYgKCF2cHMtPm51bV9kaXJl Y3RfcmVmX2xheWVyc1sxXSkgewo+PiArICAgICAgICB2cHMtPm51bV9hZGRfbGF5ZXJfc2V0cyA9 IGdldF91ZV9nb2xvbWIoZ2IpOwo+PiArICAgICAgICBpZiAodnBzLT5udW1fYWRkX2xheWVyX3Nl dHMgPiAxKSB7Cj4+ICsgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJOSU5HLAo+ PiArICAgICAgICAgICAgICAgICAgICJVbnN1cHBvcnRlZCBudW1fYWRkX2xheWVyX3NldHM6ICVk XG4iLCB2cHMtPm51bV9hZGRfbGF5ZXJfc2V0cyk7Cj4+ICsgICAgICAgICAgICByZXR1cm4gQVZF UlJPUl9QQVRDSFdFTENPTUU7Cj4+ICsgICAgICAgIH0KPj4gKwo+PiArICAgICAgICBpZiAodnBz LT5udW1fYWRkX2xheWVyX3NldHMpIHsKPj4gKyAgICAgICAgICAgIC8qIGhpZ2hlc3RfbGF5ZXJf aWR4X3BsdXMxICovCj4+ICsgICAgICAgICAgICBpZiAoIWdldF9iaXRzMShnYikpCj4+ICsgICAg ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hXRUxDT01FOwo+PiArICAgICAgICB9Cj4+ ICAgICAgfQo+PiAtICAgIHZwcy0+bnVtX2RpcmVjdF9yZWZfbGF5ZXJzWzFdID0gMTsKPj4gKyAg ICB2cHMtPm51bV9vdXRwdXRfbGF5ZXJfc2V0cyA9IHZwcy0+dnBzX251bV9sYXllcl9zZXRzICsg dnBzLT5udW1fYWRkX2xheWVyX3NldHM7Cj4+ICsgICAgaWYgKHZwcy0+bnVtX291dHB1dF9sYXll cl9zZXRzICE9IDIpCj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+PiAg ICAgICAgc3ViX2xheWVyc19tYXhfcHJlc2VudCA9IGdldF9iaXRzMShnYik7IC8vIHZwc19zdWJf bGF5ZXJzX21heF9taW51czFfcHJlc2VudF9mbGFnCj4+IC0gICAgZm9yIChpbnQgaSA9IDA7IGkg PCB2cHMtPnZwc19tYXhfbGF5ZXJzOyBpKyspCj4+IC0gICAgICAgIG1heF9zdWJfbGF5ZXJzW2ld ID0gc3ViX2xheWVyc19tYXhfcHJlc2VudCA/IGdldF9iaXRzKGdiLCAzKSArIDEgOgo+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2cHMtPnZw c19tYXhfc3ViX2xheWVyczsKPj4gKyAgICBpZiAoc3ViX2xheWVyc19tYXhfcHJlc2VudCkgewo+ PiArICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZwcy0+dnBzX21heF9sYXllcnM7IGkrKykK Pj4gKyAgICAgICAgICAgIG1heF9zdWJfbGF5ZXJzW2ldID0gc3ViX2xheWVyc19tYXhfcHJlc2Vu dCA/IGdldF9iaXRzKGdiLCAzKSArIDEgOgo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnBzLT52cHNfbWF4X3N1Yl9sYXllcnM7Cj4+ ICsgICAgfQo+PiAgICAgICAgaWYgKGdldF9iaXRzMShnYikgLyogbWF4X3RpZF9yZWZfcHJlc2Vu dF9mbGFnICovKQo+PiAgICAgICAgICBza2lwX2JpdHMoZ2IsIDMpOyAvLyBtYXhfdGlkX2lsX3Jl Zl9waWNzX3BsdXMxCj4+IEBAIC02MTMsMTggKzY1MSwyNCBAQCBzdGF0aWMgaW50IGRlY29kZV92 cHNfZXh0KEdldEJpdENvbnRleHQgKmdiLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEhFVkNWUFMg KnZwcwo+PiAgICAgIH0KPj4gICAgICAgIC8qIENvbnNlcXVlbmNlIG9mIGVzdGFibGlzaGVkIGxh eWVyIGRlcGVuZGVuY2llcyAqLwo+PiAtICAgIGlmIChsYXllcjFfaWRfaW5jbHVkZWQgIT0gKCgx IDw8IHZwcy0+bGF5ZXJfaWRfaW5fbnVoWzBdKSB8Cj4+ICsgICAgaWYgKGxheWVyMV9pZF9pbmNs dWRlZCAmJgo+PiArICAgICAgICBsYXllcjFfaWRfaW5jbHVkZWQgIT0gKCgxIDw8IHZwcy0+bGF5 ZXJfaWRfaW5fbnVoWzBdKSB8Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEg PDwgdnBzLT5sYXllcl9pZF9pbl9udWhbMV0pKSkgewo+PiAtICAgICAgICBhdl9sb2coYXZjdHgs IEFWX0xPR19FUlJPUiwgIkRlcGVuZGVudCBsYXllciBub3QgaW5jbHVkZWQgaW4gbGF5ZXIgSUQ/ XG4iKTsKPj4gLSAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFUQ0hXRUxDT01FOwo+PiArICAgICAg ICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsCj4+ICsgICAgICAgICAgICAgICAgICAg IkRlcGVuZGVudCBsYXllciBub3QgaW5jbHVkZWQgaW4gbGF5ZXIgSUQ/XG4iKTsKPj4gKyAgICAg ICAgICAgIHJldHVybiBBVkVSUk9SX1BBVENIV0VMQ09NRTsKPj4gICAgICB9Cj4+ICsgICAgaWYg KCFsYXllcjFfaWRfaW5jbHVkZWQpCj4+ICsgICAgICAgIHZwcy0+b2xzWzFdID0gMjsKPj4gKyAg ICBlbHNlCj4+ICsgICAgICAgIHZwcy0+b2xzWzFdID0gMzsKPj4gIC0gICAgdnBzLT5udW1fb3V0 cHV0X2xheWVyX3NldHMgPSAyOwo+PiAtICAgIHZwcy0+b2xzWzFdID0gMzsKPj4gKyAgICBpZiAo dnBzLT52cHNfbnVtX2xheWVyX3NldHMgPT0gMSB8fCBkZWZhdWx0X291dHB1dF9sYXllcl9pZGMg PT0gMikKPj4gKyAgICAgICAgc2tpcF9iaXRzMShnYik7Cj4+ICAgICAgICBmb3IgKGludCBqID0g MDsgaiA8IGF2X3BvcGNvdW50NjQodnBzLT5vbHNbMV0pOyBqKyspIHsKPj4gICAgICAgICAgaW50 IHB0bF9pZHggPSBnZXRfYml0cyhnYiwgYXZfY2VpbF9sb2cyKG5iX3B0bCkpOwo+PiAtICAgICAg ICBpZiAocHRsX2lkeCA8IDEgfHwgcHRsX2lkeCA+PSBuYl9wdGwpIHsKPj4gKyAgICAgICAgaWYg KHB0bF9pZHggPj0gbmJfcHRsKSB7Cj4+ICAgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xP R19FUlJPUiwgIkludmFsaWQgUFRMIGluZGV4OiAlZFxuIiwgcHRsX2lkeCk7Cj4+ICAgICAgICAg ICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4gICAgICAgICAgfQo+PiBAQCAtNjY3 LDYgKzcxMSw4IEBAIHN0YXRpYyBpbnQgZGVjb2RlX3Zwc19leHQoR2V0Qml0Q29udGV4dCAqZ2Is IEFWQ29kZWNDb250ZXh0ICphdmN0eCwgSEVWQ1ZQUyAqdnBzCj4+ICAgICAgICB2cHMtPm1heF9v bmVfYWN0aXZlX3JlZl9sYXllciA9IGdldF9iaXRzMShnYik7Cj4+ICAgICAgdnBzLT5wb2NfbHNi X2FsaWduZWQgICAgICAgICAgPSBnZXRfYml0czEoZ2IpOwo+PiArICAgIGlmICghdnBzLT5udW1f ZGlyZWN0X3JlZl9sYXllcnNbMV0pCj4+ICsgICAgICAgIHZwcy0+cG9jX2xzYl9ub3RfcHJlc2Vu dCA9IGdldF9iaXRzMShnYikgPDwgMTsKPiAKPiBIdWgsIHNvIHRoaXMgd2FzIGJlaW5nIGNoZWNr ZWQgaW4gaGxzX3NsaWNlX2hlYWRlcigpIGJ1dCBuZXZlciBzZXQgYmVmb3JlIG5vdz8KCkl04oCZ cyBpbmZlcnJlZCB0byBiZSAwIGFuZCBpbml0aWFsaXplZCBieSBtZW1zZXQgdG8gMC4KCj4gCj4+ ICAgICAgICBzdWJfbGF5ZXJfZmxhZ19pbmZvX3ByZXNlbnRfZmxhZyA9IGdldF9iaXRzMShnYik7 Cj4+ICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBGRk1BWChtYXhfc3ViX2xheWVyc1swXSwgbWF4 X3N1Yl9sYXllcnNbMV0pOyBqKyspIHsKPj4gQEAgLTY4OCwxMiArNzM0LDE0IEBAIHN0YXRpYyBp bnQgZGVjb2RlX3Zwc19leHQoR2V0Qml0Q29udGV4dCAqZ2IsIEFWQ29kZWNDb250ZXh0ICphdmN0 eCwgSEVWQ1ZQUyAqdnBzCj4+ICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ PiAgICAgIH0KPj4gIC0gICAgc2tpcF9iaXRzMShnYik7IC8qIGRpcmVjdF9kZXBlbmVuY3lfYWxs X2xheWVyc19mbGFnICovCj4+IC0gICAgZGlyZWN0X2RlcF90eXBlID0gZ2V0X2JpdHNfbG9uZyhn YiwgZGlyZWN0X2RlcF90eXBlX2xlbik7Cj4+IC0gICAgaWYgKGRpcmVjdF9kZXBfdHlwZSA+IEhF VkNfREVQX1RZUEVfQk9USCkgewo+PiAtICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJO SU5HLCAiVW5zdXBwb3J0ZWQgZGlyZWN0X2RlcF90eXBlOiAlZFxuIiwKPj4gLSAgICAgICAgICAg ICAgIGRpcmVjdF9kZXBfdHlwZSk7Cj4+IC0gICAgICAgIHJldHVybiBBVkVSUk9SX1BBVENIV0VM Q09NRTsKPj4gKyAgICAvKiBkaXJlY3RfZGVwZW5kZW5jeV9hbGxfbGF5ZXJzX2ZsYWcgKi8KPj4g KyAgICBpZiAoZ2V0X2JpdHMxKGdiKSB8fCB2cHMtPm51bV9kaXJlY3RfcmVmX2xheWVyc1sxXSkg ewo+PiArICAgICAgICBkaXJlY3RfZGVwX3R5cGUgPSBnZXRfYml0c19sb25nKGdiLCBkaXJlY3Rf ZGVwX3R5cGVfbGVuKTsKPj4gKyAgICAgICAgaWYgKGRpcmVjdF9kZXBfdHlwZSA+IEhFVkNfREVQ X1RZUEVfQk9USCkgewo+PiArICAgICAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfV0FSTklO RywgIlVuc3VwcG9ydGVkIGRpcmVjdF9kZXBfdHlwZTogJWRcbiIsCj4+ICsgICAgICAgICAgICAg ICAgICAgZGlyZWN0X2RlcF90eXBlKTsKPj4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX1BB VENIV0VMQ09NRTsKPj4gKyAgICAgICAgfQo+PiAgICAgIH0KPj4gICAgICAgIG5vbl92dWlfZXh0 ZW5zaW9uX2xlbmd0aCA9IGdldF91ZV9nb2xvbWIoZ2IpOwo+PiBAQCAtNzQxLDggKzc4OSwxMiBA QCBpbnQgZmZfaGV2Y19kZWNvZGVfbmFsX3ZwcyhHZXRCaXRDb250ZXh0ICpnYiwgQVZDb2RlY0Nv bnRleHQgKmF2Y3R4LAo+PiAgICAgIH0KPj4gICAgICB2cHMtPnZwc19pZCA9IHZwc19pZDsKPj4g IC0gICAgaWYgKGdldF9iaXRzKGdiLCAyKSAhPSAzKSB7IC8vIHZwc19yZXNlcnZlZF90aHJlZV8y Yml0cwo+PiAtICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgInZwc19yZXNlcnZl ZF90aHJlZV8yYml0cyBpcyBub3QgdGhyZWVcbiIpOwo+PiArICAgIHZwcy0+dnBzX2Jhc2VfbGF5 ZXJfaW50ZXJuYWxfZmxhZyA9IGdldF9iaXRzMShnYik7Cj4+ICsgICAgdnBzLT52cHNfYmFzZV9s YXllcl9hdmFpbGFibGVfZmxhZyA9IGdldF9iaXRzMShnYik7Cj4+ICsgICAgaWYgKCF2cHMtPnZw c19iYXNlX2xheWVyX2ludGVybmFsX2ZsYWcgfHwgIXZwcy0+dnBzX2Jhc2VfbGF5ZXJfYXZhaWxh YmxlX2ZsYWcpIHsKPj4gKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsCj4+ICsg ICAgICAgICAgICAgICAidnBzX2Jhc2VfbGF5ZXJfaW50ZXJuYWxfZmxhZyBvciB2cHNfYmFzZV9s YXllcl9hdmFpbGFibGVfZmxhZyBub3Qgc2V0XG4iKTsKPj4gKyAgICAgICAgcmV0ID0gQVZFUlJP Ul9QQVRDSFdFTENPTUU7Cj4+ICAgICAgICAgIGdvdG8gZXJyOwo+PiAgICAgIH0KPj4gIGRpZmYg LS1naXQgYS9saWJhdmNvZGVjL2hldmMvcHMuaCBiL2xpYmF2Y29kZWMvaGV2Yy9wcy5oCj4+IGlu ZGV4IGQzNDY1ZTNkMjcuLmY3MDZiODg5ZTYgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMvaGV2 Yy9wcy5oCj4+ICsrKyBiL2xpYmF2Y29kZWMvaGV2Yy9wcy5oCj4+IEBAIC0xNzEsNiArMTcxLDkg QEAgdHlwZWRlZiBzdHJ1Y3QgUmVwRm9ybWF0IHsKPj4gIHR5cGVkZWYgc3RydWN0IEhFVkNWUFMg ewo+PiAgICAgIHVuc2lnbmVkIGludCB2cHNfaWQ7Cj4+ICArICAgIHVpbnQ4X3QgdnBzX2Jhc2Vf bGF5ZXJfaW50ZXJuYWxfZmxhZzsKPj4gKyAgICB1aW50OF90IHZwc19iYXNlX2xheWVyX2F2YWls YWJsZV9mbGFnOwo+IAo+IFRoZXNlIHR3byBjYW4gYmUgdmFyaWFibGVzIGxvY2FsIHRvIGZmX2hl dmNfZGVjb2RlX25hbF92cHMoKSBpbnN0ZWFkIG9mIGJlaW5nIGluIHRoaXMgc3RydWN0LgoKSXTi gJlzIHVzZWQgYnkgZGVjb2RlX3Zwc19leHQsIGFuZCBtZWFudCBhcyBhIHN0YXJ0IHBvaW50IHRv IGFkZCBzdXBwb3J0IGZvciB0aGVzZSBmbGFncyBiZWVuIHplcm8KaW4gdGhlIGZ1dHVyZS4KCj4g Cj4+ICsKPj4gICAgICB1aW50OF90IHZwc190ZW1wb3JhbF9pZF9uZXN0aW5nX2ZsYWc7Cj4+ICAg ICAgaW50IHZwc19tYXhfbGF5ZXJzOwo+PiAgICAgIGludCB2cHNfbWF4X3N1Yl9sYXllcnM7IC8v LzwgdnBzX21heF90ZW1wb3JhbF9sYXllcnNfbWludXMxICsgMQo+PiBAQCAtMjM3LDYgKzI0MCw3 IEBAIHR5cGVkZWYgc3RydWN0IEhFVkNWUFMgewo+PiAgICAgICAgLy8gTnVtRGlyZWN0UmVmTGF5 ZXJzW2xheWVyX2lkeF0KPj4gICAgICB1aW50OF90IG51bV9kaXJlY3RfcmVmX2xheWVyc1tIRVZD X1ZQU19NQVhfTEFZRVJTXTsKPj4gKyAgICB1aW50OF90IG51bV9hZGRfbGF5ZXJfc2V0czsKPj4g ICAgICAgIFJlcEZvcm1hdCByZXBfZm9ybWF0Owo+PiAgCj4gCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0 Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9s aXN0aW5mby9mZm1wZWctZGV2ZWwKPiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92 ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiLgo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=