X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Message-ID: <48443F8B.6070104@x-ray.at> Date: Mon, 02 Jun 2008 20:44:27 +0200 From: Reini Urban User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.8.1.13) Gecko/20080313 SeaMonkey/1.1.9 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: rebase src patch (Was: rebase not compilable) References: <6910a60806020741t7ff86d8bgbb7866e62acf1c09 AT mail DOT gmail DOT com> <484411AA DOT AF8A9011 AT dessent DOT net> <484427D6 DOT 4030103 AT x-ray DOT at> In-Reply-To: <484427D6.4030103@x-ray.at> Content-Type: multipart/mixed; boundary="------------000105010502070106010907" X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --------------000105010502070106010907 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Reini Urban schrieb: > Brian Dessent schrieb: >> Reini Urban wrote: >>> I thought I'll improve the rebase logic by adding some fixed base >>> addresses and space to certain apps >>> (bash, perl, python, rest) to be able to properly rebase the culprit >>> packages in advance. >>> >>> I wanted to start with >>> /usr/bin/bash.exe >>> /usr/bin/cygintl-8.dll >>> /usr/bin/cygiconv-2.dll >>> /usr/bin/cygreadline6.dll >>> /usr/bin/cygncurses-8.dll >>> starting at -b 0x70000000 -o 0x10000 downwards, >>> then perl downwards with some reserve, >>> then python downwards with some reserve, >>> then fix rebaseall to work with bash and use the new base below python, >>> so that for a rebaseall only the cygwin services have to be stopped. >> >> Is this really a good direction to move in? The long term plan, as I >> understood it, was to simply build everything with >> --enable-auto-image-base and avoid forever the problem of having to >> manually rebase ever. Rebaseall is just a crutch to get us there while >> we still have legacy packages built without having image bases assigned >> by the hash; it should not be considered a permanent solution. > > I use --enable-auto-image-base for all standard dll's within perl, but > nevertheless I got base conflicts. > auto-image-base just uses a quasi-random hash based on the file contents > (or header), which is obviously too fragile for my sum of dll's. > For the few packages like bash, perl and python which fail into this > trap, I would rather suggest using some reserved base address space. > I started for perl with 0x52000000 upwards but this was also not enough. > > So I tried it with a custom rebase and rebaseall first. > rebaseall being bash enabled again, which would be a big winner. > >>> sections.cc: In member function `bool Relocations::relocate(int)': >>> sections.cc:366: error: ISO C++ forbids cast to non-reference type >>> used as lvalue >>> make: *** [sections.o] Error 1 >> >> The cast-as-lvalue was a nonstandard gcc extension that was disabled in >> C++ mode (and deprecated for C mode) starting with gcc 3.4.x. Likely >> this package is so old that it was last built with gcc 3.3.x which still >> allowed the construct. So, one workaround is to temporarily install the >> [prev] version of gcc-g++ and gcc-core which are the 3.3 versions. > > I know. > I wanted to hear some magic g++ --allow-non-ansi switch (-std=c89 or > such for C++) or some INT2PTR macro. > > $ g++ --help|grep ISO > is empty Got it: - for (; (char *)&relocp->SizeOfBlock < (char *)relocs + size && relocp->SizeOfBlock != 0; ((char *)relocp) += relocp->SizeOfBlock) + for (; (char *)&relocp->SizeOfBlock < *(char**)relocs + size && relocp->SizeOfBlock != 0; (*(char**)relocp) += relocp->SizeOfBlock) Attached is my current status for an updated rebase package, cygwin compiled. And cygwin-1.7 support. The code for the ordering on a full rebaseall is still not in. I suggest to use a manual rebase with reserved bases for the 4 bash deps, the perl dll's and the python dll's. Who else forks a lot? x11 maybe. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ --------------000105010502070106010907 Content-Type: text/x-patch; name="rebase-2.5.0-1.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="rebase-2.5.0-1.patch" ZGlmZm9yaWcgcmViYXNlLTIuNC4zLTEKCmRpZmYgLXUgIHJlYmFzZS0yLjQu My0xL0NoYW5nZXMub3JpZwotLS0gcmViYXNlLTIuNC4zLTEvQ2hhbmdlcy5v cmlnCTIwMDUtMDctMjggMTM6Mjk6NDkuMDAwMDAwMDAwICswMDAwCisrKyBy ZWJhc2UtMi40LjMtMS9DaGFuZ2VzCTIwMDgtMDYtMDIgMTg6MzE6NDkuODc1 MDAwMDAwICswMDAwCkBAIC0xLDUgKzEsMTggQEAKICRJZDogQ2hhbmdlcyx2 IDEuMyAyMDA1LzA3LzI4IDEzOjI5OjQ0IGp0IEV4cCAkCiAKKzIuNToKKz09 PQorcmViYXNlOgorCisgICAgKiBGaXggY29tcGlsYXRpb24gZml4ZXMgZm9y IGdjYy0zLjQKKyAgICAqIFN1cHBvcnQgY3lnd2luIDEuNworICAgICogQWRk ZWQgc3dpdGNoZXMgLWwgKExJU1QpIGFuZCAtYyAoQ0hFQ0spCisKK3JlYmFz ZWFsbC1iYXNoOgorCisgICAgKiBBZGRlZC4gcmViYXNlIGFsbCBidXQgYmFz aCBhbmQgaXRzIGRlcGVuZGVuY2llcywgdGh1cyBhbGxvd2luZyAKKyAgICAg IHJlYmFzaW5nIGZyb20gYmFzaC4KKwogMi40OgogPT09CiBUaGUgZm9sbG93 aW5nIGFyZSB0aGUgY2hhbmdlcyB0byByZWJhc2VhbGw6CmRpZmYgLXUgIHJl YmFzZS0yLjQuMy0xL01ha2VmaWxlLm9yaWcKLS0tIHJlYmFzZS0yLjQuMy0x L01ha2VmaWxlLm9yaWcJMjAwNi0wNy0wOSAxNDozNjoxMy4wMDAwMDAwMDAg KzAwMDAKKysrIHJlYmFzZS0yLjQuMy0xL01ha2VmaWxlCTIwMDgtMDYtMDIg MTg6MzU6MjUuMTcxODc1MDAwICswMDAwCkBAIC0xLDEzICsxLDEzIEBACiAj ICRJZDogTWFrZWZpbGUsdiAxLjIxIDIwMDYvMDcvMDkgMTQ6MzY6MDQganQg RXhwICQKIAotVmVyc2lvbiA9IDIuNC4zCitWZXJzaW9uID0gMi41LjAKIExp YlZlcnNpb24gPSAkKHNoZWxsIGZncmVwIFJFTEVBU0U9IGltYWdlaGVscGVy L01ha2VmaWxlLmlufGVncmVwIC1vICdbMC05Ll0rJykKIAogRmlsZXMgPSBy ZWJhc2UuYwogT2JqZWN0cyA9ICQoRmlsZXM6LmM9Lm8pCiBMaWJzID0gLUwg aW1hZ2VoZWxwZXIgLWxpbWFnZWhlbHBlcgogRXhjbHVkZSA9IC0tZXhjbHVk ZT0nKi5bYW9dJyAtLWV4Y2x1ZGU9JyouZXhlJyAtLWV4Y2x1ZGU9Jyoub3V0 JyBcCi0gIAktLWV4Y2x1ZGU9Jy5bQS1aYS16XCNdKicgLS1leGNsdWRlPScq LmJ6MicgLS1leGNsdWRlPUNWUyAtLWV4Y2x1ZGU9UkNTIFwKKwktLWV4Y2x1 ZGU9Jy5bQS1aYS16XCNdKicgLS1leGNsdWRlPScqLmJ6MicgLS1leGNsdWRl PUNWUyAtLWV4Y2x1ZGU9UkNTIFwKIAktLWV4Y2x1ZGU9cGtncyAtLWV4Y2x1 ZGU9c2F2ZSAtLWV4Y2x1ZGU9dGVzdAogCiBERVNURElSID0KQEAgLTM3LDYg KzM3LDcgQEAKIAkkKElOU1RBTEwpIC1kICQoREVTVERJUikkKEJJTkRJUikK IAkkKElOU1RBTEwpIC1tIDc1NSByZWJhc2UgJChERVNURElSKSQoQklORElS KQogCSQoSU5TVEFMTCkgLW0gNzU1IHJlYmFzZWFsbCAkKERFU1RESVIpJChC SU5ESVIpCisJJChJTlNUQUxMKSAtbSA3NTUgcmViYXNlYWxsLWJhc2ggJChE RVNURElSKSQoQklORElSKQogCSQoSU5TVEFMTCkgLWQgJChERVNURElSKSQo RE9DRElSKQogCSQoSU5TVEFMTCkgLW0gNjQ0IFJFQURNRSAkKERFU1RESVIp JChET0NESVIpL3JlYmFzZS0kKFZlcnNpb24pLlJFQURNRQogCmRpZmYgLXUg IHJlYmFzZS0yLjQuMy0xL2ltYWdlaGVscGVyL0NoYW5nZUxvZy5vcmlnCi0t LSByZWJhc2UtMi40LjMtMS9pbWFnZWhlbHBlci9DaGFuZ2VMb2cub3JpZwky MDAzLTAyLTE4IDE1OjUzOjE3LjAwMDAwMDAwMCArMDAwMAorKysgcmViYXNl LTIuNC4zLTEvaW1hZ2VoZWxwZXIvQ2hhbmdlTG9nCTIwMDgtMDYtMDIgMTc6 MjY6NTUuMTQwNjI1MDAwICswMDAwCkBAIC0xLDMgKzEsNyBAQAorMjAwOC0w Ni0wMiBSZWluaSBVcmJhbiA8cnVyYmFuQHgtcmF5LmF0Pg0KKw0KKwkqCXNl Y3Rpb25zLmNjOiBGaXhlZCBjb21waWxhdGlvbiBmb3IgZysrIDMuNA0KKwkN CiAyMDAzLTAyLTE3ICBKYXNvbiBUaXNobGVyIDxqYXNvbkB0aXNobGVyLm5l dD4NCiAJCQkJCQkNCiAJKglyZWJhc2VpbWFnZS5jYyAoUmViYXNlSW1hZ2Up OiBGaXhlcyBidWcgd2hlbiByZWJhc2luZyB1cCANCmRpZmYgLXUgIHJlYmFz ZS0yLjQuMy0xL2ltYWdlaGVscGVyL0lOU1RBTEwub3JpZwotLS0gcmViYXNl LTIuNC4zLTEvaW1hZ2VoZWxwZXIvSU5TVEFMTC5vcmlnCTIwMDMtMDEtMDIg MTc6MDU6MTMuMDAwMDAwMDAwICswMDAwCisrKyByZWJhc2UtMi40LjMtMS9p bWFnZWhlbHBlci9JTlNUQUxMCTIwMDgtMDYtMDIgMTc6Mjk6MTYuMDkzNzUw MDAwICswMDAwCkBAIC0xLDM0ICsxLDI3IEBACi1JTlNUQUxMQVRJT04NDQot PT09PT09PT09PT09DQ0KLQ0NCi1Db21waWxpbmcgDQ0KLS0tLS0tLS0tLQ0N Ci0NDQotQ3VycmVudGx5IGNvbXBpbGluZyBhbmQgaW5zdGFsbGluZyBuZWVk cyB0aGUgY3lnd2luIGVudmlyb25tZW50LCB0YXJnZXRzIGFyZSBjeWd3aSBu YW5kIG1pbmd3IA0NCi0NDQotY29tcGlsaW5nIGZvciBjeWd3aW4gDQ0KLQ0N Ci0JJCBtYWtlIC1mIE1ha2VmaWxlLmN5Z3dpbiANDQotDQ0KLWNvbXBpbGlu ZyBmb3IgbWluZ3cgDQ0KLQ0NCi0JJCBtYWtlIC1mIE1ha2VmaWxlLm1pbmd3 IA0NCi0NDQotDQ0KLWluc3RhbGxpbmcNDQotDQ0KLQltYWtlIC1mIE1ha2Vm aWxlLltjeWd3aW58bWluZ3ddIGluc3RhbGwgDQ0KLQ0NCi0NDQotVW5wYWNr IHRoaXMgYXJjaGl2ZSBpbiB0aGUgY3lnd2luIHJvb3QgdHJlZS4gSXQgd2ls bCBpbnN0YWxsIHRoZSByZWJhc2UgZXhlY3V0YWJsZSBpbiAvdXNyL2xvY2Fs L2Jpbg0NCi0NDQotcmViYXNlIGhhcyBzb21lIG9wdGlvbnMuIFNlZSBiZWxv dzogDQ0KLQ0NCi0kIHJlYmFzZQ0NCi1yZWJhc2UgUmVsZWFzZTogMC40DQ0K LXVzYWdlOiByZWJhc2UgWy1EXSAtYiBCYXNlQWRkcmVzcyBbLWRdIC1vIE9m ZnNldCA8ZmlsZT4gLi4uICByZWJhc2UgPGZpbGU+ICAoWy1EXSBwcmludCBk ZWJ1ZyBpbmZvcykNDQotdXNhZ2U6IHJlYmFzZSBbLURdIC1sIDxmaWxlPiAu Li4gICAgICAgIGxpc3QgSW1hZ2ViYXNlIGFuZCAtc2l6ZSBvZiA8ZmlsZT4N DQotdXNhZ2U6IHJlYmFzZSBbLURdIC1jICAgICAgICAgICAgICAgICAgIGNo ZWNrIHJlbG9jYXRpb25zDQ0KLXVzYWdlOiByZWJhc2UgWy1EXSAtZiAgICAg ICAgICAgICAgICAgICBmaXggYmFkIHJlbG9jYXRpb25zDQ0KLQ0NCi0NDQor SU5TVEFMTEFUSU9ODQorPT09PT09PT09PT09DQorDQorQ29tcGlsaW5nIA0K Ky0tLS0tLS0tLQ0KKw0KK0N1cnJlbnRseSBjb21waWxpbmcgYW5kIGluc3Rh bGxpbmcgbmVlZHMgdGhlIGN5Z3dpbiBlbnZpcm9ubWVudCwgdGFyZ2V0cyBh cmUgY3lnd2luIGFuZCBtaW5ndyANCisNCitjb21waWxpbmcgZm9yIGN5Z3dp biANCisJJCBtYWtlIC1mIE1ha2VmaWxlLmN5Z3dpbiANCisNCitjb21waWxp bmcgZm9yIG1pbmd3IA0KKwkkIG1ha2UgLWYgTWFrZWZpbGUubWluZ3cgDQor DQoraW5zdGFsbGluZw0KKwltYWtlIC1mIE1ha2VmaWxlLltjeWd3aW58bWlu Z3ddIGluc3RhbGwgDQorDQorVW5wYWNrIHRoaXMgYXJjaGl2ZSBpbiB0aGUg Y3lnd2luIHJvb3QgdHJlZS4gSXQgd2lsbCBpbnN0YWxsIHRoZSByZWJhc2Ug ZXhlY3V0YWJsZSANCitpbiAvdXNyL2xvY2FsL2Jpbg0KK3JlYmFzZSBoYXMg c29tZSBvcHRpb25zLiBTZWUgYmVsb3c6IA0KKw0KKyQgcmViYXNlDQorcmVi YXNlIFJlbGVhc2U6IDAuOA0KK3VzYWdlOiByZWJhc2UgWy1EXSAtYiBCYXNl QWRkcmVzcyBbLWRdIC1vIE9mZnNldCA8ZmlsZT4gLi4uICByZWJhc2UgPGZp bGU+ICAoWy1EXSBwcmludCBkZWJ1ZyBpbmZvcykNCit1c2FnZTogcmViYXNl IFstRF0gLWwgPGZpbGU+IC4uLiAgICAgICAgbGlzdCBJbWFnZWJhc2UgYW5k IC1zaXplIG9mIDxmaWxlPg0KK3VzYWdlOiByZWJhc2UgWy1EXSAtYyAgICAg ICAgICAgICAgICAgICBjaGVjayByZWxvY2F0aW9ucw0KK3VzYWdlOiByZWJh c2UgWy1EXSAtZiAgICAgICAgICAgICAgICAgICBmaXggYmFkIHJlbG9jYXRp b25zDQpkaWZmIC11ICByZWJhc2UtMi40LjMtMS9pbWFnZWhlbHBlci9NYWtl ZmlsZS5pbi5vcmlnCi0tLSByZWJhc2UtMi40LjMtMS9pbWFnZWhlbHBlci9N YWtlZmlsZS5pbi5vcmlnCTIwMDMtMDEtMDIgMjA6MDc6MzUuMDAwMDAwMDAw ICswMDAwCisrKyByZWJhc2UtMi40LjMtMS9pbWFnZWhlbHBlci9NYWtlZmls ZS5pbgkyMDA4LTA2LTAyIDE3OjM1OjA0LjYyNTAwMDAwMCArMDAwMApAQCAt MSw0ICsxLDQgQEAKLVJFTEVBU0U9MC43DQorUkVMRUFTRT0wLjgNCiANCiBD WFhGTEFHUz0tTzIgICQoQ1hYRkxBR1NfT1BUKQ0KIExERkxBR1M9JChMREZM QUdTX09QVCkNCkBAIC00OSwxNSArNDksMTMgQEAKIHZlcnNpb24uYzogCU1h a2VmaWxlLmluIA0KIAllY2hvICJmbG9hdCByZWxlYXNlID0gJChSRUxFQVNF KTsgIiA+dmVyc2lvbi5jIA0KIA0KLQkNCiBpbnN0YWxsOiAkKFRBUkdFVFMp DQogCS91c3IvYmluL2luc3RhbGwgJF4gL3Vzci9sb2NhbC9iaW4NCiAJL3Vz ci9iaW4vaW5zdGFsbCAtZCAvdXNyL2RvYy9yZWJhc2UtJChSRUxFQVNFKQ0K IAkvdXNyL2Jpbi9pbnN0YWxsIFJFQURNRSBJTlNUQUxMIC91c3IvZG9jL3Jl YmFzZS0kKFJFTEVBU0UpDQotCQ0KKw0KIGNsZWFuOiANCiAJcm0gLWYgKi5v ICouZGxsICouZXhlICouYmFrICouc3RhY2tkdW1wICouYnoyIHZlcnNpb24u YyAqLm9yaWcgKi5kb3h5Z2VuICouYQ0KLQkNCiANCiBpbmRlbnQ6IA0KIAlh c3R5bGUgLS1zdHlsZT1nbnUgLXMyIC0tY29udmVydC10YWJzICouY2MgKi5o DQpAQCAtNzAsOCArNjgsNyBAQAogCUBtYWtlIGNsZWFuDQogCUBjZCAuLiAm JiB0YXIgLWNqdmYgcmViYXNlLSQoUkVMRUFTRSktc3JjLnRhci5iejIgcmVi YXNlLyoNCiAJQGVjaG8gImFyY2hpdmUgJ2BjeWdwYXRoIC1hdyAkcmViYXNl LSQoUkVMRUFTRSktc3JjLnRhci5iejJgJyBjcmVhdGVkIg0KLQkNCisNCiBi aW5kaXN0OiANCiAJY2QgLyAmJiB0YXIgLWNqdmYgL3RtcC9yZWJhc2UtJChS RUxFQVNFKS50YXIuYnoyIC91c3IvbG9jYWwvYmluL3JlYmFzZS5leGUgL3Vz ci9kb2MvcmViYXNlLSQoUkVMRUFTRSkNCiAJbXYgL3RtcC9yZWJhc2UtJChS RUxFQVNFKS50YXIuYnoyIC4NCi0JClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC11ICByZWJhc2UtMi40LjMtMS9pbWFnZWhlbHBlci9vYmpl Y3RmaWxlLmNjLm9yaWcKLS0tIHJlYmFzZS0yLjQuMy0xL2ltYWdlaGVscGVy L29iamVjdGZpbGUuY2Mub3JpZwkyMDAzLTAxLTA0IDEyOjQzOjAwLjAwMDAw MDAwMCArMDAwMAorKysgcmViYXNlLTIuNC4zLTEvaW1hZ2VoZWxwZXIvb2Jq ZWN0ZmlsZS5jYwkyMDA4LTA2LTAyIDE3OjM5OjM1LjAxNTYyNTAwMCArMDAw MApAQCAtMjgsMTcgKzI4LDIyIEBACiAvLyByZWFkIGEgZGxsIGludG8gdGhl IGNhY2hlDQogDQogI2lmZGVmIF9fQ1lHV0lOX18NCi0jaW5jbHVkZSA8c3lz L2N5Z3dpbi5oPg0KKyMgIGluY2x1ZGUgPHN5cy9jeWd3aW4uaD4NCisjICBp bmNsdWRlIDxjeWd3aW4vdmVyc2lvbi5oPg0KICNlbmRpZg0KIA0KICNpZmRl ZiBfX0NZR1dJTl9fDQotDQotc3RhdGljIGNoYXIgKiBXaW4zMlBhdGgoY2hh ciAqIHMpDQorc3RhdGljIGNoYXIgKiANCitXaW4zMlBhdGgoY2hhciAqIHMp DQogew0KICAgY2hhciBidWZbTUFYX1BBVEhdOw0KICAgaWYgKCFzIHx8ICpz ID09ICdcMCcpDQogICAgIHJldHVybiAiIjsNCisjaWYgKENZR1dJTl9WRVJT SU9OX0FQSV9NSU5PUiA+PSAxODEpDQorICBjeWd3aW5fY29udl9wYXRoKEND UF9XSU5fVE9fUE9TSVhfVyB8IENDUF9SRUxBVElWRSwgcywgYnVmLCBNQVhf UEFUSCk7DQorI2Vsc2UNCiAgIGN5Z3dpbl9jb252X3RvX3dpbjMyX3BhdGgo cywgYnVmKTsNCisjZW5kaWYNCiAgIHJldHVybiBzdHJkdXAoYnVmKTsNCiB9 DQogI2Vsc2UNCmRpZmYgLXUgIHJlYmFzZS0yLjQuMy0xL2ltYWdlaGVscGVy L3JlYmFzZV9tYWluLmNjLm9yaWcKLS0tIHJlYmFzZS0yLjQuMy0xL2ltYWdl aGVscGVyL3JlYmFzZV9tYWluLmNjLm9yaWcJMjAwMy0wMS0wMyAyMjo0NDo1 Ni4wMDAwMDAwMDAgKzAwMDAKKysrIHJlYmFzZS0yLjQuMy0xL2ltYWdlaGVs cGVyL3JlYmFzZV9tYWluLmNjCTIwMDgtMDYtMDIgMTc6Mzk6NDQuMTcxODc1 MDAwICswMDAwCkBAIC0yNiw3ICsyNiw4IEBACiAjaW5jbHVkZSA8c3RkbGli Lmg+DQogI2luY2x1ZGUgPGdldG9wdC5oPg0KICNpZmRlZiBfX0NZR1dJTl9f DQotI2luY2x1ZGUgPHN5cy9jeWd3aW4uaD4NCisjICBpbmNsdWRlIDxzeXMv Y3lnd2luLmg+DQorIyAgaW5jbHVkZSA8Y3lnd2luL3ZlcnNpb24uaD4NCiAj ZW5kaWYNCiAjaW5jbHVkZSA8d2luZG93cy5oPg0KIA0KQEAgLTEyMiw3ICsx MjMsMTEgQEAKIFBvc2l4VG9XaW4zMihjb25zdCBzdHJpbmcmIGFQb3NpeFBh dGgpDQogew0KICAgY2hhciBhV2luMzJQYXRoW01BWF9QQVRIXTsNCisjaWYg KENZR1dJTl9WRVJTSU9OX0FQSV9NSU5PUiA+PSAxODEpDQorICBjeWd3aW5f Y29udl9wYXRoKENDUF9QT1NJWF9UT19XSU5fVyB8IENDUF9SRUxBVElWRSwg YVBvc2l4UGF0aC5jX3N0cigpLCBhV2luMzJQYXRoLCBNQVhfUEFUSCk7DQor I2Vsc2UNCiAgIGN5Z3dpbl9jb252X3RvX3dpbjMyX3BhdGgoYVBvc2l4UGF0 aC5jX3N0cigpLCBhV2luMzJQYXRoKTsNCisjZW5kaWYNCiAgIHJldHVybiBh V2luMzJQYXRoOw0KIH0NCiAjZW5kaWYNCmRpZmYgLXUgIHJlYmFzZS0yLjQu My0xL2ltYWdlaGVscGVyL3NlY3Rpb25zLmNjLm9yaWcKLS0tIHJlYmFzZS0y LjQuMy0xL2ltYWdlaGVscGVyL3NlY3Rpb25zLmNjLm9yaWcJMjAwMy0wMi0x NCAxNTowMToxMy4wMDAwMDAwMDAgKzAwMDAKKysrIHJlYmFzZS0yLjQuMy0x L2ltYWdlaGVscGVyL3NlY3Rpb25zLmNjCTIwMDgtMDYtMDIgMTc6MjQ6Mzgu NzgxMjUwMDAwICswMDAwCkBAIC0yODUsNyArMjg1LDcgQEAKICAgaWYgKGRl YnVnKQ0KICAgICBzdGQ6OmNlcnIgPDwgImRlYnVnOiBjaGVja2luZyByZWxv Y2F0aW9ucyAuLi4uICIgPDwgc3RkOjplbmRsOw0KIA0KLSAgZm9yICg7IChj aGFyICopJnJlbG9jcC0+U2l6ZU9mQmxvY2sgPCAoY2hhciAqKXJlbG9jcyAr IHNpemUgJiYgcmVsb2NwLT5TaXplT2ZCbG9jayAhPSAwOyAoKGNoYXIgKily ZWxvY3ApICs9IHJlbG9jcC0+U2l6ZU9mQmxvY2spDQorICBmb3IgKDsgKGNo YXIgKikmcmVsb2NwLT5TaXplT2ZCbG9jayA8ICooY2hhcioqKXJlbG9jcyAr IHNpemUgJiYgcmVsb2NwLT5TaXplT2ZCbG9jayAhPSAwOyAoKihjaGFyKiop cmVsb2NwKSArPSByZWxvY3AtPlNpemVPZkJsb2NrKQ0KICAgICB7DQogICAg ICAgaW50IE51bU9mUmVsb2NzID0gKHJlbG9jcC0+U2l6ZU9mQmxvY2sgLSBz aXplb2YoSU1BR0VfQkFTRV9SRUxPQ0FUSU9OKSkgLyBzaXplb2YgKFdPUkQp Ow0KICAgICAgIGludCB2YSA9IHJlbG9jcC0+VmlydHVhbEFkZHJlc3M7DQpA QCAtMzI4LDcgKzMyOCw3IEBACiAgIGlmIChkZWJ1ZykNCiAgICAgc3RkOjpj ZXJyIDw8ICJ3YXJuaW5nOiBmaXhpbmcgYmFkIHJlbG9jYXRpb25zIC4uLi4g IjsNCiANCi0gIGZvciAoOyAoY2hhciAqKSZyZWxvY3AtPlNpemVPZkJsb2Nr IDwgKGNoYXIgKilyZWxvY3MgKyBzaXplICYmIHJlbG9jcC0+U2l6ZU9mQmxv Y2sgIT0gMDsgKChjaGFyICopcmVsb2NwKSArPSByZWxvY3AtPlNpemVPZkJs b2NrKQ0KKyAgZm9yICg7IChjaGFyICopJnJlbG9jcC0+U2l6ZU9mQmxvY2sg PCAqKGNoYXIqKilyZWxvY3MgKyBzaXplICYmIHJlbG9jcC0+U2l6ZU9mQmxv Y2sgIT0gMDsgKCooY2hhcioqKXJlbG9jcCkgKz0gcmVsb2NwLT5TaXplT2ZC bG9jaykNCiAgICAgew0KICAgICAgIGludCBOdW1PZlJlbG9jcyA9IChyZWxv Y3AtPlNpemVPZkJsb2NrIC0gc2l6ZW9mKElNQUdFX0JBU0VfUkVMT0NBVElP TikpIC8gc2l6ZW9mIChXT1JEKTsNCiAgICAgICBpbnQgdmEgPSByZWxvY3At PlZpcnR1YWxBZGRyZXNzOw0KQEAgLTM2Myw3ICszNjMsNyBAQAogICBpZiAo IXJlbG9jcykNCiAgICAgcmV0dXJuIGZhbHNlOw0KIA0KLSAgZm9yICg7IChj aGFyICopJnJlbG9jcC0+U2l6ZU9mQmxvY2sgPCAoY2hhciAqKXJlbG9jcyAr IHNpemUgJiYgcmVsb2NwLT5TaXplT2ZCbG9jayAhPSAwOyAoKGNoYXIgKily ZWxvY3ApICs9IHJlbG9jcC0+U2l6ZU9mQmxvY2spDQorICBmb3IgKDsgKGNo YXIgKikmcmVsb2NwLT5TaXplT2ZCbG9jayA8ICooY2hhcioqKXJlbG9jcyAr IHNpemUgJiYgcmVsb2NwLT5TaXplT2ZCbG9jayAhPSAwOyAoKihjaGFyKiop cmVsb2NwKSArPSByZWxvY3AtPlNpemVPZkJsb2NrKQ0KICAgICB7DQogICAg ICAgaW50IE51bU9mUmVsb2NzID0gKHJlbG9jcC0+U2l6ZU9mQmxvY2sgLSBz aXplb2YoSU1BR0VfQkFTRV9SRUxPQ0FUSU9OKSkgLyBzaXplb2YgKFdPUkQp Ow0KICAgICAgIGludCB2YSA9IHJlbG9jcC0+VmlydHVhbEFkZHJlc3M7DQpk aWZmIC11ICByZWJhc2UtMi40LjMtMS9pbWFnZWhlbHBlci92ZXJzaW9uLmMu b3JpZwotLS0gcmViYXNlLTIuNC4zLTEvaW1hZ2VoZWxwZXIvdmVyc2lvbi5j Lm9yaWcJMjAwOC0wNi0wMiAxNzoyNTozOS4yMzQzNzUwMDAgKzAwMDAKKysr IHJlYmFzZS0yLjQuMy0xL2ltYWdlaGVscGVyL3ZlcnNpb24uYwkyMDA4LTA2 LTAyIDE3OjM5OjU2LjAxNTYyNTAwMCArMDAwMApAQCAtMSArMSBAQAotZmxv YXQgcmVsZWFzZSA9IDAuNzsgCitmbG9hdCByZWxlYXNlID0gMC44OyAKZGlm ZiAtdSAgcmViYXNlLTIuNC4zLTEvcmViYXNlLmMub3JpZwotLS0gcmViYXNl LTIuNC4zLTEvcmViYXNlLmMub3JpZwkyMDA0LTAzLTExIDIxOjQ2OjQ0LjAw MDAwMDAwMCArMDAwMAorKysgcmViYXNlLTIuNC4zLTEvcmViYXNlLmMJMjAw OC0wNi0wMiAxODoyOTo1MS4wNzgxMjUwMDAgKzAwMDAKQEAgLTEsNSArMSw2 IEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIEph c29uIFRpc2hsZXIKKyAqIENvcHlyaWdodCAoYykgMjAwOCBSZWluaSBVcmJh bgogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQpAQCAtMjMsNiArMjQsMTAgQEAKICNpbmNsdWRl IDxzdHJpbmcuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxn ZXRvcHQuaD4KKyNpZmRlZiBfX0NZR1dJTl9fCisjICBpbmNsdWRlIDxzeXMv Y3lnd2luLmg+CisjICBpbmNsdWRlIDxjeWd3aW4vdmVyc2lvbi5oPgorI2Vu ZGlmCiAjaW5jbHVkZSAiaW1hZ2VoZWxwZXIuaCIKIAogQk9PTCByZWJhc2Ug KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBVTE9ORyAqbmV3X2ltYWdlX2Jhc2Up OwpAQCAtMzQsMTIgKzM5LDE5IEBACiBjaGFyICpmaWxlX2xpc3RfZmdldHMg KGNoYXIgKmJ1ZiwgaW50IHNpemUsIEZJTEUgKmZpbGUpOwogaW50IGZpbGVf bGlzdF9mY2xvc2UgKEZJTEUgKmZpbGUpOwogdm9pZCB2ZXJzaW9uICgpOwor I2lmZGVmIF9fQ1lHV0lOX18KK2NoYXIgKnBvc2l4X3RvX3dpbjMyKGNvbnN0 IGNoYXIgKnBvc2l4X3BhdGgpOworI2Vsc2UKKyNkZWZpbmUgcG9zaXhfdG9f d2luMzIocG9zaXhfcGF0aCkgcG9zaXhfcGF0aAorI2VuZGlmCiAKIFVMT05H IGltYWdlX2Jhc2UgPSAwOwogQk9PTCBkb3duX2ZsYWcgPSBGQUxTRTsKIFVM T05HIG9mZnNldCA9IDA7CiBpbnQgYXJnc19pbmRleCA9IDA7CiBpbnQgdmVy Ym9zZSA9IDA7CitpbnQgbGlzdF9mbGFnID0gMDsKK2ludCBjaGVja19mbGFn ID0gMDsKIGNvbnN0IGNoYXIgKmZpbGVfbGlzdCA9IDA7CiBjb25zdCBjaGFy ICpzdGRpbl9maWxlX2xpc3QgPSAiLSI7CiAKQEAgLTk5LDYgKzExMSwxNyBA QAogICAgICAgcmV0dXJuIFRSVUU7CiAgICAgfQogCisgIGlmIChsaXN0X2Zs YWcpIAorICAgIHsKKwlzdGF0dXMgPSBHZXRJbWFnZUluZm9zKChjaGFyICop cGF0aG5hbWUsICZwcmV2X25ld19pbWFnZV9iYXNlLCAmbmV3X2ltYWdlX3Np emUpOworICAgICAgaWYgKHN0YXR1cykKKwkgIGZwcmludGYgKHN0ZGVyciwg IiVzOiBJbWFnZUJhc2U9MHgleCBJbWFnZVNpemU9MHgleFxuIiwgcGF0aG5h bWUsIAorCQkgICBwcmV2X25ld19pbWFnZV9iYXNlLCBuZXdfaW1hZ2Vfc2l6 ZSk7CisgICAgICBlbHNlCisJICBmcHJpbnRmIChzdGRlcnIsICIlczogbGlz dCBmYWlsZWRcbiIsIHBhdGhuYW1lKTsKKyAgICAgIHJldHVybiBzdGF0dXM7 CisgICAgfQorCiAgIC8qIFNraXAgaWYgbm90IHdyaXRhYmxlLiAqLwogICBp ZiAoYWNjZXNzIChwYXRobmFtZSwgV19PSykgPT0gLTEpCiAgICAgewpAQCAt MTA5LDI4ICsxMzIsMzUgQEAKICAgLyogU2tpcCBpZiBub3QgcmViYXNlYWJs ZS4gKi8KICAgaWYgKCFpc19yZWJhc2VhYmxlIChwYXRobmFtZSkpCiAgICAg ewotICAgICAgaWYgKHZlcmJvc2UpCisgICAgICBpZiAodmVyYm9zZSB8fCBj aGVja19mbGFnKQogCWZwcmludGYgKHN0ZGVyciwgIiVzOiBza2lwcGVkIGJl Y2F1c2Ugbm90IHJlYmFzZWFibGVcbiIsIHBhdGhuYW1lKTsKICAgICAgIHJl dHVybiBUUlVFOwogICAgIH0KIAorICBpZiAoY2hlY2tfZmxhZykgCisgICAg eworICAgICAgc3RhdHVzID0gQ2hlY2tJbWFnZSgoY2hhciAqKXBhdGhuYW1l KTsKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiBDaGVja0ltYWdlICVz XG4iLCBwYXRobmFtZSwgc3RhdHVzID8gIm9rIiA6ICJub3Qgb2siKTsKKyAg ICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCiAgIC8qIENhbGN1bGF0ZSBu ZXh0IGJhc2UgYWRkcmVzcywgaWYgcmViYXNpbmcgZG93bi4gKi8KICAgaWYg KGRvd25fZmxhZykKICAgICAqbmV3X2ltYWdlX2Jhc2UgLT0gb2Zmc2V0Owog CiAgIC8qIFJlYmFzZSB0aGUgaW1hZ2UuICovCiAgIHByZXZfbmV3X2ltYWdl X2Jhc2UgPSAqbmV3X2ltYWdlX2Jhc2U7Ci0gIHN0YXR1cyA9IFJlQmFzZUlt YWdlICgoY2hhciopIHBhdGhuYW1lLAkvKiBDdXJyZW50SW1hZ2VOYW1lICov Ci0JCQkgIiIsCQkJLyogU3ltYm9sUGF0aCAqLwotCQkJIFRSVUUsCQkJLyog ZlJlQmFzZSAqLwotCQkJIEZBTFNFLAkJCS8qIGZSZWJhc2VTeXNmaWxlT2sg Ki8KLQkJCSBkb3duX2ZsYWcsCQkvKiBmR29pbmdEb3duICovCi0JCQkgMCwJ CQkvKiBDaGVja0ltYWdlU2l6ZSAqLwotCQkJICZvbGRfaW1hZ2Vfc2l6ZSwJ LyogT2xkSW1hZ2VTaXplICovCi0JCQkgJm9sZF9pbWFnZV9iYXNlLAkvKiBP bGRJbWFnZUJhc2UgKi8KLQkJCSAmbmV3X2ltYWdlX3NpemUsCS8qIE5ld0lt YWdlU2l6ZSAqLwotCQkJIG5ld19pbWFnZV9iYXNlLAkvKiBOZXdJbWFnZUJh c2UgKi8KLQkJCSB0aW1lICgwKSk7CQkvKiBUaW1lU3RhbXAgKi8KKyAgc3Rh dHVzID0gUmVCYXNlSW1hZ2UgKChjaGFyICopcGF0aG5hbWUsCS8qIEN1cnJl bnRJbWFnZU5hbWUgKi8KKwkJCSIiLAkJCS8qIFN5bWJvbFBhdGggKi8KKwkJ CVRSVUUsCQkJLyogZlJlQmFzZSAqLworCQkJRkFMU0UsCQkJLyogZlJlYmFz ZVN5c2ZpbGVPayAqLworCQkJZG93bl9mbGFnLAkJLyogZkdvaW5nRG93biAq LworCQkJMCwJCQkvKiBDaGVja0ltYWdlU2l6ZSAqLworCQkJJm9sZF9pbWFn ZV9zaXplLAkvKiBPbGRJbWFnZVNpemUgKi8KKwkJCSZvbGRfaW1hZ2VfYmFz ZSwJLyogT2xkSW1hZ2VCYXNlICovCisJCQkmbmV3X2ltYWdlX3NpemUsCS8q IE5ld0ltYWdlU2l6ZSAqLworCQkJbmV3X2ltYWdlX2Jhc2UsCQkvKiBOZXdJ bWFnZUJhc2UgKi8KKwkJCXRpbWUgKDApKTsJCS8qIFRpbWVTdGFtcCAqLwog CiAgIC8qIE1TJ3MgUmVCYXNlSW1hZ2Ugc2VlbXMgdG8gbmV2ZXIgcmV0dXJu IGZhbHNlISAqLwogICBzdGF0dXMyID0gR2V0TGFzdEVycm9yICgpOwpAQCAt MTQwLDcgKzE3MCw3IEBACiAgICAgewogICAgICAgaWYgKHZlcmJvc2UpCiAJ ZnByaW50ZiAoc3RkZXJyLCAiJXM6IGZpeGluZyBiYWQgcmVsb2NhdGlvbnNc biIsIHBhdGhuYW1lKTsKLSAgICAgIEJPT0wgc3RhdHVzMyA9IEZpeEltYWdl ICgoY2hhciopIHBhdGhuYW1lKTsKKyAgICAgIEJPT0wgc3RhdHVzMyA9IEZp eEltYWdlICgoY2hhciAqKXBhdGhuYW1lKTsKICAgICAgIGlmICghc3RhdHVz MykKIAl7CiAJICBmcHJpbnRmIChzdGRlcnIsICJGaXhJbWFnZSAoJXMpIGZh aWxlZCB3aXRoIGxhc3QgZXJyb3IgPSAlbHVcbiIsCkBAIC0xNDksNyArMTc5 LDcgQEAKIAl9CiAKICAgICAgIC8qIFJldHJ5IHJlYmFzZS4qLwotICAgICAg c3RhdHVzID0gUmVCYXNlSW1hZ2UgKChjaGFyKikgcGF0aG5hbWUsCS8qIEN1 cnJlbnRJbWFnZU5hbWUgKi8KKyAgICAgIHN0YXR1cyA9IFJlQmFzZUltYWdl ICgoY2hhciAqKXBhdGhuYW1lLAkvKiBDdXJyZW50SW1hZ2VOYW1lICovCiAJ CQkgICAgIiIsCQkJLyogU3ltYm9sUGF0aCAqLwogCQkJICAgIFRSVUUsCQkv KiBmUmVCYXNlICovCiAJCQkgICAgRkFMU0UsCQkvKiBmUmViYXNlU3lzZmls ZU9rICovCkBAIC0xOTEsNyArMjIxLDcgQEAKIHZvaWQKIHBhcnNlX2FyZ3Mg KGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7Ci0gIGNvbnN0IGNoYXIgKmFu T3B0aW9ucyA9ICJiOmRvOlQ6dlYiOworICBjb25zdCBjaGFyICphbk9wdGlv bnMgPSAiYjpkbzpUOnZWbGMiOwogICBpbnQgYW5PcHRpb24gPSAwOwogCiAg IGZvciAoYW5PcHRpb247IChhbk9wdGlvbiA9IGdldG9wdCAoYXJnYywgYXJn diwgYW5PcHRpb25zKSkgIT0gLTE7KQpAQCAtMjEyLDExICsyNDIsMTggQEAK IAkgIGJyZWFrOwogCWNhc2UgJ3YnOgogCSAgdmVyYm9zZSA9IFRSVUU7CisJ ICBTZXRJbWFnZUhlbHBlckRlYnVnKDEpOwogCSAgYnJlYWs7CiAJY2FzZSAn Vic6CiAJICB2ZXJzaW9uICgpOwogCSAgZXhpdCAoMSk7CiAJICBicmVhazsK KwljYXNlICdsJzoKKwkgIGxpc3RfZmxhZyA9IDE7CisJICBicmVhazsKKwlj YXNlICdjJzoKKwkgIGNoZWNrX2ZsYWcgPSAxOworCSAgYnJlYWs7CiAJZGVm YXVsdDoKIAkgIHVzYWdlICgpOwogCSAgZXhpdCAoMSk7CkBAIC0yMjQsNyAr MjYxLDcgQEAKIAl9CiAgICAgfQogCi0gIGlmIChpbWFnZV9iYXNlID09IDAp CisgIGlmIChpbWFnZV9iYXNlID09IDAgJiYgbGlzdF9mbGFnID09IDAgJiYg Y2hlY2tfZmxhZyA9PSAwKQogICAgIHsKICAgICAgIHVzYWdlICgpOwogICAg ICAgZXhpdCAoMSk7CkBAIC0yNDUsOCArMjgyLDkgQEAKIHVzYWdlICgpCiB7 CiAgIGZwcmludGYgKHN0ZGVyciwKLQkgICAidXNhZ2U6IHJlYmFzZSAtYiBC YXNlQWRkcmVzcyBbLVZkdl0gWy1vIE9mZnNldF0gIgotCSAgICJbLVQgRmls ZUxpc3QgfCAtXSBGaWxlcy4uLlxuIik7CisJICAgInVzYWdlOiByZWJhc2Ug LWIgQmFzZUFkZHJlc3MgWy1WZHZdIFstbyBPZmZzZXRdIFstVCBGaWxlTGlz dCB8IC1dIEZpbGVzLi4uXG4iCisgICAgICAgICAgICJ1c2FnZTogcmViYXNl IFstdl0gLWwgPGZpbGU+IC4uLiAgICAgICAgbGlzdCBJbWFnZWJhc2UgYW5k IC1zaXplIG9mIDxmaWxlPlxuIgorICAgICAgICAgICAidXNhZ2U6IHJlYmFz ZSBbLXZdIC1jICAgICAgICAgICAgICAgICAgIGNoZWNrIHJlbG9jYXRpb25z Iik7CiB9CiAKIEJPT0wKQEAgLTMzNCw1ICszNzIsMTkgQEAKICAgZnByaW50 ZiAoc3RkZXJyLCAicmViYXNlIHZlcnNpb24gJXMgKGltYWdlaGVscGVyIHZl cnNpb24gJXMpXG4iLAogCSAgIFZFUlNJT04sIExJQl9WRVJTSU9OKTsKICAg ZnByaW50ZiAoc3RkZXJyLCAiQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAy MDAzLCAyMDA0ICIKLQkgICAiUmFsZiBIYWJhY2tlciBhbmQgSmFzb24gVGlz aGxlclxuIik7CisJICAgIlJhbGYgSGFiYWNrZXIgYW5kIEphc29uIFRpc2hs ZXJcbkNvcHlyaWdodCAoYykgMjAwOCBSZWluaSBVcmJhbiIpOworfQorCisj aWZkZWYgX19DWUdXSU5fXworY2hhciAqCitwb3NpeF90b193aW4zMihjb25z dCBjaGFyICpwb3NpeF9wYXRoKQoreworICBjaGFyIHdpbjMyX3BhdGhbTUFY X1BBVEhdOworI2lmIChDWUdXSU5fVkVSU0lPTl9BUElfTUlOT1IgPj0gMTgx KQorICBjeWd3aW5fY29udl9wYXRoKENDUF9QT1NJWF9UT19XSU5fVyB8IEND UF9SRUxBVElWRSwgcG9zaXhfcGF0aCwgd2luMzJfcGF0aCwgTUFYX1BBVEgp OworI2Vsc2UKKyAgY3lnd2luX2NvbnZfdG9fd2luMzJfcGF0aChwb3NpeF9w YXRoLCB3aW4zMl9wYXRoKTsKKyNlbmRpZgorICByZXR1cm4gd2luMzJfcGF0 aDsKIH0KKyNlbmRpZgpkaWZmIC11ICByZWJhc2UtMi40LjMtMS9yZWJhc2Vh bGwtYmFzaC5vcmlnCi0tLSByZWJhc2UtMi40LjMtMS9yZWJhc2VhbGwtYmFz aC5vcmlnCTIwMDgtMDYtMDIgMTg6MjM6MjAuNDIxODc1MDAwICswMDAwCisr KyByZWJhc2UtMi40LjMtMS9yZWJhc2VhbGwtYmFzaAkyMDA4LTA2LTAyIDE4 OjM0OjI0LjE3MTg3NTAwMCArMDAwMApAQCAtMCwwICsxLDEyNCBAQAorIyEv YmluL2Jhc2gKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA1LCAyMDA2 IEphc29uIFRpc2hsZXIKKyMgQ29weXJpZ2h0IChjKSAyMDA4IFJlaW5pIFVy YmFuCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIEEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgY2FuIGJlIGZv dW5kIGF0CisjIGh0dHA6Ly93d3cuZ251Lm9yZy8KKyMKKyMgV3JpdHRlbiBi eSBKYXNvbiBUaXNobGVyIDxqYXNvbkB0aXNobGVyLm5ldD4KKyMKKyMgJElk OiByZWJhc2VhbGwsdiAxLjIwIDIwMDYvMDcvMDkgMTQ6MzY6MTgganQgRXhw ICQKKyMKKworIyBEZWZpbmUgY29uc3RhbnRzCitQQVRIPS9iaW4KK1Byb2dy YW1OYW1lPWBiYXNlbmFtZSAkMGAKK1Byb2dyYW1PcHRpb25zPSdiOm86czpU OnYnCisjIGJhc2ggZGVwcyBzdGFydCBhdCAweDcwMDAwMDAwIHdpdGggc2l6 ZQorRGVmYXVsdEJhc2VBZGRyZXNzPTB4NmZmZjAwMDAKK0RlZmF1bHRPZmZz ZXQ9MHgxMDAwMAorRGVmYXVsdFZlcmJvc2U9CitEZWZhdWx0RmlsZUxpc3Q9 CitEZWZhdWx0U3VmZml4ZXM9J2RsbHxzbycKK0Jhc2hFeGNsdWRlcz0nL2Jp bi9iYXNoXC5leGV8L2Jpbi9jeWdpbnRsLThcLmRsbHwvYmluL2N5Z2ljb252 LTJcLmRsbHwvYmluL2N5Z3JlYWRsaW5lNlwuZGxsfC9iaW4vY3lnbmN1cnNl cy04XC5kbGwnCisKKyMgRGVmaW5lIGZ1bmN0aW9ucwordXNhZ2UoKQorewor ICAgIGVjaG8gInVzYWdlOiAkUHJvZ3JhbU5hbWUgWy1iIEJhc2VBZGRyZXNz XSBbLW8gT2Zmc2V0XSBbLXMgRGxsU3VmZml4XSBbLVQgRmlsZUxpc3QgfCAt XSBbLXZdIgorICAgIGV4aXQgMQorfQorCitjbGVhbnVwKCkKK3sKKyAgICBy bSAtZiAiJFRtcEZpbGUiCisgICAgZXhpdCAkRXhpdENvZGUKK30KKworIyBT ZXQgdHJhcHMKK3RyYXAgY2xlYW51cCAxIDIgMTUKKworIyBTZXQgZGVmYXVs dHMKK0Jhc2VBZGRyZXNzPSREZWZhdWx0QmFzZUFkZHJlc3MKK09mZnNldD0k RGVmYXVsdE9mZnNldAorVmVyYm9zZT0kRGVmYXVsdFZlcmJvc2UKK0ZpbGVM aXN0PSREZWZhdWx0RmlsZUxpc3QKK1N1ZmZpeGVzPSREZWZhdWx0U3VmZml4 ZXMKKworIyBWZXJpZnkgb25seSBiYXNoIHByb2Nlc3NlcyBhcmUgcnVubmlu ZworZ3JlcCAtRSAtcSAtaSAtdiAnL2Jhc2goLmV4ZSk/JCcgL3Byb2MvWzAt OV0qL2V4ZW5hbWUKK2lmIFsgJD8gLWVxIDAgLWEgLXogIiRSZWJhc2VEZWJ1 ZyIgXQordGhlbgorICAgIGVjaG8gIiRQcm9ncmFtTmFtZTogb25seSBiYXNo IHByb2Nlc3NlcyBhcmUgYWxsb3dlZCBkdXJpbmcgcmViYXNpbmciCisgICAg ZWNobyAiICAgIEV4aXQgYWxsIEN5Z3dpbiBwcm9jZXNzZXMgYW5kIHN0b3Ag YWxsIEN5Z3dpbiBzZXJ2aWNlcy4iCisgICAgZWNobyAiICAgIEV4ZWN1dGUg Jy9iaW4vJFByb2dyYW1OYW1lJyBmcm9tIGJhc2guIgorICAgIGV4aXQgMgor ZmkKKworIyBQYXJzZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzCit3aGlsZSBn ZXRvcHRzICRQcm9ncmFtT3B0aW9ucyBPcHRpb24gIiRAIgorZG8KKyAgICBj YXNlICRPcHRpb24gaW4KKyAgICBiKQorCUJhc2VBZGRyZXNzPSRPUFRBUkc7 OworICAgIG8pCisJT2Zmc2V0PSRPUFRBUkc7OworICAgIHMpCisJU3VmZml4 ZXM9IiRTdWZmaXhlc3wkT1BUQVJHIjs7CisgICAgVCkKKwlGaWxlTGlzdD0i JE9QVEFSRyI7OworICAgIHYpCisJVmVyYm9zZT0tdjs7CisgICAgXD8pCisJ dXNhZ2U7OworICAgIGVzYWMKK2RvbmUKKworIyBTZXQgdGVtcCBkaXJlY3Rv cnkKK1RtcERpcj0iJHtUTVA6LSR7VEVNUDotL3RtcH19IgorCisjIFZhbGlk YXRlIHRlbXAgZGlyZWN0b3J5CitpZiBbICEgLWQgIiRUbXBEaXIiIF0KK3Ro ZW4KKyAgICBlY2hvICIkUHJvZ3JhbU5hbWU6ICckVG1wRGlyJyBpcyBub3Qg YSBkaXJlY3RvcnkiCisgICAgZXhpdCAyCitmaQoraWYgWyAhIC13ICIkVG1w RGlyIiBdCit0aGVuCisgICAgZWNobyAiJFByb2dyYW1OYW1lOiAnJFRtcERp cicgaXMgbm90IHdyaXRhYmxlIgorICAgIGV4aXQgMgorZmkKKworIyBWYWxp ZGF0ZSB1c2VyIHN1cHBsaWVkIGZpbGUgbGlzdCwgaWYgbmVjZXNzYXJ5Citp ZiBbIC1uICIkRmlsZUxpc3QiIC1hICEgLXIgIiRGaWxlTGlzdCIgLWEgIiRG aWxlTGlzdCIgIT0gLSBdCit0aGVuCisgICAgZWNobyAiJFByb2dyYW1OYW1l OiAnJEZpbGVMaXN0JyBpcyBub3QgcmVhZGFibGUiCisgICAgZXhpdCAyCitm aQorCisjIFNldCB0ZW1wIGZpbGUKK1RtcEZpbGU9IiRUbXBEaXIvcmViYXNl LmxzdCIKKworIyBDcmVhdGUgcmViYXNlIGxpc3QKKyMgVE9ETzogRG8gc29t ZSByZXNodWZmbGluZyB3aXRoIHNvbWUgZml4ZWQgZW50cmllcyBhdCB0aGUg ZnJvbnQgKGJhc2gsIHBlcmwsIHB5dGhvbikKK2d6aXAgLWQgLWMgL2V0Yy9z ZXR1cC8qLmxzdC5neiB8IGdyZXAgLUUgIigkU3VmZml4ZXMpXCQiIHwgZ3Jl cCAtdkUgIigkQmFzaEV4Y2x1ZGVzKVwkIiB8XAorICAgIHNlZCAtZSAnL2N5 Z3dpbjEuZGxsJC9kJyAtZSAncy9eL1wvLycgPiIkVG1wRmlsZSIKKworIyBB cHBlbmQgdXNlciBzdXBwbGllZCBmaWxlIGxpc3QsIGlmIGFueQoraWYgWyAt biAiJEZpbGVMaXN0IiBdCit0aGVuCisgICAgY2F0ICIkRmlsZUxpc3QiID4+ IiRUbXBGaWxlIgorZmkKKworIyBSZWJhc2UgZmlsZXMKK3JlYmFzZSAkVmVy Ym9zZSAtZCAtYiAkQmFzZUFkZHJlc3MgLW8gJE9mZnNldCAtVCAiJFRtcEZp bGUiCitFeGl0Q29kZT0kPworCisjIENsZWFuIHVwCitjbGVhbnVwCg== --------------000105010502070106010907 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --------------000105010502070106010907--