From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64721 invoked by alias); 3 Aug 2016 10:49:57 -0000 Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com Received: (qmail 64702 invoked by uid 89); 3 Aug 2016 10:49:56 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy=db, 42,6, appropriately, Local X-HELO: out5-smtp.messagingengine.com Received: from out5-smtp.messagingengine.com (HELO out5-smtp.messagingengine.com) (66.111.4.29) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 03 Aug 2016 10:49:43 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id F38E42057E for ; Wed, 3 Aug 2016 06:49:40 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute5.internal (MEProxy); Wed, 03 Aug 2016 06:49:40 -0400 Received: from [192.168.1.102] (host31-51-206-218.range31-51.btcentralplus.com [31.51.206.218]) by mail.messagingengine.com (Postfix) with ESMTPA id 7EE7DF2D2D for ; Wed, 3 Aug 2016 06:49:40 -0400 (EDT) Subject: Re: [PATCH setup 08/10] Track if a package was installed by user, or as a dependency References: <20160802153037.125216-1-jon.turney@dronecode.org.uk> <20160802153037.125216-9-jon.turney@dronecode.org.uk> To: cygwin-apps@cygwin.com From: Jon Turney Message-ID: Date: Wed, 03 Aug 2016 10:49:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160802153037.125216-9-jon.turney@dronecode.org.uk> Content-Type: multipart/mixed; boundary="------------C067F0A3573424478E287753" X-SW-Source: 2016-08/txt/msg00027.txt.bz2 This is a multi-part message in MIME format. --------------C067F0A3573424478E287753 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 138 Attached is an updated version of the [08/10] patch which doesn't gratuitously break compatibility with other readers of installed.db. --------------C067F0A3573424478E287753 Content-Type: text/plain; charset=UTF-8; name="0008-Track-if-a-package-was-installed-by-user-or-as-a-dep.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0008-Track-if-a-package-was-installed-by-user-or-as-a-dep.pa"; filename*1="tch" Content-length: 14791 RnJvbSAyODBkNTFhYThjMTU5MTY0NjM3MDM5ZTdhNGRlNDdlYjUzYjRmZTM5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gVHVybmV5IDxq b24udHVybmV5QGRyb25lY29kZS5vcmcudWs+CkRhdGU6IFR1ZSwgMiBBdWcg MjAxNiAxMjoxOTowOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggc2V0dXAgMDgv MTBdIFRyYWNrIGlmIGEgcGFja2FnZSB3YXMgaW5zdGFsbGVkIGJ5IHVzZXIs IG9yIGFzIGEKIGRlcGVuZGVuY3kKClVwZGF0ZSB0aGUgaW5zdGFsbGVkLmRi IGZpbGUgZm9ybWF0IHRvIHZlcnNpb24gMywgY29udGFpbmluZyB0aGUgdXNl cl9waWNrZWQKZmxhZy4KClRoaXMgZXh0ZW5kcyB0aGUgc2VtYW50aWNzIG9m IHVzZXJfcGljayBzb21ld2hhdDogY3VycmVudGx5IGl0IGlzIG9ubHkgdXNl ZApmb3IgVUkgcHVycG9zZXMsIHRvIHJlY29yZCBpZiBhIHBhY2thZ2Ugd2Fz IHBpY2tlZCBpbiB0aGUgY3VycmVudCBzZXNzaW9uLgoKTm93IHdlIGFsc28g dXNlIGl0IHRvIHJlY29yZCBpZiBhbiBpbnN0YWxsZWQgcGFja2FnZSBoYXMg ZXZlciBiZWVuIHBpY2tlZAp2aWEgdGhlIFVJIChvdGhlcndpc2UgaXQgaXMg b25seSBpbnN0YWxsZWQgYmVjYXVzZSBpdCBpcyBhIGRlcGVuZGVuY3kpLgoK U28sIHdlIGFyZSBjYXJlZnVsIG5vdCB0byBzZXQgaXQgd2hlbiBhIGN1cnJl bnRseSBpbnN0YWxsZWQgcGFja2FnZSBoYXMgaXQncwppbnN0YWxsZWQgdmVy c2lvbiBhZGp1c3RlZCB2aWEgdGhlIEdVSS4KCldlIGFsc28gYXJyYW5nZSBm b3IgdXNlcl9waWNrIHRvIGJlIHNldCB3aGVuIGEgcGFja2FnZSB3YXMgc2Vs ZWN0ZWQgZm9yCmluc3RhbGxhdGlvbiB2aWEgQ0xJLgoKQWRkIGEgaGV1cmlz dGljIHRvIGluaXRpYWxseSBwb3B1bGF0ZSB1c2VyX3BpY2sgd2hlbiB1cGdy YWRpbmcgZnJvbSBvbGRlcgppbnN0YWxsZWQuZGIgZm9ybWF0czogQWxsIG5v bi1iYXNlIGluc3RhbGxlZCBwYWNrYWdlcyB3aGljaCBhcmVuJ3QKZGVwZW5k ZW5pZXMgYXJlIGFzc3VtZWQgdG8gYmUgdXNlcl9waWNrLWVkLgoKTm90ZTog b3RoZXIgdG9vbHMgKGUuZy4gY3lnY2hlY2spIHdoaWNoIHJlYWQgdGhlIGlu c3RhbGxlZC5kYiBmaWxlIHdpbGwgbmVlZAp1cGRhdGluZyBhcHByb3ByaWF0 ZWx5Cgp2MjoKRG9uJ3QgZ3JhdHVpdG91c2x5IGJyZWFrIGNvbXBhdGlibGl0 eSB3aXRoIG90aGVyIGV4aXN0aW5nIHJlYWRlcnMgb2YKaW5zdGFsbGVkLmRi LCBrZWVwIHJlY29yZGluZyB2ZXJzaW9uIGFzIGEgbm90aW9uYWwgZmlsZW5h bWUuCgpEb24ndCB0cmVhdCB1bmtub3duIGZ1dHVyZSBpbnN0YWxsZWQuZGIg Zm9ybWF0IHZlcnNpb25zIGFzIGZvcm1hdCB2ZXJzaW9uIDEsCmluc3RlYWQg dHJlYXQgc2V0dXAgZG93bmdyYWRpbmcgYXMgYSBmYXRhbCBlcnJvci4KLS0t CiBpbmkuY2MgICAgICAgICAgfCAgIDQgKysKIHBhY2thZ2VfZGIuY2MgICB8 IDEzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLQogcGFja2FnZV9kYi5oICAgIHwgICAzICsrCiBw YWNrYWdlX21ldGEuY2MgfCAgIDQgKy0KIHJlcy5yYyAgICAgICAgICB8ICAg MSArCiByZXNvdXJjZS5oICAgICAgfCAgIDEgKwogNiBmaWxlcyBjaGFuZ2Vk LCAxMjAgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvaW5pLmNjIGIvaW5pLmNjCmluZGV4IDQ1NmViNmUuLmY5MjViZjUg MTAwNjQ0Ci0tLSBhL2luaS5jYworKysgYi9pbmkuY2MKQEAgLTUxLDYgKzUx LDcgQEAKICNpbmNsdWRlICJjb21wcmVzcy5oIgogI2luY2x1ZGUgIkV4Y2Vw dGlvbi5oIgogI2luY2x1ZGUgImNyeXB0by5oIgorI2luY2x1ZGUgInBhY2th Z2VfZGIuaCIKIAogZXh0ZXJuIFRocmVlQmFyUHJvZ3Jlc3NQYWdlIFByb2dy ZXNzOwogCkBAIC0zNTEsNiArMzUyLDkgQEAgZG9faW5pX3RocmVhZCAoSElO U1RBTkNFIGgsIEhXTkQgb3duZXIpCiAgIGVsc2UKICAgICBpbmlfY291bnQg PSBkb19yZW1vdGVfaW5pIChvd25lcik7CiAKKyAgcGFja2FnZWRiIGRiOwor ICBkYi51cGdyYWRlKCk7CisKICAgaWYgKGluaV9jb3VudCA9PSAwKQogICAg IHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvcGFja2FnZV9kYi5jYyBi L3BhY2thZ2VfZGIuY2MKaW5kZXggZjQzN2RhZi4uNzlmMmY5MyAxMDA2NDQK LS0tIGEvcGFja2FnZV9kYi5jYworKysgYi9wYWNrYWdlX2RiLmNjCkBAIC00 Miw2ICs0Miw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjdnNpZCA9CiAjaW5j bHVkZSAicGFja2FnZV9tZXRhLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgi CiAjaW5jbHVkZSAiR2VuZXJpYy5oIgorI2luY2x1ZGUgIkxvZ1NpbmdsZXRv bi5oIgorI2luY2x1ZGUgInJlc291cmNlLmgiCiAKIHVzaW5nIG5hbWVzcGFj ZSBzdGQ7CiAKQEAgLTU1LDM3ICs1Nyw0NCBAQCBwYWNrYWdlZGI6OnBhY2th Z2VkYiAoKQogICAgICAgaW5zdGFsbGVkZGJyZWFkID0gMTsKICAgICAgIGlm ICghZGIpCiAJcmV0dXJuOwotICAgICAgLyogZmx1c2hfbG9jYWxfZGJfcGFj a2FnZV9kYXRhICovCi0gICAgICBjaGFyIGxpbmVbMTAwMF0sIHBrZ25hbWVb MTAwMF0sIGluc3RbMTAwMF07Ci0gICAgICBpbnQgaW5zdHN6OworICAgICAg Y2hhciBsaW5lWzEwMDBdLCBwa2duYW1lWzEwMDBdOwogCiAgICAgICBpZiAo ZGItPmdldHMgKGxpbmUsIDEwMDApKQogCXsKKwkgIC8qIExvb2sgZm9yIGhl YWRlciBsaW5lIChhYnNlbnQgaW4gdmVyc2lvbiAxKSAqLworCSAgaW50IGlu c3RzejsKIAkgIGludCBkYnZlcjsKIAkgIHNzY2FuZiAobGluZSwgIiVzICVk IiwgcGtnbmFtZSwgJmluc3Rzeik7Ci0JICBpZiAoIXN0cmNhc2VjbXAgKHBr Z25hbWUsICJJTlNUQUxMRUQuREIiKSAmJiBpbnN0c3ogPT0gMikKLQkgICAg ZGJ2ZXIgPSAyOworCSAgaWYgKCFzdHJjYXNlY21wIChwa2duYW1lLCAiSU5T VEFMTEVELkRCIikpCisJICAgIGRidmVyID0gaW5zdHN6OwogCSAgZWxzZQog CSAgICBkYnZlciA9IDE7CiAJICBkZWxldGUgZGI7CiAJICBkYiA9IDA7Ci0J ICAvKiBMYXRlciB2ZXJzaW9ucyBtYXkgbm90IHVzZSBpbnN0YWxsZWQuZGIg b3RoZXIgdGhhbiB0byByZWNvcmQgdGhlIHZlcnNpb24uICovCi0JICBpZiAo ZGJ2ZXIgPT0gMSB8fCBkYnZlciA9PSAyKQorCisJICBMb2cgKExPR19CQUJC TEUpIDw8ICJJTlNUQUxMRUQuREIgdmVyc2lvbiAiIDw8IGRidmVyIDw8IGVu ZExvZzsKKworCSAgaWYgKGRidmVyIDw9IDMpCiAJICAgIHsKKwkgICAgICBj aGFyIGluc3RbMTAwMF07CisKIAkgICAgICBkYiA9CiAJCWlvX3N0cmVhbTo6 b3BlbiAoImN5Z2ZpbGU6Ly8vZXRjL3NldHVwL2luc3RhbGxlZC5kYiIsICJy dCIsIDApOwotCSAgICAgIGlmIChkYnZlciA9PSAyKQorCisJICAgICAgLy8g c2tpcCBvdmVyIGFscmVhZHktcGFyc2VkIGhlYWRlciBsaW5lCisJICAgICAg aWYgKGRidmVyID49IDIpCiAJCWRiLT5nZXRzIChsaW5lLCAxMDAwKTsKKwog CSAgICAgIHdoaWxlIChkYi0+Z2V0cyAobGluZSwgMTAwMCkpCiAJCXsKIAkJ ICBpbnQgcGFyc2VhYmxlOwotCQkgIGludCBpZ247CisJCSAgaW50IHVzZXJf cGlja2VkID0gMDsKIAkJICBwa2duYW1lWzBdID0gJ1wwJzsKIAkJICBpbnN0 WzBdID0gJ1wwJzsKIAotCQkgIHNzY2FuZiAobGluZSwgIiVzICVzICVkIiwg cGtnbmFtZSwgaW5zdCwgJmlnbik7CisJCSAgaW50IHJlcyA9IHNzY2FuZiAo bGluZSwgIiVzICVzICVkIiwgcGtnbmFtZSwgaW5zdCwgJnVzZXJfcGlja2Vk KTsKIAotCQkgIGlmIChwa2duYW1lWzBdID09ICdcMCcgfHwgaW5zdFswXSA9 PSAnXDAnKQorCQkgIGlmIChyZXMgPCAzIHx8IHBrZ25hbWVbMF0gPT0gJ1ww JyB8fCBpbnN0WzBdID09ICdcMCcpCiAJCQljb250aW51ZTsKIAogCQkgIGZp bGVwYXJzZSBmOwpAQCAtOTgsMjcgKzEwNywyOSBAQCBwYWNrYWdlZGI6OnBh Y2thZ2VkYiAoKQogCQkgICAgewogCQkgICAgICBwa2cgPSBuZXcgcGFja2Fn ZW1ldGEgKHBrZ25hbWUpOwogCQkgICAgICBwYWNrYWdlcy5pbnNlcnQgKHBh Y2thZ2VkYjo6cGFja2FnZWNvbGxlY3Rpb246OnZhbHVlX3R5cGUocGtnbmFt ZSwgcGtnKSk7Ci0JCSAgICAgIC8qIHdlIHNob3VsZCBpbnN0YWxsIGEgbmV3 IGhhbmRsZXIgdGhlbiBub3QgY2hlY2sgdGhpcy4uLgotCQkgICAgICAgKi8K LQkJICAgICAgLy9pZiAoIXBrZykKLQkJICAgICAgLy9kaWUgYmFkbHkKIAkJ ICAgIH0KIAogCQkgIHBhY2thZ2V2ZXJzaW9uIGJpbmFyeSA9IAogCQkgICAg Y3lncGFja2FnZTo6Y3JlYXRlSW5zdGFuY2UgKHBrZ25hbWUsIGYudmVyLAot CSAgICAJCQkJCXBhY2thZ2VfaW5zdGFsbGVkLAotCSAgICAJCQkJCXBhY2th Z2VfYmluYXJ5KTsKKwkJCQkJCXBhY2thZ2VfaW5zdGFsbGVkLAorCQkJCQkJ cGFja2FnZV9iaW5hcnkpOwogCiAJCSAgcGtnLT5hZGRfdmVyc2lvbiAoYmlu YXJ5KTsKIAkJICBwa2ctPnNldF9pbnN0YWxsZWQgKGJpbmFyeSk7CiAJCSAg cGtnLT5kZXNpcmVkID0gcGtnLT5pbnN0YWxsZWQ7CisKKwkJICBpZiAoZGJ2 ZXIgPT0gMykKKwkJICAgIHBrZy0+dXNlcl9waWNrZWQgPSAodXNlcl9waWNr ZWQgIT0gMCk7CiAJCX0KIAkgICAgICBkZWxldGUgZGI7CiAJICAgICAgZGIg PSAwOwogCSAgICB9CiAJICBlbHNlCi0JICAgIC8vIHVua25vd24gZGJ2ZXJz aW9uCi0JICAgIGV4aXQgKDEpOworCSAgICB7CisgICAgICAgICAgICAgIGZh dGFsKE5VTEwsIElEU19JTlNUQUxMRURCX1ZFUlNJT04pOworCSAgICB9CisK KwkgIGluc3RhbGxlZGRidmVyID0gZGJ2ZXI7CiAJfQogICAgIH0KIH0KQEAg LTEzOCwyMSArMTQ5LDIyIEBAIHBhY2thZ2VkYjo6Zmx1c2ggKCkKICAgaWYg KCFuZGIpCiAgICAgcmV0dXJuIGVycm5vID8gZXJybm8gOiAxOwogCi0gIG5k Yi0+d3JpdGUgKCJJTlNUQUxMRUQuREIgMlxuIiwgc3RybGVuICgiSU5TVEFM TEVELkRCIDJcbiIpKTsKKyAgbmRiLT53cml0ZSAoIklOU1RBTExFRC5EQiAz XG4iLCBzdHJsZW4gKCJJTlNUQUxMRUQuREIgM1xuIikpOwogICBmb3IgKHBh Y2thZ2VkYjo6cGFja2FnZWNvbGxlY3Rpb246Oml0ZXJhdG9yIGkgPSBwYWNr YWdlcy5iZWdpbiAoKTsKICAgICAgICBpICE9IHBhY2thZ2VzLmVuZCAoKTsg KytpKQogICAgIHsKICAgICAgIHBhY2thZ2VtZXRhICYgcGtnbSA9ICooaS0+ c2Vjb25kKTsKICAgICAgIGlmIChwa2dtLmluc3RhbGxlZCkKIAl7Ci0JICAv KiBzaXplIGhlcmUgaXMgaXJyZWxldmFudCAtIGFzIHdlIGNhbiBhc3N1bWUg dGhhdCB0aGlzIGluc3RhbGwgc291cmNlCi0JICAgKiBubyBsb25nZXIgZXhp c3RzLCBhbmQgaXQgZG9lcyBub3QgY29ycmVsYXRlIHRvIHVzZWQgZGlzayBz cGFjZQotCSAgICogYWxzbyBub3RlIHRoYXQgd2UgYXJlIHdyaXRpbmcgYSBm aWN0aW9uYWwgaW5zdGFsbCBzb3VyY2UgCi0JICAgKiB0byBrZWVwIGN5Z2No ZWNrIGhhcHB5LiAgICAgICAgICAgICAgIAotCSAgICovCisgICAgICAgICAg LyoKKyAgICAgICAgICAgIEluIElOU1RBTExFRC5EQiAzLCBsaW5lcyBhcmU6 ICdwYWNrYWdlbmFtZSB2ZXJzaW9uIHVzZXItcGlja2VkJywKKyAgICAgICAg ICAgIHdoZXJlIHZlcnNpb24gaXMgZW5jb2RlZCBpbiBhIG5vdGlvbmFsIGZp bGVuYW1lIGZvciBiYWNrd2FyZHMKKyAgICAgICAgICAgIGNvbXBhdGliaWxp dHkuCisgICAgICAgICAgKi8KIAkgIHN0ZDo6c3RyaW5nIGxpbmU7Ci0JICBs aW5lID0gcGtnbS5uYW1lICsgIiAiICsgcGtnbS5uYW1lICsgIi0iICsgCi0J ICAgIHN0ZDo6c3RyaW5nKHBrZ20uaW5zdGFsbGVkLkNhbm9uaWNhbF92ZXJz aW9uKCkpICsgIi50YXIuYnoyIDBcbiI7CisJICBsaW5lID0gcGtnbS5uYW1l ICsgIiAiICsKKwkgICAgcGtnbS5uYW1lICsgIi0iICsgc3RkOjpzdHJpbmco cGtnbS5pbnN0YWxsZWQuQ2Fub25pY2FsX3ZlcnNpb24oKSkgKyAiLnRhci5i ejIgIiArCisJICAgIChwa2dtLnVzZXJfcGlja2VkID8gIjEiIDogIjAiKSAr ICJcbiI7CiAJICBuZGItPndyaXRlIChsaW5lLmNfc3RyKCksIGxpbmUuc2l6 ZSgpKTsKIAl9CiAgICAgfQpAQCAtMTY2LDYgKzE3OCwxOCBAQCBwYWNrYWdl ZGI6OmZsdXNoICgpCiAgIHJldHVybiAwOwogfQogCit2b2lkCitwYWNrYWdl ZGI6OnVwZ3JhZGUoKQoreworICBpZiAoaW5zdGFsbGVkZGJ2ZXIgPCAzKQor ICAgIHsKKyAgICAgIC8qIEd1ZXNzIHdoaWNoIHBhY2thZ2VzIHdlcmUgdXNl cl9waWNrZWQuICBUaGlzIGhhcyB0byB0YWtlIHBsYWNlIGFmdGVyCisgICAg ICAgICBzZXR1cC5pbmkgaGFzIGJlZW4gcGFyc2VkIGFzIGl0IG5lZWRzIGRl cGVuZGVuY3kgaW5mb3JtYXRpb24uICovCisgICAgICBndWVzc1VzZXJQaWNr ZWQoKTsKKyAgICAgIGluc3RhbGxlZGRidmVyID0gMzsKKyAgICB9Cit9CisK IHBhY2thZ2VtZXRhICoKIHBhY2thZ2VkYjo6ZmluZEJpbmFyeSAoUGFja2Fn ZVNwZWNpZmljYXRpb24gY29uc3QgJnNwZWMpIGNvbnN0CiB7CkBAIC0xOTks MTMgKzIyMywxMyBAQCBwYWNrYWdlZGI6OmZpbmRTb3VyY2UgKFBhY2thZ2VT cGVjaWZpY2F0aW9uIGNvbnN0ICZzcGVjKSBjb25zdAogLyogc3RhdGljIG1l bWJlcnMgKi8KIAogaW50IHBhY2thZ2VkYjo6aW5zdGFsbGVkZGJyZWFkID0g MDsKK2ludCBwYWNrYWdlZGI6Omluc3RhbGxlZGRidmVyID0gMDsKIHBhY2th Z2VkYjo6cGFja2FnZWNvbGxlY3Rpb24gcGFja2FnZWRiOjpwYWNrYWdlczsK IHBhY2thZ2VkYjo6Y2F0ZWdvcmllc1R5cGUgcGFja2FnZWRiOjpjYXRlZ29y aWVzOwogcGFja2FnZWRiOjpwYWNrYWdlY29sbGVjdGlvbiBwYWNrYWdlZGI6 OnNvdXJjZVBhY2thZ2VzOwogUGFja2FnZURCQWN0aW9ucyBwYWNrYWdlZGI6 OnRhc2sgPSBQYWNrYWdlREJfSW5zdGFsbDsKIHN0ZDo6dmVjdG9yIDxwYWNr YWdlbWV0YSAqPiBwYWNrYWdlZGI6OmRlcGVuZGVuY3lPcmRlcmVkUGFja2Fn ZXM7CiAKLSNpbmNsdWRlICJMb2dTaW5nbGV0b24uaCIKICNpbmNsdWRlIDxz dGFjaz4KIAogY2xhc3MKQEAgLTQ0OSwzICs0NzMsNTkgQEAgcGFja2FnZWRi OjpkZWZhdWx0VHJ1c3QgKHRydXN0cyB0cnVzdCkKICAgICAgICAgcGFja2Fn ZWRiOjpjYXRlZ29yaWVzLmVyYXNlIChuKyspOwogICAgICAgfQogfQorCit2 b2lkCitwYWNrYWdlZGI6Omd1ZXNzVXNlclBpY2tlZCgpCit7CisgIC8qCisg ICAgQXNzdW1lIHRoYXQgYW55IG5vbi1iYXNlIGluc3RhbGxlZCBwYWNrYWdl IHdoaWNoIGlzIGEgZGVwZW5kZW5jeSBvZiBhbgorICAgIGluc3RhbGxlZCBw YWNrYWdlIHdhc24ndCB1c2VyX3BpY2tlZAorCisgICAgaS5lLiBvbmx5IGlu c3RhbGxlZCBwYWNrYWdlcyB3aGljaCBhcmVuJ3QgaW4gdGhlIGJhc2UgY2F0 ZWdvcnksIGFuZCBhcmVuJ3QKKyAgICBhIGRlcGVuZGVuY3kgb2YgYW55IGlu c3RhbGxlZCBwYWNrYWdlIGFyZSB1c2VyX3BpY2tlZAorICAqLworCisgIC8q IEZpcnN0IG1hcmsgYWxsIGluc3RhbGxlZCBub24tYmFzZSBwYWNrYWdlcyAq LworICBmb3IgKHBhY2thZ2VkYjo6cGFja2FnZWNvbGxlY3Rpb246Oml0ZXJh dG9yIGkgPSBwYWNrYWdlcy5iZWdpbiAoKTsKKyAgICAgICBpICE9IHBhY2th Z2VzLmVuZCAoKTsgKytpKQorICAgIHsKKyAgICAgIHBhY2thZ2VtZXRhICYg cGtnbSA9ICooaS0+c2Vjb25kKTsKKworICAgICAgaWYgKHBrZ20uY2F0ZWdv cmllcy5maW5kICgiQmFzZSIpICE9IHBrZ20uY2F0ZWdvcmllcy5lbmQgKCkp CisJY29udGludWU7CisKKyAgICAgIGlmIChwa2dtLmluc3RhbGxlZCkKKwlw a2dtLnVzZXJfcGlja2VkID0gVFJVRTsKKyAgICB9CisKKyAgLyogVGhlbiBj bGVhciB0aGUgbWFyayBmb3IgYWxsIGRlcGVuZGVuY2llcyBvZiBhbGwgaW5z dGFsbGVkIHBhY2thZ2VzICovCisgIGZvciAocGFja2FnZWRiOjpwYWNrYWdl Y29sbGVjdGlvbjo6aXRlcmF0b3IgaSA9IHBhY2thZ2VzLmJlZ2luICgpOwor ICAgICAgIGkgIT0gcGFja2FnZXMuZW5kICgpOyArK2kpCisgICAgeworICAg ICAgcGFja2FnZW1ldGEgJiBwa2dtID0gKihpLT5zZWNvbmQpOworCisgICAg ICBpZiAoIXBrZ20uaW5zdGFsbGVkKQorCWNvbnRpbnVlOworCisgICAgICAv KiB3YWxrIHRocm91Z2ggZWFjaCBhbmQgY2xhdXNlICovCisgICAgICB2ZWN0 b3IgPHZlY3RvciA8UGFja2FnZVNwZWNpZmljYXRpb24gKj4gKj46OmNvbnN0 X2l0ZXJhdG9yIGRwID0gcGtnbS5pbnN0YWxsZWQuZGVwZW5kcygpLT5iZWdp bigpOworICAgICAgd2hpbGUgKGRwICE9IHBrZ20uaW5zdGFsbGVkLmRlcGVu ZHMoKS0+ZW5kKCkpCisJeworCSAgLyogY2hlY2sgZWFjaCBvciBjbGF1c2Ug Zm9yIGFuIGluc3RhbGxlZCBtYXRjaCAqLworCSAgdmVjdG9yIDxQYWNrYWdl U3BlY2lmaWNhdGlvbiAqPjo6Y29uc3RfaXRlcmF0b3IgaSA9IGZpbmRfaWYg KCgqZHApLT5iZWdpbigpLCAoKmRwKS0+ZW5kKCksIGNoZWNrRm9ySW5zdGFs bGVkKTsKKwkgIGlmIChpICE9ICgqZHApLT5lbmQoKSkKKwkgICAgeworCSAg ICAgIGNvbnN0IHBhY2thZ2VkYjo6cGFja2FnZWNvbGxlY3Rpb246Oml0ZXJh dG9yIG4gPSBwYWNrYWdlcy5maW5kKCgqaSktPnBhY2thZ2VOYW1lKCkpOwor CSAgICAgIGlmIChuICE9IHBhY2thZ2VzLmVuZCgpKQorCQl7CisJCSAgcGFj a2FnZW1ldGEgKnBrZ20yID0gbi0+c2Vjb25kOworCQkgIHBrZ20yLT51c2Vy X3BpY2tlZCA9IEZBTFNFOworCQl9CisJICAgICAgLyogc2tpcCB0byBuZXh0 IGFuZCBjbGF1c2UgKi8KKwkgICAgICArK2RwOworCSAgICAgIGNvbnRpbnVl OworCSAgICB9CisJICArK2RwOworCX0KKyAgICB9Cit9CmRpZmYgLS1naXQg YS9wYWNrYWdlX2RiLmggYi9wYWNrYWdlX2RiLmgKaW5kZXggYmM4MjhhMS4u NmE5OTM5OCAxMDA2NDQKLS0tIGEvcGFja2FnZV9kYi5oCisrKyBiL3BhY2th Z2VfZGIuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgIHBhY2thZ2Vk YiAoKTsKICAgLyogMCBvbiBzdWNjZXNzICovCiAgIGludCBmbHVzaCAoKTsK KyAgdm9pZCB1cGdyYWRlICgpOwogICBwYWNrYWdlbWV0YSAqIGZpbmRCaW5h cnkgKFBhY2thZ2VTcGVjaWZpY2F0aW9uIGNvbnN0ICYpIGNvbnN0OwogICBw YWNrYWdlbWV0YSAqIGZpbmRTb3VyY2UgKFBhY2thZ2VTcGVjaWZpY2F0aW9u IGNvbnN0ICYpIGNvbnN0OwogICBQYWNrYWdlREJDb25uZWN0ZWRJdGVyYXRv ciBjb25uZWN0ZWRCZWdpbigpOwpAQCAtODQsOCArODUsMTAgQEAgcHVibGlj OgogICBzdGF0aWMgUGFja2FnZURCQWN0aW9ucyB0YXNrOwogcHJpdmF0ZToK ICAgc3RhdGljIGludCBpbnN0YWxsZWRkYnJlYWQ7CS8qIGRvIHdlIGhhdmUg dG8gcmVyZWFkIHRoaXMgKi8KKyAgc3RhdGljIGludCBpbnN0YWxsZWRkYnZl cjsKICAgZnJpZW5kIGNsYXNzIENvbm5lY3RlZExvb3BGaW5kZXI7CiAgIHN0 YXRpYyBzdGQ6OnZlY3RvciA8cGFja2FnZW1ldGEgKj4gZGVwZW5kZW5jeU9y ZGVyZWRQYWNrYWdlczsKKyAgdm9pZCBndWVzc1VzZXJQaWNrZWQodm9pZCk7 CiB9OwogCiAjZW5kaWYgLyogU0VUVVBfUEFDS0FHRV9EQl9IICovCmRpZmYg LS1naXQgYS9wYWNrYWdlX21ldGEuY2MgYi9wYWNrYWdlX21ldGEuY2MKaW5k ZXggMjFiMjFlZi4uMzkyM2IxMyAxMDA2NDQKLS0tIGEvcGFja2FnZV9tZXRh LmNjCisrKyBiL3BhY2thZ2VfbWV0YS5jYwpAQCAtNDU4LDcgKzQ1OCw4IEBA IHBhY2thZ2VtZXRhOjpzZXRfYWN0aW9uICh0cnVzdHMgY29uc3QgdHJ1c3Qp CiAgIGVsc2UKICAgICBkZXNpcmVkID0gcGFja2FnZXZlcnNpb24gKCk7CiAg IC8qIE1lbW9yaXplIHRoZSBmYWN0IHRoYXQgdGhlIHVzZXIgcGlja2VkIGF0 IGxlYXN0IG9uY2UuICovCi0gIHVzZXJfcGlja2VkID0gdHJ1ZTsKKyAgaWYg KCFpbnN0YWxsZWQpCisgICAgdXNlcl9waWNrZWQgPSB0cnVlOwogfQogCiBp bnQKQEAgLTUxMCw2ICs1MTEsNyBAQCBwYWNrYWdlbWV0YTo6c2V0X2FjdGlv biAoX2FjdGlvbnMgYWN0aW9uLCBwYWNrYWdldmVyc2lvbiBjb25zdCAmZGVm YXVsdF92ZXJzaW9uKQogCSAgaWYgKGRlc2lyZWQgIT0gaW5zdGFsbGVkKQog CSAgICBpZiAoZGVzaXJlZC5hY2Nlc3NpYmxlICgpKQogCSAgICAgIHsKKwkJ dXNlcl9waWNrZWQgPSB0cnVlOwogCQlkZXNpcmVkLnBpY2sgKHRydWUsIHRo aXMpOwogCQlkZXNpcmVkLnNvdXJjZVBhY2thZ2UgKCkucGljayAoZmFsc2Us IE5VTEwpOwogCSAgICAgIH0KZGlmZiAtLWdpdCBhL3Jlcy5yYyBiL3Jlcy5y YwppbmRleCBmMWNmNDA2Li44MjkyNzUwIDEwMDY0NAotLS0gYS9yZXMucmMK KysrIGIvcmVzLnJjCkBAIC01NjksNCArNTY5LDUgQEAgQkVHSU4KICAgICBJ RFNfTk9fTE9DQUxESVIgICAgIkxvY2FsIHBhY2thZ2UgZGlyZWN0b3J5ICVz IG5vdCBmb3VuZC5cbllvdSBjYW4gc3RpbGwgdXNlIHNldHVwLSVzLmV4ZSB0 byByZW1vdmUgaW5zdGFsbGVkXG5wYWNrYWdlcywgYnV0IHRoZXJlICIKICAg ICAgICJ3aWxsIGJlIG5vdGhpbmcgdG8gaW5zdGFsbC5cblxuUHJlc3MgT0sg aWYgdGhhdCdzIHdoYXQgeW91IHdhbnRlZFxub3IgQ2FuY2VsIHRvIGNob29z ZSBhIGRpZmZlcmVudCBkaXJlY3RvcnkuIgogICAgIElEU19FTEVWQVRFRCAg ICAgICAiSGFuZCBpbnN0YWxsYXRpb24gb3ZlciB0byBlbGV2YXRlZCBjaGls ZCBwcm9jZXNzLiIKKyAgICBJRFNfSU5TVEFMTEVEQl9WRVJTSU9OICJVbmtu b3duIElOU1RBTExFRC5EQiB2ZXJzaW9uIgogRU5ECmRpZmYgLS1naXQgYS9y ZXNvdXJjZS5oIGIvcmVzb3VyY2UuaAppbmRleCA0OGYwM2FiLi42OGU4MDIz IDEwMDY0NAotLS0gYS9yZXNvdXJjZS5oCisrKyBiL3Jlc291cmNlLmgKQEAg LTM5LDYgKzM5LDcgQEAKICNkZWZpbmUgSURTX0NBTlRfTUtESVIgICAgICAg ICAgICAgICAgICAgIDEzNwogI2RlZmluZSBJRFNfTk9fTE9DQUxESVIJCQkg IDEzOAogI2RlZmluZSBJRFNfRUxFVkFURUQJCQkgIDEzOQorI2RlZmluZSBJ RFNfSU5TVEFMTEVEQl9WRVJTSU9OICAgICAgICAgICAgMTQwCiAKIC8vIERp YWxvZ3MKIAotLSAKMi44LjMKCg== --------------C067F0A3573424478E287753--