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 8D86A4C35C for <ffmpegdev@gitmailbox.com>; Sat, 24 May 2025 10:13:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 765B768D988; Sat, 24 May 2025 13:12:59 +0300 (EEST) Received: from mail-vk1-f177.google.com (mail-vk1-f177.google.com [209.85.221.177]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 4B77468D1C1 for <ffmpeg-devel@ffmpeg.org>; Sat, 24 May 2025 13:12:53 +0300 (EEST) Received: by mail-vk1-f177.google.com with SMTP id 71dfb90a1353d-52eec011ff2so214076e0c.1 for <ffmpeg-devel@ffmpeg.org>; Sat, 24 May 2025 03:12:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748081571; x=1748686371; 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=0GL7tb9GIesnIhBCtK634kIUNEID+WVYbRJVlqjJJTg=; b=PYQvn5yReCNRvY2lSBq5FWFiUFD6YY0vhrmJytiXusqk7zobTYMpZGJEVQCQc2lMFZ DkvOloBhuOOf8eD0FZWAlxyvZeTPnzAlawHKFg314pwcIyjDyaOlHrPUI7BqkfoZj+zM Ln0As/ljgPSi+vh3gxMD3e3BdCYy/MoBUcnIGTh/dFC8QyM966sfuJyt6UJ3w9tf9DwS dXWpz7tmTtogtOeW0U84Cxp0yaeI0a/cVtLIPNRZHdZF38mDyP+Q7ZAINAqy4abhXnk4 I1WQ1cPvqVsrq4k5UPoFnQZe2eIsNz2pQRxP0x2lF/1e7ZvTCaS/y+PZHE0tgC6UtgI7 Y3BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748081571; x=1748686371; 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=0GL7tb9GIesnIhBCtK634kIUNEID+WVYbRJVlqjJJTg=; b=V3BrdlYcIrNip19voa4dks1Kx05aSr88ngscW2kb26x1lmU4OUbMrBjctrz1cF6074 1z7yY37BLtnJ7Ca+Ulk3wo+32hVhEsk6AzpaIPiOVgf7SmAfLvntklWjmZwi+2ip3CMe Fe/1Ce+UNnH+MsZFAGznEWHVMjdGoenA23a0W8QBGE8OtHojE806PrEwARoFa3/QnWjE /JuzoAAlGrUnWWKAzVMWoksuouZqTUXyty1G/3XzF1FjjlEvzGv+o0Z96+5bUbEMPKRj v/EmmFCRrfSSiRaGZLQ5r/hdq0IS9L/tgyFi6OzOwMgwUp0BObW2BAfGf0z46XlVfgwD XZLg== X-Gm-Message-State: AOJu0YzXj/BL6XzqSbNQeH8Pj8JIGNmwmrWCY9/UR1pgYD0COLZGQXcJ dExRHxFnau/5saSyR4lu2kpN8v4Xjmy8XQkECc+qTbD1Q0KpqtTBPuvMlVb7TCRqXumJFs2YU8P SS6d5R0+u3TcOLOfKplC/el8//CPp29c14g== X-Gm-Gg: ASbGncvq/Q2xHw026E4zGzRFc8decqcxZGAEz9S1vRLQMNMq5bxBKJ7Bk9SZ41f2UZ0 g7948wenXYcuEHGpaEzNzY4sfA4LTV9y1NTvQ1+DrewrkdrV4M1U5Mdw7XonfSZDTq0zlEN6enB WBgL1fEu7fTXNV6NbFVW4vnWYLDLVQFaY= X-Google-Smtp-Source: AGHT+IFC7a0SW0efGXk3FcghvpeDOVN2KnGR45tKhLdNMOHZmyAf/F/zcg4wdm7/V3tBtG8QKYXXfqSyqLBWPpP0Elw= X-Received: by 2002:a05:6122:320e:b0:527:bc6b:35bb with SMTP id 71dfb90a1353d-52f2c4cad90mr2036061e0c.3.1748081571399; Sat, 24 May 2025 03:12:51 -0700 (PDT) MIME-Version: 1.0 References: <20250427084843.39670-1-post@frankplowman.com> <CAFXK13fY0yp-fwzQCwf53Pdv=9mLszrG9qLhQhxK6dS8prHVTg@mail.gmail.com> <cfc2fc6f-c1e6-43ff-98a6-b15c85052a7b@frankplowman.com> <CAFXK13eOg_TgZRi4Rx1q7WqWJArOA_yRoU2r1okT1rxMK8cCSA@mail.gmail.com> <9343d2df-20a0-47e4-b388-aa0a2b6ac5d8@frankplowman.com> In-Reply-To: <9343d2df-20a0-47e4-b388-aa0a2b6ac5d8@frankplowman.com> From: Nuo Mi <nuomi2021@gmail.com> Date: Sat, 24 May 2025 18:12:40 +0800 X-Gm-Features: AX0GCFu3fS-qLBKDTwDv4ViHLTnuBA7PArGazALDSfnUcKV5OYNdoEi1cV3DW-U Message-ID: <CAFXK13dPMRALRNojUmPnwf12HqKT8i3L2j29sLv938MbB-iqew@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] [PATCH v2] lavc/vvc: Detect subpic overlaps at CTU level 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/CAFXK13dPMRALRNojUmPnwf12HqKT8i3L2j29sLv938MbB-iqew@mail.gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> T24gU3VuLCBNYXkgMTgsIDIwMjUgYXQgOToxNuKAr1BNIEZyYW5rIFBsb3dtYW4gPHBvc3RAZnJh bmtwbG93bWFuLmNvbT4gd3JvdGU6Cgo+IE9uIDI5LzA0LzIwMjUgMTQ6MjQsIE51byBNaSB3cm90 ZToKPiA+IEhpIEZyYW5rLAo+ID4gVGhhbmsgeW91IGZvciB0aGUgZGV0YWlsLgo+ID4KPiA+IE9u IE1vbiwgQXByIDI4LCAyMDI1IGF0IDEwOjM14oCvUE0gRnJhbmsgUGxvd21hbiA8cG9zdEBmcmFu a3Bsb3dtYW4uY29tPgo+ID4gd3JvdGU6Cj4gPgo+ID4+IE9uIDI4LzA0LzIwMjUgMTQ6MzMsIE51 byBNaSB3cm90ZToKPiA+Pj4gSGkgRnJhbmssCj4gPj4+IFRoYW5rIHlvdSBmb3IgdGhlIHYyLgo+ ID4+PiBDb3VsZCB3ZSByZW1vdmUgYWxsIGFzc2VydHM/Cj4gPj4+IEFzc2VydHMgY2FuIGNhdXNl IHRoZSBhcHBsaWNhdGlvbiB0byBjcmFzaCBhdCBydW50aW1lLgo+ID4+Cj4gPj4gSGksCj4gPj4K PiA+PiBJIHRoaW5rIGF2X2Fzc2VydDJzIGFyZSB0aGUgcmlnaHQgdGhpbmcgdG8gdXNlIGhlcmUu ICBJbiBjYXNlIGl0IHdhcyBub3QKPiA+PiBjbGVhciwgdGhlc2UgYXNzZXJ0cyBzaG91bGQgbmV2 ZXIgYmUgdHJpZ2dlcmVkIGJ5IGFueSBiaXRzdHJlYW0gKGxlZ2FsCj4gPj4gb3IgaWxsZWdhbCku ICBUaGUgYWx0ZXJuYXRpdmVzLCBhcyBJIHNlZSBpdCwgYXJlIGJvdGggbGVzcyBmYXZvdXJhYmxl Ogo+ID4+Cj4gPj4gKiBEb24ndCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIGF0IGFsbC4gIElmIHRo ZSBhc3N1bXB0aW9uIGFib3ZlIHRoYXQKPiA+PiBwcHNfYWRkX2N0dXMgc2hvdWxkbid0IGZhaWwg aW4gdGhlc2UgY2FzZXMgaXMgaW5jb3JyZWN0LCB0aGVuIGFsbCBvZiBhCj4gPj4gc3VkZGVuIHRo ZXJlIGlzIGEgcmF0aGVyIHVuc2NydXRhYmxlIGVycm9yIGFyaXNpbmcgZnJvbSBzdWJ0cmFjdGlu ZyBhCj4gPj4gdmFsdWUgZnJvbSBvZmYsIHdoaWNoIG1pZ2h0IGJlIHJhdGhlciBkaWZmaWN1bHQg dG8gZGVidWcuICBBbiBhc3NlcnRpb24KPiA+PiBpcyBiZXR0ZXIgYmVjYXVzZSBpdCBtYWtlcyB0 aGUgaXNzdWUgb2J2aW91cyBieSBjcmFzaGluZywgYW5kCj4gPj4gaW1tZWRpYXRlbHkgcG9pbnRz IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgY29kZSB3aGljaCBpcyBwcm9ibGVtYXRpYy4KPiA+Pgo+ ID4gRkZtcGVnIHdpbGwgcnVuIG9uIG11bHRpcGxlIGNvbXB1dGVycywgc28gZGV0ZWN0aW5nIGFu ZCByZXR1cm5pbmcgYW4KPiBlcnJvcgo+ID4gaXMgYmV0dGVyIHRoYW4gY3Jhc2hpbmcgdGhlIHBy b2dyYW0g4oCUIGV2ZW4gaWYgaXQncyBhIHJhcmUgb2NjdXJyZW5jZS4KPiA+Cj4gPj4KPiA+PiAq IEFkZCBhIHJ1bnRpbWUgY2hlY2sgZm9yIHRoZXNlIGNhc2VzLiAgSWYgdGhlIGFzc3VtcHRpb24g YWJvdmUgaXMKPiA+PiBjb3JyZWN0LCB0aGVuIHdlJ3JlIGluY3VycmluZyBuZWVkbGVzcyBydW50 aW1lIHBlbmFsdHkgY2hlY2tpbmcgZm9yCj4gPj4gdGhpbmdzIHdoaWNoIGFyZSBhbHdheXMgdHJ1 ZS4gIEFuIGF2X2Fzc2VydDIgaXMgYmV0dGVyIGJlY2F1c2UgaXQgaXMKPiA+PiBvbmx5IGVuYWJs ZWQgaW4gZGVidWcgYnVpbGRzLCBhbmQgbm90IHdoZXJlIHBlcmZvcm1hbmNlIGlzIGVzc2VudGlh bC4KPiA+Pgo+ID4gVGhlIGVudGlyZSBwcm9jZXNzIGhhcHBlbnMgYXQgdGhlIFBQUyBsZXZlbCwg YW5kIHVzdWFsbHksIHdlIG9ubHkgaGF2ZQo+IG9uZQo+ID4gcGVyIHN0cmVhbSwgc28gdGhlIHBl cmZvcm1hbmNlIGxvc3Mgc2hvdWxkIGJlIG1pbmltYWwuCj4gPgo+Cj4gT2ssIEkndmUgcmVwbGFj ZWQgdGhlIGFzc2VydHMgd2l0aCBydW50aW1lIGVycm9ycyBpbiB2My4KPgpUaGFuayB5b3UsIEZy YW5rLApBcHBsaWVkIHYzLgoKPgo+ID4+Cj4gPj4+Cj4gPj4+IE9uIFN1biwgQXByIDI3LCAyMDI1 IGF0IDQ6NDjigK9QTSBGcmFuayBQbG93bWFuIDxwb3N0QGZyYW5rcGxvd21hbi5jb20+Cj4gPj4g d3JvdGU6Cj4gPj4+Cj4gPj4+PiBJbiBkNWRiY2MwMGQ4ODlmYjE3OTQ4YjAyNWE0NjhiMDBkZGJl YTllMDU4LCBpdCB3YXMgaG9wZWQgdGhhdAo+IGRldGVjdGlvbgo+ID4+Pj4gb2Ygc3VicGljdHVy ZSBvdmVybGFwcyBjb3VsZCBiZSBwZXJmb3JtZWQgYXQgdGhlIHRpbGUgbGV2ZWwsIHNvIGFzIHRv Cj4gPj4+PiBhdm9pZCBpbnRyb2R1Y2luZyBwZXItQ1RVIGNoZWNrcy4gVW5mb3J0dW5hdGVseSBz aW5jZSB0aGF0IHBhdGNoLAo+ID4+Pj4gZnV6emluZyBoYXMgaW5kaWNhdGVkIHRoZXJlIGFyZSBz b21lIHN0cnVjdHVyZXMgaW52b2x2aW5nCj4gPj4+PiBwcHNfc3VicGljX29uZV9vcl9tb3JlX3Rp bGVzX3NsaWNlIHdoZXJlIHRpbGUtbGV2ZWwgY2hlY2tpbmcgaXMgbm90Cj4gPj4+PiBzdWZmaWNp ZW50LiAgUGVyZm9ybWluZyB0aGUgY2hlY2sgYXQgdGhlIENUVSBsZXZlbCBzaG91bGQgKHRvdWNo IHdvb2QpCj4gPj4+PiBiZSB0aGUgYmUtYWxsIGFuZCBhbmQtYWxsIG9mIHRoaXMsIGFzIENUVXMg YXJlIHRoZSBsb3dlc3QgY29tbW9uCj4gPj4+PiBkZW5vbWluYXRvciBvZiB0aGUgcGljdHVyZSBw YXJ0aXRpb25pbmcuCj4gPj4+Pgo+ID4+Pj4gU2lnbmVkLW9mZi1ieTogRnJhbmsgUGxvd21hbiA8 cG9zdEBmcmFua3Bsb3dtYW4uY29tPgo+ID4+Pj4gLS0tCj4gPj4+PiBDaGFuZ2VzIHNpbmNlIHYx Ogo+ID4+Pj4gKiBNZXJnZSBwcHNfYWRkX2N0dXMgYW5kIHBwc19hZGRfY3R1c19jaGVjawo+ID4+ Pj4gKiBDaGFuZ2UgaWYvZWxzZSBmb3IgZWFybHktZXhpdCB3aGVyZSBwb3NzaWJsZQo+ID4+Pj4K PiA+Pj4+IC0tLQo+ID4+Pj4gIGxpYmF2Y29kZWMvdnZjL3BzLmMgfCA3MQo+ICsrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4gIDEgZmlsZSBjaGFuZ2Vk LCAzMSBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPiA+Pj4+Cj4gPj4+PiBkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy92dmMvcHMuYyBiL2xpYmF2Y29kZWMvdnZjL3BzLmMKPiA+Pj4+IGlu ZGV4IGU4YzMxMmQ4YWMuLmVkOTYyNjhiYWUgMTAwNjQ0Cj4gPj4+PiAtLS0gYS9saWJhdmNvZGVj L3Z2Yy9wcy5jCj4gPj4+PiArKysgYi9saWJhdmNvZGVjL3Z2Yy9wcy5jCj4gPj4+PiBAQCAtNDA4 LDYgKzQwOCw4IEBAIHN0YXRpYyBpbnQgcHBzX2FkZF9jdHVzKFZWQ1BQUyAqcHBzLCBpbnQgKm9m ZiwKPiBjb25zdAo+ID4+Pj4gaW50IHJ4LCBjb25zdCBpbnQgcnksCj4gPj4+PiAgICAgIGludCBz dGFydCA9ICpvZmY7Cj4gPj4+PiAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgaDsgeSsrKSB7Cj4g Pj4+PiAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHc7IHgrKykgewo+ID4+Pj4gKyAgICAg ICAgICAgIGlmICgqb2ZmID49IHBwcy0+Y3RiX2NvdW50KQo+ID4+Pj4gKyAgICAgICAgICAgICAg ICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiA+Pj4+ICAgICAgICAgICAgICBwcHMtPmN0 Yl9hZGRyX2luX3NsaWNlWypvZmZdID0gY3R1X3JzKHJ4ICsgeCwgcnkgKyB5LAo+IHBwcyk7Cj4g Pj4+PiAgICAgICAgICAgICAgKCpvZmYpKys7Cj4gPj4+PiAgICAgICAgICB9Cj4gPj4+PiBAQCAt NDIwLDkgKzQyMiwxMSBAQCBzdGF0aWMgdm9pZCBwcHNfc2luZ2xlX3NsaWNlX3BpY3R1cmUoVlZD UFBTICpwcHMsCj4gPj4gaW50Cj4gPj4+PiAqb2ZmKQo+ID4+Pj4gICAgICBwcHMtPm51bV9jdHVz X2luX3NsaWNlWzBdID0gMDsKPiA+Pj4+ICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwcHMtPnIt Pm51bV90aWxlX3Jvd3M7IGorKykgewo+ID4+Pj4gICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBwcHMtPnItPm51bV90aWxlX2NvbHVtbnM7IGkrKykgewo+ID4+Pj4gLSAgICAgICAgICAgIHBw cy0+bnVtX2N0dXNfaW5fc2xpY2VbMF0gKz0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+ID4+Pj4g KyAgICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNfYWRkX2N0dXMocHBzLCBvZmYsCj4gPj4+ PiAgICAgICAgICAgICAgICAgIHBwcy0+Y29sX2JkW2ldLCBwcHMtPnJvd19iZFtqXSwKPiA+Pj4+ ICAgICAgICAgICAgICAgICAgcHBzLT5yLT5jb2xfd2lkdGhfdmFsW2ldLCBwcHMtPnItPnJvd19o ZWlnaHRfdmFsW2pdKTsKPiA+Pj4+ICsgICAgICAgICAgICBhdl9hc3NlcnQyKHJldCA+PSAwKTsK PiA+Pj4+ICsgICAgICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlWzBdICs9IHJldDsKPiA+ Pj4+ICAgICAgICAgIH0KPiA+Pj4+ICAgICAgfQo+ID4+Pj4gIH0KPiA+Pj4+IEBAIC00NTEsNTAg KzQ1NSwzNiBAQCBzdGF0aWMgdm9pZCBzdWJwaWNfdGlsZXMoaW50ICp0aWxlX3gsIGludAo+ICp0 aWxlX3ksCj4gPj4+PiBpbnQgKnRpbGVfeF9lbmQsIGludCAqdGlsZV95Xwo+ID4+Pj4gICAgICAg ICAgKCp0aWxlX3lfZW5kKSsrOwo+ID4+Pj4gIH0KPiA+Pj4+Cj4gPj4+PiAtc3RhdGljIGJvb2wg bWFya190aWxlX2FzX3VzZWQoYm9vbCAqdGlsZV9pbl9zdWJwaWMsIGNvbnN0IGludCB0eCwKPiBj b25zdAo+ID4+Pj4gaW50IHR5LCBjb25zdCBpbnQgdGlsZV9jb2x1bW5zKQo+ID4+Pj4gLXsKPiA+ Pj4+IC0gICAgY29uc3Qgc2l6ZV90IHRpbGVfaWR4ID0gdHkgKiB0aWxlX2NvbHVtbnMgKyB0eDsK PiA+Pj4+IC0gICAgaWYgKHRpbGVfaW5fc3VicGljW3RpbGVfaWR4XSkgewo+ID4+Pj4gLSAgICAg ICAgLyogdGhlIHRpbGUgaXMgY292ZXJlZCBieSBvdGhlciBzdWJwaWN0dXJlcyAqLwo+ID4+Pj4g LSAgICAgICAgcmV0dXJuIGZhbHNlOwo+ID4+Pj4gLSAgICB9Cj4gPj4+PiAtICAgIHRpbGVfaW5f c3VicGljW3RpbGVfaWR4XSA9IHRydWU7Cj4gPj4+PiAtICAgIHJldHVybiB0cnVlOwo+ID4+Pj4g LX0KPiA+Pj4+IC0KPiA+Pj4+IC1zdGF0aWMgaW50IHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90 aWxlX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdAo+ID4+IFZWQ1NQUwo+ID4+Pj4gKnNwcywgY29u c3QgaW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZiwgYm9vbAo+ID4+ Pj4gKnRpbGVfaW5fc3VicGljKQo+ID4+Pj4gK3N0YXRpYyBpbnQgcHBzX3N1YnBpY19sZXNzX3Ro YW5fb25lX3RpbGVfc2xpY2UoVlZDUFBTICpwcHMsIGNvbnN0Cj4gPj4gVlZDU1BTCj4gPj4+PiAq c3BzLCBjb25zdCBpbnQgaSwgY29uc3QgaW50IHR4LCBjb25zdCBpbnQgdHksIGludCAqb2ZmKQo+ ID4+Pj4gIHsKPiA+Pj4+IC0gICAgY29uc3QgaW50IHN1YnBpY19ib3R0b20gPSBzcHMtPnItPnNw c19zdWJwaWNfY3R1X3RvcF9sZWZ0X3lbaV0gKwo+ID4+Pj4gc3BzLT5yLT5zcHNfc3VicGljX2hl aWdodF9taW51czFbaV07Cj4gPj4+PiAtICAgIGNvbnN0IGludCB0aWxlX2JvdHRvbSA9IHBwcy0+ cm93X2JkW3R5XSArCj4gPj4gcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0KPiA+Pj4+IC0gMTsK PiA+Pj4+IC0gICAgY29uc3QgYm9vbCBpc19maW5hbF9zdWJwaWNfaW5fdGlsZSA9IHN1YnBpY19i b3R0b20gPT0KPiB0aWxlX2JvdHRvbTsKPiA+Pj4+IC0KPiA+Pj4+IC0gICAgaWYgKGlzX2ZpbmFs X3N1YnBpY19pbl90aWxlICYmICFtYXJrX3RpbGVfYXNfdXNlZCh0aWxlX2luX3N1YnBpYywKPiA+ PiB0eCwKPiA+Pj4+IHR5LCBwcHMtPnItPm51bV90aWxlX2NvbHVtbnMpKQo+ID4+Pj4gLSAgICAg ICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gPj4+PiAtCj4gPj4+PiAtICAgIHBwcy0+ bnVtX2N0dXNfaW5fc2xpY2VbaV0gPSBwcHNfYWRkX2N0dXMocHBzLCBvZmYsCj4gPj4+PiArICAg IGNvbnN0IGludCByZXQgPSBwcHNfYWRkX2N0dXMocHBzLCBvZmYsCj4gPj4+PiAgICAgICAgICBz cHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3hbaV0sCj4gPj4+PiBzcHMtPnItPnNwc19z dWJwaWNfY3R1X3RvcF9sZWZ0X3lbaV0sCj4gPj4+PiAgICAgICAgICBzcHMtPnItPnNwc19zdWJw aWNfd2lkdGhfbWludXMxW2ldICsgMSwKPiA+Pj4+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRf bWludXMxW2ldICsgMSk7Cj4gPj4+PiArICAgIGlmIChyZXQgPCAwKQo+ID4+Pj4gKyAgICAgICAg cmV0dXJuIHJldDsKPiA+Pj4+Cj4gPj4+PiArICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0g PSByZXQ7Cj4gPj4+PiAgICAgIHJldHVybiAwOwo+ID4+Pj4gIH0KPiA+Pj4+Cj4gPj4+PiAgc3Rh dGljIGludCBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKFZWQ1BQUyAqcHBzLCBj b25zdCBpbnQKPiA+Pj4+IHRpbGVfeCwgY29uc3QgaW50IHRpbGVfeSwgY29uc3QgaW50IHhfZW5k LCBjb25zdCBpbnQgeV9lbmQsCj4gPj4+PiAtICAgIGNvbnN0IGludCBpLCBpbnQgKm9mZiwgYm9v bCAqdGlsZV9pbl9zdWJwaWMpCj4gPj4+PiArICAgIGNvbnN0IGludCBpLCBpbnQgKm9mZikKPiA+ Pj4+ICB7Cj4gPj4+PiAgICAgIGZvciAoaW50IHR5ID0gdGlsZV95OyB0eSA8IHlfZW5kOyB0eSsr KSB7Cj4gPj4+PiAgICAgICAgICBmb3IgKGludCB0eCA9IHRpbGVfeDsgdHggPCB4X2VuZDsgdHgr Kykgewo+ID4+Pj4gLSAgICAgICAgICAgIGlmICghbWFya190aWxlX2FzX3VzZWQodGlsZV9pbl9z dWJwaWMsIHR4LCB0eSwKPiA+Pj4+IHBwcy0+ci0+bnVtX3RpbGVfY29sdW1ucykpCj4gPj4+PiAt ICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ID4+Pj4gLQo+ID4+ Pj4gLSAgICAgICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gKz0gcHBzX2FkZF9jdHVz KHBwcywgb2ZmLAo+ID4+Pj4gKyAgICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNfYWRkX2N0 dXMocHBzLCBvZmYsCj4gPj4+PiAgICAgICAgICAgICAgICAgIHBwcy0+Y29sX2JkW3R4XSwgcHBz LT5yb3dfYmRbdHldLAo+ID4+Pj4gICAgICAgICAgICAgICAgICBwcHMtPnItPmNvbF93aWR0aF92 YWxbdHhdLAo+IHBwcy0+ci0+cm93X2hlaWdodF92YWxbdHldKTsKPiA+Pj4+ICsgICAgICAgICAg ICBpZiAocmV0IDwgMCkKPiA+Pj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+Pj4+ ICsKPiA+Pj4+ICsgICAgICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHJldDsK PiA+Pj4+ICAgICAgICAgIH0KPiA+Pj4+ICAgICAgfQo+ID4+Pj4gICAgICByZXR1cm4gMDsKPiA+ Pj4+ICB9Cj4gPj4+Pgo+ID4+Pj4gLXN0YXRpYyBpbnQgcHBzX3N1YnBpY19zbGljZShWVkNQUFMg KnBwcywgY29uc3QgVlZDU1BTICpzcHMsIGNvbnN0IGludAo+ID4+IGksCj4gPj4+PiBpbnQgKm9m ZiwgYm9vbCAqdGlsZV9pbl9zdWJwaWMpCj4gPj4+PiArc3RhdGljIGludCBwcHNfc3VicGljX3Ns aWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNwcywgY29uc3QgaW50Cj4gPj4gaSwKPiA+ Pj4+IGludCAqb2ZmKQo+ID4+Pj4gIHsKPiA+Pj4+ICAgICAgaW50IHR4LCB0eSwgeF9lbmQsIHlf ZW5kOwo+ID4+Pj4KPiA+Pj4+IEBAIC01MDMsOSArNDkzLDkgQEAgc3RhdGljIGludCBwcHNfc3Vi cGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdAo+ID4+IFZWQ1NQUwo+ID4+Pj4gKnNwcywgY29u c3QgaW50IGksIGludCAqb2YKPiA+Pj4+Cj4gPj4+PiAgICAgIHN1YnBpY190aWxlcygmdHgsICZ0 eSwgJnhfZW5kLCAmeV9lbmQsIHNwcywgcHBzLCBpKTsKPiA+Pj4+ICAgICAgaWYgKHR5ICsgMSA9 PSB5X2VuZCAmJiBzcHMtPnItPnNwc19zdWJwaWNfaGVpZ2h0X21pbnVzMVtpXSArIDEgPAo+ID4+ Pj4gcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pCj4gPj4+PiAtICAgICAgICByZXR1cm4gcHBz X3N1YnBpY19sZXNzX3RoYW5fb25lX3RpbGVfc2xpY2UocHBzLCBzcHMsIGksIHR4LAo+IHR5LAo+ ID4+Pj4gb2ZmLCB0aWxlX2luX3N1YnBpYyk7Cj4gPj4+PiArICAgICAgICByZXR1cm4gcHBzX3N1 YnBpY19sZXNzX3RoYW5fb25lX3RpbGVfc2xpY2UocHBzLCBzcHMsIGksIHR4LAo+IHR5LAo+ID4+ Pj4gb2ZmKTsKPiA+Pj4+ICAgICAgZWxzZQo+ID4+Pj4gLSAgICAgICAgcmV0dXJuIHBwc19zdWJw aWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2UocHBzLCB0eCwgdHksIHhfZW5kLAo+ID4+Pj4geV9l bmQsIGksIG9mZiwgdGlsZV9pbl9zdWJwaWMpOwo+ID4+Pj4gKyAgICAgICAgcmV0dXJuIHBwc19z dWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2UocHBzLCB0eCwgdHksIHhfZW5kLAo+ID4+Pj4g eV9lbmQsIGksIG9mZik7Cj4gPj4+PiAgfQo+ID4+Pj4KPiA+Pj4+ICBzdGF0aWMgaW50IHBwc19z aW5nbGVfc2xpY2VfcGVyX3N1YnBpYyhWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4gKnNwcywK PiA+Pj4+IGludCAqb2ZmKQo+ID4+Pj4gQEAgLTUxMywxOCArNTAzLDExIEBAIHN0YXRpYyBpbnQg cHBzX3NpbmdsZV9zbGljZV9wZXJfc3VicGljKFZWQ1BQUwo+ID4+ICpwcHMsCj4gPj4+PiBjb25z dCBWVkNTUFMgKnNwcywgaW50ICpvZmYpCj4gPj4+PiAgICAgIGlmICghc3BzLT5yLT5zcHNfc3Vi cGljX2luZm9fcHJlc2VudF9mbGFnKSB7Cj4gPj4+PiAgICAgICAgICBwcHNfc2luZ2xlX3NsaWNl X3BpY3R1cmUocHBzLCBvZmYpOwo+ID4+Pj4gICAgICB9IGVsc2Ugewo+ID4+Pj4gLSAgICAgICAg Ym9vbCB0aWxlX2luX3N1YnBpY1tWVkNfTUFYX1RJTEVTX1BFUl9BVV0gPSB7MH07Cj4gPj4+PiAg ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBwcy0+ci0+cHBzX251bV9zbGljZXNfaW5fcGlj X21pbnVzMSArIDE7Cj4gPj4+PiBpKyspIHsKPiA+Pj4+IC0gICAgICAgICAgICBjb25zdCBpbnQg cmV0ID0gcHBzX3N1YnBpY19zbGljZShwcHMsIHNwcywgaSwgb2ZmLAo+ID4+Pj4gdGlsZV9pbl9z dWJwaWMpOwo+ID4+Pj4gKyAgICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNfc3VicGljX3Ns aWNlKHBwcywgc3BzLCBpLCBvZmYpOwo+ID4+Pj4gICAgICAgICAgICAgIGlmIChyZXQgPCAwKQo+ ID4+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+Pj4gICAgICAgICAgfQo+ID4+ Pj4gLQo+ID4+Pj4gLSAgICAgICAgLy8gV2Ugb25seSB1c2UgdGlsZV9pbl9zdWJwaWMgdG8gY2hl Y2sgdGhhdCB0aGUgc3VicGljdHVyZXMKPiA+PiBkb24ndAo+ID4+Pj4gb3ZlcmxhcAo+ID4+Pj4g LSAgICAgICAgLy8gaGVyZTsgd2UgZG9uJ3QgdXNlIHRpbGVfaW5fc3VicGljIHRvIGNoZWNrIHRo YXQgdGhlCj4gPj4+PiBzdWJwaWN0dXJlcyBjb3Zlcgo+ID4+Pj4gLSAgICAgICAgLy8gZXZlcnkg dGlsZS4gIEl0IGlzIHBvc3NpYmxlIHRvIGF2b2lkIGRvaW5nIHRoaXMgd29yayBoZXJlCj4gPj4+ PiBiZWNhdXNlIHRoZQo+ID4+Pj4gLSAgICAgICAgLy8gY292ZXJpbmcgcHJvcGVydHkgb2Ygc3Vi cGljdHVyZXMgaXMgYWxyZWFkeSBndWFyYW50ZWVkIGJ5Cj4gPj4gdGhlCj4gPj4+PiBtZWNoYW5p c21zCj4gPj4+PiAtICAgICAgICAvLyB3aGljaCBjaGVjayBldmVyeSBDVFUgYmVsb25ncyB0byBh IHNsaWNlLgo+ID4+Pj4gICAgICB9Cj4gPj4+PiAgICAgIHJldHVybiAwOwo+ID4+Pj4gIH0KPiA+ Pj4+IEBAIC01MzgsOSArNTIxLDEyIEBAIHN0YXRpYyBpbnQgcHBzX29uZV90aWxlX3NsaWNlcyhW VkNQUFMgKnBwcywgY29uc3QKPiA+PiBpbnQKPiA+Pj4+IHRpbGVfaWR4LCBpbnQgaSwgaW50ICpv ZmYpCj4gPj4+PiAgICAgIGN0dV94eSgmcngsICZyeSwgdGlsZV94LCB0aWxlX3ksIHBwcyk7Cj4g Pj4+PiAgICAgIGN0dV95X2VuZCA9IHJ5ICsgci0+cm93X2hlaWdodF92YWxbdGlsZV95XTsKPiA+ Pj4+ICAgICAgd2hpbGUgKHJ5IDwgY3R1X3lfZW5kKSB7Cj4gPj4+PiArICAgICAgICBpbnQgcmV0 Owo+ID4+Pj4gICAgICAgICAgcHBzLT5zbGljZV9zdGFydF9vZmZzZXRbaV0gPSAqb2ZmOwo+ID4+ Pj4gLSAgICAgICAgcHBzLT5udW1fY3R1c19pbl9zbGljZVtpXSA9IHBwc19hZGRfY3R1cyhwcHMs IG9mZiwgcngsIHJ5LAo+ID4+Pj4gKyAgICAgICAgcmV0ID0gcHBzX2FkZF9jdHVzKHBwcywgb2Zm LCByeCwgcnksCj4gPj4+PiAgICAgICAgICAgICAgci0+Y29sX3dpZHRoX3ZhbFt0aWxlX3hdLCBy LT5zbGljZV9oZWlnaHRfaW5fY3R1c1tpXSk7Cj4gPj4+PiArICAgICAgICBhdl9hc3NlcnQyKHJl dCA+PSAwKTsKPiA+Pj4+ICsgICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gPSByZXQ7 Cj4gPj4+PiAgICAgICAgICByeSArPSByLT5zbGljZV9oZWlnaHRfaW5fY3R1c1tpKytdOwo+ID4+ Pj4gICAgICB9Cj4gPj4+PiAgICAgIGktLTsKPiA+Pj4+IEBAIC01NTcsMTMgKzU0MywxNiBAQCBz dGF0aWMgaW50IHBwc19tdWx0aV90aWxlc19zbGljZShWVkNQUFMgKnBwcywKPiA+PiBjb25zdAo+ ID4+Pj4gaW50IHRpbGVfaWR4LCBjb25zdCBpbnQgaSwgaQo+ID4+Pj4gICAgICBwcHMtPm51bV9j dHVzX2luX3NsaWNlW2ldID0gMDsKPiA+Pj4+ICAgICAgZm9yIChpbnQgdHkgPSB0aWxlX3k7IHR5 IDw9IHRpbGVfeSArCj4gPj4+PiByLT5wcHNfc2xpY2VfaGVpZ2h0X2luX3RpbGVzX21pbnVzMVtp XTsgdHkrKykgewo+ID4+Pj4gICAgICAgICAgZm9yIChpbnQgdHggPSB0aWxlX3g7IHR4IDw9IHRp bGVfeCArCj4gPj4+PiByLT5wcHNfc2xpY2Vfd2lkdGhfaW5fdGlsZXNfbWludXMxW2ldOyB0eCsr KSB7Cj4gPj4+PiArICAgICAgICAgICAgaW50IHJldDsKPiA+Pj4+ICAgICAgICAgICAgICBjb25z dCBpbnQgaWR4ID0gdHkgKiByLT5udW1fdGlsZV9jb2x1bW5zICsgdHg7Cj4gPj4+PiAgICAgICAg ICAgICAgaWYgKHRpbGVfaW5fc2xpY2VbaWR4XSkKPiA+Pj4+ICAgICAgICAgICAgICAgICAgcmV0 dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gPj4+PiAgICAgICAgICAgICAgdGlsZV9pbl9zbGlj ZVtpZHhdID0gdHJ1ZTsKPiA+Pj4+ICAgICAgICAgICAgICBjdHVfeHkoJnJ4LCAmcnksIHR4LCB0 eSwgcHBzKTsKPiA+Pj4+IC0gICAgICAgICAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9 IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwgcngsCj4gcnksCj4gPj4+PiArICAgICAgICAgICAgcmV0 ID0gcHBzX2FkZF9jdHVzKHBwcywgb2ZmLCByeCwgcnksCj4gPj4+PiAgICAgICAgICAgICAgICAg IHItPmNvbF93aWR0aF92YWxbdHhdLCByLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pOwo+ID4+Pj4gKyAg ICAgICAgICAgIGF2X2Fzc2VydDIocmV0ID49IDApOwo+ID4+Pj4gKyAgICAgICAgICAgIHBwcy0+ bnVtX2N0dXNfaW5fc2xpY2VbaV0gKz0gcmV0Owo+ID4+Pj4gICAgICAgICAgfQo+ID4+Pj4gICAg ICB9Cj4gPj4+Pgo+ID4+Pj4gQEAgLTYxMCw4ICs1OTksMTAgQEAgc3RhdGljIHZvaWQgcHBzX25v X3JlY3Rfc2xpY2UoVlZDUFBTKiBwcHMpCj4gPj4+Pgo+ID4+Pj4gICAgICBmb3IgKGludCB0aWxl X3kgPSAwOyB0aWxlX3kgPCByLT5udW1fdGlsZV9yb3dzOyB0aWxlX3krKykgewo+ID4+Pj4gICAg ICAgICAgZm9yIChpbnQgdGlsZV94ID0gMDsgdGlsZV94IDwgci0+bnVtX3RpbGVfY29sdW1uczsg dGlsZV94KyspCj4gewo+ID4+Pj4gKyAgICAgICAgICAgIGludCByZXQ7Cj4gPj4+PiAgICAgICAg ICAgICAgY3R1X3h5KCZyeCwgJnJ5LCB0aWxlX3gsIHRpbGVfeSwgcHBzKTsKPiA+Pj4+IC0gICAg ICAgICAgICBwcHNfYWRkX2N0dXMocHBzLCAmb2ZmLCByeCwgcnksIHItPmNvbF93aWR0aF92YWxb dGlsZV94XSwKPiA+Pj4+IHItPnJvd19oZWlnaHRfdmFsW3RpbGVfeV0pOwo+ID4+Pj4gKyAgICAg ICAgICAgIHJldCA9IHBwc19hZGRfY3R1cyhwcHMsICZvZmYsIHJ4LCByeSwKPiA+Pj4+IHItPmNv bF93aWR0aF92YWxbdGlsZV94XSwgci0+cm93X2hlaWdodF92YWxbdGlsZV95XSk7Cj4gPj4+PiAr ICAgICAgICAgICAgYXZfYXNzZXJ0MihyZXQgPj0gMCk7Cj4gPj4+PiAgICAgICAgICB9Cj4gPj4+ PiAgICAgIH0KPiA+Pj4+ICB9Cj4gPj4+PiAtLQo+ID4+Pj4gMi40Ny4wCj4gPj4+Pgo+ID4+Pj4K PiA+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ Pj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+ID4+PiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9y Zwo+ID4+PiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwK PiA+Pj4KPiA+Pj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4g Pj4+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNj cmliZSIuCj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+PiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPj4gZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKPiA+PiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2 ZWwKPiA+Pgo+ID4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+ ID4+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNj cmliZSIuCj4gPj4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBmZm1wZWctZGV2ZWxAZmZt cGVnLm9yZwo+ID4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCj4gPgo+ID4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4g PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3Jp YmUiLgo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+ IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Cj4gVG8g dW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJl cXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KPgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGlu ZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUs IG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1 bnN1YnNjcmliZSIuCg==