From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 106643 invoked by alias); 1 Mar 2019 10:22:42 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 106628 invoked by uid 89); 1 Mar 2019 10:22:41 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=skipping, 97,17, 9717, mangled X-HELO: mail-qt1-f181.google.com Received: from mail-qt1-f181.google.com (HELO mail-qt1-f181.google.com) (209.85.160.181) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 01 Mar 2019 10:22:38 +0000 Received: by mail-qt1-f181.google.com with SMTP id p48so27118943qtk.2 for ; Fri, 01 Mar 2019 02:22:37 -0800 (PST) MIME-Version: 1.0 From: Iain Buclaw Date: Fri, 01 Mar 2019 10:22:00 -0000 Message-ID: Subject: [PATCH, d] Committed merge with upstream dmd To: gcc-patches Content-Type: multipart/mixed; boundary="0000000000001ba04e058305c945" X-IsSubscribed: yes X-SW-Source: 2019-03/txt/msg00025.txt.bz2 --0000000000001ba04e058305c945 Content-Type: text/plain; charset="UTF-8" Content-length: 630 Hi, This patch merges the D front-end implementation with dmd upstream ed71446aa. Backports support for extern(C++, "namespace"), which makes the core.stdcpp package compilable. Added predefined condition for CppRuntime_Gcc unconditionally, as it is unlikely that D code will be linking to anything other than libstdc++ when extern(C++) is used. Bootstrapped and regression tested on x86_64-linux-gnu. Committed to trunk as r269304. -- Iain --- gcc/d/ChangeLog: 2019-03-01 Iain Buclaw * d-builtins.cc (d_init_versions): Add CppRuntime_Gcc as predefined version condition. --- --0000000000001ba04e058305c945 Content-Type: text/x-patch; charset="US-ASCII"; name="dmded71446aa.patch" Content-Disposition: attachment; filename="dmded71446aa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jspwotjg0 Content-length: 29463 ZGlmZiAtLWdpdCBhL2djYy9kL2QtYnVpbHRpbnMuY2MgYi9nY2MvZC9kLWJ1 aWx0aW5zLmNjCmluZGV4IGIwYTMxNWEzZWQ5Li5mMjYzYWFmYmQ1OSAxMDA2 NDQKLS0tIGEvZ2NjL2QvZC1idWlsdGlucy5jYworKysgYi9nY2MvZC9kLWJ1 aWx0aW5zLmNjCkBAIC00NTIsNiArNDUyLDggQEAgZF9pbml0X3ZlcnNpb25z ICh2b2lkKQogICAvKiBFbWl0IGFsbCB0YXJnZXQtc3BlY2lmaWMgdmVyc2lv biBpZGVudGlmaWVycy4gICovCiAgIHRhcmdldGRtLmRfY3B1X3ZlcnNpb25z ICgpOwogICB0YXJnZXRkbS5kX29zX3ZlcnNpb25zICgpOworCisgIFZlcnNp b25Db25kaXRpb246OmFkZFByZWRlZmluZWRHbG9iYWxJZGVudCAoIkNwcFJ1 bnRpbWVfR2NjIik7CiB9CiAKIC8qIEEgaGVscGVyIGZvciBkX2J1aWxkX2J1 aWx0aW5zX21vZHVsZS4gIFJldHVybiBhIG5ldyBBTElBUyBmb3IgVFlQRS4K ZGlmZiAtLWdpdCBhL2djYy9kL2RtZC9NRVJHRSBiL2djYy9kL2RtZC9NRVJH RQppbmRleCA4YjM3NzAxNTEyOS4uOTdhYTQwZDFhY2UgMTAwNjQ0Ci0tLSBh L2djYy9kL2RtZC9NRVJHRQorKysgYi9nY2MvZC9kbWQvTUVSR0UKQEAgLTEs NCArMSw0IEBACi0zOWVkYmUxN2U3YjVjNzYxZDc4MGM5ZDFkNDM3NmEwNmRm N2JmM2Q4CitlZDcxNDQ2YWFhMmJkMGU1NDhjM2JmMjE1NGE2Mzg4MjZkZmUz ZGIwCiAKIFRoZSBmaXJzdCBsaW5lIG9mIHRoaXMgZmlsZSBob2xkcyB0aGUg Z2l0IHJldmlzaW9uIG51bWJlciBvZiB0aGUgbGFzdAogbWVyZ2UgZG9uZSBm cm9tIHRoZSBkbGFuZy9kbWQgcmVwb3NpdG9yeS4KZGlmZiAtLWdpdCBhL2dj Yy9kL2RtZC9jb25kLmMgYi9nY2MvZC9kbWQvY29uZC5jCmluZGV4IDhkZjIy NmZhOWI2Li45ZDdkZjVmZDI0MCAxMDA2NDQKLS0tIGEvZ2NjL2QvZG1kL2Nv bmQuYworKysgYi9nY2MvZC9kbWQvY29uZC5jCkBAIC0xNzEsNiArMTcxLDgg QEAgc3RhdGljIGJvb2wgaXNSZXNlcnZlZChjb25zdCBjaGFyICppZGVudCkK ICAgICAgICAgIlN5c1Y0IiwKICAgICAgICAgIkh1cmQiLAogICAgICAgICAi QW5kcm9pZCIsCisgICAgICAgICJQbGF5U3RhdGlvbiIsCisgICAgICAgICJQ bGF5U3RhdGlvbjQiLAogICAgICAgICAiQ3lnd2luIiwKICAgICAgICAgIk1p bkdXIiwKICAgICAgICAgIkZyZWVTdGFuZGluZyIsCkBAIC0xOTcsOCArMTk5 LDExIEBAIHN0YXRpYyBib29sIGlzUmVzZXJ2ZWQoY29uc3QgY2hhciAqaWRl bnQpCiAgICAgICAgICJNSVBTX0VBQkkiLAogICAgICAgICAiTUlQU19Tb2Z0 RmxvYXQiLAogICAgICAgICAiTUlQU19IYXJkRmxvYXQiLAorICAgICAgICAi TVNQNDMwIiwKICAgICAgICAgIk5WUFRYIiwKICAgICAgICAgIk5WUFRYNjQi LAorICAgICAgICAiUklTQ1YzMiIsCisgICAgICAgICJSSVNDVjY0IiwKICAg ICAgICAgIlNQQVJDIiwKICAgICAgICAgIlNQQVJDX1Y4UGx1cyIsCiAgICAg ICAgICJTUEFSQ19Tb2Z0RmxvYXQiLApAQCAtMjE5LDYgKzIyNCwxMyBAQCBz dGF0aWMgYm9vbCBpc1Jlc2VydmVkKGNvbnN0IGNoYXIgKmlkZW50KQogICAg ICAgICAiQ1J1bnRpbWVfRGlnaXRhbG1hcnMiLAogICAgICAgICAiQ1J1bnRp bWVfR2xpYmMiLAogICAgICAgICAiQ1J1bnRpbWVfTWljcm9zb2Z0IiwKKyAg ICAgICAgIkNSdW50aW1lX011c2wiLAorICAgICAgICAiQ1J1bnRpbWVfVUNs aWJjIiwKKyAgICAgICAgIkNwcFJ1bnRpbWVfQ2xhbmciLAorICAgICAgICAi Q3BwUnVudGltZV9EaWdpdGFsTWFycyIsCisgICAgICAgICJDcHBSdW50aW1l X0djYyIsCisgICAgICAgICJDcHBSdW50aW1lX01pY3Jvc29mdCIsCisgICAg ICAgICJDcHBSdW50aW1lX1N1biIsCiAgICAgICAgICJEX0NvdmVyYWdlIiwK ICAgICAgICAgIkRfRGRvYyIsCiAgICAgICAgICJEX0lubGluZUFzbV9YODYi LApkaWZmIC0tZ2l0IGEvZ2NjL2QvZG1kL2NwcG1hbmdsZS5jIGIvZ2NjL2Qv ZG1kL2NwcG1hbmdsZS5jCmluZGV4IGUyNmY3NjQ3ZDNjLi5iOTkxNDE3YzM1 ZSAxMDA2NDQKLS0tIGEvZ2NjL2QvZG1kL2NwcG1hbmdsZS5jCisrKyBiL2dj Yy9kL2RtZC9jcHBtYW5nbGUuYwpAQCAtMTk2LDggKzE5Niw4IEBAIGNsYXNz IENwcE1hbmdsZVZpc2l0b3IgOiBwdWJsaWMgVmlzaXRvcgogICAgICAgICAg ICAgICAgIEV4cHJlc3Npb24gKmUgPSBpc0V4cHJlc3Npb24obyk7CiAgICAg ICAgICAgICAgICAgaWYgKGQgJiYgZC0+aXNGdW5jRGVjbGFyYXRpb24oKSkK ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGJvb2wg aXNfbmVzdGVkID0gZC0+dG9QYXJlbnQoKSAmJgotICAgICAgICAgICAgICAg ICAgICAgICAgIWQtPnRvUGFyZW50KCktPmlzTW9kdWxlKCkgJiYKKyAgICAg ICAgICAgICAgICAgICAgYm9vbCBpc19uZXN0ZWQgPSBkLT50b1BhcmVudDMo KSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIWQtPnRvUGFyZW50Mygp LT5pc01vZHVsZSgpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAoKFR5 cGVGdW5jdGlvbiopZC0+aXNGdW5jRGVjbGFyYXRpb24oKS0+dHlwZSktPmxp bmthZ2UgPT0gTElOS2NwcDsKICAgICAgICAgICAgICAgICAgICAgaWYgKGlz X25lc3RlZCkKICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi0+d3JpdGVC eXRlKCdYJyk7CkBAIC0yNzEsNyArMjcxLDcgQEAgY2xhc3MgQ3BwTWFuZ2xl VmlzaXRvciA6IHB1YmxpYyBWaXNpdG9yCiAgICAgICovCiAgICAgRHN5bWJv bCAqZ2V0SW5zdGFuY2UoRHN5bWJvbCAqcykKICAgICB7Ci0gICAgICAgIERz eW1ib2wgKnAgPSBzLT50b1BhcmVudCgpOworICAgICAgICBEc3ltYm9sICpw ID0gcy0+dG9QYXJlbnQzKCk7CiAgICAgICAgIGlmIChwKQogICAgICAgICB7 CiAgICAgICAgICAgICBpZiAoVGVtcGxhdGVJbnN0YW5jZSAqdGkgPSBwLT5p c1RlbXBsYXRlSW5zdGFuY2UoKSkKQEAgLTI5Miw3ICsyOTIsNyBAQCBjbGFz cyBDcHBNYW5nbGVWaXNpdG9yIDogcHVibGljIFZpc2l0b3IKICAgICAgKi8K ICAgICBzdGF0aWMgRHN5bWJvbCAqZ2V0UXVhbGlmaWVyKERzeW1ib2wgKnMp CiAgICAgewotICAgICAgICBEc3ltYm9sICpwID0gcy0+dG9QYXJlbnQoKTsK KyAgICAgICAgRHN5bWJvbCAqcCA9IHMtPnRvUGFyZW50MygpOwogICAgICAg ICByZXR1cm4gKHAgJiYgIXAtPmlzTW9kdWxlKCkpID8gcCA6IE5VTEw7CiAg ICAgfQogCkBAIC0zMjQsNyArMzI0LDcgQEAgY2xhc3MgQ3BwTWFuZ2xlVmlz aXRvciA6IHB1YmxpYyBWaXNpdG9yCiAgICAgICAgIERzeW1ib2wgKnMgPSAo KFR5cGVTdHJ1Y3QqKXQpLT50b0RzeW1ib2woTlVMTCk7CiAgICAgICAgIGlm IChzLT5pZGVudCAhPSBpZGVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKLSAgICAgICAgRHN5bWJvbCAqcCA9IHMtPnRvUGFyZW50KCk7CisgICAg ICAgIERzeW1ib2wgKnAgPSBzLT50b1BhcmVudDMoKTsKICAgICAgICAgaWYg KCFwKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBUZW1w bGF0ZUluc3RhbmNlICp0aSA9IHAtPmlzVGVtcGxhdGVJbnN0YW5jZSgpOwpA QCAtNDI3LDcgKzQyNyw3IEBAIGNsYXNzIENwcE1hbmdsZVZpc2l0b3IgOiBw dWJsaWMgVmlzaXRvcgogICAgIHZvaWQgY3BwX21hbmdsZV9uYW1lKERzeW1i b2wgKnMsIGJvb2wgcXVhbGlmaWVkKQogICAgIHsKICAgICAgICAgLy9wcmlu dGYoImNwcF9tYW5nbGVfbmFtZSglcywgJWQpXG4iLCBzLT50b0NoYXJzKCks IHF1YWxpZmllZCk7Ci0gICAgICAgIERzeW1ib2wgKnAgPSBzLT50b1BhcmVu dCgpOworICAgICAgICBEc3ltYm9sICpwID0gcy0+dG9QYXJlbnQzKCk7CiAg ICAgICAgIERzeW1ib2wgKnNlID0gczsKICAgICAgICAgYm9vbCB3cml0ZV9w cmVmaXggPSB0cnVlOwogICAgICAgICBpZiAocCAmJiBwLT5pc1RlbXBsYXRl SW5zdGFuY2UoKSkKQEAgLTQzNSw3ICs0MzUsNyBAQCBjbGFzcyBDcHBNYW5n bGVWaXNpdG9yIDogcHVibGljIFZpc2l0b3IKICAgICAgICAgICAgIHNlID0g cDsKICAgICAgICAgICAgIGlmIChmaW5kKHAtPmlzVGVtcGxhdGVJbnN0YW5j ZSgpLT50ZW1wZGVjbCkgPj0gMCkKICAgICAgICAgICAgICAgICB3cml0ZV9w cmVmaXggPSBmYWxzZTsKLSAgICAgICAgICAgIHAgPSBwLT50b1BhcmVudCgp OworICAgICAgICAgICAgcCA9IHAtPnRvUGFyZW50MygpOwogICAgICAgICB9 CiAKICAgICAgICAgaWYgKHAgJiYgIXAtPmlzTW9kdWxlKCkpCkBAIC01MjEs NyArNTIxLDcgQEAgY2xhc3MgQ3BwTWFuZ2xlVmlzaXRvciA6IHB1YmxpYyBW aXNpdG9yCiAgICAgICAgICAgICBmYXRhbCgpOwogICAgICAgICB9CiAKLSAg ICAgICAgRHN5bWJvbCAqcCA9IGQtPnRvUGFyZW50KCk7CisgICAgICAgIERz eW1ib2wgKnAgPSBkLT50b1BhcmVudDMoKTsKICAgICAgICAgaWYgKHAgJiYg IXAtPmlzTW9kdWxlKCkpIC8vZm9yIGV4YW1wbGU6IGNoYXIgTmFtZXNwYWNl MTo6YmV0YVs2XSBzaG91bGQgYmUgbWFuZ2xlZCBhcyAiX1pOMTBOYW1lc3Bh Y2UxNGJldGFFIgogICAgICAgICB7CiAgICAgICAgICAgICBidWYtPndyaXRl c3RyaW5nKCJfWk4iKTsKQEAgLTU2MSw3ICs1NjEsNyBAQCBjbGFzcyBDcHBN YW5nbGVWaXNpdG9yIDogcHVibGljIFZpc2l0b3IKICAgICAgICAgICAgICAq LwogICAgICAgICAgICAgVGVtcGxhdGVJbnN0YW5jZSAqdGkgPSBkLT5wYXJl bnQtPmlzVGVtcGxhdGVJbnN0YW5jZSgpOwogICAgICAgICAgICAgYXNzZXJ0 KHRpKTsKLSAgICAgICAgICAgIERzeW1ib2wgKnAgPSB0aS0+dG9QYXJlbnQo KTsKKyAgICAgICAgICAgIERzeW1ib2wgKnAgPSB0aS0+dG9QYXJlbnQzKCk7 CiAgICAgICAgICAgICBpZiAocCAmJiAhcC0+aXNNb2R1bGUoKSAmJiB0Zi0+ bGlua2FnZSA9PSBMSU5LY3BwKQogICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgIGJ1Zi0+d3JpdGVCeXRlKCdOJyk7CkBAIC01ODEsNyArNTgxLDcg QEAgY2xhc3MgQ3BwTWFuZ2xlVmlzaXRvciA6IHB1YmxpYyBWaXNpdG9yCiAg ICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7Ci0gICAgICAgICAg ICBEc3ltYm9sICpwID0gZC0+dG9QYXJlbnQoKTsKKyAgICAgICAgICAgIERz eW1ib2wgKnAgPSBkLT50b1BhcmVudDMoKTsKICAgICAgICAgICAgIGlmIChw ICYmICFwLT5pc01vZHVsZSgpICYmIHRmLT5saW5rYWdlID09IExJTktjcHAp CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLyogPG5lc3RlZC1u YW1lPiA6Oj0gTiBbPENWLXF1YWxpZmllcnM+XSA8cHJlZml4PiA8dW5xdWFs aWZpZWQtbmFtZT4gRQpAQCAtOTk3LDcgKzk5Nyw3IEBAIHB1YmxpYzoKICAg ICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgICBEc3ltYm9sICpz ID0gdC0+dG9Ec3ltYm9sKE5VTEwpOwotICAgICAgICAgICAgRHN5bWJvbCAq cCA9IHMtPnRvUGFyZW50KCk7CisgICAgICAgICAgICBEc3ltYm9sICpwID0g cy0+dG9QYXJlbnQzKCk7CiAgICAgICAgICAgICBpZiAocCAmJiBwLT5pc1Rl bXBsYXRlSW5zdGFuY2UoKSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAvKiBodHRwczovL2lzc3Vlcy5kbGFuZy5vcmcvc2hvd19idWcuY2dp P2lkPTE3OTQ3CkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBwdWJsaWM6CiAKICAg ICAgICAgewogICAgICAgICAgICAgRHN5bWJvbCAqcyA9IHQtPnRvRHN5bWJv bChOVUxMKTsKLSAgICAgICAgICAgIERzeW1ib2wgKnAgPSBzLT50b1BhcmVu dCgpOworICAgICAgICAgICAgRHN5bWJvbCAqcCA9IHMtPnRvUGFyZW50Mygp OwogICAgICAgICAgICAgaWYgKHAgJiYgcC0+aXNUZW1wbGF0ZUluc3RhbmNl KCkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIC8qIGh0dHBz Oi8vaXNzdWVzLmRsYW5nLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NDcKZGlm ZiAtLWdpdCBhL2djYy9kL2RtZC9kc3ltYm9sLmMgYi9nY2MvZC9kbWQvZHN5 bWJvbC5jCmluZGV4IDRkODJkNzIxN2UxLi45YWVjODdhMDRmNSAxMDA2NDQK LS0tIGEvZ2NjL2QvZG1kL2RzeW1ib2wuYworKysgYi9nY2MvZC9kbWQvZHN5 bWJvbC5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiYXR0cmliLmgi CiAjaW5jbHVkZSAiZW51bS5oIgogI2luY2x1ZGUgImxleGVyLmgiCisjaW5j bHVkZSAibnNwYWNlLmgiCiAKIGJvb2wgc3ltYm9sSXNWaXNpYmxlKERzeW1i b2wgKm9yaWdpbiwgRHN5bWJvbCAqcyk7CiB0eXBlZGVmIGludCAoKkZvcmVh Y2hEZykodm9pZCAqY3R4LCBzaXplX3QgaWR4LCBEc3ltYm9sICpzKTsKQEAg LTMxMCw2ICszMTEsMTQgQEAgRHN5bWJvbCAqRHN5bWJvbDo6dG9BbGlhczIo KQogICAgIHJldHVybiB0b0FsaWFzKCk7CiB9CiAKKy8qKgorICogYHBhc3RN aXhpbmAgcmV0dXJucyB0aGUgZW5jbG9zaW5nIHN5bWJvbCBpZiB0aGlzIGlz IGEgdGVtcGxhdGUgbWl4aW4uCisgKgorICogYHBhc3RNaXhpbkFuZE5zcGFj ZWAgZG9lcyBsaWtld2lzZSwgYWRkaXRpb25hbGx5IHNraXBwaW5nIG92ZXIg TnNwYWNlcyB0aGF0CisgKiBhcmUgbWFuZ2xlT25seS4KKyAqCisgKiBTZWUg YWxzbyBgcGFyZW50YCwgYHRvUGFyZW50YCwgYHRvUGFyZW50MmAgYW5kIGB0 b1BhcmVudDNgLgorICovCiBEc3ltYm9sICpEc3ltYm9sOjpwYXN0TWl4aW4o KQogewogICAgIERzeW1ib2wgKnMgPSB0aGlzOwpAQCAtMzIwLDE2ICszMjks MzEgQEAgRHN5bWJvbCAqRHN5bWJvbDo6cGFzdE1peGluKCkKICAgICByZXR1 cm4gczsKIH0KIAorLy8vIGRpdHRvCitEc3ltYm9sICpEc3ltYm9sOjpwYXN0 TWl4aW5BbmROc3BhY2UoKQoreworICAgIC8vcHJpbnRmKCJEc3ltYm9sOjpw YXN0TWl4aW5BbmROc3BhY2UoKSAlc1xuIiwgdG9DaGFycygpKTsKKyAgICBO c3BhY2UgKm5zID0gaXNOc3BhY2UoKTsKKyAgICBpZiAoIShucyAmJiBucy0+ bWFuZ2xlT25seSkgJiYgIWlzVGVtcGxhdGVNaXhpbigpICYmICFpc0Zvcndh cmRpbmdBdHRyaWJEZWNsYXJhdGlvbigpKQorICAgICAgICByZXR1cm4gdGhp czsKKyAgICBpZiAoIXBhcmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7Cisg ICAgcmV0dXJuIHBhcmVudC0+cGFzdE1peGluQW5kTnNwYWNlKCk7Cit9CisK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBgcGFy ZW50YCBmaWVsZCByZXR1cm5zIGEgbGV4aWNhbGx5IGVuY2xvc2luZyBzY29w ZSBzeW1ib2wgdGhpcyBpcyBhIG1lbWJlciBvZi4KICAqCiAgKiBgdG9QYXJl bnQoKWAgcmV0dXJucyBhIGxvZ2ljYWxseSBlbmNsb3Npbmcgc2NvcGUgc3lt Ym9sIHRoaXMgaXMgYSBtZW1iZXIgb2YuCi0gKiBJdCBza2lwcyBvdmVyIFRl bXBsYXRlTWl4aW4ncy4KKyAqIEl0IHNraXBzIG92ZXIgVGVtcGxhdGVNaXhp bidzIGFuZCBOc3BhY2VzIHRoYXQgYXJlIG1hbmdsZU9ubHkuCiAgKgogICog YHRvUGFyZW50MigpYCByZXR1cm5zIGFuIGVuY2xvc2luZyBzY29wZSBzeW1i b2wgdGhpcyBpcyBsaXZpbmcgYXQgcnVudGltZS4KICAqIEl0IHNraXBzIG92 ZXIgYm90aCBUZW1wbGF0ZUluc3RhbmNlJ3MgYW5kIFRlbXBsYXRlTWl4aW4n cy4KICAqIEl0J3MgdXNlZCB3aGVuIGxvb2tpbmcgZm9yIHRoZSAndGhpcycg cG9pbnRlciBvZiB0aGUgZW5jbG9zaW5nIGZ1bmN0aW9uL2NsYXNzLgogICoK KyAqIGB0b1BhcmVudDMoKWAgcmV0dXJucyBhIGxvZ2ljYWxseSBlbmNsb3Np bmcgc2NvcGUgc3ltYm9sIHRoaXMgaXMgYSBtZW1iZXIgb2YuCisgKiBJdCBz a2lwcyBvdmVyIFRlbXBsYXRlTWl4aW4ncy4KKyAqCiAgKiBFeGFtcGxlczoK ICAqICBtb2R1bGUgbW9kOwogICogIHRlbXBsYXRlIEZvbyhhbGlhcyBhKSB7 IG1peGluIEJhciEoKTsgfQpAQCAtMzUyLDcgKzM3Niw3IEBAIERzeW1ib2wg KkRzeW1ib2w6OnBhc3RNaXhpbigpCiAgKi8KIERzeW1ib2wgKkRzeW1ib2w6 OnRvUGFyZW50KCkKIHsKLSAgICByZXR1cm4gcGFyZW50ID8gcGFyZW50LT5w YXN0TWl4aW4oKSA6IE5VTEw7CisgICAgcmV0dXJuIHBhcmVudCA/IHBhcmVu dC0+cGFzdE1peGluQW5kTnNwYWNlKCkgOiBOVUxMOwogfQogCiAvLy8gZGl0 dG8KQEAgLTM2NCw2ICszODgsMTIgQEAgRHN5bWJvbCAqRHN5bWJvbDo6dG9Q YXJlbnQyKCkKICAgICByZXR1cm4gczsKIH0KIAorLy8vIGRpdHRvCitEc3lt Ym9sICpEc3ltYm9sOjp0b1BhcmVudDMoKQoreworICAgIHJldHVybiBwYXJl bnQgPyBwYXJlbnQtPnBhc3RNaXhpbigpIDogTlVMTDsKK30KKwogVGVtcGxh dGVJbnN0YW5jZSAqRHN5bWJvbDo6aXNJbnN0YW50aWF0ZWQoKQogewogICAg IGZvciAoRHN5bWJvbCAqcyA9IHBhcmVudDsgczsgcyA9IHMtPnBhcmVudCkK ZGlmZiAtLWdpdCBhL2djYy9kL2RtZC9kc3ltYm9sLmggYi9nY2MvZC9kbWQv ZHN5bWJvbC5oCmluZGV4IGJmZWQzMWQzZjIyLi5hODQwMjYxYzBiZiAxMDA2 NDQKLS0tIGEvZ2NjL2QvZG1kL2RzeW1ib2wuaAorKysgYi9nY2MvZC9kbWQv ZHN5bWJvbC5oCkBAIC0xODAsOCArMTgwLDEwIEBAIHB1YmxpYzoKICAgICBN b2R1bGUgKmdldE1vZHVsZSgpOwogICAgIE1vZHVsZSAqZ2V0QWNjZXNzTW9k dWxlKCk7CiAgICAgRHN5bWJvbCAqcGFzdE1peGluKCk7CisgICAgRHN5bWJv bCAqcGFzdE1peGluQW5kTnNwYWNlKCk7CiAgICAgRHN5bWJvbCAqdG9QYXJl bnQoKTsKICAgICBEc3ltYm9sICp0b1BhcmVudDIoKTsKKyAgICBEc3ltYm9s ICp0b1BhcmVudDMoKTsKICAgICBUZW1wbGF0ZUluc3RhbmNlICppc0luc3Rh bnRpYXRlZCgpOwogICAgIFRlbXBsYXRlSW5zdGFuY2UgKmlzU3BlY3VsYXRp dmUoKTsKICAgICBVbmdhZyB1bmdhZ1NwZWN1bGF0aXZlKCk7CmRpZmYgLS1n aXQgYS9nY2MvZC9kbWQvbnNwYWNlLmMgYi9nY2MvZC9kbWQvbnNwYWNlLmMK aW5kZXggMzA2OGJmYzIyNWQuLmRjNzg1NDE4ZGI4IDEwMDY0NAotLS0gYS9n Y2MvZC9kbWQvbnNwYWNlLmMKKysrIGIvZ2NjL2QvZG1kL25zcGFjZS5jCkBA IC0xNywyMyArMTcsMjkgQEAKIC8qIFRoaXMgaW1wbGVtZW50cyBuYW1lc3Bh Y2VzLgogICovCiAKLU5zcGFjZTo6TnNwYWNlKExvYyBsb2MsIElkZW50aWZp ZXIgKmlkZW50LCBEc3ltYm9scyAqbWVtYmVycykKK05zcGFjZTo6TnNwYWNl KExvYyBsb2MsIElkZW50aWZpZXIgKmlkZW50LCBEc3ltYm9scyAqbWVtYmVy cywgYm9vbCBtYW5nbGVPbmx5KQogICAgIDogU2NvcGVEc3ltYm9sKGlkZW50 KQogewogICAgIC8vcHJpbnRmKCJOc3BhY2U6Ok5zcGFjZShpZGVudCA9ICVz KVxuIiwgaWRlbnQtPnRvQ2hhcnMoKSk7CiAgICAgdGhpcy0+bG9jID0gbG9j OwogICAgIHRoaXMtPm1lbWJlcnMgPSBtZW1iZXJzOworICAgIC8vIERldGVy bWluZXMgd2hldGhlciB0aGUgc3ltYm9sIGZvciB0aGlzIG5hbWVzcGFjZSBz aG91bGQgYmUgaW5jbHVkZWQgaW4KKyAgICAvLyB0aGUgc3ltYm9sIHRhYmxl LgorICAgIHRoaXMtPm1hbmdsZU9ubHkgPSBtYW5nbGVPbmx5OwogfQogCiBE c3ltYm9sICpOc3BhY2U6OnN5bnRheENvcHkoRHN5bWJvbCAqKQogewotICAg IE5zcGFjZSAqbnMgPSBuZXcgTnNwYWNlKGxvYywgaWRlbnQsIE5VTEwpOwor ICAgIE5zcGFjZSAqbnMgPSBuZXcgTnNwYWNlKGxvYywgaWRlbnQsIE5VTEws IG1hbmdsZU9ubHkpOwogICAgIHJldHVybiBTY29wZURzeW1ib2w6OnN5bnRh eENvcHkobnMpOwogfQogCiB2b2lkIE5zcGFjZTo6YWRkTWVtYmVyKFNjb3Bl ICpzYywgU2NvcGVEc3ltYm9sICpzZHMpCiB7Ci0gICAgU2NvcGVEc3ltYm9s OjphZGRNZW1iZXIoc2MsIHNkcyk7CisgICAgaWYgKG1hbmdsZU9ubHkpCisg ICAgICAgIHBhcmVudCA9IHNkczsKKyAgICBlbHNlCisgICAgICAgIFNjb3Bl RHN5bWJvbDo6YWRkTWVtYmVyKHNjLCBzZHMpOwogICAgIGlmIChtZW1iZXJz KQogICAgIHsKICAgICAgICAgaWYgKCFzeW10YWIpCmRpZmYgLS1naXQgYS9n Y2MvZC9kbWQvbnNwYWNlLmggYi9nY2MvZC9kbWQvbnNwYWNlLmgKaW5kZXgg YzA0NWI5NjU3ZjYuLjg1MWY4MDA3MDdkIDEwMDY0NAotLS0gYS9nY2MvZC9k bWQvbnNwYWNlLmgKKysrIGIvZ2NjL2QvZG1kL25zcGFjZS5oCkBAIC0xOSw3 ICsxOSw4IEBACiBjbGFzcyBOc3BhY2UgOiBwdWJsaWMgU2NvcGVEc3ltYm9s CiB7CiAgIHB1YmxpYzoKLSAgICBOc3BhY2UoTG9jIGxvYywgSWRlbnRpZmll ciAqaWRlbnQsIERzeW1ib2xzICptZW1iZXJzKTsKKyAgICBib29sIG1hbmds ZU9ubHk7CisgICAgTnNwYWNlKExvYyBsb2MsIElkZW50aWZpZXIgKmlkZW50 LCBEc3ltYm9scyAqbWVtYmVycywgYm9vbCBtYW5nbGVPbmx5KTsKIAogICAg IERzeW1ib2wgKnN5bnRheENvcHkoRHN5bWJvbCAqcyk7CiAgICAgdm9pZCBh ZGRNZW1iZXIoU2NvcGUgKnNjLCBTY29wZURzeW1ib2wgKnNkcyk7CmRpZmYg LS1naXQgYS9nY2MvZC9kbWQvcGFyc2UuYyBiL2djYy9kL2RtZC9wYXJzZS5j CmluZGV4IDE3MWVkMTRmMTMyLi43MDFjMzE0MTAzMSAxMDA2NDQKLS0tIGEv Z2NjL2QvZG1kL3BhcnNlLmMKKysrIGIvZ2NjL2QvZG1kL3BhcnNlLmMKQEAg LTY3Niw3ICs2NzYsOCBAQCBEc3ltYm9scyAqUGFyc2VyOjpwYXJzZURlY2xE ZWZzKGludCBvbmNlLCBEc3ltYm9sICoqcExhc3REZWNsLCBQcmVmaXhBdHRy aWJ1dGVzCiAgICAgICAgICAgICAgICAgTG9jIGxpbmtMb2MgPSB0b2tlbi5s b2M7CiAgICAgICAgICAgICAgICAgSWRlbnRpZmllcnMgKmlkZW50cyA9IE5V TEw7CiAgICAgICAgICAgICAgICAgQ1BQTUFOR0xFIGNwcG1hbmdsZSA9IENQ UE1BTkdMRWRlZmF1bHQ7Ci0gICAgICAgICAgICAgICAgTElOSyBsaW5rID0g cGFyc2VMaW5rYWdlKCZpZGVudHMsICZjcHBtYW5nbGUpOworICAgICAgICAg ICAgICAgIGJvb2wgY3BwTWFuZ2xlT25seSA9IGZhbHNlOworICAgICAgICAg ICAgICAgIExJTksgbGluayA9IHBhcnNlTGlua2FnZSgmaWRlbnRzLCAmY3Bw bWFuZ2xlLCAmY3BwTWFuZ2xlT25seSk7CiAgICAgICAgICAgICAgICAgaWYg KHBBdHRycy0+bGluayAhPSBMSU5LZGVmYXVsdCkKICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChwQXR0cnMtPmxpbmsgIT0g bGluaykKQEAgLTcwOSw3ICs3MTAsNyBAQCBEc3ltYm9scyAqUGFyc2VyOjpw YXJzZURlY2xEZWZzKGludCBvbmNlLCBEc3ltYm9sICoqcExhc3REZWNsLCBQ cmVmaXhBdHRyaWJ1dGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YSA9IG5ldyBEc3ltYm9scygpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGEtPnB1c2gocyk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgICAgICAgICBzID0gbmV3IE5zcGFjZShsaW5rTG9j LCBpZCwgYSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gbmV3IE5z cGFjZShsaW5rTG9jLCBpZCwgYSwgY3BwTWFuZ2xlT25seSk7CiAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGlk ZW50czsKICAgICAgICAgICAgICAgICAgICAgcEF0dHJzLT5saW5rID0gTElO S2RlZmF1bHQ7CkBAIC0xMjcxLDEzICsxMjcyLDE1IEBAIFR5cGUgKlBhcnNl cjo6cGFyc2VWZWN0b3IoKQogICogUGFyc2U6CiAgKiAgICAgIGV4dGVybiAo bGlua2FnZSkKICAqICAgICAgZXh0ZXJuIChDKyssIG5hbWVzcGFjZXMpCisg KiAgICAgIGV4dGVybiAoQysrLCAibmFtZXNwYWNlIiwgIm5hbWVzcGFjZXMi LCAuLi4pCiAgKiBUaGUgcGFyc2VyIGlzIG9uIHRoZSAnZXh0ZXJuJyB0b2tl bi4KICAqLwogCi1MSU5LIFBhcnNlcjo6cGFyc2VMaW5rYWdlKElkZW50aWZp ZXJzICoqcGlkZW50cywgQ1BQTUFOR0xFICpwY3BwbWFuZ2xlKQorTElOSyBQ YXJzZXI6OnBhcnNlTGlua2FnZShJZGVudGlmaWVycyAqKnBpZGVudHMsIENQ UE1BTkdMRSAqcGNwcG1hbmdsZSwgYm9vbCAqcGNwcE1hbmdsZU9ubHkpCiB7 CiAgICAgSWRlbnRpZmllcnMgKmlkZW50cyA9IE5VTEw7CiAgICAgQ1BQTUFO R0xFIGNwcG1hbmdsZSA9IENQUE1BTkdMRWRlZmF1bHQ7CisgICAgYm9vbCBj cHBNYW5nbGVPbmx5ID0gZmFsc2U7CiAgICAgTElOSyBsaW5rID0gTElOS2Rl ZmF1bHQ7CiAgICAgbmV4dFRva2VuKCk7CiAgICAgYXNzZXJ0KHRva2VuLnZh bHVlID09IFRPS2xwYXJlbik7CkBAIC0xMzA3LDYgKzEzMTAsNDIgQEAgTElO SyBQYXJzZXI6OnBhcnNlTGlua2FnZShJZGVudGlmaWVycyAqKnBpZGVudHMs IENQUE1BTkdMRSAqcGNwcG1hbmdsZSkKICAgICAgICAgICAgICAgICAgICAg ICAgIGNwcG1hbmdsZSA9IHRva2VuLnZhbHVlID09IFRPS2NsYXNzID8gQ1BQ TUFOR0xFY2xhc3MgOiBDUFBNQU5HTEVzdHJ1Y3Q7CiAgICAgICAgICAgICAg ICAgICAgICAgICBuZXh0VG9rZW4oKTsKICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi52YWx1ZSA9 PSBUT0tzdHJpbmcpICAvLyBleHRlcm4oQysrLCAibmFtZXNwYWNlIiwgIm5h bWVzcGFjZXMiKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgICBjcHBNYW5nbGVPbmx5ID0gdHJ1ZTsKKyAgICAgICAg ICAgICAgICAgICAgICAgIGlkZW50cyA9IG5ldyBJZGVudGlmaWVycygpOwor CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoMSkKKyAgICAgICAg ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdHJpbmdFeHAgKnN0cmluZ0V4cCA9IChTdHJpbmdFeHAgKilwYXJzZVBy aW1hcnlFeHAoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpuYW1lID0gc3RyaW5nRXhwLT50b1B0cigpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmdFeHAtPmxlbiA9PSAwKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXJyb3IoImludmFsaWQgemVybyBsZW5ndGgg QysrIG5hbWVzcGFjZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZGVudHMgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIUlkZW50 aWZpZXI6OmlzVmFsaWRJZGVudGlmaWVyKG5hbWUpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXJyb3IoImV4cGVjdGVkIHZhbGlkIGlkZW50aWZlciBmb3IgQysr IG5hbWVzcGFjZSBidXQgZ290IGAlc2AiLCBuYW1lKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWRlbnRzID0gTlVMTDsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlkZW50cy0+cHVzaChJZGVudGlmaWVyOjppZFBvb2wobmFtZSkpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbi52YWx1ZSA9PSBU T0tjb21tYSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRUb2tlbigpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4udmFsdWUg IT0gVE9Lc3RyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJv cigic3RyaW5nIGV4cGVjdGVkIGZvbGxvd2luZyBgLGAgZm9yIEMrKyBuYW1l c3BhY2UsIG5vdCBgJXNgIiwgdG9rZW4udG9DaGFycygpKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50cyA9IE5VTEw7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRzID0g bmV3IElkZW50aWZpZXJzKCk7CkBAIC0xMzY4LDYgKzE0MDcsNyBAQCBMSU5L IFBhcnNlcjo6cGFyc2VMaW5rYWdlKElkZW50aWZpZXJzICoqcGlkZW50cywg Q1BQTUFOR0xFICpwY3BwbWFuZ2xlKQogICAgIGNoZWNrKFRPS3JwYXJlbik7 CiAgICAgKnBpZGVudHMgPSBpZGVudHM7CiAgICAgKnBjcHBtYW5nbGUgPSBj cHBtYW5nbGU7CisgICAgKnBjcHBNYW5nbGVPbmx5ID0gY3BwTWFuZ2xlT25s eTsKICAgICByZXR1cm4gbGluazsKIH0KIApAQCAtMzYwNCw3ICszNjQ0LDgg QEAgdm9pZCBQYXJzZXI6OnBhcnNlU3RvcmFnZUNsYXNzZXMoU3RvcmFnZUNs YXNzICZzdG9yYWdlX2NsYXNzLCBMSU5LICZsaW5rLAogICAgICAgICAgICAg ICAgIHNhd0xpbmthZ2UgPSB0cnVlOwogICAgICAgICAgICAgICAgIElkZW50 aWZpZXJzICppZGVudHMgPSBOVUxMOwogICAgICAgICAgICAgICAgIENQUE1B TkdMRSBjcHBtYW5nbGUgPSBDUFBNQU5HTEVkZWZhdWx0OwotICAgICAgICAg ICAgICAgIGxpbmsgPSBwYXJzZUxpbmthZ2UoJmlkZW50cywgJmNwcG1hbmds ZSk7CisgICAgICAgICAgICAgICAgYm9vbCBjcHBNYW5nbGVPbmx5ID0gZmFs c2U7CisgICAgICAgICAgICAgICAgbGluayA9IHBhcnNlTGlua2FnZSgmaWRl bnRzLCAmY3BwbWFuZ2xlLCAmY3BwTWFuZ2xlT25seSk7CiAgICAgICAgICAg ICAgICAgaWYgKGlkZW50cykKICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIGVycm9yKCJDKysgbmFtZSBzcGFjZXMgbm90IGFsbG93 ZWQgaGVyZSIpOwpkaWZmIC0tZ2l0IGEvZ2NjL2QvZG1kL3BhcnNlLmggYi9n Y2MvZC9kbWQvcGFyc2UuaAppbmRleCBhNzdkNWU1ZTQzNi4uOTc2MzBkYzNj NGQgMTAwNjQ0Ci0tLSBhL2djYy9kL2RtZC9wYXJzZS5oCisrKyBiL2djYy9k L2RtZC9wYXJzZS5oCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICBT dGF0aWNBc3NlcnQgKnBhcnNlU3RhdGljQXNzZXJ0KCk7CiAgICAgVHlwZVF1 YWxpZmllZCAqcGFyc2VUeXBlb2YoKTsKICAgICBUeXBlICpwYXJzZVZlY3Rv cigpOwotICAgIExJTksgcGFyc2VMaW5rYWdlKElkZW50aWZpZXJzICoqLCBD UFBNQU5HTEUgKik7CisgICAgTElOSyBwYXJzZUxpbmthZ2UoSWRlbnRpZmll cnMgKiosIENQUE1BTkdMRSAqLCBib29sICopOwogICAgIElkZW50aWZpZXJz ICpwYXJzZVF1YWxpZmllZElkZW50aWZpZXIoY29uc3QgY2hhciAqZW50aXR5 KTsKICAgICBDb25kaXRpb24gKnBhcnNlRGVidWdDb25kaXRpb24oKTsKICAg ICBDb25kaXRpb24gKnBhcnNlVmVyc2lvbkNvbmRpdGlvbigpOwpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZGMudGVzdC9jb21waWxhYmxlL2NwcG1h bmdsZTMuZCBiL2djYy90ZXN0c3VpdGUvZ2RjLnRlc3QvY29tcGlsYWJsZS9j cHBtYW5nbGUzLmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjRjNDgwMTJhM2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nZGMudGVzdC9jb21waWxhYmxlL2NwcG1hbmdsZTMuZApAQCAt MCwwICsxLDM3IEBACittb2R1bGUgY3BwbWFuZ2xlMzsKKworCitleHRlcm4o QysrLCAidHJ1ZSIpCit7Cit9CisKK2V4dGVybihDKyssICJfX3RyYWl0cyIp Cit7Cit9CisKK2V4dGVybihDKyssICJmb28iKQoreworfQorCitpbnQgZm9v OyAvLyBubyBuYW1lIGNsYXNoaW5nIHdpdGggYWJvdmUgbmFtZXNwYWNlCisK K2V4dGVybihDKyssICJzdGQiLCAiY2hyb25vIikKK3sKKyAgICB2b2lkIGZ1 bmMoKTsKK30KKwordmVyc2lvbihXaW5kb3dzKSBzdGF0aWMgYXNzZXJ0KGZ1 bmMubWFuZ2xlb2YgPT0gIj9mdW5jQGNocm9ub0BzdGRAQFlBWFhaIik7Citl bHNlICAgICAgICAgICAgIHN0YXRpYyBhc3NlcnQoZnVuYy5tYW5nbGVvZiA9 PSAiX1pOU3Q2Y2hyb25vNGZ1bmNFdiIpOworCitzdHJ1Y3QgRm9vCit7Cisg ICAgZXh0ZXJuKEMrKywgIm5hbWVzcGFjZSIpCisgICAgeworICAgICAgICBz dGF0aWMgdm9pZCBiYXIoKTsKKyAgICB9Cit9CisKK2FsaWFzIEFsaWFzKGFs aWFzIGEpID0gYTsKK2FsaWFzIEFsaWFzKFQpID0gVDsKKworc3RhdGljIGFz c2VydChpcyhBbGlhcyEoX190cmFpdHMocGFyZW50LCBiYXIpKSA9PSBGb28p KTsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2RjLnRlc3QvY29tcGls YWJsZS90ZXN0MTk1NzQuZCBiL2djYy90ZXN0c3VpdGUvZ2RjLnRlc3QvY29t cGlsYWJsZS90ZXN0MTk1NzQuZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uOTA3YmIzYjhlZGYKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2dkYy50ZXN0L2NvbXBpbGFibGUvdGVzdDE5NTc0 LmQKQEAgLTAsMCArMSwxOCBAQAorCitzdGF0aWMgYXNzZXJ0KCBGb28oMTAp LmJhci52YWx1ZSA9PSAxMCApOworCitleHRlcm4oQysrLCAibnMiKSB7Cisg ICAgc3RydWN0IEZvbyB7CisgICAgICAgIEJhciFGb28gYmFyOworCisgICAg ICAgIHRoaXMoIGludCB2ICkgeworICAgICAgICAgICAgYmFyLnZhbHVlID0g djsKKyAgICAgICAgfQorICAgIH0KK30KKworZXh0ZXJuKEMrKywgIm5zIikg eworICAgIHN0cnVjdCBCYXIoVCkgeworICAgICAgICBpbnQgdmFsdWU7Cisg ICAgfQorfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZGMudGVzdC9m YWlsX2NvbXBpbGF0aW9uL2NwcG1hbmdsZS5kIGIvZ2NjL3Rlc3RzdWl0ZS9n ZGMudGVzdC9mYWlsX2NvbXBpbGF0aW9uL2NwcG1hbmdsZS5kCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOGIyZjAzZjAxOQot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2RjLnRlc3QvZmFp bF9jb21waWxhdGlvbi9jcHBtYW5nbGUuZApAQCAtMCwwICsxLDIwIEBACisv KgorVEVTVF9PVVRQVVQ6CistLS0KK2ZhaWxfY29tcGlsYXRpb24vY3BwbWFu Z2xlLmQoMTApOiBFcnJvcjogaW52YWxpZCB6ZXJvIGxlbmd0aCBDKysgbmFt ZXNwYWNlCitmYWlsX2NvbXBpbGF0aW9uL2NwcG1hbmdsZS5kKDE0KTogRXJy b3I6IGV4cGVjdGVkIHZhbGlkIGlkZW50aWZlciBmb3IgQysrIG5hbWVzcGFj ZSBidXQgZ290IGAwbnVtYAorZmFpbF9jb21waWxhdGlvbi9jcHBtYW5nbGUu ZCgxOCk6IEVycm9yOiBzdHJpbmcgZXhwZWN0ZWQgZm9sbG93aW5nIGAsYCBm b3IgQysrIG5hbWVzcGFjZSwgbm90IGApYAorLS0tCisqLworCitleHRlcm4o QysrLCAiIikKK3sKK30KKworZXh0ZXJuKEMrKywgIjBudW0iKQoreworfQor CitleHRlcm4oQysrLCAic3RkIiwgKQoreworfQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nZGMudGVzdC9mYWlsX2NvbXBpbGF0aW9uL3Jlc2VydmVk X3ZlcnNpb24uZCBiL2djYy90ZXN0c3VpdGUvZ2RjLnRlc3QvZmFpbF9jb21w aWxhdGlvbi9yZXNlcnZlZF92ZXJzaW9uLmQKaW5kZXggZGUyM2M0NjFlNGEu LjFmZTQ3MjgyOTU5IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dkYy50 ZXN0L2ZhaWxfY29tcGlsYXRpb24vcmVzZXJ2ZWRfdmVyc2lvbi5kCisrKyBi L2djYy90ZXN0c3VpdGUvZ2RjLnRlc3QvZmFpbF9jb21waWxhdGlvbi9yZXNl cnZlZF92ZXJzaW9uLmQKQEAgLTk3LDExICs5NywxNyBAQCBmYWlsX2NvbXBp bGF0aW9uL3Jlc2VydmVkX3ZlcnNpb24uZCgxOTYpOiBFcnJvcjogdmVyc2lv biBpZGVudGlmaWVyIGBEX1ZlcnNpb24yYAogZmFpbF9jb21waWxhdGlvbi9y ZXNlcnZlZF92ZXJzaW9uLmQoMTk3KTogRXJyb3I6IHZlcnNpb24gaWRlbnRp ZmllciBgRF9Ob0JvdW5kc0NoZWNrc2AgaXMgcmVzZXJ2ZWQgYW5kIGNhbm5v dCBiZSBzZXQKIGZhaWxfY29tcGlsYXRpb24vcmVzZXJ2ZWRfdmVyc2lvbi5k KDIwMCk6IEVycm9yOiB2ZXJzaW9uIGlkZW50aWZpZXIgYGFsbGAgaXMgcmVz ZXJ2ZWQgYW5kIGNhbm5vdCBiZSBzZXQKIGZhaWxfY29tcGlsYXRpb24vcmVz ZXJ2ZWRfdmVyc2lvbi5kKDIwMSk6IEVycm9yOiB2ZXJzaW9uIGlkZW50aWZp ZXIgYG5vbmVgIGlzIHJlc2VydmVkIGFuZCBjYW5ub3QgYmUgc2V0CitmYWls X2NvbXBpbGF0aW9uL3Jlc2VydmVkX3ZlcnNpb24uZCgyMDIpOiBFcnJvcjog dmVyc2lvbiBpZGVudGlmaWVyIGBDcHBSdW50aW1lX0NsYW5nYCBpcyByZXNl cnZlZCBhbmQgY2Fubm90IGJlIHNldAorZmFpbF9jb21waWxhdGlvbi9yZXNl cnZlZF92ZXJzaW9uLmQoMjAzKTogRXJyb3I6IHZlcnNpb24gaWRlbnRpZmll ciBgQ3BwUnVudGltZV9EaWdpdGFsTWFyc2AgaXMgcmVzZXJ2ZWQgYW5kIGNh bm5vdCBiZSBzZXQKK2ZhaWxfY29tcGlsYXRpb24vcmVzZXJ2ZWRfdmVyc2lv bi5kKDIwNCk6IEVycm9yOiB2ZXJzaW9uIGlkZW50aWZpZXIgYENwcFJ1bnRp bWVfR2NjYCBpcyByZXNlcnZlZCBhbmQgY2Fubm90IGJlIHNldAorZmFpbF9j b21waWxhdGlvbi9yZXNlcnZlZF92ZXJzaW9uLmQoMjA1KTogRXJyb3I6IHZl cnNpb24gaWRlbnRpZmllciBgQ3BwUnVudGltZV9NaWNyb3NvZnRgIGlzIHJl c2VydmVkIGFuZCBjYW5ub3QgYmUgc2V0CitmYWlsX2NvbXBpbGF0aW9uL3Jl c2VydmVkX3ZlcnNpb24uZCgyMDYpOiBFcnJvcjogdmVyc2lvbiBpZGVudGlm aWVyIGBDcHBSdW50aW1lX1N1bmAgaXMgcmVzZXJ2ZWQgYW5kIGNhbm5vdCBi ZSBzZXQKIC0tLQogKi8KIAogLy8gU29tZSBleHRyYSBlbXB0eSBsaW5lcyB0 byBoZWxwIGZpeHVwIHRoZSBtYW51YWwgbGluZSBudW1iZXJpbmcgYWZ0ZXIg YWRkaW5nIG5ldyB2ZXJzaW9uIGlkZW50aWZpZXJzCiAKKyNsaW5lIDEwNQog dmVyc2lvbiA9IE1TUDQzMDsKIHZlcnNpb24gPSBEX1AxNjsKIHZlcnNpb24g PSBEaWdpdGFsTWFyczsKQEAgLTE5OSw2ICsyMDUsMTEgQEAgdmVyc2lvbiA9 IERfTm9Cb3VuZHNDaGVja3M7CiAvL3ZlcnNpb24gPSBhc3NlcnQ7CiB2ZXJz aW9uID0gYWxsOwogdmVyc2lvbiA9IG5vbmU7Cit2ZXJzaW9uID0gQ3BwUnVu dGltZV9DbGFuZzsKK3ZlcnNpb24gPSBDcHBSdW50aW1lX0RpZ2l0YWxNYXJz OwordmVyc2lvbiA9IENwcFJ1bnRpbWVfR2NjOwordmVyc2lvbiA9IENwcFJ1 bnRpbWVfTWljcm9zb2Z0OwordmVyc2lvbiA9IENwcFJ1bnRpbWVfU3VuOwog CiAvLyBUaGlzIHNob3VsZCB3b3JrIHRob3VnaAogZGVidWcgPSBEaWdpdGFs TWFyczsKQEAgLTI3OCw2ICsyODksMTEgQEAgZGVidWcgPSBDUnVudGltZV9H bGliYzsKIGRlYnVnID0gQ1J1bnRpbWVfTWljcm9zb2Z0OwogZGVidWcgPSBD UnVudGltZV9NdXNsOwogZGVidWcgPSBDUnVudGltZV9VQ2xpYmM7CitkZWJ1 ZyA9IENwcFJ1bnRpbWVfQ2xhbmc7CitkZWJ1ZyA9IENwcFJ1bnRpbWVfRGln aXRhbE1hcnM7CitkZWJ1ZyA9IENwcFJ1bnRpbWVfR2NjOworZGVidWcgPSBD cHBSdW50aW1lX01pY3Jvc29mdDsKK2RlYnVnID0gQ3BwUnVudGltZV9TdW47 CiBkZWJ1ZyA9IERfQ292ZXJhZ2U7CiBkZWJ1ZyA9IERfRGRvYzsKIGRlYnVn ID0gRF9JbmxpbmVBc21fWDg2OwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nZGMudGVzdC9mYWlsX2NvbXBpbGF0aW9uL3Jlc2VydmVkX3ZlcnNpb25f c3dpdGNoLmQgYi9nY2MvdGVzdHN1aXRlL2dkYy50ZXN0L2ZhaWxfY29tcGls YXRpb24vcmVzZXJ2ZWRfdmVyc2lvbl9zd2l0Y2guZAppbmRleCBlYjc5NGQy YWM0Mi4uMDI1OTI3M2Y4OWUgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUv Z2RjLnRlc3QvZmFpbF9jb21waWxhdGlvbi9yZXNlcnZlZF92ZXJzaW9uX3N3 aXRjaC5kCisrKyBiL2djYy90ZXN0c3VpdGUvZ2RjLnRlc3QvZmFpbF9jb21w aWxhdGlvbi9yZXNlcnZlZF92ZXJzaW9uX3N3aXRjaC5kCkBAIC03Nyw2ICs3 NywxMSBAQAogLy8gUkVRVUlSRURfQVJHUzogLXZlcnNpb249Q1J1bnRpbWVf TWljcm9zb2Z0CiAvLyBSRVFVSVJFRF9BUkdTOiAtdmVyc2lvbj1DUnVudGlt ZV9NdXNsCiAvLyBSRVFVSVJFRF9BUkdTOiAtdmVyc2lvbj1DUnVudGltZV9V Q2xpYmMKKy8vIFJFUVVJUkVEX0FSR1M6IC12ZXJzaW9uPUNwcFJ1bnRpbWVf Q2xhbmcKKy8vIFJFUVVJUkVEX0FSR1M6IC12ZXJzaW9uPUNwcFJ1bnRpbWVf RGlnaXRhbE1hcnMKKy8vIFJFUVVJUkVEX0FSR1M6IC12ZXJzaW9uPUNwcFJ1 bnRpbWVfR2NjCisvLyBSRVFVSVJFRF9BUkdTOiAtdmVyc2lvbj1DcHBSdW50 aW1lX01pY3Jvc29mdAorLy8gUkVRVUlSRURfQVJHUzogLXZlcnNpb249Q3Bw UnVudGltZV9TdW4KIC8vIFJFUVVJUkVEX0FSR1M6IC12ZXJzaW9uPURfQ292 ZXJhZ2UKIC8vIFJFUVVJUkVEX0FSR1M6IC12ZXJzaW9uPURfRGRvYwogLy8g UkVRVUlSRURfQVJHUzogLXZlcnNpb249RF9JbmxpbmVBc21fWDg2CkBAIC0x NjgsNiArMTczLDExIEBACiAvLyBSRVFVSVJFRF9BUkdTOiAtZGVidWc9Q1J1 bnRpbWVfTWljcm9zb2Z0CiAvLyBSRVFVSVJFRF9BUkdTOiAtZGVidWc9Q1J1 bnRpbWVfTXVzbAogLy8gUkVRVUlSRURfQVJHUzogLWRlYnVnPUNSdW50aW1l X1VDbGliYworLy8gUkVRVUlSRURfQVJHUzogLWRlYnVnPUNwcFJ1bnRpbWVf Q2xhbmcKKy8vIFJFUVVJUkVEX0FSR1M6IC1kZWJ1Zz1DcHBSdW50aW1lX0Rp Z2l0YWxNYXJzCisvLyBSRVFVSVJFRF9BUkdTOiAtZGVidWc9Q3BwUnVudGlt ZV9HY2MKKy8vIFJFUVVJUkVEX0FSR1M6IC1kZWJ1Zz1DcHBSdW50aW1lX01p Y3Jvc29mdAorLy8gUkVRVUlSRURfQVJHUzogLWRlYnVnPUNwcFJ1bnRpbWVf U3VuCiAvLyBSRVFVSVJFRF9BUkdTOiAtZGVidWc9RF9Db3ZlcmFnZQogLy8g UkVRVUlSRURfQVJHUzogLWRlYnVnPURfRGRvYwogLy8gUkVRVUlSRURfQVJH UzogLWRlYnVnPURfSW5saW5lQXNtX1g4NgpAQCAtMjY0LDYgKzI3NCwxMSBA QCBFcnJvcjogdmVyc2lvbiBpZGVudGlmaWVyIGBDUnVudGltZV9HbGliY2Ag aXMgcmVzZXJ2ZWQgYW5kIGNhbm5vdCBiZSBzZXQKIEVycm9yOiB2ZXJzaW9u IGlkZW50aWZpZXIgYENSdW50aW1lX01pY3Jvc29mdGAgaXMgcmVzZXJ2ZWQg YW5kIGNhbm5vdCBiZSBzZXQKIEVycm9yOiB2ZXJzaW9uIGlkZW50aWZpZXIg YENSdW50aW1lX011c2xgIGlzIHJlc2VydmVkIGFuZCBjYW5ub3QgYmUgc2V0 CiBFcnJvcjogdmVyc2lvbiBpZGVudGlmaWVyIGBDUnVudGltZV9VQ2xpYmNg IGlzIHJlc2VydmVkIGFuZCBjYW5ub3QgYmUgc2V0CitFcnJvcjogdmVyc2lv biBpZGVudGlmaWVyIGBDcHBSdW50aW1lX0NsYW5nYCBpcyByZXNlcnZlZCBh bmQgY2Fubm90IGJlIHNldAorRXJyb3I6IHZlcnNpb24gaWRlbnRpZmllciBg Q3BwUnVudGltZV9EaWdpdGFsTWFyc2AgaXMgcmVzZXJ2ZWQgYW5kIGNhbm5v dCBiZSBzZXQKK0Vycm9yOiB2ZXJzaW9uIGlkZW50aWZpZXIgYENwcFJ1bnRp bWVfR2NjYCBpcyByZXNlcnZlZCBhbmQgY2Fubm90IGJlIHNldAorRXJyb3I6 IHZlcnNpb24gaWRlbnRpZmllciBgQ3BwUnVudGltZV9NaWNyb3NvZnRgIGlz IHJlc2VydmVkIGFuZCBjYW5ub3QgYmUgc2V0CitFcnJvcjogdmVyc2lvbiBp ZGVudGlmaWVyIGBDcHBSdW50aW1lX1N1bmAgaXMgcmVzZXJ2ZWQgYW5kIGNh bm5vdCBiZSBzZXQKIEVycm9yOiB2ZXJzaW9uIGlkZW50aWZpZXIgYERfQ292 ZXJhZ2VgIGlzIHJlc2VydmVkIGFuZCBjYW5ub3QgYmUgc2V0CiBFcnJvcjog dmVyc2lvbiBpZGVudGlmaWVyIGBEX0Rkb2NgIGlzIHJlc2VydmVkIGFuZCBj YW5ub3QgYmUgc2V0CiBFcnJvcjogdmVyc2lvbiBpZGVudGlmaWVyIGBEX0lu bGluZUFzbV9YODZgIGlzIHJlc2VydmVkIGFuZCBjYW5ub3QgYmUgc2V0Cg== --0000000000001ba04e058305c945--