From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id oGVKFMHbQ2N72gAAbAwnHQ (envelope-from ) for ; Mon, 10 Oct 2022 10:45:53 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id WEZsE8HbQ2PjZQAAG6o9tA (envelope-from ) for ; Mon, 10 Oct 2022 10:45:53 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D2FD720462 for ; Mon, 10 Oct 2022 10:45:52 +0200 (CEST) Received: from localhost ([::1]:51862 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohoQ3-0005Ho-MC for larch@yhetil.org; Mon, 10 Oct 2022 04:45:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37850) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohoOp-0005H9-8I for emacs-orgmode@gnu.org; Mon, 10 Oct 2022 04:44:37 -0400 Received: from [2409:8a28:603a:44b0:52d2:f5ff:fe16:c591] (port=51094 helo=Mac-mini.local) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohoOX-0004WP-Ac for emacs-orgmode@gnu.org; Mon, 10 Oct 2022 04:44:33 -0400 Received: by Mac-mini.local (Postfix, from userid 501) id 13703678AF83; Mon, 10 Oct 2022 16:44:05 +0800 (CST) References: <6322b0a8.050a0220.59bb8.6923SMTPIN_ADDED_BROKEN@mx.google.com> <87y1uluir1.fsf@localhost> <6322f5ad.c80a0220.5e936.823eSMTPIN_ADDED_BROKEN@mx.google.com> <878rmesf64.fsf@localhost> <6329c8b0.050a0220.412d.0a6cSMTPIN_ADDED_BROKEN@mx.google.com> <87tu51xivh.fsf@localhost> <633454e3.050a0220.7278b.1fa5SMTPIN_ADDED_BROKEN@mx.google.com> <87y1u298yn.fsf@localhost> <63353c69.370a0220.67788.e8a1SMTPIN_ADDED_BROKEN@mx.google.com> <87o7ux4khz.fsf@localhost> <6336a955.050a0220.4e72e.2b23SMTPIN_ADDED_BROKEN@mx.google.com> <87bkqw2pzc.fsf@localhost> <63380f57.370a0220.a9d9a.dee8SMTPIN_ADDED_BROKEN@mx.google.com> <878rlxzj5i.fsf@localhost> <633a67d8.050a0220.733e8.e57dSMTPIN_ADDED_BROKEN@mx.google.com> <87sfk4urvz.fsf@localhost> <633be6d3.370a0220.4060.bacdSMTPIN_ADDED_BROKEN@mx.google.com> <87edvikayo.fsf@localhost> <634149f4.c80a0220.1376.e564SMTPIN_ADDED_BROKEN@mx.google.com> <87h70dea2w.fsf@localhost> User-agent: mu4e 1.8.9; emacs 29.0.50 From: "Christopher M. Miles" To: Ihor Radchenko Cc: "Christopher M. Miles" , emacs-orgmode@gnu.org Subject: Re: [PATCH 2-v4] New: auto display inline images under subtree when `org-cycle'. Date: Mon, 10 Oct 2022 16:40:46 +0800 In-reply-to: <87h70dea2w.fsf@localhost> Message-ID: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:8a28:603a:44b0:52d2:f5ff:fe16:c591 (deferred) Received-SPF: softfail client-ip=2409:8a28:603a:44b0:52d2:f5ff:fe16:c591; envelope-from=numbchild@gmail.com; helo=Mac-mini.local X-Spam_score_int: 25 X-Spam_score: 2.5 X-Spam_bar: ++ X-Spam_report: (2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FROM=0.001, MSGID_MULTIPLE_AT=1, NML_ADSP_CUSTOM_MED=0.9, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, SPOOFED_FREEMAIL_NO_RDNS=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: numbchild@gmail.com Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1665391553; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=B8AvbLl+30F7x3UIFlKx111gxrkx73Tw3bppgutBeUk=; b=QEft/XlpygsmDScufwLS2ZXmTDrwFmPiLx1J2ib6JQbi/uN/Yg8eeWVUqmhnzbtymkoMYB zKEZZknOTADtQMttzweGMQJRVRI2IIkDpUWRpZ7rT/bQzhe0broV9WBcdm/8kX8tJvbgD+ laH0bfA8mz4XazJ3ff7MEweipTzNaWJTeKCar7EiIh5SuqAU4iABMU6BHHSVYyi3AkzG3W aERAPYaD7aMAWpbtU4SKxWmamTFxwKt9NIMzDote/Y9zLk054njy1XRtCvzLpkm4YaVxPA kTf0ZqwtX9gZyVNNSMu0mSzVrHihYlKC9OD7zXWTUJJ/pDyqvwrjt2+dFUpKgA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1665391553; a=rsa-sha256; cv=none; b=TO+FOhkQMAUn2Qf2OyMT1/l1oNDYuooOdfZQxV/LBrWb8g7nrzIiCgCNEdnVVQHT+aLgM+ FVtaZYfBT7CQVnk3tHUu+2kVVVRDNj2O9DlGu8sPWtqR39ecPEdvaz8dEMT3d+vglzcqKq HzEB8VPZro4Z6eNlPhgf0SI2nDqXu6LoYIBXIovi7/VoLSBn3SNBQRAgTg3FQl6mdRB0ic bIWTb2wQOsY3QwnNNYX8YG6khe8aiB3seeFCf1tK7es5SonwdNBzGpStd36I7QtxAfnGjF 471+TO8zTge5HshXD+YQtuGlmuHQ0ILQ0pqYoOEZMuk2JG+IIA3FCekPa0LOLQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 0.42 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: D2FD720462 X-Spam-Score: 0.42 X-Migadu-Scanner: scn0.migadu.com X-TUID: Nwe4/HjuKsPS --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ihor Radchenko writes: > "Christopher M. Miles" writes: > >>> I think that the best we can do in this situation is mocking >>> `create-image' in batch mode to return non-nil using `cl-letf'. >> >> I checked the `create-image' in image.el source code, don't know how to >> mocking this. I have no experience and idea about this. I also searched >> org testing. Have not found similar situations. >> >> If you have idea how to write this test, I suggest pass this word to >> you. What do you think? > > I imagine something like > > ;; Mock `create-image' to work noninteractively. > (cl-letf (((symbol-function 'create-image) > (lambda (&rest _) > `(image :type "dummy" :data "dummy")))) > ) After wrapped your cl-letf redefining function binding. Still failed on tes= t. Here is the new test code: #+begin_src emacs-lisp (ert-deftest test-org-fold/org-fold-display-inline-images () "Test inline images displaying when cycling." ;; Mock `create-image' to work noninteractively. (cl-letf (((symbol-function 'create-image) (lambda (&rest _) `(image :type "dummy" :data "dummy")))) (let* ((org-cycle-inline-images-display t) (images-dir (expand-file-name "examples/images/" org-test-dir)) (org-logo-image (expand-file-name "Org mode logo mono-color.png"= images-dir))) ;; `org-cycle' -(state)-> `'children' display child inline images. (org-test-with-temp-text (format "* Heading 1 [[file:%s]] " org-logo-image) (org-overview) ;; (org-cycle) ;; (org-cycle-internal-local) ;; (org-cycle-display-inline-images 'children) (org-fold-show-children) (run-hook-with-args 'org-cycle-hook 'children) (org-next-link) (should org-inline-image-overlays) (should (overlays-at (point))) (org-toggle-inline-images) (should-not (overlays-at (point)))) =20=20=20=20=20=20 ;; `org-cycle' -(state)-> `'subtree' display subtrees inline images. (org-test-with-temp-text (format "* Heading 1 [[file:%s]] ** Subheading 1 [[file:%s]] ** Subheading 2 [[file:%s]]" org-logo-image org-logo-image org-logo-image) (org-overview) ;; (org-cycle) ;; (org-cycle) ;; (org-cycle-internal-global) (org-fold-show-subtree) (run-hook-with-args 'org-cycle-hook 'subtree) (org-next-link) (org-next-link) ;; (should org-inline-image-overlays) (should (overlays-at (point))) (org-toggle-inline-images) (should-not (overlays-at (point)))) =20=20=20=20=20=20 ;; `org-cycle' -(state)-> `'folded' remove inline image overlays. (org-test-with-temp-text (format "* Heading 1 [[file:%s]] ** Subheading 1 [[file:%s]] ** Subheading 2 [[file:%s]]" org-logo-image org-logo-image org-logo-image) (org-overview) (org-show-subtree) (org-fold-subtree t) (run-hook-with-args 'org-cycle-hook 'folded) (should (null org-inline-image-overlays)) (should (null (overlays-in (point-min) (point-max)))) (org-show-subtree) (should-not org-inline-image-overlays) (should-not (overlays-in (point-min) (point-max))))))) #+end_src And failed after command: #+begin_src shell make BTEST_RE=3D"test-org-fold/org-fold-display-inline-images" test-dirty=20 #+end_src Here is the output: #+begin_example ~/Code/Emacs/org-mode:main*:1 =CE=BB make BTEST_RE=3D"test-org-fold/org-fol= d-display-inline-images" test-dirty=20=20 install -m 755 -d /var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T//tmp-org= test TMPDIR=3D/var/folders/ym/f3v5_yk1279g5ls70x3hzblh0000gn/T//tmp-orgtest emac= s -Q -batch --eval '(setq vc-handled-backends nil org-startup-folded nil o= rg-element-cache-persistent nil)' --eval '(add-to-list '"'"'load-path (con= cat default-directory "lisp"))' --eval '(add-to-list '"'"'load-path (concat= default-directory "testing"))' -l org-batch-test-init --eval '(setq org-b= atch-test t org-babel-load-languages (quote ( (awk . t) (C . t) (fortran = . t) (maxima . t) (lilypond . t) (octave . t) (perl . t) (python . t) = (emacs-lisp . t) (shell . t) (org . t))) org-test-select-re "test-org-fo= ld/org-fold-display-inline-images" )' -l org-loaddefs.el -l cl -l testing/o= rg-test.el -l ert -l org -l ox -l ol --eval '(org-test-run-batch-tests org= -test-select-re)' Package cl is deprecated Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org.el' newer than= byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-compat.el' new= er than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-macs.el' newer= than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-keys.el' newer= than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/oc.el' newer than = byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ol.el' newer than = byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-table.el' newe= r than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-cycle.el' newe= r than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-awk.el' newer t= han byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-core.el' newer = than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-comint.el' newe= r than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-exp.el' newer t= han byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-ref.el' newer t= han byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-src.el' newer = than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-maxima.el' newe= r than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-lilypond.el' ne= wer than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-octave.el' newe= r than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-emacs-lisp.el' = newer than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-list.el' newer= than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-pcomplete.el' = newer than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-macro.el' newe= r than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-id.el' newer t= han byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-refile.el' new= er than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org.el' newer than= byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ol-doi.el' newer t= han byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ol-irc.el' newer t= han byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-element.el' ne= wer than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ox.el' newer than = byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ox-html.el' newer = than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ox-icalendar.el' n= ewer than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-agenda.el' new= er than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ol.el' newer than = byte-compiled file; using older file Finding ID locations (1/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/setupfile3.org Finding ID locations (2/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/setupfile.org Finding ID locations (3/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/property-inheritance.org Finding ID locations (4/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/org-exp.org Finding ID locations (5/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/ob-shell-test.org Finding ID locations (6/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/ob-sed-test.org Finding ID locations (7/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/ob-screen-test.org Finding ID locations (8/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/ob-octave-test.org Finding ID locations (9/26 files): /Users/stardiviner/Code/Emacs/org-mode/t= esting/examples/ob-maxima-test.org Finding ID locations (10/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/ob-lilypond-test.org Finding ID locations (11/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/ob-lilypond-broken.org Finding ID locations (12/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/ob-header-arg-defaults.org Finding ID locations (13/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/ob-fortran-test.org Finding ID locations (14/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/ob-awk-test.org Finding ID locations (15/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/ob-C-test.org Finding ID locations (16/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/normal.org Finding ID locations (17/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/no-heading.org Finding ID locations (18/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/macro-templates.org Finding ID locations (19/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/links.org Finding ID locations (20/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/link-in-heading.org Finding ID locations (21/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/include2.org Finding ID locations (22/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/include.org Finding ID locations (23/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/babel.org Finding ID locations (24/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/babel-dangerous.org Finding ID locations (25/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/attachments.org Finding ID locations (26/26 files): /Users/stardiviner/Code/Emacs/org-mode/= testing/examples/agenda-file.org 26 files scanned, 14 files contains IDs, and 58 IDs found. 0 source block added to Library of Babel Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/ob-sed.el' newer t= han byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-inlinetask.el'= newer than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-capture.el' ne= wer than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-clock.el' newe= r than byte-compiled file; using older file Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-feed.el' newer= than byte-compiled file; using older file Local variables list is not properly terminated Source file `/Users/stardiviner/Code/Emacs/org-mode/lisp/org-lint.el' newer= than byte-compiled file; using older file selected tests: test-org-fold/org-fold-display-inline-images Running 1 tests (2022-10-10 16:31:04+0800, selector `"test-org-fold/org-fol= d-display-inline-images"') Test test-org-fold/org-fold-display-inline-images backtrace: signal(ert-test-failed (((should org-inline-image-overlays) :form or ert-fail(((should org-inline-image-overlays) :form org-inline-image- (if (unwind-protect (setq value-12536 org-inline-image-overlays) (se (let (form-description-12537) (if (unwind-protect (setq value-12536=20 (let ((value-12536 (gensym "ert-form-evaluation-aborted-"))) (let (f (progn (org-mode) (let ((point (string-match "" inside-text)) (unwind-protect (progn (org-mode) (let ((point (string-match "* Heading 1\n[[file: (let* ((org-cycle-inline-images-display t) (images-dir (expand-file- (progn (fset 'create-image vnew) (let* ((org-cycle-inline-images-dis (unwind-protect (progn (fset 'create-image vnew) (let* ((org-cycle-i (let* ((vnew #'(lambda (&rest _) '(image :type "dummy" :data "dummy" (closure (t) nil (let* ((vnew #'(lambda (&rest _) '(image :type "dum ert--run-test-internal(#s(ert--test-execution-info :test ... :result ert-run-test(#s(ert-test :name test-org-fold/org-fold-display-inline ert-run-or-rerun-test(#s(ert--stats :selector "test-org-fold/..." :t ert-run-tests("test-org-fold/org-fold-display-inline-images" #f(comp ert-run-tests-batch("test-org-fold/org-fold-display-inline-images") ert-run-tests-batch-and-exit("test-org-fold/org-fold-display-inline- (let ((org-id-track-globally t) (org-test-selector (if org-test-sele org-test-run-batch-tests("test-org-fold/org-fold-display-inline-imag eval((org-test-run-batch-tests org-test-select-re) t) command-line-1(("--eval" "(setq vc-handled-backends nil org-startup- command-line() normal-top-level() Test test-org-fold/org-fold-display-inline-images condition: (ert-test-failed ((should org-inline-image-overlays) :form org-inline-image-overlays :value nil)) FAILED 1/1 test-org-fold/org-fold-display-inline-images (0.001214 sec)= at ../lisp/test-org-fold.el:607 Ran 1 tests, 0 results as expected, 1 unexpected (2022-10-10 16:31:04+0800,= 0.166044 sec) 1 unexpected results: FAILED test-org-fold/org-fold-display-inline-images ((should org-inlin= e-image-overlays) :form org-inline-image-overlays :value nil) make: *** [test-dirty] Error 1 ~/Code/Emacs/org-mode:main*:1 =CE=BB=20 #+end_example =2D-=20 [ stardiviner ] I try to make every word tell the meaning that I want to express without mi= sunderstanding. Blog: https://stardiviner.github.io/ IRC(libera.chat, freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAmND21UACgkQG13xyVro msPe3Af8DqDMNPI76eDyW/PLHMphVU6s7F8KZeBiZ/wxwAFyRYtVpEo6W5glA0mX KeM24PJV73nQ/RXb8I7uaApUTA9yPAo7E1DDzJBepUz6/uluscVxvs0+0nfq5ZAx +YaI7XUjzC6Zkb4/NoMquWEta8nc5GyRe+Xx3M+cWhE/a1o7sZOc16PzqecjnSWK E6w0sRK4YAe0pTaLDCbp9Vw42//K6xDlR7I2XA4ALFciGdArmRtj6sVMVibUhCCF x0OStbY+T3kQi8+d5EYZI6zOB6bqqCbWkQ3YiqOUB/89ruDSgscfXG3COcA+FU1h bwwNq6O2KUEOS/BwX7A/RamxwsxgIg== =Bmi6 -----END PGP SIGNATURE----- --=-=-=--