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 095C54C891 for ; Fri, 14 Feb 2025 12:58:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CE91E68C08C; Fri, 14 Feb 2025 14:58:26 +0200 (EET) Received: from out162-62-57-210.mail.qq.com (out162-62-57-210.mail.qq.com [162.62.57.210]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8FAA668BF85 for ; Fri, 14 Feb 2025 14:58:19 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1739537895; bh=+gHyqRm6han7D7dYkbdD7x3n8NtN/MId0RDNjtpvldc=; h=From:Subject:Date:References:To:In-Reply-To; b=V40ZEIeXp0DT8sDDTRsQFtWU/UQPiryPZztFVnXbwgPPlQrbYQZzhkMmG1en6Q7Hn OcmDLedJuoih5rXHccbSQtcHFz9ANlLV0veC/gY0yDjeeicmlAYyNIfvOGE/8Rdo3P rfiWFjOU8q6tAehWC5SCbY6yA4lEhwuQu6MCDS1k= Received: from smtpclient.apple ([119.147.10.242]) by newxmesmtplogicsvrszb21-0.qq.com (NewEsmtp) with SMTP id E8E05C13; Fri, 14 Feb 2025 20:58:14 +0800 X-QQ-mid: xmsmtpt1739537894t69rff5ed Message-ID: X-QQ-XMAILINFO: M0QIjz3riwymv9eJ8cjOEURWjyPE/2ROiY4IY47byS0d41UcoHpzAqv7bPEpu+ dCNAADwFK4x4oK7hy+HZ9VEjTBrSgl+H8jmRFm7OpGR+2r+WBXjIukruLGxMDALavrWg2K2aHsjN S93wiw8epv2uHl2YED+Xzi7+Rfox6YspIshs/NnLbHql3fqULzyuZ5ISAw0RMQ0AhTQc8pBv5QgX 2xMmNW/u8bqgtvouiPx2xo85Qpg1fu4BVjQjle945TS7M25sQOSRh7AmcL9DpHBo3zVXVIZL4lrE 15MW2ctKL1Io6LIfeLTGOqK0XL5sNe2UZ5yMlltivT82RkarodObjoPk6ZcAaWotI8AxMwO9PU5p EpfMwjmwjRi0JQRon1Lxujf9EeOi2GzSFZhka2VZ1NRtBZm2qEwQYmRpog+Ksrr84O3Gu/AH8tUh NfRMJ2EDhZ+nkfxelWck4fhPYeb5Ijs/XBZThew8rhRAbpZfBfUcHbtLXuPy1wknpEWogB4nmG2m iI1wM6wAiJHi8j68L/jtW0PVKwTXdLc5TI97Txi6WI7fWpKhxm6uy8wNP4r0UKV7jf5j8l9RThD2 HVubURTP0Uhwyfc0nwX1sXDPeBHJeDwhZuRH3bV0jG9A5Yw8Y3DgVlAe9ErDf76rxaedVmML3yy1 0vpy9s7XHaTFzkS4FZgYY4Pz/IvpGsvUaGWtO11fysAODfBItceInv6TKi9qma93jjOP+geYvVsy DUYdJ59GPI/zl5LPk9pvLHaJaLkoUDasvfjE7xFF4Gce29aesvdPbS3xHigTdxlSvbZjWRXGaIFw cZj2AP/vxh3cPNVzMV3GFp7RnC9HDWbXD/GC+HaiujgP9S/JhQCZSTvhP4yrxTFEsg0B5O5nDlHL QKLKqFSUbVwDbia/fn9KqMs/rZmhMYObR15z3DGqhqa50hfoazFTmAlbHgiQqQ/vwNBuDf0Ecs2/ hQ0Yd2PrB+pyj+wG9aeSe83qzft6rqlcvR+qn2VVw= X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= From: Zhao Zhili Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3818.100.11.1.3\)) Date: Fri, 14 Feb 2025 20:58:04 +0800 References: To: FFmpeg development discussions and patches In-Reply-To: X-OQ-MSGID: X-Mailer: Apple Mail (2.3818.100.11.1.3) Subject: Re: [FFmpeg-devel] [PATCH v7 3/4] avcodec/hevc: Add alpha layer 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+IE9uIEZlYiAxMSwgMjAyNSwgYXQgMjM6NTcsIFpoYW8gWmhpbGkgPHF1aW5rYmxhY2tAZm94 bWFpbC5jb20+IHdyb3RlOgo+IAo+IAo+IAo+PiBPbiBGZWIgMTEsIDIwMjUsIGF0IDIzOjM3LCBB bmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4gd3JvdGU6 Cj4+IAo+PiBaaGFvIFpoaWxpOgo+Pj4gRnJvbTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRlbmNl bnQuY29tPgo+Pj4gCj4+PiBTaWduZWQtb2ZmLWJ5OiBaaGFvIFpoaWxpIDx6aGlsaXpoYW9AdGVu Y2VudC5jb20+Cj4+PiAtLS0KPj4+IGxpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmMgfCA3MyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPj4+IGxpYmF2Y29kZWMvaGV2Yy9o ZXZjZGVjLmggfCAgMiArKwo+Pj4gbGliYXZjb2RlYy9oZXZjL3JlZnMuYyAgICB8IDM1ICsrKysr KysrKysrKysrKysrKy0KPj4+IDMgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCj4+PiAKPj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2hldmMvaGV2Y2Rl Yy5jIGIvbGliYXZjb2RlYy9oZXZjL2hldmNkZWMuYwo+Pj4gaW5kZXggZTljMDQ1ZjdhMS4uZjcx ZWRmMjEzYiAxMDA2NDQKPj4+IC0tLSBhL2xpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmMKPj4+ICsr KyBiL2xpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmMKPj4+IEBAIC00NjYsNiArNDY2LDI1IEBAIHN0 YXRpYyBpbnQgZXhwb3J0X211bHRpbGF5ZXIoSEVWQ0NvbnRleHQgKnMsIGNvbnN0IEhFVkNWUFMg KnZwcykKPj4+ICAgIHJldHVybiAwOwo+Pj4gfQo+Pj4gCj4+PiAraW50IGZmX2hldmNfaXNfYWxw aGFfdmlkZW8oY29uc3QgSEVWQ0NvbnRleHQgKnMpCj4+PiArewo+Pj4gKyAgICBjb25zdCBIRVZD VlBTICp2cHMgPSBzLT52cHM7Cj4+PiArICAgIGludCByZXQgPSAwOwo+Pj4gKwo+Pj4gKyAgICBp ZiAodnBzLT5uYl9sYXllcnMgIT0gMiB8fCAhdnBzLT5sYXllcl9pZF9pbl9udWhbMV0pCj4+PiAr ICAgICAgICByZXR1cm4gMDsKPj4+ICsKPj4+ICsgICAgLyogZGVjb2RlX3Zwc19leHQoKSBndWFy YW50ZWVzIHRoYXQgU0NBTEFCSUxJVFlfQVVYSUxJQVJZIHdpdGggQXV4SWQgb3RoZXIKPj4+ICsg ICAgICogdGhhbiBhbHBoYSBjYW5ub3QgcmVhY2ggaGVyZS4KPj4+ICsgICAgICovCj4+PiArICAg IHJldCA9IChzLT52cHMtPnNjYWxhYmlsaXR5X21hc2tfZmxhZyAmIEhFVkNfU0NBTEFCSUxJVFlf QVVYSUxJQVJZKTsKPj4+ICsKPj4+ICsgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9MT0dfREVCVUcs ICJNdWx0aSBsYXllciB2aWRlbywgJXMgYWxwaGEgdmlkZW9cbiIsCj4+PiArICAgICAgICAgICBy ZXQgPyAiaXMiIDogIm5vdCIpOwo+Pj4gKwo+Pj4gKyAgICByZXR1cm4gcmV0Owo+Pj4gK30KPj4+ ICsKPj4+IHN0YXRpYyBpbnQgc2V0dXBfbXVsdGlsYXllcihIRVZDQ29udGV4dCAqcywgY29uc3Qg SEVWQ1ZQUyAqdnBzKQo+Pj4gewo+Pj4gICAgdW5zaWduZWQgbGF5ZXJzX2FjdGl2ZV9vdXRwdXQg PSAwLCBoaWdoZXN0X2xheWVyOwo+Pj4gQEAgLTQ3Myw2ICs0OTIsMTggQEAgc3RhdGljIGludCBz ZXR1cF9tdWx0aWxheWVyKEhFVkNDb250ZXh0ICpzLCBjb25zdCBIRVZDVlBTICp2cHMpCj4+PiAg ICBzLT5sYXllcnNfYWN0aXZlX291dHB1dCA9IDE7Cj4+PiAgICBzLT5sYXllcnNfYWN0aXZlX2Rl Y29kZSA9IDE7Cj4+PiAKPj4+ICsgICAgaWYgKGZmX2hldmNfaXNfYWxwaGFfdmlkZW8ocykpIHsK Pj4+ICsgICAgICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqZGVzYyA9IGF2X3BpeF9mbXRf ZGVzY19nZXQocy0+YXZjdHgtPnBpeF9mbXQpOwo+Pj4gKwo+Pj4gKyAgICAgICAgaWYgKCEoZGVz Yy0+ZmxhZ3MgJiBBVl9QSVhfRk1UX0ZMQUdfQUxQSEEpKQo+Pj4gKyAgICAgICAgICAgIHJldHVy biAwOwo+Pj4gKwo+Pj4gKyAgICAgICAgcy0+bGF5ZXJzX2FjdGl2ZV9kZWNvZGUgPSAoMSA8PCB2 cHMtPm5iX2xheWVycykgLSAxOwo+Pj4gKyAgICAgICAgcy0+bGF5ZXJzX2FjdGl2ZV9vdXRwdXQg PSAxOwo+Pj4gKwo+Pj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+PiArICAgIH0KPj4+ICsKPj4+ICAg IC8vIG5vdGhpbmcgcmVxdWVzdGVkIC0gZGVjb2RlIGJhc2UgbGF5ZXIgb25seQo+Pj4gICAgaWYg KCFzLT5uYl92aWV3X2lkcykKPj4+ICAgICAgICByZXR1cm4gMDsKPj4+IEBAIC01MzAsNiArNTYx LDM0IEBAIHN0YXRpYyBpbnQgc2V0dXBfbXVsdGlsYXllcihIRVZDQ29udGV4dCAqcywgY29uc3Qg SEVWQ1ZQUyAqdnBzKQo+Pj4gICAgcmV0dXJuIDA7Cj4+PiB9Cj4+PiAKPj4+ICtzdGF0aWMgZW51 bSBBVlBpeGVsRm9ybWF0IG1hcF90b19hbHBoYV9mb3JtYXQoSEVWQ0NvbnRleHQgKnMsCj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQaXhl bEZvcm1hdCBwaXhfZm10KQo+Pj4gK3sKPj4+ICsgICAgc3dpdGNoIChwaXhfZm10KSB7Cj4+PiAr ICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0MjBQOgo+Pj4gKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVW SjQyMFA6Cj4+PiArICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9ZVVZBNDIwUDsKPj4+ICsgICAg Y2FzZSBBVl9QSVhfRk1UX1lVVjQyMFAxMDoKPj4+ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1U X1lVVkE0MjBQMTA7Cj4+PiArICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0NDRQOgo+Pj4gKyAgICAg ICAgcmV0dXJuIEFWX1BJWF9GTVRfWVVWQTQ0NFA7Cj4+PiArICAgIGNhc2UgQVZfUElYX0ZNVF9Z VVY0MjJQOgo+Pj4gKyAgICAgICAgcmV0dXJuIEFWX1BJWF9GTVRfWVVWQTQyMlA7Cj4+PiArICAg IGNhc2UgQVZfUElYX0ZNVF9ZVVY0MjJQMTBMRToKPj4+ICsgICAgICAgIHJldHVybiBBVl9QSVhf Rk1UX1lVVkE0MjJQMTBMRTsKPj4+ICsgICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFAxMDoKPj4+ ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1UX1lVVkE0NDRQMTA7Cj4+PiArICAgIGNhc2UgQVZf UElYX0ZNVF9ZVVY0NDRQMTI6Cj4+PiArICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9ZVVZBNDQ0 UDEyOwo+Pj4gKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDIyUDEyOgo+Pj4gKyAgICAgICAgcmV0 dXJuIEFWX1BJWF9GTVRfWVVWQTQyMlAxMjsKPj4+ICsgICAgZGVmYXVsdDoKPj4+ICsgICAgICAg IGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJObyBhbHBoYSBwaXhlbCBmb3JtYXQg bWFwIGZvciAlc1xuIiwKPj4+ICsgICAgICAgICAgICAgICBhdl9nZXRfcGl4X2ZtdF9uYW1lKHBp eF9mbXQpKTsKPj4+ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1UX05PTkU7Cj4+PiArICAgIH0K Pj4+ICt9Cj4+PiArCj4+PiBzdGF0aWMgZW51bSBBVlBpeGVsRm9ybWF0IGdldF9mb3JtYXQoSEVW Q0NvbnRleHQgKnMsIGNvbnN0IEhFVkNTUFMgKnNwcykKPj4+IHsKPj4+ICNkZWZpbmUgSFdBQ0NF TF9NQVggKENPTkZJR19IRVZDX0RYVkEyX0hXQUNDRUwgKyBcCj4+PiBAQCAtNTQwLDkgKzU5OSwx MyBAQCBzdGF0aWMgZW51bSBBVlBpeGVsRm9ybWF0IGdldF9mb3JtYXQoSEVWQ0NvbnRleHQgKnMs IGNvbnN0IEhFVkNTUFMgKnNwcykKPj4+ICAgICAgICAgICAgICAgICAgICAgQ09ORklHX0hFVkNf VklERU9UT09MQk9YX0hXQUNDRUwgKyBcCj4+PiAgICAgICAgICAgICAgICAgICAgIENPTkZJR19I RVZDX1ZEUEFVX0hXQUNDRUwgKyBcCj4+PiAgICAgICAgICAgICAgICAgICAgIENPTkZJR19IRVZD X1ZVTEtBTl9IV0FDQ0VMKQo+Pj4gLSAgICBlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4X2ZtdHNbSFdB Q0NFTF9NQVggKyAyXSwgKmZtdCA9IHBpeF9mbXRzOwo+Pj4gKyAgICBlbnVtIEFWUGl4ZWxGb3Jt YXQgcGl4X2ZtdHNbSFdBQ0NFTF9NQVggKyAzXSwgKmZtdCA9IHBpeF9mbXRzOwo+Pj4gKyAgICBl bnVtIEFWUGl4ZWxGb3JtYXQgYWxwaGFfZm10ID0gQVZfUElYX0ZNVF9OT05FOwo+Pj4gICAgaW50 IHJldDsKPj4+IAo+Pj4gKyAgICBpZiAoZmZfaGV2Y19pc19hbHBoYV92aWRlbyhzKSkKPj4+ICsg ICAgICAgIGFscGhhX2ZtdCA9IG1hcF90b19hbHBoYV9mb3JtYXQocywgc3BzLT5waXhfZm10KTsK Pj4+ICsKPj4+ICAgIHN3aXRjaCAoc3BzLT5waXhfZm10KSB7Cj4+PiAgICBjYXNlIEFWX1BJWF9G TVRfWVVWNDIwUDoKPj4+ICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVZKNDIwUDoKPj4+IEBAIC02NjQs NiArNzI3LDggQEAgc3RhdGljIGVudW0gQVZQaXhlbEZvcm1hdCBnZXRfZm9ybWF0KEhFVkNDb250 ZXh0ICpzLCBjb25zdCBIRVZDU1BTICpzcHMpCj4+PiAgICAgICAgYnJlYWs7Cj4+PiAgICB9Cj4+ PiAKPj4+ICsgICAgaWYgKGFscGhhX2ZtdCAhPSBBVl9QSVhfRk1UX05PTkUpCj4+PiArICAgICAg ICAqZm10KysgPSBhbHBoYV9mbXQ7Cj4+PiAgICAqZm10KysgPSBzcHMtPnBpeF9mbXQ7Cj4+PiAg ICAqZm10ID0gQVZfUElYX0ZNVF9OT05FOwo+Pj4gCj4+PiBAQCAtMzE5NCw2ICszMjU5LDEyIEBA IHN0YXRpYyBpbnQgaGV2Y19mcmFtZV9zdGFydChIRVZDQ29udGV4dCAqcywgSEVWQ0xheWVyQ29u dGV4dCAqbCwKPj4+ICAgICAgICAgICAgICAgICFzcHMtPnZ1aS5jb21tb24udmlkZW9fc2lnbmFs X3R5cGVfcHJlc2VudF9mbGFnKQo+Pj4gICAgICAgICAgICAgICAgcGl4X2ZtdCA9IHNwc19iYXNl LT5waXhfZm10Owo+Pj4gCj4+PiArICAgICAgICAgICAgLy8gSWdub3JlIHJhbmdlIG1pc21hdGNo IGJldHdlZW4gYmFzZSBsYXllciBhbmQgYWxwaGEgbGF5ZXIKPj4+ICsgICAgICAgICAgICBpZiAo ZmZfaGV2Y19pc19hbHBoYV92aWRlbyhzKSAmJgo+Pj4gKyAgICAgICAgICAgICAgICBzcHNfYmFz ZS0+cGl4X2ZtdCA9PSBBVl9QSVhfRk1UX1lVVjQyMFAgJiYKPj4+ICsgICAgICAgICAgICAgICAg cGl4X2ZtdCA9PSBBVl9QSVhfRk1UX1lVVko0MjBQKQo+Pj4gKyAgICAgICAgICAgICAgICBwaXhf Zm10ID0gc3BzX2Jhc2UtPnBpeF9mbXQ7Cj4+PiArCj4+PiAgICAgICAgICAgIGlmIChwaXhfZm10 ICAgICAhPSBzcHNfYmFzZS0+cGl4X2ZtdCB8fAo+Pj4gICAgICAgICAgICAgICAgc3BzLT53aWR0 aCAgIT0gc3BzX2Jhc2UtPndpZHRoICAgfHwKPj4+ICAgICAgICAgICAgICAgIHNwcy0+aGVpZ2h0 ICE9IHNwc19iYXNlLT5oZWlnaHQpIHsKPj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2hldmMv aGV2Y2RlYy5oIGIvbGliYXZjb2RlYy9oZXZjL2hldmNkZWMuaAo+Pj4gaW5kZXggNGU5NTAzNTY4 OC4uYjJiNzI1YjVjZCAxMDA2NDQKPj4+IC0tLSBhL2xpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmgK Pj4+ICsrKyBiL2xpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmgKPj4+IEBAIC03MTQsNiArNzE0LDgg QEAgdm9pZCBmZl9oZXZjX2hsc19yZXNpZHVhbF9jb2RpbmcoSEVWQ0xvY2FsQ29udGV4dCAqbGMs IGNvbnN0IEhFVkNQUFMgKnBwcywKPj4+IAo+Pj4gdm9pZCBmZl9oZXZjX2hsc19tdmRfY29kaW5n KEhFVkNMb2NhbENvbnRleHQgKmxjLCBpbnQgeDAsIGludCB5MCwgaW50IGxvZzJfY2Jfc2l6ZSk7 Cj4+PiAKPj4+ICtpbnQgZmZfaGV2Y19pc19hbHBoYV92aWRlbyhjb25zdCBIRVZDQ29udGV4dCAq cyk7Cj4+PiArCj4+PiBleHRlcm4gY29uc3QgdWludDhfdCBmZl9oZXZjX3FwZWxfZXh0cmFfYmVm b3JlWzRdOwo+Pj4gZXh0ZXJuIGNvbnN0IHVpbnQ4X3QgZmZfaGV2Y19xcGVsX2V4dHJhX2FmdGVy WzRdOwo+Pj4gZXh0ZXJuIGNvbnN0IHVpbnQ4X3QgZmZfaGV2Y19xcGVsX2V4dHJhWzRdOwo+Pj4g ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaGV2Yy9yZWZzLmMgYi9saWJhdmNvZGVjL2hldmMvcmVm cy5jCj4+PiBpbmRleCBkZDdmN2Y5NWE4Li42ZjEwZWZkMGFjIDEwMDY0NAo+Pj4gLS0tIGEvbGli YXZjb2RlYy9oZXZjL3JlZnMuYwo+Pj4gKysrIGIvbGliYXZjb2RlYy9oZXZjL3JlZnMuYwo+Pj4g QEAgLTc5LDYgKzc5LDMxIEBAIHZvaWQgZmZfaGV2Y19mbHVzaF9kcGIoSEVWQ0NvbnRleHQgKnMp Cj4+PiAgICB9Cj4+PiB9Cj4+PiAKPj4+ICtzdGF0aWMgaW50IHJlcGxhY2VfYWxwaGFfcGxhbmUo QVZGcmFtZSAqYWxwaGEsIEFWRnJhbWUgKmJhc2UpCj4+PiArewo+Pj4gKyAgICBBVkJ1ZmZlclJl ZiAqYmFzZV9hID0gYXZfZnJhbWVfZ2V0X3BsYW5lX2J1ZmZlcihiYXNlLCAzKTsKPj4+ICsgICAg dWludHB0cl90IGRhdGEgPSAodWludHB0cl90KWFscGhhLT5kYXRhWzBdOwo+Pj4gKyAgICBpbnQg cmV0Owo+Pj4gKwo+Pj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1TKGFs cGhhLT5idWYpICYmIGFscGhhLT5idWZbaV07IGkrKykgewo+Pj4gKyAgICAgICAgQVZCdWZmZXJS ZWYgKmJ1ZiA9IGFscGhhLT5idWZbaV07Cj4+PiArICAgICAgICB1aW50cHRyX3QgYnVmX2JlZ2lu ID0gKHVpbnRwdHJfdClidWYtPmRhdGE7Cj4+PiArCj4+PiArICAgICAgICBpZiAoZGF0YSA+PSAg YnVmX2JlZ2luICYmIGRhdGEgPCBidWZfYmVnaW4gKyBidWYtPnNpemUpIHsKPj4+ICsgICAgICAg ICAgICByZXQgPSBhdl9idWZmZXJfcmVwbGFjZSgmYWxwaGEtPmJ1ZltpXSwgYmFzZV9hKTsKPj4+ ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkKPj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHJl dDsKPj4+ICsKPj4+ICsgICAgICAgICAgICBhbHBoYS0+bGluZXNpemVbMF0gPSBiYXNlLT5saW5l c2l6ZVszXTsKPj4+ICsgICAgICAgICAgICBhbHBoYS0+ZGF0YVswXSA9IGJhc2UtPmRhdGFbM107 Cj4+PiArCj4+PiArICAgICAgICAgICAgcmV0dXJuIDA7Cj4+PiArICAgICAgICB9Cj4+PiArICAg IH0KPj4gCj4+IFdoeSBkb2VzIHRoZSBkZWNvZGluZyBwcm9jZXNzIGFjdHVhbGx5IG5lZWQgbXVs dGlwbGUgcmVmZXJlbmNlcyB0byB0aGUKPj4gYnVmZmVyIG9mIHRoZSBhbHBoYSBwbGFuZT8KPiAK PiBJ4oCZbSBub3Qgc3VyZSBpZiBJIHVuZGVyc3RhbmQgeW91ciBxdWVzdGlvbiBjb3JyZWN0bHku Cj4gCj4gMS4gQm90aCB0aGUgYmFzZSBsYXllciBhbmQgdGhlIGFscGhhIGxheWVyIGFyZSBkZWNv ZGVkIGFzIHl1djQyMHAuCj4gMi4gVGhlIHkgcGxhbmUgb2YgYWxwaGEgbGF5ZXIgaXMgYWN0dWFs bHkgYWxwaGEuCj4gMy4gVGhlIGRlY29kZXIgZmluYWxseSBvdXRwdXQgeXV2YSwgbm90IHR3byB5 dXY0MjBwLgo+IAo+IFNvIGhlcmUgbWFrZSB5IHBsYW5lIG9mIGFscGhhIGZyYW1lIHJlZmVyZW5j ZSB0aGUgYWxwaGEgcGxhbmUgb2YgYmFzZSBmcmFtZS4KPiBXaGVuIG91dHB1dCwgdGhlIGJhc2Ug ZnJhbWUgd2lsbCBjb250YWluIFlVViBhbmQgYWxwaGEgZnJvbSB0d28gbGF5ZXJzLgo+IAo+PiAK Pj4+ICsKPj4+ICsgICAgcmV0dXJuIEFWRVJST1JfQlVHOwo+Pj4gK30KPj4+ICsKPj4+IHN0YXRp YyBIRVZDRnJhbWUgKmFsbG9jX2ZyYW1lKEhFVkNDb250ZXh0ICpzLCBIRVZDTGF5ZXJDb250ZXh0 ICpsKQo+Pj4gewo+Pj4gICAgY29uc3QgSEVWQ1ZQUyAqdnBzID0gbC0+c3BzLT52cHM7Cj4+PiBA QCAtMTAzLDcgKzEyOCw3IEBAIHN0YXRpYyBIRVZDRnJhbWUgKmFsbG9jX2ZyYW1lKEhFVkNDb250 ZXh0ICpzLCBIRVZDTGF5ZXJDb250ZXh0ICpsKQo+Pj4gICAgICAgIH0KPj4+IAo+Pj4gICAgICAg IC8vIGFkZCB2aWV3IElEIHNpZGUgZGF0YSBpZiBpdCdzIG5vbnRyaXZpYWwKPj4+IC0gICAgICAg IGlmICh2cHMtPm5iX2xheWVycyA+IDEgfHwgdmlld19pZCkgewo+Pj4gKyAgICAgICAgaWYgKCFm Zl9oZXZjX2lzX2FscGhhX3ZpZGVvKHMpICYmICh2cHMtPm5iX2xheWVycyA+IDEgfHwgdmlld19p ZCkpIHsKPj4+ICAgICAgICAgICAgSEVWQ1NFSVREUkRJICp0ZHJkaSA9ICZzLT5zZWkudGRyZGk7 Cj4+PiAgICAgICAgICAgIEFWRnJhbWVTaWRlRGF0YSAqc2QgPSBhdl9mcmFtZV9zaWRlX2RhdGFf bmV3KCZmcmFtZS0+Zi0+c2lkZV9kYXRhLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZnJhbWUtPmYtPm5iX3NpZGVfZGF0YSwKPj4+ IEBAIC0xNjEsNyArMTg2LDE1IEBAIHN0YXRpYyBIRVZDRnJhbWUgKmFsbG9jX2ZyYW1lKEhFVkND b250ZXh0ICpzLCBIRVZDTGF5ZXJDb250ZXh0ICpsKQo+Pj4gICAgICAgIGlmIChyZXQgPCAwKQo+ Pj4gICAgICAgICAgICBnb3RvIGZhaWw7Cj4+PiAKPj4+ICsKPj4+ICAgICAgICBmcmFtZS0+cHBz ID0gYXZfcmVmc3RydWN0X3JlZl9jKHMtPnBwcyk7CgpXaWxsIHJlbW92ZSB0aGlzIGV4dHJhIG5l d2xpbmUgYW5kIGFwcGx5IHRoaXMgd2Vla2VuZCBpZiBubyBtb3JlIGNvbW1lbnRzLgoKPj4+ICsg ICAgICAgIGlmIChsICE9ICZzLT5sYXllcnNbMF0gJiYgZmZfaGV2Y19pc19hbHBoYV92aWRlbyhz KSkgewo+Pj4gKyAgICAgICAgICAgIEFWRnJhbWUgKmFscGhhID0gZnJhbWUtPmY7Cj4+PiArICAg ICAgICAgICAgQVZGcmFtZSAqYmFzZSA9IHMtPmxheWVyc1swXS5jdXJfZnJhbWUtPmY7Cj4+PiAr ICAgICAgICAgICAgcmV0ID0gcmVwbGFjZV9hbHBoYV9wbGFuZShhbHBoYSwgYmFzZSk7Cj4+PiAr ICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+PiArICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsK Pj4+ICsgICAgICAgIH0KPj4+IAo+Pj4gICAgICAgIHJldHVybiBmcmFtZTsKPj4+IGZhaWw6Cj4+ IAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBm Zm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4+IGh0 dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+PiAKPj4gVG8g dW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4+IGZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4gCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFp bGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJv dmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0 ICJ1bnN1YnNjcmliZSIuCg==