From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?iso-8859-1?q?Germ=E1n_Arias?= Subject: Re: GNU Guix 0.2 released Date: Fri, 17 May 2013 16:58:04 -0600 Message-ID: <5196b5fd.aec6ec0a.55d0.5a8b@mx.google.com> References: <87ehd57n4h.fsf@gnu.org> Mime-Version: 1.0 (Generated by Pantomime 1.2.0) Content-Type: multipart/mixed; charset="windows-1252"; boundary="=_78e301bc036bc4eaad873c96d5964859" Return-path: Received: from eggs.gnu.org ([208.118.235.92]:45071) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UdTbL-0002Ox-FJ for bug-guix@gnu.org; Fri, 17 May 2013 18:58:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UdTbD-0005BV-GS for bug-guix@gnu.org; Fri, 17 May 2013 18:58:15 -0400 Received: from mail-yh0-x230.google.com ([2607:f8b0:4002:c01::230]:62675) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UdTbD-0005B7-8m for bug-guix@gnu.org; Fri, 17 May 2013 18:58:07 -0400 Received: by mail-yh0-f48.google.com with SMTP id f35so1135456yha.21 for ; Fri, 17 May 2013 15:58:06 -0700 (PDT) In-Reply-To: <87ehd57n4h.fsf@gnu.org> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: ludo@gnu.org Cc: bug-guix@gnu.org --=_78e301bc036bc4eaad873c96d5964859 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="windows-1252" On 2013-05-17 07:27:10 -0600 ludo@gnu.org (Ludovic Court=E8s wrote: [snip] >=20 >> The only difference is that if the system don't know about the gnuste= p >> tools. The >> user will need run the gnustep script, something like ". >> /usr/.../GNUstep.sh", to set >> up the variables of gnustep environment. >=20 > What do you mean with =93doesn=92t know about the GNUstep tools=94? W= hen is > it necessary to source that script? What are the variables to be > defined? GNUstep can be installed using differents layouts. By default gnustep is= installed using the FHS layout. But one popular layout is "gnustep", thi= s install all in "/usr/GNUstep". Since this isn't an standard path to inst= all libraries, headers and tools, the user need add this path or run the gnustep script at session startup or run it when he will use the gnustep-make tool. >=20 > Guix has a mechanism to automatically define search path variables: >=20 > http://lists.gnu.org/archive/html/bug-guix/2013-03/msg00158.html >=20 > Would that be of any help? I think it can help. Although I'm not an expert in what does exactly the gnustep script. I send you it attached if you want take a look. Anyway, installing gnustep with FHS layout, avoids the use of this script. >=20 >> The rest of packages is other history. Many of them only use: make & >> make install. >> Here "make" is "gnustep-make", >=20 > For those, it may make sense to implement a specific build system that= > automatically adds =91gnustep-make=92 as an input and runs the right > commands. >=20 > Thanks, > Ludo=92. >=20 --=_78e301bc036bc4eaad873c96d5964859 Content-Transfer-Encoding: base64 Content-Type: text/x-sh; name="GNUstep.sh" Content-Disposition: attachment; filename="GNUstep.sh" IyAgIFRoaXMgZmlsZSBtdXN0IGJlIHNvdXJjZWQgaW5zaWRlIChiYSlzaCB1c2luZzogLgoj CiMgICBHTlVzdGVwLnNoLiAgR2VuZXJhdGVkIGZyb20gR05Vc3RlcC5zaC5pbiBieSBjb25m aWd1cmUuCiMKIyAgIFNoZWxsIGluaXRpYWxpemF0aW9uIGZvciB0aGUgR05Vc3RlcCBlbnZp cm9ubWVudC4KIwojICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMDggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiMKIyAgIEF1dGhvcjogIFNjb3R0IENocmlzdGxleSA8c2NvdHRj QG5ldC1jb21tdW5pdHkuY29tPgojICAgQXV0aG9yOiAgQWRhbSBGZWRvciA8ZmVkb3JAZ251 Lm9yZz4KIyAgIEF1dGhvcjogIFJpY2hhcmQgRnJpdGgtTWFjZG9uYWxkIDxyZm1AZ251Lm9y Zz4KIyAgIEF1dGhvcjogIE5pY29sYSBQZXJvIDxuaWNvbGEucGVyb0BtZXRhLWlubm92YXRp b24uY29tPgojCiMgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05Vc3RlcCBNYWtlZmls ZSBQYWNrYWdlLgojCiMgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiMgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojICAgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMKIyAgIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoj ICAgCiMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMKIyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0 aGUgZmlsZSBDT1BZSU5HLgojICAgSWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLAojICAgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiMKCiMgV2FybmluZyAtIHRoaXMgc2hlbGwgc2Ny aXB0IGlzIGRlbGljYXRlLCBiZWNhdXNlIGl0IGlzIHNvdXJjZWQgYnkKIyB1c2luZyAuIHJh dGhlciB0aGFuIHNpbXBseSBleGVjdXRlZC4gIEl0IGlzIHNvdXJjZWQgYmVjYXVzZSB0aGF0 IGlzCiMgdGhlIG9ubHkgd2F5IHRvIGNoYW5nZSB0aGUgc2hlbGwgdmFyaWFibGVzIGluIHRo ZSBjYWxsaW5nCiMgZW52aXJvbm1lbnQuCiMKIyBTb3VyY2luZyBtYWtlcyB0aGUgc2hlbGwg c2NyaXB0IG1vcmUgZGVsaWNhdGUgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uczoKIwojICAq IHRlbXBvcmFyeSB2YXJpYWJsZXMgYXJlIGF1dG9tYXRpY2FsbHkgc2V0IGluIHRoZSBjYWxs aW5nCiMgIGVudmlyb25tZW50ISAgV09SS0FST1VORDogd2UgbmVlZCB0byB1bnNldCBhbGwg dGhlbSBhZnRlciB1c2luZwojICB0aGVtIHRvIGF2b2lkIHBvbGx1dGluZyB0aGUgY2FsbGlu ZyBlbnZpcm9ubWVudDsKIwojICAqIG5vdCBvbmx5IHRoZSBleGl0IHZhbHVlIG9mIHRoZSBz Y3JpcHQsIGJ1dCB0aGUgZXhpdCB2YWx1ZSBvZiBlYWNoCiMgIGNvbW1hbmQgd2UgZXhlY3V0 ZSwgbWlnaHQgYmUgaW50ZXJwcmV0ZWQgYnkgdGhlIGNhbGxpbmcKIyAgZW52aXJvbm1lbnQu ICBUeXBpY2FsbHksIHRoZSBjYWxsaW5nIGVudmlyb25tZW50IG1pZ2h0IGJlIHVzaW5nIHRo ZQojICBzaGVsbCBlcnJleGl0IG9wdGlvbiAoJ3NldCAtZScpIGluIGJhc2ggcGFybGFuY2Us IHdoaWNoIGNhdXNlcyB0aGUKIyAgc2hlbGwgdG8gZXhpdCBpZiBhbnkgY29tbWFuZCByZXR1 cm5zIGFuIGVycm9yIHZhbHVlLiAgSWYgdGhpcyB3ZXJlCiMgIGEgbm9ybWFsIHNjcmlwdCwg dGhpcyBvcHRpb24gd291bGQgbWVhbiB0aGF0IHRoZSBzaGVsbCB3b3VsZCBleGl0CiMgIGlm IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHdob2xlIHNjcmlwdCB3ZXJlIGFuIGVycm9yIHZh bHVlOyBidXQKIyAgYmVjYXVzZSB3ZSBhcmUgc291cmNlZCwgaXQgaXMgYXMgYWxsIHRoZSBj b21tYW5kcyBpbiB0aGlzIHNjcmlwdAojICB3ZXJlIGV4ZWN1dGVkIGRpcmVjdGx5IGluIHRo ZSBjYWxsaW5nIGVudmlyb25tZW50LCBzbyAqYWxsKiB2YWx1ZXMKIyAgcmV0dXJuZWQgYnkg KmFsbCogY29tbWFuZHMgbXVzdCBiZSBub24tZXJyb3IuICBbdGhpcyBhbGwgdHlwaWNhbGx5 CiMgIGhhcHBlbnMgaW4gcnBtIGJ1aWxkcywgd2hlcmUgc2NyaXB0cyBhcmUgcnVuIHdpdGgg dGhlIGVycmV4aXQKIyAgb3B0aW9uIHNvIHRoYXQgZXJyb3JzIGluIHNjcmlwdHMgYWJvcnQg dGhlIGJ1aWxkLCBhbmQgbm93IGlmIGEKIyAgc2NyaXB0IHNvdXJjZXMgR05Vc3RlcC5zaCwg dGhlbiB3ZSBhcmUgZXhhY3RseSBpbiB0aGlzIHNpdHVhdGlvbiAtCiMgIGlmIGFueSBjb21t YW5kIGluc2lkZSBHTlVzdGVwLnNoIHJldHVybnMgYW4gZXJyb3IgdmFsdWUgKGV2ZW4gaWYK IyAgR05Vc3RlcC5zaCBhcyBhIHdob2xlIHdvdWxkIGJlIGhhcHB5IGFuZCByZXR1cm4gc3Vj Y2VzKSwgdGhlIHdob2xlCiMgIHJwbSBidWlsZCBwcm9jZXNzIGFib3J0cyFdLiBXT1JLQVJP VU5EOiB3ZSBtdXN0IG1ha2Ugc3VyZSBhbGwKIyAgY29tbWFuZHMgcmV0dXJuIHN1Y2Nlc3Mg LSBsYXN0IHJlc29ydHMgaGFja3MgbGlrZSAnY29tbWFuZCB8fCA6JwojICB3aGljaCBhbHdh eXMgcmV0dXJucyBzdWNjZXNzIHdoYXRldmVyIGNvbW1hbmQgcmV0dXJucy4KIwoKIyBJZiB3 ZSdyZSBydW5uaW5nIGluIHpzaCAoYXVjaCEpIG1ha2Ugc3VyZSB3ZSdyZSB1c2luZyAteQoj IChTSF9XT1JEX1NQTElUKSBlbHNlIG91ciBwYXRoIG1hbmlwdWxhdGlvbnMgd29uJ3Qgd29y ay4KaWYgWyAtbiAiJFpTSF9WRVJTSU9OIiBdOyB0aGVuCgogICMgSWYgLXkgaXMgbm90IGFs cmVhZHkgc2V0LCBzZXQgaXQgYW5kIHJlbWVtYmVyIHRoYXQgd2UKICAjIG5lZWQgdG8gc2V0 IGl0IGJhY2sgdG8gd2hhdCBpdCB3YXMgYXQgdGhlIGVuZC4KICBpZiAoIHNldG9wdCB8IGdy ZXAgc2h3b3Jkc3BsaXQgPiAvZGV2L251bGwgKTsgdGhlbiA6OyBlbHNlCiAgICBzZXRvcHQg c2h3b3Jkc3BsaXQKICAgIEdTX1pTSF9ORUVEX1RPX1JFU1RPUkVfU0VUPXllcwogIGZpCgpm aQoKIyBXaGVuIHRoaXMgaXMgc2V0IHRvICd5ZXMnLCBzdHJpY3QgZ251c3RlcC1tYWtlIHYy IGNvbXBhdGliaWxpdHkgbW9kZQojIGlzIHR1cm5lZCBvbi4KR05VU1RFUF9NQUtFX1NUUklD VF9WMl9NT0RFPW5vCgojCiMgUmVhZCBvdXIgY29uZmlndXJhdGlvbiBmaWxlcwojCgojIERl dGVybWluZSB0aGUgbG9jYXRpb24gb2YgdGhlIHN5c3RlbSBjb25maWd1cmF0aW9uIGZpbGUK aWYgWyAteiAiJEdOVVNURVBfQ09ORklHX0ZJTEUiIF07IHRoZW4KICBHTlVTVEVQX0NPTkZJ R19GSUxFPS9ldGMvR05Vc3RlcC9HTlVzdGVwLmNvbmYKZWxzZQogICMgUmVtZW1iZXIgdGhh dCB0aGUgdmFyaWFibGUgd2FzIGFscmVhZHkgc2V0IGluIHRoZSBlbnZpcm9ubWVudCwgYW5k CiAgIyBwcmVzZXJ2ZSBpdCBhdCB0aGUgZW5kIG9mIHRoZSBzY3JpcHQuICBPdGhlcndpc2Ug d2UnbGwgdW5zZXQgaXQgdG8KICAjIGF2b2lkIHBvbGx1dGluZyB0aGUgZW52aXJvbm1lbnQg d2l0aCBvdXIgb3duIGludGVybmFsIHZhcmlhYmxlcy4KICBHTlVTVEVQX0tFRVBfQ09ORklH X0ZJTEU9eWVzCmZpCgojIERldGVybWluZSB0aGUgbG9jYXRpb24gb2YgdGhlIHVzZXIgY29u ZmlndXJhdGlvbiBmaWxlCmlmIFsgLXogIiRHTlVTVEVQX1VTRVJfQ09ORklHX0ZJTEUiIF07 IHRoZW4KICBHTlVTVEVQX1VTRVJfQ09ORklHX0ZJTEU9LkdOVXN0ZXAuY29uZgplbHNlCiAg R05VU1RFUF9LRUVQX1VTRVJfQ09ORklHX0ZJTEU9eWVzCmZpCgojIFJlYWQgdGhlIHN5c3Rl bSBjb25maWd1cmF0aW9uIGZpbGUKaWYgWyAtZiAiJEdOVVNURVBfQ09ORklHX0ZJTEUiIF07 IHRoZW4KICAuICIkR05VU1RFUF9DT05GSUdfRklMRSIKZmkKCiMgRklYTUU6IGRldGVybWlu aW5nIEdOVVNURVBfSE9NRQpHTlVTVEVQX0hPTUU9fgoKIyBSZWFkIHRoZSB1c2VyIGNvbmZp Z3VyYXRpb24gZmlsZSAuLi4gdW5sZXNzIGl0IGlzIGRpc2FibGVkIChpZSwgc2V0CiMgdG8g YW4gZW1wdHkgc3RyaW5nKQppZiBbIC1uICIkR05VU1RFUF9VU0VSX0NPTkZJR19GSUxFIiBd OyB0aGVuCiAgY2FzZSAiJEdOVVNURVBfVVNFUl9DT05GSUdfRklMRSIgaW4gCiAgICAvKikg IyBBbiBhYnNvbHV0ZSBwYXRoCiAgICAgICAgaWYgWyAtZiAiJEdOVVNURVBfVVNFUl9DT05G SUdfRklMRSIgXTsgdGhlbgogICAgICAgICAgLiAiJEdOVVNURVBfVVNFUl9DT05GSUdfRklM RSIKICAgICAgICBmaTs7CiAgICAgKikgIyBTb21ldGhpbmcgZWxzZQogICAgICAgIGlmIFsg LWYgIiRHTlVTVEVQX0hPTUUvJEdOVVNURVBfVVNFUl9DT05GSUdfRklMRSIgXTsgdGhlbgog ICAgICAgICAgLiAiJEdOVVNURVBfSE9NRS8kR05VU1RFUF9VU0VSX0NPTkZJR19GSUxFIgog ICAgICAgIGZpOzsKICBlc2FjCmZpCgojIE5vdywgc2V0IGFueSBlc3NlbnRpYWwgdmFyaWFi bGUgKHRoYXQgaXMgbm90IGFscmVhZHkgc2V0KSB0byB0aGUKIyBidWlsdC1pbiB2YWx1ZXMu CgppZiBbICIkR05VU1RFUF9NQUtFX1NUUklDVF9WMl9NT0RFIiA9ICJ5ZXMiIF07IHRoZW4K ICAjIEluIHN0cmljdCB2MiBtb2RlLCBjbGVhbiB0aGVzZSBvYnNvbGV0ZSB2YXJpYWJsZXMg aW4gY2FzZSB0aGUKICAjIGNvbmZpZyBmaWxlIGNvbnRhaW5zIHRoZW0uICBUaGV5IHNob3Vs ZG4ndCBleGlzdCBzbyB1bnNldHRpbmcKICAjIHRoZW0gY2FuJ3QgaGFybS4KICB1bnNldCBH TlVTVEVQX1NZU1RFTV9ST09UCiAgdW5zZXQgR05VU1RFUF9MT0NBTF9ST09UCiAgdW5zZXQg R05VU1RFUF9ORVRXT1JLX1JPT1QKZWxzZQogICMgVGhpcyBpcyBkZXByZWNhdGVkIGFuZCB3 aWxsIGJlIHJlbW92ZWQKICBpZiBbIC16ICIkR05VU1RFUF9TWVNURU1fUk9PVCIgXTsgdGhl bgogICAgR05VU1RFUF9TWVNURU1fUk9PVD0vdXNyL0dOVXN0ZXAvU3lzdGVtCiAgZmkKCiAg IyBUaGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZAogIGlmIFsgLXogIiRH TlVTVEVQX0xPQ0FMX1JPT1QiIF07IHRoZW4KICAgIEdOVVNURVBfTE9DQUxfUk9PVD0vdXNy L0dOVXN0ZXAvTG9jYWwKICBmaQoKICAjIFRoaXMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBi ZSByZW1vdmVkCiAgaWYgWyAteiAiJEdOVVNURVBfTkVUV09SS19ST09UIiBdOyB0aGVuCiAg ICBHTlVTVEVQX05FVFdPUktfUk9PVD0vdXNyL0dOVXN0ZXAvTmV0d29yawogIGZpCgogIGV4 cG9ydCBHTlVTVEVQX1NZU1RFTV9ST09UIEdOVVNURVBfTE9DQUxfUk9PVCBHTlVTVEVQX05F VFdPUktfUk9PVApmaQoKIyBHTlVTVEVQX0ZMQVRURU5FRCBpcyBvYnNvbGV0ZSwgcGxlYXNl IHVzZSBHTlVTVEVQX0lTX0ZMQVRURU5FRAojIGluc3RlYWQKaWYgWyAiJEdOVVNURVBfTUFL RV9TVFJJQ1RfVjJfTU9ERSIgPSAieWVzIiBdOyB0aGVuCiAgdW5zZXQgR05VU1RFUF9GTEFU VEVORUQKZWxzZQogIEdOVVNURVBfRkxBVFRFTkVEPXllcwogIGV4cG9ydCBHTlVTVEVQX0ZM QVRURU5FRApmaQpHTlVTVEVQX0lTX0ZMQVRURU5FRD15ZXMKaWYgWyAteiAiJExJQlJBUllf Q09NQk8iIF07IHRoZW4KICBMSUJSQVJZX0NPTUJPPWdudS1nbnUtZ251CmZpCmlmIFsgISAi JEdOVVNURVBfTUFLRV9TVFJJQ1RfVjJfTU9ERSIgPSAieWVzIiBdOyB0aGVuCiAgIyBIYXZp bmcgdGhlc2UgdmFyaWFibGVzIGluIHRoZSBlbnZpcm9ubWVudCBpcyBkZXByZWNhdGVkIGFu ZCB3aWxsCiAgIyBiZSByZW1vdmVkLiAgQnV0IGZvciBub3csIGlmIHdlIGFyZSBub3QgaW4g c3RyaWN0IGdudXN0ZXAtbWFrZSB2MgogICMgbW9kZSwgdGhlbiB3ZSBhbHdheXMgZXhwb3J0 IHRoZXNlIHZhcmlhYmxlcyBmb3IKICAjIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LgogIGV4 cG9ydCBHTlVTVEVQX0lTX0ZMQVRURU5FRCBMSUJSQVJZX0NPTUJPCgogICMgRWxzZSB0aGV5 IGFyZSBvbmx5IGV4cG9ydGVkIGlmIEdOVVNURVBfU0hfRVhQT1JUX0FMTF9WQVJJQUJMRVMK ICAjIGlzIGRlZmluZWQgLSBhdCB0aGUgZW5kIG9mIHRoZSBzY3JpcHQuCmZpCgppZiBbIC16 ICIkR05VU1RFUF9NQUtFRklMRVMiIF07IHRoZW4KICBHTlVTVEVQX01BS0VGSUxFUz0vdXNy L0dOVXN0ZXAvU3lzdGVtL0xpYnJhcnkvTWFrZWZpbGVzCmZpCmV4cG9ydCBHTlVTVEVQX01B S0VGSUxFUwoKCmlmIFsgIiRHTlVTVEVQX01BS0VfU1RSSUNUX1YyX01PREUiID0gInllcyIg XTsgdGhlbgogICMgTWFrZSBzdXJlIHRoaXMgaXMgbmV2ZXIgc2V0IGluIGdudXN0ZXAtbWFr ZSB2MiBzdHJpY3QgbW9kZTsgaXQKICAjIG1pZ2h0IGhhdmUgYmVlbiBzZXQgaW4gdGhlIGNv bmZpZyBmaWxlLgogIHVuc2V0IEdOVVNURVBfVVNFUl9ESVIKICB1bnNldCBHTlVTVEVQX1VT RVJfUk9PVAplbHNlCiAgIyBHTlVTVEVQX1VTRVJfRElSIGlzIGRlcHJlY2F0ZWQgYW5kIHdp bGwgYmUgcmVtb3ZlZAogIGlmIFsgLXogIiRHTlVTVEVQX1VTRVJfRElSIiBdOyB0aGVuCiAg ICBHTlVTVEVQX1VTRVJfRElSPUdOVXN0ZXAKICBmaQoKICAjCiAgIyBTZXQgR05VU1RFUF9V U0VSX1JPT1Qgd2hpY2ggaXMgdGhlIHZhcmlhYmxlIHVzZWQgaW4gcHJhY3RpY2UuCiAgIyBH TlVTVEVQX1VTRVJfUk9PVCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQKICAj CiAgY2FzZSAiJEdOVVNURVBfVVNFUl9ESVIiIGluIAogICAgLyopICMgQW4gYWJzb2x1dGUg cGF0aAogICAgICAgIEdOVVNURVBfVVNFUl9ST09UPSIkR05VU1RFUF9VU0VSX0RJUiI7Owog ICAgICopICMgU29tZXRoaW5nIGVsc2UKICAgICAgICBHTlVTVEVQX1VTRVJfUk9PVD0iJEdO VVNURVBfSE9NRS8kR05VU1RFUF9VU0VSX0RJUiI7OwogIGVzYWMKCiAgIyBUaGlzIHZhcmlh YmxlIHdhcyB1c2VkIHRvIHNldCB1cCBHTlVTVEVQX1VTRVJfUk9PVCB3aGljaCBpcyB0aGUg b25lCiAgIyB0aGF0IGlzIGFjdHVhbGx5IGV4cG9ydGVkOyB3ZSBjYW4gbm93IGRyb3AgaXQg ZnJvbSB0aGUgZW52aXJvbm1lbnQuCiAgdW5zZXQgR05VU1RFUF9VU0VSX0RJUgoKICAjIFRo aXMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkCiAgZXhwb3J0IEdOVVNURVBf VVNFUl9ST09UCmZpCgojIElmIG11bHRpLXBsYXRmb3JtIHN1cHBvcnQgaXMgZGlzYWJsZWQs IGp1c3QgdXNlIHRoZSBoYXJkY29kZWQgY3B1LAojIHZlbmRvciBhbmQgb3MgZGV0ZXJtaW5l ZCB3aGVuIGdudXN0ZXAtbWFrZSB3YXMgY29uZmlndXJlZC4gIFRoZQojIHJlYXNvbiB1c2lu ZyB0aGUgaGFyZGNvZGVkIG9uZXMgbWlnaHQgYmUgYmV0dGVyIGlzIHRoYXQgY29uZmlnLmd1 ZXNzCiMgYW5kIHNpbWlsYXIgc2NyaXB0cyBtaWdodCBldmVuIHJlcXVpcmUgY29tcGlsaW5n IHRlc3QgZmlsZXMgdG8KIyBkZXRlcm1pbmUgdGhlIHBsYXRmb3JtIC0gYnV0IHRoZW4geW91 IGNhbid0IHNvdXJjZSBHTlVzdGVwLnNoCiMgd2l0aG91dCBoYXZpbmcgZ2NjLCBiaW51dGls cywgbGliYzYtZGV2IGluc3RhbGxlZC4gIFdoaWNoIGNhbiBiZSBhCiMgcHJvYmxlbSBmb3Ig ZW5kLXVzZXJzIHdobyBhcmUgbm90IGRldmVsb3BlcnMgYW5kIGhhdmUgbm8gZGV2ZWxvcG1l bnQKIyB0b29scyBpbnN0YWxsZWQuICBUbyBwcmV2ZW50IHRoaXMgcHJvYmxlbSwgdW5sZXNz IHdlIHdlcmUgY29uZmlndXJlZAojIHRvIGRldGVybWluZSB0aGUgcGxhdGZvcm0gYXQgcnVu IHRpbWUsIGJ5IGRlZmF1bHQgd2UgdXNlIHRoZQojIGhhcmRjb2RlZCB2YWx1ZXMgb2YgR05V U1RFUF9IT1NUKi4KaWYgWyAteiAiIiBdOyB0aGVuCiAgR05VU1RFUF9IT1NUPWk2ODYtcGMt bGludXgtZ251CiAgR05VU1RFUF9IT1NUX0NQVT1peDg2CiAgR05VU1RFUF9IT1NUX1ZFTkRP Uj1wYwogIEdOVVNURVBfSE9TVF9PUz1saW51eC1nbnUKZmkKCiMKIyBEZXRlcm1pbmUgdGhl IGhvc3QgaW5mb3JtYXRpb24KIwppZiBbIC16ICIkR05VU1RFUF9IT1NUIiBdOyB0aGVuCiAg IyBOb3QgYWxsIHNoZWxscyAoZS5nLiAvYmluL3NoIG9uIEZyZWVCU0QgPCA0LjAgb3IgYXNo KSBoYXZlIHB1c2hkL3BvcGQKICB0bXBkaXI9YHB3ZGA7IGNkIC90bXAKICBHTlVTVEVQX0hP U1Q9YCRHTlVTVEVQX01BS0VGSUxFUy9jb25maWcuZ3Vlc3NgCiAgR05VU1RFUF9IT1NUPWAk R05VU1RFUF9NQUtFRklMRVMvY29uZmlnLnN1YiAkR05VU1RFUF9IT1NUYAogIGNkICIkdG1w ZGlyIgogIHVuc2V0IHRtcGRpcgpmaQoKaWYgWyAteiAiJEdOVVNURVBfSE9TVF9DUFUiIF07 IHRoZW4KICBHTlVTVEVQX0hPU1RfQ1BVPWAkR05VU1RFUF9NQUtFRklMRVMvY3B1LnNoICRH TlVTVEVQX0hPU1RgCiAgR05VU1RFUF9IT1NUX0NQVT1gJEdOVVNURVBfTUFLRUZJTEVTL2Ns ZWFuX2NwdS5zaCAkR05VU1RFUF9IT1NUX0NQVWAKZmkKCmlmIFsgLXogIiRHTlVTVEVQX0hP U1RfVkVORE9SIiBdOyB0aGVuCiAgR05VU1RFUF9IT1NUX1ZFTkRPUj1gJEdOVVNURVBfTUFL RUZJTEVTL3ZlbmRvci5zaCAkR05VU1RFUF9IT1NUYAogIEdOVVNURVBfSE9TVF9WRU5ET1I9 YCRHTlVTVEVQX01BS0VGSUxFUy9jbGVhbl92ZW5kb3Iuc2ggJEdOVVNURVBfSE9TVF9WRU5E T1JgCmZpCgppZiBbIC16ICIkR05VU1RFUF9IT1NUX09TIiBdOyB0aGVuIAogIEdOVVNURVBf SE9TVF9PUz1gJEdOVVNURVBfTUFLRUZJTEVTL29zLnNoICRHTlVTVEVQX0hPU1RgCiAgR05V U1RFUF9IT1NUX09TPWAkR05VU1RFUF9NQUtFRklMRVMvY2xlYW5fb3Muc2ggJEdOVVNURVBf SE9TVF9PU2AKZmkKCmlmIFsgISAiJEdOVVNURVBfTUFLRV9TVFJJQ1RfVjJfTU9ERSIgPSAi eWVzIiBdOyB0aGVuCiAgIyBUaGVzZSB2YXJpYWJsZXMgYXJlIGRlcHJlY2F0ZWQgZm9yIHVz YWdlIGluIHNoZWxsIHNjcmlwdHM7IHlvdQogICMgbmVlZCB0byB1c2UgZ251c3RlcC1jb25m aWcgdG8gZ2V0IHRoZW0gaW4gYSBzaGVsbCBzY3JpcHQuCiAgZXhwb3J0IEdOVVNURVBfSE9T VCBHTlVTVEVQX0hPU1RfQ1BVIEdOVVNURVBfSE9TVF9WRU5ET1IgR05VU1RFUF9IT1NUX09T CgogICMgRXZlbiBpbiBzdHJpY3QgZ251c3RlcC1tYWtlIHYyIG1vZGUsIHdlIGV4cG9ydCB0 aGVtIGF0IHRoZSBlbmQKICAjIGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHRvIGV4cG9ydCBh bGwgdmFyaWFibGVzLgpmaQoKIyBOb3cgbG9hZCBpbiBhbGwgdGhlIHJlbWFpbmluZyBwYXRo cwouICRHTlVTVEVQX01BS0VGSUxFUy9maWxlc3lzdGVtLnNoCgojIE5vIGxvbmdlciBuZWVk ZWQKdW5zZXQgR05VU1RFUF9IT01FCgojIERldGVybWluZSBpZiB0aGUgcGF0aHMgbG9vayBs aWtlIFdpbmRvd3MgcGF0aHMgdGhhdCBuZWVkIGZpeGluZwpmaXh1cF9wYXRocz1ubwojIEhl cmUgd2Ugd2FudCB0byB1c2UgYC4uLmAgYnV0IHRoZSBvbmx5IHBvcnRhYmxlIHdheSB0byB1 c2UgaXQgd2hlbgojIHRoZXJlIGFyZSAiLi4uIiBpbnNpZGUgdGhlIGV4cHJlc3Npb24gKGll LCBpdCdzIGFjdHVhbGx5CiMgYC4uLiIuLi4iLi4uYCkgc2VlbXMgdG8gYmUgdG8gdXNlIGl0 IGluIHZhcmlhYmxlIGFzc2lnbm1lbnRzLiAgU28gd2UKIyB1c2UgYSB0ZW1wb3JhcnkgdmFy aWFibGUgYW5kIGFzc2lnbiB0aGUgcmVzdWx0IG9mIGAuLi5gIHRvIGl0CnBhdGhfY2hlY2s9 YGVjaG8gIiRHTlVTVEVQX01BS0VGSUxFUyIgfCBzZWQgJ3N8XlthLXpBLVpdOi8uKiR8fCdg CmlmIFsgLXogIiRwYXRoX2NoZWNrIiBdOyB0aGVuCiAgZml4dXBfcGF0aHM9eWVzCmZpCnVu c2V0IHBhdGhfY2hlY2sKCmlmIFsgIiRHTlVTVEVQX01BS0VfU1RSSUNUX1YyX01PREUiID0g InllcyIgXTsgdGhlbgogIHVuc2V0IEdOVVNURVBfUEFUSExJU1QKZWxzZQogICMgR05VU1RF UF9QQVRITElTVCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuCiAgIwogICMg R05VU1RFUF9QQVRITElTVCBpcyBsaWtlIGFuIGFic3RyYWN0IHBhdGgtbGlrZSBzaGVsbCB2 YXJpYWJsZSwgd2hpY2gKICAjIGNhbiBiZSB1c2VkIHRvIHNlYXJjaCB0aGUgZ251c3RlcCBk aXJlY3Rvcmllcy4KICAjCiAgaWYgWyAteiAiJEdOVVNURVBfUEFUSExJU1QiIF07IHRoZW4K CiAgIEdOVVNURVBfUEFUSExJU1Q9YCRHTlVTVEVQX01BS0VGSUxFUy9wcmludF91bmlxdWVf cGF0aGxpc3Quc2ggIiRHTlVTVEVQX1VTRVJfUk9PVCIgIiRHTlVTVEVQX0xPQ0FMX1JPT1Qi ICIkR05VU1RFUF9ORVRXT1JLX1JPT1QiICIkR05VU1RFUF9TWVNURU1fUk9PVCIgJGZpeHVw X3BhdGhzYAogICBleHBvcnQgR05VU1RFUF9QQVRITElTVAogIGZpCmZpCgojCiMgQWRkIHBh dGggdG8gVG9vbHMgdG8gUEFUSAojCiMgTkI6IGZ1bmN0aW9uYWxseSwgcHJpbnRfdW5pcXVl X3BhdGhsaXN0LnNoIGlzIG1vc3RseSB1c2VkIHRvIGRvIHRoZQojIGZpeHVwX3BhdGhzIHRo aW5nLCBzaW5jZSBkdXBsaWNhdGVkIHBhdGhzIHdpbGwgYXV0b21hdGljYWxseSBiZQojIGNo ZWNrZWQgYmVsb3cgd2hlbiB3ZSBhZGQgdGhlbSB0byB0aGUgUEFUSC4gIE9uIHRoZSBvdGhl ciBoYW5kLAojIHJlbW92aW5nIGR1cGxpY2F0ZXMgbGF0ZXIgY2FuIGJlIGV4cGVuc2l2ZSBz aW5jZSB3ZSBkbyBhIGVjaG8rZ3JlcAojIGZvciBlYWNoIGR1cGxpY2F0ZS4gIFdoZW4gdGhl cmUgYXJlIG1hbnkgZHVwbGljYXRlcyBpdCdzIGZhc3RlciB0bwojIHVzZSBwcmludF91bmlx dWVfcGF0aGxpc3Quc2ggZmlyc3QgdG8gcmVtb3ZlIHRoZW0gYW5kIHNraXAgdGhlCiMgZWNo b3MrZ3JlcHMgbGF0ZXIuCkdOVVNURVBfVE9PTFNfUEFUSExJU1Q9YCRHTlVTVEVQX01BS0VG SUxFUy9wcmludF91bmlxdWVfcGF0aGxpc3Quc2ggIiRHTlVTVEVQX1VTRVJfVE9PTFMiICIk R05VU1RFUF9MT0NBTF9UT09MUyIgIiRHTlVTVEVQX05FVFdPUktfVE9PTFMiICIkR05VU1RF UF9TWVNURU1fVE9PTFMiICRmaXh1cF9wYXRoc2AKCiMgTm93LCB3ZSBjaGVjayB0aGUgcGF0 aHMgaW4gR05VU1RFUF8qX0FETUlOX1RPT0xTLiAgVGhlc2UgcGF0aHMKIyBzaG91bGQgb25s eSBiZSB1c2VkIGJ5IEFkbWluaXN0cmF0b3JzIC0tIG5vcm1hbCB1c2VycyBkb24ndCBoYXZl CiMgZW5vdWdoIHBvd2VycyB0byB1c2UgdGhvc2UgdG9vbHMgdG8gZG8gdXNlZnVsIHRoaW5n cy4gIE91ciB0ZXN0IGZvcgojIGJlaW5nIGFuICdBZG1pbmlzdHJhdG9yJyBpcyB0aGF0IGFu eW9uZSB3aG8gY2FuIHdyaXRlIHRvIGFuIEFkbWluCiMgZGlyZWN0b3J5IGNhbiBiZSBjb25z aWRlcmVkIHBvd2VyZnVsIGVub3VnaCB0byB1c2UgdGhvc2UgdG9vbHMuCgojIEZJWE1FOiBV bmZvcnR1bmF0ZWx5LCB0aGlzIGRvZXNuJ3Qgd29yayBpZiB0aGUgQWRtaW4gZGlyZWN0b3J5 CiMgaXMgbW91bnRlZCByZWFkLW9ubHksIHNvIGEgYmV0dGVyIHRlc3QgaXMgcmVxdWlyZWQh CgojIFNvIHdlIGV4YW1pbmUgR05VU1RFUF8qX0FETUlOX1RPT0xTOyBpZiB3ZSBmaW5kIGFu eSBwYXRoIGluIHRoYXQKIyBsaXN0IHRoYXQgZXhpc3RzIGFuZCB0aGF0IHdlIGNhbiB3cml0 ZSB0bywgd2UgYWRkIGl0IHRvIG91ciBQQVRILgpmb3IgZGlyIGluICIkR05VU1RFUF9TWVNU RU1fQURNSU5fVE9PTFMiICIkR05VU1RFUF9ORVRXT1JLX0FETUlOX1RPT0xTIiAiJEdOVVNU RVBfTE9DQUxfQURNSU5fVE9PTFMiICIkR05VU1RFUF9VU0VSX0FETUlOX1RPT0xTIjsgZG8K ICBpZiBbIC1kICIkZGlyIiAgLWEgIC13ICIkZGlyIiBdOyB0aGVuCiAgICAjIE9ubHkgYWRk IHRoZSBuZXcgZGlyIGlmIGl0J3Mgbm90IGFscmVhZHkgaW4gR05VU1RFUF9UT09MU19QQVRI TElTVAogICAgaWYgKGVjaG8gIjoke0dOVVNURVBfVE9PTFNfUEFUSExJU1R9OiIgXAogICAg ICB8Z3JlcCAtdiAiOiR7ZGlyfToiID4vZGV2L251bGwpOyB0aGVuCiAgICAgIEdOVVNURVBf VE9PTFNfUEFUSExJU1Q9IiRkaXI6JEdOVVNURVBfVE9PTFNfUEFUSExJU1QiCiAgICBmaQog IGZpCmRvbmUKCiMKIyBBbmQgbm93LCB3ZSBwdXQgdGhlIHJlc3VsdHMgaW50byBQQVRICiMK b2xkX0lGUz0iJElGUyIKSUZTPToKZm9yIGRpciBpbiAkR05VU1RFUF9UT09MU19QQVRITElT VDsgZG8KCiAgIyBQcmVwYXJlIHRoZSBwYXRoX2ZyYWdtZW50CiAgaWYgWyAiJEdOVVNURVBf SVNfRkxBVFRFTkVEIiA9ICJubyIgXTsgdGhlbgogICAgcGF0aF9mcmFnbWVudD0iJGRpcjok ZGlyLyR7R05VU1RFUF9IT1NUX0NQVX0vJHtHTlVTVEVQX0hPU1RfT1N9LyR7TElCUkFSWV9D T01CT306JGRpci8ke0dOVVNURVBfSE9TVF9DUFV9LyR7R05VU1RFUF9IT1NUX09TfSIKICBl bHNlCiAgICBwYXRoX2ZyYWdtZW50PSIkZGlyIgogIGZpCgogICMgQWRkIGl0IHRvIFBBVEgs IGJ1dCBvbmx5IGlmIG5vdCBhbHJlYWR5IHRoZXJlIChlZywgdHlwaWNhbGx5IC91c3IvYmlu IGlzIGFscmVhZHkgdGhlcmUpCiAgaWYgWyAteiAiJFBBVEgiIF07IHRoZW4KICAgIFBBVEg9 IiRwYXRoX2ZyYWdtZW50IgogIGVsc2UKICAgIGlmICggZWNobyAiOiR7UEFUSH06IlwKICAg ICAgfGdyZXAgLXYgIjoke3BhdGhfZnJhZ21lbnR9OiIgPi9kZXYvbnVsbCApOyB0aGVuCiAg ICAgIFBBVEg9IiR7cGF0aF9mcmFnbWVudH06JHtQQVRIfSIKICAgIGZpCiAgZmkKCmRvbmUK SUZTPSIkb2xkX0lGUyIKdW5zZXQgb2xkX0lGUwp1bnNldCBkaXIKdW5zZXQgcGF0aF9mcmFn bWVudAp1bnNldCBHTlVTVEVQX1RPT0xTX1BBVEhMSVNUCmV4cG9ydCBQQVRICgojIERldGVy bWluZSB0aGUgbGlicmFyeSBwYXRocwpHTlVTVEVQX0xJQlJBUklFU19QQVRITElTVD1gJEdO VVNURVBfTUFLRUZJTEVTL3ByaW50X3VuaXF1ZV9wYXRobGlzdC5zaCAiJEdOVVNURVBfVVNF Ul9MSUJSQVJJRVMiICIkR05VU1RFUF9MT0NBTF9MSUJSQVJJRVMiICIkR05VU1RFUF9ORVRX T1JLX0xJQlJBUklFUyIgIiRHTlVTVEVQX1NZU1RFTV9MSUJSQVJJRVMiICRmaXh1cF9wYXRo c2AKCm9sZF9JRlM9IiRJRlMiCklGUz06CiAgZm9yIGRpciBpbiAkR05VU1RFUF9MSUJSQVJJ RVNfUEFUSExJU1Q7IGRvCgogICAgIyBwcmVwYXJlIHRoZSBwYXRoX2ZyYWdtZW50IGZvciBs aWJyYXJpZXMgYW5kIHRoaXMgZGlyCiAgICBpZiBbICIkR05VU1RFUF9JU19GTEFUVEVORUQi ID0gInllcyIgXTsgdGhlbgogICAgICBwYXRoX2ZyYWdtZW50PSIkZGlyIgogICAgZWxzZQog ICAgICBwYXRoX2ZyYWdtZW50PSIkZGlyLyRHTlVTVEVQX0hPU1RfQ1BVLyRHTlVTVEVQX0hP U1RfT1MvJExJQlJBUllfQ09NQk86JGRpci8kR05VU1RFUF9IT1NUX0NQVS8kR05VU1RFUF9I T1NUX09TIgogICAgZmkKCiAgICAjIEFwcGVuZCB0aGUgcGF0aF9mcmFnbWVudCB0byBsaWJf cGF0aHMgLi4uIGluIGEgZGlmZmVyZW50IHdheSwKICAgICMgZGVwZW5kaW5nIG9uIHRoZSBt YWNoaW5lIHdlJ3JlIG9uLgogICAgY2FzZSAiJEdOVVNURVBfSE9TVF9PUyIgaW4KCiAgICAg ICpuZXh0c3RlcDQqIHwgKmRhcndpbiopCiAgICAgICAgaWYgWyAteiAiJERZTERfTElCUkFS WV9QQVRIIiBdOyB0aGVuCiAgICAgICAgICBEWUxEX0xJQlJBUllfUEFUSD0iJHBhdGhfZnJh Z21lbnQiCiAgICAgICAgZWxzZQogICAgICAgICAgaWYgKCBlY2hvICI6JHtEWUxEX0xJQlJB UllfUEFUSH06IlwKCSAgICB8Z3JlcCAtdiAiOiR7cGF0aF9mcmFnbWVudH06IiA+L2Rldi9u dWxsICk7IHRoZW4KCSAgICBEWUxEX0xJQlJBUllfUEFUSD0iJHBhdGhfZnJhZ21lbnQ6JERZ TERfTElCUkFSWV9QQVRIIgogICAgICAgICAgZmkKICAgICAgICBmaQogICAgICAgIGV4cG9y dCBEWUxEX0xJQlJBUllfUEFUSDs7CgogICAgICAqaHB1eCopCiAgICAgICAgaWYgWyAteiAi JFNITElCX1BBVEgiIF07IHRoZW4KICAgICAgICAgIFNITElCX1BBVEg9IiRwYXRoX2ZyYWdt ZW50IgogICAgICAgIGVsc2UKICAgICAgICAgIGlmICggZWNobyAiOiR7U0hMSUJfUEFUSH06 IlwKCSAgICB8Z3JlcCAtdiAiOiR7cGF0aF9mcmFnbWVudH06IiA+L2Rldi9udWxsICk7IHRo ZW4KCSAgICBTSExJQl9QQVRIPSIkcGF0aF9mcmFnbWVudDokU0hMSUJfUEFUSCIKICAgICAg ICAgIGZpCiAgICAgICAgZmkKICAgICAgICBleHBvcnQgU0hMSUJfUEFUSDsKCiAgICAgICAg aWYgWyAteiAiJExEX0xJQlJBUllfUEFUSCIgXTsgdGhlbgogICAgICAgICAgTERfTElCUkFS WV9QQVRIPSIkcGF0aF9mcmFnbWVudCIKICAgICAgICBlbHNlCiAgICAgICAgICBpZiAoIGVj aG8gIjoke0xEX0xJQlJBUllfUEFUSH06IlwKCSAgICB8Z3JlcCAtdiAiOiR7cGF0aF9mcmFn bWVudH06IiA+L2Rldi9udWxsICk7IHRoZW4KCSAgICBMRF9MSUJSQVJZX1BBVEg9IiRwYXRo X2ZyYWdtZW50OiRMRF9MSUJSQVJZX1BBVEgiCiAgICAgICAgICBmaQogICAgICAgIGZpCiAg ICAgICAgZXhwb3J0IExEX0xJQlJBUllfUEFUSDs7CgogICAgICAqKQogICAgICAgIGlmIFsg LXogIiRMRF9MSUJSQVJZX1BBVEgiIF07IHRoZW4KICAgICAgICAgIExEX0xJQlJBUllfUEFU SD0iJHBhdGhfZnJhZ21lbnQiCiAgICAgICAgZWxzZQogICAgICAgICAgaWYgKCBlY2hvICI6 JHtMRF9MSUJSQVJZX1BBVEh9OiJcCgkgICAgfGdyZXAgLXYgIjoke3BhdGhfZnJhZ21lbnR9 OiIgPi9kZXYvbnVsbCApOyB0aGVuCgkgICAgTERfTElCUkFSWV9QQVRIPSIkcGF0aF9mcmFn bWVudDokTERfTElCUkFSWV9QQVRIIgogICAgICAgICAgZmkKICAgICAgICBmaQogICAgICAg IGV4cG9ydCBMRF9MSUJSQVJZX1BBVEg7OwogICAgZXNhYwogIGRvbmUKSUZTPSIkb2xkX0lG UyIKdW5zZXQgb2xkX0lGUwp1bnNldCBkaXIKdW5zZXQgcGF0aF9mcmFnbWVudAoKdW5zZXQg R05VU1RFUF9MSUJSQVJJRVNfUEFUSExJU1QKCgojIERldGVybWluZSB0aGUgZnJhbWV3b3Jr IHBhdGhzIC0gYnV0IG9ubHkgb24gRGFyd2luIHNpbmNlIGl0J3MgdGhlCiMgb25seSBwbGF0 Zm9ybSB3aGVyZSB0aGlzIGlzIG9mIGFueSB1c2UuCmNhc2UgIiRHTlVTVEVQX0hPU1RfT1Mi IGluCgogICpkYXJ3aW4qKQogICAgR05VU1RFUF9GUkFNRVdPUktTX1BBVEhMSVNUPWAkR05V U1RFUF9NQUtFRklMRVMvcHJpbnRfdW5pcXVlX3BhdGhsaXN0LnNoICIkR05VU1RFUF9VU0VS X0xJQlJBUlkvRnJhbWV3b3JrcyIgIiRHTlVTVEVQX0xPQ0FMX0xJQlJBUlkvRnJhbWV3b3Jr cyIgIiRHTlVTVEVQX05FVFdPUktfTElCUkFSWS9GcmFtZXdvcmtzIiAiJEdOVVNURVBfU1lT VEVNX0xJQlJBUlkvRnJhbWV3b3JrcyIgJGZpeHVwX3BhdGhzYAoKICAgIG9sZF9JRlM9IiRJ RlMiCiAgICBJRlM9OgogICAgZm9yIGRpciBpbiAkR05VU1RFUF9GUkFNRVdPUktTX1BBVEhM SVNUOyBkbwoKICAgICAgIyBwcmVwYXJlIHRoZSBwYXRoX2ZyYWdtZW50IGZvciBmcmFtZXdv cmtzCiAgICAgIHBhdGhfZnJhZ21lbnQ9IiRkaXIiCgojIFRoZSBjb2RlIGJlbG93IGhhcyBi ZWVuIHRlbXBvcmFyaWx5IHJlbW92ZWQsIGJlY2F1c2UuLi4KIyBGcmFtZXdvcmtzIGluIEdO VXN0ZXAtbWFrZSBhcmUgc3VwcG9ydGVkIGJ5IGNyZWF0aW5nIGEgbGluayBsaWtlCiMgCiMg ICBMaWJyYXJpZXMvbGliTXlGcmFtZXdvcmsuZHlsaWIgLT4KIyAgICAgIEZyYW1ld29ya3Mv TXlGcmFtZXdvcmsuZnJhbWV3b3JrL1ZlcnNpb25zL0N1cnJlbnQvbGliTXlGcmFtZXdvcmsu ZHlsaWIsCiMKIyB0byBtaXRpZ2F0ZSB0aGUgZmFjdCB0aGF0IEZTRiBHQ0MgZG9lcyBub3Qg c3VwcG9ydCBhIC1mcmFtZXdvcmsgZmxhZy4KIwojIE9uIERhcndpbiwgaG93ZXZlciwgd2Ug cGFydGlhbGx5IGVtdWxhdGUgLWZyYW1ld29yayBieSBzZXR0aW5nIHRoZQojICJpbnN0YWxs X25hbWUiIHRvIHRoZSBmcmFtZXdvcmsgbmFtZSBkdXJpbmcgbGlua2luZy4gVGhlIGR5bmFt aWMKIyBsaW5rZXIgKGR5bGQpIGlzIHNtYXJ0IGVub3VnaCB0byBmaW5kIHRoZSBmcmFtZXdv cmsgdW5kZXIgdGhpcyBuYW1lLAojIGJ1dCBvbmx5IGlmIERZTERfRlJBTUVXT1JLX1BBVEgg aXMgc2V0ICh1bmxlc3Mgd2Ugc2V0IHRoZQojICJpbnN0YWxsX25hbWUiIHRvIGFuIGFic29s dXRlIHBhdGgsIHdoaWNoIHdlIGRvbid0KS4gV2UnZCByZWFsbHkgbGlrZQojIHRvIGZ1bGx5 IHN1cHBvcnQgLWZyYW1ld29yaywgdGhvdWdoLgojCiMgVXNlIG90b29sIC1MIE15QXBwbGlj YXRpb24uYXBwL015QXBwbGljYXRpb24sIGZvciBpbnN0YW5jZSwgdG8gc2VlCiMgaG93IHRo ZSBzaGFyZWQgbGlicmFyaWVzL2ZyYW1ld29ya3MgYXJlIGxpbmtlZC4KIwojICAgIGlmIFsg IiRMSUJSQVJZX0NPTUJPIiA9ICJhcHBsZS1hcHBsZS1hcHBsZSIgLW8gXAojICAgICAgICAg IiRMSUJSQVJZX0NPTUJPIiA9ICJhcHBsZSIgXTsgdGhlbgogICAgCiAgICAgIGlmIFsgLXog IiREWUxEX0ZSQU1FV09SS19QQVRIIiBdOyB0aGVuCiAgICAgICAgRFlMRF9GUkFNRVdPUktf UEFUSD0iJHBhdGhfZnJhZ21lbnQiCiAgICAgIGVsc2UKICAgICAgICBpZiAoIGVjaG8gIjok e0RZTERfRlJBTUVXT1JLX1BBVEh9OiJcCgkgIHxncmVwIC12ICI6JHtwYXRoX2ZyYWdtZW50 fToiID4vZGV2L251bGwgKTsgdGhlbgogICAgICAgICAgRFlMRF9GUkFNRVdPUktfUEFUSD0i JHBhdGhfZnJhZ21lbnQ6JERZTERfRlJBTUVXT1JLX1BBVEgiCiAgICAgICAgZmkKICAgICAg ZmkKICAgICAgZXhwb3J0IERZTERfRlJBTUVXT1JLX1BBVEgKICAgIGRvbmUKCiAgICBJRlM9 IiRvbGRfSUZTIgogICAgdW5zZXQgb2xkX0lGUwogICAgdW5zZXQgZGlyCiAgICB1bnNldCBw YXRoX2ZyYWdtZW50CgogICAgdW5zZXQgR05VU1RFUF9GUkFNRVdPUktTX1BBVEhMSVNUCiAg ICA7OwoKICAqKQogICAgOzsKZXNhYwoKIwojIFNldHVwIEphdmEgQ0xBU1NQQVRIIGFuZCBH dWlsZSBHVUlMRV9MT0FEX1BBVEgKIwpHTlVTVEVQX0xJQlJBUllfUEFUSExJU1Q9YCRHTlVT VEVQX01BS0VGSUxFUy9wcmludF91bmlxdWVfcGF0aGxpc3Quc2ggIiRHTlVTVEVQX1VTRVJf TElCUkFSWSIgIiRHTlVTVEVQX0xPQ0FMX0xJQlJBUlkiICIkR05VU1RFUF9ORVRXT1JLX0xJ QlJBUlkiICIkR05VU1RFUF9TWVNURU1fTElCUkFSWSIgJGZpeHVwX3BhdGhzYAoKb2xkX0lG Uz0iJElGUyIKSUZTPToKZm9yIGRpciBpbiAkR05VU1RFUF9MSUJSQVJZX1BBVEhMSVNUOyBk bwoKICBwYXRoX2ZyYWdtZW50PSIkZGlyL0xpYnJhcmllcy9KYXZhIgogIGlmIFsgLXogIiRD TEFTU1BBVEgiIF07IHRoZW4KICAgIENMQVNTUEFUSD0iJHBhdGhfZnJhZ21lbnQiCiAgZWxz ZQogICAgaWYgKCBlY2hvICI6JHtDTEFTU1BBVEh9OiJcCiAgICAgIHxncmVwIC12ICI6JHtw YXRoX2ZyYWdtZW50fToiID4vZGV2L251bGwgKTsgdGhlbgogICAgICBDTEFTU1BBVEg9IiRw YXRoX2ZyYWdtZW50OiRDTEFTU1BBVEgiCiAgICBmaQogIGZpCgogIHBhdGhfZnJhZ21lbnQ9 IiRkaXIvTGlicmFyaWVzL0d1aWxlIgogIGlmIFsgLXogIiRHVUlMRV9MT0FEX1BBVEgiIF07 IHRoZW4KICAgIEdVSUxFX0xPQURfUEFUSD0iJHBhdGhfZnJhZ21lbnQiCiAgZWxzZQogICAg aWYgKCBlY2hvICI6JHtHVUlMRV9MT0FEX1BBVEh9OiJcCiAgICAgIHxncmVwIC12ICI6JHtw YXRoX2ZyYWdtZW50fToiID4vZGV2L251bGwgKTsgdGhlbgogICAgICBHVUlMRV9MT0FEX1BB VEg9IiRwYXRoX2ZyYWdtZW50OiRHVUlMRV9MT0FEX1BBVEgiCiAgICBmaQogIGZpCgpkb25l CklGUz0iJG9sZF9JRlMiCnVuc2V0IG9sZF9JRlMKdW5zZXQgZGlyCnVuc2V0IHBhdGhfZnJh Z21lbnQKdW5zZXQgR05VU1RFUF9MSUJSQVJZX1BBVEhMSVNUCmV4cG9ydCBDTEFTU1BBVEgK ZXhwb3J0IEdVSUxFX0xPQURfUEFUSAoKIwojIE1ha2Ugc3VyZSBpbmZvIGZpbGVzLCB0aGF0 IHdlIGluc3RhbGwgYnkgZGVmYXVsdCBpbnRvCiMgeHh4L0xpYnJhcnkvRG9jdW1lbnRhdGlv bi9pbmZvLCBhcmUgZm91bmQgYnkgdGhlIGluZm8gYnJvd3NpbmcKIyBwcm9ncmFtcy4gIFRv IGdldCB0aGlzIGVmZmVjdCwgd2UgYWRkIHRob3NlIHBhdGhzIHRvIElORk9QQVRILgojCkdO VVNURVBfSU5GT19QQVRITElTVD1gJEdOVVNURVBfTUFLRUZJTEVTL3ByaW50X3VuaXF1ZV9w YXRobGlzdC5zaCAiJEdOVVNURVBfVVNFUl9ET0NfSU5GTyIgIiRHTlVTVEVQX0xPQ0FMX0RP Q19JTkZPIiAiJEdOVVNURVBfTkVUV09SS19ET0NfSU5GTyIgIiRHTlVTVEVQX1NZU1RFTV9E T0NfSU5GTyIgJGZpeHVwX3BhdGhzYApvbGRfSUZTPSIkSUZTIgpJRlM9Ogpmb3IgZGlyIGlu ICRHTlVTVEVQX0lORk9fUEFUSExJU1Q7IGRvCgogIGlmIFsgLXogIiRJTkZPUEFUSCIgXTsg dGhlbgogICAgIyBUaGUgJzonIGF0IHRoZSBlbmQgbWVhbnMgdG8gdXNlIHRoZSBidWlsdC1p biBwYXRocyBhZnRlciBzZWFyY2hpbmcKICAgICMgdGhlIElORk9QQVRIIHdlIHByb3ZpZGUu CiAgICBJTkZPUEFUSD0iJHtkaXJ9OiIKICBlbHNlCiAgICBpZiAoIGVjaG8gIjoke0lORk9Q QVRIfToiXAogICAgICB8Z3JlcCAtdiAiOiR7ZGlyfToiID4vZGV2L251bGwgKTsgdGhlbgog ICAgICBJTkZPUEFUSD0iJElORk9QQVRIOiR7ZGlyfToiCiAgICBmaQogIGZpCmRvbmUKSUZT PSIkb2xkX0lGUyIKdW5zZXQgb2xkX0lGUwp1bnNldCBkaXIKdW5zZXQgR05VU1RFUF9JTkZP X1BBVEhMSVNUCmV4cG9ydCBJTkZPUEFUSAoKIwojIENsZWFuIHVwIHRoZSBlbnZpcm9ubWVu dCBieSByZW1vdmluZyB0aGUgZmlsZXN5c3RlbSB2YXJpYWJsZXMuICBEbwojIGl0IHVubGVz cyB3ZSB3ZXJlIGV4cGxpY2l0bHkgcmVxdWVzdGVkIG5vdCB0byBjbGVhbiBpdCB1cCEgIE1v c3RseQojIGdudXN0ZXAtY29uZmlnIHdpbGwgcmVxdWVzdCB0aGF0IHRoZSBlbnZpcm9ubWVu dCBpcyBub3QgY2xlYW5lZCB1cCwKIyBzbyBpdCBjYW4gcHJpbnQgb3V0IGFsbCBvZiB0aGUg R05Vc3RlcCB2YXJpYWJsZXMuCiMKaWYgWyAtbiAiJEdOVVNURVBfU0hfRVhQT1JUX0FMTF9W QVJJQUJMRVMiIF07IHRoZW4KICBleHBvcnQgR05VU1RFUF9NQUtFX1NUUklDVF9WMl9NT0RF CgogIHVuc2V0IEdOVVNURVBfS0VFUF9DT05GSUdfRklMRSBHTlVTVEVQX0tFRVBfVVNFUl9D T05GSUdfRklMRQoKICBleHBvcnQgR05VU1RFUF9DT05GSUdfRklMRSBHTlVTVEVQX1VTRVJf Q09ORklHX0ZJTEUKCiAgZXhwb3J0IEdOVVNURVBfVVNFUl9ERUZBVUxUU19ESVIKCiAgIyBB bHdheXMgZXhwb3J0IHRoZXNlIHZhcmlhYmxlcyBldmVuIGlmIGluIHN0cmljdCBnbnVzdGVw LW1ha2UgdjIKICAjIG1vZGUsIHNvIHRoYXQgZm9yIGV4YW1wbGUgZ251c3RlcC1jb25maWcg Y2FuIGRldGVybWluZSB0aGVtLgogIGV4cG9ydCBHTlVTVEVQX0lTX0ZMQVRURU5FRCBMSUJS QVJZX0NPTUJPCiAgZXhwb3J0IEdOVVNURVBfSE9TVCBHTlVTVEVQX0hPU1RfQ1BVIEdOVVNU RVBfSE9TVF9WRU5ET1IgR05VU1RFUF9IT1NUX09TCgogIGV4cG9ydCBHTlVTVEVQX1NZU1RF TV9BUFBTIEdOVVNURVBfU1lTVEVNX0FETUlOX0FQUFMgR05VU1RFUF9TWVNURU1fV0VCX0FQ UFMgR05VU1RFUF9TWVNURU1fVE9PTFMgR05VU1RFUF9TWVNURU1fQURNSU5fVE9PTFMgCiAg ZXhwb3J0IEdOVVNURVBfU1lTVEVNX0xJQlJBUlkgR05VU1RFUF9TWVNURU1fSEVBREVSUyBH TlVTVEVQX1NZU1RFTV9MSUJSQVJJRVMKICBleHBvcnQgR05VU1RFUF9TWVNURU1fRE9DIEdO VVNURVBfU1lTVEVNX0RPQ19NQU4gR05VU1RFUF9TWVNURU1fRE9DX0lORk8KCiAgZXhwb3J0 IEdOVVNURVBfTkVUV09SS19BUFBTIEdOVVNURVBfTkVUV09SS19BRE1JTl9BUFBTIEdOVVNU RVBfTkVUV09SS19XRUJfQVBQUyBHTlVTVEVQX05FVFdPUktfVE9PTFMgR05VU1RFUF9ORVRX T1JLX0FETUlOX1RPT0xTIAogIGV4cG9ydCBHTlVTVEVQX05FVFdPUktfTElCUkFSWSBHTlVT VEVQX05FVFdPUktfSEVBREVSUyBHTlVTVEVQX05FVFdPUktfTElCUkFSSUVTCiAgZXhwb3J0 IEdOVVNURVBfTkVUV09SS19ET0MgR05VU1RFUF9ORVRXT1JLX0RPQ19NQU4gR05VU1RFUF9O RVRXT1JLX0RPQ19JTkZPCgogIGV4cG9ydCBHTlVTVEVQX0xPQ0FMX0FQUFMgR05VU1RFUF9M T0NBTF9BRE1JTl9BUFBTIEdOVVNURVBfTE9DQUxfV0VCX0FQUFMgR05VU1RFUF9MT0NBTF9U T09MUyBHTlVTVEVQX0xPQ0FMX0FETUlOX1RPT0xTIAogIGV4cG9ydCBHTlVTVEVQX0xPQ0FM X0xJQlJBUlkgR05VU1RFUF9MT0NBTF9IRUFERVJTIEdOVVNURVBfTE9DQUxfTElCUkFSSUVT CiAgZXhwb3J0IEdOVVNURVBfTE9DQUxfRE9DIEdOVVNURVBfTE9DQUxfRE9DX01BTiBHTlVT VEVQX0xPQ0FMX0RPQ19JTkZPCgogIGV4cG9ydCBHTlVTVEVQX1VTRVJfQVBQUyBHTlVTVEVQ X1VTRVJfQURNSU5fQVBQUyBHTlVTVEVQX1VTRVJfV0VCX0FQUFMgR05VU1RFUF9VU0VSX1RP T0xTIEdOVVNURVBfVVNFUl9BRE1JTl9UT09MUyAKICBleHBvcnQgR05VU1RFUF9VU0VSX0xJ QlJBUlkgR05VU1RFUF9VU0VSX0hFQURFUlMgR05VU1RFUF9VU0VSX0xJQlJBUklFUwogIGV4 cG9ydCBHTlVTVEVQX1VTRVJfRE9DIEdOVVNURVBfVVNFUl9ET0NfTUFOIEdOVVNURVBfVVNF Ul9ET0NfSU5GTwoKICBleHBvcnQgR05VU1RFUF9TWVNURU1fVVNFUlNfRElSIEdOVVNURVBf TE9DQUxfVVNFUlNfRElSIEdOVVNURVBfTkVUV09SS19VU0VSU19ESVIKZWxzZQogIGlmIFsg IiRHTlVTVEVQX01BS0VfU1RSSUNUX1YyX01PREUiID0gInllcyIgXTsgdGhlbgogICAgdW5z ZXQgR05VU1RFUF9JU19GTEFUVEVORUQKICAgIHVuc2V0IExJQlJBUllfQ09NQk8KICAgIHVu c2V0IEdOVVNURVBfSE9TVAogICAgdW5zZXQgR05VU1RFUF9IT1NUX0NQVQogICAgdW5zZXQg R05VU1RFUF9IT1NUX1ZFTkRPUgogICAgdW5zZXQgR05VU1RFUF9IT1NUX09TCiAgZmkKCiAg dW5zZXQgR05VU1RFUF9NQUtFX1NUUklDVF9WMl9NT0RFCgogICMgVW5zZXQgdGhlc2UgdmFy aWFibGVzIGJ1dCBvbmx5IGlmIHdlIHNldCB0aGVtIGludGVybmFsbHk7IGtlZXAKICAjIHRo ZW0gaWYgdGhleSB3ZXJlIGFscmVhZHkgaW4gdGhlIGVudmlyb25tZW50LgogIGlmIFsgLXog IiRHTlVTVEVQX0tFRVBfQ09ORklHX0ZJTEUiIF07IHRoZW4KICAgIHVuc2V0IEdOVVNURVBf Q09ORklHX0ZJTEUKICBmaQogIHVuc2V0IEdOVVNURVBfS0VFUF9DT05GSUdfRklMRSAKCiAg aWYgWyAteiAiJEdOVVNURVBfS0VFUF9VU0VSX0NPTkZJR19GSUxFIiBdOyB0aGVuCiAgICB1 bnNldCBHTlVTVEVQX1VTRVJfQ09ORklHX0ZJTEUKICBmaQogIHVuc2V0IEdOVVNURVBfS0VF UF9VU0VSX0NPTkZJR19GSUxFCgogICMgQWx3YXlzIHVuc2V0IHRoZXNlIHZhcmlhYmxlcwog IHVuc2V0IEdOVVNURVBfVVNFUl9ERUZBVUxUU19ESVIKCiAgdW5zZXQgR05VU1RFUF9TWVNU RU1fQVBQUyAKICB1bnNldCBHTlVTVEVQX1NZU1RFTV9BRE1JTl9BUFBTIAogIHVuc2V0IEdO VVNURVBfU1lTVEVNX1dFQl9BUFBTIAogIHVuc2V0IEdOVVNURVBfU1lTVEVNX1RPT0xTIAog IHVuc2V0IEdOVVNURVBfU1lTVEVNX0FETUlOX1RPT0xTIAogIHVuc2V0IEdOVVNURVBfU1lT VEVNX0xJQlJBUlkKICB1bnNldCBHTlVTVEVQX1NZU1RFTV9IRUFERVJTIAogIHVuc2V0IEdO VVNURVBfU1lTVEVNX0xJQlJBUklFUyAKICB1bnNldCBHTlVTVEVQX1NZU1RFTV9ET0MgCiAg dW5zZXQgR05VU1RFUF9TWVNURU1fRE9DX01BTgogIHVuc2V0IEdOVVNURVBfU1lTVEVNX0RP Q19JTkZPCgogIHVuc2V0IEdOVVNURVBfTkVUV09SS19BUFBTIAogIHVuc2V0IEdOVVNURVBf TkVUV09SS19BRE1JTl9BUFBTIAogIHVuc2V0IEdOVVNURVBfTkVUV09SS19XRUJfQVBQUyAK ICB1bnNldCBHTlVTVEVQX05FVFdPUktfVE9PTFMgCiAgdW5zZXQgR05VU1RFUF9ORVRXT1JL X0FETUlOX1RPT0xTIAogIHVuc2V0IEdOVVNURVBfTkVUV09SS19MSUJSQVJZCiAgdW5zZXQg R05VU1RFUF9ORVRXT1JLX0hFQURFUlMgCiAgdW5zZXQgR05VU1RFUF9ORVRXT1JLX0xJQlJB UklFUyAKICB1bnNldCBHTlVTVEVQX05FVFdPUktfRE9DIAogIHVuc2V0IEdOVVNURVBfTkVU V09SS19ET0NfTUFOCiAgdW5zZXQgR05VU1RFUF9ORVRXT1JLX0RPQ19JTkZPCgogIHVuc2V0 IEdOVVNURVBfTE9DQUxfQVBQUyAKICB1bnNldCBHTlVTVEVQX0xPQ0FMX0FETUlOX0FQUFMg CiAgdW5zZXQgR05VU1RFUF9MT0NBTF9XRUJfQVBQUyAKICB1bnNldCBHTlVTVEVQX0xPQ0FM X1RPT0xTIAogIHVuc2V0IEdOVVNURVBfTE9DQUxfQURNSU5fVE9PTFMgCiAgdW5zZXQgR05V U1RFUF9MT0NBTF9MSUJSQVJZCiAgdW5zZXQgR05VU1RFUF9MT0NBTF9IRUFERVJTIAogIHVu c2V0IEdOVVNURVBfTE9DQUxfTElCUkFSSUVTIAogIHVuc2V0IEdOVVNURVBfTE9DQUxfRE9D IAogIHVuc2V0IEdOVVNURVBfTE9DQUxfRE9DX01BTgogIHVuc2V0IEdOVVNURVBfTE9DQUxf RE9DX0lORk8KCiAgdW5zZXQgR05VU1RFUF9VU0VSX0FQUFMgCiAgdW5zZXQgR05VU1RFUF9V U0VSX0FETUlOX0FQUFMgCiAgdW5zZXQgR05VU1RFUF9VU0VSX1dFQl9BUFBTIAogIHVuc2V0 IEdOVVNURVBfVVNFUl9UT09MUyAKICB1bnNldCBHTlVTVEVQX1VTRVJfQURNSU5fVE9PTFMg CiAgdW5zZXQgR05VU1RFUF9VU0VSX0xJQlJBUlkKICB1bnNldCBHTlVTVEVQX1VTRVJfSEVB REVSUyAKICB1bnNldCBHTlVTVEVQX1VTRVJfTElCUkFSSUVTIAogIHVuc2V0IEdOVVNURVBf VVNFUl9ET0MgCiAgdW5zZXQgR05VU1RFUF9VU0VSX0RPQ19NQU4KICB1bnNldCBHTlVTVEVQ X1VTRVJfRE9DX0lORk8KCiAgdW5zZXQgR05VU1RFUF9TWVNURU1fVVNFUlNfRElSCiAgdW5z ZXQgR05VU1RFUF9MT0NBTF9VU0VSU19ESVIKICB1bnNldCBHTlVTVEVQX05FVFdPUktfVVNF UlNfRElSCmZpCgppZiBbIC1uICIkR1NfWlNIX05FRURfVE9fUkVTVE9SRV9TRVQiIF07IHRo ZW4KICB1bnNldG9wdCBzaHdvcmRzcGxpdApmaQojIEVPRgo= --=_78e301bc036bc4eaad873c96d5964859--