From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id CBCFD3858D33 for ; Sun, 15 Oct 2023 10:42:36 +0000 (GMT) ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CBCFD3858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=68.232.141.98 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697366559; cv=none; b=VtHCqSaE9iTapBtQm8qoSH6FQggRTE3KvjiPu7pPmomgZVFCILCccRo8frNCGpxK+fOfS5LdG1Rc6R2kNqy+c1Is5Wwf4WutbyeZvlYy4D7N77Ds2QOSHJoQQtxmGhsjcuLxXafVYMJRHH9WuOKlW032wZ6xhNf1In87b0IiB0M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697366559; c=relaxed/simple; bh=Pt1zXRPXyKduGpjzBpMHwEZq3dDPDccGk0gY7pd1tUc=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=xYorkTHVEperPD1CC4Idl61hod170mhqgrBBttXRZwPyMunZOyCqyC3uXQWAEo4jq9LSUnUErZXOxiWGQw0PUfK9NAmvZDAW9OfMnecFAQC98RvtocYswf3h0bZZfTuit+P4UzrfNFL/dQP/GtsdkmJmKegIhjdHnpHUyHSwXpA= ARC-Authentication-Results: i=1; server2.sourceware.org DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CBCFD3858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-CSE-ConnectionGUID: aMQf4tF6Rpm0nQ9bvsN13w== X-CSE-MsgGUID: ExfyGH97RtaTMy5OBx4WXg== X-IronPort-AV: E=Sophos;i="6.03,226,1694764800"; d="diff'?scan'208";a="21910258" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 15 Oct 2023 02:42:35 -0800 IronPort-SDR: Pf0NO9PKAddHHAN74dEh/yYFYLyAU3h8hjxJoOXQpdXY1wXOZ8hDXZz0r7XERnbJstqObQSW6v 3Dc5kyDnitRXEetslRowb0TBY0rVntSqsA1wmrypauy7CYKm5WSWK1IfXEq8frpItNi6A5rG0j TAZfhTAbmO8arrEbXcAarV7KtYUOwkm4PkfK4jNZNa9jzkuqe/DJy6QOtmwGM/924kPJAHfM0f 43ua1gu58keSiGtqBnZK9+BMTSXtcjF8Ig6bw5ET+/z3LsQJkRy2iJlVXEty7h9GFWFgPGYCpS NBs= Content-Type: multipart/mixed; boundary="------------ls62dlDFS3N0MgqyE9LIPMnH" Message-ID: <7ad5aa88-5e52-490c-b414-f5d1430e5f18@codesourcery.com> Date: Sun, 15 Oct 2023 12:42:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [patch] libgomp.texi: Update "Enabling OpenMP" + OpenACC / invoke.texi: -fopenacc/-fopenmp update (was: Re: [patch] libgomp.texi: Update "Enabling OpenMP") Content-Language: en-US To: Sandra Loosemore , gcc-patches , Sandra Loosemore , Jakub Jelinek References: <507d6d48-1ca1-411a-a95d-45adb7a8f446@codesourcery.com> <6080749f-12c5-5e0a-aa59-fd084c00bea4@siemens.com> From: Tobias Burnus In-Reply-To: <6080749f-12c5-5e0a-aa59-fd084c00bea4@siemens.com> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------ls62dlDFS3N0MgqyE9LIPMnH Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Hi Sandra and Jakub, I have now updated the patch; on the way, I found an issue in -fopenacc ('!= $' is not OpenACC and no longer supported) and the same @code/@samp. I also updated invoke.texi for the same @code/@samp - and added both '!$' and mentioned the 'c$'/'*$' Fortran fixed-form variant. I think the most important bit is that '!$' is also supported by -fopenmp-simd as that's not covered by the OpenMP specification. Otherwise: On 14.10.23 23:46, Sandra Loosemore wrote: > On 10/14/23 13:43, Tobias Burnus wrote: >> The attached patch tries to improve this. Note that it talks about C and >> C++ attributes, even though C23's [[omp::]] support has not yet landed. >> (But is expected very soon.) > > Is somebody actively working on implementing that, and expecting to > get it in before Stage 1 closes? I don't think we should document > features that don't exist yet. Yes. But I have now sneaked in an 'in C++' which can also be easily removed once Jakub's patch is committed or as part of Jakub's patch. > This syntax for C also isn't even in the draft OpenMP 6.0 document so > at this point Well, it is in the git version, which will be released as TR12 in about a month (in time for SC23). It is very unlikely to get removed before OpenMP 6.0 as it is an obvious extension to C++11's attribute support, now that C supports attributes as well. > Other than that... > Use @option markup on options, not @command. Fixed. Was preexisting and I copied it once. I've now checked, the only other use in libgomp.texi was for an actual command (nvprof). > And I think all those @code markups should be @samp instead, or you > could just replace this whole blurb with something like "This flag > enables recognition of the directive syntax documented in the OpenMP > specification, and also arranges for automatic linking..." I think it is more user friendly to document the sentinels. However, I concur that @samp is better. > +OpenMP directives, which do not require the linking of neither the > > s/, which/ that/ I have now used it, but I think it sound odd: "enables *a* subset of OpenMP directives *that* do not require the linking" I concur that with "*the* subset ... *that*" makes sense but I want to avoid stating that *all* directives that do not require linking of libgomp/libpthread are supported. invoke.texi lists all supported directives, but I am not really fond of repeating that list. > s/neither/either/ The fun of whether double negation cancels or enforces the negation or .. ("not .. neither / nor"). Cf. https://en.wikipedia.org/wiki/Double_negative In German and English, both cancellation and enforcement seem to be possible, the latter especially with dialects - while the standard language tends to avoid double negation. Updated patch attached. Thanks, Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------ls62dlDFS3N0MgqyE9LIPMnH Content-Type: text/x-patch; charset="UTF-8"; name="libgomp-texi-openmp-intro-v2.diff" Content-Disposition: attachment; filename="libgomp-texi-openmp-intro-v2.diff" Content-Transfer-Encoding: base64 bGliZ29tcC50ZXhpOiBVcGRhdGUgIkVuYWJsaW5nIE9wZW5NUCIgKyBPcGVuQUNDIC8gaW52 b2tlLnRleGk6IC1mb3BlbmFjYy8tZm9wZW5tcCB1cGRhdGUKClRoZSBPcGVuQUNDIHNwZWNp ZmljYXRpb24gZG9lcyBub3QgbWVudGlvbiB0aGUgJyEkICcgc2VudGluZWwgZm9yIGNvbmRp dGlvbmFsCmNvbXBpbGF0aW9uIGFuZCB0aGUgZmVhdHVyZSB3YXMgcmVtb3ZlZCBpbiByMTEt NTU3Mi1nMWQ2ZjZhYzY5M2E4NjAKZm9yIFBSIGZvcnRyYW4vOTgwMTEuCgpsaWJnb21wLwoJ KiBsaWJnb21wLnRleGkgKEVuYWJsaW5nIE9wZW5NUCk6IFVwZGF0ZSBmb3IgQy9DKysgYXR0 cmlidXRlczsKCWltcHJvdmUgd29yZGluZyBlc3BlY2lhbGx5IGZvciBGb3J0cmFuOyBtZW50 aW9uIC1mb3Blbm1wLXNpbWQuCgkoRW5hYmxpbmcgT3BlbkFDQyk6IE1pbm9yIGNsZWFudXA7 IHJlbW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbgoJc2VudGluZWwuCgpnY2MvCgkqIGRv Yy9pbnZva2UudGV4aSAoLWZvcGVuYWNjLCAtZm9wZW5tcCwgLWZvcGVubXAtc2ltZCk6IFVz ZSBAc2FtcCBub3QKCUBjb2RlOyBkb2N1bWVudCBtb3JlIGNvbXBsZXRlbHkgdGhlIHN1cHBv cnRlZCBGb3J0cmFuIHNlbnRpbmVscy4KCmdjYy9mb3J0cmFuCgkqIHNjYW5uZXIuY2MgKHNr aXBfZnJlZV9jb21tZW50cywgc2tpcF9maXhlZF9jb21tZW50cyk6IFJlbW92ZQoJbGVmdG92 ZXIgJ09wZW5BQ0MnIGZyb20gY29tbWVudHMgYWJvdXQgT3Blbk1QJ3MgY29uZGl0aW9uYWwK CWNvbXBpbGF0aW9uIHNlbnRpbmVsLgoKZGlmZiAtLWdpdCBhL2djYy9kb2MvaW52b2tlLnRl eGkgYi9nY2MvZG9jL2ludm9rZS50ZXhpCmluZGV4IGZlZTY1OTQ2MmZmLi5lYjcxNGQxODUx MSAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9pbnZva2UudGV4aQorKysgYi9nY2MvZG9jL2ludm9r ZS50ZXhpCkBAIC0yNzQ4LDkgKzI3NDgsMTAgQEAgVHlwaWNhbCBjb21tYW5kIGxpbmVzIGFy ZQogQG9waW5kZXggZm9wZW5hY2MKIEBjaW5kZXggT3BlbkFDQyBhY2NlbGVyYXRvciBwcm9n cmFtbWluZwogQGl0ZW0gLWZvcGVuYWNjCi1FbmFibGUgaGFuZGxpbmcgb2YgT3BlbkFDQyBk aXJlY3RpdmVzIEBjb2RleyNwcmFnbWEgYWNjfSBpbiBDL0MrKyBhbmQKLUBjb2RleyEkYWNj fSBpbiBGb3J0cmFuLiAgV2hlbiBAb3B0aW9uey1mb3BlbmFjY30gaXMgc3BlY2lmaWVkLCB0 aGUKLWNvbXBpbGVyIGdlbmVyYXRlcyBhY2NlbGVyYXRlZCBjb2RlIGFjY29yZGluZyB0byB0 aGUgT3BlbkFDQyBBcHBsaWNhdGlvbgorRW5hYmxlIGhhbmRsaW5nIG9mIE9wZW5BQ0MgZGly ZWN0aXZlcyBAc2FtcHsjcHJhZ21hIGFjY30gaW4gQy9DKysgYW5kCitAc2FtcHshJGFjY30g aW4gZnJlZS1mb3JtIEZvcnRyYW4gYW5kIEBzYW1weyEkYWNjfSwgQHNhbXB7YyRhY2N9IGFu ZAorQHNhbXB7KiRhY2N9IGluIGZpeGVkLWZvcm0gRm9ydHJhbi4gIFdoZW4gQG9wdGlvbnst Zm9wZW5hY2N9IGlzIHNwZWNpZmllZCwKK3RoZSBjb21waWxlciBnZW5lcmF0ZXMgYWNjZWxl cmF0ZWQgY29kZSBhY2NvcmRpbmcgdG8gdGhlIE9wZW5BQ0MgQXBwbGljYXRpb24KIFByb2dy YW1taW5nIEludGVyZmFjZSB2Mi42IEB3e0B1cmVme2h0dHBzOi8vd3d3Lm9wZW5hY2Mub3Jn fX0uICBUaGlzIG9wdGlvbgogaW1wbGllcyBAb3B0aW9uey1wdGhyZWFkfSwgYW5kIHRodXMg aXMgb25seSBzdXBwb3J0ZWQgb24gdGFyZ2V0cyB0aGF0CiBoYXZlIHN1cHBvcnQgZm9yIEBv cHRpb257LXB0aHJlYWR9LgpAQCAtMjc2NiwxMCArMjc2NywxMiBAQCBjYW4gYmUgb21pdHRl ZCwgdG8gdXNlIGEgdGFyZ2V0LXNwZWNpZmljIGRlZmF1bHQgdmFsdWUuCiBAb3BpbmRleCBm b3Blbm1wCiBAY2luZGV4IE9wZW5NUCBwYXJhbGxlbAogQGl0ZW0gLWZvcGVubXAKLUVuYWJs ZSBoYW5kbGluZyBvZiBPcGVuTVAgZGlyZWN0aXZlcyBAY29kZXsjcHJhZ21hIG9tcH0gaW4g Qy9DKyssCi1AY29kZXtbW29tcDo6ZGlyZWN0aXZlKC4uLildXX0sIEBjb2Rle1tbb21wOjpz ZXF1ZW5jZSguLi4pXV19IGFuZAotQGNvZGV7W1tvbXA6OmRlY2woLi4uKV1dfSBpbiBDKysg YW5kIEBjb2RleyEkb21wfSBpbiBGb3J0cmFuLgotV2hlbiBAb3B0aW9uey1mb3Blbm1wfSBp cyBzcGVjaWZpZWQsIHRoZQorRW5hYmxlIGhhbmRsaW5nIG9mIE9wZW5NUCBkaXJlY3RpdmVz IEBzYW1weyNwcmFnbWEgb21wfSBpbiBDL0MrKywKK0BzYW1we1tbb21wOjpkaXJlY3RpdmUo Li4uKV1dfSwgQHNhbXB7W1tvbXA6OnNlcXVlbmNlKC4uLildXX0gYW5kCitAc2FtcHtbW29t cDo6ZGVjbCguLi4pXV19IGluIEMrKyBhbmQgQHNhbXB7ISRvbXB9IGluIEZvcnRyYW4uICBJ dAorYWRkaXRpb25hbGx5IGVuYWJsZXMgdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHNl bnRpbmVsIEBzYW1weyEkfSBpbgorRm9ydHJhbi4gIEluIGZpeGVkIHNvdXJjZSBmb3JtIEZv cnRyYW4sIHRoZSBzZW50aW5lbHMgY2FuIGFsc28gc3RhcnQgd2l0aAorQHNhbXB7Y30gb3Ig QHNhbXB7Kn0uICBXaGVuIEBvcHRpb257LWZvcGVubXB9IGlzIHNwZWNpZmllZCwgdGhlCiBj b21waWxlciBnZW5lcmF0ZXMgcGFyYWxsZWwgY29kZSBhY2NvcmRpbmcgdG8gdGhlIE9wZW5N UCBBcHBsaWNhdGlvbgogUHJvZ3JhbSBJbnRlcmZhY2UgdjQuNSBAd3tAdXJlZntodHRwczov L3d3dy5vcGVubXAub3JnfX0uICBUaGlzIG9wdGlvbgogaW1wbGllcyBAb3B0aW9uey1wdGhy ZWFkfSwgYW5kIHRodXMgaXMgb25seSBzdXBwb3J0ZWQgb24gdGFyZ2V0cyB0aGF0CkBAIC0y Nzg1LDEwICsyNzg4LDEyIEBAIEVuYWJsZSBoYW5kbGluZyBvZiBPcGVuTVAncyBAY29kZXtz aW1kfSwgQGNvZGV7ZGVjbGFyZSBzaW1kfSwKIGFuZCBAY29kZXtsb29wfSBkaXJlY3RpdmUs IGFuZCBvZiBjb21iaW5lZCBvciBjb21wb3NpdGUgZGlyZWN0aXZlcyB3aXRoCiBAY29kZXtz aW1kfSBhcyBjb25zdGl0dWVudCB3aXRoIEBjb2RleyNwcmFnbWEgb21wfSBpbiBDL0MrKywK IEBjb2Rle1tbb21wOjpkaXJlY3RpdmUoLi4uKV1dfSwgQGNvZGV7W1tvbXA6OnNlcXVlbmNl KC4uLildXX0gYW5kCi1AY29kZXtbW29tcDo6ZGVjbCguLi4pXV19IGluIEMrKyBhbmQgQGNv ZGV7ISRvbXB9IGluIEZvcnRyYW4uCi1PdGhlciBPcGVuTVAgZGlyZWN0aXZlcyBhcmUgaWdu b3JlZC4gIFVubGVzcyBAb3B0aW9uey1mb3Blbm1wfSBpcwotYWRkaXRpb25hbGx5IHNwZWNp ZmllZCwgdGhlIEBjb2Rle2xvb3B9IHJlZ2lvbiBiaW5kcyB0byB0aGUgY3VycmVudAotdGFz ayByZWdpb24sIGluZGVwZW5kZW50IG9mIHRoZSBzcGVjaWZpZWQgQGNvZGV7YmluZH0gY2xh dXNlLgorQGNvZGV7W1tvbXA6OmRlY2woLi4uKV1dfSBpbiBDKysgYW5kIEBjb2RleyEkb21w fSBpbiBGb3J0cmFuLiAgSXQKK2FkZGl0aW9uYWxseSBlbmFibGVzIHRoZSBjb25kaXRpb25h bCBjb21waWxhdGlvbiBzZW50aW5lbCBAc2FtcHshJH0gaW4KK0ZvcnRyYW4uICBJbiBmaXhl ZCBzb3VyY2UgZm9ybSBGb3J0cmFuLCB0aGUgc2VudGluZWxzIGNhbiBhbHNvIHN0YXJ0IHdp dGgKK0BzYW1we2N9IG9yIEBzYW1weyp9LiAgT3RoZXIgT3Blbk1QIGRpcmVjdGl2ZXMgYXJl IGlnbm9yZWQuICBVbmxlc3MKK0BvcHRpb257LWZvcGVubXB9IGlzIGFkZGl0aW9uYWxseSBz cGVjaWZpZWQsIHRoZSBAY29kZXtsb29wfSByZWdpb24gYmluZHMKK3RvIHRoZSBjdXJyZW50 IHRhc2sgcmVnaW9uLCBpbmRlcGVuZGVudCBvZiB0aGUgc3BlY2lmaWVkIEBjb2Rle2JpbmR9 IGNsYXVzZS4KIAogQG9waW5kZXggZm9wZW5tcC10YXJnZXQtc2ltZC1jbG9uZQogQGNpbmRl eCBPcGVuTVAgdGFyZ2V0IFNJTUQgY2xvbmUKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Nj YW5uZXIuY2MgYi9nY2MvZm9ydHJhbi9zY2FubmVyLmNjCmluZGV4IDlmMGQ5YTdkYzVlLi5l MmEyNWExZDQ2NSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vc2Nhbm5lci5jYworKysgYi9n Y2MvZm9ydHJhbi9zY2FubmVyLmNjCkBAIC04NzcsNyArODc3LDcgQEAgc2tpcF9mcmVlX2Nv bW1lbnRzICh2b2lkKQogCiAJICAvKiBJZiAtZm9wZW5tcC8tZm9wZW5hY2MsIHdlIG5lZWQg dG8gaGFuZGxlIGhlcmUgMiB0aGluZ3M6CiAJICAgICAxKSBkb24ndCB0cmVhdCAhJG9tcC8h JGFjYyBhcyBjb21tZW50cywgYnV0IGRpcmVjdGl2ZXMKLQkgICAgIDIpIGhhbmRsZSBPcGVu TVAvT3BlbkFDQyBjb25kaXRpb25hbCBjb21waWxhdGlvbiwgd2hlcmUKKwkgICAgIDIpIGhh bmRsZSBPcGVuTVAgY29uZGl0aW9uYWwgY29tcGlsYXRpb24sIHdoZXJlCiAJCSEkIHNob3Vs ZCBiZSB0cmVhdGVkIGFzIDIgc3BhY2VzIChmb3IgaW5pdGlhbCBsaW5lcwogCQlvbmx5IGlm IGZvbGxvd2VkIGJ5IHNwYWNlKS4gICovCiAJICBpZiAoYXRfYm9sKQpAQCAtMTEwNiw3ICsx MTA2LDcgQEAgc2tpcF9maXhlZF9jb21tZW50cyAodm9pZCkKIAkgIC8qIElmIC1mb3Blbm1w Ly1mb3BlbmFjYywgd2UgbmVlZCB0byBoYW5kbGUgaGVyZSAyIHRoaW5nczoKIAkgICAgIDEp IGRvbid0IHRyZWF0ICEkb21wLyEkYWNjfGMkb21wL2MkYWNjfCokb21wIC8gKiRhY2MgYXMg Y29tbWVudHMsIAogCQlidXQgZGlyZWN0aXZlcwotCSAgICAgMikgaGFuZGxlIE9wZW5NUC9P cGVuQUNDIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLCB3aGVyZQorCSAgICAgMikgaGFuZGxl IE9wZW5NUCBjb25kaXRpb25hbCBjb21waWxhdGlvbiwgd2hlcmUKIAkJISR8YyR8KiQgc2hv dWxkIGJlIHRyZWF0ZWQgYXMgMiBzcGFjZXMgaWYgdGhlIGNoYXJhY3RlcnMKIAkJaW4gY29s dW1ucyAzIHRvIDYgYXJlIHZhbGlkIGZpeGVkIGZvcm0gbGFiZWwgY29sdW1ucwogCQljaGFy YWN0ZXJzLiAgKi8KZGlmZiAtLWdpdCBhL2xpYmdvbXAvbGliZ29tcC50ZXhpIGIvbGliZ29t cC9saWJnb21wLnRleGkKaW5kZXggNTI2ZDFiZTI5NTUuLmU4MzAxMGQzNzhiIDEwMDY0NAot LS0gYS9saWJnb21wL2xpYmdvbXAudGV4aQorKysgYi9saWJnb21wL2xpYmdvbXAudGV4aQpA QCAtMTM2LDE1ICsxMzYsMjIgQEAgY2hhbmdlZCB0byBHTlUgT2ZmbG9hZGluZyBhbmQgTXVs dGkgUHJvY2Vzc2luZyBSdW50aW1lIExpYnJhcnkuCiBAbm9kZSBFbmFibGluZyBPcGVuTVAK IEBjaGFwdGVyIEVuYWJsaW5nIE9wZW5NUAogCi1UbyBhY3RpdmF0ZSB0aGUgT3Blbk1QIGV4 dGVuc2lvbnMgZm9yIEMvQysrIGFuZCBGb3J0cmFuLCB0aGUgY29tcGlsZS10aW1lIAotZmxh ZyBAY29tbWFuZHstZm9wZW5tcH0gbXVzdCBiZSBzcGVjaWZpZWQuICBUaGlzIGVuYWJsZXMg dGhlIE9wZW5NUCBkaXJlY3RpdmUKLUBjb2RleyNwcmFnbWEgb21wfSBpbiBDL0MrKyBhbmQg QGNvZGV7ISRvbXB9IGRpcmVjdGl2ZXMgaW4gZnJlZSBmb3JtLCAKLUBjb2Rle2Mkb21wfSwg QGNvZGV7KiRvbXB9IGFuZCBAY29kZXshJG9tcH0gZGlyZWN0aXZlcyBpbiBmaXhlZCBmb3Jt LCAKLUBjb2RleyEkfSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBzZW50aW5lbHMgaW4gZnJl ZSBmb3JtIGFuZCBAY29kZXtjJH0sCi1AY29kZXsqJH0gYW5kIEBjb2RleyEkfSBzZW50aW5l bHMgaW4gZml4ZWQgZm9ybSwgZm9yIEZvcnRyYW4uICBUaGUgZmxhZyBhbHNvCi1hcnJhbmdl cyBmb3IgYXV0b21hdGljIGxpbmtpbmcgb2YgdGhlIE9wZW5NUCBydW50aW1lIGxpYnJhcnkg CitUbyBhY3RpdmF0ZSB0aGUgT3Blbk1QIGV4dGVuc2lvbnMgZm9yIEMvQysrIGFuZCBGb3J0 cmFuLCB0aGUgY29tcGlsZS10aW1lCitmbGFnIEBvcHRpb257LWZvcGVubXB9IG11c3QgYmUg c3BlY2lmaWVkLiAgRm9yIEMgYW5kIEMrKywgdGhpcyBlbmFibGVzCit0aGUgaGFuZGxpbmcg b2YgdGhlIE9wZW5NUCBkaXJlY3RpdmVzIHVzaW5nIEBjb2RleyNwcmFnbWEgb21wfSBhbmQs IGZvciBDKyssIHRoZQorQGNvZGV7W1tvbXA6OmRpcmVjdGl2ZSguLi4pXV19LCBAY29kZXtb W29tcDo6c2VxdWVuY2UoLi4uKV1dfSBhbmQKK0Bjb2Rle1tbb21wOjpkZWNsKC4uLildXX0g YXR0cmlidXRlcy4gIEZvciBGb3J0cmFuLCBpdCBlbmFibGVzIGZvcgorZnJlZSBzb3VyY2Ug Zm9ybSB0aGUgQGNvZGV7ISRvbXB9IHNlbnRpbmVsIGZvciBkaXJlY3RpdmVzIGFuZCB0aGUK K0Bjb2RleyEkfSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBzZW50aW5lbCBhbmQgZm9yIGZp eGVkIHNvdXJjZSBmb3JtIHRoZQorQGNvZGV7YyRvbXB9LCBAY29kZXsqJG9tcH0gYW5kIEBj b2RleyEkb21wfSBzZW50aW5lbHMgZm9yIGRpcmVjdGl2ZXMgYW5kCit0aGUgQGNvZGV7YyR9 LCBAY29kZXsqJH0gYW5kIEBjb2RleyEkfSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBzZW50 aW5lbHMuCitUaGUgZmxhZyBhbHNvIGFycmFuZ2VzIGZvciBhdXRvbWF0aWMgbGlua2luZyBv ZiB0aGUgT3Blbk1QIHJ1bnRpbWUgbGlicmFyeQogKEByZWZ7UnVudGltZSBMaWJyYXJ5IFJv dXRpbmVzfSkuCiAKK1RoZSBAb3B0aW9uey1mb3Blbm1wLXNpbWR9IGZsYWcgY2FuIGJlIHVz ZWQgdG8gZW5hYmxlIGEgc3Vic2V0IG9mCitPcGVuTVAgZGlyZWN0aXZlcyB0aGF0IGRvIG5v dCByZXF1aXJlIHRoZSBsaW5raW5nIG9mIGVpdGhlciB0aGUKK09wZW5NUCBydW50aW1lIGxp YnJhcnkgb3IgdGhlIFBPU0lYIHRocmVhZHMgbGlicmFyeS4KKwogQSBjb21wbGV0ZSBkZXNj cmlwdGlvbiBvZiBhbGwgT3Blbk1QIGRpcmVjdGl2ZXMgbWF5IGJlIGZvdW5kIGluIHRoZQog QHVyZWZ7aHR0cHM6Ly93d3cub3Blbm1wLm9yZywgT3Blbk1QIEFwcGxpY2F0aW9uIFByb2dy YW0gSW50ZXJmYWNlfSBtYW51YWxzLgogU2VlIGFsc28gQHJlZntPcGVuTVAgSW1wbGVtZW50 YXRpb24gU3RhdHVzfS4KQEAgLTM2OTcsMTIgKzM3MDQsMTAgQEAgcG9vbHMgYXZhaWxhYmxl IGFuZCB0aGVpciB3b3JrZXIgdGhyZWFkcyBydW4gYXQgcHJpb3JpdHkgZm91ci4KIAogVG8g YWN0aXZhdGUgdGhlIE9wZW5BQ0MgZXh0ZW5zaW9ucyBmb3IgQy9DKysgYW5kIEZvcnRyYW4s IHRoZSBjb21waWxlLXRpbWUgCiBmbGFnIEBvcHRpb257LWZvcGVuYWNjfSBtdXN0IGJlIHNw ZWNpZmllZC4gIFRoaXMgZW5hYmxlcyB0aGUgT3BlbkFDQyBkaXJlY3RpdmUKLUBjb2RleyNw cmFnbWEgYWNjfSBpbiBDL0MrKyBhbmQgQGNvZGV7ISRhY2N9IGRpcmVjdGl2ZXMgaW4gZnJl ZSBmb3JtLAotQGNvZGV7YyRhY2N9LCBAY29kZXsqJGFjY30gYW5kIEBjb2RleyEkYWNjfSBk aXJlY3RpdmVzIGluIGZpeGVkIGZvcm0sCi1AY29kZXshJH0gY29uZGl0aW9uYWwgY29tcGls YXRpb24gc2VudGluZWxzIGluIGZyZWUgZm9ybSBhbmQgQGNvZGV7YyR9LAotQGNvZGV7KiR9 IGFuZCBAY29kZXshJH0gc2VudGluZWxzIGluIGZpeGVkIGZvcm0sIGZvciBGb3J0cmFuLiAg VGhlIGZsYWcgYWxzbwotYXJyYW5nZXMgZm9yIGF1dG9tYXRpYyBsaW5raW5nIG9mIHRoZSBP cGVuQUNDIHJ1bnRpbWUgbGlicmFyeSAKLShAcmVme09wZW5BQ0MgUnVudGltZSBMaWJyYXJ5 IFJvdXRpbmVzfSkuCitAc2FtcHsjcHJhZ21hIGFjY30gaW4gQy9DKysgYW5kLCBpbiBGb3J0 cmFuLCB0aGUgQHNhbXB7ISRhY2N9IHNlbnRpbmVsIGluIGZyZWUKK3NvdXJjZSBmb3JtIGFu ZCB0aGUgQHNhbXB7YyRhY2N9LCBAc2FtcHsqJGFjY30gYW5kIEBzYW1weyEkYWNjfSBzZW50 aW5lbHMgaW4KK2ZpeGVkIHNvdXJjZSBmb3JtLiAgVGhlIGZsYWcgYWxzbyBhcnJhbmdlcyBm b3IgYXV0b21hdGljIGxpbmtpbmcgb2YgdGhlIE9wZW5BQ0MKK3J1bnRpbWUgbGlicmFyeSAo QHJlZntPcGVuQUNDIFJ1bnRpbWUgTGlicmFyeSBSb3V0aW5lc30pLgogCiBTZWUgQHVyZWZ7 aHR0cHM6Ly9nY2MuZ251Lm9yZy93aWtpL09wZW5BQ0N9IGZvciBtb3JlIGluZm9ybWF0aW9u LgogCg== --------------ls62dlDFS3N0MgqyE9LIPMnH--