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.94.2) (envelope-from ) id 1tVJ3Z-007BPy-08 for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Jan 2025 23:32:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tVJ3X-009l8J-Ak for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Jan 2025 23:32:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tVJ3W-009l7Y-QF for pgsql-hackers@lists.postgresql.org; Tue, 07 Jan 2025 23:32:14 +0000 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tVJ3S-000Qdf-2q for pgsql-hackers@postgresql.org; Tue, 07 Jan 2025 23:32:13 +0000 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2162c0f6a39so5579225ad.0 for ; Tue, 07 Jan 2025 15:32:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1736292729; x=1736897529; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:from:to:cc:subject:date:message-id:reply-to; bh=50aHbVyzBYkgDBJ2hvozq1JsBR0Bi9R2kUTbD98xkbA=; b=MPn+cmuyAcFQ9Gor7QCJ8noLZFUfV0AW58uViYiDeAdv7d+KPxPeEZ3HTVBVkhSS8d J4i9sqIx/K6cFcwYt/1kDwFoRvPVQB+m6+HljNQOeuoztI/D9dJvnlUo2wv4fq83wLFo NtNTCTy3dkR2Uh/6TwfkKjaoBDiH0WfQz+10NajxsmzLKBg6D6lXc/Bv/xfvXuR1Ue3H wI0V7GmblI30DEqDeXDYVC2pXoZu0ku4W/pUZkRYCx0PJaL2AGSkB3qekC2kwsC4csSN 1hBqjBmnM4tIRwRg3SkQkZOHfdzDwncZwb9wnONCZDFyU0Pr7fmvZgEOJmfhL+iceT/L hYQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736292729; x=1736897529; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=50aHbVyzBYkgDBJ2hvozq1JsBR0Bi9R2kUTbD98xkbA=; b=d0tDW3YRdcESIkmwH+6ly0VkDaxm5HYe7/7yp6zWLCxa9bf2ExytLs+2+Q9r+9VDuD PtiW1FkAs7+8mnXN4XsCCHYTO2RWGX9STPggjMI/twjEO08lld8MtF/jkQCzTZuk90e0 qcECfC7w8XT5jpjJf0z6vKiLZ3NvcjyScq4mioTYwMR2wgIyB9SINOom71igBhuCaLIh itBXJMni1iQXkwoOl9tUPq0JPDv3rungiWE1keVJGb71ccMljsrW7sKpWAvAN4OLJvig fso3DOvopMqA1YuerZPreMNKQ6/3U8kYl9wzQjzGHBZXz/5VIt4HAW9eqZX+lcQwjpgZ fKTw== X-Forwarded-Encrypted: i=1; AJvYcCWN37MrVtSfN+dRTZvgodogzdzw7fG1VvEhR7zR6c1bSCadkE0v0i14KK4YDXGnWkc7kcxPE73kcWHeWEZO@postgresql.org X-Gm-Message-State: AOJu0YzEF1J1SXGK/bxwZIf+Aps+SvSpGDIwE2+aYtL/N34xrYjRIDcb OTBxa6E9m+1uPTKktzRWUItFpfYZn9MldA/rZN+V27NOr9j39/S574ukGQtCGA== X-Gm-Gg: ASbGncuIsB64AywcmWJAni+XB0JX0wKcX1adQzuYCD/VScM0BNW0FsWRI6ype+b/RAg Nst2VCR+PxbdDv4HX0WFUhUF97eqmWdp5cla5AqbE/yTEJJgwi8ungi1AkH3OMttgvuaqEntn8m Q5WFwlDVEZREzEoplisajhGhU4862eo/n7FelNa+5qq6KtTqNBJ1CuxngpH0NO54X+oCDSPerY+ CMosKz2vZA6M+EtAGVN3/Ax4bEM5Gm6TR5W+rSM6BGL5o4CyprQprhp X-Google-Smtp-Source: AGHT+IFBiKj6RMIM5m+m8hZ5xAhLjY6BAM/3QmMannj3mD8eQQIwUYXhErl7P7fzG6zFnsujh9aMqA== X-Received: by 2002:a05:6a21:6f87:b0:1e0:d3e9:1f8 with SMTP id adf61e73a8af0-1e88d11fd2bmr1353292637.10.1736292729247; Tue, 07 Jan 2025 15:32:09 -0800 (PST) Received: from [172.24.2.43] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72aad848020sm33950010b3a.81.2025.01.07.15.32.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2025 15:32:08 -0800 (PST) Message-ID: Subject: Re: Reduce TupleHashEntryData struct size by half From: Jeff Davis To: Heikki Linnakangas , pgsql-hackers@postgresql.org Date: Tue, 07 Jan 2025 15:32:07 -0800 In-Reply-To: <7530bd8783b1a78d53a3c70383e38d8da0a5ffe5.camel@j-davis.com> References: <817d244237878cebdff0bc363718feaf49a1ea7d.camel@j-davis.com> <0f3e7407-fb19-42c0-ad10-46eace6c1399@iki.fi> <7c3224111d9edcc16e8e3c8242de5a82c4ee2a73.camel@j-davis.com> <7530bd8783b1a78d53a3c70383e38d8da0a5ffe5.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-5dSGuhIVdpqt2lWhiM3F" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-5dSGuhIVdpqt2lWhiM3F Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2024-11-21 at 12:37 -0800, Jeff Davis wrote: >=20 > New patch series attached. I committed the earlier cleanup patches and rebased the rest. Attached. 0001 is not quite as clean as I'd like it to be; suggestions welcome. It does save a pointer per entry, though, which is substantial. Regards, Jeff Davis --=-5dSGuhIVdpqt2lWhiM3F Content-Disposition: attachment; filename*0=v3-0001-TupleHashTable-store-additional-data-along-with-t.pat; filename*1=ch Content-Type: text/x-patch; name="v3-0001-TupleHashTable-store-additional-data-along-with-t.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzOTlmMGUxNzVjMjNmMjc1YjU0ZWZkNGVjOGVhYTU4YjFhN2Q5NmM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDE0IE5vdiAyMDI0IDExOjQ3OjUxIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MyAxLzRdIFR1 cGxlSGFzaFRhYmxlOiBzdG9yZSBhZGRpdGlvbmFsIGRhdGEgYWxvbmcgd2l0aAogdHVwbGUuCgpQ cmV2aW91c2x5LCB0aGUgY2FsbGVyIG5lZWRlZCB0byBhbGxvY2F0ZSB0aGUgbWVtb3J5IGFuZCB0 aGUKVHVwbGVIYXNoVGFibGUgd291bGQgc3RvcmUgYSBwb2ludGVyIHRvIGl0LiBUaGF0IHdhc3Rl cyBzcGFjZSBmb3IgdGhlCnBhbGxvYyBvdmVyaGVhZCBhcyB3ZWxsIGFzIHRoZSBzaXplIG9mIHRo ZSBwb2ludGVyIGl0c2VsZi4KCk5vdywgdGhlIFR1cGxlSGFzaFRhYmxlIHJlbGllcyBvbiB0aGUg Y2FsbGVyIHRvIGNvcnJlY3RseSBzcGVjaWZ5IHRoZQphZGRpdGlvbmFsc2l6ZSwgYW5kIGFsbG9j YXRlcyB0aGF0IGFtb3VudCBvZiBzcGFjZS4gVGhlIGNhbGxlciBjYW4KdGhlbiByZXF1ZXN0IGEg cG9pbnRlciBpbnRvIHRoYXQgc3BhY2UuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dy b3VwaW5nLmMgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZUFnZy5jICAgICAgfCAyMCArKysrLS0tLS0tCiBzcmMvYmFja2VuZC9leGVj dXRvci9ub2RlU2V0T3AuYyAgICB8IDE3ICsrKysrLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVN1YnBsYW4uYyAgfCAgMiArLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAg ICAgfCAgMyArKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgfCAxMCArLS0t LQogNiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNHcm91cGluZy5jCmluZGV4IDMzYjEyNGZiYjBhLi4yOWJkMzE2MmFk NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMKQEAgLTIwLDYgKzIwLDEzIEBACiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAKK3R5 cGVkZWYgc3RydWN0IFR1cGxlSGFzaEVudHJ5RGF0YQoreworCU1pbmltYWxUdXBsZSBmaXJzdFR1 cGxlOwkvKiBjb3B5IG9mIGZpcnN0IHR1cGxlIGluIHRoaXMgZ3JvdXAgKi8KKwl1aW50MzIJCXN0 YXR1czsJCQkvKiBoYXNoIHN0YXR1cyAqLworCXVpbnQzMgkJaGFzaDsJCQkvKiBoYXNoIHZhbHVl IChjYWNoZWQpICovCit9IFR1cGxlSGFzaEVudHJ5RGF0YTsKKwogc3RhdGljIGludAlUdXBsZUhh c2hUYWJsZU1hdGNoKHN0cnVjdCB0dXBsZWhhc2hfaGFzaCAqdGIsIGNvbnN0IE1pbmltYWxUdXBs ZSB0dXBsZTEsIGNvbnN0IE1pbmltYWxUdXBsZSB0dXBsZTIpOwogc3RhdGljIGlubGluZSB1aW50 MzIgVHVwbGVIYXNoVGFibGVIYXNoX2ludGVybmFsKHN0cnVjdCB0dXBsZWhhc2hfaGFzaCAqdGIs CiAJCQkJCQkJCQkJCQkgY29uc3QgTWluaW1hbFR1cGxlIHR1cGxlKTsKQEAgLTE5Niw2ICsyMDMs NyBAQCBCdWlsZFR1cGxlSGFzaFRhYmxlKFBsYW5TdGF0ZSAqcGFyZW50LAogCWhhc2h0YWJsZS0+ dGFiX2NvbGxhdGlvbnMgPSBjb2xsYXRpb25zOwogCWhhc2h0YWJsZS0+dGFibGVjeHQgPSB0YWJs ZWN4dDsKIAloYXNodGFibGUtPnRlbXBjeHQgPSB0ZW1wY3h0OworCWhhc2h0YWJsZS0+YWRkaXRp b25hbHNpemUgPSBhZGRpdGlvbmFsc2l6ZTsKIAloYXNodGFibGUtPnRhYmxlc2xvdCA9IE5VTEw7 CS8qIHdpbGwgYmUgbWFkZSBvbiBmaXJzdCBsb29rdXAgKi8KIAloYXNodGFibGUtPmlucHV0c2xv dCA9IE5VTEw7CiAJaGFzaHRhYmxlLT5pbl9oYXNoX2V4cHIgPSBOVUxMOwpAQCAtMjczLDYgKzI4 MSwxNSBAQCBSZXNldFR1cGxlSGFzaFRhYmxlKFR1cGxlSGFzaFRhYmxlIGhhc2h0YWJsZSkKIAl0 dXBsZWhhc2hfcmVzZXQoaGFzaHRhYmxlLT5oYXNodGFiKTsKIH0KIAorLyoKKyAqIFJldHVybiBz aXplIG9mIHRoZSBoYXNoIGJ1Y2tldC4gVXNlZnVsIGZvciBlc3RpbWF0aW5nIG1lbW9yeSB1c2Fn ZS4KKyAqLworc2l6ZV90CitUdXBsZUhhc2hFbnRyeVNpemUodm9pZCkKK3sKKwlyZXR1cm4gc2l6 ZW9mKFR1cGxlSGFzaEVudHJ5RGF0YSk7Cit9CisKIC8qCiAgKiBGaW5kIG9yIGNyZWF0ZSBhIGhh c2h0YWJsZSBlbnRyeSBmb3IgdGhlIHR1cGxlIGdyb3VwIGNvbnRhaW5pbmcgdGhlCiAgKiBnaXZl biB0dXBsZS4gIFRoZSB0dXBsZSBtdXN0IGJlIHRoZSBzYW1lIHR5cGUgYXMgdGhlIGhhc2h0YWJs ZSBlbnRyaWVzLgpAQCAtMzM5LDYgKzM1NiwyNiBAQCBUdXBsZUhhc2hUYWJsZUhhc2goVHVwbGVI YXNoVGFibGUgaGFzaHRhYmxlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIAlyZXR1cm4gaGFzaDsK IH0KIAorTWluaW1hbFR1cGxlCitUdXBsZUhhc2hFbnRyeUdldFR1cGxlKFR1cGxlSGFzaEVudHJ5 IGVudHJ5KQoreworCXJldHVybiBlbnRyeS0+Zmlyc3RUdXBsZTsKK30KKworLyoKKyAqIEdldCBh IHBvaW50ZXIgaW50byB0aGUgYWRkaXRpb25hbCBzcGFjZSBhbGxvY2F0ZWQgZm9yIHRoaXMgZW50 cnkuIFRoZQorICogYW1vdW50IG9mIHNwYWNlIGF2YWlsYWJsZSBpcyB0aGUgYWRkaXRpb25hbHNp emUgc3BlY2lmaWVkIHRvCisgKiBCdWlsZFR1cGxlSGFzaFRhYmxlKCkuIElmIGFkZGl0aW9uYWxz aXplIHdhcyBzcGVjaWZpZWQgYXMgemVybywgbm8KKyAqIGFkZGl0aW9uYWwgc3BhY2UgaXMgYXZh aWxhYmxlIGFuZCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgY2FsbGVkLgorICovCit2b2lk ICoKK1R1cGxlSGFzaEVudHJ5R2V0QWRkaXRpb25hbChUdXBsZUhhc2hFbnRyeSBlbnRyeSkKK3sK KwlBc3NlcnQoR2V0TWVtb3J5Q2h1bmtTcGFjZShlbnRyeS0+Zmlyc3RUdXBsZSkgPiBNQVhBTElH TihlbnRyeS0+Zmlyc3RUdXBsZS0+dF9sZW4pKTsKKworCXJldHVybiAoY2hhciAqKSBlbnRyeS0+ Zmlyc3RUdXBsZSArIE1BWEFMSUdOKGVudHJ5LT5maXJzdFR1cGxlLT50X2xlbik7Cit9CisKIC8q CiAgKiBBIHZhcmlhbnQgb2YgTG9va3VwVHVwbGVIYXNoRW50cnkgZm9yIGNhbGxlcnMgdGhhdCBo YXZlIGFscmVhZHkgY29tcHV0ZWQKICAqIHRoZSBoYXNoIHZhbHVlLgpAQCAtNDc3LDEzICs1MTQs MzEgQEAgTG9va3VwVHVwbGVIYXNoRW50cnlfaW50ZXJuYWwoVHVwbGVIYXNoVGFibGUgaGFzaHRh YmxlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAkJfQogCQllbHNlCiAJCXsKKwkJCU1pbmltYWxU dXBsZSBmaXJzdFR1cGxlOworCQkJc2l6ZV90IHRvdGFsc2l6ZTsgLyogaW5jbHVkaW5nIGFsaWdu bWVudCBhbmQgYWRkaXRpb25hbHNpemUgKi8KKwogCQkJLyogY3JlYXRlZCBuZXcgZW50cnkgKi8K IAkJCSppc25ldyA9IHRydWU7CiAJCQkvKiB6ZXJvIGNhbGxlciBkYXRhICovCi0JCQllbnRyeS0+ YWRkaXRpb25hbCA9IE5VTEw7CiAJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8oaGFzaHRhYmxlLT50 YWJsZWN4dCk7CisKIAkJCS8qIENvcHkgdGhlIGZpcnN0IHR1cGxlIGludG8gdGhlIHRhYmxlIGNv bnRleHQgKi8KLQkJCWVudHJ5LT5maXJzdFR1cGxlID0gRXhlY0NvcHlTbG90TWluaW1hbFR1cGxl KHNsb3QpOworCQkJZmlyc3RUdXBsZSA9IEV4ZWNDb3B5U2xvdE1pbmltYWxUdXBsZShzbG90KTsK KworCQkJLyoKKwkJCSAqIEFsbG9jYXRlIGFkZGl0aW9uYWwgc3BhY2UgcmlnaHQgYWZ0ZXIgdGhl IE1pbmltYWxUdXBsZSBvZiBzaXplCisJCQkgKiBhZGRpdGlvbmFsc2l6ZS4gVGhlIGNhbGxlciBj YW4gZ2V0IGEgcG9pbnRlciB0byB0aGlzIGRhdGEgd2l0aAorCQkJICogVHVwbGVIYXNoRW50cnlH ZXRBZGRpdGlvbmFsKCksIGFuZCBzdG9yZSBhcmJpdHJhcnkgZGF0YSB0aGVyZS4KKwkJCSAqCisJ CQkgKiBUaGlzIGF2b2lkcyB0aGUgbmVlZCB0byBzdG9yZSBhbiBleHRyYSBwb2ludGVyIG9yIGFs bG9jYXRlIGFuCisJCQkgKiBhZGRpdGlvbmFsIGNodW5rLCB3aGljaCB3b3VsZCB3YXN0ZSBtZW1v cnkuCisJCQkgKi8KKwkJCXRvdGFsc2l6ZSA9IE1BWEFMSUdOKGZpcnN0VHVwbGUtPnRfbGVuKSAr IGhhc2h0YWJsZS0+YWRkaXRpb25hbHNpemU7CisJCQlmaXJzdFR1cGxlID0gcmVwYWxsb2MoZmly c3RUdXBsZSwgdG90YWxzaXplKTsKKwkJCW1lbXNldCgoY2hhciAqKSBmaXJzdFR1cGxlICsgZmly c3RUdXBsZS0+dF9sZW4sIDAsCisJCQkJICAgdG90YWxzaXplIC0gZmlyc3RUdXBsZS0+dF9sZW4p OworCisJCQllbnRyeS0+Zmlyc3RUdXBsZSA9IGZpcnN0VHVwbGU7CiAJCX0KIAl9CiAJZWxzZQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZUFnZy5jCmluZGV4IDMwMDViNWMwZTNiLi4xOTY0MDc1Mjk2NyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVBZ2cuYwpAQCAtMTcxMyw3ICsxNzEzLDcgQEAgaGFzaF9hZ2dfZW50cnlfc2l6 ZShpbnQgbnVtVHJhbnMsIFNpemUgdHVwbGVXaWR0aCwgU2l6ZSB0cmFuc2l0aW9uU3BhY2UpCiAJ CXRyYW5zaXRpb25DaHVua1NpemUgPSAwOwogCiAJcmV0dXJuCi0JCXNpemVvZihUdXBsZUhhc2hF bnRyeURhdGEpICsKKwkJVHVwbGVIYXNoRW50cnlTaXplKCkgKwogCQl0dXBsZUNodW5rU2l6ZSAr CiAJCXBlcmdyb3VwQ2h1bmtTaXplICsKIAkJdHJhbnNpdGlvbkNodW5rU2l6ZTsKQEAgLTE5NTQs NyArMTk1NCw3IEBAIGhhc2hfYWdnX3VwZGF0ZV9tZXRyaWNzKEFnZ1N0YXRlICphZ2dzdGF0ZSwg Ym9vbCBmcm9tX3RhcGUsIGludCBucGFydGl0aW9ucykKIAlpZiAoYWdnc3RhdGUtPmhhc2hfbmdy b3Vwc19jdXJyZW50ID4gMCkKIAl7CiAJCWFnZ3N0YXRlLT5oYXNoZW50cnlzaXplID0KLQkJCXNp emVvZihUdXBsZUhhc2hFbnRyeURhdGEpICsKKwkJCVR1cGxlSGFzaEVudHJ5U2l6ZSgpICsKIAkJ CShoYXNoa2V5X21lbSAvIChkb3VibGUpIGFnZ3N0YXRlLT5oYXNoX25ncm91cHNfY3VycmVudCk7 CiAJfQogfQpAQCAtMjA1NSwxMSArMjA1NSw3IEBAIGluaXRpYWxpemVfaGFzaF9lbnRyeShBZ2dT dGF0ZSAqYWdnc3RhdGUsIFR1cGxlSGFzaFRhYmxlIGhhc2h0YWJsZSwKIAlpZiAoYWdnc3RhdGUt Pm51bXRyYW5zID09IDApCiAJCXJldHVybjsKIAotCXBlcmdyb3VwID0gKEFnZ1N0YXRlUGVyR3Jv dXApCi0JCU1lbW9yeUNvbnRleHRBbGxvYyhoYXNodGFibGUtPnRhYmxlY3h0LAotCQkJCQkJICAg c2l6ZW9mKEFnZ1N0YXRlUGVyR3JvdXBEYXRhKSAqIGFnZ3N0YXRlLT5udW10cmFucyk7Ci0KLQll bnRyeS0+YWRkaXRpb25hbCA9IHBlcmdyb3VwOworCXBlcmdyb3VwID0gKEFnZ1N0YXRlUGVyR3Jv dXApIFR1cGxlSGFzaEVudHJ5R2V0QWRkaXRpb25hbChlbnRyeSk7CiAKIAkvKgogCSAqIEluaXRp YWxpemUgYWdncmVnYXRlcyBmb3IgbmV3IHR1cGxlIGdyb3VwLCBsb29rdXBfaGFzaF9lbnRyaWVz KCkKQEAgLTIxMjMsNyArMjExOSw3IEBAIGxvb2t1cF9oYXNoX2VudHJpZXMoQWdnU3RhdGUgKmFn Z3N0YXRlKQogCQl7CiAJCQlpZiAoaXNuZXcpCiAJCQkJaW5pdGlhbGl6ZV9oYXNoX2VudHJ5KGFn Z3N0YXRlLCBoYXNodGFibGUsIGVudHJ5KTsKLQkJCXBlcmdyb3VwW3NldG5vXSA9IGVudHJ5LT5h ZGRpdGlvbmFsOworCQkJcGVyZ3JvdXBbc2V0bm9dID0gVHVwbGVIYXNoRW50cnlHZXRBZGRpdGlv bmFsKGVudHJ5KTsKIAkJfQogCQllbHNlCiAJCXsKQEAgLTI2ODEsNyArMjY3Nyw3IEBAIGFnZ19y ZWZpbGxfaGFzaF90YWJsZShBZ2dTdGF0ZSAqYWdnc3RhdGUpCiAJCXsKIAkJCWlmIChpc25ldykK IAkJCQlpbml0aWFsaXplX2hhc2hfZW50cnkoYWdnc3RhdGUsIHBlcmhhc2gtPmhhc2h0YWJsZSwg ZW50cnkpOwotCQkJYWdnc3RhdGUtPmhhc2hfcGVyZ3JvdXBbYmF0Y2gtPnNldG5vXSA9IGVudHJ5 LT5hZGRpdGlvbmFsOworCQkJYWdnc3RhdGUtPmhhc2hfcGVyZ3JvdXBbYmF0Y2gtPnNldG5vXSA9 IFR1cGxlSGFzaEVudHJ5R2V0QWRkaXRpb25hbChlbnRyeSk7CiAJCQlhZHZhbmNlX2FnZ3JlZ2F0 ZXMoYWdnc3RhdGUpOwogCQl9CiAJCWVsc2UKQEAgLTI3NzMsNyArMjc2OSw3IEBAIGFnZ19yZXRy aWV2ZV9oYXNoX3RhYmxlX2luX21lbW9yeShBZ2dTdGF0ZSAqYWdnc3RhdGUpCiAJRXhwckNvbnRl eHQgKmVjb250ZXh0OwogCUFnZ1N0YXRlUGVyQWdnIHBlcmFnZzsKIAlBZ2dTdGF0ZVBlckdyb3Vw IHBlcmdyb3VwOwotCVR1cGxlSGFzaEVudHJ5RGF0YSAqZW50cnk7CisJVHVwbGVIYXNoRW50cnkg ZW50cnk7CiAJVHVwbGVUYWJsZVNsb3QgKmZpcnN0U2xvdDsKIAlUdXBsZVRhYmxlU2xvdCAqcmVz dWx0OwogCUFnZ1N0YXRlUGVySGFzaCBwZXJoYXNoOwpAQCAtMjg0NSw3ICsyODQxLDcgQEAgYWdn X3JldHJpZXZlX2hhc2hfdGFibGVfaW5fbWVtb3J5KEFnZ1N0YXRlICphZ2dzdGF0ZSkKIAkJICog VHJhbnNmb3JtIHJlcHJlc2VudGF0aXZlIHR1cGxlIGJhY2sgaW50byBvbmUgd2l0aCB0aGUgcmln aHQKIAkJICogY29sdW1ucy4KIAkJICovCi0JCUV4ZWNTdG9yZU1pbmltYWxUdXBsZShlbnRyeS0+ Zmlyc3RUdXBsZSwgaGFzaHNsb3QsIGZhbHNlKTsKKwkJRXhlY1N0b3JlTWluaW1hbFR1cGxlKFR1 cGxlSGFzaEVudHJ5R2V0VHVwbGUoZW50cnkpLCBoYXNoc2xvdCwgZmFsc2UpOwogCQlzbG90X2dl dGFsbGF0dHJzKGhhc2hzbG90KTsKIAogCQlFeGVjQ2xlYXJUdXBsZShmaXJzdFNsb3QpOwpAQCAt Mjg2MSw3ICsyODU3LDcgQEAgYWdnX3JldHJpZXZlX2hhc2hfdGFibGVfaW5fbWVtb3J5KEFnZ1N0 YXRlICphZ2dzdGF0ZSkKIAkJfQogCQlFeGVjU3RvcmVWaXJ0dWFsVHVwbGUoZmlyc3RTbG90KTsK IAotCQlwZXJncm91cCA9IChBZ2dTdGF0ZVBlckdyb3VwKSBlbnRyeS0+YWRkaXRpb25hbDsKKwkJ cGVyZ3JvdXAgPSAoQWdnU3RhdGVQZXJHcm91cCkgVHVwbGVIYXNoRW50cnlHZXRBZGRpdGlvbmFs KGVudHJ5KTsKIAogCQkvKgogCQkgKiBVc2UgdGhlIHJlcHJlc2VudGF0aXZlIGlucHV0IHR1cGxl IGZvciBhbnkgcmVmZXJlbmNlcyB0bwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNldE9wLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2V0T3AuYwppbmRleCA1Yjdm ZjljMzc0OC4uMmE1MGQ1NmZjODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVTZXRPcC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXRPcC5jCkBAIC00MjUs NiArNDI1LDcgQEAgc2V0b3BfZmlsbF9oYXNoX3RhYmxlKFNldE9wU3RhdGUgKnNldG9wc3RhdGUp CiAJewogCQlUdXBsZVRhYmxlU2xvdCAqb3V0ZXJzbG90OwogCQlUdXBsZUhhc2hFbnRyeURhdGEg KmVudHJ5OworCQlTZXRPcFN0YXRlUGVyR3JvdXAgcGVyZ3JvdXA7CiAJCWJvb2wJCWlzbmV3Owog CiAJCW91dGVyc2xvdCA9IEV4ZWNQcm9jTm9kZShvdXRlclBsYW4pOwpAQCAtNDM3LDE2ICs0Mzgs MTYgQEAgc2V0b3BfZmlsbF9oYXNoX3RhYmxlKFNldE9wU3RhdGUgKnNldG9wc3RhdGUpCiAJCQkJ CQkJCQkgb3V0ZXJzbG90LAogCQkJCQkJCQkJICZpc25ldywgTlVMTCk7CiAKKwkJcGVyZ3JvdXAg PSBUdXBsZUhhc2hFbnRyeUdldEFkZGl0aW9uYWwoZW50cnkpOwogCQkvKiBJZiBuZXcgdHVwbGUg Z3JvdXAsIGluaXRpYWxpemUgY291bnRzIHRvIHplcm8gKi8KIAkJaWYgKGlzbmV3KQogCQl7Ci0J CQllbnRyeS0+YWRkaXRpb25hbCA9IChTZXRPcFN0YXRlUGVyR3JvdXApCi0JCQkJTWVtb3J5Q29u dGV4dEFsbG9jWmVybyhzZXRvcHN0YXRlLT5oYXNodGFibGUtPnRhYmxlY3h0LAotCQkJCQkJCQkJ ICAgc2l6ZW9mKFNldE9wU3RhdGVQZXJHcm91cERhdGEpKTsKKwkJCXBlcmdyb3VwLT5udW1MZWZ0 ID0gMDsKKwkJCXBlcmdyb3VwLT5udW1SaWdodCA9IDA7CiAJCX0KIAogCQkvKiBBZHZhbmNlIHRo ZSBjb3VudHMgKi8KLQkJKChTZXRPcFN0YXRlUGVyR3JvdXApIGVudHJ5LT5hZGRpdGlvbmFsKS0+ bnVtTGVmdCsrOworCQlwZXJncm91cC0+bnVtTGVmdCsrOwogCiAJCS8qIE11c3QgcmVzZXQgZXhw cmVzc2lvbiBjb250ZXh0IGFmdGVyIGVhY2ggaGFzaHRhYmxlIGxvb2t1cCAqLwogCQlSZXNldEV4 cHJDb250ZXh0KGVjb250ZXh0KTsKQEAgLTQ3OCw3ICs0NzksNyBAQCBzZXRvcF9maWxsX2hhc2hf dGFibGUoU2V0T3BTdGF0ZSAqc2V0b3BzdGF0ZSkKIAogCQkJLyogQWR2YW5jZSB0aGUgY291bnRz IGlmIGVudHJ5IGlzIGFscmVhZHkgcHJlc2VudCAqLwogCQkJaWYgKGVudHJ5KQotCQkJCSgoU2V0 T3BTdGF0ZVBlckdyb3VwKSBlbnRyeS0+YWRkaXRpb25hbCktPm51bVJpZ2h0Kys7CisJCQkJKChT ZXRPcFN0YXRlUGVyR3JvdXApIFR1cGxlSGFzaEVudHJ5R2V0QWRkaXRpb25hbChlbnRyeSkpLT5u dW1SaWdodCsrOwogCiAJCQkvKiBNdXN0IHJlc2V0IGV4cHJlc3Npb24gY29udGV4dCBhZnRlciBl YWNoIGhhc2h0YWJsZSBsb29rdXAgKi8KIAkJCVJlc2V0RXhwckNvbnRleHQoZWNvbnRleHQpOwpA QCAtNDk2LDcgKzQ5Nyw3IEBAIHNldG9wX2ZpbGxfaGFzaF90YWJsZShTZXRPcFN0YXRlICpzZXRv cHN0YXRlKQogc3RhdGljIFR1cGxlVGFibGVTbG90ICoKIHNldG9wX3JldHJpZXZlX2hhc2hfdGFi bGUoU2V0T3BTdGF0ZSAqc2V0b3BzdGF0ZSkKIHsKLQlUdXBsZUhhc2hFbnRyeURhdGEgKmVudHJ5 OworCVR1cGxlSGFzaEVudHJ5IGVudHJ5OwogCVR1cGxlVGFibGVTbG90ICpyZXN1bHRUdXBsZVNs b3Q7CiAKIAkvKgpAQCAtNTI2LDEyICs1MjcsMTIgQEAgc2V0b3BfcmV0cmlldmVfaGFzaF90YWJs ZShTZXRPcFN0YXRlICpzZXRvcHN0YXRlKQogCQkgKiBTZWUgaWYgd2Ugc2hvdWxkIGVtaXQgYW55 IGNvcGllcyBvZiB0aGlzIHR1cGxlLCBhbmQgaWYgc28gcmV0dXJuCiAJCSAqIHRoZSBmaXJzdCBj b3B5LgogCQkgKi8KLQkJc2V0X291dHB1dF9jb3VudChzZXRvcHN0YXRlLCAoU2V0T3BTdGF0ZVBl ckdyb3VwKSBlbnRyeS0+YWRkaXRpb25hbCk7CisJCXNldF9vdXRwdXRfY291bnQoc2V0b3BzdGF0 ZSwgKFNldE9wU3RhdGVQZXJHcm91cCkgVHVwbGVIYXNoRW50cnlHZXRBZGRpdGlvbmFsKGVudHJ5 KSk7CiAKIAkJaWYgKHNldG9wc3RhdGUtPm51bU91dHB1dCA+IDApCiAJCXsKIAkJCXNldG9wc3Rh dGUtPm51bU91dHB1dC0tOwotCQkJcmV0dXJuIEV4ZWNTdG9yZU1pbmltYWxUdXBsZShlbnRyeS0+ Zmlyc3RUdXBsZSwKKwkJCXJldHVybiBFeGVjU3RvcmVNaW5pbWFsVHVwbGUoVHVwbGVIYXNoRW50 cnlHZXRUdXBsZShlbnRyeSksCiAJCQkJCQkJCQkJIHJlc3VsdFR1cGxlU2xvdCwKIAkJCQkJCQkJ CQkgZmFsc2UpOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU3Vi cGxhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVN1YnBsYW4uYwppbmRleCA0OTc2N2Vk NmE1Mi4uZjdmNmZjMmRhMGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVT dWJwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVN1YnBsYW4uYwpAQCAtNzUz LDcgKzc1Myw3IEBAIGZpbmRQYXJ0aWFsTWF0Y2goVHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlLCBU dXBsZVRhYmxlU2xvdCAqc2xvdCwKIAl7CiAJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CiAKLQkJ RXhlY1N0b3JlTWluaW1hbFR1cGxlKGVudHJ5LT5maXJzdFR1cGxlLCBoYXNodGFibGUtPnRhYmxl c2xvdCwgZmFsc2UpOworCQlFeGVjU3RvcmVNaW5pbWFsVHVwbGUoVHVwbGVIYXNoRW50cnlHZXRU dXBsZShlbnRyeSksIGhhc2h0YWJsZS0+dGFibGVzbG90LCBmYWxzZSk7CiAJCWlmICghZXhlY1R1 cGxlc1VuZXF1YWwoc2xvdCwgaGFzaHRhYmxlLT50YWJsZXNsb3QsCiAJCQkJCQkJICAgbnVtQ29s cywga2V5Q29sSWR4LAogCQkJCQkJCSAgIGVxZnVuY3Rpb25zLApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9y LmgKaW5kZXggZjhhOGQwM2U1MzMuLmE0OWMzMjA3MmUzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9y LmgKQEAgLTE0OCw5ICsxNDgsMTIgQEAgZXh0ZXJuIFR1cGxlSGFzaEVudHJ5IExvb2t1cFR1cGxl SGFzaEVudHJ5KFR1cGxlSGFzaFRhYmxlIGhhc2h0YWJsZSwKIAkJCQkJCQkJCQkgICBib29sICpp c25ldywgdWludDMyICpoYXNoKTsKIGV4dGVybiB1aW50MzIgVHVwbGVIYXNoVGFibGVIYXNoKFR1 cGxlSGFzaFRhYmxlIGhhc2h0YWJsZSwKIAkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90KTsK K2V4dGVybiBzaXplX3QgVHVwbGVIYXNoRW50cnlTaXplKHZvaWQpOwogZXh0ZXJuIFR1cGxlSGFz aEVudHJ5IExvb2t1cFR1cGxlSGFzaEVudHJ5SGFzaChUdXBsZUhhc2hUYWJsZSBoYXNodGFibGUs CiAJCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzbG90LAogCQkJCQkJCQkJCQkgICBib29s ICppc25ldywgdWludDMyIGhhc2gpOworZXh0ZXJuIE1pbmltYWxUdXBsZSBUdXBsZUhhc2hFbnRy eUdldFR1cGxlKFR1cGxlSGFzaEVudHJ5IGVudHJ5KTsKK2V4dGVybiB2b2lkICpUdXBsZUhhc2hF bnRyeUdldEFkZGl0aW9uYWwoVHVwbGVIYXNoRW50cnkgZW50cnkpOwogZXh0ZXJuIFR1cGxlSGFz aEVudHJ5IEZpbmRUdXBsZUhhc2hFbnRyeShUdXBsZUhhc2hUYWJsZSBoYXNodGFibGUsCiAJCQkJ CQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LAogCQkJCQkJCQkJCSBFeHByU3RhdGUgKmVxY29t cCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggYjNmN2FhMjk5ZjUuLjdkNTg3MWQ2ZmFjIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaApAQCAtODA2LDE3ICs4MDYsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRXhl Y0F1eFJvd01hcmsKICAqIHBvaW50IHRvIHRhYl9oYXNoX2V4cHIgYW5kIHRhYl9lcV9mdW5jIHJl c3BlY3RpdmVseS4KICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwordHlwZWRlZiBzdHJ1Y3QgVHVwbGVIYXNoRW50 cnlEYXRhIFR1cGxlSGFzaEVudHJ5RGF0YTsKIHR5cGVkZWYgc3RydWN0IFR1cGxlSGFzaEVudHJ5 RGF0YSAqVHVwbGVIYXNoRW50cnk7CiB0eXBlZGVmIHN0cnVjdCBUdXBsZUhhc2hUYWJsZURhdGEg KlR1cGxlSGFzaFRhYmxlOwogCi10eXBlZGVmIHN0cnVjdCBUdXBsZUhhc2hFbnRyeURhdGEKLXsK LQlNaW5pbWFsVHVwbGUgZmlyc3RUdXBsZTsJLyogY29weSBvZiBmaXJzdCB0dXBsZSBpbiB0aGlz IGdyb3VwICovCi0Jdm9pZAkgICAqYWRkaXRpb25hbDsJCS8qIHVzZXIgZGF0YSAqLwotCXVpbnQz MgkJc3RhdHVzOwkJCS8qIGhhc2ggc3RhdHVzICovCi0JdWludDMyCQloYXNoOwkJCS8qIGhhc2gg dmFsdWUgKGNhY2hlZCkgKi8KLX0gVHVwbGVIYXNoRW50cnlEYXRhOwotCiAvKiBkZWZpbmUgcGFy YW1ldGVycyBuZWNlc3NhcnkgdG8gZ2VuZXJhdGUgdGhlIHR1cGxlIGhhc2ggdGFibGUgaW50ZXJm YWNlICovCiAjZGVmaW5lIFNIX1BSRUZJWCB0dXBsZWhhc2gKICNkZWZpbmUgU0hfRUxFTUVOVF9U WVBFIFR1cGxlSGFzaEVudHJ5RGF0YQpAQCAtODM1LDYgKzgyOCw3IEBAIHR5cGVkZWYgc3RydWN0 IFR1cGxlSGFzaFRhYmxlRGF0YQogCU9pZAkJICAgKnRhYl9jb2xsYXRpb25zOyAvKiBjb2xsYXRp b25zIGZvciBoYXNoIGFuZCBjb21wYXJpc29uICovCiAJTWVtb3J5Q29udGV4dCB0YWJsZWN4dDsJ CS8qIG1lbW9yeSBjb250ZXh0IGNvbnRhaW5pbmcgdGFibGUgKi8KIAlNZW1vcnlDb250ZXh0IHRl bXBjeHQ7CQkvKiBjb250ZXh0IGZvciBmdW5jdGlvbiBldmFsdWF0aW9ucyAqLworCVNpemUJCWFk ZGl0aW9uYWxzaXplOwkvKiBzaXplIG9mIGFkZGl0aW9uYWwgZGF0YSAqLwogCVR1cGxlVGFibGVT bG90ICp0YWJsZXNsb3Q7CS8qIHNsb3QgZm9yIHJlZmVyZW5jaW5nIHRhYmxlIGVudHJpZXMgKi8K IAkvKiBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgc2V0IHRyYW5zaWVudGx5IGZvciBlYWNoIHRh YmxlIHNlYXJjaDogKi8KIAlUdXBsZVRhYmxlU2xvdCAqaW5wdXRzbG90OwkvKiBjdXJyZW50IGlu cHV0IHR1cGxlJ3Mgc2xvdCAqLwotLSAKMi4zNC4xCgo= --=-5dSGuhIVdpqt2lWhiM3F Content-Disposition: attachment; filename="v3-0002-simplehash-don-t-require-a-status-field.patch" Content-Type: text/x-patch; name="v3-0002-simplehash-don-t-require-a-status-field.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAxZDNlZTVkMDRhZGY3MjljZmY5MzU0NGNmOWE5Yjc2OGQ0N2ZhODA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDE1IE5vdiAyMDI0IDEyOjIxOjA0IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MyAyLzRdIHNp bXBsZWhhc2g6IGRvbid0IHJlcXVpcmUgYSAic3RhdHVzIiBmaWVsZC4KCkNhbGxlcnMgbWF5IGRl ZmluZSBTSF9FTlRSWV9JU19FTVBUWSgpLCBTSF9FTlRSWV9TRVRfRU1QVFkoKSwgYW5kClNIX0VO VFJZX1NFVF9JTl9VU0UoKSBhcyBhbiBhbHRlcm5hdGl2ZSwgd2hpY2ggY2FuIGFsbG93IGZvciBh IG1vcmUKY29tcGFjdCBlbnRyeSBzaXplLiBUaGF0IHJlZHVjZXMgdGhlIG1lbW9yeSBvdmVyaGVh ZCwgZXNwZWNpYWxseSB3aGVuCnRoZSBoYXNoIHRhYmxlIGlzIHNwYXJzZS4KLS0tCiBzcmMvaW5j bHVkZS9saWIvc2ltcGxlaGFzaC5oIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbGliL3NpbXBsZWhhc2guaCBiL3NyYy9pbmNsdWRl L2xpYi9zaW1wbGVoYXNoLmgKaW5kZXggMzI3Mjc0YzIzNDAuLjBiOWIwY2RmZGUwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9saWIvc2ltcGxlaGFzaC5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYi9z aW1wbGVoYXNoLmgKQEAgLTUwLDkgKzUwLDE4IEBACiAgKgkgIC0gU0hfSEFTSF9LRVkodGFibGUs IGtleSkgLSBnZW5lcmF0ZSBoYXNoIGZvciB0aGUga2V5CiAgKgkgIC0gU0hfU1RPUkVfSEFTSCAt IGlmIGRlZmluZWQgdGhlIGhhc2ggaXMgc3RvcmVkIGluIHRoZSBlbGVtZW50cwogICoJICAtIFNI X0dFVF9IQVNIKHRiLCBhKSAtIHJldHVybiB0aGUgZmllbGQgdG8gc3RvcmUgdGhlIGhhc2ggaW4K KyAqCSAgLSBTSF9FTlRSWV9JU19FTVBUWSh0YiwgYSkgLSByZXR1cm4gdHJ1ZSBpZiB0aGUgZW50 cnkgaXMgZW1wdHkKKyAqCSAgLSBTSF9FTlRSWV9TRVRfRU1QVFkodGIsIGEpIC0gc2V0IGVudHJ5 IHRvIGVtcHR5CisgKgkgIC0gU0hfRU5UUllfU0VUX0lOX1VTRSh0YiwgYSkgLSBzZXQgZW50cnkg dG8gImluIHVzZSIKICAqCiAgKgkgIFRoZSBlbGVtZW50IHR5cGUgaXMgcmVxdWlyZWQgdG8gY29u dGFpbiBhICJzdGF0dXMiIG1lbWJlciB0aGF0IGNhbiBzdG9yZQotICoJICB0aGUgcmFuZ2Ugb2Yg dmFsdWVzIGRlZmluZWQgaW4gdGhlIFNIX1NUQVRVUyBlbnVtLgorICoJICB0aGUgcmFuZ2Ugb2Yg dmFsdWVzIGRlZmluZWQgaW4gdGhlIFNIX1NUQVRVUyBlbnVtLiBBbHRlcm5hdGl2ZWx5LAorICoJ ICBjYWxsZXJzIG1heSBkZWZpbmUgYWxsIG9mIFNIX0VOVFJZX0lTX0VNUFRZLCBTSF9FTlRSWV9T RVRfRU1QVFksCisgKgkgIFNIX0VOVFJZX1NFVF9JTl9VU0UgdG8gYWxsb3cgZm9yIGEgbW9yZSBj b21wYWN0IGVudHJ5IHNpemUuIEZvciBleGFtcGxlLAorICoJICBpZiB0aGUgU0hfRUxFTUVOVF9U WVBFIGNvbnRhaW5zIGEgcG9pbnRlciwgdGhlIGNhbGxlciBtYXkgZGVjaWRlIHRoYXQKKyAqCSAg dGhlIGVudHJ5IGlzIGVtcHR5IGlmIHRoZSBwb2ludGVyIGlzIE5VTEwgYW5kICJpbiB1c2UiIGlm IHRoZSBwb2ludGVyIGlzCisgKgkgIG5vbi1OVUxMLiBOQjogaWYgdGhlIGVudGlyZSBlbnRyeSBp cyB6ZXJvLCB0aGVuIFNIX0VOVFJZX0lTX0VNUFRZKCkKKyAqCSAgKm11c3QqIGV2YWx1YXRlIHRv IHRydWUuCiAgKgogICoJICBXaGlsZSBTSF9TVE9SRV9IQVNIIChhbmQgc3Vic2VxdWVudGx5IFNI X0dFVF9IQVNIKSBhcmUgb3B0aW9uYWwsIGJlY2F1c2UKICAqCSAgdGhlIGhhc2ggdGFibGUgaW1w bGVtZW50YXRpb24gbmVlZHMgdG8gY29tcGFyZSBoYXNoZXMgdG8gbW92ZSBlbGVtZW50cwpAQCAt Mjc3LDYgKzI4NiwxOCBAQCBTSF9TQ09QRSB2b2lkIFNIX1NUQVQoU0hfVFlQRSAqIHRiKTsKICNk ZWZpbmUgU0hfR1JPV19NSU5fRklMTEZBQ1RPUiAwLjEKICNlbmRpZgogCisjaWZuZGVmIFNIX0VO VFJZX0lTX0VNUFRZCisjZGVmaW5lIFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBhKSAoKGEpLT5zdGF0 dXMgPT0gU0hfU1RBVFVTX0VNUFRZKQorI2VuZGlmCisKKyNpZm5kZWYgU0hfRU5UUllfU0VUX0VN UFRZCisjZGVmaW5lIFNIX0VOVFJZX1NFVF9FTVBUWSh0YiwgYSkgZG8geyAoYSktPnN0YXR1cyA9 IFNIX1NUQVRVU19FTVBUWTsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWZuZGVmIFNIX0VOVFJZ X1NFVF9JTl9VU0UKKyNkZWZpbmUgU0hfRU5UUllfU0VUX0lOX1VTRSh0YiwgYSkgZG8geyAoYSkt PnN0YXR1cyA9IFNIX1NUQVRVU19JTl9VU0U7IH0gd2hpbGUgKDApCisjZW5kaWYKKwogI2lmZGVm IFNIX1NUT1JFX0hBU0gKICNkZWZpbmUgU0hfQ09NUEFSRV9LRVlTKHRiLCBhaGFzaCwgYWtleSwg YikgKGFoYXNoID09IFNIX0dFVF9IQVNIKHRiLCBiKSAmJiBTSF9FUVVBTCh0YiwgYi0+U0hfS0VZ LCBha2V5KSkKICNlbHNlCkBAIC01NDAsNyArNTYxLDcgQEAgU0hfR1JPVyhTSF9UWVBFICogdGIs IHVpbnQ2NCBuZXdzaXplKQogCQl1aW50MzIJCWhhc2g7CiAJCXVpbnQzMgkJb3B0aW1hbDsKIAot CQlpZiAob2xkZW50cnktPnN0YXR1cyAhPSBTSF9TVEFUVVNfSU5fVVNFKQorCQlpZiAoU0hfRU5U UllfSVNfRU1QVFkodGIsIG9sZGVudHJ5KSkKIAkJewogCQkJc3RhcnRlbGVtID0gaTsKIAkJCWJy ZWFrOwpAQCAtNTYyLDcgKzU4Myw3IEBAIFNIX0dST1coU0hfVFlQRSAqIHRiLCB1aW50NjQgbmV3 c2l6ZSkKIAl7CiAJCVNIX0VMRU1FTlRfVFlQRSAqb2xkZW50cnkgPSAmb2xkZGF0YVtjb3B5ZWxl bV07CiAKLQkJaWYgKG9sZGVudHJ5LT5zdGF0dXMgPT0gU0hfU1RBVFVTX0lOX1VTRSkKKwkJaWYg KCFTSF9FTlRSWV9JU19FTVBUWSh0Yiwgb2xkZW50cnkpKQogCQl7CiAJCQl1aW50MzIJCWhhc2g7 CiAJCQl1aW50MzIJCXN0YXJ0ZWxlbTI7CkBAIC01NzgsNyArNTk5LDcgQEAgU0hfR1JPVyhTSF9U WVBFICogdGIsIHVpbnQ2NCBuZXdzaXplKQogCQkJewogCQkJCW5ld2VudHJ5ID0gJm5ld2RhdGFb Y3VyZWxlbV07CiAKLQkJCQlpZiAobmV3ZW50cnktPnN0YXR1cyA9PSBTSF9TVEFUVVNfRU1QVFkp CisJCQkJaWYgKFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBuZXdlbnRyeSkpCiAJCQkJewogCQkJCQli cmVhazsKIAkJCQl9CkBAIC02NDksMTQgKzY3MCwxNCBAQCByZXN0YXJ0OgogCQlTSF9FTEVNRU5U X1RZUEUgKmVudHJ5ID0gJmRhdGFbY3VyZWxlbV07CiAKIAkJLyogYW55IGVtcHR5IGJ1Y2tldCBj YW4gZGlyZWN0bHkgYmUgdXNlZCAqLwotCQlpZiAoZW50cnktPnN0YXR1cyA9PSBTSF9TVEFUVVNf RU1QVFkpCisJCWlmIChTSF9FTlRSWV9JU19FTVBUWSh0YiwgZW50cnkpKQogCQl7CiAJCQl0Yi0+ bWVtYmVycysrOwogCQkJZW50cnktPlNIX0tFWSA9IGtleTsKICNpZmRlZiBTSF9TVE9SRV9IQVNI CiAJCQlTSF9HRVRfSEFTSCh0YiwgZW50cnkpID0gaGFzaDsKICNlbmRpZgotCQkJZW50cnktPnN0 YXR1cyA9IFNIX1NUQVRVU19JTl9VU0U7CisJCQlTSF9FTlRSWV9TRVRfSU5fVVNFKHRiLCBlbnRy eSk7CiAJCQkqZm91bmQgPSBmYWxzZTsKIAkJCXJldHVybiBlbnRyeTsKIAkJfQpAQCAtNjcxLDcg KzY5Miw3IEBAIHJlc3RhcnQ6CiAKIAkJaWYgKFNIX0NPTVBBUkVfS0VZUyh0YiwgaGFzaCwga2V5 LCBlbnRyeSkpCiAJCXsKLQkJCUFzc2VydChlbnRyeS0+c3RhdHVzID09IFNIX1NUQVRVU19JTl9V U0UpOworCQkJQXNzZXJ0KCFTSF9FTlRSWV9JU19FTVBUWSh0YiwgZW50cnkpKTsKIAkJCSpmb3Vu ZCA9IHRydWU7CiAJCQlyZXR1cm4gZW50cnk7CiAJCX0KQEAgLTY5NSw3ICs3MTYsNyBAQCByZXN0 YXJ0OgogCQkJCWVtcHR5ZWxlbSA9IFNIX05FWFQodGIsIGVtcHR5ZWxlbSwgc3RhcnRlbGVtKTsK IAkJCQllbXB0eWVudHJ5ID0gJmRhdGFbZW1wdHllbGVtXTsKIAotCQkJCWlmIChlbXB0eWVudHJ5 LT5zdGF0dXMgPT0gU0hfU1RBVFVTX0VNUFRZKQorCQkJCWlmIChTSF9FTlRSWV9JU19FTVBUWSh0 YiwgZW1wdHllbnRyeSkpCiAJCQkJewogCQkJCQlsYXN0ZW50cnkgPSBlbXB0eWVudHJ5OwogCQkJ CQlicmVhazsKQEAgLTc0NCw3ICs3NjUsNyBAQCByZXN0YXJ0OgogI2lmZGVmIFNIX1NUT1JFX0hB U0gKIAkJCVNIX0dFVF9IQVNIKHRiLCBlbnRyeSkgPSBoYXNoOwogI2VuZGlmCi0JCQllbnRyeS0+ c3RhdHVzID0gU0hfU1RBVFVTX0lOX1VTRTsKKwkJCVNIX0VOVFJZX1NFVF9JTl9VU0UodGIsIGVu dHJ5KTsKIAkJCSpmb3VuZCA9IGZhbHNlOwogCQkJcmV0dXJuIGVudHJ5OwogCQl9CkBAIC04MDYs MTMgKzgyNywxMSBAQCBTSF9MT09LVVBfSEFTSF9JTlRFUk5BTChTSF9UWVBFICogdGIsIFNIX0tF WV9UWVBFIGtleSwgdWludDMyIGhhc2gpCiAJewogCQlTSF9FTEVNRU5UX1RZUEUgKmVudHJ5ID0g JnRiLT5kYXRhW2N1cmVsZW1dOwogCi0JCWlmIChlbnRyeS0+c3RhdHVzID09IFNIX1NUQVRVU19F TVBUWSkKKwkJaWYgKFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBlbnRyeSkpCiAJCXsKIAkJCXJldHVy biBOVUxMOwogCQl9CiAKLQkJQXNzZXJ0KGVudHJ5LT5zdGF0dXMgPT0gU0hfU1RBVFVTX0lOX1VT RSk7Ci0KIAkJaWYgKFNIX0NPTVBBUkVfS0VZUyh0YiwgaGFzaCwga2V5LCBlbnRyeSkpCiAJCQly ZXR1cm4gZW50cnk7CiAKQEAgLTg2NCwxMCArODgzLDEwIEBAIFNIX0RFTEVURShTSF9UWVBFICog dGIsIFNIX0tFWV9UWVBFIGtleSkKIAl7CiAJCVNIX0VMRU1FTlRfVFlQRSAqZW50cnkgPSAmdGIt PmRhdGFbY3VyZWxlbV07CiAKLQkJaWYgKGVudHJ5LT5zdGF0dXMgPT0gU0hfU1RBVFVTX0VNUFRZ KQorCQlpZiAoU0hfRU5UUllfSVNfRU1QVFkodGIsIGVudHJ5KSkKIAkJCXJldHVybiBmYWxzZTsK IAotCQlpZiAoZW50cnktPnN0YXR1cyA9PSBTSF9TVEFUVVNfSU5fVVNFICYmCisJCWlmICghU0hf RU5UUllfSVNfRU1QVFkodGIsIGVudHJ5KSAmJgogCQkJU0hfQ09NUEFSRV9LRVlTKHRiLCBoYXNo LCBrZXksIGVudHJ5KSkKIAkJewogCQkJU0hfRUxFTUVOVF9UWVBFICpsYXN0ZW50cnkgPSBlbnRy eTsKQEAgLTg5MCw5ICs5MDksOSBAQCBTSF9ERUxFVEUoU0hfVFlQRSAqIHRiLCBTSF9LRVlfVFlQ RSBrZXkpCiAJCQkJY3VyZWxlbSA9IFNIX05FWFQodGIsIGN1cmVsZW0sIHN0YXJ0ZWxlbSk7CiAJ CQkJY3VyZW50cnkgPSAmdGItPmRhdGFbY3VyZWxlbV07CiAKLQkJCQlpZiAoY3VyZW50cnktPnN0 YXR1cyAhPSBTSF9TVEFUVVNfSU5fVVNFKQorCQkJCWlmIChTSF9FTlRSWV9JU19FTVBUWSh0Yiwg Y3VyZW50cnkpKQogCQkJCXsKLQkJCQkJbGFzdGVudHJ5LT5zdGF0dXMgPSBTSF9TVEFUVVNfRU1Q VFk7CisJCQkJCVNIX0VOVFJZX1NFVF9FTVBUWSh0YiwgbGFzdGVudHJ5KTsKIAkJCQkJYnJlYWs7 CiAJCQkJfQogCkBAIC05MDIsNyArOTIxLDcgQEAgU0hfREVMRVRFKFNIX1RZUEUgKiB0YiwgU0hf S0VZX1RZUEUga2V5KQogCQkJCS8qIGN1cnJlbnQgaXMgYXQgb3B0aW1hbCBwb3NpdGlvbiwgZG9u ZSAqLwogCQkJCWlmIChjdXJvcHRpbWFsID09IGN1cmVsZW0pCiAJCQkJewotCQkJCQlsYXN0ZW50 cnktPnN0YXR1cyA9IFNIX1NUQVRVU19FTVBUWTsKKwkJCQkJU0hfRU5UUllfU0VUX0VNUFRZKHRi LCBsYXN0ZW50cnkpOwogCQkJCQlicmVhazsKIAkJCQl9CiAKQEAgLTk1Myw5ICs5NzIsOSBAQCBT SF9ERUxFVEVfSVRFTShTSF9UWVBFICogdGIsIFNIX0VMRU1FTlRfVFlQRSAqIGVudHJ5KQogCQlj dXJlbGVtID0gU0hfTkVYVCh0YiwgY3VyZWxlbSwgc3RhcnRlbGVtKTsKIAkJY3VyZW50cnkgPSAm dGItPmRhdGFbY3VyZWxlbV07CiAKLQkJaWYgKGN1cmVudHJ5LT5zdGF0dXMgIT0gU0hfU1RBVFVT X0lOX1VTRSkKKwkJaWYgKFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBjdXJlbnRyeSkpCiAJCXsKLQkJ CWxhc3RlbnRyeS0+c3RhdHVzID0gU0hfU1RBVFVTX0VNUFRZOworCQkJU0hfRU5UUllfU0VUX0VN UFRZKHRiLCBsYXN0ZW50cnkpOwogCQkJYnJlYWs7CiAJCX0KIApAQCAtOTY1LDcgKzk4NCw3IEBA IFNIX0RFTEVURV9JVEVNKFNIX1RZUEUgKiB0YiwgU0hfRUxFTUVOVF9UWVBFICogZW50cnkpCiAJ CS8qIGN1cnJlbnQgaXMgYXQgb3B0aW1hbCBwb3NpdGlvbiwgZG9uZSAqLwogCQlpZiAoY3Vyb3B0 aW1hbCA9PSBjdXJlbGVtKQogCQl7Ci0JCQlsYXN0ZW50cnktPnN0YXR1cyA9IFNIX1NUQVRVU19F TVBUWTsKKwkJCVNIX0VOVFJZX1NFVF9FTVBUWSh0YiwgbGFzdGVudHJ5KTsKIAkJCWJyZWFrOwog CQl9CiAKQEAgLTk5Myw3ICsxMDEyLDcgQEAgU0hfU1RBUlRfSVRFUkFURShTSF9UWVBFICogdGIs IFNIX0lURVJBVE9SICogaXRlcikKIAl7CiAJCVNIX0VMRU1FTlRfVFlQRSAqZW50cnkgPSAmdGIt PmRhdGFbaV07CiAKLQkJaWYgKGVudHJ5LT5zdGF0dXMgIT0gU0hfU1RBVFVTX0lOX1VTRSkKKwkJ aWYgKFNIX0VOVFJZX0lTX0VNUFRZKHRiLCBlbnRyeSkpCiAJCXsKIAkJCXN0YXJ0ZWxlbSA9IGk7 CiAJCQlicmVhazsKQEAgLTEwNTUsNyArMTA3NCw3IEBAIFNIX0lURVJBVEUoU0hfVFlQRSAqIHRi LCBTSF9JVEVSQVRPUiAqIGl0ZXIpCiAKIAkJaWYgKChpdGVyLT5jdXIgJiB0Yi0+c2l6ZW1hc2sp ID09IChpdGVyLT5lbmQgJiB0Yi0+c2l6ZW1hc2spKQogCQkJaXRlci0+ZG9uZSA9IHRydWU7Ci0J CWlmIChlbGVtLT5zdGF0dXMgPT0gU0hfU1RBVFVTX0lOX1VTRSkKKwkJaWYgKCFTSF9FTlRSWV9J U19FTVBUWSh0YiwgZWxlbSkpCiAJCXsKIAkJCXJldHVybiBlbGVtOwogCQl9CkBAIC0xMDkxLDcg KzExMTAsNyBAQCBTSF9TVEFUKFNIX1RZUEUgKiB0YikKIAogCQllbGVtID0gJnRiLT5kYXRhW2ld OwogCi0JCWlmIChlbGVtLT5zdGF0dXMgIT0gU0hfU1RBVFVTX0lOX1VTRSkKKwkJaWYgKFNIX0VO VFJZX0lTX0VNUFRZKHRiLCBlbGVtKSkKIAkJCWNvbnRpbnVlOwogCiAJCWhhc2ggPSBTSF9FTlRS WV9IQVNIKHRiLCBlbGVtKTsKQEAgLTExNDksNiArMTE2OCw5IEBAIFNIX1NUQVQoU0hfVFlQRSAq IHRiKQogI3VuZGVmIFNIX0tFWQogI3VuZGVmIFNIX0VMRU1FTlRfVFlQRQogI3VuZGVmIFNIX0hB U0hfS0VZCisjdW5kZWYgU0hfRU5UUllfSVNfRU1QVFkKKyN1bmRlZiBTSF9FTlRSWV9TRVRfRU1Q VFkKKyN1bmRlZiBTSF9FTlRSWV9TRVRfSU5fVVNFCiAjdW5kZWYgU0hfU0NPUEUKICN1bmRlZiBT SF9ERUNMQVJFCiAjdW5kZWYgU0hfREVGSU5FCi0tIAoyLjM0LjEKCg== --=-5dSGuhIVdpqt2lWhiM3F Content-Disposition: attachment; filename*0=v3-0003-TupleHashTable-reduce-overhead-by-removing-status.pat; filename*1=ch Content-Type: text/x-patch; name="v3-0003-TupleHashTable-reduce-overhead-by-removing-status.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzOTNkZmNiNzg0YmVkNWMxNjJmZTVjOWQ1YjFiYjI4NzI4ODMxMmNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDE1IE5vdiAyMDI0IDEzOjAzOjMyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MyAzLzRdIFR1 cGxlSGFzaFRhYmxlOiByZWR1Y2Ugb3ZlcmhlYWQgYnkgcmVtb3ZpbmcgInN0YXR1cyIKIGZpZWxk LgoKTWFrZSB1c2Ugb2YgbmV3IHNpbXBsZWhhc2ggQVBJIGludHJvZHVjZWQgaW4gY29tbWl0IDEy MzQ1Njc4OTAuCgpCZWNhdXNlIE5VTEwgbm93IG1lYW5zIHRoYXQgdGhlIGVudHJ5IGlzIGVtcHR5 LCB1c2UgYSB1bmlxdWUgZHVtbXkKcG9pbnRlciB0byByZWZlciB0byB0aGUgaW5wdXRzbG90IGlu c3RlYWQuIEl0IGFsc28gbWFrZXMgdGhlIGNvZGUgbW9yZQpyZWFkYWJsZS4KLS0tCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYyB8IDMzICsrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYwppbmRleCAyOWJkMzE2MmFkNS4uNDMxNjUz NzU5NDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNHcm91cGluZy5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNHcm91cGluZy5jCkBAIC0yMyw3ICsyMyw2IEBA CiB0eXBlZGVmIHN0cnVjdCBUdXBsZUhhc2hFbnRyeURhdGEKIHsKIAlNaW5pbWFsVHVwbGUgZmly c3RUdXBsZTsJLyogY29weSBvZiBmaXJzdCB0dXBsZSBpbiB0aGlzIGdyb3VwICovCi0JdWludDMy CQlzdGF0dXM7CQkJLyogaGFzaCBzdGF0dXMgKi8KIAl1aW50MzIJCWhhc2g7CQkJLyogaGFzaCB2 YWx1ZSAoY2FjaGVkKSAqLwogfSBUdXBsZUhhc2hFbnRyeURhdGE7CiAKQEAgLTM0LDYgKzMzLDE0 IEBAIHN0YXRpYyBpbmxpbmUgVHVwbGVIYXNoRW50cnkgTG9va3VwVHVwbGVIYXNoRW50cnlfaW50 ZXJuYWwoVHVwbGVIYXNoVGFibGUgaGFzaHRhCiAJCQkJCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVT bG90ICpzbG90LAogCQkJCQkJCQkJCQkJCQkgICBib29sICppc25ldywgdWludDMyIGhhc2gpOwog CisvKgorICogQ3JlYXRlIGEgZHVtbXkgcG9pbnRlciB1c2VkIHRvIG1lYW4gdGhlIGlucHV0IHNs b3QuIFRoZSBwb2ludGVyIHdpbGwgb25seQorICogYmUgdXNlZCBmb3IgY29tcGFyaXNvbiBhbmQg bmV2ZXIgZGVyZWZlcmVuY2VkLCBhbmQgbXVzdCBub3QgYmUgZXF1YWwgdG8gYQorICogdmFsaWQg cG9pbnRlci4gRGlzdGluY3QgZnJvbSBOVUxMLCBiZWNhdXNlIE5VTEwgbWVhbnMgdGhhdCB0aGUg aGFzaCBlbnRyeQorICogaXRzZWxmIGlzIGVtcHR5LgorICovCitjb25zdCBzdGF0aWMgTWluaW1h bFR1cGxlIEZJUlNUVFVQTEVfSU5QVVRTTE9UID0gKE1pbmltYWxUdXBsZSkgMHgxOworCiAvKgog ICogRGVmaW5lIHBhcmFtZXRlcnMgZm9yIHR1cGxlIGhhc2ggdGFibGUgY29kZSBnZW5lcmF0aW9u LiBUaGUgaW50ZXJmYWNlIGlzCiAgKiAqYWxzbyogZGVjbGFyZWQgaW4gZXhlY25vZGVzLmggKHRv IGdlbmVyYXRlIHRoZSB0eXBlcywgd2hpY2ggYXJlIGV4dGVybmFsbHkKQEAgLTQ4LDYgKzU1LDkg QEAgc3RhdGljIGlubGluZSBUdXBsZUhhc2hFbnRyeSBMb29rdXBUdXBsZUhhc2hFbnRyeV9pbnRl cm5hbChUdXBsZUhhc2hUYWJsZSBoYXNodGEKICNkZWZpbmUgU0hfU0NPUEUgZXh0ZXJuCiAjZGVm aW5lIFNIX1NUT1JFX0hBU0gKICNkZWZpbmUgU0hfR0VUX0hBU0godGIsIGEpIGEtPmhhc2gKKyNk ZWZpbmUgU0hfRU5UUllfSVNfRU1QVFkodGIsIGEpICgoYSktPmZpcnN0VHVwbGUgPT0gTlVMTCkK KyNkZWZpbmUgU0hfRU5UUllfU0VUX0VNUFRZKHRiLCBhKSBkbyB7IChhKS0+Zmlyc3RUdXBsZSA9 IE5VTEw7IH0gd2hpbGUgKDApCisjZGVmaW5lIFNIX0VOVFJZX1NFVF9JTl9VU0UodGIsIGEpIEFz c2VydCgoYSktPmZpcnN0VHVwbGUgIT0gTlVMTCkKICNkZWZpbmUgU0hfREVGSU5FCiAjaW5jbHVk ZSAibGliL3NpbXBsZWhhc2guaCIKIApAQCAtMzIxLDcgKzMzMSw3IEBAIExvb2t1cFR1cGxlSGFz aEVudHJ5KFR1cGxlSGFzaFRhYmxlIGhhc2h0YWJsZSwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJ aGFzaHRhYmxlLT5pbl9oYXNoX2V4cHIgPSBoYXNodGFibGUtPnRhYl9oYXNoX2V4cHI7CiAJaGFz aHRhYmxlLT5jdXJfZXFfZnVuYyA9IGhhc2h0YWJsZS0+dGFiX2VxX2Z1bmM7CiAKLQlsb2NhbF9o YXNoID0gVHVwbGVIYXNoVGFibGVIYXNoX2ludGVybmFsKGhhc2h0YWJsZS0+aGFzaHRhYiwgTlVM TCk7CisJbG9jYWxfaGFzaCA9IFR1cGxlSGFzaFRhYmxlSGFzaF9pbnRlcm5hbChoYXNodGFibGUt Pmhhc2h0YWIsIEZJUlNUVFVQTEVfSU5QVVRTTE9UKTsKIAllbnRyeSA9IExvb2t1cFR1cGxlSGFz aEVudHJ5X2ludGVybmFsKGhhc2h0YWJsZSwgc2xvdCwgaXNuZXcsIGxvY2FsX2hhc2gpOwogCiAJ aWYgKGhhc2ggIT0gTlVMTCkKQEAgLTM0OSw3ICszNTksOCBAQCBUdXBsZUhhc2hUYWJsZUhhc2go VHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIAkvKiBOZWVk IHRvIHJ1biB0aGUgaGFzaCBmdW5jdGlvbnMgaW4gc2hvcnQtbGl2ZWQgY29udGV4dCAqLwogCW9s ZENvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oaGFzaHRhYmxlLT50ZW1wY3h0KTsKIAot CWhhc2ggPSBUdXBsZUhhc2hUYWJsZUhhc2hfaW50ZXJuYWwoaGFzaHRhYmxlLT5oYXNodGFiLCBO VUxMKTsKKwloYXNoID0gVHVwbGVIYXNoVGFibGVIYXNoX2ludGVybmFsKGhhc2h0YWJsZS0+aGFz aHRhYiwKKwkJCQkJCQkJCSAgIEZJUlNUVFVQTEVfSU5QVVRTTE9UKTsKIAogCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRDb250ZXh0KTsKIApAQCAtNDMwLDcgKzQ0MSw3IEBAIEZpbmRUdXBsZUhh c2hFbnRyeShUdXBsZUhhc2hUYWJsZSBoYXNodGFibGUsIFR1cGxlVGFibGVTbG90ICpzbG90LAog CWhhc2h0YWJsZS0+Y3VyX2VxX2Z1bmMgPSBlcWNvbXA7CiAKIAkvKiBTZWFyY2ggdGhlIGhhc2gg dGFibGUgKi8KLQlrZXkgPSBOVUxMOwkJCQkJLyogZmxhZyB0byByZWZlcmVuY2UgaW5wdXRzbG90 ICovCisJa2V5ID0gRklSU1RUVVBMRV9JTlBVVFNMT1Q7CiAJZW50cnkgPSB0dXBsZWhhc2hfbG9v a3VwKGhhc2h0YWJsZS0+aGFzaHRhYiwga2V5KTsKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Q29udGV4dCk7CiAKQEAgLTQzOCw5ICs0NDksOSBAQCBGaW5kVHVwbGVIYXNoRW50cnkoVHVwbGVI YXNoVGFibGUgaGFzaHRhYmxlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIH0KIAogLyoKLSAqIElm IHR1cGxlIGlzIE5VTEwsIHVzZSB0aGUgaW5wdXQgc2xvdCBpbnN0ZWFkLiBUaGlzIGNvbnZlbnRp b24gYXZvaWRzIHRoZQotICogbmVlZCB0byBtYXRlcmlhbGl6ZSB2aXJ0dWFsIGlucHV0IHR1cGxl cyB1bmxlc3MgdGhleSBhY3R1YWxseSBuZWVkIHRvIGdldAotICogY29waWVkIGludG8gdGhlIHRh YmxlLgorICogSWYgdHVwbGUgaXMgRklSU1RUVVBMRV9JTlBVVFNMT1QsIHVzZSB0aGUgaW5wdXQg c2xvdCBpbnN0ZWFkLiBUaGlzCisgKiBjb252ZW50aW9uIGF2b2lkcyB0aGUgbmVlZCB0byBtYXRl cmlhbGl6ZSB2aXJ0dWFsIGlucHV0IHR1cGxlcyB1bmxlc3MgdGhleQorICogYWN0dWFsbHkgbmVl ZCB0byBnZXQgY29waWVkIGludG8gdGhlIHRhYmxlLgogICoKICAqIEFsc28sIHRoZSBjYWxsZXIg bXVzdCBzZWxlY3QgYW4gYXBwcm9wcmlhdGUgbWVtb3J5IGNvbnRleHQgZm9yIHJ1bm5pbmcKICAq IHRoZSBoYXNoIGZ1bmN0aW9ucy4KQEAgLTQ1NCw3ICs0NjUsNyBAQCBUdXBsZUhhc2hUYWJsZUhh c2hfaW50ZXJuYWwoc3RydWN0IHR1cGxlaGFzaF9oYXNoICp0YiwKIAlUdXBsZVRhYmxlU2xvdCAq c2xvdDsKIAlib29sCQlpc251bGw7CiAKLQlpZiAodHVwbGUgPT0gTlVMTCkKKwlpZiAodHVwbGUg PT0gRklSU1RUVVBMRV9JTlBVVFNMT1QpCiAJewogCQkvKiBQcm9jZXNzIHRoZSBjdXJyZW50IGlu cHV0IHR1cGxlIGZvciB0aGUgdGFibGUgKi8KIAkJaGFzaHRhYmxlLT5leHByY29udGV4dC0+ZWN4 dF9pbm5lcnR1cGxlID0gaGFzaHRhYmxlLT5pbnB1dHNsb3Q7CkBAIC01MDEsNyArNTEyLDcgQEAg TG9va3VwVHVwbGVIYXNoRW50cnlfaW50ZXJuYWwoVHVwbGVIYXNoVGFibGUgaGFzaHRhYmxlLCBU dXBsZVRhYmxlU2xvdCAqc2xvdCwKIAlib29sCQlmb3VuZDsKIAlNaW5pbWFsVHVwbGUga2V5Owog Ci0Ja2V5ID0gTlVMTDsJCQkJCS8qIGZsYWcgdG8gcmVmZXJlbmNlIGlucHV0c2xvdCAqLworCWtl eSA9IEZJUlNUVFVQTEVfSU5QVVRTTE9UOwogCiAJaWYgKGlzbmV3KQogCXsKQEAgLTU2NiwxMCAr NTc3LDEwIEBAIFR1cGxlSGFzaFRhYmxlTWF0Y2goc3RydWN0IHR1cGxlaGFzaF9oYXNoICp0Yiwg Y29uc3QgTWluaW1hbFR1cGxlIHR1cGxlMSwgY29uc3QKIAkgKiBMb29rdXBUdXBsZUhhc2hFbnRy eSdzIGR1bW15IFR1cGxlSGFzaEVudHJ5RGF0YS4gIFRoZSBvdGhlciBkaXJlY3Rpb24KIAkgKiBj b3VsZCBiZSBzdXBwb3J0ZWQgdG9vLCBidXQgaXMgbm90IGN1cnJlbnRseSByZXF1aXJlZC4KIAkg Ki8KLQlBc3NlcnQodHVwbGUxICE9IE5VTEwpOworCUFzc2VydCh0dXBsZTEgJiYgdHVwbGUxICE9 IEZJUlNUVFVQTEVfSU5QVVRTTE9UKTsKIAlzbG90MSA9IGhhc2h0YWJsZS0+dGFibGVzbG90Owog CUV4ZWNTdG9yZU1pbmltYWxUdXBsZSh0dXBsZTEsIHNsb3QxLCBmYWxzZSk7Ci0JQXNzZXJ0KHR1 cGxlMiA9PSBOVUxMKTsKKwlBc3NlcnQodHVwbGUyID09IEZJUlNUVFVQTEVfSU5QVVRTTE9UKTsK IAlzbG90MiA9IGhhc2h0YWJsZS0+aW5wdXRzbG90OwogCiAJLyogRm9yIGNyb3NzdHlwZSBjb21w YXJpc29ucywgdGhlIGlucHV0c2xvdCBtdXN0IGJlIGZpcnN0ICovCi0tIAoyLjM0LjEKCg== --=-5dSGuhIVdpqt2lWhiM3F Content-Disposition: attachment; filename*0=v3-0004-Pack-TupleHashEntryData-and-AggStatePerGroupData.patc; filename*1=h Content-Type: text/x-patch; name="v3-0004-Pack-TupleHashEntryData-and-AggStatePerGroupData.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAxNjBiOGJlZTdjNTYzMDVmYzg4MWRiZTgxODdjMTNlZWJjZTdiZjkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDE1IE5vdiAyMDI0IDE4OjUyOjA2IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MyA0LzRdIFBh Y2sgVHVwbGVIYXNoRW50cnlEYXRhIGFuZCBBZ2dTdGF0ZVBlckdyb3VwRGF0YS4KCi0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMgfCA2ICsrKysrLQogc3JjL2luY2x1ZGUv ZXhlY3V0b3Ivbm9kZUFnZy5oICAgICAgfCA2ICsrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMCBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNHcm91cGluZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5n LmMKaW5kZXggNDMxNjUzNzU5NDYuLjcwZjc5YWJlODZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj R3JvdXBpbmcuYwpAQCAtMjQsNyArMjQsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgVHVwbGVIYXNoRW50 cnlEYXRhCiB7CiAJTWluaW1hbFR1cGxlIGZpcnN0VHVwbGU7CS8qIGNvcHkgb2YgZmlyc3QgdHVw bGUgaW4gdGhpcyBncm91cCAqLwogCXVpbnQzMgkJaGFzaDsJCQkvKiBoYXNoIHZhbHVlIChjYWNo ZWQpICovCi19IFR1cGxlSGFzaEVudHJ5RGF0YTsKK30KKyNpZmRlZiBwZ19hdHRyaWJ1dGVfcGFj a2VkCisJcGdfYXR0cmlidXRlX3BhY2tlZCgpCisjZW5kaWYKK1R1cGxlSGFzaEVudHJ5RGF0YTsK IAogc3RhdGljIGludAlUdXBsZUhhc2hUYWJsZU1hdGNoKHN0cnVjdCB0dXBsZWhhc2hfaGFzaCAq dGIsIGNvbnN0IE1pbmltYWxUdXBsZSB0dXBsZTEsIGNvbnN0IE1pbmltYWxUdXBsZSB0dXBsZTIp Owogc3RhdGljIGlubGluZSB1aW50MzIgVHVwbGVIYXNoVGFibGVIYXNoX2ludGVybmFsKHN0cnVj dCB0dXBsZWhhc2hfaGFzaCAqdGIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9u b2RlQWdnLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlQWdnLmgKaW5kZXggMzRiODJkMGY1 ZDEuLmQ1MTliMmE1N2E0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlQWdn LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZUFnZy5oCkBAIC0yNjQsNyArMjY0LDEx IEBAIHR5cGVkZWYgc3RydWN0IEFnZ1N0YXRlUGVyR3JvdXBEYXRhCiAJICogTlVMTCBhbmQgbm90 IGF1dG8tcmVwbGFjZSBpdCB3aXRoIGEgbGF0ZXIgaW5wdXQgdmFsdWUuIE9ubHkgdGhlIGZpcnN0 CiAJICogbm9uLU5VTEwgaW5wdXQgd2lsbCBiZSBhdXRvLXN1YnN0aXR1dGVkLgogCSAqLwotfSBB Z2dTdGF0ZVBlckdyb3VwRGF0YTsKK30KKyNpZmRlZiBwZ19hdHRyaWJ1dGVfcGFja2VkCisJcGdf YXR0cmlidXRlX3BhY2tlZCgpCisjZW5kaWYKK0FnZ1N0YXRlUGVyR3JvdXBEYXRhOwogCiAvKgog ICogQWdnU3RhdGVQZXJQaGFzZURhdGEgLSBwZXItZ3JvdXBpbmctc2V0LXBoYXNlIHN0YXRlCi0t IAoyLjM0LjEKCg== --=-5dSGuhIVdpqt2lWhiM3F--