Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ts8FH-00FkHT-U2 for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Mar 2025 22:38:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ts8FG-008XCz-GU for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Mar 2025 22:38:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ts8FG-008XCb-0P for pgsql-hackers@lists.postgresql.org; Tue, 11 Mar 2025 22:38:42 +0000 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ts8FB-002Jv7-13 for pgsql-hackers@postgresql.org; Tue, 11 Mar 2025 22:38:41 +0000 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-223fb0f619dso113435385ad.1 for ; Tue, 11 Mar 2025 15:38:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1741732717; x=1742337517; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=8DgUr3yBaQ8wOl8Pgq0DDvhsZT8IhPHS+zJO+ubSmx4=; b=LabV09BGTcesnUPuVp2JdAfk5L6Z53opUB7/5yhUKo4uqqmTKxXkDE8tlNyW+JAjL4 SPTRMvc8pQMYVUjq+pUGgZIxWQWJp0hMWmwUuCu3NIBWBRoIHkQYK00W0rXqWncM1XaS tjZHWA6/GxXQ8ZJabsdLF3fVtAWCCEcfFcei2WZu10/hh/RFHsn3CJQDFjEEp8v7IKiU OcPmv8RM+MooxX5J4ZyKlGQo4xUiZZO6W3Vxi8jNpdUO6yhCpmTkNiCAD1UgNfoIdwWO DSjQDqx1N/etAEcXJ60hxSut+v/12xoXUUtjHbhlB8aqzcsPXngWW5ybY/89tN9UcpAp 0y8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741732717; x=1742337517; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=8DgUr3yBaQ8wOl8Pgq0DDvhsZT8IhPHS+zJO+ubSmx4=; b=t2FEzvajf+TZEtCaOS+RWMnlhklITmEp8V9IbJ7J2lbYmVPI9X0euIYUhsjoNGa49c rbVqw2cqBk+NvPX/W49Vqw5KqrEhUUK4IpQSFE0AFYty3fNxV3MtXTOtPcU6julUzYsy tzsulecoZcU4GeiR1IZDgoQ2M/C0zAu+7ZWJPz+ls68Ho3XPYA0cCHaMZoxpPn/dLeDq cA43Hz0p0dMnLd6v0ID0NJcHOEz1qGVxC7R3MDOTWILA/DMofzlseg1Ao50jMlkUVw+w YAcvRg5BFSbFqx+cE+AOaUrsDXPXd8Rlg/HBi+JaBgS9PG7KSr1vkrFYJuyrinosBIJl m0xA== X-Forwarded-Encrypted: i=1; AJvYcCUGN4f6XAQRhu0bDJGBbyDld4PWg7Pylo5jfLEQN2bdJFdmk9nbP5/Id6JGXAOd4ySURWlG3Vq1VE7K+sKe@postgresql.org X-Gm-Message-State: AOJu0YzRRhEwNNgdnyiFsGKkz+OqHieYxdxNQ0m1OkJ6Q2wJJfCQB0fB aN5xWP9RC04eS+CLpQ7zNBHjrJ6R7krvrmn3uvX3oF54vgn2YJCJrRw4FQSWCQ== X-Gm-Gg: ASbGncuVoJqjHaA8cLaTz+/7E26zKxsNiB/2+6Ll874qu0k+ODF9hXGbi1Y95lkq1eF 38iWIEbXnS8wRthcOw5L0CO0zJxpLKostTGFbiX2YwgH6eBKrUUIslbxia8ldg6/wVNJr9ZbQQk PtIRteutGvgc6VrBLbvix4U63MB3PJB9Zos9umG9UgO53yjTB7L03U3l3HNo9alA07FdWm557v+ ccIAWdsSvjVkZKsWAP/yNHmzm4JDiLMFzLPpMyoi4pyRNS2YYwQMciMApeju2EcTTX6bRsJGzdz fmVm6nFVqWBQf6HUy53GxjDDWYRyfKTiMMd8FHHGROkUyejMeg27ROah9b1Z4B6RGAb2dRBw6HH x52DxoxIRI/bpkXYJs88GbvcU X-Google-Smtp-Source: AGHT+IGNsQ/iw98YxzkwlA3fdPJ7T6CRMFcdagbczM/TCpII/JPYR1RppRycedXTtZTZh9WZ1DjzCA== X-Received: by 2002:a17:902:e747:b0:224:24d3:60f4 with SMTP id d9443c01a7336-22592e2d608mr73882185ad.15.1741732716752; Tue, 11 Mar 2025 15:38:36 -0700 (PDT) Received: from ?IPv6:2601:642:4c01:f78a:93d5:e1f4:7b6b:cd30? ([2601:642:4c01:f78a:93d5:e1f4:7b6b:cd30]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-736adabdd0esm9318640b3a.68.2025.03.11.15.38.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Mar 2025 15:38:36 -0700 (PDT) Message-ID: <1a83225688da8a72a97029f69a222246638014ba.camel@j-davis.com> Subject: Re: Statistics import and export: difference in statistics of materialized view dumped From: Jeff Davis To: Tom Lane Cc: Ashutosh Bapat , pgsql-hackers , Corey Huinker Date: Tue, 11 Mar 2025 15:38:34 -0700 In-Reply-To: <1500726.1741706804@sss.pgh.pa.us> References: <1427602.1741702648@sss.pgh.pa.us> <1500726.1741706804@sss.pgh.pa.us> Content-Type: multipart/mixed; boundary="=-OChxh9d/ETPV+VcmjL/M" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-OChxh9d/ETPV+VcmjL/M Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2025-03-11 at 11:26 -0400, Tom Lane wrote: > Right, that was what I was thinking, but hadn't had time to look in > detail.=C2=A0 The postDataBound dependency isn't real helpful here, we > could lose that if we had the data dependency. Attached a patch. It's a bit messier than I expected, so I'm open to other suggestions. The reason is because materialized view data is also pushed to RESTORE_PASS_POST_ACL, so we need to do the same for the statistics (otherwise the dependency is just ignored). Regards, Jeff Davis --=-OChxh9d/ETPV+VcmjL/M Content-Disposition: attachment; filename="v1-0001-Make-MV-statistics-depend-on-MV-data.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v1-0001-Make-MV-statistics-depend-on-MV-data.patch"; charset="UTF-8" RnJvbSA0ZTg0ODg5Y2I4OTBlNWU4NTU1NTkxOTFlNmNhOGQxNTJlMjQ5NWUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDExIE1hciAyMDI1IDEzOjUxOjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MV0gTWFrZSBN ViBzdGF0aXN0aWNzIGRlcGVuZCBvbiBNViBkYXRhLgoKUkVGUkVTSCBNQVRFUklBTElaRUQgVklF VyByZXBsYWNlcyB0aGUgc3RvcmFnZSwgd2hpY2ggcmVzZXRzCnN0YXRpc3RpY3MsIHNvIHN0YXRp c3RpY3MgbXVzdCBiZSByZXN0b3JlZCBhZnRlcndhcmQuCgpJZiBzdGF0aXN0aWNzIGFyZSBmb3Ig YSBtYXRlcmlhbGl6ZWQgdmlldywgYW5kIGlmIHRoZSBtYXRlcmlhbGl6ZWQKdmlldyBkYXRhIGlz IGJlaW5nIGR1bXBlZCwgY3JlYXRlIGEgZGVwZW5kZW5jeSBmcm9tIHRoZSBmb3JtZXIKcmVmZXJy aW5nIHRvIHRoZSBsYXR0ZXIuIERlZmVyIHRoZSBzdGF0aXN0aWNzIHRvIFNFQ1RJT05fUE9TVF9E QVRBLAp3aGljaCBpcyB3aGVyZSB0aGUgbWF0ZXJpYWxpemVkIHZpZXcgZGF0YSBnb2VzLgoKSW4g dGhhdCBjYXNlLCBpdCBhbHNvIHJlcXVpcmVzIGRlZmVycmluZyB0aGUgc3RhdGlzdGljcyB0bwpS RVNUT1JFX1BBU1NfUE9TVF9BQ0wuCgpSZXBvcnRlZC1ieTogQXNodXRvc2ggQmFwYXQgPGFzaHV0 b3NoLmJhcGF0Lm9zc0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20v Q0FFeEhXNXM0N2ttdWJwYmJSSnpTTS1aZmUwVGoyTzNHQmFnQjdZQXlFOHJRLVYyNFV3QG1haWwu Z21haWwuY29tCi0tLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIHwgIDQ2 ICsrKysrKysrLS0tLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgIHwgMTA0 ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAg ICAgICAgICAgIHwgICAzICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAg fCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgNjAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDc0ODBlMTIyYjYxLi5h Y2UyZjIwMzQ5NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZl ci5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtNzIsNyAr NzIsNyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzRW5jb2RpbmdFbnRyeShBcmNoaXZlSGFuZGxlICpB SCwgVG9jRW50cnkgKnRlKTsKIHN0YXRpYyB2b2lkIHByb2Nlc3NTdGRTdHJpbmdzRW50cnkoQXJj aGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSk7CiBzdGF0aWMgdm9pZCBwcm9jZXNzU2VhcmNo UGF0aEVudHJ5KEFyY2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAqdGUpOwogc3RhdGljIGludAlf dG9jRW50cnlSZXF1aXJlZChUb2NFbnRyeSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNo aXZlSGFuZGxlICpBSCk7Ci1zdGF0aWMgUmVzdG9yZVBhc3MgX3RvY0VudHJ5UmVzdG9yZVBhc3Mo VG9jRW50cnkgKnRlKTsKK3N0YXRpYyBSZXN0b3JlUGFzcyBfdG9jRW50cnlSZXN0b3JlUGFzcyhB cmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKTsKIHN0YXRpYyBib29sIF90b2NFbnRyeUlz QUNMKFRvY0VudHJ5ICp0ZSk7CiBzdGF0aWMgdm9pZCBfZGlzYWJsZVRyaWdnZXJzSWZOZWNlc3Nh cnkoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5ICp0ZSk7CiBzdGF0aWMgdm9pZCBfZW5hYmxl VHJpZ2dlcnNJZk5lY2Vzc2FyeShBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKTsKQEAg LTEwMiw3ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBwZW5kaW5nX2xpc3RfYXBwZW5kKFRvY0VudHJ5 ICpsLCBUb2NFbnRyeSAqdGUpOwogc3RhdGljIHZvaWQgcGVuZGluZ19saXN0X3JlbW92ZShUb2NF bnRyeSAqdGUpOwogc3RhdGljIGludAlUb2NFbnRyeVNpemVDb21wYXJlUXNvcnQoY29uc3Qgdm9p ZCAqcDEsIGNvbnN0IHZvaWQgKnAyKTsKIHN0YXRpYyBpbnQJVG9jRW50cnlTaXplQ29tcGFyZUJp bmFyeWhlYXAodm9pZCAqcDEsIHZvaWQgKnAyLCB2b2lkICphcmcpOwotc3RhdGljIHZvaWQgbW92 ZV90b19yZWFkeV9oZWFwKFRvY0VudHJ5ICpwZW5kaW5nX2xpc3QsCitzdGF0aWMgdm9pZCBtb3Zl X3RvX3JlYWR5X2hlYXAoQXJjaGl2ZUhhbmRsZSAqQUgsCisJCQkJCQkJICAgVG9jRW50cnkgKnBl bmRpbmdfbGlzdCwKIAkJCQkJCQkgICBiaW5hcnloZWFwICpyZWFkeV9oZWFwLAogCQkJCQkJCSAg IFJlc3RvcmVQYXNzIHBhc3MpOwogc3RhdGljIFRvY0VudHJ5ICpwb3BfbmV4dF93b3JrX2l0ZW0o YmluYXJ5aGVhcCAqcmVhZHlfaGVhcCwKQEAgLTc0Nyw3ICs3NDgsNyBAQCBSZXN0b3JlQXJjaGl2 ZShBcmNoaXZlICpBSFgpCiAJCQlpZiAoKHRlLT5yZXFzICYgKFJFUV9TQ0hFTUEgfCBSRVFfREFU QSB8IFJFUV9TVEFUUykpID09IDApCiAJCQkJY29udGludWU7CQkvKiBpZ25vcmUgaWYgbm90IHRv IGJlIGR1bXBlZCBhdCBhbGwgKi8KIAotCQkJc3dpdGNoIChfdG9jRW50cnlSZXN0b3JlUGFzcyh0 ZSkpCisJCQlzd2l0Y2ggKF90b2NFbnRyeVJlc3RvcmVQYXNzKEFILCB0ZSkpCiAJCQl7CiAJCQkJ Y2FzZSBSRVNUT1JFX1BBU1NfTUFJTjoKIAkJCQkJKHZvaWQpIHJlc3RvcmVfdG9jX2VudHJ5KEFI LCB0ZSwgZmFsc2UpOwpAQCAtNzY2LDcgKzc2Nyw3IEBAIFJlc3RvcmVBcmNoaXZlKEFyY2hpdmUg KkFIWCkKIAkJCWZvciAodGUgPSBBSC0+dG9jLT5uZXh0OyB0ZSAhPSBBSC0+dG9jOyB0ZSA9IHRl LT5uZXh0KQogCQkJewogCQkJCWlmICgodGUtPnJlcXMgJiAoUkVRX1NDSEVNQSB8IFJFUV9EQVRB IHwgUkVRX1NUQVRTKSkgIT0gMCAmJgotCQkJCQlfdG9jRW50cnlSZXN0b3JlUGFzcyh0ZSkgPT0g UkVTVE9SRV9QQVNTX0FDTCkKKwkJCQkJX3RvY0VudHJ5UmVzdG9yZVBhc3MoQUgsIHRlKSA9PSBS RVNUT1JFX1BBU1NfQUNMKQogCQkJCQkodm9pZCkgcmVzdG9yZV90b2NfZW50cnkoQUgsIHRlLCBm YWxzZSk7CiAJCQl9CiAJCX0KQEAgLTc3Niw3ICs3NzcsNyBAQCBSZXN0b3JlQXJjaGl2ZShBcmNo aXZlICpBSFgpCiAJCQlmb3IgKHRlID0gQUgtPnRvYy0+bmV4dDsgdGUgIT0gQUgtPnRvYzsgdGUg PSB0ZS0+bmV4dCkKIAkJCXsKIAkJCQlpZiAoKHRlLT5yZXFzICYgKFJFUV9TQ0hFTUEgfCBSRVFf REFUQSB8IFJFUV9TVEFUUykpICE9IDAgJiYKLQkJCQkJX3RvY0VudHJ5UmVzdG9yZVBhc3ModGUp ID09IFJFU1RPUkVfUEFTU19QT1NUX0FDTCkKKwkJCQkJX3RvY0VudHJ5UmVzdG9yZVBhc3MoQUgs IHRlKSA9PSBSRVNUT1JFX1BBU1NfUE9TVF9BQ0wpCiAJCQkJCSh2b2lkKSByZXN0b3JlX3RvY19l bnRyeShBSCwgdGUsIGZhbHNlKTsKIAkJCX0KIAkJfQpAQCAtMzIxMiw3ICszMjEzLDcgQEAgX3Rv Y0VudHJ5UmVxdWlyZWQoVG9jRW50cnkgKnRlLCB0ZVNlY3Rpb24gY3VyU2VjdGlvbiwgQXJjaGl2 ZUhhbmRsZSAqQUgpCiAgKiBTZWUgbm90ZXMgd2l0aCB0aGUgUmVzdG9yZVBhc3MgdHlwZWRlZiBp biBwZ19iYWNrdXBfYXJjaGl2ZXIuaC4KICAqLwogc3RhdGljIFJlc3RvcmVQYXNzCi1fdG9jRW50 cnlSZXN0b3JlUGFzcyhUb2NFbnRyeSAqdGUpCitfdG9jRW50cnlSZXN0b3JlUGFzcyhBcmNoaXZl SGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKQogewogCS8qICJBQ0wgTEFOR1VBR0UiIHdhcyBhIGNy b2NrIGVtaXR0ZWQgb25seSBpbiBQRyA3LjQgKi8KIAlpZiAoc3RyY21wKHRlLT5kZXNjLCAiQUNM IikgPT0gMCB8fApAQCAtMzIzMyw2ICszMjM0LDI2IEBAIF90b2NFbnRyeVJlc3RvcmVQYXNzKFRv Y0VudHJ5ICp0ZSkKIAkJc3RybmNtcCh0ZS0+dGFnLCAiRVZFTlQgVFJJR0dFUiAiLCAxNCkgPT0g MCkKIAkJcmV0dXJuIFJFU1RPUkVfUEFTU19QT1NUX0FDTDsKIAorCS8qCisJICogSWYgc3RhdGlz dGljcyBkYXRhIGlzIGRlcGVuZGVudCBvbiBtYXRlcmlhbGl6ZWQgdmlldyBkYXRhLCBpdCBtdXN0 IGJlCisJICogZGVmZXJyZWQgdG8gUkVTVE9SRV9QQVNTX1BPU1RfQUNMLgorCSAqLworCWlmIChz dHJjbXAodGUtPmRlc2MsICJTVEFUSVNUSUNTIERBVEEiKSA9PSAwKQorCXsKKwkJZm9yIChpbnQg aSA9IDA7IGkgPCB0ZS0+bkRlcHM7IGkrKykKKwkJeworCQkJRHVtcElkCQlkZXBpZCA9IHRlLT5k ZXBlbmRlbmNpZXNbaV07CisKKwkJCWlmIChkZXBpZCA8PSBBSC0+bWF4RHVtcElkICYmIEFILT50 b2NzQnlEdW1wSWRbZGVwaWRdICE9IE5VTEwpCisJCQl7CisJCQkJVG9jRW50cnkgICAqb3RoZXJ0 ZSA9IEFILT50b2NzQnlEdW1wSWRbZGVwaWRdOworCisJCQkJaWYgKHN0cmNtcChvdGhlcnRlLT5k ZXNjLCAiTUFURVJJQUxJWkVEIFZJRVcgREFUQSIpID09IDApCisJCQkJCXJldHVybiBSRVNUT1JF X1BBU1NfUE9TVF9BQ0w7CisJCQl9CisJCX0KKwl9CisKIAkvKiBBbGwgZWxzZSBjYW4gYmUgaGFu ZGxlZCBpbiB0aGUgbWFpbiBwYXNzLiAqLwogCXJldHVybiBSRVNUT1JFX1BBU1NfTUFJTjsKIH0K QEAgLTQyNDIsNyArNDI2Myw3IEBAIHJlc3RvcmVfdG9jX2VudHJpZXNfcHJlZm9yayhBcmNoaXZl SGFuZGxlICpBSCwgVG9jRW50cnkgKnBlbmRpbmdfbGlzdCkKIAkJICogbm90IHNldCBza2lwcGVk X3NvbWUgaW4gdGhpcyBjYXNlLCBzaW5jZSBieSBhc3N1bXB0aW9uIG5vIG1haW4tcGFzcwogCQkg KiBpdGVtcyBjb3VsZCBkZXBlbmQgb24gdGhlc2UuCiAJCSAqLwotCQlpZiAoX3RvY0VudHJ5UmVz dG9yZVBhc3MobmV4dF93b3JrX2l0ZW0pICE9IFJFU1RPUkVfUEFTU19NQUlOKQorCQlpZiAoX3Rv Y0VudHJ5UmVzdG9yZVBhc3MoQUgsIG5leHRfd29ya19pdGVtKSAhPSBSRVNUT1JFX1BBU1NfTUFJ TikKIAkJCWRvX25vdyA9IGZhbHNlOwogCiAJCWlmIChkb19ub3cpCkBAIC00MzI0LDcgKzQzNDUs NyBAQCByZXN0b3JlX3RvY19lbnRyaWVzX3BhcmFsbGVsKEFyY2hpdmVIYW5kbGUgKkFILCBQYXJh bGxlbFN0YXRlICpwc3RhdGUsCiAJICogcHJvY2VzcyBpbiB0aGUgY3VycmVudCByZXN0b3JlIHBh c3MuCiAJICovCiAJQUgtPnJlc3RvcmVQYXNzID0gUkVTVE9SRV9QQVNTX01BSU47Ci0JbW92ZV90 b19yZWFkeV9oZWFwKHBlbmRpbmdfbGlzdCwgcmVhZHlfaGVhcCwgQUgtPnJlc3RvcmVQYXNzKTsK Kwltb3ZlX3RvX3JlYWR5X2hlYXAoQUgsIHBlbmRpbmdfbGlzdCwgcmVhZHlfaGVhcCwgQUgtPnJl c3RvcmVQYXNzKTsKIAogCS8qCiAJICogbWFpbiBwYXJlbnQgbG9vcApAQCAtNDM3Myw3ICs0Mzk0 LDcgQEAgcmVzdG9yZV90b2NfZW50cmllc19wYXJhbGxlbChBcmNoaXZlSGFuZGxlICpBSCwgUGFy YWxsZWxTdGF0ZSAqcHN0YXRlLAogCQkJLyogQWR2YW5jZSB0byBuZXh0IHJlc3RvcmUgcGFzcyAq LwogCQkJQUgtPnJlc3RvcmVQYXNzKys7CiAJCQkvKiBUaGF0IHByb2JhYmx5IGFsbG93cyBzb21l IHN0dWZmIHRvIGJlIG1hZGUgcmVhZHkgKi8KLQkJCW1vdmVfdG9fcmVhZHlfaGVhcChwZW5kaW5n X2xpc3QsIHJlYWR5X2hlYXAsIEFILT5yZXN0b3JlUGFzcyk7CisJCQltb3ZlX3RvX3JlYWR5X2hl YXAoQUgsIHBlbmRpbmdfbGlzdCwgcmVhZHlfaGVhcCwgQUgtPnJlc3RvcmVQYXNzKTsKIAkJCS8q IExvb3AgYXJvdW5kIHRvIHNlZSBpZiBhbnl0aGluZydzIG5vdyByZWFkeSAqLwogCQkJY29udGlu dWU7CiAJCX0KQEAgLTQ1NDQsNyArNDU2NSw4IEBAIFRvY0VudHJ5U2l6ZUNvbXBhcmVCaW5hcnlo ZWFwKHZvaWQgKnAxLCB2b2lkICpwMiwgdm9pZCAqYXJnKQogICogd2hpY2ggYXBwbGllcyB0aGUg c2FtZSBsb2dpYyBvbmUtYXQtYS10aW1lLikKICAqLwogc3RhdGljIHZvaWQKLW1vdmVfdG9fcmVh ZHlfaGVhcChUb2NFbnRyeSAqcGVuZGluZ19saXN0LAorbW92ZV90b19yZWFkeV9oZWFwKEFyY2hp dmVIYW5kbGUgKkFILAorCQkJCSAgIFRvY0VudHJ5ICpwZW5kaW5nX2xpc3QsCiAJCQkJICAgYmlu YXJ5aGVhcCAqcmVhZHlfaGVhcCwKIAkJCQkgICBSZXN0b3JlUGFzcyBwYXNzKQogewpAQCAtNDU1 Nyw3ICs0NTc5LDcgQEAgbW92ZV90b19yZWFkeV9oZWFwKFRvY0VudHJ5ICpwZW5kaW5nX2xpc3Qs CiAJCW5leHRfdGUgPSB0ZS0+cGVuZGluZ19uZXh0OwogCiAJCWlmICh0ZS0+ZGVwQ291bnQgPT0g MCAmJgotCQkJX3RvY0VudHJ5UmVzdG9yZVBhc3ModGUpID09IHBhc3MpCisJCQlfdG9jRW50cnlS ZXN0b3JlUGFzcyhBSCwgdGUpID09IHBhc3MpCiAJCXsKIAkJCS8qIFJlbW92ZSBpdCBmcm9tIHBl bmRpbmdfbGlzdCAuLi4gKi8KIAkJCXBlbmRpbmdfbGlzdF9yZW1vdmUodGUpOwpAQCAtNDk1MSw3 ICs0OTczLDcgQEAgcmVkdWNlX2RlcGVuZGVuY2llcyhBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50 cnkgKnRlLAogCQkgKiBtZW1iZXJzaGlwcyBjaGFuZ2VkLgogCQkgKi8KIAkJaWYgKG90aGVydGUt PmRlcENvdW50ID09IDAgJiYKLQkJCV90b2NFbnRyeVJlc3RvcmVQYXNzKG90aGVydGUpID09IEFI LT5yZXN0b3JlUGFzcyAmJgorCQkJX3RvY0VudHJ5UmVzdG9yZVBhc3MoQUgsIG90aGVydGUpID09 IEFILT5yZXN0b3JlUGFzcyAmJgogCQkJb3RoZXJ0ZS0+cGVuZGluZ19wcmV2ICE9IE5VTEwgJiYK IAkJCXJlYWR5X2hlYXAgIT0gTlVMTCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYzM3MTU3MDUwMWEu LjdiNDQyZDgzOTFkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTI5NjQsNiArMjk2NCwyMSBAQCBtYWtlVGFi bGVEYXRhSW5mbyhEdW1wT3B0aW9ucyAqZG9wdCwgVGFibGVJbmZvICp0YmluZm8pCiAKIAl0Ymlu Zm8tPmRhdGFPYmogPSB0ZGluZm87CiAKKwkvKgorCSAqIElmIHN0YXRpc3RpY3MgYW5kIGRhdGEg YXJlIGJlaW5nIGR1bXBlZCBmb3IgYSBtYXRlcmlhbGl6ZWQgdmlldywgdGhlCisJICogc3RhdGlz dGljcyBkZXBlbmQgb24gdGhlIG1hdGVyaWFsaXplZCB2aWV3IGRhdGEuIFRoYXQncyBiZWNhdXNl IFJFRlJFU0gKKwkgKiBNQVRFUklBTElaRUQgVklFVyB3aWxsIGNvbXBsZXRlbHkgcmVwbGFjZSB0 aGUgc3RvcmFnZSBhbmQgcmVzZXQgdGhlCisJICogc3RhdHMuCisJICoKKwkgKiBUaGUgZGVwZW5k ZW5jeSBpcyBhZGRlZCBoZXJlIGJlY2F1c2UgdGhlIHN0YXRpc3RpY3Mgb2JqZWN0cyBhcmUgY3Jl YXRlZAorCSAqIGZpcnN0LgorCSAqLworCWlmICh0YmluZm8tPnJlbGtpbmQgPT0gUkVMS0lORF9N QVRWSUVXICYmIHRiaW5mby0+c3RhdHMgIT0gTlVMTCkKKwl7CisJCXRiaW5mby0+c3RhdHMtPnNl Y3Rpb24gPSBTRUNUSU9OX1BPU1RfREFUQTsKKwkJYWRkT2JqZWN0RGVwZW5kZW5jeSgmdGJpbmZv LT5zdGF0cy0+ZG9iaiwgdGRpbmZvLT5kb2JqLmR1bXBJZCk7CisJfQorCiAJLyogTWFrZSBzdXJl IHRoYXQgd2UnbGwgY29sbGVjdCBwZXItY29sdW1uIGluZm8gZm9yIHRoaXMgdGFibGUuICovCiAJ dGJpbmZvLT5pbnRlcmVzdGluZyA9IHRydWU7CiB9CkBAIC02ODUwLDcgKzY4NjUsMzQgQEAgZ2V0 UmVsYXRpb25TdGF0aXN0aWNzKEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpyZWwsIGlu dDMyIHJlbHBhZ2VzLAogCQlpbmZvLT5yZWxraW5kID0gcmVsa2luZDsKIAkJaW5mby0+aW5kQXR0 TmFtZXMgPSBpbmRBdHROYW1lczsKIAkJaW5mby0+bmluZEF0dE5hbWVzID0gbmluZEF0dE5hbWVz OwotCQlpbmZvLT5wb3N0cG9uZWRfZGVmID0gZmFsc2U7CisKKwkJLyoKKwkJICogT3JkaW5hcmls eSwgc3RhdHMgZ28gaW4gU0VDVElPTl9EQVRBIGZvciB0YWJsZXMgYW5kCisJCSAqIFNFQ1RJT05f UE9TVF9EQVRBIGZvciBpbmRleGVzLgorCQkgKgorCQkgKiBIb3dldmVyLCB0aGUgc2VjdGlvbiBt YXkgYmUgdXBkYXRlZCBsYXRlciBmb3IgbWF0ZXJpYWxpemVkIHZpZXdzLgorCQkgKiBNYXR2aWV3 IHN0YXRzIGRlcGVuZCBvbiB0aGUgbWF0dmlldyBkYXRhLCBiZWNhdXNlIFJFRlJFU0gKKwkJICog TUFURVJJQUxJWkVEIFZJRVcgcmVwbGFjZXMgdGhlIHN0b3JhZ2UgYW5kIHJlc2V0cyB0aGUgc3Rh dHMsIGFuZAorCQkgKiB0aGUgbWF0dmlldyBkYXRhIGlzIGluIFNFQ1RJT05fUE9TVF9EQVRBLiBB bHNvLCB0aGUgbWF0ZXJpYWxpemVkCisJCSAqIHZpZXcgZGVmaW5pdGlvbiBtYXkgYmUgcG9zdHBv bmVkIGZyb20gU0VDVElPTl9QUkVfREFUQSB0bworCQkgKiBTRUNUSU9OX1BPU1RfREFUQSB0byBy ZXNvbHZlIHNvbWUga2luZHMgb2YgZGVwZW5kZW5jeSBwcm9ibGVtcyAoc2VlCisJCSAqIHJlcGFp ck1hdFZpZXdCb3VuZGFyeU11bHRpTG9vcCgpKS4KKwkJICovCisJCXN3aXRjaCAoaW5mby0+cmVs a2luZCkKKwkJeworCQkJY2FzZSBSRUxLSU5EX1JFTEFUSU9OOgorCQkJY2FzZSBSRUxLSU5EX1BB UlRJVElPTkVEX1RBQkxFOgorCQkJY2FzZSBSRUxLSU5EX01BVFZJRVc6CisJCQkJaW5mby0+c2Vj dGlvbiA9IFNFQ1RJT05fREFUQTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUkVMS0lORF9JTkRFWDoK KwkJCWNhc2UgUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWDoKKwkJCQlpbmZvLT5zZWN0aW9uID0g U0VDVElPTl9QT1NUX0RBVEE7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCXBnX2ZhdGFs KCJjYW5ub3QgZHVtcCBzdGF0aXN0aWNzIGZvciByZWxhdGlvbiBraW5kICclYyciLAorCQkJCQkJ IGluZm8tPnJlbGtpbmQpOworCQl9CiAKIAkJcmV0dXJuIGluZm87CiAJfQpAQCAtNzI0OSw5ICs3 MjkxLDE3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAogCQkv KiBBZGQgc3RhdGlzdGljcyAqLwogCQlpZiAodGJsaW5mb1tpXS5pbnRlcmVzdGluZykKLQkJCWdl dFJlbGF0aW9uU3RhdGlzdGljcyhmb3V0LCAmdGJsaW5mb1tpXS5kb2JqLCB0YmxpbmZvW2ldLnJl bHBhZ2VzLAotCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbHR1cGxlcyksCi0JCQkJ CQkJCSAgcmVsYWxsdmlzaWJsZSwgdGJsaW5mb1tpXS5yZWxraW5kLCBOVUxMLCAwKTsKKwkJewor CQkJUmVsU3RhdHNJbmZvICpzdGF0czsKKworCQkJc3RhdHMgPSBnZXRSZWxhdGlvblN0YXRpc3Rp Y3MoZm91dCwgJnRibGluZm9baV0uZG9iaiwKKwkJCQkJCQkJCQkgIHRibGluZm9baV0ucmVscGFn ZXMsCisJCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlcywgaSwgaV9yZWx0dXBsZXMpLAorCQkJCQkJ CQkJCSAgcmVsYWxsdmlzaWJsZSwKKwkJCQkJCQkJCQkgIHRibGluZm9baV0ucmVsa2luZCwgTlVM TCwgMCk7CisJCQlpZiAodGJsaW5mb1tpXS5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVykKKwkJ CQl0YmxpbmZvW2ldLnN0YXRzID0gc3RhdHM7CisJCX0KIAogCQkvKgogCQkgKiBSZWFkLWxvY2sg dGFyZ2V0IHRhYmxlcyB0byBtYWtlIHN1cmUgdGhleSBhcmVuJ3QgRFJPUFBFRCBvciBhbHRlcmVk CkBAIC0xMDQ0OCwzNCArMTA0OTgsNiBAQCBhcHBlbmROYW1lZEFyZ3VtZW50KFBRRXhwQnVmZmVy IG91dCwgQXJjaGl2ZSAqZm91dCwgY29uc3QgY2hhciAqYXJnbmFtZSwKIAlhcHBlbmRQUUV4cEJ1 ZmZlcihvdXQsICI6OiVzIiwgYXJndHlwZSk7CiB9CiAKLS8qCi0gKiBEZWNpZGUgd2hpY2ggc2Vj dGlvbiB0byB1c2UgYmFzZWQgb24gdGhlIHJlbGtpbmQgb2YgdGhlIHBhcmVudCBvYmplY3QuCi0g KgotICogTkI6IG1hdGVyaWFsaXplZCB2aWV3cyBtYXkgYmUgcG9zdHBvbmVkIGZyb20gU0VDVElP Tl9QUkVfREFUQSB0bwotICogU0VDVElPTl9QT1NUX0RBVEEgdG8gcmVzb2x2ZSBzb21lIGtpbmRz IG9mIGRlcGVuZGVuY3kgcHJvYmxlbXMuIElmIHNvLCB0aGUKLSAqIG1hdHZpZXcgc3RhdHMgd2ls bCBhbHNvIGJlIHBvc3Rwb25lZCB0byBTRUNUSU9OX1BPU1RfREFUQS4gU2VlCi0gKiByZXBhaXJN YXRWaWV3Qm91bmRhcnlNdWx0aUxvb3AoKS4KLSAqLwotc3RhdGljIHRlU2VjdGlvbgotc3RhdGlz dGljc0R1bXBTZWN0aW9uKGNvbnN0IFJlbFN0YXRzSW5mbyAqcnNpbmZvKQotewotCXN3aXRjaCAo cnNpbmZvLT5yZWxraW5kKQotCXsKLQkJY2FzZSBSRUxLSU5EX1JFTEFUSU9OOgotCQljYXNlIFJF TEtJTkRfUEFSVElUSU9ORURfVEFCTEU6Ci0JCWNhc2UgUkVMS0lORF9NQVRWSUVXOgotCQkJcmV0 dXJuIFNFQ1RJT05fREFUQTsKLQkJY2FzZSBSRUxLSU5EX0lOREVYOgotCQljYXNlIFJFTEtJTkRf UEFSVElUSU9ORURfSU5ERVg6Ci0JCQlyZXR1cm4gU0VDVElPTl9QT1NUX0RBVEE7Ci0JCWRlZmF1 bHQ6Ci0JCQlwZ19mYXRhbCgiY2Fubm90IGR1bXAgc3RhdGlzdGljcyBmb3IgcmVsYXRpb24ga2lu ZCAnJWMnIiwKLQkJCQkJIHJzaW5mby0+cmVsa2luZCk7Ci0JfQotCi0JcmV0dXJuIDA7CQkJCQkv KiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCi19Ci0KIC8qCiAgKiBkdW1wUmVsYXRpb25TdGF0cyAt LQogICoKQEAgLTEwNDg4LDggKzEwNTEwLDYgQEAgZHVtcFJlbGF0aW9uU3RhdHMoQXJjaGl2ZSAq Zm91dCwgY29uc3QgUmVsU3RhdHNJbmZvICpyc2luZm8pCiAJUEdyZXN1bHQgICAqcmVzOwogCVBR RXhwQnVmZmVyIHF1ZXJ5OwogCVBRRXhwQnVmZmVyIG91dDsKLQlEdW1wSWQJICAgKmRlcHMgPSBO VUxMOwotCWludAkJCW5kZXBzID0gMDsKIAljaGFyCSAgICpxdWFsaWZpZWRfbmFtZTsKIAlpbnQJ CQlpX2F0dG5hbWU7CiAJaW50CQkJaV9pbmhlcml0ZWQ7CkBAIC0xMDUxMSwxMyArMTA1MzEsNiBA QCBkdW1wUmVsYXRpb25TdGF0cyhBcmNoaXZlICpmb3V0LCBjb25zdCBSZWxTdGF0c0luZm8gKnJz aW5mbykKIAlpZiAoIWZvdXQtPmRvcHQtPmR1bXBTdGF0aXN0aWNzKQogCQlyZXR1cm47CiAKLQkv KiBkZXBlbmRlbnQgb24gdGhlIHJlbGF0aW9uIGRlZmluaXRpb24sIGlmIGRvaW5nIHNjaGVtYSAq LwotCWlmIChmb3V0LT5kb3B0LT5kdW1wU2NoZW1hKQotCXsKLQkJZGVwcyA9IGRvYmotPmRlcGVu ZGVuY2llczsKLQkJbmRlcHMgPSBkb2JqLT5uRGVwczsKLQl9Ci0KIAlxdWVyeSA9IGNyZWF0ZVBR RXhwQnVmZmVyKCk7CiAJaWYgKCFmb3V0LT5pc19wcmVwYXJlZFtQUkVQUVVFUllfR0VUQVRUUklC VVRFU1RBVFNdKQogCXsKQEAgLTEwNjkwLDExICsxMDcwMywxMCBAQCBkdW1wUmVsYXRpb25TdGF0 cyhBcmNoaXZlICpmb3V0LCBjb25zdCBSZWxTdGF0c0luZm8gKnJzaW5mbykKIAkJCQkgQVJDSElW RV9PUFRTKC50YWcgPSBkb2JqLT5uYW1lLAogCQkJCQkJCSAgLm5hbWVzcGFjZSA9IGRvYmotPm5h bWVzcGFjZS0+ZG9iai5uYW1lLAogCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIlNUQVRJU1RJQ1Mg REFUQSIsCi0JCQkJCQkJICAuc2VjdGlvbiA9IHJzaW5mby0+cG9zdHBvbmVkX2RlZiA/Ci0JCQkJ CQkJICBTRUNUSU9OX1BPU1RfREFUQSA6IHN0YXRpc3RpY3NEdW1wU2VjdGlvbihyc2luZm8pLAor CQkJCQkJCSAgLnNlY3Rpb24gPSByc2luZm8tPnNlY3Rpb24sCiAJCQkJCQkJICAuY3JlYXRlU3Rt dCA9IG91dC0+ZGF0YSwKLQkJCQkJCQkgIC5kZXBzID0gZGVwcywKLQkJCQkJCQkgIC5uRGVwcyA9 IG5kZXBzKSk7CisJCQkJCQkJICAuZGVwcyA9IGRvYmotPmRlcGVuZGVuY2llcywKKwkJCQkJCQkg IC5uRGVwcyA9IGRvYmotPm5EZXBzKSk7CiAKIAlmcmVlKHF1YWxpZmllZF9uYW1lKTsKIAlkZXN0 cm95UFFFeHBCdWZmZXIob3V0KTsKQEAgLTE5MzgzLDcgKzE5Mzk1LDcgQEAgYWRkQm91bmRhcnlE ZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQkJYnJl YWs7CiAJCQljYXNlIERPX1JFTF9TVEFUUzoKIAkJCQkvKiBzdGF0cyBzZWN0aW9uIHZhcmllcyBi eSBwYXJlbnQgb2JqZWN0IHR5cGUsIERBVEEgb3IgUE9TVCAqLwotCQkJCWlmIChzdGF0aXN0aWNz RHVtcFNlY3Rpb24oKFJlbFN0YXRzSW5mbyAqKSBkb2JqKSA9PSBTRUNUSU9OX0RBVEEpCisJCQkJ aWYgKCgoUmVsU3RhdHNJbmZvICopIGRvYmopLT5zZWN0aW9uID09IFNFQ1RJT05fREFUQSkKIAkJ CQl7CiAJCQkJCWFkZE9iamVjdERlcGVuZGVuY3koZG9iaiwgcHJlRGF0YUJvdW5kLT5kdW1wSWQp OwogCQkJCQlhZGRPYmplY3REZXBlbmRlbmN5KHBvc3REYXRhQm91bmQsIGRvYmotPmR1bXBJZCk7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaAppbmRleCBiYmRiMzBiNWY1NC4uNzBmN2EzNjllNGEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApA QCAtMzY5LDYgKzM2OSw3IEBAIHR5cGVkZWYgc3RydWN0IF90YWJsZUluZm8KIAlib29sCSAgICpu b3RudWxsX2lzbG9jYWw7CS8qIHRydWUgaWYgTk9UIE5VTEwgaGFzIGxvY2FsIGRlZmluaXRpb24g Ki8KIAlzdHJ1Y3QgX2F0dHJEZWZJbmZvICoqYXR0cmRlZnM7IC8qIERFRkFVTFQgZXhwcmVzc2lv bnMgKi8KIAlzdHJ1Y3QgX2NvbnN0cmFpbnRJbmZvICpjaGVja2V4cHJzOyAvKiBDSEVDSyBjb25z dHJhaW50cyAqLworCXN0cnVjdCBfcmVsU3RhdHNJbmZvICpzdGF0czsJLyogb25seSBzZXQgZm9y IG1hdHZpZXdzICovCiAJYm9vbAkJbmVlZHNfb3ZlcnJpZGU7IC8qIGhhcyBHRU5FUkFURUQgQUxX QVlTIEFTIElERU5USVRZICovCiAJY2hhcgkgICAqYW1uYW1lOwkJCS8qIHJlbGF0aW9uIGFjY2Vz cyBtZXRob2QgKi8KIApAQCAtNDQ5LDcgKzQ1MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9yZWxTdGF0 c0luZm8KIAkgKi8KIAljaGFyCSAgKippbmRBdHROYW1lczsJLyogYXR0bmFtZXMgb2YgdGhlIGlu ZGV4LCBpbiBvcmRlciAqLwogCWludDMyCQluaW5kQXR0TmFtZXM7CS8qIG51bWJlciBvZiBhdHRu YW1lcyBzdG9yZWQgKGNhbiBiZSAwKSAqLwotCWJvb2wJCXBvc3Rwb25lZF9kZWY7CS8qIHN0YXRz IG11c3QgYmUgcG9zdHBvbmVkIGludG8gcG9zdC1kYXRhICovCisJdGVTZWN0aW9uCXNlY3Rpb247 CQkvKiBzdGF0cyBtYXkgYXBwZWFyIGluIGRhdGEgb3IgcG9zdC1kYXRhICovCiB9IFJlbFN0YXRz SW5mbzsKIAogdHlwZWRlZiBzdHJ1Y3QgX3N0YXRzRXh0SW5mbwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5j CmluZGV4IGY3NWU5OTI4YmFkLi4wYjA5Nzc3ODhmMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpA QCAtODIwLDcgKzgyMCw3IEBAIHJlcGFpck1hdFZpZXdCb3VuZGFyeU11bHRpTG9vcChEdW1wYWJs ZU9iamVjdCAqYm91bmRhcnlvYmosCiAJCVJlbFN0YXRzSW5mbyAqbmV4dGluZm8gPSAoUmVsU3Rh dHNJbmZvICopIG5leHRvYmo7CiAKIAkJaWYgKG5leHRpbmZvLT5yZWxraW5kID09IFJFTEtJTkRf TUFUVklFVykKLQkJCW5leHRpbmZvLT5wb3N0cG9uZWRfZGVmID0gdHJ1ZTsKKwkJCW5leHRpbmZv LT5zZWN0aW9uID0gU0VDVElPTl9QT1NUX0RBVEE7CiAJfQogfQogCi0tIAoyLjM0LjEKCg== --=-OChxh9d/ETPV+VcmjL/M--