From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id F0C1A44B02 for ; Mon, 14 Jul 2025 04:43:26 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 234AE68E67F; Mon, 14 Jul 2025 07:43:23 +0300 (EEST) Received: from mail-vk1-f180.google.com (mail-vk1-f180.google.com [209.85.221.180]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id EFF5168E669 for ; Mon, 14 Jul 2025 07:43:16 +0300 (EEST) Received: by mail-vk1-f180.google.com with SMTP id 71dfb90a1353d-52b2290e292so1706666e0c.3 for ; Sun, 13 Jul 2025 21:43:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752468195; x=1753072995; darn=ffmpeg.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=JLf7pTMHoK3/3un8PAOKmwDntriJB7i2aKrO+grEdJU=; b=WguqhCCY1Gpi7PbPDbZiVCs8t4slomzvVaQZb8MZuO1Cdq113KUcfTLbs8IWDLfMkY Vhq3Dk/njNrZE8rMpjjOZA2nnUp6U6ye3E9OYL7EPwccsEq1VcV9sQqhM8gUhIsLEVpv 5suSkUVepaGQJV/cU7shtcm3QIqBdyuBHRgAZvC9F7BaKs6TrGsHT1w+/NQaLQ0QoL6H orhfsOHrWTL5wKGHHZA+QHUH4qZ7JMsetbSq3/3jJ3ntXyD7gNxpbyH8Lu77GobmlMit XHHlGC9vtA+u6Xcf36NBj54DuFExSODondR69ZayrlNBM1kJlpYetIwSoL8FSksQ++uU nGlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752468195; x=1753072995; 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=JLf7pTMHoK3/3un8PAOKmwDntriJB7i2aKrO+grEdJU=; b=Rvr+IO6eR0FV/e7U0rAjm4+nSsxWDxclWdtNT2HhOuLymShvMpTqjNS41hCo1IGrD+ 7qj5gyDJAEVAETU7LDV/vL1fSDz/RtC6tAQZgywCu1IifpYb91pQA78auxL/jxPpyXHq yy8ATOm8o0FZFwKDw3IoP5muN/iXNNSFLUqIwY8gr9Xn8mPIsfCn5F6mbCvYhTwhEJID Ceb5d61EEJa0RtlWhizG/zNLOX79xkijn2BZs7WGWJ5BDLeiSRY7sEamoDH1K8qQOHkl ZBwvePoBz3plojaybft390PZCSSaUc9H+ke126z8GRrNb8iz4n2s+iu89EDZt4eJTak6 vQzQ== X-Gm-Message-State: AOJu0Ywd7oz/dcX8trikiL8C4m0cdvomCnZMR9d2U9zmjudQnqhgtRIY 92zIuVC5fuBmaOW8xXjRsbouwQ2MmC7sGUWTLolpn9h0auUHiRiTqaXKNBeemaW3/ISwBOewMur mBqSk/IksTTfc88703n1J2q9XX0gPmeo= X-Gm-Gg: ASbGnct6KLVm0lz147ltWTHPgE8g3Fz88HLRJ/y4mgnM396RhLPirhKgvezaedqEdjh Ym7eg1nQ9JrN4xqKZGlkxv49ACWxcJCVTsB7KFCJJwyWrQIyUSoUpEt0qfv7d6a8aiY978d7li8 5e02HqKFVwl5wg3IZYpePRE9DmmrO/siJp+66PyYHnAfo+Jv1o/h2+9xKd8eebKlhIgyrYe45Es uGkDOMU X-Google-Smtp-Source: AGHT+IFyhOE1y35y91rld/YNHSfsYP207jnqowf1+Im2dvDXy1mmzOhi3ZdJ84ARVTpF427CFVKTCFkzGN+Fe/FuoP8= X-Received: by 2002:a05:6122:507:b0:530:6bcb:c97f with SMTP id 71dfb90a1353d-535f47fb75cmr5981246e0c.8.1752468195191; Sun, 13 Jul 2025 21:43:15 -0700 (PDT) MIME-Version: 1.0 References: <20250712104010.92291-1-post@frankplowman.com> In-Reply-To: <20250712104010.92291-1-post@frankplowman.com> From: Nuo Mi Date: Mon, 14 Jul 2025 12:43:04 +0800 X-Gm-Features: Ac12FXwGQ2u4Vi_s_kJxyKVMvaXXinPDn1fzOEh8Vn-fIOKjZsOImgF-gkZ3fhs Message-ID: To: Frank Plowman X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] lavc/vvc: Add max parameter to kth_order_egk_decode 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 Cc: toqsxw@outlook.com, 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" Archived-At: List-Archive: List-Post: SGkgRnJhbmssCnRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoCk9uIFNhdCwgSnVsIDEyLCAyMDI1IGF0 IDY6NDHigK9QTSBGcmFuayBQbG93bWFuIDxwb3N0QGZyYW5rcGxvd21hbi5jb20+IHdyb3RlOgoK PiBQcmlvciB0byB0aGlzIHBhdGNoLCBrdGhfb3JkZXJfZWdrX2RlY29kZSBjb3VsZCByZWFkIGFy Yml0cmFyaWx5Cj4gbGFyZ2UgdmFsdWVzIHdoaWNoIHRoZW4gb3ZlcmZsb3dlZCBhbmQgY2F1c2Vk IHZhcmlvdXMgaXNzdWVzLgo+IFBhdGNoIGZpeGVzIHRoaXMgYnkgbWFraW5nIGt0aF9vcmRlcl9l Z2tfZGVjb2RlIGZhbGxpYWJsZSwKPiByZXF1aXJpbmcgdGhlIGNhbGxlciB0byBzcGVjaWZ5IGFu IHVwcGVyIGJvdW5kIGFuZCByZXR1cm5pbmcgYW4KPiBlcnJvciBpZiB0aGUgcmVhZCB2YWx1ZSB3 b3VsZCBleGNlZWQgdGhhdCBib3VuZC4KPgo+IFRoaXMgcGF0Y2ggcmVzb2x2ZXMgdGhlIHNhbWUg aXNzdWUgYXMKPiBlYjUyMjUxYzBhYjAyNWI2YjQwYjI4OTk0YmM5ZGM2MTY4MTNiMTkwLCBidXQg SSB0aGluayB0aGlzIGlzIHRoZSBwcm9wZXIKPiBmaXggYXMgaXQgYWxzbyBhZGRyZXNzZXMgaXNz dWVzIHdpdGggc3ludGF4IGVsZW1lbnRzIGJlc2lkZXMKPiBmZl92dmNfbnVtX3NpZ25hbGxlZF9w YWxldHRlX2VudHJpZXMuCj4KPiBQYXRjaCBhbHNvIGluY2x1ZGVzIGEgbWlub3IgZml4IGluIGhs c19wYWxldHRlX2NvZGluZywgd2hlcmUgdGhlCj4gZXJyb3IgY29kZSByZXR1cm5lZCBieSBwYWxl dHRlX3N1YmJsb2NrX2RhdGEgd2FzIHByZXZpb3VzbHkgdW5jaGVja2VkLgo+Ckl0J3MgYmV0dGVy IHRvIHByb3ZpZGUgYSBzZXBhcmF0ZSBwYXRjaCBmb3IgdGhpcywgaXQgd2lsbCBoZWxwIHdpdGgK YmlzZWN0aW5nIGlzc3VlcyBtb3JlIGVhc2lseS4KCj4KPiBTaWduZWQtb2ZmLWJ5OiBGcmFuayBQ bG93bWFuIDxwb3N0QGZyYW5rcGxvd21hbi5jb20+Cj4gLS0tCj4gSSB3b3VsZCBhcHByZWNpYXRl IGEgc2Vjb25kIHBhaXIgb2YgZXllcyBvbiBteSBjaGFuZ2VzIHRvCj4ga3RoX29yZGVyX2Vna19k ZWNvZGUsIHBhcnRpY3VsYXJseSB3cnQgdGhlIGJlaGF2aW91ciBjb25jZXJuaW5nCj4gcG90ZW50 aWFsIG92ZXJmbG93cy4gIE15IHVuZGVyc3RhbmRpbmcgd2hlbiB3cml0aW5nIHRoaXMgd2FzIHRo YXQKPiBvdmVyZmxvd3MgY2FuIG9ubHkgcG90ZW50aWFsbHkgb2NjdXIgd2hlbiByZWFkaW5nIHRo ZSBwcmVmaXgsIGhlbmNlIHRoZQo+IHBlci1wcmVmaXggYml0IGNoZWNrIHRoZXJlLiAgVGhlbiBm b3IgdGhlIHN1ZmZpeCBubyBvdmVyZmxvdyBjYW4gb2NjdXIKPiBzbyB3ZSBqdXN0IGNoZWNrIHRo ZSBmaW5hbCB2YWx1ZS4KPgpUaGUgc3VmZml4IGludm9sdmVzIGEgc2hpZnQgb3BlcmF0aW9uLCBz byBvdmVyZmxvdyBpcyB0aGVvcmV0aWNhbGx5CnBvc3NpYmxlLiBIb3dldmVyLCBzaW5jZSB3ZSBw cm92aWRlIGEgbWF4LCBvdmVyZmxvdyB3aWxsIG5vdCBvY2N1ci4KCj4gLS0tCj4gIGxpYmF2Y29k ZWMvdnZjL2NhYmFjLmMgfCAyNyArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KPiAgbGliYXZj b2RlYy92dmMvY2FiYWMuaCB8ICA2ICsrKy0tLQo+ICBsaWJhdmNvZGVjL3Z2Yy9jdHUuYyAgIHwg MzkgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gIDMgZmlsZXMgY2hh bmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy92dmMvY2FiYWMuYyBiL2xpYmF2Y29kZWMvdnZjL2NhYmFjLmMKPiBpbmRleCA2 ODQ3Y2U1OWFmLi5lMGNjODJjM2UxIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvdnZjL2NhYmFj LmMKPiArKysgYi9saWJhdmNvZGVjL3Z2Yy9jYWJhYy5jCj4gQEAgLTkyOSwyNCArOTI5LDI5IEBA IHN0YXRpYyBpbnQgdHJ1bmNhdGVkX2JpbmFyeV9kZWNvZGUoVlZDTG9jYWxDb250ZXh0Cj4gKmxj LCBjb25zdCBpbnQgY19tYXgpCj4gIH0KPgo+ICAvLyA5LjMuMy41IGstdGggb3JkZXIgRXhwIC0g R29sb21iIGJpbmFyaXphdGlvbiBwcm9jZXNzCj4gLXN0YXRpYyBpbnQga3RoX29yZGVyX2Vna19k ZWNvZGUoQ0FCQUNDb250ZXh0ICpjLCBpbnQgaykKPiArc3RhdGljIGludCBrdGhfb3JkZXJfZWdr X2RlY29kZShDQUJBQ0NvbnRleHQgKmMsIGludCAqdmFsdWUsIGludCBrLCBjb25zdAo+IGludCBt YXgpCgpUaGUgcmV0dXJuIHZhbHVlIGlzIG5ldmVyIG5lZ2F0aXZlIHVuZGVyIG5vcm1hbCBjb25k aXRpb25zLCBzbyB3ZSBjYW4gdXNlIGEKbmVnYXRpdmUgdmFsdWUgdG8gaW5kaWNhdGUgYW4gZXJy b3IuIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXBsaWZ5IHRoZQpmdW5jdGlvbiBzaWduYXR1cmUgYXMg Zm9sbG93czoKc3RhdGljIGludCBrdGhfb3JkZXJfZWdrX2RlY29kZShDQUJBQ0NvbnRleHQgKmMs IGludCBrLCBjb25zdCBpbnQgbWF4KQoKPgoKIHsKPiAgICAgIGludCBiaXQgICAgPSAxOwo+IC0g ICAgaW50IHZhbHVlICA9IDA7Cj4gICAgICBpbnQgc3ltYm9sID0gMDsKPiArICAgICp2YWx1ZSAg ICAgPSAwOwo+Cj4gICAgICB3aGlsZSAoYml0KSB7Cj4gICAgICAgICAgYml0ID0gZ2V0X2NhYmFj X2J5cGFzcyhjKTsKPiAtICAgICAgICB2YWx1ZSArPSBiaXQgPDwgaysrOwo+ICsgICAgICAgIGlm IChtYXggLSAqdmFsdWUgPCAoYml0IDw8IGspKQo+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJP Ul9JTlZBTElEREFUQTsKPiArICAgICAgICAqdmFsdWUgKz0gYml0IDw8IGsrKzsKPiAgICAgIH0K Pgo+ICAgICAgaWYgKC0taykgewo+ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgazsgaSsr KQo+ICAgICAgICAgICAgICBzeW1ib2wgPSAoc3ltYm9sIDw8IDEpIHwgZ2V0X2NhYmFjX2J5cGFz cyhjKTsKPiAtICAgICAgICB2YWx1ZSArPSBzeW1ib2w7Cj4gKyAgICAgICAgKnZhbHVlICs9IHN5 bWJvbDsKPiAgICAgIH0KPgo+IC0gICAgcmV0dXJuIHZhbHVlOwo+ICsgICAgaWYgKCp2YWx1ZSA+ IG1heCkKPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiArCj4gKyAgICBy ZXR1cm4gMDsKPiAgfQo+Cj4gIC8vIDkuMy4zLjYgTGltaXRlZCBrLXRoIG9yZGVyIEV4cC1Hb2xv bWIgYmluYXJpemF0aW9uIHByb2Nlc3MKPiBAQCAtMTM3NywxNCArMTM4MiwxNCBAQCBpbnQgZmZf dnZjX2ludHJhX2Nocm9tYV9wcmVkX21vZGUoVlZDTG9jYWxDb250ZXh0Cj4gKmxjKQo+ICAgICAg cmV0dXJuIChnZXRfY2FiYWNfYnlwYXNzKCZsYy0+ZXAtPmNjKSA8PCAxKSB8Cj4gZ2V0X2NhYmFj X2J5cGFzcygmbGMtPmVwLT5jYyk7Cj4gIH0KPgo+IC1pbnQgZmZfdnZjX3BhbGV0dGVfcHJlZGlj dG9yX3J1bihWVkNMb2NhbENvbnRleHQgKmxjKQo+ICtpbnQgZmZfdnZjX3BhbGV0dGVfcHJlZGlj dG9yX3J1bihWVkNMb2NhbENvbnRleHQgKmxjLCBpbnQgKnZhbHVlLCBjb25zdAo+IGludCBtYXgp Cj4gIHsKPiAtICAgIHJldHVybiBrdGhfb3JkZXJfZWdrX2RlY29kZSgmbGMtPmVwLT5jYywgMCk7 Cj4gKyAgICByZXR1cm4ga3RoX29yZGVyX2Vna19kZWNvZGUoJmxjLT5lcC0+Y2MsIHZhbHVlLCAw LCBtYXgpOwo+ICB9Cj4KPiAtaW50IGZmX3Z2Y19udW1fc2lnbmFsbGVkX3BhbGV0dGVfZW50cmll cyhWVkNMb2NhbENvbnRleHQgKmxjKQo+ICtpbnQgZmZfdnZjX251bV9zaWduYWxsZWRfcGFsZXR0 ZV9lbnRyaWVzKFZWQ0xvY2FsQ29udGV4dCAqbGMsIGludCAqdmFsdWUsCj4gY29uc3QgaW50IG1h eCkKPiAgewo+IC0gICAgcmV0dXJuIGt0aF9vcmRlcl9lZ2tfZGVjb2RlKCZsYy0+ZXAtPmNjLCAw KTsKPiArICAgIHJldHVybiBrdGhfb3JkZXJfZWdrX2RlY29kZSgmbGMtPmVwLT5jYywgdmFsdWUs IDAsIG1heCk7Cj4gIH0KPgo+ICBpbnQgZmZfdnZjX25ld19wYWxldHRlX2VudHJpZXMoVlZDTG9j YWxDb250ZXh0ICpsYywgY29uc3QgaW50IGJpdF9kZXB0aCkKPiBAQCAtMTQyNCw5ICsxNDI5LDkg QEAgaW50IGZmX3Z2Y19wYWxldHRlX2lkeF9pZGMoVlZDTG9jYWxDb250ZXh0ICpsYywKPiBjb25z dCBpbnQgbWF4X3BhbGV0dGVfaW5kZXgsIGNvbgo+ICAgICAgcmV0dXJuIHRydW5jYXRlZF9iaW5h cnlfZGVjb2RlKGxjLCBtYXhfcGFsZXR0ZV9pbmRleCAtIGFkanVzdCk7Cj4gIH0KPgo+IC1pbnQg ZmZfdnZjX3BhbGV0dGVfZXNjYXBlX3ZhbChWVkNMb2NhbENvbnRleHQgKmxjKQo+ICtpbnQgZmZf dnZjX3BhbGV0dGVfZXNjYXBlX3ZhbChWVkNMb2NhbENvbnRleHQgKmxjLCBpbnQgKnZhbHVlLCBj b25zdCBpbnQKPiBtYXgpCj4gIHsKPiAtICAgIHJldHVybiBrdGhfb3JkZXJfZWdrX2RlY29kZSgm bGMtPmVwLT5jYywgNSk7Cj4gKyAgICByZXR1cm4ga3RoX29yZGVyX2Vna19kZWNvZGUoJmxjLT5l cC0+Y2MsIHZhbHVlLCA1LCBtYXgpOwo+ICB9Cj4KPiAgaW50IGZmX3Z2Y19nZW5lcmFsX21lcmdl X2ZsYWcoVlZDTG9jYWxDb250ZXh0ICpsYykKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92dmMv Y2FiYWMuaCBiL2xpYmF2Y29kZWMvdnZjL2NhYmFjLmgKPiBpbmRleCA5NzI4OTAzMTdlLi5hMGJl YTRhNDI2IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvdnZjL2NhYmFjLmgKPiArKysgYi9saWJh dmNvZGVjL3Z2Yy9jYWJhYy5oCj4gQEAgLTgxLDE1ICs4MSwxNSBAQCBpbnQgZmZfdnZjX2ludHJh X2x1bWFfbXBtX3JlbWFpbmRlcihWVkNMb2NhbENvbnRleHQKPiAqbGMpOwo+ICBpbnQgZmZfdnZj X2NjbG1fbW9kZV9mbGFnKFZWQ0xvY2FsQ29udGV4dCAqbGMpOwo+ICBpbnQgZmZfdnZjX2NjbG1f bW9kZV9pZHgoVlZDTG9jYWxDb250ZXh0ICpsYyk7Cj4gIGludCBmZl92dmNfaW50cmFfY2hyb21h X3ByZWRfbW9kZShWVkNMb2NhbENvbnRleHQgKmxjKTsKPiAtaW50IGZmX3Z2Y19wYWxldHRlX3By ZWRpY3Rvcl9ydW4oVlZDTG9jYWxDb250ZXh0ICpsYyk7Cj4gLWludCBmZl92dmNfbnVtX3NpZ25h bGxlZF9wYWxldHRlX2VudHJpZXMoVlZDTG9jYWxDb250ZXh0ICpsYyk7Cj4gK2ludCBmZl92dmNf cGFsZXR0ZV9wcmVkaWN0b3JfcnVuKFZWQ0xvY2FsQ29udGV4dCAqbGMsIGludCAqdmFsdWUsIGNv bnN0Cj4gaW50IG1heCk7Cj4gK2ludCBmZl92dmNfbnVtX3NpZ25hbGxlZF9wYWxldHRlX2VudHJp ZXMoVlZDTG9jYWxDb250ZXh0ICpsYywgaW50ICp2YWx1ZSwKPiBjb25zdCBpbnQgbWF4KTsKPiAg aW50IGZmX3Z2Y19uZXdfcGFsZXR0ZV9lbnRyaWVzKFZWQ0xvY2FsQ29udGV4dCAqbGMsIGludCBi aXRfZHBldGgpOwo+ICBib29sIGZmX3Z2Y19wYWxldHRlX2VzY2FwZV92YWxfcHJlc2VudF9mbGFn KFZWQ0xvY2FsQ29udGV4dCAqbGMpOwo+ICBib29sIGZmX3Z2Y19wYWxldHRlX3RyYW5zcG9zZV9m bGFnKFZWQ0xvY2FsQ29udGV4dCAqbGMpOwo+ICBib29sIGZmX3Z2Y19ydW5fY29weV9mbGFnKFZW Q0xvY2FsQ29udGV4dCAqbGMsIGludCBwcmV2X3J1bl90eXBlLCBpbnQKPiBwcmV2X3J1bl9wb3Np dGlvbiwgaW50IGN1cl9wb3MpOwo+ICBib29sIGZmX3Z2Y19jb3B5X2Fib3ZlX3BhbGV0dGVfaW5k aWNlc19mbGFnKFZWQ0xvY2FsQ29udGV4dCAqbGMpOwo+ICBpbnQgZmZfdnZjX3BhbGV0dGVfaWR4 X2lkYyhWVkNMb2NhbENvbnRleHQgKmxjLCBpbnQgbWF4X3BhbGV0dGVfaW5kZXgsCj4gYm9vbCBh ZGp1c3QpOwo+IC1pbnQgZmZfdnZjX3BhbGV0dGVfZXNjYXBlX3ZhbChWVkNMb2NhbENvbnRleHQg KmxjKTsKPiAraW50IGZmX3Z2Y19wYWxldHRlX2VzY2FwZV92YWwoVlZDTG9jYWxDb250ZXh0ICps YywgaW50ICp2YWx1ZSwgY29uc3QgaW50Cj4gbWF4KTsKPgo+ICAvL2ludGVyCj4gIGludCBmZl92 dmNfZ2VuZXJhbF9tZXJnZV9mbGFnKFZWQ0xvY2FsQ29udGV4dCAqbGMpOwo+IGRpZmYgLS1naXQg YS9saWJhdmNvZGVjL3Z2Yy9jdHUuYyBiL2xpYmF2Y29kZWMvdnZjL2N0dS5jCj4gaW5kZXggY2Y3 ZWRjY2I4Yi4uYjBmZTM2ZTgxNyAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3Z2Yy9jdHUuYwo+ ICsrKyBiL2xpYmF2Y29kZWMvdnZjL2N0dS5jCj4gQEAgLTE4NTAsNiArMTg1MCw3IEBAIHN0YXRp YyBpbnQgcGFsZXR0ZV9wcmVkaWN0ZWQoVlZDTG9jYWxDb250ZXh0ICpsYywKPiBjb25zdCBib29s IGxvY2FsX2R1YWxfdHJlZSwgaW4KPiAgewo+ICAgICAgQ29kaW5nVW5pdCAgKmN1ICA9IGxjLT5j dTsKPiAgICAgIGludCBuYl9wcmVkaWN0ZWQgPSAwOwo+ICsgICAgaW50IHJldDsKPgo+ICAgICAg aWYgKGxvY2FsX2R1YWxfdHJlZSkgewo+ICAgICAgICAgIHN0YXJ0ID0gTFVNQTsKPiBAQCAtMTg1 NywxNiArMTg1OCwxNyBAQCBzdGF0aWMgaW50IHBhbGV0dGVfcHJlZGljdGVkKFZWQ0xvY2FsQ29u dGV4dCAqbGMsCj4gY29uc3QgYm9vbCBsb2NhbF9kdWFsX3RyZWUsIGluCj4gICAgICB9Cj4KPiAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcHJlZGljdG9yX3NpemUgJiYgbmJfcHJlZGljdGVkIDwg bWF4X2VudHJpZXM7Cj4gaSsrKSB7Cj4gLSAgICAgICAgY29uc3QgaW50IHJ1biA9IGZmX3Z2Y19w YWxldHRlX3ByZWRpY3Rvcl9ydW4obGMpOwo+ICsgICAgICAgIGludCBydW47Cj4gKyAgICAgICAg cmV0ID0gZmZfdnZjX3BhbGV0dGVfcHJlZGljdG9yX3J1bihsYywgJnJ1biwgcHJlZGljdG9yX3Np emUgLSBpKTsKPiArICAgICAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICAgICAgcmV0dXJuIHJl dDsKPiArCj4gICAgICAgICAgaWYgKHJ1biA9PSAxKQo+ICAgICAgICAgICAgICBicmVhazsKPgo+ ICAgICAgICAgIGlmIChydW4gPiAxKQo+ICAgICAgICAgICAgICBpICs9IHJ1biAtIDE7Cj4KPiAt ICAgICAgICBpZiAoaSA+PSBwcmVkaWN0b3Jfc2l6ZSkKPiAtICAgICAgICAgICAgcmV0dXJuIEFW RVJST1JfSU5WQUxJRERBVEE7Cj4gLQo+ICAgICAgICAgIHByZWRpY3Rvcl9yZXVzZWRbaV0gPSB0 cnVlOwo+ICAgICAgICAgIGZvciAoaW50IGMgPSBzdGFydDsgYyA8IGVuZDsgYysrKQo+ICAgICAg ICAgICAgICBjdS0+cGx0W2NdLmVudHJpZXNbbmJfcHJlZGljdGVkXSA9IGxjLT5lcC0+cHBbY10u ZW50cmllc1tpXTsKPiBAQCAtMTg4NSwxMiArMTg4NywxNyBAQCBzdGF0aWMgaW50IHBhbGV0dGVf c2lnbmFsZWQoVlZDTG9jYWxDb250ZXh0ICpsYywKPiBjb25zdCBib29sIGxvY2FsX2R1YWxfdHJl ZSwKPiAgICAgIGNvbnN0IFZWQ1NQUyAqc3BzICAgICAgICAgPSBsYy0+ZmMtPnBzLnNwczsKPiAg ICAgIENvZGluZ1VuaXQgICpjdSAgICAgICAgICAgPSBsYy0+Y3U7Cj4gICAgICBjb25zdCBpbnQg bmJfcHJlZGljdGVkICAgID0gY3UtPnBsdFtzdGFydF0uc2l6ZTsKPiAtICAgIGNvbnN0IGludCBu Yl9zaWduYWxlZCAgICAgPSBuYl9wcmVkaWN0ZWQgPCBtYXhfZW50cmllcyA/Cj4gZmZfdnZjX251 bV9zaWduYWxsZWRfcGFsZXR0ZV9lbnRyaWVzKGxjKSA6IDA7Cj4gLSAgICBjb25zdCBpbnQgc2l6 ZSAgICAgICAgICAgID0gbmJfcHJlZGljdGVkICsgbmJfc2lnbmFsZWQ7Cj4gICAgICBjb25zdCBi b29sIGR1YWxfdHJlZV9sdW1hID0gbG9jYWxfZHVhbF90cmVlICYmIGN1LT50cmVlX3R5cGUgPT0K PiBEVUFMX1RSRUVfTFVNQTsKPiArICAgIGludCBuYl9zaWduYWxlZCwgc2l6ZTsKPgotICAgIGlm IChzaXplID4gbWF4X2VudHJpZXMgfHwgbmJfc2lnbmFsZWQgPCAwKQo+IC0gICAgICAgIHJldHVy biBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ICsgICAgaWYgKG5iX3ByZWRpY3RlZCA8IG1heF9lbnRy aWVzKSB7Cj4gKyAgICAgICAgY29uc3QgaW50IHJldCA9IGZmX3Z2Y19udW1fc2lnbmFsbGVkX3Bh bGV0dGVfZW50cmllcyhsYywKPiAmbmJfc2lnbmFsZWQsIG1heF9lbnRyaWVzIC0gbmJfcHJlZGlj dGVkKTsKPiArICAgICAgICBpZiAocmV0IDwgMCkKPiArICAgICAgICAgICAgcmV0dXJuIHJldDsK PiArICAgIH0gZWxzZQo+ICsgICAgICAgIG5iX3NpZ25hbGVkID0gMDsKPiArCj4gKyAgICBzaXpl ID0gbmJfcHJlZGljdGVkICsgbmJfc2lnbmFsZWQ7Cj4KCgo+ICAgICAgZm9yIChpbnQgYyA9IHN0 YXJ0OyBjIDwgZW5kOyBjKyspIHsKPiAgICAgICAgICBQYWxldHRlICpwbHQgPSBjdS0+cGx0ICsg YzsKPiBAQCAtMjA1MiwxMCArMjA1OSwxMSBAQCBzdGF0aWMgaW50IHBhbGV0dGVfc3ViYmxvY2tf ZGF0YShWVkNMb2NhbENvbnRleHQKPiAqbGMsCj4gICAgICAgICAgICAgIGlmICghKHhjICYgaHMp ICYmICEoeWMgJiB2cykpIHsKPiAgICAgICAgICAgICAgICAgIGNvbnN0IGludCB2ID0gUEFMRVRU RV9JTkRFWCh4YywgeWMpOwo+ICAgICAgICAgICAgICAgICAgaWYgKHYgPT0gZXNjKSB7Cj4gLSAg ICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGNvZWZmID0gZmZfdnZjX3BhbGV0dGVfZXNjYXBl X3ZhbChsYyk7Cj4gLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvZWZmID49ICgxVSA8PCBzcHMt PmJpdF9kZXB0aCkpCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lO VkFMSUREQVRBOwo+IC0gICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBwaXhlbCA9IGF2X2Ns aXBfaW50cDIoUlNISUZUKGNvZWZmICogc2NhbGUsCj4gNiksIHNwcy0+Yml0X2RlcHRoKTsKPiAr ICAgICAgICAgICAgICAgICAgICBpbnQgY29lZmYsIHBpeGVsOwo+ICsgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGludCByZXQgPSBmZl92dmNfcGFsZXR0ZV9lc2NhcGVfdmFsKGxjLCAmY29lZmYs Cj4gKDEgPDwgc3BzLT5iaXRfZGVwdGgpIC0gMSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgaWYg KHJldCA8IDApCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gKyAgICAg ICAgICAgICAgICAgICAgcGl4ZWwgPSBhdl9jbGlwX2ludHAyKFJTSElGVChjb2VmZiAqIHNjYWxl LCA2KSwKPiBzcHMtPmJpdF9kZXB0aCk7Cj4gICAgICAgICAgICAgICAgICAgICAgUEFMRVRURV9T RVRfUElYRUwoeGMsIHljLCBwaXhlbCk7Cj4gICAgICAgICAgICAgICAgICB9IGVsc2Ugewo+ICAg ICAgICAgICAgICAgICAgICAgIFBBTEVUVEVfU0VUX1BJWEVMKHhjLCB5YywgcGx0LT5lbnRyaWVz W3ZdKTsKPiBAQCAtMjExOCw5ICsyMTI2LDEyIEBAIHN0YXRpYyBpbnQgaGxzX3BhbGV0dGVfY29k aW5nKFZWQ0xvY2FsQ29udGV4dCAqbGMsCj4gY29uc3QgVlZDVHJlZVR5cGUgdHJlZV90eXBlKQo+ ICAgICAgcGFsZXR0ZV9xcChsYywgdHJlZV90eXBlLCBlc2NhcGVfcHJlc2VudCk7Cj4KPiAgICAg IGluZGV4WzBdID0gMDsKPiAtICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IChjdS0+Y2Jfd2lkdGgg KiBjdS0+Y2JfaGVpZ2h0IC0gMSkgPj4gNDsgaSsrKQo+IC0gICAgICAgIHBhbGV0dGVfc3ViYmxv Y2tfZGF0YShsYywgbWF4X2luZGV4LCBpLCB0cmFuc3Bvc2UsCj4gKyAgICBmb3IgKGludCBpID0g MDsgaSA8PSAoY3UtPmNiX3dpZHRoICogY3UtPmNiX2hlaWdodCAtIDEpID4+IDQ7IGkrKykgewo+ ICsgICAgICAgIHJldCA9IHBhbGV0dGVfc3ViYmxvY2tfZGF0YShsYywgbWF4X2luZGV4LCBpLCB0 cmFuc3Bvc2UsCj4gICAgICAgICAgICAgIHJ1bl90eXBlLCBpbmRleCwgJnByZXZfcnVuX3Bvcywg JmFkanVzdCk7Cj4gKyAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4gKyAgICB9Cj4KPiAgICAgIHJldHVybiAwOwo+ICB9Cj4gLS0KPiAyLjQ3LjAKPgo+Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZl bCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3Jn L21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGlu ayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1 YmplY3QgInVuc3Vic2NyaWJlIi4K