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 1vbeIg-009t7q-0N for pgsql-hackers@arkaria.postgresql.org; Fri, 02 Jan 2026 12:30:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vbeIf-00A0u4-0G for pgsql-hackers@arkaria.postgresql.org; Fri, 02 Jan 2026 12:30:37 +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.96) (envelope-from ) id 1vbeIe-00A0tu-1y for pgsql-hackers@lists.postgresql.org; Fri, 02 Jan 2026 12:30:37 +0000 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vbeIc-00455B-1q for pgsql-hackers@lists.postgresql.org; Fri, 02 Jan 2026 12:30:37 +0000 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-7fc0c1d45a4so10702245b3a.0 for ; Fri, 02 Jan 2026 04:30:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767357032; x=1767961832; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=JrO2YXQCpqKr1g8U47+5iNuO/6u99Gi+Vnq6sOTDp7Q=; b=Bb7vEXA/rVmBn9WqF9AhcHd1jWCmbZRUHEfKDdQZraik+XMlGfgLzT9hD5CXhlmcet QlBQ+4zjLQ2TboJOhQTeCyeRbMWOncMSRWWhQ+p5BxD7bFyJoe6VC83wsQKeVOVTpiWD hV/iuyfDKBeT0ZLdnamKV4+DnYfRASO30T+HFkgmdX7KTPTdq9T4sRoH0JAvv89/BMYj UE4+Tf+I+kggGhrh1Kl9amQdtR3OOQ+J/X2G3NEJvYtAbPnU7G2L7qZ6dlYoytDx6ZtZ 3cGmO9V3XUQjrjWtbQ+B9r+sHBPNUekzi+vnwDb+X5z4Xo9If/NrKJZMfhfVg6OgnlcS W7mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767357032; x=1767961832; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=JrO2YXQCpqKr1g8U47+5iNuO/6u99Gi+Vnq6sOTDp7Q=; b=wKMkMNwVPEnw64sDgL4/t5AhA0LTlbe3kPZQAHJ+GGkAwkJBVrv55MLgFpQ3gssOxT 1JZ1ZvqDImITOu5mimQlNJEMj8YGUtckialmgBhIooNkAW7ASzdGX3vXjeTTQ02+VVx9 5uGkv+x1PpZLRm+B/m2Ban2jkQldg1ZWlbX/4TDIb5C09M727mWFRzenvSNKcrjtshay 4LzG41Xz0PkYhqgt01iz//+2BXrZ8SyINCHwieRUGXgPz2N4GtSNqWgA9UBB67Kqfskd c9LsvXMy0bi4QpMVMYBf6ebE9zsulAXnnc9BB3TIMwpTO/WpQmBZm2nvRtWvYrxEZwFo 9Gdg== X-Forwarded-Encrypted: i=1; AJvYcCWzyV/BxrlJJKd16AlSPqGvuxPv3Md/QRWjiY6paYjTHSll3PIOMeF95bt/JZJAD+Y5L7u2ic1a5BgNO2Ib@lists.postgresql.org X-Gm-Message-State: AOJu0YxdzZVUOpkpiqE95PHatjDOuy3O14ODc1oeLBirY3mIAxwErANR bYJyDaX8bKj+0E2p8y8ZXK1sVFnFVhI79nWwC4ikW3vN/ePt0j9TzmE32b39ogL5tRTpRog5fw1 7I2oUix+UMBNWWDcTl8euwB4GS+pOVtQ= X-Gm-Gg: AY/fxX6aQNHoAco6iOU/+EjWJqfm9WneXsWprbSQ0WOifY7icAWv8+DWaGATyOxiHqw nLpUSKvrgzxMzam7SgHvqistkIMvI6a8S4q3S1DCc5oqxLOOAdFk/zeEeig4oJsPcvW7zjTZoyK n+VRgdH3eKFWhCJWaPPS89tx96ECpGK57N8JCwgrOHb9Wos9el8BqNFB/8ujsMPTSm+aZdtGHKi G2sI0PGtsOS6/ByulnGfO9VYDBJWgqLK5nH8sB1UDimmIBmao5MoY3yOjbyg2X+Yi7Sz38KLg== X-Google-Smtp-Source: AGHT+IH9oi7qhzMTUaRfLXWUNibeRCFWO9gLR1pSapRfmgt0muJVWscyh7fxtN5yAsWS7f2KaQY++2fDTV3jurdOU2o= X-Received: by 2002:a05:6a20:12c8:b0:351:2c6e:6246 with SMTP id adf61e73a8af0-376aa4ea2dcmr36406190637.56.1767357031948; Fri, 02 Jan 2026 04:30:31 -0800 (PST) MIME-Version: 1.0 References: <731ADE6F-01C5-4996-BAEE-5851DFC3F502@gmail.com> In-Reply-To: From: Amul Sul Date: Fri, 2 Jan 2026 17:59:54 +0530 X-Gm-Features: AQt7F2q4KklTFCI-wlm4MFskhbcg5xcUOcKrccnF4nopm4HTJ0bo8vQ-iRA9GMw Message-ID: Subject: Re: pg_waldump: support decoding of WAL inside tarfile To: Chao Li Cc: Jakub Wartak , Robert Haas , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000150811064766e0a2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000150811064766e0a2 Content-Type: text/plain; charset="UTF-8" Attached is the rebased version, includes some code comment improvements. Regards, Amul --000000000000150811064766e0a2 Content-Type: application/octet-stream; name="v10-0001-Refactor-pg_waldump-Move-some-declarations-to-ne.patch" Content-Disposition: attachment; filename="v10-0001-Refactor-pg_waldump-Move-some-declarations-to-ne.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjwuk5su0 RnJvbSA2ZTBmMzMwYjg4ZWIwMjdjMzZiMTI3MmIwYmI3ZWNjYjFjNTBlMzlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjQgSnVuIDIwMjUgMTE6MzM6MjAgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxMCAxLzhdIFJl ZmFjdG9yOiBwZ193YWxkdW1wOiBNb3ZlIHNvbWUgZGVjbGFyYXRpb25zIHRvIG5ldwogcGdfd2Fs ZHVtcC5oCgpUaGlzIGNoYW5nZSBwcmVwYXJlcyBmb3IgYSBzZWNvbmQgc291cmNlIGZpbGUgaW4g dGhpcyBkaXJlY3RvcnkgdG8Kc3VwcG9ydCByZWFkaW5nIFdBTCBmcm9tIHRhciBmaWxlcy4gQ29t bW9uIHN0cnVjdHVyZXMsIGRlY2xhcmF0aW9ucywKYW5kIGZ1bmN0aW9ucyBhcmUgYmVpbmcgZXhw b3J0ZWQgdGhyb3VnaCB0aGlzIGluY2x1ZGUgZmlsZSBzbwp0aGV5IGNhbiBiZSB1c2VkIGluIGJv dGggZmlsZXMuCi0tLQogc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyB8IDEyICsrKy0t LS0tLS0tLQogc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaCB8IDI3ICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCA5IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxk dW1wLmgKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIGIvc3Jj L2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwppbmRleCBhYWU2NTU5NjZlZi4uMGEwZTliN2Nh YWYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKKysrIGIvc3Jj L2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg ImNvbW1vbi9sb2dnaW5nLmgiCiAjaW5jbHVkZSAiY29tbW9uL3JlbHBhdGguaCIKICNpbmNsdWRl ICJnZXRvcHRfbG9uZy5oIgorI2luY2x1ZGUgInBnX3dhbGR1bXAuaCIKICNpbmNsdWRlICJybWdy ZGVzYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmcGFnZS5oIgogCkBAIC0zNywyMSArMzgsMTQg QEAKICAqIGdpdmUgYSB0aG91Z2h0IGFib3V0IGRvaW5nIHRoZSBzYW1lIGluIHBnX3dhbGluc3Bl Y3QgY29udHJpYiBtb2R1bGUgYXMgd2VsbC4KICAqLwogCitpbnQJCQlXYWxTZWdTejsKKwogc3Rh dGljIGNvbnN0IGNoYXIgKnByb2duYW1lOwogCi1zdGF0aWMgaW50CVdhbFNlZ1N6Owogc3RhdGlj IHZvbGF0aWxlIHNpZ19hdG9taWNfdCB0aW1lX3RvX3N0b3AgPSBmYWxzZTsKIAogc3RhdGljIGNv bnN0IFJlbEZpbGVMb2NhdG9yIGVtcHR5UmVsRmlsZUxvY2F0b3IgPSB7MCwgMCwgMH07CiAKLXR5 cGVkZWYgc3RydWN0IFhMb2dEdW1wUHJpdmF0ZQotewotCVRpbWVMaW5lSUQJdGltZWxpbmU7Ci0J WExvZ1JlY1B0cglzdGFydHB0cjsKLQlYTG9nUmVjUHRyCWVuZHB0cjsKLQlib29sCQllbmRwdHJf cmVhY2hlZDsKLX0gWExvZ0R1bXBQcml2YXRlOwotCiB0eXBlZGVmIHN0cnVjdCBYTG9nRHVtcENv bmZpZwogewogCS8qIGRpc3BsYXkgb3B0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193 YWxkdW1wL3BnX3dhbGR1bXAuaCBiL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyNmQ1MjlmOWQ2Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaApAQCAtMCwwICsxLDI3 IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ193YWxkdW1wLmggLSBkZWNvZGUgYW5k IGRpc3BsYXkgV0FMCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkJICBzcmMvYmlu L3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRl ZiBQR19XQUxEVU1QX0gKKyNkZWZpbmUgUEdfV0FMRFVNUF9ICisKKyNpbmNsdWRlICJhY2Nlc3Mv eGxvZ2RlZnMuaCIKKworZXh0ZXJuIGludAlXYWxTZWdTejsKKworLyogQ29udGFpbnMgdGhlIG5l Y2Vzc2FyeSBpbmZvcm1hdGlvbiB0byBkcml2ZSBXQUwgZGVjb2RpbmcgKi8KK3R5cGVkZWYgc3Ry dWN0IFhMb2dEdW1wUHJpdmF0ZQoreworCVRpbWVMaW5lSUQJdGltZWxpbmU7CisJWExvZ1JlY1B0 cglzdGFydHB0cjsKKwlYTG9nUmVjUHRyCWVuZHB0cjsKKwlib29sCQllbmRwdHJfcmVhY2hlZDsK K30gWExvZ0R1bXBQcml2YXRlOworCisjZW5kaWYJCQkJCQkJLyogZW5kIG9mIFBHX1dBTERVTVBf SCAqLwotLSAKMi40Ny4xCgo= --000000000000150811064766e0a2 Content-Type: application/octet-stream; name="v10-0002-Refactor-pg_waldump-Separate-logic-used-to-calcu.patch" Content-Disposition: attachment; filename="v10-0002-Refactor-pg_waldump-Separate-logic-used-to-calcu.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjwuk9zz1 RnJvbSBjZDRhZGYyMTA1MDI4YTQ0NTI3ZmUzZmJiZWE2NTE1M2RlOGQ4YTRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMjYgSnVuIDIwMjUgMTE6NDI6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxMCAyLzhdIFJl ZmFjdG9yOiBwZ193YWxkdW1wOiBTZXBhcmF0ZSBsb2dpYyB1c2VkIHRvCiBjYWxjdWxhdGUgdGhl IHJlcXVpcmVkIHJlYWQgc2l6ZS4KClRoaXMgcmVmYWN0b3JpbmcgcHJlcGFyZXMgdGhlIGNvZGVi YXNlIGZvciBhbiB1cGNvbWluZyBwYXRjaCB0aGF0IHdpbGwKc3VwcG9ydCByZWFkaW5nIFdBTCBm cm9tIHRhciBmaWxlcy4gVGhlIGxvZ2ljIGZvciBjYWxjdWxhdGluZyB0aGUKcmVxdWlyZWQgcmVh ZCBzaXplIGhhcyBiZWVuIHVwZGF0ZWQgdG8gaGFuZGxlIGJvdGggbm9ybWFsIFdBTCBmaWxlcwph bmQgV0FMIGZpbGVzIGxvY2F0ZWQgaW5zaWRlIGEgdGFyIGFyY2hpdmUuCi0tLQogc3JjL2Jpbi9w Z193YWxkdW1wL3BnX3dhbGR1bXAuYyB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMgYi9zcmMvYmluL3Bn X3dhbGR1bXAvcGdfd2FsZHVtcC5jCmluZGV4IDBhMGU5YjdjYWFmLi5hMzNmYzI4YjlkNSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYworKysgYi9zcmMvYmluL3Bn X3dhbGR1bXAvcGdfd2FsZHVtcC5jCkBAIC0zMjcsNiArMzI3LDM1IEBAIGlkZW50aWZ5X3Rhcmdl dF9kaXJlY3RvcnkoY2hhciAqZGlyZWN0b3J5LCBjaGFyICpmbmFtZSkKIAlyZXR1cm4gTlVMTDsJ CQkJLyogbm90IHJlYWNoZWQgKi8KIH0KIAorLyoKKyAqIFJldHVybnMgdGhlIHNpemUgaW4gYnl0 ZXMgb2YgdGhlIGRhdGEgdG8gYmUgcmVhZC4gUmV0dXJucyAtMSBpZiB0aGUgZW5kCisgKiBwb2lu dCBoYXMgYWxyZWFkeSBiZWVuIHJlYWNoZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50CityZXF1 aXJlZF9yZWFkX2xlbihYTG9nRHVtcFByaXZhdGUgKnByaXZhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0 UGFnZVB0ciwKKwkJCQkgIGludCByZXFMZW4pCit7CisJaW50CQkJY291bnQgPSBYTE9HX0JMQ0tT WjsKKworCWlmICh1bmxpa2VseShwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCkpCisJCXJldHVybiAt MTsKKworCWlmIChYTG9nUmVjUHRySXNWYWxpZChwcml2YXRlLT5lbmRwdHIpKQorCXsKKwkJaWYg KHRhcmdldFBhZ2VQdHIgKyBYTE9HX0JMQ0tTWiA8PSBwcml2YXRlLT5lbmRwdHIpCisJCQljb3Vu dCA9IFhMT0dfQkxDS1NaOworCQllbHNlIGlmICh0YXJnZXRQYWdlUHRyICsgcmVxTGVuIDw9IHBy aXZhdGUtPmVuZHB0cikKKwkJCWNvdW50ID0gcHJpdmF0ZS0+ZW5kcHRyIC0gdGFyZ2V0UGFnZVB0 cjsKKwkJZWxzZQorCQl7CisJCQlwcml2YXRlLT5lbmRwdHJfcmVhY2hlZCA9IHRydWU7CisJCQly ZXR1cm4gLTE7CisJCX0KKwl9CisKKwlyZXR1cm4gY291bnQ7Cit9CisKIC8qIHBnX3dhbGR1bXAn cyBYTG9nUmVhZGVyUm91dGluZS0+c2VnbWVudF9vcGVuIGNhbGxiYWNrICovCiBzdGF0aWMgdm9p ZAogV0FMRHVtcE9wZW5TZWdtZW50KFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dTZWdObyBu ZXh0U2VnTm8sCkBAIC0zODQsMjEgKzQxMywxMiBAQCBXQUxEdW1wUmVhZFBhZ2UoWExvZ1JlYWRl clN0YXRlICpzdGF0ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxTGVuLAogCQkJ CVhMb2dSZWNQdHIgdGFyZ2V0UHRyLCBjaGFyICpyZWFkQnVmZikKIHsKIAlYTG9nRHVtcFByaXZh dGUgKnByaXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwotCWludAkJCWNvdW50ID0gWExPR19C TENLU1o7CisJaW50CQkJY291bnQgPSByZXF1aXJlZF9yZWFkX2xlbihwcml2YXRlLCB0YXJnZXRQ YWdlUHRyLCByZXFMZW4pOwogCVdBTFJlYWRFcnJvciBlcnJpbmZvOwogCi0JaWYgKFhMb2dSZWNQ dHJJc1ZhbGlkKHByaXZhdGUtPmVuZHB0cikpCi0JewotCQlpZiAodGFyZ2V0UGFnZVB0ciArIFhM T0dfQkxDS1NaIDw9IHByaXZhdGUtPmVuZHB0cikKLQkJCWNvdW50ID0gWExPR19CTENLU1o7Ci0J CWVsc2UgaWYgKHRhcmdldFBhZ2VQdHIgKyByZXFMZW4gPD0gcHJpdmF0ZS0+ZW5kcHRyKQotCQkJ Y291bnQgPSBwcml2YXRlLT5lbmRwdHIgLSB0YXJnZXRQYWdlUHRyOwotCQllbHNlCi0JCXsKLQkJ CXByaXZhdGUtPmVuZHB0cl9yZWFjaGVkID0gdHJ1ZTsKLQkJCXJldHVybiAtMTsKLQkJfQotCX0K KwkvKiBCYWlsIG91dCBpZiB0aGUgY291bnQgdG8gYmUgcmVhZCBpcyBub3QgdmFsaWQgKi8KKwlp ZiAoY291bnQgPCAwKQorCQlyZXR1cm4gLTE7CiAKIAlpZiAoIVdBTFJlYWQoc3RhdGUsIHJlYWRC dWZmLCB0YXJnZXRQYWdlUHRyLCBjb3VudCwgcHJpdmF0ZS0+dGltZWxpbmUsCiAJCQkJICZlcnJp bmZvKSkKLS0gCjIuNDcuMQoK --000000000000150811064766e0a2 Content-Type: application/octet-stream; name="v10-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Disposition: attachment; filename="v10-0003-Refactor-pg_waldump-Restructure-TAP-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjwukfc52 RnJvbSBmOTExZDBmZjM0YmMyYzJlMTJmYjA4NDk3ODVkMmI1ODY0YzczNTk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjUgTm92IDIwMjUgMTY6MTI6MTEgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxMCAzLzhdIFJl ZmFjdG9yOiBwZ193YWxkdW1wOiBSZXN0cnVjdHVyZSBUQVAgdGVzdHMuCgpSZXN0cnVjdHVyZWQg c29tZSB0ZXN0cyB0byBydW4gaW5zaWRlIGEgbG9vcCwgZmFjaWxpdGF0aW5nIHRoZWlyCnJlLWV4 ZWN1dGlvbiBmb3IgZGVjb2RpbmcgV0FMIGZyb20gdGFyIGFyY2hpdmVzLgoKPT0gTk9URSA9PQog IFRoaXMgaXMgbm90IGludGVuZGVkIHRvIGJlIGNvbW1pdHRlZCBzZXBhcmF0ZWx5LiBJdCBjYW4g YmUgbWVyZ2VkCiAgd2l0aCB0aGUgbmV4dCBwYXRjaCwgd2hpY2ggaXMgdGhlIG1haW4gcGF0Y2gg aW1wbGVtZW50aW5nIHRoaXMKICBmZWF0dXJlLgotLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC90LzAw MV9iYXNpYy5wbCB8IDEyMyArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8w MDFfYmFzaWMucGwKaW5kZXggNWRiNWQyMDEzNmYuLjMyODhmYWRjZjQ4IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1w L3QvMDAxX2Jhc2ljLnBsCkBAIC0xOTgsMjggKzE5OCw2IEBAIGNvbW1hbmRfbGlrZSgKIAldLAog CXFyLy4vLAogCSdydW5zIHdpdGggc3RhcnQgYW5kIGVuZCBzZWdtZW50IHNwZWNpZmllZCcpOwot Y29tbWFuZF9mYWlsc19saWtlKAotCVsgJ3BnX3dhbGR1bXAnLCAnLS1wYXRoJyA9PiAkbm9kZS0+ ZGF0YV9kaXIgXSwKLQlxci9lcnJvcjogbm8gc3RhcnQgV0FMIGxvY2F0aW9uIGdpdmVuLywKLQkn cGF0aCBvcHRpb24gcmVxdWlyZXMgc3RhcnQgbG9jYXRpb24nKTsKLWNvbW1hbmRfbGlrZSgKLQlb Ci0JCSdwZ193YWxkdW1wJywKLQkJJy0tcGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAotCQknLS1z dGFydCcgPT4gJHN0YXJ0X2xzbiwKLQkJJy0tZW5kJyA9PiAkZW5kX2xzbiwKLQldLAotCXFyLy4v LAotCSdydW5zIHdpdGggcGF0aCBvcHRpb24gYW5kIHN0YXJ0IGFuZCBlbmQgbG9jYXRpb25zJyk7 Ci1jb21tYW5kX2ZhaWxzX2xpa2UoCi0JWwotCQkncGdfd2FsZHVtcCcsCi0JCSctLXBhdGgnID0+ ICRub2RlLT5kYXRhX2RpciwKLQkJJy0tc3RhcnQnID0+ICRzdGFydF9sc24sCi0JXSwKLQlxci9l cnJvcjogZXJyb3IgaW4gV0FMIHJlY29yZCBhdC8sCi0JJ2ZhbGxpbmcgb2ZmIHRoZSBlbmQgb2Yg dGhlIFdBTCByZXN1bHRzIGluIGFuIGVycm9yJyk7Ci0KIGNvbW1hbmRfbGlrZSgKIAlbCiAJCSdw Z193YWxkdW1wJywgJy0tcXVpZXQnLApAQCAtMjI3LDE1ICsyMDUsNiBAQCBjb21tYW5kX2xpa2Uo CiAJXSwKIAlxci9eJC8sCiAJJ25vIG91dHB1dCB3aXRoIC0tcXVpZXQgb3B0aW9uJyk7Ci1jb21t YW5kX2ZhaWxzX2xpa2UoCi0JWwotCQkncGdfd2FsZHVtcCcsICctLXF1aWV0JywKLQkJJy0tcGF0 aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAotCQknLS1zdGFydCcgPT4gJHN0YXJ0X2xzbgotCV0sCi0J cXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQgYXQvLAotCSdlcnJvcnMgYXJlIHNob3duIHdp dGggLS1xdWlldCcpOwotCiAKICMgVGVzdCBmb3I6IERpc3BsYXkgYSBtZXNzYWdlIHRoYXQgd2Un cmUgc2tpcHBpbmcgZGF0YSBpZiBgZnJvbWAKICMgd2Fzbid0IGEgcG9pbnRlciB0byB0aGUgc3Rh cnQgb2YgYSByZWNvcmQuCkBAIC0yNzIsNyArMjQxLDYgQEAgc3ViIHRlc3RfcGdfd2FsZHVtcAog CiAJbXkgJHJlc3VsdCA9IElQQzo6UnVuOjpydW4gWwogCQkncGdfd2FsZHVtcCcsCi0JCSctLXBh dGgnID0+ICRub2RlLT5kYXRhX2RpciwKIAkJJy0tc3RhcnQnID0+ICRzdGFydF9sc24sCiAJCSct LWVuZCcgPT4gJGVuZF9sc24sCiAJCUBvcHRzCkBAIC0yODgsMzggKzI1Niw4MSBAQCBzdWIgdGVz dF9wZ193YWxkdW1wCiAKIG15IEBsaW5lczsKIAotQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wOwot aXMoZ3JlcCghL15ybWdyOiBcdy8sIEBsaW5lcyksIDAsICdhbGwgb3V0cHV0IGxpbmVzIGFyZSBy bWdyIGxpbmVzJyk7CitteSBAc2NlbmFyaW9zID0gKAorCXsKKwkJJ3BhdGgnID0+ICRub2RlLT5k YXRhX2RpcgorCX0pOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tbGltaXQnID0+IDYp OwotaXMoQGxpbmVzLCA2LCAnbGltaXQgb3B0aW9uIG9ic2VydmVkJyk7Citmb3IgbXkgJHNjZW5h cmlvIChAc2NlbmFyaW9zKQoreworCW15ICRwYXRoID0gJHNjZW5hcmlvLT57J3BhdGgnfTsKIAot QGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLWZ1bGxwYWdlJyk7Ci1pcyhncmVwKCEvXnJtZ3I6 LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJlIEZQVycpOworCVNL SVA6CisJeworCQljb21tYW5kX2ZhaWxzX2xpa2UoCisJCQlbICdwZ193YWxkdW1wJywgJy0tcGF0 aCcgPT4gJHBhdGggXSwKKwkJCXFyL2Vycm9yOiBubyBzdGFydCBXQUwgbG9jYXRpb24gZ2l2ZW4v LAorCQkJJ3BhdGggb3B0aW9uIHJlcXVpcmVzIHN0YXJ0IGxvY2F0aW9uJyk7CisJCWNvbW1hbmRf bGlrZSgKKwkJCVsKKwkJCQkncGdfd2FsZHVtcCcsCisJCQkJJy0tcGF0aCcgPT4gJHBhdGgsCisJ CQkJJy0tc3RhcnQnID0+ICRzdGFydF9sc24sCisJCQkJJy0tZW5kJyA9PiAkZW5kX2xzbiwKKwkJ CV0sCisJCQlxci8uLywKKwkJCSdydW5zIHdpdGggcGF0aCBvcHRpb24gYW5kIHN0YXJ0IGFuZCBl bmQgbG9jYXRpb25zJyk7CisJCWNvbW1hbmRfZmFpbHNfbGlrZSgKKwkJCVsKKwkJCQkncGdfd2Fs ZHVtcCcsCisJCQkJJy0tcGF0aCcgPT4gJHBhdGgsCisJCQkJJy0tc3RhcnQnID0+ICRzdGFydF9s c24sCisJCQldLAorCQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQgYXQvLAorCQkJJ2Zh bGxpbmcgb2ZmIHRoZSBlbmQgb2YgdGhlIFdBTCByZXN1bHRzIGluIGFuIGVycm9yJyk7CiAKLUBs aW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1zdGF0cycpOwotbGlrZSgkbGluZXNbMF0sIHFyL1dB TCBzdGF0aXN0aWNzLywgInN0YXRpc3RpY3Mgb24gc3Rkb3V0Iik7Ci1pcyhncmVwKC9ecm1ncjov LCBAbGluZXMpLCAwLCAnbm8gcm1nciBsaW5lcyBvdXRwdXQnKTsKKwkJY29tbWFuZF9mYWlsc19s aWtlKAorCQkJWworCQkJCSdwZ193YWxkdW1wJywgJy0tcXVpZXQnLAorCQkJCSctLXBhdGgnID0+ ICRwYXRoLAorCQkJCSctLXN0YXJ0JyA9PiAkc3RhcnRfbHNuCisJCQldLAorCQkJcXIvZXJyb3I6 IGVycm9yIGluIFdBTCByZWNvcmQgYXQvLAorCQkJJ2Vycm9ycyBhcmUgc2hvd24gd2l0aCAtLXF1 aWV0Jyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1zdGF0cz1yZWNvcmQnKTsKLWxp a2UoJGxpbmVzWzBdLCBxci9XQUwgc3RhdGlzdGljcy8sICJzdGF0aXN0aWNzIG9uIHN0ZG91dCIp OwotaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7 CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCk7CisJCWlzKGdy ZXAoIS9ecm1ncjogXHcvLCBAbGluZXMpLCAwLCAnYWxsIG91dHB1dCBsaW5lcyBhcmUgcm1nciBs aW5lcycpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcm1ncicgPT4gJ0J0cmVlJyk7 Ci1pcyhncmVwKCEvXnJtZ3I6IEJ0cmVlLywgQGxpbmVzKSwgMCwgJ29ubHkgQnRyZWUgbGluZXMn KTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1saW1p dCcgPT4gNik7CisJCWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9wdGlvbiBvYnNlcnZlZCcpOwogCi1A bGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tZm9yaycgPT4gJ2luaXQnKTsKLWlzKGdyZXAoIS9m b3JrIGluaXQvLCBAbGluZXMpLCAwLCAnb25seSBpbml0IGZvcmsgbGluZXMnKTsKKwkJQGxpbmVz ID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1mdWxscGFnZScpOworCQlp cyhncmVwKCEvXnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRwdXQgbGluZXMg YXJlIEZQVycpOwogCi1AbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoCi0JJy0tcmVsYXRpb24nID0+ ICIkZGVmYXVsdF90c19vaWQvJHBvc3RncmVzX2RiX29pZC8kcmVsX3QxX29pZCIpOwotaXMoZ3Jl cCghL3JlbCAkZGVmYXVsdF90c19vaWRcLyRwb3N0Z3Jlc19kYl9vaWRcLyRyZWxfdDFfb2lkLywg QGxpbmVzKSwKLQkwLCAnb25seSBsaW5lcyBmb3Igc2VsZWN0ZWQgcmVsYXRpb24nKTsKKwkJQGxp bmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1zdGF0cycpOworCQls aWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0YXRpc3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQi KTsKKwkJaXMoZ3JlcCgvXnJtZ3I6LywgQGxpbmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0 Jyk7CiAKLUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgKLQknLS1yZWxhdGlvbicgPT4gIiRkZWZh dWx0X3RzX29pZC8kcG9zdGdyZXNfZGJfb2lkLyRyZWxfaTFhX29pZCIsCi0JJy0tYmxvY2snID0+ IDEpOwotaXMoZ3JlcCghL1xiYmxrIDFcYi8sIEBsaW5lcyksIDAsICdvbmx5IGxpbmVzIGZvciBz ZWxlY3RlZCBibG9jaycpOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4g JHBhdGgsICctLXN0YXRzPXJlY29yZCcpOworCQlsaWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0YXRp c3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQiKTsKKwkJaXMoZ3JlcCgvXnJtZ3I6LywgQGxp bmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKKwkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1ybWdyJyA9PiAnQnRyZWUnKTsKKwkJaXMoZ3Jl cCghL15ybWdyOiBCdHJlZS8sIEBsaW5lcyksIDAsICdvbmx5IEJ0cmVlIGxpbmVzJyk7CisKKwkJ QGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1mb3JrJyA9PiAn aW5pdCcpOworCQlpcyhncmVwKCEvZm9yayBpbml0LywgQGxpbmVzKSwgMCwgJ29ubHkgaW5pdCBm b3JrIGxpbmVzJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBhdGgnID0+ICRw YXRoLAorCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBvc3RncmVzX2RiX29p ZC8kcmVsX3QxX29pZCIpOworCQlpcyhncmVwKCEvcmVsICRkZWZhdWx0X3RzX29pZFwvJHBvc3Rn cmVzX2RiX29pZFwvJHJlbF90MV9vaWQvLCBAbGluZXMpLAorCQkJMCwgJ29ubHkgbGluZXMgZm9y IHNlbGVjdGVkIHJlbGF0aW9uJyk7CisKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCctLXBh dGgnID0+ICRwYXRoLAorCQkJJy0tcmVsYXRpb24nID0+ICIkZGVmYXVsdF90c19vaWQvJHBvc3Rn cmVzX2RiX29pZC8kcmVsX2kxYV9vaWQiLAorCQkJJy0tYmxvY2snID0+IDEpOworCQlpcyhncmVw KCEvXGJibGsgMVxiLywgQGxpbmVzKSwgMCwgJ29ubHkgbGluZXMgZm9yIHNlbGVjdGVkIGJsb2Nr Jyk7CisJfQorfQogCiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNDcuMQoK --000000000000150811064766e0a2 Content-Type: application/octet-stream; name="v10-0004-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Disposition: attachment; filename="v10-0004-pg_waldump-Add-support-for-archived-WAL-decoding.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjwuks0a3 RnJvbSBiOGZiYTczYzJhYmY3OGZkNjk3MmFjMDc3YjNkMjIzMzJhNGQ0NzdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IEZy aSwgMiBKYW4gMjAyNiAxNzowNzozNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjEwIDQvOF0gcGdf d2FsZHVtcDogQWRkIHN1cHBvcnQgZm9yIGFyY2hpdmVkIFdBTCBkZWNvZGluZy4KCnBnX3dhbGR1 bXAgY2FuIG5vdyBhY2NlcHQgdGhlIHBhdGggdG8gYSB0YXIgYXJjaGl2ZSBjb250YWluaW5nIFdB TApmaWxlcyBhbmQgZGVjb2RlIHRoZW0uIFRoaXMgZmVhdHVyZSB3YXMgYWRkZWQgcHJpbWFyaWx5 IGZvcgpwZ192ZXJpZnliYWNrdXAsIHdoaWNoIHByZXZpb3VzbHkgZGlzYWJsZWQgV0FMIHBhcnNp bmcgZm9yCnRhci1mb3JtYXR0ZWQgYmFja3Vwcy4KCk5vdGUgdGhhdCB0aGlzIHBhdGNoIHJlcXVp cmVzIHRoYXQgdGhlIFdBTCBmaWxlcyB3aXRoaW4gdGhlIGFyY2hpdmUgYmUKaW4gc2VxdWVudGlh bCBvcmRlcjsgYW4gZXJyb3Igd2lsbCBiZSByZXBvcnRlZCBvdGhlcndpc2UuIFRoZSBuZXh0CnBh dGNoIGlzIHBsYW5uZWQgdG8gcmVtb3ZlIHRoaXMgcmVzdHJpY3Rpb24uCi0tLQogZG9jL3NyYy9z Z21sL3JlZi9wZ193YWxkdW1wLnNnbWwgICAgIHwgICA4ICstCiBzcmMvYmluL3BnX3dhbGR1bXAv TWFrZWZpbGUgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dh bGR1bXAuYyB8IDU5NCArKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iaW4vcGdfd2Fs ZHVtcC9tZXNvbi5idWlsZCAgICAgICB8ICAgNCArLQogc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dh bGR1bXAuYyAgICAgIHwgMjE4ICsrKysrKystLS0KIHNyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxk dW1wLmggICAgICB8ICAzNCArKwogc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsICAg IHwgIDg0ICsrKy0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICB8ICAgMyAr CiA4IGZpbGVzIGNoYW5nZWQsIDg3NiBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcGdfd2FsZHVtcC5zZ21sCmluZGV4IGNlMjNhZGQ1NTc3Li5kMDA0YmIwZjY3ZSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ193YWxkdW1wLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9wZ193YWxkdW1wLnNnbWwKQEAgLTE0MSwxMyArMTQxLDE3IEBAIFBvc3RncmVTUUwg ZG9jdW1lbnRhdGlvbgogICAgICAgPHRlcm0+PG9wdGlvbj4tLXBhdGg9PHJlcGxhY2VhYmxlPnBh dGg8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAg ICA8cGFyYT4KLSAgICAgICAgU3BlY2lmaWVzIGEgZGlyZWN0b3J5IHRvIHNlYXJjaCBmb3IgV0FM IHNlZ21lbnQgZmlsZXMgb3IgYQotICAgICAgICBkaXJlY3Rvcnkgd2l0aCBhIDxsaXRlcmFsPnBn X3dhbDwvbGl0ZXJhbD4gc3ViZGlyZWN0b3J5IHRoYXQKKyAgICAgICAgU3BlY2lmaWVzIGEgdGFy IGFyY2hpdmUgb3IgYSBkaXJlY3RvcnkgdG8gc2VhcmNoIGZvciBXQUwgc2VnbWVudCBmaWxlcwor ICAgICAgICBvciBhIGRpcmVjdG9yeSB3aXRoIGEgPGxpdGVyYWw+cGdfd2FsPC9saXRlcmFsPiBz dWJkaXJlY3RvcnkgdGhhdAogICAgICAgICBjb250YWlucyBzdWNoIGZpbGVzLiAgVGhlIGRlZmF1 bHQgaXMgdG8gc2VhcmNoIGluIHRoZSBjdXJyZW50CiAgICAgICAgIGRpcmVjdG9yeSwgdGhlIDxs aXRlcmFsPnBnX3dhbDwvbGl0ZXJhbD4gc3ViZGlyZWN0b3J5IG9mIHRoZQogICAgICAgICBjdXJy ZW50IGRpcmVjdG9yeSwgYW5kIHRoZSA8bGl0ZXJhbD5wZ193YWw8L2xpdGVyYWw+IHN1YmRpcmVj dG9yeQogICAgICAgICBvZiA8ZW52YXI+UEdEQVRBPC9lbnZhcj4uCiAgICAgICAgPC9wYXJhPgor ICAgICAgIDxwYXJhPgorICAgICAgICBJZiBhIHRhciBhcmNoaXZlIGlzIHByb3ZpZGVkLCBpdHMg V0FMIHNlZ21lbnQgZmlsZXMgbXVzdCBiZSBpbgorICAgICAgICBzZXF1ZW50aWFsIG9yZGVyOyBv dGhlcndpc2UsIGFuIGVycm9yIHdpbGwgYmUgcmVwb3J0ZWQuCisgICAgICAgPC9wYXJhPgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfd2FsZHVtcC9NYWtlZmlsZSBiL3NyYy9iaW4vcGdfd2FsZHVtcC9NYWtlZmlsZQppbmRl eCA0YzFlZTY0OTUwMS4uYWFiYjg3NTY2YTIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVt cC9NYWtlZmlsZQorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvTWFrZWZpbGUKQEAgLTMsNiArMyw5 IEBACiBQR0ZJTEVERVNDID0gInBnX3dhbGR1bXAgLSBkZWNvZGUgYW5kIGRpc3BsYXkgV0FMIgog UEdBUFBJQ09OPXdpbjMyCiAKKyMgbWFrZSB0aGVzZSBhdmFpbGFibGUgdG8gVEFQIHRlc3Qgc2Ny aXB0cworZXhwb3J0IFRBUgorCiBzdWJkaXIgPSBzcmMvYmluL3BnX3dhbGR1bXAKIHRvcF9idWls ZGRpciA9IC4uLy4uLy4uCiBpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xv YmFsCkBAIC0xMCwxMyArMTMsMTUgQEAgaW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2Vm aWxlLmdsb2JhbAogT0JKUyA9IFwKIAkkKFJNR1JERVNDT0JKUykgXAogCSQoV0lOMzJSRVMpIFwK KwlhcmNoaXZlX3dhbGR1bXAubyBcCiAJY29tcGF0Lm8gXAogCXBnX3dhbGR1bXAubyBcCiAJcm1n cmRlc2MubyBcCiAJeGxvZ3JlYWRlci5vIFwKIAl4bG9nc3RhdHMubwogCi1vdmVycmlkZSBDUFBG TEFHUyA6PSAtREZST05URU5EICQoQ1BQRkxBR1MpCitvdmVycmlkZSBDUFBGTEFHUyA6PSAtREZS T05URU5EIC1JJChsaWJwcV9zcmNkaXIpICQoQ1BQRkxBR1MpCitMREZMQUdTX0lOVEVSTkFMICs9 IC1MJCh0b3BfYnVpbGRkaXIpL3NyYy9mZV91dGlscyAtbHBnZmV1dGlscwogCiBSTUdSREVTQ1NP VVJDRVMgPSAkKHNvcnQgJChub3RkaXIgJCh3aWxkY2FyZCAkKHRvcF9zcmNkaXIpL3NyYy9iYWNr ZW5kL2FjY2Vzcy9ybWdyZGVzYy8qZGVzYyouYykpKQogUk1HUkRFU0NPQkpTID0gJChwYXRzdWJz dCAlLmMsJS5vLCQoUk1HUkRFU0NTT1VSQ0VTKSkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2Fs ZHVtcC9hcmNoaXZlX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dhbGR1 bXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmJhMDY3MTYzZDUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvYXJjaGl2ZV93YWxkdW1wLmMK QEAgLTAsMCArMSw1OTQgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGFyY2hpdmVfd2Fs ZHVtcC5jCisgKgkJQSBnZW5lcmljIGZhY2lsaXR5IGZvciByZWFkaW5nIFdBTCBkYXRhIGZyb20g dGFyIGFyY2hpdmVzIHZpYSBhcmNoaXZlCisgKgkJc3RyZWFtZXIuCisgKgorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAyMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkJc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2Fs ZHVtcC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVz X2ZlLmgiCisKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgImFjY2Vzcy94bG9nX2lu dGVybmFsLmgiCisjaW5jbHVkZSAiY29tbW9uL2hhc2hmbi5oIgorI2luY2x1ZGUgImNvbW1vbi9s b2dnaW5nLmgiCisjaW5jbHVkZSAiZmVfdXRpbHMvc2ltcGxlX2xpc3QuaCIKKyNpbmNsdWRlICJw Z193YWxkdW1wLmgiCisKKy8qCisgKiBIb3cgbWFueSBieXRlcyBzaG91bGQgd2UgdHJ5IHRvIHJl YWQgZnJvbSBhIGZpbGUgYXQgb25jZT8KKyAqLworI2RlZmluZSBSRUFEX0NIVU5LX1NJWkUJCQkJ KDEyOCAqIDEwMjQpCisKKy8qIEhhc2ggZW50cnkgc3RydWN0dXJlIGZvciBob2xkaW5nIFdBTCBz ZWdtZW50IGRhdGEgcmVhZCBmcm9tIHRoZSBhcmNoaXZlICovCit0eXBlZGVmIHN0cnVjdCBBcmNo aXZlZFdBTEVudHJ5Cit7CisJdWludDMyCQlzdGF0dXM7CQkJLyogaGFzaCBzdGF0dXMgKi8KKwlY TG9nU2VnTm8Jc2Vnbm87CQkJLyogaGFzaCBrZXk6IFdBTCBzZWdtZW50IG51bWJlciAqLworCVRp bWVMaW5lSUQJdGltZWxpbmU7CQkvKiB0aW1lbGluZSBvZiB0aGlzIHdhbCBmaWxlICovCisKKwlT dHJpbmdJbmZvRGF0YSBidWY7CisJYm9vbAkJdG1wc2VnX2V4aXN0czsJLyogc3BpbGwgZmlsZSBl eGlzdHM/ICovCisKKwlpbnQJCQl0b3RhbF9yZWFkOwkJLyogdG90YWwgcmVhZCBvZiBhcmNoaXZl ZCBXQUwgc2VnbWVudCAqLworfSBBcmNoaXZlZFdBTEVudHJ5OworCisjZGVmaW5lIFNIX1BSRUZJ WAkJCQlBcmNoaXZlZFdBTAorI2RlZmluZSBTSF9FTEVNRU5UX1RZUEUJCQlBcmNoaXZlZFdBTEVu dHJ5CisjZGVmaW5lIFNIX0tFWV9UWVBFCQkJCVhMb2dTZWdObworI2RlZmluZSBTSF9LRVkJCQkJ CXNlZ25vCisjZGVmaW5lIFNIX0hBU0hfS0VZKHRiLCBrZXkpCW11cm11cmhhc2g2NCgodWludDY0 KSBrZXkpCisjZGVmaW5lIFNIX0VRVUFMKHRiLCBhLCBiKQkJKGEgPT0gYikKKyNkZWZpbmUgU0hf R0VUX0hBU0godGIsIGEpCQlhLT5oYXNoCisjZGVmaW5lIFNIX1NDT1BFCQkJCXN0YXRpYyBpbmxp bmUKKyNkZWZpbmUgU0hfUkFXX0FMTE9DQVRPUgkJcGdfbWFsbG9jMAorI2RlZmluZSBTSF9ERUNM QVJFCisjZGVmaW5lIFNIX0RFRklORQorI2luY2x1ZGUgImxpYi9zaW1wbGVoYXNoLmgiCisKK3N0 YXRpYyBBcmNoaXZlZFdBTF9oYXNoICpBcmNoaXZlZFdBTF9IVEFCID0gTlVMTDsKKwordHlwZWRl ZiBzdHJ1Y3QgYXN0cmVhbWVyX3dhbGR1bXAKK3sKKwlhc3RyZWFtZXIJYmFzZTsKKwlYTG9nRHVt cFByaXZhdGUgKnByaXZhdGVJbmZvOworfSBhc3RyZWFtZXJfd2FsZHVtcDsKKworc3RhdGljIGlu dAlyZWFkX2FyY2hpdmVfZmlsZShYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvLCBTaXplIGNv dW50KTsKK3N0YXRpYyBBcmNoaXZlZFdBTEVudHJ5ICpnZXRfYXJjaGl2ZV93YWxfZW50cnkoWExv Z1NlZ05vIHNlZ25vLAorCQkJCQkJCQkJCQkgICBYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZv KTsKKworc3RhdGljIGFzdHJlYW1lciAqYXN0cmVhbWVyX3dhbGR1bXBfbmV3KFhMb2dEdW1wUHJp dmF0ZSAqcHJpdmF0ZUluZm8pOworc3RhdGljIHZvaWQgYXN0cmVhbWVyX3dhbGR1bXBfY29udGVu dChhc3RyZWFtZXIgKnN0cmVhbWVyLAorCQkJCQkJCQkJICBhc3RyZWFtZXJfbWVtYmVyICptZW1i ZXIsCisJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmRhdGEsIGludCBsZW4sCisJCQkJCQkJCQkgIGFz dHJlYW1lcl9hcmNoaXZlX2NvbnRleHQgY29udGV4dCk7CitzdGF0aWMgdm9pZCBhc3RyZWFtZXJf d2FsZHVtcF9maW5hbGl6ZShhc3RyZWFtZXIgKnN0cmVhbWVyKTsKK3N0YXRpYyB2b2lkIGFzdHJl YW1lcl93YWxkdW1wX2ZyZWUoYXN0cmVhbWVyICpzdHJlYW1lcik7CisKK3N0YXRpYyBib29sIG1l bWJlcl9pc193YWxfZmlsZShhc3RyZWFtZXJfd2FsZHVtcCAqbXlzdHJlYW1lciwKKwkJCQkJCQkg ICBhc3RyZWFtZXJfbWVtYmVyICptZW1iZXIsCisJCQkJCQkJICAgWExvZ1NlZ05vICpjdXJTZWdO bywKKwkJCQkJCQkgICBUaW1lTGluZUlEICpjdXJUaW1lbGluZSk7CisKK3N0YXRpYyBjb25zdCBh c3RyZWFtZXJfb3BzIGFzdHJlYW1lcl93YWxkdW1wX29wcyA9IHsKKwkuY29udGVudCA9IGFzdHJl YW1lcl93YWxkdW1wX2NvbnRlbnQsCisJLmZpbmFsaXplID0gYXN0cmVhbWVyX3dhbGR1bXBfZmlu YWxpemUsCisJLmZyZWUgPSBhc3RyZWFtZXJfd2FsZHVtcF9mcmVlCit9OworCisvKgorICogUmV0 dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBmaWxlIGlzIGEgdGFyIGFyY2hpdmUgYW5kIG91dHB1dHMg aXRzIGNvbXByZXNzaW9uCisgKiBhbGdvcml0aG0uCisgKi8KK2Jvb2wKK2lzX2FyY2hpdmVfZmls ZShjb25zdCBjaGFyICpmbmFtZSwgcGdfY29tcHJlc3NfYWxnb3JpdGhtICpjb21wcmVzc2lvbikK K3sKKwlpbnQJCQlmbmFtZV9sZW4gPSBzdHJsZW4oZm5hbWUpOworCXBnX2NvbXByZXNzX2FsZ29y aXRobSBjb21wcmVzc19hbGdvOworCisJLyogTm93LCBjaGVjayB0aGUgY29tcHJlc3Npb24gdHlw ZSBvZiB0aGUgdGFyICovCisJaWYgKGZuYW1lX2xlbiA+IDQgJiYKKwkJc3RyY21wKGZuYW1lICsg Zm5hbWVfbGVuIC0gNCwgIi50YXIiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09NUFJF U1NJT05fTk9ORTsKKwllbHNlIGlmIChmbmFtZV9sZW4gPiA0ICYmCisJCQkgc3RyY21wKGZuYW1l ICsgZm5hbWVfbGVuIC0gNCwgIi50Z3oiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0gUEdfQ09N UFJFU1NJT05fR1pJUDsKKwllbHNlIGlmIChmbmFtZV9sZW4gPiA3ICYmCisJCQkgc3RyY21wKGZu YW1lICsgZm5hbWVfbGVuIC0gNywgIi50YXIuZ3oiKSA9PSAwKQorCQljb21wcmVzc19hbGdvID0g UEdfQ09NUFJFU1NJT05fR1pJUDsKKwllbHNlIGlmIChmbmFtZV9sZW4gPiA4ICYmCisJCQkgc3Ry Y21wKGZuYW1lICsgZm5hbWVfbGVuIC0gOCwgIi50YXIubHo0IikgPT0gMCkKKwkJY29tcHJlc3Nf YWxnbyA9IFBHX0NPTVBSRVNTSU9OX0xaNDsKKwllbHNlIGlmIChmbmFtZV9sZW4gPiA4ICYmCisJ CQkgc3RyY21wKGZuYW1lICsgZm5hbWVfbGVuIC0gOCwgIi50YXIuenN0IikgPT0gMCkKKwkJY29t cHJlc3NfYWxnbyA9IFBHX0NPTVBSRVNTSU9OX1pTVEQ7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7 CisKKwkqY29tcHJlc3Npb24gPSBjb21wcmVzc19hbGdvOworCisJcmV0dXJuIHRydWU7Cit9CisK Ky8qCisgKiBJbml0aWFsaXplcyB0aGUgdGFyIGFyY2hpdmUgcmVhZGVyLCBjcmVhdGVzIGEgaGFz aCB0YWJsZSBmb3IgV0FMIGVudHJpZXMsCisgKiBjaGVja3MgZm9yIGV4aXN0aW5nIHZhbGlkIFdB TCBzZWdtZW50cyBpbiB0aGUgYXJjaGl2ZSBmaWxlIGFuZCByZXRyaWV2ZXMgdGhlCisgKiBzZWdt ZW50IHNpemUsIGFuZCBzZXRzIHVwIGZpbHRlcnMgZm9yIHJlbGV2YW50IGVudHJpZXMuCisgKi8K K3ZvaWQKK2luaXRfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywg Y29uc3QgY2hhciAqd2FsZGlyLAorCQkJCQlwZ19jb21wcmVzc19hbGdvcml0aG0gY29tcHJlc3Np b24pCit7CisJaW50CQkJZmQ7CisJYXN0cmVhbWVyICAqc3RyZWFtZXI7CisJQXJjaGl2ZWRXQUxF bnRyeSAqZW50cnkgPSBOVUxMOworCVhMb2dMb25nUGFnZUhlYWRlciBsb25naGRyOworCisJLyog T3BlbiB0YXIgYXJjaGl2ZSBhbmQgc3RvcmUgaXRzIGZpbGUgZGVzY3JpcHRvciAqLworCWZkID0g b3Blbl9maWxlX2luX2RpcmVjdG9yeSh3YWxkaXIsIHByaXZhdGVJbmZvLT5hcmNoaXZlX25hbWUp OworCisJaWYgKGZkIDwgMCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wi IiwgcHJpdmF0ZUluZm8tPmFyY2hpdmVfbmFtZSk7CisKKwlwcml2YXRlSW5mby0+YXJjaGl2ZV9m ZCA9IGZkOworCisJc3RyZWFtZXIgPSBhc3RyZWFtZXJfd2FsZHVtcF9uZXcocHJpdmF0ZUluZm8p OworCisJLyogQmVmb3JlIHRoYXQgd2UgbXVzdCBwYXJzZSB0aGUgdGFyIGFyY2hpdmUuICovCisJ c3RyZWFtZXIgPSBhc3RyZWFtZXJfdGFyX3BhcnNlcl9uZXcoc3RyZWFtZXIpOworCisJLyogQmVm b3JlIHRoYXQgd2UgbXVzdCBkZWNvbXByZXNzLCBpZiBhcmNoaXZlIGlzIGNvbXByZXNzZWQuICov CisJaWYgKGNvbXByZXNzaW9uID09IFBHX0NPTVBSRVNTSU9OX0daSVApCisJCXN0cmVhbWVyID0g YXN0cmVhbWVyX2d6aXBfZGVjb21wcmVzc29yX25ldyhzdHJlYW1lcik7CisJZWxzZSBpZiAoY29t cHJlc3Npb24gPT0gUEdfQ09NUFJFU1NJT05fTFo0KQorCQlzdHJlYW1lciA9IGFzdHJlYW1lcl9s ejRfZGVjb21wcmVzc29yX25ldyhzdHJlYW1lcik7CisJZWxzZSBpZiAoY29tcHJlc3Npb24gPT0g UEdfQ09NUFJFU1NJT05fWlNURCkKKwkJc3RyZWFtZXIgPSBhc3RyZWFtZXJfenN0ZF9kZWNvbXBy ZXNzb3JfbmV3KHN0cmVhbWVyKTsKKworCXByaXZhdGVJbmZvLT5hcmNoaXZlX3N0cmVhbWVyID0g c3RyZWFtZXI7CisKKwkvKiBIYXNoIHRhYmxlIHN0b3JpbmcgV0FMIGVudHJpZXMgcmVhZCBmcm9t IHRoZSBhcmNoaXZlICovCisJQXJjaGl2ZWRXQUxfSFRBQiA9IEFyY2hpdmVkV0FMX2NyZWF0ZSgx NiwgTlVMTCk7CisKKwkvKgorCSAqIFZlcmlmeSB0aGF0IHRoZSBhcmNoaXZlIGNvbnRhaW5zIHZh bGlkIFdBTCBmaWxlcyBhbmQgZmV0Y2ggV0FMIHNlZ21lbnQKKwkgKiBzaXplCisJICovCisJd2hp bGUgKGVudHJ5ID09IE5VTEwgfHwgZW50cnktPmJ1Zi5sZW4gPCBYTE9HX0JMQ0tTWikKKwl7CisJ CWlmIChyZWFkX2FyY2hpdmVfZmlsZShwcml2YXRlSW5mbywgWExPR19CTENLU1opID09IDApCisJ CQlwZ19mYXRhbCgiY291bGQgbm90IGZpbmQgV0FMIGluIFwiJXNcIiBhcmNoaXZlIiwKKwkJCQkJ IHByaXZhdGVJbmZvLT5hcmNoaXZlX25hbWUpOworCisJCWVudHJ5ID0gcHJpdmF0ZUluZm8tPmN1 cl93YWw7CisJfQorCisJLyogU2V0IFdhbFNlZ1N6IGlmIFdBTCBkYXRhIGlzIHN1Y2Nlc3NmdWxs eSByZWFkICovCisJbG9uZ2hkciA9IChYTG9nTG9uZ1BhZ2VIZWFkZXIpIGVudHJ5LT5idWYuZGF0 YTsKKworCVdhbFNlZ1N6ID0gbG9uZ2hkci0+eGxwX3NlZ19zaXplOworCisJaWYgKCFJc1ZhbGlk V2FsU2VnU2l6ZShXYWxTZWdTeikpCisJeworCQlwZ19sb2dfZXJyb3IobmdldHRleHQoImludmFs aWQgV0FMIHNlZ21lbnQgc2l6ZSBpbiBXQUwgZmlsZSBmcm9tIGFyY2hpdmUgXCIlc1wiICglZCBi eXRlKSIsCisJCQkJCQkJICAiaW52YWxpZCBXQUwgc2VnbWVudCBzaXplIGluIFdBTCBmaWxlIGZy b20gYXJjaGl2ZSBcIiVzXCIgKCVkIGJ5dGVzKSIsCisJCQkJCQkJICBXYWxTZWdTeiksCisJCQkJ CSBwcml2YXRlSW5mby0+YXJjaGl2ZV9uYW1lLCBXYWxTZWdTeik7CisJCXBnX2xvZ19lcnJvcl9k ZXRhaWwoIlRoZSBXQUwgc2VnbWVudCBzaXplIG11c3QgYmUgYSBwb3dlciBvZiB0d28gYmV0d2Vl biAxIE1CIGFuZCAxIEdCLiIpOworCQlleGl0KDEpOworCX0KKworCS8qCisJICogV2l0aCB0aGUg V0FMIHNlZ21lbnQgc2l6ZSBhdmFpbGFibGUsIHdlIGNhbiBub3cgaW5pdGlhbGl6ZSB0aGUKKwkg KiBkZXBlbmRlbnQgc3RhcnQgYW5kIGVuZCBzZWdtZW50IG51bWJlcnMuCisJICovCisJQXNzZXJ0 KCFYTG9nUmVjUHRySXNJbnZhbGlkKHByaXZhdGVJbmZvLT5zdGFydHB0cikpOworCVhMQnl0ZVRv U2VnKHByaXZhdGVJbmZvLT5zdGFydHB0ciwgcHJpdmF0ZUluZm8tPnN0YXJ0U2VnTm8sIFdhbFNl Z1N6KTsKKworCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHByaXZhdGVJbmZvLT5lbmRwdHIpKQor CQlwcml2YXRlSW5mby0+ZW5kU2VnTm8gPSBVSU5UNjRfTUFYOworCWVsc2UKKwkJWExCeXRlVG9T ZWcocHJpdmF0ZUluZm8tPmVuZHB0ciwgcHJpdmF0ZUluZm8tPmVuZFNlZ05vLCBXYWxTZWdTeik7 Cit9CisKKy8qCisgKiBSZWxlYXNlIHRoZSBhcmNoaXZlIHN0cmVhbWVyIGNoYWluIGFuZCBjbG9z ZSB0aGUgYXJjaGl2ZSBmaWxlLgorICovCit2b2lkCitmcmVlX2FyY2hpdmVfcmVhZGVyKFhMb2dE dW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pCit7CisJLyoKKwkgKiBOQjogTm9ybWFsbHksIGFzdHJl YW1lcl9maW5hbGl6ZSgpIGlzIGNhbGxlZCBiZWZvcmUgYXN0cmVhbWVyX2ZyZWUoKSB0bworCSAq IGZsdXNoIGFueSByZW1haW5pbmcgYnVmZmVyZWQgZGF0YSBvciB0byBlbnN1cmUgdGhlIGVuZCBv ZiB0aGUgdGFyCisJICogYXJjaGl2ZSBpcyByZWFjaGVkLiBIb3dldmVyLCB3aGVuIGRlY29kaW5n IGEgV0FMIGZpbGUsIG9uY2Ugd2UgaGl0IHRoZQorCSAqIGVuZCBMU04sIGFueSByZW1haW5pbmcg V0FMIGRhdGEgaW4gdGhlIGJ1ZmZlciBvciB0aGUgdGFyIGFyY2hpdmUncworCSAqIHVucmVhY2hl ZCBlbmQgY2FuIGJlIHNhZmVseSBpZ25vcmVkLgorCSAqLworCWFzdHJlYW1lcl9mcmVlKHByaXZh dGVJbmZvLT5hcmNoaXZlX3N0cmVhbWVyKTsKKworCS8qIENsb3NlIHRoZSBmaWxlLiAqLworCWlm IChjbG9zZShwcml2YXRlSW5mby0+YXJjaGl2ZV9mZCkgIT0gMCkKKwkJcGdfbG9nX2Vycm9yKCJj b3VsZCBub3QgY2xvc2UgZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkJIHByaXZhdGVJbmZvLT5hcmNo aXZlX25hbWUpOworfQorCisvKgorICogQ29waWVzIFdBTCBkYXRhIGZyb20gYXN0cmVhbWVyIHRv IHJlYWRCdWZmOyBpZiB1bmF2YWlsYWJsZSwgZmV0Y2hlcyBtb3JlCisgKiBmcm9tIHRoZSB0YXIg YXJjaGl2ZSB2aWEgYXN0cmVhbWVyLgorICovCitpbnQKK3JlYWRfYXJjaGl2ZV93YWxfcGFnZShY TG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvLCBYTG9nUmVjUHRyIHRhcmdldFBhZ2VQdHIsCisJ CQkJCSAgU2l6ZSBjb3VudCwgY2hhciAqcmVhZEJ1ZmYpCit7CisJY2hhcgkgICAqcCA9IHJlYWRC dWZmOworCVNpemUJCW5ieXRlcyA9IGNvdW50OworCVhMb2dSZWNQdHIJcmVjcHRyID0gdGFyZ2V0 UGFnZVB0cjsKKwlYTG9nU2VnTm8Jc2Vnbm87CisJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnk7CisK KwlYTEJ5dGVUb1NlZyh0YXJnZXRQYWdlUHRyLCBzZWdubywgV2FsU2VnU3opOworCWVudHJ5ID0g Z2V0X2FyY2hpdmVfd2FsX2VudHJ5KHNlZ25vLCBwcml2YXRlSW5mbyk7CisKKwl3aGlsZSAobmJ5 dGVzID4gMCkKKwl7CisJCWNoYXIJICAgKmJ1ZiA9IGVudHJ5LT5idWYuZGF0YTsKKwkJaW50CQkJ bGVuID0gZW50cnktPmJ1Zi5sZW47CisKKwkJLyogV0FMIHJlY29yZCByYW5nZSB0aGF0IHRoZSBi dWZmZXIgY29udGFpbnMgKi8KKwkJWExvZ1JlY1B0cgllbmRQdHI7CisJCVhMb2dSZWNQdHIJc3Rh cnRQdHI7CisKKwkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoZW50cnktPnNlZ25vLCBlbnRyeS0+ dG90YWxfcmVhZCwKKwkJCQkJCQkJV2FsU2VnU3osIGVuZFB0cik7CisJCXN0YXJ0UHRyID0gZW5k UHRyIC0gbGVuOworCisJCS8qCisJCSAqIHBnX3dhbGR1bXAgbWF5IHJlcXVlc3QgdG8gcmUtcmVh ZCB0aGUgY3VycmVudGx5IGFjdGl2ZSBwYWdlLCBidXQKKwkJICogbmV2ZXIgYSBwYWdlIG9sZGVy IHRoYW4gdGhlIGN1cnJlbnQgb25lLiBUaGVyZWZvcmUsIGFueSBmdWxseQorCQkgKiBjb25zdW1l ZCBXQUwgZGF0YSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQgcGFnZSBjYW4gYmUgc2FmZWx5CisJCSAq IGRpc2NhcmRlZC4KKwkJICovCisJCWlmIChyZWNwdHIgPj0gZW5kUHRyKQorCQl7CisJCQkvKiBE aXNjYXJkIHRoZSBidWZmZXJlZCBkYXRhICovCisJCQlyZXNldFN0cmluZ0luZm8oJmVudHJ5LT5i dWYpOworCQkJbGVuID0gMDsKKworCQkJLyoKKwkJCSAqIFB1c2ggYmFjayB0aGUgcGFydGlhbCBw YWdlIGRhdGEgZm9yIHRoZSBjdXJyZW50IHBhZ2UgdG8gdGhlCisJCQkgKiBidWZmZXIsIGVuc3Vy aW5nIGl0IHJlbWFpbnMgZnVsbCBwYWdlIGF2YWlsYWJsZSBmb3IgcmUtcmVhZGluZworCQkJICog aWYgcmVxdWVzdGVkLgorCQkJICovCisJCQlpZiAocCA+IHJlYWRCdWZmKQorCQkJeworCQkJCUFz c2VydCgoY291bnQgLSBuYnl0ZXMpID4gMCk7CisJCQkJYXBwZW5kQmluYXJ5U3RyaW5nSW5mbygm ZW50cnktPmJ1ZiwgcmVhZEJ1ZmYsIGNvdW50IC0gbmJ5dGVzKTsKKwkJCX0KKwkJfQorCisJCWlm IChsZW4gPiAwICYmIHJlY3B0ciA+IHN0YXJ0UHRyKQorCQl7CisJCQlpbnQJCQlza2lwQnl0ZXMg PSAwOworCisJCQkvKgorCQkJICogVGhlIHJlcXVpcmVkIG9mZnNldCBpcyBub3QgYXQgdGhlIHN0 YXJ0IG9mIHRoZSBidWZmZXIsIHNvIHNraXAKKwkJCSAqIGJ5dGVzIHVudGlsIHJlYWNoaW5nIHRo ZSBkZXNpcmVkIG9mZnNldCBvZiB0aGUgdGFyZ2V0IHBhZ2UuCisJCQkgKi8KKwkJCXNraXBCeXRl cyA9IHJlY3B0ciAtIHN0YXJ0UHRyOworCisJCQlidWYgKz0gc2tpcEJ5dGVzOworCQkJbGVuIC09 IHNraXBCeXRlczsKKwkJfQorCisJCWlmIChsZW4gPiAwKQorCQl7CisJCQlpbnQJCQlyZWFkQnl0 ZXMgPSBsZW4gPj0gbmJ5dGVzID8gbmJ5dGVzIDogbGVuOworCisJCQkvKiBFbnN1cmUgdGhlIHJl YWRpbmcgcGFnZSBpcyBpbiB0aGUgYnVmZmVyICovCisJCQlBc3NlcnQocmVjcHRyID49IHN0YXJ0 UHRyICYmIHJlY3B0ciA8IGVuZFB0cik7CisKKwkJCW1lbWNweShwLCBidWYsIHJlYWRCeXRlcyk7 CisKKwkJCS8qIFVwZGF0ZSBzdGF0ZSBmb3IgcmVhZCAqLworCQkJbmJ5dGVzIC09IHJlYWRCeXRl czsKKwkJCXAgKz0gcmVhZEJ5dGVzOworCQkJcmVjcHRyICs9IHJlYWRCeXRlczsKKwkJfQorCQll bHNlCisJCXsKKwkJCS8qCisJCQkgKiBGZXRjaCBtb3JlIGRhdGE7IHJhaXNlIGFuIGVycm9yIGlm IGl0J3Mgbm90IHRoZSBjdXJyZW50IHNlZ21lbnQKKwkJCSAqIGJlaW5nIHJlYWQgYnkgdGhlIGFy Y2hpdmUgc3RyZWFtZXIgb3IgaWYgcmVhZGluZyBvZiB0aGUKKwkJCSAqIGFyY2hpdmVkIGZpbGUg aGFzIGZpbmlzaGVkLgorCQkJICovCisJCQlpZiAocHJpdmF0ZUluZm8tPmN1cl93YWwgIT0gZW50 cnkgfHwKKwkJCQlyZWFkX2FyY2hpdmVfZmlsZShwcml2YXRlSW5mbywgUkVBRF9DSFVOS19TSVpF KSA9PSAwKQorCQkJeworCQkJCWNoYXIJCWZuYW1lW01BWEZOQU1FTEVOXTsKKworCQkJCVhMb2dG aWxlTmFtZShmbmFtZSwgcHJpdmF0ZUluZm8tPnRpbWVsaW5lLCBlbnRyeS0+c2Vnbm8sCisJCQkJ CQkJIFdhbFNlZ1N6KTsKKwkJCQlwZ19mYXRhbCgiY291bGQgbm90IHJlYWQgZmlsZSBcIiVzXCIg ZnJvbSBhcmNoaXZlIFwiJXNcIjogcmVhZCAlbGxkIG9mICVsbGQiLAorCQkJCQkJIGZuYW1lLCBw cml2YXRlSW5mby0+YXJjaGl2ZV9uYW1lLAorCQkJCQkJIChsb25nIGxvbmcgaW50KSBjb3VudCAt IG5ieXRlcywKKwkJCQkJCSAobG9uZyBsb25nIGludCkgbmJ5dGVzKTsKKwkJCX0KKwkJfQorCX0K KworCS8qCisJICogU2hvdWxkIGhhdmUgZWl0aGVyIGhhdmUgc3VjY2Vzc2Z1bGx5IHJlYWQgYWxs IHRoZSByZXF1ZXN0ZWQgYnl0ZXMgb3IKKwkgKiByZXBvcnRlZCBhIGZhaWx1cmUgYmVmb3JlIHRo aXMgcG9pbnQuCisJICovCisJQXNzZXJ0KG5ieXRlcyA9PSAwKTsKKworCS8qCisJICogTkI6IFdl IHJldHVybiB0aGUgZml4ZWQgdmFsdWUgcHJvdmlkZWQgYXMgaW5wdXQuIEFsdGhvdWdoIHdlIGNv dWxkCisJICogcmV0dXJuIGEgYm9vbGVhbiBzaW5jZSB3ZSBlaXRoZXIgc3VjY2Vzc2Z1bGx5IHJl YWQgdGhlIFdBTCBwYWdlIG9yCisJICogcmFpc2UgYW4gZXJyb3IsIGJ1dCB0aGUgY2FsbGVyIGV4 cGVjdHMgdGhpcyB2YWx1ZSB0byBiZSByZXR1cm5lZC4gVGhlCisJICogcm91dGluZSB0aGF0IHJl YWRzIFdBTCBwYWdlcyBmcm9tIHRoZSBwaHlzaWNhbCBXQUwgZmlsZSBmb2xsb3dzIHRoZQorCSAq IHNhbWUgY29udmVudGlvbi4KKwkgKi8KKwlyZXR1cm4gY291bnQ7Cit9CisKKy8qCisgKiBSZWFk cyB0aGUgYXJjaGl2ZSBmaWxlIGFuZCBwYXNzZXMgaXQgdG8gdGhlIGFyY2hpdmUgc3RyZWFtZXIg Zm9yCisgKiBkZWNvbXByZXNzaW9uLgorICovCitzdGF0aWMgaW50CityZWFkX2FyY2hpdmVfZmls ZShYTG9nRHVtcFByaXZhdGUgKnByaXZhdGVJbmZvLCBTaXplIGNvdW50KQoreworCWludAkJCXJj OworCWNoYXIJICAgKmJ1ZmZlcjsKKworCWJ1ZmZlciA9IHBnX21hbGxvYyhSRUFEX0NIVU5LX1NJ WkUgKiBzaXplb2YodWludDgpKTsKKworCXJjID0gcmVhZChwcml2YXRlSW5mby0+YXJjaGl2ZV9m ZCwgYnVmZmVyLCBjb3VudCk7CisJaWYgKHJjIDwgMCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBy ZWFkIGZpbGUgXCIlc1wiOiAlbSIsCisJCQkJIHByaXZhdGVJbmZvLT5hcmNoaXZlX25hbWUpOwor CisJLyoKKwkgKiBEZWNvbXByZXNzIChpZiByZXF1aXJlZCksIGFuZCB0aGVuIHBhcnNlIHRoZSBw cmV2aW91c2x5IHJlYWQgY29udGVudHMKKwkgKiBvZiB0aGUgdGFyIGZpbGUuCisJICovCisJaWYg KHJjID4gMCkKKwkJYXN0cmVhbWVyX2NvbnRlbnQocHJpdmF0ZUluZm8tPmFyY2hpdmVfc3RyZWFt ZXIsIE5VTEwsCisJCQkJCQkgIGJ1ZmZlciwgcmMsIEFTVFJFQU1FUl9VTktOT1dOKTsKKwlwZ19m cmVlKGJ1ZmZlcik7CisKKwlyZXR1cm4gcmM7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSBhcmNo aXZlZCBXQUwgZW50cnkgZnJvbSB0aGUgaGFzaCB0YWJsZSBpZiBpdCBleGlzdHMuIE90aGVyd2lz ZSwKKyAqIGl0IGludm9rZXMgdGhlIHJvdXRpbmUgdG8gcmVhZCB0aGUgYXJjaGl2ZWQgZmlsZSwg d2hpY2ggdGhlbiBwb3B1bGF0ZXMgdGhlCisgKiBlbnRyeSBpbiB0aGUgaGFzaCB0YWJsZS4KKyAq Lworc3RhdGljIEFyY2hpdmVkV0FMRW50cnkgKgorZ2V0X2FyY2hpdmVfd2FsX2VudHJ5KFhMb2dT ZWdObyBzZWdubywgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbykKK3sKKwlBcmNoaXZlZFdB TEVudHJ5ICplbnRyeSA9IE5VTEw7CisJY2hhcgkJZm5hbWVbTUFYRk5BTUVMRU5dOworCisJLyog U2VhcmNoIGhhc2ggdGFibGUgKi8KKwllbnRyeSA9IEFyY2hpdmVkV0FMX2xvb2t1cChBcmNoaXZl ZFdBTF9IVEFCLCBzZWdubyk7CisKKwlpZiAoZW50cnkgIT0gTlVMTCkKKwkJcmV0dXJuIGVudHJ5 OworCisJLyogTmVlZGVkIFdBTCB5ZXQgdG8gYmUgZGVjb2RlZCBmcm9tIGFyY2hpdmUsIGRvIHRo ZSBzYW1lICovCisJd2hpbGUgKDEpCisJeworCQllbnRyeSA9IHByaXZhdGVJbmZvLT5jdXJfd2Fs OworCisJCS8qIEZldGNoIG1vcmUgZGF0YSAqLworCQlpZiAocmVhZF9hcmNoaXZlX2ZpbGUocHJp dmF0ZUluZm8sIFJFQURfQ0hVTktfU0laRSkgPT0gMCkKKwkJCWJyZWFrOwkJCS8qIGFyY2hpdmUg ZmlsZSBlbmRlZCAqLworCisJCS8qCisJCSAqIEVpdGhlciwgaGVyZSBmb3IgdGhlIGZpcnN0IHRp bWUsIG9yIHRoZSBhcmNoaXZlZCBzdHJlYW1lciBpcworCQkgKiByZWFkaW5nIGEgbm9uLVdBTCBm aWxlIG9yIGFuIGlycmVsZXZhbnQgV0FMIGZpbGUuCisJCSAqLworCQlpZiAoZW50cnkgPT0gTlVM TCkKKwkJCWNvbnRpbnVlOworCisJCS8qIEZvdW5kIHRoZSByZXF1aXJlZCBlbnRyeSAqLworCQlp ZiAoZW50cnktPnNlZ25vID09IHNlZ25vKQorCQkJcmV0dXJuIGVudHJ5OworCisJCS8qCisJCSAq IElnbm9yZSBpZiB0aGUgdGltZWxpbmUgaXMgZGlmZmVyZW50IG9yIHRoZSBjdXJyZW50IHNlZ21l bnQgaXMgbm90CisJCSAqIHRoZSBkZXNpcmVkIG9uZS4KKwkJICovCisJCWlmIChwcml2YXRlSW5m by0+dGltZWxpbmUgIT0gZW50cnktPnRpbWVsaW5lIHx8CisJCQlwcml2YXRlSW5mby0+c3RhcnRT ZWdObyA+IGVudHJ5LT5zZWdubyB8fAorCQkJcHJpdmF0ZUluZm8tPmVuZFNlZ05vIDwgZW50cnkt PnNlZ25vKQorCQl7CisJCQlwcml2YXRlSW5mby0+Y3VyX3dhbCA9IE5VTEw7CisJCQljb250aW51 ZTsKKwkJfQorCisJCS8qCisJCSAqIFhYWDogSWYgdGhlIHNlZ21lbnQgYmVpbmcgcmVhZCBub3Qg dGhlIHJlcXVlc3RlZCBvbmUsIHRoZSBkYXRhIG11c3QKKwkJICogYmUgYnVmZmVyZWQsIGFzIHdl IGN1cnJlbnRseSBsYWNrIHRoZSBtZWNoYW5pc20gdG8gd3JpdGUgaXQgdG8gYQorCQkgKiB0ZW1w b3JhcnkgZmlsZS4gVGhpcyBpcyBhIGtub3duIGxpbWl0YXRpb24gdGhhdCB3aWxsIGJlIGZpeGVk IGluIHRoZQorCQkgKiBuZXh0IHBhdGNoLCBhcyB0aGUgYnVmZmVyIGNvdWxkIGdyb3cgdXAgdG8g dGhlIGZ1bGwgV0FMIHNlZ21lbnQKKwkJICogc2l6ZS4KKwkJICovCisJCWlmIChzZWdubyA+IGVu dHJ5LT5zZWdubykKKwkJCWNvbnRpbnVlOworCisJCS8qIFdBTCBzZWdtZW50cyBtdXN0IGJlIGFy Y2hpdmVkIGluIG9yZGVyICovCisJCXBnX2xvZ19lcnJvcigiV0FMIGZpbGVzIGFyZSBub3QgYXJj aGl2ZWQgaW4gc2VxdWVudGlhbCBvcmRlciIpOworCQlwZ19sb2dfZXJyb3JfZGV0YWlsKCJFeHBl Y3Rpbmcgc2VnbWVudCBudW1iZXIgIiBVSU5UNjRfRk9STUFUICIgYnV0IGZvdW5kICIgVUlOVDY0 X0ZPUk1BVCAiLiIsCisJCQkJCQkJc2Vnbm8sIGVudHJ5LT5zZWdubyk7CisJCWV4aXQoMSk7CisJ fQorCisJLyogUmVxdWVzdGVkIFdBTCBzZWdtZW50IG5vdCBmb3VuZCAqLworCVhMb2dGaWxlTmFt ZShmbmFtZSwgcHJpdmF0ZUluZm8tPnRpbWVsaW5lLCBzZWdubywgV2FsU2VnU3opOworCXBnX2Zh dGFsKCJjb3VsZCBub3QgZmluZCBmaWxlIFwiJXNcIiBpbiBhcmNoaXZlIiwgZm5hbWUpOworfQor CisvKgorICogQ3JlYXRlIGFuIGFzdHJlYW1lciB0aGF0IGNhbiByZWFkIFdBTCBmcm9tIGEgdGFy IGZpbGUuCisgKi8KK3N0YXRpYyBhc3RyZWFtZXIgKgorYXN0cmVhbWVyX3dhbGR1bXBfbmV3KFhM b2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pCit7CisJYXN0cmVhbWVyX3dhbGR1bXAgKnN0cmVh bWVyOworCisJc3RyZWFtZXIgPSBwYWxsb2MwKHNpemVvZihhc3RyZWFtZXJfd2FsZHVtcCkpOwor CSooKGNvbnN0IGFzdHJlYW1lcl9vcHMgKiopICZzdHJlYW1lci0+YmFzZS5iYnNfb3BzKSA9CisJ CSZhc3RyZWFtZXJfd2FsZHVtcF9vcHM7CisKKwlzdHJlYW1lci0+cHJpdmF0ZUluZm8gPSBwcml2 YXRlSW5mbzsKKworCXJldHVybiAmc3RyZWFtZXItPmJhc2U7Cit9CisKKy8qCisgKiBNYWluIGVu dHJ5IHBvaW50IG9mIHRoZSBhcmNoaXZlIHN0cmVhbWVyIGZvciByZWFkaW5nIFdBTCBkYXRhIGZy b20gYSB0YXIKKyAqIGZpbGUuIElmIGEgbWVtYmVyIGlzIGlkZW50aWZpZWQgYXMgYSB2YWxpZCBX QUwgZmlsZSwgYSBoYXNoIGVudHJ5IGlzIGNyZWF0ZWQKKyAqIGZvciBpdCwgYW5kIGl0cyBjb250 ZW50cyBhcmUgY29waWVkIGludG8gdGhhdCBlbnRyeSdzIGJ1ZmZlciwgbWFraW5nIHRoZW0KKyAq IGFjY2Vzc2libGUgdG8gdGhlIGRlY29kaW5nIHJvdXRpbmUuCisgKi8KK3N0YXRpYyB2b2lkCith c3RyZWFtZXJfd2FsZHVtcF9jb250ZW50KGFzdHJlYW1lciAqc3RyZWFtZXIsIGFzdHJlYW1lcl9t ZW1iZXIgKm1lbWJlciwKKwkJCQkJCSAgY29uc3QgY2hhciAqZGF0YSwgaW50IGxlbiwKKwkJCQkJ CSAgYXN0cmVhbWVyX2FyY2hpdmVfY29udGV4dCBjb250ZXh0KQoreworCWFzdHJlYW1lcl93YWxk dW1wICpteXN0cmVhbWVyID0gKGFzdHJlYW1lcl93YWxkdW1wICopIHN0cmVhbWVyOworCVhMb2dE dW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8gPSBteXN0cmVhbWVyLT5wcml2YXRlSW5mbzsKKworCUFz c2VydChjb250ZXh0ICE9IEFTVFJFQU1FUl9VTktOT1dOKTsKKworCXN3aXRjaCAoY29udGV4dCkK Kwl7CisJCWNhc2UgQVNUUkVBTUVSX01FTUJFUl9IRUFERVI6CisJCQl7CisJCQkJWExvZ1NlZ05v CXNlZ25vOworCQkJCVRpbWVMaW5lSUQJdGltZWxpbmU7CisJCQkJQXJjaGl2ZWRXQUxFbnRyeSAq ZW50cnk7CisJCQkJYm9vbAkJZm91bmQ7CisKKwkJCQlwZ19sb2dfZGVidWcoInJlYWRpbmcgXCIl c1wiIiwgbWVtYmVyLT5wYXRobmFtZSk7CisKKwkJCQlpZiAoIW1lbWJlcl9pc193YWxfZmlsZSht eXN0cmVhbWVyLCBtZW1iZXIsCisJCQkJCQkJCQkJJnNlZ25vLCAmdGltZWxpbmUpKQorCQkJCQli cmVhazsKKworCQkJCWVudHJ5ID0gQXJjaGl2ZWRXQUxfaW5zZXJ0KEFyY2hpdmVkV0FMX0hUQUIs IHNlZ25vLCAmZm91bmQpOworCisJCQkJLyoKKwkJCQkgKiBTaG91bGRuJ3QgaGFwcGVuLCBidXQg aWYgaXQgZG9lcywgc2ltcGx5IGlnbm9yZSB0aGUKKwkJCQkgKiBkdXBsaWNhdGUgV0FMIGZpbGUu CisJCQkJICovCisJCQkJaWYgKGZvdW5kKQorCQkJCXsKKwkJCQkJcGdfbG9nX3dhcm5pbmcoImln bm9yaW5nIGR1cGxpY2F0ZSBXQUwgZmlsZSBmb3VuZCBpbiBhcmNoaXZlOiBcIiVzXCIiLAorCQkJ CQkJCQkgICBtZW1iZXItPnBhdGhuYW1lKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJaW5p dFN0cmluZ0luZm8oJmVudHJ5LT5idWYpOworCQkJCWVudHJ5LT50aW1lbGluZSA9IHRpbWVsaW5l OworCQkJCWVudHJ5LT50b3RhbF9yZWFkID0gMDsKKworCQkJCXByaXZhdGVJbmZvLT5jdXJfd2Fs ID0gZW50cnk7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIEFTVFJFQU1FUl9NRU1CRVJfQ09O VEVOVFM6CisJCQlpZiAocHJpdmF0ZUluZm8tPmN1cl93YWwpCisJCQl7CisJCQkJYXBwZW5kQmlu YXJ5U3RyaW5nSW5mbygmcHJpdmF0ZUluZm8tPmN1cl93YWwtPmJ1ZiwgZGF0YSwgbGVuKTsKKwkJ CQlwcml2YXRlSW5mby0+Y3VyX3dhbC0+dG90YWxfcmVhZCArPSBsZW47CisJCQl9CisJCQlicmVh azsKKworCQljYXNlIEFTVFJFQU1FUl9NRU1CRVJfVFJBSUxFUjoKKwkJCXByaXZhdGVJbmZvLT5j dXJfd2FsID0gTlVMTDsKKwkJCWJyZWFrOworCisJCWNhc2UgQVNUUkVBTUVSX0FSQ0hJVkVfVFJB SUxFUjoKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQkvKiBTaG91bGRuJ3QgaGFwcGVuLiAq LworCQkJcGdfZmF0YWwoInVuZXhwZWN0ZWQgc3RhdGUgd2hpbGUgcGFyc2luZyB0YXIgZmlsZSIp OworCX0KK30KKworLyoKKyAqIEVuZC1vZi1zdHJlYW0gcHJvY2Vzc2luZyBmb3IgYW4gYXN0cmVh bWVyX3dhbGR1bXAgc3RyZWFtLgorICovCitzdGF0aWMgdm9pZAorYXN0cmVhbWVyX3dhbGR1bXBf ZmluYWxpemUoYXN0cmVhbWVyICpzdHJlYW1lcikKK3sKKwlBc3NlcnQoc3RyZWFtZXItPmJic19u ZXh0ID09IE5VTEwpOworfQorCisvKgorICogRnJlZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIGEg YXN0cmVhbWVyX3dhbGR1bXAgc3RyZWFtLgorICovCitzdGF0aWMgdm9pZAorYXN0cmVhbWVyX3dh bGR1bXBfZnJlZShhc3RyZWFtZXIgKnN0cmVhbWVyKQoreworCUFzc2VydChzdHJlYW1lci0+YmJz X25leHQgPT0gTlVMTCk7CisJcGZyZWUoc3RyZWFtZXIpOworfQorCisvKgorICogUmV0dXJucyB0 cnVlIGlmIHRoZSBhcmNoaXZlIG1lbWJlciBuYW1lIG1hdGNoZXMgdGhlIFdBTCBuYW1pbmcgZm9y bWF0LiBJZgorICogc3VjY2Vzc2Z1bCwgaXQgYWxzbyBvdXRwdXRzIHRoZSBXQUwgc2VnbWVudCBu dW1iZXIsIGFuZCB0aW1lbGluZS4KKyAqLworc3RhdGljIGJvb2wKK21lbWJlcl9pc193YWxfZmls ZShhc3RyZWFtZXJfd2FsZHVtcCAqbXlzdHJlYW1lciwgYXN0cmVhbWVyX21lbWJlciAqbWVtYmVy LAorCQkJCSAgIFhMb2dTZWdObyAqY3VyU2VnTm8sIFRpbWVMaW5lSUQgKmN1clRpbWVsaW5lKQor eworCWludAkJCXBhdGhsZW47CisJWExvZ1NlZ05vCXNlZ05vOworCVRpbWVMaW5lSUQJdGltZWxp bmU7CisJY2hhcgkgICAqZm5hbWU7CisKKwkvKiBXZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIG5v cm1hbCBmaWxlcy4gKi8KKwlpZiAobWVtYmVyLT5pc19kaXJlY3RvcnkgfHwgbWVtYmVyLT5pc19s aW5rKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwYXRobGVuID0gc3RybGVuKG1lbWJlci0+cGF0aG5h bWUpOworCWlmIChwYXRobGVuIDwgWExPR19GTkFNRV9MRU4pCisJCXJldHVybiBmYWxzZTsKKwor CS8qIFdBTCBmaWxlIGNvdWxkIGJlIHdpdGggZnVsbCBwYXRoICovCisJZm5hbWUgPSBtZW1iZXIt PnBhdGhuYW1lICsgKHBhdGhsZW4gLSBYTE9HX0ZOQU1FX0xFTik7CisJaWYgKCFJc1hMb2dGaWxl TmFtZShmbmFtZSkpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogWFhYOiBPbiBzb21lIHN5 c3RlbXMgKGUuZy4sIE9wZW5CU0QpLCB0aGUgdGFyIHV0aWxpdHkgaW5jbHVkZXMKKwkgKiBQYXhI ZWFkZXJzIHdoZW4gY3JlYXRpbmcgYW4gYXJjaGl2ZS4gVGhlc2UgYXJlIHNwZWNpYWwgZW50cmll cyB0aGF0CisJICogc3RvcmUgZXh0ZW5kZWQgbWV0YWRhdGEgZm9yIHRoZSBmaWxlIGVudHJ5IGlt bWVkaWF0ZWx5IGZvbGxvd2luZyB0aGVtLAorCSAqIGFuZCB0aGV5IHNoYXJlIHRoZSBleGFjdCBz YW1lIG5hbWUgYXMgdGhhdCBmaWxlLgorCSAqLworCWlmIChzdHJzdHIobWVtYmVyLT5wYXRobmFt ZSwgIlBheEhlYWRlcnMuIikpCisJCXJldHVybiBmYWxzZTsKKworCS8qIFBhcnNlIHBvc2l0aW9u IGZyb20gZmlsZSAqLworCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZ0aW1lbGluZSwgJnNlZ05v LCBXYWxTZWdTeik7CisKKwkqY3VyU2VnTm8gPSBzZWdObzsKKwkqY3VyVGltZWxpbmUgPSB0aW1l bGluZTsKKworCXJldHVybiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1w L21lc29uLmJ1aWxkIGIvc3JjL2Jpbi9wZ193YWxkdW1wL21lc29uLmJ1aWxkCmluZGV4IDYzM2E5 ODc0YmI1Li5hOTNiZDk0N2NhMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1wL21lc29u LmJ1aWxkCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9tZXNvbi5idWlsZApAQCAtMSw2ICsxLDcg QEAKICMgQ29weXJpZ2h0IChjKSAyMDIyLTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCiAKIHBnX3dhbGR1bXBfc291cmNlcyA9IGZpbGVzKAorICAnYXJjaGl2ZV93YWxk dW1wLmMnLAogICAnY29tcGF0LmMnLAogICAncGdfd2FsZHVtcC5jJywKICAgJ3JtZ3JkZXNjLmMn LApAQCAtMTgsNyArMTksNyBAQCBlbmRpZgogCiBwZ193YWxkdW1wID0gZXhlY3V0YWJsZSgncGdf d2FsZHVtcCcsCiAgIHBnX3dhbGR1bXBfc291cmNlcywKLSAgZGVwZW5kZW5jaWVzOiBbZnJvbnRl bmRfY29kZSwgbHo0LCB6c3RkXSwKKyAgZGVwZW5kZW5jaWVzOiBbZnJvbnRlbmRfY29kZSwgbHo0 LCB6c3RkLCBsaWJwcV0sCiAgIGNfYXJnczogWyctREZST05URU5EJ10sICMgbmVlZGVkIGZvciB4 bG9ncmVhZGVyIGV0IGFsCiAgIGt3YXJnczogZGVmYXVsdF9iaW5fYXJncywKICkKQEAgLTI5LDYg KzMwLDcgQEAgdGVzdHMgKz0gewogICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwK ICAgJ2JkJzogbWVzb24uY3VycmVudF9idWlsZF9kaXIoKSwKICAgJ3RhcCc6IHsKKyAgICAnZW52 JzogeydUQVInOiB0YXIuZm91bmQoKSA/IHRhci5mdWxsX3BhdGgoKSA6ICcnfSwKICAgICAndGVz dHMnOiBbCiAgICAgICAndC8wMDFfYmFzaWMucGwnLAogICAgICAgJ3QvMDAyX3NhdmVfZnVsbHBh Z2UucGwnLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3Ny Yy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggYTMzZmMyOGI5ZDUuLmUyYzk2YzNm NGNhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3Ny Yy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTM4LDcgKzM4LDcgQEAKICAqIGdpdmUg YSB0aG91Z2h0IGFib3V0IGRvaW5nIHRoZSBzYW1lIGluIHBnX3dhbGluc3BlY3QgY29udHJpYiBt b2R1bGUgYXMgd2VsbC4KICAqLwogCi1pbnQJCQlXYWxTZWdTejsKK2ludAkJCVdhbFNlZ1N6ID0g REVGQVVMVF9YTE9HX1NFR19TSVpFOwogCiBzdGF0aWMgY29uc3QgY2hhciAqcHJvZ25hbWU7CiAK QEAgLTE3OCw3ICsxNzgsNyBAQCBzcGxpdF9wYXRoKGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKipk aXIsIGNoYXIgKipmbmFtZSkKICAqCiAgKiByZXR1cm4gYSByZWFkIG9ubHkgZmQKICAqLwotc3Rh dGljIGludAoraW50CiBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpcmVjdG9y eSwgY29uc3QgY2hhciAqZm5hbWUpCiB7CiAJaW50CQkJZmQgPSAtMTsKQEAgLTQ0NCw2ICs0NDQs NDUgQEAgV0FMRHVtcFJlYWRQYWdlKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dSZWNQdHIg dGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxlbiwKIAlyZXR1cm4gY291bnQ7CiB9CiAKKy8qCisgKiBw Z193YWxkdW1wJ3MgWExvZ1JlYWRlclJvdXRpbmUtPnNlZ21lbnRfb3BlbiBjYWxsYmFjayB0byBz dXBwb3J0IGR1bXBpbmcgV0FMCisgKiBmaWxlcyBmcm9tIHRhciBhcmNoaXZlcy4KKyAqLworc3Rh dGljIHZvaWQKK1RhcldBTER1bXBPcGVuU2VnbWVudChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBY TG9nU2VnTm8gbmV4dFNlZ05vLAorCQkJCQkgIFRpbWVMaW5lSUQgKnRsaV9wKQoreworCS8qIE5v IGFjdGlvbiBuZWVkZWQgKi8KK30KKworLyoKKyAqIHBnX3dhbGR1bXAncyBYTG9nUmVhZGVyUm91 dGluZS0+c2VnbWVudF9jbG9zZSBjYWxsYmFjay4KKyAqLworc3RhdGljIHZvaWQKK1RhcldBTER1 bXBDbG9zZVNlZ21lbnQoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSkKK3sKKwkvKiBObyBhY3Rpb24g bmVlZGVkICovCit9CisKKy8qCisgKiBwZ193YWxkdW1wJ3MgWExvZ1JlYWRlclJvdXRpbmUtPnBh Z2VfcmVhZCBjYWxsYmFjayB0byBzdXBwb3J0IGR1bXBpbmcgV0FMCisgKiBmaWxlcyBmcm9tIHRh ciBhcmNoaXZlcy4KKyAqLworc3RhdGljIGludAorVGFyV0FMRHVtcFJlYWRQYWdlKFhMb2dSZWFk ZXJTdGF0ZSAqc3RhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxlbiwKKwkJ CQkgICBYTG9nUmVjUHRyIHRhcmdldFB0ciwgY2hhciAqcmVhZEJ1ZmYpCit7CisJWExvZ0R1bXBQ cml2YXRlICpwcml2YXRlID0gc3RhdGUtPnByaXZhdGVfZGF0YTsKKwlpbnQJCQljb3VudCA9IHJl cXVpcmVkX3JlYWRfbGVuKHByaXZhdGUsIHRhcmdldFBhZ2VQdHIsIHJlcUxlbik7CisKKwkvKiBC YWlsIG91dCBpZiB0aGUgY291bnQgdG8gYmUgcmVhZCBpcyBub3QgdmFsaWQgKi8KKwlpZiAoY291 bnQgPCAwKQorCQlyZXR1cm4gLTE7CisKKwkvKiBSZWFkIHRoZSBXQUwgcGFnZSBmcm9tIHRoZSBh cmNoaXZlIHN0cmVhbWVyICovCisJcmV0dXJuIHJlYWRfYXJjaGl2ZV93YWxfcGFnZShwcml2YXRl LCB0YXJnZXRQYWdlUHRyLCBjb3VudCwgcmVhZEJ1ZmYpOworfQorCiAvKgogICogQm9vbGVhbiB0 byByZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gV0FMIHJlY29yZCBtYXRjaGVzIGEgc3BlY2lmaWMg cmVsYXRpb24KICAqIGFuZCBvcHRpb25hbGx5IGJsb2NrLgpAQCAtNzgxLDggKzgyMCw4IEBAIHVz YWdlKHZvaWQpCiAJcHJpbnRmKF8oIiAgLUYsIC0tZm9yaz1GT1JLICAgICAgICBvbmx5IHNob3cg cmVjb3JkcyB0aGF0IG1vZGlmeSBibG9ja3MgaW4gZm9yayBGT1JLO1xuIgogCQkJICIgICAgICAg ICAgICAgICAgICAgICAgICAgdmFsaWQgbmFtZXMgYXJlIG1haW4sIGZzbSwgdm0sIGluaXRcbiIp KTsKIAlwcmludGYoXygiICAtbiwgLS1saW1pdD1OICAgICAgICAgIG51bWJlciBvZiByZWNvcmRz IHRvIGRpc3BsYXlcbiIpKTsKLQlwcmludGYoXygiICAtcCwgLS1wYXRoPVBBVEggICAgICAgIGRp cmVjdG9yeSBpbiB3aGljaCB0byBmaW5kIFdBTCBzZWdtZW50IGZpbGVzIG9yIGFcbiIKLQkJCSAi ICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSB3aXRoIGEgLi9wZ193YWwgdGhhdCBj b250YWlucyBzdWNoIGZpbGVzXG4iCisJcHJpbnRmKF8oIiAgLXAsIC0tcGF0aD1QQVRIICAgICAg ICB0YXIgYXJjaGl2ZSBvciBhIGRpcmVjdG9yeSBpbiB3aGljaCB0byBmaW5kIFdBTCBzZWdtZW50 IGZpbGVzIG9yXG4iCisJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICBhIGRpcmVjdG9yeSB3 aXRoIGEgLi9wZ193YWwgdGhhdCBjb250YWlucyBzdWNoIGZpbGVzXG4iCiAJCQkgIiAgICAgICAg ICAgICAgICAgICAgICAgICAoZGVmYXVsdDogY3VycmVudCBkaXJlY3RvcnksIC4vcGdfd2FsLCAk UEdEQVRBL3BnX3dhbClcbiIpKTsKIAlwcmludGYoXygiICAtcSwgLS1xdWlldCAgICAgICAgICAg IGRvIG5vdCBwcmludCBhbnkgb3V0cHV0LCBleGNlcHQgZm9yIGVycm9yc1xuIikpOwogCXByaW50 ZihfKCIgIC1yLCAtLXJtZ3I9Uk1HUiAgICAgICAgb25seSBzaG93IHJlY29yZHMgZ2VuZXJhdGVk IGJ5IHJlc291cmNlIG1hbmFnZXIgUk1HUjtcbiIKQEAgLTgxNCw3ICs4NTMsMTAgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJWExvZ1JlY29yZCAqcmVjb3JkOwogCVhMb2dSZWNQdHIJ Zmlyc3RfcmVjb3JkOwogCWNoYXIJICAgKndhbGRpciA9IE5VTEw7CisJY2hhcgkgICAqd2FscGF0 aCA9IE5VTEw7CiAJY2hhcgkgICAqZXJyb3Jtc2c7CisJYm9vbAkJaXNfYXJjaGl2ZSA9IGZhbHNl OworCXBnX2NvbXByZXNzX2FsZ29yaXRobSBjb21wcmVzc2lvbjsKIAogCXN0YXRpYyBzdHJ1Y3Qg b3B0aW9uIGxvbmdfb3B0aW9uc1tdID0gewogCQl7ImJrcC1kZXRhaWxzIiwgbm9fYXJndW1lbnQs IE5VTEwsICdiJ30sCkBAIC05NDYsNyArOTg4LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCiAJCQkJfQogCQkJCWJyZWFrOwogCQkJY2FzZSAncCc6Ci0JCQkJd2FsZGlyID0gcGdfc3Ry ZHVwKG9wdGFyZyk7CisJCQkJd2FscGF0aCA9IHBnX3N0cmR1cChvcHRhcmcpOwogCQkJCWJyZWFr OwogCQkJY2FzZSAncSc6CiAJCQkJY29uZmlnLnF1aWV0ID0gdHJ1ZTsKQEAgLTExMTAsMTAgKzEx NTIsMjAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWdvdG8gYmFkX2FyZ3VtZW50 OwogCX0KIAotCWlmICh3YWxkaXIgIT0gTlVMTCkKKwlpZiAod2FscGF0aCAhPSBOVUxMKQogCXsK KwkJLyogdmFsaWRhdGUgcGF0aCBwb2ludHMgdG8gdGFyIGFyY2hpdmUgKi8KKwkJaWYgKGlzX2Fy Y2hpdmVfZmlsZSh3YWxwYXRoLCAmY29tcHJlc3Npb24pKQorCQl7CisJCQljaGFyCSAgICpmbmFt ZSA9IE5VTEw7CisKKwkJCXNwbGl0X3BhdGgod2FscGF0aCwgJndhbGRpciwgJmZuYW1lKTsKKwor CQkJcHJpdmF0ZS5hcmNoaXZlX25hbWUgPSBmbmFtZTsKKwkJCWlzX2FyY2hpdmUgPSB0cnVlOwor CQl9CiAJCS8qIHZhbGlkYXRlIHBhdGggcG9pbnRzIHRvIGRpcmVjdG9yeSAqLwotCQlpZiAoIXZl cmlmeV9kaXJlY3Rvcnkod2FsZGlyKSkKKwkJZWxzZSBpZiAoIXZlcmlmeV9kaXJlY3Rvcnkod2Fs cGF0aCkpCiAJCXsKIAkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9wZW4gZGlyZWN0b3J5IFwi JXNcIjogJW0iLCB3YWxkaXIpOwogCQkJZ290byBiYWRfYXJndW1lbnQ7CkBAIC0xMTMxLDYgKzEx ODMsMTcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCWludAkJCWZkOwogCQlYTG9n U2VnTm8Jc2Vnbm87CiAKKwkJLyoKKwkJICogSWYgYSB0YXIgYXJjaGl2ZSBpcyBwYXNzZWQgdXNp bmcgdGhlIC0tcGF0aCBvcHRpb24sIGFsbCBvdGhlcgorCQkgKiBhcmd1bWVudHMgYmVjb21lIHVu bmVjZXNzYXJ5LgorCQkgKi8KKwkJaWYgKGlzX2FyY2hpdmUpCisJCXsKKwkJCXBnX2xvZ19lcnJv cigidW5uZWNlc3NhcnkgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBzcGVjaWZpZWQgd2l0aCB0YXIg YXJjaGl2ZSAoZmlyc3QgaXMgXCIlc1wiKSIsCisJCQkJCQkgYXJndltvcHRpbmRdKTsKKwkJCWdv dG8gYmFkX2FyZ3VtZW50OworCQl9CisKIAkJc3BsaXRfcGF0aChhcmd2W29wdGluZF0sICZkaXJl Y3RvcnksICZmbmFtZSk7CiAKIAkJaWYgKHdhbGRpciA9PSBOVUxMICYmIGRpcmVjdG9yeSAhPSBO VUxMKQpAQCAtMTE0MSw2OSArMTIwNCw3NyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK IAkJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZGlyZWN0b3J5IFwiJXNcIjogJW0iLCB3YWxk aXIpOwogCQl9CiAKLQkJd2FsZGlyID0gaWRlbnRpZnlfdGFyZ2V0X2RpcmVjdG9yeSh3YWxkaXIs IGZuYW1lKTsKLQkJZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5KHdhbGRpciwgZm5hbWUpOwot CQlpZiAoZmQgPCAwKQotCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIiwg Zm5hbWUpOwotCQljbG9zZShmZCk7Ci0KLQkJLyogcGFyc2UgcG9zaXRpb24gZnJvbSBmaWxlICov Ci0JCVhMb2dGcm9tRmlsZU5hbWUoZm5hbWUsICZwcml2YXRlLnRpbWVsaW5lLCAmc2Vnbm8sIFdh bFNlZ1N6KTsKLQotCQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKHByaXZhdGUuc3RhcnRwdHIpKQot CQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8sIDAsIFdhbFNlZ1N6LCBwcml2YXRlLnN0 YXJ0cHRyKTsKLQkJZWxzZSBpZiAoIVhMQnl0ZUluU2VnKHByaXZhdGUuc3RhcnRwdHIsIHNlZ25v LCBXYWxTZWdTeikpCisJCWlmIChmbmFtZSAhPSBOVUxMICYmIGlzX2FyY2hpdmVfZmlsZShmbmFt ZSwgJmNvbXByZXNzaW9uKSkKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJzdGFydCBXQUwgbG9jYXRp b24gJVgvJTA4WCBpcyBub3QgaW5zaWRlIGZpbGUgXCIlc1wiIiwKLQkJCQkJCSBMU05fRk9STUFU X0FSR1MocHJpdmF0ZS5zdGFydHB0ciksCi0JCQkJCQkgZm5hbWUpOwotCQkJZ290byBiYWRfYXJn dW1lbnQ7CisJCQlwcml2YXRlLmFyY2hpdmVfbmFtZSA9IGZuYW1lOworCQkJaXNfYXJjaGl2ZSA9 IHRydWU7CiAJCX0KLQotCQkvKiBubyBzZWNvbmQgZmlsZSBzcGVjaWZpZWQsIHNldCBlbmQgcG9z aXRpb24gKi8KLQkJaWYgKCEob3B0aW5kICsgMSA8IGFyZ2MpICYmICFYTG9nUmVjUHRySXNWYWxp ZChwcml2YXRlLmVuZHB0cikpCi0JCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihzZWdubyArIDEs IDAsIFdhbFNlZ1N6LCBwcml2YXRlLmVuZHB0cik7Ci0KLQkJLyogcGFyc2UgRU5EU0VHIGlmIHBh c3NlZCAqLwotCQlpZiAob3B0aW5kICsgMSA8IGFyZ2MpCisJCWVsc2UKIAkJewotCQkJWExvZ1Nl Z05vCWVuZHNlZ25vOwotCi0JCQkvKiBpZ25vcmUgZGlyZWN0b3J5LCBhbHJlYWR5IGhhdmUgdGhh dCAqLwotCQkJc3BsaXRfcGF0aChhcmd2W29wdGluZCArIDFdLCAmZGlyZWN0b3J5LCAmZm5hbWUp OwotCisJCQl3YWxkaXIgPSBpZGVudGlmeV90YXJnZXRfZGlyZWN0b3J5KHdhbGRpciwgZm5hbWUp OwogCQkJZmQgPSBvcGVuX2ZpbGVfaW5fZGlyZWN0b3J5KHdhbGRpciwgZm5hbWUpOwogCQkJaWYg KGZkIDwgMCkKIAkJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCIiLCBmbmFt ZSk7CiAJCQljbG9zZShmZCk7CiAKIAkJCS8qIHBhcnNlIHBvc2l0aW9uIGZyb20gZmlsZSAqLwot CQkJWExvZ0Zyb21GaWxlTmFtZShmbmFtZSwgJnByaXZhdGUudGltZWxpbmUsICZlbmRzZWdubywg V2FsU2VnU3opOworCQkJWExvZ0Zyb21GaWxlTmFtZShmbmFtZSwgJnByaXZhdGUudGltZWxpbmUs ICZzZWdubywgV2FsU2VnU3opOwogCi0JCQlpZiAoZW5kc2Vnbm8gPCBzZWdubykKLQkJCQlwZ19m YXRhbCgiRU5EU0VHICVzIGlzIGJlZm9yZSBTVEFSVFNFRyAlcyIsCi0JCQkJCQkgYXJndltvcHRp bmQgKyAxXSwgYXJndltvcHRpbmRdKTsKKwkJCWlmICghWExvZ1JlY1B0cklzVmFsaWQocHJpdmF0 ZS5zdGFydHB0cikpCisJCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8sIDAsIFdhbFNl Z1N6LCBwcml2YXRlLnN0YXJ0cHRyKTsKKwkJCWVsc2UgaWYgKCFYTEJ5dGVJblNlZyhwcml2YXRl LnN0YXJ0cHRyLCBzZWdubywgV2FsU2VnU3opKQorCQkJeworCQkJCXBnX2xvZ19lcnJvcigic3Rh cnQgV0FMIGxvY2F0aW9uICVYLyUwOFggaXMgbm90IGluc2lkZSBmaWxlIFwiJXNcIiIsCisJCQkJ CQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRlLnN0YXJ0cHRyKSwKKwkJCQkJCQkgZm5hbWUpOwor CQkJCWdvdG8gYmFkX2FyZ3VtZW50OworCQkJfQogCi0JCQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlk KHByaXZhdGUuZW5kcHRyKSkKLQkJCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihlbmRzZWdubyAr IDEsIDAsIFdhbFNlZ1N6LAotCQkJCQkJCQkJCXByaXZhdGUuZW5kcHRyKTsKKwkJCS8qIG5vIHNl Y29uZCBmaWxlIHNwZWNpZmllZCwgc2V0IGVuZCBwb3NpdGlvbiAqLworCQkJaWYgKCEob3B0aW5k ICsgMSA8IGFyZ2MpICYmICFYTG9nUmVjUHRySXNWYWxpZChwcml2YXRlLmVuZHB0cikpCisJCQkJ WExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoc2Vnbm8gKyAxLCAwLCBXYWxTZWdTeiwgcHJpdmF0ZS5l bmRwdHIpOwogCi0JCQkvKiBzZXQgc2Vnbm8gdG8gZW5kc2Vnbm8gZm9yIGNoZWNrIG9mIC0tZW5k ICovCi0JCQlzZWdubyA9IGVuZHNlZ25vOwotCQl9CisJCQkvKiBwYXJzZSBFTkRTRUcgaWYgcGFz c2VkICovCisJCQlpZiAob3B0aW5kICsgMSA8IGFyZ2MpCisJCQl7CisJCQkJWExvZ1NlZ05vCWVu ZHNlZ25vOwogCisJCQkJLyogaWdub3JlIGRpcmVjdG9yeSwgYWxyZWFkeSBoYXZlIHRoYXQgKi8K KwkJCQlzcGxpdF9wYXRoKGFyZ3Zbb3B0aW5kICsgMV0sICZkaXJlY3RvcnksICZmbmFtZSk7CiAK LQkJaWYgKCFYTEJ5dGVJblNlZyhwcml2YXRlLmVuZHB0ciwgc2Vnbm8sIFdhbFNlZ1N6KSAmJgot CQkJcHJpdmF0ZS5lbmRwdHIgIT0gKHNlZ25vICsgMSkgKiBXYWxTZWdTeikKLQkJewotCQkJcGdf bG9nX2Vycm9yKCJlbmQgV0FMIGxvY2F0aW9uICVYLyUwOFggaXMgbm90IGluc2lkZSBmaWxlIFwi JXNcIiIsCi0JCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKHByaXZhdGUuZW5kcHRyKSwKLQkJCQkJCSBh cmd2W2FyZ2MgLSAxXSk7Ci0JCQlnb3RvIGJhZF9hcmd1bWVudDsKKwkJCQlmZCA9IG9wZW5fZmls ZV9pbl9kaXJlY3Rvcnkod2FsZGlyLCBmbmFtZSk7CisJCQkJaWYgKGZkIDwgMCkKKwkJCQkJcGdf ZmF0YWwoImNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIiwgZm5hbWUpOworCQkJCWNsb3NlKGZk KTsKKworCQkJCS8qIHBhcnNlIHBvc2l0aW9uIGZyb20gZmlsZSAqLworCQkJCVhMb2dGcm9tRmls ZU5hbWUoZm5hbWUsICZwcml2YXRlLnRpbWVsaW5lLCAmZW5kc2Vnbm8sIFdhbFNlZ1N6KTsKKwor CQkJCWlmIChlbmRzZWdubyA8IHNlZ25vKQorCQkJCQlwZ19mYXRhbCgiRU5EU0VHICVzIGlzIGJl Zm9yZSBTVEFSVFNFRyAlcyIsCisJCQkJCQkJIGFyZ3Zbb3B0aW5kICsgMV0sIGFyZ3Zbb3B0aW5k XSk7CisKKwkJCQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKHByaXZhdGUuZW5kcHRyKSkKKwkJCQkJ WExvZ1NlZ05vT2Zmc2V0VG9SZWNQdHIoZW5kc2Vnbm8gKyAxLCAwLCBXYWxTZWdTeiwKKwkJCQkJ CQkJCQkJcHJpdmF0ZS5lbmRwdHIpOworCisJCQkJLyogc2V0IHNlZ25vIHRvIGVuZHNlZ25vIGZv ciBjaGVjayBvZiAtLWVuZCAqLworCQkJCXNlZ25vID0gZW5kc2Vnbm87CisJCQl9CisKKworCQkJ aWYgKCFYTEJ5dGVJblNlZyhwcml2YXRlLmVuZHB0ciwgc2Vnbm8sIFdhbFNlZ1N6KSAmJgorCQkJ CXByaXZhdGUuZW5kcHRyICE9IChzZWdubyArIDEpICogV2FsU2VnU3opCisJCQl7CisJCQkJcGdf bG9nX2Vycm9yKCJlbmQgV0FMIGxvY2F0aW9uICVYLyUwOFggaXMgbm90IGluc2lkZSBmaWxlIFwi JXNcIiIsCisJCQkJCQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRlLmVuZHB0ciksCisJCQkJCQkJ IGFyZ3ZbYXJnYyAtIDFdKTsKKwkJCQlnb3RvIGJhZF9hcmd1bWVudDsKKwkJCX0KIAkJfQogCX0K LQllbHNlCi0JCXdhbGRpciA9IGlkZW50aWZ5X3RhcmdldF9kaXJlY3Rvcnkod2FsZGlyLCBOVUxM KTsKKwllbHNlIGlmICghaXNfYXJjaGl2ZSkKKwkJd2FsZGlyID0gaWRlbnRpZnlfdGFyZ2V0X2Rp cmVjdG9yeSh3YWxwYXRoLCBOVUxMKTsKIAogCS8qIHdlIGRvbid0IGtub3cgd2hhdCB0byBwcmlu dCAqLwogCWlmICghWExvZ1JlY1B0cklzVmFsaWQocHJpdmF0ZS5zdGFydHB0cikpCkBAIC0xMjE1 LDEyICsxMjg2LDM2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCS8qIGRvbmUgd2l0 aCBhcmd1bWVudCBwYXJzaW5nLCBkbyB0aGUgYWN0dWFsIHdvcmsgKi8KIAogCS8qIHdlIGhhdmUg ZXZlcnl0aGluZyB3ZSBuZWVkLCBzdGFydCByZWFkaW5nICovCi0JeGxvZ3JlYWRlcl9zdGF0ZSA9 Ci0JCVhMb2dSZWFkZXJBbGxvY2F0ZShXYWxTZWdTeiwgd2FsZGlyLAotCQkJCQkJICAgWExfUk9V VElORSgucGFnZV9yZWFkID0gV0FMRHVtcFJlYWRQYWdlLAotCQkJCQkJCQkJICAuc2VnbWVudF9v cGVuID0gV0FMRHVtcE9wZW5TZWdtZW50LAotCQkJCQkJCQkJICAuc2VnbWVudF9jbG9zZSA9IFdB TER1bXBDbG9zZVNlZ21lbnQpLAotCQkJCQkJICAgJnByaXZhdGUpOworCWlmIChpc19hcmNoaXZl KQorCXsKKwkJLyoKKwkJICogQSBOVUxMIFdBTCBkaXJlY3RvcnkgaW5kaWNhdGVzIHRoYXQgdGhl IGFyY2hpdmUgZmlsZSBpcyBsb2NhdGVkIGluCisJCSAqIHRoZSBjdXJyZW50IHdvcmtpbmcgZGly ZWN0b3J5IG9mIHRoZSBwZ193YWxkdW1wIGV4ZWN1dGlvbgorCQkgKi8KKwkJd2FsZGlyID0gd2Fs ZGlyID8gcGdfc3RyZHVwKHdhbGRpcikgOiBwZ19zdHJkdXAoIi4iKTsKKworCQkvKiBTZXQgdXAg Zm9yIHJlYWRpbmcgdGFyIGZpbGUgKi8KKwkJaW5pdF9hcmNoaXZlX3JlYWRlcigmcHJpdmF0ZSwg d2FsZGlyLCBjb21wcmVzc2lvbik7CisKKwkJLyogUm91dGluZSB0byBkZWNvZGUgV0FMIGZpbGVz IGluIHRhciBhcmNoaXZlICovCisJCXhsb2dyZWFkZXJfc3RhdGUgPQorCQkJWExvZ1JlYWRlckFs bG9jYXRlKFdhbFNlZ1N6LCB3YWxkaXIsCisJCQkJCQkJICAgWExfUk9VVElORSgucGFnZV9yZWFk ID0gVGFyV0FMRHVtcFJlYWRQYWdlLAorCQkJCQkJCQkJCSAgLnNlZ21lbnRfb3BlbiA9IFRhcldB TER1bXBPcGVuU2VnbWVudCwKKwkJCQkJCQkJCQkgIC5zZWdtZW50X2Nsb3NlID0gVGFyV0FMRHVt cENsb3NlU2VnbWVudCksCisJCQkJCQkJICAgJnByaXZhdGUpOworCX0KKwllbHNlCisJeworCQkv KiBSb3V0aW5lIHRvIGRlY29kZSBXQUwgZmlsZXMgKi8KKwkJeGxvZ3JlYWRlcl9zdGF0ZSA9CisJ CQlYTG9nUmVhZGVyQWxsb2NhdGUoV2FsU2VnU3osIHdhbGRpciwKKwkJCQkJCQkgICBYTF9ST1VU SU5FKC5wYWdlX3JlYWQgPSBXQUxEdW1wUmVhZFBhZ2UsCisJCQkJCQkJCQkJICAuc2VnbWVudF9v cGVuID0gV0FMRHVtcE9wZW5TZWdtZW50LAorCQkJCQkJCQkJCSAgLnNlZ21lbnRfY2xvc2UgPSBX QUxEdW1wQ2xvc2VTZWdtZW50KSwKKwkJCQkJCQkgICAmcHJpdmF0ZSk7CisJfQorCiAJaWYgKCF4 bG9ncmVhZGVyX3N0YXRlKQogCQlwZ19mYXRhbCgib3V0IG9mIG1lbW9yeSB3aGlsZSBhbGxvY2F0 aW5nIGEgV0FMIHJlYWRpbmcgcHJvY2Vzc29yIik7CiAKQEAgLTEzMjksNiArMTQyNCw5IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJWExvZ1JlYWRlckZyZWUoeGxvZ3JlYWRlcl9z dGF0ZSk7CiAKKwlpZiAoaXNfYXJjaGl2ZSkKKwkJZnJlZV9hcmNoaXZlX3JlYWRlcigmcHJpdmF0 ZSk7CisKIAlyZXR1cm4gRVhJVF9TVUNDRVNTOwogCiBiYWRfYXJndW1lbnQ6CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5oIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3Bn X3dhbGR1bXAuaAppbmRleCA5MjZkNTI5ZjlkNi4uZWM3YTMzZDQwZTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3Bn X3dhbGR1bXAuaApAQCAtMTIsOSArMTIsMTMgQEAKICNkZWZpbmUgUEdfV0FMRFVNUF9ICiAKICNp bmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJmZV91dGlscy9hc3RyZWFtZXIu aCIKIAogZXh0ZXJuIGludAlXYWxTZWdTejsKIAorLyogRm9yd2FyZCBkZWNsYXJhdGlvbiAqLwor c3RydWN0IEFyY2hpdmVkV0FMRW50cnk7CisKIC8qIENvbnRhaW5zIHRoZSBuZWNlc3NhcnkgaW5m b3JtYXRpb24gdG8gZHJpdmUgV0FMIGRlY29kaW5nICovCiB0eXBlZGVmIHN0cnVjdCBYTG9nRHVt cFByaXZhdGUKIHsKQEAgLTIyLDYgKzI2LDM2IEBAIHR5cGVkZWYgc3RydWN0IFhMb2dEdW1wUHJp dmF0ZQogCVhMb2dSZWNQdHIJc3RhcnRwdHI7CiAJWExvZ1JlY1B0cgllbmRwdHI7CiAJYm9vbAkJ ZW5kcHRyX3JlYWNoZWQ7CisKKwkvKiBGaWVsZHMgcmVxdWlyZWQgdG8gcmVhZCBXQUwgZnJvbSBh cmNoaXZlICovCisJY2hhcgkgICAqYXJjaGl2ZV9uYW1lOwkvKiBUYXIgYXJjaGl2ZSBuYW1lICov CisJaW50CQkJYXJjaGl2ZV9mZDsJCS8qIEZpbGUgZGVzY3JpcHRvciBmb3IgdGhlIG9wZW4gdGFy IGZpbGUgKi8KKworCWFzdHJlYW1lciAgKmFyY2hpdmVfc3RyZWFtZXI7CisKKwkvKiBXaGF0IHRo ZSBhcmNoaXZlIHN0cmVhbWVyIGlzIGN1cnJlbnRseSByZWFkaW5nICovCisJc3RydWN0IEFyY2hp dmVkV0FMRW50cnkgKmN1cl93YWw7CisKKwkvKgorCSAqIEFsdGhvdWdoIHRoZXNlIHZhbHVlcyBj YW4gYmUgZWFzaWx5IGRlcml2ZWQgZnJvbSBzdGFydHB0ciBhbmQgZW5kcHRyLAorCSAqIGRvaW5n IHNvIHJlcGVhdGVkbHkgZm9yIGVhY2ggYXJjaGl2ZWQgbWVtYmVyIHdvdWxkIGJlIGluZWZmaWNp ZW50LCBhcworCSAqIGl0IHdvdWxkIGludm9sdmUgcmVjYWxjdWxhdGluZyBhbmQgZmlsdGVyaW5n IG91dCBpcnJlbGV2YW50IFdBTAorCSAqIHNlZ21lbnRzLgorCSAqLworCVhMb2dTZWdObwlzdGFy dFNlZ05vOworCVhMb2dTZWdObwllbmRTZWdObzsKIH0gWExvZ0R1bXBQcml2YXRlOwogCitleHRl cm4gaW50CW9wZW5fZmlsZV9pbl9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyZWN0b3J5LCBjb25z dCBjaGFyICpmbmFtZSk7CisKK2V4dGVybiBib29sIGlzX2FyY2hpdmVfZmlsZShjb25zdCBjaGFy ICpmbmFtZSwKKwkJCQkJCQlwZ19jb21wcmVzc19hbGdvcml0aG0gKmNvbXByZXNzaW9uKTsKK2V4 dGVybiB2b2lkIGluaXRfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5m bywKKwkJCQkJCQkJY29uc3QgY2hhciAqd2FsZGlyLAorCQkJCQkJCQlwZ19jb21wcmVzc19hbGdv cml0aG0gY29tcHJlc3Npb24pOworZXh0ZXJuIHZvaWQgZnJlZV9hcmNoaXZlX3JlYWRlcihYTG9n RHVtcFByaXZhdGUgKnByaXZhdGVJbmZvKTsKK2V4dGVybiBpbnQJcmVhZF9hcmNoaXZlX3dhbF9w YWdlKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8sCisJCQkJCQkJCSAgWExvZ1JlY1B0ciB0 YXJnZXRQYWdlUHRyLAorCQkJCQkJCQkgIFNpemUgY291bnQsIGNoYXIgKnJlYWRCdWZmKTsKKwog I2VuZGlmCQkJCQkJCS8qIGVuZCBvZiBQR19XQUxEVU1QX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9i YXNpYy5wbAppbmRleCAzMjg4ZmFkY2Y0OC4uMTM1NjdmYmRiYTEgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8w MDFfYmFzaWMucGwKQEAgLTMsMTAgKzMsMTMgQEAKIAogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5n cyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBDd2Q7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl cjsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKIHVzZSBUZXN0OjpNb3JlOwogCitteSAk dGFyID0gJEVOVntUQVJ9OworCiBwcm9ncmFtX2hlbHBfb2soJ3BnX3dhbGR1bXAnKTsKIHByb2dy YW1fdmVyc2lvbl9vaygncGdfd2FsZHVtcCcpOwogcHJvZ3JhbV9vcHRpb25zX2hhbmRsaW5nX29r KCdwZ193YWxkdW1wJyk7CkBAIC0yMzUsNyArMjM4LDcgQEAgY29tbWFuZF9saWtlKAogc3ViIHRl c3RfcGdfd2FsZHVtcAogewogCWxvY2FsICRUZXN0OjpCdWlsZGVyOjpMZXZlbCA9ICRUZXN0OjpC dWlsZGVyOjpMZXZlbCArIDE7Ci0JbXkgQG9wdHMgPSBAXzsKKwlteSAoJHBhdGgsIEBvcHRzKSA9 IEBfOwogCiAJbXkgKCRzdGRvdXQsICRzdGRlcnIpOwogCkBAIC0yNDMsNiArMjQ2LDcgQEAgc3Vi IHRlc3RfcGdfd2FsZHVtcAogCQkncGdfd2FsZHVtcCcsCiAJCSctLXN0YXJ0JyA9PiAkc3RhcnRf bHNuLAogCQknLS1lbmQnID0+ICRlbmRfbHNuLAorCQknLS1wYXRoJyA9PiAkcGF0aCwKIAkJQG9w dHMKIAkgIF0sCiAJICAnPicgPT4gXCRzdGRvdXQsCkBAIC0yNTQsMTEgKzI1OCw1MCBAQCBzdWIg dGVzdF9wZ193YWxkdW1wCiAJcmV0dXJuIEBsaW5lczsKIH0KIAotbXkgQGxpbmVzOworIyBDcmVh dGUgYSB0YXIgYXJjaGl2ZSwgc29ydGluZyB0aGUgZmlsZSBvcmRlcgorc3ViIGdlbmVyYXRlX2Fy Y2hpdmUKK3sKKwlteSAoJGFyY2hpdmUsICRkaXJlY3RvcnksICRjb21wcmVzc2lvbl9mbGFncykg PSBAXzsKKworCW15IEBmaWxlczsKKwlvcGVuZGlyIG15ICRkaCwgJGRpcmVjdG9yeSBvciBkaWUg Im9wZW5kaXI6ICQhIjsKKwl3aGlsZSAobXkgJGVudHJ5ID0gcmVhZGRpciAkZGgpIHsKKwkJIyBT a2lwICcuJyBhbmQgJy4uJworCQluZXh0IGlmICRlbnRyeSBlcSAnLicgfHwgJGVudHJ5IGVxICcu Lic7CisJCXB1c2ggQGZpbGVzLCAkZW50cnk7CisJfQorCWNsb3NlZGlyICRkaDsKKworCUBmaWxl cyA9IHNvcnQgQGZpbGVzOworCisJIyBtb3ZlIGludG8gdGhlIFdBTCBkaXJlY3RvcnkgYmVmb3Jl IGFyY2hpdmluZyBmaWxlcworCW15ICRjd2QgPSBnZXRjd2Q7CisJY2hkaXIoJGRpcmVjdG9yeSkg fHwgZGllICJjaGRpcjogJCEiOworCWNvbW1hbmRfb2soWyR0YXIsICRjb21wcmVzc2lvbl9mbGFn cywgJGFyY2hpdmUsIEBmaWxlc10pOworCWNoZGlyKCRjd2QpIHx8IGRpZSAiY2hkaXI6ICQhIjsK K30KKworbXkgJHRtcF9kaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRpcl9zaG9y dCgpOwogCiBteSBAc2NlbmFyaW9zID0gKAogCXsKLQkJJ3BhdGgnID0+ICRub2RlLT5kYXRhX2Rp cgorCQkncGF0aCcgPT4gJG5vZGUtPmRhdGFfZGlyLAorCQknaXNfYXJjaGl2ZScgPT4gMCwKKwkJ J2VuYWJsZWQnID0+IDEKKwl9LAorCXsKKwkJJ3BhdGgnID0+ICIkdG1wX2Rpci9wZ193YWwudGFy IiwKKwkJJ2NvbXByZXNzaW9uX21ldGhvZCcgPT4gJ25vbmUnLAorCQknY29tcHJlc3Npb25fZmxh Z3MnID0+ICctY2YnLAorCQknaXNfYXJjaGl2ZScgPT4gMSwKKwkJJ2VuYWJsZWQnID0+IDEKKwl9 LAorCXsKKwkJJ3BhdGgnID0+ICIkdG1wX2Rpci9wZ193YWwudGFyLmd6IiwKKwkJJ2NvbXByZXNz aW9uX21ldGhvZCcgPT4gJ2d6aXAnLAorCQknY29tcHJlc3Npb25fZmxhZ3MnID0+ICctY3pmJywK KwkJJ2lzX2FyY2hpdmUnID0+IDEsCisJCSdlbmFibGVkJyA9PiBjaGVja19wZ19jb25maWcoIiNk ZWZpbmUgSEFWRV9MSUJaIDEiKQogCX0pOwogCiBmb3IgbXkgJHNjZW5hcmlvIChAc2NlbmFyaW9z KQpAQCAtMjY3LDYgKzMxMCwxOSBAQCBmb3IgbXkgJHNjZW5hcmlvIChAc2NlbmFyaW9zKQogCiAJ U0tJUDoKIAl7CisJCXNraXAgInRhciBjb21tYW5kIGlzIG5vdCBhdmFpbGFibGUiLCAzCisJCSAg aWYgIWRlZmluZWQgJHRhcjsKKwkJc2tpcCAiJHNjZW5hcmlvLT57J2NvbXByZXNzaW9uX21ldGhv ZCd9IGNvbXByZXNzaW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCIsIDMKKwkJICBpZiAh JHNjZW5hcmlvLT57J2VuYWJsZWQnfSAmJiAkc2NlbmFyaW8tPnsnaXNfYXJjaGl2ZSd9OworCisJ CSAgIyBjcmVhdGUgcGdfd2FsIGFyY2hpdmUKKwkJICBpZiAoJHNjZW5hcmlvLT57J2lzX2FyY2hp dmUnfSkKKwkJICB7CisJCQkgIGdlbmVyYXRlX2FyY2hpdmUoJHBhdGgsCisJCQkJICAkbm9kZS0+ ZGF0YV9kaXIgLiAnL3BnX3dhbCcsCisJCQkJICAkc2NlbmFyaW8tPnsnY29tcHJlc3Npb25fZmxh Z3MnfSk7CisJCSAgfQorCiAJCWNvbW1hbmRfZmFpbHNfbGlrZSgKIAkJCVsgJ3BnX3dhbGR1bXAn LCAnLS1wYXRoJyA9PiAkcGF0aCBdLAogCQkJcXIvZXJyb3I6IG5vIHN0YXJ0IFdBTCBsb2NhdGlv biBnaXZlbi8sCkBAIC0yOTgsMzggKzM1NCw0MiBAQCBmb3IgbXkgJHNjZW5hcmlvIChAc2NlbmFy aW9zKQogCQkJcXIvZXJyb3I6IGVycm9yIGluIFdBTCByZWNvcmQgYXQvLAogCQkJJ2Vycm9ycyBh cmUgc2hvd24gd2l0aCAtLXF1aWV0Jyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCct LXBhdGgnID0+ICRwYXRoKTsKKwkJbXkgQGxpbmVzOworCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1 bXAoJHBhdGgpOwogCQlpcyhncmVwKCEvXnJtZ3I6IFx3LywgQGxpbmVzKSwgMCwgJ2FsbCBvdXRw dXQgbGluZXMgYXJlIHJtZ3IgbGluZXMnKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAo Jy0tcGF0aCcgPT4gJHBhdGgsICctLWxpbWl0JyA9PiA2KTsKKwkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCRwYXRoLCAnLS1saW1pdCcgPT4gNik7CiAJCWlzKEBsaW5lcywgNiwgJ2xpbWl0IG9w dGlvbiBvYnNlcnZlZCcpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9 PiAkcGF0aCwgJy0tZnVsbHBhZ2UnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRo LCAnLS1mdWxscGFnZScpOwogCQlpcyhncmVwKCEvXnJtZ3I6LipcYkZQV1xiLywgQGxpbmVzKSwg MCwgJ2FsbCBvdXRwdXQgbGluZXMgYXJlIEZQVycpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2Fs ZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tc3RhdHMnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCRwYXRoLCAnLS1zdGF0cycpOwogCQlsaWtlKCRsaW5lc1swXSwgcXIvV0FMIHN0YXRp c3RpY3MvLCAic3RhdGlzdGljcyBvbiBzdGRvdXQiKTsKIAkJaXMoZ3JlcCgvXnJtZ3I6LywgQGxp bmVzKSwgMCwgJ25vIHJtZ3IgbGluZXMgb3V0cHV0Jyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193 YWxkdW1wKCctLXBhdGgnID0+ICRwYXRoLCAnLS1zdGF0cz1yZWNvcmQnKTsKKwkJQGxpbmVzID0g dGVzdF9wZ193YWxkdW1wKCRwYXRoLCAnLS1zdGF0cz1yZWNvcmQnKTsKIAkJbGlrZSgkbGluZXNb MF0sIHFyL1dBTCBzdGF0aXN0aWNzLywgInN0YXRpc3RpY3Mgb24gc3Rkb3V0Iik7CiAJCWlzKGdy ZXAoL15ybWdyOi8sIEBsaW5lcyksIDAsICdubyBybWdyIGxpbmVzIG91dHB1dCcpOwogCi0JCUBs aW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0aCwgJy0tcm1ncicgPT4gJ0J0 cmVlJyk7CisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0aCwgJy0tcm1ncicgPT4gJ0J0 cmVlJyk7CiAJCWlzKGdyZXAoIS9ecm1ncjogQnRyZWUvLCBAbGluZXMpLCAwLCAnb25seSBCdHJl ZSBsaW5lcycpOwogCi0JCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgnLS1wYXRoJyA9PiAkcGF0 aCwgJy0tZm9yaycgPT4gJ2luaXQnKTsKKwkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1wKCRwYXRo LCAnLS1mb3JrJyA9PiAnaW5pdCcpOwogCQlpcyhncmVwKCEvZm9yayBpbml0LywgQGxpbmVzKSwg MCwgJ29ubHkgaW5pdCBmb3JrIGxpbmVzJyk7CiAKLQkJQGxpbmVzID0gdGVzdF9wZ193YWxkdW1w KCctLXBhdGgnID0+ICRwYXRoLAorCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJHBhdGgsCiAJ CQknLS1yZWxhdGlvbicgPT4gIiRkZWZhdWx0X3RzX29pZC8kcG9zdGdyZXNfZGJfb2lkLyRyZWxf dDFfb2lkIik7CiAJCWlzKGdyZXAoIS9yZWwgJGRlZmF1bHRfdHNfb2lkXC8kcG9zdGdyZXNfZGJf b2lkXC8kcmVsX3QxX29pZC8sIEBsaW5lcyksCiAJCQkwLCAnb25seSBsaW5lcyBmb3Igc2VsZWN0 ZWQgcmVsYXRpb24nKTsKIAotCQlAbGluZXMgPSB0ZXN0X3BnX3dhbGR1bXAoJy0tcGF0aCcgPT4g JHBhdGgsCisJCUBsaW5lcyA9IHRlc3RfcGdfd2FsZHVtcCgkcGF0aCwKIAkJCSctLXJlbGF0aW9u JyA9PiAiJGRlZmF1bHRfdHNfb2lkLyRwb3N0Z3Jlc19kYl9vaWQvJHJlbF9pMWFfb2lkIiwKIAkJ CSctLWJsb2NrJyA9PiAxKTsKIAkJaXMoZ3JlcCghL1xiYmxrIDFcYi8sIEBsaW5lcyksIDAsICdv bmx5IGxpbmVzIGZvciBzZWxlY3RlZCBibG9jaycpOworCisJCSMgQ2xlYW51cC4KKwkJdW5saW5r ICRwYXRoIGlmICRzY2VuYXJpby0+eydpc19hcmNoaXZlJ307CiAJfQogfQogCmRpZmYgLS1naXQg YS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CmluZGV4IGI5ZTY3MWZjZGE4Li5iMGQ3Mzc0M2NlYSAxMDA2NDQKLS0tIGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKQEAgLTE0NCw2ICsxNDQsOCBAQCBBcmNoaXZlT3B0cwogQXJjaGl2ZVNo dXRkb3duQ0IKIEFyY2hpdmVTdGFydHVwQ0IKIEFyY2hpdmVTdHJlYW1TdGF0ZQorQXJjaGl2ZWRX QUxFbnRyeQorQXJjaGl2ZWRXQUxfaGFzaAogQXJjaGl2ZXJPdXRwdXQKIEFyY2hpdmVyU3RhZ2UK IEFycmF5QW5hbHl6ZUV4dHJhRGF0YQpAQCAtMzQ5NSw2ICszNDk3LDcgQEAgYXN0cmVhbWVyX3Jl Y292ZXJ5X2luamVjdG9yCiBhc3RyZWFtZXJfdGFyX2FyY2hpdmVyCiBhc3RyZWFtZXJfdGFyX3Bh cnNlcgogYXN0cmVhbWVyX3ZlcmlmeQorYXN0cmVhbWVyX3dhbGR1bXAKIGFzdHJlYW1lcl96c3Rk X2ZyYW1lCiBhdXRoX3Bhc3N3b3JkX2hvb2tfdHlwCiBhdXRvdmFjX3RhYmxlCi0tIAoyLjQ3LjEK Cg== --000000000000150811064766e0a2 Content-Type: application/octet-stream; name="v10-0005-pg_waldump-Remove-the-restriction-on-the-order-o.patch" Content-Disposition: attachment; filename="v10-0005-pg_waldump-Remove-the-restriction-on-the-order-o.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjwukx0r4 RnJvbSBjMjgxMWIxNDdkNTBhN2UyZThmNjU2NjM0NGU5ZjFmODU2MTQ1NjBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgNiBOb3YgMjAyNSAxMzo0ODozMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjEwIDUvOF0gcGdf d2FsZHVtcDogUmVtb3ZlIHRoZSByZXN0cmljdGlvbiBvbiB0aGUgb3JkZXIgb2YKIGFyY2hpdmVk IFdBTCBmaWxlcy4KCldpdGggcHJldmlvdXMgcGF0Y2gsIHBnX3dhbGR1bXAgd291bGQgc3RvcCBk ZWNvZGluZyBpZiBXQUwgZmlsZXMgd2VyZQpub3QgaW4gdGhlIHJlcXVpcmVkIHNlcXVlbmNlLiBX aXRoIHRoaXMgcGF0Y2gsIGRlY29kaW5nIHdpbGwgbm93CmNvbnRpbnVlLiAgQW55IFdBTCBmaWxl IHRoYXQgaXMgb3V0IG9mIG9yZGVyIHdpbGwgYmUgd3JpdHRlbiB0byBhCnRlbXBvcmFyeSBsb2Nh dGlvbiwgZnJvbSB3aGljaCBpdCB3aWxsIGJlIHJlYWQgbGF0ZXIuIE9uY2UgYSB0ZW1wb3JhcnkK ZmlsZSBoYXMgYmVlbiByZWFkLCBpdCB3aWxsIGJlIHJlbW92ZWQuCi0tLQogZG9jL3NyYy9zZ21s L3JlZi9wZ193YWxkdW1wLnNnbWwgICAgIHwgICA4ICstCiBzcmMvYmluL3BnX3dhbGR1bXAvYXJj aGl2ZV93YWxkdW1wLmMgfCAyMzAgKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBzcmMvYmlu L3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jICAgICAgfCAgNDEgKysrKy0KIHNyYy9iaW4vcGdfd2Fs ZHVtcC9wZ193YWxkdW1wLmggICAgICB8ICAgNCArCiBzcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFf YmFzaWMucGwgICAgfCAgIDMgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMjY0IGluc2VydGlvbnMoKyks IDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfd2FsZHVt cC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ193YWxkdW1wLnNnbWwKaW5kZXggZDAwNGJiMGY2 N2UuLjI3YWRmNzc3NTVjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3dhbGR1bXAuc2dtbApAQCAtMTQ5LDggKzE0 OSwxMiBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgICAgb2YgPGVudmFyPlBHREFU QTwvZW52YXI+LgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgSWYgYSB0 YXIgYXJjaGl2ZSBpcyBwcm92aWRlZCwgaXRzIFdBTCBzZWdtZW50IGZpbGVzIG11c3QgYmUgaW4K LSAgICAgICAgc2VxdWVudGlhbCBvcmRlcjsgb3RoZXJ3aXNlLCBhbiBlcnJvciB3aWxsIGJlIHJl cG9ydGVkLgorICAgICAgICBJZiBhIHRhciBhcmNoaXZlIGlzIHByb3ZpZGVkIGFuZCBpdHMgV0FM IHNlZ21lbnQgZmlsZXMgYXJlIG5vdCBpbgorICAgICAgICBzZXF1ZW50aWFsIG9yZGVyLCB0aG9z ZSBmaWxlcyB3aWxsIGJlIHdyaXR0ZW4gdG8gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAg IG5hbWVkIHN0YXJ0aW5nIHdpdGggPGZpbGVuYW1lPndhbGR1bXBfdG1wPC9maWxlbmFtZT4uIFRo aXMgZGlyZWN0b3J5IHdpbGwgYmUKKyAgICAgICAgY3JlYXRlZCBpbnNpZGUgdGhlIGRpcmVjdG9y eSBzcGVjaWZpZWQgYnkgdGhlIDxlbnZhcj5UTVBESVI8L2VudmFyPgorICAgICAgICBlbnZpcm9u bWVudCB2YXJpYWJsZSBpZiBpdCBpcyBzZXQ7IG90aGVyd2lzZSwgaXQgd2lsbCBiZSBjcmVhdGVk IHdpdGhpbgorICAgICAgICB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIHRhciBhcmNoaXZlLgog ICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2FsZHVtcC5jIGIvc3JjL2Jp bi9wZ193YWxkdW1wL2FyY2hpdmVfd2FsZHVtcC5jCmluZGV4IDZiYTA2NzE2M2Q1Li5hYTY0ZGE5 YTU3ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193YWxkdW1wL2FyY2hpdmVfd2FsZHVtcC5jCisr KyBiL3NyYy9iaW4vcGdfd2FsZHVtcC9hcmNoaXZlX3dhbGR1bXAuYwpAQCAtMTcsNiArMTcsNyBA QAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50ZXJuYWwu aCIKKyNpbmNsdWRlICJjb21tb24vZmlsZV9wZXJtLmgiCiAjaW5jbHVkZSAiY29tbW9uL2hhc2hm bi5oIgogI2luY2x1ZGUgImNvbW1vbi9sb2dnaW5nLmgiCiAjaW5jbHVkZSAiZmVfdXRpbHMvc2lt cGxlX2xpc3QuaCIKQEAgLTI3LDYgKzI4LDkgQEAKICAqLwogI2RlZmluZSBSRUFEX0NIVU5LX1NJ WkUJCQkJKDEyOCAqIDEwMjQpCiAKKy8qIFRlbXBvcmFyeSBleHBvcnRlZCBXQUwgZmlsZSBkaXJl Y3RvcnkgKi8KK3N0YXRpYyBjaGFyICpUbXBXYWxTZWdEaXIgPSBOVUxMOworCiAvKiBIYXNoIGVu dHJ5IHN0cnVjdHVyZSBmb3IgaG9sZGluZyBXQUwgc2VnbWVudCBkYXRhIHJlYWQgZnJvbSB0aGUg YXJjaGl2ZSAqLwogdHlwZWRlZiBzdHJ1Y3QgQXJjaGl2ZWRXQUxFbnRyeQogewpAQCAtNjQsNiAr NjgsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgYXN0cmVhbWVyX3dhbGR1bXAKIHN0YXRpYyBpbnQJcmVh ZF9hcmNoaXZlX2ZpbGUoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgU2l6ZSBjb3VudCk7 CiBzdGF0aWMgQXJjaGl2ZWRXQUxFbnRyeSAqZ2V0X2FyY2hpdmVfd2FsX2VudHJ5KFhMb2dTZWdO byBzZWdubywKIAkJCQkJCQkJCQkJICAgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbyk7Citz dGF0aWMgdm9pZCBzZXR1cF90bXBzZWdfZGlyKGNvbnN0IGNoYXIgKndhbGRpcik7CitzdGF0aWMg dm9pZCBjbGVhbnVwX3RtcHNlZ19kaXJfYXRleGl0KHZvaWQpOworCitzdGF0aWMgRklMRSAqcHJl cGFyZV90bXBfd3JpdGUoWExvZ1NlZ05vIHNlZ25vKTsKK3N0YXRpYyB2b2lkIHBlcmZvcm1fdG1w X3dyaXRlKFhMb2dTZWdObyBzZWdubywgU3RyaW5nSW5mbyBidWYsIEZJTEUgKmZpbGUpOwogCiBz dGF0aWMgYXN0cmVhbWVyICphc3RyZWFtZXJfd2FsZHVtcF9uZXcoWExvZ0R1bXBQcml2YXRlICpw cml2YXRlSW5mbyk7CiBzdGF0aWMgdm9pZCBhc3RyZWFtZXJfd2FsZHVtcF9jb250ZW50KGFzdHJl YW1lciAqc3RyZWFtZXIsCkBAIC0xMjEsNyArMTMwLDkgQEAgaXNfYXJjaGl2ZV9maWxlKGNvbnN0 IGNoYXIgKmZuYW1lLCBwZ19jb21wcmVzc19hbGdvcml0aG0gKmNvbXByZXNzaW9uKQogLyoKICAq IEluaXRpYWxpemVzIHRoZSB0YXIgYXJjaGl2ZSByZWFkZXIsIGNyZWF0ZXMgYSBoYXNoIHRhYmxl IGZvciBXQUwgZW50cmllcywKICAqIGNoZWNrcyBmb3IgZXhpc3RpbmcgdmFsaWQgV0FMIHNlZ21l bnRzIGluIHRoZSBhcmNoaXZlIGZpbGUgYW5kIHJldHJpZXZlcyB0aGUKLSAqIHNlZ21lbnQgc2l6 ZSwgYW5kIHNldHMgdXAgZmlsdGVycyBmb3IgcmVsZXZhbnQgZW50cmllcy4KKyAqIHNlZ21lbnQg c2l6ZSwgYW5kIHNldHMgdXAgZmlsdGVycyBmb3IgcmVsZXZhbnQgZW50cmllcy4gSXQgYWxzbyBj b25maWd1cmVzIGEKKyAqIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIG91dC1vZi1vcmRlciBXQUwg ZGF0YSBhbmQgcmVnaXN0ZXJzIGFuIGV4aXQgY2FsbGJhY2sKKyAqIHRvIGNsZWFuIHVwIHRlbXBv cmFyeSBmaWxlcy4KICAqLwogdm9pZAogaW5pdF9hcmNoaXZlX3JlYWRlcihYTG9nRHVtcFByaXZh dGUgKnByaXZhdGVJbmZvLCBjb25zdCBjaGFyICp3YWxkaXIsCkBAIC0xOTcsNiArMjA4LDEzIEBA IGluaXRfYXJjaGl2ZV9yZWFkZXIoWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbywgY29uc3Qg Y2hhciAqd2FsZGlyLAogCQlwcml2YXRlSW5mby0+ZW5kU2VnTm8gPSBVSU5UNjRfTUFYOwogCWVs c2UKIAkJWExCeXRlVG9TZWcocHJpdmF0ZUluZm8tPmVuZHB0ciwgcHJpdmF0ZUluZm8tPmVuZFNl Z05vLCBXYWxTZWdTeik7CisKKwkvKgorCSAqIFNldHVwIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8g c3RvcmUgV0FMIHNlZ21lbnRzIGFuZCBzZXQgdXAgYW4gZXhpdAorCSAqIGNhbGxiYWNrIHRvIHJl bW92ZSBpdCB1cG9uIGNvbXBsZXRpb24uCisJICovCisJc2V0dXBfdG1wc2VnX2Rpcih3YWxkaXIp OworCWF0ZXhpdChjbGVhbnVwX3RtcHNlZ19kaXJfYXRleGl0KTsKIH0KIAogLyoKQEAgLTM3MCwx NSArMzg4LDE4IEBAIHJlYWRfYXJjaGl2ZV9maWxlKFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUlu Zm8sIFNpemUgY291bnQpCiB9CiAKIC8qCi0gKiBSZXR1cm5zIHRoZSBhcmNoaXZlZCBXQUwgZW50 cnkgZnJvbSB0aGUgaGFzaCB0YWJsZSBpZiBpdCBleGlzdHMuIE90aGVyd2lzZSwKKyAqIFJldHVy bnMgdGhlIGFyY2hpdmVkIFdBTCBlbnRyeSBmcm9tIHRoZSBoYXNoIHRhYmxlIGlmIGl0IGV4aXN0 cy4gIE90aGVyd2lzZSwKICAqIGl0IGludm9rZXMgdGhlIHJvdXRpbmUgdG8gcmVhZCB0aGUgYXJj aGl2ZWQgZmlsZSwgd2hpY2ggdGhlbiBwb3B1bGF0ZXMgdGhlCi0gKiBlbnRyeSBpbiB0aGUgaGFz aCB0YWJsZS4KKyAqIGVudHJ5IGluIHRoZSBoYXNoIHRhYmxlLiAgSWYgdGhlIGFyY2hpdmUgc3Ry ZWFtZXIgaGFwcGVucyB0byBiZSByZWFkaW5nIGEKKyAqIFdBTCBmcm9tIGFyY2hpdmUgZmlsZSB0 aGF0IGlzIG5vdCBjdXJyZW50bHkgbmVlZGVkLCB0aGF0IFdBTCBkYXRhIGlzIHdyaXR0ZW4KKyAq IHRvIGEgdGVtcG9yYXJ5IGZpbGUuCiAgKi8KIHN0YXRpYyBBcmNoaXZlZFdBTEVudHJ5ICoKIGdl dF9hcmNoaXZlX3dhbF9lbnRyeShYTG9nU2VnTm8gc2Vnbm8sIFhMb2dEdW1wUHJpdmF0ZSAqcHJp dmF0ZUluZm8pCiB7CiAJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnkgPSBOVUxMOwogCWNoYXIJCWZu YW1lW01BWEZOQU1FTEVOXTsKKwlGSUxFCSAgICp3cml0ZV9mcCA9IE5VTEw7CiAKIAkvKiBTZWFy Y2ggaGFzaCB0YWJsZSAqLwogCWVudHJ5ID0gQXJjaGl2ZWRXQUxfbG9va3VwKEFyY2hpdmVkV0FM X0hUQUIsIHNlZ25vKTsKQEAgLTM5Miw4ICs0MTMsMTEgQEAgZ2V0X2FyY2hpdmVfd2FsX2VudHJ5 KFhMb2dTZWdObyBzZWdubywgWExvZ0R1bXBQcml2YXRlICpwcml2YXRlSW5mbykKIAkJZW50cnkg PSBwcml2YXRlSW5mby0+Y3VyX3dhbDsKIAogCQkvKiBGZXRjaCBtb3JlIGRhdGEgKi8KLQkJaWYg KHJlYWRfYXJjaGl2ZV9maWxlKHByaXZhdGVJbmZvLCBSRUFEX0NIVU5LX1NJWkUpID09IDApCi0J CQlicmVhazsJCQkvKiBhcmNoaXZlIGZpbGUgZW5kZWQgKi8KKwkJaWYgKGVudHJ5ID09IE5VTEwg fHwgZW50cnktPmJ1Zi5sZW4gPT0gMCkKKwkJeworCQkJaWYgKHJlYWRfYXJjaGl2ZV9maWxlKHBy aXZhdGVJbmZvLCBSRUFEX0NIVU5LX1NJWkUpID09IDApCisJCQkJYnJlYWs7CQkJLyogYXJjaGl2 ZSBmaWxlIGVuZGVkICovCisJCX0KIAogCQkvKgogCQkgKiBFaXRoZXIsIGhlcmUgZm9yIHRoZSBm aXJzdCB0aW1lLCBvciB0aGUgYXJjaGl2ZWQgc3RyZWFtZXIgaXMKQEAgLTQxOSwyMCArNDQzLDMx IEBAIGdldF9hcmNoaXZlX3dhbF9lbnRyeShYTG9nU2VnTm8gc2Vnbm8sIFhMb2dEdW1wUHJpdmF0 ZSAqcHJpdmF0ZUluZm8pCiAJCX0KIAogCQkvKgotCQkgKiBYWFg6IElmIHRoZSBzZWdtZW50IGJl aW5nIHJlYWQgbm90IHRoZSByZXF1ZXN0ZWQgb25lLCB0aGUgZGF0YSBtdXN0Ci0JCSAqIGJlIGJ1 ZmZlcmVkLCBhcyB3ZSBjdXJyZW50bHkgbGFjayB0aGUgbWVjaGFuaXNtIHRvIHdyaXRlIGl0IHRv IGEKLQkJICogdGVtcG9yYXJ5IGZpbGUuIFRoaXMgaXMgYSBrbm93biBsaW1pdGF0aW9uIHRoYXQg d2lsbCBiZSBmaXhlZCBpbiB0aGUKLQkJICogbmV4dCBwYXRjaCwgYXMgdGhlIGJ1ZmZlciBjb3Vs ZCBncm93IHVwIHRvIHRoZSBmdWxsIFdBTCBzZWdtZW50Ci0JCSAqIHNpemUuCisJCSAqIEFyY2hp dmUgc3RyZWFtZXIgaXMgY3VycmVudGx5IHJlYWRpbmcgYSBmaWxlIHRoYXQgaXNuJ3QgdGhlIG9u ZQorCQkgKiBhc2tlZCBmb3IsIGJ1dCBpdCdzIHJlcXVpcmVkIGluIHRoZSBmdXR1cmUuIEl0IHNo b3VsZCBiZSB3cml0dGVuIHRvCisJCSAqIGEgdGVtcG9yYXJ5IGxvY2F0aW9uIGZvciByZXRyaWV2 YWwgd2hlbiBuZWVkZWQuCiAJCSAqLwotCQlpZiAoc2Vnbm8gPiBlbnRyeS0+c2Vnbm8pCi0JCQlj b250aW51ZTsKIAotCQkvKiBXQUwgc2VnbWVudHMgbXVzdCBiZSBhcmNoaXZlZCBpbiBvcmRlciAq LwotCQlwZ19sb2dfZXJyb3IoIldBTCBmaWxlcyBhcmUgbm90IGFyY2hpdmVkIGluIHNlcXVlbnRp YWwgb3JkZXIiKTsKLQkJcGdfbG9nX2Vycm9yX2RldGFpbCgiRXhwZWN0aW5nIHNlZ21lbnQgbnVt YmVyICIgVUlOVDY0X0ZPUk1BVCAiIGJ1dCBmb3VuZCAiIFVJTlQ2NF9GT1JNQVQgIi4iLAotCQkJ CQkJCXNlZ25vLCBlbnRyeS0+c2Vnbm8pOwotCQlleGl0KDEpOworCQkvKiBDcmVhdGUgYSB0ZW1w b3JhcnkgZmlsZSBpZiBvbmUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCAqLworCQlpZiAoIWVudHJ5 LT50bXBzZWdfZXhpc3RzKQorCQl7CisJCQl3cml0ZV9mcCA9IHByZXBhcmVfdG1wX3dyaXRlKGVu dHJ5LT5zZWdubyk7CisJCQllbnRyeS0+dG1wc2VnX2V4aXN0cyA9IHRydWU7CisJCX0KKworCQkv KiBGbHVzaCBkYXRhIGZyb20gdGhlIGJ1ZmZlciB0byB0aGUgZmlsZSAqLworCQlwZXJmb3JtX3Rt cF93cml0ZShlbnRyeS0+c2Vnbm8sICZlbnRyeS0+YnVmLCB3cml0ZV9mcCk7CisJCXJlc2V0U3Ry aW5nSW5mbygmZW50cnktPmJ1Zik7CisKKwkJLyoKKwkJICogVGhlIGNoYW5nZSBpbiB0aGUgY3Vy cmVudCBzZWdtZW50IGVudHJ5IGluZGljYXRlcyB0aGF0IHRoZSByZWFkaW5nCisJCSAqIG9mIHRo aXMgZmlsZSBoYXMgZW5kZWQuCisJCSAqLworCQlpZiAoZW50cnkgIT0gcHJpdmF0ZUluZm8tPmN1 cl93YWwgJiYgd3JpdGVfZnAgIT0gTlVMTCkKKwkJeworCQkJZmNsb3NlKHdyaXRlX2ZwKTsKKwkJ CXdyaXRlX2ZwID0gTlVMTDsKKwkJfQogCX0KIAogCS8qIFJlcXVlc3RlZCBXQUwgc2VnbWVudCBu b3QgZm91bmQgKi8KQEAgLTQ0MSw3ICs0NzYsMTY2IEBAIGdldF9hcmNoaXZlX3dhbF9lbnRyeShY TG9nU2VnTm8gc2Vnbm8sIFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pCiB9CiAKIC8qCi0g KiBDcmVhdGUgYW4gYXN0cmVhbWVyIHRoYXQgY2FuIHJlYWQgV0FMIGZyb20gYSB0YXIgZmlsZS4K KyAqIFNldCB1cCBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gdGVtcG9yYXJpbHkgc3RvcmUgV0FM IHNlZ21lbnRzLgorICovCitzdGF0aWMgdm9pZAorc2V0dXBfdG1wc2VnX2Rpcihjb25zdCBjaGFy ICp3YWxkaXIpCit7CisJY2hhcgkgICAqdGVtcGxhdGU7CisKKwkvKgorCSAqIFVzZSB0aGUgZGly ZWN0b3J5IHNwZWNpZmllZCBieSB0aGUgVE1QRElSIGVudmlyb25tZW50IHZhcmlhYmxlLiBJZiBp dCdzCisJICogbm90IHNldCwgdXNlIHRoZSBwcm92aWRlZCBXQUwgZGlyZWN0b3J5IHRvIGV4dHJh Y3QgV0FMIGZpbGUKKwkgKiB0ZW1wb3JhcmlseS4KKwkgKi8KKwl0ZW1wbGF0ZSA9IHBzcHJpbnRm KCIlcy93YWxkdW1wX3RtcC1YWFhYWFgiLAorCQkJCQkJZ2V0ZW52KCJUTVBESVIiKSA/IGdldGVu digiVE1QRElSIikgOiB3YWxkaXIpOworCVRtcFdhbFNlZ0RpciA9IG1rZHRlbXAodGVtcGxhdGUp OworCisJaWYgKFRtcFdhbFNlZ0RpciA9PSBOVUxMKQorCQlwZ19mYXRhbCgiY291bGQgbm90IGNy ZWF0ZSBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIHRlbXBsYXRlKTsKKworCWNhbm9uaWNhbGl6ZV9w YXRoKFRtcFdhbFNlZ0Rpcik7CisKKwlwZ19sb2dfZGVidWcoImNyZWF0ZWQgZGlyZWN0b3J5IFwi JXNcIiIsIFRtcFdhbFNlZ0Rpcik7Cit9CisKKy8qCisgKiBSZW1vdmVzIHRoZSB0ZW1wb3Jhcmls eSBzdG9yZSBXQUwgc2VnbWVudHMsIGlmIGFueSwgYXQgZXhpdGluZy4KKyAqLworc3RhdGljIHZv aWQKK2NsZWFudXBfdG1wc2VnX2Rpcl9hdGV4aXQodm9pZCkKK3sKKwlBcmNoaXZlZFdBTF9pdGVy YXRvciBpdDsKKwlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeTsKKworCS8qIFJlbW92ZSB0ZW1wb3Jh cnkgc2VnbWVudHMgKi8KKwlBcmNoaXZlZFdBTF9zdGFydF9pdGVyYXRlKEFyY2hpdmVkV0FMX0hU QUIsICZpdCk7CisJd2hpbGUgKChlbnRyeSA9IEFyY2hpdmVkV0FMX2l0ZXJhdGUoQXJjaGl2ZWRX QUxfSFRBQiwgJml0KSkgIT0gTlVMTCkKKwl7CisJCWlmIChlbnRyeS0+dG1wc2VnX2V4aXN0cykK KwkJeworCQkJcmVtb3ZlX3RtcF93YWxzZWcoZW50cnktPnNlZ25vLCBmYWxzZSk7CisJCQllbnRy eS0+dG1wc2VnX2V4aXN0cyA9IGZhbHNlOworCQl9CisJfQorCisJLyogUmVtb3ZlIHRlbXBvcmFy eSBkaXJlY3RvcnkgKi8KKwlpZiAocm1kaXIoVG1wV2FsU2VnRGlyKSA9PSAwKQorCQlwZ19sb2df ZGVidWcoInJlbW92ZWQgZGlyZWN0b3J5IFwiJXNcIiIsIFRtcFdhbFNlZ0Rpcik7Cit9CisKKy8q CisgKiBHZW5lcmF0ZSB0aGUgdGVtcG9yYXJ5IFdBTCBmaWxlIHBhdGguCisgKgorICogTm90ZSB0 aGF0IHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgdG8gcGZyZWUgaXQuCisgKi8KK2NoYXIgKgor Z2V0X3RtcF93YWxzZWdfcGF0aChYTG9nU2VnTm8gc2Vnbm8pCit7CisJY2hhcgkgICAqZnBhdGgg PSAoY2hhciAqKSBwYWxsb2MoTUFYUEdQQVRIKTsKKworCUFzc2VydChUbXBXYWxTZWdEaXIpOwor CisJc25wcmludGYoZnBhdGgsIE1BWFBHUEFUSCwgIiVzLyUwOFglMDhYIiwKKwkJCSBUbXBXYWxT ZWdEaXIsCisJCQkgKHVpbnQzMikgKHNlZ25vIC8gWExvZ1NlZ21lbnRzUGVyWExvZ0lkKFdhbFNl Z1N6KSksCisJCQkgKHVpbnQzMikgKHNlZ25vICUgWExvZ1NlZ21lbnRzUGVyWExvZ0lkKFdhbFNl Z1N6KSkpOworCisJcmV0dXJuIGZwYXRoOworfQorCisvKgorICogUm91dGluZSB0byBjaGVjayB3 aGV0aGVyIGEgdGVtcG9yYXJ5IGZpbGUgZXhpc3RzIGZvciB0aGUgY29ycmVzcG9uZGluZyBXQUwK KyAqIHNlZ21lbnQgbnVtYmVyLgorICovCitib29sCit0bXBfd2Fsc2VnX2V4aXN0cyhYTG9nU2Vn Tm8gc2Vnbm8pCit7CisJQXJjaGl2ZWRXQUxFbnRyeSAqZW50cnk7CisKKwllbnRyeSA9IEFyY2hp dmVkV0FMX2xvb2t1cChBcmNoaXZlZFdBTF9IVEFCLCBzZWdubyk7CisKKwlpZiAoZW50cnkgPT0g TlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIGVudHJ5LT50bXBzZWdfZXhpc3RzOwor fQorCisvKgorICogQ3JlYXRlIGFuIGVtcHR5IHBsYWNlaG9sZGVyIGZpbGUgYW5kIHJldHVybiBp dHMgaGFuZGxlLgorICovCitzdGF0aWMgRklMRSAqCitwcmVwYXJlX3RtcF93cml0ZShYTG9nU2Vn Tm8gc2Vnbm8pCit7CisJRklMRQkgICAqZmlsZTsKKwljaGFyCSAgICpmcGF0aDsKKworCWZwYXRo ID0gZ2V0X3RtcF93YWxzZWdfcGF0aChzZWdubyk7CisKKwkvKiBDcmVhdGUgYW4gZW1wdHkgcGxh Y2Vob2xkZXIgKi8KKwlmaWxlID0gZm9wZW4oZnBhdGgsIFBHX0JJTkFSWV9XKTsKKwlpZiAoZmls ZSA9PSBOVUxMKQorCQlwZ19mYXRhbCgiY291bGQgbm90IGNyZWF0ZSBmaWxlIFwiJXNcIjogJW0i LCBmcGF0aCk7CisKKyNpZm5kZWYgV0lOMzIKKwlpZiAoY2htb2QoZnBhdGgsIHBnX2ZpbGVfY3Jl YXRlX21vZGUpKQorCQlwZ19mYXRhbCgiY291bGQgbm90IHNldCBwZXJtaXNzaW9ucyBvbiBmaWxl IFwiJXNcIjogJW0iLAorCQkJCSBmcGF0aCk7CisjZW5kaWYKKworCXBnX2xvZ19kZWJ1ZygidGVt cG9yYXJpbHkgZXhwb3J0aW5nIGZpbGUgXCIlc1wiIiwgZnBhdGgpOworCXBmcmVlKGZwYXRoKTsK KworCXJldHVybiBmaWxlOworfQorCisvKgorICogV3JpdGUgYnVmZmVyIGRhdGEgdG8gdGhlIGdp dmVuIGZpbGUgaGFuZGxlLgorICovCitzdGF0aWMgdm9pZAorcGVyZm9ybV90bXBfd3JpdGUoWExv Z1NlZ05vIHNlZ25vLCBTdHJpbmdJbmZvIGJ1ZiwgRklMRSAqZmlsZSkKK3sKKwlBc3NlcnQoZmls ZSk7CisKKwllcnJubyA9IDA7CisJaWYgKGJ1Zi0+bGVuID4gMCAmJiBmd3JpdGUoYnVmLT5kYXRh LCBidWYtPmxlbiwgMSwgZmlsZSkgIT0gMSkKKwl7CisJCS8qCisJCSAqIElmIHdyaXRlIGRpZG4n dCBzZXQgZXJybm8sIGFzc3VtZSBwcm9ibGVtIGlzIG5vIGRpc2sgc3BhY2UKKwkJICovCisJCWlm IChlcnJubyA9PSAwKQorCQkJZXJybm8gPSBFTk9TUEM7CisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qg d3JpdGUgdG8gZmlsZSBcIiVzXCI6ICVtIiwKKwkJCQkgZ2V0X3RtcF93YWxzZWdfcGF0aChzZWdu bykpOworCX0KK30KKworLyoKKyAqIFJlbW92ZSB0ZW1wb3JhcnkgZmlsZQorICovCit2b2lkCity ZW1vdmVfdG1wX3dhbHNlZyhYTG9nU2VnTm8gc2Vnbm8sIGJvb2wgdXBkYXRlX2VudHJ5KQorewor CWNoYXIJICAgKmZwYXRoID0gZ2V0X3RtcF93YWxzZWdfcGF0aChzZWdubyk7CisKKwlpZiAodW5s aW5rKGZwYXRoKSA9PSAwKQorCQlwZ19sb2dfZGVidWcoInJlbW92ZWQgZmlsZSBcIiVzXCIiLCBm cGF0aCk7CisJcGZyZWUoZnBhdGgpOworCisJLyogVXBkYXRlIGVudHJ5IGlmIHJlcXVlc3RlZCAq LworCWlmICh1cGRhdGVfZW50cnkpCisJeworCQlBcmNoaXZlZFdBTEVudHJ5ICplbnRyeTsKKwor CQllbnRyeSA9IEFyY2hpdmVkV0FMX2xvb2t1cChBcmNoaXZlZFdBTF9IVEFCLCBzZWdubyk7CisJ CUFzc2VydChlbnRyeSAhPSBOVUxMKTsKKwkJZW50cnktPnRtcHNlZ19leGlzdHMgPSBmYWxzZTsK Kwl9Cit9CisKKy8qCisgKiBDcmVhdGUgYW4gYXN0cmVhbWVyIHRoYXQgY2FuIHJlYWQgV0FMIGZy b20gdGFyIGZpbGUuCiAgKi8KIHN0YXRpYyBhc3RyZWFtZXIgKgogYXN0cmVhbWVyX3dhbGR1bXBf bmV3KFhMb2dEdW1wUHJpdmF0ZSAqcHJpdmF0ZUluZm8pCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X3dhbGR1bXAvcGdfd2FsZHVtcC5jIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwpp bmRleCBlMmM5NmMzZjRjYS4uOTZkMTdlOTk2OTAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2Fs ZHVtcC9wZ193YWxkdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwpA QCAtNDc0LDEyICs0NzQsNTEgQEAgVGFyV0FMRHVtcFJlYWRQYWdlKFhMb2dSZWFkZXJTdGF0ZSAq c3RhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcUxlbiwKIHsKIAlYTG9nRHVt cFByaXZhdGUgKnByaXZhdGUgPSBzdGF0ZS0+cHJpdmF0ZV9kYXRhOwogCWludAkJCWNvdW50ID0g cmVxdWlyZWRfcmVhZF9sZW4ocHJpdmF0ZSwgdGFyZ2V0UGFnZVB0ciwgcmVxTGVuKTsKKwlYTG9n U2VnTm8JbmV4dFNlZ05vOwogCiAJLyogQmFpbCBvdXQgaWYgdGhlIGNvdW50IHRvIGJlIHJlYWQg aXMgbm90IHZhbGlkICovCiAJaWYgKGNvdW50IDwgMCkKIAkJcmV0dXJuIC0xOwogCi0JLyogUmVh ZCB0aGUgV0FMIHBhZ2UgZnJvbSB0aGUgYXJjaGl2ZSBzdHJlYW1lciAqLworCS8qCisJICogSWYg dGhlIHRhcmdldCBwYWdlIGlzIGluIGEgZGlmZmVyZW50IHNlZ21lbnQsIGZpcnN0IGNoZWNrIGZv ciB0aGUgV0FMCisJICogc2VnbWVudCdzIHBoeXNpY2FsIGV4aXN0ZW5jZSBpbiB0aGUgdGVtcG9y YXJ5IGRpcmVjdG9yeS4KKwkgKi8KKwluZXh0U2VnTm8gPSBzdGF0ZS0+c2VnLndzX3NlZ25vOwor CWlmICghWExCeXRlSW5TZWcodGFyZ2V0UGFnZVB0ciwgbmV4dFNlZ05vLCBXYWxTZWdTeikpCisJ eworCQlpZiAoc3RhdGUtPnNlZy53c19maWxlID49IDApCisJCXsKKwkJCWNsb3NlKHN0YXRlLT5z ZWcud3NfZmlsZSk7CisJCQlzdGF0ZS0+c2VnLndzX2ZpbGUgPSAtMTsKKworCQkJLyogUmVtb3Zl IHRoaXMgZmlsZSwgYXMgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4gKi8KKwkJCXJlbW92ZV90bXBf d2Fsc2VnKG5leHRTZWdObywgdHJ1ZSk7CisJCX0KKworCQlYTEJ5dGVUb1NlZyh0YXJnZXRQYWdl UHRyLCBuZXh0U2VnTm8sIFdhbFNlZ1N6KTsKKwkJc3RhdGUtPnNlZy53c190bGkgPSBwcml2YXRl LT50aW1lbGluZTsKKwkJc3RhdGUtPnNlZy53c19zZWdubyA9IG5leHRTZWdObzsKKworCQkvKgor CQkgKiBJZiB0aGUgbmV4dCBzZWdtZW50IGV4aXN0cywgb3BlbiBpdCBhbmQgY29udGludWUgcmVh ZGluZyBmcm9tIHRoZXJlCisJCSAqLworCQlpZiAodG1wX3dhbHNlZ19leGlzdHMobmV4dFNlZ05v KSkKKwkJeworCQkJY2hhcgkgICAqZnBhdGg7CisKKwkJCWZwYXRoID0gZ2V0X3RtcF93YWxzZWdf cGF0aChuZXh0U2VnTm8pOworCQkJc3RhdGUtPnNlZy53c19maWxlID0gb3BlbihmcGF0aCwgT19S RE9OTFkgfCBQR19CSU5BUlksIDApOworCQkJcGZyZWUoZnBhdGgpOworCQl9CisJfQorCisJLyog Q29udGludWUgcmVhZGluZyBmcm9tIHRoZSBvcGVuIFdBTCBzZWdtZW50LCBpZiBhbnkgKi8KKwlp ZiAoc3RhdGUtPnNlZy53c19maWxlID49IDApCisJCXJldHVybiBXQUxEdW1wUmVhZFBhZ2Uoc3Rh dGUsIHRhcmdldFBhZ2VQdHIsIGNvdW50LCB0YXJnZXRQdHIsCisJCQkJCQkJICAgcmVhZEJ1ZmYp OworCisJLyogT3RoZXJ3aXNlLCByZWFkIHRoZSBXQUwgcGFnZSBmcm9tIHRoZSBhcmNoaXZlIHN0 cmVhbWVyICovCiAJcmV0dXJuIHJlYWRfYXJjaGl2ZV93YWxfcGFnZShwcml2YXRlLCB0YXJnZXRQ YWdlUHRyLCBjb3VudCwgcmVhZEJ1ZmYpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dh bGR1bXAvcGdfd2FsZHVtcC5oIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaAppbmRl eCBlYzdhMzNkNDBlMC4uMDNlMDI2MjViYTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVt cC9wZ193YWxkdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuaApAQCAt NTgsNCArNTgsOCBAQCBleHRlcm4gaW50CXJlYWRfYXJjaGl2ZV93YWxfcGFnZShYTG9nRHVtcFBy aXZhdGUgKnByaXZhdGVJbmZvLAogCQkJCQkJCQkgIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwK IAkJCQkJCQkJICBTaXplIGNvdW50LCBjaGFyICpyZWFkQnVmZik7CiAKK2V4dGVybiBjaGFyICpn ZXRfdG1wX3dhbHNlZ19wYXRoKFhMb2dTZWdObyBzZWdubyk7CitleHRlcm4gYm9vbCB0bXBfd2Fs c2VnX2V4aXN0cyhYTG9nU2VnTm8gc2Vnbm8pOworZXh0ZXJuIHZvaWQgcmVtb3ZlX3RtcF93YWxz ZWcoWExvZ1NlZ05vIHNlZ25vLCBib29sIHVwZGF0ZV9lbnRyeSk7CisKICNlbmRpZgkJCQkJCQkv KiBlbmQgb2YgUEdfV0FMRFVNUF9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAv dC8wMDFfYmFzaWMucGwgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwKaW5kZXgg MTM1NjdmYmRiYTEuLjY4YjBjZGQyOWU1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAv dC8wMDFfYmFzaWMucGwKKysrIGIvc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsCkBA IC03LDYgKzcsNyBAQCB1c2UgQ3dkOwogdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7CiB1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7CiB1c2UgVGVzdDo6TW9yZTsKK3VzZSBMaXN0OjpV dGlsIHF3KHNodWZmbGUpOwogCiBteSAkdGFyID0gJEVOVntUQVJ9OwogCkBAIC0yNzIsNyArMjcz LDcgQEAgc3ViIGdlbmVyYXRlX2FyY2hpdmUKIAl9CiAJY2xvc2VkaXIgJGRoOwogCi0JQGZpbGVz ID0gc29ydCBAZmlsZXM7CisJQGZpbGVzID0gc2h1ZmZsZSBAZmlsZXM7CiAKIAkjIG1vdmUgaW50 byB0aGUgV0FMIGRpcmVjdG9yeSBiZWZvcmUgYXJjaGl2aW5nIGZpbGVzCiAJbXkgJGN3ZCA9IGdl dGN3ZDsKLS0gCjIuNDcuMQoK --000000000000150811064766e0a2 Content-Type: application/octet-stream; name="v10-0006-pg_verifybackup-Delay-default-WAL-directory-prep.patch" Content-Disposition: attachment; filename="v10-0006-pg_verifybackup-Delay-default-WAL-directory-prep.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjwul1n15 RnJvbSA0ZjYyYzIyNjNmYjU2NzgxMWRkMTFiMjc1ZDg4M2VhMWUwYjdhNGRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTYgSnVsIDIwMjUgMTQ6NDc6NDMgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxMCA2LzhdIHBn X3ZlcmlmeWJhY2t1cDogRGVsYXkgZGVmYXVsdCBXQUwgZGlyZWN0b3J5CiBwcmVwYXJhdGlvbi4K CldlIGFyZSBub3Qgc3VyZSB3aGV0aGVyIHRvIHBhcnNlIFdBTCBmcm9tIGEgZGlyZWN0b3J5IG9y IGFuIGFyY2hpdmUKdW50aWwgdGhlIGJhY2t1cCBmb3JtYXQgaXMga25vd24uIFRoZXJlZm9yZSwg d2UgZGVsYXkgcHJlcGFyaW5nIHRoZQpkZWZhdWx0IFdBTCBkaXJlY3RvcnkgdW50aWwgdGhlIHBv aW50IG9mIHBhcnNpbmcuIFRoaXMgZGVsYXkgaXMKaGFybWxlc3MsIGFzIHRoZSBXQUwgZGlyZWN0 b3J5IGlzIG5vdCB1c2VkIGVsc2V3aGVyZS4KLS0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9w Z192ZXJpZnliYWNrdXAuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNr dXAvcGdfdmVyaWZ5YmFja3VwLmMgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnli YWNrdXAuYwppbmRleCA0NTZlMDM3NWUxMy4uYzZiZTc1ZWJhNzQgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCkBAIC0yODUsMTAgKzI4NSw2IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCQltYW5pZmVzdF9wYXRoID0gcHNwcmludGYoIiVzL2JhY2t1 cF9tYW5pZmVzdCIsCiAJCQkJCQkJCSBjb250ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOwogCi0JLyog QnkgZGVmYXVsdCwgbG9vayBmb3IgdGhlIFdBTCBpbiB0aGUgYmFja3VwIGRpcmVjdG9yeSwgdG9v LiAqLwotCWlmICh3YWxfZGlyZWN0b3J5ID09IE5VTEwpCi0JCXdhbF9kaXJlY3RvcnkgPSBwc3By aW50ZigiJXMvcGdfd2FsIiwgY29udGV4dC5iYWNrdXBfZGlyZWN0b3J5KTsKLQogCS8qCiAJICog VHJ5IHRvIHJlYWQgdGhlIG1hbmlmZXN0LiBXZSB0cmVhdCBhbnkgZXJyb3JzIGVuY291bnRlcmVk IHdoaWxlIHBhcnNpbmcKIAkgKiB0aGUgbWFuaWZlc3QgYXMgZmF0YWw7IHRoZXJlIGRvZXNuJ3Qg c2VlbSB0byBiZSBtdWNoIHBvaW50IGluIHRyeWluZyB0bwpAQCAtMzY4LDYgKzM2NCwxMCBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlpZiAoY29udGV4dC5mb3JtYXQgPT0gJ3AnICYm ICFjb250ZXh0LnNraXBfY2hlY2tzdW1zKQogCQl2ZXJpZnlfYmFja3VwX2NoZWNrc3VtcygmY29u dGV4dCk7CiAKKwkvKiBCeSBkZWZhdWx0LCBsb29rIGZvciB0aGUgV0FMIGluIHRoZSBiYWNrdXAg ZGlyZWN0b3J5LCB0b28uICovCisJaWYgKHdhbF9kaXJlY3RvcnkgPT0gTlVMTCkKKwkJd2FsX2Rp cmVjdG9yeSA9IHBzcHJpbnRmKCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9kaXJlY3Rvcnkp OworCiAJLyoKIAkgKiBUcnkgdG8gcGFyc2UgdGhlIHJlcXVpcmVkIHJhbmdlcyBvZiBXQUwgcmVj b3JkcywgdW5sZXNzIHdlIHdlcmUgdG9sZAogCSAqIG5vdCB0byBkbyBzby4KLS0gCjIuNDcuMQoK --000000000000150811064766e0a2 Content-Type: application/octet-stream; name="v10-0007-pg_verifybackup-Rename-the-wal-directory-switch-.patch" Content-Disposition: attachment; filename="v10-0007-pg_verifybackup-Rename-the-wal-directory-switch-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjwul6076 RnJvbSBkNTQ3YWViOTkzMDNjYzgzY2IxZjhhZDIzMzgwNGViMmU2MDNkNzJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjUgTm92IDIwMjUgMTc6MzI6MTQgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxMCA3LzhdIHBn X3ZlcmlmeWJhY2t1cDogUmVuYW1lIHRoZSB3YWwtZGlyZWN0b3J5IHN3aXRjaCB0bwogd2FsLXBh dGgKCldpdGggcHJldmlvdXMgcGF0Y2hlcyB0byBwZ193YWxkdW1wIGNhbiBub3cgZGVjb2RlIFdB TCBkaXJlY3RseSBmcm9tCnRhciBmaWxlcy4gIFRoaXMgbWVhbnMgeW91J2xsIGJlIGFibGUgdG8g c3BlY2lmeSBhIHRhciBhcmNoaXZlIHBhdGgKaW5zdGVhZCBvZiBhIHRyYWRpdGlvbmFsIFdBTCBk aXJlY3RvcnkuCgpUbyBrZWVwIHRoaW5ncyBjb25zaXN0ZW50IGFuZCBtb3JlIHZlcnNhdGlsZSwg d2Ugc2hvdWxkIGFsc28KZ2VuZXJhbGl6ZSB0aGUgaW5wdXQgc3dpdGNoIGZvciBwZ192ZXJpZnli YWNrdXAuIEl0IHNob3VsZCBhY2NlcHQKZWl0aGVyIGEgZGlyZWN0b3J5IG9yIGEgdGFyIGZpbGUg cGF0aCB0aGF0IGNvbnRhaW5zIFdBTHMuIFRoaXMgY2hhbmdlCndpbGwgYWxzbyBhbGlnbmluZyBp dCB3aXRoIHRoZSBleGlzdGluZyBtYW5pZmVzdC1wYXRoIHN3aXRjaCBuYW1pbmcuCgo9PSBOT1RF ID09CiAgVGhlIGNvcnJlc3BvbmRpbmcgUE8gZmlsZXMgcmVxdWlyZSB1cGRhdGluZyBkdWUgdG8g dGhpcyBjaGFuZ2UuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbCAg ICAgfCAgMiArLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMgfCAy MiArKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwN193 YWwucGwgICAgICB8ICA0ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwg MTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnli YWNrdXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwKaW5kZXgg NjFjMTI5NzVlNGEuLmU5YjhiZmQ1MWIxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Bn X3ZlcmlmeWJhY2t1cC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3Vw LnNnbWwKQEAgLTI2MSw3ICsyNjEsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogICAg ICA8dmFybGlzdGVudHJ5PgogICAgICAgPHRlcm0+PG9wdGlvbj4tdyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cGF0aDwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgotICAgICAg PHRlcm0+PG9wdGlvbj4tLXdhbC1kaXJlY3Rvcnk9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnBhdGg8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDx0ZXJtPjxvcHRp b24+LS13YWwtcGF0aD08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0aDwvcmVwbGFj ZWFibGU+PC9vcHRpb24+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgog ICAgICAgICBUcnkgdG8gcGFyc2UgV0FMIGZpbGVzIHN0b3JlZCBpbiB0aGUgc3BlY2lmaWVkIGRp cmVjdG9yeSwgcmF0aGVyIHRoYW4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BnX3ZlcmlmeWJhY2t1cC5jIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFj a3VwLmMKaW5kZXggYzZiZTc1ZWJhNzQuLjk3MTc4ZDU4NWMzIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYworKysgYi9zcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYwpAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgdm9pZCB2 ZXJpZnlfZmlsZV9jaGVja3N1bSh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkg dWludDggKmJ1ZmZlcik7CiBzdGF0aWMgdm9pZCBwYXJzZV9yZXF1aXJlZF93YWwodmVyaWZpZXJf Y29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkgICBjaGFyICpwZ193YWxkdW1wX3BhdGgsCi0JCQkJ CQkJICAgY2hhciAqd2FsX2RpcmVjdG9yeSk7CisJCQkJCQkJICAgY2hhciAqd2FsX3BhdGgpOwog c3RhdGljIGFzdHJlYW1lciAqY3JlYXRlX2FyY2hpdmVfdmVyaWZpZXIodmVyaWZpZXJfY29udGV4 dCAqY29udGV4dCwKIAkJCQkJCQkJCQkgIGNoYXIgKmFyY2hpdmVfbmFtZSwKIAkJCQkJCQkJCQkg IE9pZCB0YmxzcGNfb2lkLApAQCAtMTI2LDcgKzEyNiw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQogCQl7InByb2dyZXNzIiwgbm9fYXJndW1lbnQsIE5VTEwsICdQJ30sCiAJCXsicXVp ZXQiLCBub19hcmd1bWVudCwgTlVMTCwgJ3EnfSwKIAkJeyJza2lwLWNoZWNrc3VtcyIsIG5vX2Fy Z3VtZW50LCBOVUxMLCAncyd9LAotCQl7IndhbC1kaXJlY3RvcnkiLCByZXF1aXJlZF9hcmd1bWVu dCwgTlVMTCwgJ3cnfSwKKwkJeyJ3YWwtcGF0aCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAn dyd9LAogCQl7TlVMTCwgMCwgTlVMTCwgMH0KIAl9OwogCkBAIC0xMzUsNyArMTM1LDcgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJY2hhcgkgICAqbWFuaWZlc3RfcGF0aCA9IE5VTEw7 CiAJYm9vbAkJbm9fcGFyc2Vfd2FsID0gZmFsc2U7CiAJYm9vbAkJcXVpZXQgPSBmYWxzZTsKLQlj aGFyCSAgICp3YWxfZGlyZWN0b3J5ID0gTlVMTDsKKwljaGFyCSAgICp3YWxfcGF0aCA9IE5VTEw7 CiAJY2hhcgkgICAqcGdfd2FsZHVtcF9wYXRoID0gTlVMTDsKIAlESVIJCSAgICpkaXI7CiAKQEAg LTIyMSw4ICsyMjEsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQljb250ZXh0 LnNraXBfY2hlY2tzdW1zID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCWNhc2UgJ3cnOgotCQkJCXdh bF9kaXJlY3RvcnkgPSBwc3RyZHVwKG9wdGFyZyk7Ci0JCQkJY2Fub25pY2FsaXplX3BhdGgod2Fs X2RpcmVjdG9yeSk7CisJCQkJd2FsX3BhdGggPSBwc3RyZHVwKG9wdGFyZyk7CisJCQkJY2Fub25p Y2FsaXplX3BhdGgod2FsX3BhdGgpOwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBn ZXRvcHRfbG9uZyBhbHJlYWR5IGVtaXR0ZWQgYSBjb21wbGFpbnQgKi8KQEAgLTM2NSwxNSArMzY1 LDE1IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl2ZXJpZnlfYmFja3VwX2NoZWNr c3VtcygmY29udGV4dCk7CiAKIAkvKiBCeSBkZWZhdWx0LCBsb29rIGZvciB0aGUgV0FMIGluIHRo ZSBiYWNrdXAgZGlyZWN0b3J5LCB0b28uICovCi0JaWYgKHdhbF9kaXJlY3RvcnkgPT0gTlVMTCkK LQkJd2FsX2RpcmVjdG9yeSA9IHBzcHJpbnRmKCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9k aXJlY3RvcnkpOworCWlmICh3YWxfcGF0aCA9PSBOVUxMKQorCQl3YWxfcGF0aCA9IHBzcHJpbnRm KCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9kaXJlY3RvcnkpOwogCiAJLyoKIAkgKiBUcnkg dG8gcGFyc2UgdGhlIHJlcXVpcmVkIHJhbmdlcyBvZiBXQUwgcmVjb3JkcywgdW5sZXNzIHdlIHdl cmUgdG9sZAogCSAqIG5vdCB0byBkbyBzby4KIAkgKi8KIAlpZiAoIW5vX3BhcnNlX3dhbCkKLQkJ cGFyc2VfcmVxdWlyZWRfd2FsKCZjb250ZXh0LCBwZ193YWxkdW1wX3BhdGgsIHdhbF9kaXJlY3Rv cnkpOworCQlwYXJzZV9yZXF1aXJlZF93YWwoJmNvbnRleHQsIHBnX3dhbGR1bXBfcGF0aCwgd2Fs X3BhdGgpOwogCiAJLyoKIAkgKiBJZiBldmVyeXRoaW5nIGxvb2tzIE9LLCB0ZWxsIHRoZSB1c2Vy IHRoaXMsIHVubGVzcyB3ZSB3ZXJlIGFza2VkIHRvCkBAIC0xMTk4LDcgKzExOTgsNyBAQCB2ZXJp ZnlfZmlsZV9jaGVja3N1bSh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBtYW5pZmVzdF9maWxl ICptLAogICovCiBzdGF0aWMgdm9pZAogcGFyc2VfcmVxdWlyZWRfd2FsKHZlcmlmaWVyX2NvbnRl eHQgKmNvbnRleHQsIGNoYXIgKnBnX3dhbGR1bXBfcGF0aCwKLQkJCQkgICBjaGFyICp3YWxfZGly ZWN0b3J5KQorCQkJCSAgIGNoYXIgKndhbF9wYXRoKQogewogCW1hbmlmZXN0X2RhdGEgKm1hbmlm ZXN0ID0gY29udGV4dC0+bWFuaWZlc3Q7CiAJbWFuaWZlc3Rfd2FsX3JhbmdlICp0aGlzX3dhbF9y YW5nZSA9IG1hbmlmZXN0LT5maXJzdF93YWxfcmFuZ2U7CkBAIC0xMjA4LDcgKzEyMDgsNyBAQCBw YXJzZV9yZXF1aXJlZF93YWwodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgY2hhciAqcGdfd2Fs ZHVtcF9wYXRoLAogCQljaGFyCSAgICpwZ193YWxkdW1wX2NtZDsKIAogCQlwZ193YWxkdW1wX2Nt ZCA9IHBzcHJpbnRmKCJcIiVzXCIgLS1xdWlldCAtLXBhdGg9XCIlc1wiIC0tdGltZWxpbmU9JXUg LS1zdGFydD0lWC8lMDhYIC0tZW5kPSVYLyUwOFhcbiIsCi0JCQkJCQkJCSAgcGdfd2FsZHVtcF9w YXRoLCB3YWxfZGlyZWN0b3J5LCB0aGlzX3dhbF9yYW5nZS0+dGxpLAorCQkJCQkJCQkgIHBnX3dh bGR1bXBfcGF0aCwgd2FsX3BhdGgsIHRoaXNfd2FsX3JhbmdlLT50bGksCiAJCQkJCQkJCSAgTFNO X0ZPUk1BVF9BUkdTKHRoaXNfd2FsX3JhbmdlLT5zdGFydF9sc24pLAogCQkJCQkJCQkgIExTTl9G T1JNQVRfQVJHUyh0aGlzX3dhbF9yYW5nZS0+ZW5kX2xzbikpOwogCQlmZmx1c2goTlVMTCk7CkBA IC0xMzc2LDcgKzEzNzYsNyBAQCB1c2FnZSh2b2lkKQogCXByaW50ZihfKCIgIC1QLCAtLXByb2dy ZXNzICAgICAgICAgICAgICBzaG93IHByb2dyZXNzIGluZm9ybWF0aW9uXG4iKSk7CiAJcHJpbnRm KF8oIiAgLXEsIC0tcXVpZXQgICAgICAgICAgICAgICAgIGRvIG5vdCBwcmludCBhbnkgb3V0cHV0 LCBleGNlcHQgZm9yIGVycm9yc1xuIikpOwogCXByaW50ZihfKCIgIC1zLCAtLXNraXAtY2hlY2tz dW1zICAgICAgICBza2lwIGNoZWNrc3VtIHZlcmlmaWNhdGlvblxuIikpOwotCXByaW50ZihfKCIg IC13LCAtLXdhbC1kaXJlY3Rvcnk9UEFUSCAgICB1c2Ugc3BlY2lmaWVkIHBhdGggZm9yIFdBTCBm aWxlc1xuIikpOworCXByaW50ZihfKCIgIC13LCAtLXdhbC1wYXRoPVBBVEggICAgICAgICB1c2Ug c3BlY2lmaWVkIHBhdGggZm9yIFdBTCBmaWxlc1xuIikpOwogCXByaW50ZihfKCIgIC1WLCAtLXZl cnNpb24gICAgICAgICAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiwgdGhlbiBleGl0 XG4iKSk7CiAJcHJpbnRmKF8oIiAgLT8sIC0taGVscCAgICAgICAgICAgICAgICAgIHNob3cgdGhp cyBoZWxwLCB0aGVuIGV4aXRcbiIpKTsKIAlwcmludGYoXygiXG5SZXBvcnQgYnVncyB0byA8JXM+ LlxuIiksIFBBQ0tBR0VfQlVHUkVQT1JUKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5 YmFja3VwL3QvMDA3X3dhbC5wbCBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA3X3dhbC5w bAppbmRleCA3OTA4N2ExZjZiZS4uOGFkMjIzNDQ1M2QgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3QvMDA3X3dhbC5wbAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90 LzAwN193YWwucGwKQEAgLTQyLDEwICs0MiwxMCBAQCBjb21tYW5kX29rKFsgJ3BnX3ZlcmlmeWJh Y2t1cCcsICctLW5vLXBhcnNlLXdhbCcsICRiYWNrdXBfcGF0aCBdLAogY29tbWFuZF9vaygKIAlb CiAJCSdwZ192ZXJpZnliYWNrdXAnLAotCQknLS13YWwtZGlyZWN0b3J5JyA9PiAkcmVsb2NhdGVk X3BnX3dhbCwKKwkJJy0td2FsLXBhdGgnID0+ICRyZWxvY2F0ZWRfcGdfd2FsLAogCQkkYmFja3Vw X3BhdGgKIAldLAotCSctLXdhbC1kaXJlY3RvcnkgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBXQUwg ZGlyZWN0b3J5Jyk7CisJJy0td2FsLXBhdGggY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBXQUwgZGly ZWN0b3J5Jyk7CiAKICMgTW92ZSBkaXJlY3RvcnkgYmFjayB0byBvcmlnaW5hbCBsb2NhdGlvbi4K IHJlbmFtZSgkcmVsb2NhdGVkX3BnX3dhbCwgJG9yaWdpbmFsX3BnX3dhbCkgfHwgZGllICJyZW5h bWUgcGdfd2FsIGJhY2s6ICQhIjsKLS0gCjIuNDcuMQoK --000000000000150811064766e0a2 Content-Type: application/octet-stream; name="v10-0008-pg_verifybackup-enabled-WAL-parsing-for-tar-form.patch" Content-Disposition: attachment; filename="v10-0008-pg_verifybackup-enabled-WAL-parsing-for-tar-form.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjwulbt47 RnJvbSAzMTc5MWVkMDMyMGFmMjE2YzgwYThhNzIwMTc2NzBmMGIwZTA2NzUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjUgTm92IDIwMjUgMTc6MzQ6MjYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxMCA4LzhdIHBn X3ZlcmlmeWJhY2t1cDogZW5hYmxlZCBXQUwgcGFyc2luZyBmb3IgdGFyLWZvcm1hdAogYmFja3Vw CgpOb3cgdGhhdCBwZ193YWxkdW1wIHN1cHBvcnRzIGRlY29kaW5nIGZyb20gdGFyIGFyY2hpdmVz LCB3ZSBzaG91bGQKbGV2ZXJhZ2UgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIHJlbW92ZSB0aGUgcHJl dmlvdXMgcmVzdHJpY3Rpb24gb24gV0FMCnBhcnNpbmcgZm9yIHRhci1iYWNrZWQgZm9ybWF0cy4K LS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1cC5zZ21sICAgICAgICAgfCAgNSAr LQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMgICAgIHwgNjYgKysr KysrKysrKysrKy0tLS0tLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDJfYWxnb3JpdGht LnBsICAgIHwgIDQgLS0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24u cGwgICB8ICA0ICstCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwOF91bnRhci5wbCAgICAg ICAgfCAgNSArLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBs IHwgIDUgKy0KIDYgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ192ZXJpZnliYWNrdXAuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwKaW5kZXggZTliOGJmZDUxYjEu LjE2YjUwYjVhNGRmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3ZlcmlmeWJhY2t1 cC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfdmVyaWZ5YmFja3VwLnNnbWwKQEAgLTM2 LDEwICszNiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgPGxpdGVyYWw+YmFja3Vw X21hbmlmZXN0PC9saXRlcmFsPiBnZW5lcmF0ZWQgYnkgdGhlIHNlcnZlciBhdCB0aGUgdGltZQog ICAgb2YgdGhlIGJhY2t1cC4gVGhlIGJhY2t1cCBtYXkgYmUgc3RvcmVkIGVpdGhlciBpbiB0aGUg InBsYWluIiBvciB0aGUgInRhciIKICAgIGZvcm1hdDsgdGhpcyBpbmNsdWRlcyB0YXItZm9ybWF0 IGJhY2t1cHMgY29tcHJlc3NlZCB3aXRoIGFueSBhbGdvcml0aG0KLSAgIHN1cHBvcnRlZCBieSA8 YXBwbGljYXRpb24+cGdfYmFzZWJhY2t1cDwvYXBwbGljYXRpb24+LiBIb3dldmVyLCBhdCBwcmVz ZW50LAotICAgPGxpdGVyYWw+V0FMPC9saXRlcmFsPiB2ZXJpZmljYXRpb24gaXMgc3VwcG9ydGVk IG9ubHkgZm9yIHBsYWluLWZvcm1hdAotICAgYmFja3Vwcy4gVGhlcmVmb3JlLCBpZiB0aGUgYmFj a3VwIGlzIHN0b3JlZCBpbiB0YXItZm9ybWF0LCB0aGUKLSAgIDxsaXRlcmFsPi1uLCAtLW5vLXBh cnNlLXdhbDwvbGl0ZXJhbD4gb3B0aW9uIHNob3VsZCBiZSB1c2VkLgorICAgc3VwcG9ydGVkIGJ5 IDxhcHBsaWNhdGlvbj5wZ19iYXNlYmFja3VwPC9hcHBsaWNhdGlvbj4uCiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJh Y2t1cC5jIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMKaW5kZXgg OTcxNzhkNTg1YzMuLmJhYTVmOWRmYTVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJh Y2t1cC9wZ192ZXJpZnliYWNrdXAuYworKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192 ZXJpZnliYWNrdXAuYwpAQCAtNzQsNyArNzQsOSBAQCBwZ19ub3JldHVybiBzdGF0aWMgdm9pZCBy ZXBvcnRfbWFuaWZlc3RfZXJyb3IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LAog CQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRm KDIsIDMpOwogCi1zdGF0aWMgdm9pZCB2ZXJpZnlfdGFyX2JhY2t1cCh2ZXJpZmllcl9jb250ZXh0 ICpjb250ZXh0LCBESVIgKmRpcik7CitzdGF0aWMgdm9pZCB2ZXJpZnlfdGFyX2JhY2t1cCh2ZXJp Zmllcl9jb250ZXh0ICpjb250ZXh0LCBESVIgKmRpciwKKwkJCQkJCQkgIGNoYXIgKipiYXNlX2Fy Y2hpdmVfcGF0aCwKKwkJCQkJCQkgIGNoYXIgKip3YWxfYXJjaGl2ZV9wYXRoKTsKIHN0YXRpYyB2 b2lkIHZlcmlmeV9wbGFpbl9iYWNrdXBfZGlyZWN0b3J5KHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsCiAJCQkJCQkJCQkJICBjaGFyICpyZWxwYXRoLCBjaGFyICpmdWxscGF0aCwKIAkJCQkJCQkJ CQkgIERJUiAqZGlyKTsKQEAgLTgzLDcgKzg1LDkgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3BsYWlu X2JhY2t1cF9maWxlKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIGNoYXIgKnJlbHBhdGgsCiBz dGF0aWMgdm9pZCB2ZXJpZnlfY29udHJvbF9maWxlKGNvbnN0IGNoYXIgKmNvbnRyb2xwYXRoLAog CQkJCQkJCQl1aW50NjQgbWFuaWZlc3Rfc3lzdGVtX2lkZW50aWZpZXIpOwogc3RhdGljIHZvaWQg cHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIGNoYXIg KnJlbHBhdGgsCi0JCQkJCQkJCQkgY2hhciAqZnVsbHBhdGgsIFNpbXBsZVB0ckxpc3QgKnRhcmZp bGVzKTsKKwkJCQkJCQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmlsZXMs CisJCQkJCQkJCQkgY2hhciAqKmJhc2VfYXJjaGl2ZV9wYXRoLAorCQkJCQkJCQkJIGNoYXIgKip3 YWxfYXJjaGl2ZV9wYXRoKTsKIHN0YXRpYyB2b2lkIHZlcmlmeV90YXJfZmlsZSh2ZXJpZmllcl9j b250ZXh0ICpjb250ZXh0LCBjaGFyICpyZWxwYXRoLAogCQkJCQkJCWNoYXIgKmZ1bGxwYXRoLCBh c3RyZWFtZXIgKnN0cmVhbWVyKTsKIHN0YXRpYyB2b2lkIHJlcG9ydF9leHRyYV9iYWNrdXBfZmls ZXModmVyaWZpZXJfY29udGV4dCAqY29udGV4dCk7CkBAIC0xMzYsNiArMTQwLDggQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJYm9vbAkJbm9fcGFyc2Vfd2FsID0gZmFsc2U7CiAJYm9v bAkJcXVpZXQgPSBmYWxzZTsKIAljaGFyCSAgICp3YWxfcGF0aCA9IE5VTEw7CisJY2hhcgkgICAq YmFzZV9hcmNoaXZlX3BhdGggPSBOVUxMOworCWNoYXIJICAgKndhbF9hcmNoaXZlX3BhdGggPSBO VUxMOwogCWNoYXIJICAgKnBnX3dhbGR1bXBfcGF0aCA9IE5VTEw7CiAJRElSCQkgICAqZGlyOwog CkBAIC0zMjcsMTcgKzMzMyw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQlwZnJl ZShwYXRoKTsKIAl9CiAKLQkvKgotCSAqIFhYWDogSW4gdGhlIGZ1dHVyZSwgd2Ugc2hvdWxkIGNv bnNpZGVyIGVuaGFuY2luZyBwZ193YWxkdW1wIHRvIHJlYWQgV0FMCi0JICogZmlsZXMgZnJvbSBh biBhcmNoaXZlLgotCSAqLwotCWlmICghbm9fcGFyc2Vfd2FsICYmIGNvbnRleHQuZm9ybWF0ID09 ICd0JykKLQl7Ci0JCXBnX2xvZ19lcnJvcigicGdfd2FsZHVtcCBjYW5ub3QgcmVhZCB0YXIgZmls ZXMiKTsKLQkJcGdfbG9nX2Vycm9yX2hpbnQoIllvdSBtdXN0IHVzZSAtbi8tLW5vLXBhcnNlLXdh bCB3aGVuIHZlcmlmeWluZyBhIHRhci1mb3JtYXQgYmFja3VwLiIpOwotCQlleGl0KDEpOwotCX0K LQogCS8qCiAJICogUGVyZm9ybSB0aGUgYXBwcm9wcmlhdGUgdHlwZSBvZiB2ZXJpZmljYXRpb24g YXBwcm9wcmlhdGUgYmFzZWQgb24gdGhlCiAJICogYmFja3VwIGZvcm1hdC4gVGhpcyB3aWxsIGNs b3NlICdkaXInLgpAQCAtMzQ2LDcgKzM0MSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQogCQl2ZXJpZnlfcGxhaW5fYmFja3VwX2RpcmVjdG9yeSgmY29udGV4dCwgTlVMTCwgY29udGV4 dC5iYWNrdXBfZGlyZWN0b3J5LAogCQkJCQkJCQkJICBkaXIpOwogCWVsc2UKLQkJdmVyaWZ5X3Rh cl9iYWNrdXAoJmNvbnRleHQsIGRpcik7CisJCXZlcmlmeV90YXJfYmFja3VwKCZjb250ZXh0LCBk aXIsICZiYXNlX2FyY2hpdmVfcGF0aCwgJndhbF9hcmNoaXZlX3BhdGgpOwogCiAJLyoKIAkgKiBU aGUgIm1hdGNoZWQiIGZsYWcgc2hvdWxkIG5vdyBiZSBzZXQgb24gZXZlcnkgZW50cnkgaW4gdGhl IGhhc2ggdGFibGUuCkBAIC0zNjQsOSArMzU5LDI4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCWlmIChjb250ZXh0LmZvcm1hdCA9PSAncCcgJiYgIWNvbnRleHQuc2tpcF9jaGVja3N1 bXMpCiAJCXZlcmlmeV9iYWNrdXBfY2hlY2tzdW1zKCZjb250ZXh0KTsKIAotCS8qIEJ5IGRlZmF1 bHQsIGxvb2sgZm9yIHRoZSBXQUwgaW4gdGhlIGJhY2t1cCBkaXJlY3RvcnksIHRvby4gKi8KKwkv KgorCSAqIEJ5IGRlZmF1bHQsIFdBTCBmaWxlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgZm91bmQgaW4g dGhlIGJhY2t1cCBkaXJlY3RvcnkKKwkgKiBmb3IgcGxhaW4tZm9ybWF0IGJhY2t1cHMuIEluIHRo ZSBjYXNlIG9mIHRhci1mb3JtYXQgYmFja3VwcywgaWYgYQorCSAqIHNlcGFyYXRlIFdBTCBhcmNo aXZlIGlzIG5vdCBmb3VuZCwgdGhlIFdBTCBmaWxlcyBhcmUgbW9zdCBsaWtlbHkKKwkgKiBpbmNs dWRlZCB3aXRoaW4gdGhlIG1haW4gZGF0YSBkaXJlY3RvcnkgYXJjaGl2ZS4KKwkgKi8KIAlpZiAo d2FsX3BhdGggPT0gTlVMTCkKLQkJd2FsX3BhdGggPSBwc3ByaW50ZigiJXMvcGdfd2FsIiwgY29u dGV4dC5iYWNrdXBfZGlyZWN0b3J5KTsKKwl7CisJCWlmIChjb250ZXh0LmZvcm1hdCA9PSAncCcp CisJCQl3YWxfcGF0aCA9IHBzcHJpbnRmKCIlcy9wZ193YWwiLCBjb250ZXh0LmJhY2t1cF9kaXJl Y3RvcnkpOworCQllbHNlIGlmICh3YWxfYXJjaGl2ZV9wYXRoKQorCQkJd2FsX3BhdGggPSB3YWxf YXJjaGl2ZV9wYXRoOworCQllbHNlIGlmIChiYXNlX2FyY2hpdmVfcGF0aCkKKwkJCXdhbF9wYXRo ID0gYmFzZV9hcmNoaXZlX3BhdGg7CisJCWVsc2UKKwkJeworCQkJcGdfbG9nX2Vycm9yKCJXQUwg YXJjaGl2ZSBub3QgZm91bmQiKTsKKwkJCXBnX2xvZ19lcnJvcl9oaW50KCJTcGVjaWZ5IHRoZSBj b3JyZWN0IHBhdGggdXNpbmcgdGhlIG9wdGlvbiAtdy8tLXdhbC1wYXRoLiAgIgorCQkJCQkJCSAg Ik9yIHlvdSBtdXN0IHVzZSAtbi8tLW5vLXBhcnNlLXdhbCB3aGVuIHZlcmlmeWluZyBhIHRhci1m b3JtYXQgYmFja3VwLiIpOworCQkJZXhpdCgxKTsKKwkJfQorCX0KIAogCS8qCiAJICogVHJ5IHRv IHBhcnNlIHRoZSByZXF1aXJlZCByYW5nZXMgb2YgV0FMIHJlY29yZHMsIHVubGVzcyB3ZSB3ZXJl IHRvbGQKQEAgLTc4Nyw3ICs4MDEsOCBAQCB2ZXJpZnlfY29udHJvbF9maWxlKGNvbnN0IGNoYXIg KmNvbnRyb2xwYXRoLCB1aW50NjQgbWFuaWZlc3Rfc3lzdGVtX2lkZW50aWZpZXIpCiAgKiBjbG9z ZSB3aGVuIHdlJ3JlIGRvbmUgd2l0aCBpdC4KICAqLwogc3RhdGljIHZvaWQKLXZlcmlmeV90YXJf YmFja3VwKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIERJUiAqZGlyKQordmVyaWZ5X3Rhcl9i YWNrdXAodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgRElSICpkaXIsIGNoYXIgKipiYXNlX2Fy Y2hpdmVfcGF0aCwKKwkJCQkgIGNoYXIgKip3YWxfYXJjaGl2ZV9wYXRoKQogewogCXN0cnVjdCBk aXJlbnQgKmRpcmVudDsKIAlTaW1wbGVQdHJMaXN0IHRhcmZpbGVzID0ge05VTEwsIE5VTEx9OwpA QCAtODE2LDcgKzgzMSw4IEBAIHZlcmlmeV90YXJfYmFja3VwKHZlcmlmaWVyX2NvbnRleHQgKmNv bnRleHQsIERJUiAqZGlyKQogCQkJY2hhcgkgICAqZnVsbHBhdGg7CiAKIAkJCWZ1bGxwYXRoID0g cHNwcmludGYoIiVzLyVzIiwgY29udGV4dC0+YmFja3VwX2RpcmVjdG9yeSwgZmlsZW5hbWUpOwot CQkJcHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKGNvbnRleHQsIGZpbGVuYW1lLCBmdWxscGF0aCwg JnRhcmZpbGVzKTsKKwkJCXByZWNoZWNrX3Rhcl9iYWNrdXBfZmlsZShjb250ZXh0LCBmaWxlbmFt ZSwgZnVsbHBhdGgsICZ0YXJmaWxlcywKKwkJCQkJCQkJCSBiYXNlX2FyY2hpdmVfcGF0aCwgd2Fs X2FyY2hpdmVfcGF0aCk7CiAJCQlwZnJlZShmdWxscGF0aCk7CiAJCX0KIAl9CkBAIC04NzUsMTEg Kzg5MSwxMyBAQCB2ZXJpZnlfdGFyX2JhY2t1cCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBE SVIgKmRpcikKICAqCiAgKiBUaGUgYXJndW1lbnRzIHRvIHRoaXMgZnVuY3Rpb24gYXJlIG1vc3Rs eSB0aGUgc2FtZSBhcyB0aGUKICAqIHZlcmlmeV9wbGFpbl9iYWNrdXBfZmlsZS4gVGhlIGFkZGl0 aW9uYWwgYXJndW1lbnQgb3V0cHV0cyBhIGxpc3Qgb2YgdmFsaWQKLSAqIHRhciBmaWxlcy4KKyAq IHRhciBmaWxlcywgYWxvbmcgd2l0aCB0aGUgZnVsbCBwYXRocyB0byB0aGUgbWFpbiBhcmNoaXZl IGFuZCB0aGUgV0FMCisgKiBkaXJlY3RvcnkgYXJjaGl2ZS4KICAqLwogc3RhdGljIHZvaWQKIHBy ZWNoZWNrX3Rhcl9iYWNrdXBfZmlsZSh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpy ZWxwYXRoLAotCQkJCQkJIGNoYXIgKmZ1bGxwYXRoLCBTaW1wbGVQdHJMaXN0ICp0YXJmaWxlcykK KwkJCQkJCSBjaGFyICpmdWxscGF0aCwgU2ltcGxlUHRyTGlzdCAqdGFyZmlsZXMsCisJCQkJCQkg Y2hhciAqKmJhc2VfYXJjaGl2ZV9wYXRoLCBjaGFyICoqd2FsX2FyY2hpdmVfcGF0aCkKIHsKIAlz dHJ1Y3Qgc3RhdCBzYjsKIAlPaWQJCQl0YmxzcGNfb2lkID0gSW52YWxpZE9pZDsKQEAgLTkxOCw5 ICs5MzYsMTcgQEAgcHJlY2hlY2tfdGFyX2JhY2t1cF9maWxlKHZlcmlmaWVyX2NvbnRleHQgKmNv bnRleHQsIGNoYXIgKnJlbHBhdGgsCiAJICogZXh0ZW5zaW9uIHN1Y2ggYXMgLmd6LCAubHo0LCBv ciAuenN0LgogCSAqLwogCWlmIChzdHJuY21wKCJiYXNlIiwgcmVscGF0aCwgNCkgPT0gMCkKKwl7 CiAJCXN1ZmZpeCA9IHJlbHBhdGggKyA0OworCisJCSpiYXNlX2FyY2hpdmVfcGF0aCA9IHBzdHJk dXAoZnVsbHBhdGgpOworCX0KIAllbHNlIGlmIChzdHJuY21wKCJwZ193YWwiLCByZWxwYXRoLCA2 KSA9PSAwKQorCXsKIAkJc3VmZml4ID0gcmVscGF0aCArIDY7CisKKwkJKndhbF9hcmNoaXZlX3Bh dGggPSBwc3RyZHVwKGZ1bGxwYXRoKTsKKwl9CiAJZWxzZQogCXsKIAkJLyogRXhwZWN0ZWQgYSA8 dGFibGVzcGFjZW9pZD4udGFyIGZpbGUgaGVyZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbCBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3QvMDAyX2FsZ29yaXRobS5wbAppbmRleCAwNTU2MTkxZWM5ZC4uZWRjNTE1ZDU5MDQgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAyX2FsZ29yaXRobS5wbAorKysgYi9z cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwMl9hbGdvcml0aG0ucGwKQEAgLTMwLDEwICszMCw2 IEBAIHN1YiB0ZXN0X2NoZWNrc3VtcwogCXsKIAkJIyBBZGQgc3dpdGNoIHRvIGdldCBhIHRhci1m b3JtYXQgYmFja3VwCiAJCXB1c2ggQGJhY2t1cCwgKCctLWZvcm1hdCcgPT4gJ3RhcicpOwotCi0J CSMgQWRkIHN3aXRjaCB0byBza2lwIFdBTCB2ZXJpZmljYXRpb24sIHdoaWNoIGlzIG5vdCB5ZXQg c3VwcG9ydGVkIGZvcgotCQkjIHRhci1mb3JtYXQgYmFja3VwcwotCQlwdXNoIEB2ZXJpZnksICgn LS1uby1wYXJzZS13YWwnKTsKIAl9CiAKIAkjIEEgYmFja3VwIHdpdGggYSBib2d1cyBhbGdvcml0 aG0gc2hvdWxkIGZhaWwuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAw M19jb3JydXB0aW9uLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlv bi5wbAppbmRleCBiMWQ2NWI4YWEwZi4uODgyZDc1ZDlkYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfdmVyaWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbApAQCAtMTkzLDEwICsxOTMsOCBAQCBmb3IgbXkg JHNjZW5hcmlvIChAc2NlbmFyaW8pCiAJCQljb21tYW5kX29rKFsgJHRhciwgJy1jZicgPT4gIiR0 YXJfYmFja3VwX3BhdGgvYmFzZS50YXIiLCAnLicgXSk7CiAJCQljaGRpcigkY3dkKSB8fCBkaWUg ImNoZGlyOiAkISI7CiAKLQkJCSMgTm93IGNoZWNrIHRoYXQgdGhlIGJhY2t1cCBubyBsb25nZXIg dmVyaWZpZXMuIFdlIG11c3QgdXNlIC1uCi0JCQkjIGhlcmUsIGJlY2F1c2UgcGdfd2FsZHVtcCBj YW4ndCB5ZXQgcmVhZCBXQUwgZnJvbSBhIHRhcmZpbGUuCiAJCQljb21tYW5kX2ZhaWxzX2xpa2Uo Ci0JCQkJWyAncGdfdmVyaWZ5YmFja3VwJywgJy0tbm8tcGFyc2Utd2FsJywgJHRhcl9iYWNrdXBf cGF0aCBdLAorCQkJCVsgJ3BnX3ZlcmlmeWJhY2t1cCcsICR0YXJfYmFja3VwX3BhdGggXSwKIAkJ CQkkc2NlbmFyaW8tPnsnZmFpbHNfbGlrZSd9LAogCQkJCSJjb3JydXB0IGJhY2t1cCBmYWlscyB2 ZXJpZmljYXRpb246ICRuYW1lIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFj a3VwL3QvMDA4X3VudGFyLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDhfdW50YXIu cGwKaW5kZXggYWU2N2FlODVhMzEuLjE2MWMwOGMxOTBkIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X3ZlcmlmeWJhY2t1cC90LzAwOF91bnRhci5wbAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1 cC90LzAwOF91bnRhci5wbApAQCAtNDcsNyArNDcsNiBAQCBteSAkdHNvaWQgPSAkcHJpbWFyeS0+ c2FmZV9wc3FsKAogCQlTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1l ID0gJ3JlZ3Jlc3NfdHMxJykpOwogCiBteSAkYmFja3VwX3BhdGggPSAkcHJpbWFyeS0+YmFja3Vw X2RpciAuICcvc2VydmVyLWJhY2t1cCc7Ci1teSAkZXh0cmFjdF9wYXRoID0gJHByaW1hcnktPmJh Y2t1cF9kaXIgLiAnL2V4dHJhY3RlZC1iYWNrdXAnOwogCiBteSBAdGVzdF9jb25maWd1cmF0aW9u ID0gKAogCXsKQEAgLTEyMywxNCArMTIyLDEyIEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3Vy YXRpb24pCiAJCSMgVmVyaWZ5IHRhciBiYWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29rKAog CQkJWwotCQkJCSdwZ192ZXJpZnliYWNrdXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSctLWV4 aXQtb24tZXJyb3InLCAkYmFja3VwX3BhdGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICctLWV4 aXQtb24tZXJyb3InLCAkYmFja3VwX3BhdGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAsIGNv bXByZXNzaW9uICRtZXRob2QiKTsKIAogCQkjIENsZWFudXAuCiAJCXJtdHJlZSgkYmFja3VwX3Bh dGgpOwotCQlybXRyZWUoJGV4dHJhY3RfcGF0aCk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwgYi9zcmMvYmluL3BnX3Zl cmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwKaW5kZXggMWFjN2I1ZGI3NWEuLjk2NzBm YmU0ZmRhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRf dW50YXIucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFy LnBsCkBAIC0zMiw3ICszMiw2IEBAIHByaW50ICRqZiAkanVua19kYXRhOwogY2xvc2UgJGpmOwog CiBteSAkYmFja3VwX3BhdGggPSAkcHJpbWFyeS0+YmFja3VwX2RpciAuICcvY2xpZW50LWJhY2t1 cCc7Ci1teSAkZXh0cmFjdF9wYXRoID0gJHByaW1hcnktPmJhY2t1cF9kaXIgLiAnL2V4dHJhY3Rl ZC1iYWNrdXAnOwogCiBteSBAdGVzdF9jb25maWd1cmF0aW9uID0gKAogCXsKQEAgLTEzNywxMyAr MTM2LDExIEBAIGZvciBteSAkdGMgKEB0ZXN0X2NvbmZpZ3VyYXRpb24pCiAJCSMgVmVyaWZ5IHRh ciBiYWNrdXAuCiAJCSRwcmltYXJ5LT5jb21tYW5kX29rKAogCQkJWwotCQkJCSdwZ192ZXJpZnli YWNrdXAnLCAnLS1uby1wYXJzZS13YWwnLAotCQkJCSctLWV4aXQtb24tZXJyb3InLCAkYmFja3Vw X3BhdGgsCisJCQkJJ3BnX3ZlcmlmeWJhY2t1cCcsICctLWV4aXQtb24tZXJyb3InLCAkYmFja3Vw X3BhdGgsCiAJCQldLAogCQkJInZlcmlmeSBiYWNrdXAsIGNvbXByZXNzaW9uICRtZXRob2QiKTsK IAogCQkjIENsZWFudXAuCi0JCXJtdHJlZSgkZXh0cmFjdF9wYXRoKTsKIAkJcm10cmVlKCRiYWNr dXBfcGF0aCk7CiAJfQogfQotLSAKMi40Ny4xCgo= --000000000000150811064766e0a2--