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 0A6E34DCF4 for ; Thu, 24 Apr 2025 03:04:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0D07768B7FD; Thu, 24 Apr 2025 06:04:24 +0300 (EEST) Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 138EE68B485 for ; Thu, 24 Apr 2025 06:04:18 +0300 (EEST) Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-739be717eddso329378b3a.2 for ; Wed, 23 Apr 2025 20:04:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745463855; x=1746068655; darn=ffmpeg.org; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=1DM2MqIzOSJCSek710LG31Cz3l3BI/Te9OxPuZlMhMs=; b=KHcAk49HFs//L1l8cR9CpvZaQ/A3ao23LoZ2vx2ld7QGShYbHL+pihNtIIDUGNvWO1 y4DwxudKVzljHfkT/ENLnTv5fAIQ9Ldve9heDPjmb1ZsJDNwqoRNPqxb2nEGYPSulN6E fFWRIBJe3b94QlaqgGQg6y77wfB1ybmzzU2Wh2/SPQyLx8VIWKpYLeMa50tnNV/agraV 44tj6qe+DyHHkDvzVogl4/cf5OFzXMFB/joxaiKVGgbUT9YntNfAmj42BbMD7ENxoY+t SQ1zyBFLYrrx7mTBBdc1Whc2RdFmK0PZXg4RgSVmuXWJY0LxzrEuZ6DjedXhhTfImYll 56rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745463855; x=1746068655; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=1DM2MqIzOSJCSek710LG31Cz3l3BI/Te9OxPuZlMhMs=; b=jv73DqVau214T+B4K4cdSwqNDRxiyyIW7RbWDXjHpViv+FMcy1vF6WEri17neGExd9 SXUZD1j4ogQjc8jHVxj2TCmyn0Txc698fujMITRWL7/CWz+OVnL9uIMSmyCeUB1IPz5L gp9sx+0sC3EWWSWCm6nnmEAgCyJ35TDcl3gr9APmDlYkIGemNiwdNmOn+JxcIjjv/FkK XTuZZgscIqlz5sScSl/bGsfKLtjszB3Uq9wQHWCFAPlsXwKd5DW4Bf36BTJLZIZlurm+ 7mz61Y/Cy9kz3Ir5MgRWjOOKx5gTXNg5l7RTaENiom5G8ByPkNLuxsmd0TaiLdqxqrzK ijiA== X-Gm-Message-State: AOJu0Yy7Qf+PLm4y6Hp6NgIECpvwdOvTQNAETE45Gq+bfsiMwtGti6Qg EiTf1DfXQgaPFgP11kZBjvZzOHmUio5HNMyh/uz5AXSKJNA6JnBm3RX6XA== X-Gm-Gg: ASbGncvMCic0BWxdg/Eyje5TUOzUMdfOX62I/W6QiWE4+KEb2NXUVZV7SU2c0WY+HP0 tT3Nk09NaUitu1nHmRfWOD3nzdp16qolcYhx2QG2NiuUc8sVG4aZACoyQS6uHSMXtcFzQq8je0o cMr4bi4sAcaUZuHNikED1zbc1E80DD57EnH6Olp3NzpYcQmHGSDrfv6NiUH992VhNF1am7/a/gk tg1ipMzK+UBU5IfpBjVk0CypkHug+7jWYgSVqcqTmzmrSyzbFBLOJqsix+rleZvlZDR1l0X94xZ ly0jCGSJdNEOH0be7i+YMgeDZlSup5qucU32mKOv4aCsVJ9VR59Tem2Bl1o2sQmmh8G2vadva/F 3I9qW4IIlSoEc X-Google-Smtp-Source: AGHT+IFHDH9RwReuXJL3pbFC+Wzfp9gnz1NLXvVcvTxmKMrQjbt2ayR/D9guJBGQGbH4j81Jc5mTqA== X-Received: by 2002:a05:6a00:1150:b0:730:9801:d3e2 with SMTP id d2e1a72fcca58-73e2460ecd0mr1705616b3a.8.1745463854765; Wed, 23 Apr 2025 20:04:14 -0700 (PDT) Received: from ?IPV6:2800:2121:b000:82e:c938:dca7:f0e:29d3? ([2800:2121:b000:82e:c938:dca7:f0e:29d3]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73e25a9a14asm329418b3a.131.2025.04.23.20.04.13 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 23 Apr 2025 20:04:13 -0700 (PDT) Message-ID: <6652a53d-562b-4c9d-ae73-800c4dbcd7b5@gmail.com> Date: Thu, 24 Apr 2025 00:04:10 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250423204531.2432180-1-sw@jkqxz.net> <20250423204531.2432180-5-sw@jkqxz.net> Content-Language: en-US From: James Almer In-Reply-To: <20250423204531.2432180-5-sw@jkqxz.net> Subject: Re: [FFmpeg-devel] [PATCH v3 4/7] lavc: APV decoder 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: multipart/mixed; boundary="===============8245030239298322252==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --===============8245030239298322252== Content-Language: en-US Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------SQQkWgvVQ3o0dq4c6oq8y9dG" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------SQQkWgvVQ3o0dq4c6oq8y9dG Content-Type: multipart/mixed; boundary="------------bNZRE2SHhg6ML01OqGXpamYY"; protected-headers="v1" From: James Almer To: ffmpeg-devel@ffmpeg.org Message-ID: <6652a53d-562b-4c9d-ae73-800c4dbcd7b5@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH v3 4/7] lavc: APV decoder References: <20250423204531.2432180-1-sw@jkqxz.net> <20250423204531.2432180-5-sw@jkqxz.net> In-Reply-To: <20250423204531.2432180-5-sw@jkqxz.net> --------------bNZRE2SHhg6ML01OqGXpamYY Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNC8yMy8yMDI1IDU6NDUgUE0sIE1hcmsgVGhvbXBzb24gd3JvdGU6DQo+IC0tLQ0KPiAg IGNvbmZpZ3VyZSAgICAgICAgICAgICAgICB8ICAgMSArDQo+ICAgbGliYXZjb2RlYy9NYWtl ZmlsZSAgICAgIHwgICAxICsNCj4gICBsaWJhdmNvZGVjL2FsbGNvZGVjcy5jICAgfCAgIDEg Kw0KPiAgIGxpYmF2Y29kZWMvYXB2X2RlY29kZS5jICB8IDQwMyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gICBsaWJhdmNvZGVjL2Fwdl9kZWNvZGUuaCAg fCAgODAgKysrKysrKysNCj4gICBsaWJhdmNvZGVjL2Fwdl9kc3AuYyAgICAgfCAxMzYgKysr KysrKysrKysrKw0KPiAgIGxpYmF2Y29kZWMvYXB2X2RzcC5oICAgICB8ICAzNyArKysrDQo+ ICAgbGliYXZjb2RlYy9hcHZfZW50cm9weS5jIHwgMjAwICsrKysrKysrKysrKysrKysrKysN Cj4gICA4IGZpbGVzIGNoYW5nZWQsIDg1OSBpbnNlcnRpb25zKCspDQo+ICAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYmF2Y29kZWMvYXB2X2RlY29kZS5jDQo+ICAgY3JlYXRlIG1vZGUgMTAw NjQ0IGxpYmF2Y29kZWMvYXB2X2RlY29kZS5oDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxp YmF2Y29kZWMvYXB2X2RzcC5jDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMv YXB2X2RzcC5oDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvYXB2X2VudHJv cHkuYw0KPiANCj4gZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQ0KPiBpbmRl eCBjYTQwNGQyNzk3Li5lZTI3MGI3NzBjIDEwMDc1NQ0KPiAtLS0gYS9jb25maWd1cmUNCj4g KysrIGIvY29uZmlndXJlDQo+IEBAIC0yOTM1LDYgKzI5MzUsNyBAQCBhcG5nX2RlY29kZXJf c2VsZWN0PSJpbmZsYXRlX3dyYXBwZXIiDQo+ICAgYXBuZ19lbmNvZGVyX3NlbGVjdD0iZGVm bGF0ZV93cmFwcGVyIGxsdmlkZW5jZHNwIg0KPiAgIGFwdHhfZW5jb2Rlcl9zZWxlY3Q9ImF1 ZGlvX2ZyYW1lX3F1ZXVlIg0KPiAgIGFwdHhfaGRfZW5jb2Rlcl9zZWxlY3Q9ImF1ZGlvX2Zy YW1lX3F1ZXVlIg0KPiArYXB2X2RlY29kZXJfc2VsZWN0PSJjYnNfYXB2Ig0KPiAgIGFzdjFf ZGVjb2Rlcl9zZWxlY3Q9ImJsb2NrZHNwIGJzd2FwZHNwIGlkY3Rkc3AiDQo+ICAgYXN2MV9l bmNvZGVyX3NlbGVjdD0iYWFuZGN0dGFibGVzIGJzd2FwZHNwIGZkY3Rkc3AgcGl4YmxvY2tk c3AiDQo+ICAgYXN2Ml9kZWNvZGVyX3NlbGVjdD0iYmxvY2tkc3AgYnN3YXBkc3AgaWRjdGRz cCINCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL01h a2VmaWxlDQo+IGluZGV4IGE1ZjVjNGU5MDQuLmU2NzQ2NzE0NjAgMTAwNjQ0DQo+IC0tLSBh L2xpYmF2Y29kZWMvTWFrZWZpbGUNCj4gKysrIGIvbGliYXZjb2RlYy9NYWtlZmlsZQ0KPiBA QCAtMjQ0LDYgKzI0NCw3IEBAIE9CSlMtJChDT05GSUdfQVBUWF9IRF9ERUNPREVSKSAgICAg ICAgICs9IGFwdHhkZWMubyBhcHR4Lm8NCj4gICBPQkpTLSQoQ09ORklHX0FQVFhfSERfRU5D T0RFUikgICAgICAgICArPSBhcHR4ZW5jLm8gYXB0eC5vDQo+ICAgT0JKUy0kKENPTkZJR19B UE5HX0RFQ09ERVIpICAgICAgICAgICAgKz0gcG5nLm8gcG5nZGVjLm8gcG5nZHNwLm8NCj4g ICBPQkpTLSQoQ09ORklHX0FQTkdfRU5DT0RFUikgICAgICAgICAgICArPSBwbmcubyBwbmdl bmMubw0KPiArT0JKUy0kKENPTkZJR19BUFZfREVDT0RFUikgICAgICAgICAgICAgKz0gYXB2 X2RlY29kZS5vIGFwdl9lbnRyb3B5Lm8gYXB2X2RzcC5vDQo+ICAgT0JKUy0kKENPTkZJR19B UkJDX0RFQ09ERVIpICAgICAgICAgICAgKz0gYXJiYy5vDQo+ICAgT0JKUy0kKENPTkZJR19B UkdPX0RFQ09ERVIpICAgICAgICAgICAgKz0gYXJnby5vDQo+ICAgT0JKUy0kKENPTkZJR19T U0FfREVDT0RFUikgICAgICAgICAgICAgKz0gYXNzZGVjLm8gYXNzLm8NCj4gZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMgYi9saWJhdmNvZGVjL2FsbGNvZGVjcy5jDQo+ IGluZGV4IGYxMDUxOTYxN2UuLjA5ZjA2YzcxZDYgMTAwNjQ0DQo+IC0tLSBhL2xpYmF2Y29k ZWMvYWxsY29kZWNzLmMNCj4gKysrIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYw0KPiBAQCAt NDcsNiArNDcsNyBAQCBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9hbm1fZGVjb2RlcjsNCj4g ICBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9hbnNpX2RlY29kZXI7DQo+ICAgZXh0ZXJuIGNv bnN0IEZGQ29kZWMgZmZfYXBuZ19lbmNvZGVyOw0KPiAgIGV4dGVybiBjb25zdCBGRkNvZGVj IGZmX2FwbmdfZGVjb2RlcjsNCj4gK2V4dGVybiBjb25zdCBGRkNvZGVjIGZmX2Fwdl9kZWNv ZGVyOw0KPiAgIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2FyYmNfZGVjb2RlcjsNCj4gICBl eHRlcm4gY29uc3QgRkZDb2RlYyBmZl9hcmdvX2RlY29kZXI7DQo+ICAgZXh0ZXJuIGNvbnN0 IEZGQ29kZWMgZmZfYXN2MV9lbmNvZGVyOw0KPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9h cHZfZGVjb2RlLmMgYi9saWJhdmNvZGVjL2Fwdl9kZWNvZGUuYw0KPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi4wY2M0ZjU3ZGFiDQo+IC0tLSAvZGV2L251 bGwNCj4gKysrIGIvbGliYXZjb2RlYy9hcHZfZGVjb2RlLmMNCj4gQEAgLTAsMCArMSw0MDMg QEANCj4gKy8qDQo+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuDQo+ICsgKg0K PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcg0KPiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYw0KPiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyDQo+ICsgKiB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4N Cj4gKyAqDQo+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwNCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ICsgKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQ0K PiArICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4N Cj4gKyAqDQo+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQo+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZt cGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQo+ICsgKiBGb3VuZGF0 aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B IDAyMTEwLTEzMDEgVVNBDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgImxpYmF2dXRpbC9t YXN0ZXJpbmdfZGlzcGxheV9tZXRhZGF0YS5oIg0KPiArI2luY2x1ZGUgImxpYmF2dXRpbC9t ZW1faW50ZXJuYWwuaCINCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvcGl4ZGVzYy5oIg0KPiAr DQo+ICsjaW5jbHVkZSAiYXB2LmgiDQo+ICsjaW5jbHVkZSAiYXB2X2RlY29kZS5oIg0KPiAr I2luY2x1ZGUgImFwdl9kc3AuaCINCj4gKyNpbmNsdWRlICJhdmNvZGVjLmgiDQo+ICsjaW5j bHVkZSAiY2JzLmgiDQo+ICsjaW5jbHVkZSAiY2JzX2Fwdi5oIg0KPiArI2luY2x1ZGUgImNv ZGVjX2ludGVybmFsLmgiDQo+ICsjaW5jbHVkZSAiZGVjb2RlLmgiDQo+ICsjaW5jbHVkZSAi dGhyZWFkLmgiDQo+ICsNCj4gKw0KPiArdHlwZWRlZiBzdHJ1Y3QgQVBWRGVjb2RlQ29udGV4 dCB7DQo+ICsgICAgQ29kZWRCaXRzdHJlYW1Db250ZXh0ICpjYmM7DQo+ICsgICAgQVBWRFNQ Q29udGV4dCBkc3A7DQo+ICsNCj4gKyAgICBDb2RlZEJpdHN0cmVhbUZyYWdtZW50IGF1Ow0K PiArICAgIEFQVkRlcml2ZWRUaWxlSW5mbyB0aWxlX2luZm87DQo+ICsNCj4gKyAgICBBUFZW TENMVVQgZGVjb2RlX2x1dDsNCj4gKw0KPiArICAgIEFWRnJhbWUgKm91dHB1dF9mcmFtZTsN Cj4gK30gQVBWRGVjb2RlQ29udGV4dDsNCj4gKw0KPiArc3RhdGljIGNvbnN0IGVudW0gQVZQ aXhlbEZvcm1hdCBhcHZfZm9ybWF0X3RhYmxlWzVdWzVdID0gew0KPiArICAgIHsgQVZfUElY X0ZNVF9HUkFZOCwgICAgQVZfUElYX0ZNVF9HUkFZMTAsICAgICBBVl9QSVhfRk1UX0dSQVkx MiwgICAgIEFWX1BJWF9GTVRfR1JBWTE0LCBBVl9QSVhfRk1UX0dSQVkxNiB9LA0KPiArICAg IHsgMCB9LCAvLyA0OjI6MCBpcyBub3QgdmFsaWQuDQo+ICsgICAgeyBBVl9QSVhfRk1UX1lV VjQyMlAsICBBVl9QSVhfRk1UX1lVVjQyMlAxMCwgIEFWX1BJWF9GTVRfWVVWNDIyUDEyLCAg QVZfUElYX0ZNVF9HUkFZMTQsIEFWX1BJWF9GTVRfWVVWNDIyUDE2IH0sDQo+ICsgICAgeyBB Vl9QSVhfRk1UX1lVVjQ0NFAsICBBVl9QSVhfRk1UX1lVVjQ0NFAxMCwgIEFWX1BJWF9GTVRf WVVWNDQ0UDEyLCAgQVZfUElYX0ZNVF9HUkFZMTQsIEFWX1BJWF9GTVRfWVVWNDQ0UDE2IH0s DQo+ICsgICAgeyBBVl9QSVhfRk1UX1lVVkE0NDRQLCBBVl9QSVhfRk1UX1lVVkE0NDRQMTAs IEFWX1BJWF9GTVRfWVVWQTQ0NFAxMiwgQVZfUElYX0ZNVF9HUkFZMTQsIEFWX1BJWF9GTVRf WVVWQTQ0NFAxNiB9LA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGludCBhcHZfZGVjb2RlX2No ZWNrX2Zvcm1hdChBVkNvZGVjQ29udGV4dCAqYXZjdHgsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IEFQVlJhd0ZyYW1lSGVhZGVyICpoZWFkZXIpDQo+ ICt7DQo+ICsgICAgaW50IGVyciwgYml0X2RlcHRoOw0KPiArDQo+ICsgICAgYXZjdHgtPnBy b2ZpbGUgPSBoZWFkZXItPmZyYW1lX2luZm8ucHJvZmlsZV9pZGM7DQo+ICsgICAgYXZjdHgt PmxldmVsICAgPSBoZWFkZXItPmZyYW1lX2luZm8ubGV2ZWxfaWRjOw0KPiArDQo+ICsgICAg Yml0X2RlcHRoID0gaGVhZGVyLT5mcmFtZV9pbmZvLmJpdF9kZXB0aF9taW51czggKyA4Ow0K PiArICAgIGlmIChiaXRfZGVwdGggPCA4IHx8IGJpdF9kZXB0aCA+IDE2IHx8IGJpdF9kZXB0 aCAlIDIpIHsNCj4gKyAgICAgICAgYXZwcml2X3JlcXVlc3Rfc2FtcGxlKGF2Y3R4LCAiQml0 IGRlcHRoICVkIiwgYml0X2RlcHRoKTsNCj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1JfUEFU Q0hXRUxDT01FOw0KPiArICAgIH0NCj4gKyAgICBhdmN0eC0+cGl4X2ZtdCA9DQo+ICsgICAg ICAgIGFwdl9mb3JtYXRfdGFibGVbaGVhZGVyLT5mcmFtZV9pbmZvLmNocm9tYV9mb3JtYXRf aWRjXVtiaXRfZGVwdGggLSA0ID4+IDJdOw0KPiArDQo+ICsgICAgZXJyID0gZmZfc2V0X2Rp bWVuc2lvbnMoYXZjdHgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkZBTElH TihoZWFkZXItPmZyYW1lX2luZm8uZnJhbWVfd2lkdGgsICAxNiksDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRkZBTElHTihoZWFkZXItPmZyYW1lX2luZm8uZnJhbWVfaGVp Z2h0LCAxNikpOw0KPiArICAgIGlmIChlcnIgPCAwKSB7DQo+ICsgICAgICAgIC8vIFVuc3Vw cG9ydGVkIGZyYW1lIHNpemUuDQo+ICsgICAgICAgIHJldHVybiBlcnI7DQo+ICsgICAgfQ0K PiArICAgIGF2Y3R4LT53aWR0aCAgPSBoZWFkZXItPmZyYW1lX2luZm8uZnJhbWVfd2lkdGg7 DQo+ICsgICAgYXZjdHgtPmhlaWdodCA9IGhlYWRlci0+ZnJhbWVfaW5mby5mcmFtZV9oZWln aHQ7DQo+ICsNCj4gKyAgICBhdmN0eC0+c2FtcGxlX2FzcGVjdF9yYXRpbyA9IChBVlJhdGlv bmFsKXsgMSwgMSB9Ow0KPiArDQo+ICsgICAgYXZjdHgtPmNvbG9yX3ByaW1hcmllcyA9IGhl YWRlci0+Y29sb3JfcHJpbWFyaWVzOw0KPiArICAgIGF2Y3R4LT5jb2xvcl90cmMgICAgICAg PSBoZWFkZXItPnRyYW5zZmVyX2NoYXJhY3RlcmlzdGljczsNCj4gKyAgICBhdmN0eC0+Y29s b3JzcGFjZSAgICAgID0gaGVhZGVyLT5tYXRyaXhfY29lZmZpY2llbnRzOw0KPiArICAgIGF2 Y3R4LT5jb2xvcl9yYW5nZSAgICAgPSBoZWFkZXItPmZ1bGxfcmFuZ2VfZmxhZyA/IEFWQ09M X1JBTkdFX0pQRUcNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiBBVkNPTF9SQU5HRV9NUEVHOw0KPiArICAgIGF2Y3R4LT5jaHJv bWFfc2FtcGxlX2xvY2F0aW9uID0gQVZDSFJPTUFfTE9DX1RPUExFRlQ7DQo+ICsNCj4gKyAg ICBhdmN0eC0+cmVmcyA9IDA7DQo+ICsgICAgYXZjdHgtPmhhc19iX2ZyYW1lcyA9IDA7DQo+ ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGF2X2NvbGQgaW50 IGFwdl9kZWNvZGVfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZjdHgpDQo+ICt7DQo+ICsgICAg QVBWRGVjb2RlQ29udGV4dCAqYXB2ID0gYXZjdHgtPnByaXZfZGF0YTsNCj4gKyAgICBpbnQg ZXJyOw0KPiArDQo+ICsgICAgZXJyID0gZmZfY2JzX2luaXQoJmFwdi0+Y2JjLCBBVl9DT0RF Q19JRF9BUFYsIGF2Y3R4KTsNCj4gKyAgICBpZiAoZXJyIDwgMCkNCj4gKyAgICAgICAgcmV0 dXJuIGVycjsNCj4gKw0KPiArICAgIGZmX2Fwdl9lbnRyb3B5X2J1aWxkX2RlY29kZV9sdXQo JmFwdi0+ZGVjb2RlX2x1dCk7DQo+ICsNCj4gKyAgICBmZl9hcHZfZHNwX2luaXQoJmFwdi0+ ZHNwKTsNCj4gKw0KPiArICAgIGlmIChhdmN0eC0+ZXh0cmFkYXRhKSB7DQo+ICsgICAgICAg IGF2X2xvZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcsDQo+ICsgICAgICAgICAgICAgICAiQVBW IGRvZXMgbm90IHN1cHBvcnQgZXh0cmFkYXRhLlxuIik7DQoNCkVpdGhlciByZW1vdmUgdGhp cyBpbiBwcmVwYXJhdGlvbiBmb3IgZXh0cmFkYXRhIHRvIGJlIA0KZXhwb3J0ZWQvZ2VuZXJh dGVkLCBvciBvbmx5IHByaW50IGl0IGlmIGF2Y3R4LT5pbnRlcm5hbC0+aXNfY29weSBpcyAN CmZhbHNlLiBPdGhlcndpc2UgaXQgd2lsbCBiZSBwcmludCBzcGFtbWVkIHRocmVhZF9jb3Vu dCB0aW1lcyB3aGVuIHVzaW5nIA0KZnJhbWUgdGhyZWFkaW5nLg0KDQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBhdl9jb2xkIGludCBh cHZfZGVjb2RlX2Nsb3NlKEFWQ29kZWNDb250ZXh0ICphdmN0eCkNCj4gK3sNCj4gKyAgICBB UFZEZWNvZGVDb250ZXh0ICphcHYgPSBhdmN0eC0+cHJpdl9kYXRhOw0KPiArDQo+ICsgICAg ZmZfY2JzX2ZyYWdtZW50X2ZyZWUoJmFwdi0+YXUpOw0KPiArICAgIGZmX2Nic19jbG9zZSgm YXB2LT5jYmMpOw0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBpbnQgYXB2X2RlY29kZV9ibG9jayhBVkNvZGVjQ29udGV4dCAqYXZjdHgsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqb3V0cHV0LA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBwaXRjaCwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHZXRCaXRDb250ZXh0ICpnYmMsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQVBWRW50cm9weVN0YXRlICplbnRyb3B5X3N0YXRlLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBiaXRfZGVwdGgsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IHFwX3NoaWZ0LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVpbnQxNl90ICpxbWF0cml4KQ0KPiArew0KPiArICAgIEFQVkRlY29kZUNv bnRleHQgKmFwdiA9IGF2Y3R4LT5wcml2X2RhdGE7DQo+ICsgICAgaW50IGVycjsNCj4gKw0K PiArICAgIExPQ0FMX0FMSUdORURfMzIoaW50MTZfdCwgY29lZmYsIFs2NF0pOw0KPiArDQo+ ICsgICAgZXJyID0gZmZfYXB2X2VudHJvcHlfZGVjb2RlX2Jsb2NrKGNvZWZmLCBnYmMsIGVu dHJvcHlfc3RhdGUpOw0KPiArICAgIGlmIChlcnIgPCAwKQ0KPiArICAgICAgICByZXR1cm4g MDsNCj4gKw0KPiArICAgIGFwdi0+ZHNwLmRlY29kZV90cmFuc3F1YW50KG91dHB1dCwgcGl0 Y2gsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29lZmYsIHFtYXRyaXgs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0X2RlcHRoLCBxcF9zaGlm dCk7DQo+ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBh cHZfZGVjb2RlX3RpbGVfY29tcG9uZW50KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgdm9pZCAq ZGF0YSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgam9i LCBpbnQgdGhyZWFkKQ0KPiArew0KPiArICAgIEFQVlJhd0ZyYW1lICAgICAgICAgICAgICAg ICAgICAgICppbnB1dCA9IGRhdGE7DQo+ICsgICAgQVBWRGVjb2RlQ29udGV4dCAgICAgICAg ICAgICAgICAgICAqYXB2ID0gYXZjdHgtPnByaXZfZGF0YTsNCj4gKyAgICBjb25zdCBDb2Rl ZEJpdHN0cmVhbUFQVkNvbnRleHQgKmFwdl9jYmMgPSBhcHYtPmNiYy0+cHJpdl9kYXRhOw0K PiArICAgIGNvbnN0IEFQVkRlcml2ZWRUaWxlSW5mbyAgICAgKnRpbGVfaW5mbyA9ICZhcHZf Y2JjLT50aWxlX2luZm87DQo+ICsNCj4gKyAgICBpbnQgdGlsZV9pbmRleCA9IGpvYiAvIGFw dl9jYmMtPm51bV9jb21wOw0KPiArICAgIGludCBjb21wX2luZGV4ID0gam9iICUgYXB2X2Ni Yy0+bnVtX2NvbXA7DQo+ICsNCj4gKyAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKnBp eF9mbXRfZGVzYyA9DQo+ICsgICAgICAgIGF2X3BpeF9mbXRfZGVzY19nZXQoYXZjdHgtPnBp eF9mbXQpOw0KPiArDQo+ICsgICAgaW50IHN1Yl93ID0gY29tcF9pbmRleCA9PSAwID8gMSA6 IHBpeF9mbXRfZGVzYy0+bG9nMl9jaHJvbWFfdyArIDE7DQo+ICsgICAgaW50IHN1Yl9oID0g Y29tcF9pbmRleCA9PSAwID8gMSA6IHBpeF9mbXRfZGVzYy0+bG9nMl9jaHJvbWFfaCArIDE7 DQo+ICsNCj4gKyAgICBBUFZSYXdUaWxlICp0aWxlID0gJmlucHV0LT50aWxlW3RpbGVfaW5k ZXhdOw0KPiArDQo+ICsgICAgaW50IHRpbGVfeSA9IHRpbGVfaW5kZXggLyB0aWxlX2luZm8t PnRpbGVfY29sczsNCj4gKyAgICBpbnQgdGlsZV94ID0gdGlsZV9pbmRleCAlIHRpbGVfaW5m by0+dGlsZV9jb2xzOw0KPiArDQo+ICsgICAgaW50IHRpbGVfc3RhcnRfeCA9IHRpbGVfaW5m by0+Y29sX3N0YXJ0c1t0aWxlX3hdOw0KPiArICAgIGludCB0aWxlX3N0YXJ0X3kgPSB0aWxl X2luZm8tPnJvd19zdGFydHNbdGlsZV95XTsNCj4gKw0KPiArICAgIGludCB0aWxlX3dpZHRo ICA9IHRpbGVfaW5mby0+Y29sX3N0YXJ0c1t0aWxlX3ggKyAxXSAtIHRpbGVfc3RhcnRfeDsN Cj4gKyAgICBpbnQgdGlsZV9oZWlnaHQgPSB0aWxlX2luZm8tPnJvd19zdGFydHNbdGlsZV95 ICsgMV0gLSB0aWxlX3N0YXJ0X3k7DQo+ICsNCj4gKyAgICBpbnQgdGlsZV9tYl93aWR0aCAg PSB0aWxlX3dpZHRoICAvIEFQVl9NQl9XSURUSDsNCj4gKyAgICBpbnQgdGlsZV9tYl9oZWln aHQgPSB0aWxlX2hlaWdodCAvIEFQVl9NQl9IRUlHSFQ7DQo+ICsNCj4gKyAgICBpbnQgYmxr X21iX3dpZHRoICA9IDIgLyBzdWJfdzsNCj4gKyAgICBpbnQgYmxrX21iX2hlaWdodCA9IDIg LyBzdWJfaDsNCj4gKw0KPiArICAgIGludCBiaXRfZGVwdGg7DQo+ICsgICAgaW50IHFwX3No aWZ0Ow0KPiArICAgIExPQ0FMX0FMSUdORURfMzIodWludDE2X3QsIHFtYXRyaXhfc2NhbGVk LCBbNjRdKTsNCj4gKw0KPiArICAgIEdldEJpdENvbnRleHQgZ2JjOw0KPiArDQo+ICsgICAg QVBWRW50cm9weVN0YXRlIGVudHJvcHlfc3RhdGUgPSB7DQo+ICsgICAgICAgIC5sb2dfY3R4 ICAgICAgICAgICA9IGF2Y3R4LA0KPiArICAgICAgICAuZGVjb2RlX2x1dCAgICAgICAgPSAm YXB2LT5kZWNvZGVfbHV0LA0KPiArICAgICAgICAucHJldl9kYyAgICAgICAgICAgPSAwLA0K PiArICAgICAgICAucHJldl9kY19kaWZmICAgICAgPSAyMCwNCj4gKyAgICAgICAgLnByZXZf MXN0X2FjX2xldmVsID0gMCwNCj4gKyAgICB9Ow0KPiArDQo+ICsgICAgaW5pdF9nZXRfYml0 czgoJmdiYywgdGlsZS0+dGlsZV9kYXRhW2NvbXBfaW5kZXhdLA0KPiArICAgICAgICAgICAg ICAgICAgIHRpbGUtPnRpbGVfaGVhZGVyLnRpbGVfZGF0YV9zaXplW2NvbXBfaW5kZXhdKTsN Cj4gKw0KPiArICAgIC8vIENvbWJpbmUgdGhlIGJpdHN0cmVhbSBxdWFudGlzYXRpb24gbWF0 cml4IHdpdGggdGhlIHFwIHNjYWxpbmcNCj4gKyAgICAvLyBpbiBhZHZhbmNlLiAgKEluY2x1 ZGluZyBxcF9zaGlmdCBhcyB3ZWxsIHdvdWxkIG92ZXJmbG93IDE2IGJpdHMuKQ0KPiArICAg IC8vIEZpeCB0aGUgcm93IG9yZGVyaW5nIGF0IHRoZSBzYW1lIHRpbWUuDQo+ICsgICAgew0K PiArICAgICAgICBzdGF0aWMgY29uc3QgdWludDhfdCBhcHZfbGV2ZWxfc2NhbGVbNl0gPSB7 IDQwLCA0NSwgNTEsIDU3LCA2NCwgNzEgfTsNCj4gKyAgICAgICAgaW50IHFwID0gdGlsZS0+ dGlsZV9oZWFkZXIudGlsZV9xcFtjb21wX2luZGV4XTsNCj4gKyAgICAgICAgaW50IGxldmVs X3NjYWxlID0gYXB2X2xldmVsX3NjYWxlW3FwICUgNl07DQo+ICsNCj4gKyAgICAgICAgYml0 X2RlcHRoID0gYXB2X2NiYy0+Yml0X2RlcHRoOw0KPiArICAgICAgICBxcF9zaGlmdCAgPSBx cCAvIDY7DQo+ICsNCj4gKyAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCA4OyB5KyspIHsN Cj4gKyAgICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgODsgeCsrKQ0KPiArICAgICAg ICAgICAgICAgIHFtYXRyaXhfc2NhbGVkW3kgKiA4ICsgeF0gPSBsZXZlbF9zY2FsZSAqDQo+ ICsgICAgICAgICAgICAgICAgICAgIGlucHV0LT5mcmFtZV9oZWFkZXIucXVhbnRpemF0aW9u X21hdHJpeC5xX21hdHJpeFtjb21wX2luZGV4XVt4XVt5XTsNCj4gKyAgICAgICAgfQ0KPiAr ICAgIH0NCj4gKw0KPiArICAgIGZvciAoaW50IG1iX3kgPSAwOyBtYl95IDwgdGlsZV9tYl9o ZWlnaHQ7IG1iX3krKykgew0KPiArICAgICAgICBmb3IgKGludCBtYl94ID0gMDsgbWJfeCA8 IHRpbGVfbWJfd2lkdGg7IG1iX3grKykgew0KPiArICAgICAgICAgICAgZm9yIChpbnQgYmxr X3kgPSAwOyBibGtfeSA8IGJsa19tYl9oZWlnaHQ7IGJsa195KyspIHsNCj4gKyAgICAgICAg ICAgICAgICBmb3IgKGludCBibGtfeCA9IDA7IGJsa194IDwgYmxrX21iX3dpZHRoOyBibGtf eCsrKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgIGludCBmcmFtZV95ID0gKHRpbGVfc3Rh cnRfeSArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQVl9NQl9I RUlHSFQgKiBtYl95ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QVBWX1RSX1NJWkUgKiBibGtfeSkgLyBzdWJfaDsNCj4gKyAgICAgICAgICAgICAgICAgICAg aW50IGZyYW1lX3ggPSAodGlsZV9zdGFydF94ICsNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQVBWX01CX1dJRFRIICogbWJfeCArDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFQVl9UUl9TSVpFICogYmxrX3gpIC8gc3ViX3c7DQo+ ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IGZyYW1lX3BpdGNoID0gYXB2 LT5vdXRwdXRfZnJhbWUtPmxpbmVzaXplW2NvbXBfaW5kZXhdOw0KPiArICAgICAgICAgICAg ICAgICAgICB1aW50OF90ICAqYmxvY2tfc3RhcnQgPSBhcHYtPm91dHB1dF9mcmFtZS0+ZGF0 YVtjb21wX2luZGV4XSArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZyYW1lX3kgKiBmcmFtZV9waXRjaCArIDIgKiBmcmFtZV94Ow0KPiArDQo+ ICsgICAgICAgICAgICAgICAgICAgIGFwdl9kZWNvZGVfYmxvY2soYXZjdHgsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfc3RhcnQsIGZyYW1lX3Bp dGNoLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnYmMsICZl bnRyb3B5X3N0YXRlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJpdF9kZXB0aCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBx cF9zaGlmdCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxbWF0 cml4X3NjYWxlZCk7DQo+ICsgICAgICAgICAgICAgICAgfQ0KPiArICAgICAgICAgICAgfQ0K PiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgYXZfbG9nKGF2Y3R4LCBBVl9M T0dfREVCVUcsDQo+ICsgICAgICAgICAgICJEZWNvZGVkIHRpbGUgJWQgY29tcG9uZW50ICVk OiAlZHglZCBNQnMgc3RhcnRpbmcgYXQgKCVkLCVkKVxuIiwNCj4gKyAgICAgICAgICAgdGls ZV9pbmRleCwgY29tcF9pbmRleCwgdGlsZV9tYl93aWR0aCwgdGlsZV9tYl9oZWlnaHQsDQo+ ICsgICAgICAgICAgIHRpbGVfc3RhcnRfeCwgdGlsZV9zdGFydF95KTsNCj4gKw0KPiArICAg IHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGFwdl9kZWNvZGUoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpvdXRwdXQsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgQVBWUmF3RnJhbWUgKmlucHV0KQ0KPiArew0KPiArICAgIEFQVkRlY29kZUNvbnRl eHQgICAgICAgICAgICAgICAgICAgKmFwdiA9IGF2Y3R4LT5wcml2X2RhdGE7DQo+ICsgICAg Y29uc3QgQ29kZWRCaXRzdHJlYW1BUFZDb250ZXh0ICphcHZfY2JjID0gYXB2LT5jYmMtPnBy aXZfZGF0YTsNCj4gKyAgICBjb25zdCBBUFZEZXJpdmVkVGlsZUluZm8gICAgICp0aWxlX2lu Zm8gPSAmYXB2X2NiYy0+dGlsZV9pbmZvOw0KPiArICAgIGludCBlcnIsIGpvYl9jb3VudDsN Cj4gKw0KPiArICAgIGVyciA9IGFwdl9kZWNvZGVfY2hlY2tfZm9ybWF0KGF2Y3R4LCAmaW5w dXQtPmZyYW1lX2hlYWRlcik7DQo+ICsgICAgaWYgKGVyciA8IDApIHsNCj4gKyAgICAgICAg YXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJVbnN1cHBvcnRlZCBmb3JtYXQgcGFyYW1l dGVycy5cbiIpOw0KPiArICAgICAgICByZXR1cm4gZXJyOw0KPiArICAgIH0NCj4gKw0KPiAr ICAgIGVyciA9IGZmX3RocmVhZF9nZXRfYnVmZmVyKGF2Y3R4LCBvdXRwdXQsIDApOw0KPiAr ICAgIGlmIChlcnIpIHsNCj4gKyAgICAgICAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1Is ICJObyBvdXRwdXQgZnJhbWUgc3VwcGxpZWQuXG4iKTsNCj4gKyAgICAgICAgcmV0dXJuIGVy cjsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBhcHYtPm91dHB1dF9mcmFtZSA9IG91dHB1dDsN Cj4gKw0KPiArICAgIC8vIEVhY2ggY29tcG9uZW50IHdpdGhpbiBhIHRpbGUgaXMgaW5kZXBl bmRlbnQgb2YgZXZlcnkgb3RoZXIsDQo+ICsgICAgLy8gc28gd2UgY2FuIGRlY29kZSBhbGwg aW4gcGFyYWxsZWwuDQo+ICsgICAgam9iX2NvdW50ID0gdGlsZV9pbmZvLT5udW1fdGlsZXMg KiBhcHZfY2JjLT5udW1fY29tcDsNCj4gKw0KPiArICAgIGF2Y3R4LT5leGVjdXRlMihhdmN0 eCwgYXB2X2RlY29kZV90aWxlX2NvbXBvbmVudCwNCj4gKyAgICAgICAgICAgICAgICAgICAg aW5wdXQsIE5VTEwsIGpvYl9jb3VudCk7DQo+ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30N Cj4gKw0KPiArc3RhdGljIGludCBhcHZfZGVjb2RlX21ldGFkYXRhKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgQVBWUmF3TWV0YWRhdGEgKm1kKQ0KPiArew0KPiArICAgIGludCBlcnI7 DQo+ICsNCj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1kLT5tZXRhZGF0YV9jb3VudDsg aSsrKSB7DQo+ICsgICAgICAgIGNvbnN0IEFQVlJhd01ldGFkYXRhUGF5bG9hZCAqcGwgPSAm bWQtPnBheWxvYWRzW2ldOw0KPiArDQo+ICsgICAgICAgIHN3aXRjaCAocGwtPnBheWxvYWRf dHlwZSkgew0KPiArICAgICAgICBjYXNlIEFQVl9NRVRBREFUQV9NRENWOg0KPiArICAgICAg ICAgICAgew0KPiArICAgICAgICAgICAgICAgIGNvbnN0IEFQVlJhd01ldGFkYXRhTURDViAq bWRjdiA9ICZwbC0+bWRjdjsNCj4gKyAgICAgICAgICAgICAgICBBVk1hc3RlcmluZ0Rpc3Bs YXlNZXRhZGF0YSAqbWRtOw0KPiArDQo+ICsgICAgICAgICAgICAgICAgZXJyID0gZmZfZGVj b2RlX21hc3RlcmluZ19kaXNwbGF5X25ldyhhdmN0eCwgZnJhbWUsICZtZG0pOw0KPiArICAg ICAgICAgICAgICAgIGlmIChlcnIgPCAwKQ0KPiArICAgICAgICAgICAgICAgICAgICByZXR1 cm4gZXJyOw0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWYgKG1kbSkgew0KPiArICAgICAg ICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykgew0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgbWRtLT5kaXNwbGF5X3ByaW1hcmllc1tpXVswXSA9DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZfbWFrZV9xKG1kY3YtPnByaW1hcnlfY2hy b21hdGljaXR5X3hbaV0sIDEgPDwgMTYpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAg bWRtLT5kaXNwbGF5X3ByaW1hcmllc1tpXVsxXSA9DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXZfbWFrZV9xKG1kY3YtPnByaW1hcnlfY2hyb21hdGljaXR5X3lbaV0sIDEg PDwgMTYpOw0KPiArICAgICAgICAgICAgICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgbWRtLT53aGl0ZV9wb2ludFswXSA9DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBhdl9tYWtlX3EobWRjdi0+d2hpdGVfcG9pbnRfY2hyb21hdGljaXR5X3gsIDEgPDwg MTYpOw0KPiArICAgICAgICAgICAgICAgICAgICBtZG0tPndoaXRlX3BvaW50WzFdID0NCj4g KyAgICAgICAgICAgICAgICAgICAgICAgIGF2X21ha2VfcShtZGN2LT53aGl0ZV9wb2ludF9j aHJvbWF0aWNpdHlfeSwgMSA8PCAxNik7DQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAg bWRtLT5tYXhfbHVtaW5hbmNlID0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGF2X21h a2VfcShtZGN2LT5tYXhfbWFzdGVyaW5nX2x1bWluYW5jZSwgMSA8PCA4KTsNCj4gKyAgICAg ICAgICAgICAgICAgICAgbWRtLT5taW5fbHVtaW5hbmNlID0NCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGF2X21ha2VfcShtZGN2LT5taW5fbWFzdGVyaW5nX2x1bWluYW5jZSwgMSA8 PCAxNCk7DQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgbWRtLT5oYXNfcHJpbWFyaWVz ID0gMTsNCj4gKyAgICAgICAgICAgICAgICAgICAgbWRtLT5oYXNfbHVtaW5hbmNlID0gMTsN Cj4gKyAgICAgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgICAg ICBicmVhazsNCj4gKyAgICAgICAgY2FzZSBBUFZfTUVUQURBVEFfQ0xMOg0KPiArICAgICAg ICAgICAgew0KPiArICAgICAgICAgICAgICAgIGNvbnN0IEFQVlJhd01ldGFkYXRhQ0xMICpj bGwgPSAmcGwtPmNsbDsNCj4gKyAgICAgICAgICAgICAgICBBVkNvbnRlbnRMaWdodE1ldGFk YXRhICpjbG07DQo+ICsNCj4gKyAgICAgICAgICAgICAgICBlcnIgPSBmZl9kZWNvZGVfY29u dGVudF9saWdodF9uZXcoYXZjdHgsIGZyYW1lLCAmY2xtKTsNCj4gKyAgICAgICAgICAgICAg ICBpZiAoZXJyIDwgMCkNCj4gKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4g Kw0KPiArICAgICAgICAgICAgICAgIGlmIChjbG0pIHsNCj4gKyAgICAgICAgICAgICAgICAg ICAgY2xtLT5NYXhDTEwgID0gY2xsLT5tYXhfY2xsOw0KPiArICAgICAgICAgICAgICAgICAg ICBjbG0tPk1heEZBTEwgPSBjbGwtPm1heF9mYWxsOw0KPiArICAgICAgICAgICAgICAgIH0N Cj4gKyAgICAgICAgICAgIH0NCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICBk ZWZhdWx0Og0KPiArICAgICAgICAgICAgLy8gSWdub3JlIG90aGVyIHR5cGVzIG9mIG1ldGFk YXRhLg0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgYXB2X2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4 dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCAqZ290X2ZyYW1lLCBBVlBhY2tldCAqcGFja2V0KQ0KPiArew0KPiArICAgIEFQ VkRlY29kZUNvbnRleHQgICAgICAqYXB2ID0gYXZjdHgtPnByaXZfZGF0YTsNCj4gKyAgICBD b2RlZEJpdHN0cmVhbUZyYWdtZW50ICphdSA9ICZhcHYtPmF1Ow0KPiArICAgIGludCBlcnI7 DQo+ICsNCj4gKyAgICBlcnIgPSBmZl9jYnNfcmVhZF9wYWNrZXQoYXB2LT5jYmMsIGF1LCBw YWNrZXQpOw0KPiArICAgIGlmIChlcnIgPCAwKSB7DQo+ICsgICAgICAgIGF2X2xvZyhhdmN0 eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIHJlYWQgcGFja2V0LlxuIik7DQo+ICsgICAg ICAgIHJldHVybiBlcnI7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBhdS0+bmJfdW5pdHM7IGkrKykgew0KPiArICAgICAgICBDb2RlZEJpdHN0cmVhbVVu aXQgKnBidSA9ICZhdS0+dW5pdHNbaV07DQo+ICsNCj4gKyAgICAgICAgc3dpdGNoIChwYnUt PnR5cGUpIHsNCj4gKyAgICAgICAgY2FzZSBBUFZfUEJVX1BSSU1BUllfRlJBTUU6DQoNCklm IHRoZSBvdGhlciBmcmFtZSB0eXBlcyBhcmUgbm90IGdvaW5nIHRvIGJlIHN1cHBvcnRlZCBm b3Igbm93LCB0aGVuIA0KZGVmaW5lIGRlY29tcG9zZV91bml0X3R5cGVzIHRvIGlnbm9yZSB0 aGVtLg0KDQo+ICsgICAgICAgICAgICBlcnIgPSBhcHZfZGVjb2RlKGF2Y3R4LCBmcmFtZSwg cGJ1LT5jb250ZW50KTsNCj4gKyAgICAgICAgICAgIGlmIChlcnIgPCAwKQ0KPiArICAgICAg ICAgICAgICAgIHJldHVybiBlcnI7DQo+ICsgICAgICAgICAgICAqZ290X2ZyYW1lID0gMTsN Cj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICBjYXNlIEFQVl9QQlVfTUVUQURB VEE6DQo+ICsgICAgICAgICAgICBhcHZfZGVjb2RlX21ldGFkYXRhKGF2Y3R4LCBmcmFtZSwg cGJ1LT5jb250ZW50KTsNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICBjYXNl IEFQVl9QQlVfQUNDRVNTX1VOSVRfSU5GT1JNQVRJT046DQo+ICsgICAgICAgIGNhc2UgQVBW X1BCVV9GSUxMRVI6DQoNCkFuZCBhZGQgdGhlc2UgdG9vLg0KDQo+ICsgICAgICAgICAgICAv LyBJZ25vcmVkIGJ5IHRoZSBkZWNvZGVyLg0KPiArICAgICAgICAgICAgYnJlYWs7DQo+ICsg ICAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgICAgICBhdl9sb2coYXZjdHgsIEFWX0xPR19X QVJOSU5HLA0KDQpNYXliZSBWRVJCT1NFIGluc3RlYWQ/IElmIGEgc2FtcGxlIGhhcyBub24g c3VwcG9ydGVkIGZyYW1lIHR5cGVzLCB0aGlzIA0Kd2lsbCBiZSBzcGFtbWVkIGluIHN0YW5k YXJkIGxvZyBsZXZlbHMuDQoNCklmIGFueXRoaW5nLCBwcmludCBhdCBXQVJOSU5HIGxldmVs IGZvciBQQlUgdHlwZXMgbm90IGN1cnJlbnRseSBkZWZpbmVkLg0KDQo+ICsgICAgICAgICAg ICAgICAgICAgIklnbm9yaW5nIHVuc3VwcG9ydGVkIFBCVSB0eXBlICVkLlxuIiwgcGJ1LT50 eXBlKTsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiArICAgIGZmX2Nic19mcmFn bWVudF9yZXNldChhdSk7DQo+ICsNCj4gKyAgICByZXR1cm4gcGFja2V0LT5zaXplOw0KPiAr fQ0KPiArDQo+ICtjb25zdCBGRkNvZGVjIGZmX2Fwdl9kZWNvZGVyID0gew0KPiArICAgIC5w Lm5hbWUgICAgICAgICAgICAgICAgPSAiYXB2IiwNCj4gKyAgICBDT0RFQ19MT05HX05BTUUo IkFkdmFuY2VkIFByb2Zlc3Npb25hbCBWaWRlbyIpLA0KPiArICAgIC5wLnR5cGUgICAgICAg ICAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sDQo+ICsgICAgLnAuaWQgICAgICAgICAg ICAgICAgICA9IEFWX0NPREVDX0lEX0FQViwNCj4gKyAgICAucHJpdl9kYXRhX3NpemUgICAg ICAgID0gc2l6ZW9mKEFQVkRlY29kZUNvbnRleHQpLA0KPiArICAgIC5pbml0ICAgICAgICAg ICAgICAgICAgPSBhcHZfZGVjb2RlX2luaXQsDQo+ICsgICAgLmNsb3NlICAgICAgICAgICAg ICAgICA9IGFwdl9kZWNvZGVfY2xvc2UsDQo+ICsgICAgRkZfQ09ERUNfREVDT0RFX0NCKGFw dl9kZWNvZGVfZnJhbWUpLA0KPiArICAgIC5wLmNhcGFiaWxpdGllcyAgICAgICAgPSBBVl9D T0RFQ19DQVBfRFIxIHwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfQ09E RUNfQ0FQX1NMSUNFX1RIUkVBRFMgfA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBVl9DT0RFQ19DQVBfRlJBTUVfVEhSRUFEUywNCj4gK307DQoNCg== --------------bNZRE2SHhg6ML01OqGXpamYY-- --------------SQQkWgvVQ3o0dq4c6oq8y9dG Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEEd1EujP2UoWlX5pp6FGMBrXN2WeAFAmgJqioFAwAAAAAACgkQFGMBrXN2WeDS ZwgAqKl8jhkLtIcysIZfjFZys6BYKTWlFGyhNA21xM6j636OS7LJNzKcEwccpGk2NJxtMOXIy7Ze FaDvMKJOBQPrdJd53+DcFkKbTjH/Df1p4cwJ865b2N0SIy947ng+6VSpC+KPN13aqCk6odn+kGY7 AZAul91kjr9RsttAOYJdKLWRcvEkqylDChpV4IRjdx/uclh95NW7X2tFsPQi8ttVjjx/xhd4zHts IVNL15ySkZXPHDUFeoBT9wLltFL54m4NR3kw9VRtZTk+PR9oEnhZBIrb/EjSHOPilvy2srwno2LD kyMveTNPnIsLsYndC+54glU8pMehMui/gYmsDGPqOA== =FssT -----END PGP SIGNATURE----- --------------SQQkWgvVQ3o0dq4c6oq8y9dG-- --===============8245030239298322252== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --===============8245030239298322252==--