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#36403: 27.0.50; Trivial image.c bugs Date: Thu, 27 Jun 2019 16:28:05 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000aef19a058c50a75e" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="159080"; mail-complaints-to="usenet@blaine.gmane.org" To: 36403@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jun 27 18:56:08 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 1hgXgt-000fEv-Hu for geb-bug-gnu-emacs@m.gmane.org; Thu, 27 Jun 2019 18:56:07 +0200 Original-Received: from localhost ([::1]:52858 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgXgs-0000Do-K6 for geb-bug-gnu-emacs@m.gmane.org; Thu, 27 Jun 2019 12:56:06 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48571) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgXGh-0007co-TV for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2019 12:29:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hgXGg-0004TF-DI for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2019 12:29:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54095) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hgXGg-0004T5-8u for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2019 12:29:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hgXGg-0008H0-5R for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2019 12:29: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: Thu, 27 Jun 2019 16:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 36403 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.156165293931792 (code B ref -1); Thu, 27 Jun 2019 16:29:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 27 Jun 2019 16:28:59 +0000 Original-Received: from localhost ([127.0.0.1]:39406 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgXGd-0008Gi-0b for submit@debbugs.gnu.org; Thu, 27 Jun 2019 12:28:59 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:60884) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hgXGa-0008Ga-QT for submit@debbugs.gnu.org; Thu, 27 Jun 2019 12:28:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48510) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hgXGY-0007Oc-JR for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2019 12:28:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hgXGW-0004LF-Tm for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2019 12:28:54 -0400 Original-Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]:38163) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hgXGV-0004D8-2I for bug-gnu-emacs@gnu.org; Thu, 27 Jun 2019 12:28:52 -0400 Original-Received: by mail-ot1-x335.google.com with SMTP id d17so2915561oth.5 for ; Thu, 27 Jun 2019 09:28:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=lCAhHDElJ3zXhFmPd8EtLp3sEtI5nFRi2+i9fGTCIyc=; b=AfSX3xEo6U1QW9fwls45w5zR0crWtFAcVjVYQ5qCCAopwKbdEiX/Ud5e/3hkJvKV6L 5Uy/7Kx3BSgKcPOXwRFq51GAX71AEFsjxnyIDoyAHXDf6x7AQ8N8rzRcXW8xbwacb+Sy D6BeTLR5YM9zfZ6G3gSO6Fut4PZ87Stf8QLRAZF6Zh5LrMPw4dbxjAncLQeeg8kg3tN+ /GNShgaU5UYDvMKOHU/w712YTvZ1pDFYtaWHOMeJzbvyVUV029/1Wl0r2M4Sv/LoUnTS wIP+jOQ1goQydmfdqunq38imqDjlCEGn1TJC4Lx8FtY3kkADa2b+fCIBYxkfFpnmulQO WpwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=lCAhHDElJ3zXhFmPd8EtLp3sEtI5nFRi2+i9fGTCIyc=; b=GO9kFM4sOF1sXqd+5BKTnMa0dW3po8FO67PvVjNKINKyq3OoUhC13mUPMWRKtvV2Nd 6qQeLyTnHEZukgTC7yFaIdW1k168KtzqEnY/Ha6ViUhEtF3lEQ4caOqkf5bNtaBNz8DJ 5aYKzx5aPu9/pc/jhGzv61GAnviK0g92PiRBGp4qhNE2bA8I+mVpaP92/vNz4izdrkRb WogBOFdsFt93V3evjYJ/Zb/sdFBHfWicea+BWRHFoXFpM9i6W1tzYWFWXl0LXT6yIPzr VzuVt1OZeqojKZyBvHKcqvdwFYeapCBgMbAnp2/RIRrg0JXqPR1qyzyMEIrUYq6a0nfO VLkQ== X-Gm-Message-State: APjAAAVp5pktp3L0V1QRX4nMwRFGat+n9gr2JkrXus1afZSG0jfBJO+o x64B1xbVlajdI3lBcTLutJSM/HOeJAadozaPFWPRqtvT3po= X-Google-Smtp-Source: APXvYqwQElH3Wu52IA4yiAYkHNmr9ClRbTfsNVwtQ7z7plP2n+Ej2Lu9EBc1OZi8yhxBLwQswJq7SUWB3q4fPu9PVFY= X-Received: by 2002:a9d:664c:: with SMTP id q12mr3799117otm.175.1561652922050; Thu, 27 Jun 2019 09:28:42 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. 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:161615 Archived-At: --000000000000aef19a058c50a75e Content-Type: text/plain; charset="UTF-8" These are all in the category "Lisp code does something silly, the image code breaks". (let ((l `(image :type xbm :type xbm :height 1 :width 1 :data ,(bool-vector t)))) (insert-image l)) inserts an image. It should consider the spec erroneous. -- (let ((tail (cons :invalid nil))) (setcdr tail tail) (insert-image `(image :type xbm . ,tail))) causes an infinite loop. It should be considered invalid. -- (insert-image `(image :dummy :type :type xbm :height 1 :width 1 :data ,(bool-vector t))) produces an error. It should arguably behave the same as (insert-image `(image :dummy :dummy :type xbm :height 1 :width 1 :data ,(bool-vector t))) -- (let* ((circ1 (cons :dummy nil)) (circ2 (cons :dummy nil)) (spec1 `(image :type xbm :width 1 :height 1 :data ,(bool-vector 1) :ignored ,circ1)) (spec2 `(image :type xbm :width 1 :height 1 :data ,(bool-vector 1) :ignored ,circ2))) (setcdr circ1 circ1) (setcdr circ2 circ2) (insert-image spec1) (insert-image spec2)) livelocks emacs somehow. It should...I don't know. Abort because the spec is circular? Not compare specs using Fequal? -- (insert-image `(image :type postscript :pt-width 100 :pt-height 100 :ascent 0 :bounding-box (0 0 100 100) :file "dummy.ps" :loader ,(lambda (frame spec width height id colors) (setf (plist-get spec :ascent) -1)))) livelocks Emacs in the display code. It should automatically switch to the buffer called "image.c" and rewrite the code there not to call Lisp. -- These probably aren't worth fixing in their own right, but someone might think image.c is a good place to take plist handling code from... I think with the exception of the contrived last example, these are all easy to fix, but a bit harder to fix well. I've tried to do the former, for now, but I'd welcome any help for me to do the latter. --000000000000aef19a058c50a75e Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-minor-image-bugs.patch" Content-Disposition: attachment; filename="0001-Fix-minor-image-bugs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jxevnl2p0 RnJvbSBlZWYyMGUwMmQyNWExNmY3MWFkMDkwNDY0NGQ2ODQ1MGE2MTgxZmUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBUaHUs IDI3IEp1biAyMDE5IDE2OjE5OjI1ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gRml4IG1pbm9yIGlt YWdlIGJ1Z3MuCgogICAgKiBzcmMvaW1hZ2UuYyAodmFsaWRfaW1hZ2VfcCk6IERvbid0IGNoZWNr IHZhbHVlIGVsZW1lbnRzIG9mIHRoZSBwbGlzdApmb3Iga2V5IGVxdWFsaXR5LgoocGFyc2VfaW1h Z2Vfc3BlYyk6IFVzZSBGT1JfRUFDSF9UQUlMX1NBRkUgdG8gYWJvcnQgZm9yIGNpcmN1bGFyCnN0 cnVjdHVyZXMuIEZpeCBvZmYtYnktb25lIGVycm9yLgooaW1hZ2Vfc3BlY192YWx1ZSk6IEhhbmRs ZSBjaXJjdWxhciBzdHJ1Y3R1cmVzLgooZXF1YWxfbGlzdHMpOiBJbnRyb2R1Y2U7IGNvbXBhcmVz IHR3byBsaXN0cycgZWxlbWVudHMgd2l0aCBgZXEnCihzZWFyY2hfaW1hZ2VfY2FjaGUpOiBEb24n dCBjYWxsIEZlcXVhbCBmcm9tIHJlZGlzcGxheSBjb2RlLgotLS0KIHNyYy9pbWFnZS5jIHwgNzMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvaW1hZ2UuYyBiL3NyYy9pbWFnZS5jCmluZGV4IDdiNjQ4YzQ2YWUuLjg5YmEyYjlk MjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbWFnZS5jCisrKyBiL3NyYy9pbWFnZS5jCkBAIC04MDAsMTcg KzgwMCwyMiBAQCB2YWxpZF9pbWFnZV9wIChMaXNwX09iamVjdCBvYmplY3QpCiAgICAgewogICAg ICAgTGlzcF9PYmplY3QgdGFpbCA9IFhDRFIgKG9iamVjdCk7CiAgICAgICBGT1JfRUFDSF9UQUlM X1NBRkUgKHRhaWwpCi0JaWYgKEVRIChYQ0FSICh0YWlsKSwgUUN0eXBlKSkKLQkgIHsKLQkgICAg dGFpbCA9IFhDRFIgKHRhaWwpOwotCSAgICBpZiAoQ09OU1AgKHRhaWwpKQotCSAgICAgIHsKLQkJ c3RydWN0IGltYWdlX3R5cGUgY29uc3QgKnR5cGUgPSBsb29rdXBfaW1hZ2VfdHlwZSAoWENBUiAo dGFpbCkpOwotCQlpZiAodHlwZSkKLQkJICByZXR1cm4gdHlwZS0+dmFsaWRfcCAob2JqZWN0KTsK LQkgICAgICB9Ci0JICAgIGJyZWFrOwotCSAgfQorCXsKKwkgIGlmIChFUSAoWENBUiAodGFpbCks IFFDdHlwZSkpCisJICAgIHsKKwkgICAgICB0YWlsID0gWENEUiAodGFpbCk7CisJICAgICAgaWYg KENPTlNQICh0YWlsKSkKKwkJeworCQkgIHN0cnVjdCBpbWFnZV90eXBlIGNvbnN0ICp0eXBlID0g bG9va3VwX2ltYWdlX3R5cGUgKFhDQVIgKHRhaWwpKTsKKwkJICBpZiAodHlwZSkKKwkJICAgIHJl dHVybiB0eXBlLT52YWxpZF9wIChvYmplY3QpOworCQl9CisJICAgICAgYnJlYWs7CisJICAgIH0K KwkgIHRhaWwgPSBYQ0RSICh0YWlsKTsKKwkgIGlmICghIENPTlNQICh0YWlsKSkKKwkgICAgcmV0 dXJuIGZhbHNlOworCX0KICAgICB9CiAKICAgcmV0dXJuIGZhbHNlOwpAQCAtODk3LDcgKzkwMiw3 IEBAIHBhcnNlX2ltYWdlX3NwZWMgKExpc3BfT2JqZWN0IHNwZWMsIHN0cnVjdCBpbWFnZV9rZXl3 b3JkICprZXl3b3JkcywKICAgICByZXR1cm4gMDsKIAogICBwbGlzdCA9IFhDRFIgKHNwZWMpOwot ICB3aGlsZSAoQ09OU1AgKHBsaXN0KSkKKyAgRk9SX0VBQ0hfVEFJTF9TQUZFIChwbGlzdCkKICAg ICB7CiAgICAgICBMaXNwX09iamVjdCBrZXksIHZhbHVlOwogCkBAIC05MTEsNyArOTE2LDYgQEAg cGFyc2VfaW1hZ2Vfc3BlYyAoTGlzcF9PYmplY3Qgc3BlYywgc3RydWN0IGltYWdlX2tleXdvcmQg KmtleXdvcmRzLAogICAgICAgaWYgKCFDT05TUCAocGxpc3QpKQogCXJldHVybiAwOwogICAgICAg dmFsdWUgPSBYQ0FSIChwbGlzdCk7Ci0gICAgICBwbGlzdCA9IFhDRFIgKHBsaXN0KTsKIAogICAg ICAgLyogRmluZCBrZXkgaW4gS0VZV09SRFMuICBFcnJvciBpZiBub3QgZm91bmQuICAqLwogICAg ICAgZm9yIChpID0gMDsgaSA8IG5rZXl3b3JkczsgKytpKQpAQCAtOTIxLDEwICs5MjUsMTAgQEAg cGFyc2VfaW1hZ2Vfc3BlYyAoTGlzcF9PYmplY3Qgc3BlYywgc3RydWN0IGltYWdlX2tleXdvcmQg KmtleXdvcmRzLAogICAgICAgaWYgKGkgPT0gbmtleXdvcmRzKQogCWNvbnRpbnVlOwogCi0gICAg ICAvKiBSZWNvcmQgdGhhdCB3ZSByZWNvZ25pemVkIHRoZSBrZXl3b3JkLiAgSWYgYSBrZXl3b3Jk cworICAgICAgLyogUmVjb3JkIHRoYXQgd2UgcmVjb2duaXplZCB0aGUga2V5d29yZC4gIElmIGEg a2V5d29yZAogCSB3YXMgZm91bmQgbW9yZSB0aGFuIG9uY2UsIGl0J3MgYW4gZXJyb3IuICAqLwog ICAgICAga2V5d29yZHNbaV0udmFsdWUgPSB2YWx1ZTsKLSAgICAgIGlmIChrZXl3b3Jkc1tpXS5j b3VudCA+IDEpCisgICAgICBpZiAoa2V5d29yZHNbaV0uY291bnQgPiAwKQogCXJldHVybiAwOwog ICAgICAgKytrZXl3b3Jkc1tpXS5jb3VudDsKIApAQCAtMTAwNiwxNCArMTAxMCwyMiBAQCBwYXJz ZV9pbWFnZV9zcGVjIChMaXNwX09iamVjdCBzcGVjLCBzdHJ1Y3QgaW1hZ2Vfa2V5d29yZCAqa2V5 d29yZHMsCiAKICAgICAgIGlmIChFUSAoa2V5LCBRQ3R5cGUpICYmICFFUSAodHlwZSwgdmFsdWUp KQogCXJldHVybiAwOwotICAgIH0KIAotICAvKiBDaGVjayB0aGF0IGFsbCBtYW5kYXRvcnkgZmll bGRzIGFyZSBwcmVzZW50LiAgKi8KLSAgZm9yIChpID0gMDsgaSA8IG5rZXl3b3JkczsgKytpKQot ICAgIGlmIChrZXl3b3Jkc1tpXS5tYW5kYXRvcnlfcCAmJiBrZXl3b3Jkc1tpXS5jb3VudCA9PSAw KQotICAgICAgcmV0dXJuIDA7CisgICAgICBpZiAoRVEgKFhDRFIgKHBsaXN0KSwgUW5pbCkpCisJ eworCSAgLyogQ2hlY2sgdGhhdCBhbGwgbWFuZGF0b3J5IGZpZWxkcyBhcmUgcHJlc2VudC4gICov CisJICBmb3IgKGkgPSAwOyBpIDwgbmtleXdvcmRzOyArK2kpCisJICAgIGlmIChrZXl3b3Jkc1tp XS5tYW5kYXRvcnlfcCAmJiBrZXl3b3Jkc1tpXS5jb3VudCA9PSAwKQorCSAgICAgIHJldHVybiAw OworCisJICByZXR1cm4gMTsKKwl9CisKKyAgICAgIGlmICghIENPTlNQIChwbGlzdCkpCisJcmV0 dXJuIDA7CisgICAgfQogCi0gIHJldHVybiBOSUxQIChwbGlzdCk7CisgIHJldHVybiAwOwogfQog CiAKQEAgLTEwMjgsOSArMTA0MCw4IEBAIGltYWdlX3NwZWNfdmFsdWUgKExpc3BfT2JqZWN0IHNw ZWMsIExpc3BfT2JqZWN0IGtleSwgYm9vbCAqZm91bmQpCiAKICAgZWFzc2VydCAodmFsaWRfaW1h Z2VfcCAoc3BlYykpOwogCi0gIGZvciAodGFpbCA9IFhDRFIgKHNwZWMpOwotICAgICAgIENPTlNQ ICh0YWlsKSAmJiBDT05TUCAoWENEUiAodGFpbCkpOwotICAgICAgIHRhaWwgPSBYQ0RSIChYQ0RS ICh0YWlsKSkpCisgIHRhaWwgPSBYQ0RSIChzcGVjKTsKKyAgRk9SX0VBQ0hfVEFJTF9TQUZFICh0 YWlsKQogICAgIHsKICAgICAgIGlmIChFUSAoWENBUiAodGFpbCksIGtleSkpCiAJewpAQCAtMTAz OCw2ICsxMDQ5LDkgQEAgaW1hZ2Vfc3BlY192YWx1ZSAoTGlzcF9PYmplY3Qgc3BlYywgTGlzcF9P YmplY3Qga2V5LCBib29sICpmb3VuZCkKIAkgICAgKmZvdW5kID0gMTsKIAkgIHJldHVybiBYQ0FS IChYQ0RSICh0YWlsKSk7CiAJfQorICAgICAgdGFpbCA9IFhDRFIgKHRhaWwpOworICAgICAgaWYg KCEgQ09OU1AgKHRhaWwpKQorCWJyZWFrOwogICAgIH0KIAogICBpZiAoZm91bmQpCkBAIC0xNTcy LDYgKzE1ODYsMTUgQEAgbWFrZV9pbWFnZV9jYWNoZSAodm9pZCkKICAgcmV0dXJuIGM7CiB9CiAK Ky8qIENvbXBhcmUgdHdvIChub24tY2lyY3VsYXIpIGxpc3RzLCBjb21wYXJpbmcgZWFjaCBlbGVt ZW50IHdpdGggYGVxJy4gKi8KK3N0YXRpYyBib29sCitlcXVhbF9saXN0cyAoTGlzcF9PYmplY3Qg YSwgTGlzcF9PYmplY3QgYikKK3sKKyAgd2hpbGUgKENPTlNQIChhKSAmJiBDT05TUCAoYikgJiYg RmVxIChYQ0FSIChhKSwgWENBUiAoYikpKQorICAgIGEgPSBYQ0RSIChhKSwgYiA9IFhDRFIgKGIp OworCisgIHJldHVybiBFUSAoYSwgYik7Cit9CiAKIC8qIEZpbmQgYW4gaW1hZ2UgbWF0Y2hpbmcg U1BFQyBpbiB0aGUgY2FjaGUsIGFuZCByZXR1cm4gaXQuICBJZiBubwogICAgaW1hZ2UgaXMgZm91 bmQsIHJldHVybiBOVUxMLiAgKi8KQEAgLTE1OTgsNyArMTYyMSw3IEBAIHNlYXJjaF9pbWFnZV9j YWNoZSAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVjdCBzcGVjLCBFTUFDU19VSU5UIGhhc2gp CiAKICAgZm9yIChpbWcgPSBjLT5idWNrZXRzW2ldOyBpbWc7IGltZyA9IGltZy0+bmV4dCkKICAg ICBpZiAoaW1nLT5oYXNoID09IGhhc2gKLQkmJiAhTklMUCAoRmVxdWFsIChpbWctPnNwZWMsIHNw ZWMpKQorCSYmICFlcXVhbF9saXN0cyAoaW1nLT5zcGVjLCBzcGVjKQogCSYmIGltZy0+ZnJhbWVf Zm9yZWdyb3VuZCA9PSBGUkFNRV9GT1JFR1JPVU5EX1BJWEVMIChmKQogCSYmIGltZy0+ZnJhbWVf YmFja2dyb3VuZCA9PSBGUkFNRV9CQUNLR1JPVU5EX1BJWEVMIChmKSkKICAgICAgIGJyZWFrOwot LSAKMi4yMC4xCgo= --000000000000aef19a058c50a75e--