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 ESMTP id 293C3499CA for ; Sun, 25 Feb 2024 10:36:23 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6126068C6A7; Sun, 25 Feb 2024 12:36:20 +0200 (EET) Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF42E68ADF1 for ; Sun, 25 Feb 2024 12:36:13 +0200 (EET) Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-412a38e2adaso1325245e9.1 for ; Sun, 25 Feb 2024 02:36:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20230601.gappssmtp.com; s=20230601; t=1708857373; x=1709462173; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=rcbNEbrFauEV2ZzuOEI1dZoZ9LbjaBRRzhmF9ScYiVc=; b=HI0b+W59MZFEYGjlQdQb70HWJtbF4PienwU9pTEO09towA6LweVoNTCyecOST/GNJp 3/GbGZtpniyzfxGeo0nHGfNT+ejbBpmWJr7A0nY/4z5CMV+qqLYx/tSPXTgnrpepm16y G+5kF/9PUPDXRcOB0AlolNcpP85Po4XAozuCncWv77Sb/7uRiIfbC94yc+yt48LxI+cZ Uh4g2WFjVt7HV+f7ve1JWapqnYbBGAbQNTaICGkK1+vsLW8cg89RGrF+g2EPBg3ZskpV hR3hOxNx1uPQoKUXkKVPGuIKE9KWuuCAVaSpykoxO1c01WnAb5Tbpr57RuF6kfp2O3X6 gklw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708857373; x=1709462173; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rcbNEbrFauEV2ZzuOEI1dZoZ9LbjaBRRzhmF9ScYiVc=; b=IkYPf6OO3fPXy2C+GObq82wXjwDVuEQVd7wDsyWIiHG8f9c+X2BYpR2QeG+bJKgqz5 Rax3hzJRjYYq28GEraZ10UcTi7Xx0jpC4cvgpextfovZeKTivqLCnhu7C3sDvcJz/8G6 OxqI4xQAj7jMLHOBhWk5rg++QO6f1h5ggDTQro3mfePh99out3Wd2iatmvaTs5Sd9sYt uOEuGS7GVTeJK2h49Yv1ithRJSmiViF/IgSOxP9E1TV0ZD2K24kOD6N56BC+1LiAuJvm ZRFFfkDUdRKhtDF0P55WDdXl5aldSc2FcVvqr9fGREmpY29Ufa0CcwZwMnJnk232mF4I n+1Q== X-Gm-Message-State: AOJu0YydTJpWZmt31BtnMWy2Azfdm2ZlzwgxpzLY+AZpLNlkVDEQW1cR 1rHM+8c4TytWJG/TeOlfQieAJA3D3YBYXE/04oICIRlE72Ko9yJk5kTllabW0wqceOExJA8RGjM 9 X-Google-Smtp-Source: AGHT+IFh1NUNthBzY6oYf8qCB/xse9xBhHRMNH08ozGTxDWAW+McBDlgHmKyYtktbqQuECPekKePdw== X-Received: by 2002:a05:600c:3c9d:b0:412:9736:d196 with SMTP id bg29-20020a05600c3c9d00b004129736d196mr4035077wmb.33.1708857372490; Sun, 25 Feb 2024 02:36:12 -0800 (PST) Received: from [192.168.0.15] (cpc92302-cmbg19-2-0-cust1183.5-4.cable.virginm.net. [82.1.212.160]) by smtp.gmail.com with ESMTPSA id ba21-20020a0560001c1500b0033dc3fe1046sm3819045wrb.77.2024.02.25.02.36.11 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 25 Feb 2024 02:36:12 -0800 (PST) Message-ID: Date: Sun, 25 Feb 2024 10:36:40 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <13e245fe-7b6d-4dbc-a0bc-481deae9b658@mail.ru> From: Mark Thompson In-Reply-To: <13e245fe-7b6d-4dbc-a0bc-481deae9b658@mail.ru> Subject: Re: [FFmpeg-devel] [PATCH 1/2] Add support d3d11va Intel Hevc Rext 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMjUvMDIvMjAyNCAwMjoyMiwg0JLQvtC00Y/QvdC90LjQutC+0LIg0JAu0JIuIHZpYSBmZm1w ZWctZGV2ZWwgd3JvdGU6CiA+IEZyb20gZWQ4ZmRhNjJiYmRiYzYyZjc1NjU4OTFjOTM1OTY2Yzkz MWQwMDFjYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKID4gRnJvbTogQWxla3NvaWQgPEFsZWtz b2lkMTk3OEBtYWlsLnJ1PgogPiBEYXRlOiBUaHUsIDIyIEZlYiAyMDI0IDE5OjE1OjQ4ICsxMDAw CiA+IFN1YmplY3Q6IFtQQVRDSCAxLzJdIEFkZCBzdXBwb3J0IGQzZDExdmEgSW50ZWwgSGV2YyBS ZXh0IGRlY29kZXIuCiA+CiA+IFNpZ25lZC1vZmYtYnk6IEFsZWtzb2lkIDxBbGVrc29pZDE5NzhA bWFpbC5ydT4KID4gLS0tCiA+ICBsaWJhdmNvZGVjL2QzZDEydmFfaGV2Yy5jICAgICB8ICAyICst CiA+ICBsaWJhdmNvZGVjL2R4dmEyLmMgICAgICAgICAgICB8IDY4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tCiA+ICBsaWJhdmNvZGVjL2R4dmEyX2hldmMuYyAgICAgICB8IDQx ICsrKysrKysrKysrKysrKysrKy0tLQogPiAgbGliYXZjb2RlYy9keHZhMl9pbnRlcm5hbC5oICAg fCAzOCArKysrKysrKysrKysrKysrKysrLQogPiAgbGliYXZjb2RlYy9oZXZjZGVjLmMgICAgICAg ICAgfCAxNiArKysrKysrKysKID4gIGxpYmF2dXRpbC9od2NvbnRleHRfZDNkMTF2YS5jIHwgMjYg KysrKysrKysrKystLS0KID4gIDYgZmlsZXMgY2hhbmdlZCwgMTc4IGluc2VydGlvbnMoKyksIDEz IGRlbGV0aW9ucygtKQoKV2hhdCBlbGVtZW50cyBhcmUgSW50ZWwtc3BlY2lmaWMgYWJvdXQgdGhp cz8KClByZXN1bWFibHkgdGhlcmUgd2lsbCBiZSBhbiBvZmZpY2lhbCByZXh0IG1vZGUgZm9yIEQz RCBpbiBmdXR1cmU7IGFyZSB0aGVyZSBhbnkgcG9zc2libGUgcHJvYmxlbXMgd2l0aCBoYXZpbmcg dGhpcyB2ZW5kb3IgZXh0ZW5zaW9uIGluIHRoYXQgY2FzZT8KCiA+IGRpZmYgLS1naXQgYS9saWJh dmNvZGVjL2QzZDEydmFfaGV2Yy5jIGIvbGliYXZjb2RlYy9kM2QxMnZhX2hldmMuYwogPiBpbmRl eCBhNDk2NGEwNWM2Li4wOTEyZTAxYjdkIDEwMDY0NAogPiAtLS0gYS9saWJhdmNvZGVjL2QzZDEy dmFfaGV2Yy5jCiA+ICsrKyBiL2xpYmF2Y29kZWMvZDNkMTJ2YV9oZXZjLmMKID4gQEAgLTYyLDcg KzYyLDcgQEAgc3RhdGljIGludCBkM2QxMnZhX2hldmNfc3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LCBhdl91bnVzZWQgY29uc3QgdWludDgKID4KID4gICAgICBjdHgtPnVzZWRfbWFz ayA9IDA7CiA+CiA+IC0gICAgZmZfZHh2YTJfaGV2Y19maWxsX3BpY3R1cmVfcGFyYW1ldGVycyhh dmN0eCwgKEFWRFhWQUNvbnRleHQgKiljdHgsICZjdHhfcGljLT5wcCk7CiA+ICsgICAgZmZfZHh2 YTJfaGV2Y19maWxsX3BpY3R1cmVfcGFyYW1ldGVycyhhdmN0eCwgKEFWRFhWQUNvbnRleHQgKilj dHgsIChEWFZBX1BpY1BhcmFtc19IRVZDX1JleHQqKSZjdHhfcGljLT5wcCk7CgpHZXQgdGhlIHR5 cGUgcmlnaHQgdG8gYXZvaWQgdGhlIGNhc3QuCgogPgogPiAgICAgIGZmX2R4dmEyX2hldmNfZmls bF9zY2FsaW5nX2xpc3RzKGF2Y3R4LCAoQVZEWFZBQ29udGV4dCAqKWN0eCwgJmN0eF9waWMtPnFt KTsKID4KID4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZHh2YTIuYyBiL2xpYmF2Y29kZWMvZHh2 YTIuYwogPiBpbmRleCA1OTAyNTYzM2Y3Li5hNjExOTg5OTExIDEwMDY0NAogPiAtLS0gYS9saWJh dmNvZGVjL2R4dmEyLmMKID4gKysrIGIvbGliYXZjb2RlYy9keHZhMi5jCiA+IEBAIC01MCw2ICs1 MCwxMyBAQCBERUZJTkVfR1VJRChmZl9EWFZBMl9Ob0VuY3J5cHQsICAgICAgICAgIDB4MWI4MWJl RDAsIDB4YTBjNywweDExZDMsMHhiOSwweDg0LDB4MAogPiAgREVGSU5FX0dVSUQoZmZfR1VJRF9O VUxMLCAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAweDAwMDAsMHgwMDAwLDB4MDAsMHgwMCww eDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCk7CiA+ICBERUZJTkVfR1VJRChmZl9JSURfSURp cmVjdFhWaWRlb0RlY29kZXJTZXJ2aWNlLCAweGZjNTFhNTUxLDB4ZDVlNywweDExZDksMHhhZiww eDU1LDB4MDAsMHgwNSwweDRlLDB4NDMsMHhmZiwweDAyKTsKID4KID4gK0RFRklORV9HVUlEKGZm X0RYVkEyX0hFVkNfVkxEX01haW4xMl9JbnRlbCwgICAgIDB4OEZGOEEzQUEsIDB4QzQ1NiwgMHg0 MTMyLCAweEI2LCAweEVGLCAweDY5LCAweEQ5LCAweERELCAweDcyLCAweDU3LCAweDFEKTsKID4g K0RFRklORV9HVUlEKGZmX0RYVkEyX0hFVkNfVkxEX01haW40MjJfMTBfSW50ZWwsIDB4RTQ4NERD QjgsIDB4Q0FDOSwgMHg0ODU5LCAweDk5LCAweEY1LCAweDVDLCAweDBELCAweDQ1LCAweDA2LCAw eDkwLCAweDg5KTsKID4gK0RFRklORV9HVUlEKGZmX0RYVkEyX0hFVkNfVkxEX01haW40MjJfMTJf SW50ZWwsIDB4QzIzREQ4NTcsIDB4ODc0QiwgMHg0MjNDLCAweEI2LCAweEUwLCAweDgyLCAweENF LCAweEFBLCAweDlCLCAweDExLCAweDhBKTsKID4gK0RFRklORV9HVUlEKGZmX0RYVkEyX0hFVkNf VkxEX01haW40NDRfSW50ZWwsICAgIDB4NDFBNUFGOTYsIDB4RTQxNSwgMHg0QjBDLCAweDlELCAw eDAzLCAweDkwLCAweDc4LCAweDU4LCAweEUyLCAweDNFLCAweDc4KTsKID4gK0RFRklORV9HVUlE KGZmX0RYVkEyX0hFVkNfVkxEX01haW40NDRfMTBfSW50ZWwsIDB4NkE2QTgxQkEsIDB4OTEyQSwg MHg0ODVELCAweEI1LCAweDdGLCAweENDLCAweEQyLCAweEQzLCAweDdCLCAweDhELCAweDk0KTsK ID4gK0RFRklORV9HVUlEKGZmX0RYVkEyX0hFVkNfVkxEX01haW40NDRfMTJfSW50ZWwsIDB4NUIw OEUzNUQsIDB4MEM2NiwgMHg0QzUxLCAweEE2LCAweEYxLCAweDg5LCAweEQwLCAweDBDLCAweEIy LCAweEMxLCAweDk3KTsKCldoZXJlIGFyZSB0aGVzZSBHVUlEcyBkb2N1bWVudGVkPwoKID4gKwog PiAgdHlwZWRlZiBzdHJ1Y3QgZHh2YV9tb2RlIHsKID4gICAgICBjb25zdCBHVUlEICAgICAqZ3Vp ZDsKID4gICAgICBlbnVtIEFWQ29kZWNJRCBjb2RlYzsKID4gQEAgLTc1LDYgKzgyLDggQEAgc3Rh dGljIGNvbnN0IGludCBwcm9mX3ZwOV9wcm9maWxlMltdID0ge0FWX1BST0ZJTEVfVlA5XzIsCiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfUFJPRklMRV9VTktO T1dOfTsKID4gIHN0YXRpYyBjb25zdCBpbnQgcHJvZl9hdjFfcHJvZmlsZTBbXSA9IHtBVl9QUk9G SUxFX0FWMV9NQUlOLAogPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFWX1BST0ZJTEVfVU5LTk9XTn07CiA+ICtzdGF0aWMgY29uc3QgaW50IHByb2ZfaGV2Y19yZXh0 W10gICAgPSB7QVZfUFJPRklMRV9IRVZDX1JFWFQsCiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQVZfUFJPRklMRV9VTktOT1dOfTsKID4KID4gIHN0YXRpYyBjb25z dCBkeHZhX21vZGUgZHh2YV9tb2Rlc1tdID0gewogPiAgICAgIC8qIE1QRUctMiAqLwogPiBAQCAt MTA0LDYgKzExMywxNCBAQCBzdGF0aWMgY29uc3QgZHh2YV9tb2RlIGR4dmFfbW9kZXNbXSA9IHsK ID4gICAgICAvKiBBVjEgKi8KID4gICAgICB7ICZmZl9EWFZBMl9Nb2RlQVYxX1ZMRF9Qcm9maWxl MCwgICAgICAgQVZfQ09ERUNfSURfQVYxLCBwcm9mX2F2MV9wcm9maWxlMCB9LAogPgogPiArICAg IC8qIEhFVkMvSC4yNjUgUmV4dCAqLwogPiArICAgIHsgJmZmX0RYVkEyX0hFVkNfVkxEX01haW4x Ml9JbnRlbCwgICAgIEFWX0NPREVDX0lEX0hFVkMsIHByb2ZfaGV2Y19yZXh0IH0sCiA+ICsgICAg eyAmZmZfRFhWQTJfSEVWQ19WTERfTWFpbjQyMl8xMF9JbnRlbCwgQVZfQ09ERUNfSURfSEVWQywg cHJvZl9oZXZjX3JleHQgfSwKID4gKyAgICB7ICZmZl9EWFZBMl9IRVZDX1ZMRF9NYWluNDIyXzEy X0ludGVsLCBBVl9DT0RFQ19JRF9IRVZDLCBwcm9mX2hldmNfcmV4dCB9LAogPiArICAgIHsgJmZm X0RYVkEyX0hFVkNfVkxEX01haW40NDRfSW50ZWwsICAgIEFWX0NPREVDX0lEX0hFVkMsIHByb2Zf aGV2Y19yZXh0IH0sCiA+ICsgICAgeyAmZmZfRFhWQTJfSEVWQ19WTERfTWFpbjQ0NF8xMF9JbnRl bCwgQVZfQ09ERUNfSURfSEVWQywgcHJvZl9oZXZjX3JleHQgfSwKID4gKyAgICB7ICZmZl9EWFZB Ml9IRVZDX1ZMRF9NYWluNDQ0XzEyX0ludGVsLCBBVl9DT0RFQ19JRF9IRVZDLCBwcm9mX2hldmNf cmV4dCB9LAoKRG9lc24ndCB0aGlzIG5lZWQgbW9yZSBkZXRhaWwgYWJvdXQgd2hhdCB0aGUgbW9k ZXMgYWN0dWFsbHkgc3VwcG9ydD8gIERlY2xhcmluZyB0aGF0IGFueSBvbmUgb2YgdGhlc2Ugc3Vw cG9ydHMgYWxsIHJleHQgc3RyZWFtcyBkb2VzIG5vdCBzZWVtIHJpZ2h0LgoKUmVsYXRlZDogd2hh dCBpcyB0aGUgZGVzaXJlZCBiZWhhdmlvdXIgaWYgeW91IGhhdmUgYSBZVVYgNDoyOjAgOC1iaXQg c3RyZWFtIGJ1dCB0aGUgcHJvZmlsZSBpcyByZXh0PwoKID4gKwogPiAgICAgIHsgTlVMTCwgICAg ICAgICAgICAgICAgICAgICAgICAgIDAgfSwKID4gIH07CiA+CiA+IEBAIC0zMDEsNiArMzE4LDE0 IEBAIHN0YXRpYyBpbnQgZHh2YV9nZXRfZGVjb2Rlcl9ndWlkKEFWQ29kZWNDb250ZXh0ICphdmN0 eCwgdm9pZCAqc2VydmljZSwgdm9pZCAqc3VyCiA+ICAgICAgaWYgKElzRXF1YWxHVUlEKGRlY29k ZXJfZ3VpZCwgJmZmX0RYVkFERElfSW50ZWxfTW9kZUgyNjRfRSkpCiA+ICAgICAgICAgIHNjdHgt Pndvcmthcm91bmQgfD0gRkZfRFhWQTJfV09SS0FST1VORF9JTlRFTF9DTEVBUlZJREVPOwogPgog PiArICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX1ZFUkJPU0UsCiA+ICsgICAgICAgICAgICJVc2Vk IGd1aWQgOiB7JTguOHgtJTQuNHgtJTQuNHgtJTIuMnglMi4yeC0lMi4yeCUyLjJ4JTIuMnglMi4y eCUyLjJ4JTIuMnh9XG4iLAogPiArICAgICAgICAgICAodW5zaWduZWQpZGVjb2Rlcl9ndWlkLT5E YXRhMSwgZGVjb2Rlcl9ndWlkLT5EYXRhMiwgZGVjb2Rlcl9ndWlkLT5EYXRhMywKID4gKyAgICAg ICAgICAgZGVjb2Rlcl9ndWlkLT5EYXRhNFswXSwgZGVjb2Rlcl9ndWlkLT5EYXRhNFsxXSwKID4g KyAgICAgICAgICAgZGVjb2Rlcl9ndWlkLT5EYXRhNFsyXSwgZGVjb2Rlcl9ndWlkLT5EYXRhNFsz XSwKID4gKyAgICAgICAgICAgZGVjb2Rlcl9ndWlkLT5EYXRhNFs0XSwgZGVjb2Rlcl9ndWlkLT5E YXRhNFs1XSwKID4gKyAgICAgICAgICAgZGVjb2Rlcl9ndWlkLT5EYXRhNFs2XSwgZGVjb2Rlcl9n dWlkLT5EYXRhNFs3XSk7CiA+ICsKID4gICAgICByZXR1cm4gMDsKID4gIH0KID4KID4gQEAgLTQ1 OCw2ICs0ODMsMTMgQEAgc3RhdGljIERYR0lfRk9STUFUIGQzZDExdmFfbWFwX3N3X3RvX2h3X2Zv cm1hdChlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4X2ZtdCkKID4gICAgICBjYXNlIEFWX1BJWF9GTVRf TlYxMjogICAgICAgcmV0dXJuIERYR0lfRk9STUFUX05WMTI7CiA+ICAgICAgY2FzZSBBVl9QSVhf Rk1UX1AwMTA6ICAgICAgIHJldHVybiBEWEdJX0ZPUk1BVF9QMDEwOwogPiAgICAgIGNhc2UgQVZf UElYX0ZNVF9ZVVY0MjBQOiAgICByZXR1cm4gRFhHSV9GT1JNQVRfNDIwX09QQVFVRTsKID4gKyAg ICBjYXNlIEFWX1BJWF9GTVRfUDAxNjogICAgICAgcmV0dXJuIERYR0lfRk9STUFUX1AwMTY7CgpU aGUgcHJvZmlsZXMgYWJvdmUgc3VnZ2VzdCB0aGF0IHRoaXMgZG9lcyBub3Qgc3VwcG9ydCAxNi1i aXQsIHNvIHlvdSBzaG91bGRuJ3QgaGF2ZSBBVl9QSVhfRk1UX1AwMTYgaGVyZS4gIFByb2JhYmx5 IHlvdSB3YW50IFAwMTI/CgooVGhlIGZmbXBlZyBmb3JtYXRzIGNvbnRhaW4gdGhlIGRlcHRoIGlu Zm9ybWF0aW9uIHdoZXJlIHRoZSBEWEdJIG9uZXMgYXJlIGp1c3QgY29udGFpbmVycy4gIFlvdSBu ZWVkIHRvIHNldCB0aGUgZm9ybWF0IGNvcnJlY3RseSBvciBsYXRlciBjb21wb25lbnRzIHdpbGwg YmVsaWV2ZSB0aGVyZSBhcmUgc2lnbmlmaWNhbnQgbG93IGJpdHMuKQoKID4gKyAgICBjYXNlIEFW X1BJWF9GTVRfWVVZVjQyMjogICAgcmV0dXJuIERYR0lfRk9STUFUX1lVWTI7CiA+ICsgICAgY2Fz ZSBBVl9QSVhfRk1UX1kyMTA6ICAgICAgIHJldHVybiBEWEdJX0ZPUk1BVF9ZMjEwOwogPiArICAg IGNhc2UgQVZfUElYX0ZNVF9ZMjEyOiAgICAgICByZXR1cm4gRFhHSV9GT1JNQVRfWTIxNjsKID4g KyAgICBjYXNlIEFWX1BJWF9GTVRfVlVZWDogICAgICAgcmV0dXJuIERYR0lfRk9STUFUX0FZVVY7 CiA+ICsgICAgY2FzZSBBVl9QSVhfRk1UX1hWMzA6ICAgICAgIHJldHVybiBEWEdJX0ZPUk1BVF9Z NDEwOwogPiArICAgIGNhc2UgQVZfUElYX0ZNVF9YVjM2OiAgICAgICByZXR1cm4gRFhHSV9GT1JN QVRfWTQxNjsKID4gICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERYR0lf Rk9STUFUX1VOS05PV047CiA+ICAgICAgfQogPiAgfQogPiBAQCAtNTg5LDYgKzYyMSwzOSBAQCBz dGF0aWMgdm9pZCBmZl9keHZhMl91bmxvY2soQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQogPiAgI2Vu ZGlmCiA+ICB9CiA+CiA+ICtzdGF0aWMgZW51bSBBVlBpeGVsRm9ybWF0IG1hcF9zd19waXhfZm9y bWF0KGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10LCBlbnVtIEFWUGl4ZWxGb3JtYXQgaHdfcGl4 X2ZtdCkKID4gK3sKID4gKyNpZiBDT05GSUdfRDNEMTFWQQogPiArICAgIGlmIChod19waXhfZm10 ID09IEFWX1BJWF9GTVRfRDNEMTEpIHsKCklzIHRoaXMgYWN0dWFsbHkgbG9ja2VkIHRvIGJlIEQz RDExIG9ubHk/CgogPiArICAgICAgICBzd2l0Y2ggKHBpeF9mbXQpCiA+ICsgICAgICAgIHsKID4g KyAgICAgICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQyMFAxMDoKID4gKyAgICAgICAgY2FzZSBBVl9Q SVhfRk1UX1AwMTA6CiA+ICsgICAgICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9QMDEwOwogPiAr ICAgICAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDIwUDEyOgogPiArICAgICAgICAgICAgcmV0dXJu IEFWX1BJWF9GTVRfUDAxNjsKClNhbWUgcHJvYmxlbSBoZXJlIHdpdGggaXQgY3JlYXRpbmcgZXh0 cmEgYml0IGRlcHRoIG91dCBvZiBub3doZXJlLgoKID4gKyAgICAgICAgY2FzZSBBVl9QSVhfRk1U X1lVVjQyMlA6CiA+ICsgICAgICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9ZVVlWNDIyOwogPiAr ICAgICAgICBjYXNlIEFWX1BJWF9GTVRfWVVWNDIyUDEwOgogPiArICAgICAgICAgICAgcmV0dXJu IEFWX1BJWF9GTVRfWTIxMDsKID4gKyAgICAgICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQ0NFA6CiA+ ICsgICAgICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9WVVlYOwogPiArICAgICAgICBjYXNlIEFW X1BJWF9GTVRfWVVWNDQ0UDEwOgogPiArICAgICAgICAgICAgcmV0dXJuIEFWX1BJWF9GTVRfWFYz MDsKID4gKyAgICAgICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQyMlAxMjoKID4gKyAgICAgICAgICAg IHJldHVybiBBVl9QSVhfRk1UX1kyMTI7CiA+ICsgICAgICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0 NDRQMTI6CiA+ICsgICAgICAgICAgICByZXR1cm4gQVZfUElYX0ZNVF9YVjM2OwogPiArICAgICAg ICBjYXNlIEFWX1BJWF9GTVRfTlYxMjoKID4gKyAgICAgICAgZGVmYXVsdDoKID4gKyAgICAgICAg ICAgIHJldHVybiBBVl9QSVhfRk1UX05WMTI7CiA+ICsgICAgICAgIH0KID4gKyAgICB9CiA+ICsj ZW5kaWYKID4gKyAgICByZXR1cm4gcGl4X2ZtdCA9PSBBVl9QSVhfRk1UX1lVVjQyMFAxMCA/CiA+ ICsgICAgICAgIEFWX1BJWF9GTVRfUDAxMCA6IEFWX1BJWF9GTVRfTlYxMjsKID4gK30KID4gKwog PiAgaW50IGZmX2R4dmEyX2NvbW1vbl9mcmFtZV9wYXJhbXMoQVZDb2RlY0NvbnRleHQgKmF2Y3R4 LAogPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZCdWZmZXJSZWYgKmh3X2Zy YW1lc19jdHgpCiA+ICB7CiA+IEBAIC02MjYsOCArNjkxLDcgQEAgaW50IGZmX2R4dmEyX2NvbW1v bl9mcmFtZV9wYXJhbXMoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAogPiAgICAgIGVsc2UKID4gICAg ICAgICAgbnVtX3N1cmZhY2VzICs9IDI7CiA+CiA+IC0gICAgZnJhbWVzX2N0eC0+c3dfZm9ybWF0 ID0gYXZjdHgtPnN3X3BpeF9mbXQgPT0gQVZfUElYX0ZNVF9ZVVY0MjBQMTAgPwogPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFWX1BJWF9GTVRfUDAxMCA6IEFWX1BJWF9GTVRfTlYxMjsK ID4gKyAgICBmcmFtZXNfY3R4LT5zd19mb3JtYXQgPSBtYXBfc3dfcGl4X2Zvcm1hdChhdmN0eC0+ c3dfcGl4X2ZtdCwgZnJhbWVzX2N0eC0+Zm9ybWF0KTsKID4gICAgICBmcmFtZXNfY3R4LT53aWR0 aCA9IEZGQUxJR04oYXZjdHgtPmNvZGVkX3dpZHRoLCBzdXJmYWNlX2FsaWdubWVudCk7CiA+ICAg ICAgZnJhbWVzX2N0eC0+aGVpZ2h0ID0gRkZBTElHTihhdmN0eC0+Y29kZWRfaGVpZ2h0LCBzdXJm YWNlX2FsaWdubWVudCk7CiA+ICAgICAgZnJhbWVzX2N0eC0+aW5pdGlhbF9wb29sX3NpemUgPSBu dW1fc3VyZmFjZXM7CiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2R4dmEyX2hldmMuYyBiL2xp YmF2Y29kZWMvZHh2YTJfaGV2Yy5jCiA+IGluZGV4IDMxZDc0YTcxNjQuLjcxNTNiMmU2MDQgMTAw NjQ0CiA+IC0tLSBhL2xpYmF2Y29kZWMvZHh2YTJfaGV2Yy5jCiA+ICsrKyBiL2xpYmF2Y29kZWMv ZHh2YTJfaGV2Yy5jCiA+IEBAIC0zMiw3ICszMiw3IEBACiA+ICAjZGVmaW5lIE1BWF9TTElDRVMg MjU2CiA+CiA+ICBzdHJ1Y3QgaGV2Y19keHZhMl9waWN0dXJlX2NvbnRleHQgewogPiAtICAgIERY VkFfUGljUGFyYW1zX0hFVkMgICBwcDsKID4gKyAgICBEWFZBX1BpY1BhcmFtc19IRVZDX1JleHQg ICBwcDsKClVzZSBhIHVuaW9uIGhlcmUgdG8gYXZvaWQgbm9uLXJleHQgY29kZSBub3RpY2luZyBh bnl0aGluZyBhYm91dCB0aGUgcmV4dCBzdHJ1Y3R1cmU/CgogPiAgICAgIERYVkFfUW1hdHJpeF9I RVZDICAgICBxbTsKID4gICAgICB1bnNpZ25lZCAgICAgICAgICAgICAgc2xpY2VfY291bnQ7CiA+ ICAgICAgRFhWQV9TbGljZV9IRVZDX1Nob3J0IHNsaWNlX3Nob3J0W01BWF9TTElDRVNdOwogPiBA QCAtNTgsMTkgKzU4LDQ5IEBAIHN0YXRpYyBpbnQgZ2V0X3JlZnBpY19pbmRleChjb25zdCBEWFZB X1BpY1BhcmFtc19IRVZDICpwcCwgaW50IHN1cmZhY2VfaW5kZXgpCiA+ICB9CiA+CiA+ICB2b2lk IGZmX2R4dmEyX2hldmNfZmlsbF9waWN0dXJlX3BhcmFtZXRlcnMoY29uc3QgQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LCBBVkRYVkFDb250ZXh0ICpjdHgsCiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEWFZBX1BpY1BhcmFtc19IRVZDICpwcCkKID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERYVkFfUGljUGFyYW1zX0hFVkNfUmV4dCAqcHBleHQpCiA+ ICB7CiA+ICAgICAgY29uc3QgSEVWQ0NvbnRleHQgKmggPSBhdmN0eC0+cHJpdl9kYXRhOwogPiAg ICAgIGNvbnN0IEhFVkNGcmFtZSAqY3VycmVudF9waWN0dXJlID0gaC0+cmVmOwogPiAgICAgIGNv bnN0IEhFVkNTUFMgKnNwcyA9IGgtPnBzLnNwczsKID4gICAgICBjb25zdCBIRVZDUFBTICpwcHMg PSBoLT5wcy5wcHM7CiA+ICAgICAgaW50IGksIGo7CiA+ICsgICAgRFhWQV9QaWNQYXJhbXNfSEVW QyAqcHAgPSAmcHBleHQtPm1haW47CiA+CiA+IC0gICAgbWVtc2V0KHBwLCAwLCBzaXplb2YoKnBw KSk7CiA+ICsgICAgbWVtc2V0KHBwZXh0LCAwLCBzaXplb2YoKnBwZXh0KSk7CiA+CiA+ICAgICAg cHAtPlBpY1dpZHRoSW5NaW5DYnNZICA9IHNwcy0+bWluX2NiX3dpZHRoOwogPiAgICAgIHBwLT5Q aWNIZWlnaHRJbk1pbkNic1kgPSBzcHMtPm1pbl9jYl9oZWlnaHQ7CiA+CiA+ICsgICAgaWYgKHNw cy0+c3BzX3JhbmdlX2V4dGVuc2lvbl9mbGFnKSB7CiA+ICsgICAgICAgIHBwZXh0LT5kd1Jhbmdl RXh0ZW5zaW9uRmxhZ3MgfD0gKHNwcy0+dHJhbnNmb3JtX3NraXBfcm90YXRpb25fZW5hYmxlZF9m bGFnICAgICA8PCAgMCkgfAogPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzcHMtPnRyYW5zZm9ybV9za2lwX2NvbnRleHRfZW5hYmxlZF9mbGFnICAgICAgPDwgIDEp IHwKID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3BzLT5pbXBs aWNpdF9yZHBjbV9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgIDw8ICAyKSB8CiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNwcy0+ZXhwbGljaXRfcmRwY21fZW5h YmxlZF9mbGFnICAgICAgICAgICAgICA8PCAgMykgfAogPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzcHMtPmV4dGVuZGVkX3ByZWNpc2lvbl9wcm9jZXNzaW5nX2Zs YWcgICAgICAgPDwgIDQpIHwKID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3BzLT5pbnRyYV9zbW9vdGhpbmdfZGlzYWJsZWRfZmxhZyAgICAgICAgICAgIDw8ICA1 KSB8CiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNwcy0+aGln aF9wcmVjaXNpb25fb2Zmc2V0c19lbmFibGVkX2ZsYWcgICAgICA8PCAgNSkgfAoKVHdvIDw8IDUg aGVyZS4gIERvIHlvdSBoYXZlIHN0cmVhbXMgdG8gZ2l2ZSB0ZXN0IGNvdmVyYWdlIG9mIGFsbCBv ZiB0aGVzZSBmbGFncz8KCkFsc28sIGdpdmVuIHRoYXQgeW91IGhhdmUgYSBiaXRmaWVsZCByZXBy ZXNlbnRhdGlvbiB3aHkgbm90IGp1c3QgdXNlIGl0IHRvIGF2b2lkIHRoZSBtYW51YWwgc2hpZnRz PwoKID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3BzLT5wZXJz aXN0ZW50X3JpY2VfYWRhcHRhdGlvbl9lbmFibGVkX2ZsYWcgIDw8ICA3KSB8CiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNwcy0+Y2FiYWNfYnlwYXNzX2FsaWdu bWVudF9lbmFibGVkX2ZsYWcgICAgICA8PCAgOCk7CiA+ICsgICAgfQogPiArICAgIGlmIChwcHMt PnBwc19yYW5nZV9leHRlbnNpb25zX2ZsYWcpIHsKID4gKyAgICAgICAgcHBleHQtPmR3UmFuZ2VF eHRlbnNpb25GbGFncyB8PSAocHBzLT5jcm9zc19jb21wb25lbnRfcHJlZGljdGlvbl9lbmFibGVk X2ZsYWcgIDw8ICA5KSB8CiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHBwcy0+Y2hyb21hX3FwX29mZnNldF9saXN0X2VuYWJsZWRfZmxhZyAgICAgICA8PCAxMCk7 CiA+ICsgICAgICAgIGlmIChwcHMtPmNocm9tYV9xcF9vZmZzZXRfbGlzdF9lbmFibGVkX2ZsYWcp IHsKID4gKyAgICAgICAgICAgIHBwZXh0LT5kaWZmX2N1X2Nocm9tYV9xcF9vZmZzZXRfZGVwdGgg ICA9IHBwcy0+ZGlmZl9jdV9jaHJvbWFfcXBfb2Zmc2V0X2RlcHRoOwogPiArICAgICAgICAgICAg cHBleHQtPmNocm9tYV9xcF9vZmZzZXRfbGlzdF9sZW5fbWludXMxID0gcHBzLT5jaHJvbWFfcXBf b2Zmc2V0X2xpc3RfbGVuX21pbnVzMTsKID4gKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPD0g cHBzLT5jaHJvbWFfcXBfb2Zmc2V0X2xpc3RfbGVuX21pbnVzMTsgaSsrKSB7CiA+ICsgICAgICAg ICAgICAgICAgcHBleHQtPmNiX3FwX29mZnNldF9saXN0W2ldID0gcHBzLT5jYl9xcF9vZmZzZXRf bGlzdFtpXTsKID4gKyAgICAgICAgICAgICAgICBwcGV4dC0+Y3JfcXBfb2Zmc2V0X2xpc3RbaV0g PSBwcHMtPmNyX3FwX29mZnNldF9saXN0W2ldOwogPiArICAgICAgICAgICAgfQogPiArICAgICAg ICB9CiA+ICsgICAgICAgIHBwZXh0LT5sb2cyX3Nhb19vZmZzZXRfc2NhbGVfbHVtYSAgID0gcHBz LT5sb2cyX3Nhb19vZmZzZXRfc2NhbGVfbHVtYTsKID4gKyAgICAgICAgcHBleHQtPmxvZzJfc2Fv X29mZnNldF9zY2FsZV9jaHJvbWEgPSBwcHMtPmxvZzJfc2FvX29mZnNldF9zY2FsZV9jaHJvbWE7 CiA+ICsgICAgICAgIGlmIChwcHMtPnRyYW5zZm9ybV9za2lwX2VuYWJsZWRfZmxhZykgewogPiAr ICAgICAgICAgICAgcHBleHQtPmxvZzJfbWF4X3RyYW5zZm9ybV9za2lwX2Jsb2NrX3NpemVfbWlu dXMyID0gcHBzLT5sb2cyX21heF90cmFuc2Zvcm1fc2tpcF9ibG9ja19zaXplIC0gMjsKID4gKyAg ICAgICAgfQogPiArICAgIH0KClN1Z2dlc3QgcHV0dGluZyB0aGUgcmV4dCBzdHVmZiBhdCB0aGUg ZW5kIG9mIHRoZSBmdW5jdGlvbiwgYWZ0ZXIgYWxsIG9mIHRoZSBjb21tb24gcGFydHMuCgogPiAr CiA+ICAgICAgcHAtPndGb3JtYXRBbmRTZXF1ZW5jZUluZm9GbGFncyA9IChzcHMtPmNocm9tYV9m b3JtYXRfaWRjICAgICAgICAgICAgIDw8ICAwKSB8CiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzcHMtPnNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnICAgIDw8ICAy KSB8CiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3BzLT5iaXRf ZGVwdGggLSA4KSAgICAgICAgICAgICAgIDw8ICAzKSB8CiA+IEBAIC00MDksMTQgKzQzOSwxNSBA QCBzdGF0aWMgaW50IGR4dmEyX2hldmNfZW5kX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCkK ID4gIHsKID4gICAgICBIRVZDQ29udGV4dCAqaCA9IGF2Y3R4LT5wcml2X2RhdGE7CiA+ICAgICAg c3RydWN0IGhldmNfZHh2YTJfcGljdHVyZV9jb250ZXh0ICpjdHhfcGljID0gaC0+cmVmLT5od2Fj Y2VsX3BpY3R1cmVfcHJpdmF0ZTsKID4gLSAgICBpbnQgc2NhbGUgPSBjdHhfcGljLT5wcC5kd0Nv ZGluZ1BhcmFtVG9vbEZsYWdzICYgMTsKID4gKyAgICBpbnQgc2NhbGUgPSBjdHhfcGljLT5wcC5t YWluLmR3Q29kaW5nUGFyYW1Ub29sRmxhZ3MgJiAxOwogPiArICAgIGludCByZXh0ID0gYXZjdHgt PnByb2ZpbGUgPT0gQVZfUFJPRklMRV9IRVZDX1JFWFQgJiYgZmZfZHh2YTJfaXNfZDNkMTEoYXZj dHgpOwogPiAgICAgIGludCByZXQ7CiA+CiA+ICAgICAgaWYgKGN0eF9waWMtPnNsaWNlX2NvdW50 IDw9IDAgfHwgY3R4X3BpYy0+Yml0c3RyZWFtX3NpemUgPD0gMCkKID4gICAgICAgICAgcmV0dXJu IC0xOwogPgogPiAgICAgIHJldCA9IGZmX2R4dmEyX2NvbW1vbl9lbmRfZnJhbWUoYXZjdHgsIGgt PnJlZi0+ZnJhbWUsCiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4 X3BpYy0+cHAsIHNpemVvZihjdHhfcGljLT5wcCksCiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmY3R4X3BpYy0+cHAsIHJleHQgPyBzaXplb2YoY3R4X3BpYy0+cHApIDog c2l6ZW9mKGN0eF9waWMtPnBwLm1haW4pLAogPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NhbGUgPyAmY3R4X3BpYy0+cW0gOiBOVUxMLCBzY2FsZSA/IHNpemVvZihjdHhf cGljLT5xbSkgOiAwLAogPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t bWl0X2JpdHN0cmVhbV9hbmRfc2xpY2VfYnVmZmVyKTsKID4gICAgICByZXR1cm4gcmV0OwogPiBk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9keHZhMl9pbnRlcm5hbC5oIGIvbGliYXZjb2RlYy9keHZh Ml9pbnRlcm5hbC5oCiA+IGluZGV4IDIyNGE4NjdlYmMuLjM4ZTM0Y2U2NGYgMTAwNjQ0CiA+IC0t LSBhL2xpYmF2Y29kZWMvZHh2YTJfaW50ZXJuYWwuaAogPiArKysgYi9saWJhdmNvZGVjL2R4dmEy X2ludGVybmFsLmgKID4gQEAgLTY0LDYgKzY0LDQyIEBACiA+ICAjaW5jbHVkZSA8ZHh2YS5oPgog PiAgI2VuZGlmCiA+CiA+ICsjcHJhZ21hIHBhY2socHVzaCwgMSkKID4gK3R5cGVkZWYgc3RydWN0 CiA+ICt7CiA+ICsgICAgRFhWQV9QaWNQYXJhbXNfSEVWQyBtYWluOwogPiArCiA+ICsgICAgLy8g SEVWQyBSYW5nZSBFeHRlbnNpb24KID4gKyAgICBfX0M4OV9OQU1FTEVTUyB1bmlvbiB7CiA+ICsg ICAgICAgIF9fQzg5X05BTUVMRVNTIHN0cnVjdCB7CiA+ICsgICAgICAgICAgICBVSU5UMzIgdHJh bnNmb3JtX3NraXBfcm90YXRpb25fZW5hYmxlZF9mbGFnIDogMTsKID4gKyAgICAgICAgICAgIFVJ TlQzMiB0cmFuc2Zvcm1fc2tpcF9jb250ZXh0X2VuYWJsZWRfZmxhZyA6IDE7CiA+ICsgICAgICAg ICAgICBVSU5UMzIgaW1wbGljaXRfcmRwY21fZW5hYmxlZF9mbGFnIDogMTsKID4gKyAgICAgICAg ICAgIFVJTlQzMiBleHBsaWNpdF9yZHBjbV9lbmFibGVkX2ZsYWcgOiAxOwogPiArICAgICAgICAg ICAgVUlOVDMyIGV4dGVuZGVkX3ByZWNpc2lvbl9wcm9jZXNzaW5nX2ZsYWcgOiAxOwogPiArICAg ICAgICAgICAgVUlOVDMyIGludHJhX3Ntb290aGluZ19kaXNhYmxlZF9mbGFnIDogMTsKID4gKyAg ICAgICAgICAgIFVJTlQzMiBoaWdoX3ByZWNpc2lvbl9vZmZzZXRzX2VuYWJsZWRfZmxhZyA6IDE7 CiA+ICsgICAgICAgICAgICBVSU5UMzIgcGVyc2lzdGVudF9yaWNlX2FkYXB0YXRpb25fZW5hYmxl ZF9mbGFnIDogMTsKID4gKyAgICAgICAgICAgIFVJTlQzMiBjYWJhY19ieXBhc3NfYWxpZ25tZW50 X2VuYWJsZWRfZmxhZyA6IDE7CiA+ICsgICAgICAgICAgICBVSU5UMzIgY3Jvc3NfY29tcG9uZW50 X3ByZWRpY3Rpb25fZW5hYmxlZF9mbGFnIDogMTsKID4gKyAgICAgICAgICAgIFVJTlQzMiBjaHJv bWFfcXBfb2Zmc2V0X2xpc3RfZW5hYmxlZF9mbGFnIDogMTsKID4gKyAgICAgICAgICAgIFVJTlQz MiBCaXREZXB0aEx1bWExNiA6IDE7IC8vIFRPRE8gbWVyZ2UgaW4gUmVzZXJ2ZWRCaXRzNSBpZiBu b3QgbmVlZGVkCiA+ICsgICAgICAgICAgICBVSU5UMzIgQml0RGVwdGhDaHJvbWExNiA6IDE7IC8v IFRPRE8gbWVyZ2UgaW4gUmVzZXJ2ZWRCaXRzNSBpZiBub3QgbmVlZGVkCiA+ICsgICAgICAgICAg ICBVSU5UMzIgUmVzZXJ2ZWRCaXRzOCA6IDE5OwogPiArICAgICAgICB9OwogPiArICAgICAgICBV SU5UMzIgZHdSYW5nZUV4dGVuc2lvbkZsYWdzOwogPiArICAgIH07CiA+ICsKID4gKyAgICBVQ0hB UiBkaWZmX2N1X2Nocm9tYV9xcF9vZmZzZXRfZGVwdGg7CiA+ICsgICAgVUNIQVIgY2hyb21hX3Fw X29mZnNldF9saXN0X2xlbl9taW51czE7CiA+ICsgICAgVUNIQVIgbG9nMl9zYW9fb2Zmc2V0X3Nj YWxlX2x1bWE7CiA+ICsgICAgVUNIQVIgbG9nMl9zYW9fb2Zmc2V0X3NjYWxlX2Nocm9tYTsKID4g KyAgICBVQ0hBUiBsb2cyX21heF90cmFuc2Zvcm1fc2tpcF9ibG9ja19zaXplX21pbnVzMjsKID4g KyAgICBDSEFSIGNiX3FwX29mZnNldF9saXN0WzZdOwogPiArICAgIENIQVIgY3JfcXBfb2Zmc2V0 X2xpc3RbNl07CiA+ICt9IERYVkFfUGljUGFyYW1zX0hFVkNfUmV4dDsKID4gKyNwcmFnbWEgcGFj ayhwb3ApCgpXaGVyZSBpcyB0aGlzIHN0cnVjdHVyZSBjb3BpZWQgZnJvbT8gIChJcyBpdCB1bmRl ciBhIGxpY2VuY2Ugd2l0aCBhbnkgcmVsZXZhbnQgY29uZGl0aW9ucz8pCgogPiArCiA+ICAjaW5j bHVkZSAibGliYXZ1dGlsL2h3Y29udGV4dC5oIgogPgogPiAgI2luY2x1ZGUgImF2Y29kZWMuaCIK ID4gQEAgLTE3MSw3ICsyMDcsNyBAQCB2b2lkIGZmX2R4dmEyX2gyNjRfZmlsbF9waWN0dXJlX3Bh cmFtZXRlcnMoY29uc3QgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkRYVkFDbwogPgogPiAgdm9p ZCBmZl9keHZhMl9oMjY0X2ZpbGxfc2NhbGluZ19saXN0cyhjb25zdCBBVkNvZGVjQ29udGV4dCAq YXZjdHgsIEFWRFhWQUNvbnRleHQgKmN0eCwgRFhWQV9RbWF0cml4X0gyNjQgKnFtKTsKID4KID4g LXZvaWQgZmZfZHh2YTJfaGV2Y19maWxsX3BpY3R1cmVfcGFyYW1ldGVycyhjb25zdCBBVkNvZGVj Q29udGV4dCAqYXZjdHgsIEFWRFhWQUNvbnRleHQgKmN0eCwgRFhWQV9QaWNQYXJhbXNfSEVWQyAq cHApOwogPiArdm9pZCBmZl9keHZhMl9oZXZjX2ZpbGxfcGljdHVyZV9wYXJhbWV0ZXJzKGNvbnN0 IEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZEWFZBQ29udGV4dCAqY3R4LCBEWFZBX1BpY1BhcmFt c19IRVZDX1JleHQgKnBwZXh0KTsKID4KID4gIHZvaWQgZmZfZHh2YTJfaGV2Y19maWxsX3NjYWxp bmdfbGlzdHMoY29uc3QgQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBBVkRYVkFDb250ZXh0ICpjdHgs IERYVkFfUW1hdHJpeF9IRVZDICpxbSk7CiA+CiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2hl dmNkZWMuYyBiL2xpYmF2Y29kZWMvaGV2Y2RlYy5jCiA+IGluZGV4IGI1MzExYWU1MTAuLjUwOGYy Nzk5MzMgMTAwNjQ0CiA+IC0tLSBhL2xpYmF2Y29kZWMvaGV2Y2RlYy5jCiA+ICsrKyBiL2xpYmF2 Y29kZWMvaGV2Y2RlYy5jCiA+IEBAIC00NjMsNiArNDYzLDEwIEBAIHN0YXRpYyBlbnVtIEFWUGl4 ZWxGb3JtYXQgZ2V0X2Zvcm1hdChIRVZDQ29udGV4dCAqcywgY29uc3QgSEVWQ1NQUyAqc3BzKQog PiAgI2VuZGlmCiA+ICAgICAgICAgIGJyZWFrOwogPiAgICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0 NDRQOgogPiArI2lmIENPTkZJR19IRVZDX0QzRDExVkFfSFdBQ0NFTAogPiArICAgICAgICAqZm10 KysgPSBBVl9QSVhfRk1UX0QzRDExVkFfVkxEOwoKSGF2ZSB5b3UgdGVzdGVkIHRoaXMgd2l0aCB0 aGUgbGVnYWN5IEFQST8KCiA+ICsgICAgICAgICpmbXQrKyA9IEFWX1BJWF9GTVRfRDNEMTE7CiA+ ICsjZW5kaWYKID4gICNpZiBDT05GSUdfSEVWQ19WQUFQSV9IV0FDQ0VMCiA+ICAgICAgICAgICpm bXQrKyA9IEFWX1BJWF9GTVRfVkFBUEk7CiA+ICAjZW5kaWYKID4gQEAgLTQ4MSw2ICs0ODUsMTAg QEAgc3RhdGljIGVudW0gQVZQaXhlbEZvcm1hdCBnZXRfZm9ybWF0KEhFVkNDb250ZXh0ICpzLCBj b25zdCBIRVZDU1BTICpzcHMpCiA+ICAgICAgICAgIGJyZWFrOwogPiAgICAgIGNhc2UgQVZfUElY X0ZNVF9ZVVY0MjJQOgogPiAgICAgIGNhc2UgQVZfUElYX0ZNVF9ZVVY0MjJQMTBMRToKID4gKyNp ZiBDT05GSUdfSEVWQ19EM0QxMVZBX0hXQUNDRUwKID4gKyAgICAgICAgKmZtdCsrID0gQVZfUElY X0ZNVF9EM0QxMVZBX1ZMRDsKID4gKyAgICAgICAgKmZtdCsrID0gQVZfUElYX0ZNVF9EM0QxMTsK ID4gKyNlbmRpZgogPiAgI2lmIENPTkZJR19IRVZDX1ZBQVBJX0hXQUNDRUwKID4gICAgICAgICAq Zm10KysgPSBBVl9QSVhfRk1UX1ZBQVBJOwogPiAgI2VuZGlmCiA+IEBAIC00OTgsNiArNTA2LDEw IEBAIHN0YXRpYyBlbnVtIEFWUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdChIRVZDQ29udGV4dCAqcywg Y29uc3QgSEVWQ1NQUyAqc3BzKQogPiAgICAgIC8qIE5PVEU6IGZhbGx0aHJvdWdoICovCiA+ICAg ICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQyMFAxMjoKID4gICAgICBjYXNlIEFWX1BJWF9GTVRfWVVW NDQ0UDEyOgogPiArI2lmIENPTkZJR19IRVZDX0QzRDExVkFfSFdBQ0NFTAogPiArICAgICAgICAq Zm10KysgPSBBVl9QSVhfRk1UX0QzRDExVkFfVkxEOwogPiArICAgICAgICAqZm10KysgPSBBVl9Q SVhfRk1UX0QzRDExOwogPiArI2VuZGlmCiA+ICAjaWYgQ09ORklHX0hFVkNfVkFBUElfSFdBQ0NF TAogPiAgICAgICAgICpmbXQrKyA9IEFWX1BJWF9GTVRfVkFBUEk7CiA+ICAjZW5kaWYKID4gQEAg LTUxMiw2ICs1MjQsMTAgQEAgc3RhdGljIGVudW0gQVZQaXhlbEZvcm1hdCBnZXRfZm9ybWF0KEhF VkNDb250ZXh0ICpzLCBjb25zdCBIRVZDU1BTICpzcHMpCiA+ICAjZW5kaWYKID4gICAgICAgICAg YnJlYWs7CiA+ICAgICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQyMlAxMjoKID4gKyNpZiBDT05GSUdf SEVWQ19EM0QxMVZBX0hXQUNDRUwKID4gKyAgICAgICAgKmZtdCsrID0gQVZfUElYX0ZNVF9EM0Qx MVZBX1ZMRDsKID4gKyAgICAgICAgKmZtdCsrID0gQVZfUElYX0ZNVF9EM0QxMTsKID4gKyNlbmRp ZgogPiAgI2lmIENPTkZJR19IRVZDX1ZBQVBJX0hXQUNDRUwKID4gICAgICAgICAqZm10KysgPSBB Vl9QSVhfRk1UX1ZBQVBJOwogPiAgI2VuZGlmCiA+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdj b250ZXh0X2QzZDExdmEuYyBiL2xpYmF2dXRpbC9od2NvbnRleHRfZDNkMTF2YS5jCiA+IGluZGV4 IDJmZDM1NjFjODguLjc5YjFmMzRiM2IgMTAwNjQ0CiA+IC0tLSBhL2xpYmF2dXRpbC9od2NvbnRl eHRfZDNkMTF2YS5jCiA+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfZDNkMTF2YS5jCgpNb3Zl IHRoZSBjaGFuZ2VzIHRvIHRoZSBod2NvbnRleHQgaW50byBhIHNlcGFyYXRlIHBhdGNoLgoKID4g QEAgLTk0LDYgKzk0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiA+ICAgICAgeyBEWEdJX0ZP Uk1BVF9ZMjEwLCAgICAgICAgIEFWX1BJWF9GTVRfWTIxMCB9LAogPiAgICAgIHsgRFhHSV9GT1JN QVRfWTQxMCwgICAgICAgICBBVl9QSVhfRk1UX1hWMzAgfSwKID4gICAgICB7IERYR0lfRk9STUFU X1AwMTYsICAgICAgICAgQVZfUElYX0ZNVF9QMDEyIH0sCiA+ICsgICAgeyBEWEdJX0ZPUk1BVF9Q MDE2LCAgICAgICAgIEFWX1BJWF9GTVRfUDAxNiB9LAoKT2sgaGVyZSBiZWNhdXNlIGl0IG9ubHkg bWFwcyBBViAtPiBEWEdJLgoKID4gICAgICB7IERYR0lfRk9STUFUX1kyMTYsICAgICAgICAgQVZf UElYX0ZNVF9ZMjEyIH0sCiA+ICAgICAgeyBEWEdJX0ZPUk1BVF9ZNDE2LCAgICAgICAgIEFWX1BJ WF9GTVRfWFYzNiB9LAogPiAgICAgIC8vIFNwZWNpYWwgb3BhcXVlIGZvcm1hdHMuIFRoZSBwaXhf Zm10IGlzIG1lcmVseSBhIHBsYWNlIGhvbGRlciwgYXMgdGhlCiA+IEBAIC0zOTQsMTEgKzM5NSwy OCBAQCBzdGF0aWMgdm9pZCBmaWxsX3RleHR1cmVfcHRycyh1aW50OF90ICpkYXRhWzRdLCBpbnQg bGluZXNpemVbNF0sCiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEM0QxMV9URVhU VVJFMkRfREVTQyAqZGVzYywKID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQzRDEx X01BUFBFRF9TVUJSRVNPVVJDRSAqbWFwKQogPiAgewogPiAtICAgIGludCBpOwogPiAtCiA+IC0g ICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKID4gLSAgICAgICAgbGluZXNpemVbaV0gPSBtYXAt PlJvd1BpdGNoOwogPiArICAgIGludCB3aWR0aDsKID4gKyAgICBpbnQgY29kZWRieXRlcyA9IDE7 CiA+ICsKID4gKyAgICBzd2l0Y2ggKGN0eC0+c3dfZm9ybWF0KSB7CiA+ICsgICAgY2FzZSBBVl9Q SVhfRk1UX1AwMTA6CiA+ICsgICAgY2FzZSBBVl9QSVhfRk1UX1AwMTY6CiA+ICsgICAgY2FzZSBB Vl9QSVhfRk1UX1lVWVY0MjI6CiA+ICsgICAgICAgIGNvZGVkYnl0ZXMgPSAyOwogPiArICAgICAg ICBicmVhazsKID4gKyAgICBjYXNlIEFWX1BJWF9GTVRfWTIxMDoKID4gKyAgICBjYXNlIEFWX1BJ WF9GTVRfWTIxMjoKID4gKyAgICBjYXNlIEFWX1BJWF9GTVRfVlVZWDoKID4gKyAgICBjYXNlIEFW X1BJWF9GTVRfWFYzMDoKID4gKyAgICAgICAgY29kZWRieXRlcyA9IDQ7CiA+ICsgICAgICAgIGJy ZWFrOwogPiArICAgIGNhc2UgQVZfUElYX0ZNVF9YVjM2OgogPiArICAgICAgICBjb2RlZGJ5dGVz ID0gODsKID4gKyAgICAgICAgYnJlYWs7CiA+ICsgICAgfQogPgogPiArICAgIHdpZHRoID0gbWFw LT5Sb3dQaXRjaCAvIGNvZGVkYnl0ZXM7CiA+ICsgICAgYXZfaW1hZ2VfZmlsbF9saW5lc2l6ZXMo bGluZXNpemUsIGN0eC0+c3dfZm9ybWF0LCB3aWR0aCk7CiA+ICAgICAgYXZfaW1hZ2VfZmlsbF9w b2ludGVycyhkYXRhLCBjdHgtPnN3X2Zvcm1hdCwgZGVzYy0+SGVpZ2h0LAogPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHVpbnQ4X3QqKW1hcC0+cERhdGEsIGxpbmVzaXplKTsKCkNhbiB5 b3UgZXhwbGFpbiB3aHkgdGhpcyBjaGFuZ2UgaXMgYmVpbmcgbWFkZT8KCihhdl9pbWFnZV9maWxs X3BvaW50ZXJzKCkgaGFzIGJlZW4gZ2l2ZW4gdGhlIGZvcm1hdCBhbmQgZmluZHMgdGhlIGVsZW1l bnQgc2l6ZXMgZnJvbSBwaXhkZXNjLCBzbyBJIHRoaW5rIGl0IHNob3VsZCBiZSB3b3JraW5nLiAg SWYgaXQgaXNuJ3QgdGhlbiBtYXliZSBpdCBzaG91bGQgYmUgZml4ZWQuKQoKID4gIH0KID4gLS0K ID4gMi40My4wLndpbmRvd3MuMQoKVGhhbmtzLAoKLSBNYXJrCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZt cGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v ZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJl Ii4K