From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64364 invoked by alias); 7 May 2015 16:21:58 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 64354 invoked by uid 89); 7 May 2015 16:21:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.9 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ob0-f178.google.com Received: from mail-ob0-f178.google.com (HELO mail-ob0-f178.google.com) (209.85.214.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 07 May 2015 16:21:56 +0000 Received: by obbkp3 with SMTP id kp3so35348969obb.3 for ; Thu, 07 May 2015 09:21:54 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.202.208.1 with SMTP id h1mr3613479oig.74.1431015713974; Thu, 07 May 2015 09:21:53 -0700 (PDT) Received: by 10.76.54.14 with HTTP; Thu, 7 May 2015 09:21:53 -0700 (PDT) In-Reply-To: <554B6E0102000078000778D0@mail.emea.novell.com> References: <554B6E0102000078000778D0@mail.emea.novell.com> Date: Thu, 07 May 2015 16:21:00 -0000 Message-ID: Subject: Re: Avoiding unnecessary jump relocations in gas? From: "H.J. Lu" To: Jan Beulich Cc: Andy Lutomirski , Binutils , "linux-kernel@vger.kernel.org" Content-Type: multipart/mixed; boundary=001a113dd2544cc3c50515804f71 X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg00046.txt.bz2 --001a113dd2544cc3c50515804f71 Content-Type: text/plain; charset=UTF-8 Content-length: 1553 On Thu, May 7, 2015 at 4:52 AM, Jan Beulich wrote: >>>> On 07.05.15 at 08:02, wrote: >> AFAICT gas will produce relocations for jumps to global labels in the >> same file. This doesn't seem directly harmful to me, except that, on >> x86, it forces five-byte jumps instead of two-byte jumps. >> >> This seems especially unfortunate, since even hidden and protected >> symbols have this problem. >> >> Given that many users don't want interposition support (especially the >> kernel and anyone using .hidden or .protected), it would be nice to >> have a command-line option to turn this off and probably also to turn >> it off by default for hidden and protected symbols. Can gas do this? > > I've been running with the below changes (taken off of a bigger set > of changes, so the line numbers may look a little odd) for the last > couple of years. I never tried to submit this change because so far > I couldn't find the time to check whether this would have any > unwanted side effects on cases I don't normally use. > This is the patch I checked in. Thanks. -- H.J. --- Branches to global non-weak symbols defined in the same segment with non-default visibility can be optimized the same way as branches to local symbols. gas/ * config/tc-i386.c (elf_symbol_resolved_in_segment_p): New. (md_estimate_size_before_relax): Use it. gas/testsuite/ * gas/i386/i386.exp: Run relax-3 and x86-64-relax-2. * gas/i386/relax-3.d: New file. * gas/i386/relax-3.s: Likewise. * gas/i386/x86-64-relax-2.d: Likewise. --001a113dd2544cc3c50515804f71 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Optimize-branches-to-non-weak-symbols-with-visibilit.patch" Content-Disposition: attachment; filename="0001-Optimize-branches-to-non-weak-symbols-with-visibilit.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i9edsa3z0 Content-length: 10423 RnJvbSBiMDg0ZGYwYjhkMTI2MmZiMWU5NjljNzRiY2M1YzYxZTI2MmE2MTk5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IFRodSwgNyBNYXkgMjAxNSAwOTox MzozOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIE9wdGltaXplIGJyYW5jaGVz IHRvIG5vbi13ZWFrIHN5bWJvbHMgd2l0aCB2aXNpYmlsaXR5CgpCcmFuY2hl cyB0byBnbG9iYWwgbm9uLXdlYWsgc3ltYm9scyBkZWZpbmVkIGluIHRoZSBz YW1lIHNlZ21lbnQgd2l0aApub24tZGVmYXVsdCB2aXNpYmlsaXR5IGNhbiBi ZSBvcHRpbWl6ZWQgdGhlIHNhbWUgd2F5IGFzIGJyYW5jaGVzIHRvCmxvY2Fs IHN5bWJvbHMuCgpnYXMvCgoJKiBjb25maWcvdGMtaTM4Ni5jIChlbGZfc3lt Ym9sX3Jlc29sdmVkX2luX3NlZ21lbnRfcCk6IE5ldy4KCShtZF9lc3RpbWF0 ZV9zaXplX2JlZm9yZV9yZWxheCk6IFVzZSBpdC4KCmdhcy90ZXN0c3VpdGUv CgoJKiBnYXMvaTM4Ni9pMzg2LmV4cDogUnVuIHJlbGF4LTMgYW5kIHg4Ni02 NC1yZWxheC0yLgoJKiBnYXMvaTM4Ni9yZWxheC0zLmQ6IE5ldyBmaWxlLgoJ KiBnYXMvaTM4Ni9yZWxheC0zLnM6IExpa2V3aXNlLgoJKiBnYXMvaTM4Ni94 ODYtNjQtcmVsYXgtMi5kOiBMaWtld2lzZS4KLS0tCiBnYXMvQ2hhbmdlTG9n ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKysrKwogZ2FzL2Nv bmZpZy90Yy1pMzg2LmMgICAgICAgICAgICAgICAgICAgIHwgMjQgKysrKysr KysrKysrKysrKy0tLS0KIGdhcy90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAg ICAgICAgICAgICB8ICA3ICsrKysrKwogZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4 Ni9pMzg2LmV4cCAgICAgICAgIHwgIDQgKysrKwogZ2FzL3Rlc3RzdWl0ZS9n YXMvaTM4Ni9yZWxheC0zLmQgICAgICAgIHwgMzAgKysrKysrKysrKysrKysr KysrKysrKysrKwogZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni9yZWxheC0zLnMg ICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBnYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02NC1yZWxheC0yLmQgfCAz MiArKysrKysrKysrKysrKysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdl ZCwgMTM3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni9yZWxheC0zLmQK IGNyZWF0ZSBtb2RlIDEwMDY0NCBnYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3Jl bGF4LTMucwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdhcy90ZXN0c3VpdGUvZ2Fz L2kzODYveDg2LTY0LXJlbGF4LTIuZAoKZGlmZiAtLWdpdCBhL2dhcy9DaGFu Z2VMb2cgYi9nYXMvQ2hhbmdlTG9nCmluZGV4IDdmNDJhNjQuLjk3NThlNzIg MTAwNjQ0Ci0tLSBhL2dhcy9DaGFuZ2VMb2cKKysrIGIvZ2FzL0NoYW5nZUxv ZwpAQCAtMSwzICsxLDggQEAKKzIwMTUtMDUtMDcgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKworCSogY29uZmlnL3RjLWkzODYuYyAoZWxm X3N5bWJvbF9yZXNvbHZlZF9pbl9zZWdtZW50X3ApOiBOZXcuCisJKG1kX2Vz dGltYXRlX3NpemVfYmVmb3JlX3JlbGF4KTogVXNlIGl0LgorCiAyMDE1LTA1 LTA2ICBKb3NlIEUuIE1hcmNoZXNpICA8am9zZS5tYXJjaGVzaUBvcmFjbGUu Y29tPgogCiAJKiBjb25maWcvdGMtc3BhcmMuYzogVHlwbyBpbiBjb21tZW50 IGZpeGVkLgpkaWZmIC0tZ2l0IGEvZ2FzL2NvbmZpZy90Yy1pMzg2LmMgYi9n YXMvY29uZmlnL3RjLWkzODYuYwppbmRleCA1MGY5Y2I0Li5jNGJhMTNkIDEw MDY0NAotLS0gYS9nYXMvY29uZmlnL3RjLWkzODYuYworKysgYi9nYXMvY29u ZmlnL3RjLWkzODYuYwpAQCAtODc3Miw2ICs4NzcyLDI1IEBAIGkzODZfZnJh Z19tYXhfdmFyIChmcmFnUyAqZnJhZykKICAgcmV0dXJuIFRZUEVfRlJPTV9S RUxBWF9TVEFURSAoZnJhZy0+ZnJfc3VidHlwZSkgPT0gVU5DT05EX0pVTVAg PyA0IDogNTsKIH0KIAorI2lmIGRlZmluZWQgKE9CSl9FTEYpIHx8IGRlZmlu ZWQgKE9CSl9NQVlCRV9FTEYpCitzdGF0aWMgaW50CitlbGZfc3ltYm9sX3Jl c29sdmVkX2luX3NlZ21lbnRfcCAoc3ltYm9sUyAqZnJfc3ltYm9sKQorewor ICAvKiBTVFRfR05VX0lGVU5DIHN5bWJvbCBtdXN0IGdvIHRocm91Z2ggUExU LiAgKi8KKyAgaWYgKChzeW1ib2xfZ2V0X2JmZHN5bSAoZnJfc3ltYm9sKS0+ ZmxhZ3MKKyAgICAgICAmIEJTRl9HTlVfSU5ESVJFQ1RfRlVOQ1RJT04pICE9 IDApCisgICAgcmV0dXJuIDA7CisKKyAgaWYgKCFTX0lTX0VYVEVSTkFMIChm cl9zeW1ib2wpKQorICAgIC8qIFN5bWJvbCBtYXkgYmUgd2VhayBvciBsb2Nh bC4gICovCisgICAgcmV0dXJuICFTX0lTX1dFQUsgKGZyX3N5bWJvbCk7CisK KyAgLyogR2xvYmFsIHN5bWJvbHMgd2l0aCBkZWZhdWx0IHZpc2liaWxpdHkg aW4gYSBzaGFyZWQgbGlicmFyeSBtYXkgYmUKKyAgICAgcHJlZW1wdGVkIGJ5 IGFub3RoZXIgZGVmaW5pdGlvbi4gICovCisgIHJldHVybiBFTEZfU1RfVklT SUJJTElUWSAoU19HRVRfT1RIRVIgKGZyX3N5bWJvbCkpICE9IFNUVl9ERUZB VUxUOworfQorI2VuZGlmCisKIC8qIG1kX2VzdGltYXRlX3NpemVfYmVmb3Jl X3JlbGF4KCkKIAogICAgQ2FsbGVkIGp1c3QgYmVmb3JlIHJlbGF4KCkgZm9y IHJzX21hY2hpbmVfZGVwZW5kZW50IGZyYWdzLiAgVGhlIHg4NgpAQCAtODc5 NSwxMCArODgxNCw3IEBAIG1kX2VzdGltYXRlX3NpemVfYmVmb3JlX3JlbGF4 IChmcmFnUyAqZnJhZ1AsIHNlZ1Qgc2VnbWVudCkKICAgaWYgKFNfR0VUX1NF R01FTlQgKGZyYWdQLT5mcl9zeW1ib2wpICE9IHNlZ21lbnQKICNpZiBkZWZp bmVkIChPQkpfRUxGKSB8fCBkZWZpbmVkIChPQkpfTUFZQkVfRUxGKQogICAg ICAgfHwgKElTX0VMRgotCSAgJiYgKFNfSVNfRVhURVJOQUwgKGZyYWdQLT5m cl9zeW1ib2wpCi0JICAgICAgfHwgU19JU19XRUFLIChmcmFnUC0+ZnJfc3lt Ym9sKQotCSAgICAgIHx8ICgoc3ltYm9sX2dldF9iZmRzeW0gKGZyYWdQLT5m cl9zeW1ib2wpLT5mbGFncwotCQkgICAmIEJTRl9HTlVfSU5ESVJFQ1RfRlVO Q1RJT04pKSkpCisJICAmJiAhZWxmX3N5bWJvbF9yZXNvbHZlZF9pbl9zZWdt ZW50X3AgKGZyYWdQLT5mcl9zeW1ib2wpKQogI2VuZGlmCiAjaWYgZGVmaW5l ZCAoT0JKX0NPRkYpICYmIGRlZmluZWQgKFRFX1BFKQogICAgICAgfHwgKE9V VFBVVF9GTEFWT1IgPT0gYmZkX3RhcmdldF9jb2ZmX2ZsYXZvdXIKZGlmZiAt LWdpdCBhL2dhcy90ZXN0c3VpdGUvQ2hhbmdlTG9nIGIvZ2FzL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKaW5kZXggNjMzOWJmZi4uMWNmYTU3NyAxMDA2NDQKLS0t IGEvZ2FzL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKysrIGIvZ2FzL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMCBAQAorMjAxNS0wNS0wNyAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorCisJKiBnYXMvaTM4Ni9p Mzg2LmV4cDogUnVuIHJlbGF4LTMgYW5kIHg4Ni02NC1yZWxheC0yLgorCSog Z2FzL2kzODYvcmVsYXgtMy5kOiBOZXcgZmlsZS4KKwkqIGdhcy9pMzg2L3Jl bGF4LTMuczogTGlrZXdpc2UuCisJKiBnYXMvaTM4Ni94ODYtNjQtcmVsYXgt Mi5kOiBMaWtld2lzZS4KKwogMjAxNS0wNS0wNiAgSm9zZSBFLiBNYXJjaGVz aSAgPGpvc2UubWFyY2hlc2lAb3JhY2xlLmNvbT4KIAogCSogZ2FzL3NwYXJj L25hdHVyYWwtMzIuZDogVGVzdCBsZG4sIGxkbmEsIHN0biwgc3RuYSwgc2xs biwgc3JsbiwKZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYv aTM4Ni5leHAgYi9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L2kzODYuZXhwCmlu ZGV4IGUxZmRkMTguLmFmNTZjMjYgMTAwNjQ0Ci0tLSBhL2dhcy90ZXN0c3Vp dGUvZ2FzL2kzODYvaTM4Ni5leHAKKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMv aTM4Ni9pMzg2LmV4cApAQCAtMzk0LDYgKzM5NCw4IEBAIGlmIFtleHByIChb aXN0YXJnZXQgImkqODYtKi0qIl0gfHwgIFtpc3RhcmdldCAieDg2XzY0LSot KiJdKSAmJiBbZ2FzXzMyX2NoZWNrXV0KIAlydW5fZHVtcF90ZXN0ICJzaXpl LTQiCiAKIAlydW5fZHVtcF90ZXN0ICJub3RlIgorCisJcnVuX2R1bXBfdGVz dCAicmVsYXgtMyIKICAgICB9CiAKICAgICAjIFRoaXMgaXMgYSBQRSBzcGVj aWZpYyB0ZXN0LgpAQCAtNzQ4LDYgKzc1MCw4IEBAIGlmIFtleHByIChbaXN0 YXJnZXQgImkqODYtKi0qIl0gfHwgW2lzdGFyZ2V0ICJ4ODZfNjQtKi0qIl0p ICYmIFtnYXNfNjRfY2hlY2tdXSB0CiAJcnVuX2R1bXBfdGVzdCAieDg2LTY0 LXNpemUtNCIKIAlydW5fZHVtcF90ZXN0ICJ4ODYtNjQtc2l6ZS01IgogCXJ1 bl9saXN0X3Rlc3QgIng4Ni02NC1zaXplLWludmFsLTEiICItYWwiCisKKwly dW5fZHVtcF90ZXN0ICJ4ODYtNjQtcmVsYXgtMiIKICAgICB9CiAKICAgICBz ZXQgQVNGTEFHUyAiJG9sZF9BU0ZMQUdTIgpkaWZmIC0tZ2l0IGEvZ2FzL3Rl c3RzdWl0ZS9nYXMvaTM4Ni9yZWxheC0zLmQgYi9nYXMvdGVzdHN1aXRlL2dh cy9pMzg2L3JlbGF4LTMuZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi44YWE5NGU5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2FzL3Rlc3Rz dWl0ZS9nYXMvaTM4Ni9yZWxheC0zLmQKQEAgLTAsMCArMSwzMCBAQAorI29i amR1bXA6IC1kd3IKKworLio6ICtmaWxlIGZvcm1hdCAuKgorCitEaXNhc3Nl bWJseSBvZiBzZWN0aW9uIC50ZXh0OgorCiswKyA8Zm9vPjoKK1sgCV0qW2Et ZjAtOV0rOgllYiAxZiAgICAgICAgICAgICAgICAJam1wICAgIDIxIDxsb2Nh bD4KK1sgCV0qW2EtZjAtOV0rOgllYiAxOSAgICAgICAgICAgICAgICAJam1w ICAgIDFkIDxoaWRkZW5fZGVmPgorWyAJXSpbYS1mMC05XSs6CWU5IGZjIGZm IGZmIGZmICAgICAgIAlqbXAgICAgNSA8Zm9vXCsweDU+CTU6IChSXzM4Nl9Q Qyk/KERJU1ApPzMyCWdsb2JhbF9kZWYKK1sgCV0qW2EtZjAtOV0rOgllOSBm YyBmZiBmZiBmZiAgICAgICAJam1wICAgIGEgPGZvb1wrMHhhPglhOiAoUl8z ODZfUEMpPyhESVNQKT8zMgl3ZWFrX2RlZgorWyAJXSpbYS1mMC05XSs6CWU5 IGZjIGZmIGZmIGZmICAgICAgIAlqbXAgICAgZiA8Zm9vXCsweGY+CWY6IChS XzM4Nl9QQyk/KERJU1ApPzMyCXdlYWtfaGlkZGVuX3VuZGVmCitbIAldKlth LWYwLTldKzoJZTkgZmMgZmYgZmYgZmYgICAgICAgCWptcCAgICAxNCA8Zm9v XCsweDE0PgkxNDogKFJfMzg2X1BDKT8oRElTUCk/MzIJd2Vha19oaWRkZW5f ZGVmCitbIAldKlthLWYwLTldKzoJZTkgZmMgZmYgZmYgZmYgICAgICAgCWpt cCAgICAxOSA8Zm9vXCsweDE5PgkxOTogKFJfMzg2X1BDKT8oRElTUCk/MzIJ aGlkZGVuX3VuZGVmCisKKzArMWQgPGhpZGRlbl9kZWY+OgorWyAJXSpbYS1m MC05XSs6CWMzICAgICAgICAgICAgICAgICAgIAlyZXQgICAgCisKKzArMWUg PHdlYWtfaGlkZGVuX2RlZj46CitbIAldKlthLWYwLTldKzoJYzMgICAgICAg ICAgICAgICAgICAgCXJldCAgICAKKworMCsxZiA8Z2xvYmFsX2RlZj46Citb IAldKlthLWYwLTldKzoJYzMgICAgICAgICAgICAgICAgICAgCXJldCAgICAK KworMCsyMCA8d2Vha19kZWY+OgorWyAJXSpbYS1mMC05XSs6CWMzICAgICAg ICAgICAgICAgICAgIAlyZXQgICAgCisKKzArMjEgPGxvY2FsPjoKK1sgCV0q W2EtZjAtOV0rOgljMyAgICAgICAgICAgICAgICAgICAJcmV0ICAgIAorI3Bh c3MKZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYvcmVsYXgt My5zIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvaTM4Ni9yZWxheC0zLnMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI1MjE4NQotLS0gL2Rl di9udWxsCisrKyBiL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYvcmVsYXgtMy5z CkBAIC0wLDAgKzEsMzkgQEAKKwkudGV4dAorCS5nbG9iYWwgZm9vCitmb286 CisJam1wIGxvY2FsCisJam1wIGhpZGRlbl9kZWYKKwlqbXAgZ2xvYmFsX2Rl ZgorCWptcCB3ZWFrX2RlZgorCWptcCB3ZWFrX2hpZGRlbl91bmRlZgorCWpt cCB3ZWFrX2hpZGRlbl9kZWYKKwlqbXAgaGlkZGVuX3VuZGVmCisKKwkuaGlk ZGVuIGhpZGRlbl91bmRlZgorCisJLmdsb2JhbCBoaWRkZW5fZGVmCisJLmhp ZGRlbiBoaWRkZW5fZGVmCitoaWRkZW5fZGVmOgorCXJldAorCisJLmdsb2Jh bCB3ZWFrX2hpZGRlbl9kZWYKKwkuaGlkZGVuIHdlYWtfaGlkZGVuX2RlZgor CS53ZWFrIHdlYWtfaGlkZGVuX2RlZgord2Vha19oaWRkZW5fZGVmOgorCXJl dAorCisJLmdsb2JhbCBnbG9iYWxfZGVmCitnbG9iYWxfZGVmOgorCXJldAor CisJLmdsb2JhbCB3ZWFrX2RlZgorCS53ZWFrIHdlYWtfZGVmCit3ZWFrX2Rl ZjoKKwlyZXQKKworbG9jYWw6CisJcmV0CisKKwkuZ2xvYmFsIHdlYWtfaGlk ZGVuX3VuZGVmCisJLndlYWsgd2Vha19oaWRkZW5fdW5kZWYKKwkuaGlkZGVu IHdlYWtfaGlkZGVuX3VuZGVmCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRl L2dhcy9pMzg2L3g4Ni02NC1yZWxheC0yLmQgYi9nYXMvdGVzdHN1aXRlL2dh cy9pMzg2L3g4Ni02NC1yZWxheC0yLmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uN2IwYmQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2dh cy90ZXN0c3VpdGUvZ2FzL2kzODYveDg2LTY0LXJlbGF4LTIuZApAQCAtMCww ICsxLDMyIEBACisjc291cmNlOiByZWxheC0zLnMKKyNvYmpkdW1wOiAtZHdy CisKKy4qOiArZmlsZSBmb3JtYXQgLioKKworCitEaXNhc3NlbWJseSBvZiBz ZWN0aW9uIC50ZXh0OgorCiswKyA8Zm9vPjoKK1sgCV0qW2EtZjAtOV0rOgll YiAxZiAgICAgICAgICAgICAgICAJam1wICAgIDIxIDxsb2NhbD4KK1sgCV0q W2EtZjAtOV0rOgllYiAxOSAgICAgICAgICAgICAgICAJam1wICAgIDFkIDxo aWRkZW5fZGVmPgorWyAJXSpbYS1mMC05XSs6CWU5IDAwIDAwIDAwIDAwICAg ICAgIAlqbXBxICAgOSA8Zm9vXCsweDk+CTU6IFJfWDg2XzY0X1BDMzIJZ2xv YmFsX2RlZi0weDQKK1sgCV0qW2EtZjAtOV0rOgllOSAwMCAwMCAwMCAwMCAg ICAgICAJam1wcSAgIGUgPGZvb1wrMHhlPglhOiBSX1g4Nl82NF9QQzMyCXdl YWtfZGVmLTB4NAorWyAJXSpbYS1mMC05XSs6CWU5IDAwIDAwIDAwIDAwICAg ICAgIAlqbXBxICAgMTMgPGZvb1wrMHgxMz4JZjogUl9YODZfNjRfUEMzMgl3 ZWFrX2hpZGRlbl91bmRlZi0weDQKK1sgCV0qW2EtZjAtOV0rOgllOSAwMCAw MCAwMCAwMCAgICAgICAJam1wcSAgIDE4IDxmb29cKzB4MTg+CTE0OiBSX1g4 Nl82NF9QQzMyCXdlYWtfaGlkZGVuX2RlZi0weDQKK1sgCV0qW2EtZjAtOV0r OgllOSAwMCAwMCAwMCAwMCAgICAgICAJam1wcSAgIDFkIDxoaWRkZW5fZGVm PgkxOTogUl9YODZfNjRfUEMzMgloaWRkZW5fdW5kZWYtMHg0CisKKzArMWQg PGhpZGRlbl9kZWY+OgorWyAJXSpbYS1mMC05XSs6CWMzICAgICAgICAgICAg ICAgICAgIAlyZXRxICAgCisKKzArMWUgPHdlYWtfaGlkZGVuX2RlZj46Citb IAldKlthLWYwLTldKzoJYzMgICAgICAgICAgICAgICAgICAgCXJldHEgICAK KworMCsxZiA8Z2xvYmFsX2RlZj46CitbIAldKlthLWYwLTldKzoJYzMgICAg ICAgICAgICAgICAgICAgCXJldHEgICAKKworMCsyMCA8d2Vha19kZWY+Ogor WyAJXSpbYS1mMC05XSs6CWMzICAgICAgICAgICAgICAgICAgIAlyZXRxICAg CisKKzArMjEgPGxvY2FsPjoKK1sgCV0qW2EtZjAtOV0rOgljMyAgICAgICAg ICAgICAgICAgICAJcmV0cSAgIAorI3Bhc3MKLS0gCjEuOS4zCgo= --001a113dd2544cc3c50515804f71--