From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: Re: [PATCH 2/2] import: Add stackage importer and updater. Date: Wed, 8 Feb 2017 14:19:08 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11466686bae634054804b59e Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:58375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbS9R-0000mq-7g for guix-devel@gnu.org; Wed, 08 Feb 2017 08:19:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cbS9O-0005ks-Fs for guix-devel@gnu.org; Wed, 08 Feb 2017 08:19:13 -0500 Received: from mail-ua0-x244.google.com ([2607:f8b0:400c:c08::244]:36769) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cbS9O-0005kN-AS for guix-devel@gnu.org; Wed, 08 Feb 2017 08:19:10 -0500 Received: by mail-ua0-x244.google.com with SMTP id f2so12755686uaf.3 for ; Wed, 08 Feb 2017 05:19:10 -0800 (PST) In-Reply-To: List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Guix-devel --001a11466686bae634054804b59e Content-Type: text/plain; charset=UTF-8 On Tue, Feb 7, 2017 at 8:36 AM, Federico Beffa wrote: > An importer/updater for Stackage built on top of the Hackage one. I've cleaned it up a bit. --001a11466686bae634054804b59e Content-Type: text/x-patch; charset=UTF-8; name="0002-import-Add-stackage-importer-and-updater.patch" Content-Disposition: attachment; filename="0002-import-Add-stackage-importer-and-updater.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iywze1td1 RnJvbSAxNjhjZTE1YTEwZWQwYjc2YmIzMzllMzFhZTViODk5ODU2NGQ3ZDQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogTW9uLCA2IEZlYiAyMDE3IDE4OjE5OjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAy LzJdIGltcG9ydDogQWRkIHN0YWNrYWdlIGltcG9ydGVyIGFuZCB1cGRhdGVyLgoKKiBndWl4L2lt cG9ydC9zdGFja2FnZS5zY206IE5ldyBmaWxlLgoqIGd1aXgvc2NyaXB0cy9pbXBvcnQvc3RhY2th Z2Uuc2NtOiBOZXcgZmlsZS4KKiBNYWtlZmlsZS5hbSAoTU9EVUxFUyk6IEFkZCBuZXcgZmlsZXMu CiogZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20gKGltcG9ydGVycyk6IEFkZCAic3RhY2thZ2UiLgoq IGd1aXgvc2NyaXB0cy9yZWZyZXNoLnNjbSAoJXVwZGF0ZXJzKTogQWRkICVzdGFja2FnZS11cGRh dGVyLgoqIGRvYy9ndWl4LnRleGkgKEludm9raW5nICdndWl4IGltcG9ydCcpOiBEb2N1bWVudCB0 aGUgaW1wb3J0ZXIuCiAgKEludm9raW5nICdndWl4IHJlZnJlc2gnKTogQWRkIHN0YWNrYWdlIHRv IG9wdGlvbiAtLXR5cGUgdmFsaWQgdmFsdWVzLgotLS0KIE1ha2VmaWxlLmFtICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICsKIGRvYy9ndWl4LnRleGkgICAgICAgICAgICAgICAgICAgIHwgIDMz ICsrKysrKysrLQogZ3VpeC9pbXBvcnQvc3RhY2thZ2Uuc2NtICAgICAgICAgfCAxNTMgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBndWl4L3NjcmlwdHMvaW1wb3J0LnNj bSAgICAgICAgICB8ICAgMyArLQogZ3VpeC9zY3JpcHRzL2ltcG9ydC9zdGFja2FnZS5zY20gfCAx MTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGd1aXgvc2NyaXB0cy9yZWZyZXNoLnNj bSAgICAgICAgIHwgICAyICsKIDYgZmlsZXMgY2hhbmdlZCwgMzA2IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9pbXBvcnQvc3RhY2thZ2Uuc2Nt CiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9zY3JpcHRzL2ltcG9ydC9zdGFja2FnZS5zY20KCmRp ZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IDM2MGMzNTZmMS4uMTg1 MDFiZGRmIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5hbQorKysgYi9NYWtlZmlsZS5hbQpAQCAtMTI2 LDYgKzEyNiw3IEBAIE1PRFVMRVMgPQkJCQkJXAogICBndWl4L2ltcG9ydC9jYWJhbC5zY20JCQkJ XAogICBndWl4L2ltcG9ydC9jcmFuLnNjbQkJCQlcCiAgIGd1aXgvaW1wb3J0L2hhY2thZ2Uuc2Nt CQkJXAorICBndWl4L2ltcG9ydC9zdGFja2FnZS5zY20JCQlcCiAgIGd1aXgvaW1wb3J0L2VscGEu c2NtICAgCQkJXAogICBndWl4L3NjcmlwdHMuc2NtCQkJCVwKICAgZ3VpeC9zY3JpcHRzL2Rvd25s b2FkLnNjbQkJCVwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBNT0RVTEVTID0JCQkJCVwKICAgZ3VpeC9z Y3JpcHRzL2ltcG9ydC9nbnUuc2NtCQkJXAogICBndWl4L3NjcmlwdHMvaW1wb3J0L25peC5zY20J CQlcCiAgIGd1aXgvc2NyaXB0cy9pbXBvcnQvaGFja2FnZS5zY20JCVwKKyAgZ3VpeC9zY3JpcHRz L2ltcG9ydC9zdGFja2FnZS5zY20JCVwKICAgZ3VpeC9zY3JpcHRzL2ltcG9ydC9lbHBhLnNjbSAg CQlcCiAgIGd1aXgvc2NyaXB0cy9lbnZpcm9ubWVudC5zY20JCQlcCiAgIGd1aXgvc2NyaXB0cy9w dWJsaXNoLnNjbQkJCVwKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhp CmluZGV4IDZhY2RlNjYyMS4uOGNhZjFkNjhkIDEwMDY0NAotLS0gYS9kb2MvZ3VpeC50ZXhpCisr KyBiL2RvYy9ndWl4LnRleGkKQEAgLTMxLDcgKzMxLDggQEAgQ29weXJpZ2h0IEBjb3B5cmlnaHR7 fSAyMDE2IEphbiBOaWV1d2VuaHVpemVuQCoKIENvcHlyaWdodCBAY29weXJpZ2h0e30gMjAxNiBK dWxpZW4gTGVwaWxsZXJAKgogQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAyMDE2IEFsZXggdGVyIFdl ZWxlQCoKIENvcHlyaWdodCBAY29weXJpZ2h0e30gMjAxNyBDbMOpbWVudCBMYXNzaWV1ckAqCi1D b3B5cmlnaHQgQGNvcHlyaWdodHt9IDIwMTcgTWF0aGlldSBPdGhhY2VoZQorQ29weXJpZ2h0IEBj b3B5cmlnaHR7fSAyMDE3IE1hdGhpZXUgT3RoYWNlaGVAKgorQ29weXJpZ2h0IEBjb3B5cmlnaHR7 fSAyMDE3IEZlZGVyaWNvIEJlZmZhCiAKIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5LCBk aXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcyBkb2N1bWVudAogdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4zIG9yCkBAIC01 MzQwLDYgKzUzNDEsMzQgQEAgcGFja2FnZSBuYW1lIGJ5IGFuIGF0LXNpZ24gYW5kIGEgdmVyc2lv biBudW1iZXIgYXMgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlOgogZ3VpeCBpbXBvcnQgaGFja2Fn ZSBtdGxAQDIuMS4zLjEKIEBlbmQgZXhhbXBsZQogCitAaXRlbSBzdGFja2FnZQorQGNpbmRleCBz dGFja2FnZQorVGhlIEBjb2Rle3N0YWNrYWdlfSBpbXBvcnRlciBpcyBhIHdyYXBwZXIgYXJvdW5k IHRoZSBAY29kZXtoYWNrYWdlfSBvbmUuCitJdCB0YWtlcyBhIHBhY2thZ2UgbmFtZSwgbG9va3Mg dXAgdGhlIHBhY2thZ2UgdmVyc2lvbiBpbmNsdWRlZCBpbiBhbiBMVFMKK0B1cmVme2h0dHBzOi8v d3d3LnN0YWNrYWdlLm9yZy8sIFN0YWNrYWdlfSByZWxlYXNlIGFuZCB1c2VzIHRoZQorQGNvZGV7 aGFja2FnZX0gaW1wb3J0ZXIgdG8gcmV0cmlldmUgaXRzIG1ldGFkYXRhLiAgTm90ZSB0aGF0IGl0 IGlzIHVwIHRvCit5b3UgdG8gc2VsZWN0IGFuIExUUyByZWxlYXNlIGNvbXBhdGlibGUgd2l0aCB0 aGUgR0hDIGNvbXBpbGVyIHVzZWQgYnkKK0d1aXguCisKK1NwZWNpZmljIGNvbW1hbmQtbGluZSBv cHRpb25zIGFyZToKKworQHRhYmxlIEBjb2RlCitAaXRlbSAtLW5vLXRlc3QtZGVwZW5kZW5jaWVz CitAaXRlbXggLXQKK0RvIG5vdCBpbmNsdWRlIGRlcGVuZGVuY2llcyByZXF1aXJlZCBvbmx5IGJ5 IHRoZSB0ZXN0IHN1aXRlcy4KK0BpdGVtIC0tbHRzLXZlcnNpb249QHZhcnt2ZXJzaW9ufQorQGl0 ZW14IC1yIEB2YXJ7dmVyc2lvbn0KK0B2YXJ7dmVyc2lvbn0gaXMgdGhlIGRlc2lyZWQgTFRTIHJl bGVhc2UgdmVyc2lvbi4gIElmIG9taXR0ZWQgdGhlIGxhdGVzdAorcmVsZWFzZSBpcyB1c2VkLgor QGVuZCB0YWJsZQorCitUaGUgY29tbWFuZCBiZWxvdyBpbXBvcnRzIG1ldGFkYXRhIGZvciB0aGUg QGNvZGV7SFRUUH0gSGFza2VsbCBwYWNrYWdlCitpbmNsdWRlZCBpbiB0aGUgTFRTIFN0YWNrYWdl IHJlbGVhc2UgdmVyc2lvbiA3LjE4OgorCitAZXhhbXBsZQorZ3VpeCBpbXBvcnQgc3RhY2thZ2Ug LS1sdHMtdmVyc2lvbj03LjE4IEhUVFAKK0BlbmQgZXhhbXBsZQorCiBAaXRlbSBlbHBhCiBAY2lu ZGV4IGVscGEKIEltcG9ydCBtZXRhZGF0YSBmcm9tIGFuIEVtYWNzIExpc3AgUGFja2FnZSBBcmNo aXZlIChFTFBBKSBwYWNrYWdlCkBAIC01NTA0LDYgKzU1MzMsOCBAQCB0aGUgdXBkYXRlciBmb3Ig QHVyZWZ7aHR0cHM6Ly9ydWJ5Z2Vtcy5vcmcsIFJ1YnlHZW1zfSBwYWNrYWdlcy4KIHRoZSB1cGRh dGVyIGZvciBAdXJlZntodHRwczovL2dpdGh1Yi5jb20sIEdpdEh1Yn0gcGFja2FnZXMuCiBAaXRl bSBoYWNrYWdlCiB0aGUgdXBkYXRlciBmb3IgQHVyZWZ7aHR0cHM6Ly9oYWNrYWdlLmhhc2tlbGwu b3JnLCBIYWNrYWdlfSBwYWNrYWdlcy4KK0BpdGVtIHN0YWNrYWdlCit0aGUgdXBkYXRlciBmb3Ig QHVyZWZ7aHR0cHM6Ly93d3cuc3RhY2thZ2Uub3JnLCBTdGFja2FnZX0gcGFja2FnZXMuCiBAaXRl bSBjcmF0ZQogdGhlIHVwZGF0ZXIgZm9yIEB1cmVme2h0dHBzOi8vY3JhdGVzLmlvLCBDcmF0ZXN9 IHBhY2thZ2VzLgogQGVuZCB0YWJsZQpkaWZmIC0tZ2l0IGEvZ3VpeC9pbXBvcnQvc3RhY2thZ2Uu c2NtIGIvZ3VpeC9pbXBvcnQvc3RhY2thZ2Uuc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uNTdiMDdmMjRlCi0tLSAvZGV2L251bGwKKysrIGIvZ3VpeC9pbXBvcnQvc3Rh Y2thZ2Uuc2NtCkBAIC0wLDAgKzEsMTUzIEBACis7OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwg cGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKKzs7OyBDb3B5cmlnaHQgwqkgMjAxNyBGZWRlcmlj byBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5jaD4KKzs7OworOzs7IFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXggaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorOzs7IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7Ozsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorOzs7Cis7 OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7OyBhbG9uZyB3aXRoIEdO VSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCiso ZGVmaW5lLW1vZHVsZSAoZ3VpeCBpbXBvcnQgc3RhY2thZ2UpCisgICM6dXNlLW1vZHVsZSAoaWNl LTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgcmVnZXgpCisgICM6dXNlLW1vZHVsZSAo c3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQorICAjOnVzZS1tb2R1 bGUgKGd1aXggaW1wb3J0IGpzb24pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBvcnQgaGFja2Fn ZSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IG1lbW9pemF0aW9uKQorICAjOnVzZS1tb2R1bGUgKGd1 aXggcGFja2FnZXMpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1cHN0cmVhbSkKKyAgIzp1c2UtbW9k dWxlIChndWl4IHVpKQorICAjOmV4cG9ydCAoc3RhY2thZ2UtPmd1aXgtcGFja2FnZQorICAgICAg ICAgICAgJXN0YWNrYWdlLXVwZGF0ZXIpKQorCisMCis7OzsKKzs7OyBTdGFja2FnZSBpbmZvIGZl dGNoZXIgYW5kIGFjY2VzcyBmdW5jdGlvbnMKKzs7OworCisKKyhkZWZpbmUgJXN0YWNrYWdlLXVy bCAiaHR0cDovL3d3dy5zdGFja2FnZS5vcmciKQorCisoZGVmaW5lIChsdHMtaW5mby1naGMtdmVy c2lvbiBsdHMtaW5mbykKKyAgIlJldHJ1bnMgdGhlIHZlcnNpb24gb2YgdGhlIEdIQyBjb21waWxl ciBjb250YWluZWQgaW4gTFRTLUlORk8uIgorICAobWF0Y2ggbHRzLWluZm8KKyAgICAoKCgic25h cHNob3QiICgiZ2hjIiAuIHZlcnNpb24pIF8gXykgXykgIHZlcnNpb24pCisgICAgKF8gI2YpKSkK KworKGRlZmluZSAobHRzLWluZm8tcGFja2FnZXMgbHRzLWluZm8pCisgICJSZXRydW5zIHRoZSBh bGlzdCBvZiBwYWNrYWdlcyBjb250YWluZWQgaW4gTFRTLUlORk8uIgorICAobWF0Y2ggbHRzLWlu Zm8KKyAgICAoKF8gKCJwYWNrYWdlcyIgcGtnIC4uLikpIHBrZykKKyAgICAoXyAnKCkpKSkKKwor KGRlZmluZSBzdGFja2FnZS1sdHMtaW5mby1mZXRjaAorICA7OyAiUmV0cmlldmUgdGhlIGluZm9y bWF0aW9uIGFib3V0IHRoZSBMVFMgU3RhY2thZ2UgcmVsZWFzZSBWRVJTSU9OLiIKKyAgKG1lbW9p emUKKyAgIChsYW1iZGEqICgjOm9wdGlvbmFsICh2ZXJzaW9uICIiKSkKKyAgICAgKGxldCogKCh1 cmwgKGlmIChzdHJpbmc9PyAiIiB2ZXJzaW9uKQorICAgICAgICAgICAgICAgICAgICAgKHN0cmlu Zy1hcHBlbmQgJXN0YWNrYWdlLXVybCAiL2x0cyIpCisgICAgICAgICAgICAgICAgICAgICAoc3Ry aW5nLWFwcGVuZCAlc3RhY2thZ2UtdXJsICIvbHRzLSIgdmVyc2lvbikpKQorICAgICAgICAgICAg KGx0cy1pbmZvIChqc29uLWZldGNoIHVybCkpKQorICAgICAgIChpZiBsdHMtaW5mbworICAgICAg ICAgICAocmV2ZXJzZSBsdHMtaW5mbykKKyAgICAgICAgICAgKGxlYXZlIChfICJMVFMgcmVsZWFz ZSB2ZXJzaW9uIG5vdCBmb3VuZDogfkF+JSIpIHZlcnNpb24pKSkpKSkKKworKGRlZmluZSAoc3Rh Y2thZ2UtcGFja2FnZS1uYW1lIHBrZy1pbmZvKQorICAoYXNzb2MtcmVmIHBrZy1pbmZvICJuYW1l IikpCisKKyhkZWZpbmUgKHN0YWNrYWdlLXBhY2thZ2UtdmVyc2lvbiBwa2ctaW5mbykKKyAgKGFz c29jLXJlZiBwa2ctaW5mbyAidmVyc2lvbiIpKQorCisoZGVmaW5lIChsdHMtcGFja2FnZS12ZXJz aW9uIHBrZ3MtaW5mbyBuYW1lKQorICAiUmV0dXJuIHRoZSB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdl IHdpdGggdXBzdHJlYW0gTkFNRSBpbmNsdWRlZCBpbiBQS0dTLUlORk8uIgorICAobGV0ICgocGtn IChmaW5kIChsYW1iZGEgKHBrZykgKHN0cmluZz0/IChzdGFja2FnZS1wYWNrYWdlLW5hbWUgcGtn KSBuYW1lKSkKKyAgICAgICAgICAgICAgICAgICBwa2dzLWluZm8pKSkKKyAgICAoc3RhY2thZ2Ut cGFja2FnZS12ZXJzaW9uIHBrZykpKQorCisMCis7OzsKKzs7OyBIYWNrYWdlIGltcG9ydGVyIGxv dy1sZXZlbCBoZWxwIGZ1bmN0aW9ucworOzs7CisKKyhkZWZpbmUgZ3VpeC1wYWNrYWdlLT5oYWNr YWdlLW5hbWUKKyAgKEBAIChndWl4IGltcG9ydCBoYWNrYWdlKSBndWl4LXBhY2thZ2UtPmhhY2th Z2UtbmFtZSkpCisKKyhkZWZpbmUgaGFja2FnZS1mZXRjaAorICAoQEAgKGd1aXggaW1wb3J0IGhh Y2thZ2UpIGhhY2thZ2UtZmV0Y2gpKQorCisoZGVmaW5lIGhhY2thZ2Utc291cmNlLXVybAorICAo QEAgKGd1aXggaW1wb3J0IGhhY2thZ2UpIGhhY2thZ2Utc291cmNlLXVybCkpCisKKyhkZWZpbmUg aGFja2FnZS1jYWJhbC11cmwKKyAgKEBAIChndWl4IGltcG9ydCBoYWNrYWdlKSBoYWNrYWdlLWNh YmFsLXVybCkpCisKKwwKKzs7OworOzs7IEltcG9ydGVyIGVudHJ5IHBvaW50Cis7OzsKKworKGRl ZmluZSAoaGFja2FnZS1uYW1lLXZlcnNpb24gbmFtZSB2ZXJzaW9uKQorICAoYW5kIHZlcnNpb24g KHN0cmluZy1hcHBlbmQgIG5hbWUgIkAiIHZlcnNpb24pKSkKKworKGRlZmluZSogKHN0YWNrYWdl LT5ndWl4LXBhY2thZ2UgcGFja2FnZS1uYW1lIDsgdXBzdHJlYW0gbmFtZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIzprZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChpbmNsdWRlLXRlc3QtZGVwZW5kZW5jaWVzPyAjdCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsdHMtdmVyc2lvbiAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChwYWNrYWdlcy1pbmZvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGx0cy1pbmZvLXBhY2thZ2VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz dGFja2FnZS1sdHMtaW5mby1mZXRjaCBsdHMtdmVyc2lvbikpKSkKKyAgIkZldGNoIENhYmFsIGZp bGUgZm9yIFBBQ0tBR0UtTkFNRSBmcm9tIGhhY2thZ2UuaGFza2VsbC5vcmcuICBUaGUgcmV0cmll dmVkCit2ZXNpb24gY29ycmVzcG9uZHMgdG8gdGhlIHZlcnNpb24gb2YgUEFDS0FHRS1OQU1FIHNw ZWNpZmllZCBpbiB0aGUgTFRTLVZFUlNJT04KK3JlbGVhc2UgYXQgc3RhY2thZ2Uub3JnLiAgUmV0 dXJuIHRoZSBgcGFja2FnZScgUy1leHByZXNzaW9uIGNvcnJlc3BvbmRpbmcgdG8KK3RoYXQgcGFj a2FnZSwgb3IgI2Ygb24gZmFpbHVyZS4gIFBBQ0tBR0VTLUlORk8gaXMgdGhlIGFsaXN0IHdpdGgg dGhlIHBhY2thZ2VzCitpbmNsdWRlZCBpbiB0aGUgU3RhY2thZ2UgTFRTIHJlbGVhc2UuIgorICAo bGV0KiAoKHZlcnNpb24gKGx0cy1wYWNrYWdlLXZlcnNpb24gcGFja2FnZXMtaW5mbyBwYWNrYWdl LW5hbWUpKQorICAgICAgICAgKG5hbWUtdmVyc2lvbiAoaGFja2FnZS1uYW1lLXZlcnNpb24gcGFj a2FnZS1uYW1lIHZlcnNpb24pKSkKKyAgICAoaWYgbmFtZS12ZXJzaW9uCisgICAgICAgIChoYWNr YWdlLT5ndWl4LXBhY2thZ2UgbmFtZS12ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIzppbmNsdWRlLXRlc3QtZGVwZW5kZW5jaWVzPworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluY2x1ZGUtdGVzdC1kZXBlbmRlbmNpZXM/KQorICAgICAgICAobGVhdmUgKF8g InBhY2thZ2Ugbm90IGZvdW5kOiB+QX4lIikgcGFja2FnZS1uYW1lKSkpKQorCisMCis7OzsKKzs7 OyBVcGRhdGVyCis7OzsKKworKGRlZmluZSBsYXRlc3QtbHRzLXJlbGVhc2UKKyAgKGxldCAoKHBr Z3MtaW5mbyAobWxhbWJkYSAoKSAobHRzLWluZm8tcGFja2FnZXMgKHN0YWNrYWdlLWx0cy1pbmZv LWZldGNoKSkpKSkKKyAgICAobGFtYmRhKiAocGFja2FnZSkKKyAgICAgICJSZXR1cm4gYW4gPHVw c3RyZWFtLXNvdXJjZT4gZm9yIHRoZSBsYXRlc3QgU3RhY2thZ2UgTFRTIHJlbGVhc2Ugb2YKK1BB Q0tBR0Ugb3IgI2YgaXQgdGhlIHBhY2thZ2UgaXMgbm90IGlubHVjZGVkIGluIHRoZSBTdGFja2Fn ZSBMVFMgcmVsZWFzZS4iCisgICAgICAobGV0KiAoKGhhY2thZ2UtbmFtZSAoZ3VpeC1wYWNrYWdl LT5oYWNrYWdlLW5hbWUgcGFja2FnZSkpCisgICAgICAgICAgICAgKHZlcnNpb24gKGx0cy1wYWNr YWdlLXZlcnNpb24gKHBrZ3MtaW5mbykgaGFja2FnZS1uYW1lKSkKKyAgICAgICAgICAgICAobmFt ZS12ZXJzaW9uIChoYWNrYWdlLW5hbWUtdmVyc2lvbiBoYWNrYWdlLW5hbWUgdmVyc2lvbikpKQor ICAgICAgICAobWF0Y2ggKGFuZD0+IG5hbWUtdmVyc2lvbiBoYWNrYWdlLWZldGNoKQorICAgICAg ICAgICgjZiAoZm9ybWF0IChjdXJyZW50LWVycm9yLXBvcnQpCisgICAgICAgICAgICAgICAgICAg ICAgIndhcm5pbmc6IGZhaWxlZCB0byBwYXJzZSB+YX4lIgorICAgICAgICAgICAgICAgICAgICAg IChoYWNrYWdlLWNhYmFsLXVybCBoYWNrYWdlLW5hbWUpKQorICAgICAgICAgICAgICAjZikKKyAg ICAgICAgICAoXyAobGV0ICgodXJsIChoYWNrYWdlLXNvdXJjZS11cmwgaGFja2FnZS1uYW1lIHZl cnNpb24pKSkKKyAgICAgICAgICAgICAgICh1cHN0cmVhbS1zb3VyY2UKKyAgICAgICAgICAgICAg ICAocGFja2FnZSAocGFja2FnZS1uYW1lIHBhY2thZ2UpKQorICAgICAgICAgICAgICAgICh2ZXJz aW9uIHZlcnNpb24pCisgICAgICAgICAgICAgICAgKHVybHMgKGxpc3QgdXJsKSkpKSkpKSkpKQor CisoZGVmaW5lICVzdGFja2FnZS11cGRhdGVyCisgICh1cHN0cmVhbS11cGRhdGVyCisgICAobmFt ZSAnc3RhY2thZ2UpCisgICAoZGVzY3JpcHRpb24gIlVwZGF0ZXIgZm9yIFN0YWNrYWdlIExUUyBw YWNrYWdlcyIpCisgICAocHJlZCAoQEAgKGd1aXggaW1wb3J0IGhhY2thZ2UpIGhhY2thZ2UtcGFj a2FnZT8pKQorICAgKGxhdGVzdCBsYXRlc3QtbHRzLXJlbGVhc2UpKSkKKworOzs7IHN0YWNrYWdl LnNjbSBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL2d1aXgvc2NyaXB0cy9pbXBvcnQuc2NtIGIvZ3Vp eC9zY3JpcHRzL2ltcG9ydC5zY20KaW5kZXggNGQwN2UwZmQ2Li44YzJmNzA1NzMgMTAwNjQ0Ci0t LSBhL2d1aXgvc2NyaXB0cy9pbXBvcnQuc2NtCisrKyBiL2d1aXgvc2NyaXB0cy9pbXBvcnQuc2Nt CkBAIC03Myw3ICs3Myw4IEBAIHJhdGhlciB0aGFuIFxcbi4iCiA7OzsgRW50cnkgcG9pbnQuCiA7 OzsKIAotKGRlZmluZSBpbXBvcnRlcnMgJygiZ251IiAibml4IiAicHlwaSIgImNwYW4iICJoYWNr YWdlIiAiZWxwYSIgImdlbSIgImNyYW4iICJjcmF0ZSIpKQorKGRlZmluZSBpbXBvcnRlcnMgJygi Z251IiAibml4IiAicHlwaSIgImNwYW4iICJoYWNrYWdlIiAic3RhY2thZ2UiICJlbHBhIiAiZ2Vt IgorICAgICAgICAgICAgICAgICAgICAiY3JhbiIgImNyYXRlIikpCiAKIChkZWZpbmUgKHJlc29s dmUtaW1wb3J0ZXIgbmFtZSkKICAgKGxldCAoKG1vZHVsZSAocmVzb2x2ZS1pbnRlcmZhY2UKZGlm ZiAtLWdpdCBhL2d1aXgvc2NyaXB0cy9pbXBvcnQvc3RhY2thZ2Uuc2NtIGIvZ3VpeC9zY3JpcHRz L2ltcG9ydC9zdGFja2FnZS5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li5jZjQ3YmZmMjUKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L3NjcmlwdHMvaW1wb3J0L3N0YWNr YWdlLnNjbQpAQCAtMCwwICsxLDExNSBAQAorOzs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBh Y2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJpZ2h0IMKpIDIwMTcgRmVkZXJpY28g QmVmZmEgPGJlZmZhQGZiZW5naW5lZXJpbmcuY2g+Cis7OzsKKzs7OyBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7 IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUg R3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworKGRl ZmluZS1tb2R1bGUgKGd1aXggc2NyaXB0cyBpbXBvcnQgc3RhY2thZ2UpCisgICM6dXNlLW1vZHVs ZSAoZ3VpeCB1aSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQorICAjOnVzZS1tb2R1bGUg KGd1aXggcGFja2FnZXMpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzY3JpcHRzKQorICAjOnVzZS1t b2R1bGUgKGd1aXggaW1wb3J0IHN0YWNrYWdlKQorICAjOnVzZS1tb2R1bGUgKGd1aXggc2NyaXB0 cyBpbXBvcnQpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAo c3JmaSBzcmZpLTExKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0zNykKKyAgIzp1c2UtbW9k dWxlIChpY2UtOSBtYXRjaCkKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSBmb3JtYXQpCisgICM6ZXhw b3J0IChndWl4LWltcG9ydC1zdGFja2FnZSkpCisKKwwKKzs7OworOzs7IENvbW1hbmQtbGluZSBv cHRpb25zLgorOzs7CisKKyhkZWZpbmUgJWRlZmF1bHQtb3B0aW9ucworICBgKChsdHMtdmVyc2lv biAuICIiKQorICAgIChpbmNsdWRlLXRlc3QtZGVwZW5kZW5jaWVzPyAuICN0KSkpCisKKyhkZWZp bmUgKHNob3ctaGVscCkKKyAgKGRpc3BsYXkgKF8gIlVzYWdlOiBndWl4IGltcG9ydCBzdGFja2Fn ZSBQQUNLQUdFLU5BTUUKK0ltcG9ydCBhbmQgY29udmVydCB0aGUgTFRTIFN0YWNrYWdlIHBhY2th Z2UgZm9yIFBBQ0tBR0UtTkFNRS5cbiIpKQorICAoZGlzcGxheSAoXyAiCisgIC1yIFZFUlNJT04s IC0tbHRzLXZlcnNpb249VkVSU0lPTgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNw ZWNpZnkgdGhlIExUUyB2ZXJzaW9uIHRvIHVzZSIpKQorICAoZGlzcGxheSAoXyAiCisgIC1oLCAt LWhlbHAgICAgICAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQiKSkKKyAg KGRpc3BsYXkgKF8gIgorICAtdCwgLS1uby10ZXN0LWRlcGVuZGVuY2llcyAgIGRvbid0IGluY2x1 ZGUgdGVzdC1vbmx5IGRlcGVuZGVuY2llcyIpKQorICAoZGlzcGxheSAoXyAiCisgIC1WLCAtLXZl cnNpb24gICAgICAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0 IikpCisgIChuZXdsaW5lKQorICAoc2hvdy1idWctcmVwb3J0LWluZm9ybWF0aW9uKSkKKworKGRl ZmluZSAlb3B0aW9ucworICA7OyBTcGVjaWZpY2F0aW9uIG9mIHRoZSBjb21tYW5kLWxpbmUgb3B0 aW9ucy4KKyAgKGNvbnMqIChvcHRpb24gJygjXGggImhlbHAiKSAjZiAjZgorICAgICAgICAgICAg ICAgICAobGFtYmRhIGFyZ3MKKyAgICAgICAgICAgICAgICAgICAoc2hvdy1oZWxwKQorICAgICAg ICAgICAgICAgICAgIChleGl0IDApKSkKKyAgICAgICAgIChvcHRpb24gJygjXFYgInZlcnNpb24i KSAjZiAjZgorICAgICAgICAgICAgICAgICAobGFtYmRhIGFyZ3MKKyAgICAgICAgICAgICAgICAg ICAoc2hvdy12ZXJzaW9uLWFuZC1leGl0ICJndWl4IGltcG9ydCBzdGFja2FnZSIpKSkKKyAgICAg ICAgIChvcHRpb24gJygjXHQgIm5vLXRlc3QtZGVwZW5kZW5jaWVzIikgI2YgI2YKKyAgICAgICAg ICAgICAgICAgKGxhbWJkYSAob3B0IG5hbWUgYXJnIHJlc3VsdCkKKyAgICAgICAgICAgICAgICAg ICAoYWxpc3QtY29ucyAnaW5jbHVkZS10ZXN0LWRlcGVuZGVuY2llcz8gI2YKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtZGVsZXRlICdpbmNsdWRlLXRlc3QtZGVwZW5kZW5j aWVzPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0 KSkpKQorICAgICAgICAgKG9wdGlvbiAnKCNcciAibHRzLXZlcnNpb24iKSAjdCAjZgorICAgICAg ICAgICAgICAgICAobGFtYmRhIChvcHQgbmFtZSBhcmcgcmVzdWx0KQorICAgICAgICAgICAgICAg ICAgIChhbGlzdC1jb25zICdsdHMtdmVyc2lvbiBhcmcKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoYWxpc3QtZGVsZXRlICdsdHMtdmVyc2lvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KSkpKQorICAgICAgICAgJXN0YW5kYXJkLWlt cG9ydC1vcHRpb25zKSkKKworDAorOzs7Cis7OzsgRW50cnkgcG9pbnQuCis7OzsKKworKGRlZmlu ZSAoZ3VpeC1pbXBvcnQtc3RhY2thZ2UgLiBhcmdzKQorICAoZGVmaW5lIChwYXJzZS1vcHRpb25z KQorICAgIDs7IFJldHVybiB0aGUgYWxpc3Qgb2Ygb3B0aW9uIHZhbHVlcy4KKyAgICAoYXJncy1m b2xkKiBhcmdzICVvcHRpb25zCisgICAgICAgICAgICAgICAgKGxhbWJkYSAob3B0IG5hbWUgYXJn IHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgIChsZWF2ZSAoXyAifkE6IHVucmVjb2duaXplZCBv cHRpb25+JSIpIG5hbWUpKQorICAgICAgICAgICAgICAgIChsYW1iZGEgKGFyZyByZXN1bHQpCisg ICAgICAgICAgICAgICAgICAoYWxpc3QtY29ucyAnYXJndW1lbnQgYXJnIHJlc3VsdCkpCisgICAg ICAgICAgICAgICAgJWRlZmF1bHQtb3B0aW9ucykpCisKKyAgKGxldCogKChvcHRzIChwYXJzZS1v cHRpb25zKSkKKyAgICAgICAgIChhcmdzIChmaWx0ZXItbWFwIChtYXRjaC1sYW1iZGEKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKCdhcmd1bWVudCAuIHZhbHVlKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXyAj ZikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSBvcHRzKSkpKQorICAgICht YXRjaCBhcmdzCisgICAgICAoKHBhY2thZ2UtbmFtZSkKKyAgICAgICAobGV0ICgoc2V4cCAoc3Rh Y2thZ2UtPmd1aXgtcGFja2FnZQorICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLW5hbWUKKyAg ICAgICAgICAgICAgICAgICAgIzppbmNsdWRlLXRlc3QtZGVwZW5kZW5jaWVzPworICAgICAgICAg ICAgICAgICAgICAoYXNzb2MtcmVmIG9wdHMgJ2luY2x1ZGUtdGVzdC1kZXBlbmRlbmNpZXM/KQor ICAgICAgICAgICAgICAgICAgICAjOmx0cy12ZXJzaW9uIChhc3NvYy1yZWYgb3B0cyAnbHRzLXZl cnNpb24pKSkpCisgICAgICAgICAodW5sZXNzIHNleHAKKyAgICAgICAgICAgKGxlYXZlIChfICJm YWlsZWQgdG8gZG93bmxvYWQgY2FiYWwgZmlsZSBmb3IgcGFja2FnZSAnfmEnfiUiKQorICAgICAg ICAgICAgICAgICAgcGFja2FnZS1uYW1lKSkKKyAgICAgICAgIHNleHApKQorICAgICAgKCgpCisg ICAgICAgKGxlYXZlIChfICJ0b28gZmV3IGFyZ3VtZW50c34lIikpKQorICAgICAgKChtYW55IC4u LikKKyAgICAgICAobGVhdmUgKF8gInRvbyBtYW55IGFyZ3VtZW50c34lIikpKSkpKQorCis7Ozsg c3RhY2thZ2Uuc2NtIGVuZHMgaGVyZQpkaWZmIC0tZ2l0IGEvZ3VpeC9zY3JpcHRzL3JlZnJlc2gu c2NtIGIvZ3VpeC9zY3JpcHRzL3JlZnJlc2guc2NtCmluZGV4IDBkZDdlZWU5Ny4uOTRkZWE0ZWJj IDEwMDY0NAotLS0gYS9ndWl4L3NjcmlwdHMvcmVmcmVzaC5zY20KKysrIGIvZ3VpeC9zY3JpcHRz L3JlZnJlc2guc2NtCkBAIC00MCw2ICs0MCw3IEBACiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBv cnQgZWxwYSkKICAgIzp1c2UtbW9kdWxlIChndWl4IGltcG9ydCBjcmFuKQogICAjOnVzZS1tb2R1 bGUgKGd1aXggaW1wb3J0IGhhY2thZ2UpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBvcnQgc3Rh Y2thZ2UpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBnbnVwZykKICAgIzp1c2UtbW9kdWxlIChnbnUg cGFja2FnZXMpCiAgICM6dXNlLW1vZHVsZSAoKGdudSBwYWNrYWdlcyBjb21tZW5jZW1lbnQpICM6 c2VsZWN0ICglZmluYWwtaW5wdXRzKSkKQEAgLTIwNSw2ICsyMDYsNyBAQCB1bmF2YWlsYWJsZSBv cHRpb25hbCBkZXBlbmRlbmNpZXMgc3VjaCBhcyBHdWlsZS1KU09OLiIKICAgICAgICAgICAgICAg ICAgJWVscGEtdXBkYXRlcgogICAgICAgICAgICAgICAgICAlY3Jhbi11cGRhdGVyCiAgICAgICAg ICAgICAgICAgICViaW9jb25kdWN0b3ItdXBkYXRlcgorICAgICAgICAgICAgICAgICAlc3RhY2th Z2UtdXBkYXRlcgogICAgICAgICAgICAgICAgICAlaGFja2FnZS11cGRhdGVyCiAgICAgICAgICAg ICAgICAgICgoZ3VpeCBpbXBvcnQgY3BhbikgPT4gJWNwYW4tdXBkYXRlcikKICAgICAgICAgICAg ICAgICAgKChndWl4IGltcG9ydCBweXBpKSA9PiAlcHlwaS11cGRhdGVyKQotLSAKMi4xMS4wCgo= --001a11466686bae634054804b59e--