From unknown Sun Jun 15 01:09:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63196: sxml or guile bug? Resent-From: Christopher Lam Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Mon, 01 May 2023 02:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 63196 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: guile-user@gnu.org, 63196@debbugs.gnu.org X-Debbugs-Original-To: guile-user , bug-guile@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.168290838429826 (code B ref -1); Mon, 01 May 2023 02:34:02 +0000 Received: (at submit) by debbugs.gnu.org; 1 May 2023 02:33:04 +0000 Received: from localhost ([127.0.0.1]:38631 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ptJLb-0007l0-Qo for submit@debbugs.gnu.org; Sun, 30 Apr 2023 22:33:04 -0400 Received: from lists.gnu.org ([209.51.188.17]:57640) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ptJLX-0007kY-Hw for submit@debbugs.gnu.org; Sun, 30 Apr 2023 22:33:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ptJLW-00031E-Pk; Sun, 30 Apr 2023 22:32:58 -0400 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ptJLU-0002B5-Lm; Sun, 30 Apr 2023 22:32:58 -0400 Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-4ec8eca56cfso2542356e87.0; Sun, 30 Apr 2023 19:32:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682908374; x=1685500374; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=b4Hpej4urA2cHNN/A9jj1nkhOV75Vqinv2bhRQplqTg=; b=d0r+zDiS13iCtrP7VrTBI7JT4kdTe3HoHnbdGGpLkfSu6iVvsUeij3UQ6OUHPxfCyC XDOKRd+D1qX1w7dNSgJYVcG/LVmwtfTufHXr0Gllid+PBQOVcr5lMbNtLvQ7+U/ALKGf 2xewKl+McqUKhLG5U4V4XgqmcxcrgRMkWqbn4ruJtadiq3++YTtHSuL5ctvl/gLe5VKz 44Z2ANp0ZaC46WvW1CJUIeH2TRGI/BnArj5fMUrcMQaEJFMW8KEauM57TGpfnTZhlMwI CaCMq4esFzFx3eMN7khGl4Jb8u221Igqi5JzeLMhD02d2Pya5WV6ZdtDLo3QdHPwpd38 EVrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682908374; x=1685500374; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=b4Hpej4urA2cHNN/A9jj1nkhOV75Vqinv2bhRQplqTg=; b=MLAiR/IXYu4jP8VxI9OSZQXW7f+WnLEPcgT+HvAlj92E9din3FoWZIrVutqrQOi+hL FQCd5Sh4W+qQwoXkcsWZOzF9VCkuqrYIMPOv3t757EEybB/Pz+tUo/UBUoZHr+QyRRMG Gq6u607kKNe3e7aUHRMDilvSt5X9c5qPPfoEXERMTwQ3yJIscz3xgQzJehwTHOaM1anE tcDziJfP/R96U0GZJjRzyoM4zzcfChPt6VJoyVUKNbDhlXYteFlmJKJnpX6i/60/Ux/K QZpUPuFkxcJMc9y57NWXC83T0aJPA7ZVlEIN408k2YsWvdcRndRQbnziVZJgy/BcfgbH LOzg== X-Gm-Message-State: AC+VfDwrgYAzMGUMi9epEG5/ah2WdVGV1331ZHIx38IKiXleXGsVRPiW sP3ZH1mTXfjq7lQNM9StWnigjcn13HscH1Zp4R5827mrv8S78w== X-Google-Smtp-Source: ACHHUZ6i+FxsORxsz2oM0uWHVUkZKqb5kcFf+Lo9RVC3NH6GsvXoldxLlVsAZOMaNgUOvnr4kDtf1loci4PqN6Xa/wA= X-Received: by 2002:ac2:5d2d:0:b0:4f0:e03:75d9 with SMTP id i13-20020ac25d2d000000b004f00e0375d9mr3168093lfb.48.1682908373350; Sun, 30 Apr 2023 19:32:53 -0700 (PDT) MIME-Version: 1.0 From: Christopher Lam Date: Mon, 1 May 2023 10:32:26 +0800 Message-ID: Content-Type: multipart/mixed; boundary="000000000000c8e5b405fa98a3e6" Received-SPF: pass client-ip=2a00:1450:4864:20::133; envelope-from=christopher.lck@gmail.com; helo=mail-lf1-x133.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, LOTS_OF_MONEY=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_HTML_ATTACH=0.01, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --000000000000c8e5b405fa98a3e6 Content-Type: multipart/alternative; boundary="000000000000c8e5b205fa98a3e4" --000000000000c8e5b205fa98a3e4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, we've identified an unusual behaviour in writing a test in gnucash. Can anyone reproduce and confirmit? I paste a simple .scm file, and its input test-file.html. Now, in sxml-bug.scm, modify the index - from -1 to -2 i.e. access the last/penultimate row etc. Odd negative indices work, even negative indices lead to error. Odd (haha) bug. See report for (tr -2) for example, pasted below. =3D=3D=3D=3D sxml-bug.scm =3D=3D=3D=3D=3D (use-modules (sxml simple)) (use-modules (sxml xpath)) (use-modules (ice-9 textual-ports)) (define html (call-with-input-file "/tmp/test-file.html" get-string-all)) (define sx (xml->sxml html)) ;; note this path: try different indices for the tr tag: ;; odd numbers -1 -3 -5 are ok ;; even numbers -2 -4 -6 will fail (define path '(// (table 1) // (tr -1))) (format #t "html=3D[~s]\n" html) (format #t "sxpath is [~s]\n" path) (format #t "result is [~s]\n" ((sxpath path) sx)) =3D=3D=3D=3D And the backtrace with -2 =3D=3D=3D=3D=3D Backtrace: In ice-9/boot-9.scm: 1752:10 18 (with-exception-handler _ _ #:unwind? _ # _) In unknown file: 17 (apply-smob/0 #) In ice-9/boot-9.scm: 724:2 16 (call-with-prompt _ _ #) In ice-9/eval.scm: 619:8 15 (_ #(#(#))) In ice-9/boot-9.scm: 2836:4 14 (save-module-excursion _) 4388:12 13 (_) In /home/user/sources/sxml-bug.scm: 20:30 12 (_) In sxml/xpath.scm: 254:18 11 (map-union # =E2=80=A6) 254:18 10 (map-union # =E2=80=A6) 254:18 9 (map-union # =E2=80=A6) 254:18 8 (map-union # =E2=80=A6) 254:18 7 (map-union # =E2=80=A6) 252:22 6 (map-union # =E2=80=A6) 252:22 5 (map-union # =E2=80=A6) 254:18 4 (map-union # =E2=80=A6) 254:18 3 (map-union # =E2=80=A6) 252:22 2 (map-union # =E2=80=A6) 484:19 1 (loop _ ((tr -6))) 181:24 0 (_ _) sxml/xpath.scm:181:24: yikes! =3D=3D=3D=3D=3D --000000000000c8e5b205fa98a3e4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi, we've identified an unusual behaviour in writ= ing a test in gnucash. Can anyone reproduce and confirmit?
<= br>
I paste a simple .scm file, and its input test-file.html. Now= , in sxml-bug.scm, modify the <tr> index - from -1 to -2 i.e. access = the last/penultimate row etc.

Odd negative indices= work, even negative indices lead to error. Odd (haha) bug. See report for = (tr -2) for example, pasted below.

=3D=3D=3D= =3D sxml-bug.scm =3D=3D=3D=3D=3D
(use-modules (sxml simple))
(= use-modules (sxml xpath))
(use-modules (ice-9 textual-ports))
(define= html (call-with-input-file "/tmp/test-file.html" get-string-all)= )
(define sx (xml->sxml html))

;; note this path: try differen= t indices for the tr tag:
;; odd numbers -1 -3 -5 are ok
;; even numb= ers -2 -4 -6 will fail
(define path '(// (table 1) // (tr= -1)))

(format #t "html=3D[~s]\n" html)
(format = #t "sxpath is [~s]\n" path)
(format #t "result is [~s]\n&= quot; ((sxpath path) sx))
=3D=3D=3D=3D

And = the backtrace with -2

=3D=3D=3D=3D=3D
Backtrace:
In ice-9/boot-9.scm:
=C2=A0 1752:10 18 (with-exception-h= andler _ _ #:unwind? _ # _)
In unknown file:
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 17 (apply-smob/0 #<thunk 7f7fd530d2e0>)
In ice-9/boot-9= .scm:
=C2=A0 =C2=A0 724:2 16 (call-with-prompt _ _ #<procedure defaul= t-prompt-handle=E2=80=A6>)
In ice-9/eval.scm:
=C2=A0 =C2=A0 619:8 = 15 (_ #(#(#<directory (guile-user) 7f7fd5312c80>)))
In ice-9/boot-= 9.scm:
=C2=A0 =C2=A02836:4 14 (save-module-excursion _)
=C2=A0 4388:1= 2 13 (_)
In /home/user/sources/sxml-bug.scm:
=C2=A0 =C2=A0 20:30 12 (= _)
In sxml/xpath.scm:
=C2=A0 =C2=A0254:18 11 (map-union #<procedur= e 7f7fd18e8280 at sxml/xpath.scm:=E2=80=A6> =E2=80=A6)
=C2=A0 =C2=A02= 54:18 10 (map-union #<procedure 7f7fd18e8280 at sxml/xpath.scm:=E2=80=A6= > =E2=80=A6)
=C2=A0 =C2=A0254:18 =C2=A09 (map-union #<procedure 7f= 7fd18e8280 at sxml/xpath.scm:=E2=80=A6> =E2=80=A6)
=C2=A0 =C2=A0254:1= 8 =C2=A08 (map-union #<procedure 7f7fd18e8280 at sxml/xpath.scm:=E2=80= =A6> =E2=80=A6)
=C2=A0 =C2=A0254:18 =C2=A07 (map-union #<procedure= 7f7fd18e8280 at sxml/xpath.scm:=E2=80=A6> =E2=80=A6)
=C2=A0 =C2=A025= 2:22 =C2=A06 (map-union #<procedure 7f7fd18e8280 at sxml/xpath.scm:=E2= =80=A6> =E2=80=A6)
=C2=A0 =C2=A0252:22 =C2=A05 (map-union #<proced= ure 7f7fd18f2ea0 at sxml/xpath.scm:=E2=80=A6> =E2=80=A6)
=C2=A0 =C2= =A0254:18 =C2=A04 (map-union #<procedure 7f7fd1901420 at sxml/xpath.scm:= =E2=80=A6> =E2=80=A6)
=C2=A0 =C2=A0254:18 =C2=A03 (map-union #<pro= cedure 7f7fd1901420 at sxml/xpath.scm:=E2=80=A6> =E2=80=A6)
=C2=A0 = =C2=A0252:22 =C2=A02 (map-union #<procedure 7f7fd1901420 at sxml/xpath.s= cm:=E2=80=A6> =E2=80=A6)
=C2=A0 =C2=A0484:19 =C2=A01 (loop _ ((tr -6)= ))
=C2=A0 =C2=A0181:24 =C2=A00 (_ _)

sxml/xpath.scm:181:24: yikes= !
=3D=3D=3D=3D=3D


--000000000000c8e5b205fa98a3e4-- --000000000000c8e5b405fa98a3e6 Content-Type: text/html; charset="US-ASCII"; name="test-file.html" Content-Disposition: attachment; filename="test-file.html" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lh482h1s0 PCFET0NUWVBFIGh0bWw+CjxodG1sIGRpcj0nYXV0byc+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2 PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KPHN0 eWxlIHR5cGU9InRleHQvY3NzIj4KQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykg e2JvZHkge2NvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO319CmgzIHsgZm9udC1m YW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTVwdDsgZm9udC13ZWlnaHQ6 IGJvbGQ7ICB9CmEgeyBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsgZm9udC1zaXpl OiAxMHB0OyBmb250LXN0eWxlOiBpdGFsaWM7ICB9CmJvZHksIHAsIHRhYmxlLCB0ciwgdGQgeyB2 ZXJ0aWNhbC1hbGlnbjogdG9wOyBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsgZm9u dC1zaXplOiAxMHB0OyAgfQp0ci5hbHRlcm5hdGUtcm93IHsgYmFja2dyb3VuZDogI2ZmZmZmZiB9 CnRyIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkICFpbXBvcnRhbnQ7fQpodG1sLCBib2R5IHsg aGVpZ2h0OiAxMDB2aDsgbWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdp bi1sZWZ0OiA4cHg7IG1hcmdpbi1yaWdodDogOHB4OyB9CnRkLCB0aCB7IGJvcmRlci1jb2xvcjog Z3JleSB9CnRoLmNvbHVtbi1oZWFkaW5nLWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0OyBmb250LWZh bWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMHB0OyAgfQp0aC5jb2x1bW4t aGVhZGluZy1jZW50ZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtZmFtaWx5OiAiQXJpYWwi LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEwcHQ7ICB9CnRoLmNvbHVtbi1oZWFkaW5nLXJpZ2h0 IHsgdGV4dC1hbGlnbjogcmlnaHQ7IGZvbnQtZmFtaWx5OiAiQXJpYWwiLCBzYW5zLXNlcmlmOyBm b250LXNpemU6IDEwcHQ7ICB9CnRkLmhpZ2hsaWdodCB7YmFja2dyb3VuZC1jb2xvcjojZTFlMWUx fXRkLm5lZyB7IGNvbG9yOiByZWQ7ICB9CnRkLm51bWJlci1jZWxsLCB0ZC50b3RhbC1udW1iZXIt Y2VsbCB7IHRleHQtYWxpZ246IHJpZ2h0OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9CnRkLmRhdGUt Y2VsbCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KdGQuYW5jaG9yLWNlbGwgeyB3aGl0ZS1zcGFj ZTogbm93cmFwOyBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAx MHB0OyAgfQp0ZC5udW1iZXItY2VsbCB7IGZvbnQtZmFtaWx5OiAiQXJpYWwiLCBzYW5zLXNlcmlm OyBmb250LXNpemU6IDEwcHQ7ICB9CnRkLm51bWJlci1oZWFkZXIgeyB0ZXh0LWFsaWduOiByaWdo dDsgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTBwdDsgIH0K dGQudGV4dC1jZWxsIHsgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7IGZvbnQtc2l6 ZTogMTBwdDsgIH0KdGQudG90YWwtbnVtYmVyLWNlbGwgeyBmb250LWZhbWlseTogIkFyaWFsIiwg c2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBmb250LXdlaWdodDogYm9sZDsgIH0KdGQudG90 YWwtbGFiZWwtY2VsbCB7IGZvbnQtZmFtaWx5OiAiQXJpYWwiLCBzYW5zLXNlcmlmOyBmb250LXNp emU6IDEycHQ7IGZvbnQtd2VpZ2h0OiBib2xkOyAgfQp0ZC5jZW50ZXJlZC1sYWJlbC1jZWxsIHsg dGV4dC1hbGlnbjogY2VudGVyOyBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsgZm9u dC1zaXplOiAxMnB0OyBmb250LXdlaWdodDogYm9sZDsgIH0Kc3ViIHsgdG9wOiAwLjRlbTsgfQpz dWIsIHN1cCB7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgcG9zaXRpb246IHJlbGF0aXZlOyB0 b3A6IC0wLjRlbTsgfQpAbWVkaWEgcHJpbnQgeyBodG1sLCBib2R5IHsgaGVpZ2h0OiB1bnNldDsg fX0KPC9zdHlsZT48dGl0bGU+CnJlYWQgcm93cyBmcm9tIHRoZSBib3R0b208L3RpdGxlPjwvaGVh ZD48Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj48aDM+cmVhZCByb3dzIGZyb20gdGhlIGJvdHRvbTwv aDM+CjxoMz5Gcm9tIDAxLzAxLzIzIHRvIDEyLzMxLzIzPC9oMz4KPGI+U29ydGluZyAvIEFkZCBp bmRlbnRpbmcgY29sdW1uczwvYj4KOiBEaXNhYmxlZDxiciAvPjxiPlNvcnRpbmcgLyBTZWNvbmRh cnkgS2V5PC9iPgo6IG5vbmU8YnIgLz48Yj5Tb3J0aW5nIC8gUHJpbWFyeSBTdWJ0b3RhbDwvYj4K OiBEaXNhYmxlZDxiciAvPjxiPlNvcnRpbmcgLyBQcmltYXJ5IFN1YnRvdGFsIGZvciBEYXRlIEtl eTwvYj4KOiBub25lPGJyIC8+PGI+R2VuZXJhbCAvIEFkZCBvcHRpb25zIHN1bW1hcnk8L2I+Cjog YWx3YXlzPGJyIC8+PGI+R2VuZXJhbCAvIFRhYmxlIGZvciBFeHBvcnRpbmc8L2I+CjogRW5hYmxl ZDxiciAvPjxiPkRpc3BsYXkgLyBUb3RhbHM8L2I+CjogRGlzYWJsZWQ8YnIgLz48Yj5EaXNwbGF5 IC8gQW1vdW50PC9iPgo6IHNpbmdsZTxiciAvPjxiPkRpc3BsYXkgLyBPdGhlciBBY2NvdW50IE5h bWU8L2I+CjogRGlzYWJsZWQ8YnIgLz48Yj5EaXNwbGF5IC8gQWNjb3VudCBOYW1lPC9iPgo6IEVu YWJsZWQ8YnIgLz48Yj5EaXNwbGF5IC8gTm90ZXM8L2I+CjogRGlzYWJsZWQ8YnIgLz48Yj5EaXNw bGF5IC8gTWVtbzwvYj4KOiBEaXNhYmxlZDxiciAvPjxiPkRpc3BsYXkgLyBOdW08L2I+CjogRGlz YWJsZWQ8YnIgLz48Yj5BY2NvdW50cyAvIEFjY291bnRzPC9iPgo6IEJhbms8YnIgLz48dGFibGUg Y2VsbHNwYWNpbmc9IjAuMCIgY2VsbHBhZGRpbmc9IjQuMCIgYm9yZGVyPSIwLjAiPjx0aGVhZD48 dHI+PHRoPkRhdGU8L3RoPgo8dGg+RGVzY3JpcHRpb248L3RoPgo8dGg+QWNjb3VudDwvdGg+Cjx0 aD5BbW91bnQ8L3RoPgo8L3RyPgo8L3RoZWFkPgo8dGJvZHk+PHRyPjx0ZCBjbGFzcz0iZGF0ZS1j ZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4wMS8wMy8yMzwvdGQ+Cjx0ZCBjbGFzcz0idGV4 dC1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4kMTAzIGluY29tZTwvdGQ+Cjx0ZD5Sb290 LkFzc2V0LkJhbms8L3RkPgo8dGQgY2xhc3M9Im51bWJlci1jZWxsIiByb3dzcGFuPSIxIiBjb2xz cGFuPSIxIj48YSBocmVmPSJnbmMtcmVnaXN0ZXI6c3BsaXQtZ3VpZD04NTkwMzJjODYzOWU0OWI0 OTUwMWU5YTBhMTQ5N2FjNSMiPiQxMDMuMDA8L2E+CjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIj ZmZmZmZmIj48dGQgY2xhc3M9ImRhdGUtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+MDEv MDkvMjM8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+ JDEwOSBpbmNvbWU8L3RkPgo8dGQ+Um9vdC5Bc3NldC5CYW5rPC90ZD4KPHRkIGNsYXNzPSJudW1i ZXItY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+PGEgaHJlZj0iZ25jLXJlZ2lzdGVyOnNw bGl0LWd1aWQ9Y2JlNGJhNzkwNDUxNDI4NWEyMjkxM2YzZDQxZmRlOWQjIj4kMTA5LjAwPC9hPgo8 L3RkPgo8L3RyPgo8dHI+PHRkIGNsYXNzPSJkYXRlLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49 IjEiPjAxLzE1LzIzPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNlbGwiIHJvd3NwYW49IjEiIGNvbHNw YW49IjEiPiQyMiBleHBlbnNlPC90ZD4KPHRkPlJvb3QuQXNzZXQuQmFuazwvdGQ+Cjx0ZCBjbGFz cz0ibnVtYmVyLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjxhIGhyZWY9ImduYy1yZWdp c3RlcjpzcGxpdC1ndWlkPWZkMDdjMjg1ODc0NTRkMTg5NmFjM2Q5MGI0OTFhYmM3IyI+LSQyMi4w MDwvYT4KPC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNmZmZmZmYiPjx0ZCBjbGFzcz0iZGF0ZS1j ZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4wMi8wMy8yMzwvdGQ+Cjx0ZCBjbGFzcz0idGV4 dC1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4kMTAzIGluY29tZTwvdGQ+Cjx0ZD5Sb290 LkFzc2V0LkJhbms8L3RkPgo8dGQgY2xhc3M9Im51bWJlci1jZWxsIiByb3dzcGFuPSIxIiBjb2xz cGFuPSIxIj48YSBocmVmPSJnbmMtcmVnaXN0ZXI6c3BsaXQtZ3VpZD04ZDIzNzZiNTE1NjQ0MDJi ODI2OTY1NDMzNmVlZWUwNCMiPiQxMDMuMDA8L2E+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgY2xhc3M9 ImRhdGUtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+MDIvMDkvMjM8L3RkPgo8dGQgY2xh c3M9InRleHQtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+JDEwOSBpbmNvbWU8L3RkPgo8 dGQ+Um9vdC5Bc3NldC5CYW5rPC90ZD4KPHRkIGNsYXNzPSJudW1iZXItY2VsbCIgcm93c3Bhbj0i MSIgY29sc3Bhbj0iMSI+PGEgaHJlZj0iZ25jLXJlZ2lzdGVyOnNwbGl0LWd1aWQ9ZWExNDZhMjM0 ZmY3NDI2NDliOTNiOWEzM2ZlZmFlMmUjIj4kMTA5LjAwPC9hPgo8L3RkPgo8L3RyPgo8dHIgYmdj b2xvcj0iI2ZmZmZmZiI+PHRkIGNsYXNzPSJkYXRlLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49 IjEiPjAyLzE1LzIzPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNlbGwiIHJvd3NwYW49IjEiIGNvbHNw YW49IjEiPiQyMiBleHBlbnNlPC90ZD4KPHRkPlJvb3QuQXNzZXQuQmFuazwvdGQ+Cjx0ZCBjbGFz cz0ibnVtYmVyLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjxhIGhyZWY9ImduYy1yZWdp c3RlcjpzcGxpdC1ndWlkPThhYjkxNDk0NjIxZjRiZjFiMGNkZmM1NjAxMzU5NDU5IyI+LSQyMi4w MDwvYT4KPC90ZD4KPC90cj4KPHRyPjx0ZCBjbGFzcz0iZGF0ZS1jZWxsIiByb3dzcGFuPSIxIiBj b2xzcGFuPSIxIj4wMy8wMy8yMzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZWxsIiByb3dzcGFuPSIx IiBjb2xzcGFuPSIxIj4kMTAzIGluY29tZTwvdGQ+Cjx0ZD5Sb290LkFzc2V0LkJhbms8L3RkPgo8 dGQgY2xhc3M9Im51bWJlci1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj48YSBocmVmPSJn bmMtcmVnaXN0ZXI6c3BsaXQtZ3VpZD0wYjQ4OTA4MDIyMGM0MzZhYWU4NjE0MDIzMDU0OTUzZCMi PiQxMDMuMDA8L2E+CjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjZmZmZmZmIj48dGQgY2xhc3M9 ImRhdGUtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+MDMvMDkvMjM8L3RkPgo8dGQgY2xh c3M9InRleHQtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+JDEwOSBpbmNvbWU8L3RkPgo8 dGQ+Um9vdC5Bc3NldC5CYW5rPC90ZD4KPHRkIGNsYXNzPSJudW1iZXItY2VsbCIgcm93c3Bhbj0i MSIgY29sc3Bhbj0iMSI+PGEgaHJlZj0iZ25jLXJlZ2lzdGVyOnNwbGl0LWd1aWQ9N2E5NDY1NDQ3 N2VjNDdhMmE2MzA5M2QzNDIzNmVhMWYjIj4kMTA5LjAwPC9hPgo8L3RkPgo8L3RyPgo8dHI+PHRk IGNsYXNzPSJkYXRlLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjAzLzE1LzIzPC90ZD4K PHRkIGNsYXNzPSJ0ZXh0LWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPiQyMiBleHBlbnNl PC90ZD4KPHRkPlJvb3QuQXNzZXQuQmFuazwvdGQ+Cjx0ZCBjbGFzcz0ibnVtYmVyLWNlbGwiIHJv d3NwYW49IjEiIGNvbHNwYW49IjEiPjxhIGhyZWY9ImduYy1yZWdpc3RlcjpzcGxpdC1ndWlkPTY2 YzljNWJiZGY1MTRiYTdiMjBmMDZlZGE5M2UwZWViIyI+LSQyMi4wMDwvYT4KPC90ZD4KPC90cj4K PHRyIGJnY29sb3I9IiNmZmZmZmYiPjx0ZCBjbGFzcz0iZGF0ZS1jZWxsIiByb3dzcGFuPSIxIiBj b2xzcGFuPSIxIj4wNC8wMy8yMzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZWxsIiByb3dzcGFuPSIx IiBjb2xzcGFuPSIxIj4kMTAzIGluY29tZTwvdGQ+Cjx0ZD5Sb290LkFzc2V0LkJhbms8L3RkPgo8 dGQgY2xhc3M9Im51bWJlci1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj48YSBocmVmPSJn bmMtcmVnaXN0ZXI6c3BsaXQtZ3VpZD1jODM3NTVlYjE2Mzc0ODE4ODA3Y2UzOGU3OTZiZThkNCMi PiQxMDMuMDA8L2E+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgY2xhc3M9ImRhdGUtY2VsbCIgcm93c3Bh bj0iMSIgY29sc3Bhbj0iMSI+MDQvMDkvMjM8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VsbCIgcm93 c3Bhbj0iMSIgY29sc3Bhbj0iMSI+JDEwOSBpbmNvbWU8L3RkPgo8dGQ+Um9vdC5Bc3NldC5CYW5r PC90ZD4KPHRkIGNsYXNzPSJudW1iZXItY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+PGEg aHJlZj0iZ25jLXJlZ2lzdGVyOnNwbGl0LWd1aWQ9ZWIyY2U0MzcxZGFlNDExNmFiZjhlNjlmOGIz YWY2ZjYjIj4kMTA5LjAwPC9hPgo8L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+PHRk IGNsYXNzPSJkYXRlLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjA0LzE1LzIzPC90ZD4K PHRkIGNsYXNzPSJ0ZXh0LWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPiQyMiBleHBlbnNl PC90ZD4KPHRkPlJvb3QuQXNzZXQuQmFuazwvdGQ+Cjx0ZCBjbGFzcz0ibnVtYmVyLWNlbGwiIHJv d3NwYW49IjEiIGNvbHNwYW49IjEiPjxhIGhyZWY9ImduYy1yZWdpc3RlcjpzcGxpdC1ndWlkPWRm MzQxZmE1NGYwNTRkMTI4YWJkZWU0MzQwNDQ4MzA1IyI+LSQyMi4wMDwvYT4KPC90ZD4KPC90cj4K PHRyPjx0ZCBjbGFzcz0iZGF0ZS1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4wNS8wMy8y MzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4kMTAz IGluY29tZTwvdGQ+Cjx0ZD5Sb290LkFzc2V0LkJhbms8L3RkPgo8dGQgY2xhc3M9Im51bWJlci1j ZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj48YSBocmVmPSJnbmMtcmVnaXN0ZXI6c3BsaXQt Z3VpZD01OTdlM2FkYjY0ZWI0YjQxYmYyNzUxNzBlMDU1YmQ0MyMiPiQxMDMuMDA8L2E+CjwvdGQ+ CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjZmZmZmZmIj48dGQgY2xhc3M9ImRhdGUtY2VsbCIgcm93c3Bh bj0iMSIgY29sc3Bhbj0iMSI+MDUvMDkvMjM8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VsbCIgcm93 c3Bhbj0iMSIgY29sc3Bhbj0iMSI+JDEwOSBpbmNvbWU8L3RkPgo8dGQ+Um9vdC5Bc3NldC5CYW5r PC90ZD4KPHRkIGNsYXNzPSJudW1iZXItY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+PGEg aHJlZj0iZ25jLXJlZ2lzdGVyOnNwbGl0LWd1aWQ9ZmUxNzkyMDI0NTJhNDRkZmI5YTI1NDA2MTUz MjNkMzgjIj4kMTA5LjAwPC9hPgo8L3RkPgo8L3RyPgo8dHI+PHRkIGNsYXNzPSJkYXRlLWNlbGwi IHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjA1LzE1LzIzPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNl bGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPiQyMiBleHBlbnNlPC90ZD4KPHRkPlJvb3QuQXNz ZXQuQmFuazwvdGQ+Cjx0ZCBjbGFzcz0ibnVtYmVyLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49 IjEiPjxhIGhyZWY9ImduYy1yZWdpc3RlcjpzcGxpdC1ndWlkPWNhNDY0OTI1NDhhMTRiNDQ4ZGJi NGY2N2Q0ZDU3MWY1IyI+LSQyMi4wMDwvYT4KPC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNmZmZm ZmYiPjx0ZCBjbGFzcz0iZGF0ZS1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4wNi8wMy8y MzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4kMTAz IGluY29tZTwvdGQ+Cjx0ZD5Sb290LkFzc2V0LkJhbms8L3RkPgo8dGQgY2xhc3M9Im51bWJlci1j ZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj48YSBocmVmPSJnbmMtcmVnaXN0ZXI6c3BsaXQt Z3VpZD0wYzhmYjE0NGU0MTU0MzM1YTFjNmRiYzk4ZjVhYjUzZCMiPiQxMDMuMDA8L2E+CjwvdGQ+ CjwvdHI+Cjx0cj48dGQgY2xhc3M9ImRhdGUtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+ MDYvMDkvMjM8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0i MSI+JDEwOSBpbmNvbWU8L3RkPgo8dGQ+Um9vdC5Bc3NldC5CYW5rPC90ZD4KPHRkIGNsYXNzPSJu dW1iZXItY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+PGEgaHJlZj0iZ25jLXJlZ2lzdGVy OnNwbGl0LWd1aWQ9ODg5NTE3YzIzM2RjNGMyZjkxN2E5ZTdjOTQ1MDI4YTQjIj4kMTA5LjAwPC9h Pgo8L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+PHRkIGNsYXNzPSJkYXRlLWNlbGwi IHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjA2LzE1LzIzPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNl bGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPiQyMiBleHBlbnNlPC90ZD4KPHRkPlJvb3QuQXNz ZXQuQmFuazwvdGQ+Cjx0ZCBjbGFzcz0ibnVtYmVyLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49 IjEiPjxhIGhyZWY9ImduYy1yZWdpc3RlcjpzcGxpdC1ndWlkPTcyOTc5MzBjY2U1YzQyY2NiYmU4 NjRlMTc3ZGI3OGU3IyI+LSQyMi4wMDwvYT4KPC90ZD4KPC90cj4KPHRyPjx0ZCBjbGFzcz0iZGF0 ZS1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4wNy8wMy8yMzwvdGQ+Cjx0ZCBjbGFzcz0i dGV4dC1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4kMTAzIGluY29tZTwvdGQ+Cjx0ZD5S b290LkFzc2V0LkJhbms8L3RkPgo8dGQgY2xhc3M9Im51bWJlci1jZWxsIiByb3dzcGFuPSIxIiBj b2xzcGFuPSIxIj48YSBocmVmPSJnbmMtcmVnaXN0ZXI6c3BsaXQtZ3VpZD1iYTBmOGZkMWNlNzU0 MTE3ODVkODMxZjcwZDhhNTFiNiMiPiQxMDMuMDA8L2E+CjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9y PSIjZmZmZmZmIj48dGQgY2xhc3M9ImRhdGUtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+ MDcvMDkvMjM8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0i MSI+JDEwOSBpbmNvbWU8L3RkPgo8dGQ+Um9vdC5Bc3NldC5CYW5rPC90ZD4KPHRkIGNsYXNzPSJu dW1iZXItY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+PGEgaHJlZj0iZ25jLXJlZ2lzdGVy OnNwbGl0LWd1aWQ9ODhmYzg0YTI3OTA0NDhjM2EyNzNiN2VhMTFkYTNiZjAjIj4kMTA5LjAwPC9h Pgo8L3RkPgo8L3RyPgo8dHI+PHRkIGNsYXNzPSJkYXRlLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNw YW49IjEiPjA3LzE1LzIzPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNlbGwiIHJvd3NwYW49IjEiIGNv bHNwYW49IjEiPiQyMiBleHBlbnNlPC90ZD4KPHRkPlJvb3QuQXNzZXQuQmFuazwvdGQ+Cjx0ZCBj bGFzcz0ibnVtYmVyLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjxhIGhyZWY9ImduYy1y ZWdpc3RlcjpzcGxpdC1ndWlkPWEzZDc5NTM0NTUzZjQ2MmVhM2M2Y2Q4ZDUzM2I5OWJiIyI+LSQy Mi4wMDwvYT4KPC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNmZmZmZmYiPjx0ZCBjbGFzcz0iZGF0 ZS1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4wOC8wMy8yMzwvdGQ+Cjx0ZCBjbGFzcz0i dGV4dC1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4kMTAzIGluY29tZTwvdGQ+Cjx0ZD5S b290LkFzc2V0LkJhbms8L3RkPgo8dGQgY2xhc3M9Im51bWJlci1jZWxsIiByb3dzcGFuPSIxIiBj b2xzcGFuPSIxIj48YSBocmVmPSJnbmMtcmVnaXN0ZXI6c3BsaXQtZ3VpZD01NzZjYjkwMzY2YzQ0 YmIxYjk0MmVhMjJhNjE1YmYxZiMiPiQxMDMuMDA8L2E+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgY2xh c3M9ImRhdGUtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+MDgvMDkvMjM8L3RkPgo8dGQg Y2xhc3M9InRleHQtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+JDEwOSBpbmNvbWU8L3Rk Pgo8dGQ+Um9vdC5Bc3NldC5CYW5rPC90ZD4KPHRkIGNsYXNzPSJudW1iZXItY2VsbCIgcm93c3Bh bj0iMSIgY29sc3Bhbj0iMSI+PGEgaHJlZj0iZ25jLXJlZ2lzdGVyOnNwbGl0LWd1aWQ9NzczOTA1 Yzk2NTJjNGRkYzgwY2E0ZmY0NjIzNzVjZDAjIj4kMTA5LjAwPC9hPgo8L3RkPgo8L3RyPgo8dHIg Ymdjb2xvcj0iI2ZmZmZmZiI+PHRkIGNsYXNzPSJkYXRlLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNw YW49IjEiPjA4LzE1LzIzPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNlbGwiIHJvd3NwYW49IjEiIGNv bHNwYW49IjEiPiQyMiBleHBlbnNlPC90ZD4KPHRkPlJvb3QuQXNzZXQuQmFuazwvdGQ+Cjx0ZCBj bGFzcz0ibnVtYmVyLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjxhIGhyZWY9ImduYy1y ZWdpc3RlcjpzcGxpdC1ndWlkPTZjMjEzNTQ0NGRmYzQ0N2I5YzhjODg3MmFlM2RmZjM2IyI+LSQy Mi4wMDwvYT4KPC90ZD4KPC90cj4KPHRyPjx0ZCBjbGFzcz0iZGF0ZS1jZWxsIiByb3dzcGFuPSIx IiBjb2xzcGFuPSIxIj4wOS8wMy8yMzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZWxsIiByb3dzcGFu PSIxIiBjb2xzcGFuPSIxIj4kMTAzIGluY29tZTwvdGQ+Cjx0ZD5Sb290LkFzc2V0LkJhbms8L3Rk Pgo8dGQgY2xhc3M9Im51bWJlci1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj48YSBocmVm PSJnbmMtcmVnaXN0ZXI6c3BsaXQtZ3VpZD02NGI1YTRmOGI2N2Q0MGRmYjYxN2QzMjJiYWEzMzFh NyMiPiQxMDMuMDA8L2E+CjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjZmZmZmZmIj48dGQgY2xh c3M9ImRhdGUtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+MDkvMDkvMjM8L3RkPgo8dGQg Y2xhc3M9InRleHQtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+JDEwOSBpbmNvbWU8L3Rk Pgo8dGQ+Um9vdC5Bc3NldC5CYW5rPC90ZD4KPHRkIGNsYXNzPSJudW1iZXItY2VsbCIgcm93c3Bh bj0iMSIgY29sc3Bhbj0iMSI+PGEgaHJlZj0iZ25jLXJlZ2lzdGVyOnNwbGl0LWd1aWQ9YWUzYzc5 MDRiODBlNDRlZTg5YTljMWU2N2IxNjJiNTAjIj4kMTA5LjAwPC9hPgo8L3RkPgo8L3RyPgo8dHI+ PHRkIGNsYXNzPSJkYXRlLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjA5LzE1LzIzPC90 ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPiQyMiBleHBl bnNlPC90ZD4KPHRkPlJvb3QuQXNzZXQuQmFuazwvdGQ+Cjx0ZCBjbGFzcz0ibnVtYmVyLWNlbGwi IHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjxhIGhyZWY9ImduYy1yZWdpc3RlcjpzcGxpdC1ndWlk PTY3MjkzYjUzMzA3ODQzY2ViNGVkMTBhNzcxMTkyNDNjIyI+LSQyMi4wMDwvYT4KPC90ZD4KPC90 cj4KPHRyIGJnY29sb3I9IiNmZmZmZmYiPjx0ZCBjbGFzcz0iZGF0ZS1jZWxsIiByb3dzcGFuPSIx IiBjb2xzcGFuPSIxIj4xMC8wMy8yMzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZWxsIiByb3dzcGFu PSIxIiBjb2xzcGFuPSIxIj4kMTAzIGluY29tZTwvdGQ+Cjx0ZD5Sb290LkFzc2V0LkJhbms8L3Rk Pgo8dGQgY2xhc3M9Im51bWJlci1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj48YSBocmVm PSJnbmMtcmVnaXN0ZXI6c3BsaXQtZ3VpZD0yODVkZDUzNmVkODQ0NTcwYWExYzMxMzc3N2QwNjgy MSMiPiQxMDMuMDA8L2E+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgY2xhc3M9ImRhdGUtY2VsbCIgcm93 c3Bhbj0iMSIgY29sc3Bhbj0iMSI+MTAvMDkvMjM8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VsbCIg cm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+JDEwOSBpbmNvbWU8L3RkPgo8dGQ+Um9vdC5Bc3NldC5C YW5rPC90ZD4KPHRkIGNsYXNzPSJudW1iZXItY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+ PGEgaHJlZj0iZ25jLXJlZ2lzdGVyOnNwbGl0LWd1aWQ9ZjZjM2E0NTJkNjI2NGRmMzk3NGQzYTcw NDJjNmNiYTkjIj4kMTA5LjAwPC9hPgo8L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+ PHRkIGNsYXNzPSJkYXRlLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjEwLzE1LzIzPC90 ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPiQyMiBleHBl bnNlPC90ZD4KPHRkPlJvb3QuQXNzZXQuQmFuazwvdGQ+Cjx0ZCBjbGFzcz0ibnVtYmVyLWNlbGwi IHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjxhIGhyZWY9ImduYy1yZWdpc3RlcjpzcGxpdC1ndWlk PTRhMjdiMmFmNjhmZTRhMzE5NzE3MzIzMGE2OTE1ZmJjIyI+LSQyMi4wMDwvYT4KPC90ZD4KPC90 cj4KPHRyPjx0ZCBjbGFzcz0iZGF0ZS1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4xMS8w My8yMzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4k MTAzIGluY29tZTwvdGQ+Cjx0ZD5Sb290LkFzc2V0LkJhbms8L3RkPgo8dGQgY2xhc3M9Im51bWJl ci1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj48YSBocmVmPSJnbmMtcmVnaXN0ZXI6c3Bs aXQtZ3VpZD1kOTZjYTZjN2VjNWM0NzYyOTNkYThjYzE3Nzg2NDhlOCMiPiQxMDMuMDA8L2E+Cjwv dGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjZmZmZmZmIj48dGQgY2xhc3M9ImRhdGUtY2VsbCIgcm93 c3Bhbj0iMSIgY29sc3Bhbj0iMSI+MTEvMDkvMjM8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VsbCIg cm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+JDEwOSBpbmNvbWU8L3RkPgo8dGQ+Um9vdC5Bc3NldC5C YW5rPC90ZD4KPHRkIGNsYXNzPSJudW1iZXItY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+ PGEgaHJlZj0iZ25jLXJlZ2lzdGVyOnNwbGl0LWd1aWQ9MmY3NjJhMjg5Mzg0NDM2NjlkYjZjOWUz OTdmYjhlYzAjIj4kMTA5LjAwPC9hPgo8L3RkPgo8L3RyPgo8dHI+PHRkIGNsYXNzPSJkYXRlLWNl bGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjExLzE1LzIzPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0 LWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPiQyMiBleHBlbnNlPC90ZD4KPHRkPlJvb3Qu QXNzZXQuQmFuazwvdGQ+Cjx0ZCBjbGFzcz0ibnVtYmVyLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNw YW49IjEiPjxhIGhyZWY9ImduYy1yZWdpc3RlcjpzcGxpdC1ndWlkPTFkYjM2MGE2MmNmZTQ0ZTZh NTJlMTA4NjRlZGZmOTY5IyI+LSQyMi4wMDwvYT4KPC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNm ZmZmZmYiPjx0ZCBjbGFzcz0iZGF0ZS1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4xMi8w My8yMzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj4k MTAzIGluY29tZTwvdGQ+Cjx0ZD5Sb290LkFzc2V0LkJhbms8L3RkPgo8dGQgY2xhc3M9Im51bWJl ci1jZWxsIiByb3dzcGFuPSIxIiBjb2xzcGFuPSIxIj48YSBocmVmPSJnbmMtcmVnaXN0ZXI6c3Bs aXQtZ3VpZD0wNTFiM2Y0MThmOTg0ZGFjODJkNmZhOTM0NjllNjUyNSMiPiQxMDMuMDA8L2E+Cjwv dGQ+CjwvdHI+Cjx0cj48dGQgY2xhc3M9ImRhdGUtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0i MSI+MTIvMDkvMjM8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bh bj0iMSI+JDEwOSBpbmNvbWU8L3RkPgo8dGQ+Um9vdC5Bc3NldC5CYW5rPC90ZD4KPHRkIGNsYXNz PSJudW1iZXItY2VsbCIgcm93c3Bhbj0iMSIgY29sc3Bhbj0iMSI+PGEgaHJlZj0iZ25jLXJlZ2lz dGVyOnNwbGl0LWd1aWQ9NTFlOTVjNDg5N2M3NGI4N2EwNThmNTVkNWI2Y2M5Y2EjIj4kMTA5LjAw PC9hPgo8L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+PHRkIGNsYXNzPSJkYXRlLWNl bGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPjEyLzE1LzIzPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0 LWNlbGwiIHJvd3NwYW49IjEiIGNvbHNwYW49IjEiPiQyMiBleHBlbnNlPC90ZD4KPHRkPlJvb3Qu QXNzZXQuQmFuazwvdGQ+Cjx0ZCBjbGFzcz0ibnVtYmVyLWNlbGwiIHJvd3NwYW49IjEiIGNvbHNw YW49IjEiPjxhIGhyZWY9ImduYy1yZWdpc3RlcjpzcGxpdC1ndWlkPWRiYWIzNmFmNjBjZTRlZGFh YTU2YzUzNjgzNGVkYzM5IyI+LSQyMi4wMDwvYT4KPC90ZD4KPC90cj4KPC90Ym9keT4KPC90YWJs ZT4KPC9ib2R5Pgo8L2h0bWw+Cg== --000000000000c8e5b405fa98a3e6-- From unknown Sun Jun 15 01:09:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63196: Further on this error message References: In-Reply-To: Resent-From: Christopher Lam Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Mon, 01 May 2023 02:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63196 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 63196@debbugs.gnu.org Received: via spool by 63196-submit@debbugs.gnu.org id=B63196.168290909430995 (code B ref 63196); Mon, 01 May 2023 02:45:01 +0000 Received: (at 63196) by debbugs.gnu.org; 1 May 2023 02:44:54 +0000 Received: from localhost ([127.0.0.1]:38645 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ptJX3-00083q-Sg for submit@debbugs.gnu.org; Sun, 30 Apr 2023 22:44:54 -0400 Received: from mail-lf1-f53.google.com ([209.85.167.53]:47400) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ptJX2-00083b-2T for 63196@debbugs.gnu.org; Sun, 30 Apr 2023 22:44:52 -0400 Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-4edb26f762dso2515666e87.3 for <63196@debbugs.gnu.org>; Sun, 30 Apr 2023 19:44:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682909086; x=1685501086; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=qP2Qp5VVFZ+Hh+5cJ2pTexHBxkMK7kGp1WTFyHJIxp0=; b=FTOIBNyFc3omiGSNVOOIcOyg3uQnrXf1PYN8+m7D5TB4N3MieYSh7Zm5ztG2evBTwN xchWCY8J0uq0unoHPbw1HzZIZkZ0WWkT7ct/kRnqodkUUc4LutecF/+t3v+2ntEZjN/t ons7tABh5QzjjRCtlS+9gQ5Ls+tB8NEQdWJDwvOxet4RMSDVLyzzSctPxrK3U1lrZG9j 6O0N/zMRtNewdpaNc0zFPbKWGwgsA7gMiAyxRZoLqzDKVjJqHC+fpppBQNkC8d8nnFJU krf//eX91w+1yN/H5mbr0T4trrd+beD9rMpy4BTr7Tg/50/AIo505D3aa94nLPIObmbf 1OFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682909086; x=1685501086; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=qP2Qp5VVFZ+Hh+5cJ2pTexHBxkMK7kGp1WTFyHJIxp0=; b=cnpmSAwINzeexNlYlwz95lDJ/b/Ac4PLs6c4LB+WWuIW5F4esnxNnW6+d6MNVfEQ2T kgMemrJFoKVKkZAWUPfR13jgrOX6SfA9wRocwRe/7IM0ZJg8geOtwFoV6KzVKk/SPx1S IakGzzU8A0JM0BfuPtnd4xv6ZrNB4gS8ksO5Xge9/yMf8WYWnU5sWavH0wJaccD4M832 mvcNol6UWrUis1UYZ09yG+H+Y8Qc8cwQo79Ly+bZoZmbvzFwsnN6fK8yXu/HrD76AL44 VLrZF0HsO12JvayrOca4uTq4EbEL2PjCY6fbdYx4i4psxjl0jksaK1C+2Zrh/f07emE0 UNcA== X-Gm-Message-State: AC+VfDwKo/aeLqT/JEWDb2cbuWjhKrMyRFPH00nDHWHFOb2zd4z6wmW+ WEY0VunF0hQkbpiWfhpi1NKUqsDlsd8HlZP7TVjsttdnTL/2fQ== X-Google-Smtp-Source: ACHHUZ4RhzF7JkB+NVmMMxbQoT7GswZR0VkxhynLdfDp4ibrkMC/Eg7C6UfCUqaZMyTYeJNi8hu4n1lzdcLxefFr+Ms= X-Received: by 2002:ac2:4849:0:b0:4eb:3cac:23a6 with SMTP id 9-20020ac24849000000b004eb3cac23a6mr3406533lfy.25.1682909085492; Sun, 30 Apr 2023 19:44:45 -0700 (PDT) MIME-Version: 1.0 From: Christopher Lam Date: Mon, 1 May 2023 10:44:18 +0800 Message-ID: Content-Type: multipart/alternative; boundary="0000000000003ae95b05fa98cebf" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000003ae95b05fa98cebf Content-Type: text/plain; charset="UTF-8" The source seems to be sxpath.scm -- see "yikes" error which triggers when n is -2 -4 -6 etc. I don't know how to build guile from sources and cannot debug further. (define (node-pos n) (lambda (nodeset) (cond ((not (nodeset? nodeset)) '()) ((null? nodeset) nodeset) ((eqv? n 1) (list (car nodeset))) ((negative? n) ((node-pos (+ n 1 (length nodeset))) nodeset)) (else (or (positive? n) (error "yikes!")) ((node-pos (1- n)) (cdr nodeset)))))) --0000000000003ae95b05fa98cebf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The source seems to be sxpath.scm -- see "yikes&= quot; error which triggers when n is -2 -4 -6 etc. I don't know how to = build guile from sources and cannot debug further.

=

(define (node-pos n)
=C2=A0 (lambda (nodeset)
=C2=A0 =C2=A0 = (cond
=C2=A0 =C2=A0 =C2=A0((not (nodeset? nodeset)) '())
=C2=A0 = =C2=A0 =C2=A0((null? nodeset) nodeset)
=C2=A0 =C2=A0 =C2=A0((eqv? n 1) (= list (car nodeset)))
=C2=A0 =C2=A0 =C2=A0((negative? n) ((node-pos (+ n = 1 (length nodeset))) nodeset))
=C2=A0 =C2=A0 =C2=A0(else
=C2=A0 =C2= =A0 =C2=A0 (or (positive? n) (error "yikes!"))
=C2=A0 =C2=A0 = =C2=A0 ((node-pos (1- n)) (cdr nodeset))))))
--0000000000003ae95b05fa98cebf-- From unknown Sun Jun 15 01:09:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63196: Further on this error message Resent-From: Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Sat, 06 May 2023 12:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63196 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: Christopher Lam Cc: 63196@debbugs.gnu.org Received: via spool by 63196-submit@debbugs.gnu.org id=B63196.168337669226325 (code B ref 63196); Sat, 06 May 2023 12:39:02 +0000 Received: (at 63196) by debbugs.gnu.org; 6 May 2023 12:38:12 +0000 Received: from localhost ([127.0.0.1]:59602 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvHAy-0006qX-7O for submit@debbugs.gnu.org; Sat, 06 May 2023 08:38:12 -0400 Received: from mail.tuxteam.de ([5.199.139.25]:58158) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pvHAu-0006qJ-Ki for 63196@debbugs.gnu.org; Sat, 06 May 2023 08:38:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tuxteam.de; s=mail; h=From:In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=M91fPk+m6O8KwTOVLTRZqh7N6Kt66Pc0EcF9l9ylNvI=; b=uhvxof6gT+B9+pKtV03Z/JhgTm DIvZB5prpm+XdK4B7jC+k0TtwAPNPrF+t4XNGE0D7XDvxb1xOxKoVZQxn0/ltfu23fyTjtsNVKjMH 9EnU634tQQrzeKN0e4OM2nEAtTYO8j2N51AbV/WqaFqu87Y+xBMaV202JeHBJ/MNLpDJ5wiSuSqy3 jgBQzpYj7IR15iV2AKkFTZAXYw80lobEXkr4Akt7uHNghoth7pdEOWPKdN8Kf32d+KzJ31CniHAx0 IUtyZ2wcz5gu5aEaseJP6Hqg6Ksh0V02JaHmaPwtTIaciHX7KABx20JfrOKRuIZnzFBmJMnioy05X N43kjToA==; Received: from tomas by mail.tuxteam.de with local (Exim 4.94.2) (envelope-from ) id 1pvHAs-0003iM-D4; Sat, 06 May 2023 14:38:06 +0200 Date: Sat, 6 May 2023 14:38:06 +0200 Message-ID: References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="9I2/Ouo9Wrml7WSG" Content-Disposition: inline In-Reply-To: From: X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --9I2/Ouo9Wrml7WSG Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, May 01, 2023 at 10:44:18AM +0800, Christopher Lam wrote: > The source seems to be sxpath.scm -- see "yikes" error which triggers when > n is -2 -4 -6 etc. I don't know how to build guile from sources and cannot > debug further. >=20 >=20 > (define (node-pos n) > (lambda (nodeset) > (cond > ((not (nodeset? nodeset)) '()) > ((null? nodeset) nodeset) > ((eqv? n 1) (list (car nodeset))) > ((negative? n) ((node-pos (+ n 1 (length nodeset))) nodeset)) > (else > (or (positive? n) (error "yikes!")) > ((node-pos (1- n)) (cdr nodeset)))))) Hm. It seems that calling `node-pos' with n =3D=3D 0 runs straight into the "yikes" case (unless `nodeset' is #f or null, that is). And we would get this when n =3D=3D-2 and (length nodeset) equals 1 on the next recursive call. Or when n =3D=3D -3 and (length nodeset) =3D=3D 2, and= so on -- i.e. when n =3D=3D -1 - (length nodeset). We reach such a point again when n =3D=3D 2*(-1 - (length nodeset)): it runs into the case (negative? n), retries with n' =3D (+ n 1 (length nodeset)) which is still negative, next try is 0 =3D> yikes. So in your case I guess your (length nodeset) is 1, because you have a cycle length of two :-) Reading between the lines in the code above for the positive case, I gather that the intention is to return an empty nodeset (i.e. '()) when n runs off the nodeset. So I'd extend the ((negative? n) ...) case like so: ((negative? n) (let ((nn (+ 1 (length nodeset)))) (if (positive? nn) (node-pos nn) '()))) Comments? Cheers --=20 t --9I2/Ouo9Wrml7WSG Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQRp53liolZD6iXhAoIFyCz1etHaRgUCZFZKJwAKCRAFyCz1etHa Rp4oAJ43XDJdQlBNqobJ3l7To7Khwk1hpgCeM5lc7Ilsnp7y5DT9OoEZPY8QevA= =jOMe -----END PGP SIGNATURE----- --9I2/Ouo9Wrml7WSG--