Return-Path: X-Authentication-Warning: harvey.cyclic.com: majordomo set sender to owner-bug-cvs-list@harvey.cyclic.com using -f Date: Sun, 24 Jan 1999 03:53:33 +0500 (YEKT) From: Vitaly Fedrushkov To: Jim Kingdon cc: bug-cvs@gnu.org Subject: Re: BADROOT moved to runtime In-Reply-To: <199901200522.AAA23074@harvey.cyclic.com> Content-Type: MULTIPART/MIXED; BOUNDARY="-1463803639-2098444784-917132013=:2743" Sender: owner-bug-cvs-list@cyclic.com Precedence: bulk This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---1463803639-2098444784-917132013=:2743 Content-Type: TEXT/PLAIN; charset=US-ASCII Good $daytime, First, thanks for your efforts in maintaining critical part of Open Source community technology. > Date: Wed, 20 Jan 1999 00:22:34 -0500 > From: Jim Kingdon > To: willy@snowyowl.csu.ac.ru > Cc: bug-cvs@gnu.org > Subject: Re: BADROOT moved to runtime > > Included below is a silly patch that adds a new option to CVSROOT/config > > to replace CVS_BADROOT from src/options.h. > Thanks; I have added that patch to > http://www.cyclic.com/cvs/dev-config.html OK here's another attempt, against Thursday CVS snapshot. Should apply cleanly now :) | [Could use some tweaks to the documentation (to simplify and avoid | for example, cryptic abbreviations like "root-priv" and discussion of | non-CVS components like "Secure Shell" and cron). Tried to fix that. Plus one more error message. | Keeping the #ifdef may seem odd, but actually it makes sense (think | of it as HAVE_GETEUID, perhaps should change the comment and/or the | name accordingly). CVS_BADROOT removed completely, and replaced with HAVE_GETEUID. Noted some */pwd.c containing fake geteuid(). We surely can't count on this for task in question. It is referred at */filesubr.c, within '#ifdef SETXID_SUPPORT', which in turn looks like Unix-only concern. Regardless of whether such stubs are used at all, I had undefined HAVE_GETEUID everywhere except Unix, left the later to autoconf. Hope this is fair play :) | If the #ifdef is set to not check for root, and CVSROOT/config is | set to check, that should be an error. Added an error message, to maintain "least surprise". The only inconsistency now is that backwards-compatible default for Unix is 'no', while on non-Unix systems it is (effectively) 'yes'. Thus, having explicit AllowRoot=yes is not an error anyway. Comments and complaints are welcome. Regards, Willy. -- "No easy hope or lies | Vitaly "Willy the Pooh" Fedrushkov Shall bring us to our goal, | Information Technology Division But iron sacrifice | Chelyabinsk State University Of Body, Will and Soul." | mailto:willy@csu.ac.ru +7 3512 156770 R.Kipling | http://www.csu.ac.ru/~willy VVF1-RIPE ---1463803639-2098444784-917132013=:2743 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="cvs-1.10.4.1-badroot.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="cvs-1.10.4.1-badroot.patch" ZGlmZiAtdXIgY2N2cy1jdXJyZW50L0NoYW5nZUxvZyBjY3ZzLWJhZHJvb3Qv Q2hhbmdlTG9nDQotLS0gY2N2cy1jdXJyZW50L0NoYW5nZUxvZwlXZWQgSmFu IDEzIDAxOjM3OjIwIDE5OTkNCisrKyBjY3ZzLWJhZHJvb3QvQ2hhbmdlTG9n CVNhdCBKYW4gMjMgMjE6MDQ6NTAgMTk5OQ0KQEAgLTEsMyArMSw4IEBADQor MTk5OS0wMS0yMyAgVml0YWx5IFYgRmVkcnVzaGtvdiAgPHdpbGx5QHNub3d5 b3dsLmNzdS5hYy5ydT4NCisNCisJKiBORVdTOiBOb3RlIGFib3V0IEFsbG93 Um9vdCBhZGRlZC4NCisJKiBjb25maWd1cmUuaW4gKEFDX0NIRUNLX0ZVTkNT KTogZ2V0ZXVpZCgpIGNoZWNrIGFkZGVkDQorDQogMTk5OS0wMS0xMiAgSmlt IEtpbmdkb24gIDxodHRwOi8vd3d3LmN5Y2xpYy5jb20+DQogDQogCSogQ09Q WUlORywgQ09QWUlORy5MSUI6IFJlbW92ZSBvYnNvbGV0ZSBzbmFpbCBhZGRy ZXNzIG9mIHRoZSBGcmVlDQpkaWZmIC11ciBjY3ZzLWN1cnJlbnQvTkVXUyBj Y3ZzLWJhZHJvb3QvTkVXUw0KLS0tIGNjdnMtY3VycmVudC9ORVdTCUZyaSBT ZXAgMjUgMTA6MTI6MTggMTk5OA0KKysrIGNjdnMtYmFkcm9vdC9ORVdTCVNh dCBKYW4gMjMgMTk6NDY6NTIgMTk5OQ0KQEAgLTEsNSArMSw4IEBADQogQ2hh bmdlcyBzaW5jZSAxLjEwOg0KIA0KKyogQWRkZWQgbmV3IENWU1JPT1QvY29u ZmlnIHBhcmFtZXRlcjogQWxsb3dSb290LiAgQWxsb3dzIFVJRCAwIHRvDQor bWFrZSAnY3ZzIGNvbW1pdCcuICBSZXBsYWNlcyBjb21waWxlLXRpbWUgQ1ZT X0JBRFJPT1QgZGVmaW5lLg0KKw0KICogVGhlcmUgaXMgYSBuZXcgYWNjZXNz IG1ldGhvZCA6Zm9yazogd2hpY2ggaXMgc2ltaWxhciB0byA6bG9jYWw6DQog ZXhjZXB0IHRoYXQgaXQgaXMgaW1wbGVtZW50ZWQgdmlhIHRoZSBDVlMgcmVt b3RlIHByb3RvY29sLCBhbmQgdGh1cw0KIGhhcyBhIHNvbWV3aGF0IGRpZmZl cmVudCBzZXQgb2YgcXVpcmtzIGFuZCBidWdzLg0KZGlmZiAtdXIgY2N2cy1j dXJyZW50L2NvbmZpZ3VyZS5pbiBjY3ZzLWJhZHJvb3QvY29uZmlndXJlLmlu DQotLS0gY2N2cy1jdXJyZW50L2NvbmZpZ3VyZS5pbglUaHUgT2N0IDE1IDAy OjIwOjQ1IDE5OTgNCisrKyBjY3ZzLWJhZHJvb3QvY29uZmlndXJlLmluCVNh dCBKYW4gMjMgMTc6Mjc6NDkgMTk5OQ0KQEAgLTY0LDcgKzY0LDcgQEANCiBB Q19UWVBFX1BJRF9UDQogQUNfU1RSVUNUX1NUX0JMS1NJWkUNCiBBQ19SRVBM QUNFX0ZVTkNTKG1rZGlyIHJlbmFtZSBzdHJzdHIgZHVwMiBzdHJlcnJvciB2 YWxsb2Mgd2FpdHBpZCBtZW1tb3ZlIHZhc3ByaW50ZiBzdHJ0b3VsKQ0KLUFD X0NIRUNLX0ZVTkNTKGZjaG1vZCBmc3luYyBmdGltZSBta3RlbXAgcHV0ZW52 IHZwcmludGYgZnRydW5jYXRlIHRpbWV6b25lIGdldHBhZ2VzaXplIGluaXRn cm91cHMgZmNoZGlyIHNpZ2FjdGlvbiBzaWdwcm9jbWFzayBzaWd2ZWMgc2ln c2V0bWFzayBzaWdibG9jayB0ZW1wbmFtIHR6c2V0IHJlYWRsaW5rIHdhaXQz KQ0KK0FDX0NIRUNLX0ZVTkNTKGZjaG1vZCBmc3luYyBmdGltZSBta3RlbXAg cHV0ZW52IHZwcmludGYgZnRydW5jYXRlIHRpbWV6b25lIGdldHBhZ2VzaXpl IGluaXRncm91cHMgZmNoZGlyIHNpZ2FjdGlvbiBzaWdwcm9jbWFzayBzaWd2 ZWMgc2lnc2V0bWFzayBzaWdibG9jayB0ZW1wbmFtIHR6c2V0IHJlYWRsaW5r IHdhaXQzIGdldGV1aWQpDQogDQogZG5sDQogZG5sIFRoZSBDVlMgY29kaW5n IHN0YW5kYXJkIChhcyBzcGVjaWZpZWQgaW4gSEFDS0lORykgaXMgdGhhdCBp ZiBpdCBleGlzdHMNCmRpZmYgLXVyIGNjdnMtY3VycmVudC9kb2MvQ2hhbmdl TG9nIGNjdnMtYmFkcm9vdC9kb2MvQ2hhbmdlTG9nDQotLS0gY2N2cy1jdXJy ZW50L2RvYy9DaGFuZ2VMb2cJVGh1IEphbiAyMSAyMToyMzowNCAxOTk5DQor KysgY2N2cy1iYWRyb290L2RvYy9DaGFuZ2VMb2cJU2F0IEphbiAyMyAyMjo0 MjowMiAxOTk5DQpAQCAtMSwzICsxLDkgQEANCisxOTk5LTAxLTIzICBWaXRh bHkgViBGZWRydXNoa292ICA8d2lsbHlAc25vd3lvd2wuY3N1LmFjLnJ1Pg0K Kw0KKwkqIGN2cy50ZXhpbmZvIChjb25maWcpOiBBbGxvd1Jvb3Qgb3B0aW9u IGFkZGVkDQorCShFcnJvciBtZXNzYWdlcyk6IEFkZCAiQWxsb3dSb290IG9w dGlvbiBub3Qgc3VwcG9ydGVkIg0KKwkoRXJyb3IgbWVzc2FnZXMpOiBBZGQg InVucmVjb2duaXplZCB2YWx1ZSBmb3Igb3B0aW9uIg0KKw0KIDE5OTktMDEt MjEgIEppbSBLaW5nZG9uICA8aHR0cDovL3d3dy5jeWNsaWMuY29tPg0KIA0K IAkqIGN2cy50ZXhpbmZvIChFcnJvciBtZXNzYWdlcyk6IEFkZCAid2FpdGlu ZyBmb3IgVVNFUidzIGxvY2siLg0KZGlmZiAtdXIgY2N2cy1jdXJyZW50L2Rv Yy9jdnMudGV4aW5mbyBjY3ZzLWJhZHJvb3QvZG9jL2N2cy50ZXhpbmZvDQot LS0gY2N2cy1jdXJyZW50L2RvYy9jdnMudGV4aW5mbwlUaHUgSmFuIDIxIDIx OjIzOjA0IDE5OTkNCisrKyBjY3ZzLWJhZHJvb3QvZG9jL2N2cy50ZXhpbmZv CVNhdCBKYW4gMjMgMjA6NTI6MzQgMTk5OQ0KQEAgLTEyMTUxLDYgKzEyMTUx LDI0IEBADQogY291bGQgYmVjb21lIGNvcnJ1cHRlZC4gIENWUyAxLjEwIGRv ZXMgbm90IHN1cHBvcnQNCiBMb2NrRGlyIGJ1dCBpdCB3aWxsIHByaW50IGEg d2FybmluZyBpZiBydW4gb24gYQ0KIHJlcG9zaXRvcnkgd2l0aCBMb2NrRGly IGVuYWJsZWQuDQorDQorQGNpbmRleCBBbGxvd1Jvb3QsIGluIENWU1JPT1Qv Y29uZmlnDQorQGl0ZW0gQWxsb3dSb290PUB2YXJ7dmFsdWV9DQorU2V0dGlu ZyB0aGlzIG9wdGlvbiB0byBAc2FtcHt5ZXN9IGFsbG93cyBjb21taXQNCitv cGVyYXRpb24gdG8gYmUgaXNzdWVkIGJ5ICJyb290Ii4NCisNCitXaGVuIGNv bW1pdHRpbmcgYSBwZXJtYW5lbnQgY2hhbmdlLCBAc2N7Y3ZzfSBtYWtlIGEg bG9nDQorZW50cnkgb2Ygd2hvIGNvbW1pdHRlZCB0aGUgY2hhbmdlLiAgSWYg eW91IGFyZQ0KK2NvbW1pdHRpbmcgY2hhbmdlcyBsb2dnZWQgaW4gYXMgInJv b3QiLCBAc2N7Y3ZzfSBjYW5ub3QNCitkZXRlcm1pbmUgd2hvIGlzIGFjdHVh bGx5IG1ha2luZyB0aGVtLg0KKw0KK1RoZSBkZWZhdWx0IHZhbHVlIGZvciBV bml4IGlzIEBzYW1we25vfSwgbWVhbmluZyB0aGF0DQorQHNje2N2c30gZGlz YWxsb3dzIGNoYW5nZXMgdG8gYmUgYW5vbnltb3VzLg0KKw0KK09uIG5vbi1V bml4IHN5c3RlbXMsIHRoZXJlIGlzIG5vIHdheSB0byB0ZWxsIHVzZXIncw0K K3BlcnNvbmFsaXR5IGZyb20gdGhpcyBwb2ludCBvZiB2aWV3LiAgU28gZGVm YXVsdCBzZWVtcw0KK3RvIGJlIEBzYW1we3llc30sIGFuZCBzcGVjaWZ5aW5n IGV4cGxpY2l0IHZhbHVlIG9mDQorQHNhbXB7bm99IHJlc3VsdHMgaW4gZXJy b3IgbWVzc2FnZS4NCiBAZW5kIHRhYmxlDQogDQogQGMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpAQCAtMTI0NDYsNiArMTI0NjQsMTQgQEANCiBAYyBG SVhNRTogV2hhdCBpcyB0aGUgY29ycmVjdCB3YXkgdG8gZm9ybWF0IGEgbXVs dGlsaW5lDQogQGMgZXJyb3IgbWVzc2FnZSBoZXJlPyAgTWF5YmUgQHRhYmxl IGlzIHRoZSB3cm9uZw0KIEBjIGNob2ljZT8gIFRleGluZm8gZ3VydXM/DQor QGl0ZW0gY3ZzIEB2YXJ7Y29tbWFuZH06IEFsbG93Um9vdCBvcHRpb24gbm90 IHN1cHBvcnRlZA0KK0luIGZpbGUgQGZpbGV7Q1ZTUk9PVC9jb25maWd9LCBw YXJhbWV0ZXIgQWxsb3dSb290IHNldA0KK3RvIEBzYW1we25vfSBhbmQgc3lz dGVtIGhhcyBubyAicm9vdCIgdXNlci4NCisNCitUaGlzIG9wdGlvbiBpcyBu b3Qgc3VwcG9ydGVkIG9uIG5vbi1Vbml4IHN5c3RlbXMuDQorDQorQHhyZWZ7 Y29uZmlnfS4NCisNCiBAaXRlbSBjdnMgQHZhcntjb21tYW5kfTogYXV0aG9y aXphdGlvbiBmYWlsZWQ6IHNlcnZlciBAdmFye2hvc3R9IHJlamVjdGVkIGFj Y2Vzcw0KIFRoaXMgaXMgYSBnZW5lcmljIHJlc3BvbnNlIHdoZW4gdHJ5aW5n IHRvIGNvbm5lY3QgdG8gYQ0KIHBzZXJ2ZXIgc2VydmVyIHdoaWNoIGNob29z ZXMgbm90IHRvIHByb3ZpZGUgYQ0KQEAgLTEyNjk3LDYgKzEyNzIzLDEwIEBA DQogKEBmaWxley92YXIvbG9nL21lc3NhZ2VzfSBvciB3aGF0ZXZlciBpbmV0 ZCB1c2VzIG9uDQogeW91ciBzeXN0ZW0pLiAgRm9yIGRldGFpbHMsIHNlZSBA cmVme0Nvbm5lY3Rpb259LCBhbmQNCiBAcmVme1Bhc3N3b3JkIGF1dGhlbnRp Y2F0aW9uIHNlcnZlcn0uDQorDQorQGl0ZW0gY3ZzIEB2YXJ7Y29tbWFuZH06 IHVucmVjb2duaXplZCB2YWx1ZSAnQHZhcnt2YWx1ZX0nIGZvciBAdmFye29w dGlvbn0NCitGaWxlIEBmaWxle0NWU1JPT1QvY29uZmlnfSBjb250YWlucyBp bnZhbGlkIHZhbHVlIGZvcg0KK3NwZWNpZmljIEB2YXJ7b3B0aW9ufS4gIEB4 cmVme2NvbmZpZ30uDQogDQogQGl0ZW0gY3ZzIGNvbW1pdDogVXAtdG8tZGF0 ZSBjaGVjayBmYWlsZWQgZm9yIGBAdmFye2ZpbGV9Jw0KIFRoaXMgbWVhbnMg dGhhdCBzb21lb25lIGVsc2UgaGFzIGNvbW1pdHRlZCBhIGNoYW5nZSB0bw0K ZGlmZiAtdXIgY2N2cy1jdXJyZW50L2VteC9DaGFuZ2VMb2cgY2N2cy1iYWRy b290L2VteC9DaGFuZ2VMb2cNCi0tLSBjY3ZzLWN1cnJlbnQvZW14L0NoYW5n ZUxvZwlUdWUgQXVnIDI1IDAxOjUxOjQzIDE5OTgNCisrKyBjY3ZzLWJhZHJv b3QvZW14L0NoYW5nZUxvZwlTYXQgSmFuIDIzIDIxOjQ4OjQ0IDE5OTkNCkBA IC0xLDMgKzEsOCBAQA0KKzE5OTktMDEtMjMgIFZpdGFseSBWIEZlZHJ1c2hr b3YgIDx3aWxseUBzbm93eW93bC5jc3UuYWMucnU+DQorDQorCSogY29uZmln LmggKEhBVkVfR0VURVVJRCk6IEFkZGVkIChsYWNrIG9mKQ0KKwkqIG9wdGlv bnMuaCAoQ1ZTX0JBRFJPT1QpOiBSZW1vdmVkDQorDQogMTk5OC0wOC0yNCAg SmltIEtpbmdkb24gIDxraW5nZG9uQGhhcnZleS5jeWNsaWMuY29tPg0KIA0K IAkqIE1ha2VmaWxlLmluIChyY3NjbWRzLm8pOiBOZXcgcnVsZSwgc28gd2Ug Y2FuIHN1cHBseSAtSSBmb3INCmRpZmYgLXVyIGNjdnMtY3VycmVudC9lbXgv Y29uZmlnLmggY2N2cy1iYWRyb290L2VteC9jb25maWcuaA0KLS0tIGNjdnMt Y3VycmVudC9lbXgvY29uZmlnLmgJV2VkIERlYyAzMSAxNjowMzo0MCAxOTk3 DQorKysgY2N2cy1iYWRyb290L2VteC9jb25maWcuaAlTYXQgSmFuIDIzIDIx OjMwOjMzIDE5OTkNCkBAIC0xMTgsNiArMTE4LDkgQEANCiAvKiBEZWZpbmUg aWYgeW91IGhhdmUgdGhlIGZ0cnVuY2F0ZSBmdW5jdGlvbi4gICovDQogI2Rl ZmluZSBIQVZFX0ZUUlVOQ0FURSAxDQogDQorLyogRGVmaW5lIGlmIHlvdSBo YXZlIHRoZSBnZXRldWlkIGZ1bmN0aW9uLiAgKi8NCisvKiAjdW5kZWYgSEFW RV9HRVRFVUlEICovDQorDQogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBn ZXRwYWdlc2l6ZSBmdW5jdGlvbi4gICovDQogI2RlZmluZSBIQVZFX0dFVFBB R0VTSVpFIDENCiANCmRpZmYgLXVyIGNjdnMtY3VycmVudC9lbXgvb3B0aW9u cy5oIGNjdnMtYmFkcm9vdC9lbXgvb3B0aW9ucy5oDQotLS0gY2N2cy1jdXJy ZW50L2VteC9vcHRpb25zLmgJVHVlIEphbiAxMyAyMzo1OToxMSAxOTk4DQor KysgY2N2cy1iYWRyb290L2VteC9vcHRpb25zLmgJU2F0IEphbiAyMyAyMToy NjowOCAxOTk5DQpAQCAtMTI0LDIwICsxMjQsNiBAQA0KIC8qICNkZWZpbmUg Q1ZTX0ZVREdFTE9DS1MgKi8NCiAjZW5kaWYNCiANCi0vKg0KLSAqIFdoZW4g Y29tbWl0dGluZyBhIHBlcm1hbmVudCBjaGFuZ2UsIENWUyBhbmQgUkNTIG1h a2UgYSBsb2cgZW50cnkgb2YNCi0gKiB3aG8gY29tbWl0dGVkIHRoZSBjaGFu Z2UuICBJZiB5b3UgYXJlIGNvbW1pdHRpbmcgdGhlIGNoYW5nZSBsb2dnZWQN Ci0gKiBpbiBhcyAicm9vdCIgKG5vdCB1bmRlciAic3UiIG9yIG90aGVyIHJv b3QtcHJpdiBnaXZpbmcgcHJvZ3JhbSksDQotICogQ1ZTL1JDUyBjYW5ub3Qg ZGV0ZXJtaW5lIHdobyBpcyBhY3R1YWxseSBtYWtpbmcgdGhlIGNoYW5nZS4N Ci0gKg0KLSAqIEFzIHN1Y2gsIGJ5IGRlZmF1bHQsIENWUyBkaXNhbGxvd3Mg Y2hhbmdlcyB0byBiZSBjb21taXR0ZWQgYnkgdXNlcnMNCi0gKiBsb2dnZWQg aW4gYXMgInJvb3QiLiAgWW91IGNhbiBkaXNhYmxlIHRoaXMgb3B0aW9uIGJ5 IGNvbW1lbnRpbmcgb3V0DQotICogdGhlIGxpbmVzIGJlbG93Lg0KLSAqLw0K LSNpZmRlZiBDVlNfQkFEUk9PVA0KLSN1bmRlZglDVlNfQkFEUk9PVA0KLSNl bmRpZg0KLQ0KIC8qIERlZmluZSB0aGlzIHRvIGVuYWJsZSB0aGUgU0VUWElE IHN1cHBvcnQuICBUaGUgd2F5IHRvIHVzZSB0aGlzIGlzDQogICAgdG8gY3Jl YXRlIGEgZ3JvdXAgd2l0aCBubyB1c2VycyBpbiBpdCAoZXhjZXB0IHBlcmhh cHMgY3ZzDQogICAgYWRtaW5pc3RyYXRvcnMpLCBzZXQgdGhlIGN2cyBleGVj dXRhYmxlIHRvIHNldGdpZCB0aGF0IGdyb3VwLCBjaG93bg0KZGlmZiAtdXIg Y2N2cy1jdXJyZW50L21hY2ludG9zaC9DaGFuZ2VMb2cgY2N2cy1iYWRyb290 L21hY2ludG9zaC9DaGFuZ2VMb2cNCi0tLSBjY3ZzLWN1cnJlbnQvbWFjaW50 b3NoL0NoYW5nZUxvZwlXZWQgTWF5IDEzIDAzOjA0OjA5IDE5OTgNCisrKyBj Y3ZzLWJhZHJvb3QvbWFjaW50b3NoL0NoYW5nZUxvZwlTYXQgSmFuIDIzIDIy OjAyOjQ0IDE5OTkNCkBAIC0xLDMgKzEsOCBAQA0KKzE5OTktMDEtMjMgIFZp dGFseSBWIEZlZHJ1c2hrb3YgIDx3aWxseUBzbm93eW93bC5jc3UuYWMucnU+ DQorDQorCSogY29uZmlnLmggKEhBVkVfR0VURVVJRCk6IEFkZGVkIChsYWNr IG9mIHJlYWwgb25lKQ0KKwkqIG9wdGlvbnMuaCAoQ1ZTX0JBRFJPT1QpOiBS ZW1vdmVkDQorDQogMTk5OC0wNS0xMiAgSmltIE1leWVyaW5nICA8bWV5ZXJp bmdAYXNjZW5kLmNvbT4NCiANCiAJKiBNYWtlZmlsZS5pbiAoZGlzdGNsZWFu KTogTmV3IHJ1bGUgdG8gcmVtb3ZlIE1ha2VmaWxlLg0KZGlmZiAtdXIgY2N2 cy1jdXJyZW50L21hY2ludG9zaC9jb25maWcuaCBjY3ZzLWJhZHJvb3QvbWFj aW50b3NoL2NvbmZpZy5oDQotLS0gY2N2cy1jdXJyZW50L21hY2ludG9zaC9j b25maWcuaAlTYXQgRGVjIDI3IDIyOjA0OjMyIDE5OTcNCisrKyBjY3ZzLWJh ZHJvb3QvbWFjaW50b3NoL2NvbmZpZy5oCVNhdCBKYW4gMjMgMjI6MDI6NTYg MTk5OQ0KQEAgLTY4LDYgKzY4LDExIEBADQogLyogRGVmaW5lIGlmIHlvdSBo YXZlIHRoZSBmdHJ1bmNhdGUgZnVuY3Rpb24uICAqLw0KICN1bmRlZiBIQVZF X0ZUUlVOQ0FURQ0KIA0KKy8qIE5vdGUgdGhhdCBnZXRldWlkKCkgc3R1YiBp biBwd2QuYyBkb2VzIG5vdCBjb3VudCBoZXJlLiAgU2VlDQorICAgc3JjL2Nv bW1pdC5jIGZvciBkZXRhaWxzICovDQorLyogRGVmaW5lIGlmIHlvdSBoYXZl IHRoZSBnZXRldWlkIGZ1bmN0aW9uLiAgKi8NCisjdW5kZWYgSEFWRV9HRVRF VUlEDQorDQogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB2cHJpbnRmIGZ1 bmN0aW9uLiAgKi8NCiAjZGVmaW5lIEhBVkVfVlBSSU5URiAxDQogDQpkaWZm IC11ciBjY3ZzLWN1cnJlbnQvbWFjaW50b3NoL29wdGlvbnMuaCBjY3ZzLWJh ZHJvb3QvbWFjaW50b3NoL29wdGlvbnMuaA0KLS0tIGNjdnMtY3VycmVudC9t YWNpbnRvc2gvb3B0aW9ucy5oCVdlZCBKYW4gMTQgMDA6MDA6MTggMTk5OA0K KysrIGNjdnMtYmFkcm9vdC9tYWNpbnRvc2gvb3B0aW9ucy5oCVNhdCBKYW4g MjMgMjE6Mjk6NDMgMTk5OQ0KQEAgLTEyNiwyNCArMTI2LDYgQEANCiAjZW5k aWYNCiANCiAvKg0KLSAqIFdoZW4gY29tbWl0dGluZyBhIHBlcm1hbmVudCBj aGFuZ2UsIENWUyBhbmQgUkNTIG1ha2UgYSBsb2cgZW50cnkgb2YNCi0gKiB3 aG8gY29tbWl0dGVkIHRoZSBjaGFuZ2UuICBJZiB5b3UgYXJlIGNvbW1pdHRp bmcgdGhlIGNoYW5nZSBsb2dnZWQgaW4NCi0gKiBhcyAicm9vdCIgKG5vdCB1 bmRlciAic3UiIG9yIG90aGVyIHJvb3QtcHJpdiBnaXZpbmcgcHJvZ3JhbSks IENWUy9SQ1MNCi0gKiBjYW5ub3QgZGV0ZXJtaW5lIHdobyBpcyBhY3R1YWxs eSBtYWtpbmcgdGhlIGNoYW5nZS4NCi0gKg0KLSAqIEFzIHN1Y2gsIGJ5IGRl ZmF1bHQsIENWUyBkaXNhbGxvd3MgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQg YnkgdXNlcnMNCi0gKiBsb2dnZWQgaW4gYXMgInJvb3QiLiAgWW91IGNhbiBk aXNhYmxlIHRoaXMgb3B0aW9uIGJ5IGNvbW1lbnRpbmcNCi0gKiBvdXQgdGhl IGxpbmVzIGJlbG93Lg0KLSAqDQotICogVW5kZXIgV2luZG93cyBOVCwgcHJp dmlsZWdlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIGdyb3Vwcywgbm90IHVzZXJz LA0KLSAqIHNvIHRoZSBjYXNlIGluIHdoaWNoIHNvbWVvbmUgaGFzIGxvZ2dl ZCBpbiBhcyByb290IGRvZXMgbm90IG9jY3VyLg0KLSAqIFRodXMsIHRoZXJl IGlzIG5vIG5lZWQgZm9yIHRoaXMgaGFjay4NCi0gKg0KLSAqIHRvZG86IEkg ZG9uJ3Qga25vdyBhYm91dCBPUy8yIHlldC4gIC1rZmYNCi0gKi8NCi0jdW5k ZWYgQ1ZTX0JBRFJPT1QNCi0NCi0vKg0KICAqIFRoZSAiY3ZzIGFkbWluIiBj b21tYW5kIGFsbG93cyBwZW9wbGUgdG8gZ2V0IGFyb3VuZCBtb3N0IG9mIHRo ZSBsb2dnaW5nDQogICogYW5kIGluZm8gcHJvY2VkdXJlcyB3aXRoaW4gQ1ZT LiAgRm9yIGV4bWFwbGUsICJjdnMgdGFnIHRhZ25hbWUgZmlsZW5hbWUiDQog ICogd2lsbCBwZXJmb3JtIHNvbWUgdmFsaWRpdHkgY2hlY2tzIG9uIHRoZSB0 YWcsIHdoaWxlICJjdnMgYWRtaW4gLU50YWduYW1lIg0KZGlmZiAtdXIgY2N2 cy1jdXJyZW50L29zMi9DaGFuZ2VMb2cgY2N2cy1iYWRyb290L29zMi9DaGFu Z2VMb2cNCi0tLSBjY3ZzLWN1cnJlbnQvb3MyL0NoYW5nZUxvZwlUdWUgRGVj IDI5IDE5OjU2OjAzIDE5OTgNCisrKyBjY3ZzLWJhZHJvb3Qvb3MyL0NoYW5n ZUxvZwlTYXQgSmFuIDIzIDIxOjQ2OjM0IDE5OTkNCkBAIC0xLDMgKzEsOCBA QA0KKzE5OTktMDEtMjMgIFZpdGFseSBWIEZlZHJ1c2hrb3YgIDx3aWxseUBz bm93eW93bC5jc3UuYWMucnU+DQorDQorCSogY29uZmlnLmggKEhBVkVfR0VU RVVJRCk6IEFkZGVkIChsYWNrIG9mIHJlYWwgb25lKQ0KKwkqIG9wdGlvbnMu aCAoQ1ZTX0JBRFJPT1QpOiBSZW1vdmVkDQorDQogMTk5OC0xMi0yOSAgSmlt IEtpbmdkb24gIDxodHRwOi8vd3d3LmN5Y2xpYy5jb20+DQogDQogCSogTWFr ZWZpbGUuaW46IFVzZSB0aGUgZ2V0ZGF0ZS5jIGluIC4uL2xpYiByYXRoZXIg dGhhbiB0aGUgb25lDQpkaWZmIC11ciBjY3ZzLWN1cnJlbnQvb3MyL2NvbmZp Zy5oIGNjdnMtYmFkcm9vdC9vczIvY29uZmlnLmgNCi0tLSBjY3ZzLWN1cnJl bnQvb3MyL2NvbmZpZy5oCVR1ZSBKYW4gMTMgMjM6NTg6MDQgMTk5OA0KKysr IGNjdnMtYmFkcm9vdC9vczIvY29uZmlnLmgJU2F0IEphbiAyMyAyMTo0Nzoy MyAxOTk5DQpAQCAtMTY2LDYgKzE2NiwxMSBAQA0KIC8qIERlZmluZSBpZiB5 b3UgaGF2ZSB0aGUgZnRydW5jYXRlIGZ1bmN0aW9uLiAgKi8NCiAjdW5kZWYg SEFWRV9GVFJVTkNBVEUNCiANCisvKiBOb3RlIHRoYXQgZ2V0ZXVpZCgpIHN0 dWIgaW4gcHdkLmMgZG9lcyBub3QgY291bnQgaGVyZS4gIFNlZQ0KKyAgIHNy Yy9jb21taXQuYyBmb3IgZGV0YWlscyAqLw0KKy8qIERlZmluZSBpZiB5b3Ug aGF2ZSB0aGUgZ2V0ZXVpZCBmdW5jdGlvbi4gICovDQorI3VuZGVmIEhBVkVf R0VURVVJRA0KKw0KIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0cGFn ZXNpemUgZnVuY3Rpb24uICAqLw0KICN1bmRlZiBIQVZFX0dFVFBBR0VTSVpF DQogDQpkaWZmIC11ciBjY3ZzLWN1cnJlbnQvb3MyL29wdGlvbnMuaCBjY3Zz LWJhZHJvb3Qvb3MyL29wdGlvbnMuaA0KLS0tIGNjdnMtY3VycmVudC9vczIv b3B0aW9ucy5oCVR1ZSBKYW4gMTMgMjM6NTg6MDYgMTk5OA0KKysrIGNjdnMt YmFkcm9vdC9vczIvb3B0aW9ucy5oCVNhdCBKYW4gMjMgMjE6MzE6MDcgMTk5 OQ0KQEAgLTEyOCwyNCArMTI4LDYgQEANCiAjZW5kaWYNCiANCiAvKg0KLSAq IFdoZW4gY29tbWl0dGluZyBhIHBlcm1hbmVudCBjaGFuZ2UsIENWUyBhbmQg UkNTIG1ha2UgYSBsb2cgZW50cnkgb2YNCi0gKiB3aG8gY29tbWl0dGVkIHRo ZSBjaGFuZ2UuICBJZiB5b3UgYXJlIGNvbW1pdHRpbmcgdGhlIGNoYW5nZSBs b2dnZWQgaW4NCi0gKiBhcyAicm9vdCIgKG5vdCB1bmRlciAic3UiIG9yIG90 aGVyIHJvb3QtcHJpdiBnaXZpbmcgcHJvZ3JhbSksIENWUy9SQ1MNCi0gKiBj YW5ub3QgZGV0ZXJtaW5lIHdobyBpcyBhY3R1YWxseSBtYWtpbmcgdGhlIGNo YW5nZS4NCi0gKg0KLSAqIEFzIHN1Y2gsIGJ5IGRlZmF1bHQsIENWUyBkaXNh bGxvd3MgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQgYnkgdXNlcnMNCi0gKiBs b2dnZWQgaW4gYXMgInJvb3QiLiAgWW91IGNhbiBkaXNhYmxlIHRoaXMgb3B0 aW9uIGJ5IGNvbW1lbnRpbmcNCi0gKiBvdXQgdGhlIGxpbmVzIGJlbG93Lg0K LSAqDQotICogVW5kZXIgV2luZG93cyBOVCwgcHJpdmlsZWdlcyBhcmUgYXNz b2NpYXRlZCB3aXRoIGdyb3Vwcywgbm90IHVzZXJzLA0KLSAqIHNvIHRoZSBj YXNlIGluIHdoaWNoIHNvbWVvbmUgaGFzIGxvZ2dlZCBpbiBhcyByb290IGRv ZXMgbm90IG9jY3VyLg0KLSAqIFRodXMsIHRoZXJlIGlzIG5vIG5lZWQgZm9y IHRoaXMgaGFjay4NCi0gKg0KLSAqIHRvZG86IEkgZG9uJ3Qga25vdyBhYm91 dCBPUy8yIHlldC4gIC1rZmYNCi0gKi8NCi0jdW5kZWYgQ1ZTX0JBRFJPT1QN Ci0NCi0vKg0KICAqIFRoZSAiY3ZzIGRpZmYiIGNvbW1hbmQgYWNjZXB0cyBh bGwgdGhlIHNpbmdsZS1jaGFyYWN0ZXIgb3B0aW9ucyB0aGF0IEdOVQ0KICAq IGRpZmYgKDEuMTUpIGFjY2VwdHMuICBFeGNlcHQgLUQuICBHTlUgZGlmZiB1 c2VzIC1EIGFzIGEgd2F5IHRvIHB1dA0KICAqIGNwcC1zdHlsZSAjZGVmaW5l J3MgYXJvdW5kIHRoZSBvdXRwdXQgZGlmZmVyZW5jZXMuICBDVlMsIGJ5IGRl ZmF1bHQsIHVzZXMNCmRpZmYgLXVyIGNjdnMtY3VycmVudC9zcmMvQ2hhbmdl TG9nIGNjdnMtYmFkcm9vdC9zcmMvQ2hhbmdlTG9nDQotLS0gY2N2cy1jdXJy ZW50L3NyYy9DaGFuZ2VMb2cJU2F0IEphbiAxNiAwMToyNjo1NiAxOTk5DQor KysgY2N2cy1iYWRyb290L3NyYy9DaGFuZ2VMb2cJU2F0IEphbiAyMyAyMTo0 NToxOSAxOTk5DQpAQCAtMSwzICsxLDEyIEBADQorMTk5OS0wMS0yMyAgVml0 YWx5IFYgRmVkcnVzaGtvdiAgPHdpbGx5QHNub3d5b3dsLmNzdS5hYy5ydT4N CisNCisJKiBvcHRpb25zLmguaW4gKENWU19CQURST09UKTogUmVtb3ZlZCBh cyBvYnNvbGV0ZQ0KKwkqIG1rbW9kdWxlcy5jIChjb25maWdfY29udGVudHMp OiBBbGxvd1Jvb3QgcGFyYW1ldGVyIGFkZGVkDQorCSogcGFyc2VpbmZvLmMg KHBhcnNlX2NvbmZpZyk6IEFsbG93Um9vdCBwYXJhbWV0ZXIgYWRkZWQNCisJ KiBjb21taXQuYyAoY29tbWl0KTogYWxsb3dfcm9vdCBmbGFnIGNoZWNraW5n LiAgQ1ZTX0JBRFJPT1QNCisJc3VwZXJzZWRlZCBieSBIQVZFX0dFVEVVSUQu DQorCSogY3ZzLmg6IGFsbG93X3Jvb3QgZ2xvYmFsIGZsYWcgYWRkZWQNCisN CiAxOTk5LTAxLTE1ICBKaW0gS2luZ2RvbiAgPGh0dHA6Ly93d3cuY3ljbGlj LmNvbT4NCiANCiAJKiBzYW5pdHkuc2ggKHJjczMpOiBSZWRpcmVjdCBhd2sn cyBzdGRpbiB0byAvZGV2L251bGwgbGlrZSBhbGwgdGhlDQpkaWZmIC11ciBj Y3ZzLWN1cnJlbnQvc3JjL2NvbW1pdC5jIGNjdnMtYmFkcm9vdC9zcmMvY29t bWl0LmMNCi0tLSBjY3ZzLWN1cnJlbnQvc3JjL2NvbW1pdC5jCVdlZCBEZWMg MjMgMjA6MTU6MDAgMTk5OA0KKysrIGNjdnMtYmFkcm9vdC9zcmMvY29tbWl0 LmMJU2F0IEphbiAyMyAxOTo0ODo0NyAxOTk5DQpAQCAtNjksNiArNjksNyBA QA0KICAgICBMaXN0ICpjaWxpc3Q7CQkJLyogbGlzdCB3aXRoIGNvbW1pdF9p bmZvIHN0cnVjdHMgKi8NCiB9Ow0KIA0KK2ludCBhbGxvd19yb290ID0gMDsN CiBzdGF0aWMgaW50IGZvcmNlX2NpID0gMDsNCiBzdGF0aWMgaW50IGdvdF9t ZXNzYWdlOw0KIHN0YXRpYyBpbnQgcnVuX21vZHVsZV9wcm9nID0gMTsNCkBA IC0zMzEsNyArMzMyLDcgQEANCiAgICAgaWYgKGFyZ2MgPT0gLTEpDQogCXVz YWdlIChjb21taXRfdXNhZ2UpOw0KIA0KLSNpZmRlZiBDVlNfQkFEUk9PVA0K KyNpZmRlZiBIQVZFX0dFVEVVSUQNCiAgICAgLyoNCiAgICAgICogRm9yIGxv ZyBwdXJwb3NlcywgZG8gbm90IGFsbG93ICJyb290IiB0byBjb21taXQgZmls ZXMuICBJZiB5b3UgbG9vaw0KICAgICAgKiBsaWtlIHJvb3QsIGJ1dCBhcmUg cmVhbGx5IGxvZ2dlZCBpbiBhcyBhIG5vbi1yb290IHVzZXIsIGl0J3MgT0su DQpAQCAtMzM5LDcgKzM0MCw4IEBADQogICAgIC8qIEZJWE1FOiBTaG91bGRu J3QgdGhpcyBjaGVjayBiZSBtdWNoIG1vcmUgY2xvc2VseSByZWxhdGVkIHRv IHRoZQ0KICAgICAgICByZWFkb25seSB1c2VyIHN0dWZmIChDVlNST09UL3Jl YWRlcnMsICZjKS4gIFRoYXQgaXMsIHdoeSBzaG91bGQNCiAgICAgICAgcm9v dCBiZSBhYmxlIHRvICJjdnMgaW5pdCIsICJjdnMgaW1wb3J0IiwgJmMsIGJ1 dCBub3QgImN2cyBjaSI/ICAqLw0KLSAgICBpZiAoZ2V0ZXVpZCAoKSA9PSAo dWlkX3QpIDANCisgICAgaWYgKCFhbGxvd19yb290IA0KKwkmJiAoZ2V0ZXVp ZCAoKSA9PSAodWlkX3QpIDApDQogIyAgaWZkZWYgQ0xJRU5UX1NVUFBPUlQN CiAJLyogV2hvIHdlIGFyZSBvbiB0aGUgY2xpZW50IHNpZGUgZG9lc24ndCBh ZmZlY3QgbG9nZ2luZy4gICovDQogCSYmICFjbGllbnRfYWN0aXZlDQpAQCAt MzUzLDcgKzM1NSw3IEBADQogCWlmIChwdy0+cHdfdWlkID09ICh1aWRfdCkg MCkNCiAJICAgIGVycm9yICgxLCAwLCAiY2Fubm90IGNvbW1pdCBmaWxlcyBh cyAncm9vdCciKTsNCiAgICAgfQ0KLSNlbmRpZiAvKiBDVlNfQkFEUk9PVCAq Lw0KKyNlbmRpZiAvKiBIQVZFX0dFVEVVSUQgKi8NCiANCiAgICAgb3B0aW5k ID0gMDsNCiAgICAgd2hpbGUgKChjID0gZ2V0b3B0IChhcmdjLCBhcmd2LCAi K25sUm06ZkY6cjoiKSkgIT0gLTEpDQpkaWZmIC11ciBjY3ZzLWN1cnJlbnQv c3JjL2N2cy5oIGNjdnMtYmFkcm9vdC9zcmMvY3ZzLmgNCi0tLSBjY3ZzLWN1 cnJlbnQvc3JjL2N2cy5oCVdlZCBPY3QgMjEgMjM6MDk6NDEgMTk5OA0KKysr IGNjdnMtYmFkcm9vdC9zcmMvY3ZzLmgJU2F0IEphbiAyMyAxNzo0NDowOCAx OTk5DQpAQCAtMzk2LDYgKzM5Niw3IEBADQogZXh0ZXJuIGludCBsb2dvZmY7 CQkvKiBEb24ndCB3cml0ZSBoaXN0b3J5IGVudHJ5ICovDQogDQogZXh0ZXJu IGludCB0b3BfbGV2ZWxfYWRtaW47DQorZXh0ZXJuIGludCBhbGxvd19yb290 OwkJLyogQWxsb3cgVUlEIDAgdG8gY29tbWl0PyAqLw0KIA0KICNpZmRlZiBD TElFTlRfU1VQUE9SVA0KIGV4dGVybiBMaXN0ICpkaXJzX3NlbnRfdG9fc2Vy dmVyOyAvKiB1c2VkIHRvIGRlY2lkZSB3aGljaCAiQXJndW1lbnQNCmRpZmYg LXVyIGNjdnMtY3VycmVudC9zcmMvbWttb2R1bGVzLmMgY2N2cy1iYWRyb290 L3NyYy9ta21vZHVsZXMuYw0KLS0tIGNjdnMtY3VycmVudC9zcmMvbWttb2R1 bGVzLmMJTW9uIEphbiAxMSAyMTowMTo1MyAxOTk5DQorKysgY2N2cy1iYWRy b290L3NyYy9ta21vZHVsZXMuYwlTYXQgSmFuIDIzIDE3OjQ1OjE1IDE5OTkN CkBAIC0yODgsNiArMjg4LDEwIEBADQogICAgICIjIGxldmVsIG9mIHRoZSBu ZXcgd29ya2luZyBkaXJlY3Rvcnkgd2hlbiB1c2luZyB0aGUgYGN2cyBjaGVj a291dCdcbiIsDQogICAgICIjIGNvbW1hbmQuXG4iLA0KICAgICAiI1RvcExl dmVsQWRtaW49bm9cbiIsDQorICAgICJcbiIsDQorICAgICIjIFNldCBgQWxs b3dSb290JyB0byBgeWVzJyB0byBlbmFibGUgY29tbWl0IGNvbW1hbmQgZm9y IHVzZXIgXCJyb290XCIuXG4iLA0KKyAgICAiIyBUaGlzIG1heSBtYWtlIENo YW5nZUxvZ3MgZWZmZWN0aXZlbHkgYW5vbnltb3VzLlxuIiwNCisgICAgIiNB bGxvd1Jvb3Q9bm9cbiIsDQogICAgIE5VTEwNCiB9Ow0KIA0KZGlmZiAtdXIg Y2N2cy1jdXJyZW50L3NyYy9vcHRpb25zLmguaW4gY2N2cy1iYWRyb290L3Ny Yy9vcHRpb25zLmguaW4NCi0tLSBjY3ZzLWN1cnJlbnQvc3JjL29wdGlvbnMu aC5pbglUdWUgTWFyIDE3IDAyOjU0OjMwIDE5OTgNCisrKyBjY3ZzLWJhZHJv b3Qvc3JjL29wdGlvbnMuaC5pbglTYXQgSmFuIDIzIDE3OjUxOjU1IDE5OTkN CkBAIC0xMjYsMjAgKzEyNiw2IEBADQogLyogI2RlZmluZSBDVlNfRlVER0VM T0NLUyAqLw0KICNlbmRpZg0KIA0KLS8qDQotICogV2hlbiBjb21taXR0aW5n IGEgcGVybWFuZW50IGNoYW5nZSwgQ1ZTIGFuZCBSQ1MgbWFrZSBhIGxvZyBl bnRyeSBvZg0KLSAqIHdobyBjb21taXR0ZWQgdGhlIGNoYW5nZS4gIElmIHlv dSBhcmUgY29tbWl0dGluZyB0aGUgY2hhbmdlIGxvZ2dlZA0KLSAqIGluIGFz ICJyb290IiAobm90IHVuZGVyICJzdSIgb3Igb3RoZXIgcm9vdC1wcml2IGdp dmluZyBwcm9ncmFtKSwNCi0gKiBDVlMvUkNTIGNhbm5vdCBkZXRlcm1pbmUg d2hvIGlzIGFjdHVhbGx5IG1ha2luZyB0aGUgY2hhbmdlLg0KLSAqDQotICog QXMgc3VjaCwgYnkgZGVmYXVsdCwgQ1ZTIGRpc2FsbG93cyBjaGFuZ2VzIHRv IGJlIGNvbW1pdHRlZCBieSB1c2Vycw0KLSAqIGxvZ2dlZCBpbiBhcyAicm9v dCIuICBZb3UgY2FuIGRpc2FibGUgdGhpcyBvcHRpb24gYnkgY29tbWVudGlu ZyBvdXQNCi0gKiB0aGUgbGluZXMgYmVsb3cuDQotICovDQotI2lmbmRlZiBD VlNfQkFEUk9PVA0KLSNkZWZpbmUJQ1ZTX0JBRFJPT1QNCi0jZW5kaWYNCi0N CiAvKiBEZWZpbmUgdGhpcyB0byBlbmFibGUgdGhlIFNFVFhJRCBzdXBwb3J0 LiAgVGhlIHdheSB0byB1c2UgdGhpcyBpcw0KICAgIHRvIGNyZWF0ZSBhIGdy b3VwIHdpdGggbm8gdXNlcnMgaW4gaXQgKGV4Y2VwdCBwZXJoYXBzIGN2cw0K ICAgIGFkbWluaXN0cmF0b3JzKSwgc2V0IHRoZSBjdnMgZXhlY3V0YWJsZSB0 byBzZXRnaWQgdGhhdCBncm91cCwgY2hvd24NCmRpZmYgLXVyIGNjdnMtY3Vy cmVudC9zcmMvcGFyc2VpbmZvLmMgY2N2cy1iYWRyb290L3NyYy9wYXJzZWlu Zm8uYw0KLS0tIGNjdnMtY3VycmVudC9zcmMvcGFyc2VpbmZvLmMJV2VkIERl YyAyMyAyMDoxNTowMSAxOTk4DQorKysgY2N2cy1iYWRyb290L3NyYy9wYXJz ZWluZm8uYwlTYXQgSmFuIDIzIDIwOjA2OjE4IDE5OTkNCkBAIC0zNjcsNiAr MzY3LDI2IEBADQogCSAgICAgICBvcGVuZGlyIGl0IG9yIHNvbWV0aGluZywg YnV0IEkgZG9uJ3Qgc2VlIGFueSBwYXJ0aWN1bGFyDQogCSAgICAgICByZWFz b24gdG8gZG8gdGhhdCBub3cgcmF0aGVyIHRoYW4gd2FpdGluZyB1bnRpbCBs b2NrLmMuICAqLw0KIAl9DQorCWVsc2UgaWYgKHN0cmNtcCAobGluZSwgIkFs bG93Um9vdCIpID09IDApDQorCXsNCisJICAgIC8qIFRoaXMgb3B0aW9uIG1l YW5zIG5vdGhpbmcgb24gbm9uLXVuaXggc3lzdGVtcy4gIEl0IGlzDQorCSAg ICAgICBvZmYgYnkgZGVmYXVsdCBidXQgZW1pdHMgYW4gZXJyb3IgaWYgc2V0 IGV4cGxpY2l0bHksDQorCSAgICAgICBiZWNhdXNlIHdlIGhhdmUgbm8gd2F5 IHRvIGVuZm9yY2UuICovDQorCSAgICBpZiAoc3RyY21wIChwLCAibm8iKSA9 PSAwKQ0KKyNpZmRlZiBIQVZFX0dFVEVVSUQNCisJCWFsbG93X3Jvb3QgPSAw Ow0KKyNlbHNlDQorCQllcnJvciAoMCwgMCwgIkFsbG93Um9vdCBvcHRpb24g bm90IHN1cHBvcnRlZCIpOw0KKwkJZ290byBlcnJvcl9yZXR1cm47DQorI2Vu ZGlmDQorCSAgICBlbHNlIGlmIChzdHJjbXAgKHAsICJ5ZXMiKSA9PSAwKQ0K KwkJYWxsb3dfcm9vdCA9IDE7DQorCSAgICBlbHNlDQorCSAgICB7DQorCQll cnJvciAoMCwgMCwgInVucmVjb2duaXplZCB2YWx1ZSAnJXMnIGZvciBBbGxv d1Jvb3QiLCBwKTsNCisJCWdvdG8gZXJyb3JfcmV0dXJuOw0KKwkgICAgfQ0K Kwl9DQogCWVsc2UNCiAJew0KIAkgICAgLyogV2UgbWF5IGJlIGRlYWxpbmcg d2l0aCBhIGtleXdvcmQgd2hpY2ggd2FzIGFkZGVkIGluIGENCmRpZmYgLXVy IGNjdnMtY3VycmVudC92bXMvQ2hhbmdlTG9nIGNjdnMtYmFkcm9vdC92bXMv Q2hhbmdlTG9nDQotLS0gY2N2cy1jdXJyZW50L3Ztcy9DaGFuZ2VMb2cJV2Vk IE1heSAxMyAwMzowMzoyNyAxOTk4DQorKysgY2N2cy1iYWRyb290L3Ztcy9D aGFuZ2VMb2cJU2F0IEphbiAyMyAyMTo1MjoyMSAxOTk5DQpAQCAtMSwzICsx LDggQEANCisxOTk5LTAxLTIzICBWaXRhbHkgViBGZWRydXNoa292ICA8d2ls bHlAc25vd3lvd2wuY3N1LmFjLnJ1Pg0KKw0KKwkqIGNvbmZpZy5oIChIQVZF X0dFVEVVSUQpOiBBZGRlZCAobGFjayBvZikNCisJKiBvcHRpb25zLmggKENW U19CQURST09UKTogUmVtb3ZlZA0KKw0KIDE5OTgtMDUtMTIgIEppbSBNZXll cmluZyAgPG1leWVyaW5nQGFzY2VuZC5jb20+DQogDQogCSogTWFrZWZpbGUu aW4gKGRpc3RjbGVhbik6IE5ldyBydWxlIHRvIHJlbW92ZSBNYWtlZmlsZS4N CmRpZmYgLXVyIGNjdnMtY3VycmVudC92bXMvY29uZmlnLmggY2N2cy1iYWRy b290L3Ztcy9jb25maWcuaA0KLS0tIGNjdnMtY3VycmVudC92bXMvY29uZmln LmgJU2F0IERlYyAyNyAyMjowMzoyOSAxOTk3DQorKysgY2N2cy1iYWRyb290 L3Ztcy9jb25maWcuaAlTYXQgSmFuIDIzIDIxOjM0OjA0IDE5OTkNCkBAIC05 NSw2ICs5NSw5IEBADQogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmdHJ1 bmNhdGUgZnVuY3Rpb24uICAqLw0KIC8qICN1bmRlZiBIQVZFX0ZUUlVOQ0FU RSAqLw0KIA0KKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0ZXVpZCBm dW5jdGlvbi4gICovDQorLyogI3VuZGVmIEhBVkVfR0VURVVJRCAqLw0KKw0K IC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0cGFnZXNpemUgZnVuY3Rp b24uICAqLw0KIC8qICN1bmRlZiBIQVZFX0dFVFBBR0VTSVpFICovDQogDQpk aWZmIC11ciBjY3ZzLWN1cnJlbnQvdm1zL29wdGlvbnMuaCBjY3ZzLWJhZHJv b3Qvdm1zL29wdGlvbnMuaA0KLS0tIGNjdnMtY3VycmVudC92bXMvb3B0aW9u cy5oCVR1ZSBKYW4gMTMgMjM6NTg6MzQgMTk5OA0KKysrIGNjdnMtYmFkcm9v dC92bXMvb3B0aW9ucy5oCVNhdCBKYW4gMjMgMjE6MzM6NDEgMTk5OQ0KQEAg LTExOCwxOCArMTE4LDYgQEANCiAvKiAjZGVmaW5lIENWU19GVURHRUxPQ0tT ICovDQogI2VuZGlmDQogDQotLyogVGhlcmUgaXMgc29tZSBwcmV0dHkgdW5p eHkgY29kZSBpbiBzcmMvY29tbWl0LmMgd2hpY2ggdHJpZXMgdG8NCi0gICBw cmV2ZW50IHBlb3BsZSBmcm9tIGNvbW1pdGluZyBjaGFuZ2VzIGFzICJyb290 IiAod2hpY2ggd291bGQgcHJldmVudA0KLSAgIENWUyBmcm9tIG1ha2luZyBh IGxvZyBlbnRyeSB3aXRoIHRoZSBhY3R1YWwgdXNlcikuICBPbiBWTVMsIEkg c3VwcG9zZQ0KLSAgIG9uZSBjb3VsZCBzYXkgdGhhdCBTWVNURU0gaXMgZXF1 aXZhbGVudCwgYnV0IEkgd291bGQgdGhpbmsgdGhhdCBpdA0KLSAgIGFjdHVh bGx5IGlzIG5vdCBuZWNlc3Nhcnk7IGF0IGxlYXN0IGF0IHRoZSBWTVMgc2l0 ZXMgSSd2ZSB3b3JrZWQgYXQNCi0gICBwZW9wbGUganVzdCB1c2VkIHRoZWly IG93biBhY2NvdW50cyAodHVybmluZyBwcml2aWxlZ2VzIG9uIGFuZCBvZmYN Ci0gICBhcyBkZXNpcmVkKS4gICovDQotDQotI2lmbmRlZiBDVlNfQkFEUk9P VA0KLS8qICNkZWZpbmUJQ1ZTX0JBRFJPT1QgKi8NCi0jZW5kaWYNCi0NCiAv Kg0KICAqIFRoZSAiY3ZzIGRpZmYiIGNvbW1hbmQgYWNjZXB0cyBhbGwgdGhl IHNpbmdsZS1jaGFyYWN0ZXIgb3B0aW9ucyB0aGF0IEdOVQ0KICAqIGRpZmYg KDEuMTUpIGFjY2VwdHMuICBFeGNlcHQgLUQuICBHTlUgZGlmZiB1c2VzIC1E IGFzIGEgd2F5IHRvIHB1dA0KZGlmZiAtdXIgY2N2cy1jdXJyZW50L3dpbmRv d3MtTlQvQ2hhbmdlTG9nIGNjdnMtYmFkcm9vdC93aW5kb3dzLU5UL0NoYW5n ZUxvZw0KLS0tIGNjdnMtY3VycmVudC93aW5kb3dzLU5UL0NoYW5nZUxvZwlX ZWQgT2N0IDE0IDAyOjI2OjE5IDE5OTgNCisrKyBjY3ZzLWJhZHJvb3Qvd2lu ZG93cy1OVC9DaGFuZ2VMb2cJU2F0IEphbiAyMyAyMTo0MjoxMyAxOTk5DQpA QCAtMSwzICsxLDggQEANCisxOTk5LTAxLTIzICBWaXRhbHkgViBGZWRydXNo a292ICA8d2lsbHlAc25vd3lvd2wuY3N1LmFjLnJ1Pg0KKw0KKwkqIGNvbmZp Zy5oIChIQVZFX0dFVEVVSUQpOiBBZGRlZCAobGFjayBvZiByZWFsIG9uZSkN CisJKiBvcHRpb25zLmggKENWU19CQURST09UKTogUmVtb3ZlZA0KKw0KIDE5 OTgtMTAtMTMgIEppbSBLaW5nZG9uDQogDQogCSogUkVBRE1FOiBVcGRhdGUg aW5mb3JtYXRpb24gYWJvdXQgbWFrZS9wcm9qZWN0IGZpbGVzLCBjeWd3aW4g YW5kDQpkaWZmIC11ciBjY3ZzLWN1cnJlbnQvd2luZG93cy1OVC9jb25maWcu aCBjY3ZzLWJhZHJvb3Qvd2luZG93cy1OVC9jb25maWcuaA0KLS0tIGNjdnMt Y3VycmVudC93aW5kb3dzLU5UL2NvbmZpZy5oCVRodSBPY3QgIDEgMjI6NDk6 MTAgMTk5OA0KKysrIGNjdnMtYmFkcm9vdC93aW5kb3dzLU5UL2NvbmZpZy5o CVNhdCBKYW4gMjMgMjE6NDE6MjIgMTk5OQ0KQEAgLTEyMyw2ICsxMjMsMTEg QEANCiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZ0cnVuY2F0ZSBmdW5j dGlvbi4gICovDQogI3VuZGVmIEhBVkVfRlRSVU5DQVRFDQogDQorLyogTm90 ZSB0aGF0IGdldGV1aWQoKSBzdHViIGluIHB3ZC5jIGRvZXMgbm90IGNvdW50 IGhlcmUuICBTZWUNCisgICBzcmMvY29tbWl0LmMgZm9yIGRldGFpbHMgKi8N CisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldGV1aWQgZnVuY3Rpb24u ICAqLw0KKyN1bmRlZiBIQVZFX0dFVEVVSUQNCisNCiAvKiBEZWZpbmUgaWYg eW91IGhhdmUgdGhlIGdldHBhZ2VzaXplIGZ1bmN0aW9uLiAgKi8NCiAjdW5k ZWYgSEFWRV9HRVRQQUdFU0laRQ0KIA0KZGlmZiAtdXIgY2N2cy1jdXJyZW50 L3dpbmRvd3MtTlQvb3B0aW9ucy5oIGNjdnMtYmFkcm9vdC93aW5kb3dzLU5U L29wdGlvbnMuaA0KLS0tIGNjdnMtY3VycmVudC93aW5kb3dzLU5UL29wdGlv bnMuaAlUdWUgSmFuIDEzIDIzOjQ1OjIxIDE5OTgNCisrKyBjY3ZzLWJhZHJv b3Qvd2luZG93cy1OVC9vcHRpb25zLmgJU2F0IEphbiAyMyAyMTozNToxMCAx OTk5DQpAQCAtMTI0LDIyICsxMjQsNiBAQA0KICNlbmRpZg0KIA0KIC8qDQot ICogV2hlbiBjb21taXR0aW5nIGEgcGVybWFuZW50IGNoYW5nZSwgQ1ZTIGFu ZCBSQ1MgbWFrZSBhIGxvZyBlbnRyeSBvZg0KLSAqIHdobyBjb21taXR0ZWQg dGhlIGNoYW5nZS4gIElmIHlvdSBhcmUgY29tbWl0dGluZyB0aGUgY2hhbmdl IGxvZ2dlZCBpbg0KLSAqIGFzICJyb290IiAobm90IHVuZGVyICJzdSIgb3Ig b3RoZXIgcm9vdC1wcml2IGdpdmluZyBwcm9ncmFtKSwgQ1ZTL1JDUw0KLSAq IGNhbm5vdCBkZXRlcm1pbmUgd2hvIGlzIGFjdHVhbGx5IG1ha2luZyB0aGUg Y2hhbmdlLg0KLSAqDQotICogQXMgc3VjaCwgYnkgZGVmYXVsdCwgQ1ZTIGRp c2FsbG93cyBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZCBieSB1c2Vycw0KLSAq IGxvZ2dlZCBpbiBhcyAicm9vdCIuICBZb3UgY2FuIGRpc2FibGUgdGhpcyBv cHRpb24gYnkgY29tbWVudGluZw0KLSAqIG91dCB0aGUgbGluZXMgYmVsb3cu DQotICoNCi0gKiBVbmRlciBXaW5kb3dzIE5ULCBwcml2aWxlZ2VzIGFyZSBh c3NvY2lhdGVkIHdpdGggZ3JvdXBzLCBub3QgdXNlcnMsDQotICogc28gdGhl IGNhc2UgaW4gd2hpY2ggc29tZW9uZSBoYXMgbG9nZ2VkIGluIGFzIHJvb3Qg ZG9lcyBub3Qgb2NjdXIuDQotICogVGh1cywgdGhlcmUgaXMgbm8gbmVlZCBm b3IgdGhpcyBoYWNrLg0KLSAqLw0KLSN1bmRlZiBDVlNfQkFEUk9PVA0KLQ0K LS8qDQogICogVGhlICJjdnMgZGlmZiIgY29tbWFuZCBhY2NlcHRzIGFsbCB0 aGUgc2luZ2xlLWNoYXJhY3RlciBvcHRpb25zIHRoYXQgR05VDQogICogZGlm ZiAoMS4xNSkgYWNjZXB0cy4gIEV4Y2VwdCAtRC4gIEdOVSBkaWZmIHVzZXMg LUQgYXMgYSB3YXkgdG8gcHV0DQogICogY3BwLXN0eWxlICNkZWZpbmUncyBh cm91bmQgdGhlIG91dHB1dCBkaWZmZXJlbmNlcy4gIENWUywgYnkgZGVmYXVs dCwgdXNlcw0K ---1463803639-2098444784-917132013=:2743--