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 1vby13-00HRKW-0x for pgsql-hackers@arkaria.postgresql.org; Sat, 03 Jan 2026 09:33:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vby01-00CGlm-22 for pgsql-hackers@arkaria.postgresql.org; Sat, 03 Jan 2026 09:32:42 +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 1vby00-00CGld-2w for pgsql-hackers@lists.postgresql.org; Sat, 03 Jan 2026 09:32:42 +0000 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vbxzy-003wzt-07 for pgsql-hackers@lists.postgresql.org; Sat, 03 Jan 2026 09:32:40 +0000 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-b804646c718so1413080766b.2 for ; Sat, 03 Jan 2026 01:32:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1767432751; x=1768037551; darn=lists.postgresql.org; h=in-reply-to:references:from:to:subject:message-id:date:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=+PHYw9ndyCK9X6j1/NDkb4MiIch3NuyWphG7RTmtanM=; b=sq1ITfwjwS/pDBUVxAehZWj3Dtcvvq6e1qkQoh1Tf4bC7MxMgNQmUXSaGqmeNglzbF 6IQL35Xyk3NXyIzuKRTdqQJWuuiUiyNs5n/kMfEP6BBTQXruzp4bYwSWdRD68Y7HQk1D iLpAkSA0zSbY0iTlm4Di3LsBM/kCVO8qexbqkmvbQQ9rXJOsKTb+i/USorhNt4i/biJ8 Z1f7aymkZFw9I1WYsJ0Y+B+lnajdmquBPu8Y2R0iDpURxvsRMOrgDlPVZR2j6AlhFic/ JGDJvGNfzBwNwBl+N8wD1/dsCvPM5401gSHGDxoGc7a+1DyFHSDXg/2bn5CyHeFo7pz2 uUNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767432751; x=1768037551; h=in-reply-to:references:from:to:subject:message-id:date:mime-version :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=+PHYw9ndyCK9X6j1/NDkb4MiIch3NuyWphG7RTmtanM=; b=Hx3vcBuYHTxk/dDNyFkbjYsx7hg8yeWvAstQcxr+Yf+YYQkVYLmgeIN5d7QBgcv1yr EUldP1nuoi0LyBoRXF0sZdV3ngcto1ICVULiLfd3SWlKsWFTBIWbuVGg5HEKXiuKtE70 25G/QOUH0bdzWOru/AxlnRsaYuURUTNcgbsOJXYZY2+ZlGtgyKZJGsB+F39QpOZsMf2P EQVBnKrWPibrplwctcuORNVwMRslQ5J9iYQZzSzKuKtKul5xxnPGEHmt/Ctkzv2tKqqG K3fFDPcMJLq+fucalU8HyT9wda5qi3dW1vmE5QYN/fXPn44Ewuj9qyMibk705lZPNF2B DqyQ== X-Forwarded-Encrypted: i=1; AJvYcCVkTTt6/WKC9xYfgFEvbEixxrq7AKOJYIsi9BPQEa30HnGXAVkg1GAm28FHpJ9ngxoP0HdSuzASPEEX7EEn@lists.postgresql.org X-Gm-Message-State: AOJu0YwGd4B4u53ICun6G/3irU0uN3hgd1NRVNppQ/ZQ6wqbUCH/FwC/ KemzJzN123fZaZ9pW0uRKh6PerBBL0pDQ/MLns0Z4mOG/cmpRn6zZGE51xuiqoAXjmg= X-Gm-Gg: AY/fxX5doSs5OpZc+1siW+/hcyJGud1eYnMJqjNlp1QE/Rgo3AS5HgcEA/DdPFHJeT4 qWNmOz/AUoQxLlklM7B1YfXd4KFTq626QsMlgUK1wsac2vTumAlk9l8kUWUolXLguiF/0ny9lM2 NsAJ+KM0pVvxBoVrNA/58Q8Nd2g7TJO4X//ZZHoVG2BHNuqsMmHaNSvTdZAaQQWZEWmTdpj07MC lxhooDh4eGopWHRWGdcsyPC/O1uh+NI5kXIYww+AZ95Xj85AMitMFGVunFFFTYCA+tPbTbVqiH7 cVOX8FmbtC6Zik7NMsUIW2YyBwK+Z9HerHINUXm8eXRQZ/X1smieXYgpzyrZMOIw0/4WMNVbutu F88E8IQ+lHAeXWOjYKDffz/pXT7fOklVHkAD7nMB1ZEM220TDuB4i3TGSU664vFTcFeCnJPDv/I cGjZilik68tU15PuaX96uyuxeRoETn0zZzU/PkSXYGwLB/0g== X-Google-Smtp-Source: AGHT+IHmD1uCxWIRndQjtAWZpsAgwx+80zfdo8f/7XdzkYECyi8iaWSUK5V4rO6+ai0aFBq89+FEzg== X-Received: by 2002:a17:907:7f16:b0:b73:6d56:f3ff with SMTP id a640c23a62f3a-b8036f2ac1dmr4672732866b.20.1767432750358; Sat, 03 Jan 2026 01:32:30 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037f51144sm4908856066b.69.2026.01.03.01.32.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 03 Jan 2026 01:32:29 -0800 (PST) Content-Type: multipart/mixed; boundary=820ac5df1b14058b0339a0caf9083079f3b1493c4a2369ccd682d3850de7 Mime-Version: 1.0 Date: Sat, 03 Jan 2026 10:32:28 +0100 Message-Id: Subject: Re: Make copyObject work in C++ To: "Peter Eisentraut" , "PostgreSQL Hackers" , "Thomas Munro" From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <4d8b9e53-3f37-43f0-a4aa-5bda9c7961b3@eisentraut.org> In-Reply-To: <4d8b9e53-3f37-43f0-a4aa-5bda9c7961b3@eisentraut.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --820ac5df1b14058b0339a0caf9083079f3b1493c4a2369ccd682d3850de7 Content-Type: multipart/alternative; boundary=0bed57d647b3f4a0424ae5281886ed5c7cf18d7b512f8cc7570a796e3224 --0bed57d647b3f4a0424ae5281886ed5c7cf18d7b512f8cc7570a796e3224 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Tue Dec 16, 2025 at 1:28 PM CET, Peter Eisentraut wrote: > I think it might be good to create a test extension written in C++, like= =20 > under src/test/modules/, and sprinkle it with various constructs like=20 > copyObject() and static assertions, and whatever else we find that is=20 > possibly problematic. Attached is a patchset that does that. It required a few more fixes to make the extension compile on MSVC too. --0bed57d647b3f4a0424ae5281886ed5c7cf18d7b512f8cc7570a796e3224-- --820ac5df1b14058b0339a0caf9083079f3b1493c4a2369ccd682d3850de7 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0001-Make-copyObject-work-in-C.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0001-Make-copyObject-work-in-C.patch RnJvbSAyOTBhMWFiNzc4ODc1NmFkYWVkMTRkYzJiNDgzMTU2ZDY1YmMzYjk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDUgRGVjIDIwMjUgMTU6Mzc6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDEvNF0gTWFrZSBjb3B5T2JqZWN0IHdvcmsgaW4gQysrCgpDYWxsaW5nIGNvcHlPYmplY3QgaW4g QysrIHdpdGhvdXQgR05VIGV4dGVuc2lvbnMgZmFpbHMgd2l0aCBhbiBlcnJvcgpsaWtlIHRoaXM6 CgplcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAndHlwZW9mJzsgZGlkIHlvdSBt ZWFuICd0eXBlaWQnCgpUaGlzIGlzIGR1ZSB0byB0aGUgQyBjb21waWxlciBzdXBwb3J0aW5nIHVz ZWQgdG8gY29tcGlsZSBwb3N0Z3JlcwpzdXBwb3J0aW5nIHR5cGVvZiwgYnV0IHRoYXQgZnVuY3Rp b24gYWN0dWFsbHkgbm90IGJlaW5nIHByZXNlbnQgaW4gdGhlCkMrKyBjb21waWxlci4gVGhpcyBm aXhlcyB0aGF0IGJ5IGRlZmluaW5nIHBnX2V4cHJ0eXBlIHdoaWNoIG1hcHMgdG8KdHlwZW9mIG9y IGRlY2x0eXBlIGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIuIFdoaWxlIHBnX3R5cGVvZiB3b3Vs ZCBoYXZlCmJlZW4gYSBtb3JlIG5hdHVyYWwgbmFtZSwgdGhhdCBuYW1lIGlzIGFscmVhZHkgdGFr ZW4gaW4gb3VyIGNvZGViYXNlIGFzCnRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcGdfdHlwZW9m IFVERi4KLS0tCiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAgIHwgMTMgKysrKysrKysrKysrKwog c3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCB8ICA0ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j LmggYi9zcmMvaW5jbHVkZS9jLmgKaW5kZXggNzdjNzU0YTkwNGEuLjE4YmQ1MGRhNTEwIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jLmgKKysrIGIvc3JjL2luY2x1ZGUvYy5oCkBAIC00MTgsNiAr NDE4LDE5IEBACiAjZGVmaW5lIHVubGlrZWx5KHgpICgoeCkgIT0gMCkKICNlbmRpZgogCisvKgor ICogcGdfZXhwcnR5cGUKKyAqCQlHZXQgdGhlIHR5cGUgb2YgYW4gZXhwcmVzc2lvbiBhdCBjb21w aWxlIHRpbWUuCisgKgorICogSW4gQysrIHdlIHVzZSBkZWNsdHlwZSBzaW5jZSB0eXBlb2YgaXMg bm90IHN0YW5kYXJkIEMrKywgd2hpbGUgaW4gQyB3ZSB1c2UKKyAqIHR5cGVvZiB3aGVuIGF2YWls YWJsZS4KKyAqLworI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjZGVmaW5lIHBnX2V4cHJ0eXBl KHgpIGRlY2x0eXBlKHgpCisjZWxpZiBkZWZpbmVkKEhBVkVfVFlQRU9GKQorI2RlZmluZSBwZ19l eHBydHlwZSh4KSB0eXBlb2YoeCkKKyNlbmRpZgorCiAvKgogICogQ3BwQXNTdHJpbmcKICAqCQlD b252ZXJ0IHRoZSBhcmd1bWVudCB0byBhIHN0cmluZywgdXNpbmcgdGhlIEMgcHJlcHJvY2Vzc29y LgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL25vZGVzLmgKaW5kZXggYjZhZDI4NjE4YWIuLmY1ZTE3ZTY3MGI3IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgK QEAgLTIyNiw4ICsyMjYsOCBAQCBleHRlcm4gaW50MTYgKnJlYWRBdHRyTnVtYmVyQ29scyhpbnQg bnVtQ29scyk7CiBleHRlcm4gdm9pZCAqY29weU9iamVjdEltcGwoY29uc3Qgdm9pZCAqZnJvbSk7 CiAKIC8qIGNhc3QgcmVzdWx0IGJhY2sgdG8gYXJndW1lbnQgdHlwZSwgaWYgc3VwcG9ydGVkIGJ5 IGNvbXBpbGVyICovCi0jaWZkZWYgSEFWRV9UWVBFT0YKLSNkZWZpbmUgY29weU9iamVjdChvYmop ICgodHlwZW9mKG9iaikpIGNvcHlPYmplY3RJbXBsKG9iaikpCisjaWZkZWYgcGdfZXhwcnR5cGUK KyNkZWZpbmUgY29weU9iamVjdChvYmopICgocGdfZXhwcnR5cGUob2JqKSkgY29weU9iamVjdElt cGwob2JqKSkKICNlbHNlCiAjZGVmaW5lIGNvcHlPYmplY3Qob2JqKSBjb3B5T2JqZWN0SW1wbChv YmopCiAjZW5kaWYKCmJhc2UtY29tbWl0OiAwOTRiNjFjZTNlYmJiMTI1ODY3NWNiOWI0ZWNhOTE5 ODYyOGUyMTc3Ci0tIAoyLjUyLjAKCg== --820ac5df1b14058b0339a0caf9083079f3b1493c4a2369ccd682d3850de7 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0002-Use-pg_exprtype-instead-of-typeof.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0002-Use-pg_exprtype-instead-of-typeof.patch RnJvbSBmOTY5M2FlNzg2YjA4NTljNjI3MDk4ZWM5YTQ3ZjA0OGU1NWExZmE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMDg6MTM6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDIvNF0gVXNlIHBnX2V4cHJ0eXBlIGluc3RlYWQgb2YgdHlwZW9mCgpUaGUgcHJldmlvdXMgY29t bWl0IGludHJvZHVjZWQgcGdfZXhwcnR5cGUuIFRoaXMgc3RhcnRzIHVzaW5nIHRoYXQgaW4gYQpm ZXcgbW9yZSBwbGFjZXMuCi0tLQogc3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgfCA4ICsrKyst LS0tCiBzcmMvaW5jbHVkZS91dGlscy9yZWxwdHIuaCB8IDggKysrKy0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaAppbmRleCAxOGJkNTBkYTUxMC4uYmVlZDNhMWE1 MmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAg LTk3NiwxMCArOTc2LDEwIEBAIHBnX25vcmV0dXJuIGV4dGVybiB2b2lkIEV4Y2VwdGlvbmFsQ29u ZGl0aW9uKGNvbnN0IGNoYXIgKmNvbmRpdGlvbk5hbWUsCiAgKi8KICNpZmRlZiBIQVZFX19CVUlM VElOX1RZUEVTX0NPTVBBVElCTEVfUAogI2RlZmluZSBBc3NlcnRWYXJpYWJsZUlzT2ZUeXBlKHZh cm5hbWUsIHR5cGVuYW1lKSBcCi0JU3RhdGljQXNzZXJ0U3RtdChfX2J1aWx0aW5fdHlwZXNfY29t cGF0aWJsZV9wKF9fdHlwZW9mX18odmFybmFtZSksIHR5cGVuYW1lKSwgXAorCVN0YXRpY0Fzc2Vy dFN0bXQoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcChwZ19leHBydHlwZSh2YXJuYW1lKSwg dHlwZW5hbWUpLCBcCiAJQ3BwQXNTdHJpbmcodmFybmFtZSkgIiBkb2VzIG5vdCBoYXZlIHR5cGUg IiBDcHBBc1N0cmluZyh0eXBlbmFtZSkpCiAjZGVmaW5lIEFzc2VydFZhcmlhYmxlSXNPZlR5cGVN YWNybyh2YXJuYW1lLCB0eXBlbmFtZSkgXAotCShTdGF0aWNBc3NlcnRFeHByKF9fYnVpbHRpbl90 eXBlc19jb21wYXRpYmxlX3AoX190eXBlb2ZfXyh2YXJuYW1lKSwgdHlwZW5hbWUpLCBcCisJKFN0 YXRpY0Fzc2VydEV4cHIoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcChwZ19leHBydHlwZSh2 YXJuYW1lKSwgdHlwZW5hbWUpLCBcCiAJIENwcEFzU3RyaW5nKHZhcm5hbWUpICIgZG9lcyBub3Qg aGF2ZSB0eXBlICIgQ3BwQXNTdHJpbmcodHlwZW5hbWUpKSkKICNlbHNlCQkJCQkJCS8qICFIQVZF X19CVUlMVElOX1RZUEVTX0NPTVBBVElCTEVfUCAqLwogI2RlZmluZSBBc3NlcnRWYXJpYWJsZUlz T2ZUeXBlKHZhcm5hbWUsIHR5cGVuYW1lKSBcCkBAIC0xMjI3LDExICsxMjI3LDExIEBAIHR5cGVk ZWYgc3RydWN0IFBHQWxpZ25lZFhMb2dCbG9jawogI2RlZmluZSB1bnZvbGF0aXplKHVuZGVybHlp bmdfdHlwZSwgZXhwcikgY29uc3RfY2FzdDx1bmRlcmx5aW5nX3R5cGU+KGV4cHIpCiAjZWxpZiBk ZWZpbmVkKEhBVkVfX0JVSUxUSU5fVFlQRVNfQ09NUEFUSUJMRV9QKQogI2RlZmluZSB1bmNvbnN0 aWZ5KHVuZGVybHlpbmdfdHlwZSwgZXhwcikgXAotCShTdGF0aWNBc3NlcnRFeHByKF9fYnVpbHRp bl90eXBlc19jb21wYXRpYmxlX3AoX190eXBlb2YoZXhwciksIGNvbnN0IHVuZGVybHlpbmdfdHlw ZSksIFwKKwkoU3RhdGljQXNzZXJ0RXhwcihfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHBn X2V4cHJ0eXBlKGV4cHIpLCBjb25zdCB1bmRlcmx5aW5nX3R5cGUpLCBcCiAJCQkJCSAgIndyb25n IGNhc3QiKSwgXAogCSAodW5kZXJseWluZ190eXBlKSAoZXhwcikpCiAjZGVmaW5lIHVudm9sYXRp emUodW5kZXJseWluZ190eXBlLCBleHByKSBcCi0JKFN0YXRpY0Fzc2VydEV4cHIoX19idWlsdGlu X3R5cGVzX2NvbXBhdGlibGVfcChfX3R5cGVvZihleHByKSwgdm9sYXRpbGUgdW5kZXJseWluZ190 eXBlKSwgXAorCShTdGF0aWNBc3NlcnRFeHByKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3Ao cGdfZXhwcnR5cGUoZXhwciksIHZvbGF0aWxlIHVuZGVybHlpbmdfdHlwZSksIFwKIAkJCQkJICAi d3JvbmcgY2FzdCIpLCBcCiAJICh1bmRlcmx5aW5nX3R5cGUpIChleHByKSkKICNlbHNlCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yZWxwdHIuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3Jl bHB0ci5oCmluZGV4IGFlYjE3ZmEyNGE1Li4zZTAzZDM0ZDlhZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcmVscHRyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVscHRyLmgKQEAg LTM4LDEwICszOCwxMCBAQAogI2RlZmluZSByZWxwdHJfZGVjbGFyZSh0eXBlLCByZWxwdHJ0eXBl KSBcCiAJdHlwZWRlZiByZWxwdHIodHlwZSkgcmVscHRydHlwZQogCi0jaWZkZWYgSEFWRV9UWVBF T0YKKyNpZmRlZiBwZ19leHBydHlwZQogI2RlZmluZSByZWxwdHJfYWNjZXNzKGJhc2UsIHJwKSBc CiAJKEFzc2VydFZhcmlhYmxlSXNPZlR5cGVNYWNybyhiYXNlLCBjaGFyICopLCBcCi0JICh0eXBl b2YoKHJwKS5yZWxwdHJfdHlwZSkpICgocnApLnJlbHB0cl9vZmYgPT0gMCA/IE5VTEwgOiBcCisJ IChwZ19leHBydHlwZSgocnApLnJlbHB0cl90eXBlKSkgKChycCkucmVscHRyX29mZiA9PSAwID8g TlVMTCA6IFwKIAkJKGJhc2UpICsgKHJwKS5yZWxwdHJfb2ZmIC0gMSkpCiAjZWxzZQogI2RlZmlu ZSByZWxwdHJfYWNjZXNzKGJhc2UsIHJwKSBcCkBAIC02OCwxMCArNjgsMTAgQEAgcmVscHRyX3N0 b3JlX2V2YWwoY2hhciAqYmFzZSwgY2hhciAqdmFsKQogCX0KIH0KIAotI2lmZGVmIEhBVkVfVFlQ RU9GCisjaWZkZWYgcGdfZXhwcnR5cGUKICNkZWZpbmUgcmVscHRyX3N0b3JlKGJhc2UsIHJwLCB2 YWwpIFwKIAkoQXNzZXJ0VmFyaWFibGVJc09mVHlwZU1hY3JvKGJhc2UsIGNoYXIgKiksIFwKLQkg QXNzZXJ0VmFyaWFibGVJc09mVHlwZU1hY3JvKHZhbCwgdHlwZW9mKChycCkucmVscHRyX3R5cGUp KSwgXAorCSBBc3NlcnRWYXJpYWJsZUlzT2ZUeXBlTWFjcm8odmFsLCBwZ19leHBydHlwZSgocnAp LnJlbHB0cl90eXBlKSksIFwKIAkgKHJwKS5yZWxwdHJfb2ZmID0gcmVscHRyX3N0b3JlX2V2YWwo KGJhc2UpLCAoY2hhciAqKSAodmFsKSkpCiAjZWxzZQogI2RlZmluZSByZWxwdHJfc3RvcmUoYmFz ZSwgcnAsIHZhbCkgXAotLSAKMi41Mi4wCgo= --820ac5df1b14058b0339a0caf9083079f3b1493c4a2369ccd682d3850de7 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0003-Revert-Replace-pg_restrict-by-standard-restrict.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0003-Revert-Replace-pg_restrict-by-standard-restrict.patch RnJvbSBjYmRjNTEyODcxN2FhMGYyYzFjMGVjMzU5MmJkZmIwZmYwOTg2M2EyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTYXQsIDMgSmFuIDIwMjYgMDA6NDM6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDMvNF0gUmV2ZXJ0ICJSZXBsYWNlIHBnX3Jlc3RyaWN0IGJ5IHN0YW5kYXJkIHJlc3RyaWN0IgoK VGhpcyByZXZlcnRzIGNvbW1pdCBmMGYyYzBjMWFlZjk1NzU3YzRlN2YxNDRkNTU3N2UyYjBkODE0 Mjc5LgoKSXQgdHVybnMgb3V0IHRoYXQgdGhpcyBjb21wbGV0ZWx5IGJyb2tlIGNvbXBpbGluZyBD KysgZXh0ZW5zaW9ucyBvbgpNU1ZDLiBUaGUgcmVzdHJpY3QgcmVwbGFjZW1lbnQgd2l0aCBfX3Jl c3RyaWN0IHdvdWxkIGJyZWFrIHVzYWdlcyBvZgpfX2RlY2x0eXBlKHJlc3RyaWN0KSBpbiBzdGFu ZGFyZCBsaWJyYXJ5IGhlYWRlcnMsIHJlc3VsdGluZyBpbiBlcnJvcnMKbGlrZSB0aGlzOgoKQzpc UHJvZ3JhbSBGaWxlcyAoeDg2KVxXaW5kb3dzIEtpdHNcMTBcaW5jbHVkZVwxMC4wLjIyNjIxLjBc dWNydFxjb3JlY3J0X21hbGxvYy5oKDU4KTogZXJyb3IgQzI0ODU6ICdfX3Jlc3RyaWN0JzogdW5y ZWNvZ25pemVkIGV4dGVuZGVkIGF0dHJpYnV0ZQotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysrKysrKystLS0tCiBjb25maWd1cmUuYWMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKysrKysrKy0tLS0KIG1lc29u LmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKy0tLS0tLQog c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMgfCAgNCArKy0tCiBzcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuaCB8ICA0ICsrLS0KIHNyYy9jb21t b24vbG9nZ2luZy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQogc3JjL2NvbW1vbi9z dHJpbmcuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYy5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiAtLS0tLS0KIHNyYy9pbmNsdWRlL2NvbW1vbi9s b2dnaW5nLmggICAgICAgICAgICAgIHwgIDQgKystLQogc3JjL2luY2x1ZGUvY29tbW9uL3N0cmlu Zy5oICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvbGlicHEvcHFmb3JtYXQuaCAg ICAgICAgICAgICAgfCAxMiArKysrKystLS0tLS0KIHNyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmlu ICAgICAgICAgICAgICAgIHwgIDQgKysrKwogMTIgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9u cygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJl CmluZGV4IDc4NTk3YzYyMjlhLi4yNjg4MzEzMWQ0YyAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisr KyBiL2NvbmZpZ3VyZQpAQCAtMTUxMzEsMTAgKzE1MTMxLDEwIEBAIF9BQ0VPRgogZmkKIAogCi0j IEV2ZW4gdGhvdWdoIHJlc3RyaWN0IGlzIGluIEM5OSBhbmQgc2hvdWxkIGJlIHN1cHBvcnRlZCBi eSBhbGwKLSMgc3VwcG9ydGVkIGNvbXBpbGVycywgdGhpcyB0ZXN0IGlzIHVzZWZ1bCBiZWNhdXNl IGl0IHdpbGwgcHJlZmVyIGEKLSMgc3BlbGxpbmcgdGhhdCBhbHNvIHdvcmtzIGluIEMrKyAob2Z0 ZW4gX19yZXN0cmljdCkuICAocmVzdHJpY3QgaXMKLSMgbm90IHBhcnQgb2YgdGhlIEMrKyBzdGFu ZGFyZC4pCisjIE1TVkMgZG9lc24ndCBjb3BlIHdlbGwgd2l0aCBkZWZpbmluZyByZXN0cmljdCB0 byBfX3Jlc3RyaWN0LCB0aGUKKyMgc3BlbGxpbmcgaXQgdW5kZXJzdGFuZHMsIGJlY2F1c2UgaXQg Y29uZmxpY3RzIHdpdGgKKyMgX19kZWNsc3BlYyhyZXN0cmljdCkuIFRoZXJlZm9yZSB3ZSBkZWZp bmUgcGdfcmVzdHJpY3QgdG8gdGhlCisjIGFwcHJvcHJpYXRlIGRlZmluaXRpb24sIHdoaWNoIHBy ZXN1bWFibHkgd29uJ3QgY29uZmxpY3QuCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciBDL0MrKyByZXN0cmljdCBrZXl3b3JkIiA+JjUKICRhc19l Y2hvX24gImNoZWNraW5nIGZvciBDL0MrKyByZXN0cmljdCBrZXl3b3JkLi4uICIgPiY2OyB9CiBp ZiAke2FjX2N2X2NfcmVzdHJpY3QrOn0gZmFsc2U7IHRoZW4gOgpAQCAtMTUxODEsNiArMTUxODEs MTYgQEAgX0FDRU9GCiAgOzsKICBlc2FjCiAKK2lmIHRlc3QgIiRhY19jdl9jX3Jlc3RyaWN0IiA9 ICJubyI7IHRoZW4KKyAgcGdfcmVzdHJpY3Q9IiIKK2Vsc2UKKyAgcGdfcmVzdHJpY3Q9IiRhY19j dl9jX3Jlc3RyaWN0IgorZmkKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBw Z19yZXN0cmljdCAkcGdfcmVzdHJpY3QKK19BQ0VPRgorCiAKIGFjX2ZuX2NfY2hlY2tfdHlwZSAi JExJTkVOTyIgInN0cnVjdCBvcHRpb24iICJhY19jdl90eXBlX3N0cnVjdF9vcHRpb24iICIjaWZk ZWYgSEFWRV9HRVRPUFRfSAogI2luY2x1ZGUgPGdldG9wdC5oPgpkaWZmIC0tZ2l0IGEvY29uZmln dXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDJjY2Y0MTBmOTRjLi4wOGRhNDQ4YzFmMyAxMDA2 NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTY4OSwxMSArMTY4 OSwxOSBAQCBQR0FDX1VOSU9OX1NFTVVOCiBBQ19DSEVDS19UWVBFUyhzb2NrbGVuX3QsIFtdLCBb XSwgWyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+XSkKIFBHQUNfU1RSVUNUX1NPQ0tBRERSX1NBX0xF TgogCi0jIEV2ZW4gdGhvdWdoIHJlc3RyaWN0IGlzIGluIEM5OSBhbmQgc2hvdWxkIGJlIHN1cHBv cnRlZCBieSBhbGwKLSMgc3VwcG9ydGVkIGNvbXBpbGVycywgdGhpcyB0ZXN0IGlzIHVzZWZ1bCBi ZWNhdXNlIGl0IHdpbGwgcHJlZmVyIGEKLSMgc3BlbGxpbmcgdGhhdCBhbHNvIHdvcmtzIGluIEMr KyAob2Z0ZW4gX19yZXN0cmljdCkuICAocmVzdHJpY3QgaXMKLSMgbm90IHBhcnQgb2YgdGhlIEMr KyBzdGFuZGFyZC4pCisjIE1TVkMgZG9lc24ndCBjb3BlIHdlbGwgd2l0aCBkZWZpbmluZyByZXN0 cmljdCB0byBfX3Jlc3RyaWN0LCB0aGUKKyMgc3BlbGxpbmcgaXQgdW5kZXJzdGFuZHMsIGJlY2F1 c2UgaXQgY29uZmxpY3RzIHdpdGgKKyMgX19kZWNsc3BlYyhyZXN0cmljdCkuIFRoZXJlZm9yZSB3 ZSBkZWZpbmUgcGdfcmVzdHJpY3QgdG8gdGhlCisjIGFwcHJvcHJpYXRlIGRlZmluaXRpb24sIHdo aWNoIHByZXN1bWFibHkgd29uJ3QgY29uZmxpY3QuCiBBQ19DX1JFU1RSSUNUCitpZiB0ZXN0ICIk YWNfY3ZfY19yZXN0cmljdCIgPSAibm8iOyB0aGVuCisgIHBnX3Jlc3RyaWN0PSIiCitlbHNlCisg IHBnX3Jlc3RyaWN0PSIkYWNfY3ZfY19yZXN0cmljdCIKK2ZpCitBQ19ERUZJTkVfVU5RVU9URUQo W3BnX3Jlc3RyaWN0XSwgWyRwZ19yZXN0cmljdF0sCitbRGVmaW5lIHRvIGtleXdvcmQgdG8gdXNl IGZvciBDOTkgcmVzdHJpY3Qgc3VwcG9ydCwgb3IgdG8gbm90aGluZyBpZiBub3QKK3N1cHBvcnRl ZF0pCiAKIEFDX0NIRUNLX1RZUEVTKFtzdHJ1Y3Qgb3B0aW9uXSwgW10sIFtdLAogWyNpZmRlZiBI QVZFX0dFVE9QVF9ICmRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4 IDQ2N2Y3ZjAwNWE2Li5jYzNkZWQ3ODJlNCAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQKKysrIGIv bWVzb24uYnVpbGQKQEAgLTI4MjUsMTIgKzI4MjUsMTMgQEAgaW50IG1haW4odm9pZCkKIGVuZGZv cmVhY2gKIAogCi0jIEV2ZW4gdGhvdWdoIHJlc3RyaWN0IGlzIGluIEM5OSBhbmQgc2hvdWxkIGJl IHN1cHBvcnRlZCBieSBhbGwKLSMgc3VwcG9ydGVkIGNvbXBpbGVycywgdGhpcyBpbmRpcmVjdGlv biBpcyB1c2VmdWwgYmVjYXVzZSBfX3Jlc3RyaWN0Ci0jIGFsc28gd29ya3MgaW4gQysrIGluIGFs bCBzdXBwb3J0ZWQgY29tcGlsZXJzLiAgKElmIG5vdCwgdGhlbiB3ZQotIyBtaWdodCBoYXZlIHRv IHdyaXRlIGEgcmVhbCB0ZXN0LikgIChyZXN0cmljdCBpcyBub3QgcGFydCBvZiB0aGUgQysrCi0j IHN0YW5kYXJkLikKLWNkYXRhLnNldCgncmVzdHJpY3QnLCAnX19yZXN0cmljdCcpCisjIE1TVkMg ZG9lc24ndCBjb3BlIHdlbGwgd2l0aCBkZWZpbmluZyByZXN0cmljdCB0byBfX3Jlc3RyaWN0LCB0 aGUgc3BlbGxpbmcgaXQKKyMgdW5kZXJzdGFuZHMsIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgg X19kZWNsc3BlYyhyZXN0cmljdCkuIFRoZXJlZm9yZSB3ZQorIyBkZWZpbmUgcGdfcmVzdHJpY3Qg dG8gdGhlIGFwcHJvcHJpYXRlIGRlZmluaXRpb24sIHdoaWNoIHByZXN1bWFibHkgd29uJ3QKKyMg Y29uZmxpY3QuCisjCisjIFdlIGFzc3VtZSBDOTkgc3VwcG9ydCwgc28gd2UgZG9uJ3QgbmVlZCB0 byBtYWtlIHRoaXMgY29uZGl0aW9uYWwuCitjZGF0YS5zZXQoJ3BnX3Jlc3RyaWN0JywgJ19fcmVz dHJpY3QnKQogCiAKICMgTW9zdCBsaWJyYXJpZXMgYXJlIGluY2x1ZGVkIG9ubHkgaWYgdGhleSBk ZW1vbnN0cmFibHkgcHJvdmlkZSBhIGZ1bmN0aW9uIHdlCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BnX3ZlcmlmeWJhY2t1cC5jCmluZGV4IDQ1NmUwMzc1ZTEzLi5mOWYyZDQ1N2YyZiAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKKysrIGIvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKQEAgLTEyMjgsNyArMTIyOCw3 IEBAIHBhcnNlX3JlcXVpcmVkX3dhbCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpw Z193YWxkdW1wX3BhdGgsCiAgKiBjb250ZXh0IHNheXMgd2Ugc2hvdWxkLgogICovCiB2b2lkCi1y ZXBvcnRfYmFja3VwX2Vycm9yKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIg KnJlc3RyaWN0IGZtdCwuLi4pCityZXBvcnRfYmFja3VwX2Vycm9yKHZlcmlmaWVyX2NvbnRleHQg KmNvbnRleHQsIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCiB7CiAJdmFfbGlzdAkJ YXA7CiAKQEAgLTEyNDUsNyArMTI0NSw3IEBAIHJlcG9ydF9iYWNrdXBfZXJyb3IodmVyaWZpZXJf Y29udGV4dCAqY29udGV4dCwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm10LC4uLikKICAqIFJlcG9y dCBhIGZhdGFsIGVycm9yIGFuZCBleGl0CiAgKi8KIHZvaWQKLXJlcG9ydF9mYXRhbF9lcnJvcihj b25zdCBjaGFyICpyZXN0cmljdCBmbXQsLi4uKQorcmVwb3J0X2ZhdGFsX2Vycm9yKGNvbnN0IGNo YXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5oIGIvc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmgKaW5kZXggMWNkNzZhODgyNmIuLmE5OWQ5YmZk NTgxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAu aAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuaApAQCAtOTYs OSArOTYsOSBAQCB0eXBlZGVmIHN0cnVjdCB2ZXJpZmllcl9jb250ZXh0CiB9IHZlcmlmaWVyX2Nv bnRleHQ7CiAKIGV4dGVybiB2b2lkIHJlcG9ydF9iYWNrdXBfZXJyb3IodmVyaWZpZXJfY29udGV4 dCAqY29udGV4dCwKLQkJCQkJCQkJY29uc3QgY2hhciAqcmVzdHJpY3QgZm10LC4uLikKKwkJCQkJ CQkJY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMyk7Ci1wZ19ub3JldHVybiBleHRlcm4gdm9pZCByZXBvcnRfZmF0YWxfZXJyb3IoY29u c3QgY2hhciAqcmVzdHJpY3QgZm10LC4uLikKK3BnX25vcmV0dXJuIGV4dGVybiB2b2lkIHJlcG9y dF9mYXRhbF9lcnJvcihjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQogCQkJcGdfYXR0 cmlidXRlX3ByaW50ZigxLCAyKTsKIGV4dGVybiBib29sIHNob3VsZF9pZ25vcmVfcmVscGF0aCh2 ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkgIGNvbnN0IGNoYXIgKnJlbHBhdGgp OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9sb2dnaW5nLmMgYi9zcmMvY29tbW9uL2xvZ2dpbmcu YwppbmRleCAyMTRhODdmMjE4OS4uNTIwNjk0OWU1ZDggMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24v bG9nZ2luZy5jCisrKyBiL3NyYy9jb21tb24vbG9nZ2luZy5jCkBAIC0yMDYsNyArMjA2LDcgQEAg cGdfbG9nZ2luZ19zZXRfbG9jdXNfY2FsbGJhY2sodm9pZCAoKmNiKSAoY29uc3QgY2hhciAqKmZp bGVuYW1lLCB1aW50NjQgKmxpbmVubykKIAogdm9pZAogcGdfbG9nX2dlbmVyaWMoZW51bSBwZ19s b2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKLQkJCSAgIGNvbnN0IGNoYXIg KnJlc3RyaWN0IGZtdCwuLi4pCisJCQkgICBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4u KQogewogCXZhX2xpc3QJCWFwOwogCkBAIC0yMTcsNyArMjE3LDcgQEAgcGdfbG9nX2dlbmVyaWMo ZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKIAogdm9pZAog cGdfbG9nX2dlbmVyaWNfdihlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwgZW51bSBwZ19sb2dfcGFy dCBwYXJ0LAotCQkJCSBjb25zdCBjaGFyICpyZXN0cmljdCBmbXQsIHZhX2xpc3QgYXApCisJCQkJ IGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwgdmFfbGlzdCBhcCkKIHsKIAlpbnQJCQlzYXZl X2Vycm5vID0gZXJybm87CiAJY29uc3QgY2hhciAqZmlsZW5hbWUgPSBOVUxMOwpkaWZmIC0tZ2l0 IGEvc3JjL2NvbW1vbi9zdHJpbmcuYyBiL3NyYy9jb21tb24vc3RyaW5nLmMKaW5kZXggZmZmMTRk M2ZhY2YuLjQxYzc0YTE1MDJkIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3N0cmluZy5jCisrKyBi L3NyYy9jb21tb24vc3RyaW5nLmMKQEAgLTQ3LDcgKzQ3LDcgQEAgcGdfc3RyX2VuZHN3aXRoKGNv bnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhciAqZW5kKQogICogc3RydG9pbnQgLS0tIGp1c3QgbGlr ZSBzdHJ0b2wsIGJ1dCByZXR1cm5zIGludCBub3QgbG9uZwogICovCiBpbnQKLXN0cnRvaW50KGNv bnN0IGNoYXIgKnJlc3RyaWN0IHN0ciwgY2hhciAqKnJlc3RyaWN0IGVuZHB0ciwgaW50IGJhc2Up CitzdHJ0b2ludChjb25zdCBjaGFyICpwZ19yZXN0cmljdCBzdHIsIGNoYXIgKipwZ19yZXN0cmlj dCBlbmRwdHIsIGludCBiYXNlKQogewogCWxvbmcJCXZhbDsKIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4IGJlZWQzYTFhNTJkLi5kZjZjNzUzZDkw OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2MuaApAQCAt MTA4LDEyICsxMDgsNiBAQAogI2RlZmluZSBpbmxpbmUKICNlbmRpZgogCi0vKgotICogUHJldmlv dXNseSB1c2VkIFBvc3RncmVTUUwtc3BlY2lmaWMgc3BlbGxpbmcsIGZvciBiYWNrd2FyZCBjb21w YXRpYmlsaXR5Ci0gKiBmb3IgZXh0ZW5zaW9ucy4KLSAqLwotI2RlZmluZSBwZ19yZXN0cmljdCBy ZXN0cmljdAotCiAvKgogICogQXR0cmlidXRlIG1hY3JvcwogICoKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NvbW1vbi9sb2dnaW5nLmggYi9zcmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCmlu ZGV4IGI1Y2FlYzBiZmYxLi5iY2NiYTRhYzA3YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bW9uL2xvZ2dpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24vbG9nZ2luZy5oCkBAIC05Mywx MCArOTMsMTAgQEAgdm9pZAkJcGdfbG9nZ2luZ19zZXRfcHJlX2NhbGxiYWNrKHZvaWQgKCpjYikg KHZvaWQpKTsKIHZvaWQJCXBnX2xvZ2dpbmdfc2V0X2xvY3VzX2NhbGxiYWNrKHZvaWQgKCpjYikg KGNvbnN0IGNoYXIgKipmaWxlbmFtZSwgdWludDY0ICpsaW5lbm8pKTsKIAogdm9pZAkJcGdfbG9n X2dlbmVyaWMoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwK LQkJCQkJCSAgIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZtdCwuLi4pCisJCQkJCQkgICBjb25zdCBj aGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsK IHZvaWQJCXBnX2xvZ19nZW5lcmljX3YoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdf bG9nX3BhcnQgcGFydCwKLQkJCQkJCQkgY29uc3QgY2hhciAqcmVzdHJpY3QgZm10LCB2YV9saXN0 IGFwKQorCQkJCQkJCSBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIHZhX2xpc3QgYXApCiAJ CQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDApOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbW9uL3N0cmluZy5oIGIvc3JjL2luY2x1ZGUvY29tbW9uL3N0cmluZy5oCmluZGV4IDVl MWJkNjFjNzEwLi4yYTdjMzFlYTc0ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbW9uL3N0 cmluZy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9zdHJpbmcuaApAQCAtMjUsNyArMjUsNyBA QCB0eXBlZGVmIHN0cnVjdCBQcm9tcHRJbnRlcnJ1cHRDb250ZXh0CiAKIC8qIGZ1bmN0aW9ucyBp biBzcmMvY29tbW9uL3N0cmluZy5jICovCiBleHRlcm4gYm9vbCBwZ19zdHJfZW5kc3dpdGgoY29u c3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICplbmQpOwotZXh0ZXJuIGludAlzdHJ0b2ludChjb25z dCBjaGFyICpyZXN0cmljdCBzdHIsIGNoYXIgKipyZXN0cmljdCBlbmRwdHIsCitleHRlcm4gaW50 CXN0cnRvaW50KGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IHN0ciwgY2hhciAqKnBnX3Jlc3RyaWN0 IGVuZHB0ciwKIAkJCQkJIGludCBiYXNlKTsKIGV4dGVybiBjaGFyICpwZ19jbGVhbl9hc2NpaShj b25zdCBjaGFyICpzdHIsIGludCBhbGxvY19mbGFncyk7CiBleHRlcm4gaW50CXBnX3N0cmlwX2Ny bGYoY2hhciAqc3RyKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL3BxZm9ybWF0Lmgg Yi9zcmMvaW5jbHVkZS9saWJwcS9wcWZvcm1hdC5oCmluZGV4IDkxMWQ5Mzk3ZjVlLi5iYzRhYjEz ODFhOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvcHFmb3JtYXQuaAorKysgYi9zcmMv aW5jbHVkZS9saWJwcS9wcWZvcm1hdC5oCkBAIC0zNCw3ICszNCw3IEBAIGV4dGVybiB2b2lkIHBx X3NlbmRmbG9hdDgoU3RyaW5nSW5mbyBidWYsIGZsb2F0OCBmKTsKICAqIEFwcGVuZCBhIFt1XWlu dDggdG8gYSBTdHJpbmdJbmZvIGJ1ZmZlciwgd2hpY2ggYWxyZWFkeSBoYXMgZW5vdWdoIHNwYWNl CiAgKiBwcmVhbGxvY2F0ZWQuCiAgKgotICogVGhlIHVzZSBvZiByZXN0cmljdCBhbGxvd3MgdGhl IGNvbXBpbGVyIHRvIG9wdGltaXplIHRoZSBjb2RlIGJhc2VkIG9uCisgKiBUaGUgdXNlIG9mIHBn X3Jlc3RyaWN0IGFsbG93cyB0aGUgY29tcGlsZXIgdG8gb3B0aW1pemUgdGhlIGNvZGUgYmFzZWQg b24KICAqIHRoZSBhc3N1bXB0aW9uIHRoYXQgYnVmLCBidWYtPmxlbiwgYnVmLT5kYXRhIGFuZCAq YnVmLT5kYXRhIGRvbid0CiAgKiBvdmVybGFwLiBXaXRob3V0IHRoZSBhbm5vdGF0aW9uIGJ1Zi0+ bGVuIGV0YyBjYW5ub3QgYmUga2VwdCBpbiBhIHJlZ2lzdGVyCiAgKiBvdmVyIHN1YnNlcXVlbnQg cHFfd3JpdGVpbnROIGNhbGxzLgpAQCAtNDMsNyArNDMsNyBAQCBleHRlcm4gdm9pZCBwcV9zZW5k ZmxvYXQ4KFN0cmluZ0luZm8gYnVmLCBmbG9hdDggZik7CiAgKiBvdmVybHkgcGlja3kgYW5kIGRl bWFuZGluZyBhICogYmVmb3JlIGEgcmVzdHJpY3QuCiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZAot cHFfd3JpdGVpbnQ4KFN0cmluZ0luZm9EYXRhICpyZXN0cmljdCBidWYsIHVpbnQ4IGkpCitwcV93 cml0ZWludDgoU3RyaW5nSW5mb0RhdGEgKnBnX3Jlc3RyaWN0IGJ1ZiwgdWludDggaSkKIHsKIAl1 aW50OAkJbmkgPSBpOwogCkBAIC01Nyw3ICs1Nyw3IEBAIHBxX3dyaXRlaW50OChTdHJpbmdJbmZv RGF0YSAqcmVzdHJpY3QgYnVmLCB1aW50OCBpKQogICogcHJlYWxsb2NhdGVkLgogICovCiBzdGF0 aWMgaW5saW5lIHZvaWQKLXBxX3dyaXRlaW50MTYoU3RyaW5nSW5mb0RhdGEgKnJlc3RyaWN0IGJ1 ZiwgdWludDE2IGkpCitwcV93cml0ZWludDE2KFN0cmluZ0luZm9EYXRhICpwZ19yZXN0cmljdCBi dWYsIHVpbnQxNiBpKQogewogCXVpbnQxNgkJbmkgPSBwZ19odG9uMTYoaSk7CiAKQEAgLTcxLDcg KzcxLDcgQEAgcHFfd3JpdGVpbnQxNihTdHJpbmdJbmZvRGF0YSAqcmVzdHJpY3QgYnVmLCB1aW50 MTYgaSkKICAqIHByZWFsbG9jYXRlZC4KICAqLwogc3RhdGljIGlubGluZSB2b2lkCi1wcV93cml0 ZWludDMyKFN0cmluZ0luZm9EYXRhICpyZXN0cmljdCBidWYsIHVpbnQzMiBpKQorcHFfd3JpdGVp bnQzMihTdHJpbmdJbmZvRGF0YSAqcGdfcmVzdHJpY3QgYnVmLCB1aW50MzIgaSkKIHsKIAl1aW50 MzIJCW5pID0gcGdfaHRvbjMyKGkpOwogCkBAIC04NSw3ICs4NSw3IEBAIHBxX3dyaXRlaW50MzIo U3RyaW5nSW5mb0RhdGEgKnJlc3RyaWN0IGJ1ZiwgdWludDMyIGkpCiAgKiBwcmVhbGxvY2F0ZWQu CiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZAotcHFfd3JpdGVpbnQ2NChTdHJpbmdJbmZvRGF0YSAq cmVzdHJpY3QgYnVmLCB1aW50NjQgaSkKK3BxX3dyaXRlaW50NjQoU3RyaW5nSW5mb0RhdGEgKnBn X3Jlc3RyaWN0IGJ1ZiwgdWludDY0IGkpCiB7CiAJdWludDY0CQluaSA9IHBnX2h0b242NChpKTsK IApAQCAtMTA1LDcgKzEwNSw3IEBAIHBxX3dyaXRlaW50NjQoU3RyaW5nSW5mb0RhdGEgKnJlc3Ry aWN0IGJ1ZiwgdWludDY0IGkpCiAgKiBzZW50IHRvIHRoZSBmcm9udGVuZC4KICAqLwogc3RhdGlj IGlubGluZSB2b2lkCi1wcV93cml0ZXN0cmluZyhTdHJpbmdJbmZvRGF0YSAqcmVzdHJpY3QgYnVm LCBjb25zdCBjaGFyICpyZXN0cmljdCBzdHIpCitwcV93cml0ZXN0cmluZyhTdHJpbmdJbmZvRGF0 YSAqcGdfcmVzdHJpY3QgYnVmLCBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBzdHIpCiB7CiAJaW50 CQkJc2xlbiA9IHN0cmxlbihzdHIpOwogCWNoYXIJICAgKnA7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wZ19jb25maWcuaC5pbiBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCmluZGV4IGYw MDkxYjA5Y2JlLi5iYzY4YTgxNWUxNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmln LmguaW4KKysrIGIvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KQEAgLTc5OSw2ICs3OTksMTAg QEAKICN1bmRlZiBpbmxpbmUKICNlbmRpZgogCisvKiBEZWZpbmUgdG8ga2V5d29yZCB0byB1c2Ug Zm9yIEM5OSByZXN0cmljdCBzdXBwb3J0LCBvciB0byBub3RoaW5nIGlmIG5vdAorICAgc3VwcG9y dGVkICovCisjdW5kZWYgcGdfcmVzdHJpY3QKKwogLyogRGVmaW5lIHRvIHRoZSBlcXVpdmFsZW50 IG9mIHRoZSBDOTkgJ3Jlc3RyaWN0JyBrZXl3b3JkLCBvciB0bwogICAgbm90aGluZyBpZiB0aGlz IGlzIG5vdCBzdXBwb3J0ZWQuICBEbyBub3QgZGVmaW5lIGlmIHJlc3RyaWN0IGlzCiAgICBzdXBw b3J0ZWQgZGlyZWN0bHkuICAqLwotLSAKMi41Mi4wCgo= --820ac5df1b14058b0339a0caf9083079f3b1493c4a2369ccd682d3850de7 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0004-tests-Add-a-test-C-extension-module.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0004-tests-Add-a-test-C-extension-module.patch RnJvbSBkNThhNTYwOTY2ZDUzNjQwYWY4ZjdmMjQ4ODJiYTAwNDIyMWYzNWVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDIgSmFuIDIwMjYgMjI6MzE6MDUgKzAxMDAKU3ViamVjdDogW1BBVENIIHY0 IDQvNF0gdGVzdHM6IEFkZCBhIHRlc3QgQysrIGV4dGVuc2lvbiBtb2R1bGUKCldoaWxlIHdlIGFs cmVhZHkgdGVzdCB0aGF0IG91ciBoZWFkZXJzIGFyZSB2YWxpZCBDKysgdXNpbmcgaGVhZGVyc2No ZWNrLAppdCB0dXJucyBvdXQgdGhhdCB0aGUgbWFjcm9zIHdlIGRlZmluZSBtaWdodCBzdGlsbCBl eHBhbmQgdG8gaW52YWxpZApDKysgY29kZS4gVGhpcyBhZGRzIGEgc21hbGwgdGVzdCBleHRlbnNp b24gdGhhdCBpcyBjb21waWxlZCB1c2luZyBDKysKd2hpY2ggdXNlcyBhIGZldyBtYWNyb3MgdGhh dCBoYXZlIGNhdXNlZCBwcm9ibGVtcyBpbiB0aGUgcGFzc2VkIG9yIHdlCmV4cGVjdCBtaWdodCBj YXVzZSBwcm9ibGVtcyBpbiB0aGUgZnV0dXJlLiBUaGlzIGlzIGRlZmluaXRlbHkgbm90IG1lYW50 CnRvIGJlIGV4aGF1c3RpdmUuIEl0J3MgbWFpbiBwdXJwb3NlIGlzIHRvIHNlcnZlIGFzIGEgcmVn cmVzc2lvbiB0ZXN0IGZvcgpwcmV2aW91cyBmYWlsdXJlcywgYW5kIGFzIGEgcGxhY2Ugd2hlcmUg ZnV0dXJlIGZhaWx1cmVzIGNhbiBlYXNpbHkgYmUKYWRkZWQuCgpUbyBnZXQgQ0kgZ3JlZW4sIHRo aXMgYWxzbyBmaXhlcyBhIGZldyBpc3N1ZXMgd2hlbiBjb21waWxpbmcgQysrCmV4dGVuc2lvbnMg b24gTVNWQy4gTm90YWJseSwgb3VyIHVzZSBvZiBkZXNpZ25hdGVkIGluaXRpYWxpemVycyBpbgpj b21tb24gbWFjcm9zIG1lYW5zIHRoYXQgb24gTVNWQyB3ZSBlc3NlbnRpYWxseSBuZWVkIEMrKzIw LiBHaXZlbiB0aGF0Cm5vLW9uZSBoYXMgY29tcGxhaW5lZCBhYm91dCB0aGF0IHlldCwgaXQgc2Vl bXMgdW5saWtlbHkgdGhhdCBhbnlvbmUgaXMKY3VycmVudGx5IGNvbXBpbGluZyBDKysgZXh0ZW5z aW9ucyBvbiBNU1ZDIHdpdGggYSBsb3dlciBzdGFuZGFyZC4gR0NDCmFuZCBjbGFuZyBhbGxvdyBz dWNoIGluaXRpYWxpemVycyBpbiBlYXJsaWVyIHN0YW5kYXJkcyBpbiBhbHNvLCBldmVuCnRob3Vn aCB0aGV5IG9ubHkgYmVjYW1lIGFuIG9mZmljaWFsIHBhcnQgb2YgQysrMjAuCi0tLQogLmNpcnJ1 cy50YXNrcy55bWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKystCiBtZXNvbi5i dWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKwogc3JjL2luY2x1 ZGUvYy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcGdfbGlzdC5oICAgICAgICAgICAgICAgICAgIHwgIDggKy0tCiBzcmMvdGVz dC9tb2R1bGVzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9t b2R1bGVzL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L01ha2VmaWxlICAgfCAyNCArKysrKysrKysKIC4uLi9tb2R1 bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L21lc29uLmJ1aWxkICAgICB8IDM1ICsrKysrKysrKysrKysK IC4uLi90ZXN0X2NwbHVzcGx1c2V4dC90ZXN0X2NwbHVzcGx1c2V4dC5jcHAgICB8IDUxICsrKysr KysrKysrKysrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVz cGx1c2V4dC9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVz dF9jcGx1c3BsdXNleHQvbWVzb24uYnVpbGQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9t b2R1bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L3Rlc3RfY3BsdXNwbHVzZXh0LmNwcAoKZGlmZiAtLWdp dCBhLy5jaXJydXMudGFza3MueW1sIGIvLmNpcnJ1cy50YXNrcy55bWwKaW5kZXggMDM4ZDA0M2Qw MGUuLjk0YWJmNjMyNjVjIDEwMDY0NAotLS0gYS8uY2lycnVzLnRhc2tzLnltbAorKysgYi8uY2ly cnVzLnRhc2tzLnltbApAQCAtNDUzLDcgKzQ1Myw4IEBAIHRhc2s6CiAKICAgICAjIFNBTklUSVpF Ul9GTEFHUyBpcyBzZXQgaW4gdGhlIHRhc2tzIGJlbG93CiAgICAgQ0ZMQUdTOiAtT2cgLWdnZGIg LWZuby1zYW5pdGl6ZS1yZWNvdmVyPWFsbCAkU0FOSVRJWkVSX0ZMQUdTCi0gICAgQ1hYRkxBR1M6 ICRDRkxBR1MKKyAgICAjIFVzZSAtc3RkPWMrKzExIChub3QgZ251KysxMSkgdG8gY2F0Y2ggQysr IHBvcnRhYmlsaXR5IGlzc3VlcworICAgIENYWEZMQUdTOiAkQ0ZMQUdTIC1zdGQ9YysrMTEKICAg ICBMREZMQUdTOiAkU0FOSVRJWkVSX0ZMQUdTCiAgICAgQ0M6IGNjYWNoZSBnY2MKICAgICBDWFg6 IGNjYWNoZSBnKysKQEAgLTU3Myw2ICs1NzQsNyBAQCB0YXNrOgogICAgICAgICBzdSBwb3N0Z3Jl cyA8PC1FT0YKICAgICAgICAgICBzZXQgLWUKICAgICAgICAgICBleHBvcnQgQ0M9J2NjYWNoZSBn Y2MgLW0zMicKKyAgICAgICAgICBleHBvcnQgQ1hYPSdjY2FjaGUgZysrIC1tMzInCiAgICAgICAg ICAgbWVzb24gc2V0dXAgXAogICAgICAgICAgICAgJHtNRVNPTl9DT01NT05fUEdfQ09ORklHX0FS R1N9IFwKICAgICAgICAgICAgIC0tYnVpbGR0eXBlPWRlYnVnIFwKQEAgLTgwNiw3ICs4MDgsNyBA QCB0YXNrOgogCiAgIGNvbmZpZ3VyZV9zY3JpcHQ6IHwKICAgICB2Y3ZhcnNhbGwgeDY0Ci0gICAg bWVzb24gc2V0dXAgLS1iYWNrZW5kIG5pbmphICVNRVNPTl9DT01NT05fUEdfQ09ORklHX0FSR1Ml IC0tYnVpbGR0eXBlIGRlYnVnIC1EYl9wY2g9dHJ1ZSAtRGV4dHJhX2xpYl9kaXJzPWM6XG9wZW5z c2xcMS4xXGxpYiAtRGV4dHJhX2luY2x1ZGVfZGlycz1jOlxvcGVuc3NsXDEuMVxpbmNsdWRlIC1E VEFSPSVUQVIlICVNRVNPTl9GRUFUVVJFUyUgYnVpbGQKKyAgICBtZXNvbiBzZXR1cCAtLWJhY2tl bmQgbmluamEgJU1FU09OX0NPTU1PTl9QR19DT05GSUdfQVJHUyUgLS1idWlsZHR5cGUgZGVidWcg LURiX3BjaD10cnVlIC1EZXh0cmFfbGliX2RpcnM9Yzpcb3BlbnNzbFwxLjFcbGliIC1EZXh0cmFf aW5jbHVkZV9kaXJzPWM6XG9wZW5zc2xcMS4xXGluY2x1ZGUgLURUQVI9JVRBUiUgLURjcHBfYXJn cz0vc3RkOmMrKzIwICVNRVNPTl9GRUFUVVJFUyUgYnVpbGQKIAogICBidWlsZF9zY3JpcHQ6IHwK ICAgICB2Y3ZhcnNhbGwgeDY0CmRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxk CmluZGV4IGNjM2RlZDc4MmU0Li40YTYzOTA0ODcwZSAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQK KysrIGIvbWVzb24uYnVpbGQKQEAgLTIxODUsNiArMjE4NSwxMCBAQCBpZiBjYy5nZXRfaWQoKSA9 PSAnbXN2YycKICAgICAnL3cyNDc3NycsICMgJ2Z1bmN0aW9uJyA6IGZvcm1hdCBzdHJpbmcgJ3N0 cmluZycgcmVxdWlyZXMgYW4gYXJndW1lbnQgb2YgdHlwZSAndHlwZTEnLCBidXQgdmFyaWFkaWMg YXJndW1lbnQgbnVtYmVyIGhhcyB0eXBlICd0eXBlMicgW2xpa2UgLVdmb3JtYXRdCiAgIF0KIAor ICBjeHhmbGFnc193YXJuICs9IFsKKyAgICAnL3dkNDIwMCcsICMgbm9uc3RhbmRhcmQgZXh0ZW5z aW9uIHVzZWQ6IHplcm8tc2l6ZWQgYXJyYXkgaW4gc3RydWN0L3VuaW9uCisgIF0KKwogICBjcHBm bGFncyArPSBbCiAgICAgJy9EV0lOMzInLAogICAgICcvRFdJTkRPV1MnLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4IGRmNmM3NTNkOTA4Li5jYzM1 NTMwNDI0ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2Mu aApAQCAtMzQxLDYgKzM0MSwxNiBAQAogI2RlZmluZSBwZ191bnJlYWNoYWJsZSgpIGFib3J0KCkK ICNlbmRpZgogCisvKgorICogQysrIGhhcyBzbGlndGhseSBkaWZmZXJlbnQgc3ludGF4IGZvciBp bmxpbmUgY29tcG91bmQgbGl0ZXJhbHMgdGhhbiBDLiBHQ0MKKyAqIGFuZCBDbGFuZyBzdXBwb3J0 IGhlIEMtc3R5bGUgc3ludGF4IHRvbywgYnV0IE1TVkMgZG9lcyBub3QuCisgKi8KKyNpZmRlZiBf X2NwbHVzcGx1cworI2RlZmluZSBwZ19jb21wb3VuZF9saXRlcmFsKHR5cGUsIC4uLikgKHR5cGUg eyBfX1ZBX0FSR1NfXyB9KQorI2Vsc2UKKyNkZWZpbmUgcGdfY29tcG91bmRfbGl0ZXJhbCh0eXBl LCAuLi4pICgodHlwZSkgeyBfX1ZBX0FSR1NfXyB9KQorI2VuZGlmCisKIC8qCiAgKiBEZWZpbmUg YSBjb21waWxlci1pbmRlcGVuZGVudCBtYWNybyBmb3IgZGV0ZXJtaW5pbmcgaWYgYW4gZXhwcmVz c2lvbiBpcyBhCiAgKiBjb21waWxlLXRpbWUgaW50ZWdlciBjb25zdC4gIFdlIGRvbid0IGRlZmlu ZSB0aGlzIG1hY3JvIHRvIHJldHVybiAwIHdoZW4KQEAgLTk0OCwxMyArOTU4LDE3IEBAIHBnX25v cmV0dXJuIGV4dGVybiB2b2lkIEV4Y2VwdGlvbmFsQ29uZGl0aW9uKGNvbnN0IGNoYXIgKmNvbmRp dGlvbk5hbWUsCiAJc3RhdGljX2Fzc2VydChjb25kaXRpb24sIGVycm1lc3NhZ2UpCiAjZGVmaW5l IFN0YXRpY0Fzc2VydFN0bXQoY29uZGl0aW9uLCBlcnJtZXNzYWdlKSBcCiAJZG8geyBzdGF0aWNf YXNzZXJ0KGNvbmRpdGlvbiwgZXJybWVzc2FnZSk7IH0gd2hpbGUoMCkKLSNpZmRlZiBIQVZFX1NU QVRFTUVOVF9FWFBSRVNTSU9OUworI2lmZGVmIF9fY3BsdXNwbHVzCisvKiBDKysxMSBsYW1iZGFz IHByb3ZpZGUgYSBjb252ZW5pZW50IHdheSB0byB1c2Ugc3RhdGljX2Fzc2VydCBhcyBhbiBleHBy ZXNzaW9uICovCisjZGVmaW5lIFN0YXRpY0Fzc2VydEV4cHIoY29uZGl0aW9uLCBlcnJtZXNzYWdl KSBcCisJKCh2b2lkKSAoW10oKXsgc3RhdGljX2Fzc2VydChjb25kaXRpb24sIGVycm1lc3NhZ2Up OyB9KCksIDApKQorI2VsaWYgZGVmaW5lZChIQVZFX1NUQVRFTUVOVF9FWFBSRVNTSU9OUykKICNk ZWZpbmUgU3RhdGljQXNzZXJ0RXhwcihjb25kaXRpb24sIGVycm1lc3NhZ2UpIFwKIAkoKHZvaWQp ICh7IHN0YXRpY19hc3NlcnQoY29uZGl0aW9uLCBlcnJtZXNzYWdlKTsgdHJ1ZTsgfSkpCiAjZWxz ZQogI2RlZmluZSBTdGF0aWNBc3NlcnRFeHByKGNvbmRpdGlvbiwgZXJybWVzc2FnZSkgXAogCSgo dm9pZCkgc2l6ZW9mKHN0cnVjdCB7IGludCBzdGF0aWNfYXNzZXJ0X2ZhaWx1cmUgOiAoY29uZGl0 aW9uKSA/IDEgOiAtMTsgfSkpCi0jZW5kaWYJCQkJCQkJLyogSEFWRV9TVEFURU1FTlRfRVhQUkVT U0lPTlMgKi8KKyNlbmRpZgogCiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w Z19saXN0LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wZ19saXN0LmgKaW5kZXggYWU4MDk3NTU0OGYu LjU0OThkMDliY2JhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wZ19saXN0LmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGdfbGlzdC5oCkBAIC0yMDQsMTAgKzIwNCwxMCBAQCBsaXN0 X2xlbmd0aChjb25zdCBMaXN0ICpsKQogLyoKICAqIENvbnZlbmllbmNlIG1hY3JvcyBmb3IgYnVp bGRpbmcgZml4ZWQtbGVuZ3RoIGxpc3RzCiAgKi8KLSNkZWZpbmUgbGlzdF9tYWtlX3B0cl9jZWxs KHYpCSgoTGlzdENlbGwpIHsucHRyX3ZhbHVlID0gKHYpfSkKLSNkZWZpbmUgbGlzdF9tYWtlX2lu dF9jZWxsKHYpCSgoTGlzdENlbGwpIHsuaW50X3ZhbHVlID0gKHYpfSkKLSNkZWZpbmUgbGlzdF9t YWtlX29pZF9jZWxsKHYpCSgoTGlzdENlbGwpIHsub2lkX3ZhbHVlID0gKHYpfSkKLSNkZWZpbmUg bGlzdF9tYWtlX3hpZF9jZWxsKHYpCSgoTGlzdENlbGwpIHsueGlkX3ZhbHVlID0gKHYpfSkKKyNk ZWZpbmUgbGlzdF9tYWtlX3B0cl9jZWxsKHYpCXBnX2NvbXBvdW5kX2xpdGVyYWwoTGlzdENlbGws IC5wdHJfdmFsdWUgPSAodikpCisjZGVmaW5lIGxpc3RfbWFrZV9pbnRfY2VsbCh2KQlwZ19jb21w b3VuZF9saXRlcmFsKExpc3RDZWxsLCAuaW50X3ZhbHVlID0gKHYpKQorI2RlZmluZSBsaXN0X21h a2Vfb2lkX2NlbGwodikJcGdfY29tcG91bmRfbGl0ZXJhbChMaXN0Q2VsbCwgLm9pZF92YWx1ZSA9 ICh2KSkKKyNkZWZpbmUgbGlzdF9tYWtlX3hpZF9jZWxsKHYpCXBnX2NvbXBvdW5kX2xpdGVyYWwo TGlzdENlbGwsIC54aWRfdmFsdWUgPSAodikpCiAKICNkZWZpbmUgbGlzdF9tYWtlMSh4MSkgXAog CWxpc3RfbWFrZTFfaW1wbChUX0xpc3QsIGxpc3RfbWFrZV9wdHJfY2VsbCh4MSkpCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmls ZQppbmRleCA0YzZkNTZkOTdkOC4uOTJhYzBhMzQyYjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21v ZHVsZXMvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQpAQCAtMjAsNiAr MjAsNyBAQCBTVUJESVJTID0gXAogCQkgIHRlc3RfYml0bWFwc2V0IFwKIAkJICB0ZXN0X2Jsb29t ZmlsdGVyIFwKIAkJICB0ZXN0X2Nsb2V4ZWMgXAorCQkgIHRlc3RfY3BsdXNwbHVzZXh0IFwKIAkJ ICB0ZXN0X2NvcHlfY2FsbGJhY2tzIFwKIAkJICB0ZXN0X2N1c3RvbV9ybWdycyBcCiAJCSAgdGVz dF9jdXN0b21fc3RhdHMgXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWls ZCBiL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKaW5kZXggMWIzMWM1Yjk4ZDYuLjBjN2U4 YWQ0ODU2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKQEAgLTE5LDYgKzE5LDcgQEAgc3ViZGlyKCd0ZXN0 X2FpbycpCiBzdWJkaXIoJ3Rlc3RfYmluYXJ5aGVhcCcpCiBzdWJkaXIoJ3Rlc3RfYml0bWFwc2V0 JykKIHN1YmRpcigndGVzdF9ibG9vbWZpbHRlcicpCitzdWJkaXIoJ3Rlc3RfY3BsdXNwbHVzZXh0 JykKIHN1YmRpcigndGVzdF9jbG9leGVjJykKIHN1YmRpcigndGVzdF9jb3B5X2NhbGxiYWNrcycp CiBzdWJkaXIoJ3Rlc3RfY3VzdG9tX3JtZ3JzJykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9jcGx1c3BsdXNleHQvTWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3Bs dXNwbHVzZXh0L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li4xOWFiZDBmOThjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9j cGx1c3BsdXNleHQvTWFrZWZpbGUKQEAgLTAsMCArMSwyNCBAQAorIyBzcmMvdGVzdC9tb2R1bGVz L3Rlc3RfY3BsdXNwbHVzZXh0L01ha2VmaWxlCisjCisjIFRlc3QgdGhhdCBQb3N0Z3JlU1FMIGhl YWRlcnMgY29tcGlsZSB3aXRoIGEgQysrIGNvbXBpbGVyLgorIyBJZiB0aGlzIG1vZHVsZSBjb21w aWxlcywgdGhlIHRlc3QgcGFzc2VzLgorCitNT0RVTEVfYmlnID0gdGVzdF9jcGx1c3BsdXNleHQK K09CSlMgPSBcCisJJChXSU4zMlJFUykgXAorCXRlc3RfY3BsdXNwbHVzZXh0Lm8KK1BHRklMRURF U0MgPSAidGVzdF9jcGx1c3BsdXNleHQgLSB0ZXN0IEMrKyBjb21wYXRpYmlsaXR5IG9mIFBvc3Rn cmVTUUwgaGVhZGVycyIKKworIyBVc2UgQysrIGNvbXBpbGVyIGZvciBsaW5raW5nIGJlY2F1c2Ug dGhpcyBtb2R1bGUgaW5jbHVkZXMgQysrIGZpbGVzCitvdmVycmlkZSBDT01QSUxFUiA9ICQoQ1hY KSAkKENYWEZMQUdTKQorCitpZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdfY29uZmlnCitQ R1hTIDo9ICQoc2hlbGwgJChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQR1hTKQorZWxz ZQorc3ViZGlyID0gc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dAordG9wX2J1aWxk ZGlyID0gLi4vLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5n bG9iYWwKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb250cmliL2NvbnRyaWItZ2xvYmFsLm1rCitl bmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC9tZXNv bi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQvbWVzb24uYnVpbGQK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0N2ZiZmE3ZjUxCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC9tZXNvbi5i dWlsZApAQCAtMCwwICsxLDM1IEBACisjIENvcHlyaWdodCAoYykgMjAyNS0yMDI2LCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIFRoaXMgbW9kdWxlIHRlc3RzIHRoYXQg UG9zdGdyZVNRTCBoZWFkZXJzIGNvbXBpbGUgd2l0aCBhIEMrKyBjb21waWxlci4KKyMgSXQgaGFz IG5vIHJ1bnRpbWUgdGVzdHMgLSBpZiBpdCBjb21waWxlcywgdGhlIHRlc3QgcGFzc2VzLgorCitp ZiBub3QgYWRkX2xhbmd1YWdlcygnY3BwJywgcmVxdWlyZWQ6IGZhbHNlLCBuYXRpdmU6IGZhbHNl KQorICBzdWJkaXJfZG9uZSgpCitlbmRpZgorCitjcHAgPSBtZXNvbi5nZXRfY29tcGlsZXIoJ2Nw cCcpCisKKyMgTVNWQyByZXF1aXJlcyBDKysyMCBmb3IgZGVzaWduYXRlZCBpbml0aWFsaXplcnMg dXNlZCBpbiBQR19NT0RVTEVfTUFHSUMgYW5kCisjIG90aGVyIG1hY3Jvcy4gU2tpcCBpZiB0aGUg Y29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IHRoZW0uCitpZiBub3QgY3BwLmNvbXBpbGVzKCcnJwor ICAgIHN0cnVjdCBGb28geyBpbnQgYTsgaW50IGI7IH07CisgICAgRm9vIGYgPSB7LmEgPSAxLCAu YiA9IDJ9OworICAgICcnJywKKyAgICBuYW1lOiAnQysrIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXJz JykKKyAgc3ViZGlyX2RvbmUoKQorZW5kaWYKKwordGVzdF9jcGx1c3BsdXNleHRfc291cmNlcyA9 IGZpbGVzKAorICAndGVzdF9jcGx1c3BsdXNleHQuY3BwJywKKykKKworaWYgaG9zdF9zeXN0ZW0g PT0gJ3dpbmRvd3MnCisgIHRlc3RfY3BsdXNwbHVzZXh0X3NvdXJjZXMgKz0gcmNfbGliX2dlbi5w cm9jZXNzKHdpbjMydmVyX3JjLCBleHRyYV9hcmdzOiBbCisgICAgJy0tTkFNRScsICd0ZXN0X2Nw bHVzcGx1c2V4dCcsCisgICAgJy0tRklMRURFU0MnLCAndGVzdF9jcGx1c3BsdXNleHQgLSB0ZXN0 IEMrKyBjb21wYXRpYmlsaXR5IG9mIFBvc3RncmVTUUwgaGVhZGVycycsXSkKK2VuZGlmCisKK3Rl c3RfY3BsdXNwbHVzZXh0ID0gc2hhcmVkX21vZHVsZSgndGVzdF9jcGx1c3BsdXNleHQnLAorICB0 ZXN0X2NwbHVzcGx1c2V4dF9zb3VyY2VzLAorICBrd2FyZ3M6IHBnX3Rlc3RfbW9kX2FyZ3MsCisp CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L3Rlc3RfY3Bs dXNwbHVzZXh0LmNwcCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQvdGVzdF9j cGx1c3BsdXNleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4w MTJkYjhiNzk1OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jcGx1 c3BsdXNleHQvdGVzdF9jcGx1c3BsdXNleHQuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqCisgKiB0ZXN0X2NwbHVzcGx1c2V4dC5jcHAKKyAqCQlUZXN0IHRoYXQg UG9zdGdyZVNRTCBoZWFkZXJzIGNvbXBpbGUgd2l0aCBhIEMrKyBjb21waWxlci4KKyAqCisgKiBU aGlzIGZpbGUgaXMgY29tcGlsZWQgd2l0aCBhIEMrKyBjb21waWxlciB0byB2ZXJpZnkgdGhhdCBQ b3N0Z3JlU1FMCisgKiBoZWFkZXJzIHJlbWFpbiBjb21wYXRpYmxlIHdpdGggQysrIGV4dGVuc2lv bnMuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI1LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L3Rlc3RfY3BsdXNwbHVzZXh0LmNwcAorICoKKyAqIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqLworCitleHRlcm4gIkMiIHsKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgor I2luY2x1ZGUgImZtZ3IuaCIKKyNpbmNsdWRlICJub2Rlcy9wZ19saXN0LmgiCisjaW5jbHVkZSAi bm9kZXMvcGFyc2Vub2Rlcy5oIgorCitQR19NT0RVTEVfTUFHSUM7CisKK1BHX0ZVTkNUSU9OX0lO Rk9fVjEodGVzdF9jcGx1c3BsdXNfY29tcGF0KTsKK30KKworU3RhdGljQXNzZXJ0RGVjbChzaXpl b2YoaW50MzIpID09IDQsICJpbnQzMiBzaG91bGQgYmUgNCBieXRlcyIpOworCitleHRlcm4gIkMi IERhdHVtCit0ZXN0X2NwbHVzcGx1c19jb21wYXQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlMaXN0 CSAgICpub2RlX2xpc3QgPSBsaXN0X21ha2UxKG1ha2VOb2RlKFJhbmdlVGJsUmVmKSk7CisJUmFu Z2VUYmxSZWYgKmNvcHkgPSBjb3B5T2JqZWN0KGxpbml0aWFsX25vZGUoUmFuZ2VUYmxSZWYsIG5v ZGVfbGlzdCkpOworCisJZm9yZWFjaF9wdHIoUmFuZ2VUYmxSZWYsIHJ0ciwgbm9kZV9saXN0KSB7 CisJCXJ0ci0+cnRpbmRleCsrOworCX0KKworCWZvcmVhY2hfbm9kZShSYW5nZVRibFJlZiwgcnRy LCBub2RlX2xpc3QpIHsKKwkJcnRyLT5ydGluZGV4Kys7CisJfQorCisJU3RhdGljQXNzZXJ0U3Rt dChzaXplb2YoaW50MzIpID09IDQsICJpbnQzMiBzaG91bGQgYmUgNCBieXRlcyIpOworCSh2b2lk KSBTdGF0aWNBc3NlcnRFeHByKHNpemVvZihpbnQ2NCkgPT0gOCwgImludDY0IHNob3VsZCBiZSA4 IGJ5dGVzIik7CisKKwlwZnJlZShjb3B5KTsKKwlsaXN0X2ZyZWVfZGVlcChub2RlX2xpc3QpOwor CisJUEdfUkVUVVJOX1ZPSUQoKTsKK30KLS0gCjIuNTIuMAoK --820ac5df1b14058b0339a0caf9083079f3b1493c4a2369ccd682d3850de7--