Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vzs3F-001OjO-12 for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Mar 2026 08:02:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vzs3D-0027KM-2b for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Mar 2026 08:02:48 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vzs3D-0027KE-1K for pgsql-hackers@lists.postgresql.org; Tue, 10 Mar 2026 08:02:48 +0000 Received: from mail-yx1-xb136.google.com ([2607:f8b0:4864:20::b136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vzs37-00000001Q1o-3b1q for pgsql-hackers@lists.postgresql.org; Tue, 10 Mar 2026 08:02:47 +0000 Received: by mail-yx1-xb136.google.com with SMTP id 956f58d0204a3-64caaacb9bcso12021062d50.1 for ; Tue, 10 Mar 2026 01:02:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773129761; cv=none; d=google.com; s=arc-20240605; b=UdKGE3UXuWyxrAlqDn3sD9U3MjChFI239vV+2VG/KvoAJhbxZqWvRZFhxU2TgX3/IF uBLvy1BNmQ5VOlGhshZGt1MuNqBNOdGNqOOSQD/7xC4+X7g0t3boOOnMDm2Am8JLpPrM QcX6shym9breqNbWEwnU+UMSX2NvA6b0TLbr5jpkn/VaUSX/vsaAPuLS3SF8kVZMqDCX WZv16GKzamhcUF5O6cK03xnPzGrZxvK/K+8w1PDQ1JYzyCXil3O3CMwrUS+v+GgphxOL gHqFmQ2oh+NetoV27lUf+Pb0465sm1IEoEGVHS8uS35UCuEDdPt8qLRrQRErXCga8j6c yEkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=qLHiukK78hBk3YzXokBk6Q9yvSewJjUgeO8F8IZa7YY=; fh=YhmxPC0NYagsxVMppzYMgO0XMWsRSWzMegLjmIklu8U=; b=du2K868bB0xosXTuzPSB/geYGebIx6wBohcKk3cmjsxmrWwycBy9rcrp1RuxhQSsPB cxmeydZrLQXJAcvCvIDlBxU0QoFX0F6773Maxs3aBxzOb933tI2M1oUh3IhAVVc1BrJ+ 4awYjwnKUxprx2fUmLQULVkz17zPEXxoXVL7kKuNStN+KUDBqU5/nWjNM1mLxTsrGgE+ 7cwTRFIoQKSHctj4fB9uHUVR0zEGnC7iia7/27uX9jAEW7Q/qvWGHJo1lFxj2Tar0g0J Epein/DbI7CGURypmJ3kItc6E2Ma53jG/EL5MPSZMw46vH3VPDUrfzZ6vkmm9EVHEyxa VJEQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773129761; x=1773734561; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qLHiukK78hBk3YzXokBk6Q9yvSewJjUgeO8F8IZa7YY=; b=ORt+KFjP1HA/MOT1gEydfS20qfQueh5jvaTty7OUBdkI/rToYfPFAzMwGskdDqCOdC FJLdS0Co5nUl7wNw0bPCKrJ+2nR5fNI7O6VIlRuobpjaWsmKfBtTsGj9yRnrSHCHRnDV 6JyxbBi91joB+dhBM7kCUBxp3ypHyzUssm758l0AdVSOpw7mih8dVBVBmPeFXQYsLs6U JE5FiH5EzOyhXLHFuIf6WTtQZcKUwVCIF61rUa22yia5qtdEVw599jMxVFfz4zE7bhkp 5HtP6uBCOx7qRxmV+cWj2rf2Ree+tARhc4tIlOGf5ypx34phgi1RxePbSUmkJpZ8zseK d9Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773129761; x=1773734561; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=qLHiukK78hBk3YzXokBk6Q9yvSewJjUgeO8F8IZa7YY=; b=T+6QaUXXVxapzkKprpvk/J5Di8K5mpzN9DU3192NYtOQUyf1ssURkPFDk2UIJh4sGm TQi6idlljVbgQqPp5zE5UWRGMQ9QxzNRJXTVYkQXlginU/unyJffSIFWoN/lrCPE5yE/ JNg4fMNQfkbpZ5cgtee6bOx3aU2G4Zj1l0i6fdIf0Zs+MUrFh0+makb86ATWPoRamvg6 m09CgMZlCL9qRG+Zoy6565tNCZQB74eKiyVWwvok8wmFxbC9ohIXkTyGCQf9YLgWfAoe jkeKzgFafW52Wb6ij7pzGs4/t/v6kOHWj+42hIaQW+z8dxQ3ZtY6IBNJY8aNPRgA6x0X Oocw== X-Gm-Message-State: AOJu0YylhXz/tL6rrTAScBHl1CCh3m2Y5ju4kuaXBPNs6Qv+KRQ3KmQX jRa3qU82UfDSbKPbsrpPCDzy6Dovr88BY0w10KgSDko+V4s9XXhbiaGoX2NphUrRkB9NKHQOT3a 56Or5MIGX4qi0YK/NLkXHnvrHQqCjhuWPhQ== X-Gm-Gg: ATEYQzyNStb4i9XLFz/GF+A7d5r5PMl8sKdzzCPH5kVoR3HIcAjT1p1b3xGA3QSKWy6 gTMI3LhhF94GZFF0WJ2exfNCtL55UM69PfwLTCragTeQD4fCXyt/BKwis1W5h+WCsezVnvcdKra jQP/HqzIncsua8iWK8w76SuvjTg1ImEw7Ikpi5aYaAtTsxuEdNL8TPKhqD+zgusUk0HMG7Ch/yf MSgxIp3jOowKFGt/eUAHOXeBQYSAFGJyFuCiP1KJYG5mJ/yCX2fkm3wIglJsbpAQSGt/qciVG5R yOcENlebRfHe8+evbAK7SLBrE/C2z6lhBjJgCoTOsvX9eGS45pCC6C0Q37m7PZX1jhOE3VSUKD1 AM39nP6B6kArL6E/pT2NwExiXyDSI7nQKr4o5Yx6ZkpR3l3YfFNlpuNdxLBSLIFTm1B/R X-Received: by 2002:a05:690e:1a85:b0:649:ca5c:59a1 with SMTP id 956f58d0204a3-64d141162a5mr10645241d50.27.1773129761014; Tue, 10 Mar 2026 01:02:41 -0700 (PDT) MIME-Version: 1.0 References: <204196.1769893114@sss.pgh.pa.us> In-Reply-To: From: Pavel Stehule Date: Tue, 10 Mar 2026 09:02:02 +0100 X-Gm-Features: AaiRm513UfvPDb_7X5g8L7RTU9d5gc8kJmqE41CYd_NLGdEdC6gUWybiRccDA2Y Message-ID: Subject: Re: slow SELECT expr INTO var in plpgsql To: Tom Lane Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000008c080f064ca6f1fb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008c080f064ca6f1fb Content-Type: multipart/alternative; boundary="0000000000008c080c064ca6f1f9" --0000000000008c080c064ca6f1f9 Content-Type: text/plain; charset="UTF-8" Hi I am sorry, wrong patch Regards Pavel --0000000000008c080c064ca6f1f9 Content-Type: text/html; charset="UTF-8"
Hi

I am sorry, wrong patch

Regards

Pavel
--0000000000008c080c064ca6f1f9-- --0000000000008c080f064ca6f1fb Content-Type: text/x-patch; charset="US-ASCII"; name="optimize-select-into-v2.patch" Content-Disposition: attachment; filename="optimize-select-into-v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmkbmpar0 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL2xldmVsX3Ry YWNraW5nLm91dCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL2xldmVsX3Ry YWNraW5nLm91dAppbmRleCBhMTVkODk3ZTU5Yi4uODMyZDY1ZTk3Y2EgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL2xldmVsX3RyYWNraW5nLm91dAorKysg Yi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9sZXZlbF90cmFja2luZy5vdXQK QEAgLTE1MDAsMTIgKzE1MDAsMTEgQEAgU0VMRUNUIFBMVVNfT05FKDEpOwogU0VMRUNUIGNhbGxz LCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xM QVRFICJDIjsKICBjYWxscyB8IHJvd3MgfCAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkgICAg ICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgMiB8ICAgIDIgfCBTRUxFQ1Qg KGkgKyAkMiArICQzKTo6SU5URUdFUgogICAgICAyIHwgICAgMiB8IFNFTEVDVCAoaSArICQyKTo6 SU5URUdFUiBMSU1JVCAkMwogICAgICAyIHwgICAgMiB8IFNFTEVDVCBQTFVTX09ORSgkMSkKICAg ICAgMiB8ICAgIDIgfCBTRUxFQ1QgUExVU19UV08oJDEpCiAgICAgIDEgfCAgICAxIHwgU0VMRUNU IHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQKLSg1IHJvd3MpCiso NCByb3dzKQogCiAtLSBpbW11dGFibGUgU1FMIGZ1bmN0aW9uIC0tLSBjYW4gYmUgZXhlY3V0ZWQg YXQgcGxhbiB0aW1lCiBDUkVBVEUgRlVOQ1RJT04gUExVU19USFJFRShpIElOVEVHRVIpIFJFVFVS TlMgSU5URUdFUiBBUwpAQCAtMTUyNSwxNSArMTUyNCwxNCBAQCBTRUxFQ1QgUExVU19USFJFRSgx MCk7CiBTRUxFQ1QgdG9wbGV2ZWwsIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3Rh dGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKICB0b3BsZXZlbCB8IGNhbGxzIHwg cm93cyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIGYgICAgICAgIHwgICAgIDIgfCAgICAyIHwgU0VMRUNUIChp ICsgJDIgKyAkMyk6OklOVEVHRVIKICBmICAgICAgICB8ICAgICAyIHwgICAgMiB8IFNFTEVDVCAo aSArICQyKTo6SU5URUdFUiBMSU1JVCAkMwogIHQgICAgICAgIHwgICAgIDIgfCAgICAyIHwgU0VM RUNUIFBMVVNfT05FKCQxKQogIHQgICAgICAgIHwgICAgIDIgfCAgICAyIHwgU0VMRUNUIFBMVVNf VEhSRUUoJDEpCiAgdCAgICAgICAgfCAgICAgMiB8ICAgIDIgfCBTRUxFQ1QgUExVU19UV08oJDEp Ci0gdCAgICAgICAgfCAgICAgMSB8ICAgIDUgfCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZS T00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiCisgdCAgICAg ICAgfCAgICAgMSB8ICAgIDQgfCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3Rh dF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiCiAgZiAgICAgICAgfCAgICAg MiB8ICAgIDIgfCBTRUxFQ1QgaSArICQyIExJTUlUICQzCiAgdCAgICAgICAgfCAgICAgMSB8ICAg IDEgfCBTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdAot KDggcm93cykKKyg3IHJvd3MpCiAKIFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJ UyBOT1QgTlVMTCBBUyB0OwogIHQgCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVt ZW50cy9leHBlY3RlZC9wbGFuY2FjaGUub3V0IGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMv ZXhwZWN0ZWQvcGxhbmNhY2hlLm91dAppbmRleCBlMTUyZGU5ZjU1MS4uMzJiZjkxM2IyODYgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3BsYW5jYWNoZS5v dXQKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvcGxhbmNhY2hlLm91 dApAQCAtMTU5LDExICsxNTksMTAgQEAgU0VMRUNUIGNhbGxzLCBnZW5lcmljX3BsYW5fY2FsbHMs IGN1c3RvbV9wbGFuX2NhbGxzLCB0b3BsZXZlbCwgcXVlcnkgRlJPTSBwZ19zdGEKICBjYWxscyB8 IGdlbmVyaWNfcGxhbl9jYWxscyB8IGN1c3RvbV9wbGFuX2NhbGxzIHwgdG9wbGV2ZWwgfCAgICAg ICAgICAgICAgICAgICAgICAgcXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgMiB8 ICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAwIHwgdCAgICAgICAgfCBDQUxM IHNlbGVjdF9vbmVfcHJvYygkMSkKLSAgICAgNCB8ICAgICAgICAgICAgICAgICAgMiB8ICAgICAg ICAgICAgICAgICAyIHwgZiAgICAgICAgfCBTRUxFQ1QgJDEKICAgICAgMSB8ICAgICAgICAgICAg ICAgICAgMCB8ICAgICAgICAgICAgICAgICAwIHwgdCAgICAgICAgfCBTRUxFQ1QgcGdfc3RhdF9z dGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdAogICAgICAyIHwgICAgICAgICAgICAg ICAgICAwIHwgICAgICAgICAgICAgICAgIDAgfCB0ICAgICAgICB8IFNFTEVDVCBzZWxlY3Rfb25l X2Z1bmMoJDEpCiAgICAgIDIgfCAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAg MCB8IHQgICAgICAgIHwgU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyAkMQotKDUgcm93cykKKyg0IHJv d3MpCiAKIC0tCiAtLSBFWFBMQUlOIFtBTkFMWVpFXSBFWEVDVVRFICsgZnVuY3Rpb25zL3Byb2Nl ZHVyZXMKQEAgLTIxMSwxMCArMjEwLDkgQEAgU0VMRUNUIGNhbGxzLCBnZW5lcmljX3BsYW5fY2Fs bHMsIGN1c3RvbV9wbGFuX2NhbGxzLCB0b3BsZXZlbCwgcXVlcnkgRlJPTSBwZ19zdGEKICAgICAg MiB8ICAgICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAgICAwIHwgdCAgICAgICAgfCBF WFBMQUlOIChBTkFMWVpFLCBDT1NUUyBPRkYsIFNVTU1BUlkgT0ZGLCBUSU1JTkcgT0ZGLCBCVUZG RVJTIE9GRikgU0VMRUNUIHNlbGVjdF9vbmVfZnVuYygkMSkKICAgICAgNCB8ICAgICAgICAgICAg ICAgICAgMCB8ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgfCBFWFBMQUlOIChBTkFMWVpF LCBDT1NUUyBPRkYsIFNVTU1BUlkgT0ZGLCBUSU1JTkcgT0ZGLCBCVUZGRVJTIE9GRikgU0VMRUNU IHNlbGVjdF9vbmVfZnVuYygkMSk7CiAgICAgIDIgfCAgICAgICAgICAgICAgICAgIDAgfCAgICAg ICAgICAgICAgICAgMCB8IHQgICAgICAgIHwgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qgc2Vs ZWN0X29uZV9mdW5jKCQxKQotICAgICA0IHwgICAgICAgICAgICAgICAgICAyIHwgICAgICAgICAg ICAgICAgIDIgfCBmICAgICAgICB8IFNFTEVDVCAkMQogICAgICAxIHwgICAgICAgICAgICAgICAg ICAwIHwgICAgICAgICAgICAgICAgIDAgfCB0ICAgICAgICB8IFNFTEVDVCBwZ19zdGF0X3N0YXRl bWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0CiAgICAgIDIgfCAgICAgICAgICAgICAgICAg IDAgfCAgICAgICAgICAgICAgICAgMCB8IHQgICAgICAgIHwgU0VUIHBsYW5fY2FjaGVfbW9kZSBU TyAkMQotKDcgcm93cykKKyg2IHJvd3MpCiAKIFJFU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFj azsKIC0tCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCA4NDU1MmUzMmM4Ny4uYjE0ZGJjNzcxNDcgMTAw NjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2V4ZWMuYwpAQCAtMTMwMSw2ICsxMzAxLDE5IEBAIHBscGdzcWxfZXhlY19lcnJv cl9jYWxsYmFjayh2b2lkICphcmcpCiAJCQkJICAgZXN0YXRlLT5mdW5jLT5mbl9zaWduYXR1cmUp OwogfQogCisvKgorICogVGhpcyBlcnJvciBjYWxsYmFjayBpcyB1c2VkIHdoZW4gY2FzZSBTRUxF Q1QgZXhwciBJTlRPIHZhcgorICovCitzdGF0aWMgdm9pZAorcGxwZ3NxbF9leGVjc3FsX2Vycm9y X2NhbGxiYWNrKHZvaWQgKmFyZykKK3sKKwlQTHBnU1FMX2V4cHIgKmV4cHIgPSAoUExwZ1NRTF9l eHByICopIGFyZzsKKworCUFzc2VydChleHByKTsKKworCWVycmNvbnRleHQoIlNRTCBzdGF0ZW1l bnQgXCIlc1wiIiwgZXhwci0+cXVlcnkpOworfQorCiAKIC8qIC0tLS0tLS0tLS0KICAqIFN1cHBv cnQgZnVuY3Rpb24gZm9yIGluaXRpYWxpemluZyBsb2NhbCBleGVjdXRpb24gdmFyaWFibGVzCkBA IC00MjUzLDYgKzQyNjYsNTkgQEAgZXhlY19zdG10X2V4ZWNzcWwoUExwZ1NRTF9leGVjc3RhdGUg KmVzdGF0ZSwKIAkJc3RtdC0+bW9kX3N0bXRfc2V0ID0gdHJ1ZTsKIAl9CiAKKwkvKgorCSAqIFNv bWUgdXNlcnMgd3JpdGUgIlNFTEVDVCBleHByIElOVE8gdmFyIiBpbnN0ZWFkIG9mICJ2YXIgOj0g ZXhwciIuICBJZgorCSAqIHRoZSBleHByZXNzaW9uIGlzIHNpbXBsZSBhbmQgdGhlIElOVE8gdGFy Z2V0IGlzIGEgc2luZ2xlIHZhcmlhYmxlLCB3ZQorCSAqIGNhbiBieXBhc3MgU1BJIGFuZCBjYWxs IEV4ZWNFdmFsRXhwcigpIGRpcmVjdGx5LiAgKGV4ZWNfYXNzaWduX2V4cHIKKwkgKiB3b3VsZCBh Y3R1YWxseSB3b3JrIGZvciBub24tc2ltcGxlIGV4cHJlc3Npb25zIHRvbywgYnV0IHN1Y2ggYW4K KwkgKiBleHByZXNzaW9uIG1pZ2h0IHJldHVybiBtb3JlIG9yIGxlc3MgdGhhbiBvbmUgcm93LCBj b21wbGljYXRpbmcgbWF0dGVycworCSAqIGdyZWF0bHkuICBUaGUgcG90ZW50aWFsIHBlcmZvcm1h bmNlIHdpbiBpcyBzbWFsbCBpZiBpdCdzIG5vbi1zaW1wbGUsCisJICogYW5kIGFueSBlcnJvcnMg d2UgbWlnaHQgaXNzdWUgd291bGQgbGlrZWx5IGxvb2sgZGlmZmVyZW50LCBzbyBhdm9pZAorCSAq IHVzaW5nIHRoaXMgY29kZSBwYXRoIGZvciBub24tc2ltcGxlIGNhc2VzLikKKwkgKi8KKwlpZiAo ZXhwci0+ZXhwcl9zaW1wbGVfZXhwciAmJiBzdG10LT5pbnRvKQorCXsKKwkJUExwZ1NRTF9kYXR1 bSAqdGFyZ2V0ID0gZXN0YXRlLT5kYXR1bXNbc3RtdC0+dGFyZ2V0LT5kbm9dOworCisJCWlmICh0 YXJnZXQtPmR0eXBlID09IFBMUEdTUUxfRFRZUEVfUk9XKQorCQl7CisJCQlQTHBnU1FMX3JvdyAq cm93ID0gKFBMcGdTUUxfcm93ICopIHRhcmdldDsKKworCQkJaWYgKHJvdy0+bmZpZWxkcyA9PSAx KQorCQkJeworCQkJCUVycm9yQ29udGV4dENhbGxiYWNrIHBsZXJyY29udGV4dDsKKworCQkJCS8q CisJCQkJICogU2V0dXAgZXJyb3IgdHJhY2ViYWNrIHN1cHBvcnQgZm9yIHJlcG9ydGluZyBTUUwg c3RhdGVtZW50CisJCQkJICogaW4gY29udGV4dC4KKwkJCQkgKi8KKwkJCQlwbGVycmNvbnRleHQu Y2FsbGJhY2sgPSBwbHBnc3FsX2V4ZWNzcWxfZXJyb3JfY2FsbGJhY2s7CisJCQkJcGxlcnJjb250 ZXh0LmFyZyA9IGV4cHI7CisJCQkJcGxlcnJjb250ZXh0LnByZXZpb3VzID0gZXJyb3JfY29udGV4 dF9zdGFjazsKKwkJCQllcnJvcl9jb250ZXh0X3N0YWNrID0gJnBsZXJyY29udGV4dDsKKworCQkJ CS8qIEV2YWx1YXRlIHRoZSBleHByZXNzaW9uIGFuZCBhc3NpZ24gdG8gdGhlIElOVE8gdGFyZ2V0 ICovCisJCQkJZXhlY19hc3NpZ25fZXhwcihlc3RhdGUsIGVzdGF0ZS0+ZGF0dW1zW3Jvdy0+dmFy bm9zWzBdXSwKKwkJCQkJCQkJIGV4cHIpOworCisJCQkJLyoKKwkJCQkgKiBXZSBtdXN0IGR1cGxp Y2F0ZSB0aGUgb3RoZXIgZWZmZWN0cyBvZiB0aGUgY29kZSBiZWxvdywgYXMKKwkJCQkgKiB3ZWxs LiAgV2Uga25vdyB0aGF0IGV4YWN0bHkgb25lIHJvdyB3YXMgcmV0dXJuZWQsIHNvIGl0CisJCQkJ ICogZG9lc24ndCBtYXR0ZXIgd2hldGhlciB0aGUgSU5UTyB3YXMgU1RSSUNUIG9yIG5vdC4KKwkJ CQkgKi8KKwkJCQlleGVjX3NldF9mb3VuZChlc3RhdGUsIHRydWUpOworCQkJCWVzdGF0ZS0+ZXZh bF9wcm9jZXNzZWQgPSAxOworCisJCQkJLyoKKwkJCQkgKiBQb3AgdGhlIGVycm9yIGNvbnRleHQg c3RhY2sKKwkJCQkgKi8KKwkJCQllcnJvcl9jb250ZXh0X3N0YWNrID0gcGxlcnJjb250ZXh0LnBy ZXZpb3VzOworCisJCQkJcmV0dXJuIFBMUEdTUUxfUkNfT0s7CisJCQl9CisJCX0KKwl9CisKIAkv KgogCSAqIFNldCB1cCBQYXJhbUxpc3RJbmZvIHRvIHBhc3MgdG8gZXhlY3V0b3IKIAkgKi8K --0000000000008c080f064ca6f1fb--