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 939184CB63 for ; Tue, 11 Feb 2025 16:21:51 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2C5C368BB2D; Tue, 11 Feb 2025 18:21:47 +0200 (EET) Received: from out203-205-221-191.mail.qq.com (out203-205-221-191.mail.qq.com [203.205.221.191]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5ED2068B615 for ; Tue, 11 Feb 2025 18:21:39 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1739290897; bh=DtaWkN2uSObwwQFhfJ7KShxQfw8oiUFeLQHbKi6F80I=; h=From:Subject:Date:References:To:In-Reply-To; b=vT9dBpWZppA4dde+WkB+kajlP0U4OJipUGQScB20BiEE7fUnw6zIL/r78/Tdhr81I 0SMkMKmW+MffyqerE/UmsUL4Q1i5MtiEgi/Qn5j3bKlYpKyOTrD96SkkmGB1gakbhi 5w96Y30Nskif2TNwASHRKx27LBvAvNx8ho+VmIrM= Received: from smtpclient.apple ([240e:3b7:3277:36f0:312d:39f5:9c18:30ba]) by newxmesmtplogicsvrszgpua8-1.qq.com (NewEsmtp) with SMTP id 5632A676; Wed, 12 Feb 2025 00:21:35 +0800 X-QQ-mid: xmsmtpt1739290895tsv0xsobr Message-ID: X-QQ-XMAILINFO: MoXwTY6T4qpUe0RGLjofly3lSvEDutgjGfVE3Xem5q1qBFK8t8Z15rF+GKhZEo e1LRmRwis2eIFPLjQVukolUDFPH7/Eo+kpoL4bFx22AjrtWjzMfjW9UlTGeTgb9+Qwj8izQQJuEV OH48sV7Ob8Zt/+5SZqZPwkNb/MEM5cBZiM/Hjt2FcDHfYBF6ItAzrpOlfuUJIlbTpNBKVWZbIGrH mbh44CNeO4Bz2cRWikTbV4cU0ZtREjaK8zczpzARr3n0hywborUVNAChHfIjsevh4+WnOw+uyF/Z KVScNj5OraUDBJ6njfjPxKhT3eWXX4+DZyXUrLaIwX6I+J/SFVR14ElnuGsvMhIHmWXwOYnsrvzB c5uAAByzl1AItqzak7Wg89dotXa6KN30YmZczgxkHFC30yZP7O2KFskis46CsURjsh1Nmc1tNES9 H3BycQ3hAyBpbLRrQh9HuZxLhOqZt6+91NGNafuF+kOFjO95dUI2Hg4/hKoxMmDSYJvBSpHBe5he ZsvIndyrXhvGKt799t8jFBi8JYXIVObcCiLedvJfbhZQQX/8rBQczgyOJ54pRLGxJFmO4WPZB/qS /7vOhODtgtRKJtZSy2Jvl+alX+gGG+dXkWbZs3syAW1h5U5VTJhnM2IZxyH4v6L9MmEiy/+A87ej 7boRIHVOK00WflagS1ROYM80vSEJvU/NWh33u9iE8ApPgDAyXEmd3UcqA/POnouXkQ94Of9edjCf m/9WWZvbruNqz1jW6gKLQxJN2hHX/KqByRlzgLV9o90aMrCuYGhN0qbL/AUYIv7z709EQYqjimsq lGkyKFqT/ozLkojcLgIJJuVO14tNmqfoK8WmsElWVfRhsvm47Hv0N/7K8jlH/sE5rCev0Hkrv/h0 ETS34YA0A3nvul1k1C2iWbey65dw/2+Vf2QIXk38o2wUwV678pm1okUv8Oz5zIngPHtT8FbESgut jJOKBimf0YZHphGURimAtGVm846yL7AIv2xxlR51qz7vjSWizDOf9LhYj5Gt04ZwbecbjMD60= X-QQ-XMRINFO: OD9hHCdaPRBwq3WW+NvGbIU= From: Zhao Zhili Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3818.100.11.1.3\)) Date: Wed, 12 Feb 2025 00:21:25 +0800 References: To: FFmpeg development discussions and patches In-Reply-To: X-OQ-MSGID: <515B9D87-730E-4F68-97C9-52DE58EC0E71@foxmail.com> 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+IE9uIEZlYiAxMiwgMjAyNSwgYXQgMDA6MTAsIEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPiB3cm90ZToKPiAKPiBaaGFvIFpoaWxpOgo+PiAKPj4g Cj4+PiBPbiBGZWIgMTEsIDIwMjUsIGF0IDIzOjM3LCBBbmRyZWFzIFJoZWluaGFyZHQgPGFuZHJl YXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4gd3JvdGU6Cj4+PiAKPj4+IFpoYW8gWmhpbGk6Cj4+ Pj4gRnJvbTogWmhhbyBaaGlsaSA8emhpbGl6aGFvQHRlbmNlbnQuY29tPgo+Pj4+IAo+Pj4+IFNp Z25lZC1vZmYtYnk6IFpoYW8gWmhpbGkgPHpoaWxpemhhb0B0ZW5jZW50LmNvbT4KPj4+PiAtLS0K Pj4+PiBsaWJhdmNvZGVjL2hldmMvaGV2Y2RlYy5jIHwgNzMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCj4+Pj4gbGliYXZjb2RlYy9oZXZjL2hldmNkZWMuaCB8ICAyICsr Cj4+Pj4gbGliYXZjb2RlYy9oZXZjL3JlZnMuYyAgICB8IDM1ICsrKysrKysrKysrKysrKysrKy0K Pj4+PiAzIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ Pj4+IAo+Pj4+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2hldmMvaGV2Y2RlYy5jIGIvbGliYXZj b2RlYy9oZXZjL2hldmNkZWMuYwo+Pj4+IGluZGV4IGU5YzA0NWY3YTEuLmY3MWVkZjIxM2IgMTAw NjQ0Cj4+Pj4gLS0tIGEvbGliYXZjb2RlYy9oZXZjL2hldmNkZWMuYwo+Pj4+ICsrKyBiL2xpYmF2 Y29kZWMvaGV2Yy9oZXZjZGVjLmMKPj4+PiBAQCAtNDY2LDYgKzQ2NiwyNSBAQCBzdGF0aWMgaW50 IGV4cG9ydF9tdWx0aWxheWVyKEhFVkNDb250ZXh0ICpzLCBjb25zdCBIRVZDVlBTICp2cHMpCj4+ Pj4gICAgcmV0dXJuIDA7Cj4+Pj4gfQo+Pj4+IAo+Pj4+ICtpbnQgZmZfaGV2Y19pc19hbHBoYV92 aWRlbyhjb25zdCBIRVZDQ29udGV4dCAqcykKPj4+PiArewo+Pj4+ICsgICAgY29uc3QgSEVWQ1ZQ UyAqdnBzID0gcy0+dnBzOwo+Pj4+ICsgICAgaW50IHJldCA9IDA7Cj4+Pj4gKwo+Pj4+ICsgICAg aWYgKHZwcy0+bmJfbGF5ZXJzICE9IDIgfHwgIXZwcy0+bGF5ZXJfaWRfaW5fbnVoWzFdKQo+Pj4+ ICsgICAgICAgIHJldHVybiAwOwo+Pj4+ICsKPj4+PiArICAgIC8qIGRlY29kZV92cHNfZXh0KCkg Z3VhcmFudGVlcyB0aGF0IFNDQUxBQklMSVRZX0FVWElMSUFSWSB3aXRoIEF1eElkIG90aGVyCj4+ Pj4gKyAgICAgKiB0aGFuIGFscGhhIGNhbm5vdCByZWFjaCBoZXJlLgo+Pj4+ICsgICAgICovCj4+ Pj4gKyAgICByZXQgPSAocy0+dnBzLT5zY2FsYWJpbGl0eV9tYXNrX2ZsYWcgJiBIRVZDX1NDQUxB QklMSVRZX0FVWElMSUFSWSk7Cj4+Pj4gKwo+Pj4+ICsgICAgYXZfbG9nKHMtPmF2Y3R4LCBBVl9M T0dfREVCVUcsICJNdWx0aSBsYXllciB2aWRlbywgJXMgYWxwaGEgdmlkZW9cbiIsCj4+Pj4gKyAg ICAgICAgICAgcmV0ID8gImlzIiA6ICJub3QiKTsKPj4+PiArCj4+Pj4gKyAgICByZXR1cm4gcmV0 Owo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+IHN0YXRpYyBpbnQgc2V0dXBfbXVsdGlsYXllcihIRVZDQ29u dGV4dCAqcywgY29uc3QgSEVWQ1ZQUyAqdnBzKQo+Pj4+IHsKPj4+PiAgICB1bnNpZ25lZCBsYXll cnNfYWN0aXZlX291dHB1dCA9IDAsIGhpZ2hlc3RfbGF5ZXI7Cj4+Pj4gQEAgLTQ3Myw2ICs0OTIs MTggQEAgc3RhdGljIGludCBzZXR1cF9tdWx0aWxheWVyKEhFVkNDb250ZXh0ICpzLCBjb25zdCBI RVZDVlBTICp2cHMpCj4+Pj4gICAgcy0+bGF5ZXJzX2FjdGl2ZV9vdXRwdXQgPSAxOwo+Pj4+ICAg IHMtPmxheWVyc19hY3RpdmVfZGVjb2RlID0gMTsKPj4+PiAKPj4+PiArICAgIGlmIChmZl9oZXZj X2lzX2FscGhhX3ZpZGVvKHMpKSB7Cj4+Pj4gKyAgICAgICAgY29uc3QgQVZQaXhGbXREZXNjcmlw dG9yICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChzLT5hdmN0eC0+cGl4X2ZtdCk7Cj4+Pj4g Kwo+Pj4+ICsgICAgICAgIGlmICghKGRlc2MtPmZsYWdzICYgQVZfUElYX0ZNVF9GTEFHX0FMUEhB KSkKPj4+PiArICAgICAgICAgICAgcmV0dXJuIDA7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgIHMtPmxh eWVyc19hY3RpdmVfZGVjb2RlID0gKDEgPDwgdnBzLT5uYl9sYXllcnMpIC0gMTsKPj4+PiArICAg ICAgICBzLT5sYXllcnNfYWN0aXZlX291dHB1dCA9IDE7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgIHJl dHVybiAwOwo+Pj4+ICsgICAgfQo+Pj4+ICsKPj4+PiAgICAvLyBub3RoaW5nIHJlcXVlc3RlZCAt IGRlY29kZSBiYXNlIGxheWVyIG9ubHkKPj4+PiAgICBpZiAoIXMtPm5iX3ZpZXdfaWRzKQo+Pj4+ ICAgICAgICByZXR1cm4gMDsKPj4+PiBAQCAtNTMwLDYgKzU2MSwzNCBAQCBzdGF0aWMgaW50IHNl dHVwX211bHRpbGF5ZXIoSEVWQ0NvbnRleHQgKnMsIGNvbnN0IEhFVkNWUFMgKnZwcykKPj4+PiAg ICByZXR1cm4gMDsKPj4+PiB9Cj4+Pj4gCj4+Pj4gK3N0YXRpYyBlbnVtIEFWUGl4ZWxGb3JtYXQg bWFwX3RvX2FscGhhX2Zvcm1hdChIRVZDQ29udGV4dCAqcywKPj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10 KQo+Pj4+ICt7Cj4+Pj4gKyAgICBzd2l0Y2ggKHBpeF9mbXQpIHsKPj4+PiArICAgIGNhc2UgQVZf UElYX0ZNVF9ZVVY0MjBQOgo+Pj4+ICsgICAgY2FzZSBBVl9QSVhfRk1UX1lVVko0MjBQOgo+Pj4+ ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1UX1lVVkE0MjBQOwo+Pj4+ICsgICAgY2FzZSBBVl9Q SVhfRk1UX1lVVjQyMFAxMDoKPj4+PiArICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9ZVVZBNDIw UDEwOwo+Pj4+ICsgICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFA6Cj4+Pj4gKyAgICAgICAgcmV0 dXJuIEFWX1BJWF9GTVRfWVVWQTQ0NFA7Cj4+Pj4gKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDIy UDoKPj4+PiArICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9ZVVZBNDIyUDsKPj4+PiArICAgIGNh c2UgQVZfUElYX0ZNVF9ZVVY0MjJQMTBMRToKPj4+PiArICAgICAgICByZXR1cm4gQVZfUElYX0ZN VF9ZVVZBNDIyUDEwTEU7Cj4+Pj4gKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDQ0UDEwOgo+Pj4+ ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1UX1lVVkE0NDRQMTA7Cj4+Pj4gKyAgICBjYXNlIEFW X1BJWF9GTVRfWVVWNDQ0UDEyOgo+Pj4+ICsgICAgICAgIHJldHVybiBBVl9QSVhfRk1UX1lVVkE0 NDRQMTI7Cj4+Pj4gKyAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDIyUDEyOgo+Pj4+ICsgICAgICAg IHJldHVybiBBVl9QSVhfRk1UX1lVVkE0MjJQMTI7Cj4+Pj4gKyAgICBkZWZhdWx0Ogo+Pj4+ICsg ICAgICAgIGF2X2xvZyhzLT5hdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJObyBhbHBoYSBwaXhlbCBm b3JtYXQgbWFwIGZvciAlc1xuIiwKPj4+PiArICAgICAgICAgICAgICAgYXZfZ2V0X3BpeF9mbXRf bmFtZShwaXhfZm10KSk7Cj4+Pj4gKyAgICAgICAgcmV0dXJuIEFWX1BJWF9GTVRfTk9ORTsKPj4+ PiArICAgIH0KPj4+PiArfQo+Pj4+ICsKPj4+PiBzdGF0aWMgZW51bSBBVlBpeGVsRm9ybWF0IGdl dF9mb3JtYXQoSEVWQ0NvbnRleHQgKnMsIGNvbnN0IEhFVkNTUFMgKnNwcykKPj4+PiB7Cj4+Pj4g I2RlZmluZSBIV0FDQ0VMX01BWCAoQ09ORklHX0hFVkNfRFhWQTJfSFdBQ0NFTCArIFwKPj4+PiBA QCAtNTQwLDkgKzU5OSwxMyBAQCBzdGF0aWMgZW51bSBBVlBpeGVsRm9ybWF0IGdldF9mb3JtYXQo SEVWQ0NvbnRleHQgKnMsIGNvbnN0IEhFVkNTUFMgKnNwcykKPj4+PiAgICAgICAgICAgICAgICAg ICAgIENPTkZJR19IRVZDX1ZJREVPVE9PTEJPWF9IV0FDQ0VMICsgXAo+Pj4+ICAgICAgICAgICAg ICAgICAgICAgQ09ORklHX0hFVkNfVkRQQVVfSFdBQ0NFTCArIFwKPj4+PiAgICAgICAgICAgICAg ICAgICAgIENPTkZJR19IRVZDX1ZVTEtBTl9IV0FDQ0VMKQo+Pj4+IC0gICAgZW51bSBBVlBpeGVs Rm9ybWF0IHBpeF9mbXRzW0hXQUNDRUxfTUFYICsgMl0sICpmbXQgPSBwaXhfZm10czsKPj4+PiAr ICAgIGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10c1tIV0FDQ0VMX01BWCArIDNdLCAqZm10ID0g cGl4X2ZtdHM7Cj4+Pj4gKyAgICBlbnVtIEFWUGl4ZWxGb3JtYXQgYWxwaGFfZm10ID0gQVZfUElY X0ZNVF9OT05FOwo+Pj4+ICAgIGludCByZXQ7Cj4+Pj4gCj4+Pj4gKyAgICBpZiAoZmZfaGV2Y19p c19hbHBoYV92aWRlbyhzKSkKPj4+PiArICAgICAgICBhbHBoYV9mbXQgPSBtYXBfdG9fYWxwaGFf Zm9ybWF0KHMsIHNwcy0+cGl4X2ZtdCk7Cj4+Pj4gKwo+Pj4+ICAgIHN3aXRjaCAoc3BzLT5waXhf Zm10KSB7Cj4+Pj4gICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQyMFA6Cj4+Pj4gICAgY2FzZSBBVl9Q SVhfRk1UX1lVVko0MjBQOgo+Pj4+IEBAIC02NjQsNiArNzI3LDggQEAgc3RhdGljIGVudW0gQVZQ aXhlbEZvcm1hdCBnZXRfZm9ybWF0KEhFVkNDb250ZXh0ICpzLCBjb25zdCBIRVZDU1BTICpzcHMp Cj4+Pj4gICAgICAgIGJyZWFrOwo+Pj4+ICAgIH0KPj4+PiAKPj4+PiArICAgIGlmIChhbHBoYV9m bXQgIT0gQVZfUElYX0ZNVF9OT05FKQo+Pj4+ICsgICAgICAgICpmbXQrKyA9IGFscGhhX2ZtdDsK Pj4+PiAgICAqZm10KysgPSBzcHMtPnBpeF9mbXQ7Cj4+Pj4gICAgKmZtdCA9IEFWX1BJWF9GTVRf Tk9ORTsKPj4+PiAKPj4+PiBAQCAtMzE5NCw2ICszMjU5LDEyIEBAIHN0YXRpYyBpbnQgaGV2Y19m cmFtZV9zdGFydChIRVZDQ29udGV4dCAqcywgSEVWQ0xheWVyQ29udGV4dCAqbCwKPj4+PiAgICAg ICAgICAgICAgICAhc3BzLT52dWkuY29tbW9uLnZpZGVvX3NpZ25hbF90eXBlX3ByZXNlbnRfZmxh ZykKPj4+PiAgICAgICAgICAgICAgICBwaXhfZm10ID0gc3BzX2Jhc2UtPnBpeF9mbXQ7Cj4+Pj4g Cj4+Pj4gKyAgICAgICAgICAgIC8vIElnbm9yZSByYW5nZSBtaXNtYXRjaCBiZXR3ZWVuIGJhc2Ug bGF5ZXIgYW5kIGFscGhhIGxheWVyCj4+Pj4gKyAgICAgICAgICAgIGlmIChmZl9oZXZjX2lzX2Fs cGhhX3ZpZGVvKHMpICYmCj4+Pj4gKyAgICAgICAgICAgICAgICBzcHNfYmFzZS0+cGl4X2ZtdCA9 PSBBVl9QSVhfRk1UX1lVVjQyMFAgJiYKPj4+PiArICAgICAgICAgICAgICAgIHBpeF9mbXQgPT0g QVZfUElYX0ZNVF9ZVVZKNDIwUCkKPj4+PiArICAgICAgICAgICAgICAgIHBpeF9mbXQgPSBzcHNf YmFzZS0+cGl4X2ZtdDsKPj4+PiArCj4+Pj4gICAgICAgICAgICBpZiAocGl4X2ZtdCAgICAgIT0g c3BzX2Jhc2UtPnBpeF9mbXQgfHwKPj4+PiAgICAgICAgICAgICAgICBzcHMtPndpZHRoICAhPSBz cHNfYmFzZS0+d2lkdGggICB8fAo+Pj4+ICAgICAgICAgICAgICAgIHNwcy0+aGVpZ2h0ICE9IHNw c19iYXNlLT5oZWlnaHQpIHsKPj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oZXZjL2hldmNk ZWMuaCBiL2xpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmgKPj4+PiBpbmRleCA0ZTk1MDM1Njg4Li5i MmI3MjViNWNkIDEwMDY0NAo+Pj4+IC0tLSBhL2xpYmF2Y29kZWMvaGV2Yy9oZXZjZGVjLmgKPj4+ PiArKysgYi9saWJhdmNvZGVjL2hldmMvaGV2Y2RlYy5oCj4+Pj4gQEAgLTcxNCw2ICs3MTQsOCBA QCB2b2lkIGZmX2hldmNfaGxzX3Jlc2lkdWFsX2NvZGluZyhIRVZDTG9jYWxDb250ZXh0ICpsYywg Y29uc3QgSEVWQ1BQUyAqcHBzLAo+Pj4+IAo+Pj4+IHZvaWQgZmZfaGV2Y19obHNfbXZkX2NvZGlu ZyhIRVZDTG9jYWxDb250ZXh0ICpsYywgaW50IHgwLCBpbnQgeTAsIGludCBsb2cyX2NiX3NpemUp Owo+Pj4+IAo+Pj4+ICtpbnQgZmZfaGV2Y19pc19hbHBoYV92aWRlbyhjb25zdCBIRVZDQ29udGV4 dCAqcyk7Cj4+Pj4gKwo+Pj4+IGV4dGVybiBjb25zdCB1aW50OF90IGZmX2hldmNfcXBlbF9leHRy YV9iZWZvcmVbNF07Cj4+Pj4gZXh0ZXJuIGNvbnN0IHVpbnQ4X3QgZmZfaGV2Y19xcGVsX2V4dHJh X2FmdGVyWzRdOwo+Pj4+IGV4dGVybiBjb25zdCB1aW50OF90IGZmX2hldmNfcXBlbF9leHRyYVs0 XTsKPj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oZXZjL3JlZnMuYyBiL2xpYmF2Y29kZWMv aGV2Yy9yZWZzLmMKPj4+PiBpbmRleCBkZDdmN2Y5NWE4Li42ZjEwZWZkMGFjIDEwMDY0NAo+Pj4+ IC0tLSBhL2xpYmF2Y29kZWMvaGV2Yy9yZWZzLmMKPj4+PiArKysgYi9saWJhdmNvZGVjL2hldmMv cmVmcy5jCj4+Pj4gQEAgLTc5LDYgKzc5LDMxIEBAIHZvaWQgZmZfaGV2Y19mbHVzaF9kcGIoSEVW Q0NvbnRleHQgKnMpCj4+Pj4gICAgfQo+Pj4+IH0KPj4+PiAKPj4+PiArc3RhdGljIGludCByZXBs YWNlX2FscGhhX3BsYW5lKEFWRnJhbWUgKmFscGhhLCBBVkZyYW1lICpiYXNlKQo+Pj4+ICt7Cj4+ Pj4gKyAgICBBVkJ1ZmZlclJlZiAqYmFzZV9hID0gYXZfZnJhbWVfZ2V0X3BsYW5lX2J1ZmZlcihi YXNlLCAzKTsKPj4+PiArICAgIHVpbnRwdHJfdCBkYXRhID0gKHVpbnRwdHJfdClhbHBoYS0+ZGF0 YVswXTsKPj4+PiArICAgIGludCByZXQ7Cj4+Pj4gKwo+Pj4+ICsgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBGRl9BUlJBWV9FTEVNUyhhbHBoYS0+YnVmKSAmJiBhbHBoYS0+YnVmW2ldOyBpKyspIHsK Pj4+PiArICAgICAgICBBVkJ1ZmZlclJlZiAqYnVmID0gYWxwaGEtPmJ1ZltpXTsKPj4+PiArICAg ICAgICB1aW50cHRyX3QgYnVmX2JlZ2luID0gKHVpbnRwdHJfdClidWYtPmRhdGE7Cj4+Pj4gKwo+ Pj4+ICsgICAgICAgIGlmIChkYXRhID49ICBidWZfYmVnaW4gJiYgZGF0YSA8IGJ1Zl9iZWdpbiAr IGJ1Zi0+c2l6ZSkgewo+Pj4+ICsgICAgICAgICAgICByZXQgPSBhdl9idWZmZXJfcmVwbGFjZSgm YWxwaGEtPmJ1ZltpXSwgYmFzZV9hKTsKPj4+PiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+ Pj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4+ICsKPj4+PiArICAgICAgICAgICAg YWxwaGEtPmxpbmVzaXplWzBdID0gYmFzZS0+bGluZXNpemVbM107Cj4+Pj4gKyAgICAgICAgICAg IGFscGhhLT5kYXRhWzBdID0gYmFzZS0+ZGF0YVszXTsKPj4+PiArCj4+Pj4gKyAgICAgICAgICAg IHJldHVybiAwOwo+Pj4+ICsgICAgICAgIH0KPj4+PiArICAgIH0KPj4+IAo+Pj4gV2h5IGRvZXMg dGhlIGRlY29kaW5nIHByb2Nlc3MgYWN0dWFsbHkgbmVlZCBtdWx0aXBsZSByZWZlcmVuY2VzIHRv IHRoZQo+Pj4gYnVmZmVyIG9mIHRoZSBhbHBoYSBwbGFuZT8KPj4gCj4+IEnigJltIG5vdCBzdXJl IGlmIEkgdW5kZXJzdGFuZCB5b3VyIHF1ZXN0aW9uIGNvcnJlY3RseS4KPj4gCj4+IDEuIEJvdGgg dGhlIGJhc2UgbGF5ZXIgYW5kIHRoZSBhbHBoYSBsYXllciBhcmUgZGVjb2RlZCBhcyB5dXY0MjBw Lgo+PiAyLiBUaGUgeSBwbGFuZSBvZiBhbHBoYSBsYXllciBpcyBhY3R1YWxseSBhbHBoYS4KPj4g My4gVGhlIGRlY29kZXIgZmluYWxseSBvdXRwdXQgeXV2YSwgbm90IHR3byB5dXY0MjBwLgo+PiAK Pj4gU28gaGVyZSBtYWtlIHkgcGxhbmUgb2YgYWxwaGEgZnJhbWUgcmVmZXJlbmNlIHRoZSBhbHBo YSBwbGFuZSBvZiBiYXNlIGZyYW1lLgo+PiBXaGVuIG91dHB1dCwgdGhlIGJhc2UgZnJhbWUgd2ls bCBjb250YWluIFlVViBhbmQgYWxwaGEgZnJvbSB0d28gbGF5ZXJzLgo+PiAKPiAKPiBUaGUgYmFz ZSBsYXllciBBVkZyYW1lIGFscmVhZHkgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIGFscGhh IHBsYW5lOwo+IHNvIHdoeSBkbyB3ZSBuZWVkIGFub3RoZXIgb25lPyBEb2VzIHRoZSBiYXNlIEFW RnJhbWUgZ2V0IHVucmVmZXJlbmNlZAo+IGJlZm9yZSB0aGUgYWxwaGEgcGxhbmUgaXMgZmluaXNo ZWQgZGVjb2Rpbmc/CgpJbiB0aGUgZGVjb2RpbmcgcHJvY2VzcywgaXTigJlzIGFsbW9zdCB0aGUg c2FtZSBhcyBNVi1IRVZDOgoxLiBUaGUgYmFzZSBsYXllciBpcyBkZWNvZGVkIHRvIHRoZSBZVVYg b2YgYmFzZSBmcmFtZSwgd2l0aG91dCB0b3VjaGluZyB0aGUgYWxwaGEgcGxhbmUuCjIuIFRoZSBh bHBoYSBsYXllciBpcyBkZWNvZGVkIHRvIFlVViBvZiBhbHBoYSBmcmFtZS4KCldlIGNhbiBvdXRw dXQgdGhlIHR3byBmcmFtZXMgbGlrZSBNVi1IRVZDLCBidXQgaXTigJlzIHVzZXIgZnJpZW5kbHkg dG8gb3V0cHV0IGluIFlVVkEgZm9ybWF0LgpTbyBJ4oCZbSBsZXR0aW5nIHRoZSBhbHBoYSBsYXll ciBkZWNvZGVkIHRvIHRoZSBhbHBoYSBwbGFuZSBvZiB0aGUgYmFzZSBsYXllci4gT3IgSSBjYW4g ZG8gdGhlCnJldmVyc2UuIEl04oCZcyB0aGUgc2FtZS4KCldlIGNhbiBza2lwIHRoZSBhbHBoYSBm cmFtZSB0b3RhbGx5LiBUaGVuIHRoZSBkZWNvZGluZyBwcm9jZXNzIGFuZCBEUEIgYnVmZmVyIG1h bmFnZW1lbnQKd2lsbCBiZSBkaWZmZXJlbnQuIEN1cnJlbnQgbWV0aG9kIGlzIHNpbXBsZSBidXQg dXNlIG1vcmUgbWVtb3J5LiBJIGNhbiB3b3JrIG9uIHRoYXQgbGF0ZWx5LgoKPiAKPj4+IAo+Pj4+ ICsKPj4+PiArICAgIHJldHVybiBBVkVSUk9SX0JVRzsKPj4+PiArfQo+Pj4+ICsKPj4+PiBzdGF0 aWMgSEVWQ0ZyYW1lICphbGxvY19mcmFtZShIRVZDQ29udGV4dCAqcywgSEVWQ0xheWVyQ29udGV4 dCAqbCkKPj4+PiB7Cj4+Pj4gICAgY29uc3QgSEVWQ1ZQUyAqdnBzID0gbC0+c3BzLT52cHM7Cj4+ Pj4gQEAgLTEwMyw3ICsxMjgsNyBAQCBzdGF0aWMgSEVWQ0ZyYW1lICphbGxvY19mcmFtZShIRVZD Q29udGV4dCAqcywgSEVWQ0xheWVyQ29udGV4dCAqbCkKPj4+PiAgICAgICAgfQo+Pj4+IAo+Pj4+ ICAgICAgICAvLyBhZGQgdmlldyBJRCBzaWRlIGRhdGEgaWYgaXQncyBub250cml2aWFsCj4+Pj4g LSAgICAgICAgaWYgKHZwcy0+bmJfbGF5ZXJzID4gMSB8fCB2aWV3X2lkKSB7Cj4+Pj4gKyAgICAg ICAgaWYgKCFmZl9oZXZjX2lzX2FscGhhX3ZpZGVvKHMpICYmICh2cHMtPm5iX2xheWVycyA+IDEg fHwgdmlld19pZCkpIHsKPj4+PiAgICAgICAgICAgIEhFVkNTRUlURFJESSAqdGRyZGkgPSAmcy0+ c2VpLnRkcmRpOwo+Pj4+ICAgICAgICAgICAgQVZGcmFtZVNpZGVEYXRhICpzZCA9IGF2X2ZyYW1l X3NpZGVfZGF0YV9uZXcoJmZyYW1lLT5mLT5zaWRlX2RhdGEsCj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZnJhbWUtPmYtPm5iX3Np ZGVfZGF0YSwKPj4+PiBAQCAtMTYxLDcgKzE4NiwxNSBAQCBzdGF0aWMgSEVWQ0ZyYW1lICphbGxv Y19mcmFtZShIRVZDQ29udGV4dCAqcywgSEVWQ0xheWVyQ29udGV4dCAqbCkKPj4+PiAgICAgICAg aWYgKHJldCA8IDApCj4+Pj4gICAgICAgICAgICBnb3RvIGZhaWw7Cj4+Pj4gCj4+Pj4gKwo+Pj4+ ICAgICAgICBmcmFtZS0+cHBzID0gYXZfcmVmc3RydWN0X3JlZl9jKHMtPnBwcyk7Cj4+Pj4gKyAg ICAgICAgaWYgKGwgIT0gJnMtPmxheWVyc1swXSAmJiBmZl9oZXZjX2lzX2FscGhhX3ZpZGVvKHMp KSB7Cj4+Pj4gKyAgICAgICAgICAgIEFWRnJhbWUgKmFscGhhID0gZnJhbWUtPmY7Cj4+Pj4gKyAg ICAgICAgICAgIEFWRnJhbWUgKmJhc2UgPSBzLT5sYXllcnNbMF0uY3VyX2ZyYW1lLT5mOwo+Pj4+ ICsgICAgICAgICAgICByZXQgPSByZXBsYWNlX2FscGhhX3BsYW5lKGFscGhhLCBiYXNlKTsKPj4+ PiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+Pj4gKyAgICAgICAgICAgICAgICBnb3RvIGZh aWw7Cj4+Pj4gKyAgICAgICAgfQo+Pj4+IAo+Pj4+ICAgICAgICByZXR1cm4gZnJhbWU7Cj4+Pj4g ZmFpbDoKPj4+IAo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPj4+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+IGZmbXBlZy1kZXZlbEBmZm1w ZWcub3JnCj4+PiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2 ZWwKPj4+IAo+Pj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4+ PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3Jp YmUiLgo+PiAKPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+PiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9y Zwo+PiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPj4g Cj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+PiBmZm1wZWct ZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+IAo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZtcGVn LWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6Ly9m Zm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gCj4gVG8gdW5zdWJzY3Jp YmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZt cGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZt cGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v ZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJl Ii4K