From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#36447: 27.0.50; New "Unknown keyword" errors Date: Fri, 5 Jul 2019 21:52:41 +0000 Message-ID: References: <875zon7x0a.fsf@web.de> <8336jqgbhp.fsf@gnu.org> <87h886eoke.fsf@web.de> <87d0iu54d1.fsf@gmail.com> <87k1d14djr.fsf@web.de> <87h884fo0i.fsf@web.de> <85d0is5ry1.fsf@gmail.com> <87lfxdgs1k.fsf@web.de> <83y31capj1.fsf@gnu.org> <83tvc0anwi.fsf@gnu.org> <83r274an61.fsf@gnu.org> <83pnmoacft.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000553536058cf61f3f" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="155397"; mail-complaints-to="usenet@blaine.gmane.org" Cc: michael_heerdegen@web.de, npostavs@gmail.com, 36447@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jul 05 23:54:25 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hjW9w-000eEE-LB for geb-bug-gnu-emacs@m.gmane.org; Fri, 05 Jul 2019 23:54:24 +0200 Original-Received: from localhost ([::1]:56414 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hjW9u-0008Nl-VP for geb-bug-gnu-emacs@m.gmane.org; Fri, 05 Jul 2019 17:54:22 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51537) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hjW9g-0008L8-24 for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2019 17:54:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hjW9b-00013S-3G for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2019 17:54:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:45078) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hjW9a-000136-DF for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2019 17:54:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hjW9a-0004T1-A6 for bug-gnu-emacs@gnu.org; Fri, 05 Jul 2019 17:54:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 05 Jul 2019 21:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36447 X-GNU-PR-Package: emacs Original-Received: via spool by 36447-submit@debbugs.gnu.org id=B36447.156236360717118 (code B ref 36447); Fri, 05 Jul 2019 21:54:02 +0000 Original-Received: (at 36447) by debbugs.gnu.org; 5 Jul 2019 21:53:27 +0000 Original-Received: from localhost ([127.0.0.1]:53899 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hjW90-0004S1-Sl for submit@debbugs.gnu.org; Fri, 05 Jul 2019 17:53:27 -0400 Original-Received: from mail-oi1-f177.google.com ([209.85.167.177]:39480) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hjW8y-0004Rp-Mt for 36447@debbugs.gnu.org; Fri, 05 Jul 2019 17:53:25 -0400 Original-Received: by mail-oi1-f177.google.com with SMTP id m202so8105802oig.6 for <36447@debbugs.gnu.org>; Fri, 05 Jul 2019 14:53:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rc/FqMbaB6Nz5RdC9YTH7rGzByWFmqyf/8aACfxasss=; b=LPqQlcHIkgWbbn6Jr54cCC2UDv4my2Ezspdb25mG+Elk3xfQMTaeFRHcj8FWfaqP+T gIYG01ntf1oy55TDUStWSX74PHuRHMvmgyPzcjPnVMDN1TWttadylDWauIhECQVJpj5U +9M3Uu14X3I+T5bIrrHl600t311/6P6mc2Xjgw9pGqIuPL+sqZ6/rBFjdGSt58gmqhXi +xyotD4QjJoOp39PP9fXHo/qHLEumavbOb/3AK8mUsCKHBknX10ndCCBwP3fI6GArNXj a8WlEs4dDLAVrSsB0ccoZ5hhKPFFr0SnkL7mypJlX73Xlzwa5ePR1qEd5ftNSwiG8iei ZhYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rc/FqMbaB6Nz5RdC9YTH7rGzByWFmqyf/8aACfxasss=; b=uenQZKxfiI/Gp7LxTD98pmQs+eFTKeBp/xeTJUr9479VDPmRTfluQlC8nVbh5IAPsn SWbd4G35N6YLcs5GNZuXmOLyAxU1eaEUIJ95m+P97Mu90P6gx2RplZoZQQ0hMbD+4j1g fNQjO3j8y0xCWGy9dU+b2VZGI7PJLbB7ERkiQrsbRrMmQ1wkrqNS5iUscXq4vYtchfme M+W6elgfJkGNGcuor1l9MMu3xDKQwUeTT78XIEWKr4lG2kJllTmYEKjT76q2R1rsn+wx yogP3pz/yW4/3w5UvFGpIWgTUlRoTlKrgFFV5rwdPgrK7qY4Ee5rgvAWHBNKXg20yBUb 5H5w== X-Gm-Message-State: APjAAAXbJjW/driaJUSmi8NKwo/HszvVOw5A0E40LCKNHeTOFfHs3McR s/UH8lwpvFJfW2Aq1oSJK3gx6cRI7o4IvZCcSQY= X-Google-Smtp-Source: APXvYqwWJVFH/MQJb9lcEItPcUSGt7chAxIVb7aQi8IleVyxONYL3FZw7IdZBfGQlvliXHWV2LhmL6fnVrybXm/5fZY= X-Received: by 2002:aca:4790:: with SMTP id u138mr3373668oia.44.1562363599064; Fri, 05 Jul 2019 14:53:19 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:162168 Archived-At: --000000000000553536058cf61f3f Content-Type: text/plain; charset="UTF-8" On Fri, Jul 5, 2019 at 8:21 PM Stefan Monnier wrote: > >> His patch can/should be made slightly more efficient by only doing the > >> Fcopy_sequence on those hash-tables that are in purespace. > > > > How do we test for that? > > With PURE_P? That only works before we dump, I think? > > I'm not sure how difficult it would be, but we could dump the ->index, > > ->next, ->hash vectors as Qnil (so not include the actual vectors in > > the dump), which would make the dump slightly smaller and give us a > > better test than h->count < 0: > > Except that it can't be done at the time of purecopy but only at the > time we do the actual dump because the purecopied hashtable may be used > in-between (which is also why count is kept positive by purecopy and is > only made negative later). Indeed. I'm attaching a proof of concept that we can simply freeze the hash tables when dumping and thaw them when loading a dump, which includes rehashing. Do you happen to know why it wasn't done that way? I quite enjoyed removing all the scattered hash_rehash_if_needed()s. --000000000000553536058cf61f3f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-rehash-hash-tables-eagerly-after-loading-the-pdumper.patch" Content-Disposition: attachment; filename="0001-rehash-hash-tables-eagerly-after-loading-the-pdumper.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jxqmvvnu0 RnJvbSA4M2Y5MTViMzJmYWYzMmU5OGNjZDgwNjE3OWUzNzlhMTNiNzY2MThkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBGcmks IDUgSnVsIDIwMTkgMjE6NTA6NDQgKzAwMDAKU3ViamVjdDogW1BBVENIXSByZWhhc2ggaGFzaCB0 YWJsZXMgZWFnZXJseSBhZnRlciBsb2FkaW5nIHRoZSBwZHVtcGVyIGR1bXAuCgotLS0KIHNyYy9i eXRlY29kZS5jICB8ICAgMSAtCiBzcmMvY29tcG9zaXRlLmMgfCAgIDEgLQogc3JjL2VtYWNzLmMg ICAgIHwgICAxICsKIHNyYy9mbnMuYyAgICAgICB8ICAyNyArKystLS0tLS0tCiBzcmMvbGlzcC5o ICAgICAgfCAgMTUgLS0tLS0tCiBzcmMvbWluaWJ1Zi5jICAgfCAgIDMgLS0KIHNyYy9wZHVtcGVy LmMgICB8IDEzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0KIHNyYy9wZHVtcGVyLmggICB8ICAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRp b25zKCspLCA3OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYnl0ZWNvZGUuYyBiL3Ny Yy9ieXRlY29kZS5jCmluZGV4IDI5ZGZmNDRmMDAuLjljNzI0MjllMGMgMTAwNjQ0Ci0tLSBhL3Ny Yy9ieXRlY29kZS5jCisrKyBiL3NyYy9ieXRlY29kZS5jCkBAIC0xNDAyLDcgKzE0MDIsNiBAQCAj ZGVmaW5lIERFRklORShuYW1lLCB2YWx1ZSkgTEFCRUwgKG5hbWUpICwKICAgICAgICAgICAgIExp c3BfT2JqZWN0IHYxID0gUE9QOwogICAgICAgICAgICAgcHRyZGlmZl90IGk7CiAgICAgICAgICAg ICBzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpoID0gWEhBU0hfVEFCTEUgKGptcF90YWJsZSk7Ci0g ICAgICAgICAgICBoYXNoX3JlaGFzaF9pZl9uZWVkZWQgKGgpOwogCiAgICAgICAgICAgICAvKiBo LT5jb3VudCBpcyBhIGZhc3RlciBhcHByb3hpbWF0aW9uIGZvciBIQVNIX1RBQkxFX1NJWkUgKGgp CiAgICAgICAgICAgICAgICBoZXJlLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbXBvc2l0ZS5jIGIv c3JjL2NvbXBvc2l0ZS5jCmluZGV4IDE4MzA2MmRlNDYuLjQ5YTI4NWNmZjAgMTAwNjQ0Ci0tLSBh L3NyYy9jb21wb3NpdGUuYworKysgYi9zcmMvY29tcG9zaXRlLmMKQEAgLTY1NCw3ICs2NTQsNiBA QCBnc3RyaW5nX2xvb2t1cF9jYWNoZSAoTGlzcF9PYmplY3QgaGVhZGVyKQogY29tcG9zaXRpb25f Z3N0cmluZ19wdXRfY2FjaGUgKExpc3BfT2JqZWN0IGdzdHJpbmcsIHB0cmRpZmZfdCBsZW4pCiB7 CiAgIHN0cnVjdCBMaXNwX0hhc2hfVGFibGUgKmggPSBYSEFTSF9UQUJMRSAoZ3N0cmluZ19oYXNo X3RhYmxlKTsKLSAgaGFzaF9yZWhhc2hfaWZfbmVlZGVkIChoKTsKICAgTGlzcF9PYmplY3QgaGVh ZGVyID0gTEdTVFJJTkdfSEVBREVSIChnc3RyaW5nKTsKICAgRU1BQ1NfVUlOVCBoYXNoID0gaC0+ dGVzdC5oYXNoZm4gKCZoLT50ZXN0LCBoZWFkZXIpOwogICBpZiAobGVuIDwgMCkKZGlmZiAtLWdp dCBhL3NyYy9lbWFjcy5jIGIvc3JjL2VtYWNzLmMKaW5kZXggMzJiYjU3ZTI3Mi4uYTU5NjlhOTZh MyAxMDA2NDQKLS0tIGEvc3JjL2VtYWNzLmMKKysrIGIvc3JjL2VtYWNzLmMKQEAgLTE1NzcsNiAr MTU3Nyw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgaWYgKCFpbml0aWFsaXpl ZCkKICAgICB7CiAgICAgICBpbml0X2FsbG9jX29uY2UgKCk7CisgICAgICBpbml0X3BkdW1wZXJf b25jZSAoKTsKICAgICAgIGluaXRfb2JhcnJheV9vbmNlICgpOwogICAgICAgaW5pdF9ldmFsX29u Y2UgKCk7CiAgICAgICBpbml0X2NoYXJzZXRfb25jZSAoKTsKZGlmZiAtLWdpdCBhL3NyYy9mbnMu YyBiL3NyYy9mbnMuYwppbmRleCAyZmMwMDBhN2Y0Li44YjYwMzExNjE0IDEwMDY0NAotLS0gYS9z cmMvZm5zLmMKKysrIGIvc3JjL2Zucy5jCkBAIC00MjE4LDYgKzQyMTgsOSBAQCBtYXliZV9yZXNp emVfaGFzaF90YWJsZSAoc3RydWN0IExpc3BfSGFzaF9UYWJsZSAqaCkKICAgICB9CiB9CiAKK2V4 dGVybiB2b2lkCitoYXNoX3RhYmxlX3JlaGFzaCAoc3RydWN0IExpc3BfSGFzaF9UYWJsZSAqaCk7 CisKIHZvaWQKIGhhc2hfdGFibGVfcmVoYXNoIChzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpoKQog ewpAQCAtNDIyNiwxMiArNDIyOSwxMSBAQCBoYXNoX3RhYmxlX3JlaGFzaCAoc3RydWN0IExpc3Bf SGFzaF9UYWJsZSAqaCkKICAgLyogUmVjb21wdXRlIHRoZSBhY3R1YWwgaGFzaCBjb2RlcyBmb3Ig ZWFjaCBlbnRyeSBpbiB0aGUgdGFibGUuCiAgICAgIE9yZGVyIGlzIHN0aWxsIGludmFsaWQuICAq LwogICBmb3IgKHB0cmRpZmZfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICBpZiAoIU5JTFAg KEhBU0hfSEFTSCAoaCwgaSkpKQotICAgICAgewotICAgICAgICBMaXNwX09iamVjdCBrZXkgPSBI QVNIX0tFWSAoaCwgaSk7Ci0gICAgICAgIEVNQUNTX1VJTlQgaGFzaF9jb2RlID0gaC0+dGVzdC5o YXNoZm4gKCZoLT50ZXN0LCBrZXkpOwotICAgICAgICBzZXRfaGFzaF9oYXNoX3Nsb3QgKGgsIGks IG1ha2VfZml4bnVtIChoYXNoX2NvZGUpKTsKLSAgICAgIH0KKyAgICB7CisgICAgICBMaXNwX09i amVjdCBrZXkgPSBIQVNIX0tFWSAoaCwgaSk7CisgICAgICBFTUFDU19VSU5UIGhhc2hfY29kZSA9 IGgtPnRlc3QuaGFzaGZuICgmaC0+dGVzdCwga2V5KTsKKyAgICAgIHNldF9oYXNoX2hhc2hfc2xv dCAoaCwgaSwgbWFrZV9maXhudW0gKGhhc2hfY29kZSkpOworICAgIH0KIAogICAvKiBSZXNldCB0 aGUgaW5kZXggc28gdGhhdCBhbnkgc2xvdCB3ZSBkb24ndCBmaWxsIGJlbG93IGlzIG1hcmtlZAog ICAgICBpbnZhbGlkLiAgKi8KQEAgLTQyNDcsMTMgKzQyNDksNiBAQCBoYXNoX3RhYmxlX3JlaGFz aCAoc3RydWN0IExpc3BfSGFzaF9UYWJsZSAqaCkKICAgICAgICAgc2V0X2hhc2hfaW5kZXhfc2xv dCAoaCwgc3RhcnRfb2ZfYnVja2V0LCBpKTsKICAgICAgICAgZWFzc2VydCAoSEFTSF9ORVhUICho LCBpKSAhPSBpKTsgLyogU3RvcCBsb29wcy4gICovCiAgICAgICB9Ci0KLSAgLyogRmluYWxseSwg bWFyayB0aGUgaGFzaCB0YWJsZSBhcyBoYXZpbmcgYSB2YWxpZCBoYXNoIG9yZGVyLgotICAgICBE byB0aGlzIGxhc3Qgc28gdGhhdCBpZiB3ZSdyZSBpbnRlcnJ1cHRlZCwgd2UgcmV0cnkgb24gbmV4 dAotICAgICBhY2Nlc3MuICovCi0gIGVhc3NlcnQgKGgtPmNvdW50IDwgMCk7Ci0gIGgtPmNvdW50 ID0gLWgtPmNvdW50OwotICBlYXNzZXJ0ICghaGFzaF9yZWhhc2hfbmVlZGVkX3AgKGgpKTsKIH0K IAogLyogTG9va3VwIEtFWSBpbiBoYXNoIHRhYmxlIEguICBJZiBIQVNIIGlzIG5vbi1udWxsLCBy ZXR1cm4gaW4gKkhBU0gKQEAgLTQyNjYsOCArNDI2MSw2IEBAIGhhc2hfbG9va3VwIChzdHJ1Y3Qg TGlzcF9IYXNoX1RhYmxlICpoLCBMaXNwX09iamVjdCBrZXksIEVNQUNTX1VJTlQgKmhhc2gpCiAg IEVNQUNTX1VJTlQgaGFzaF9jb2RlOwogICBwdHJkaWZmX3Qgc3RhcnRfb2ZfYnVja2V0LCBpOwog Ci0gIGhhc2hfcmVoYXNoX2lmX25lZWRlZCAoaCk7Ci0KICAgaGFzaF9jb2RlID0gaC0+dGVzdC5o YXNoZm4gKCZoLT50ZXN0LCBrZXkpOwogICBlYXNzZXJ0ICgoaGFzaF9jb2RlICYgfklOVE1BU0sp ID09IDApOwogICBpZiAoaGFzaCkKQEAgLTQyOTYsOCArNDI4OSw2IEBAIGhhc2hfcHV0IChzdHJ1 Y3QgTGlzcF9IYXNoX1RhYmxlICpoLCBMaXNwX09iamVjdCBrZXksIExpc3BfT2JqZWN0IHZhbHVl LAogewogICBwdHJkaWZmX3Qgc3RhcnRfb2ZfYnVja2V0LCBpOwogCi0gIGhhc2hfcmVoYXNoX2lm X25lZWRlZCAoaCk7Ci0KICAgZWFzc2VydCAoKGhhc2ggJiB+SU5UTUFTSykgPT0gMCk7CiAKICAg LyogSW5jcmVtZW50IGNvdW50IGFmdGVyIHJlc2l6aW5nIGJlY2F1c2UgcmVzaXppbmcgbWF5IGZh aWwuICAqLwpAQCAtNDMzMSw4ICs0MzIyLDYgQEAgaGFzaF9yZW1vdmVfZnJvbV90YWJsZSAoc3Ry dWN0IExpc3BfSGFzaF9UYWJsZSAqaCwgTGlzcF9PYmplY3Qga2V5KQogICBwdHJkaWZmX3Qgc3Rh cnRfb2ZfYnVja2V0ID0gaGFzaF9jb2RlICUgQVNJWkUgKGgtPmluZGV4KTsKICAgcHRyZGlmZl90 IHByZXYgPSAtMTsKIAotICBoYXNoX3JlaGFzaF9pZl9uZWVkZWQgKGgpOwotCiAgIGZvciAocHRy ZGlmZl90IGkgPSBIQVNIX0lOREVYIChoLCBzdGFydF9vZl9idWNrZXQpOwogICAgICAgIDAgPD0g aTsKICAgICAgICBpID0gSEFTSF9ORVhUIChoLCBpKSkKZGlmZiAtLWdpdCBhL3NyYy9saXNwLmgg Yi9zcmMvbGlzcC5oCmluZGV4IDFhMWQ4ZWU3ZTQuLjdiNzdkZDk3ZjUgMTAwNjQ0Ci0tLSBhL3Ny Yy9saXNwLmgKKysrIGIvc3JjL2xpc3AuaApAQCAtMjM3MCwyMSArMjM3MCw2IEBAIEhBU0hfVEFC TEVfU0laRSAoY29uc3Qgc3RydWN0IExpc3BfSGFzaF9UYWJsZSAqaCkKICAgcmV0dXJuIEFTSVpF IChoLT5uZXh0KTsKIH0KIAotdm9pZCBoYXNoX3RhYmxlX3JlaGFzaCAoc3RydWN0IExpc3BfSGFz aF9UYWJsZSAqaCk7Ci0KLUlOTElORSBib29sCi1oYXNoX3JlaGFzaF9uZWVkZWRfcCAoY29uc3Qg c3RydWN0IExpc3BfSGFzaF9UYWJsZSAqaCkKLXsKLSAgcmV0dXJuIGgtPmNvdW50IDwgMDsKLX0K LQotSU5MSU5FIHZvaWQKLWhhc2hfcmVoYXNoX2lmX25lZWRlZCAoc3RydWN0IExpc3BfSGFzaF9U YWJsZSAqaCkKLXsKLSAgaWYgKGhhc2hfcmVoYXNoX25lZWRlZF9wIChoKSkKLSAgICBoYXNoX3Rh YmxlX3JlaGFzaCAoaCk7Ci19Ci0KIC8qIERlZmF1bHQgc2l6ZSBmb3IgaGFzaCB0YWJsZXMgaWYg bm90IHNwZWNpZmllZC4gICovCiAKIGVudW0gREVGQVVMVF9IQVNIX1NJWkUgeyBERUZBVUxUX0hB U0hfU0laRSA9IDY1IH07CmRpZmYgLS1naXQgYS9zcmMvbWluaWJ1Zi5jIGIvc3JjL21pbmlidWYu YwppbmRleCBkOTMyZGJlOGUyLi5hNzc1ZDA0MzMyIDEwMDY0NAotLS0gYS9zcmMvbWluaWJ1Zi5j CisrKyBiL3NyYy9taW5pYnVmLmMKQEAgLTEyMDMsOSArMTIwMyw2IEBAIERFRlVOICgidHJ5LWNv bXBsZXRpb24iLCBGdHJ5X2NvbXBsZXRpb24sIFN0cnlfY29tcGxldGlvbiwgMiwgMywgMCwKICAg ICAgIGJ1Y2tldCA9IEFSRUYgKGNvbGxlY3Rpb24sIGlkeCk7CiAgICAgfQogCi0gIGlmIChIQVNI X1RBQkxFX1AgKGNvbGxlY3Rpb24pKQotICAgIGhhc2hfcmVoYXNoX2lmX25lZWRlZCAoWEhBU0hf VEFCTEUgKGNvbGxlY3Rpb24pKTsKLQogICB3aGlsZSAoMSkKICAgICB7CiAgICAgICAvKiBHZXQg dGhlIG5leHQgZWxlbWVudCBvZiB0aGUgYWxpc3QsIG9iYXJyYXksIG9yIGhhc2gtdGFibGUuICAq LwpkaWZmIC0tZ2l0IGEvc3JjL3BkdW1wZXIuYyBiL3NyYy9wZHVtcGVyLmMKaW5kZXggYzAwZjhh MGFmNS4uYTM0ODBiNGIxNSAxMDA2NDQKLS0tIGEvc3JjL3BkdW1wZXIuYworKysgYi9zcmMvcGR1 bXBlci5jCkBAIC0zOTIsNiArMzkyLDggQEAgZHVtcF9maW5nZXJwcmludCAoY29uc3QgY2hhciAq bGFiZWwsIHVuc2lnbmVkIGNoYXIgY29uc3QgKnhmaW5nZXJwcmludCkKICAgICAgVGhlIHN0YXJ0 IG9mIHRoZSBjb2xkIHJlZ2lvbiBpcyBhbHdheXMgYWxpZ25lZCBvbiBhIHBhZ2UKICAgICAgYm91 bmRhcnkuICAqLwogICBkdW1wX29mZiBjb2xkX3N0YXJ0OworCisgIGR1bXBfb2ZmIGhhc2hfbGlz dDsKIH07CiAKIC8qIERvdWJsZS1lbmRlZCBzaW5nbHkgbGlua2VkIGxpc3QuICAqLwpAQCAtNTQ5 LDYgKzU1MSw4IEBAIGR1bXBfZmluZ2VycHJpbnQgKGNvbnN0IGNoYXIgKmxhYmVsLCB1bnNpZ25l ZCBjaGFyIGNvbnN0ICp4ZmluZ2VycHJpbnQpCiAgICAgIGhlYXAgb2JqZWN0cy4gICovCiAgIExp c3BfT2JqZWN0IGJpZ251bV9kYXRhOwogCisgIExpc3BfT2JqZWN0IGhhc2hfdGFibGVzOworCiAg IHVuc2lnbmVkIG51bWJlcl9ob3RfcmVsb2NhdGlvbnM7CiAgIHVuc2lnbmVkIG51bWJlcl9kaXNj YXJkYWJsZV9yZWxvY2F0aW9uczsKIH07CkBAIC0yNjQ3LDQyICsyNjUxLDYxIEBAIGR1bXBfaGFz aF90YWJsZV9zdGFibGVfcCAoY29uc3Qgc3RydWN0IExpc3BfSGFzaF9UYWJsZSAqaGFzaCkKIAog LyogUmV0dXJuIGEgbGlzdCBvZiAoS0VZIC4gVkFMVUUpIHBhaXJzIGluIHRoZSBnaXZlbiBoYXNo IHRhYmxlLiAgKi8KIHN0YXRpYyBMaXNwX09iamVjdAotaGFzaF90YWJsZV9jb250ZW50cyAoTGlz cF9PYmplY3QgdGFibGUpCitoYXNoX3RhYmxlX2NvbnRlbnRzIChzdHJ1Y3QgTGlzcF9IYXNoX1Rh YmxlICpoKQogewogICBMaXNwX09iamVjdCBjb250ZW50cyA9IFFuaWw7Ci0gIHN0cnVjdCBMaXNw X0hhc2hfVGFibGUgKmggPSBYSEFTSF9UQUJMRSAodGFibGUpOwogICBmb3IgKHB0cmRpZmZfdCBp ID0gMDsgaSA8IEhBU0hfVEFCTEVfU0laRSAoaCk7ICsraSkKICAgICBpZiAoIU5JTFAgKEhBU0hf SEFTSCAoaCwgaSkpKQotICAgICAgZHVtcF9wdXNoICgmY29udGVudHMsIEZjb25zIChIQVNIX0tF WSAoaCwgaSksIEhBU0hfVkFMVUUgKGgsIGkpKSk7CisgICAgICB7CisJZHVtcF9wdXNoICgmY29u dGVudHMsIEhBU0hfS0VZIChoLCBpKSk7CisJZHVtcF9wdXNoICgmY29udGVudHMsIEhBU0hfVkFM VUUgKGgsIGkpKTsKKyAgICAgIH0KICAgcmV0dXJuIEZucmV2ZXJzZSAoY29udGVudHMpOwogfQog Ci0vKiBDb3B5IHRoZSBnaXZlbiBoYXNoIHRhYmxlLCByZWhhc2ggaXQsIGFuZCBtYWtlIHN1cmUg dGhhdCB3ZSBjYW4KLSAgIGxvb2sgdXAgYWxsIHRoZSB2YWx1ZXMgaW4gdGhlIG9yaWdpbmFsLiAg Ki8KK3N0YXRpYyBkdW1wX29mZgorZHVtcF9oYXNoX3RhYmxlX2xpc3QgKHN0cnVjdCBkdW1wX2Nv bnRleHQgKmN0eCkKK3sKKyAgaWYgKENPTlNQIChjdHgtPmhhc2hfdGFibGVzKSkKKyAgICByZXR1 cm4gZHVtcF9vYmplY3QgKGN0eCwgY3R4LT5oYXNoX3RhYmxlcyk7CisgIGVsc2UKKyAgICByZXR1 cm4gMDsKK30KKwogc3RhdGljIHZvaWQKLWNoZWNrX2hhc2hfdGFibGVfcmVoYXNoIChMaXNwX09i amVjdCB0YWJsZV9vcmlnKQotewotICBoYXNoX3JlaGFzaF9pZl9uZWVkZWQgKFhIQVNIX1RBQkxF ICh0YWJsZV9vcmlnKSk7Ci0gIExpc3BfT2JqZWN0IHRhYmxlX3JlaGFzaGVkID0gRmNvcHlfaGFz aF90YWJsZSAodGFibGVfb3JpZyk7Ci0gIGVhc3NlcnQgKFhIQVNIX1RBQkxFICh0YWJsZV9yZWhh c2hlZCktPmNvdW50ID49IDApOwotICBYSEFTSF9UQUJMRSAodGFibGVfcmVoYXNoZWQpLT5jb3Vu dCAqPSAtMTsKLSAgZWFzc2VydCAoWEhBU0hfVEFCTEUgKHRhYmxlX3JlaGFzaGVkKS0+Y291bnQg PD0gMCk7Ci0gIGhhc2hfcmVoYXNoX2lmX25lZWRlZCAoWEhBU0hfVEFCTEUgKHRhYmxlX3JlaGFz aGVkKSk7Ci0gIGVhc3NlcnQgKFhIQVNIX1RBQkxFICh0YWJsZV9yZWhhc2hlZCktPmNvdW50ID49 IDApOwotICBMaXNwX09iamVjdCBleHBlY3RlZF9jb250ZW50cyA9IGhhc2hfdGFibGVfY29udGVu dHMgKHRhYmxlX29yaWcpOwotICB3aGlsZSAoIU5JTFAgKGV4cGVjdGVkX2NvbnRlbnRzKSkKK2hh c2hfdGFibGVfZnJlZXplIChzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpoKQoreworICBpZiAoaC0+ Y291bnQgPiAwKQorICAgIGgtPmNvdW50ID0gLWgtPmNvdW50OworICBoLT5rZXlfYW5kX3ZhbHVl ID0gaGFzaF90YWJsZV9jb250ZW50cyAoaCk7CisgIHB0cmRpZmZfdCBua2V5cyA9IFhGSVhOQVQg KEZsZW5ndGggKGgtPmtleV9hbmRfdmFsdWUpKSAvIDI7CisgIGlmIChua2V5cyA9PSAwKQorICAg IG5rZXlzID0gMTsKKyAgaC0+aW5kZXggPSBoLT5uZXh0ID0gaC0+aGFzaCA9IG1ha2VfZml4bnVt IChua2V5cyk7CisgIGgtPmNvdW50ID0gbmtleXM7Cit9CisKKy8qIERlZmluZWQgaW4gZm5zLmMu ICAqLworZXh0ZXJuIHZvaWQgaGFzaF90YWJsZV9yZWhhc2ggKHN0cnVjdCBMaXNwX0hhc2hfVGFi bGUgKmgpOworCitzdGF0aWMgdm9pZAoraGFzaF90YWJsZV90aGF3IChzdHJ1Y3QgTGlzcF9IYXNo X1RhYmxlICpoKQoreworICBMaXNwX09iamVjdCBjb3VudCA9IGgtPmluZGV4OworICBoLT5pbmRl eCA9IEZtYWtlX3ZlY3RvciAoaC0+aW5kZXgsIG1ha2VfZml4bnVtICgtMSkpOworICBoLT5oYXNo ID0gRm1ha2VfdmVjdG9yIChoLT5oYXNoLCBRbmlsKTsKKyAgaC0+bmV4dCA9IEZtYWtlX3ZlY3Rv ciAoaC0+bmV4dCwgbWFrZV9maXhudW0gKC0xKSk7CisgIExpc3BfT2JqZWN0IGtleV9hbmRfdmFs dWUgPSBoLT5rZXlfYW5kX3ZhbHVlOworICBoLT5rZXlfYW5kX3ZhbHVlID0gRm1ha2VfdmVjdG9y IChtYWtlX2ZpeG51bSAoMiAqIFhGSVhOQVQgKGNvdW50KSksIFFuaWwpOworICBoLT5uZXh0X2Zy ZWUgPSAtMTsKKyAgcHRyZGlmZl90IGkgPSAwOworICB3aGlsZSAoQ09OU1AgKGtleV9hbmRfdmFs dWUpKQogICAgIHsKLSAgICAgIExpc3BfT2JqZWN0IGtleV92YWx1ZV9wYWlyID0gZHVtcF9wb3Ag KCZleHBlY3RlZF9jb250ZW50cyk7Ci0gICAgICBMaXNwX09iamVjdCBrZXkgPSBYQ0FSIChrZXlf dmFsdWVfcGFpcik7Ci0gICAgICBMaXNwX09iamVjdCBleHBlY3RlZF92YWx1ZSA9IFhDRFIgKGtl eV92YWx1ZV9wYWlyKTsKLSAgICAgIExpc3BfT2JqZWN0IGFyYml0cmFyeSA9IFFkdW1wX2VtYWNz X3BvcnRhYmxlX19zb3J0X3ByZWRpY2F0ZV9jb3BpZWQ7Ci0gICAgICBMaXNwX09iamVjdCBmb3Vu ZF92YWx1ZSA9IEZnZXRoYXNoIChrZXksIHRhYmxlX3JlaGFzaGVkLCBhcmJpdHJhcnkpOwotICAg ICAgZWFzc2VydCAoRVEgKGV4cGVjdGVkX3ZhbHVlLCBmb3VuZF92YWx1ZSkpOwotICAgICAgRnJl bWhhc2ggKGtleSwgdGFibGVfcmVoYXNoZWQpOworICAgICAgQVNFVCAoaC0+a2V5X2FuZF92YWx1 ZSwgaSsrLCBYQ0FSIChrZXlfYW5kX3ZhbHVlKSk7CisgICAgICBrZXlfYW5kX3ZhbHVlID0gWENE UiAoa2V5X2FuZF92YWx1ZSk7CiAgICAgfQogCi0gIGVhc3NlcnQgKEVRIChGaGFzaF90YWJsZV9j b3VudCAodGFibGVfcmVoYXNoZWQpLAotICAgICAgICAgICAgICAgbWFrZV9maXhudW0gKDApKSk7 CisgIGhhc2hfdGFibGVfcmVoYXNoIChoKTsKIH0KIAogc3RhdGljIGR1bXBfb2ZmCkBAIC0yNzA3 LDggKzI3MzAsNiBAQCBkdW1wX2hhc2hfdGFibGUgKHN0cnVjdCBkdW1wX2NvbnRleHQgKmN0eCwK ICAgICAgICAgewogCSAgZWFzc2VydCAob2Zmc2V0ID09IERVTVBfT0JKRUNUX09OX05PUk1BTF9R VUVVRQogCQkgICB8fCBvZmZzZXQgPT0gRFVNUF9PQkpFQ1RfTk9UX1NFRU4pOwotICAgICAgICAg IC8qIFdlIHN0aWxsIHdhbnQgdG8gZHVtcCB0aGUgYWN0dWFsIGtleXMgYW5kIHZhbHVlcyBub3cu ICAqLwotICAgICAgICAgIGR1bXBfZW5xdWV1ZV9vYmplY3QgKGN0eCwgaGFzaF9pbi0+a2V5X2Fu ZF92YWx1ZSwgV0VJR0hUX05PTkUpOwogICAgICAgICAgIC8qIFdlJ2xsIGdldCB0byB0aGUgcmVz dCBsYXRlci4gICovCiAgICAgICAgICAgb2Zmc2V0ID0gRFVNUF9PQkpFQ1RfT05fSEFTSF9UQUJM RV9RVUVVRTsKICAgICAgICAgICBkdW1wX3JlbWVtYmVyX29iamVjdCAoY3R4LCBvYmplY3QsIG9m ZnNldCk7CkBAIC0yNzE3LDIyICsyNzM4LDExIEBAIGR1bXBfaGFzaF90YWJsZSAoc3RydWN0IGR1 bXBfY29udGV4dCAqY3R4LAogICAgICAgcmV0dXJuIG9mZnNldDsKICAgICB9CiAKLSAgaWYgKFBE VU1QRVJfQ0hFQ0tfUkVIQVNISU5HKQotICAgIGNoZWNrX2hhc2hfdGFibGVfcmVoYXNoIChtYWtl X2xpc3BfcHRyICgodm9pZCAqKSBoYXNoX2luLCBMaXNwX1ZlY3Rvcmxpa2UpKTsKLQogICBzdHJ1 Y3QgTGlzcF9IYXNoX1RhYmxlIGhhc2hfbXVuZ2VkID0gKmhhc2hfaW47CiAgIHN0cnVjdCBMaXNw X0hhc2hfVGFibGUgKmhhc2ggPSAmaGFzaF9tdW5nZWQ7CiAKLSAgLyogUmVtZW1iZXIgdG8gcmVo YXNoIHRoaXMgaGFzaCB0YWJsZSBvbiBmaXJzdCBhY2Nlc3MuICBBZnRlciBhCi0gICAgIGR1bXAg cmVsb2FkLCB0aGUgaGFzaCB0YWJsZSB2YWx1ZXMgd2lsbCBoYXZlIGNoYW5nZWQsIHNvIHdlJ2xs Ci0gICAgIG5lZWQgdG8gcmVidWlsZCB0aGUgaW5kZXguCi0KLSAgICAgVE9ETzogZm9yIEVRIGFu ZCBFUUwgaGFzaCB0YWJsZXMsIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byByZWhhc2gKLSAgICAg aGVyZSB1c2luZyB0aGUgcHJlZmVycmVkIGxvYWQgYWRkcmVzcyBvZiB0aGUgZHVtcCwgZWxpbWlu YXRpbmcKLSAgICAgdGhlIG5lZWQgdG8gcmVoYXNoLW9uLWFjY2VzcyBpZiB3ZSBjYW4gbG9hZCB0 aGUgZHVtcCB3aGVyZSB3ZQotICAgICB3YW50LiAgKi8KLSAgaWYgKGhhc2gtPmNvdW50ID4gMCAm JiAhaXNfc3RhYmxlKQotICAgIGhhc2gtPmNvdW50ID0gLWhhc2gtPmNvdW50OworICBoYXNoX3Rh YmxlX2ZyZWV6ZSAoaGFzaCk7CisgIGR1bXBfcHVzaCAoJmN0eC0+aGFzaF90YWJsZXMsIG9iamVj dCk7CiAKICAgU1RBUlRfRFVNUF9QVkVDIChjdHgsICZoYXNoLT5oZWFkZXIsIHN0cnVjdCBMaXNw X0hhc2hfVGFibGUsIG91dCk7CiAgIGR1bXBfcHNldWRvdmVjdG9yX2xpc3BfZmllbGRzIChjdHgs ICZvdXQtPmhlYWRlciwgJmhhc2gtPmhlYWRlcik7CkBAIC00MTQxLDYgKzQxNTEsMjAgQEAgREVG VU4gKCJkdW1wLWVtYWNzLXBvcnRhYmxlIiwKIAkgfHwgIU5JTFAgKGN0eC0+ZGVmZXJyZWRfaGFz aF90YWJsZXMpCiAJIHx8ICFOSUxQIChjdHgtPmRlZmVycmVkX3N5bWJvbHMpKTsKIAorICBjdHgt PmhlYWRlci5oYXNoX2xpc3QgPSBjdHgtPm9mZnNldDsKKyAgZHVtcF9wdXNoICgmY3R4LT5oYXNo X3RhYmxlcywgUW5pbCk7CisgIGR1bXBfaGFzaF90YWJsZV9saXN0IChjdHgpOworCisgIGRvCisg ICAgeworICAgICAgZHVtcF9kcmFpbl9kZWZlcnJlZF9oYXNoX3RhYmxlcyAoY3R4KTsKKyAgICAg IGR1bXBfZHJhaW5fZGVmZXJyZWRfc3ltYm9scyAoY3R4KTsKKyAgICAgIGR1bXBfZHJhaW5fbm9y bWFsX3F1ZXVlIChjdHgpOworICAgIH0KKyAgd2hpbGUgKCFkdW1wX3F1ZXVlX2VtcHR5X3AgKCZj dHgtPmR1bXBfcXVldWUpCisJIHx8ICFOSUxQIChjdHgtPmRlZmVycmVkX2hhc2hfdGFibGVzKQor CSB8fCAhTklMUCAoY3R4LT5kZWZlcnJlZF9zeW1ib2xzKSk7CisKICAgZHVtcF9zb3J0X2NvcGll ZF9vYmplY3RzIChjdHgpOwogCiAgIC8qIFdoaWxlIHdlIGNvcHkgYnVpbHQtaW4gc3ltYm9scyBp bnRvIHRoZSBFbWFjcyBpbWFnZSwgdGhlc2UKQEAgLTU0MjksNiArNTQ1MywxMyBAQCBwZHVtcGVy X2xvYWQgKGNvbnN0IGNoYXIgKmR1bXBfZmlsZW5hbWUpCiAgIGZvciAoaW50IGkgPSAwOyBpIDwg QVJSQVlFTFRTIChzZWN0aW9ucyk7ICsraSkKICAgICBkdW1wX21tYXBfcmVzZXQgKCZzZWN0aW9u c1tpXSk7CiAKKyAgaWYgKGhlYWRlci0+aGFzaF9saXN0KQorICAgIHsKKyAgICAgIExpc3BfT2Jq ZWN0IGhhc2hfdGFibGVzID0KKwkoKExpc3BfT2JqZWN0ICopKGR1bXBfYmFzZSArIGhlYWRlci0+ aGFzaF9saXN0KSlbMV07CisgICAgICBWcGR1bXBlcl9oYXNoX3RhYmxlcyA9IGhhc2hfdGFibGVz OworICAgIH0KKwogICAvKiBSdW4gdGhlIGZ1bmN0aW9ucyBFbWFjcyByZWdpc3RlcmVkIGZvciBk b2luZyBwb3N0LWR1bXAtbG9hZAogICAgICBpbml0aWFsaXphdGlvbi4gICovCiAgIGZvciAoaW50 IGkgPSAwOyBpIDwgbnJfZHVtcF9ob29rczsgKytpKQpAQCAtNTQ5OCwxMiArNTUyOSwzMyBAQCBE RUZVTiAoInBkdW1wZXItc3RhdHMiLCBGcGR1bXBlcl9zdGF0cywgU3BkdW1wZXJfc3RhdHMsIDAs IDAsIDAsCiAKICNlbmRpZiAvKiBIQVZFX1BEVU1QRVIgKi8KIAorCiAMCiAKK3N0YXRpYyB2b2lk IHRoYXdfaGFzaF90YWJsZXMgKHZvaWQpCit7CisgIExpc3BfT2JqZWN0IGhhc2hfdGFibGVzID0g VnBkdW1wZXJfaGFzaF90YWJsZXM7CisgIHdoaWxlIChDT05TUCAoaGFzaF90YWJsZXMpKQorICAg IHsKKyAgICAgIGhhc2hfdGFibGVfdGhhdyAoWEhBU0hfVEFCTEUgKFhDQVIgKGhhc2hfdGFibGVz KSkpOworICAgICAgaGFzaF90YWJsZXMgPSBYQ0RSIChoYXNoX3RhYmxlcyk7CisgICAgfQorfQor Cit2b2lkCitpbml0X3BkdW1wZXJfb25jZSAodm9pZCkKK3sKKyAgVnBkdW1wZXJfaGFzaF90YWJs ZXMgPSBRbmlsOworICBwZHVtcGVyX2RvX25vd19hbmRfYWZ0ZXJfbG9hZCAodGhhd19oYXNoX3Rh Ymxlcyk7Cit9CisKIHZvaWQKIHN5bXNfb2ZfcGR1bXBlciAodm9pZCkKIHsKICNpZmRlZiBIQVZF X1BEVU1QRVIKKyAgREVGVkFSX0xJU1AgKCJwZHVtcGVyLWhhc2gtdGFibGVzIiwgVnBkdW1wZXJf aGFzaF90YWJsZXMsCisJICAgICAgIGRvYzogLyogQSBsaXN0IG9mIGhhc2ggdGFibGVzIHRoYXQg bmVlZCB0byBiZSB0aGF3ZWQgYWZ0ZXIgbG9hZGluZyB0aGUgcGR1bXAuICAqLyk7CisgIFZwZHVt cGVyX2hhc2hfdGFibGVzID0gUW5pbDsKICAgZGVmc3ViciAoJlNkdW1wX2VtYWNzX3BvcnRhYmxl KTsKICAgZGVmc3ViciAoJlNkdW1wX2VtYWNzX3BvcnRhYmxlX19zb3J0X3ByZWRpY2F0ZSk7CiAg IGRlZnN1YnIgKCZTZHVtcF9lbWFjc19wb3J0YWJsZV9fc29ydF9wcmVkaWNhdGVfY29waWVkKTsK ZGlmZiAtLWdpdCBhL3NyYy9wZHVtcGVyLmggYi9zcmMvcGR1bXBlci5oCmluZGV4IGFiMmY0MjZj MWUuLmNmZWEwNmQzM2QgMTAwNjQ0Ci0tLSBhL3NyYy9wZHVtcGVyLmgKKysrIGIvc3JjL3BkdW1w ZXIuaApAQCAtMjQ4LDYgKzI0OCw3IEBAIHBkdW1wZXJfY2xlYXJfbWFya3MgKHZvaWQpCiAgICBm aWxlIHdhcyBsb2FkZWQuICAqLwogZXh0ZXJuIHZvaWQgcGR1bXBlcl9yZWNvcmRfd2QgKGNvbnN0 IGNoYXIgKik7CiAKK3ZvaWQgaW5pdF9wZHVtcGVyX29uY2UgKHZvaWQpOwogdm9pZCBzeW1zX29m X3BkdW1wZXIgKHZvaWQpOwogCiBJTkxJTkVfSEVBREVSX0VORAotLSAKMi4yMC4xCgo= --000000000000553536058cf61f3f--