From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 47EFA4AD21 for <ffmpegdev@gitmailbox.com>; Sat, 24 May 2025 14:02:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1170268DB3D; Sat, 24 May 2025 17:02:20 +0300 (EEST) Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com [209.85.210.41]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id A095168DA8C for <ffmpeg-devel@ffmpeg.org>; Sat, 24 May 2025 17:02:13 +0300 (EEST) Received: by mail-ot1-f41.google.com with SMTP id 46e09a7af769-734f2ddb868so491503a34.1 for <ffmpeg-devel@ffmpeg.org>; Sat, 24 May 2025 07:02:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748095331; x=1748700131; darn=ffmpeg.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=ilmqQBSYzQ8O3YPv0cKNU9IBKCx1nlYYS8qwyib3isk=; b=XoH7n6LnSDddjEpxHPGACCOdaegFUMOi5jazlMRFJ0YQAtstrO5HVv2YuGjJ8WSnWN IdWKN7AAmY/M86b7jdtr069UiJ84SL50KXk4h5i70+RhYx9s5K67csYGIzkKvI/uhF+r 48YsLgDcNZQOZ5U7OtRGfmgkzcP81ipYKti6g5etfliy1zhQB82Tmv0QV3JZeGYzMtZ2 +ZoteBOkmTNCJjgBhOiUDWM+ElQ1ZDueGTyPRUAr/miudRGLGpuJu7OXxAVh4whJxVX9 w4UvS/cYpr3EbomP6qgg5WTqMLNqvOU9Bf/d5zAukjhOZvd3s+ecF8AJAnSh7TXFpd6s nV2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748095331; x=1748700131; h=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=ilmqQBSYzQ8O3YPv0cKNU9IBKCx1nlYYS8qwyib3isk=; b=SCTUXCtb0X8Ye1dEEORqdFh1mYeS4kPaxA1yzlR8aD1PjAbNgM4DN8HGZ1739PxkfX RxWoAZ4eA9APvLTrNWZDUKEO3p0L32cy5b9O6T7CRSowbWh/0m9of7fJjuqAgVdba0bk xSxdAINly5QMx1M7KhJKu6U0tEf8dttXdUlZK3+yXBWBmdVAdXXKBLbNK9dLZlhvCWov Sybv9JdrhVzo66IEypjf3kDn3ZLWjzN1W2/pXWJlnnFnXihLPVjX0Z4ViLrc+aYw/ewc seKXdLXUW4eXZ0RVkHvsAYEIeDIxhM467FZjSycPeh2axiiaKa1xUsr/5BvqhemuH+oB QEfA== X-Gm-Message-State: AOJu0YwFjXCYydPhYj8THJIJKTlXglzDvqUG8WJ7Sv+w0fULMiG6m/mL EKymXeqP/IpWBUf38f2nOIHTPqTtFBftvdHv7AMziN2yTNB4fICuH7N+Tw6XcoRs0bfEfd1gI9x KZQHf9sDA45RemC/G4E07b6XqJOVuBrTJvcmu X-Gm-Gg: ASbGncsMFN2DzasEKIZrt+5r/KiEiq/jYG0+rTcI1LpD6ojS7riK3ntiUEdVUcAoYDK BRiPjhyf7ZtscW2fES6tK0TbgxQMc6x6F1Ar5DOc+KrVPvm2/HCjFmDQ0Wt6Vehyqr2p0eaWN04 L1H4xkx4Jv66O4T08zBID+Nf74tfRnVRQ= X-Google-Smtp-Source: AGHT+IFbzTkpERZGpVRZpw/slm/SsBblwkKeZqQayEJhYmU+tE8qXhIjT2d+hXTK4ZNjD2Z7nZKFQmp+Dlg8cAWA/cM= X-Received: by 2002:a05:6808:229e:b0:3f9:f923:cc46 with SMTP id 5614622812f47-406467e259cmr1484286b6e.9.1748095330822; Sat, 24 May 2025 07:02:10 -0700 (PDT) MIME-Version: 1.0 References: <20250401171616.1378-1-toqsxw@outlook.com> <20250401171616.1378-9-toqsxw@outlook.com> <GV1P250MB0737CFBC80EC0133D4B1CE718F842@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> <OS3PR01MB994461E64E1FC1F2B27AAA56CA8BA@OS3PR01MB9944.jpnprd01.prod.outlook.com> In-Reply-To: <OS3PR01MB994461E64E1FC1F2B27AAA56CA8BA@OS3PR01MB9944.jpnprd01.prod.outlook.com> From: Nuo Mi <nuomi2021@gmail.com> Date: Sat, 24 May 2025 22:02:00 +0800 X-Gm-Features: AX0GCFvje4XX9Mo-uCzivmMGW89TBqun1NZppXWCeWnbXr7GI758VFQBW4HODv8 Message-ID: <CAFXK13d4qY=75nbNqDVmh=rg_ACPpWLezfz5OpN=PkmJ7NTnfA@mail.gmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjEgMDkvMTldIGF2?= =?utf-8?q?codec/h274=3A_add_ff=5Fh274=5Fhash_functions?= 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/CAFXK13d4qY=75nbNqDVmh=rg_ACPpWLezfz5OpN=PkmJ7NTnfA@mail.gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> T24gRnJpLCBNYXkgOSwgMjAyNSBhdCAyOjM34oCvQU0gV3UgSmlhbmh1YSA8dG9xc3h3QG91dGxv b2suY29tPiB3cm90ZToKCj4gQW5kcmVhcyBSaGVpbmhhcmR0Ogo+ID4gdG9xc3h3QGdtYWlsLmNv bToKPiA+PiBGcm9tOiBXdSBKaWFuaHVhIDx0b3FzeHdAb3V0bG9vay5jb20+Cj4gPj4KPiA+PiBT aWduZWQtb2ZmLWJ5OiBXdSBKaWFuaHVhIDx0b3FzeHdAb3V0bG9vay5jb20+Cj4gPj4gLS0tCj4g Pj4gIGxpYmF2Y29kZWMvaDI3NC5jIHwgMTYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPiA+PiAgbGliYXZjb2RlYy9oMjc0LmggfCAgIDcgKysKPiA+PiAg MiBmaWxlcyBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvaDI3NC5jIGIvbGliYXZjb2RlYy9oMjc0LmMKPiA+PiBpbmRleCA1NzA5MjAw MzIyLi45ZWRjNzA1MDQyIDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvaDI3NC5jCj4gPj4g KysrIGIvbGliYXZjb2RlYy9oMjc0LmMKPiA+PiBAQCAtMjYsNyArMjYsMTEgQEAKPiA+PiAgICov Cj4gPj4KPiA+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5oIgo+ID4+ICsjaW5jbHVk ZSAibGliYXZ1dGlsL2Jzd2FwLmgiCj4gPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvY3JjLmgiCj4g Pj4gICNpbmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIKPiA+PiArI2luY2x1ZGUgImxpYmF2 dXRpbC9tZDUuaCIKPiA+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKPiA+Pgo+ID4+ICAj aW5jbHVkZSAiaDI3NC5oIgo+ID4+Cj4gPj4gQEAgLTc5MCwzICs3OTQsMTYyIEBAIHN0YXRpYyBj b25zdCBpbnQ4X3QgUjY0VFs2NF1bNjRdID0gewo+ID4+ICAgICAgICAgICAxNywgLTE2LCAgMTUs IC0xNCwgIDEzLCAtMTIsICAxMSwgLTEwLCAgIDksICAtOCwgICA3LCAgLTYsCj4gIDQsICAtMywg ICAyLCAgLTEsCj4gPj4gICAgICB9Cj4gPj4gIH07Cj4gPj4gKwo+ID4+ICtzdGF0aWMgaW50IHZl cmlmeV9wbGFuZV9tZDUoc3RydWN0IEFWTUQ1ICpjdHgsCj4gPj4gKyAgICBjb25zdCB1aW50OF90 ICpzcmMsIGNvbnN0IGludCB3LCBjb25zdCBpbnQgaCwgY29uc3QgaW50IHN0cmlkZSwKPiA+PiAr ICAgIGNvbnN0IHVpbnQ4X3QgKmV4cGVjdGVkKQo+ID4+ICt7Cj4gPj4gKyNkZWZpbmUgTUQ1X1NJ WkUgMTYKPiA+PiArICAgIHVpbnQ4X3QgbWQ1W01ENV9TSVpFXTsKPiA+PiArICAgIGF2X21kNV9p bml0KGN0eCk7Cj4gPj4gKyAgICBmb3IgKGludCBqID0gMDsgaiA8IGg7IGorKykgewo+ID4+ICsg ICAgICAgIGF2X21kNV91cGRhdGUoY3R4LCBzcmMsIHcpOwo+ID4+ICsgICAgICAgIHNyYyArPSBz dHJpZGU7Cj4gPj4gKyAgICB9Cj4gPj4gKyAgICBhdl9tZDVfZmluYWwoY3R4LCBtZDUpOwo+ID4+ ICsKPiA+PiArICAgIGlmIChtZW1jbXAobWQ1LCBleHBlY3RlZCwgTUQ1X1NJWkUpKQo+ID4+ICsg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ID4+ICsKPiA+PiArICAgIHJldHVy biAwOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgaW50IHZlcmlmeV9wbGFuZV9jcmMoY29u c3QgdWludDhfdCAqc3JjLCBjb25zdCBpbnQgdywgY29uc3QgaW50Cj4gaCwgY29uc3QgaW50IHN0 cmlkZSwKPiA+PiArICAgIGNvbnN0IHVpbnQ4X3QgKmV4cGVjdGVkKQo+ID4+ICt7Cj4gPj4gKyAg ICB1aW50MzJfdCBjcmMgPSAweDBGMUQ7ICAgICAvLyBDUkMtMTYtQ0NJVFQtQVVHCj4gPj4gKyAg ICBjb25zdCBBVkNSQyAqY3R4ID0gYXZfY3JjX2dldF90YWJsZShBVl9DUkNfMTZfQ0NJVFQpOwo+ ID4+ICsKPiA+PiArICAgIGZvciAoaW50IGogPSAwOyBqIDwgaDsgaisrKSB7Cj4gPj4gKyAgICAg ICAgY3JjID0gYXZfY3JjKGN0eCwgY3JjLCBzcmMsIHcpOwo+ID4+ICsgICAgICAgIHNyYyArPSBz dHJpZGU7Cj4gPj4gKyAgICB9Cj4gPj4gKyAgICBjcmMgPSBhdl9ic3dhcDE2KGNyYyk7Cj4gPj4g Kwo+ID4+ICsgICAgaWYgKG1lbWNtcCgmY3JjLCBleHBlY3RlZCwgc2l6ZW9mKHVpbnQxNl90KSkp Cj4gPgo+ID4gVGhpcyBzZWVtcyBlbmRpYW4tZGVwZW5kZW50IChhcyBhcmUgdGhlIG90aGVyIGNo ZWNrcykuIFdoeSBkb24ndCB5b3UKPiA+IHNpbXBseSBwYXNzIHRoZSBwcm9wZXIgQ1JDIGFzIHVp bnQxNl90L3VpbnQzMl90IHBhcmFtZXRlcj8KPiA+Cj4gPj4gKyAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7Cj4gPj4gKwo+ID4+ICsgICAgcmV0dXJuIDA7Cj4gPj4gK30KPiA+PiAr Cj4gPj4gKyNkZWZpbmUgQ0FMX0NIRUNLU1VNKHBpeGVsKSAoY2hlY2tzdW0gKyAoKHBpeGVsKSBe IHhvcl9tYXNrKSkKPiA+PiArc3RhdGljIGludCB2ZXJpZnlfcGxhbmVfY2hlY2tzdW0oY29uc3Qg dWludDhfdCAqc3JjLCBjb25zdCBpbnQgdywKPiBjb25zdCBpbnQgaCwgY29uc3QgaW50IHN0cmlk ZSwgY29uc3QgaW50IHBzLAo+ID4+ICsgICAgY29uc3QgdWludDhfdCAqZXhwZWN0ZWQpCj4gPj4g K3sKPiA+PiArICAgIHVpbnQzMl90IGNoZWNrc3VtID0gMDsKPiA+PiArCj4gPj4gKyAgICBmb3Ig KGludCB5ID0gMDsgeSA8IGg7IHkrKykgewo+ID4+ICsgICAgICAgIGZvciAoaW50IHggPSAwOyB4 IDwgdzsgeCsrKSB7Cj4gPj4gKyAgICAgICAgICAgIGNvbnN0IGludCB4b3JfbWFzayA9ICh4ICYg MHhGRikgXiAoeSAmIDB4RkYpIF4gKHggPj4gOCkgXgo+ICh5ID4+IDgpOwo+ID4+ICsgICAgICAg ICAgICBjaGVja3N1bSA9IENBTF9DSEVDS1NVTShzcmNbeCA8PCBwc10pOwo+ID4+ICsgICAgICAg ICAgICBpZiAocHMpCj4gPj4gKyAgICAgICAgICAgICAgICBjaGVja3N1bSA9IENBTF9DSEVDS1NV TShzcmNbKHggPDwgcHMpICsgMV0pOwo+ID4KPiA+IFdoeSBkb24ndCB5b3UgdXNlIGNoZWNrc3Vt ICs9IGluc3RlYWQgb2YgdXNpbmcgY2hlY2tzdW0gaW4gdGhlCj4gPiBDQUxfQ0hFQ0tTVU0gbWFj cm8gaW4gYSBoYXJkY29kZWQgbWFubmVyPwo+ID4KPiA+PiArICAgICAgICB9Cj4gPj4gKyAgICAg ICAgc3JjICs9IHN0cmlkZTsKPiA+PiArICAgIH0KPiA+PiArCj4gPj4gKyAgICBpZiAoY2hlY2tz dW0gIT0gKih1aW50MzJfdCopZXhwZWN0ZWQpCj4gPj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7Cj4gPj4gKwo+ID4+ICsgICAgcmV0dXJuIDA7Cj4gPj4gK30KPiA+PiArCj4g Pj4gK3N0YXRpYyBjb25zdCB1aW50OF90ICpnZXRfcGxhbmVfaGFzaChjb25zdCBIMjc0U0VJUGlj dHVyZUhhc2ggKmgsCj4gY29uc3QgaW50IHBsYW5lKQo+ID4+ICt7Cj4gPj4gKyAgICBpZiAoIWgt Pmhhc2hfdHlwZSkKPiA+PiArICAgICAgICByZXR1cm4gaC0+bWQ1W3BsYW5lXTsKPiA+PiArICAg IGlmIChoLT5oYXNoX3R5cGUgPT0gMSkKPiA+PiArICAgICAgICByZXR1cm4gKHVpbnQ4X3QqKSZo LT5jcmNbcGxhbmVdOwo+ID4+ICsgICAgcmV0dXJuICh1aW50OF90KikmaC0+Y2hlY2tzdW1bcGxh bmVdOwo+ID4+ICt9Cj4gPgo+ID4gVGhpcyBmdW5jdGlvbiBzZWVtcyBjb21wbGV0ZWx5IHVzZWxl c3M7IHlvdSBzaG91bGQgYmV0dGVyIHBhc3MgdGhlCj4gPiBwcm9wZXIgZXhwZWN0ZWQgdmFsdWUg dG8gdGhlIGZ1bmN0aW9ucyBkaXJlY3RseSAoYnkgdmFsdWUgZm9yIG5vbi1tZDUpLgo+ID4KPiA+ PiArCj4gPj4gK2VudW0gewo+ID4+ICsgICAgSEFTSF9NRDVTVU0sCj4gPj4gKyAgICBIQVNIX0NS QywKPiA+PiArICAgIEhBU0hfQ0hFQ0tTVU0sCj4gPj4gKyAgICBIQVNIX0xBU1QgPSBIQVNIX0NI RUNLU1VNLAo+ID4+ICt9Owo+ID4+ICsKPiA+PiArc3RydWN0IEgyNzRIYXNoQ29udGV4dCB7Cj4g Pj4gKyAgICBpbnQgdHlwZTsKPiA+PiArICAgIHN0cnVjdCBBVk1ENSAqY3R4Owo+ID4+ICt9Owo+ ID4+ICsKPiA+PiAraW50IGZmX2gyNzRfaGFzaF9mcmVlcChIMjc0SGFzaENvbnRleHQgKipjdHgp Cj4gPj4gK3sKPiA+PiArICAgIGlmIChjdHggJiYgKmN0eCkgewo+ID4KPiA+IERvbid0IGNoZWNr IGZvciBjdHguIFBhc3NpbmcgYSBOVUxMIHRvIGEgZnJlZXAtZnVuY3Rpb24gaXMgaW5zYW5lLgo+ ID4KPiA+PiArICAgICAgICBIMjc0SGFzaENvbnRleHQgKmMgPSAqY3R4Owo+ID4+ICsgICAgICAg IGlmIChjLT5jdHgpCj4gPj4gKyAgICAgICAgICAgIGF2X2ZyZWUoYy0+Y3R4KTsKPiA+PiArICAg ICAgICBhdl9mcmVlcChjdHgpOwo+ID4+ICsgICAgfQo+ID4+ICsgICAgcmV0dXJuIDA7Cj4gPgo+ ID4gV2h5IGlzIHRoaXMgZnVuY3Rpb24gcmV0dXJuaW5nIGFueXRoaW5nPwo+ID4KPiA+PiArfQo+ ID4+ICsKPiA+PiAraW50IGZmX2gyNzRfaGFzaF9pbml0KEgyNzRIYXNoQ29udGV4dCAqKmN0eCwg Y29uc3QgaW50IHR5cGUpCj4gPj4gK3sKPiA+PiArICAgIEgyNzRIYXNoQ29udGV4dCAqYzsKPiA+ PiArCj4gPj4gKyAgICBpZiAodHlwZSA+IEhBU0hfTEFTVCB8fCAhY3R4KQo+ID4+ICsgICAgICAg IHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gPj4gKwo+ID4+ICsgICAgYyA9ICpjdHg7Cj4gPj4g KyAgICBpZiAoYykgewo+ID4+ICsgICAgICAgIGlmIChjLT50eXBlICE9IHR5cGUpIHsKPiA+PiAr ICAgICAgICAgICAgaWYgKGMtPnR5cGUgPT0gSEFTSF9NRDVTVU0pCj4gPj4gKyAgICAgICAgICAg ICAgICBhdl9mcmVlcCgmYy0+Y3R4KTsKPiA+PiArICAgICAgICAgICAgYy0+dHlwZSA9IHR5cGU7 Cj4gPj4gKyAgICAgICAgfQo+ID4+ICsgICAgfSBlbHNlIHsKPiA+PiArICAgICAgICAqY3R4ID0g YyA9IGF2X21hbGxvY3ooc2l6ZW9mKEgyNzRIYXNoQ29udGV4dCkpOwo+ID4KPiA+IFdoeSBpcyB0 aGlzIHNlcGFyYXRlbHkgYWxsb2NhdGVkPwo+ID4KPiA+PiArICAgICAgICBpZiAoIWMpCj4gPj4g KyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPj4gKyAgICAgICAgYy0+dHlw ZSA9IHR5cGU7Cj4gPj4gKyAgICB9Cj4gPj4gKwo+ID4+ICsgICAgaWYgKHR5cGUgPT0gSEFTSF9N RDVTVU0gJiYgIWMtPmN0eCkgewo+ID4+ICsgICAgICAgIGMtPmN0eCA9IGF2X21kNV9hbGxvYygp Owo+ID4+ICsgICAgICAgIGlmICghYy0+Y3R4KQo+ID4+ICsgICAgICAgICAgICByZXR1cm4gQVZF UlJPUihFTk9NRU0pOwo+ID4+ICsgICAgfQo+ID4+ICsKPiA+PiArICAgIHJldHVybiAwOwo+ID4+ ICt9Cj4gPj4gKwo+ID4+ICtpbnQgZmZfaDI3NF9oYXNoX3ZlcmlmeShIMjc0SGFzaENvbnRleHQg KmMsIGNvbnN0IEgyNzRTRUlQaWN0dXJlSGFzaAo+ICpoYXNoLAo+ID4+ICsgICAgY29uc3QgQVZG cmFtZSAqZnJhbWUsIGNvbnN0IGludCBjb2RlZF93aWR0aCwgY29uc3QgaW50Cj4gY29kZWRfaGVp Z2h0KQo+ID4+ICt7Cj4gPj4gKyAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmRlc2M7Cj4g Pj4gKyAgICBpbnQgZXJyID0gMDsKPiA+PiArCj4gPj4gKyAgICBpZiAoIWMgfHwgIWhhc2ggfHwg IWZyYW1lKQo+ID4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gPj4gKwo+ID4+ ICsgICAgaWYgKGMtPnR5cGUgIT0gaGFzaC0+aGFzaF90eXBlKQo+ID4+ICsgICAgICAgIHJldHVy biBBVkVSUk9SKEVJTlZBTCk7Cj4gPj4gKwo+ID4+ICsgICAgZGVzYyA9IGF2X3BpeF9mbXRfZGVz Y19nZXQoZnJhbWUtPmZvcm1hdCk7Cj4gPj4gKyAgICBpZiAoIWRlc2MpCj4gPj4gKyAgICAgICAg cmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPiA+PiArCj4gPj4gKyAgICBmb3IgKGludCBpID0gMDsg aSA8IGRlc2MtPm5iX2NvbXBvbmVudHM7IGkrKykgewo+ID4+ICsgICAgICAgIGNvbnN0IGludCB3 ICAgICAgICAgICAgID0gaSA/IChjb2RlZF93aWR0aCAgPj4KPiBkZXNjLT5sb2cyX2Nocm9tYV93 KSA6IGNvZGVkX3dpZHRoOwo+ID4+ICsgICAgICAgIGNvbnN0IGludCBoICAgICAgICAgICAgID0g aSA/IChjb2RlZF9oZWlnaHQgPj4KPiBkZXNjLT5sb2cyX2Nocm9tYV9oKSA6IGNvZGVkX2hlaWdo dDsKPiA+PiArICAgICAgICBjb25zdCBpbnQgcHMgICAgICAgICAgICA9IGRlc2MtPmNvbXBbaV0u c3RlcCAtIDE7Cj4gPj4gKyAgICAgICAgY29uc3QgdWludDhfdCAqZXhwZWN0ZWQgPSBnZXRfcGxh bmVfaGFzaChoYXNoLCBpKTsKPiA+PiArICAgICAgICBjb25zdCB1aW50OF90ICpzcmMgICAgICA9 IGZyYW1lLT5kYXRhW2ldOwo+ID4+ICsgICAgICAgIGNvbnN0IGludCBzdHJpZGUgICAgICAgID0g ZnJhbWUtPmxpbmVzaXplW2ldOwo+ID4+ICsKPiA+PiArICAgICAgICBpZiAoYy0+dHlwZSA9PSBI QVNIX01ENVNVTSkKPiA+PiArICAgICAgICAgICAgZXJyID0gdmVyaWZ5X3BsYW5lX21kNShjLT5j dHgsIHNyYywgdyA8PCBwcywgaCwgc3RyaWRlLAo+IGV4cGVjdGVkKTsKPiA+PiArICAgICAgICBl bHNlIGlmIChjLT50eXBlID09IEhBU0hfQ1JDKQo+ID4+ICsgICAgICAgICAgICBlcnIgPSB2ZXJp ZnlfcGxhbmVfY3JjKHNyYywgdyA8PCBwcywgaCwgc3RyaWRlLCBleHBlY3RlZCk7Cj4gPj4gKyAg ICAgICAgZWxzZSBpZiAoYy0+dHlwZSA9PSBIQVNIX0NIRUNLU1VNKQo+ID4+ICsgICAgICAgICAg ICBlcnIgPSB2ZXJpZnlfcGxhbmVfY2hlY2tzdW0oc3JjLCB3LCBoLCBzdHJpZGUsIHBzLAo+IGV4 cGVjdGVkKTsKPiA+PiArICAgICAgICBpZiAoZXJyIDwgMCkKPiA+PiArICAgICAgICAgICAgZ290 byBmYWlsOwo+ID4+ICsgICAgfQo+ID4+ICsKPiA+PiArZmFpbDoKPiA+PiArICAgIHJldHVybiBl cnI7Cj4gPj4gK30KPiA+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oMjc0LmggYi9saWJhdmNv ZGVjL2gyNzQuaAo+ID4+IGluZGV4IGUxODAzZWRhZjMuLmUyYmIxYWVjNTUgMTAwNjQ0Cj4gPj4g LS0tIGEvbGliYXZjb2RlYy9oMjc0LmgKPiA+PiArKysgYi9saWJhdmNvZGVjL2gyNzQuaAo+ID4+ IEBAIC02NCw2ICs2NCw4IEBAIGludCBmZl9oMjc0X2FwcGx5X2ZpbG1fZ3JhaW4oQVZGcmFtZSAq b3V0LCBjb25zdAo+IEFWRnJhbWUgKmluLAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEgyNzRGaWxtR3JhaW5EYXRhYmFzZSAqZGIsCj4gPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgQVZGaWxtR3JhaW5QYXJhbXMgKnBhcmFtcyk7Cj4gPj4KPiA+PiArdHlw ZWRlZiBzdHJ1Y3QgSDI3NEhhc2hDb250ZXh0IEgyNzRIYXNoQ29udGV4dDsKPiA+PiArCj4gPj4g IHR5cGVkZWYgc3RydWN0IEgyNzRTRUlQaWN0dXJlSGFzaCB7Cj4gPj4gICAgICBpbnQgcHJlc2Vu dDsKPiA+PiAgICAgIHVuaW9uIHsKPiA+PiBAQCAtNzQsNCArNzYsOSBAQCB0eXBlZGVmIHN0cnVj dCBIMjc0U0VJUGljdHVyZUhhc2ggewo+ID4+ICAgICAgdWludDhfdCBoYXNoX3R5cGU7Cj4gPj4g IH0gSDI3NFNFSVBpY3R1cmVIYXNoOwo+ID4+Cj4gPj4gK2ludCBmZl9oMjc0X2hhc2hfaW5pdChI Mjc0SGFzaENvbnRleHQgKipjLCBpbnQgdHlwZSk7Cj4gPj4gK2ludCBmZl9oMjc0X2hhc2hfdmVy aWZ5KEgyNzRIYXNoQ29udGV4dCAqYywgY29uc3QgSDI3NFNFSVBpY3R1cmVIYXNoCj4gKmhhc2gs Cj4gPj4gKyAgICBjb25zdCBBVkZyYW1lICpmcmFtZSwgaW50IGNvZGVkX3dpZHRoLCBpbnQgY29k ZWRfaGVpZ2h0KTsKPiA+PiAraW50IGZmX2gyNzRfaGFzaF9mcmVlcChIMjc0SGFzaENvbnRleHQg KipjKTsKPiA+PiArCj4gPj4gICNlbmRpZiAvKiBBVkNPREVDX0gyNzRfSCAqLwo+Cj4gSGkgQW5k cmVhcywKPgo+IFRoYW5rcyBmb3IgeW91ciByZXZpZXdzISBUaGV5IGhlbHAgYSBsb3QuIEkndmUg dXBkYXRlZCB0aGUgdjIKPiBwYXRjaHNldCBiYXNlZCBvbiB5b3VyIGNvbW1lbnRzLiBXb3VsZCB5 b3UgaGVscCB0byByZXZpZXcgdGhlCj4gdjIgcGF0Y2hlcz8KPgpIaSBBbmRyZWFzLApUaGFuayB5 b3UgZm9yIHRoZSByZXZpZXcuCgpIaSBBbmRyZWFzIGFuZCBhbGwsCkkgd2lsbCBwdXNoIHRoaXMg bmV4dCB3ZWVrIHVubGVzcyB0aGVyZSBhcmUgYW55IG9iamVjdGlvbnMuCgpUaGFuayB5b3UuCgo+ Cj4gVGhhbmtzLAo+IEppYW5odWEKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxA ZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k ZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZt cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWct ZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVn Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0 IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0 aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==