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 1rnMGm-00CsSN-F2 for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Mar 2024 17:32:01 +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 1rnMGk-00F8bh-5N for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Mar 2024 17:31:58 +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.94.2) (envelope-from ) id 1rnMGj-00F8bZ-E3 for pgsql-hackers@lists.postgresql.org; Thu, 21 Mar 2024 17:31:58 +0000 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rnMGg-005i1u-2O for pgsql-hackers@postgresql.org; Thu, 21 Mar 2024 17:31:56 +0000 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-6e709e0c123so1084571b3a.1 for ; Thu, 21 Mar 2024 10:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgguru-net.20230601.gappssmtp.com; s=20230601; t=1711042314; x=1711647114; darn=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=6kFXNHDeHhYlrVD9Cy2EPklRwffEbL5ceRc3nE2rqyk=; b=e41eExVm1PD+4Kzancj5VVJOoX5gna3THUFXAb6kOytb+QyWWV/hxysONhk5F7nD02 yMLLheM7av0+7CsmR6KMF0v1kVz4V5/6Bn89i2hLjvfRE6HNtpQDBNXtarxavC2a0AY5 70g8d+Dkd8fDGUvJrs9IWrfGWqpptN5MGu0vzcIkdLKxvlGzhMXsuof1ZtkYeEBfIjgQ DHL7LDOqH078yu/qcg/5rLHpFA3up0Q5/SRXiJyWYQHORdpXPkCWqj5m12A/Wm1Y0dce 86XAuFVG1lkJf+7TY/2xFl8d86ZF11o07SHG0yviB4gsFV4WGyBvHh/thhceDBi0dlRI FUuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711042314; x=1711647114; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6kFXNHDeHhYlrVD9Cy2EPklRwffEbL5ceRc3nE2rqyk=; b=MoH9EHRbLTTij0/iINCfnOjH5fDbWUllDhERHcCUCXlUU93RlKmk4QuXWtPK0SSTNq YbpcJGSKuc8yfpCsbk0FsE2XAHlqRfXaDIVGbCSQU6kHZxrAzDEjE8vdKjPP6bl3sDdy IVz3Vg7980iKN9OcEATeQjx2HCyGNOSszpQJljCIeiAsSk+z9GnmNooLxB5CAOw1gVha Oi9E9EhbL04VJrqyE3mfqeaFh/m4l63UY+5KQW9lhAra/oeQwu4WBnUgRG0dCKDDyeGn WNhyfR62VyUG5GQlST7d9O59WvlQp55SvhNWuDRwdOE3TwhJPq+szFMzhQ31FkCzGHT7 Amaw== X-Forwarded-Encrypted: i=1; AJvYcCW8m9U/KWqQvlvDSLui1XstyrswDU+XeCML6Sx1Eh8BUyRUCyHuDDpNMU8FM5hrAvaQm0ciHrVvO8Tvovc8eb8WNAOIvAInR3j9GawX X-Gm-Message-State: AOJu0Yx23kfrWwu00kzYK41l418tLGZYmYbPsoHfNdX265+XuUWSPS94 3Fg8Bin2U7lK6lH25TUgGyoUxg94+XVc4zsiKVgmtdjfC+hDJJVZCO7u4CrkpDzwNZk67xZfa29 px7AuWCsTM4oYsXRy8fdP366nvGCVF8I0F6nrnQ== X-Google-Smtp-Source: AGHT+IGvYMZpR5SHWuq7jcLADvJwX/dwZLKcMPTQiLMmRseWoZogPmUoC7sFfkv2zkmbD3/UuTDYZU5xU7H8QbuzEls= X-Received: by 2002:a17:90a:a590:b0:29a:72bb:439f with SMTP id b16-20020a17090aa59000b0029a72bb439fmr32761pjq.11.1711042314259; Thu, 21 Mar 2024 10:31:54 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: David Christensen Date: Thu, 21 Mar 2024 12:31:42 -0500 Message-ID: Subject: Re: Adding comments to help understand psql hidden queries To: Jim Jones Cc: Greg Sabino Mullane , pgsql-hackers Content-Type: multipart/mixed; boundary="000000000000567d9f06142f1586" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000567d9f06142f1586 Content-Type: text/plain; charset="UTF-8" Hi Jim, Thanks for the feedback. Enclosed is a v2 of this series(?) rebased and with that warning fixed; @Greg Sabino Mullane I just created a commit on your behalf with the message to hackers. I'm also creating a commit-fest entry for this thread. Best, David --000000000000567d9f06142f1586 Content-Type: application/octet-stream; name="v2-0002-Add-output-of-the-command-that-got-us-here-to-the.patch" Content-Disposition: attachment; filename="v2-0002-Add-output-of-the-command-that-got-us-here-to-the.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lu1ided21 RnJvbSBhNTRmNGU3YmQ1NmFiMzI1NjVkMTVlOWIwMjJmMTQ4MWNkMGY3ZmRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBDaHJpc3RlbnNlbiA8ZGF2aWQuY2hyaXN0ZW5zZW5A Y3J1bmNoeWRhdGEuY29tPgpEYXRlOiBUaHUsIDIxIE1hciAyMDI0IDEyOjI3OjMyIC0wNTAwClN1 YmplY3Q6IFtQQVRDSCB2MiAyLzJdIEFkZCBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgdGhhdCBnb3Qg dXMgaGVyZSB0byB0aGUKIFFVRVJZIG91dHB1dAoKLS0tCiBzcmMvYmluL3BzcWwvY29tbWFuZC5j IHwgIDUgKysrKysKIHNyYy9iaW4vcHNxbC9jb21tb24uYyAgfCAxNiArKysrKysrKysrKystLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMK aW5kZXggOWIwZmEwNDFmNy4uNGNmYjkxZTEzNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Nv bW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC01Niw2ICs1Niw4IEBAIHR5 cGVkZWYgZW51bSBFZGl0YWJsZU9iamVjdFR5cGUKIAlFZGl0YWJsZVZpZXcsCiB9IEVkaXRhYmxl T2JqZWN0VHlwZTsKIAorY2hhciAqY3VyY21kID0gTlVMTDsKKwogLyogbG9jYWwgZnVuY3Rpb24g ZGVjbGFyYXRpb25zICovCiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZChjb25z dCBjaGFyICpjbWQsCiAJCQkJCQkJCQlQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsCkBAIC0zMDcs NiArMzA5LDcgQEAgZXhlY19jb21tYW5kKGNvbnN0IGNoYXIgKmNtZCwKIAkJCQkJICAgY21kKTsK IAl9CiAKKwljdXJjbWQgPSAoY2hhciAqKWNtZDsKIAlpZiAoc3RyY21wKGNtZCwgImEiKSA9PSAw KQogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfYShzY2FuX3N0YXRlLCBhY3RpdmVfYnJhbmNoKTsK IAllbHNlIGlmIChzdHJjbXAoY21kLCAiYmluZCIpID09IDApCkBAIC00MjMsNiArNDI2LDggQEAg ZXhlY19jb21tYW5kKGNvbnN0IGNoYXIgKmNtZCwKIAllbHNlCiAJCXN0YXR1cyA9IFBTUUxfQ01E X1VOS05PV047CiAKKwljdXJjbWQgPSBOVUxMOworCiAJLyoKIAkgKiBBbGwgdGhlIGNvbW1hbmRz IHRoYXQgcmV0dXJuIFBTUUxfQ01EX1NFTkQgd2FudCB0byBleGVjdXRlIHByZXZpb3VzX2J1Zgog CSAqIGlmIHF1ZXJ5X2J1ZiBpcyBlbXB0eS4gIEZvciBjb252ZW5pZW5jZSB3ZSBpbXBsZW1lbnQg dGhhdCBoZXJlLCBub3QgaW4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tb24uYyBiL3Ny Yy9iaW4vcHNxbC9jb21tb24uYwppbmRleCA3NmUwMWIwMmEzLi43NzQ5NjU2ZjVmIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1vbi5jCkBA IC00Miw2ICs0Miw3IEBAIHN0YXRpYyBpbnQJRXhlY1F1ZXJ5QW5kUHJvY2Vzc1Jlc3VsdHMoY29u c3QgY2hhciAqcXVlcnksCiBzdGF0aWMgYm9vbCBjb21tYW5kX25vX2JlZ2luKGNvbnN0IGNoYXIg KnF1ZXJ5KTsKIHN0YXRpYyBib29sIGlzX3NlbGVjdF9jb21tYW5kKGNvbnN0IGNoYXIgKnF1ZXJ5 KTsKIAorZXh0ZXJuIGNoYXIgKmN1cmNtZDsKIAogLyoKICAqIG9wZW5RdWVyeU91dHB1dEZpbGUg LS0tIGF0dGVtcHQgdG8gb3BlbiBhIHF1ZXJ5IG91dHB1dCBmaWxlCkBAIC01ODEsNiArNTgyLDcg QEAgUEdyZXN1bHQgKgogUFNRTGV4ZWMoY29uc3QgY2hhciAqcXVlcnkpCiB7CiAJUEdyZXN1bHQg ICAqcmVzOworCWNoYXIgKmxhYmVsID0gIiI7CiAKIAlpZiAoIXBzZXQuZGIpCiAJewpAQCAtNTg4 LDIxICs1OTAsMjcgQEAgUFNRTGV4ZWMoY29uc3QgY2hhciAqcXVlcnkpCiAJCXJldHVybiBOVUxM OwogCX0KIAorCWlmIChjdXJjbWQpCisJCWxhYmVsID0gcHNwcmludGYoIiAoXFwlcykiLCBjdXJj bWQpOworCiAJaWYgKHBzZXQuZWNob19oaWRkZW4gIT0gUFNRTF9FQ0hPX0hJRERFTl9PRkYpCiAJ ewotCQlwcmludGYoXygiLyoqKioqKioqIFFVRVJZICoqKioqKioqKi9cbiIKKwkJcHJpbnRmKF8o Ii8qKioqKioqKiBRVUVSWSVzICoqKioqKioqKi9cbiIKIAkJCQkgIiVzXG4iCi0JCQkJICIvKioq KioqKioqKioqKioqKioqKioqKioqL1xuXG4iKSwgcXVlcnkpOworCQkJCSAiLyoqKioqKioqKioq KioqKioqKioqKioqKi9cblxuIiksIGxhYmVsLCBxdWVyeSk7CiAJCWZmbHVzaChzdGRvdXQpOwog CQlpZiAocHNldC5sb2dmaWxlKQogCQl7CiAJCQlmcHJpbnRmKHBzZXQubG9nZmlsZSwKLQkJCQkJ XygiLyoqKioqKioqIFFVRVJZICoqKioqKioqKi9cbiIKKwkJCQkJXygiLyoqKioqKioqIFFVRVJZ JXMgKioqKioqKioqL1xuIgogCQkJCQkgICIlc1xuIgotCQkJCQkgICIvKioqKioqKioqKioqKioq KioqKioqKioqL1xuXG4iKSwgcXVlcnkpOworCQkJCQkgICIvKioqKioqKioqKioqKioqKioqKioq KioqL1xuXG4iKSwgbGFiZWwsIHF1ZXJ5KTsKIAkJCWZmbHVzaChwc2V0LmxvZ2ZpbGUpOwogCQl9 CiAKKwkJaWYgKGN1cmNtZCkKKwkJCXBmcmVlKGxhYmVsKTsKKwogCQlpZiAocHNldC5lY2hvX2hp ZGRlbiA9PSBQU1FMX0VDSE9fSElEREVOX05PRVhFQykKIAkJCXJldHVybiBOVUxMOwogCX0KLS0g CjIuMzkuMyAoQXBwbGUgR2l0LTE0NikKCg== --000000000000567d9f06142f1586 Content-Type: application/octet-stream; name="v2-0001-Include-SQL-comments-on-echo-hidden-output.patch" Content-Disposition: attachment; filename="v2-0001-Include-SQL-comments-on-echo-hidden-output.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lu1ideco0 RnJvbSAzZjUxMWRhOGM1ZmRjNGE4OWVjYzA5YTRkNWI5YjhlYjc2ZmVlODBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIFNhYmlubyBNdWxsYW5lIDxodGFtZmlkc0BnbWFpbC5j b20+CkRhdGU6IFRodSwgMjEgTWFyIDIwMjQgMTI6MTI6NTQgLTA1MDAKU3ViamVjdDogW1BBVENI IHYyIDEvMl0gSW5jbHVkZSBTUUwgY29tbWVudHMgb24gLS1lY2hvLWhpZGRlbiBvdXRwdXQKClRo ZSB1c2Ugb2YgdGhlIC0tZWNoby1oaWRkZW4gZmxhZyBpbiBwc3FsIGlzIHVzZWQgdG8gc2hvdyBw ZW9wbGUgdGhlIHdheSBwc3FsIHBlcmZvcm1zIGl0cyBtYWdpYyBmb3IgaXRzIGJhY2tzbGFzaCBj b21tYW5kcy4gTm9uZSBvZiB0aGVtIGhhcyBtb3JlIG1hZ2ljIHRoYW4gIlxkIHJlbGF0aW9uIiwg YnV0IGl0IHN1ZmZlcnMgZnJvbSBuZWVkaW5nIGEgbG90IG9mIHNlcGFyYXRlIHF1ZXJpZXMgdG8g Z2F0aGVyIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMuIFVuZm9ydHVuYXRlbHksIHRo b3NlIHF1ZXJpZXMgY2FuIGdldCBvdmVyd2hlbG1pbmcgYW5kIGhhcmQgdG8gZmlndXJlIG91dCB3 aGljaCBvbmUgZG9lcyB3aGF0LCBlc3BlY2lhbGx5IGZvciB0aG9zZSBub3QgYWxyZWFkeSB2ZXJ5 IGZhbWlsaWFyIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9ncy4gQXR0YWNoZWQgaXMgYSBwYXRjaCB0 byBhZGQgYSBzbWFsbCBTUUwgY29tbWVudCB0byB0aGUgdG9wIG9mIGVhY2ggU0VMRUNUIHF1ZXJ5 IGluc2lkZSBkZXNjcmliZU9uZVRhYmxlRGV0YWlsLiBBbGwgb3RoZXIgZnVuY3Rpb25zIHVzZSBh IHNpbmdsZSBxdWVyeSwgYW5kIHRodXMgbmVlZCBubyBhZGRpdGlvbmFsIGNvbnRleHQuIEJ1dCAi XGQgbXl0YWJsZSIgaGFzIHRoZSBwb3RlbnRpYWwgdG8gcnVuIG92ZXIgYSBkb3plbiBTUUwgcXVl cmllcyEgVGhlIG5ldyBmb3JtYXQgbG9va3MgbGlrZSB0aGlzOgoKLyoqKioqKioqIFFVRVJZICoq KioqKioqKi8KLyogR2V0IGluZm9ybWF0aW9uIGFib3V0IHJvdy1sZXZlbCBwb2xpY2llcyAqLwpT RUxFQ1QgcG9sLnBvbG5hbWUsIHBvbC5wb2xwZXJtaXNzaXZlLAogIENBU0UgV0hFTiBwb2wucG9s cm9sZXMgPSAnezB9JyBUSEVOIE5VTEwgRUxTRSBwZ19jYXRhbG9nLmFycmF5X3RvX3N0cmluZyhh cnJheShzZWxlY3Qgcm9sbmFtZSBmcm9tIHBnX2NhdGFsb2cucGdfcm9sZXMgd2hlcmUgb2lkID0g YW55IChwb2wucG9scm9sZXMpIG9yZGVyIGJ5IDEpLCcsJykgRU5ELAogIHBnX2NhdGFsb2cucGdf Z2V0X2V4cHIocG9sLnBvbHF1YWwsIHBvbC5wb2xyZWxpZCksCiAgcGdfY2F0YWxvZy5wZ19nZXRf ZXhwcihwb2wucG9sd2l0aGNoZWNrLCBwb2wucG9scmVsaWQpLAogIENBU0UgcG9sLnBvbGNtZAog ICAgV0hFTiAncicgVEhFTiAnU0VMRUNUJwogICAgV0hFTiAnYScgVEhFTiAnSU5TRVJUJwogICAg V0hFTiAndycgVEhFTiAnVVBEQVRFJwogICAgV0hFTiAnZCcgVEhFTiAnREVMRVRFJwogICAgRU5E IEFTIGNtZApGUk9NIHBnX2NhdGFsb2cucGdfcG9saWN5IHBvbApXSEVSRSBwb2wucG9scmVsaWQg PSAnMTM0Mzg0JyBPUkRFUiBCWSAxOwovKioqKioqKioqKioqKioqKioqKioqKioqLwotLS0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCmluZGV4IDY4YjJlYTg4NzIuLjdmMjcyYjJhYzEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0x NTg2LDkgKzE1ODYsMTAgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2No ZW1hbmFtZSwKIAlpbml0UFFFeHBCdWZmZXIoJnRtcGJ1Zik7CiAKIAkvKiBHZXQgZ2VuZXJhbCB0 YWJsZSBpbmZvICovCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgXygiLyogR2V0IGdlbmVyYWwg dGFibGUgaW5mb3JtYXRpb24gKi9cbiIpKTsKIAlpZiAocHNldC5zdmVyc2lvbiA+PSAxMjAwMDAp CiAJewotCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAogCQkJCQkJICAiU0VMRUNUIGMucmVsY2hlY2tzLCBjLnJlbGtpbmQsIGMucmVsaGFzaW5kZXgs IGMucmVsaGFzcnVsZXMsICIKIAkJCQkJCSAgImMucmVsaGFzdHJpZ2dlcnMsIGMucmVscm93c2Vj dXJpdHksIGMucmVsZm9yY2Vyb3dzZWN1cml0eSwgIgogCQkJCQkJICAiZmFsc2UgQVMgcmVsaGFz b2lkcywgYy5yZWxpc3BhcnRpdGlvbiwgJXMsIGMucmVsdGFibGVzcGFjZSwgIgpAQCAtMTYwNiw3 ICsxNjA3LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFt ZSwKIAl9CiAJZWxzZSBpZiAocHNldC5zdmVyc2lvbiA+PSAxMDAwMDApCiAJewotCQlwcmludGZQ UUV4cEJ1ZmZlcigmYnVmLAorCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJICAiU0VM RUNUIGMucmVsY2hlY2tzLCBjLnJlbGtpbmQsIGMucmVsaGFzaW5kZXgsIGMucmVsaGFzcnVsZXMs ICIKIAkJCQkJCSAgImMucmVsaGFzdHJpZ2dlcnMsIGMucmVscm93c2VjdXJpdHksIGMucmVsZm9y Y2Vyb3dzZWN1cml0eSwgIgogCQkJCQkJICAiYy5yZWxoYXNvaWRzLCBjLnJlbGlzcGFydGl0aW9u LCAlcywgYy5yZWx0YWJsZXNwYWNlLCAiCkBAIC0xNjIzLDcgKzE2MjQsNyBAQCBkZXNjcmliZU9u ZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCX0KIAllbHNlIGlmIChwc2V0 LnN2ZXJzaW9uID49IDkwNTAwKQogCXsKLQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCSAgIlNFTEVDVCBjLnJlbGNoZWNrcywgYy5yZWxr aW5kLCBjLnJlbGhhc2luZGV4LCBjLnJlbGhhc3J1bGVzLCAiCiAJCQkJCQkgICJjLnJlbGhhc3Ry aWdnZXJzLCBjLnJlbHJvd3NlY3VyaXR5LCBjLnJlbGZvcmNlcm93c2VjdXJpdHksICIKIAkJCQkJ CSAgImMucmVsaGFzb2lkcywgZmFsc2UgYXMgcmVsaXNwYXJ0aXRpb24sICVzLCBjLnJlbHRhYmxl c3BhY2UsICIKQEAgLTE2NDAsNyArMTY0MSw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNv bnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJfQogCWVsc2UgaWYgKHBzZXQuc3ZlcnNpb24gPj0gOTA0 MDApCiAJewotCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQlhcHBlbmRQUUV4cEJ1ZmZlcigm YnVmLAogCQkJCQkJICAiU0VMRUNUIGMucmVsY2hlY2tzLCBjLnJlbGtpbmQsIGMucmVsaGFzaW5k ZXgsIGMucmVsaGFzcnVsZXMsICIKIAkJCQkJCSAgImMucmVsaGFzdHJpZ2dlcnMsIGZhbHNlLCBm YWxzZSwgYy5yZWxoYXNvaWRzLCAiCiAJCQkJCQkgICJmYWxzZSBhcyByZWxpc3BhcnRpdGlvbiwg JXMsIGMucmVsdGFibGVzcGFjZSwgIgpAQCAtMTY1Nyw3ICsxNjU4LDcgQEAgZGVzY3JpYmVPbmVU YWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAl9CiAJZWxzZQogCXsKLQkJcHJp bnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCSAg IlNFTEVDVCBjLnJlbGNoZWNrcywgYy5yZWxraW5kLCBjLnJlbGhhc2luZGV4LCBjLnJlbGhhc3J1 bGVzLCAiCiAJCQkJCQkgICJjLnJlbGhhc3RyaWdnZXJzLCBmYWxzZSwgZmFsc2UsIGMucmVsaGFz b2lkcywgIgogCQkJCQkJICAiZmFsc2UgYXMgcmVsaXNwYXJ0aXRpb24sICVzLCBjLnJlbHRhYmxl c3BhY2UsICIKQEAgLTE3MTgsOSArMTcxOSwxMCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhj b25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0 OwogCQljaGFyCSAgICpmb290ZXJzWzJdID0ge05VTEwsIE5VTEx9OwogCisJCXByaW50ZlBRRXhw QnVmZmVyKCZidWYsIF8oIi8qIEdldCBnZW5lcmFsIHNlcXVlbmNlIGluZm9ybWF0aW9uICovXG4i KSk7CiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKIAkJewotCQkJcHJpbnRmUFFFeHBC dWZmZXIoJmJ1ZiwKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJICAiU0VMRUNU IHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoc2VxdHlwaWQsIE5VTEwpIEFTIFwiJXNcIixcbiIKIAkJ CQkJCQkgICIgICAgICAgc2Vxc3RhcnQgQVMgXCIlc1wiLFxuIgogCQkJCQkJCSAgIiAgICAgICBz ZXFtaW4gQVMgXCIlc1wiLFxuIgpAQCAtMTc0NCw3ICsxNzQ2LDcgQEAgZGVzY3JpYmVPbmVUYWJs ZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJfQogCQllbHNlCiAJCXsKLQkJCXBy aW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJ CSAgIlNFTEVDVCAnYmlnaW50JyBBUyBcIiVzXCIsXG4iCiAJCQkJCQkJICAiICAgICAgIHN0YXJ0 X3ZhbHVlIEFTIFwiJXNcIixcbiIKIAkJCQkJCQkgICIgICAgICAgbWluX3ZhbHVlIEFTIFwiJXNc IixcbiIKQEAgLTE3NzEsNyArMTc3Myw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0 IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQlnb3RvIGVycm9yX3JldHVybjsKIAogCQkvKiBHZXQgdGhl IGNvbHVtbiB0aGF0IG93bnMgdGhpcyBzZXF1ZW5jZSAqLwotCQlwcmludGZQUUV4cEJ1ZmZlcigm YnVmLCAiU0VMRUNUIHBnX2NhdGFsb2cucXVvdGVfaWRlbnQobnNwbmFtZSkgfHwgJy4nIHx8Igor CQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCBfKCIvKiBHZXQgdGhlIGNvbHVtbiB0aGF0IG93bnMg dGhpcyBzZXF1ZW5jZSAqL1xuIikpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNU IHBnX2NhdGFsb2cucXVvdGVfaWRlbnQobnNwbmFtZSkgfHwgJy4nIHx8IgogCQkJCQkJICAiXG4g ICBwZ19jYXRhbG9nLnF1b3RlX2lkZW50KHJlbG5hbWUpIHx8ICcuJyB8fCIKIAkJCQkJCSAgIlxu ICAgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChhdHRuYW1lKSwiCiAJCQkJCQkgICJcbiAgIGQuZGVw dHlwZSIKQEAgLTE4NTAsNyArMTg1Myw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0 IGNoYXIgKnNjaGVtYW5hbWUsCiAJICogZHVwbGljYXRpdmUgdGVzdCBsb2dpYyBiZWxvdy4KIAkg Ki8KIAljb2xzID0gMDsKLQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIGEuYXR0bmFt ZSIpOworCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsIF8oIi8qIEdldCBpbmZvcm1hdGlvbiBhYm91 dCBlYWNoIGNvbHVtbiAqL1xuIikpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICJTRUxFQ1Qg YS5hdHRuYW1lIik7CiAJYXR0bmFtZV9jb2wgPSBjb2xzKys7CiAJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIixcbiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZShhLmF0dHR5cGlkLCBhLmF0dHR5 cG1vZCkiKTsKIAlhdHR0eXBlX2NvbCA9IGNvbHMrKzsKQEAgLTIxNTAsNyArMjE1NCw4IEBAIGRl c2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCS8qIEZvb3Rl ciBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aXRpb24gY2hpbGQgdGFibGUgKi8KIAkJUEdyZXN1bHQg ICAqcmVzdWx0OwogCi0JCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCXByaW50ZlBRRXhwQnVm ZmVyKCZidWYsIF8oIi8qIEdldCBwYXJ0aXRpb24gaW5mb3JtYXRpb24gZm9yIHRoaXMgdGFibGUg Ki9cbiIpKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCSAgIlNFTEVDVCBpbmhw YXJlbnQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsXG4iCiAJCQkJCQkgICIgIHBnX2NhdGFsb2cucGdf Z2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSxcbiAgIik7CiAKQEAgLTIyMDUsNyArMjIx MCw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJ CS8qIEZvb3RlciBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aXRpb25lZCB0YWJsZSAocGFydGl0aW9u aW5nIHBhcmVudCkgKi8KIAkJUEdyZXN1bHQgICAqcmVzdWx0OwogCi0JCXByaW50ZlBRRXhwQnVm ZmVyKCZidWYsCisJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsIF8oIi8qIEdldCB0aGUgcGFydGl0 aW9uIGtleSBmb3IgdGhpcyB0YWJsZSAqL1xuIikpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAogCQkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3BhcnRrZXlkZWYoJyVzJzo6cGdf Y2F0YWxvZy5vaWQpOyIsCiAJCQkJCQkgIG9pZCk7CiAJCXJlc3VsdCA9IFBTUUxleGVjKGJ1Zi5k YXRhKTsKQEAgLTIyMjcsNyArMjIzMyw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0 IGNoYXIgKnNjaGVtYW5hbWUsCiAJCS8qIEZvciBhIFRPQVNUIHRhYmxlLCBwcmludCBuYW1lIG9m IG93bmluZyB0YWJsZSAqLwogCQlQR3Jlc3VsdCAgICpyZXN1bHQ7CiAKLQkJcHJpbnRmUFFFeHBC dWZmZXIoJmJ1ZiwKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgXygiLyogRmluZCB3aGljaCB0 YWJsZSBvd25zIHRoaXMgVE9BU1QgdGFibGUgKi9cbiIpKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJCSAgIlNFTEVDVCBuLm5zcG5hbWUsIGMucmVsbmFtZVxuIgogCQkJCQkJICAi RlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMiCiAJCQkJCQkgICIgSk9JTiBwZ19jYXRhbG9nLnBn X25hbWVzcGFjZSBuIgpAQCAtMjI1NSw3ICsyMjYyLDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFp bHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJLyogRm9vdGVyIGluZm9ybWF0aW9uIGFib3V0 IGFuIGluZGV4ICovCiAJCVBHcmVzdWx0ICAgKnJlc3VsdDsKIAotCQlwcmludGZQUUV4cEJ1ZmZl cigmYnVmLAorCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCBfKCIvKiBHZXQgaW5mb3JtYXRpb24g YWJvdXQgdGhpcyBpbmRleCAqL1xuIikpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJ CQkJICAiU0VMRUNUIGkuaW5kaXN1bmlxdWUsIGkuaW5kaXNwcmltYXJ5LCBpLmluZGlzY2x1c3Rl cmVkLCAiCiAJCQkJCQkgICJpLmluZGlzdmFsaWQsXG4iCiAJCQkJCQkgICIgIChOT1QgaS5pbmRp bW1lZGlhdGUpIEFORCAiCkBAIC0yMzcyLDcgKzIzODAsOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkvKiBwcmludCBpbmRleGVzICovCiAJCWlm ICh0YWJsZWluZm8uaGFzaW5kZXgpCiAJCXsKLQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJ CQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCBfKCIvKiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgZWFj aCBpbmRleCAqL1xuIikpOworCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkgICJT RUxFQ1QgYzIucmVsbmFtZSwgaS5pbmRpc3ByaW1hcnksIGkuaW5kaXN1bmlxdWUsICIKIAkJCQkJ CQkgICJpLmluZGlzY2x1c3RlcmVkLCBpLmluZGlzdmFsaWQsICIKIAkJCQkJCQkgICJwZ19jYXRh bG9nLnBnX2dldF9pbmRleGRlZihpLmluZGV4cmVsaWQsIDAsIHRydWUpLFxuICAiCkBAIC0yNTEw LDYgKzI1MTksOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFu YW1lLAogCQlpZiAodGFibGVpbmZvLmhhc3RyaWdnZXJzIHx8CiAJCQl0YWJsZWluZm8ucmVsa2lu ZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCQl7CisJCQlwcmludGZQUUV4cEJ1ZmZl cigmYnVmLCBfKCIvKiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgZm9yZWlnbiBrZXkgY29uc3RyYWlu dHMgKi9cbiIpKTsKKwogCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTIwMDAwICYmCiAJCQkJKHRh YmxlaW5mby5pc3BhcnRpdGlvbiB8fCB0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJ VElPTkVEX1RBQkxFKSkKIAkJCXsKQEAgLTI1MTcsNyArMjUyOCw3IEBAIGRlc2NyaWJlT25lVGFi bGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJICogUHV0IHRoZSBjb25zdHJh aW50cyBkZWZpbmVkIGluIHRoaXMgdGFibGUgZmlyc3QsIGZvbGxvd2VkCiAJCQkJICogYnkgdGhl IGNvbnN0cmFpbnRzIGRlZmluZWQgaW4gYW5jZXN0b3IgcGFydGl0aW9uZWQgdGFibGVzLgogCQkJ CSAqLwotCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJCQkJICAiU0VMRUNUIGNvbnJlbGlkID0gJyVzJzo6cGdfY2F0YWxvZy5yZWdj bGFzcyBBUyBzYW1ldGFibGUsXG4iCiAJCQkJCQkJCSAgIiAgICAgICBjb25uYW1lLFxuIgogCQkJ CQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5wZ19nZXRfY29uc3RyYWludGRlZihvaWQsIHRydWUp IEFTIGNvbmRlZixcbiIKQEAgLTI1MzAsNyArMjU0MSw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRh aWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JCQkJcHJp bnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJ CQkgICJTRUxFQ1QgdHJ1ZSBhcyBzYW1ldGFibGUsIGNvbm5hbWUsXG4iCiAJCQkJCQkJCSAgIiAg cGdfY2F0YWxvZy5wZ19nZXRfY29uc3RyYWludGRlZihyLm9pZCwgdHJ1ZSkgYXMgY29uZGVmLFxu IgogCQkJCQkJCQkgICIgIGNvbnJlbGlkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzIEFTIG9udGFibGVc biIKQEAgLTI1ODQsOSArMjU5NSwxMCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBj aGFyICpzY2hlbWFuYW1lLAogCQlpZiAodGFibGVpbmZvLmhhc3RyaWdnZXJzIHx8CiAJCQl0YWJs ZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCQl7CisJCQlwcmlu dGZQUUV4cEJ1ZmZlcigmYnVmLCBfKCIvKiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgaW5jb21pbmcg Zm9yZWlnbiBrZXkgcmVmZXJlbmNlcyAqL1xuIikpOwogCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0g MTIwMDAwKQogCQkJewotCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJYXBwZW5kUFFF eHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkJICAiU0VMRUNUIGNvbm5hbWUsIGNvbnJlbGlkOjpwZ19j YXRhbG9nLnJlZ2NsYXNzIEFTIG9udGFibGUsXG4iCiAJCQkJCQkJCSAgIiAgICAgICBwZ19jYXRh bG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCwgdHJ1ZSkgQVMgY29uZGVmXG4iCiAJCQkJCQkJ CSAgIiAgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgY1xuIgpAQCAtMjU5OCw3ICsyNjEw LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJ CX0KIAkJCWVsc2UKIAkJCXsKLQkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJCSAgIlNFTEVDVCBjb25uYW1lLCBjb25yZWxpZDo6 cGdfY2F0YWxvZy5yZWdjbGFzcyBBUyBvbnRhYmxlLFxuIgogCQkJCQkJCQkgICIgICAgICAgcGdf Y2F0YWxvZy5wZ19nZXRfY29uc3RyYWludGRlZihvaWQsIHRydWUpIEFTIGNvbmRlZlxuIgogCQkJ CQkJCQkgICIgIEZST00gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50XG4iCkBAIC0yNjM2LDcgKzI2 NDgsOCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAog CQkvKiBwcmludCBhbnkgcm93LWxldmVsIHBvbGljaWVzICovCiAJCWlmIChwc2V0LnN2ZXJzaW9u ID49IDkwNTAwKQogCQl7Ci0JCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIHBvbC5w b2xuYW1lLCIpOworCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgXygiLyogR2V0IGluZm9ybWF0 aW9uIGFib3V0IHJvdy1sZXZlbCBwb2xpY2llcyAqL1xuIikpOworCQkJYXBwZW5kUFFFeHBCdWZm ZXIoJmJ1ZiwgIlNFTEVDVCBwb2wucG9sbmFtZSwiKTsKIAkJCWlmIChwc2V0LnN2ZXJzaW9uID49 IDEwMDAwMCkKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAogCQkJCQkJCQkJICIgcG9s LnBvbHBlcm1pc3NpdmUsXG4iKTsKQEAgLTI3MTYsOSArMjcyOSwxMCBAQCBkZXNjcmliZU9uZVRh YmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQl9CiAKIAkJLyogcHJpbnQgYW55 IGV4dGVuZGVkIHN0YXRpc3RpY3MgKi8KKwkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgXygiLyog R2V0IGluZm9ybWF0aW9uIGFib3V0IGV4dGVuZGVkIHN0YXRpc3RpY3MgKi9cbiIpKTsKIAkJaWYg KHBzZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQogCQl7Ci0JCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVm LAorCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkgICJTRUxFQ1Qgb2lkLCAiCiAJ CQkJCQkJICAic3R4cmVsaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsICIKIAkJCQkJCQkgICJzdHhu YW1lc3BhY2U6OnBnX2NhdGFsb2cucmVnbmFtZXNwYWNlOjpwZ19jYXRhbG9nLnRleHQgQVMgbnNw LCAiCkBAIC0yODE1LDcgKzI4MjksNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBj aGFyICpzY2hlbWFuYW1lLAogCQl9CiAJCWVsc2UgaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAw KQogCQl7Ci0JCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJCQkgICJTRUxFQ1Qgb2lkLCAiCiAJCQkJCQkJICAic3R4cmVsaWQ6OnBnX2Nh dGFsb2cucmVnY2xhc3MsICIKIAkJCQkJCQkgICJzdHhuYW1lc3BhY2U6OnBnX2NhdGFsb2cucmVn bmFtZXNwYWNlIEFTIG5zcCwgIgpAQCAtMjg5NCw3ICsyOTA4LDggQEAgZGVzY3JpYmVPbmVUYWJs ZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJLyogcHJpbnQgcnVsZXMgKi8KIAkJ aWYgKHRhYmxlaW5mby5oYXNydWxlcyAmJiB0YWJsZWluZm8ucmVsa2luZCAhPSBSRUxLSU5EX01B VFZJRVcpCiAJCXsKLQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQlwcmludGZQUUV4cEJ1 ZmZlcigmYnVmLCBfKCIvKiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBydWxlIGZvciB0aGlz IHRhYmxlICovXG4iKSk7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCSAgIlNF TEVDVCByLnJ1bGVuYW1lLCB0cmltKHRyYWlsaW5nICc7JyBmcm9tIHBnX2NhdGFsb2cucGdfZ2V0 X3J1bGVkZWYoci5vaWQsIHRydWUpKSwgIgogCQkJCQkJCSAgImV2X2VuYWJsZWRcbiIKIAkJCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcmV3cml0ZSByXG4iCkBAIC0yOTc3LDkgKzI5OTIsMTAg QEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJLyog cHJpbnQgYW55IHB1YmxpY2F0aW9ucyAqLwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxMDAwMDAp CiAJCXsKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsIF8oIi8qIEdldCBpbmZvcm1hdGlvbiBh Ym91dCBlYWNoIHB1YmxpY2F0aW9uIHVzaW5nIHRoaXMgdGFibGUgKi9cbiIpKTsKIAkJCWlmIChw c2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKIAkJCXsKLQkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVm LAorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1l XG4iCiAJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCiAJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4i CkBAIC0zMDExLDcgKzMwMjcsNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFy ICpzY2hlbWFuYW1lLAogCQkJfQogCQkJZWxzZQogCQkJewotCQkJCXByaW50ZlBRRXhwQnVmZmVy KCZidWYsCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkJICAiU0VMRUNUIHB1 Ym5hbWVcbiIKIAkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKIAkJCQkJCQkJICAiICAgICAsIE5V TExcbiIKQEAgLTMwNjEsNyArMzA3Nyw5IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0 IGNoYXIgKnNjaGVtYW5hbWUsCiAJCS8qIElmIHZlcmJvc2UsIHByaW50IE5PVCBOVUxMIGNvbnN0 cmFpbnRzICovCiAJCWlmICh2ZXJib3NlKQogCQl7Ci0JCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVm LAorCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgXygiLyogR2V0IGluZm9ybWF0aW9uIGFib3V0 IE5PVCBOVUxMIGNvbnN0cmFpbnRzICovXG4iKSk7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAorCQkJCQkJCSAgIi8qIEZpbmQgTk9UIE5VTEwgY29uc3RyYWludHMgKi9cbiIKIAkJCQkJCQkg ICJTRUxFQ1QgY28uY29ubmFtZSwgYXQuYXR0bmFtZSwgY28uY29ubm9pbmhlcml0LCBjby5jb25p c2xvY2FsLFxuIgogCQkJCQkJCSAgImNvLmNvbmluaGNvdW50IDw+IDBcbiIKIAkJCQkJCQkgICJG Uk9NIHBnX2NhdGFsb2cucGdfY29uc3RyYWludCBjbyBKT0lOXG4iCkBAIC0zMTMzLDcgKzMxNTEs OCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkv KiBwcmludCBydWxlcyAqLwogCQlpZiAodGFibGVpbmZvLmhhc3J1bGVzKQogCQl7Ci0JCQlwcmlu dGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgXygiLyogR2V0 IGluZm9ybWF0aW9uIGFib3V0IGVhY2ggcnVsZSBmb3IgdGhpcyB2aWV3ICovXG4iKSk7CisJCQlh cHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCSAgIlNFTEVDVCByLnJ1bGVuYW1lLCB0cmlt KHRyYWlsaW5nICc7JyBmcm9tIHBnX2NhdGFsb2cucGdfZ2V0X3J1bGVkZWYoci5vaWQsIHRydWUp KVxuIgogCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19yZXdyaXRlIHJcbiIKIAkJCQkJCQkg ICJXSEVSRSByLmV2X2NsYXNzID0gJyVzJyBBTkQgci5ydWxlbmFtZSAhPSAnX1JFVFVSTicgT1JE RVIgQlkgMTsiLApAQCAtMzE3MCw3ICszMTg5LDggQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMo Y29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJUEdyZXN1bHQgICAqcmVzdWx0OwogCQlpbnQJCQl0 dXBsZXM7CiAKLQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJcHJpbnRmUFFFeHBCdWZmZXIo JmJ1ZiwgXygiLyogR2V0IGluZm9ybWF0aW9uIGFib3V0IGVhY2ggdHJpZ2dlciBvbiB0aGlzIHRh YmxlICovXG4iKSk7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkgICJTRUxFQ1Qg dC50Z25hbWUsICIKIAkJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X3RyaWdnZXJkZWYodC5vaWQs IHRydWUpLCAiCiAJCQkJCQkgICJ0LnRnZW5hYmxlZCwgdC50Z2lzaW50ZXJuYWwsXG4iKTsKQEAg LTMzODksNiArMzQwOSw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNj aGVtYW5hbWUsCiAKIAkJLyogcHJpbnQgdGFibGVzIGluaGVyaXRlZCBmcm9tIChleGNsdWRlIHBh cnRpdGlvbmVkIHBhcmVudHMpICovCiAJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkg ICIvKiBGaW5kIHRhYmxlcyBpbmhlcml0ZWQgZnJvbSAqL1xuIgogCQkJCQkJICAiU0VMRUNUIGMu b2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzXG4iCiAJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdf Y2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpXG4iCiAJCQkJCQkgICJXSEVSRSBjLm9p ZCA9IGkuaW5ocGFyZW50IEFORCBpLmluaHJlbGlkID0gJyVzJ1xuIgpAQCAtMzQyNSw4ICszNDQ2 LDkgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJ fQogCiAJCS8qIHByaW50IGNoaWxkIHRhYmxlcyAod2l0aCBhZGRpdGlvbmFsIGluZm8gaWYgcGFy dGl0aW9ucykgKi8KKwkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgXygiLyogR2V0IGluZm9ybWF0 aW9uIGFib3V0IGNoaWxkIHRhYmxlcyAqL1xuIikpOwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx NDAwMDApCi0JCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJCQkgICJTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIGMucmVs a2luZCwiCiAJCQkJCQkJICAiIGluaGRldGFjaHBlbmRpbmcsIgogCQkJCQkJCSAgIiBwZ19jYXRh bG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZClcbiIKQEAgLTM0MzYsNyArMzQ1 OCw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJ CQkJCQkJICAiIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7IiwK IAkJCQkJCQkgIG9pZCk7CiAJCWVsc2UgaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQotCQkJ cHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJ CQkJICAiU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtpbmQsIgogCQkJ CQkJCSAgIiBmYWxzZSBBUyBpbmhkZXRhY2hwZW5kaW5nLCIKIAkJCQkJCQkgICIgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpXG4iCkBAIC0zNDQ2LDcgKzM0Njgs NyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJ CQkJCSAgIiBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzczo6cGdfY2F0YWxvZy50ZXh0OyIsCiAJ CQkJCQkJICBvaWQpOwogCQllbHNlCi0JCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkgICJTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cu cmVnY2xhc3MsIGMucmVsa2luZCwiCiAJCQkJCQkJICAiIGZhbHNlIEFTIGluaGRldGFjaHBlbmRp bmcsIE5VTExcbiIKIAkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0 YWxvZy5wZ19pbmhlcml0cyBpXG4iCi0tIAoyLjM5LjMgKEFwcGxlIEdpdC0xNDYpCgo= --000000000000567d9f06142f1586--