From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22322 invoked by alias); 3 Mar 2008 18:48:50 -0000 Received: (qmail 22307 invoked by uid 22791); 3 Mar 2008 18:48:48 -0000 X-Spam-Status: No, hits=-0.9 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63,J_CHICKENPOX_73 X-Spam-Check-By: sourceware.org Received: from dramail.com (HELO sdra00198.intranet.dra-inc.net) (66.195.237.160) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 03 Mar 2008 18:48:30 +0000 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Subject: Patch: add options to ecosconfig to controll location of build and install directories. X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Mon, 03 Mar 2008 18:48:00 -0000 Message-ID: <138905EB75AB0D44B6A0ECD251A92EA797084E@sdra00198.intranet.dra-inc.net> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Patch: add options to ecosconfig to controll location of build and install directories. Thread-Index: Ach9XyrMaQ8K1ulSEdzGhwAb/CT+FA== From: "Timothy Schaeffer" To: X-IsSubscribed: yes Mailing-List: contact ecos-patches-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-patches-owner@ecos.sourceware.org X-SW-Source: 2008-03/txt/msg00000.txt.bz2 SSBoYWQgc2VudCB0aGlzIHRvIHRoZSBlY29zLWRpc2N1c3MsIG5vdCBrbm93 aW5nIGFib3V0IHRoaXMgbWFpbGluZyBsaXN0LiAgDQoNCkkgaGFwcGVuZWQg dG8gcmVhZCBhYm91dCBpdCBvbiB0aGUgZmFxLiAgSSd2ZSBiZWVuIHVzaW5n IHRoaXMgbW9kaWZpZWQNCnZlcnNpb24gZm9yIGEgd2hpbGUgYW5kIHdvdWxk IGxpa2UgdG8ga25vdyBpZiB0aGVyZSBpcyBhbnkgaW50ZXJlc3QgaW4gDQpz dWJtaXR0aW5nIGl0IHRvIHRoZSByZXBvc2l0b3J5LiANCg0KDQpJIGhhdmUg bWFkZSBzb21lIG1vZGlmaWNhdGlvbnMgdG8gdGhlIHNvdXJjZSB3aGljaCBz aG91bGQgZG8gd2hhdCBJIHdhbnQNCndpdGhvdXQgY2hhbmdpbmcgZXhpc3Rp bmcgdXNhZ2UuICANCg0KSW4gc3VtbWFyeToNCg0KSSBhZGRlZCBhIC0tYnVp bGQtcHJlZml4PTxidWlsZF9kaXI+IG9wdGlvbiwgd2hpY2ggcHV0cyB0aGUg YnVpbGQgZmlsZXMNCmludG8gPGJ1aWxkX2Rpcj4gaW5zdGVhZCBvZiB0aGUg Y3VycmVudCBkaXJlY3RvcnkuICBJZiAtLXByZWZpeCBpcyBub3QNCmdpdmVu LCB0aGUgaW5zdGFsbCB0cmVlIHdpbGwgYmUgaW4gPGJ1aWxkX2Rpcj4vaW5z dGFsbC4NCg0KSSBhZGRlZCBhIC0taW5zdGFsbC1wcmVmaXg9PGluc3RhbGxf ZGlyPiBhcyBhIHN5bm9ueW0gZm9yIC0tcHJlZml4LA0KdG8gYmUgY29uc2lz dGVudCB3aXRoIC0tYnVpbGQtcHJlZml4LCBhbmQgbW9yZSBleHBsaWNpdCB0 aGFuIC0tcHJlZml4Lg0KDQpJIGFkZGVkIGEgLUMsIC0tdXNlLWNvbmZpZ3Rv b2wtcGF0aHMgb3B0aW9uLCB3aGljaCB1c2VzIHRoZSBiYXNlIG5hbWUgb2YN CnRoZSBjb25maWcgZmlsZSB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgYnVp bGQgYW5kIGluc3RhbGwgcHJlZml4ZXMuDQpFLmcuIGlmICBJIGdpdmUgDQog JCBlY29zY29uZmlnIC1DIHRyZWUgDQpJIGdldCBlY29zX2J1aWxkLCBlY29z X2luc3RhbGwgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LCBqdXN0IGFzDQpj b25maWd0b29sIGRvZXMuICANCiAkIGVjb3Njb25maWcgLS1jb25maWc9dGhp c19wcm9qZWN0LmVjYw0KZ2l2ZXMgbWUgdGhpc19wcm9qZWN0XyhpbnN0YWxs fGJ1aWxkKSBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnksIA0KICQgZWNvbmNv bmZpZyAtLWNvbmZpZz0vcGF0aC90by9teV9wcm9qZWN0LmVjYw0KZ2l2ZXMg bXkgL3BhdGgvdG8vbXlfcHJvamVjdF8oaW5zdGFsbHxidWlsZCkvLCBhbmQg c28gb24uDQpUaGUgLS0oYnVpbGR8aW5zdGFsbCktcHJlZml4IG9wdGlvbnMg b3ZlcnJpZGUgdGhlc2Ugc2V2ZXJhbGx5LCBzbyB5b3UNCmNhbiBzdGlsbCBk byB3ZWlyZCB0aGluZ3MgaWYgeW91IHdhbnQuDQoNCkkgY2hhbmdlZCB0aGUg c2dtbCBkb2NzIHRvIGluY2x1ZGUgaW5zdHJ1Y3Rpb25zIGZvciB1c2luZyB0 aGVzZSBvcHRpb25zLg0KDQpVc2luZyBlY29zY29uZmlnIHcvbyB0aGVzZSBv cHRpb25zIHNob3VsZCB3b3JrIGxpa2UgaXQgZGlkIGJlZm9yZS4NCkV4Y2Vw dCB0aGF0IGl0IHdpbGwgcmVqZWN0IHByb2plY3QgZmlsZXMgd2hpY2ggZG9u J3QgaGF2ZSB0aGUgLmVjYw0KZXh0ZW5zaW9uLCBsaWtlIGNvbmZpZ3Rvb2wg ZG9lcy4NCg0KDQpUaGUgUGF0Y2g6DQoNCg0KDQpJbmRleDogZG9jL3NnbWwv dXNlci1ndWlkZS9jb25maWd1cmF0aW9uLnNnbWwNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL2Vjb3MvZWNvcy9kb2Mvc2dtbC91 c2VyLWd1aWRlL2NvbmZpZ3VyYXRpb24uc2dtbCx2DQpyZXRyaWV2aW5nIHJl dmlzaW9uIDEuMw0KZGlmZiAtdSAtcjEuMyBjb25maWd1cmF0aW9uLnNnbWwN Ci0tLSBkb2Mvc2dtbC91c2VyLWd1aWRlL2NvbmZpZ3VyYXRpb24uc2dtbAkx MiBGZWIgMjAwMyAxODozNjoxMyAtMDAwMAkxLjMNCisrKyBkb2Mvc2dtbC91 c2VyLWd1aWRlL2NvbmZpZ3VyYXRpb24uc2dtbAkzIE1hciAyMDA4IDE2OjU5 OjI2IC0wMDAwDQpAQCAtMTM4LDYgKzEzOCw3IEBADQogPC9WQVJMSVNURU5U Ulk+DQogPFZBUkxJU1RFTlRSWT4NCiA8VEVSTT48T1BUSU9OPi0tcHJlZml4 PSZsdDtkaXImZ3Q7PC9PUFRJT04+PC9URVJNPg0KKzxURVJNPjxPUFRJT04+ LS1pbnN0YWxsLXByZWZpeD0mbHQ7ZGlyJmd0OzwvT1BUSU9OPjwvVEVSTT4N CiA8TElTVElURU0+DQogPFBBUkE+U3BlY2lmaWVzIGFuIGFsdGVybmF0aXZl IGxvY2F0aW9uIGZvciB0aGUNCiAJCSAgaW5zdGFsbCB0cmVlLiBCeSBkZWZh dWx0LCB0aGUgaW5zdGFsbCB0cmVlIHJlc2lkZXMNCkBAIC0xNDUsNyArMTQ2 LDM2IEBADQogCQkgIGRpcmVjdG9yeSBpbiB0aGUgYnVpbGQgdHJlZS4gRGV2 ZWxvcGVycyBtYXkgcHJlZmVyDQogCQkgIHRvIGxvY2F0ZSB0aGUgYnVpbGQg dHJlZSBpbiBhIHRlbXBvcmFyeSBmaWxlDQogCQkgIGhpZXJhcmNoeSBidXQg a2VlcCB0aGUgaW5zdGFsbCB0cmVlIGluIGEgbW9yZQ0KLQkJICBwZXJtYW5l bnQgbG9jYXRpb24uPC9QQVJBPg0KKwkJICBwZXJtYW5lbnQgbG9jYXRpb24u ICBUaGUgYXJndW1lbnQgc2hvdWxkIGJlIGFuDQorCQkgIGFic29sdXRlIHBh dGggbmFtZS48L1BBUkE+DQorPC9MSVNUSVRFTT4NCis8L1ZBUkxJU1RFTlRS WT4NCis8VkFSTElTVEVOVFJZPg0KKzxURVJNPjxPUFRJT04+LS1idWlsZC1w cmVmaXg9Jmx0O2RpciZndDs8L09QVElPTj48L1RFUk0+DQorPExJU1RJVEVN Pg0KKzxQQVJBPlNwZWNpZmllcyBhbiBhbHRlcm5hdGl2ZSBsb2NhdGlvbiBm b3IgdGhlIGJ1aWxkIHRyZWUuIEJ5DQorCQkgIGRlZmF1bHQsIHRoZSBidWls ZCB0cmVlIGlzIHRoZSBjdXJyZW50DQorCQkgIGRpcmVjdG9yeS4gRGV2ZWxv cGVycyBtYXkgcHJlZmVyIHRvIGxvY2F0ZSB0aGUgYnVpbGQNCisJCSAgdHJl ZSBzZXBhcmF0ZSBmcm9tIHRoZSBpbnN0YWxsIHRyZWUuICBUaGUgYXJndW1l bnQNCisJCSAgc2hvdWxkIGJlIGFuIGFic29sdXRlIHBhdGggbmFtZS48L1BB UkE+DQorPC9MSVNUSVRFTT4NCis8L1ZBUkxJU1RFTlRSWT4NCis8VkFSTElT VEVOVFJZPg0KKzxURVJNPjxPUFRJT04+LS11c2UtY29uZmlndG9vbC1wYXRo czwvT1BUSU9OPjwvVEVSTT4NCis8VEVSTT48T1BUSU9OPi1DPC9PUFRJT04+ PC9URVJNPg0KKzxMSVNUSVRFTT4NCis8UEFSQT5DaGFuZ2UgdGhlIGRlZmF1 bHQgYnVpbGQgcHJlZml4ICh0aGUgY3VycmVudCBkaXJlY3RvcnkpIGFuZA0K KyAgaW5zdGFsbCBwcmVmaXggKGluc3RhbGwgZGlyZWN0b3J5IGluIHRoZSBi dWlsZCB0cmVlKSB0byBtaW1pYyB0aGUNCisgIHBhdGhzIHVzZWQgYnkgPENP TU1BTkQ+Y29uZmlndG9vbDwvQ09NTUFORD4uICBTcGVjaWZpY2FsbHksIGlm IHRoZQ0KKyAgY29uZmlnIGZpbGUgaXMgZ2l2ZW4gYnkgPE9QVElPTj4tLWNv bmZpZz0vcGF0aC90by9YLmVjYzwvT1BUSU9OPiwNCisgIHRoZSBidWlsZCB0 cmVlIGlzIGJ1aWx0IGluDQorICA8ZmlsZW5hbWU+L3BhdGgvdG8vWF9idWls ZDwvZmlsZW5hbWU+IGFuZCB0aGUgaW5zdGFsbCB0cmVlIGlzIHB1dCBpbg0K KyAgPGZpbGVuYW1lPi9wYXRoL3RvL1hfaW5zdGFsbDwvZmlsZW5hbWU+LiBJ ZiA8ZmlsZW5hbWU+WC5lY2M8L2ZpbGVuYW1lPg0KKyAgaXMgaW4gdGhlIGN1 cnJlbnQgZGlyZWN0b3J5LCA8ZmlsZW5hbWU+WF9idWlsZDwvZmlsZW5hbWU+ DQorICBhbmQgPGZpbGVuYW1lPlhfaW5zdGFsbDwvZmlsZW5hbWU+IHdpbGwg YmUgYWxzbzsgeW91IG5lZWRuJ3QgZ2l2ZQ0KKyAgdGhlIHBhdGggb2YgPGZp bGVuYW1lPlguZWNjPC9maWxlbmFtZT4uIEFuIGV4cGxpY2l0IDxPUFRJT04+ LS1idWlsZC1wcmVmaXg8L09QVElPTj4gb3INCisgIDxPUFRJT04+LS1pbnN0 YWxsLXByZWZpeDwvT1BUSU9OPiAob3IgPE9QVElPTj4tLXByZWZpeDwvT1BU SU9OPikNCisgIHdpbGwgb3ZlcmlkZSB0aGVzZSBkZWZhdWx0cy48L1BBUkE+ DQogPC9MSVNUSVRFTT4NCiA8L1ZBUkxJU1RFTlRSWT4NCiA8VkFSTElTVEVO VFJZPg0KSW5kZXg6IGhvc3QvdG9vbHMvY29uZmlndG9vbC9zdGFuZGFsb25l L2NvbW1vbi9jZGxfZXhlYy5jeHgNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N ClJDUyBmaWxlOiAvY3ZzL2Vjb3MvZWNvcy9ob3N0L3Rvb2xzL2NvbmZpZ3Rv b2wvc3RhbmRhbG9uZS9jb21tb24vY2RsX2V4ZWMuY3h4LHYNCnJldHJpZXZp bmcgcmV2aXNpb24gMS4xNQ0KZGlmZiAtdSAtcjEuMTUgY2RsX2V4ZWMuY3h4 DQotLS0gaG9zdC90b29scy9jb25maWd0b29sL3N0YW5kYWxvbmUvY29tbW9u L2NkbF9leGVjLmN4eAkyIEphbiAyMDA2IDIxOjE0OjIyIC0wMDAwCTEuMTUN CisrKyBob3N0L3Rvb2xzL2NvbmZpZ3Rvb2wvc3RhbmRhbG9uZS9jb21tb24v Y2RsX2V4ZWMuY3h4CTMgTWFyIDIwMDggMTY6NTk6MjcgLTAwMDANCkBAIC02 MiwxMCArNjIsMTIgQEANCiBpbnQgIGNkbF9leGVjOjpkZWJ1Z19sZXZlbCAg ICAgID0gMDsNCiANCiBjZGxfZXhlYzo6Y2RsX2V4ZWMgKGNvbnN0IHN0ZDo6 c3RyaW5nIHJlcG9zaXRvcnlfYXJnLCBjb25zdCBzdGQ6OnN0cmluZyBzYXZl ZmlsZV9hcmcsDQotICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0 cmluZyBpbnN0YWxsX2FyZywgYm9vbCBub19yZXNvbHZlX2FyZykNCisgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGluc3RhbGxfYXJn LCBjb25zdCBzdGQ6OnN0cmluZyBidWlsZF90cmVlX2FyZywNCisgICAgICAg ICAgICAgICAgICAgIGJvb2wgbm9fcmVzb2x2ZV9hcmcpDQogICAgIDogcmVw b3NpdG9yeShyZXBvc2l0b3J5X2FyZyksDQogICAgICAgc2F2ZWZpbGUoc2F2 ZWZpbGVfYXJnKSwNCiAgICAgICBpbnN0YWxsX3ByZWZpeChpbnN0YWxsX2Fy ZyksDQorICAgICAgYnVpbGRfdHJlZShidWlsZF90cmVlX2FyZyksDQogICAg ICAgbm9fcmVzb2x2ZShub19yZXNvbHZlX2FyZyksDQogICAgICAgcGtnZGF0 YSAoTlVMTCksDQogICAgICAgaW50ZXJwIChOVUxMKSwNCkBAIC00ODAsMjAg KzQ4Miw4IEBADQogICAgICAgICAgICAgLy8gRG8gbm90aGluZw0KICAgICAg ICAgfQ0KICAgICAgICAgZWxzZSBpZiAoaWdub3JlX2Vycm9ycyB8fCAoMCA9 PSBjb25maWctPmdldF9hbGxfY29uZmxpY3RzKCkuc2l6ZSgpKSkgew0KLSNp ZmRlZiBfTVNDX1ZFUg0KLSAgICAgICAgICAgIGNoYXIgY3dkIFtfTUFYX1BB VEggKyAxXTsNCi0jZWxzZQ0KLSAgICAgICAgICAgIGNoYXIgY3dkIFtQQVRI X01BWCArIDFdOw0KLSNlbmRpZg0KLSAgICAgICAgICAgIGdldGN3ZCAoY3dk LCBzaXplb2YgY3dkKTsNCi0jaWZkZWYgX19DWUdXSU5fXw0KLSAgICAgICAg ICAgIGNoYXIgY3dkX3dpbjMyIFtNQVhQQVRITEVOICsgMV07DQotICAgICAg ICAgICAgY3lnd2luX2NvbnZfdG9fd2luMzJfcGF0aCAoY3dkLCBjd2Rfd2lu MzIpOw0KLSAgICAgICAgICAgIGdlbmVyYXRlX2J1aWxkX3RyZWUgKGNvbmZp ZywgY3dkX3dpbjMyLCBpbnN0YWxsX3ByZWZpeCk7DQotI2Vsc2UNCi0gICAg ICAgICAgICBnZW5lcmF0ZV9idWlsZF90cmVlIChjb25maWcsIGN3ZCwgaW5z dGFsbF9wcmVmaXgpOw0KLSNlbmRpZg0KLSAgICAgICAgICAgIGNvbmZpZy0+ Z2VuZXJhdGVfY29uZmlnX2hlYWRlcnMgKGluc3RhbGxfcHJlZml4LmVtcHR5 ICgpID8gImluc3RhbGwvaW5jbHVkZS9wa2djb25mIiA6IGluc3RhbGxfcHJl Zml4ICsgIi9pbmNsdWRlL3BrZ2NvbmYiKTsNCisgICAgICAgICAgICBnZW5l cmF0ZV9idWlsZF90cmVlIChjb25maWcsIGJ1aWxkX3RyZWUsIGluc3RhbGxf cHJlZml4KTsNCisgICAgICAgICAgICBjb25maWctPmdlbmVyYXRlX2NvbmZp Z19oZWFkZXJzIChpbnN0YWxsX3ByZWZpeCArICIvaW5jbHVkZS9wa2djb25m Iik7DQogICAgICAgICAgICAgc3RhdHVzID0gdHJ1ZTsNCiAjaWZkZWYgX19D WUdXSU5fXw0KICAgICAgICAgICAgIGNoYXIgYnVmWzEwMF07DQpJbmRleDog aG9zdC90b29scy9jb25maWd0b29sL3N0YW5kYWxvbmUvY29tbW9uL2NkbF9l eGVjLmh4eA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9j dnMvZWNvcy9lY29zL2hvc3QvdG9vbHMvY29uZmlndG9vbC9zdGFuZGFsb25l L2NvbW1vbi9jZGxfZXhlYy5oeHgsdg0KcmV0cmlldmluZyByZXZpc2lvbiAx LjQNCmRpZmYgLXUgLXIxLjQgY2RsX2V4ZWMuaHh4DQotLS0gaG9zdC90b29s cy9jb25maWd0b29sL3N0YW5kYWxvbmUvY29tbW9uL2NkbF9leGVjLmh4eAky MCBNYXkgMjAwMiAyMjoxOToyOCAtMDAwMAkxLjQNCisrKyBob3N0L3Rvb2xz L2NvbmZpZ3Rvb2wvc3RhbmRhbG9uZS9jb21tb24vY2RsX2V4ZWMuaHh4CTMg TWFyIDIwMDggMTY6NTk6MjcgLTAwMDANCkBAIC0yNiw3ICsyNiw5IEBADQog DQogY2xhc3MgY2RsX2V4ZWMgew0KIHB1YmxpYzoNCi0gICAgY2RsX2V4ZWMg KGNvbnN0IHN0ZDo6c3RyaW5nIHJlcG9zaXRvcnlfdHJlZSwgY29uc3Qgc3Rk OjpzdHJpbmcgc2F2ZWZpbGVfbmFtZSwgY29uc3Qgc3RkOjpzdHJpbmcgaW5z dGFsbF90cmVlLCBib29sIG5vX3Jlc29sdmUpOw0KKyAgICBjZGxfZXhlYyAo Y29uc3Qgc3RkOjpzdHJpbmcgcmVwb3NpdG9yeV90cmVlLCBjb25zdCBzdGQ6 OnN0cmluZyBzYXZlZmlsZV9uYW1lLA0KKyAgICAgICAgICAgICAgY29uc3Qg c3RkOjpzdHJpbmcgaW5zdGFsbF90cmVlLCBjb25zdCBzdGQ6OnN0cmluZyBi dWlsZF90cmVlLA0KKyAgICAgICAgICAgICAgYm9vbCBub19yZXNvbHZlKTsN CiAgICAgYm9vbCBjbWRfbmV3IChjb25zdCBzdGQ6OnN0cmluZyBjZGxfaGFy ZHdhcmUsIGNvbnN0IHN0ZDo6c3RyaW5nIGNkbF90ZW1wbGF0ZSA9ICJkZWZh dWx0IiwgY29uc3Qgc3RkOjpzdHJpbmcgY2RsX3ZlcnNpb24gPSAiIik7DQog ICAgIGJvb2wgY21kX3RyZWUgKCk7DQogICAgIGJvb2wgY21kX2NoZWNrICgp Ow0KQEAgLTU0LDYgKzU2LDcgQEANCiAgICAgc3RkOjpzdHJpbmcgcmVwb3Np dG9yeTsNCiAgICAgc3RkOjpzdHJpbmcgc2F2ZWZpbGU7DQogICAgIHN0ZDo6 c3RyaW5nIGluc3RhbGxfcHJlZml4Ow0KKyAgICBzdGQ6OnN0cmluZyBidWls ZF90cmVlOw0KICAgICBib29sIG5vX3Jlc29sdmU7DQogICAgIHN0YXRpYyBi b29sIGRlYnVnX2xldmVsX3NldDsNCiAgICAgc3RhdGljIGludCAgZGVidWdf bGV2ZWw7DQpJbmRleDogaG9zdC90b29scy9jb25maWd0b29sL3N0YW5kYWxv bmUvY29tbW9uL2Vjb3Njb25maWcuY3h4DQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQpSQ1MgZmlsZTogL2N2cy9lY29zL2Vjb3MvaG9zdC90b29scy9jb25m aWd0b29sL3N0YW5kYWxvbmUvY29tbW9uL2Vjb3Njb25maWcuY3h4LHYNCnJl dHJpZXZpbmcgcmV2aXNpb24gMS4xNQ0KZGlmZiAtdSAtcjEuMTUgZWNvc2Nv bmZpZy5jeHgNCi0tLSBob3N0L3Rvb2xzL2NvbmZpZ3Rvb2wvc3RhbmRhbG9u ZS9jb21tb24vZWNvc2NvbmZpZy5jeHgJMTEgSnVsIDIwMDYgMDk6NTY6MTQg LTAwMDAJMS4xNQ0KKysrIGhvc3QvdG9vbHMvY29uZmlndG9vbC9zdGFuZGFs b25lL2NvbW1vbi9lY29zY29uZmlnLmN4eAkzIE1hciAyMDA4IDE2OjU5OjI3 IC0wMDAwDQpAQCAtNTcsMTIgKzU3LDkwIEBADQogI2RlZmluZSBERUZBVUxU X1NBVkVfRklMRSAiZWNvcy5lY2MiDQogc3RhdGljIGNoYXIqIHRvb2wgPSAi ZWNvc2NvbmZpZyI7DQogDQorDQorc3RhdGljIGJvb2wNCitnZXRfYXJnX3Bh cm0oY29uc3QgY2hhciAqIHBhcm1uYW1lLCBjb25zdCBjaGFyICogcGFybWRl c2MsDQorICAgICAgICAgICAgIHN0ZDo6c3RyaW5nICYgb3V0dmFsLCAgaW50 ICYgY29tbWFuZF9pbmRleCwNCisgICAgICAgICAgICAgY29uc3QgaW50IGFy Z2MsIGNoYXIgKiBhcmd2IFtdKQ0KKyAgICAgICAgICAgICAgICAgICAgICAg DQorew0KKyAgICBib29sIGFyZ3Nfb2sgPSB0cnVlOw0KKyAgICBjb25zdCBj aGFyICogYXJnID0gYXJndltjb21tYW5kX2luZGV4XTsNCisgICAgc2l6ZV90 IHBhcm1sZW4gPSBzdHJsZW4ocGFybW5hbWUpOw0KKyAgICBzdGQ6OnN0cmlu ZyBhcmd2YWwgPSBvdXR2YWw7DQorICAgIA0KKyAgICBpZiAoIiIgIT0gYXJn dmFsKSB7DQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiB0aGUgYCVz JyBvcHRpb24gc2hvdWxkIGJlIHVzZWQgb25seSBvbmNlLlxuIiwgdG9vbCwg cGFybW5hbWUpOw0KKyAgICAgICAgYXJnc19vayA9IGZhbHNlOw0KKyAgICB9 IGVsc2Ugew0KKyAgICAgICAgaWYgKCc9JyA9PSBhcmdbcGFybWxlbl0pIHsN CisgICAgICAgICAgICBhcmd2YWwgPSBzdGQ6OnN0cmluZyhhcmcgKyBwYXJt bGVuICsgMSk7DQorICAgICAgICAgICAgaWYgKCIiID09IGFyZ3ZhbCkgew0K KyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBtaXNzaW5n ICVzIGFmdGVyIGAlcz0nXG4iLCB0b29sLCBwYXJtZGVzYywgcGFybW5hbWUp Ow0KKyAgICAgICAgICAgICAgICBhcmdzX29rID0gZmFsc2U7DQorICAgICAg ICAgICAgfQ0KKyAgICAgICAgfSBlbHNlIGlmICgnXDAnID09IGFyZ1twYXJt bGVuXSkgew0KKyAgICAgICAgICAgIGNvbW1hbmRfaW5kZXgrKzsNCisgICAg ICAgICAgICBpZiAoY29tbWFuZF9pbmRleCA9PSBhcmdjKSB7DQorICAgICAg ICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IG1pc3NpbmcgJXMgYWZ0 ZXIgYCVzJ1xuIiwgdG9vbCwgcGFybWRlc2MsIHBhcm1uYW1lKTsNCisgICAg ICAgICAgICAgICAgYXJnc19vayA9IGZhbHNlOw0KKyAgICAgICAgICAgIH0g ZWxzZSB7DQorICAgICAgICAgICAgICAgIGFyZ3ZhbCA9IGFyZ3ZbY29tbWFu ZF9pbmRleF07DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfSBlbHNlIHsN CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBpbnZhbGlkIG9w dGlvbiBgJXMnXG4iLCB0b29sLCBhcmcpOw0KKyAgICAgICAgICAgIGFyZ3Nf b2sgPSBmYWxzZTsNCisgICAgICAgIH0NCisgICAgfQ0KKyAgICBpZiAoYXJn c19vaykgew0KKyAgICAgICAgb3V0dmFsID0gYXJndmFsOw0KKyAgICB9DQor ICAgIHJldHVybiBhcmdzX29rOw0KK30NCisNCisNCisvLyBUaGUgcGF0aCBt dXN0IGFscmVhZHkgZXhpc3QgZm9yIHRoaXMgdG8gd29yay4NCitzdGF0aWMg c3RkOjpzdHJpbmcgZ2V0X2Z1bGxfcGF0aChjb25zdCBzdGQ6OnN0cmluZyAm IHBhdGgpDQorew0KKyAgICBjaGFyICogZnAgPSBOVUxMOw0KKyNpZmRlZiBf TVNDX1ZFUg0KKyAgICBjaGFyIHRvb2xwYXRoIFtfTUFYX1BBVEggKyAxXTsN CisgICAgZnAgPSBfZnVsbHBhdGggKHRvb2xwYXRoLCBwYXRoLmNfc3RyKCks IHNpemVvZiAodG9vbHBhdGgpKTsgLy8gZ2V0IHRoZSBhYnNvbHV0ZSBwYXRo IHRvIHRoZSB0b29sDQorI2Vsc2UNCisgICAgY2hhciB0b29scGF0aCBbTUFY UEFUSExFTiArIDFdOw0KKyAgICBmcCA9IHJlYWxwYXRoIChwYXRoLmNfc3Ry KCksIHRvb2xwYXRoKTsgLy8gZ2V0IHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRo ZSB0b29sDQorI2VuZGlmDQorICAgIHJldHVybiBzdGQ6OnN0cmluZyhmcCAh PSBOVUxMID8gZnAgOiBwYXRoKTsNCit9DQorDQorDQorc3RhdGljIHN0ZDo6 c3RyaW5nIGdldF9jd2QoKQ0KK3sNCisgICAgY2hhciAqIHBjd2Q7DQorI2lm ZGVmIF9NU0NfVkVSDQorICAgIGNoYXIgY3dkIFtfTUFYX1BBVEggKyAxXTsN CisjZWxzZQ0KKyAgICBjaGFyIGN3ZCBbUEFUSF9NQVggKyAxXTsNCisjZW5k aWYNCisgICAgZ2V0Y3dkIChjd2QsIHNpemVvZiBjd2QpOw0KKyNpZmRlZiBf X0NZR1dJTl9fDQorICAgIGNoYXIgY3dkX3dpbjMyIFtNQVhQQVRITEVOICsg MV07DQorICAgIGN5Z3dpbl9jb252X3RvX3dpbjMyX3BhdGggKGN3ZCwgY3dk X3dpbjMyKTsNCisgICAgcGN3ZCA9IGN3ZF93aW4zMjsNCisjZWxzZQ0KKyAg ICBwY3dkID0gY3dkOw0KKyNlbmRpZg0KKyAgICByZXR1cm4gc3RkOjpzdHJp bmcocGN3ZCk7DQorfQ0KKw0KKw0KIGludCBtYWluIChpbnQgYXJnYywgY2hh ciAqIGFyZ3YgW10pIHsNCiANCiAgICAgLy8gcHJvY2VzcyBjb21tYW5kIHF1 YWxpZmllcnMNCiAgICAgc3RkOjpzdHJpbmcgcmVwb3NpdG9yeTsgICAgIC8v IC0tc3JjZGlyPQ0KICAgICBzdGQ6OnN0cmluZyBzYXZlZmlsZTsgICAgICAg Ly8gLS1jb25maWc9DQotICAgIHN0ZDo6c3RyaW5nIGluc3RhbGxfcHJlZml4 OyAvLyAtLXByZWZpeD0NCisgICAgc3RkOjpzdHJpbmcgaW5zdGFsbF9wcmVm aXg7IC8vIC0tKGluc3RhbGwtKT9wcmVmaXg9DQorICAgIHN0ZDo6c3RyaW5n IGJ1aWxkX3ByZWZpeDsgICAvLyAtLWJ1aWxkLXByZWZpeD0NCiAgICAgYm9v bCB2ZXJzaW9uID0gZmFsc2U7ICAgICAgIC8vIC0tdmVyc2lvbg0KICAgICBi b29sIG5vX3Jlc29sdmUgPSBmYWxzZTsgICAgLy8gLS1uby1yZXNvbHZlDQog ICAgIGJvb2wgcXVpZXQgPSBmYWxzZTsgICAgICAgICAvLyAtcSwgLS1xdWll dA0KQEAgLTcxLDYgKzE0OSw3IEBADQogICAgIGJvb2wgbm9fdXBkYXRlcyA9 IGZhbHNlOyAgICAvLyAtbiwgLS1uby11cGRhdGVzLA0KICAgICBib29sIGhl bHAgPSBmYWxzZTsgICAgICAgICAgLy8gLS1oZWxwDQogICAgIGJvb2wgZW5h YmxlX2RlYnVnX3NldCA9IGZhbHNlOyAgLy8gLS1lbmFibGUtZGVidWcgb3Ig LS1kaXNhYmxlLWRlYnVnDQorICAgIGJvb2wgdXNlX2NvbmZpZ3Rvb2xfcGF0 aHMgPSBmYWxzZTsgLy8gLS11c2UtY29uZmlndG9vbC1wYXRocyBvciAtQw0K ICAgICBpbnQgIGRlYnVnX2xldmVsID0gMDsgICAgICAgLy8gLS1lbmFibGUt ZGVidWc9WzB8MXwyXQ0KIA0KICNpZmRlZiBfX0NZR1dJTl9fDQpAQCAtOTcs NiArMTc2LDggQEANCiAgICAgICAgIH0gZWxzZSBpZiAoKDAgPT0gc3RyY21w KGFyZywgIi12IikpIHx8ICgwID09IHN0cmNtcChhcmcsICItLXZlcmJvc2Ui KSkpIHsNCiAgICAgICAgICAgICB2ZXJib3NlID0gdHJ1ZTsNCiAgICAgICAg ICAgICBxdWlldCA9IGZhbHNlOw0KKyAgICAgICAgfSBlbHNlIGlmICgoMCA9 PSBzdHJjbXAoYXJnLCAiLUMiKSkgfHwgKDAgPT0gc3RyY21wKGFyZywgIi0t dXNlLWNvbmZpZ3Rvb2wtcGF0aHMiKSkpIHsNCisgICAgICAgICAgICB1c2Vf Y29uZmlndG9vbF9wYXRocyA9IHRydWU7DQogICAgICAgICB9IGVsc2UgaWYg KCgwID09IHN0cmNtcChhcmcsICItaSIpKSB8fCAoMCA9PSBzdHJjbXAoYXJn LCAiLS1pZ25vcmUtZXJyb3JzIikpKSB7DQogICAgICAgICAgICAgLy8gRHVw bGljYXRlIHVzZSBvZiAtaSBhbmQgdGhlIG90aGVyIGZsYWdzIGlzIGhhcm1s ZXNzLg0KICAgICAgICAgICAgIGlnbm9yZV9lcnJvcnMgPSB0cnVlOw0KQEAg LTExMyw3OSArMTk0LDMwIEBADQogICAgICAgICAgICAgZW5hYmxlX2RlYnVn X3NldCA9IHRydWU7DQogICAgICAgICAgICAgZGVidWdfbGV2ZWwgPSAwOw0K ICAgICAgICAgfSBlbHNlIGlmICgwID09IHN0cm5jbXAoYXJnLCAiLS1zcmNk aXIiLCA4KSkgew0KLSAgICAgICAgICAgIC8vIER1cGxpY2F0ZSB1c2Ugb2Yg LS1zcmNkaXIgYW5kIG90aGVyIGRhdGEtY29udGFpbmluZyBvcHRpb25zIHNo b3VsZA0KLSAgICAgICAgICAgIC8vIGJlIG1hcmtlZCBhcyBhbiBlcnJvci4N Ci0gICAgICAgICAgICBpZiAoIiIgIT0gcmVwb3NpdG9yeSkgew0KLSAgICAg ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiB0aGUgYC0tc3JjZGly JyBvcHRpb24gc2hvdWxkIGJlIHVzZWQgb25seSBvbmNlLlxuIiwgdG9vbCk7 DQotICAgICAgICAgICAgICAgIGFyZ3Nfb2sgPSBmYWxzZTsNCi0gICAgICAg ICAgICB9IGVsc2Ugew0KLSAgICAgICAgICAgICAgICBpZiAoJz0nID09IGFy Z1s4XSkgew0KLSAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeSA9IHN0 ZDo6c3RyaW5nKGFyZyArIDkpOw0KLSAgICAgICAgICAgICAgICAgICAgaWYg KCIiID09IHJlcG9zaXRvcnkpIHsNCi0gICAgICAgICAgICAgICAgICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBtaXNzaW5nIGNvbXBvbmVudCByZXBv c2l0b3J5IGFmdGVyIGAtLXNyY2Rpcj0nXG4iLCB0b29sKTsNCi0gICAgICAg ICAgICAgICAgICAgICAgICBhcmdzX29rID0gZmFsc2U7DQotICAgICAgICAg ICAgICAgICAgICB9DQotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ1ww JyA9PSBhcmdbOF0pIHsNCi0gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRf aW5kZXgrKzsNCi0gICAgICAgICAgICAgICAgICAgIGlmIChjb21tYW5kX2lu ZGV4ID09IGFyZ2MpIHsNCi0gICAgICAgICAgICAgICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIiVzOiBtaXNzaW5nIGNvbXBvbmVudCByZXBvc2l0b3J5 IGFmdGVyIGAtLXNyY2RpcidcbiIsIHRvb2wpOw0KLSAgICAgICAgICAgICAg ICAgICAgICAgIGFyZ3Nfb2sgPSBmYWxzZTsNCi0gICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7DQotICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3Np dG9yeSA9IGFyZ3ZbY29tbWFuZF9pbmRleF07DQotICAgICAgICAgICAgICAg ICAgICB9DQotICAgICAgICAgICAgICAgIH0gZWxzZSB7DQotICAgICAgICAg ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBpbnZhbGlkIG9wdGlv biBgJXMnXG4iLCB0b29sLCBhcmcpOw0KLSAgICAgICAgICAgICAgICAgICAg YXJnc19vayA9IGZhbHNlOw0KLSAgICAgICAgICAgICAgICB9DQotICAgICAg ICAgICAgfQ0KKyAgICAgICAgICAgIGJvb2wgdGhpc19hcmdfb2sgPSBnZXRf YXJnX3Bhcm0oIi0tc3JjZGlyIiwgImNvbXBvbmVudCByZXBvc2l0b3J5IiwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlcG9zaXRvcnksIGNvbW1hbmRfaW5kZXgsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdjLCBhcmd2KTsNCisg ICAgICAgICAgICBhcmdzX29rID0gYXJnc19vayAmJiB0aGlzX2FyZ19vazsN CiAgICAgICAgIH0gZWxzZSBpZiAoMCA9PSBzdHJuY21wKGFyZywgIi0tY29u ZmlnIiwgOCkpIHsNCi0gICAgICAgICAgICBpZiAoIiIgIT0gc2F2ZWZpbGUp IHsNCi0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogdGhl IGAtLWNvbmZpZycgb3B0aW9uIHNob3VsZCBiZSB1c2VkIG9ubHkgb25jZS5c biIsIHRvb2wpOw0KLSAgICAgICAgICAgICAgICBhcmdzX29rID0gZmFsc2U7 DQotICAgICAgICAgICAgfSBlbHNlIHsNCi0gICAgICAgICAgICAgICAgaWYg KCc9JyA9PSBhcmdbOF0pIHsNCi0gICAgICAgICAgICAgICAgICAgIHNhdmVm aWxlID0gc3RkOjpzdHJpbmcoYXJnICsgOSk7DQotICAgICAgICAgICAgICAg ICAgICBpZiAoIiIgPT0gc2F2ZWZpbGUpIHsNCi0gICAgICAgICAgICAgICAg ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBtaXNzaW5nIGNvbmZpZ3Vy YXRpb24gc2F2ZWZpbGUgYWZ0ZXIgYC0tY29uZmlnPSdcbiIsIHRvb2wpOw0K LSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Nfb2sgPSBmYWxzZTsNCi0g ICAgICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICAgICAgfSBlbHNl IGlmICgnXDAnID09IGFyZ1s4XSkgew0KLSAgICAgICAgICAgICAgICAgICAg Y29tbWFuZF9pbmRleCsrOw0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNv bW1hbmRfaW5kZXggPT0gYXJnYykgew0KLSAgICAgICAgICAgICAgICAgICAg ICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IG1pc3NpbmcgY29uZmlndXJhdGlv biBzYXZlZmlsZSBhZnRlciBgLS1jb25maWcnXG4iLCB0b29sKTsNCi0gICAg ICAgICAgICAgICAgICAgICAgICBhcmdzX29rID0gZmFsc2U7DQotICAgICAg ICAgICAgICAgICAgICB9IGVsc2Ugew0KLSAgICAgICAgICAgICAgICAgICAg ICAgIHNhdmVmaWxlID0gYXJndltjb21tYW5kX2luZGV4XTsNCi0gICAgICAg ICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICAgICAgfSBlbHNlIHsNCi0g ICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IGludmFs aWQgb3B0aW9uIGAlcydcbiIsIHRvb2wsIGFyZyk7DQotICAgICAgICAgICAg ICAgICAgICBhcmdzX29rID0gZmFsc2U7DQotICAgICAgICAgICAgICAgIH0N Ci0gICAgICAgICAgICB9DQorICAgICAgICAgICAgYm9vbCB0aGlzX2FyZ19v ayA9IGdldF9hcmdfcGFybSgiLS1jb25maWciLCAiY29uZmlndXJhdGlvbiBz YXZlZmlsZSIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzYXZlZmlsZSwgY29tbWFuZF9pbmRleCwNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ2MsIGFy Z3YpOw0KKyAgICAgICAgICAgIGFyZ3Nfb2sgPSBhcmdzX29rICYmIHRoaXNf YXJnX29rOw0KICAgICAgICAgfSBlbHNlIGlmICgwID09IHN0cm5jbXAoYXJn LCAiLS1wcmVmaXgiLCA4KSkgew0KLSAgICAgICAgICAgIGlmICgiIiAhPSBp bnN0YWxsX3ByZWZpeCkgew0KLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIiVzOiB0aGUgYC0tcHJlZml4JyBvcHRpb24gc2hvdWxkIGJlIHVz ZWQgb25seSBvbmNlLlxuIiwgdG9vbCk7DQotICAgICAgICAgICAgICAgIGFy Z3Nfb2sgPSBmYWxzZTsNCi0gICAgICAgICAgICB9IGVsc2Ugew0KLSAgICAg ICAgICAgICAgICBpZiAoJz0nID09IGFyZ1s4XSkgew0KLSAgICAgICAgICAg ICAgICAgICAgaW5zdGFsbF9wcmVmaXggPSBzdGQ6OnN0cmluZyhhcmcgKyA5 KTsNCi0gICAgICAgICAgICAgICAgICAgIGlmICgiIiA9PSBpbnN0YWxsX3By ZWZpeCkgew0KLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3Rk ZXJyLCAiJXM6IG1pc3NpbmcgaW5zdGFsbCBwcmVmaXggYWZ0ZXIgYC0tcHJl Zml4PSdcbiIsIHRvb2wpOw0KLSAgICAgICAgICAgICAgICAgICAgICAgIGFy Z3Nfb2sgPSBmYWxzZTsNCi0gICAgICAgICAgICAgICAgICAgIH0NCi0gICAg ICAgICAgICAgICAgfSBlbHNlIGlmICgnXDAnID09IGFyZ1s4XSkgew0KLSAg ICAgICAgICAgICAgICAgICAgY29tbWFuZF9pbmRleCsrOw0KLSAgICAgICAg ICAgICAgICAgICAgaWYgKGNvbW1hbmRfaW5kZXggPT0gYXJnYykgew0KLSAg ICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IG1p c3NpbmcgaW5zdGFsbCBwcmVmaXggYWZ0ZXIgYC0tcHJlZml4J1xuIiwgdG9v bCk7DQotICAgICAgICAgICAgICAgICAgICAgICAgYXJnc19vayA9IGZhbHNl Ow0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCi0gICAgICAgICAg ICAgICAgICAgICAgICBpbnN0YWxsX3ByZWZpeCA9IGFyZ3ZbY29tbWFuZF9p bmRleF07DQotICAgICAgICAgICAgICAgICAgICB9DQotICAgICAgICAgICAg ICAgIH0gZWxzZSB7DQotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIiVzOiBpbnZhbGlkIG9wdGlvbiBgJXMnXG4iLCB0b29sLCBhcmcp Ow0KLSAgICAgICAgICAgICAgICAgICAgYXJnc19vayA9IGZhbHNlOw0KLSAg ICAgICAgICAgICAgICB9DQotICAgICAgICAgICAgfQ0KKyAgICAgICAgICAg IGJvb2wgdGhpc19hcmdfb2sgPSBnZXRfYXJnX3Bhcm0oIi0tcHJlZml4Iiwg Imluc3RhbGwgcHJlZml4IiwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluc3RhbGxfcHJlZml4LCAgY29tbWFuZF9p bmRleCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFyZ2MsIGFyZ3YpOw0KKyAgICAgICAgICAgIGFyZ3Nfb2sgPSBh cmdzX29rICYmIHRoaXNfYXJnX29rOw0KKyAgICAgICAgfSBlbHNlIGlmICgw ID09IHN0cm5jbXAoYXJnLCAiLS1pbnN0YWxsLXByZWZpeCIsIDE2KSkgew0K KyAgICAgICAgICAgIGJvb2wgdGhpc19hcmdfb2sgPSBnZXRfYXJnX3Bhcm0o Ii0taW5zdGFsbC1wcmVmaXgiLCAiaW5zdGFsbCBwcmVmaXgiLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFs bF9wcmVmaXgsICBjb21tYW5kX2luZGV4LA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnYywgYXJndik7DQorICAg ICAgICAgICAgYXJnc19vayA9IGFyZ3Nfb2sgJiYgdGhpc19hcmdfb2s7DQor ICAgICAgICB9IGVsc2UgaWYgKDAgPT0gc3RybmNtcChhcmcsICItLWJ1aWxk LXByZWZpeCIsIDE0KSkgew0KKyAgICAgICAgICAgIGJvb2wgdGhpc19hcmdf b2sgPSBnZXRfYXJnX3Bhcm0oIi0tYnVpbGQtcHJlZml4IiwgImJ1aWxkIHBy ZWZpeCIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBidWlsZF9wcmVmaXgsIGNvbW1hbmRfaW5kZXgsDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdjLCBh cmd2KTsNCisgICAgICAgICAgICBhcmdzX29rID0gYXJnc19vayAmJiB0aGlz X2FyZ19vazsNCiAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgLy8g VGhlIGFyZ3VtZW50IGlzIG5vdCBhIHF1YWxpZmllcg0KICAgICAgICAgICAg IC8vIEhvd2V2ZXIsIG5vbmUgb2YgdGhlIHN1Yi1jb21tYW5kcyBiZWdpbiB3 aXRoIGEgLQ0KQEAgLTE5NywyMCArMjI5LDYgQEANCiAgICAgICAgIH0NCiAg ICAgfQ0KIA0KLSNpZiAwDQotICAgIHByaW50ZigiYXJnc19vayBpcyAlZFxu IiwgYXJnc19vayk7DQotICAgIHByaW50ZigiaGVscCBpcyAlZFxuIiwgaGVs cCk7DQotICAgIHByaW50ZigidmVyc2lvbiBpcyAlZFxuIiwgdmVyc2lvbik7 DQotICAgIHByaW50Zigibm9fcmVzb2x2ZSBpcyAlZFxuIiwgbm9fcmVzb2x2 ZSk7DQotICAgIHByaW50ZigicXVpZXQgaXMgJWRcbiIsIHF1aWV0KTsNCi0g ICAgcHJpbnRmKCJ2ZXJib3NlIGlzICVkXG4iLCB2ZXJib3NlKTsNCi0gICAg cHJpbnRmKCJuby11cGRhdGVzIGlzICVkXG4iLCBub191cGRhdGVzKTsNCi0g ICAgcHJpbnRmKCJpZ25vcmVfZXJyb3JzIGlzICVkXG4iLCBpZ25vcmVfZXJy b3JzKTsNCi0gICAgcHJpbnRmKCJyZXBvc2l0b3J5IGlzICVzXG4iLCByZXBv c2l0b3J5LmNfc3RyKCkpOw0KLSAgICBwcmludGYoInNhdmVmaWxlIGlzICVz XG4iLCBzYXZlZmlsZS5jX3N0cigpKTsNCi0gICAgcHJpbnRmKCJpbnN0YWxs X3ByZWZpeCBpcyAlc1xuIiwgaW5zdGFsbF9wcmVmaXguY19zdHIoKSk7DQot ICAgIGV4aXQoRVhJVF9TVUNDRVNTKTsNCi0jZW5kaWYNCiAgICAgDQogICAg IC8vIFVzdWFsbHkgYXJndltjb21tYW5kX2luZGV4XSB3aWxsIGJlIGEgc3Vi LWNvbW1hbmQsIHVubGVzcw0KICAgICAvLyAtLWhlbHAgb3IgLS12ZXJzaW9u IGhhcyBiZWVuIHVzZWQuDQpAQCAtMjM3LDYgKzI1NSwyOSBAQA0KICAgICBp ZiAoc2F2ZWZpbGUuZW1wdHkgKCkpIHsgLy8gaWYgdGhlIHNhdmUgZmlsZSB3 YXMgbm90IHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lDQogICAgICAg ICBzYXZlZmlsZSA9IERFRkFVTFRfU0FWRV9GSUxFOyAvLyB1c2UgdGhlIGRl ZmF1bHQgc2F2ZSBmaWxlDQogICAgIH0NCisgICAgc2F2ZWZpbGUgPSBnZXRf ZnVsbF9wYXRoKHNhdmVmaWxlKTsNCisgICAgaWYgKHNhdmVmaWxlLnNpemUo KSA8IDQgfHwgc2F2ZWZpbGUuc3Vic3RyKHNhdmVmaWxlLnNpemUoKSAtIDQp ICE9ICIuZWNjIikgew0KKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBp cyBub3QgYSBwcm9qZWN0IGZpbGUuXG4iLCBzYXZlZmlsZS5jX3N0cigpKTsN CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7DQorICAgIH0NCisNCisg ICAgaWYgKCAhIHVzZV9jb25maWd0b29sX3BhdGhzICkgew0KKyAgICAgICAg aWYgKGJ1aWxkX3ByZWZpeC5lbXB0eSgpKSB7DQorICAgICAgICAgICAgYnVp bGRfcHJlZml4ID0gZ2V0X2N3ZCgpOw0KKyAgICAgICAgfQ0KKyAgICAgICAg aWYgKGluc3RhbGxfcHJlZml4LmVtcHR5KCkpIHsNCisgICAgICAgICAgICBp bnN0YWxsX3ByZWZpeCA9IGJ1aWxkX3ByZWZpeCArICIvaW5zdGFsbCI7DQor ICAgICAgICB9DQorICAgIH0gZWxzZSB7DQorICAgICAgICBzdGQ6OnN0cmlu ZyBlY2NfcHJlZml4ID0gc2F2ZWZpbGUuc3Vic3RyKDAsIHNhdmVmaWxlLnNp emUoKSAtIDQpOw0KKyAgICAgICAgaWYgKGJ1aWxkX3ByZWZpeC5lbXB0eSgp KSB7DQorICAgICAgICAgICAgYnVpbGRfcHJlZml4ID0gZWNjX3ByZWZpeCAr ICJfYnVpbGQiOw0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKGluc3RhbGxf cHJlZml4LmVtcHR5KCkpIHsNCisgICAgICAgICAgICBpbnN0YWxsX3ByZWZp eCA9IGVjY19wcmVmaXggKyAiX2luc3RhbGwiOw0KKyAgICAgICAgfQ0KKyAg ICB9DQorICAgIA0KIA0KICAgICAvLyBmaW5kIHRoZSByZXBvc2l0b3J5DQog ICAgIGlmIChyZXBvc2l0b3J5LmVtcHR5ICgpKSB7IC8vIGlmIHRoZSByZXBv c2l0b3J5IHdhcyBub3Qgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUN CkBAIC0yNDUsMTYgKzI4Niw3IEBADQogICAgICAgICAgICAgcmVwb3NpdG9y eSA9IGVudl92YXI7DQogICAgICAgICB9IGVsc2UgeyAvLyB0aGUgRUNPU19S RVBPU0lUT1JZIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBkZWZpbmVk DQogICAgICAgICAgICAgLy8gYXNzdW1lIHRoYXQgdGhlIHRvb2wgaXMgbG9j YXRlZCBpbiB0aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeQ0KLSNpZmRlZiBf TVNDX1ZFUg0KLSAgICAgICAgICAgIGNoYXIgdG9vbHBhdGggW19NQVhfUEFU SCArIDFdOw0KLSAgICAgICAgICAgIF9mdWxscGF0aCAodG9vbHBhdGgsIGFy Z3YgWzBdLCBzaXplb2YgKHRvb2xwYXRoKSk7IC8vIGdldCB0aGUgYWJzb2x1 dGUgcGF0aCB0byB0aGUgdG9vbA0KLSNlbHNlDQotICAgICAgICAgICAgLy8g Tk9URTogcG9ydGFiaWxpdHkgcHJvYmxlbS4gcmVhbHBhdGgoKSBpcyBub3Qg YSBQT1NJWCBmdW5jdGlvbi4NCi0gICAgICAgICAgICAvLyBBbHRlcm5hdGl2 ZSBjb2RlIG1heSBiZSBuZWVkZWQgb24gc29tZSBwbGF0Zm9ybXMuDQotICAg ICAgICAgICAgY2hhciB0b29scGF0aCBbTUFYUEFUSExFTiArIDFdOw0KLSAg ICAgICAgICAgIHJlYWxwYXRoIChhcmd2IFswXSwgdG9vbHBhdGgpOyAvLyBn ZXQgdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHRvb2wNCi0jZW5kaWYNCi0g ICAgICAgICAgICByZXBvc2l0b3J5ID0gdG9vbHBhdGg7DQorICAgICAgICAg ICAgcmVwb3NpdG9yeSA9IGdldF9mdWxsX3BhdGgoYXJndlswXSk7DQogICAg ICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgbiA9IHJlcG9zaXRvcnkuc2l6 ZSAoKSAtIDE7IG4gPiAwOyBuLS0pIHsgLy8gZm9yIGVhY2ggY2hhciBzdGFy dGluZyBhdCB0aGUgdGFpbA0KICAgICAgICAgICAgICAgICBpZiAoKCdcXCcg PT0gcmVwb3NpdG9yeSBbbl0pIHx8ICgnLycgPT0gcmVwb3NpdG9yeSBbbl0p KSB7IC8vIGlmIHRoZSBjaGFyIGlzIGEgZGlyZWN0b3J5IHNlcGFyYXRvcg0K ICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeS5yZXNpemUgKG4pOyAv LyByZW1vdmUgdGhlIGZpbGVuYW1lIGZyb20gdGhlIGZpbGVwYXRoDQpAQCAt MjczLDkgKzMwNSwyNSBAQA0KICAgICB9DQogI2VuZGlmDQogDQorI2lmIDAN CisgICAgcHJpbnRmKCJhcmdzX29rIGlzICVkXG4iLCBhcmdzX29rKTsNCisg ICAgcHJpbnRmKCJoZWxwIGlzICVkXG4iLCBoZWxwKTsNCisgICAgcHJpbnRm KCJ2ZXJzaW9uIGlzICVkXG4iLCB2ZXJzaW9uKTsNCisgICAgcHJpbnRmKCJu b19yZXNvbHZlIGlzICVkXG4iLCBub19yZXNvbHZlKTsNCisgICAgcHJpbnRm KCJxdWlldCBpcyAlZFxuIiwgcXVpZXQpOw0KKyAgICBwcmludGYoInZlcmJv c2UgaXMgJWRcbiIsIHZlcmJvc2UpOw0KKyAgICBwcmludGYoIm5vLXVwZGF0 ZXMgaXMgJWRcbiIsIG5vX3VwZGF0ZXMpOw0KKyAgICBwcmludGYoImlnbm9y ZV9lcnJvcnMgaXMgJWRcbiIsIGlnbm9yZV9lcnJvcnMpOw0KKyAgICBwcmlu dGYoInJlcG9zaXRvcnkgaXMgJXNcbiIsIHJlcG9zaXRvcnkuY19zdHIoKSk7 DQorICAgIHByaW50Zigic2F2ZWZpbGUgaXMgJXNcbiIsIHNhdmVmaWxlLmNf c3RyKCkpOw0KKyAgICBwcmludGYoImluc3RhbGxfcHJlZml4IGlzICVzXG4i LCBpbnN0YWxsX3ByZWZpeC5jX3N0cigpKTsNCisgICAgcHJpbnRmKCJidWls ZF9wcmVmaXggaXMgJXNcbiIsIGJ1aWxkX3ByZWZpeC5jX3N0cigpKTsNCisg ICAgZXhpdChFWElUX1NVQ0NFU1MpOw0KKyNlbmRpZg0KKw0KICAgICAvLyBJ bml0aWFsaXplIHRoZSBjZGxfZXhlYyBjb2RlIChub3QgcXVpdGUgc3VyZSB3 aHkgdGhpcyBuZWVkcyBhDQogICAgIC8vIHNlcGFyYXRlIG9iamVjdCByYXRo ZXIgdGhhbiBqdXN0IGEgYnVuY2ggb2Ygc3RhdGljcykuIA0KLSAgICBjZGxf ZXhlYyBleGVjICh0cmltX3BhdGggKHJlcG9zaXRvcnkpLCBzYXZlZmlsZSwg dHJpbV9wYXRoIChpbnN0YWxsX3ByZWZpeCksIG5vX3Jlc29sdmUpOw0KKyAg ICBjZGxfZXhlYyBleGVjICh0cmltX3BhdGggKHJlcG9zaXRvcnkpLCBzYXZl ZmlsZSwgdHJpbV9wYXRoIChpbnN0YWxsX3ByZWZpeCksIHRyaW1fcGF0aCAo YnVpbGRfcHJlZml4KSwgbm9fcmVzb2x2ZSk7DQogICAgIGNkbF9leGVjOjpz ZXRfcXVpZXRfbW9kZShxdWlldCk7DQogICAgIGNkbF9leGVjOjpzZXRfdmVy Ym9zZV9tb2RlKHZlcmJvc2UpOw0KICAgICBjZGxfZXhlYzo6c2V0X2lnbm9y ZV9lcnJvcnNfbW9kZShpZ25vcmVfZXJyb3JzKTsNCkBAIC00NDIsNiArNDkw LDkgQEANCiAgICAgcHJpbnRmICgiICBxdWFsaWZpZXJzIGFyZTpcbiIpOw0K ICAgICBwcmludGYgKCIgICAgLS1jb25maWc9RklMRSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogdGhlIGNvbmZpZ3VyYXRpb24gZmlsZVxuIik7 DQogICAgIHByaW50ZiAoIiAgICAtLXByZWZpeD1ESVJFQ1RPUlkgICAgICAg ICAgICAgICAgICAgICAgICAgOiB0aGUgaW5zdGFsbCBwcmVmaXhcbiIpOw0K KyAgICBwcmludGYgKCIgICAgLS1pbnN0YWxsLXByZWZpeD1ESVJFQ1RPUlkg ICAgICAgICAgICAgICAgIDogdGhlIGluc3RhbGwgcHJlZml4IChzYW1lIGFz IC0tcHJlZml4KVxuIik7DQorICAgIHByaW50ZiAoIiAgICAtLWJ1aWxkLXBy ZWZpeD1ESVJFQ1RPUlkgICAgICAgICAgICAgICAgICAgOiB0aGUgYnVpbGQg cHJlZml4XG4iKTsNCisgICAgcHJpbnRmICgiICAgIC1DLCAtLXVzZS1jb25m aWd0b29sLXBhdGhzICAgICAgICAgICAgICAgICA6IG1ha2UgZGVmYXVsdCBp bnN0YWxsIGFuZCBidWlsZCBwcmVmaXhlcyBsaWtlIGNvbmZpZ3Rvb2wnc1xu Iik7DQogICAgIHByaW50ZiAoIiAgICAtLXNyY2Rpcj1ESVJFQ1RPUlkgICAg ICAgICAgICAgICAgICAgICAgICAgOiB0aGUgc291cmNlIHJlcG9zaXRvcnlc biIpOw0KICAgICBwcmludGYgKCIgICAgLS1uby1yZXNvbHZlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogZGlzYWJsZSBjb25mbGljdCByZXNv bHV0aW9uXG4iKTsNCiAgICAgcHJpbnRmICgiICAgIC0tdmVyc2lvbiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNob3cgdmVyc2lvbiBh bmQgY29weXJpZ2h0XG4iKTsNCg==